[BackupPC] add support for systemd starting at F16 (bz #699441)
Bernard Johnson
bjohnson at fedoraproject.org
Sat Jul 9 05:33:45 UTC 2011
commit b8e7c8415354b838284863cfaf85ed632f89bd3f
Author: Bernard Johnson <bjohnson at symetrix.com>
Date: Fri Jul 8 20:49:21 2011 -0600
add support for systemd starting at F16 (bz #699441)
BackupPC.spec | 64 ++++++++++++++++++++++++++++++++++++++++++++++++------
backuppc.service | 13 +++++++++++
2 files changed, 70 insertions(+), 7 deletions(-)
---
diff --git a/BackupPC.spec b/BackupPC.spec
index 0b7eb8d..22fc83f 100644
--- a/BackupPC.spec
+++ b/BackupPC.spec
@@ -2,6 +2,10 @@
%define without_selinux 1
%endif
+%if 0%{?fedora} && 0%{?fedora} > 15
+%global _with_systemd 1
+%endif
+
Name: BackupPC
Version: 3.2.1
Release: 1%{?dist}
@@ -18,6 +22,7 @@ Source2: BackupPC.logrotate
Source3: BackupPC-README.fedora
#A C wrapper to use since perl-suidperl is no longer provided
Source4: BackupPC_Admin.c
+Source5: backuppc.service
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -31,6 +36,9 @@ BuildRequires: %{_bindir}/smbclient
BuildRequires: %{_bindir}/split
BuildRequires: %{_bindir}/ssh
BuildRequires: perl(Compress::Zlib)
+%if 0%{?_with_systemd}
+BuildRequires: systemd-units
+%endif
# Unbundled libraries
Requires: perl(Net::FTP::AutoReconnect), perl(Net::FTP::RetrHandle)
@@ -47,9 +55,16 @@ Requires: rsync
Requires: %{_bindir}/smbclient
Requires: %{_bindir}/nmblookup
Requires(pre): %{_sbindir}/useradd
+%if 0%{?_with_systemd}
+Requires(preun): systemd-units
+Requires(post): systemd-units, %{_sbindir}/usermod
+Requires(postun): systemd-units
+%else
Requires(preun): initscripts, chkconfig
Requires(post): initscripts, chkconfig, %{_sbindir}/usermod
Requires(postun): initscripts
+%endif
+
%if ! 0%{?without_selinux}
Requires: policycoreutils
BuildRequires: selinux-policy-devel, checkpolicy
@@ -155,18 +170,26 @@ do
done
sed -i s,$LOGNAME,backuppc,g init.d/linux-backuppc
+%if 0%{?_with_systemd}
+%{__mkdir} -p $RPM_BUILD_ROOT/%{_unitdir}
+%else
%{__mkdir} -p $RPM_BUILD_ROOT%{_initrddir}
+%endif
%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/
%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/
%{__mkdir} -p $RPM_BUILD_ROOT%{_localstatedir}/log/%{name}
%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/pc
+%if 0%{?_with_systemd}
+%{__cp} %{SOURCE5} %{buildroot}/%{_unitdir}/
+%else
%{__cp} init.d/linux-backuppc $RPM_BUILD_ROOT%{_initrddir}/backuppc
+%endif
%{__cp} %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/%{name}.conf
%{__cp} %{SOURCE2} %{buildroot}/%{_sysconfdir}/logrotate.d/%{name}
+%{__cp} %{SOURCE2} %{buildroot}/%{_sysconfdir}/logrotate.d/%{name}
%{__chmod} 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/bin/*
-%{__chmod} 755 $RPM_BUILD_ROOT%{_initrddir}/backuppc
sed -i 's/^\$Conf{XferMethod}\ =.*/$Conf{XferMethod} = "rsync";/' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/config.pl
sed -i 's|^\$Conf{CgiURL}\ =.*|$Conf{CgiURL} = "http://localhost/BackupPC";|' $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/config.pl
@@ -193,8 +216,14 @@ rm -rf $RPM_BUILD_ROOT
%preun
if [ $1 = 0 ]; then
- service backuppc stop > /dev/null 2>&1 || :
- chkconfig --del backuppc || :
+ # Package removal, not upgrade
+ %if 0%{?_with_systemd}
+ /bin/systemctl --no-reload disable backuppc.service > /dev/null 2>&1 || :
+ /bin/systemctl stop backuppc.service > /dev/null 2>&1 || :
+ %else
+ service backuppc stop > /dev/null 2>&1 || :
+ chkconfig --del backuppc || :
+ %endif
fi
%post
@@ -207,9 +236,18 @@ fi
restorecon -R %{_localstatedir}/log/%{name}
) &>/dev/null
%endif
-chkconfig --add backuppc || :
-service httpd condrestart > /dev/null 2>&1 || :
-%{_sbindir}/usermod -a -G backuppc apache || :
+
+if [ $1 -eq 1 ]; then
+ # initial installation
+ %if 0%{?_with_systemd}
+ /bin/systemctl daemon-reload > /dev/null 2>&1 || :
+ %else
+ chkconfig --add backuppc || :
+ service httpd condrestart > /dev/null 2>&1 || :
+ %endif
+ %{_sbindir}/usermod -a -G backuppc apache || :
+fi
+
# add BackupPC backup directories to PRUNEPATHS in locate database
UPDATEDB=/etc/updatedb.conf
@@ -235,6 +273,12 @@ if [ "$1" -eq "0" ]; then
fi
fi
%endif
+if [ $1 -ge 1]; then
+ # Package upgrade, not uninstall
+ %if 0%{?_with_systemd}
+ /bin/systemctl try-restart backuppc.service > /dev/null 2>&1 || :
+ %endif
+fi
%files
@@ -251,7 +295,12 @@ fi
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/sbin
%{_datadir}/%{name}/[^s]*
-%{_initrddir}/backuppc
+
+%if 0%{?_with_systemd}
+%attr(0644,root,root) %{_unitdir}/backuppc.service
+%else
+%attr(0755,root,root) %{_initrddir}/backuppc
+%endif
%attr(4750,backuppc,apache) %{_datadir}/%{name}/sbin/BackupPC_Admin
%attr(750,backuppc,apache) %{_datadir}/%{name}/sbin/BackupPC_Admin.pl
@@ -274,6 +323,7 @@ fi
- attempt to make sure $Conf{TopDir} is listed in updatedb PRUNEPATHS,
otherwise at least generate a warning on statup (bz #554491)
- move sockets to /var/run (bz #719499)
+- add support for systemd starting at F16 (bz #699441)
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.1.0-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
diff --git a/backuppc.service b/backuppc.service
new file mode 100644
index 0000000..d9f32c9
--- /dev/null
+++ b/backuppc.service
@@ -0,0 +1,13 @@
+[Unit]
+Description= BackupPC server
+After=syslog.target
+
+[Service]
+Type=oneshot
+User=backuppc
+Group=backuppc
+ExecStart=/usr/share/BackupPC/bin/BackupPC -d
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
More information about the scm-commits
mailing list