Name: rdma-core Version: 20.1 Release: 3%{?dist} Summary: RDMA core userspace libraries and daemons %ifnarch s390 %{arm} %define dma_coherent 1 %endif # 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 License: GPLv2 or BSD Url: https://github.com/linux-rdma/rdma-core Source: https://github.com/linux-rdma/rdma-core/releases/download/v%{version}/%{name}-%{version}.tar.gz BuildRequires: binutils BuildRequires: cmake >= 2.8.11 BuildRequires: gcc BuildRequires: libudev-devel BuildRequires: pkgconfig BuildRequires: pkgconfig(libnl-3.0) BuildRequires: pkgconfig(libnl-route-3.0) %ifnarch s390 BuildRequires: valgrind-devel %endif BuildRequires: systemd BuildRequires: systemd-devel BuildRequires: python3 BuildRequires: perl-generators BuildRequires: pandoc Requires: dracut, kmod, systemd # Red Hat/Fedora previously shipped redhat/ as a stand-alone # package called 'rdma', which we're supplanting here. Provides: rdma = %{version}-%{release} Obsoletes: rdma < %{version}-%{release} Provides: rdma-ndd = %{version}-%{release} Obsoletes: rdma-ndd < %{version}-%{release} Obsoletes: libehca < 1.2.2-7 # the ndd utility moved from infiniband-diags to rdma-core Conflicts: infiniband-diags <= 1.6.7 # Since we recommend developers use Ninja, so should packagers, for consistency. %define CMAKE_FLAGS %{nil} %if 0%{?fedora} >= 23 # Ninja was introduced in FC23 BuildRequires: ninja-build %define CMAKE_FLAGS -GNinja %define make_jobs ninja-build -v %{?_smp_mflags} %define cmake_install DESTDIR=%{buildroot} ninja-build install %else # Fallback to make otherwise BuildRequires: make %define make_jobs make -v %{?_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 Requires: %{name}%{?_isa} = %{version}-%{release} Requires: libibverbs = %{version}-%{release} Provides: libibverbs-devel = %{version}-%{release} Obsoletes: libibverbs-devel < %{version}-%{release} Provides: libibverbs-devel-static = %{version}-%{release} Obsoletes: libibverbs-devel-static < %{version}-%{release} Obsoletes: libibcm-devel < %{version}-%{release} Obsoletes: libibcm-static < %{version}-%{release} Requires: libibumad = %{version}-%{release} Provides: libibumad-devel = %{version}-%{release} Obsoletes: libibumad-devel < %{version}-%{release} Provides: libibumad-static = %{version}-%{release} Obsoletes: libibumad-static < %{version}-%{release} Requires: librdmacm = %{version}-%{release} Provides: librdmacm-devel = %{version}-%{release} Obsoletes: librdmacm-devel < %{version}-%{release} Provides: librdmacm-static = %{version}-%{release} Obsoletes: librdmacm-static < %{version}-%{release} Requires: ibacm = %{version}-%{release} Provides: ibacm-devel = %{version}-%{release} Obsoletes: ibacm-devel < %{version}-%{release} Provides: libcxgb3-static = %{version}-%{release} Obsoletes: libcxgb3-static < %{version}-%{release} Provides: libcxgb4-static = %{version}-%{release} Obsoletes: libcxgb4-static < %{version}-%{release} Provides: libhfi1-static = %{version}-%{release} Obsoletes: libhfi1-static < %{version}-%{release} Provides: libipathverbs-static = %{version}-%{release} Obsoletes: libipathverbs-static < %{version}-%{release} %if 0%{?dma_coherent} Provides: libmlx4-static = %{version}-%{release} Obsoletes: libmlx4-static < %{version}-%{release} Provides: libmlx5-static = %{version}-%{release} Obsoletes: libmlx5-static < %{version}-%{release} %endif Provides: libnes-static = %{version}-%{release} Obsoletes: libnes-static < %{version}-%{release} Provides: libocrdma-static = %{version}-%{release} Obsoletes: libocrdma-static < %{version}-%{release} Provides: libi40iw-devel-static = %{version}-%{release} Obsoletes: libi40iw-devel-static < %{version}-%{release} Provides: libmthca-static = %{version}-%{release} Obsoletes: libmthca-static < %{version}-%{release} %description devel RDMA core development libraries and headers. %package -n libibverbs Summary: A library and drivers for direct userspace use of RDMA (InfiniBand/iWARP/RoCE) hardware Requires: %{name}%{?_isa} = %{version}-%{release} Provides: libcxgb3 = %{version}-%{release} Obsoletes: libcxgb3 < %{version}-%{release} Provides: libcxgb4 = %{version}-%{release} Obsoletes: libcxgb4 < %{version}-%{release} Provides: libhfi1 = %{version}-%{release} Obsoletes: libhfi1 < %{version}-%{release} Provides: libi40iw = %{version}-%{release} Obsoletes: libi40iw < %{version}-%{release} Provides: libipathverbs = %{version}-%{release} Obsoletes: libipathverbs < %{version}-%{release} %if 0%{?dma_coherent} Provides: libmlx4 = %{version}-%{release} Obsoletes: libmlx4 < %{version}-%{release} %ifnarch s390x Provides: libmlx5 = %{version}-%{release} Obsoletes: libmlx5 < %{version}-%{release} %endif %endif Provides: libmthca = %{version}-%{release} Obsoletes: libmthca < %{version}-%{release} Provides: libnes = %{version}-%{release} Obsoletes: libnes < %{version}-%{release} Provides: libocrdma = %{version}-%{release} Obsoletes: libocrdma < %{version}-%{release} Provides: librxe = %{version}-%{release} Obsoletes: librxe < %{version}-%{release} Provides: libusnic_verbs = %{version}-%{release} Obsoletes: libusnic_verbs < %{version}-%{release} %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: - libcxgb3: Chelsio T3 iWARP HCA - libcxgb4: Chelsio T4 iWARP HCA - libhfi1: Intel Omni-Path HFI - libhns: HiSilicon Hip06 SoC - libi40iw: Intel Ethernet Connection X722 RDMA - libipathverbs: QLogic InfiniPath HCA - libmlx4: Mellanox ConnectX-3 InfiniBand HCA (except arm, s390) - libmlx5: Mellanox Connect-IB/X-4+ InfiniBand HCA (except arm, s390, s390x) - libmthca: Mellanox InfiniBand HCA - libnes: NetEffect RNIC - libocrdma: Emulex OneConnect RDMA/RoCE Device - libqedr: QLogic QL4xxx RoCE HCA - librxe: A software implementation of the RoCE protocol - libvmw_pvrdma: VMware paravirtual RDMA device %package -n libibverbs-utils Summary: Examples for the libibverbs library Requires: libibverbs%{?_isa} = %{version}-%{release} %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 %{?systemd_requires} Requires: %{name}%{?_isa} = %{version}-%{release} %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 iwpmd Summary: iWarp Port Mapper userspace daemon %{?systemd_requires} Requires: %{name}%{?_isa} = %{version}-%{release} %description -n iwpmd iwpmd provides a userspace service for iWarp drivers to claim tcp ports through the standard socket interface. %package -n libibumad Summary: OpenFabrics Alliance InfiniBand umad (userspace management datagram) library Requires: %{name}%{?_isa} = %{version}-%{release} %description -n libibumad 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 librdmacm Summary: Userspace RDMA Connection Manager Requires: %{name}%{?_isa} = %{version}-%{release} %description -n librdmacm librdmacm provides a userspace RDMA Communication Management API. %package -n librdmacm-utils Summary: Examples for the librdmacm library Requires: librdmacm%{?_isa} = %{version}-%{release} %description -n librdmacm-utils Example test programs for the librdmacm library. %package -n srp_daemon Summary: Tools for using the InfiniBand SRP protocol devices Obsoletes: srptools <= 1.0.3 Provides: srptools = %{version}-%{release} Obsoletes: openib-srptools <= 0.0.6 %{?systemd_requires} Requires: %{name}%{?_isa} = %{version}-%{release} %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. %prep %setup %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_BUILD_TYPE=Release \ -DCMAKE_INSTALL_BINDIR:PATH=%{_bindir} \ -DCMAKE_INSTALL_SBINDIR:PATH=%{_sbindir} \ -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \ -DCMAKE_INSTALL_LIBEXECDIR:PATH=%{_libexecdir} \ -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=%{_localstatedir} \ -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=%{_sharedstatedir} \ -DCMAKE_INSTALL_INCLUDEDIR:PATH=%{_includedir} \ -DCMAKE_INSTALL_INFODIR:PATH=%{_infodir} \ -DCMAKE_INSTALL_MANDIR:PATH=%{_mandir} \ -DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_sysconfdir} \ -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR:PATH=%{_unitdir} \ -DCMAKE_INSTALL_INITDDIR:PATH=%{_initrddir} \ -DCMAKE_INSTALL_RUNDIR:PATH=%{_rundir} \ -DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/%{name}-%{version} \ -DCMAKE_INSTALL_UDEV_RULESDIR:PATH=%{_udevrulesdir} \ %{EXTRA_CMAKE_FLAGS} \ . %make_jobs %install %cmake_install mkdir -p %{buildroot}/%{_sysconfdir}/rdma # Red Hat specific glue %global dracutlibdir %{_prefix}/lib/dracut %global sysmodprobedir %{_prefix}/lib/modprobe.d mkdir -p %{buildroot}%{_sysconfdir}/udev/rules.d mkdir -p %{buildroot}%{_libexecdir} mkdir -p %{buildroot}%{_udevrulesdir} mkdir -p %{buildroot}%{dracutlibdir}/modules.d/05rdma mkdir -p %{buildroot}%{sysmodprobedir} install -D -m0644 redhat/rdma.conf %{buildroot}/%{_sysconfdir}/rdma/rdma.conf install -D -m0644 redhat/rdma.sriov-vfs %{buildroot}/%{_sysconfdir}/rdma/sriov-vfs %if 0%{?dma_coherent} install -D -m0644 redhat/rdma.mlx4.conf %{buildroot}/%{_sysconfdir}/rdma/mlx4.conf install -D -m0644 redhat/rdma.mlx4.sys.modprobe %{buildroot}%{sysmodprobedir}/libmlx4.conf install -D -m0755 redhat/rdma.mlx4-setup.sh %{buildroot}%{_libexecdir}/mlx4-setup.sh %endif install -D -m0644 redhat/rdma.service %{buildroot}%{_unitdir}/rdma.service install -D -m0755 redhat/rdma.modules-setup.sh %{buildroot}%{dracutlibdir}/modules.d/05rdma/module-setup.sh install -D -m0644 redhat/rdma.udev-rules %{buildroot}%{_udevrulesdir}/98-rdma.rules install -D -m0755 redhat/rdma.kernel-init %{buildroot}%{_libexecdir}/rdma-init-kernel install -D -m0755 redhat/rdma.sriov-init %{buildroot}%{_libexecdir}/rdma-set-sriov-vf # ibacm bin/ib_acme -D . -O install -D -m0644 ibacm_opts.cfg %{buildroot}%{_sysconfdir}/rdma/ # Delete the package's init.d scripts rm -rf %{buildroot}/%{_initrddir}/ rm -f %{buildroot}/%{_sbindir}/srp_daemon.sh %ldconfig_scriptlets -n libibverbs %ldconfig_scriptlets -n libibumad %ldconfig_scriptlets -n librdmacm %post -n ibacm %systemd_post ibacm.service %preun -n ibacm %systemd_preun ibacm.service %postun -n ibacm %systemd_postun_with_restart ibacm.service %post -n srp_daemon %systemd_post srp_daemon.service %preun -n srp_daemon %systemd_preun srp_daemon.service %postun -n srp_daemon %systemd_postun_with_restart srp_daemon.service %post -n iwpmd %systemd_post iwpmd.service %preun -n iwpmd %systemd_preun iwpmd.service %postun -n iwpmd %systemd_postun_with_restart iwpmd.service %files %dir %{_sysconfdir}/rdma %dir %{_docdir}/%{name}-%{version} %doc %{_docdir}/%{name}-%{version}/README.md %doc %{_docdir}/%{name}-%{version}/rxe.md %doc %{_docdir}/%{name}-%{version}/udev.md %doc %{_docdir}/%{name}-%{version}/tag_matching.md %if 0%{?dma_coherent} %config(noreplace) %{_sysconfdir}/rdma/mlx4.conf %config(noreplace) %{_sysconfdir}/modprobe.d/mlx4.conf %{sysmodprobedir}/libmlx4.conf %{_libexecdir}/mlx4-setup.sh %endif %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 %config(noreplace) %{_sysconfdir}/rdma/rdma.conf %config(noreplace) %{_sysconfdir}/rdma/sriov-vfs %config(noreplace) %{_sysconfdir}/udev/rules.d/* %config(noreplace) %{_sysconfdir}/modprobe.d/truescale.conf %{_unitdir}/rdma-hw.target %{_unitdir}/rdma-load-modules@.service %{_unitdir}/rdma.service %dir %{dracutlibdir}/modules.d/05rdma %{dracutlibdir}/modules.d/05rdma/module-setup.sh %{_udevrulesdir}/60-rdma-ndd.rules %{_udevrulesdir}/75-rdma-description.rules %{_udevrulesdir}/90-rdma-hw-modules.rules %{_udevrulesdir}/90-rdma-ulp-modules.rules %{_udevrulesdir}/90-rdma-umad.rules %{_udevrulesdir}/98-rdma.rules %{_libexecdir}/rdma-init-kernel %{_libexecdir}/rdma-set-sriov-vf %{_libexecdir}/truescale-serdes.cmds %{_bindir}/rxe_cfg %{_sbindir}/rdma-ndd %{_unitdir}/rdma-ndd.service %{_mandir}/man7/rxe* %{_mandir}/man8/rdma-ndd.* %{_mandir}/man8/rxe* %license COPYING.* %files devel %doc %{_docdir}/%{name}-%{version}/MAINTAINERS %dir %{_includedir}/infiniband %dir %{_includedir}/rdma %{_includedir}/infiniband/* %{_includedir}/rdma/* %{_libdir}/lib*.so %{_libdir}/pkgconfig/*.pc %{_mandir}/man3/ibv_* %{_mandir}/man3/rdma* %{_mandir}/man3/umad* %{_mandir}/man3/*_to_ibv_rate.* %{_mandir}/man7/rdma_cm.* %if 0%{?dma_coherent} %{_mandir}/man3/mlx5dv* %{_mandir}/man7/mlx5dv* %{_mandir}/man3/mlx4dv* %{_mandir}/man7/mlx4dv* %endif %files -n libibverbs %dir %{_sysconfdir}/libibverbs.d %dir %{_libdir}/libibverbs %{_libdir}/libibverbs*.so.* %{_libdir}/libibverbs/*.so %if 0%{?dma_coherent} %{_libdir}/libmlx5.so.* %{_libdir}/libmlx4.so.* %endif %config(noreplace) %{_sysconfdir}/libibverbs.d/*.driver %doc %{_docdir}/%{name}-%{version}/libibverbs.md %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/ibacm.* %{_mandir}/man1/ib_acme.* %{_mandir}/man7/ibacm.* %{_mandir}/man7/ibacm_prov.* %{_unitdir}/ibacm.service %{_unitdir}/ibacm.socket %dir %{_libdir}/ibacm %{_libdir}/ibacm/* %doc %{_docdir}/%{name}-%{version}/ibacm.md %files -n iwpmd %{_sbindir}/iwpmd %{_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 libibumad %{_libdir}/libibumad*.so.* %files -n librdmacm %{_libdir}/librdmacm*.so.* %dir %{_libdir}/rsocket %{_libdir}/rsocket/*.so* %doc %{_docdir}/%{name}-%{version}/librdmacm.md %{_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 %config(noreplace) %{_sysconfdir}/srp_daemon.conf %config(noreplace) %{_sysconfdir}/rdma/modules/srp_daemon.conf %{_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 %{_udevrulesdir}/60-srp_daemon.rules %{_mandir}/man1/ibsrpdm.1* %{_mandir}/man1/srp_daemon.1* %{_mandir}/man5/srp_daemon.service.5* %{_mandir}/man5/srp_daemon_port@.service.5* %doc %{_docdir}/%{name}-%{version}/ibsrpdm.md %changelog * Sat Feb 02 2019 Fedora Release Engineering - 20.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Wed Jan 23 2019 Björn Esser - 20.1-2 - Append curdir to CMake invokation. (#1668512) * Fri Oct 19 2018 Jarod Wilson - 20.1-1 - Long overdue update to upstream v20.1 stable release * Sat Jul 14 2018 Fedora Release Engineering - 16.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Sun Mar 18 2018 Iryna Shcherbina - 16.2-4 - Update Python 2 dependency declarations to new packaging standards (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) * Tue Feb 06 2018 Orion Poplawski - 16.2-3 - Build for s390/x * Tue Feb 06 2018 Patrick Uiterwijk - 16.2-2 - Fix escaped macro * Sun Feb 04 2018 Doug Ledford - 16.2-1 - Update to rdma-core-16.2 - Drop the old sysv initscript files * Wed Aug 09 2017 Jarod Wilson - 14-4 - Make use of systemd_requires, own srp_daemon dir * Tue Aug 01 2017 Jarod Wilson - 14-3 - Revert work-around for ppc64le library issues - Add Obsoletes/Provides for libusnic_verbs * Thu Jul 27 2017 Fedora Release Engineering - 14-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Tue Jul 25 2017 Jarod Wilson - 14-1 - Update to upstream v14 release - Sync packaging updates from RHEL and upstream * Sat Feb 11 2017 Fedora Release Engineering - 12-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Fri Jan 27 2017 Jarod Wilson - 12-1 - Update to upstream final v12 release * Wed Jan 25 2017 Jarod Wilson - 12-0.1.rc3.1 - Initial import to Fedora package database via post-v12-rc3 git snapshot