Since Lustre Server DKMS builds osd Kernel modules and Provides
lustre-osd, we need to find a way to also install the
osd-specific dso that is also shipped as part of lustre-osd RPM.
To fix this, now ship the osd-specific dso as part of its own RPM.
And also create its new lustre-osd-mount dependency to ensure
the lustre-osd -> lustre-osd-mount -> lustre coherency and
ordering for Server installs.
Signed-off-by: Bruno Faccini <bruno.faccini@intel.com>
Change-Id: I25d498590212e696f74018c0af694bfee4d1cc81
Reviewed-on: http://review.whamcloud.com/12589
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
BuildRequires: libtool
%if %{with servers}
Requires: lustre-osd
BuildRequires: libtool
%if %{with servers}
Requires: lustre-osd
+Requires: lustre-osd-mount
%endif
%if %{defined cross_requires}
Requires: %{cross_requires}
%endif
%if %{defined cross_requires}
Requires: %{cross_requires}
Requires: lustre-modules = %{version}
Requires: module-init-tools >= 3.9
Requires: ldiskfsprogs >= 1.42.7.wc1
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
Provides: lustre-osd
Obsoletes: lustre-ldiskfs
Group: Development/Kernel
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.
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.
+
+%if %{with lustre_utils}
+%package osd-ldiskfs-mount
+Summary: osd-ldiskfs-mount contains mount's ldiskfs specific dso.
+Provides: lustre-osd-mount
+Group: Development/Kernel
+
+%description osd-ldiskfs-mount
+LDISKFS hooks for mount/mkfs into a dynamic library.
+
+%endif
%endif
%if %{with zfs}
%package osd-zfs
Summary: osd-zfs is the mandatory glue for ZFS support in Lustre.
Requires: lustre-modules = %{version}, zfs-kmod
%endif
%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
Provides: lustre-osd
Group: Development/Kernel
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.
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.
+
+%if %{with lustre_utils}
+%package osd-zfs-mount
+Summary: osd-zfs-mount contains mount's ldiskfs specific dso.
+Provides: lustre-osd-mount
+Group: Development/Kernel
+
+%description osd-zfs-mount
+ZFS hooks for mount/mkfs into a dynamic library.
+
+%endif
%endif
%endif # with lustre_modules
%endif
%endif # with lustre_modules
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
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
%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
%endif
%if %{with lustre_tests}
cp -f $POST_SCRIPT $RPM_BUILD_ROOT/%{rpm_post_base}-tests.sh
%defattr(-,root,root)
%{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/ldiskfs.ko
%{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/osd_ldiskfs.ko
%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
+%files osd-ldiskfs-mount
+%defattr(-,root,root)
%{_libdir}/@PACKAGE@/mount_osd_ldiskfs.so
%{_libdir}/@PACKAGE@/mount_osd_ldiskfs.so
%if %{defined rpm_post_base}
%if %{defined rpm_post_base}
-%attr(0555, root, root) %{rpm_post_base}-osd-ldiskfs.sh
+%attr(0555, root, root) %{rpm_post_base}-mount-osd-ldiskfs.sh
+%endif
%files osd-zfs
%defattr(-,root,root)
%{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/osd_zfs.ko
%files osd-zfs
%defattr(-,root,root)
%{?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
+%files osd-zfs-mount
+%defattr(-,root,root)
%{_libdir}/@PACKAGE@/mount_osd_zfs.so
%{_libdir}/@PACKAGE@/mount_osd_zfs.so
%if %{defined rpm_post_base}
%if %{defined rpm_post_base}
-%attr(0555, root, root) %{rpm_post_base}-osd-zfs.sh
+%attr(0555, root, root) %{rpm_post_base}-mount-osd-zfs.sh
+%endif
%endif
%endif
%endif # with lustre_modules
%endif
%endif
%endif # with lustre_modules
into /etc/modprobe.d/unsupported_modules"
fi
%endif
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
into /etc/modprobe.d/unsupported_modules"
fi
%endif
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
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
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
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
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}
%endif
%if %{undefined cross_path}