--- 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 <openafs-gatekeepers@openafs.org>
 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.*
