X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre.spec.in;h=75a705c501f4f2072575e729532d948a82dcb1c6;hb=698209700faf51c227f9ba16626de5ed70fa97c8;hp=6ed1996b6021227f9058bda328c3afee2fd18b18;hpb=02e0adddf474091a182e0721febb969564b6398b;p=fs%2Flustre-release.git diff --git a/lustre.spec.in b/lustre.spec.in index 6ed1996..75a705c 100644 --- a/lustre.spec.in +++ b/lustre.spec.in @@ -8,12 +8,22 @@ %bcond_without lustre_utils %bcond_without lustre_iokit %bcond_without lustre_modules -%bcond_with lnet_dlc +%bcond_with snmp +%bcond_with gss +%bcond_with gss_keyring %bcond_without manpages %bcond_without shared %bcond_without static %bcond_with systemd +# By default both gss and gss keyring are disabled. +# gss keyring requires the gss core. If the builder +# request gss_keyring we must enable gss core even if +# the builder attempts to disable gss. +%if %{with gss_keyring} + %define with_gss +%endif + %if %{without servers} # --without servers overrides --with {ldiskfs|zfs} # so undefine the internal variables set by bcond_* @@ -80,12 +90,18 @@ %global modules_fs_path /lib/modules/%{kversion}/%{kmoddir} %if %{_vendor}=="redhat" || %{_vendor}=="fedora" + %global requires_yaml_name libyaml %global requires_kmod_name kmod-%{lustre_name} - %global requires_kmod_tests_name kmod-%{lustre_name}-tests + %if %{with lustre_tests} + %global requires_kmod_tests_name kmod-%{lustre_name}-tests + %endif %global requires_kmod_version %{version} %else #for Suse + %global requires_yaml_name libyaml-0-2 %global requires_kmod_name %{lustre_name}-kmp - %global requires_kmod_tests_name %{lustre_name}-tests-kmp + %if %{with lustre_tests} + %global requires_kmod_tests_name %{lustre_name}-tests-kmp + %endif %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$//') %if 0%{?suse_version} >= 1200 %global requires_kmod_version %{version}_k%(echo %{krequires} | sed -r 'y/-/_/; s/^(2\.6\.[0-9]+)_/\\1.0_/;') @@ -125,14 +141,15 @@ 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/ +URL: https://wiki.whamcloud.com/ BuildRoot: %{_tmppath}/lustre-%{version}-root -Requires: %{requires_kmod_name} = %{requires_kmod_version} -BuildRequires: libtool +Requires: %{requires_kmod_name} = %{requires_kmod_version} zlib +Requires: %{requires_yaml_name} +BuildRequires: libtool libyaml-devel zlib-devel %if %{with servers} Requires: lustre-osd Requires: lustre-osd-mount -Obsoletes: lustre-client <= %{version} +Obsoletes: lustre-client < %{version} Provides: lustre-client = %{version}-%{release} %endif # GSS requires this: BuildRequires: pkgconfig, libgssapi-devel >= 0.10 @@ -159,7 +176,27 @@ BuildRequires: systemd Userspace tools and files for the Lustre file system. %if %{with lustre_modules} -%kernel_module_package -n %{name} -p %SOURCE1 -f %SOURCE2 default +%if 0%{?rhel} == 7 +# until we have achieved full kABI compatibility we need to +# restrict the kernel range that can be used to the kernel +# version from the RHEL minor release +# this is supposed to be done for kmods automatically but +# RHBZ#1467319 seems to be getting in the way +# this is true for el7.0 through el7.4 +%define preamble %{expand:%( +TMPFILE=`mktemp` +cat %{SOURCE1} > $TMPFILE +kver=%{kver} +linuxversion=${kver%%%%-*} +linuxrelease=${kver##*-} +kabiminor=${linuxrelease%%%%.*} +echo "Requires: kernel < $linuxversion-$((kabiminor+1)), kernel >= $linuxversion-$((kabiminor))" >> $TMPFILE +echo $TMPFILE +)} +%else +%define preamble %{SOURCE1} +%endif +%kernel_module_package -n %{name} -p %preamble -f %SOURCE2 default %if %{with ldiskfs} %kernel_module_package -n %{name}-osd-ldiskfs -p %SOURCE3 -f %SOURCE4 default @@ -203,11 +240,16 @@ A set of scripts to operate Lustre resources in a High Availablity environment for both Pacemaker and rgmanager. %endif +%if %{with lustre_tests} %package tests Summary: Lustre testing framework Group: System Environment/Kernel Provides: %{name}-tests = %{version} +%if %{with lustre_iokit} Requires: %{name} = %{version}, lustre-iokit +%else +Requires: %{name} = %{version} +%endif Requires: %{requires_kmod_name} = %{requires_kmod_version} Requires: %{requires_kmod_tests_name} = %{requires_kmod_version} Requires: attr, rsync, perl, lsof, /usr/bin/getconf @@ -219,6 +261,7 @@ to be used by the Lustre testing framework. %if %{with lustre_modules} %kernel_module_package -n %{name}-tests -f %SOURCE7 default %endif +%endif %if %{with lustre_iokit} %package -n lustre-iokit @@ -298,7 +341,9 @@ fi %{!?with_ldiskfs:--disable-ldiskfs} \ %{!?with_servers:--disable-server} \ %{!?with_zfs:--without-zfs} \ - %{!?with_lnet_dlc:--disable-dlc} \ + %{!?with_snmp:--disable-snmp} \ + %{!?with_gss:--disable-gss} \ + %{!?with_gss_keyring:--disable-gss-keyring} \ %{!?with_manpages:--disable-manpages} \ %{!?with_systemd:--with-systemdsystemunitdir=no} \ %{?with_systemd:--with-systemdsystemunitdir=%{_unitdir}} \ @@ -331,6 +376,8 @@ mv $basemodpath/fs/osd_zfs.ko $basemodpath-osd-zfs/fs/osd_zfs.ko %if %{with lustre_tests} mkdir -p $basemodpath-tests/fs mv $basemodpath/fs/llog_test.ko $basemodpath-tests/fs/llog_test.ko +mkdir -p $RPM_BUILD_ROOT%{_libdir}/lustre/tests/kernel/ +mv $basemodpath/fs/kinode.ko $RPM_BUILD_ROOT%{_libdir}/lustre/tests/kernel/ %endif :> lustre.files @@ -347,32 +394,31 @@ echo '%{_sysconfdir}/ha.d/resource.d/Lustre' >>lustre.files # systemd is on redhat, fedora, and suse %if %{with systemd} echo '%{_unitdir}/lnet.service' >>lustre.files +echo '%{_unitdir}/lustre.service' >>lustre.files %endif %if %{_vendor}=="redhat" # The following scripts are Red Hat specific %if %{with servers} echo '%{_sysconfdir}/sysconfig/lustre' >>lustre.files +%if %{with gss_keyring} +echo '%{_sysconfdir}/init.d/lsvcgss' >>lustre.files echo '%{_sysconfdir}/sysconfig/lsvcgss' >>lustre.files -echo '%{_sysconfdir}/init.d/lustre' >>lustre.files +%endif %endif %if %{without systemd} echo '%{_sysconfdir}/init.d/lnet' >>lustre.files +echo '%{_sysconfdir}/init.d/lustre' >>lustre.files %endif - -echo '%{_sysconfdir}/init.d/lsvcgss' >>lustre.files %endif - -%if %{with servers} -mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/ocf/resource.d/lustre/ -install -m 0755 contrib/scripts/pacemaker/* $RPM_BUILD_ROOT%{_prefix}/lib/ocf/resource.d/lustre/ +%if %{with gss_keyring} +echo '%config(noreplace) %{_sysconfdir}/request-key.d/lgssc.conf' >>lustre.files %endif # 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 @@ -381,19 +427,21 @@ echo '%attr(-, root, root) %{_libdir}/liblnetconfig.a' >>lustre.files echo '%attr(-, root, root) %{_libdir}/liblnetconfig.so' >>lustre.files echo '%attr(-, root, root) %{_libdir}/liblnetconfig.so.*' >>lustre.files %endif -%endif %if %{with ldiskfs} echo '%{_libdir}/libiam.a' >>lustre.files %endif -if [ -d $RPM_BUILD_ROOT%{_libdir}/lustre/snmp ] ; then - echo '%{_libdir}/lustre/snmp' >>lustre.files -fi +%if %{with snmp} +mkdir -p $RPM_BUILD_ROOT/%{_libdir}/lustre/snmp +echo '%{_libdir}/lustre/snmp' >>lustre.files +%endif %if %{with lustre_utils} mkdir -p $RPM_BUILD_ROOT/%{_datadir}/lustre -find $RPM_BUILD_ROOT%{_libdir}/@PACKAGE@ -name \*.la -type f -exec rm -f {} \; +if [ -d $RPM_BUILD_ROOT%{_libdir}/lustre ] ; then + find $RPM_BUILD_ROOT%{_libdir}/@PACKAGE@ -name \*.la -type f -exec rm -f {} \; +fi %endif %if %{with lustre_modules} @@ -401,6 +449,8 @@ find $RPM_BUILD_ROOT%{_libdir}/@PACKAGE@ -name \*.la -type f -exec rm -f {} \; find $RPM_BUILD_ROOT/lib/modules -name \*.ko -type f -exec chmod u+x {} \; %endif +rm -f $RPM_BUILD_ROOT%{_libdir}/liblustreapi.la + %if %{with lustre_tests} :> lustre-tests.files echo '%{_libdir}/lustre/tests/*' >>lustre-tests.files @@ -413,8 +463,10 @@ echo '%{_sbindir}/wiretest' >>lustre-tests.files %files -f lustre.files %defattr(-,root,root) %{_sbindir}/* +%if %{with lustre_tests} %exclude %{_sbindir}/wirecheck %exclude %{_sbindir}/wiretest +%endif %if %{with zfs} %exclude %{_sbindir}/zfsobj2fid %endif @@ -432,27 +484,35 @@ echo '%{_sbindir}/wiretest' >>lustre-tests.files %{_bindir}/lfs %{_bindir}/lfs_migrate /sbin/mount.lustre -%{_libdir}/libptlctl.a -%{_libdir}/libcfsutil.a +%if %{with static} %{_libdir}/liblustreapi.a -%{_libdir}/liblustreapi.so +%endif +%if %{with shared} +%{_libdir}/liblustreapi.so* +%endif %if %{with manpages} %{_mandir}/man?/* %endif %{_datadir}/lustre %{_includedir}/lustre +%{_includedir}/linux/lnet +%{_includedir}/linux/lustre %endif %{_sysconfdir}/udev/rules.d/99-lustre.rules +%if %{with servers} +%{_sysconfdir}/udev/rules.d/99-lustre-server.rules +%endif +%if %{with zfs} %config(noreplace) %{_sysconfdir}/ldev.conf -%if %{with lnet_dlc} -%config(noreplace) %{_sysconfdir}/lnet.conf %endif +%config(noreplace) %{_sysconfdir}/lnet.conf %config(noreplace) %{_sysconfdir}/modprobe.d/ko2iblnd.conf %if %{with lustre_utils} %config(noreplace) %{_sysconfdir}/lnet_routes.conf %endif %if %{with lustre_modules} +%if %{with shared} %if %{with ldiskfs} %if %{with lustre_utils} %files osd-ldiskfs-mount @@ -460,12 +520,16 @@ echo '%{_sbindir}/wiretest' >>lustre-tests.files %{_libdir}/@PACKAGE@/mount_osd_ldiskfs.so %endif %endif +%endif +%if %{with shared} %if %{with zfs} %if %{with lustre_utils} %files osd-zfs-mount %defattr(-,root,root) %{_libdir}/@PACKAGE@/mount_osd_zfs.so +%{_sysconfdir}/zfs/zed.d/* +%endif %endif %endif @@ -509,15 +573,18 @@ echo '%{_sbindir}/wiretest' >>lustre-tests.files %post %if %{with systemd} %systemd_post lnet.service +%systemd_post lustre.service %endif %preun %if %{with systemd} +%systemd_preun lustre.service %systemd_preun lnet.service %endif %postun %if %{with systemd} +%systemd_postun_with_restart lustre.service %systemd_postun_with_restart lnet.service %endif