[packages/rspamd] Integrate with the system properly

aredridel aredridel at pld-linux.org
Fri May 17 05:18:55 CEST 2013


commit a84a92985628e32e8aff0125b120b9521df2ae03
Author: Aria Stewart <aredridel at nbtsc.org>
Date:   Thu May 16 21:12:00 2013 -0600

    Integrate with the system properly

 rspamd.init      |  94 +++++++++++++++++++++++++++++++++++++++++++++++++++
 rspamd.spec      | 101 ++++++++++++++-----------------------------------------
 rspamd.sysconfig |   4 +++
 3 files changed, 124 insertions(+), 75 deletions(-)
---
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 <feedback at pld-linux.org>
 - For complete changelog see: http://git.pld-linux.org/?p=packages/rspamd.git;a=log
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.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=""
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/rspamd.git/commitdiff/a84a92985628e32e8aff0125b120b9521df2ae03



More information about the pld-cvs-commit mailing list