%bcond_without manpages
%bcond_without shared
%bcond_without static
+%bcond_with systemd
%if %{without servers}
# --without servers overrides --with {ldiskfs|zfs}
%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}
%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.
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
%{!?with_zfs:--without-zfs} \
%{!?with_lnet_dlc:--disable-dlc} \
%{!?with_manpages:--disable-manpages} \
+ %{!?with_systemd:--with-systemdsystemunitdir=no} \
+ %{?with_systemd:--with-systemdsystemunitdir=%{_unitdir}} \
--with-linux=%{kdir} \
--with-linux-obj=%{kobjdir} \
--with-kmp-moddir=%{kmoddir}/%{name}
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}
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
fi
%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 manpages}
%{_mandir}/man?/*
%endif
+%{_datadir}/lustre
%{_includedir}/lustre
%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
%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