diff --git a/community/pdns/APKBUILD b/community/pdns/APKBUILD
index c63a5f5420f3900a8261d5c5f0aa4975ceb97935..36f31000d9d0bf808fde083ad0435808982edea2 100644
--- a/community/pdns/APKBUILD
+++ b/community/pdns/APKBUILD
@@ -5,30 +5,38 @@
 # Contributor: Fabian Zoske <fabian@zoske.it>
 # Maintainer:  Matt Smith <mcs@darkregion.net>
 pkgname=pdns
-pkgver=4.1.0
+pkgver=4.1.1
 pkgrel=0
 pkgdesc="PowerDNS Authoritative Server"
 url="https://www.powerdns.com/"
 arch="all"
-license="GPL-2.0"
+license="GPL-2.0-or-later"
 depends=""
 depends_dev=""
-makedepends="$depends_dev boost-dev lua-dev openldap-dev mariadb-dev
-	postgresql-dev sqlite-dev geoip-dev yaml-cpp-dev krb5-dev"
+makedepends="$depends_dev
+	boost-dev curl file geoip-dev krb5-dev libressl-dev
+	libsodium-dev lua-dev mariadb-dev openldap-dev
+	postgresql-dev protobuf-dev sqlite-dev unixodbc-dev
+	yaml-cpp-dev"
 install="$pkgname.pre-install"
-subpackages="$pkgname-doc
+subpackages="$pkgname-doc $pkgname-tools
 	$pkgname-backend-bind:backend_bind
+	$pkgname-backend-geoip:backend_geoip
 	$pkgname-backend-ldap:backend_ldap
+	$pkgname-backend-lua:backend_lua
+	$pkgname-backend-mydns:backend_mydns
 	$pkgname-backend-mysql:backend_mysql
-	$pkgname-backend-pgsql:backend_pgsql
+	$pkgname-backend-odbc:backend_odbc
 	$pkgname-backend-pipe:backend_pipe
-	$pkgname-backend-sqlite3:backend_sqlite3
-	$pkgname-backend-geoip:backend_geoip"
+	$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="http://downloads.powerdns.com/releases/pdns-$pkgver.tar.bz2
-	pdns.initd
-	pdns.conf"
+source="http://downloads.powerdns.com/releases/$pkgname-$pkgver.tar.bz2
+	$pkgname.initd
+	$pkgname.conf"
 builddir="$srcdir/$pkgname-$pkgver"
 
 # secfixes:
@@ -39,48 +47,80 @@ build() {
 	cd "$builddir"
 
 	./configure --prefix=/usr \
-		--sysconfdir=/etc/$pkgname \
+		--sysconfdir="/etc/$pkgname" \
 		--mandir=/usr/share/man \
 		--infodir=/usr/share/info \
 		--localstatedir=/var \
-		--libdir=/usr/lib/pdns \
+		--libdir="/usr/lib/$pkgname" \
 		--with-modules="" \
-		--with-dynmodules="bind ldap gmysql gpgsql pipe gsqlite3 geoip" \
+		--with-dynmodules="bind geoip ldap lua mydns gmysql godbc pipe gpgsql random remote gsqlite3" \
+		--enable-tools \
+		--enable-unit-tests \
 		--disable-static
 	make
 }
 
+check() {
+	cd "$builddir"
+	PDNS_TEST_NO_IPV6=1 make check
+}
+
 package() {
 	cd "$builddir"
 
 	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
+	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"
 }
 
-backend_bind()		{ _mv_backend bind; }
-backend_ldap()		{ _mv_backend ldap; }
-backend_mysql()		{ _mv_backend gmysql; }
-backend_pgsql()		{ _mv_backend gpgsql; }
-backend_pipe()		{ _mv_backend pipe; }
-backend_sqlite3()	{ _mv_backend gsqlite3 sqlite; }
-backend_geoip()		{ _mv_backend geoip geoip; }
+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
+}
 
 _mv_backend() {
 	local backend=$1
-	pkgdesc="${backend} backend module for PowerDNS"
-	depends="$pkgname ${2:-}"
+	shift
 
-	mkdir -p "$subpkgdir"/usr/lib/pdns/pdns
-	mv "$pkgdir"/usr/lib/pdns/pdns/lib${backend}backend.so \
-		"$subpkgdir"/usr/lib/pdns/pdns/
+	pkgdesc="$backend backend module for PowerDNS"
+	depends="$pkgname $*"
+
+	mkdir -p "$subpkgdir/usr/lib/pdns/pdns"
+	mv "$pkgdir/usr/lib/pdns/pdns/lib${backend}backend.so" \
+		"$subpkgdir/usr/lib/pdns/pdns/"
 }
 
-sha512sums="4b2b42f4893f8aac3cf07a6c8a3c999cb728a5907a710f1a5c9c8d08377ecb63e202e5eececbefc069c8f1d97a29b2aa607da7cf2bcc6335a72222418e409e77  pdns-4.1.0.tar.bz2
-3f5b202c56408168ddbf81b47f5c48ca65de91ada88751213a06a1096334b89176c5a6a58f3c6a893a2d15b51ece9f2a64d7d2ea836220a3e45fe362969c6cfa  pdns.initd
-c8f8d152c4d29660aa56a9dbfd0d268474f9bd26993ad9e7d8ef54725d02a02e27c1a11adc67bf40f5dd871a677648d45fa76222a063907e0dfb2420111d5dc8  pdns.conf"
+backend_bind()          { _mv_backend bind; }
+backend_geoip()         { _mv_backend geoip geoip; }
+backend_ldap()          { _mv_backend ldap; }
+backend_lua()           { _mv_backend lua lua; }
+backend_mydns()         { _mv_backend mydns; }
+backend_mysql()         { _mv_backend gmysql mariadb-client; }
+backend_odbc()          { _mv_backend godbc unixodbc; }
+#backend_opendbx()       { _mv_backend opendbx; }
+#backend_oracle()        { _mv_backend goracle; }
+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; }
+
+sha512sums="23e62ec39007e39a289945457e9b950cbeabf8581f477397341dfbd3592b7ccdede8f4c9ce653a47add07784d1a23116f9013c755eb11af1df383b49a8ca341d  pdns-4.1.1.tar.bz2
+3f809f3257680c3e496fa6a4c86c8a636db5d9d5b92aef96fe54c29b8266ee590deb792d13205cc171e27307fa73295dd3b101b09102fd66a2393a7cdbf9dd27  pdns.conf
+3f5b202c56408168ddbf81b47f5c48ca65de91ada88751213a06a1096334b89176c5a6a58f3c6a893a2d15b51ece9f2a64d7d2ea836220a3e45fe362969c6cfa  pdns.initd"
diff --git a/community/pdns/pdns.conf b/community/pdns/pdns.conf
index 1705e14893ad8fe53aa38d2dad22eafe535877d1..98c3a8dccb82b3cf20c625a96de521696eac8260 100644
--- a/community/pdns/pdns.conf
+++ b/community/pdns/pdns.conf
@@ -27,7 +27,7 @@ chroot=/var/empty
 #################################
 # config-dir	Location of configuration directory (pdns.conf)
 #
-config-dir=/etc
+config-dir=/etc/pdns
 
 #################################
 # config-name	Name of this virtual configuration - will rename the binary image