]> source.dussan.org Git - rspamd.git/commitdiff
Fix SLES support & OpenSUSE 12 builds on build service 21/head
authorAndrew Lewis <nerf@judo.za.org>
Fri, 3 Jan 2014 19:55:00 +0000 (21:55 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Fri, 3 Jan 2014 19:55:00 +0000 (21:55 +0200)
centos/rspamd.service [deleted file]
centos/rspamd.spec
centos/sources/rspamd.init.suse [new file with mode: 0644]
centos/sources/rspamd.service [new file with mode: 0644]

diff --git a/centos/rspamd.service b/centos/rspamd.service
deleted file mode 100644 (file)
index eec4cd9..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=rspamd
-After=syslog.target network.target remote-fs.target nss-lookup.target
-
-[Service]
-Type=simple
-PIDFile=/var/lib/rspamd/rspamd.pid
-ExecStartPre=/usr/bin/rspamd -u rspamd -g rspamd -t
-ExecStart=/usr/bin/rspamd -u rspamd -g rspamd -f
-ExecReload=/bin/kill -s HUP $MAINPID
-ExecStop=/bin/kill -s QUIT $MAINPID
-
-[Install]
-WantedBy=multi-user.target
index a18f088933d8b721c0f222914b5eb5ff937dc3f4..f23058eef16161a301c924ab0dc6395f8b5f6335 100644 (file)
@@ -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 (file)
index 0000000..e34cef9
--- /dev/null
@@ -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/sources/rspamd.service b/centos/sources/rspamd.service
new file mode 100644 (file)
index 0000000..eec4cd9
--- /dev/null
@@ -0,0 +1,14 @@
+[Unit]
+Description=rspamd
+After=syslog.target network.target remote-fs.target nss-lookup.target
+
+[Service]
+Type=simple
+PIDFile=/var/lib/rspamd/rspamd.pid
+ExecStartPre=/usr/bin/rspamd -u rspamd -g rspamd -t
+ExecStart=/usr/bin/rspamd -u rspamd -g rspamd -f
+ExecReload=/bin/kill -s HUP $MAINPID
+ExecStop=/bin/kill -s QUIT $MAINPID
+
+[Install]
+WantedBy=multi-user.target