[dspam] Initial systemd unit file
Nathanael Noblet
gnat at fedoraproject.org
Wed Jul 13 20:49:17 UTC 2011
commit 0e480f7f6823905354bc4b4a56f2152d39718f8f
Author: Nathanael D. Noblet <nathanael at gnat.ca>
Date: Wed Jul 13 14:48:56 2011 -0600
Initial systemd unit file
dspam-systemd | 11 +++++++++++
dspam.spec | 39 +++++++++++++++++++++++----------------
2 files changed, 34 insertions(+), 16 deletions(-)
---
diff --git a/dspam-systemd b/dspam-systemd
new file mode 100644
index 0000000..66d14ea
--- /dev/null
+++ b/dspam-systemd
@@ -0,0 +1,11 @@
+[Unit]
+Description=A highly accurate statistical spam filter minimal resources
+
+[Service]
+Type=Forking
+EnvironmentFile=-/etc/sysconfig/dspam
+User=${DSPAM_USER}
+ExecStart=${DSPAM_BIN} --daemon 2>/dev/null
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/dspam.spec b/dspam.spec
index 327195e..3970b09 100644
--- a/dspam.spec
+++ b/dspam.spec
@@ -11,7 +11,7 @@
Summary: A library and Mail Delivery Agent for Bayesian SPAM filtering
Name: dspam
Version: 3.9.0
-Release: 21%{?dist}
+Release: 22%{?dist}
License: GPLv2
Group: System Environment/Daemons
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
@@ -22,6 +22,7 @@ Source4: dspam-web.conf
Source5: dspam-front
Source6: dspam-sysconfig
Source7: dspam-tmpfiles
+Source8: dspam-systemd
Source99: dspam-filter-requires.sh
Patch0: dspam-3.9.0-file-name.patch
Patch1: dspam-3.9.0-docs.patch
@@ -36,11 +37,10 @@ BuildRequires: mysql-devel
BuildRequires: postgresql-devel
BuildRequires: sqlite-devel
BuildRequires: openldap-devel
+BuildRequires: systemd-units
Requires: dspam-libs = %{version}-%{release}
-Requires(post): chkconfig
-Requires(preun): chkconfig
-Requires(preun): initscripts
+Requires(post): systemd-sysv
%description
The DSPAM agent masquerades as the email server's local delivery agent
@@ -127,7 +127,6 @@ Summary: Web-based interface for DSPAM
Group: System Environment/Daemons
Requires: dspam = %{version}-%{release}
Requires: webserver
-Requires(post): initscripts
%description web
Web-based interface for DSPAM's powerful Anti-Spam engine.
@@ -218,8 +217,8 @@ find $RPM_BUILD_ROOT -name *.a -exec rm {} \;
echo "Scanned and tagged as SPAM with DSPAM %{version} by Your ISP.com"> $RPM_BUILD_ROOT%{dspam_homedir}/txt/msgtag.spam
echo "Scanned and tagged as non-SPAM with DSPAM %{version} by Your ISP.com"> $RPM_BUILD_ROOT%{dspam_homedir}/txt/msgtag.nonspam
-# install init.d script
-%{__install} -Dp -m0755 %{SOURCE1} $RPM_BUILD_ROOT%{_initrddir}/dspam
+# install systemd script
+%{__install} -Dp -m0644 %{SOURCE8} $RPM_BUILD_ROOT%{_unitdir}/dspam.service
# install cron script
%{__install} -Dp -m0755 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/dspam
@@ -263,21 +262,26 @@ do
done
%{__install} -Dp -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/
+[...]
%post
-/sbin/chkconfig --add %{name}
-if [ $1 -gt 1 ]; then
-/sbin/chkconfig %{name} resetpriorities
+if [ $1 -eq 1 ] ; then
+ # Initial installation
+ /bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi
%preun
-if [ $1 -eq 0 ]; then
- /sbin/service %{name} stop &>/dev/null || :
- /sbin/chkconfig --del %{name}
+if [ $1 -eq 0 ] ; then
+ # Package removal, not upgrade
+ /bin/systemctl --no-reload disable dspam.service > /dev/null 2>&1 || :
+ /bin/systemctl stop dspam.service > /dev/null 2>&1 || :
fi
%postun
-if [ $1 -ge 1 ]; then
- /sbin/service %{name} condrestart &>/dev/null || :
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+if [ $1 -ge 1 ] ; then
+ /sbin/chkconfig --del httpd >/dev/null 2>&1 || :
+ # Package upgrade, not uninstall
+ /bin/systemctl try-restart dspam.service >/dev/null 2>&1 || :
fi
%pre libs
@@ -309,7 +313,7 @@ exit 0
%config(noreplace) %{_sysconfdir}/logrotate.d/dspam
%attr(0640,root,%{mail_group}) %config(noreplace) %{dspam_confdir}/dspam.conf
%attr(0644,root,%{mail_group}) %config(noreplace) %{dspam_confdir}/dspam.conf.default
-%{_initrddir}/dspam
+%{_unitdir}/dspam.service
%{_mandir}/man1/*
%attr(%{dspam_mode},%{dspam_user},%{mail_group}) %{_bindir}/dspam
%{_bindir}/dspam_2sql
@@ -376,6 +380,9 @@ exit 0
%config(noreplace) %{_sysconfdir}/httpd/conf.d/dspam-web.conf
%changelog
+* Wed Jul 13 2011 Nathanael Noblet <nathanael at gnat.ca> - 3.9.0-22
+- Systemd unit file
+
* Wed Jul 13 2011 Nathanael Noblet <nathanael at gnat.ca> - 3.9.0-21
- Start daemon as dspam user
More information about the scm-commits
mailing list