%bcond_without lustre_modules
%bcond_with lnet_dlc
%bcond_without manpages
+%bcond_without shared
+%bcond_without static
%if %{without servers}
# --without servers overrides --with {ldiskfs|zfs}
# as an alternative to this implementation we could simply "make -C $kdir kernelversion"
%{!?kversion: %global kversion %(files="include/generated/utsrelease.h include/linux/utsrelease.h include/linux/version.h"; for f in $files; do if test -r %{kobjdir}/$f && grep UTS_RELEASE %{kobjdir}/$f >/dev/null; then sed -ne '/^#define UTS_RELEASE/s/.*"\\(.*\\)"$/\\1/p' %{kobjdir}/$f; break; fi; done)}
-%define buildid %(if [ -n "@BUILDID@" ]; then echo "_@BUILDID@"; fi)
+# We set this because kernel_module_package has its own method of identifying
+# which kernel to build against, and it is unlikely that its decision will
+# match with Lustre's method of selecting which kernel to build against.
+# By setting this variable, we override kernel_module_package's kernel
+# selection with our selection.
+%{!?kernel_version: %global kernel_version %kversion}
%if 0%{?build_src_rpm}
%{!?myrelease: %global myrelease 1}
%else
- %{!?downstream_release: %global downstream_release "@DOWNSTREAM_RELEASE@"}
- %{!?myrelease: %global myrelease %(if [ -n "%downstream_release" ]; then echo -n "%{downstream_release}_"; fi; echo %kversion | tr '-' '_')}
+ %{!?myrelease: %global myrelease %(echo %kversion | tr '-' '_')}
+ # for those uses that don't want the -smp/-bigsmp (or the .arch) on the end
+ # of %kversion
+ %define krequires %(echo %{kversion} | sed -e 's/\.x86_64$//' -e 's/\.i[3456]86$//' -e 's/-smp$//' -e 's/-bigsmp$//' -e 's/[-.]ppc64$//' -e 's/\.aarch64$//' -e 's/-default$//')
%endif
-# always append the buildid, even when the caller defines %release
-%define fullrelease %{myrelease}%{buildid}
+%define fullrelease %{myrelease}
# in order to get kernel symset and/or kernel module dependencies into
# the RPM, in order to support weak-modules, the internal dependency gen-
# response from them
#%%global _use_internal_dependency_generator 0
-# for those uses that don't want the -smp/-bigsmp (or the .arch) on the end
-# of %kversion
-%define krequires %(echo %{kversion} | sed -e 's/\.x86_64$//' -e 's/\.i[3456]86$//' -e 's/-smp$//' -e 's/-bigsmp$//' -e 's/[-.]ppc64$//' -e 's/-default$//')
-
# Set the package name prefix
%if %{undefined lustre_name}
%if %{with servers}
%endif
%endif
-%if %{defined cross_path} && %{defined post_script}
-%define rpm_post_base %(dirname %{cross_path})/%{lustre_name}
-%endif
+%global modules_fs_path /lib/modules/%{kversion}/%{kmoddir}
-# SUSE don't support .debug_info section from cross compiler:
-# /usr/lib/rpm/debugedit: Unhandled relocation 10 in .debug_info section
-%if %{defined cross_path} && 0%{?suse_version}
-%global __debug_install_post %{nil}
-%global __debug_package %{nil}
-%global debug_package %{nil}
+%if %{_vendor}=="redhat" || %{_vendor}=="fedora"
+ %global requires_kmod_name kmod-%{lustre_name}
+ %global requires_kmod_version %{version}
+%else #for Suse
+ %global requires_kmod_name %{lustre_name}-kmp
+ %if 0%{?suse_version} >= 1200
+ %global requires_kmod_version %{version}_k%(echo %{krequires} | sed -r 'y/-/_/; s/^(2\.6\.[0-9]+)_/\\1.0_/;')
+ %else
+ %global requires_kmod_version %{version}_%(echo %{krequires} | sed -r 'y/-/_/; s/^(2\.6\.[0-9]+)_/\\1.0_/;')
+ %endif
%endif
Summary: Lustre File System
License: GPL
Group: Utilities/System
Source: lustre-%{version}.tar.gz
+Source1: kmp-lustre.preamble
+Source2: kmp-lustre.files
+Source3: kmp-lustre-osd-ldiskfs.preamble
+Source4: kmp-lustre-osd-ldiskfs.files
+Source5: kmp-lustre-osd-zfs.preamble
+Source6: kmp-lustre-osd-zfs.files
+Source7: kmp-lustre-tests.files
URL: https://wiki.hpdd.intel.com/
BuildRoot: %{_tmppath}/lustre-%{version}-root
Obsoletes: lustre-lite, lustre-lite-utils, lustre-ldap nfs-utils-lustre
Provides: lustre-lite = %{version}, lustre-lite-utils = %{version}
-Requires: %{name}-modules = %{version}
+Requires: %{requires_kmod_name} = %{requires_kmod_version}
BuildRequires: libtool
-%if %{with manpages}
-BuildRequires: python-docutils
-%endif
%if %{with servers}
Requires: lustre-osd
Requires: lustre-osd-mount
+Provides: lustre-client = %{version}-%{fullrelease}
%endif
-%if %{defined cross_requires}
-Requires: %{cross_requires}
-AutoReqProv: no
-%else
# GSS requires this: BuildRequires: pkgconfig, 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 %{_vendor}=="redhat"
+BuildRequires: redhat-rpm-config
+%endif
%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}
-Requires: %{cross_requires}
-AutoReqProv: no
-%else
-# for SLES11, we need nothing here
-%if %{_vendor}=="redhat" || %{_vendor}=="fedora"
-# for RHEL we need to require the specific kernel still since weak-modules
-# support on RH is, well, weak, to be punny about it
-Requires: kernel = %{krequires}
-%if %{with lnet_dlc}
-Requires: libyaml
-BuildRequires: libyaml-devel
-%endif
-%endif
-%endif
-Group: Development/Kernel
+%kernel_module_package_buildreqs
-%description modules
-Lustre file system, server and network drivers for Linux %{kversion}.
+# Lustre modules
+%kernel_module_package -n %{name} -p %SOURCE1 -f %SOURCE2 default
%if %{with ldiskfs}
-%package osd-ldiskfs
-Summary: osd-ldiskfs contains both ldiskfs and its osd interface in Lustre.
-Requires: lustre-modules = %{version}
-Requires: module-init-tools >= 3.9
-Requires: ldiskfsprogs >= 1.42.7.wc1
-Requires: lustre-osd-ldiskfs-mount
-Provides: lustre-osd
-Obsoletes: lustre-ldiskfs
-Group: Development/Kernel
-
-%description osd-ldiskfs
-The Lustre Object Storage Device (OSD) API is the interface to access and
-modify data that is supposed to be stored persistently. This API is the interface
-to code that bridges individual file systems. This specific package provides an
-implementation of the OSD API for using the Ldiskfs filesystem as the underlying
-backing store of a Lustre server.
-
+%kernel_module_package -n %{name}-osd-ldiskfs -p %SOURCE3 -f %SOURCE4 default
%if %{with lustre_utils}
%package osd-ldiskfs-mount
Summary: osd-ldiskfs-mount contains mount's ldiskfs specific dso.
%description osd-ldiskfs-mount
LDISKFS hooks for mount/mkfs into a dynamic library.
-%endif
-%endif
+%endif # with lustre_utils
+%endif # with ldiskfs
%if %{with zfs}
-%package osd-zfs
-Summary: osd-zfs is the mandatory glue for ZFS support in Lustre.
-Requires: lustre-modules = %{version}, zfs-kmod
-Requires: lustre-osd-zfs-mount
-Provides: lustre-osd
-Group: Development/Kernel
-
-%description osd-zfs
-The Lustre Object Storage Device (OSD) API is the interface to access and
-modify data that is supposed to be stored persistently. This API is the interface
-to code that bridges individual file systems. This specific package provides an
-implementation of the OSD API for using the ZFS filesystem as the underlying
-backing store of a Lustre server.
-
+%kernel_module_package -n %{name}-osd-zfs -p %SOURCE5 -f %SOURCE6 default
%if %{with lustre_utils}
%package osd-zfs-mount
Summary: osd-zfs-mount contains mount's zfs specific dso.
%description osd-zfs-mount
ZFS hooks for mount/mkfs into a dynamic library.
-%endif
-%endif
-%endif # with lustre_modules
+%endif # with lustre_utils
+%endif # with zfs
-%package source
-Summary: Object-Based Disk storage driver source
-Group: Development/Kernel
-
-%description source
-Lustre sources for further development
+%endif # with lustre_modules
# Since the RPMs we ship are to be used on both SLES and RHEL, we
# can't include any dependency information (since the package names
Summary: Lustre testing framework
Group: Development/Kernel
Provides: %{name}-tests = %{version}
-Requires: %{name} = %{version}, %{name}-modules = %{version}, lustre-iokit
+Requires: %{name} = %{version}, %{requires_kmod_name} = %{requires_kmod_version}, lustre-iokit
Requires: attr, rsync, perl, lsof, /usr/bin/getconf
%description tests
This package contains a set of test binaries and scripts that are intended
to be used by the Lustre testing framework.
+%if %{with lustre_modules}
+%kernel_module_package -n %{name}-tests -f %SOURCE7 default
+%endif
+
%if %{with lustre_iokit}
%package -n lustre-iokit
Summary: The Lustre IO-Kit is a collection of benchmark tools for a cluster with the Lustre file system.
# string in it which we don't want word splitted by the shell
# also remove (build|host|target) options because they will be specified
# inside $CONFIGURE_ARGS
+# kmod tools/scripts require %{name} directory with kernel modules
%define eval_configure %(echo '%configure' | sed -e 's#\./configure#eval ./configure#' -e 's/--\\(build\\|host\\|target\\)=[^ ][^ ]* //g')
%eval_configure $CONFIGURE_ARGS \
%{?with_lustre_tests:--enable-tests}%{!?with_lustre_tests:--disable-tests} \
%{?with_lustre_utils:--enable-utils}%{!?with_lustre_utils:--disable-utils} \
%{?with_lustre_modules:--enable-modules}%{!?with_lustre_modules:--disable-modules} \
+ %{!?with_shared:--disable-shared} \
+ %{!?with_static:--disable-static} \
%{!?with_lustre_iokit:--disable-iokit} \
%{!?with_ldiskfs:--disable-ldiskfs} \
%{!?with_servers:--disable-server} \
--with-release=%{release} \
--with-linux=%{kdir} \
--with-linux-obj=%{kobjdir} \
- --with-kmp-moddir=%{kmoddir}
+ --with-kmp-moddir=%{kmoddir}/%{name}
make %{?_smp_mflags} -s %{?make_args}
%install
make install DESTDIR=$RPM_BUILD_ROOT
+# RHEL's kernel_module_path macro expects that all the modules
+# in a kmod package will be in modules_fs_path/<sub packagename>
+# but Lustre installs all of the modules in a single pass into
+# a shared location. Since this is a restriction imposed by
+# 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}
+%if %{with ldiskfs}
+mkdir -p $basemodpath-osd-ldiskfs/fs
+mv $basemodpath/fs/osd_ldiskfs.ko $basemodpath-osd-ldiskfs/fs/osd_ldiskfs.ko
+mv $basemodpath/fs/ldiskfs.ko $basemodpath-osd-ldiskfs/fs/ldiskfs.ko
+%endif
+%if %{with zfs}
+mkdir -p $basemodpath-osd-zfs/fs
+mv $basemodpath/fs/osd_zfs.ko $basemodpath-osd-zfs/fs/osd_zfs.ko
+%endif
+%if %{with lustre_tests}
+mkdir -p $basemodpath-tests/fs
+mv $basemodpath/fs/llog_test.ko $basemodpath-tests/fs/llog_test.ko
+%endif
+
:> lustre.files
%if %{with servers} && %{with lustre_utils}
# The following scripts are Red Hat specific
%if %{with servers}
echo '%{_sysconfdir}/sysconfig/lustre' >>lustre.files
+echo '%{_sysconfdir}/sysconfig/lsvcgss' >>lustre.files
echo '%{_sysconfdir}/init.d/lustre' >>lustre.files
%endif
echo '%{_sysconfdir}/init.d/lnet' >>lustre.files
+echo '%{_sysconfdir}/init.d/lsvcgss' >>lustre.files
%endif
-# Create the pristine source directory.
-cd $RPM_BUILD_DIR/lustre-%{version}
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/src
-rm -f lustre-source
-ln -s $RPM_BUILD_ROOT%{_prefix}/src lustre-source
-make distdir distdir=lustre-source/lustre-%{version}
-chmod -R go-w lustre-source/lustre-%{version}
# fc18 needs 'x' permission for library files
find $RPM_BUILD_ROOT -name \*.so -type f -exec chmod +x {} \;
%if %{with lnet_dlc}
+rm -f $RPM_BUILD_ROOT%{_libdir}/liblnetconfig.la
+%if %{with static}
echo '%attr(-, root, root) %{_libdir}/liblnetconfig.a' >>lustre.files
+%endif
+%if %{with shared}
echo '%attr(-, root, root) %{_libdir}/liblnetconfig.so' >>lustre.files
+echo '%attr(-, root, root) %{_libdir}/liblnetconfig.so.*' >>lustre.files
+%endif
%endif
%if %{with ldiskfs}
if [ -d $RPM_BUILD_ROOT%{_libdir}/lustre/snmp ] ; then
echo '%{_libdir}/lustre/snmp' >>lustre.files
- echo '%{_datadir}/lustre/snmp/mibs' >>lustre.files
fi
find $RPM_BUILD_ROOT%{_libdir}/@PACKAGE@ \
-name \*.la -type f -exec rm -f {} \;
+%if %{with lustre_modules}
+# mark modules executable for find-debuginfo.sh
+find $RPM_BUILD_ROOT/lib/modules -name \*.ko -type f -exec chmod u+x {} \;
+%endif
+
%if %{with lustre_tests}
echo '%{_libdir}/lustre/tests/*' >>lustre-tests.files
echo '%{_bindir}/mcreate' >>lustre-tests.files
echo '%{_bindir}/req_layout' >>lustre-tests.files
echo '%{_sbindir}/wirecheck' >>lustre-tests.files
echo '%{_sbindir}/wiretest' >>lustre-tests.files
-%if %{with lustre_modules}
-echo '%{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/llog_test.ko' >>lustre-tests.files
-%endif
-%endif
-
-%if %{defined cross_path}
-%if %{defined rpm_post_base}
-POST_SCRIPT=$RPM_BUILD_DIR/lustre-%{version}/%{post_script}
-if [ -f $POST_SCRIPT ]; then
- cp -f $POST_SCRIPT $RPM_BUILD_ROOT/%{rpm_post_base}.sh
- echo '%attr(0555, root, root) %{rpm_post_base}.sh' >>lustre.files
- cp -f $POST_SCRIPT $RPM_BUILD_ROOT/%{rpm_post_base}-modules.sh
-%if %{with ldiskfs}
- cp -f $POST_SCRIPT $RPM_BUILD_ROOT/%{rpm_post_base}-osd-ldiskfs.sh
-%if %{with lustre_utils}
- cp -f $POST_SCRIPT $RPM_BUILD_ROOT/%{rpm_post_base}-mount-osd-ldiskfs.sh
-%endif
-%endif
-%if %{with zfs}
- cp -f $POST_SCRIPT $RPM_BUILD_ROOT/%{rpm_post_base}-osd-zfs.sh
-%if %{with lustre_utils}
- cp -f $POST_SCRIPT $RPM_BUILD_ROOT/%{rpm_post_base}-mount-osd-zfs.sh
-%endif
-%endif
-%if %{with lustre_tests}
- cp -f $POST_SCRIPT $RPM_BUILD_ROOT/%{rpm_post_base}-tests.sh
- echo '%attr(0555, root, root) %{rpm_post_base}-tests.sh' >>lustre-tests.files
-%endif
-fi
-%endif
-%else
-%if %{with lustre_modules}
-# mark modules executable for find-debuginfo.sh
-find $RPM_BUILD_ROOT%{?rootdir}/lib/modules/%{kversion}/%{kmoddir} \
- -name \*.ko -type f -exec chmod u+x {} \;
-%endif
%endif
%files -f lustre.files
%defattr(-,root,root)
%{_sbindir}/*
+%exclude %{_sbindir}/wirecheck
+%exclude %{_sbindir}/wiretest
%if %{with zfs}
%exclude %{_sbindir}/zfsobj2fid
%endif
%{_bindir}/lfs
%{_bindir}/lfs_migrate
-%{?rootdir}/sbin/mount.lustre
+/sbin/mount.lustre
%{_libdir}/libptlctl.a
%{_libdir}/libcfsutil.a
%{_libdir}/liblustreapi.a
%{_datadir}/lustre
%{_sysconfdir}/udev/rules.d/99-lustre.rules
%config(noreplace) %{_sysconfdir}/ldev.conf
+%config(noreplace) %{_sysconfdir}/modprobe.d/ko2iblnd.conf
%if %{with lustre_modules}
-%files modules
-%defattr(-,root,root)
-%{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/*
-%if %{with lustre_tests}
-%exclude %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/llog_test.ko
-%endif
-%if %{with ldiskfs}
-%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}/%{kmoddir}/kernel/fs/@PACKAGE@/osd_zfs.ko
-%endif
-%if %{defined rpm_post_base}
-%attr(0555, root, root) %{rpm_post_base}-modules.sh
-%endif
-%doc COPYING
-%doc ChangeLog-lustre
-%doc ChangeLog-lnet
%if %{with ldiskfs}
-%files osd-ldiskfs
-%defattr(-,root,root)
-%{?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 lustre_utils}
%files osd-ldiskfs-mount
%defattr(-,root,root)
%{_libdir}/@PACKAGE@/mount_osd_ldiskfs.so
-%if %{defined rpm_post_base}
-%attr(0555, root, root) %{rpm_post_base}-mount-osd-ldiskfs.sh
-%endif
%endif
%endif
%if %{with zfs}
-%files osd-zfs
-%defattr(-,root,root)
-%{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/osd_zfs.ko
-%{_sbindir}/zfsobj2fid
-%if %{defined rpm_post_base}
-%attr(0555, root, root) %{rpm_post_base}-osd-zfs.sh
-%endif
%if %{with lustre_utils}
%files osd-zfs-mount
%defattr(-,root,root)
%{_libdir}/@PACKAGE@/mount_osd_zfs.so
-%if %{defined rpm_post_base}
-%attr(0555, root, root) %{rpm_post_base}-mount-osd-zfs.sh
%endif
%endif
-%endif
-%endif # with lustre_modules
-%files source
-%defattr(-,root,root)
-%{_prefix}/src/lustre-%{version}
+%endif # with lustre_modules
# uncomment these lines to enable deps packages
# %files deps-sles
%doc lustre-iokit/stats-collect/README.iokit-lstats
%endif
-%if %{defined rpm_post_base}
-%post
-if [ -x %{rpm_post_base}.sh ]; then
- %{rpm_post_base}.sh %{cross_path} create
-fi
-
-%preun
-if [ -x %{rpm_post_base}.sh ]; then
- %{rpm_post_base}.sh %{cross_path} remove
-fi
-%endif
-
-%if %{with lustre_modules}
-%post modules
-%if %{defined rpm_post_base}
-if [ -x %{rpm_post_base}-modules.sh ]; then
- %{rpm_post_base}-modules.sh %{cross_path} create
-fi
-%else
-if [ -f /boot/System.map-%{kversion} ]; then
- depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
-else
- depmod -ae %{kversion} || exit 0
-fi
-
-MODULES_RPM_NAME=$(rpm -q %{name}-modules | grep "%{version}-%{release}")
-# "weak modules" support
-# Suse
-if [ -x /usr/lib/module-init-tools/weak-modules ]; then
- rpm -ql $MODULES_RPM_NAME | grep '\.ko$' |
- /usr/lib/module-init-tools/weak-modules --add-modules
-fi
-# RedHat
-if [ -x /sbin/weak-modules ]; then
- rpm -ql $MODULES_RPM_NAME | grep '\.ko$' |
- /sbin/weak-modules --add-modules
-fi
-
-# If the kernel was built to reject unsupported modules (e.g. not a Lustre
-# kernel), and this hasn't been overridden in /etc/modprobe.d yet, then
-# print a warning so that users are aware of this issue.
-if sysctl kernel.unsupported >/dev/null 2>&1 &&
- [ "$(sysctl -n kernel.unsupported 2>/dev/null)" = "0" ] &&
- ! modprobe -c | grep -q "^allow_unsupported_modules[ \t]1" ; then
- echo "
- warning: the Lustre modules are not supported by Novell. To use Lustre
- on this system, you should put
-
- allow_unsupported_modules 1
-
- into /etc/modprobe.d/unsupported_modules"
-fi
-%endif
-
-%if %{with ldiskfs}
-%post osd-ldiskfs
-%if %{defined rpm_post_base}
-if [ -x %{rpm_post_base}-osd-ldiskfs.sh ]; then
- %{rpm_post_base}-osd-ldiskfs.sh %{cross_path} create
-fi
-%else
-if [ -f /boot/System.map-%{kversion} ]; then
- depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
-else
- depmod -ae %{kversion} || exit 0
-fi
-
-OSD_LDISKFS_RPM_NAME=$(rpm -q %{name}-osd-ldiskfs | grep "%{version}-%{release}")
-# "weak modules" support
-# Suse
-if [ -x /usr/lib/module-init-tools/weak-modules ]; then
- rpm -ql $OSD_LDISKFS_RPM_NAME | grep '\.ko$' |
- /usr/lib/module-init-tools/weak-modules --add-modules
-fi
-# RedHat
-if [ -x /sbin/weak-modules ]; then
- rpm -ql $OSD_LDISKFS_RPM_NAME | grep '\.ko$' |
- /sbin/weak-modules --add-modules
-fi
-
-# If the kernel was built to reject unsupported modules (e.g. not a Lustre
-# kernel), and this hasn't been overridden in /etc/modprobe.d yet, then
-# print a warning so that users are aware of this issue.
-if sysctl kernel.unsupported >/dev/null 2>&1 &&
- [ "$(sysctl -n kernel.unsupported 2>/dev/null)" = "0" ] &&
- ! modprobe -c | grep -q "^allow_unsupported_modules[ \t]1" ; then
- echo "
- warning: the Lustre modules are not supported by Novell. To use Lustre
- on this system, you should put
-
- allow_unsupported_modules 1
-
- into /etc/modprobe.d/unsupported_modules"
-fi
-%endif
-%if %{with lustre_utils} && %{defined rpm_post_base}
-%post osd-ldiskfs-mount
-if [ -x %{rpm_post_base}-mount-osd-ldiskfs.sh ]; then
- %{rpm_post_base}-mount-osd-ldiskfs.sh %{cross_path} create
-fi
-%endif
-%endif
-
-%if %{with zfs}
-%post osd-zfs
-%if %{defined rpm_post_base}
-if [ -x %{rpm_post_base}-osd-zfs.sh ]; then
- %{rpm_post_base}-osd-zfs.sh %{cross_path} create
-fi
-%else
-if [ -f /boot/System.map-%{kversion} ]; then
- depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
-else
- depmod -ae %{kversion} || exit 0
-fi
-
-OSD_ZFS_RPM_NAME=$(rpm -q %{name}-osd-zfs | grep "%{version}-%{release}")
-# "weak modules" support
-# Suse
-if [ -x /usr/lib/module-init-tools/weak-modules ]; then
- rpm -ql $OSD_ZFS_RPM_NAME | grep '\.ko$' |
- /usr/lib/module-init-tools/weak-modules --add-modules
-fi
-# RedHat
-if [ -x /sbin/weak-modules ]; then
- rpm -ql $OSD_ZFS_RPM_NAME | grep '\.ko$' |
- /sbin/weak-modules --add-modules
-fi
-
-# If the kernel was built to reject unsupported modules (e.g. not a Lustre
-# kernel), and this hasn't been overridden in /etc/modprobe.d yet, then
-# print a warning so that users are aware of this issue.
-if sysctl kernel.unsupported >/dev/null 2>&1 &&
- [ "$(sysctl -n kernel.unsupported 2>/dev/null)" = "0" ] &&
- ! modprobe -c | grep -q "^allow_unsupported_modules[ \t]1" ; then
- echo "
- warning: the Lustre modules are not supported by Novell. To use Lustre
- on this system, you should put
-
- allow_unsupported_modules 1
-
- into /etc/modprobe.d/unsupported_modules"
-fi
-%endif
-%if %{with lustre_utils} && %{defined rpm_post_base}
-%post osd-zfs-mount
-if [ -x %{rpm_post_base}-mount-osd-zfs.sh ]; then
- %{rpm_post_base}-mount-osd-zfs.sh %{cross_path} create
-fi
-%endif
-%endif
-
-%preun modules
-%if %{defined rpm_post_base}
-if [ -x %{rpm_post_base}-modules.sh ]; then
- %{rpm_post_base}-modules.sh %{cross_path} remove
-fi
-%else
-MODULES_RPM_NAME=$(rpm -q %{name}-modules | grep "%{version}-%{release}")
-rpm -ql $MODULES_RPM_NAME | grep '\.ko$' > /var/run/%{name}-modules || true
-%endif
-
-%if %{with ldiskfs}
-%preun osd-ldiskfs
-%if %{defined rpm_post_base}
-if [ -x %{rpm_post_base}-osd-ldiskfs.sh ]; then
- %{rpm_post_base}-osd-ldiskfs.sh %{cross_path} remove
-fi
-%else
-OSD_LDISKFS_RPM_NAME=$(rpm -q %{name}-osd-ldiskfs | grep "%{version}-%{release}")
-rpm -ql $OSD_LDISKFS_RPM_NAME | grep '\.ko$' > /var/run/%{name}-osd-ldiskfs || true
-%endif
-%if %{with lustre_utils} && %{defined rpm_post_base}
-%preun osd-ldiskfs-mount
-if [ -x %{rpm_post_base}-mount-osd-ldiskfs.sh ]; then
- %{rpm_post_base}-mount-osd-ldiskfs.sh %{cross_path} remove
-fi
-%endif
-%endif
-
-%if %{with zfs}
-%preun osd-zfs
-%if %{defined rpm_post_base}
-if [ -x %{rpm_post_base}-osd-zfs.sh ]; then
- %{rpm_post_base}-osd-zfs.sh %{cross_path} remove
-fi
-%else
-OSD_ZFS_RPM_NAME=$(rpm -q %{name}-osd-zfs | grep "%{version}-%{release}")
-rpm -ql $OSD_ZFS_RPM_NAME | grep '\.ko$' > /var/run/%{name}-osd-zfs || true
-%endif
-%if %{with lustre_utils} && %{defined rpm_post_base}
-%preun osd-zfs-mount
-if [ -x %{rpm_post_base}-mount-osd-zfs.sh ]; then
- %{rpm_post_base}-mount-osd-zfs.sh %{cross_path} remove
-fi
-%endif
-%endif
-
-%if %{undefined cross_path}
-%postun modules
-if [ -f /boot/System.map-%{kversion} ]; then
- depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
-else
- depmod -ae %{kversion} || exit 0
-fi
-
-# "weak modules" support
-# Suse
-if [ -x /usr/lib/module-init-tools/weak-modules ]; then
- cat /var/run/%{name}-modules |
- /usr/lib/module-init-tools/weak-modules --remove-modules
-fi
-# RedHat
-if [ -x /sbin/weak-modules ]; then
- cat /var/run/%{name}-modules |
- /sbin/weak-modules --remove-modules
-fi
-rm /var/run/%{name}-modules
-
-%if %{with ldiskfs}
-%postun osd-ldiskfs
-if [ -f /boot/System.map-%{kversion} ]; then
- depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
-else
- depmod -ae %{kversion} || exit 0
-fi
-
-# "weak modules" support
-# Suse
-if [ -x /usr/lib/module-init-tools/weak-modules ]; then
- cat /var/run/%{name}-osd-ldiskfs |
- /usr/lib/module-init-tools/weak-modules --remove-modules
-fi
-# RedHat
-if [ -x /sbin/weak-modules ]; then
- cat /var/run/%{name}-osd-ldiskfs |
- /sbin/weak-modules --remove-modules
-fi
-rm /var/run/%{name}-osd-ldiskfs
-%endif
-
-%if %{with zfs}
-%postun osd-zfs
-if [ -f /boot/System.map-%{kversion} ]; then
- depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
-else
- depmod -ae %{kversion} || exit 0
-fi
-
-# "weak modules" support
-# Suse
-if [ -x /usr/lib/module-init-tools/weak-modules ]; then
- cat /var/run/%{name}-osd-zfs |
- /usr/lib/module-init-tools/weak-modules --remove-modules
-fi
-# RedHat
-if [ -x /sbin/weak-modules ]; then
- cat /var/run/%{name}-osd-zfs |
- /sbin/weak-modules --remove-modules
-fi
-rm /var/run/%{name}-osd-zfs
-%endif
-%endif
-%endif # with lustre_modules
-
-%if %{with lustre_tests}
-%if %{defined rpm_post_base}
-%post tests
-if [ -x %{rpm_post_base}-tests.sh ]; then
- %{rpm_post_base}-tests.sh %{cross_path} create
-fi
-
-%preun tests
-if [ -x %{rpm_post_base}-tests.sh ]; then
- %{rpm_post_base}-tests.sh %{cross_path} remove
-fi
-%else
-%if %{with lustre_modules}
-%post tests
-if [ -f /boot/System.map-%{kversion} ]; then
- depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
-else
- depmod -ae %{kversion} || exit 0
-fi
-
-%postun tests
-if [ -f /boot/System.map-%{kversion} ]; then
- depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
-else
- depmod -ae %{kversion} || exit 0
-fi
-%endif
-%endif
-%endif
-
%clean
rm -rf $RPM_BUILD_ROOT
+rm -rf %{_tmppath}/kmp