From: Noa Osherovich <noaos@xxxxxxxxxxxx> Update spec file and cbuild dependencies to allow pyverbs to be included in RedHat-based distributions. Signed-off-by: Noa Osherovich <noaos@xxxxxxxxxxxx> Signed-off-by: Alaa Hleihel <alaa@xxxxxxxxxxxx> Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx> --- buildlib/cbuild | 4 ++-- redhat/rdma-core.spec | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/buildlib/cbuild b/buildlib/cbuild index 1cc54f31..098bea23 100755 --- a/buildlib/cbuild +++ b/buildlib/cbuild @@ -119,7 +119,7 @@ class centos7(YumEnvironment): specfile = "redhat/rdma-core.spec"; class centos7_epel(centos7): - pkgs = (centos7.pkgs - {"cmake","make"}) | {"ninja-build","cmake3","pandoc"}; + pkgs = (centos7.pkgs - {"cmake","make"}) | {"ninja-build","cmake3","pandoc", 'python3-Cython', 'python3-devel'}; name = "centos7_epel"; use_make = False; pandoc = True; @@ -135,7 +135,7 @@ class centos7_epel(centos7): class fc28(Environment): docker_parent = "fedora:28"; - pkgs = (centos7.pkgs - {"make"}) | {"ninja-build","pandoc","perl-generators"}; + pkgs = (centos7.pkgs - {"make"}) | {"ninja-build","pandoc","perl-generators","python3-Cython","python3-devel"}; name = "fc28"; specfile = "redhat/rdma-core.spec"; ninja_cmd = "ninja-build"; diff --git a/redhat/rdma-core.spec b/redhat/rdma-core.spec index 644c3ffd..422ac010 100644 --- a/redhat/rdma-core.spec +++ b/redhat/rdma-core.spec @@ -23,7 +23,13 @@ BuildRequires: pkgconfig(libnl-route-3.0) BuildRequires: valgrind-devel BuildRequires: systemd BuildRequires: systemd-devel +%define with_pyverbs %{?_with_pyverbs: 1} %{?!_with_pyverbs: 0} +%if %{with_pyverbs} +BuildRequires: python3-devel +BuildRequires: python3-Cython +%else BuildRequires: python +%endif %if 0%{?fedora} >= 21 BuildRequires: perl-generators %endif @@ -211,6 +217,14 @@ Requires: %{name}%{?_isa} = %{version}-%{release} In conjunction with the kernel ib_srp driver, srp_daemon allows you to discover and use SCSI devices via the SCSI RDMA Protocol over InfiniBand. +%package -n python3-pyverbs +Summary: Python3 API over IB verbs +%{?python_provide:%python_provide python3-pyverbs} + +%description -n python3-pyverbs +Pyverbs is a Cython-based Python API over libibverbs, providing an +easy, object-oriented access to IB verbs. + %prep %setup @@ -244,6 +258,10 @@ discover and use SCSI devices via the SCSI RDMA Protocol over InfiniBand. -DCMAKE_INSTALL_UDEV_RULESDIR:PATH=%{_udevrulesdir} \ %if %{with_static} -DENABLE_STATIC=1 \ +%endif +%if %{with_pyverbs} + -DPYTHON_EXECUTABLE:PATH=%{__python3} \ + -DCMAKE_INSTALL_PYTHON_ARCH_LIB:PATH=%{python3_sitearch} \ %endif %{EXTRA_CMAKE_FLAGS} %make_jobs @@ -469,3 +487,8 @@ rm -rf %{buildroot}/%{_sbindir}/srp_daemon.sh %{_mandir}/man5/srp_daemon.service.5* %{_mandir}/man5/srp_daemon_port@.service.5* %doc %{_docdir}/%{name}-%{version}/ibsrpdm.md + +%if %{with_pyverbs} +%files -n python3-pyverbs +%{python3_sitearch}/pyverbs +%endif -- 2.19.1