aboutsummaryrefslogtreecommitdiffstats
path: root/testing/rspamd/APKBUILD
blob: 5c65143edc48b108da875fb7bf49560e3613d603 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Contributor: Nathan Angelacos <nangel@alpinelinux.org>
pkgname=rspamd
pkgver=1.5.9
pkgrel=0
pkgdesc="Fast, free and open-source spam filtering system"
url="https://rspamd.com"
arch="x86_64 x86 armhf"
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
	"
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 || return 1

	cd "$builddir"
	for worker in 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 "$(grep -n -m1 'worker {' conf/rspamd.sysvinit.conf|cut -d: -f1),\$d" \
		 -i conf/rspamd.sysvinit.conf && \
		 echo '.include(glob=true) "$CONFDIR/worker-*.conf"' >> \
		conf/rspamd.sysvinit.conf || return 1
	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 \
		|| return 1
	make || return 1
}

package() {
	cd "$builddir"
	make DESTDIR="$pkgdir" install || return 1

	rm "$pkgdir"/etc/$pkgname/$pkgname.systemd.conf || return 1
	mv "$pkgdir"/etc/$pkgname/$pkgname.sysvinit.conf \
		"$pkgdir"/etc/$pkgname/$pkgname.conf || return 1

	mkdir -p "$pkgdir"/etc/$pkgname/local.d \
		"$pkgdir"/etc/$pkgname/override.d || return 1

	install -Dm644 "$srcdir"/$pkgname.logrotated \
		"$pkgdir"/etc/logrotate.d/$pkgname || return 1
	install -Dm755 "$srcdir"/$pkgname.initd \
		"$pkgdir"/etc/init.d/$pkgname || return 1
	install -Dm644 "$srcdir"/$pkgname.confd \
		"$pkgdir"/etc/conf.d/$pkgname || return 1

	install -dm750 -o $pkgname -g $pkgname \
		"$pkgdir"/var/lib/$pkgname/dynamic || return 1
	install -dm750 -g $pkgname \
		"$pkgdir"/var/log/$pkgname || return 1
	chown $pkgname:$pkgname "$pkgdir"/var/lib/$pkgname || return 1

	mkdir "$pkgdir"/usr/sbin || return 1
	find "$pkgdir"/usr/bin -type l -delete || return 1
	mv "$pkgdir"/usr/bin/rspamd-$pkgver \
		"$pkgdir"/usr/sbin/rspamd || return 1
	mv "$pkgdir"/usr/bin/rspamadm-$pkgver \
		"$pkgdir"/usr/bin/rspamadm || return 1

	mv "$pkgdir"/usr/share/examples \
		"$pkgdir"/usr/share/doc || return 1
	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 || return 1
	mv "$pkgdir"/usr/bin/rspamc-$pkgver \
		"$subpkgdir"/usr/bin/rspamc
}

utils() {
	depends="perl"
	pkgdesc="$pkgdesc (utilities)"
	mkdir -p "$subpkgdir"/usr/bin || return 1
	mv "$pkgdir"/usr/bin/${pkgname}_stats \
		"$subpkgdir"/usr/bin/${pkgname}-stats || return 1
	mv "$pkgdir"/usr/bin/${pkgname}-redirector "$subpkgdir"/usr/bin
}

fuzzy() {
	depends="$pkgname"
	pkgdesc="$pkgdesc (local fuzzy storage)"
	mkdir -p "$subpkgdir"/etc/$pkgname/modules.d || return 1
	mv "$pkgdir"/etc/$pkgname/worker-fuzzy.* \
		"$subpkgdir"/etc/$pkgname || return 1
	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 || return 1
	mv "$pkgdir"/usr/share/$pkgname/www \
		"$subpkgdir"/usr/share/$pkgname || return 1
	mv "$pkgdir"/etc/$pkgname/worker-controller.* \
		"$subpkgdir"/etc/$pkgname
}

sha512sums="258e266bca592e2f52760019ffa8c319a84c23a53fec984dc803f5ac12f902f2d0978dbc5e35b623eb02ff8e2e7dc00e2cb8efcc0ea9a06b67f7210ae8f42bc3  rspamd-1.5.9.tar.gz
2efe28575c40d1fba84b189bb872860e744400db80dce2f6330be6c6287fb3f46e6511284729b957488bf40bcb9b0952e26df9934f5f138334bd2766075c45cb  rspamd.logrotated
df37726d03e676b16d707854d95bafc9162da65c27bb150edbfc0cb00f1842188a1f2a8f1b82be5ae2a253b4f4db4d93dfe804a89feb988b5af858eb3f3458be  rspamd.initd
e417dd825d1b4d03d115db037b2fdf2f48a35420ee7a9010d97167b6c31e88d6c0a15dd33b21d7d76856db0fdc5097c922fcdf1d8164d1e92ae377f7c5303947  rspamd.confd
99593c10ffb04c71a4c83c7522b41f12465a9862283685bbc2fff464fd84fcf8b4bc4a892419d31332c01f805c69dd7730f537c60248b92fee35acdc6633a644  cmakelists.patch
2169a8c4b4af6df9f3bbf4addeac564c9485a9d6a30fd15cf167093488362791c003a0d03360049c43d827e7fa767c1ad3522de6699b0247b75aa049c0b51214  worker.conf.in"