--- rpmbuild/SPECS/openafs.spec.orig 2011-10-17 23:46:35.000000000 -0400 +++ rpmbuild/SPECS/openafs.spec 2011-10-17 23:48:41.000000000 -0400 @@ -224,7 +224,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-root Packager: OpenAFS Gatekeepers Group: Networking/Filesystems -BuildRequires: %{?kdepend:%{kdepend}, } pam-devel, ncurses-devel, flex, bison +BuildRequires: %{?kdepend:%{kdepend}, } pam-devel, ncurses-devel, flex, bison, systemd-units %if 0%{?fedora} BuildRequires: perl-devel perl-ExtUtils-Embed %endif @@ -323,6 +323,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} @@ -347,6 +353,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 @@ -999,7 +1011,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 @@ -1029,8 +1046,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} @@ -1310,7 +1333,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 @@ -1327,10 +1357,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 @@ -1346,16 +1383,45 @@ 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 + +%postun client +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart openafs-client.service >/dev/null 2>&1 || : +fi + +%postun server +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart openafs-server.service >/dev/null 2>&1 || : +fi %if %{build_dkmspkg} %post -n dkms-%{name} @@ -1413,6 +1479,32 @@ %endif %endif +%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 ||: + +# If the package is allowed to autostart: +/bin/systemctl --no-reload enable openafs-client.service >/dev/null 2>&1 ||: + +# Run these because the SysV package being removed won't do them +/sbin/chkconfig --del openafs-client >/dev/null 2>&1 || : +/bin/systemctl try-restart openafs-client.service >/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 ||: + +# If the package is allowed to autostart: +/bin/systemctl --no-reload enable openafs-server.service >/dev/null 2>&1 ||: + +# Run these because the SysV package being removed won't do them +/sbin/chkconfig --del openafs-server >/dev/null 2>&1 || : +/bin/systemctl try-restart openafs-server.service >/dev/null 2>&1 || : + ############################################################################## ### ### file lists @@ -1450,7 +1542,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.* @@ -1498,7 +1595,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.*