[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