aboutsummaryrefslogtreecommitdiffstats
path: root/community/rspamd
diff options
context:
space:
mode:
authorTBK <tbk@jjtc.dk>2017-10-04 12:46:48 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2017-10-09 15:50:54 +0000
commitdd017b00960cc4c64788a3092d0b444eb592f341 (patch)
tree48da30cfb6dece02953f2b5f90c6fcdc29bd1135 /community/rspamd
parent0c2b89fb9b8889b59e0ff8e73182280894967e29 (diff)
downloadaports-dd017b00960cc4c64788a3092d0b444eb592f341.tar.bz2
aports-dd017b00960cc4c64788a3092d0b444eb592f341.tar.xz
community/rspamd: move from testing
Diffstat (limited to 'community/rspamd')
-rw-r--r--community/rspamd/APKBUILD154
-rw-r--r--community/rspamd/cmakelists.patch10
-rw-r--r--community/rspamd/rspamd.confd16
-rw-r--r--community/rspamd/rspamd.initd46
-rw-r--r--community/rspamd/rspamd.logrotated11
-rw-r--r--community/rspamd/rspamd.pre-install6
-rw-r--r--community/rspamd/worker.conf.in6
7 files changed, 249 insertions, 0 deletions
diff --git a/community/rspamd/APKBUILD b/community/rspamd/APKBUILD
new file mode 100644
index 0000000000..a0bd4c0add
--- /dev/null
+++ b/community/rspamd/APKBUILD
@@ -0,0 +1,154 @@
+# Maintainer: Valery Kartel <valery.kartel@gmail.com>
+# Contributor: Valery Kartel <valery.kartel@gmail.com>
+# Contributor: Nathan Angelacos <nangel@alpinelinux.org>
+# Contributor: TBK <alpine@jjtc.eu>
+pkgname=rspamd
+pkgver=1.6.4
+pkgrel=0
+pkgdesc="Fast, free and open-source spam filtering system"
+url="https://rspamd.com"
+arch="x86_64 x86 armhf ppc64le"
+license="BSD"
+options="!check"
+pkgusers=$pkgname
+pkggroups=$pkgname
+makedepends="cmake ragel perl lua-dev glib-dev pcre-dev icu-dev
+ libevent-dev sqlite-dev libressl-dev file-dev curl-dev
+ gd-dev fann-dev"
+install="$pkgname.pre-install"
+subpackages="$pkgname-doc $pkgname-client $pkgname-utils::noarch
+ $pkgname-controller::noarch $pkgname-fuzzy::noarch
+ $pkgname-proxy::noarch
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/vstakhov/$pkgname/archive/$pkgver.tar.gz
+ $pkgname.logrotated
+ $pkgname.initd
+ $pkgname.confd
+ cmakelists.patch
+ worker.conf.in
+ "
+builddir="$srcdir/$pkgname-$pkgver"
+
+prepare() {
+ local worker
+ default_prepare
+
+ cd "$builddir"
+ for worker in proxy:2 normal:3 controller:4 fuzzy:5; do
+ sed -e "s/@name@/${worker%:*}/g" -e "s/@port@/${worker#*:}/g" \
+ "$srcdir"/worker.conf.in > conf/worker-${worker%:*}.conf
+ done
+ sed -ri -e 's/worker /&"rspamd_proxy" /' \
+ conf/worker-proxy.conf
+ sed "$(grep -n -m1 'worker {' conf/rspamd.conf|cut -d: -f1),\$d" \
+ -i conf/rspamd.conf && \
+ echo '.include(glob=true) "$CONFDIR/worker-*.conf"' >> \
+ conf/rspamd.conf
+ sed -ri -e 's~DBDIR(/rspamd.sock)~RUNDIR\1~' \
+ -e 's~rspamd_dynamic~dynamic~' \
+ conf/options.inc
+}
+
+build() {
+ cd "$builddir"
+ cmake CMakeLists.txt \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCONFDIR=/etc/$pkgname \
+ -DRUNDIR=/run/$pkgname \
+ -DRSPAMD_USER=$pkgusers \
+ -DRSPAMD_GROUP=$pkggroups \
+ -DENABLE_DB=ON \
+ -DENABLE_SQLITE=ON \
+ -DENABLE_HIREDIS=ON \
+ -DENABLE_REDIRECTOR=ON \
+ -DENABLE_URL_INCLUDE=ON \
+ -DINSTALL_EXAMPLES=ON
+ make
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+
+ mkdir -p "$pkgdir"/etc/$pkgname/local.d \
+ "$pkgdir"/etc/$pkgname/override.d
+
+ 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 $pkgname -g $pkgname \
+ "$pkgdir"/var/lib/$pkgname/dynamic
+ install -dm750 -g $pkgname \
+ "$pkgdir"/var/log/$pkgname
+ chown $pkgname:$pkgname "$pkgdir"/var/lib/$pkgname
+
+ mkdir "$pkgdir"/usr/sbin
+ find "$pkgdir"/usr/bin -type l -delete
+ 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
+}
+
+client() {
+ pkgdesc="$pkgdesc (console client)"
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/rspamc-$pkgver \
+ "$subpkgdir"/usr/bin/rspamc
+}
+
+utils() {
+ depends="perl"
+ pkgdesc="$pkgdesc (utilities)"
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/${pkgname}_stats \
+ "$subpkgdir"/usr/bin/${pkgname}-stats
+ mv "$pkgdir"/usr/bin/${pkgname}-redirector "$subpkgdir"/usr/bin
+}
+
+fuzzy() {
+ depends="$pkgname"
+ pkgdesc="$pkgdesc (local fuzzy storage)"
+ mkdir -p "$subpkgdir"/etc/$pkgname/modules.d
+ mv "$pkgdir"/etc/$pkgname/worker-fuzzy.* \
+ "$subpkgdir"/etc/$pkgname
+ mv "$pkgdir"/etc/$pkgname/modules.d/fuzzy_* \
+ "$subpkgdir"/etc/$pkgname/modules.d
+}
+
+controller() {
+ license="MIT"
+ depends="$pkgname"
+ pkgdesc="$pkgdesc (controller web interface)"
+ mkdir -p "$subpkgdir"/usr/share/$pkgname \
+ "$subpkgdir"/etc/$pkgname
+ mv "$pkgdir"/usr/share/$pkgname/www \
+ "$subpkgdir"/usr/share/$pkgname
+ mv "$pkgdir"/etc/$pkgname/worker-controller.* \
+ "$subpkgdir"/etc/$pkgname
+}
+
+proxy() {
+ depends="$pkgname rmilter"
+ pkgdesc="$pkgdesc (milter support)"
+ mkdir -p "$subpkgdir"/etc/$pkgname
+ mv "$pkgdir"/etc/$pkgname/worker-proxy.* \
+ "$subpkgdir"/etc/$pkgname
+}
+
+sha512sums="19c22d8f1085e8b48379787205d85053fb0f2c1ed7c3b4f757980929517dc344b5a4999963b0eeb9cd1c68412d0dc59c1eaa403125e42dbab257b24ed0627756 rspamd-1.6.4.tar.gz
+2efe28575c40d1fba84b189bb872860e744400db80dce2f6330be6c6287fb3f46e6511284729b957488bf40bcb9b0952e26df9934f5f138334bd2766075c45cb rspamd.logrotated
+df37726d03e676b16d707854d95bafc9162da65c27bb150edbfc0cb00f1842188a1f2a8f1b82be5ae2a253b4f4db4d93dfe804a89feb988b5af858eb3f3458be rspamd.initd
+e417dd825d1b4d03d115db037b2fdf2f48a35420ee7a9010d97167b6c31e88d6c0a15dd33b21d7d76856db0fdc5097c922fcdf1d8164d1e92ae377f7c5303947 rspamd.confd
+ae4b7e77a29bed5461088e5e9bd20941a578e899300b079b05900e355b5de1ba077fb33ae5533587f0748647bd2c7ee70aa53dd981899612eafac2203ae95883 cmakelists.patch
+2169a8c4b4af6df9f3bbf4addeac564c9485a9d6a30fd15cf167093488362791c003a0d03360049c43d827e7fa767c1ad3522de6699b0247b75aa049c0b51214 worker.conf.in"
diff --git a/community/rspamd/cmakelists.patch b/community/rspamd/cmakelists.patch
new file mode 100644
index 0000000000..e451973f3d
--- /dev/null
+++ b/community/rspamd/cmakelists.patch
@@ -0,0 +1,10 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -578,7 +578,6 @@
+ LIST(APPEND CMAKE_REQUIRED_LIBRARIES rt)
+ LIST(APPEND CMAKE_REQUIRED_LIBRARIES dl)
+ LIST(APPEND CMAKE_REQUIRED_LIBRARIES resolv)
+- LIST(APPEND CMAKE_REQUIRED_LIBRARIES nsl)
+ MESSAGE(STATUS "Configuring for Linux")
+ IF(ENABLE_STATIC MATCHES "ON")
+ LIST(APPEND CMAKE_REQUIRED_LIBRARIES z)
diff --git a/community/rspamd/rspamd.confd b/community/rspamd/rspamd.confd
new file mode 100644
index 0000000000..e804b2b642
--- /dev/null
+++ b/community/rspamd/rspamd.confd
@@ -0,0 +1,16 @@
+# User and group to run rspamd workers
+#RSPAMD_USER=rspamd
+#RSPAMD_GROUP=rspamd
+
+# Main config dir or file
+#RSPAMD_CONFDIR=/etc/rspamd
+#RSPAMD_CONFIG=/etc/rspamd/rspamd.conf
+
+# PID file. Settings from config files are ignored
+#RSPAMD_PIDFILE=/run/$RC_SVCNAME/rspamd.pid
+
+# Where to log startup configuration checking
+# - /dev/null - silent (default)
+# - /dev/stdout - show output on curent terminal
+# - /path/filename - append to specified logfile
+#RSPAMD_STARTUPLOG=/var/log/rspamd/startup.log
diff --git a/community/rspamd/rspamd.initd b/community/rspamd/rspamd.initd
new file mode 100644
index 0000000000..79e9d0d910
--- /dev/null
+++ b/community/rspamd/rspamd.initd
@@ -0,0 +1,46 @@
+#!/sbin/openrc-run
+
+description="Rapid spam filtering system"
+
+: ${user:=${RSPAMD_USER:-rspamd}}
+: ${group:=${RSPAMD_GROUP:-rspamd}}
+: ${cfgdir:=${RSPAMD_CONFDIR:-/etc/rspamd}}
+: ${cfgfile:=${RSPAMD_CONFIG:-$cfgdir/rspamd.conf}}
+: ${pidfile:=${RSPAMD_PIDFILE:-/run/$RC_SVCNAME/rspamd.pid}}
+
+command=/usr/sbin/rspamd
+command_args="-u $user -g $group -c $cfgfile -p $pidfile"
+required_files="$cfgfile"
+extra_commands="checkconfig"
+extra_started_commands="reload reopen"
+description_checkconfig="Verify configuration"
+description_reload="Reload configuration"
+description_reopen="Reopen log files"
+
+depend() {
+ need localmount net
+ before mta
+}
+
+checkconfig() {
+ ebegin "Checking $RC_SVCNAME config"
+ $command $command_args -t
+ eend $?
+}
+
+start_pre() {
+ checkpath -d -m 750 -o $user:$group ${pidfile%/*}
+ checkconfig >/dev/null 2>>${startuplog:=${RSPAMD_STARTUPLOG:-/dev/null}}
+}
+
+reload() {
+ ebegin "Reloading $RC_SVCNAME config"
+ checkconfig >/dev/null 2>&1 && start-stop-daemon --signal HUP --pidfile $pidfile
+ eend $?
+}
+
+reopen() {
+ ebegin "Reopening $RC_SVCNAME log files"
+ start-stop-daemon --signal USR1 --pidfile $pidfile
+ eend $?
+}
diff --git a/community/rspamd/rspamd.logrotated b/community/rspamd/rspamd.logrotated
new file mode 100644
index 0000000000..2a443f2de2
--- /dev/null
+++ b/community/rspamd/rspamd.logrotated
@@ -0,0 +1,11 @@
+/var/log/rspamd/*log {
+ daily
+ rotate 10
+ missingok
+ notifempty
+ compress
+ sharedscripts
+ postrotate
+ /etc/init.d/rspamd --ifstarted --quiet reopen
+ endscript
+}
diff --git a/community/rspamd/rspamd.pre-install b/community/rspamd/rspamd.pre-install
new file mode 100644
index 0000000000..ea13204031
--- /dev/null
+++ b/community/rspamd/rspamd.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S rspamd 2>/dev/null
+adduser -S -D -H -h /var/lib/rspamd -s /sbin/nologin -G rspamd -g rspamd rspamd 2>/dev/null
+
+exit 0
diff --git a/community/rspamd/worker.conf.in b/community/rspamd/worker.conf.in
new file mode 100644
index 0000000000..d39c34976c
--- /dev/null
+++ b/community/rspamd/worker.conf.in
@@ -0,0 +1,6 @@
+worker {
+ bind_socket = "localhost:1133@port@";
+ .include "$CONFDIR/worker-@name@.inc"
+ .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/worker-@name@.inc"
+ .include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/worker-@name@.inc"
+}