+++ /dev/null
-[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
# 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
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
%{__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}
%{_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}
%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
%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.*
--- /dev/null
+#!/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
--- /dev/null
+[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