From a84a92985628e32e8aff0125b120b9521df2ae03 Mon Sep 17 00:00:00 2001 From: Aria Stewart Date: Thu, 16 May 2013 21:12:00 -0600 Subject: [PATCH] Integrate with the system properly --- rspamd.init | 94 +++++++++++++++++++++++++++++++++++++++++++ rspamd.spec | 101 ++++++++++++----------------------------------- rspamd.sysconfig | 4 ++ 3 files changed, 124 insertions(+), 75 deletions(-) create mode 100644 rspamd.init create mode 100644 rspamd.sysconfig diff --git a/rspamd.init b/rspamd.init new file mode 100644 index 0000000..68d0d17 --- /dev/null +++ b/rspamd.init @@ -0,0 +1,94 @@ +#!/bin/sh +# +# rspamd This script starts and stops the rspamd daemon +# +# chkconfig: 2345 80 30 +# +# description: rspamd is a daemon process which uses rspamd to check \ +# email messages for SPAM. It is normally called by rspamc \ +# from a MDA. +# processname: rspamd +# pidfile: /var/run/rspamd.pid + +# Source function library. +. /etc/rc.d/init.d/functions + +# Source networking configuration. +. /etc/sysconfig/network + +SPAMD_OPTS="-d -c" +# Source configureation. +if [ -f /etc/sysconfig/rspamd ] ; then + . /etc/sysconfig/rspamd +fi + +# Check that networking is up. +if is_no "${NETWORKING}"; then + msg_network_down "rspamd" + exit 1 +fi + +start() { + # Start daemon. + if [ -f /var/lock/subsys/rspamd ]; then + msg_already_running "rspamd" + return + fi + + msg_starting "rspamd" + daemon /usr/bin/rspamd -u rspamd -g rspamd $RSPAMD_OPTS + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/rspamd +} + +stop() { + # Stop daemons. + if [ ! -f /var/lock/subsys/rspamd ]; then + msg_not_running "rspamd" + return + fi + + msg_stopping "rspamd" + killproc rspamd + RETVAL=$? + rm -f /var/lock/subsys/rspamd +} + +condrestart() { + if [ ! -f /var/lock/subsys/rspamd ]; then + msg_not_running "rspamd" + RETVAL=$1 + return + fi + + stop + start +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + try-restart) + condrestart 0 + ;; + force-reload) + condrestart 7 + ;; + status) + status rspamd + ;; + *) + msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}" + exit 1 +esac + +exit $RETVAL diff --git a/rspamd.spec b/rspamd.spec index 76ecfc2..a825e46 100644 --- a/rspamd.spec +++ b/rspamd.spec @@ -2,23 +2,18 @@ Summary: Spam filter to replace spamassassin Name: rspamd Version: 0.5.4 -Release: 0.2 +Release: 0.3 License: BSD-like Group: Applications Source0: https://bitbucket.org/vstakhov/rspamd/downloads/%{name}-%{version}.tar.gz # Source0-md5: b5f18a2098de9b6931a9d40c60c83fcd Source1: %{name}.tmpfiles +Source2: %{name}.init +Source3: %{name}.sysconfig URL: https://bitbucket.org/vstakhov/rspamd/wiki/Home -%if %{with initscript} BuildRequires: rpmbuild(macros) >= 1.228 Requires(post,preun): /sbin/chkconfig Requires: rc-scripts -%endif -%if %{with systemd_service} -BuildRequires: rpmbuild(macros) >= 1.647 -Requires(post,preun,postun): systemd-units >= 38 -Requires: systemd-units >= 0.38 -%endif BuildRequires: cmake BuildRequires: glib2-devel BuildRequires: gmime-devel @@ -27,8 +22,8 @@ BuildRequires: libffi-devel BuildRequires: lua-devel BuildRequires: pcre-devel BuildRequires: sqlite3-devel -#Provides: group(foo) -#Provides: user(foo) +Provides: group(rspamd) +Provides: user(rspamd) BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) # Executable provides rspamd_main, gmime and more @@ -54,47 +49,40 @@ spam filters: %setup -q %build -%{__cmake} -DCMAKE_INSTALL_PREFIX=%{_prefix} -DETC_PREFIX=%{_sysconfdir} . +%{__cmake} -DCMAKE_INSTALL_PREFIX=%{_prefix} -DETC_PREFIX=%{_sysconfdir} -DLIBDIR=%{_libdir} . %{__make} %install rm -rf $RPM_BUILD_ROOT -%if %{with initscript} install -d $RPM_BUILD_ROOT/etc/{sysconfig,rc.d/init.d} -%endif install -d $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d install %SOURCE1 $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/%{name}.conf +install %SOURCE2 $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name} +install %SOURCE3 $RPM_BUILD_ROOT/etc/sysconfig/%{name} %{__make} install \ DESTDIR=$RPM_BUILD_ROOT +mv $RPM_BUILD_ROOT%{_sysconfdir}/rspamd/2tld.inc{.orig,} + %clean rm -rf $RPM_BUILD_ROOT -%if 0 %pre -%groupadd -g xxx %{name} -%useradd -u xxx -d /var/lib/%{name} -g %{name} -c "XXX User" %{name} - -%post +%groupadd -g 294 %{name} +%useradd -u 294 -d /var/lib/%{name} -g %{name} -c "rspamd User" %{name} -%preun %postun +/sbin/ldconfig if [ "$1" = "0" ]; then %userremove %{name} %groupremove %{name} fi -%endif - -%if %{with ldconfig} -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig -%endif -%if %{with initscript} %post +/sbin/ldconfig /sbin/chkconfig --add %{name} %service %{name} restart @@ -103,37 +91,27 @@ if [ "$1" = "0" ]; then %service -q %{name} stop /sbin/chkconfig --del %{name} fi -%endif - -%if %{with systemd_service} -%post -%systemd_post %{name}.service - -%preun -%systemd_preun %{name}.service - -%postun -%systemd_reload -%endif %files %defattr(644,root,root,755) %doc ChangeLog README +%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name} +%attr(754,root,root) /etc/rc.d/init.d/%{name} %{_sysconfdir}/tmpfiles.d/rspamd.conf -%attr(755,root,root) %{_bindir}/rspamc -%attr(755,root,root) %{_bindir}/rspamc-0.5.4 -%attr(755,root,root) %{_bindir}/rspamd -%attr(755,root,root) %{_bindir}/rspamd-0.5.4 -#%attr(754,root,root) %{_prefix}/etc/rc.d/init.d/rspamd +%attr(755,root,root) %{_bindir}/rspam* %{_sysconfdir}/rspamd.xml.sample +%dir /etc/rspamd %{_sysconfdir}/rspamd/2tld.inc -%{_sysconfdir}/rspamd/2tld.inc.orig +%dir /etc/rspamd/lua +%{_sysconfdir}/rspamd/lua/rspamd.classifiers.lua +%{_sysconfdir}/rspamd/lua/rspamd.lua +%dir /etc/rspamd/lua/regexp %{_sysconfdir}/rspamd/lua/regexp/drugs.lua %{_sysconfdir}/rspamd/lua/regexp/fraud.lua %{_sysconfdir}/rspamd/lua/regexp/headers.lua %{_sysconfdir}/rspamd/lua/regexp/lotto.lua -%{_sysconfdir}/rspamd/lua/rspamd.classifiers.lua -%{_sysconfdir}/rspamd/lua/rspamd.lua +%dir /etc/rspamd/plugins +%dir /etc/rspamd/plugins/lua %{_sysconfdir}/rspamd/plugins/lua/emails.lua %{_sysconfdir}/rspamd/plugins/lua/forged_recipients.lua %{_sysconfdir}/rspamd/plugins/lua/ip_score.lua @@ -147,39 +125,12 @@ fi %{_sysconfdir}/rspamd/plugins/lua/whitelist.lua %{_sysconfdir}/rspamd/surbl-whitelist.inc # %{_includedir}/rspamd/librspamdclient.h -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamd-cdb.so -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamd-cdb.so.0.5.4 -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamd-json.so -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamd-json.so.0.5.4 -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamd-lua.so -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamd-lua.so.0.5.4 -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamd-mime.so -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamd-mime.so.0.5.4 -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamd-server.so -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamd-server.so.0.5.4 -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamd-util.so -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamd-util.so.0.5.4 -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamdclient.so -%attr(755,root,root) %{_prefix}/lib/rspamd/librspamdclient.so.0.5.4 +%attr(755,root,root) %{_libdir}/*.so +%attr(755,root,root) %{_libdir}/*.so.%{version} # %{_prefix}/lib/rspamd/librspamdclient_static.a %{_mandir}/man1/rspamc.1* %{_mandir}/man8/rspamd.8* -%if 0 -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/* -%attr(755,root,root) %{_bindir}/%{name}* -%{_datadir}/%{name} -%endif - -# initscript and its config -%if %{with initscript} -%attr(754,root,root) /etc/rc.d/init.d/%{name} -%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name} -%endif - -%if %{with systemd_service} -%{systemdunitdir}/%{name}.service -%endif %changelog * Wed May 15 2013 PLD Linux Team - For complete changelog see: http://git.pld-linux.org/?p=packages/rspamd.git;a=log diff --git a/rspamd.sysconfig b/rspamd.sysconfig new file mode 100644 index 0000000..8cf6a4e --- /dev/null +++ b/rspamd.sysconfig @@ -0,0 +1,4 @@ +# Customized settings for rspamd + +# Cmdline options +RSPAMD_OPTS="" -- 2.44.0