BuildRoot: %{_tmppath}/%{name}-%{version}-root
Packager: OpenAFS Gatekeepers <openafs-gatekeepers@openafs.org>
Group: Networking/Filesystems
-BuildRequires: %{?kdepend:%{kdepend}, } pam-devel, ncurses-devel, flex, bison
+BuildRequires: %{?kdepend:%{kdepend}, } pam-devel, ncurses-devel, flex, bison, systemd-units
BuildRequires: perl-devel perl-ExtUtils-Embed
%if %{krb5support}
BuildRequires: krb5-devel
%package client
Requires: binutils, openafs = %{version}
+%if 0%{?fedora} >= 15
+Requires: systemd-units
+BuildRequires: systemd-units
+Requires(post): systemd-units, systemd-sysv
+Requires(preun): systemd-units
+Requires(postun): systemd-units
+%endif
%if %{fedorakmod}
Requires: %{name}-kmod >= %{version}
Requires: openafs = %{version}
Summary: OpenAFS Filesystem Server
Group: Networking/Filesystems
+%if 0%{?fedora} >= 15
+Requires: systemd-units
+BuildRequires: 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
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
# 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}
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
%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
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}
%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
%{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.*
%{_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.*