896 lines
27 KiB
RPMSpec
896 lines
27 KiB
RPMSpec
#
|
|
# spec file for package rdma-core
|
|
#
|
|
# Copyright (c) 2024 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%bcond_without systemd
|
|
# Do not build static libs by default.
|
|
%define with_static 0
|
|
%if 0%{?sle_version} > 120400
|
|
%define with_pyverbs 1
|
|
%else
|
|
%define with_pyverbs 0
|
|
%endif
|
|
|
|
%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150300
|
|
# systemd-rpm-macros is wrong in 15.3 and below
|
|
%define _modprobedir /lib/modprobe.d
|
|
%endif
|
|
|
|
%define git_ver .0.8847c327b89c
|
|
Name: rdma-core
|
|
Version: 49.1
|
|
Release: 0
|
|
Summary: RDMA core userspace libraries and daemons
|
|
License: BSD-2-Clause OR GPL-2.0-only
|
|
Group: Productivity/Networking/Other
|
|
|
|
%define efa_so_major 1
|
|
%define verbs_so_major 1
|
|
%define rdmacm_so_major 1
|
|
%define umad_so_major 3
|
|
%define mana_so_major 1
|
|
%define mlx4_so_major 1
|
|
%define mlx5_so_major 1
|
|
%define ibnetdisc_major 5
|
|
%define mad_major 5
|
|
|
|
%define efa_lname libefa%{efa_so_major}
|
|
%define verbs_lname libibverbs%{verbs_so_major}
|
|
%define rdmacm_lname librdmacm%{rdmacm_so_major}
|
|
%define umad_lname libibumad%{umad_so_major}
|
|
%define mana_lname libmana%{mana_so_major}
|
|
%define mlx4_lname libmlx4-%{mlx4_so_major}
|
|
%define mlx5_lname libmlx5-%{mlx5_so_major}
|
|
|
|
%ifnarch s390 %arm
|
|
%define dma_coherent 1
|
|
%endif
|
|
|
|
%global modprobe_d_files 50-libmlx4.conf truescale.conf %{?dma_coherent:mlx4.conf}
|
|
|
|
# Almost everything is licensed under the OFA dual GPLv2, 2 Clause BSD license
|
|
# providers/ipathverbs/ Dual licensed using a BSD license with an extra patent clause
|
|
# providers/rxe/ Incorporates code from ipathverbs and contains the patent clause
|
|
# providers/hfi1verbs Uses the 3 Clause BSD license
|
|
URL: https://github.com/linux-rdma/rdma-core
|
|
Source: rdma-core-%{version}%{git_ver}.tar.gz
|
|
Source1: baselibs.conf
|
|
Source2: post_download.sh
|
|
Source3: prebuilt-pandoc.tgz
|
|
Source4: rdma-core-rpmlintrc
|
|
Source5: gen-pandoc.sh
|
|
Source6: get_build.py
|
|
Patch0: disable-rdma-interface-renaming.patch
|
|
BuildRequires: binutils
|
|
BuildRequires: cmake >= 2.8.11
|
|
BuildRequires: gcc
|
|
# perl is needed for the proper rpm macros
|
|
%if %{?suse_version} > 1550
|
|
BuildRequires: perl
|
|
%endif
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: python3-base
|
|
BuildRequires: pkgconfig(libsystemd)
|
|
BuildRequires: pkgconfig(libudev)
|
|
BuildRequires: pkgconfig(systemd)
|
|
BuildRequires: pkgconfig(udev)
|
|
%if %{with_pyverbs}
|
|
BuildRequires: python3-Cython
|
|
BuildRequires: python3-devel
|
|
%endif
|
|
%ifnarch s390 s390x
|
|
%if 0%{?suse_version} >= 1550
|
|
BuildRequires: valgrind-client-headers
|
|
%else
|
|
BuildRequires: valgrind-devel
|
|
%endif
|
|
%endif
|
|
BuildRequires: systemd-rpm-macros
|
|
BuildRequires: pkgconfig(libnl-3.0)
|
|
BuildRequires: pkgconfig(libnl-route-3.0)
|
|
BuildRequires: pkgconfig(systemd)
|
|
Requires: kmod
|
|
Requires: systemd
|
|
Requires: udev
|
|
Recommends: rdma-ndd
|
|
|
|
# SUSE previously shipped rdma as a stand-alone
|
|
# package which we're supplanting here.
|
|
|
|
Provides: rdma = %{version}
|
|
Obsoletes: rdma < %{version}
|
|
Provides: ofed = %{version}
|
|
Obsoletes: ofed < %{version}
|
|
|
|
# Trickery to handle both SUSE OpenBuild System and Manual build
|
|
# In OBS, rdma-core must use curl-mini instead of curl to avoid
|
|
# a build dependency loop:
|
|
# rdma-core -> cmake -> curl -> ... -> boost -> rdma-core
|
|
# Thus we force a BuildRequires to curl-mini which as no impact
|
|
# as it is not used during the build.
|
|
# However curl-mini is not a published RPM. This would prevent any build
|
|
# outside of OBS. Thus we add a bcond to allow manual build.
|
|
# To force build without the use of curl-mini, --without=curlmini
|
|
# should be passed to rpmbuild
|
|
%bcond_without curlmini
|
|
%if 0%{?suse_version} >= 1330 && 0%{?suse_version} < 1550
|
|
%if %{with curlmini}
|
|
BuildRequires: curl-mini
|
|
%endif
|
|
%endif
|
|
|
|
# Tumbleweed's cmake RPM macro adds -Wl,--no-undefined to the module flags
|
|
# which is totally inappropriate and breaks building 'ENABLE_EXPORTS' style
|
|
# module libraries (eg ibacmp).
|
|
#%%define CMAKE_FLAGS -DCMAKE_MODULE_LINKER_FLAGS=""
|
|
|
|
# Since we recommend developers use Ninja, so should packagers, for consistency.
|
|
%define CMAKE_FLAGS %{nil}
|
|
%if 0%{?suse_version} >= 1300
|
|
BuildRequires: ninja
|
|
%define CMAKE_FLAGS -GNinja
|
|
%define make_jobs ninja -v %{?_smp_mflags}
|
|
%define cmake_install DESTDIR=%{buildroot} ninja install
|
|
%else
|
|
# Fallback to make otherwise
|
|
BuildRequires: make
|
|
%define make_jobs make VERBOSE=1 %{?_smp_mflags}
|
|
%define cmake_install DESTDIR=%{buildroot} make install
|
|
%endif
|
|
|
|
%description
|
|
RDMA core userspace infrastructure and documentation, including initialization
|
|
scripts, kernel driver-specific modprobe override configs, IPoIB network
|
|
scripts, dracut rules, and the rdma-ndd utility.
|
|
|
|
%package devel
|
|
Summary: RDMA core development libraries and headers
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
Requires: %{rdmacm_lname} = %{version}-%{release}
|
|
Requires: %{umad_lname} = %{version}-%{release}
|
|
Requires: %{verbs_lname} = %{version}-%{release}
|
|
%if 0%{?dma_coherent}
|
|
Requires: %{efa_lname} = %{version}-%{release}
|
|
Requires: %{mana_lname} = %{version}-%{release}
|
|
Requires: %{mlx4_lname} = %{version}-%{release}
|
|
Requires: %{mlx5_lname} = %{version}-%{release}
|
|
%endif
|
|
Requires: rsocket = %{version}-%{release}
|
|
|
|
Provides: libibverbs-devel = %{version}-%{release}
|
|
Obsoletes: libibverbs-devel < %{version}-%{release}
|
|
|
|
Provides: libibumad-devel = %{version}-%{release}
|
|
Obsoletes: libibumad-devel < %{version}-%{release}
|
|
Provides: librdmacm-devel = %{version}-%{release}
|
|
|
|
Obsoletes: librdmacm-devel < %{version}-%{release}
|
|
#Requires: ibacm = %%{version}-%%{release}
|
|
Provides: ibacm-devel = %{version}-%{release}
|
|
Obsoletes: ibacm-devel < %{version}-%{release}
|
|
%if %{with_static}
|
|
# Since our pkg-config files include private references to these packages they
|
|
# need to have their .pc files installed too, even for dynamic linking, or
|
|
# pkg-config breaks.
|
|
BuildRequires: pkgconfig(libnl-3.0)
|
|
BuildRequires: pkgconfig(libnl-route-3.0)
|
|
%endif
|
|
|
|
Requires: infiniband-diags = %{version}-%{release}
|
|
Provides: infiniband-diags-devel = %{version}-%{release}
|
|
Obsoletes: infiniband-diags-devel < %{version}-%{release}
|
|
Provides: libibmad-devel = %{version}-%{release}
|
|
Obsoletes: libibmad-devel < %{version}
|
|
|
|
%description devel
|
|
RDMA core development libraries and headers.
|
|
|
|
%package -n libibverbs
|
|
Summary: Library & drivers for direct userspace use of InfiniBand/iWARP/RoCE hardware
|
|
Group: System/Libraries
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
Obsoletes: libcxgb4-rdmav2 < %{version}-%{release}
|
|
Obsoletes: libefa-rdmav2 < %{version}-%{release}
|
|
Obsoletes: libhfi1verbs-rdmav2 < %{version}-%{release}
|
|
Obsoletes: libipathverbs-rdmav2 < %{version}-%{release}
|
|
Obsoletes: libmana-rdmav2 < %{version}-%{release}
|
|
Obsoletes: libmlx4-rdmav2 < %{version}-%{release}
|
|
Obsoletes: libmlx5-rdmav2 < %{version}-%{release}
|
|
Obsoletes: libmthca-rdmav2 < %{version}-%{release}
|
|
Obsoletes: libocrdma-rdmav2 < %{version}-%{release}
|
|
Obsoletes: librxe-rdmav2 < %{version}-%{release}
|
|
%if 0%{?dma_coherent}
|
|
Requires: %{efa_lname} = %{version}-%{release}
|
|
Requires: %{mana_lname} = %{version}-%{release}
|
|
Requires: %{mlx4_lname} = %{version}-%{release}
|
|
Requires: %{mlx5_lname} = %{version}-%{release}
|
|
%endif
|
|
# Recommended packages for rxe
|
|
Recommends: iproute2
|
|
|
|
%description -n libibverbs
|
|
libibverbs is a library that allows userspace processes to use RDMA
|
|
"verbs" as described in the InfiniBand Architecture Specification and
|
|
the RDMA Protocol Verbs Specification. This includes direct hardware
|
|
access from userspace to InfiniBand/iWARP adapters (kernel bypass) for
|
|
fast path operations.
|
|
|
|
Device-specific plug-in ibverbs userspace drivers are included:
|
|
|
|
- libcxgb4: Chelsio T4 iWARP HCA
|
|
- libefa: Amazon Elastic Fabric Adapter
|
|
- libhfi1: Intel Omni-Path HFI
|
|
- libhns: HiSilicon Hip06 SoC
|
|
- libipathverbs: QLogic InfiniPath HCA
|
|
- libirdma: Intel Ethernet Connection RDMA
|
|
- libmana: Microsoft Azure Network Adapter
|
|
- libmlx4: Mellanox ConnectX-3 InfiniBand HCA
|
|
- libmlx5: Mellanox Connect-IB/X-4+ InfiniBand HCA
|
|
- libmthca: Mellanox InfiniBand HCA
|
|
- libocrdma: Emulex OneConnect RDMA/RoCE Device
|
|
- libqedr: QLogic QL4xxx RoCE HCA
|
|
- librxe: A software implementation of the RoCE protocol
|
|
- libsiw: A software implementation of the iWarp protocol
|
|
- libvmw_pvrdma: VMware paravirtual RDMA device
|
|
|
|
%package -n %verbs_lname
|
|
Summary: Ibverbs runtime library
|
|
Group: System/Libraries
|
|
Requires: libibverbs = %{version}
|
|
|
|
%description -n %verbs_lname
|
|
This package contains the ibverbs runtime library.
|
|
|
|
%package -n %efa_lname
|
|
Summary: EFA runtime library
|
|
Group: System/Libraries
|
|
|
|
%description -n %efa_lname
|
|
This package contains the efa runtime library.
|
|
|
|
%package -n %mana_lname
|
|
Summary: MANA runtime library
|
|
Group: System/Libraries
|
|
|
|
%description -n %mana_lname
|
|
This package contains the mana runtime library.
|
|
|
|
%package -n %mlx4_lname
|
|
Summary: MLX4 runtime library
|
|
Group: System/Libraries
|
|
|
|
%description -n %mlx4_lname
|
|
This package contains the mlx4 runtime library.
|
|
|
|
%package -n %mlx5_lname
|
|
Summary: MLX5 runtime library
|
|
Group: System/Libraries
|
|
|
|
%description -n %mlx5_lname
|
|
This package contains the mlx5 runtime library.
|
|
|
|
%package -n libibnetdisc%{ibnetdisc_major}
|
|
Summary: Infiniband Net Discovery runtime library
|
|
Group: System/Libraries
|
|
|
|
%description -n libibnetdisc%{ibnetdisc_major}
|
|
This package contains the Infiniband Net Discovery runtime library needed
|
|
mainly by infiniband-diags.
|
|
|
|
%package -n libibverbs-utils
|
|
Summary: Examples for the libibverbs library
|
|
Group: Productivity/Networking/Other
|
|
Requires: libibverbs%{?_isa} = %{version}
|
|
|
|
%description -n libibverbs-utils
|
|
Useful libibverbs example programs such as ibv_devinfo, which
|
|
displays information about RDMA devices.
|
|
|
|
%package -n ibacm
|
|
Summary: InfiniBand Communication Manager Assistant
|
|
Group: Productivity/Networking/Other
|
|
%{?systemd_requires}
|
|
Requires: %{name}%{?_isa} = %{version}
|
|
Obsoletes: libibacmp1 < %{version}
|
|
Provides: libibacmp1 = %{version}
|
|
|
|
%description -n ibacm
|
|
The ibacm daemon helps reduce the load of managing path record lookups on
|
|
large InfiniBand fabrics by providing a user space implementation of what
|
|
is functionally similar to an ARP cache. The use of ibacm, when properly
|
|
configured, can reduce the SA packet load of a large IB cluster from O(n^2)
|
|
to O(n). The ibacm daemon is started and normally runs in the background,
|
|
user applications need not know about this daemon as long as their app
|
|
uses librdmacm to handle connection bring up/tear down. The librdmacm
|
|
library knows how to talk directly to the ibacm daemon to retrieve data.
|
|
|
|
%package -n infiniband-diags
|
|
Summary: InfiniBand Diagnostic Tools
|
|
Group: Productivity/Networking/Diagnostic
|
|
Requires: perl = %{perl_version}
|
|
|
|
%description -n infiniband-diags
|
|
diags provides IB diagnostic programs and scripts needed to diagnose an
|
|
IB subnet.
|
|
|
|
%package -n libibmad%{mad_major}
|
|
Summary: Libibmad runtime library
|
|
Group: System/Libraries
|
|
|
|
%description -n libibmad%{mad_major}
|
|
Libibmad provides low layer IB functions for use by the IB diagnostic
|
|
and management programs. These include MAD, SA, SMP, and other basic IB
|
|
functions. This package contains the runtime library.
|
|
|
|
%package -n iwpmd
|
|
Summary: Userspace iWarp Port Mapper daemon
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name}%{?_isa} = %{version}
|
|
%{?systemd_requires}
|
|
|
|
%description -n iwpmd
|
|
iwpmd provides a userspace service for iWarp drivers to claim
|
|
tcp ports through the standard socket interface.
|
|
|
|
%package -n %umad_lname
|
|
Summary: OpenFabrics Alliance InfiniBand Userspace Management Datagram library
|
|
Group: System/Libraries
|
|
|
|
%description -n %umad_lname
|
|
libibumad provides the userspace management datagram (umad) library
|
|
functions, which sit on top of the umad modules in the kernel. These
|
|
are used by the IB diagnostic and management tools, including OpenSM.
|
|
|
|
%package -n %rdmacm_lname
|
|
Summary: Userspace RDMA Connection Manager
|
|
Group: System/Libraries
|
|
Requires: %{name} = %{version}
|
|
Provides: librdmacm = %{version}
|
|
Obsoletes: librdmacm < %{version}
|
|
|
|
%description -n %rdmacm_lname
|
|
librdmacm provides a userspace RDMA Communication Management API.
|
|
|
|
%package -n rsocket
|
|
Summary: Preloadable library to turn the socket API RDMA-aware
|
|
# Older librdmacm-tools used to provide rsocket
|
|
Group: System/Libraries
|
|
Conflicts: librdmacm-tools < 2
|
|
|
|
%description -n rsocket
|
|
Existing applications can make use of rsockets through the use this
|
|
preloadable library. See the documentation in the packaged rsocket(7)
|
|
manpage for details.
|
|
|
|
%package -n librdmacm-utils
|
|
Summary: Examples for the librdmacm library
|
|
Group: Productivity/Networking/Other
|
|
Obsoletes: librdmacm-tools < %{version}
|
|
Provides: librdmacm-tools = %{version}
|
|
|
|
%description -n librdmacm-utils
|
|
Example test programs for the librdmacm library.
|
|
|
|
%package -n srp_daemon
|
|
Summary: Tools for using the InfiniBand SRP protocol devices
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name} = %{version}
|
|
Obsoletes: srptools <= 1.0.3
|
|
Provides: srptools = %{version}
|
|
%{?systemd_requires}
|
|
|
|
%description -n srp_daemon
|
|
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 rdma-ndd
|
|
Summary: Daemon to manage RDMA Node Description
|
|
Group: System/Daemons
|
|
Requires: %{name} = %{version}
|
|
# The udev rules in rdma need to be aware of rdma-ndd:
|
|
Conflicts: rdma < 2.1
|
|
%{?systemd_requires}
|
|
|
|
%description -n rdma-ndd
|
|
rdma-ndd is a system daemon which watches for rdma device changes and/or
|
|
hostname changes and updates the Node Description of the rdma devices based
|
|
on those changes.
|
|
|
|
%package -n python3-pyverbs
|
|
Summary: Python3 API over IB verbs
|
|
Group: Development/Languages/Python
|
|
|
|
%description -n python3-pyverbs
|
|
Pyverbs is a Cython-based Python API over libibverbs, providing an
|
|
easy, object-oriented access to IB verbs.
|
|
|
|
%prep
|
|
%setup -q -n %{name}-%{version}%{git_ver}
|
|
#Extract prebuilt pandoc file in the buildlib directory
|
|
(cd buildlib && tar -xf %{S:3})
|
|
%patch0
|
|
|
|
%build
|
|
|
|
# New RPM defines _rundir, usually as /run
|
|
%if 0%{?_rundir:1}
|
|
%else
|
|
%define _rundir /var/run
|
|
%endif
|
|
|
|
%{!?EXTRA_CMAKE_FLAGS: %define EXTRA_CMAKE_FLAGS %{nil}}
|
|
|
|
# Pass all of the rpm paths directly to GNUInstallDirs and our other defines.
|
|
%cmake %{CMAKE_FLAGS} \
|
|
-DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now" \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_INSTALL_BINDIR:PATH=%{_bindir} \
|
|
-DCMAKE_INSTALL_SBINDIR:PATH=%{_sbindir} \
|
|
-DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
|
|
-DCMAKE_INSTALL_LIBEXECDIR:PATH=%{_libexecdir} \
|
|
-DCMAKE_INSTALL_LOCALSTATEDIR:PATH=%{_localstatedir} \
|
|
-DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=%{_sharedstatedir} \
|
|
-DCMAKE_INSTALL_INCLUDEDIR:PATH=include \
|
|
-DCMAKE_INSTALL_INFODIR:PATH=%{_infodir} \
|
|
-DCMAKE_INSTALL_MANDIR:PATH=%{_mandir} \
|
|
-DCMAKE_INSTALL_MODPROBEDIR:PATH=%{_modprobedir} \
|
|
-DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_sysconfdir} \
|
|
-DCMAKE_INSTALL_SYSTEMD_SERVICEDIR:PATH=%{_unitdir} \
|
|
-DCMAKE_INSTALL_SYSTEMD_BINDIR:PATH=%{_prefix}/lib/systemd \
|
|
-DCMAKE_INSTALL_INITDDIR:PATH=%{_initddir} \
|
|
-DCMAKE_INSTALL_RUNDIR:PATH=%{_rundir} \
|
|
-DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/%{name}-%{version} \
|
|
-DCMAKE_INSTALL_UDEV_RULESDIR:PATH=%{_udevrulesdir} \
|
|
-DCMAKE_INSTALL_PERLDIR:PATH=%{perl_vendorlib} \
|
|
%if %{with_static}
|
|
-DENABLE_STATIC=1 \
|
|
%endif
|
|
%{EXTRA_CMAKE_FLAGS} \
|
|
%if %{defined __python3}
|
|
-DPYTHON_EXECUTABLE:PATH=%{__python3} \
|
|
-DCMAKE_INSTALL_PYTHON_ARCH_LIB:PATH=%{python3_sitearch} \
|
|
%endif
|
|
%if %{with_pyverbs}
|
|
-DNO_PYVERBS=0
|
|
%else
|
|
-DNO_PYVERBS=1
|
|
%endif
|
|
%make_jobs
|
|
|
|
%install
|
|
cd build
|
|
%cmake_install
|
|
cd ..
|
|
mkdir -p %{buildroot}/%{_sysconfdir}/rdma
|
|
|
|
%global dracutlibdir %%{_prefix}/lib/dracut/
|
|
|
|
mkdir -p %{buildroot}%{_udevrulesdir}
|
|
mkdir -p %{buildroot}%{dracutlibdir}/modules.d/05rdma
|
|
mkdir -p %{buildroot}%{_modprobedir}
|
|
mkdir -p %{buildroot}%{_unitdir}
|
|
|
|
# Port type setup for mlx4 dual port cards
|
|
install -D -m0644 redhat/rdma.mlx4.sys.modprobe %{buildroot}%{_modprobedir}/50-libmlx4.conf
|
|
install -D -m0644 redhat/rdma.mlx4.conf %{buildroot}/%{_sysconfdir}/rdma/mlx4.conf
|
|
%if 0%{?dma_coherent}
|
|
chmod 0644 %{buildroot}%{_modprobedir}/mlx4.conf
|
|
%endif
|
|
install -D -m0755 redhat/rdma.mlx4-setup.sh %{buildroot}%{_libexecdir}/mlx4-setup.sh
|
|
|
|
# Dracut file for IB support during boot
|
|
install -D -m0644 suse/module-setup.sh %{buildroot}%{dracutlibdir}/modules.d/05rdma/module-setup.sh
|
|
|
|
%if "%{_libexecdir}" != "/usr/libexec"
|
|
sed 's-/usr/libexec-%{_libexecdir}-g' -i %{buildroot}%{_modprobedir}/50-libmlx4.conf
|
|
sed 's-/usr/libexec-%{_libexecdir}-g' -i %{buildroot}%{dracutlibdir}/modules.d/05rdma/module-setup.sh
|
|
%endif
|
|
|
|
# ibacm
|
|
cd build
|
|
LD_LIBRARY_PATH=./lib bin/ib_acme -D . -O
|
|
install -D -m0644 ibacm_opts.cfg %{buildroot}%{_sysconfdir}/rdma/
|
|
|
|
for service in rdma rdma-ndd ibacm iwpmd srp_daemon; do ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rc${service}; done
|
|
|
|
# Delete the package's init.d scripts
|
|
rm -rf %{buildroot}/%{_initddir}/
|
|
rm -rf %{buildroot}/%{_sbindir}/srp_daemon.sh
|
|
|
|
%post -n %verbs_lname -p /sbin/ldconfig
|
|
%postun -n %verbs_lname -p /sbin/ldconfig
|
|
|
|
%post -n %efa_lname -p /sbin/ldconfig
|
|
%postun -n %efa_lname -p /sbin/ldconfig
|
|
|
|
%post -n %mana_lname -p /sbin/ldconfig
|
|
%postun -n %mana_lname -p /sbin/ldconfig
|
|
|
|
%post -n %mlx4_lname -p /sbin/ldconfig
|
|
%postun -n %mlx4_lname -p /sbin/ldconfig
|
|
|
|
%post -n %mlx5_lname -p /sbin/ldconfig
|
|
%postun -n %mlx5_lname -p /sbin/ldconfig
|
|
|
|
%post -n %umad_lname -p /sbin/ldconfig
|
|
%postun -n %umad_lname -p /sbin/ldconfig
|
|
|
|
%post -n %rdmacm_lname -p /sbin/ldconfig
|
|
%postun -n %rdmacm_lname -p /sbin/ldconfig
|
|
|
|
%post -n libibnetdisc%{ibnetdisc_major} -p /sbin/ldconfig
|
|
%postun -n libibnetdisc%{ibnetdisc_major} -p /sbin/ldconfig
|
|
|
|
%post -n libibmad%{mad_major} -p /sbin/ldconfig
|
|
%postun -n libibmad%{mad_major} -p /sbin/ldconfig
|
|
|
|
%pre
|
|
# Avoid restoring outdated stuff in posttrans
|
|
for _f in %{?modprobe_d_files}; do
|
|
[ ! -f "/etc/modprobe.d/${_f}.rpmsave" ] || \
|
|
mv -f "/etc/modprobe.d/${_f}.rpmsave" "/etc/modprobe.d/${_f}.rpmsave.old" || :
|
|
done
|
|
|
|
%post
|
|
# we ship udev rules, so trigger an update.
|
|
%{_bindir}/udevadm trigger --subsystem-match=infiniband --action=change || true
|
|
%{_bindir}/udevadm trigger --subsystem-match=infiniband_mad --action=change || true
|
|
|
|
%posttrans
|
|
# Migration of modprobe.conf files to _modprobedir
|
|
for _f in %{?modprobe_d_files}; do
|
|
[ ! -f "/etc/modprobe.d/${_f}.rpmsave" ] || \
|
|
mv -fv "/etc/modprobe.d/${_f}.rpmsave" "/etc/modprobe.d/${_f}" || :
|
|
done
|
|
|
|
#
|
|
# ibacm
|
|
#
|
|
%pre -n ibacm
|
|
%service_add_pre ibacm.service ibacm.socket
|
|
|
|
%post -n ibacm
|
|
%service_add_post ibacm.service ibacm.socket
|
|
|
|
%preun -n ibacm
|
|
%service_del_preun ibacm.service ibacm.socket
|
|
|
|
%postun -n ibacm
|
|
%service_del_postun ibacm.service ibacm.socket
|
|
|
|
#
|
|
# srp daemon
|
|
#
|
|
%pre -n srp_daemon
|
|
%service_add_pre srp_daemon.service
|
|
|
|
%post -n srp_daemon
|
|
%service_add_post srp_daemon.service
|
|
# we ship udev rules, so trigger an update.
|
|
%{_bindir}/udevadm trigger --subsystem-match=infiniband_mad --action=change
|
|
|
|
%preun -n srp_daemon
|
|
%service_del_preun srp_daemon.service
|
|
|
|
%postun -n srp_daemon
|
|
%service_del_postun srp_daemon.service
|
|
|
|
#
|
|
# iwpmd
|
|
#
|
|
%pre -n iwpmd
|
|
%service_add_pre ibiwpmd.service
|
|
|
|
%post -n iwpmd
|
|
%service_add_post iwpmd.service
|
|
|
|
%preun -n iwpmd
|
|
%service_del_preun iwpmd.service
|
|
|
|
%postun -n iwpmd
|
|
%service_del_postun iwpmd.service
|
|
|
|
#
|
|
# rdma-ndd
|
|
#
|
|
%pre -n rdma-ndd
|
|
%service_add_pre rdma-ndd.service
|
|
|
|
%preun -n rdma-ndd
|
|
%service_del_preun rdma-ndd.service
|
|
|
|
%post -n rdma-ndd
|
|
%service_add_post rdma-ndd.service
|
|
# we ship udev rules, so trigger an update.
|
|
%{_bindir}/udevadm trigger --subsystem-match=infiniband --action=change || true
|
|
|
|
%postun -n rdma-ndd
|
|
%service_del_postun rdma-ndd.service
|
|
|
|
%files
|
|
%dir %{_sysconfdir}/rdma
|
|
%dir %{_sysconfdir}/rdma/modules
|
|
%dir %{_docdir}/%{name}-%{version}
|
|
%dir %{_udevrulesdir}
|
|
%dir %{_modprobedir}
|
|
%doc %{_docdir}/%{name}-%{version}/70-persistent-ipoib.rules
|
|
%doc %{_docdir}/%{name}-%{version}/README.md
|
|
%doc %{_docdir}/%{name}-%{version}/udev.md
|
|
%config(noreplace) %{_sysconfdir}/rdma/mlx4.conf
|
|
%config(noreplace) %{_sysconfdir}/rdma/modules/infiniband.conf
|
|
%config(noreplace) %{_sysconfdir}/rdma/modules/iwarp.conf
|
|
%config(noreplace) %{_sysconfdir}/rdma/modules/opa.conf
|
|
%config(noreplace) %{_sysconfdir}/rdma/modules/rdma.conf
|
|
%config(noreplace) %{_sysconfdir}/rdma/modules/roce.conf
|
|
%if 0%{?dma_coherent}
|
|
%{_modprobedir}/mlx4.conf
|
|
%endif
|
|
%{_modprobedir}/truescale.conf
|
|
%{_unitdir}/rdma-hw.target
|
|
%{_unitdir}/rdma-load-modules@.service
|
|
%dir %{dracutlibdir}
|
|
%dir %{dracutlibdir}/modules.d
|
|
%dir %{dracutlibdir}/modules.d/05rdma
|
|
%{dracutlibdir}/modules.d/05rdma/module-setup.sh
|
|
%{_udevrulesdir}/../rdma_rename
|
|
%{_udevrulesdir}/60-rdma-persistent-naming.rules
|
|
%{_udevrulesdir}/75-rdma-description.rules
|
|
%{_udevrulesdir}/90-rdma-hw-modules.rules
|
|
%{_udevrulesdir}/90-rdma-ulp-modules.rules
|
|
%{_udevrulesdir}/90-rdma-umad.rules
|
|
%{_modprobedir}/50-libmlx4.conf
|
|
%{_libexecdir}/mlx4-setup.sh
|
|
%{_libexecdir}/truescale-serdes.cmds
|
|
%license COPYING.*
|
|
%{_sbindir}/rcrdma
|
|
|
|
%files devel
|
|
%doc %{_docdir}/%{name}-%{version}/MAINTAINERS
|
|
%dir %{_includedir}/infiniband
|
|
%dir %{_includedir}/rdma
|
|
%{_includedir}/infiniband/*
|
|
%{_includedir}/rdma/*
|
|
%if %{with_static}
|
|
%{_libdir}/lib*.a
|
|
%endif
|
|
%{_libdir}/lib*.so
|
|
%{_libdir}/pkgconfig/*.pc
|
|
%{_mandir}/man3/ibnd_*
|
|
%{_mandir}/man3/ibv_*
|
|
%{_mandir}/man3/rdma*
|
|
%{_mandir}/man3/umad*
|
|
%{_mandir}/man3/*_to_ibv_rate.*
|
|
%{_mandir}/man7/rdma_cm.*
|
|
%if 0%{?dma_coherent}
|
|
%{_mandir}/man3/efadv*
|
|
%{_mandir}/man3/manadv*
|
|
%{_mandir}/man3/mlx5dv*
|
|
%{_mandir}/man3/mlx4dv*
|
|
%{_mandir}/man7/efadv*
|
|
%{_mandir}/man7/manadv*
|
|
%{_mandir}/man7/mlx5dv*
|
|
%{_mandir}/man7/mlx4dv*
|
|
%endif
|
|
|
|
%files -n libibverbs
|
|
%dir %{_sysconfdir}/libibverbs.d
|
|
%dir %{_libdir}/libibverbs
|
|
%{_libdir}/libibverbs/*.so
|
|
%config(noreplace) %{_sysconfdir}/libibverbs.d/*.driver
|
|
%doc %{_docdir}/%{name}-%{version}/libibverbs.md
|
|
%doc %{_docdir}/%{name}-%{version}/rxe.md
|
|
%doc %{_docdir}/%{name}-%{version}/tag_matching.md
|
|
%{_mandir}/man7/rxe*
|
|
|
|
%files -n libibnetdisc%{ibnetdisc_major}
|
|
%{_libdir}/libibnetdisc.so.*
|
|
|
|
%files -n libibmad%{mad_major}
|
|
%{_libdir}/libibmad.so.*
|
|
|
|
%files -n %verbs_lname
|
|
%{_libdir}/libibverbs*.so.*
|
|
|
|
%if 0%{?dma_coherent}
|
|
%files -n %efa_lname
|
|
%{_libdir}/libefa*.so.*
|
|
|
|
%files -n %mana_lname
|
|
%{_libdir}/libmana*.so.*
|
|
|
|
%files -n %mlx4_lname
|
|
%{_libdir}/libmlx4*.so.*
|
|
|
|
%files -n %mlx5_lname
|
|
%{_libdir}/libmlx5*.so.*
|
|
%endif
|
|
|
|
%files -n libibverbs-utils
|
|
%{_bindir}/ibv_*
|
|
%{_mandir}/man1/ibv_*
|
|
|
|
%files -n ibacm
|
|
%config(noreplace) %{_sysconfdir}/rdma/ibacm_opts.cfg
|
|
%{_bindir}/ib_acme
|
|
%{_sbindir}/ibacm
|
|
%{_mandir}/man1/ib_acme.*
|
|
%{_mandir}/man7/ibacm.*
|
|
%{_mandir}/man7/ibacm_prov.*
|
|
%{_mandir}/man8/ibacm.*
|
|
%{_unitdir}/ibacm.service
|
|
%{_unitdir}/ibacm.socket
|
|
%dir %{_libdir}/ibacm
|
|
%{_libdir}/ibacm/*
|
|
%{_sbindir}/rcibacm
|
|
%doc %{_docdir}/%{name}-%{version}/ibacm.md
|
|
|
|
%files -n infiniband-diags
|
|
%dir %{_sysconfdir}/infiniband-diags
|
|
%config(noreplace) %{_sysconfdir}/infiniband-diags/*
|
|
%{_sbindir}/ibaddr
|
|
%{_mandir}/man8/ibaddr*
|
|
%{_sbindir}/ibnetdiscover
|
|
%{_mandir}/man8/ibnetdiscover*
|
|
%{_sbindir}/ibping
|
|
%{_mandir}/man8/ibping*
|
|
%{_sbindir}/ibportstate
|
|
%{_mandir}/man8/ibportstate*
|
|
%{_sbindir}/ibroute
|
|
%{_mandir}/man8/ibroute.*
|
|
%{_sbindir}/ibstat
|
|
%{_mandir}/man8/ibstat.*
|
|
%{_sbindir}/ibsysstat
|
|
%{_mandir}/man8/ibsysstat*
|
|
%{_sbindir}/ibtracert
|
|
%{_mandir}/man8/ibtracert*
|
|
%{_sbindir}/perfquery
|
|
%{_mandir}/man8/perfquery*
|
|
%{_sbindir}/sminfo
|
|
%{_mandir}/man8/sminfo*
|
|
%{_sbindir}/smpdump
|
|
%{_mandir}/man8/smpdump*
|
|
%{_sbindir}/smpquery
|
|
%{_mandir}/man8/smpquery*
|
|
%{_sbindir}/saquery
|
|
%{_mandir}/man8/saquery*
|
|
%{_sbindir}/vendstat
|
|
%{_mandir}/man8/vendstat*
|
|
%{_sbindir}/iblinkinfo
|
|
%{_mandir}/man8/iblinkinfo*
|
|
%{_sbindir}/ibqueryerrors
|
|
%{_mandir}/man8/ibqueryerrors*
|
|
%{_sbindir}/ibcacheedit
|
|
%{_mandir}/man8/ibcacheedit*
|
|
%{_sbindir}/ibccquery
|
|
%{_mandir}/man8/ibccquery*
|
|
%{_sbindir}/ibccconfig
|
|
%{_mandir}/man8/ibccconfig*
|
|
%{_sbindir}/dump_fts
|
|
%{_mandir}/man8/dump_fts*
|
|
%{_sbindir}/ibhosts
|
|
%{_mandir}/man8/ibhosts*
|
|
%{_sbindir}/ibswitches
|
|
%{_mandir}/man8/ibswitches*
|
|
%{_sbindir}/ibnodes
|
|
%{_mandir}/man8/ibnodes*
|
|
%{_sbindir}/ibrouters
|
|
%{_mandir}/man8/ibrouters*
|
|
%{_sbindir}/ibfindnodesusing.pl
|
|
%{_mandir}/man8/ibfindnodesusing*
|
|
%{_sbindir}/ibidsverify.pl
|
|
%{_mandir}/man8/ibidsverify*
|
|
%{_sbindir}/check_lft_balance.pl
|
|
%{_mandir}/man8/check_lft_balance*
|
|
%{_sbindir}/dump_lfts.sh
|
|
%{_mandir}/man8/dump_lfts*
|
|
%{_sbindir}/dump_mfts.sh
|
|
%{_mandir}/man8/dump_mfts*
|
|
%{_sbindir}/ibstatus
|
|
%{_mandir}/man8/ibstatus*
|
|
%{_mandir}/man8/infiniband-diags*
|
|
%{perl_vendorlib}/IBswcountlimits.pm
|
|
|
|
%files -n iwpmd
|
|
%dir %{_sysconfdir}/rdma
|
|
%dir %{_sysconfdir}/rdma/modules
|
|
%{_sbindir}/iwpmd
|
|
%{_sbindir}/rciwpmd
|
|
%{_unitdir}/iwpmd.service
|
|
%config(noreplace) %{_sysconfdir}/rdma/modules/iwpmd.conf
|
|
%config(noreplace) %{_sysconfdir}/iwpmd.conf
|
|
%{_udevrulesdir}/90-iwpmd.rules
|
|
%{_mandir}/man8/iwpmd.*
|
|
%{_mandir}/man5/iwpmd.*
|
|
|
|
%files -n %umad_lname
|
|
%{_libdir}/libibumad*.so.*
|
|
|
|
%files -n %rdmacm_lname
|
|
%{_libdir}/librdmacm*.so.*
|
|
%doc %{_docdir}/%{name}-%{version}/librdmacm.md
|
|
|
|
%files -n rsocket
|
|
%dir %{_libdir}/rsocket
|
|
%{_libdir}/rsocket/*.so*
|
|
%{_mandir}/man7/rsocket.*
|
|
|
|
%files -n librdmacm-utils
|
|
%{_bindir}/cmtime
|
|
%{_bindir}/mckey
|
|
%{_bindir}/rcopy
|
|
%{_bindir}/rdma_client
|
|
%{_bindir}/rdma_server
|
|
%{_bindir}/rdma_xclient
|
|
%{_bindir}/rdma_xserver
|
|
%{_bindir}/riostream
|
|
%{_bindir}/rping
|
|
%{_bindir}/rstream
|
|
%{_bindir}/ucmatose
|
|
%{_bindir}/udaddy
|
|
%{_bindir}/udpong
|
|
%{_mandir}/man1/cmtime.*
|
|
%{_mandir}/man1/mckey.*
|
|
%{_mandir}/man1/rcopy.*
|
|
%{_mandir}/man1/rdma_client.*
|
|
%{_mandir}/man1/rdma_server.*
|
|
%{_mandir}/man1/rdma_xclient.*
|
|
%{_mandir}/man1/rdma_xserver.*
|
|
%{_mandir}/man1/riostream.*
|
|
%{_mandir}/man1/rping.*
|
|
%{_mandir}/man1/rstream.*
|
|
%{_mandir}/man1/ucmatose.*
|
|
%{_mandir}/man1/udaddy.*
|
|
%{_mandir}/man1/udpong.*
|
|
|
|
%files -n srp_daemon
|
|
%dir %{_libexecdir}/srp_daemon
|
|
%dir %{_sysconfdir}/rdma
|
|
%dir %{_sysconfdir}/rdma/modules
|
|
%config(noreplace) %{_sysconfdir}/srp_daemon.conf
|
|
%config(noreplace) %{_sysconfdir}/rdma/modules/srp_daemon.conf
|
|
%{_udevrulesdir}/60-srp_daemon.rules
|
|
%{_libexecdir}/srp_daemon/start_on_all_ports
|
|
%{_unitdir}/srp_daemon.service
|
|
%{_unitdir}/srp_daemon_port@.service
|
|
%{_sbindir}/ibsrpdm
|
|
%{_sbindir}/srp_daemon
|
|
%{_sbindir}/run_srp_daemon
|
|
%{_sbindir}/rcsrp_daemon
|
|
%{_mandir}/man5/srp_daemon.service.5*
|
|
%{_mandir}/man5/srp_daemon_port@.service.5*
|
|
%{_mandir}/man8/ibsrpdm.8*
|
|
%{_mandir}/man8/srp_daemon.8*
|
|
%doc %{_docdir}/%{name}-%{version}/ibsrpdm.md
|
|
|
|
%files -n rdma-ndd
|
|
%{_sbindir}/rdma-ndd
|
|
%{_sbindir}/rcrdma-ndd
|
|
%{_unitdir}/rdma-ndd.service
|
|
%{_mandir}/man8/rdma-ndd.8*
|
|
%{_udevrulesdir}/60-rdma-ndd.rules
|
|
|
|
%if %{with_pyverbs}
|
|
%files -n python3-pyverbs
|
|
%{python3_sitearch}/pyverbs
|
|
%dir %{_docdir}/%{name}-%{version}/tests/
|
|
%{_docdir}/%{name}-%{version}/tests/*.py
|
|
%endif
|
|
|
|
%changelog
|