%bcond_with zfs
%bcond_without lustre_tests
%bcond_without lustre_iokit
+%bcond_without lustre_modules
%if %{without servers}
# --without servers overrides --with {ldiskfs|zfs}
%endif
%endif
+%if %{undefined kmoddir}
+ %if %{defined kernel_module_package_moddir}
+ %global kmoddir %{kernel_module_package_moddir}
+ %else
+ %if %{defined suse_kernel_module_package}
+ %global kmoddir updates
+ %else
+ %global kmoddir extra
+ %endif
+ %endif
+%endif
+
%if %{defined cross_path} && %{defined post_script}
%define rpm_post_base %(echo $(dirname %{cross_path})/%{lustre_name})
%endif
%description
Userspace tools and files for the Lustre file system.
+%if %{with lustre_modules}
%package modules
Summary: Kernel Lustre modules for Linux %{kversion}
%if %{defined cross_requires}
implementation of the OSD API for using the ZFS filesystem as the underlying
backing store of a Lustre server.
%endif
+%endif # with lustre_modules
%package source
Summary: Object-Based Disk storage driver source
ln lnet/ChangeLog ChangeLog-lnet
%build
-# if RPM_BUILD_NCPUS unset, set it
-if [ -z "$RPM_BUILD_NCPUS" ] ; then
- RPM_BUILD_NCPUS=$(egrep -c "^cpu[0-9]+" /proc/stat 2>/dev/null || echo 0 :)
- if [ $RPM_BUILD_NCPUS -eq 0 ] ; then
- RPM_BUILD_NCPUS=1
- fi
- if [ $RPM_BUILD_NCPUS -gt 8 ] ; then
- RPM_BUILD_NCPUS=8
- fi
-fi
# Set an explicit path to our Linux tree, if we can.
cd $RPM_BUILD_DIR/lustre-%{version}
CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-iokit"
%endif
+%if %{with lustre_modules}
+CONFIGURE_ARGS="$CONFIGURE_ARGS --enable-modules"
+%else
+CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-modules"
+%endif
+
# if %%kdir was given, make sure it's not in the configure arguments
if [ -n "%kdir" ]; then
CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-linux=[^ ][^ ]* \?//')
if [ -n "%kobjdir" ]; then
CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-linux-obj=[^ ][^ ]* \?//')
fi
+# remove --with-kmp-moddir from configure arguments,
+# it will be set --with-kmp-moddir=%%kmoddir
+CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-kmp-moddir=[^ ][^ ]* \?//')
# we need to eval "configure" because $CONFIGURE_ARGS could have a quoted
# string in it which we don't want word splitted by the shell
%eval_configure \
%{?kdir: --with-linux=%kdir} %{?kobjdir: --with-linux-obj=%kobjdir} \
- $CONFIGURE_ARGS
-make -j $RPM_BUILD_NCPUS -s %{?make_args}
+ $CONFIGURE_ARGS --with-kmp-moddir=%{kmoddir}
+make %{?_smp_mflags} -s %{?make_args}
%install
make install DESTDIR=$RPM_BUILD_ROOT
echo '%{_libdir}/lustre/tests/*' >lustre-tests.files
echo '%{_bindir}/mcreate' >>lustre-tests.files
echo '%{_bindir}/munlink' >>lustre-tests.files
-echo '%{?rootdir}/lib/modules/%{kversion}/updates/kernel/fs/lustre/llog_test.ko' >>lustre-tests.files
+%if %{with lustre_modules}
+echo '%{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/llog_test.ko' >>lustre-tests.files
+%endif
if [ -d $RPM_BUILD_ROOT%{_libdir}/lustre/liblustre/tests ] ; then
echo '%{_libdir}/lustre/liblustre/tests/*' >>lustre-tests.files
fi
%endif
%else
# mark modules executable for find-debuginfo.sh
-find $RPM_BUILD_ROOT%{?rootdir}/lib/modules/%{kversion}/updates -name "*.ko" -type f | \
+find $RPM_BUILD_ROOT%{?rootdir}/lib/modules/%{kversion}/%{kmoddir} -name "*.ko" -type f | \
xargs --no-run-if-empty chmod u+x
%endif
%files -f lustre.files
%defattr(-,root,root)
+%if %{with lustre_modules}
%files modules
%defattr(-,root,root)
-%{?rootdir}/lib/modules/%{kversion}/updates/*
+%{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/*
%if %{with lustre_tests}
-%exclude %{?rootdir}/lib/modules/%{kversion}/updates/kernel/fs/lustre/llog_test.ko
+%exclude %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/llog_test.ko
%endif
%if %{with ldiskfs}
-%exclude %{?rootdir}/lib/modules/%{kversion}/updates/kernel/fs/lustre/ldiskfs.ko
-%exclude %{?rootdir}/lib/modules/%{kversion}/updates/kernel/fs/lustre/osd_ldiskfs.ko
+%exclude %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/ldiskfs.ko
+%exclude %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/osd_ldiskfs.ko
%endif
%if %{with zfs}
-%exclude %{?rootdir}/lib/modules/%{kversion}/updates/kernel/fs/lustre/osd_zfs.ko
+%exclude %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/osd_zfs.ko
%endif
%if %{defined rpm_post_base}
%attr(0555, root, root) %{rpm_post_base}-modules.sh
%if %{with ldiskfs}
%files osd-ldiskfs
%defattr(-,root,root)
-%{?rootdir}/lib/modules/%{kversion}/updates/kernel/fs/lustre/ldiskfs.ko
-%{?rootdir}/lib/modules/%{kversion}/updates/kernel/fs/lustre/osd_ldiskfs.ko
+%{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/ldiskfs.ko
+%{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/osd_ldiskfs.ko
%if %{defined rpm_post_base}
%attr(0555, root, root) %{rpm_post_base}-osd-ldiskfs.sh
%endif
%if %{with zfs}
%files osd-zfs
%defattr(-,root,root)
-%{?rootdir}/lib/modules/%{kversion}/updates/kernel/fs/lustre/osd_zfs.ko
+%{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/osd_zfs.ko
%if %{defined rpm_post_base}
%attr(0555, root, root) %{rpm_post_base}-osd-zfs.sh
%endif
%endif
+%endif # with lustre_modules
%files source
%defattr(-,root,root)
fi
%endif
+%if %{with lustre_modules}
%post modules
%if %{defined rpm_post_base}
if [ -x %{rpm_post_base}-modules.sh ]; then
rm /var/run/%{name}-osd-zfs
%endif
%endif
+%endif # with lustre_modules
%if %{with lustre_tests}
%post tests