Subject: [alpine-aports] [PATCH] testing/rspamd: cleaning and refining after initial commit

From: Valery Kartel <[email-masked]>
Date: Thu, 21 Jan 2016 15:10:55 +0200

---
 testing/rspamd/APKBUILD           | 73 +++++++++++++++++++++++++--------------
 testing/rspamd/rspamd.confd       | 17 +++++++++
 testing/rspamd/rspamd.initd       | 15 ++++----
 testing/rspamd/rspamd.pre-install |  2 +-
 4 files changed, 74 insertions(+), 33 deletions(-)
 create mode 100644 testing/rspamd/rspamd.confd

diff --git a/testing/rspamd/APKBUILD b/testing/rspamd/APKBUILD
index 0a92872..c04f33b 100644
--- a/testing/rspamd/APKBUILD
+++ b/testing/rspamd/APKBUILD
@@ -2,8 +2,8 @@
 # Contributor: Valery Kartel <[email-masked]>
 pkgname=rspamd
 pkgver=1.1.0
-pkgrel=0
-pkgdesc="Rapid spam filtering system."
+pkgrel=1
+pkgdesc="Rapid spam filtering system"
 url="https://rspamd.com"
 arch="all"
 license="BSD-2-clause"
@@ -14,10 +14,11 @@ depends_dev=""
 makedepends="$depends_dev cmake openssl-dev libevent-dev glib-dev gmime-dev
 	luajit-dev sqlite-dev hiredis-dev file-dev pcre-dev"
 install="$pkgname.pre-install"
-subpackages="$pkgname-doc $pkgname-web"
+subpackages="$pkgname-doc $pkgname-web $pkgname-client $pkgname-contrib"
 source="https://rspamd.com/downloads/$pkgname-$pkgver.tar.xz
 	$pkgname.logrotated
 	$pkgname.initd
+	$pkgname.confd
 	$pkgname.conf
 	$pkgname.worker_normal
 	$pkgname.worker_controller
@@ -29,63 +30,85 @@ build() {
 	cd "$_builddir"
 	cmake CMakeLists.txt \
 		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DEXAMPLESDIR=/usr/share/doc/rspamd/examples \
-		-DCONFDIR=/etc/rspamd \
-		-DDBDIR=/var/lib/$pkgname \
+		-DCONFDIR=/etc/$pkgname \
 		-DRUNDIR=/run/$pkgname \
-		-DLOGDIR=/var/log/$pkgname \
-		-DENABLE_HIREDIS=ON \
-		-DRSPAMD_GROUP=$pkggroups \
 		-DRSPAMD_USER=$pkgusers \
+		-DRSPAMD_GROUP=$pkggroups \
 		-DENABLE_HIREDIS=ON \
+		-DINSTALL_EXAMPLES=ON \
 	|| return 1
 	make || return 1
 }
 
 package() {
 	cd "$_builddir"
-	make DESTDIR="$pkgdir" INSTALLDIRS=vendor install || return 1
-	for file in rspamd rspamc rspamadm; do
-		mv "$pkgdir"/usr/bin/$file-$pkgver "$pkgdir"/usr/bin/$file
-	done
-	find "$pkgdir"/usr/bin -type f -exec mv {} $(basename {} -$pkgver) \;
-	mkdir "$pkgdir"/usr/sbin "$pkgdir"/usr/share/doc/$pkgname/www
-	mv "$pkgdir"/usr/bin/rspamd "$pkgdir"/usr/sbin/
-	mv "$pkgdir"/usr/share/$pkgname/www/README.md \
-		"$pkgdir"/usr/share/$pkgname/www/plugins.txt \
-		"$pkgdir"/usr/share/doc/$pkgname/www
-	rm -fr "$pkgdir"/etc/$pkgname/rspamd.* "$pkgdir"/etc/$pkgname/worker-*
-	install -m644 "$srcdir"/$pkgname.conf "$pkgdir"/etc/$pkgname/$pkgname.conf
+	make DESTDIR="$pkgdir" install || return 1
+	find "$pkgdir"/usr/bin -type l -delete
+	rm -fr "$pkgdir"/etc/$pkgname/rspamd* "$pkgdir"/etc/$pkgname/worker*
+
+	sed -i -E 's~DBDIR(/rspamd.sock)~RUNDIR\1~' "$pkgdir"/etc/$pkgname/options.inc
+	install -Dm644 "$srcdir"/$pkgname.conf "$pkgdir"/etc/$pkgname/$pkgname.conf
 	install -Dm644 "$srcdir"/$pkgname.worker_normal "$pkgdir"/etc/$pkgname/worker.d/normal.conf
+
 	install -Dm644 "$srcdir"/$pkgname.logrotated "$pkgdir"/etc/logrotate.d/$pkgname
 	install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+	install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+
 	install -dm750 -o $pkgusers -g $pkggroups "$pkgdir"/var/lib/$pkgname
 	install -dm750 -g $pkggroups "$pkgdir"/var/log/$pkgname
+
+	mkdir "$pkgdir"/usr/sbin
+	mv "$pkgdir"/usr/bin/rspamd-$pkgver "$pkgdir"/usr/sbin/rspamd
+	mv "$pkgdir"/usr/bin/rspamadm-$pkgver "$pkgdir"/usr/bin/rspamadm
+
+	mv "$pkgdir"/usr/share/examples "$pkgdir"/usr/share/doc
+	mv "$pkgdir"/usr/share/$pkgname/www/README.md \
+		"$pkgdir"/usr/share/$pkgname/www/plugins.txt \
+		"$pkgdir"/usr/share/doc/$pkgname
 }
 
 web() {
 	arch="noarch"
+	license="MIT"
+	depends="$pkgname"
 	pkgdesc="$pkgdesc (web control interface)"
-	mkdir -p "$subpkgdir"/usr/share/$pkgname
+	mkdir -p "$subpkgdir"/usr/share/$pkgname "$subpkgdir"/etc/$pkgname/worker.d
 	mv "$pkgdir"/usr/share/$pkgname/www "$subpkgdir"/usr/share/$pkgname/
 	install -Dm644 "$srcdir"/$pkgname.worker_controller "$subpkgdir"/etc/$pkgname/worker.d/controller.conf
 }
 
+client() {
+	pkgdesc="$pkgdesc (console client)"
+	mkdir -p "$subpkgdir"/usr/bin
+	mv "$pkgdir"/usr/bin/rspamc-$pkgver "$subpkgdir"/usr/bin/rspamc
+}
+
+contrib() {
+	arch="noarch"
+	pkgdesc="Some useful stuff to deploying rspamd to another apps"
+	mkdir -p "$subpkgdir"/usr/share/$pkgname/contrib
+	# Exim specific stuff
+	cp -r "$_builddir"/contrib/exim "$subpkgdir"/usr/share/$pkgname/contrib/
+}
+
 md5sums="c14cc28bc346a3f12623e472ba508f43  rspamd-1.1.0.tar.xz
 3fd4d0e28cb01224a786c0498266e9a6  rspamd.logrotated
-cbf6a8191c7ce4b7c4fe481cad58f1a4  rspamd.initd
+dba3145a52bee22d8ed1192dc44506ad  rspamd.initd
+ecfea2a25b95727ae91c04001fbd3e46  rspamd.confd
 a5f0967b3d9aa319909af7e1bfe998e1  rspamd.conf
 74e334227e9244c419abd605787c090e  rspamd.worker_normal
 03bd84228945261e2242564f9bf5f1ca  rspamd.worker_controller"
 sha256sums="69db05150b4ba8304d24dd0f96c79b5d3792478373f0d6be6c92b51b1cf60ead  rspamd-1.1.0.tar.xz
 cb02c8c041a0ace2e3c9e4fbf514038871b4444575c9022a75e661130db875fd  rspamd.logrotated
-0e4d1ce24ce9ec0451f4498dcadc391721affc63be3c693564df29f9b23b0c7a  rspamd.initd
+83acf26538826ce58039236660807cc87b9d4abc628fa6e2ddbb4201eac5424e  rspamd.initd
+82be6a663af2e2333b0dfbbbfd05a9ff3d02e05c7e506235b1b0dbd9d0b72972  rspamd.confd
 5a223efb12e962e0f3bfe9f6d08336c6074b0b2930b8da6a22fe6582142ee40c  rspamd.conf
 7805103a2e11cf816e99dba7d67fdc584ece33d9ea3ef95f95f4fce91a34eb90  rspamd.worker_normal
 f50663096866b35095f7a6754e3cfb0bab518645d61646703715cf43da5adf77  rspamd.worker_controller"
 sha512sums="41a8fb49a10082b1dc97397ebb8ac81dd3f4912e9140dcb7c57c9e15f1e49cf472aa94570a2f802b82e3db8ab8a87dd6a63f7db7249da4d99473700535045256  rspamd-1.1.0.tar.xz
 3b95882b1804d8dc6524a4c2cdf3f656b2f9bf5db6228b92d1acd539629070aead654c1f58937e1473e4f07340dc3de7b212f87b36143c5cb3fcb3b472a85f5a  rspamd.logrotated
-f41f72ace36af2d55e4b900580953b72933cc9cd53213e0ff40439eeab45713ebe07cafa14e5ac7951b96e0984d875d507fd4adb8e1501f0954324118c0abf68  rspamd.initd
+12b2a92126f911e29d5ace836404ca8170bc19181f3b61896726b0dea79b03bc3b9295d876b96a633a3b4a963646cf7bebfbe10489ad24f373d81fd5a84f21b1  rspamd.initd
+0b73b159cec9a4a1d337fbb429814f78da23b55f72c9fb8a777ab5f06634206a4f9b25e587f8dbfa7c3242ac5501ebcc90b9a0e926adfd37e14a12ac4607fa62  rspamd.confd
 90885bd8f9fcd47590eedf8f1f058df7c492005fc09058e99ee490e1730f4961909850ecf9e98723bfbd3cbe8df705f86a0de931dedb25bc66b246674f537a72  rspamd.conf
 ddf1af03878ed2f4b1e735ecd9f931f1941adf7b2085aa7a40f3ef303fa5c59791d0d7462064c2ac652af2722b83acd4379f549d341cb62767e74edefb69ba9a  rspamd.worker_normal
 932486ee517ca55534e93eb634badd9082a3952e25a66f98468c7b9c29ce4a26a5a96f465ee347dfd5443d330b1dd11b72680bc6ac04c2ebe45412f4432e8f62  rspamd.worker_controller"
diff --git a/testing/rspamd/rspamd.confd b/testing/rspamd/rspamd.confd
new file mode 100644
index 0000000..541ffff
--- /dev/null
+++ b/testing/rspamd/rspamd.confd
@@ -0,0 +1,17 @@
+# User to run rspamd workers
+#user=rspamd
+
+# Group to run rspamd workers
+#group=rspamd
+
+# Main config file
+#cfgfile=/etc/rspamd/rspamd.conf
+
+# PID file. Settings from config files are ignored
+#pidfile=/run/rspamd/rspamd.pid
+
+# Where to log startup configuration checking
+# - /dev/null - silent (default)
+# - /dev/tty - show output on curent terminal
+# - /path/filename - append to specified logfile
+#startuplog=/var/log/rspamd/startup.log
diff --git a/testing/rspamd/rspamd.initd b/testing/rspamd/rspamd.initd
index 5189e49..0fd5b93 100644
--- a/testing/rspamd/rspamd.initd
+++ b/testing/rspamd/rspamd.initd
@@ -1,10 +1,12 @@
 #!/sbin/openrc-run
 
 description="Rapid spam filtering system"
-command="/usr/sbin/rspamd"
-command_args="-u rspamd -g rspamd"
+user=${user:-rspamd}
+group=${group:-rspamd}
 cfgfile=${cfgfile:-/etc/rspamd/rspamd.conf}
-pidfile="/run/rspamd/rspamd.pid"
+pidfile=${pidfile:-/run/rspamd/rspamd.pid}
+command=/usr/sbin/rspamd
+command_args="-u $user -g $group -c $cfgfile -p $pidfile"
 required_files="$cfgfile"
 extra_started_commands="reload"
 description_reload="Reload configuration"
@@ -16,14 +18,13 @@ depend() {
 
 start_pre() {
 	ebegin
-	[ "$cfgfile" = "/etc/rspamd/rspamd.conf" ] || command_args="$command_args -c $cfgfile"
-	checkpath --directory --mode 750 --owner rspamd:rspamd "${pidfile%/*}"
-	$command $command_args -t &>/dev/null
+	checkpath --directory --mode 750 --owner $user:$group ${pidfile%/*}
+	$command $command_args -t >/dev/null 2>>${startuplog:-/dev/null}
 	eend $?
 }
 
 reload() {
 	ebegin "Reloading ${SVCNAME}"
-	start-stop-daemon --signal HUP --pidfile ${pidfile}
+	start-stop-daemon --signal HUP --pidfile $pidfile
 	eend $?
 }
diff --git a/testing/rspamd/rspamd.pre-install b/testing/rspamd/rspamd.pre-install
index db50214..7f00b36 100644
--- a/testing/rspamd/rspamd.pre-install
+++ b/testing/rspamd/rspamd.pre-install
@@ -1,6 +1,6 @@
 #!/bin/sh
 
 addgroup -S rspamd 2>/dev/null
-adduser -h /var/lib/rspamd -g "rspamd spam filtering system" -s /bin/false -SDHG rspamd rspamd 2>/dev/null
+adduser -h /var/lib/rspamd -g "rspamd" -s /bin/false -SDHG rspamd rspamd 2>/dev/null
 
 exit 0
-- 
2.7.0

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---