From: Andrew Lewis Date: Fri, 3 Jan 2014 19:55:00 +0000 (+0200) Subject: Fix SLES support & OpenSUSE 12 builds on build service X-Git-Tag: 0.6.7~32^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=refs%2Fpull%2F21%2Fhead;p=rspamd.git Fix SLES support & OpenSUSE 12 builds on build service --- diff --git a/centos/rspamd.service b/centos/rspamd.service deleted file mode 100644 index eec4cd9ea..000000000 --- a/centos/rspamd.service +++ /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 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/sources/rspamd.service b/centos/sources/rspamd.service new file mode 100644 index 000000000..eec4cd9ea --- /dev/null +++ b/centos/sources/rspamd.service @@ -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