From 2c2e63a506a95f55d86cd6c086230dee2848996c Mon Sep 17 00:00:00 2001 From: Doug Ledford Date: Sun, 4 Feb 2018 14:59:03 -0500 Subject: [PATCH] redhat/spec: Don't try to package unbuilt files On architectures without coherent DMA semantics, rdma-core automatically turns off those providers that have a hard requirement on coherent PCI DMA. We need to conditionalize our files and such to compensate for the missing files. Signed-off-by: Doug Ledford --- rdma-core.spec | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/rdma-core.spec b/rdma-core.spec index 3959d4f..de56a48 100644 --- a/rdma-core.spec +++ b/rdma-core.spec @@ -3,6 +3,10 @@ Version: 16.2 Release: 1%{?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 @@ -90,10 +94,12 @@ 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} @@ -121,12 +127,14 @@ 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 s390 +%ifnarch s390x Provides: libmlx5 = %{version}-%{release} Obsoletes: libmlx5 < %{version}-%{release} %endif +%endif Provides: libmthca = %{version}-%{release} Obsoletes: libmthca < %{version}-%{release} Provides: libnes = %{version}-%{release} @@ -153,8 +161,8 @@ Device-specific plug-in ibverbs userspace drivers are included: - libhns: HiSilicon Hip06 SoC - libi40iw: Intel Ethernet Connection X722 RDMA - libipathverbs: QLogic InfiniPath HCA -- libmlx4: Mellanox ConnectX-3 InfiniBand HCA -- libmlx5: Mellanox Connect-IB/X-4+ InfiniBand 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 @@ -284,14 +292,16 @@ 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 -m0644 redhat/rdma.mlx4.sys.modprobe %{buildroot}%{sysmodprobedir}/libmlx4.conf 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 -install -D -m0755 redhat/rdma.mlx4-setup.sh %{buildroot}%{_libexecdir}/mlx4-setup.sh # ibacm bin/ib_acme -D . -O @@ -341,7 +351,12 @@ rm -f %{buildroot}/%{_sbindir}/srp_daemon.sh %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 @@ -350,7 +365,6 @@ rm -f %{buildroot}/%{_sbindir}/srp_daemon.sh %config(noreplace) %{_sysconfdir}/rdma/rdma.conf %config(noreplace) %{_sysconfdir}/rdma/sriov-vfs %config(noreplace) %{_sysconfdir}/udev/rules.d/* -%config(noreplace) %{_sysconfdir}/modprobe.d/mlx4.conf %config(noreplace) %{_sysconfdir}/modprobe.d/truescale.conf %{_unitdir}/rdma-hw.target %{_unitdir}/rdma-load-modules@.service @@ -363,10 +377,8 @@ rm -f %{buildroot}/%{_sbindir}/srp_daemon.sh %{_udevrulesdir}/90-rdma-ulp-modules.rules %{_udevrulesdir}/90-rdma-umad.rules %{_udevrulesdir}/98-rdma.rules -%{sysmodprobedir}/libmlx4.conf %{_libexecdir}/rdma-init-kernel %{_libexecdir}/rdma-set-sriov-vf -%{_libexecdir}/mlx4-setup.sh %{_libexecdir}/truescale-serdes.cmds %{_bindir}/rxe_cfg %{_sbindir}/rdma-ndd @@ -388,22 +400,26 @@ rm -f %{buildroot}/%{_sbindir}/srp_daemon.sh %{_mandir}/man3/umad* %{_mandir}/man3/*_to_ibv_rate.* %{_mandir}/man7/rdma_cm.* -%ifnarch s390x s390 +%if 0%{?dma_coherent} +%ifnarch s390x %{_mandir}/man3/mlx5dv* %{_mandir}/man7/mlx5dv* %endif %{_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} %ifnarch s390x s390 %{_libdir}/libmlx5.so.* %endif %{_libdir}/libmlx4.so.* +%endif %config(noreplace) %{_sysconfdir}/libibverbs.d/*.driver %doc %{_docdir}/%{name}-%{version}/libibverbs.md