aboutsummaryrefslogtreecommitdiffstats
path: root/community/pdns/APKBUILD
blob: 264d04187bd93dedf18464c5a1a090fee7b282ea (plain) (blame)
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
148
149
150
151
# Contributor: wenerme <wenermail@gmail.com>
# Contributor: Ɓukasz Jendrysik <scadu@yandex.com>
# Contributor: Matt Smith <mcs@darkregion.net>
# Contributor: Olivier Mauras <olivier@mauras.ch>
# Contributor: Daniel Isaksen <d@duniel.no>
# Contributor: Fabian Zoske <fabian@zoske.it>
# Maintainer:  Matt Smith <mcs@darkregion.net>
pkgname=pdns
pkgver=4.3.1
pkgrel=3
pkgdesc="PowerDNS Authoritative Server"
url="https://www.powerdns.com/"
arch="all !aarch64" # Failing tests on aarch64
license="GPL-2.0-only"
makedepends="$depends_dev
	boost-dev curl curl-dev geoip-dev krb5-dev openssl-dev
	libsodium-dev lua-dev mariadb-connector-c-dev openldap-dev
	postgresql-dev protobuf-dev sqlite-dev unixodbc-dev
	yaml-cpp-dev zeromq-dev mariadb-dev luajit-dev libmaxminddb-dev"
install="$pkgname.pre-install $pkgname-backend-pgsql.post-upgrade"
subpackages="$pkgname-doc $pkgname-openrc $pkgname-tools
	$pkgname-backend-bind:backend_bind
	$pkgname-backend-geoip:backend_geoip
	$pkgname-backend-ldap:backend_ldap
	$pkgname-backend-ua2:backend_lua2
	$pkgname-backend-mariadb:backend_mariadb:noarch
	$pkgname-backend-mysql:backend_mysql
	$pkgname-backend-odbc:backend_odbc
	$pkgname-backend-pipe:backend_pipe
	$pkgname-backend-pgsql:backend_pgsql
	$pkgname-backend-random:backend_random
	$pkgname-backend-remote:backend_remote
	$pkgname-backend-sqlite3:backend_sqlite3"
pkgusers="pdns"
pkggroups="pdns"
source="https://downloads.powerdns.com/releases/pdns-$pkgver.tar.bz2
	$pkgname.initd
	$pkgname.conf
	boost.patch
	"

# secfixes:
#   4.3.1-r0:
#     - CVE-2020-17482
#   4.1.11-r0:
#     - CVE-2019-10203
#   4.1.10-r0:
#     - CVE-2019-10162
#     - CVE-2019-10163
#   4.1.7-r0:
#     - CVE-2019-3871
#   4.1.5-r0:
#     - CVE-2018-10851
#     - CVE-2018-14626
#   4.0.5-r0:
#     - CVE-2017-15091

build() {
	./configure --prefix=/usr \
		--sysconfdir="/etc/$pkgname" \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--localstatedir=/var \
		--libdir="/usr/lib/$pkgname" \
		--with-modules="" \
		--with-dynmodules="bind geoip ldap lua2 gmysql godbc pipe gpgsql random remote gsqlite3" \
		--enable-tools \
		--enable-unit-tests \
		--disable-static \
		--enable-remotebackend-zeromq
	make
}

check() {
	PDNS_TEST_NO_IPV6=1 make check
}

package() {
	make DESTDIR="$pkgdir" install

	install -m755 -D "$srcdir/$pkgname.initd" \
		"$pkgdir/etc/init.d/$pkgname"
	rm "$pkgdir/etc/$pkgname/$pkgname.conf-dist"
	install -m600 -D "$srcdir/$pkgname.conf" \
		"$pkgdir/etc/$pkgname/$pkgname.conf"
	chown pdns:pdns "$pkgdir/etc/$pkgname/$pkgname.conf"

	# pdns-backend-pgsql.post-upgrade needs to be updated when this file path changes
	cp -v -p "$pkgdir/usr/share/doc/pdns/4.1.0_to_4.2.0_schema.pgsql.sql" "$pkgdir/etc/$pkgname/"
}

tools() {
	_tool_names="zone2ldap zone2sql zone2json
		dnsgram dnsreplay dnsscan dnsscope dnswasher dumresp
		pdns_notify nproxy nsec3dig saxfr stubquery ixplore
		sdig calidns dnsbulktest dnstcpbench dnspcap2protobuf"

	mkdir -p "$subpkgdir"
	cd "$subpkgdir"

	mkdir -p "$subpkgdir/usr/bin"
	for _tool in $_tool_names; do
		mv "$pkgdir/usr/bin/$_tool" "$subpkgdir/usr/bin/"
	done; unset -v _tool
}

_backend() {
	local backend=$1
	shift

	pkgdesc="$backend backend module for PowerDNS"
	depends="$pkgname $*"

	mkdir -p "$subpkgdir"
}

_mv_backend() {
	local backend=$1
	_backend "$@"

	mkdir -p "$subpkgdir/usr/lib/pdns/pdns"
	mv "$pkgdir/usr/lib/pdns/pdns/lib${backend}backend.so" \
		"$subpkgdir/usr/lib/pdns/pdns/"
}

backend_bind() { _mv_backend bind; }
backend_geoip() { _mv_backend geoip geoip; }
backend_ldap() { _mv_backend ldap; }
backend_lua2() { _mv_backend lua2 lua2; }
backend_mariadb() { _backend mariadb $pkgname-backend-mysql; }
backend_mysql() { _mv_backend gmysql mariadb-client; }
backend_odbc() { _mv_backend godbc unixodbc; }
backend_pipe() { _mv_backend pipe; }
backend_pgsql() { _mv_backend gpgsql postgresql-client; }
backend_random() { _mv_backend random; }
backend_remote() { _mv_backend remote; }
backend_sqlite3() { _mv_backend gsqlite3 sqlite; }
#backend_tinydns() { _mv_backend tinydns; }

# temporary split for 4.1.11 schema fix
backend_pgsql() {
	_mv_backend gpgsql postgresql-client

	mkdir -p "$subpkgdir/etc/$pkgname"
	mv "$pkgdir/etc/$pkgname/4.1.0_to_4.2.0_schema.pgsql.sql" "$subpkgdir/etc/$pkgname/"
}

sha512sums="e61e23544f1e57c1ec3a85b4edbc3ff3e8e831410237afdc8896e9f34602774c1dc8bd02eb7440e765262fcc988f98e47b6f1b7945427b1f4a59dd6b84b9437e  pdns-4.3.1.tar.bz2
3a55547e1b6407e7d2faa6e02982ed903c2364381af1b7eeb626ae3a8b0e32558dd79bf31c982b134414e5636d4868c1f3660ac523f25d2440ed6f7b436843bf  pdns.initd
3f809f3257680c3e496fa6a4c86c8a636db5d9d5b92aef96fe54c29b8266ee590deb792d13205cc171e27307fa73295dd3b101b09102fd66a2393a7cdbf9dd27  pdns.conf
306a1c14479b1078a4025efacaa893b2ef3a2f64f7dd5d06a2a18e3a23098f810f8fbb9f443015d6071c1e794a13c75f581b0da78ddd5e4737886a1419cf250c  boost.patch"