Whamcloud - gitweb
LU-12214 build: fix build with mofed
[fs/lustre-release.git] / lustre.spec.in
index d40c56d..515fe2d 100644 (file)
@@ -15,6 +15,7 @@
 %bcond_without shared
 %bcond_without static
 %bcond_with    systemd
+%bcond_with mofed
 
 # By default both gss and gss keyring are disabled.
 # gss keyring requires the gss core. If the builder
@@ -146,20 +147,40 @@ BuildRoot: %{_tmppath}/lustre-%{version}-root
 Requires: %{requires_kmod_name} = %{requires_kmod_version} zlib
 Requires: %{requires_yaml_name}
 BuildRequires: libtool libyaml-devel zlib-devel
+%if %{_vendor}=="redhat"
+BuildRequires: pkgconfig
+%else
+BuildRequires: pkg-config
+%endif
 %if %{with servers}
 Requires: lustre-osd
 Requires: lustre-osd-mount
+Obsoletes: lustre-server < %{version}
+Provides: lustre-server = %{version}-%{release}
+%endif
 Obsoletes: lustre-client < %{version}
 Provides: lustre-client = %{version}-%{release}
-%endif
-# GSS requires this: BuildRequires: pkgconfig, libgssapi-devel >= 0.10
+
+# GSS requires this: BuildRequires: libgssapi-devel >= 0.10
 %if %{_vendor}=="redhat" || %{_vendor}=="fedora"
 #suse don't support selinux
 BuildRequires: libselinux-devel
 Requires: libselinux
 %endif
 %if %{with lustre_modules}
+%if %{with mofed}
+BuildRequires: mlnx-ofa_kernel-devel
+%if %{_vendor} == "redhat"
+Requires: kmod-mlnx-ofa_kernel
+%else
+Requires: mlnx-ofa_kernel-kmp
+%endif
+%endif
+%if 0%{?rhel} >= 8 && %{undefined kernel_module_package_buildreqs}
+BuildRequires: redhat-rpm-config kernel-rpm-macros elfutils-libelf-devel kmod
+%else
 BuildRequires: %kernel_module_package_buildreqs
+%endif
 %if %{_vendor}=="redhat"
 BuildRequires: redhat-rpm-config
 %endif
@@ -203,7 +224,10 @@ echo $TMPFILE
 %if %{with lustre_utils}
 %package osd-ldiskfs-mount
 Summary: osd-ldiskfs-mount contains mount's ldiskfs specific dso.
+BuildRequires: e2fsprogs-devel
+Requires: ldiskfsprogs
 Provides: lustre-osd-mount = %{version}
+Obsoletes: lustre-osd-mount < %{version}
 Group: System Environment/Kernel
 
 %description osd-ldiskfs-mount
@@ -218,6 +242,7 @@ LDISKFS hooks for mount/mkfs into a dynamic library.
 %package osd-zfs-mount
 Summary: osd-zfs-mount contains mount's zfs specific dso.
 Provides: lustre-osd-mount = %{version}
+Obsoletes: lustre-osd-mount < %{version}
 Group: System Environment/Kernel
 
 %description osd-zfs-mount
@@ -232,7 +257,7 @@ ZFS hooks for mount/mkfs into a dynamic library.
 %package resource-agents
 Summary: HA Resuable Cluster Resource Scripts for Lustre
 Group: System Environment/Base
-Requires: lustre
+Requires: %{name}
 Requires: resource-agents
 
 %description resource-agents
@@ -244,12 +269,11 @@ environment for both Pacemaker and rgmanager.
 %package tests
 Summary: Lustre testing framework
 Group: System Environment/Kernel
-Provides: %{name}-tests = %{version}
+Provides: lustre-tests = %{version}
 %if %{with lustre_iokit}
-Requires: %{name} = %{version}, lustre-iokit
-%else
-Requires: %{name} = %{version}
+Requires: lustre-iokit
 %endif
+Requires: lustre-client = %{version}
 Requires: %{requires_kmod_name} = %{requires_kmod_version}
 Requires: %{requires_kmod_tests_name} = %{requires_kmod_version}
 Requires: attr, rsync, perl, lsof, libtool, /usr/bin/getconf
@@ -267,7 +291,7 @@ to be used by the Lustre testing framework.
 %package -n lustre-iokit
 Summary: The Lustre IO-Kit is a collection of benchmark tools for a cluster with the Lustre file system.
 Group: Applications/System
-Requires: python > 2.2, sg3_utils
+Requires: python2 > 2.2, sg3_utils
 
 %description -n lustre-iokit
 This package includes five tools:
@@ -368,6 +392,7 @@ fi
        %{!?with_manpages:--disable-manpages} \
        %{!?with_systemd:--with-systemdsystemunitdir=no} \
        %{?with_systemd:--with-systemdsystemunitdir=%{_unitdir}} \
+       %{?with_mofed:--with-o2ib=/usr/src/ofa_kernel/default} \
        --with-linux=%{kdir} \
        --with-linux-obj=%{kobjdir} \
        --with-kmp-moddir=%{kmoddir}/%{name}
@@ -384,7 +409,7 @@ make install DESTDIR=$RPM_BUILD_ROOT
 # RHEL, we handle this here in the spec file rather than in
 # Lustre's build system.  This is not expected to bother SLES's
 # kernel_module_path macro.
-basemodpath=$RPM_BUILD_ROOT%{modules_fs_path}/%{lustre_name}
+basemodpath=$RPM_BUILD_ROOT%{modules_fs_path}/%{name}
 %if %{with ldiskfs}
 mkdir -p $basemodpath-osd-ldiskfs/fs
 mv $basemodpath/fs/osd_ldiskfs.ko $basemodpath-osd-ldiskfs/fs/osd_ldiskfs.ko
@@ -424,7 +449,7 @@ echo '%{_sysconfdir}/init.d/lustre' >>lustre.files
 echo '%{_sysconfdir}/sysconfig/lustre' >>lustre.files
 %if %{with gss_keyring}
 echo '%{_sysconfdir}/init.d/lsvcgss' >>lustre.files
-echo '%{_sysconfdir}/sysconfig/lsvcgss' >>lustre.files
+echo '%config(noreplace) %{_sysconfdir}/sysconfig/lsvcgss' >>lustre.files
 %endif
 %endif
 
@@ -478,6 +503,11 @@ echo '%{_bindir}/mcreate' >>lustre-tests.files
 echo '%{_bindir}/munlink' >>lustre-tests.files
 echo '%{_sbindir}/wirecheck' >>lustre-tests.files
 echo '%{_sbindir}/wiretest' >>lustre-tests.files
+%if %{_vendor}=="redhat"
+if [ -n "@MPI_BIN@" ]; then
+       echo '@MPI_BIN@/*' >>lustre-tests.files
+fi
+%endif
 %endif
 
 %files -f lustre.files
@@ -504,6 +534,7 @@ echo '%{_sbindir}/wiretest' >>lustre-tests.files
 %{_bindir}/lfs
 %{_bindir}/lfs_migrate
 /sbin/mount.lustre
+/sbin/mount.lustre_tgt
 %if %{with static}
 %{_libdir}/liblustreapi.a
 %endif
@@ -514,6 +545,7 @@ echo '%{_sbindir}/wiretest' >>lustre-tests.files
 %{_mandir}/man?/*
 %endif
 %{_datadir}/lustre
+%{_datadir}/bash-completion/completions/*
 %{_includedir}/lustre
 %{_includedir}/linux/lnet
 %{_includedir}/linux/lustre