pkg: add spec file for RPM package build
This spec file build following packages: x86_64/spdk Base SPDK package - all apps intalled by `make install` - spdk_* applications - shared libs in libs64 dir x86_64/spdk-devel SPDK development package: - header files - static/shared libs x86_64/spdk-debuginfo x86_64/spdk-debugsource These two are autogenerated by rpmbuild no_arch/spdk-tools: SPDK tools package: scripts/rpc.py -> /usr/sbin/spdk-rpc scripts/spdkcli.py -> /usr/sbin/spdk-cli no_arch/spdk-doc: optional, generated when adding '--with doc' SPDK html doc package: doc/output/html/ -> /usr/share/doc/spdk/html Change-Id: Ice107a7d014a6b63b2946a557e3ca7be5e486c03 Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com> Reviewed-on: https://review.gerrithub.io/424973 (master) Reviewed-on: https://review.gerrithub.io/435695 Reviewed-by: Lance Hartmann <lance.hartmann@oracle.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
59c5be6231
commit
b8718ca652
171
pkg/spdk.spec
Normal file
171
pkg/spdk.spec
Normal file
@ -0,0 +1,171 @@
|
||||
# Build documentation package
|
||||
%bcond_with doc
|
||||
|
||||
Name: spdk
|
||||
Version: 18.10.x
|
||||
Release: 0%{?dist}
|
||||
Epoch: 0
|
||||
URL: http://spdk.io
|
||||
|
||||
Source: https://github.com/spdk/spdk/archive/v18.10.x.tar.gz#/%{name}-%{version}.tar.gz
|
||||
Summary: Set of libraries and utilities for high performance user-mode storage
|
||||
|
||||
%define spdk_build_dir %{name}-%{version}
|
||||
|
||||
%define package_version %{epoch}:%{version}-%{release}
|
||||
|
||||
%define install_datadir %{buildroot}/%{_datadir}/%{name}
|
||||
%define install_sbindir %{buildroot}/%{_sbindir}
|
||||
%define install_docdir %{buildroot}/%{_docdir}/%{name}
|
||||
|
||||
# Distros that don't support python3 will use python2
|
||||
%if "%{dist}" == ".el7"
|
||||
%define use_python2 1
|
||||
%else
|
||||
%define use_python2 0
|
||||
%endif
|
||||
|
||||
License: BSD
|
||||
|
||||
# Only x86_64 is supported
|
||||
ExclusiveArch: x86_64
|
||||
|
||||
BuildRequires: gcc gcc-c++ make
|
||||
BuildRequires: dpdk-devel, numactl-devel
|
||||
BuildRequires: libiscsi-devel, libaio-devel, openssl-devel, libuuid-devel
|
||||
BuildRequires: libibverbs-devel, librdmacm-devel
|
||||
%if %{with doc}
|
||||
BuildRequires: doxygen mscgen graphviz
|
||||
%endif
|
||||
|
||||
# Install dependencies
|
||||
Requires: dpdk >= 17.11, numactl-libs, openssl-libs
|
||||
Requires: libiscsi, libaio, libuuid
|
||||
# NVMe over Fabrics
|
||||
Requires: librdmacm, librdmacm
|
||||
Requires(post): /sbin/ldconfig
|
||||
Requires(postun): /sbin/ldconfig
|
||||
|
||||
%description
|
||||
The Storage Performance Development Kit provides a set of tools
|
||||
and libraries for writing high performance, scalable, user-mode storage
|
||||
applications.
|
||||
|
||||
|
||||
%package devel
|
||||
Summary: Storage Performance Development Kit development files
|
||||
Requires: %{name}%{?_isa} = %{package_version}
|
||||
Provides: %{name}-static%{?_isa} = %{package_version}
|
||||
|
||||
%description devel
|
||||
This package contains the headers and other files needed for
|
||||
developing applications with the Storage Performance Development Kit.
|
||||
|
||||
|
||||
%package tools
|
||||
Summary: Storage Performance Development Kit tools files
|
||||
%if "%{use_python2}" == "0"
|
||||
Requires: %{name}%{?_isa} = %{package_version} python3 python3-configshell python3-pexpect
|
||||
%else
|
||||
Requires: %{name}%{?_isa} = %{package_version} python python-configshell pexpect
|
||||
%endif
|
||||
BuildArch: noarch
|
||||
|
||||
%description tools
|
||||
%{summary}
|
||||
|
||||
|
||||
%if %{with doc}
|
||||
%package doc
|
||||
Summary: Storage Performance Development Kit documentation
|
||||
BuildArch: noarch
|
||||
|
||||
%description doc
|
||||
%{summary}
|
||||
%endif
|
||||
|
||||
|
||||
%prep
|
||||
# add -q
|
||||
%autosetup -n %{spdk_build_dir}
|
||||
|
||||
|
||||
%build
|
||||
./configure --prefix=%{_usr} \
|
||||
--disable-tests \
|
||||
--without-crypto \
|
||||
--with-dpdk=/usr/share/dpdk/x86_64-default-linuxapp-gcc \
|
||||
--without-fio \
|
||||
--with-vhost \
|
||||
--without-pmdk \
|
||||
--without-vpp \
|
||||
--without-rbd \
|
||||
--with-rdma \
|
||||
--with-shared \
|
||||
--with-iscsi-initiator \
|
||||
--without-vtune
|
||||
|
||||
make -j`nproc` all
|
||||
|
||||
%if %{with doc}
|
||||
make -C doc
|
||||
%endif
|
||||
|
||||
%install
|
||||
%make_install -j`nproc` prefix=%{_usr} libdir=%{_libdir} datadir=%{_datadir}
|
||||
|
||||
# Install tools
|
||||
mkdir -p %{install_datadir}
|
||||
find scripts -type f -regextype egrep -regex '.*(spdkcli|rpc).*[.]py' \
|
||||
-exec cp --parents -t %{install_datadir} {} ";"
|
||||
|
||||
# env is banned - replace '/usr/bin/env anything' with '/usr/bin/anything'
|
||||
find %{install_datadir}/scripts -type f -regextype egrep -regex '.*([.]py|[.]sh)' \
|
||||
-exec sed -i -E '1s@#!/usr/bin/env (.*)@#!/usr/bin/\1@' {} +
|
||||
|
||||
%if "%{use_python2}" == "1"
|
||||
find %{install_datadir}/scripts -type f -regextype egrep -regex '.*([.]py)' \
|
||||
-exec sed -i -E '1s@#!/usr/bin/python3@#!/usr/bin/python2@' {} +
|
||||
%endif
|
||||
|
||||
# synlinks to tools
|
||||
mkdir -p %{install_sbindir}
|
||||
ln -sf -r %{install_datadir}/scripts/rpc.py %{install_sbindir}/%{name}-rpc
|
||||
ln -sf -r %{install_datadir}/scripts/spdkcli.py %{install_sbindir}/%{name}-cli
|
||||
|
||||
%if %{with doc}
|
||||
# Install doc
|
||||
mkdir -p %{install_docdir}
|
||||
mv doc/output/html/ %{install_docdir}
|
||||
%endif
|
||||
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
|
||||
%files
|
||||
%{_bindir}/spdk_*
|
||||
%{_libdir}/*.so.*
|
||||
|
||||
|
||||
%files devel
|
||||
%{_includedir}/%{name}
|
||||
%{_libdir}/*.a
|
||||
%{_libdir}/*.so
|
||||
|
||||
|
||||
%files tools
|
||||
%{_datadir}/%{name}/scripts
|
||||
%{_sbindir}/%{name}-rpc
|
||||
%{_sbindir}/%{name}-cli
|
||||
|
||||
%if %{with doc}
|
||||
%files doc
|
||||
%{_docdir}/%{name}
|
||||
%endif
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Sep 18 2018 Pawel Wodkowski <pawelx.wodkowski@intel.com> - 0:18.07-3
|
||||
- Initial RPM release
|
Loading…
Reference in New Issue
Block a user