| # | |
| # spec file for package rdma-core | |
| # | |
| # Copyright (c) 2025 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 %{?_with_static: 1} %{?!_with_static: 0} | |
| %define with_pyverbs %{?_with_pyverbs: 1} %{?!_with_pyverbs: 0} | |
| %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 %{nil} | |
| Name: rdma-core | |
| Version: 66.0 | |
| 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 hns_so_major 1 | |
| %define ionic_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 bnxt_re_so_major 1 | |
| %define bnxt_re_lname libbnxt_re%{bnxt_re_so_major} | |
| %define efa_lname libefa%{efa_so_major} | |
| %define hns_lname libhns%{hns_so_major} | |
| %define ionic_lname libionic%{ionic_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 | |
| BuildRequires: binutils | |
| BuildRequires: cmake >= 2.8.11 | |
| BuildRequires: gcc | |
| BuildRequires: pandoc | |
| # perl is needed for the proper rpm macros | |
| %if %{?suse_version} > 1550 | |
| BuildRequires: perl | |
| %endif | |
| BuildRequires: pkgconfig | |
| BuildRequires: python3-base | |
| BuildRequires: python3-docutils | |
| 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 loongarch64 | |
| %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) | |
| %if %{with systemd} | |
| BuildRequires: pkgconfig(systemd) | |
| %{systemd_requires} | |
| Requires: kmod | |
| %endif | |
| 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: %{bnxt_re_lname} = %{version}-%{release} | |
| Requires: %{efa_lname} = %{version}-%{release} | |
| Requires: %{hns_lname} = %{version}-%{release} | |
| Requires: %{ionic_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 | |
| Obsoletes: libcxgb4-rdmav2 < %{version}-%{release} | |
| Obsoletes: libefa-rdmav2 < %{version}-%{release} | |
| Obsoletes: libhfi1verbs-rdmav2 < %{version}-%{release} | |
| Obsoletes: libhns-rdmav2 < %{version}-%{release} | |
| Obsoletes: libionic-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: %{bnxt_re_lname} = %{version}-%{release} | |
| Requires: %{efa_lname} = %{version}-%{release} | |
| Requires: %{hns_lname} = %{version}-%{release} | |
| Requires: %{ionic_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 Hip08+ SoC | |
| - libionic: AMD Pensando Distributed Services Card (DSC) RDMA/RoCE Support | |
| - 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 %bnxt_re_lname | |
| Summary: BNXT_RE runtime library | |
| Group: System/Libraries | |
| %description -n %bnxt_re_lname | |
| This package contains the bnxt_re 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 %hns_lname | |
| Summary: HNS runtime library | |
| Group: System/Libraries | |
| %description -n %hns_lname | |
| This package contains the hns runtime library. | |
| %package -n %ionic_lname | |
| Summary: IONIC runtime library | |
| Group: System/Libraries | |
| %description -n %ionic_lname | |
| This package contains the ionic 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 | |
| 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} | |
| %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/50rdma | |
| 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 kernel-boot/dracut/50rdma/module-setup.sh %{buildroot}%{dracutlibdir}/modules.d/50rdma/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/50rdma/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/ | |
| %if 0%{?suse_version} < 1600 | |
| for service in rdma rdma-ndd ibacm iwpmd srp_daemon; do ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rc${service}; done | |
| %endif | |
| # Delete the package's init.d scripts | |
| rm -rf %{buildroot}/%{_initddir}/ | |
| rm -rf %{buildroot}/%{_sbindir}/srp_daemon.sh | |
| %ldconfig_scriptlets -n %verbs_lname | |
| %ldconfig_scriptlets -n %bnxt_re_lname | |
| %ldconfig_scriptlets -n %efa_lname | |
| %ldconfig_scriptlets -n %hns_lname | |
| %ldconfig_scriptlets -n %ionic_lname | |
| %ldconfig_scriptlets -n %mana_lname | |
| %ldconfig_scriptlets -n %mlx4_lname | |
| %ldconfig_scriptlets -n %mlx5_lname | |
| %ldconfig_scriptlets -n %umad_lname | |
| %ldconfig_scriptlets -n %rdmacm_lname | |
| %ldconfig_scriptlets -n libibnetdisc%{ibnetdisc_major} | |
| %ldconfig_scriptlets -n libibmad%{mad_major} | |
| %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 | |
| %{_unitdir}/rdma-load-modules@.service.d/ | |
| %dir %{dracutlibdir} | |
| %dir %{dracutlibdir}/modules.d | |
| %dir %{dracutlibdir}/modules.d/50rdma | |
| %{dracutlibdir}/modules.d/50rdma/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 | |
| %{_sbindir}/rdma_topo | |
| %license COPYING.* | |
| %if 0%{?suse_version} < 1600 | |
| %{_sbindir}/rcrdma | |
| %endif | |
| %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/sa_key* | |
| %{_mandir}/man3/umad* | |
| %{_mandir}/man3/*_to_ibv_rate.* | |
| %{_mandir}/man7/rdma_cm.* | |
| %if 0%{?dma_coherent} | |
| %{_mandir}/man3/bnxt_re_dv* | |
| %{_mandir}/man3/efadv* | |
| %{_mandir}/man3/hnsdv* | |
| %{_mandir}/man3/ionic_dv* | |
| %{_mandir}/man3/manadv* | |
| %{_mandir}/man3/mlx5dv* | |
| %{_mandir}/man3/mlx4dv* | |
| %{_mandir}/man7/bnxt_re_dv* | |
| %{_mandir}/man7/efadv* | |
| %{_mandir}/man7/hnsdv* | |
| %{_mandir}/man7/ionicdv* | |
| %{_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* | |
| %{_prefix}/lib/sysusers.d/rdma.conf | |
| %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 %bnxt_re_lname | |
| %{_libdir}/libbnxt_re*.so.* | |
| %files -n %efa_lname | |
| %{_libdir}/libefa*.so.* | |
| %files -n %hns_lname | |
| %defattr(-,root,root) | |
| %{_libdir}/libhns*.so.* | |
| %files -n %ionic_lname | |
| %{_libdir}/libionic*.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/* | |
| %if 0%{?suse_version} < 1600 | |
| %{_sbindir}/rcibacm | |
| %endif | |
| %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 | |
| %if 0%{?suse_version} < 1600 | |
| %{_sbindir}/rciwpmd | |
| %endif | |
| %{_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 | |
| %if 0%{?suse_version} < 1600 | |
| %{_sbindir}/rcsrp_daemon | |
| %endif | |
| %{_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 | |
| %if 0%{?suse_version} < 1600 | |
| %{_sbindir}/rcrdma-ndd | |
| %endif | |
| %{_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 |