X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre.spec.in;h=f0d828edd016616c93806152ef17f2a424d989e0;hb=ce8ca7d3564439285a56982430f380354b697f68;hp=298363632c3524eb76bd68aad58566c9c6df3364;hpb=501fc25cac52e33478b12c4b4253f7a80b5bb448;p=fs%2Flustre-release.git diff --git a/lustre.spec.in b/lustre.spec.in index 2983636..f0d828e 100644 --- a/lustre.spec.in +++ b/lustre.spec.in @@ -12,6 +12,7 @@ %bcond_without manpages %bcond_without shared %bcond_without static +%bcond_with systemd %if %{without servers} # --without servers overrides --with {ldiskfs|zfs} @@ -35,17 +36,6 @@ # selection with our selection. %{!?kernel_version: %global kernel_version %kversion} -%if 0%{?build_src_rpm} - %{!?myrelease: %global myrelease 1} -%else - %{!?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 - -%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- # erator needs to be disabled @@ -91,9 +81,16 @@ %if %{_vendor}=="redhat" || %{_vendor}=="fedora" %global requires_kmod_name kmod-%{lustre_name} + %if %{with lustre_tests} + %global requires_kmod_tests_name kmod-%{lustre_name}-tests + %endif %global requires_kmod_version %{version} %else #for Suse %global requires_kmod_name %{lustre_name}-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_/;') %else @@ -101,12 +98,29 @@ %endif %endif +# RHEL >= 7 comes with systemd +%if 0%{?rhel} >= 7 +%define with_systemd 1 +%endif + +# Fedora >= 15 comes with systemd, but only >= 18 has +# the proper macros +%if 0%{?fedora} >= 18 +%define with_systemd 1 +%endif + +# opensuse >= 12.1 comes with systemd, but only >= 13.1 +# has the proper macros +%if 0%{?suse_version} >= 1310 +%define with_systemd 1 +%endif + Summary: Lustre File System Name: %{lustre_name} Version: %{version} -Release: %{fullrelease} +Release: 1%{?dist} License: GPL -Group: Utilities/System +Group: System Environment/Kernel Source: lustre-%{version}.tar.gz Source1: kmp-lustre.preamble Source2: kmp-lustre.files @@ -117,14 +131,13 @@ 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: %{requires_kmod_name} = %{requires_kmod_version} BuildRequires: libtool %if %{with servers} Requires: lustre-osd Requires: lustre-osd-mount -Provides: lustre-client = %{version}-%{fullrelease} +Obsoletes: lustre-client < %{version} +Provides: lustre-client = %{version}-%{release} %endif # GSS requires this: BuildRequires: pkgconfig, libgssapi-devel >= 0.10 %if %{_vendor}=="redhat" || %{_vendor}=="fedora" @@ -133,18 +146,23 @@ BuildRequires: libselinux-devel Requires: libselinux %endif %if %{with lustre_modules} +BuildRequires: %kernel_module_package_buildreqs %if %{_vendor}=="redhat" BuildRequires: redhat-rpm-config %endif %endif +%if %{with systemd} +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +BuildRequires: systemd +%endif + %description Userspace tools and files for the Lustre file system. %if %{with lustre_modules} -%kernel_module_package_buildreqs - -# Lustre modules %kernel_module_package -n %{name} -p %SOURCE1 -f %SOURCE2 default %if %{with ldiskfs} @@ -152,8 +170,8 @@ Userspace tools and files for the Lustre file system. %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 +Provides: lustre-osd-mount = %{version}-%{fullrelease} +Group: System Environment/Kernel %description osd-ldiskfs-mount LDISKFS hooks for mount/mkfs into a dynamic library. @@ -166,8 +184,8 @@ LDISKFS hooks for mount/mkfs into a dynamic library. %if %{with lustre_utils} %package osd-zfs-mount Summary: osd-zfs-mount contains mount's zfs specific dso. -Provides: lustre-osd-mount -Group: Development/Kernel +Provides: lustre-osd-mount = %{version}-%{fullrelease} +Group: System Environment/Kernel %description osd-zfs-mount ZFS hooks for mount/mkfs into a dynamic library. @@ -177,11 +195,30 @@ ZFS hooks for mount/mkfs into a dynamic library. %endif # with lustre_modules +%if %{with servers} +%package resource-agents +Summary: HA Resuable Cluster Resource Scripts for Lustre +Group: System Environment/Base +Requires: lustre +Requires: resource-agents + +%description resource-agents +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: Development/Kernel +Group: System Environment/Kernel Provides: %{name}-tests = %{version} -Requires: %{name} = %{version}, %{requires_kmod_name} = %{requires_kmod_version}, lustre-iokit +%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 %description tests @@ -189,7 +226,8 @@ 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 +%kernel_module_package -n %{name}-tests -f %SOURCE7 default +%endif %endif %if %{with lustre_iokit} @@ -237,7 +275,6 @@ ln lustre/ChangeLog ChangeLog-lustre ln lnet/ChangeLog ChangeLog-lnet %build - # Set an explicit path to our Linux tree, if we can. cd $RPM_BUILD_DIR/lustre-%{version} # override %optflags so that the vendor's overzealous flags don't create @@ -273,7 +310,8 @@ fi %{!?with_zfs:--without-zfs} \ %{!?with_lnet_dlc:--disable-dlc} \ %{!?with_manpages:--disable-manpages} \ - --with-release=%{release} \ + %{!?with_systemd:--with-systemdsystemunitdir=no} \ + %{?with_systemd:--with-systemdsystemunitdir=%{_unitdir}} \ --with-linux=%{kdir} \ --with-linux-obj=%{kobjdir} \ --with-kmp-moddir=%{kmoddir}/%{name} @@ -303,6 +341,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 @@ -316,6 +356,11 @@ echo '%{_sysconfdir}/ha.d/resource.d/Lustre.ha_v2' >>lustre.files echo '%{_sysconfdir}/ha.d/resource.d/Lustre' >>lustre.files %endif +# systemd is on redhat, fedora, and suse +%if %{with systemd} +echo '%{_unitdir}/lnet.service' >>lustre.files +%endif + %if %{_vendor}=="redhat" # The following scripts are Red Hat specific %if %{with servers} @@ -323,10 +368,19 @@ echo '%{_sysconfdir}/sysconfig/lustre' >>lustre.files echo '%{_sysconfdir}/sysconfig/lsvcgss' >>lustre.files echo '%{_sysconfdir}/init.d/lustre' >>lustre.files %endif + +%if %{without systemd} echo '%{_sysconfdir}/init.d/lnet' >>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/ +%endif + # fc18 needs 'x' permission for library files find $RPM_BUILD_ROOT -name \*.so -type f -exec chmod +x {} \; @@ -349,8 +403,10 @@ if [ -d $RPM_BUILD_ROOT%{_libdir}/lustre/snmp ] ; then echo '%{_libdir}/lustre/snmp' >>lustre.files fi -find $RPM_BUILD_ROOT%{_libdir}/@PACKAGE@ \ - -name \*.la -type f -exec rm -f {} \; +%if %{with lustre_utils} +mkdir -p $RPM_BUILD_ROOT/%{_datadir}/lustre +find $RPM_BUILD_ROOT%{_libdir}/@PACKAGE@ -name \*.la -type f -exec rm -f {} \; +%endif %if %{with lustre_modules} # mark modules executable for find-debuginfo.sh @@ -358,10 +414,10 @@ find $RPM_BUILD_ROOT/lib/modules -name \*.ko -type f -exec chmod u+x {} \; %endif %if %{with lustre_tests} +:> lustre-tests.files echo '%{_libdir}/lustre/tests/*' >>lustre-tests.files echo '%{_bindir}/mcreate' >>lustre-tests.files echo '%{_bindir}/munlink' >>lustre-tests.files -echo '%{_bindir}/req_layout' >>lustre-tests.files echo '%{_sbindir}/wirecheck' >>lustre-tests.files echo '%{_sbindir}/wiretest' >>lustre-tests.files %endif @@ -369,8 +425,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 @@ -395,16 +453,22 @@ echo '%{_sbindir}/wiretest' >>lustre-tests.files %if %{with manpages} %{_mandir}/man?/* %endif +%{_datadir}/lustre %{_includedir}/lustre -%{_includedir}/libcfs +%{_includedir}/linux/lnet %endif -%{_datadir}/lustre %{_sysconfdir}/udev/rules.d/99-lustre.rules %config(noreplace) %{_sysconfdir}/ldev.conf +%if %{with lnet_dlc} +%config(noreplace) %{_sysconfdir}/lnet.conf +%endif %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 @@ -412,7 +476,9 @@ 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 @@ -420,9 +486,16 @@ echo '%{_sbindir}/wiretest' >>lustre-tests.files %{_libdir}/@PACKAGE@/mount_osd_zfs.so %endif %endif +%endif %endif # with lustre_modules +%if %{with servers} +%files resource-agents +%defattr(0755,root,root) +%{_prefix}/lib/ocf/resource.d/lustre/ +%endif + %if %{with lustre_tests} %files tests -f lustre-tests.files %defattr(-,root,root) @@ -452,6 +525,21 @@ echo '%{_sbindir}/wiretest' >>lustre-tests.files %doc lustre-iokit/stats-collect/README.iokit-lstats %endif +%post +%if %{with systemd} +%systemd_post lnet.service +%endif + +%preun +%if %{with systemd} +%systemd_preun lnet.service +%endif + +%postun +%if %{with systemd} +%systemd_postun_with_restart lnet.service +%endif + %clean rm -rf $RPM_BUILD_ROOT rm -rf %{_tmppath}/kmp