[pure-ftpd/f16] convert to systemd
Tom Callaway
spot at fedoraproject.org
Mon Sep 12 19:52:08 UTC 2011
commit ab2bf6c9d682d489fee168d0d7f8c55e689353c5
Author: Tom "spot" Callaway <tcallawa at redhat.com>
Date: Mon Sep 12 15:51:57 2011 -0400
convert to systemd
pure-ftpd.service | 12 ++++++++++
pure-ftpd.spec | 60 ++++++++++++++++++++++++++++++-----------------------
2 files changed, 46 insertions(+), 26 deletions(-)
---
diff --git a/pure-ftpd.service b/pure-ftpd.service
new file mode 100644
index 0000000..e0b3dba
--- /dev/null
+++ b/pure-ftpd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Pure-FTPd FTP server
+After=syslog.target network.target
+
+[Service]
+Type=forking
+PIDFile=/var/run/pure-ftpd.pid
+ExecStart=/usr/sbin/pure-config.pl /etc/pure-ftpd/pure-ftpd.conf --daemonize
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/pure-ftpd.spec b/pure-ftpd.spec
index 1816f0f..45715e4 100644
--- a/pure-ftpd.spec
+++ b/pure-ftpd.spec
@@ -1,13 +1,13 @@
Name: pure-ftpd
Version: 1.0.32
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Lightweight, fast and secure FTP server
Group: System Environment/Daemons
License: BSD
URL: http://www.pureftpd.org
Source0: http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-%{version}.tar.bz2
-Source1: pure-ftpd.init
+Source1: pure-ftpd.service
Source2: pure-ftpd.logrotate
Source3: pure-ftpd.xinetd
Source4: pure-ftpd.pure-ftpwho.pam
@@ -19,7 +19,6 @@ Patch0: pure-ftpd-1.0.27-config.patch
Patch2: pure-ftpd-paminclude.patch
#Patch3: pure-ftpd-mysql-password.patch
Provides: ftpserver
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: pam-devel, perl, python, libcap-devel
%{!?_without_ldap:BuildRequires: openldap-devel}
%{!?_without_mysql:BuildRequires: mysql-devel}
@@ -31,10 +30,11 @@ BuildRequires: checkpolicy, selinux-policy >= 2.2.40, m4
%else
BuildRequires: checkpolicy, selinux-policy-devel
%endif
-
-Requires(post): chkconfig
-Requires(preun): chkconfig, initscripts
-Requires(postun): initscripts
+BuildRequires: systemd-units
+Requires(post): systemd-sysv
+Requires(post): systemd-units
+Requires(preun): systemd-units
+Requires(postun): systemd-units
Requires: logrotate, usermode
@@ -115,13 +115,11 @@ make %{?_smp_mflags}
%install
-rm -rf $RPM_BUILD_ROOT
-
make install DESTDIR=$RPM_BUILD_ROOT
install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man8
install -d -m 755 $RPM_BUILD_ROOT%{_sbindir}
-install -d -m 755 $RPM_BUILD_ROOT%{_initrddir}
+install -d -m 755 $RPM_BUILD_ROOT%{_unitdir}
install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
install -d -m 755 $RPM_BUILD_ROOT%{_localstatedir}/ftp
%{!?_without_tls:install -d -m 700 $RPM_BUILD_ROOT%{_sysconfdir}/pki/%{name}}
@@ -146,7 +144,7 @@ install -p -m 644 man/pure-quotacheck.8 $RPM_BUILD_ROOT%{_mandir}/man8
install -p -m 644 man/pure-authd.8 $RPM_BUILD_ROOT%{_mandir}/man8
# Init script
-install -p -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_initrddir}/%{name}
+install -p -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/%{name}.service
# Pam
install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
@@ -176,13 +174,10 @@ install -p -m 644 -D pureftpd.pp $RPM_BUILD_ROOT%{_datadir}/selinux/packages/%{n
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-
%post
-if [ "$1" -le "1" ]; then # fist install
- /sbin/chkconfig --add pure-ftpd
+if [ $1 -eq 1 ] ; then
+ # Initial installation
+ /bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi
%if 0%{!?_without_tls:1}
# TLS Certificate
@@ -192,16 +187,18 @@ if [ ! -f %{_sysconfdir}/pki/%{name}/%{name}.pem ]; then
fi
%endif
-
%preun
-if [ "$1" -lt "1" ]; then
- /sbin/service pure-ftpd stop > /dev/null 2>&1 || :
- /sbin/chkconfig --del pure-ftpd
+if [ $1 -eq 0 ] ; then
+ # Package removal, not upgrade
+ /bin/systemctl --no-reload disable pure-ftpd.service > /dev/null 2>&1 || :
+ /bin/systemctl stop pure-ftpd.service > /dev/null 2>&1 || :
fi
%postun
-if [ "$1" -ge "1" ]; then
- /sbin/service pure-ftpd condrestart > /dev/null 2>&1
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+if [ $1 -ge 1 ] ; then
+ # Package upgrade, not uninstall
+ /bin/systemctl try-restart pure-ftpd.service >/dev/null 2>&1 || :
fi
@@ -227,9 +224,18 @@ if [ "$1" -ge "1" ]; then # Upgrade
fi
+%triggerun -- pure-ftpd < 1.0.32-2
+# Save the current service runlevel info
+# User must manually run systemd-sysv-convert --apply pure-ftpd
+# to migrate them to systemd targets
+/usr/bin/systemd-sysv-convert --save pure-ftpd >/dev/null 2>&1 ||:
+
+# Run these because the SysV package being removed won't do them
+/sbin/chkconfig --del pure-ftpd >/dev/null 2>&1 || :
+/bin/systemctl try-restart pure-ftpd.service >/dev/null 2>&1 || :
+
%files
-%defattr(-, root, root, -)
%doc FAQ THANKS AUTHORS CONTACT HISTORY NEWS
%doc README README.Authentication-Modules README.Configuration-File
%doc README.Contrib README.Donations README.LDAP README.MySQL
@@ -237,7 +243,7 @@ fi
%doc contrib/pure-vpopauth.pl pureftpd.schema contrib/pure-stat.pl
%{_bindir}/pure-*
%{_sbindir}/pure-*
-%config %{_initrddir}/%{name}
+%{_unitdir}/%{name}.service
%config(noreplace) %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/pam.d/%{name}
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
@@ -250,12 +256,14 @@ fi
%files selinux
-%defattr(-, root, root, -)
%doc README.SELinux
%{_datadir}/selinux/packages/%{name}/pureftpd.pp
%changelog
+* Mon Sep 12 2011 Tom Callaway <spot at fedoraproject.org> - 1.0.32-2
+- convert to systemd
+
* Thu May 19 2011 Michal Ingeli <mi at v3.sk> - 1.0.32-1
- version 1.0.32
- security bug fix #704283 by upstream (CVE-2011-0418)
More information about the scm-commits
mailing list