--- openafs.spec.orig 2011-12-11 04:48:08.257676312 -0500 +++ openafs.spec 2011-12-11 04:49:43.101175888 -0500 @@ -225,6 +225,9 @@ Packager: OpenAFS Gatekeepers Group: Networking/Filesystems BuildRequires: %{?kdepend:%{kdepend}, } pam-devel, ncurses-devel, flex, bison +%if 0%{?fedora} >= 15 +BuildRequires: systemd-units +%endif %if 0%{?fedora} BuildRequires: perl-devel perl-ExtUtils-Embed %endif @@ -326,6 +329,12 @@ %package client Provides: scripts-openafs-client Requires: binutils, openafs = %{version} +%if 0%{?fedora} >= 15 +Requires: systemd-units +Requires(post): systemd-units, systemd-sysv +Requires(preun): systemd-units +Requires(postun): systemd-units +%endif %if %{fedorakmod} Requires: %{name}-kmod >= %{version} @@ -350,6 +359,12 @@ Requires: openafs = %{version} Summary: OpenAFS Filesystem Server Group: Networking/Filesystems +%if 0%{?fedora} >= 15 +Requires: systemd-units +Requires(post): systemd-units, systemd-sysv +Requires(preun): systemd-units +Requires(postun): systemd-units +%endif %description server The AFS distributed filesystem. AFS is a distributed filesystem @@ -1005,7 +1020,12 @@ mkdir -p $RPM_BUILD_ROOT%{_sbindir} mkdir -p $RPM_BUILD_ROOT%{_libdir} mkdir -p $RPM_BUILD_ROOT/etc/sysconfig +%if 0%{?fedora} < 15 mkdir -p $RPM_BUILD_ROOT%{initdir} +%else +mkdir -p $RPM_BUILD_ROOT%{_unitdir} +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/modules +%endif mkdir -p $RPM_BUILD_ROOT/etc/openafs mkdir -p $RPM_BUILD_ROOT%{pamdir} mkdir -p $RPM_BUILD_ROOT%{_prefix}/afs/etc @@ -1035,8 +1055,14 @@ # Copy root.client config files install -m 755 src/packaging/RedHat/openafs.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/openafs +%if 0%{?fedora} < 15 install -m 755 src/packaging/RedHat/openafs-client.init $RPM_BUILD_ROOT%{initdir}/openafs-client install -m 755 src/packaging/RedHat/openafs-server.init $RPM_BUILD_ROOT%{initdir}/openafs-server +%else +install -m 755 src/packaging/RedHat/openafs-client.service $RPM_BUILD_ROOT%{_unitdir}/openafs-client.service +install -m 755 src/packaging/RedHat/openafs-client.modules $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/modules/openafs-client.modules +install -m 755 src/packaging/RedHat/openafs-server.service $RPM_BUILD_ROOT%{_unitdir}/openafs-server.service +%endif # Copy PAM modules install -m 755 ${sysname}/dest/lib/pam* $RPM_BUILD_ROOT%{pamdir} @@ -1318,7 +1344,14 @@ fi %post client +%if 0%{?fedora} < 15 chkconfig --add openafs-client +%else +if [ $1 -eq 1 ] ; then + # Initial installation + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi +%endif if [ ! -d /afs ]; then mkdir /afs chown root.root /afs @@ -1335,10 +1368,17 @@ %post server #on an upgrade, don't enable if we were disabled +%if 0%{?fedora} < 15 if [ $1 = 1 ] ; then chkconfig --add openafs-server fi %{initdir}/openafs-server condrestart +%else +if [ $1 -eq 1 ] ; then + # Initial installation + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi +%endif %if %{build_authlibs} %post authlibs @@ -1354,16 +1394,39 @@ fi %preun client +%if 0%{?fedora} < 15 if [ $1 = 0 ] ; then %{initdir}/openafs-client stop chkconfig --del openafs-client fi +%else +if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable openafs-client.service > /dev/null 2>&1 || : + /bin/systemctl stop openafs-client.service > /dev/null 2>&1 || : +fi +%endif %preun server +%if 0%{?fedora} < 15 if [ $1 = 0 ] ; then %{initdir}/openafs-server stop chkconfig --del openafs-server fi +%else +if [ $1 -eq 0 ] ; then + /bin/systemctl --no-reload disable openafs-server.service > /dev/null 2>&1 || : + /bin/systemctl stop openafs-server.service > /dev/null 2>&1 || : +fi +%endif + +%if 0%{?fedora} >= 15 +%postun client +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun server +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +%endif %if %{build_dkmspkg} %post -n dkms-%{name} @@ -1421,6 +1484,26 @@ %endif %endif +%if 0%{?fedora} >= 15 +%triggerun -- openafs-client < 1.6.0-1 +# Save the current service runlevel info +# User must manually run systemd-sysv-convert --apply httpd +# to migrate them to systemd targets +/usr/bin/systemd-sysv-convert --save openafs-client >/dev/null 2>&1 ||: + +# Run this because the SysV package being removed won't do it +/sbin/chkconfig --del openafs-client >/dev/null 2>&1 || : + +%triggerun -- openafs-server < 1.6.0-1 +# Save the current service runlevel info +# User must manually run systemd-sysv-convert --apply httpd +# to migrate them to systemd targets +/usr/bin/systemd-sysv-convert --save openafs-server >/dev/null 2>&1 ||: + +# Run this because the SysV package being removed won't do it +/sbin/chkconfig --del openafs-server >/dev/null 2>&1 || : +%endif + ############################################################################## ### ### file lists @@ -1458,7 +1541,12 @@ %{pamdir}/pam_afs.krb.so %{pamdir}/pam_afs.so.1 %{pamdir}/pam_afs.so +%if 0%{?fedora} < 15 %{initdir}/openafs-client +%else +%{_unitdir}/openafs-client.service +%{_sysconfdir}/sysconfig/modules/openafs-client.modules +%endif %{_mandir}/man1/cmdebug.* %{_mandir}/man1/copyauth.* %{_mandir}/man1/up.* @@ -1506,7 +1594,11 @@ %{_sbindir}/vldb_check %{_sbindir}/vldb_convert %{_sbindir}/voldump +%if 0%{?fedora} < 15 %{initdir}/openafs-server +%else +%{_unitdir}/openafs-server.service +%endif %{_mandir}/man5/AuthLog.* %{_mandir}/man5/BackupLog.* %{_mandir}/man5/BosConfig.*