[milter-regex] Switch from SysV initscript to systemd unit file

Paul Howarth pghmcfc at fedoraproject.org
Sat Jul 16 16:52:17 UTC 2011


commit e7f0a3bf6938d4e4ea75fb0846c0d359ad409a97
Author: Paul Howarth <paul at city-fan.org>
Date:   Sat Jul 16 17:50:55 2011 +0100

    Switch from SysV initscript to systemd unit file
    
    - Switch from SysV initscript to systemd unit file
    - Clean up for modern rpmbuild
    - Drop Sendmail references as the milter should work with Postfix too
    - Nobody else likes macros for commands

 milter-regex-initscript |   88 -----------------------------------------------
 milter-regex.service    |   14 +++++++
 milter-regex.spec       |   81 +++++++++++++++++++++++++-----------------
 3 files changed, 62 insertions(+), 121 deletions(-)
---
diff --git a/milter-regex.service b/milter-regex.service
new file mode 100644
index 0000000..50af363
--- /dev/null
+++ b/milter-regex.service
@@ -0,0 +1,14 @@
+[Unit]
+Description = Regular expression based mail filter
+After = syslog.target
+Before = sendmail.service
+Before = postfix.service
+
+[Service]
+Type = forking
+Environment = OPTIONS=
+EnvironmentFile = -/etc/sysconfig/milter-regex
+ExecStart = /usr/sbin/milter-regex $OPTIONS
+
+[Install]
+WantedBy = multi-user.target
diff --git a/milter-regex.spec b/milter-regex.spec
index 21b028b..656ef47 100644
--- a/milter-regex.spec
+++ b/milter-regex.spec
@@ -1,26 +1,23 @@
 Name:		milter-regex
 Version:	1.8
-Release:	2%{?dist}
-Summary:	Sendmail milter plug-in for regular expression filtering
+Release:	3%{?dist}
+Summary:	Milter plug-in for regular expression filtering
 Group:		System Environment/Daemons
 License:	BSD
 URL:		http://www.benzedrine.cx/milter-regex.html
 Source0:	http://www.benzedrine.cx/milter-regex-%{version}.tar.gz
-Source1:	milter-regex-initscript
+Source1:	milter-regex.service
 Source2:	milter-regex-options
 Source3:	milter-regex.conf
 Patch0:		milter-regex-1.6-gcc.patch
 Patch1:		milter-regex-1.8-strlcat.patch
-Buildroot:	%{_tmppath}/%{name}-%{release}-root-%(%{__id_u} -n)
 Buildrequires:	sendmail-devel >= 8.13, byacc, groff
-Requires:	sendmail
+BuildRequires:	systemd-units
 
-# This macro only defined by default around Fedora 10 time
-%{?!_initddir:%global _initddir %{_initrddir}}
-
-Requires(pre):	  shadow-utils
-Requires(post):	  /sbin/chkconfig
-Requires(preun):  /sbin/chkconfig
+Requires(pre): shadow-utils
+Requires(post): systemd-units
+Requires(preun): systemd-units
+Requires(postun): systemd-units
 
 %description
 Milter-regex is a milter based filter that makes it possible to filter
@@ -30,26 +27,25 @@ emails using regular expressions.
 %setup -q
 %patch0 -p1 -b .gcc
 %patch1 -p0 -b .strlcat
-%{__sed} -i -e 's|/etc/milter-regex\.conf|%{_sysconfdir}/mail/milter-regex.conf|;
-		s|_milter-regex|mregex|' milter-regex.[8c]
-/usr/bin/head -n +31 milter-regex.c > LICENSE
+sed -i -e	's|/etc/milter-regex\.conf|%{_sysconfdir}/mail/milter-regex.conf|;
+		 s|_milter-regex|mregex|' milter-regex.[8c]
+head -n +31 milter-regex.c > LICENSE
 
 %build
-%{__make} %{?_smp_mflags} -f Makefile.linux CFLAGS="%{optflags} -DYYMAXDEPTH=8192"
+make %{?_smp_mflags} -f Makefile.linux CFLAGS="%{optflags} -DYYMAXDEPTH=8192"
 
 %install
-%{__rm} -rf %{buildroot}
-%{__mkdir} -p \
-	%{buildroot}%{_initddir} \
+mkdir -p \
+	%{buildroot}%{_unitdir} \
 	%{buildroot}%{_localstatedir}/spool/milter-regex \
 	%{buildroot}%{_mandir}/man8 \
 	%{buildroot}%{_sbindir} \
 	%{buildroot}%{_sysconfdir}/{mail,sysconfig}
-%{__install} -p -m 755 milter-regex %{buildroot}%{_sbindir}/
-%{__install} -p -m 644 milter-regex.8 %{buildroot}%{_mandir}/man8/
-%{__install} -p -m 755 %{SOURCE1} %{buildroot}%{_initddir}/milter-regex
-%{__install} -p -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/milter-regex
-%{__install} -p -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/mail/milter-regex.conf
+install -p -m 755 milter-regex %{buildroot}%{_sbindir}/
+install -p -m 644 milter-regex.8 %{buildroot}%{_mandir}/man8/
+install -p -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/milter-regex.service
+install -p -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/milter-regex
+install -p -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/mail/milter-regex.conf
 
 # Create a ghost sock file so we can remove it on package deletion
 : > %{buildroot}%{_localstatedir}/spool/milter-regex/sock
@@ -62,25 +58,38 @@ emails using regular expressions.
 exit 0
 
 %post
-/sbin/chkconfig --add milter-regex || :
+if [ $1 -eq 1 ]; then
+	# Initial installation 
+	/bin/systemctl daemon-reload &>/dev/null || :
+fi
 
 %preun
-if [ $1 -eq 0 ] ; then
-	%{_initddir}/milter-regex stop &> /dev/null || :
-	/sbin/chkconfig --del milter-regex || :
+if [ $1 -eq 0 ]; then
+	# Package removal, not upgrade
+	/bin/systemctl --no-reload disable milter-regex.service &>/dev/null || :
+	/bin/systemctl stop milter-regex.service &>/dev/null || :
 fi
 
 %postun
-[ $1 -ge 1 ] && %{_initddir}/milter-regex try-restart &> /dev/null || :
+/bin/systemctl daemon-reload &>/dev/null || :
+if [ $1 -ge 1 ]; then
+	# Package upgrade, not uninstall
+	/bin/systemctl try-restart milter-regex.service &>/dev/null || :
+fi
 
-%clean
-%{__rm} -rf %{buildroot}
+# SysV to systemd migration
+# See http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd
+# This can be removed for Fedora 18 when there will be no supported Fedora
+# release with the SysV initscript to upgrade from
+%triggerun -- milter-regex < 1.8-3
+/usr/bin/systemd-sysv-convert --save milter-regex &>/dev/null || :
+/sbin/chkconfig --del milter-regex &>/dev/null || :
+/bin/systemctl try-restart milter-regex.service &>/dev/null || :
 
 %files
-%defattr(-,root,root,-)
 %doc LICENSE
 %{_sbindir}/milter-regex
-%{_initddir}/milter-regex
+%{_unitdir}/milter-regex.service
 %config(noreplace) %{_sysconfdir}/sysconfig/milter-regex
 %config(noreplace) %{_sysconfdir}/mail/milter-regex.conf
 %dir %attr(755,mregex,mregex) %{_localstatedir}/spool/milter-regex/
@@ -88,8 +97,14 @@ fi
 %{_mandir}/man8/milter-regex.8*
 
 %changelog
+* Sat Jul 16 2011 Paul Howarth <paul at city-fan.org> - 1.8-3
+- switch from SysV initscript to systemd unit file
+- clean up for modern rpmbuild
+- drop Sendmail references as the milter should work with Postfix too
+- nobody else likes macros for commands
+
 * Tue Feb 08 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.8-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+- rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
 
 * Fri Aug 13 2010 Paul Howarth <paul at city-fan.org> - 1.8-1
 - update to 1.8 (log symbolic host name together with numeric IP address)


More information about the scm-commits mailing list