aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Lewis <nerf@judo.za.org>2014-01-03 21:55:00 +0200
committerAndrew Lewis <nerf@judo.za.org>2014-01-03 21:55:00 +0200
commit19826e5a95d991a6d966cd7a67795077ffb6ddf1 (patch)
tree6f5654cf51324e3ef89abc8334da19f0f78c2026
parentf11da523576c2cc1d07e1d9baa99572479bf42eb (diff)
downloadrspamd-19826e5a95d991a6d966cd7a67795077ffb6ddf1.tar.gz
rspamd-19826e5a95d991a6d966cd7a67795077ffb6ddf1.zip
Fix SLES support & OpenSUSE 12 builds on build service
-rw-r--r--centos/rspamd.spec32
-rw-r--r--centos/sources/rspamd.init.suse111
-rw-r--r--centos/sources/rspamd.service (renamed from centos/rspamd.service)0
3 files changed, 142 insertions, 1 deletions
diff --git a/centos/rspamd.spec b/centos/rspamd.spec
index a18f08893..f23058eef 100644
--- a/centos/rspamd.spec
+++ b/centos/rspamd.spec
@@ -39,7 +39,9 @@ Requires: lua, logrotate
# for /user/sbin/useradd
%if 0%{?suse_version}
Requires(pre): shadow
+%if 0%{?suse_version} >= 1300
Requires(pre,post,preun,postun): systemd
+%endif
%else
Requires(pre): shadow-utils
Requires(post): chkconfig
@@ -50,8 +52,12 @@ Requires(postun): initscripts
Source0: https://rspamd.com/downloads/%{name}-%{version}.tar.gz
%if 0%{?suse_version}
+%if 0%{?suse_version} >= 1300
Source1: %{name}.service
%else
+Source1: %{name}.init.suse
+%endif
+%else
Source1: %{name}.init
%endif
Source2: %{name}.logrotate
@@ -96,9 +102,15 @@ lua.
%{__make} install DESTDIR=%{buildroot} INSTALLDIRS=vendor
%if 0%{?suse_version}
+%if 0%{?suse_version} >= 1300
%{__install} -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/rspamd.service
%else
%{__install} -p -D -m 0755 %{SOURCE1} %{buildroot}%{_initrddir}/%{name}
+mkdir -p %{buildroot}%{_sbindir}
+ln -sf %{_initrddir}/rspamd %{buildroot}%{_sbindir}/rcrspamd
+%endif
+%else
+%{__install} -p -D -m 0755 %{SOURCE1} %{buildroot}%{_initrddir}/%{name}
%endif
%{__install} -p -D -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
@@ -112,21 +124,29 @@ rm -rf %{buildroot}
%{_sbindir}/groupadd -r %{rspamd_group} 2>/dev/null || :
%{_sbindir}/useradd -g %{rspamd_group} -c "Rspamd user" -s /bin/false -r -d %{rspamd_home} %{rspamd_user} 2>/dev/null || :
-%if 0%{?suse_version}
+%if 0%{?suse_version} >= 1300
%service_add_pre %{name}.service
%endif
%post
%if 0%{?suse_version}
+%if 0%{?suse_version} >= 1300
%service_add_post %{name}.service
%else
+%fillup_and_insserv rspamd
+%endif
+%else
/sbin/chkconfig --add %{name}
%endif
%preun
%if 0%{?suse_version}
+%if 0%{?suse_version} >= 1300
%service_del_preun %{name}.service
%else
+%stop_on_removal rspamd
+%endif
+%else
if [ $1 = 0 ]; then
/sbin/service %{name} stop >/dev/null 2>&1
/sbin/chkconfig --del %{name}
@@ -135,8 +155,13 @@ fi
%postun
%if 0%{?suse_version}
+%if 0%{?suse_version} >= 1300
%service_del_postun %{name}.service
%else
+%restart_on_update rspamd
+%insserv_cleanup
+%endif
+%else
if [ $1 -ge 1 ]; then
/sbin/service %{name} condrestart > /dev/null 2>&1 || :
fi
@@ -146,9 +171,14 @@ fi
%files
%defattr(-,root,root,-)
%if 0%{?suse_version}
+%if 0%{?suse_version} >= 1300
%{_unitdir}/%{name}.service
%else
%{_initrddir}/%{name}
+%{_sbindir}/rcrspamd
+%endif
+%else
+%{_initrddir}/%{name}
%endif
%{_mandir}/man8/%{name}.*
%{_mandir}/man1/rspamc.*
diff --git a/centos/sources/rspamd.init.suse b/centos/sources/rspamd.init.suse
new file mode 100644
index 000000000..e34cef914
--- /dev/null
+++ b/centos/sources/rspamd.init.suse
@@ -0,0 +1,111 @@
+#!/bin/sh
+#
+# rspamd - this script starts and stops the rspamd daemon
+### BEGIN INIT INFO
+# Provides: rspamd
+# Required-Start: $remote_fs $network
+# Required-Stop: $network $remote_fs
+# Default-Start: 5
+# Default-Stop:
+# Short-Description: Rspamd daemon
+# Description: Rspamd spam filtering daemon process
+### END INIT INFO
+#
+# chkconfig: - 85 15
+# description: rspamd is a spam filtering system
+# processname: rspamd
+# config: /etc/rspamd/rspamd.conf
+# config: /etc/sysconfig/rspamd
+# pidfile: /var/lib/rspamd/rspamd.pid
+
+. /etc/rc.status
+
+rc_reset
+
+rspamd="/usr/bin/rspamd"
+prog=$(basename $rspamd)
+
+RSPAMD_CONF_FILE="/etc/rspamd/rspamd.conf"
+RSPAMD_USER="rspamd"
+RSPAMD_GROUP="rspamd"
+
+[ -f /etc/sysconfig/rspamd ] && . /etc/sysconfig/rspamd
+
+start() {
+ [ -x $rspamd ] || exit 5
+ [ -f $rspamd_CONF_FILE ] || exit 6
+ echo -n $"Starting $prog: "
+ /sbin/startproc $rspamd -c $RSPAMD_CONF_FILE -u $RSPAMD_USER -g $RSPAMD_GROUP
+ rh_status
+}
+
+stop() {
+ echo -n $"Stopping $prog: "
+ /sbin/killproc -TERM $prog
+ rc_status -v
+}
+
+restart() {
+ configtest || return $?
+ stop
+ start
+}
+
+reload() {
+ configtest || return $?
+ echo -n $"Reloading $prog: "
+ /sbin/killproc -HUP $prog
+ rc_status -v
+}
+
+force_reload() {
+ restart
+}
+
+configtest() {
+ $rspamd -t -c $RSPAMD_CONF_FILE
+}
+
+rh_status() {
+ /sbin/checkproc $prog
+ retval=$?
+ rc_status -v
+ return $retval
+}
+
+rh_status_q() {
+ /sbin/checkproc $prog
+ retval=$?
+ rc_status
+ return $retval
+}
+
+case "$1" in
+ start)
+ rh_status_q && exit 0
+ $1
+ ;;
+ stop)
+ rh_status_q || exit 0
+ $1
+ ;;
+ restart|configtest)
+ $1
+ ;;
+ reload)
+ rh_status_q || exit 7
+ $1
+ ;;
+ force-reload)
+ force_reload
+ ;;
+ status)
+ rh_status
+ ;;
+ condrestart|try-restart)
+ rh_status_q || exit 0
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
+ exit 2
+esac
diff --git a/centos/rspamd.service b/centos/sources/rspamd.service
index eec4cd9ea..eec4cd9ea 100644
--- a/centos/rspamd.service
+++ b/centos/sources/rspamd.service