summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfhajny <fhajny>2017-03-09 13:32:54 +0000
committerfhajny <fhajny>2017-03-09 13:32:54 +0000
commit41bbbc14d6556c2df6df09b21fe115a9156da7f3 (patch)
tree0e842c157349131b79dd9fb7c5793d066477d8da
parent668b5697648dde484e44d84b9fa2ffae33a489fc (diff)
downloadpkgsrc-41bbbc14d6556c2df6df09b21fe115a9156da7f3.tar.gz
Update net/powerdns to 4.0.3.
pkgsrc changes: - Remove options for cryptopp and geoip (the latter to go into a separate package). - Clean up a lot of patches that do not seem to be needed anymore. PowerDNS Authoritative Server 4.0.3 =================================== - Revert "In 'Bind2Backend::lookup()', use the 'zoneId' when we have it" PowerDNS Authoritative Server 4.0.2 Security issues fixed: - 2016-02: Crafted queries can cause abnormal CPU usage - 2016-03: Denial of service via the web server - 2016-04: Insufficient validation of TSIG signatures - 2016-05: Crafted zone record can cause a denial of service Other highlights: - Don't parse spurious RRs in queries when we don't need them (Security Advisory 2016-02) - Don't exit if the webserver can't accept a connection (Security Advisory 2016-03) - Check TSIG signature on IXFR (Security Advisory 2016-04) - Correctly check unknown record content size (Security Advisory 2016-05) - ODBC backend: actually prepare statements - Improve root-zone performance - Plug memory leak in postgresql backend (Christian Hofstaedtler) - calidns: Don't crash if we don't have enough 'unknown' queries remaining - Improve PacketCache cleaning (Kees Monshouwer) - Bind backend: update status message on reload, keep the existing zone on failure - Fix TSIG for single thread distributor (Kees Monshouwer) - Change default for any-to-tcp to yes (Kees Monshouwer) - Don't look up the packet cache for TSIG-enabled queries - Fix build with OpenSSL 1.1.0 final (Christian Hofstaedtler) - pdnsutil: create-slave-zone accept multiple masters (Hannu Ylitalo) PowerDNS Authoritative Server 4.0.1 =================================== Bug fixes - Wait for the connection to the carbon server to be established - Don't try to deallocate empty PG statements - Send the correct response when queried for an NSEC directly (Kees Monshouwer) - Don't include bind files if length <= 2 or > sizeof(filename) - Catch runtime_error when parsing a broken MNAME Improvements - Make DNSPacket return a ComboAddredd for local and remote (Aki Tuomi) - OpenSSL 1.1.0 support (Christian Hofstaedtler) - Fix typos in a logmessage and exception (Christian Hofsteadtler) - pdnsutil: Remove checking of ctime and always diff the changes (Hannu Ylitalo) - dnsreplay: Only add Client Subnet stamp when asked - Use toLogString() for ringAccount (Kees Monshouwer) Additions - Add limits to the size of received {A,I}XFR - Add used filedescriptor statistic (Kees Monshouwer) PowerDNS Authoritative Server 4.0.0 =================================== - Moved to C++ 2011, a cleaner more powerful version of C++ that has allowed us to improve the quality of implementation in many places. - Implemented dedicated infrastructure for dealing with DNS names that is fully "DNS Native" and needs less escaping and unescaping. - Due to this, the PowerDNS Authoritative Server can now serve DNSSEC-enabled root-zones. - All backends derived from the Generic SQL backend use prepared statements. - Both the server and pdns_control do the right thing when chroot'ed. - Caches are now fully canonically ordered, which means entries can be wiped on suffix in all places - A revived and supported ODBC backend (godbc). - A revived and supported LDAP backend (ldap). - Support for CDS/CDNSKEY and RFC 7344 key-rollovers. - Support for the ALIAS record. - The webserver and API are no longer experimental. - The API-path has moved to /api/v1 - DNSUpdate is no longer experimental. - ECDSA (algorithm 13 and 14) supported without in-tree cryptographic libraries (provided by OpenSSL). - Experimental support for ed25519 DNSSEC signatures (when compiled with libsodium support). - Many new pdnsutil commands. - GeoIP backend has gained many features, and can now e.g. run based on explicit netmasks not present in the GeoIP databases - Removed support for LMDB. - Removed the Geo backened (use the improved GeoIP instead). - pdnssec has been renamed to pdnsutil. - Support for the PolarSSL/MbedTLS, Crypto++ and Botan cryptographic libraries have been dropped in favor of the (faster) OpenSSL libcrypto (except for GOST, which is still provided by Botan). - ECDSA P256 SHA256 (algorithm 13) is now the default algorithm when securing zones. - The PowerDNS Authoritative Server now listens by default on all IPv6 addresses. - Several superfluous queries have been dropped from the Generic SQL backends. - The INCEPTION, INCEPTION-WEEK and EPOCH SOA-EDIT metadata values are marked as deprecated and will be removed in 4.1.0
-rw-r--r--net/powerdns/Makefile12
-rw-r--r--net/powerdns/Makefile.backend7
-rw-r--r--net/powerdns/Makefile.common11
-rw-r--r--net/powerdns/PLIST37
-rw-r--r--net/powerdns/distinfo35
-rw-r--r--net/powerdns/options.mk22
-rw-r--r--net/powerdns/patches/patch-aa31
-rw-r--r--net/powerdns/patches/patch-ab23
-rw-r--r--net/powerdns/patches/patch-configure15
-rw-r--r--net/powerdns/patches/patch-modules_luabackend_luabackend.hh15
-rw-r--r--net/powerdns/patches/patch-modules_pipebackend_pipebackend.cc14
-rw-r--r--net/powerdns/patches/patch-modules_pipebackend_pipebackend.hh14
-rw-r--r--net/powerdns/patches/patch-pdns_botan18signers.cc43
-rw-r--r--net/powerdns/patches/patch-pdns_dns.hh15
-rw-r--r--net/powerdns/patches/patch-pdns_dnspacket.cc25
-rw-r--r--net/powerdns/patches/patch-pdns_dnsparser.cc23
-rw-r--r--net/powerdns/patches/patch-pdns_dnsparser.hh26
-rw-r--r--net/powerdns/patches/patch-pdns_dnsscope.cc11
-rw-r--r--net/powerdns/patches/patch-pdns_dynloader.cc26
-rw-r--r--net/powerdns/patches/patch-pdns_htimer.cc14
-rw-r--r--net/powerdns/patches/patch-pdns_iputils.hh17
-rw-r--r--net/powerdns/patches/patch-pdns_misc.cc14
-rw-r--r--net/powerdns/patches/patch-pdns_nameserver.cc23
-rw-r--r--net/powerdns/patches/patch-pdns_pdns_recursor.cc103
-rw-r--r--net/powerdns/patches/patch-pdns_qtype.hh17
-rw-r--r--net/powerdns/patches/patch-pdns_receiver.cc16
-rw-r--r--net/powerdns/patches/patch-pdns_recursor__cache.cc23
-rw-r--r--net/powerdns/patches/patch-pdns_resolver.cc50
-rw-r--r--net/powerdns/patches/patch-pdns_tcpreceiver.cc106
29 files changed, 123 insertions, 665 deletions
diff --git a/net/powerdns/Makefile b/net/powerdns/Makefile
index 7b6a2095d1c..3293790ae12 100644
--- a/net/powerdns/Makefile
+++ b/net/powerdns/Makefile
@@ -1,21 +1,19 @@
-# $NetBSD: Makefile,v 1.22 2017/01/01 16:06:33 adam Exp $
+# $NetBSD: Makefile,v 1.23 2017/03/09 13:32:54 fhajny Exp $
.include "Makefile.common"
PKGNAME= ${DISTNAME:S/pdns/powerdns/}
-PKGREVISION= 4
COMMENT= Modern, advanced and high performance nameserver
.include "options.mk"
-CONFIGURE_ARGS+= --with-modules="geo"
-CONFIGURE_ARGS+= --with-dynmodules="${PDNS_MODULES}"
+CONFIGURE_ARGS+= --with-dynmodules=no
+CONFIGURE_ARGS+= --with-modules="${PDNS_MODULES}"
RCD_SCRIPTS= pdns
SMF_NAME= pdns
EGDIR= ${PREFIX}/share/examples/pdns
-MAKE_ENV+= EGDIR=${EGDIR}
CONF_FILES+= ${EGDIR}/pdns.conf-dist ${PKG_SYSCONFDIR}/pdns.conf
@@ -27,4 +25,8 @@ SUBST_SED.conf+= -e 's,@PKG_SYSCONFDIR@,${PKG_SYSCONFDIR},'
LDFLAGS.SunOS+= -lsocket -lnsl
+INSTALL_MAKE_FLAGS+= sysconfdir=${EGDIR}
+
+CHECK_WRKREF_SKIP+= sbin/pdns_server
+
.include "../../mk/bsd.pkg.mk"
diff --git a/net/powerdns/Makefile.backend b/net/powerdns/Makefile.backend
index 517ef0609a2..f1f13d9379b 100644
--- a/net/powerdns/Makefile.backend
+++ b/net/powerdns/Makefile.backend
@@ -1,4 +1,7 @@
-# $NetBSD: Makefile.backend,v 1.3 2015/06/12 10:50:58 fhajny Exp $
+# $NetBSD: Makefile.backend,v 1.4 2017/03/09 13:32:54 fhajny Exp $
+# used by net/powerdns-ldap/Makefile
+# used by net/powerdns-mysql/Makefile
+# used by net/powerdns-pgsql/Makefile
.include "../../net/powerdns/Makefile.common"
@@ -15,4 +18,4 @@ BUILD_DIRS= modules
# These are required by configure, but not used by the modules
BUILDLINK_DEPMETHOD.boost-headers= build
BUILDLINK_DEPMETHOD.boost-libs= build
-BUILDLINK_DEPMETHOD.mbedtls= build
+BUILDLINK_DEPMETHOD.openssl= build
diff --git a/net/powerdns/Makefile.common b/net/powerdns/Makefile.common
index aff09d1fe2b..6a2109277b3 100644
--- a/net/powerdns/Makefile.common
+++ b/net/powerdns/Makefile.common
@@ -1,12 +1,12 @@
-# $NetBSD: Makefile.common,v 1.16 2016/06/16 09:24:42 fhajny Exp $
+# $NetBSD: Makefile.common,v 1.17 2017/03/09 13:32:54 fhajny Exp $
-PDNS_VERSION= 3.4.9
+PDNS_VERSION= 4.0.3
DISTNAME= pdns-${PDNS_VERSION}
CATEGORIES= net
MASTER_SITES= http://downloads.powerdns.com/releases/
EXTRACT_SUFX= .tar.bz2
-MAINTAINER= pkgsrc-users@NetBSD.org
+MAINTAINER?= pkgsrc-users@NetBSD.org
HOMEPAGE= http://www.powerdns.com/
LICENSE= gnu-gpl-v2
@@ -19,14 +19,13 @@ BUILD_DEPENDS+= ragel-[0-9]*:../../devel/ragel
GNU_CONFIGURE_LIBSUBDIR=pdns
-CONFIGURE_ARGS+= --enable-pdns_server
-CONFIGURE_ARGS+= --with-system-polarssl
CONFIGURE_ARGS+= --without-lua
+CONFIGURE_ARGS+= --with-boost=${BUILDLINK_PREFIX.boost-headers}
BUILDLINK_TRANSFORM+= rm:-fstack-protector
.include "../../mk/dlopen.buildlink3.mk"
.include "../../devel/boost-headers/buildlink3.mk"
.include "../../devel/boost-libs/buildlink3.mk"
-.include "../../security/mbedtls1/buildlink3.mk"
+.include "../../security/openssl/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
diff --git a/net/powerdns/PLIST b/net/powerdns/PLIST
index dea1a8f9b3c..8e3a17de35e 100644
--- a/net/powerdns/PLIST
+++ b/net/powerdns/PLIST
@@ -1,32 +1,47 @@
-@comment $NetBSD: PLIST,v 1.8 2016/06/03 11:45:34 fhajny Exp $
+@comment $NetBSD: PLIST,v 1.9 2017/03/09 13:32:54 fhajny Exp $
${PLIST.tools}bin/dnsbulktest
+${PLIST.tools}bin/dnsgram
${PLIST.tools}bin/dnsreplay
${PLIST.tools}bin/dnsscan
${PLIST.tools}bin/dnsscope
${PLIST.tools}bin/dnstcpbench
${PLIST.tools}bin/dnswasher
+${PLIST.tools}bin/dumresp
+${PLIST.tools}bin/ixplore
${PLIST.tools}bin/nproxy
${PLIST.tools}bin/nsec3dig
bin/pdns_control
-bin/pdnssec
+${PLIST.tools}bin/pdns_notify
+bin/pdnsutil
${PLIST.tools}bin/saxfr
+${PLIST.tools}bin/sdig
+${PLIST.tools}bin/stubquery
bin/zone2json
-bin/zone2ldap
bin/zone2sql
-lib/pdns/pdns/libgeobackend.la
${PLIST.bind}lib/pdns/pdns/libbindbackend.la
+${PLIST.sqlite}lib/pdns/pdns/libgsqlite3backend.la
${PLIST.pipe}lib/pdns/pdns/libpipebackend.la
${PLIST.random}lib/pdns/pdns/librandombackend.la
${PLIST.remote}lib/pdns/pdns/libremotebackend.la
-${PLIST.sqlite}lib/pdns/pdns/libgsqlite3backend.la
-${PLIST.tools}man/man1/dnstcpbench.1
-${PLIST.tools}man/man1/dnsreplay.1
-${PLIST.tools}man/man1/dnsscope.1
-${PLIST.tools}man/man1/dnstcpbench.1
-${PLIST.tools}man/man1/dnswasher.1
+man/man1/calidns.1
+man/man1/dnsbulktest.1
+man/man1/dnsgram.1
+man/man1/dnsreplay.1
+man/man1/dnsscan.1
+man/man1/dnsscope.1
+man/man1/dnstcpbench.1
+man/man1/dnswasher.1
+man/man1/dumresp.1
+man/man1/ixplore.1
+man/man1/nproxy.1
+man/man1/nsec3dig.1
man/man1/pdns_control.1
+man/man1/pdns_notify.1
man/man1/pdns_server.1
-man/man1/pdnssec.1
+man/man1/pdnsutil.1
+man/man1/saxfr.1
+man/man1/sdig.1
+man/man1/zone2json.1
man/man1/zone2ldap.1
man/man1/zone2sql.1
sbin/pdns_server
diff --git a/net/powerdns/distinfo b/net/powerdns/distinfo
index 76d31b10932..01b6d10afb8 100644
--- a/net/powerdns/distinfo
+++ b/net/powerdns/distinfo
@@ -1,26 +1,11 @@
-$NetBSD: distinfo,v 1.21 2016/06/03 11:45:34 fhajny Exp $
+$NetBSD: distinfo,v 1.22 2017/03/09 13:32:54 fhajny Exp $
-SHA1 (pdns-3.4.9.tar.bz2) = 51f677c692af92e6c84c5706d0698ce2c1a80de4
-RMD160 (pdns-3.4.9.tar.bz2) = f1eb7f5ffd4f94c1ab468ca82d65dea433f2d5f0
-SHA512 (pdns-3.4.9.tar.bz2) = ad0d619bfa0bbce332c4c16734cb37c588cf0d7a05bde3a484ecdf13492ca9b4b4d8d7afe448c5c2c6d35b72165f3c8fbd41a91fd5cfbe4194a3eddc5f600a38
-Size (pdns-3.4.9.tar.bz2) = 1351434 bytes
-SHA1 (patch-aa) = a7e66245ab7acbff4f568650ee285ee18a88ea56
-SHA1 (patch-ab) = a816def3825c0260642dab85f518bebaf4ba904b
-SHA1 (patch-modules_luabackend_luabackend.hh) = 23ae1a2c047f367a51b7bfa10a546aeb91cccea4
-SHA1 (patch-modules_pipebackend_pipebackend.cc) = 975cf47dc92bf4402167b5a25f85eaf527398c06
-SHA1 (patch-modules_pipebackend_pipebackend.hh) = 3ff9f666a1b348810be38ffe67fd740521390630
-SHA1 (patch-pdns_botan18signers.cc) = 58df2d630ac46ea2fd1ce2699ce7a3bd927de177
-SHA1 (patch-pdns_dns.hh) = 6f47292c573d1a01cdd2ba3312edf17e216c2dbc
-SHA1 (patch-pdns_dnspacket.cc) = 0b612b1458a1f6e9504959ac7d48f3b29275cdd4
-SHA1 (patch-pdns_dnsparser.cc) = 3b7f1929013261d09112394e525dede41e03afff
-SHA1 (patch-pdns_dnsparser.hh) = 1ad7090312992915a0ad9bf8b006d229262936c3
-SHA1 (patch-pdns_dnsscope.cc) = a42bbda2d5d9e2bc2a0004ffc77efcd5d5beeb28
-SHA1 (patch-pdns_dynloader.cc) = 9a4119a17a5ed2144737d2b6161aceaa633f66c6
-SHA1 (patch-pdns_htimer.cc) = 6064c73db33d2e7cc65979757e90ecdf8d7c16e6
-SHA1 (patch-pdns_misc.cc) = 832cf6bd2f0b018d66a49e5b0f9f879a107c1a90
-SHA1 (patch-pdns_nameserver.cc) = 13011d7cd1e6915c4b547f7817fa72e595ac2a3a
-SHA1 (patch-pdns_pdns_recursor.cc) = 97f3688baef5a7520514764a4590d0b92fa51fda
-SHA1 (patch-pdns_receiver.cc) = a7f44e2c9196f27fc5855183a8e3c34565a9e34c
-SHA1 (patch-pdns_recursor__cache.cc) = 36dc4c4691f6d88fb7b6cc452cda19dc07a1b53b
-SHA1 (patch-pdns_resolver.cc) = 0f3de1aef64d1e24a5b0f87bfdd866c75ff3c1ff
-SHA1 (patch-pdns_tcpreceiver.cc) = 994203d32464044ca303973cc27ac4080a654678
+SHA1 (pdns-4.0.3.tar.bz2) = de3562f135d31c6ccf9363f587bb59a5f65d1d91
+RMD160 (pdns-4.0.3.tar.bz2) = 5befc3a60dbbb14386f3557c7c419ee4b92b2438
+SHA512 (pdns-4.0.3.tar.bz2) = 58d33ac6cf457a916bae6abd8d2dc17f76fbcd1bd9e649948584dd669f5596b43e3e4d91841700ea1ea2cd1ac102749e503cd9075273540f33a2321e20d8bfc2
+Size (pdns-4.0.3.tar.bz2) = 1312299 bytes
+SHA1 (patch-configure) = 675ce8b372819a746ec9d4fbff6bea30ecd86734
+SHA1 (patch-pdns_dns.hh) = 626eb4e29b7fcd82fbe056036c157c1e85fa49ca
+SHA1 (patch-pdns_dnsscope.cc) = b289b750686b25041c3e291fb0d3d562beb36eaf
+SHA1 (patch-pdns_iputils.hh) = 48df687a1e5116238aa4f04ff89cbdc2b4b4dfc3
+SHA1 (patch-pdns_qtype.hh) = 0f8bca4c0cafea9a5257a08077fa42b4c52127f5
diff --git a/net/powerdns/options.mk b/net/powerdns/options.mk
index 30607a1aaa3..a9d033eb162 100644
--- a/net/powerdns/options.mk
+++ b/net/powerdns/options.mk
@@ -1,8 +1,7 @@
-# $NetBSD: options.mk,v 1.4 2016/05/19 22:12:09 joerg Exp $
+# $NetBSD: options.mk,v 1.5 2017/03/09 13:32:54 fhajny Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.powerdns
-PKG_SUPPORTED_OPTIONS= bind botan cryptopp pipe random remote sqlite tools
-PKG_SUPPORTED_OPTIONS+= zeromq
+PKG_SUPPORTED_OPTIONS= bind botan pipe random remote sqlite tools zeromq
PKG_SUGGESTED_OPTIONS= bind pipe random
.include "../../mk/bsd.options.mk"
@@ -20,17 +19,6 @@ CONFIGURE_ARGS+= --enable-botan1.10
.include "../../security/botan/buildlink3.mk"
.endif
-.if !empty(PKG_OPTIONS:Mcryptopp)
-.include "../../security/crypto++/buildlink3.mk"
-CONFIGURE_ARGS+= --enable-cryptopp=yes
-CRYPTOPP_CFLAGS= -I${BUILDLINK_PREFIX.cryptopp}/include
-CRYPTOPP_LIBS= -L${BUILDLINK_PREFIX.cryptopp}/lib -Wl,-R${BUILDLINK_PREFIX.cryptopp}/lib -lcryptopp
-CONFIGURE_ENV+= CRYPTOPP_CFLAGS=${CRYPTOPP_CFLAGS:Q}
-CONFIGURE_ENV+= CRYPTOPP_LIBS=${CRYPTOPP_LIBS:Q}
-.else
-CONFIGURE_ARGS+= --enable-cryptopp=no
-.endif
-
.if !empty(PKG_OPTIONS:Mpipe)
PLIST.pipe= yes
PDNS_MODULES+= pipe
@@ -58,8 +46,12 @@ PLIST.tools= yes
.endif
.if !empty(PKG_OPTIONS:Mzeromq)
-.include "../../net/zeromq/buildlink3.mk"
+. if empty(PKG_OPTIONS:Mremote)
+PKG_FAIL_REASON+= "The 'zeromq' option requires the 'remote' option enabled."
+. else
CONFIGURE_ARGS+= --enable-remotebackend-zeromq=yes
+.include "../../net/zeromq/buildlink3.mk"
+. endif
.else
CONFIGURE_ARGS+= --enable-remotebackend-zeromq=no
.endif
diff --git a/net/powerdns/patches/patch-aa b/net/powerdns/patches/patch-aa
deleted file mode 100644
index 0b13f22db9b..00000000000
--- a/net/powerdns/patches/patch-aa
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD: patch-aa,v 1.6 2015/06/10 16:24:44 fhajny Exp $
-
-Handle CONF_FILES.
-
-Installation destination for example config file.
---- pdns/Makefile.in.orig 2015-03-02 13:17:27.000000000 +0000
-+++ pdns/Makefile.in
-@@ -1632,18 +1632,18 @@ clean-libtool:
- -rm -rf .libs _libs
- install-sysconfDATA: $(sysconf_DATA)
- @$(NORMAL_INSTALL)
-- @list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
-+ @list='$(sysconf_DATA)'; test -n "$(EGDIR)" || list=; \
- if test -n "$$list"; then \
-- echo " $(MKDIR_P) '$(DESTDIR)$(sysconfdir)'"; \
-- $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" || exit 1; \
-+ echo " $(MKDIR_P) '$(DESTDIR)$(EGDIR)'"; \
-+ $(MKDIR_P) "$(DESTDIR)$(EGDIR)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
-- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \
-- $(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \
-+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(EGDIR)'"; \
-+ $(INSTALL_DATA) $$files "$(DESTDIR)$(EGDIR)" || exit $$?; \
- done
-
- uninstall-sysconfDATA:
diff --git a/net/powerdns/patches/patch-ab b/net/powerdns/patches/patch-ab
deleted file mode 100644
index 8a28ea444e3..00000000000
--- a/net/powerdns/patches/patch-ab
+++ /dev/null
@@ -1,23 +0,0 @@
-$NetBSD: patch-ab,v 1.5 2015/03/27 23:37:52 rodent Exp $
-
-Default paths.
---- pdns/pdns.conf-dist.orig 2015-03-02 13:17:12.000000000 +0000
-+++ pdns/pdns.conf-dist
-@@ -57,7 +57,7 @@
- #################################
- # config-dir Location of configuration directory (pdns.conf)
- #
--# config-dir=/usr/local/etc
-+# config-dir=@PKG_SYSCONFDIR@
-
- #################################
- # config-name Name of this virtual configuration - will rename the binary image
-@@ -292,7 +292,7 @@
- #################################
- # module-dir Default directory for modules
- #
--# module-dir=/usr/local/lib/pdns
-+# module-dir=@PREFIX@/lib/pdns
-
- #################################
- # negquery-cache-ttl Seconds to store negative query results in the QueryCache
diff --git a/net/powerdns/patches/patch-configure b/net/powerdns/patches/patch-configure
new file mode 100644
index 00000000000..fe85262d115
--- /dev/null
+++ b/net/powerdns/patches/patch-configure
@@ -0,0 +1,15 @@
+$NetBSD: patch-configure,v 1.4 2017/03/09 13:32:54 fhajny Exp $
+
+Portability.
+
+--- configure.orig 2017-01-17 08:44:02.000000000 +0000
++++ configure
+@@ -25420,7 +25420,7 @@ $as_echo "$as_me: Built-in modules: $mod
+ $as_echo "$as_me: Dynamic modules: $dynmodules" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
+ $as_echo "$as_me: " >&6;}
+-if test "x$libcrypto_ecdsa" == "xyes"; then :
++if test "x$libcrypto_ecdsa" = "xyes"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: OpenSSL ecdsa: yes" >&5
+ $as_echo "$as_me: OpenSSL ecdsa: yes" >&6;}
+ else
diff --git a/net/powerdns/patches/patch-modules_luabackend_luabackend.hh b/net/powerdns/patches/patch-modules_luabackend_luabackend.hh
deleted file mode 100644
index 0e853bbdd9f..00000000000
--- a/net/powerdns/patches/patch-modules_luabackend_luabackend.hh
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-modules_luabackend_luabackend.hh,v 1.2 2015/03/27 23:37:52 rodent Exp $
-
-u_int32_t not defined on SunOS.
---- modules/luabackend/luabackend.hh.orig 2015-03-02 13:17:08.000000000 +0000
-+++ modules/luabackend/luabackend.hh
-@@ -17,6 +17,9 @@ using std::string;
-
- //#undef L
-
-+#ifdef __sun
-+typedef uint32_t u_int32_t;
-+#endif
-
-
- class LUAException {
diff --git a/net/powerdns/patches/patch-modules_pipebackend_pipebackend.cc b/net/powerdns/patches/patch-modules_pipebackend_pipebackend.cc
deleted file mode 100644
index 8c007cee832..00000000000
--- a/net/powerdns/patches/patch-modules_pipebackend_pipebackend.cc
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD: patch-modules_pipebackend_pipebackend.cc,v 1.3 2015/03/27 23:37:52 rodent Exp $
-
-Resolve boost symbol ambiguity.
---- modules/pipebackend/pipebackend.cc.orig 2015-03-02 13:17:08.000000000 +0000
-+++ modules/pipebackend/pipebackend.cc
-@@ -92,7 +92,7 @@ PipeBackend::PipeBackend(const string &s
- signal(SIGCHLD, SIG_IGN);
- setArgPrefix("pipe"+suffix);
- try {
-- d_coproc=shared_ptr<CoWrapper>(new CoWrapper(getArg("command"), getArgAsNum("timeout")));
-+ d_coproc=boost::shared_ptr<CoWrapper>(new CoWrapper(getArg("command"), getArgAsNum("timeout")));
- d_regex=getArg("regex").empty() ? 0 : new Regex(getArg("regex"));
- d_regexstr=getArg("regex");
- d_abiVersion = ::arg().asNum("pipebackend-abi-version");
diff --git a/net/powerdns/patches/patch-modules_pipebackend_pipebackend.hh b/net/powerdns/patches/patch-modules_pipebackend_pipebackend.hh
deleted file mode 100644
index 970254250ec..00000000000
--- a/net/powerdns/patches/patch-modules_pipebackend_pipebackend.hh
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD: patch-modules_pipebackend_pipebackend.hh,v 1.2 2014/12/10 14:50:09 fhajny Exp $
-
-Resolve boost symbol ambiguity.
---- modules/pipebackend/pipebackend.hh.orig 2014-06-03 07:42:02.000000000 +0000
-+++ modules/pipebackend/pipebackend.hh
-@@ -44,7 +44,7 @@ public:
- static DNSBackend *maker();
-
- private:
-- shared_ptr<CoWrapper> d_coproc;
-+ boost::shared_ptr<CoWrapper> d_coproc;
- string d_qname;
- QType d_qtype;
- Regex* d_regex;
diff --git a/net/powerdns/patches/patch-pdns_botan18signers.cc b/net/powerdns/patches/patch-pdns_botan18signers.cc
deleted file mode 100644
index 72a0570ed6d..00000000000
--- a/net/powerdns/patches/patch-pdns_botan18signers.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-$NetBSD: patch-pdns_botan18signers.cc,v 1.2 2015/03/27 23:37:52 rodent Exp $
-
-Resolve boost symbol ambiguity.
---- pdns/botan18signers.cc.orig 2015-03-02 13:17:09.000000000 +0000
-+++ pdns/botan18signers.cc
-@@ -36,8 +36,8 @@ public:
-
- private:
- static EC_Domain_Params getECParams(unsigned int algorithm);
-- shared_ptr<ECDSA_PrivateKey> d_key;
-- shared_ptr<ECDSA_PublicKey> d_pubkey;
-+ boost::shared_ptr<ECDSA_PrivateKey> d_key;
-+ boost::shared_ptr<ECDSA_PublicKey> d_pubkey;
- };
-
- EC_Domain_Params ECDSADNSCryptoKeyEngine::getECParams(unsigned int algorithm)
-@@ -56,7 +56,7 @@ void ECDSADNSCryptoKeyEngine::create(uns
- if(bits != 256 && bits != 384) {
- throw runtime_error("Unknown key length of "+lexical_cast<string>(bits)+" bits requested from ECDSA class");
- }
-- d_key = shared_ptr<ECDSA_PrivateKey>(new ECDSA_PrivateKey(rng, getECParams((bits == 256) ? 13 : 14)));
-+ d_key = boost::shared_ptr<ECDSA_PrivateKey>(new ECDSA_PrivateKey(rng, getECParams((bits == 256) ? 13 : 14)));
-
- // PKCS8_Encoder* pk8e= d_key->pkcs8_encoder();
- // MemoryVector<byte> getbits=pk8e->key_bits();
-@@ -113,7 +113,7 @@ void ECDSADNSCryptoKeyEngine::fromISCMap
-
- EC_Domain_Params params=getECParams(drc.d_algorithm);
-
-- d_key=shared_ptr<ECDSA_PrivateKey>(new ECDSA_PrivateKey);
-+ d_key=boost::shared_ptr<ECDSA_PrivateKey>(new ECDSA_PrivateKey);
- AutoSeeded_RNG rng;
-
- SecureVector<byte> octstr_secret = BigInt::encode_1363(bigint, getBits()/8);
-@@ -168,7 +168,7 @@ void ECDSADNSCryptoKeyEngine::fromPublic
- GFpElement gfpx(params.get_curve().get_ptr_mod(), x);
- GFpElement gfpy(params.get_curve().get_ptr_mod(), y);
- PointGFp point(params.get_curve(), gfpx,gfpy);
-- d_pubkey = shared_ptr<ECDSA_PublicKey>(new ECDSA_PublicKey(params, point));
-+ d_pubkey = boost::shared_ptr<ECDSA_PublicKey>(new ECDSA_PublicKey(params, point));
- d_key.reset();
- }
-
diff --git a/net/powerdns/patches/patch-pdns_dns.hh b/net/powerdns/patches/patch-pdns_dns.hh
index 9f414a6066f..daeaff5d800 100644
--- a/net/powerdns/patches/patch-pdns_dns.hh
+++ b/net/powerdns/patches/patch-pdns_dns.hh
@@ -1,13 +1,14 @@
-$NetBSD: patch-pdns_dns.hh,v 1.4 2015/03/27 23:37:52 rodent Exp $
+$NetBSD: patch-pdns_dns.hh,v 1.5 2017/03/09 13:32:54 fhajny Exp $
-Add DragonFly support.
---- pdns/dns.hh.orig 2015-03-02 13:17:09.000000000 +0000
+Add NetBSD support.
+
+--- pdns/dns.hh.orig 2017-01-17 08:43:49.000000000 +0000
+++ pdns/dns.hh
-@@ -207,7 +207,7 @@ enum {
- ns_t_any = 255, /* Wildcard match. */
- };
+@@ -146,7 +146,7 @@ struct EDNS0Record
+
+ static_assert(sizeof(EDNS0Record) == 4, "EDNS0Record size must be 4");
--#if __FreeBSD__ || __APPLE__ || __OpenBSD__ || __DragonFly__ || defined(__FreeBSD_kernel__)
+-#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
+#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
#include <machine/endian.h>
#elif __linux__ || __GNU__
diff --git a/net/powerdns/patches/patch-pdns_dnspacket.cc b/net/powerdns/patches/patch-pdns_dnspacket.cc
deleted file mode 100644
index 877f6e87517..00000000000
--- a/net/powerdns/patches/patch-pdns_dnspacket.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-$NetBSD: patch-pdns_dnspacket.cc,v 1.5 2015/06/10 16:24:44 fhajny Exp $
-
-Resolve boost symbol ambiguity.
-Avoid ambiguous abs() call.
-
---- pdns/dnspacket.cc.orig 2015-04-23 08:09:54.000000000 +0000
-+++ pdns/dnspacket.cc
-@@ -312,7 +312,7 @@ void DNSPacket::wrapup()
- pos->content=".";
-
- pw.startRecord(pos->qname, pos->qtype.getCode(), pos->ttl, pos->qclass, (DNSPacketWriter::Place)pos->d_place);
-- shared_ptr<DNSRecordContent> drc(DNSRecordContent::mastermake(pos->qtype.getCode(), pos->qclass, pos->content));
-+ boost::shared_ptr<DNSRecordContent> drc(DNSRecordContent::mastermake(pos->qtype.getCode(), pos->qclass, pos->content));
- drc->toPacket(pw);
- if(pw.size() + 20U > (d_tcp ? 65535 : getMaxReplyLen())) { // 20 = room for EDNS0
- pw.rollback();
-@@ -622,7 +622,7 @@ bool checkForCorrectTSIG(const DNSPacket
- string message;
-
- q->getTSIGDetails(trc, keyname, &message);
-- uint64_t now = time(0);
-+ float now = time(0);
- if(abs(trc->d_time - now) > trc->d_fudge) {
- L<<Logger::Error<<"Packet for '"<<q->qdomain<<"' denied: TSIG (key '"<<*keyname<<"') time delta "<< abs(trc->d_time - now)<<" > 'fudge' "<<trc->d_fudge<<endl;
- return false;
diff --git a/net/powerdns/patches/patch-pdns_dnsparser.cc b/net/powerdns/patches/patch-pdns_dnsparser.cc
deleted file mode 100644
index 35eb8e0cff0..00000000000
--- a/net/powerdns/patches/patch-pdns_dnsparser.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-$NetBSD: patch-pdns_dnsparser.cc,v 1.3 2015/03/27 23:37:52 rodent Exp $
-
-Resolve boost symbol ambiguity.
---- pdns/dnsparser.cc.orig 2015-03-02 13:17:09.000000000 +0000
-+++ pdns/dnsparser.cc
-@@ -109,7 +109,7 @@ static const string EncodeDNSLabel(const
- }
-
-
--shared_ptr<DNSRecordContent> DNSRecordContent::unserialize(const string& qname, uint16_t qtype, const string& serialized)
-+boost::shared_ptr<DNSRecordContent> DNSRecordContent::unserialize(const string& qname, uint16_t qtype, const string& serialized)
- {
- dnsheader dnsheader;
- memset(&dnsheader, 0, sizeof(dnsheader));
-@@ -143,7 +143,7 @@ shared_ptr<DNSRecordContent> DNSRecordCo
- memcpy(&packet[pos], serialized.c_str(), serialized.size()); pos+=(uint16_t)serialized.size();
-
- MOADNSParser mdp((char*)&*packet.begin(), (unsigned int)packet.size());
-- shared_ptr<DNSRecordContent> ret= mdp.d_answers.begin()->first.d_content;
-+ boost::shared_ptr<DNSRecordContent> ret= mdp.d_answers.begin()->first.d_content;
- ret->header.d_type=ret->d_qtype;
- ret->label=mdp.d_answers.begin()->first.d_label;
- ret->header.d_ttl=mdp.d_answers.begin()->first.d_ttl;
diff --git a/net/powerdns/patches/patch-pdns_dnsparser.hh b/net/powerdns/patches/patch-pdns_dnsparser.hh
deleted file mode 100644
index 31c01601ac0..00000000000
--- a/net/powerdns/patches/patch-pdns_dnsparser.hh
+++ /dev/null
@@ -1,26 +0,0 @@
-$NetBSD: patch-pdns_dnsparser.hh,v 1.3 2015/03/27 23:37:52 rodent Exp $
-
-Resolve boost symbol ambiguity.
---- pdns/dnsparser.hh.orig 2015-03-02 13:17:09.000000000 +0000
-+++ pdns/dnsparser.hh
-@@ -183,7 +183,7 @@ public:
- return record;
- }
-
-- static shared_ptr<DNSRecordContent> unserialize(const string& qname, uint16_t qtype, const string& serialized);
-+ static boost::shared_ptr<DNSRecordContent> unserialize(const string& qname, uint16_t qtype, const string& serialized);
-
- void doRecordCheck(const struct DNSRecord&){}
-
-@@ -327,9 +327,9 @@ public:
- //! All answers contained in this packet
- answers_t d_answers;
-
-- shared_ptr<PacketReader> getPacketReader(uint16_t offset)
-+ boost::shared_ptr<PacketReader> getPacketReader(uint16_t offset)
- {
-- shared_ptr<PacketReader> pr(new PacketReader(d_content));
-+ boost::shared_ptr<PacketReader> pr(new PacketReader(d_content));
- pr->d_pos=offset;
- return pr;
- }
diff --git a/net/powerdns/patches/patch-pdns_dnsscope.cc b/net/powerdns/patches/patch-pdns_dnsscope.cc
index 3c02f96c626..6642196866f 100644
--- a/net/powerdns/patches/patch-pdns_dnsscope.cc
+++ b/net/powerdns/patches/patch-pdns_dnsscope.cc
@@ -1,11 +1,12 @@
-$NetBSD: patch-pdns_dnsscope.cc,v 1.2 2015/03/27 23:37:52 rodent Exp $
+$NetBSD: patch-pdns_dnsscope.cc,v 1.3 2017/03/09 13:32:54 fhajny Exp $
IP_OFFMASK not defined on SunOS.
---- pdns/dnsscope.cc.orig 2015-03-02 13:17:10.000000000 +0000
+
+--- pdns/dnsscope.cc.orig 2017-01-17 08:43:49.000000000 +0000
+++ pdns/dnsscope.cc
-@@ -16,6 +16,10 @@
- #include "namespaces.hh"
- #include <deque>
+@@ -43,6 +43,10 @@
+ #include "dnsrecords.hh"
+ #include "statnode.hh"
+#ifndef IP_OFFMASK
+# define IP_OFFMASK 0x1fff
diff --git a/net/powerdns/patches/patch-pdns_dynloader.cc b/net/powerdns/patches/patch-pdns_dynloader.cc
deleted file mode 100644
index b37784ea04d..00000000000
--- a/net/powerdns/patches/patch-pdns_dynloader.cc
+++ /dev/null
@@ -1,26 +0,0 @@
-$NetBSD: patch-pdns_dynloader.cc,v 1.3 2015/03/27 23:37:52 rodent Exp $
-
-Resolve boost symbol ambiguity.
---- pdns/dynloader.cc.orig 2015-03-02 13:17:11.000000000 +0000
-+++ pdns/dynloader.cc
-@@ -97,9 +97,9 @@ int main(int argc, char **argv)
-
- try {
- string command=commands[0];
-- shared_ptr<DynMessenger> D;
-+ boost::shared_ptr<DynMessenger> D;
- if(::arg()["remote-address"].empty())
-- D=shared_ptr<DynMessenger>(new DynMessenger(socketname));
-+ D=boost::shared_ptr<DynMessenger>(new DynMessenger(socketname));
- else {
- uint16_t port;
- try {
-@@ -110,7 +110,7 @@ int main(int argc, char **argv)
- exit(99);
- }
-
-- D=shared_ptr<DynMessenger>(new DynMessenger(ComboAddress(::arg()["remote-address"], port), ::arg()["secret"]));
-+ D=boost::shared_ptr<DynMessenger>(new DynMessenger(ComboAddress(::arg()["remote-address"], port), ::arg()["secret"]));
- }
-
- string message;
diff --git a/net/powerdns/patches/patch-pdns_htimer.cc b/net/powerdns/patches/patch-pdns_htimer.cc
deleted file mode 100644
index 50f1e9a61f6..00000000000
--- a/net/powerdns/patches/patch-pdns_htimer.cc
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD: patch-pdns_htimer.cc,v 1.3 2015/03/27 23:37:52 rodent Exp $
-
-Resolve boost symbol ambiguity.
---- pdns/htimer.cc.orig 2015-03-02 13:17:11.000000000 +0000
-+++ pdns/htimer.cc
-@@ -128,7 +128,7 @@ int main()
- HTimerSentinel hts=htloop.getSentinel();
- for(int i=0; i < 1000; ++i)
- {
-- shared_ptr<char> p(shared_ptr<char>(new char));
-+ boost::shared_ptr<char> p(boost::shared_ptr<char>(new char));
- }
- }
-
diff --git a/net/powerdns/patches/patch-pdns_iputils.hh b/net/powerdns/patches/patch-pdns_iputils.hh
new file mode 100644
index 00000000000..546b9e284a2
--- /dev/null
+++ b/net/powerdns/patches/patch-pdns_iputils.hh
@@ -0,0 +1,17 @@
+$NetBSD: patch-pdns_iputils.hh,v 1.1 2017/03/09 13:32:54 fhajny Exp $
+
+Do not use IP_PKTINFO on NetBSD, the structure is not as expected.
+
+--- pdns/iputils.hh.orig 2017-01-17 08:43:49.000000000 +0000
++++ pdns/iputils.hh
+@@ -40,6 +40,10 @@
+
+ #include "namespaces.hh"
+
++#if defined(__NetBSD__) && defined(IP_PKTINFO)
++#undef IP_PKTINFO
++#endif
++
+ #ifdef __APPLE__
+ #include <libkern/OSByteOrder.h>
+
diff --git a/net/powerdns/patches/patch-pdns_misc.cc b/net/powerdns/patches/patch-pdns_misc.cc
deleted file mode 100644
index a3a5b9028b2..00000000000
--- a/net/powerdns/patches/patch-pdns_misc.cc
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD: patch-pdns_misc.cc,v 1.2 2015/03/27 23:37:52 rodent Exp $
-
-Do not use IP_PKTINFO on NetBSD.
---- pdns/misc.cc.orig 2015-03-02 13:17:12.000000000 +0000
-+++ pdns/misc.cc
-@@ -802,7 +802,7 @@ void addCMsgSrcAddr(struct msghdr* msgh,
- msgh->msg_controllen = cmsg->cmsg_len; // makes valgrind happy and is slightly better style
- }
- else {
--#ifdef IP_PKTINFO
-+#if defined(IP_PKTINFO) && !defined(__NetBSD__)
- struct in_pktinfo *pkt;
-
- msgh->msg_control = cmsgbuf;
diff --git a/net/powerdns/patches/patch-pdns_nameserver.cc b/net/powerdns/patches/patch-pdns_nameserver.cc
deleted file mode 100644
index 95ffd80e14a..00000000000
--- a/net/powerdns/patches/patch-pdns_nameserver.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-$NetBSD: patch-pdns_nameserver.cc,v 1.4 2015/03/27 23:37:52 rodent Exp $
-
-Do not use IP_PKTINFO on NetBSD.
---- pdns/nameserver.cc.orig 2015-03-02 13:17:12.000000000 +0000
-+++ pdns/nameserver.cc
-@@ -81,7 +81,7 @@ extern StatBag S;
- The main() of PowerDNS can be found in receiver.cc - start reading there for further insights into the operation of the nameserver
- */
-
--#if defined(IP_PKTINFO)
-+#if defined(IP_PKTINFO) || !defined(__NetBSD__)
- #define GEN_IP_PKTINFO IP_PKTINFO
- #elif defined(IP_RECVDSTADDR)
- #define GEN_IP_PKTINFO IP_RECVDSTADDR
-@@ -337,7 +337,7 @@ static bool HarvestDestinationAddress(st
- memset(destination, 0, sizeof(*destination));
- struct cmsghdr *cmsg;
- for (cmsg = CMSG_FIRSTHDR(msgh); cmsg != NULL; cmsg = CMSG_NXTHDR(msgh,cmsg)) {
--#if defined(IP_PKTINFO)
-+#if defined(IP_PKTINFO) || !defined(__NetBSD__)
- if ((cmsg->cmsg_level == IPPROTO_IP) && (cmsg->cmsg_type == IP_PKTINFO)) {
- struct in_pktinfo *i = (struct in_pktinfo *) CMSG_DATA(cmsg);
- destination->sin4.sin_addr = i->ipi_addr;
diff --git a/net/powerdns/patches/patch-pdns_pdns_recursor.cc b/net/powerdns/patches/patch-pdns_pdns_recursor.cc
deleted file mode 100644
index b238ab222ca..00000000000
--- a/net/powerdns/patches/patch-pdns_pdns_recursor.cc
+++ /dev/null
@@ -1,103 +0,0 @@
-$NetBSD: patch-pdns_pdns_recursor.cc,v 1.4 2015/03/27 23:37:52 rodent Exp $
-
-Resolve boost symbol ambiguity.
---- pdns/pdns_recursor.cc.orig 2015-03-02 13:17:12.000000000 +0000
-+++ pdns/pdns_recursor.cc
-@@ -80,9 +80,9 @@ uint64_t g_latencyStatSize;
- bool g_logCommonErrors;
- bool g_anyToTcp;
- uint16_t g_udpTruncationThreshold;
--__thread shared_ptr<RecursorLua>* t_pdl;
-+__thread boost::shared_ptr<RecursorLua>* t_pdl;
- __thread RemoteKeeper* t_remotes;
--__thread shared_ptr<Regex>* t_traceRegex;
-+__thread boost::shared_ptr<Regex>* t_traceRegex;
-
- RecursorControlChannel s_rcc; // only active in thread 0
-
-@@ -152,7 +152,7 @@ struct DNSComboWriter {
- ComboAddress d_remote;
- bool d_tcp;
- int d_socket;
-- shared_ptr<TCPConnection> d_tcpConnection;
-+ boost::shared_ptr<TCPConnection> d_tcpConnection;
- };
-
-
-@@ -606,7 +606,7 @@ void startDoResolve(void *p)
- IpToU32(i->content, &ip);
- pw.xfr32BitInt(htonl(ip));
- } else {
-- shared_ptr<DNSRecordContent> drc(DNSRecordContent::mastermake(i->qtype.getCode(), i->qclass, i->content));
-+ boost::shared_ptr<DNSRecordContent> drc(DNSRecordContent::mastermake(i->qtype.getCode(), i->qclass, i->content));
- drc->toPacket(pw);
- }
- if(pw.size() > maxanswersize) {
-@@ -748,7 +748,7 @@ void makeControlChannelSocket(int proces
-
- void handleRunningTCPQuestion(int fd, FDMultiplexer::funcparam_t& var)
- {
-- shared_ptr<TCPConnection> conn=any_cast<shared_ptr<TCPConnection> >(var);
-+ boost::shared_ptr<TCPConnection> conn=any_cast<boost::shared_ptr<TCPConnection> >(var);
-
- if(conn->state==TCPConnection::BYTE0) {
- int bytes=recv(conn->getFD(), conn->data, 2, 0);
-@@ -852,7 +852,7 @@ void handleNewTCPQuestion(int fd, FDMult
- }
-
- Utility::setNonBlocking(newsock);
-- shared_ptr<TCPConnection> tc(new TCPConnection(newsock, addr));
-+ boost::shared_ptr<TCPConnection> tc(new TCPConnection(newsock, addr));
- tc->state=TCPConnection::BYTE0;
-
- t_fdm->addReadFD(tc->getFD(), handleRunningTCPQuestion, tc);
-@@ -1582,7 +1582,7 @@ string* doReloadLuaScript()
- return new string("unloaded\n");
- }
- else {
-- *t_pdl = shared_ptr<RecursorLua>(new RecursorLua(fname));
-+ *t_pdl = boost::shared_ptr<RecursorLua>(new RecursorLua(fname));
- }
- }
- catch(std::exception& e) {
-@@ -1610,7 +1610,7 @@ try
- return new string("unset\n");
- }
- else {
-- (*t_traceRegex) = shared_ptr<Regex>(new Regex(newRegex));
-+ (*t_traceRegex) = boost::shared_ptr<Regex>(new Regex(newRegex));
- return new string("ok\n");
- }
- }
-@@ -1939,11 +1939,11 @@ try
-
- L<<Logger::Warning<<"Done priming cache with root hints"<<endl;
-
-- t_pdl = new shared_ptr<RecursorLua>();
-+ t_pdl = new boost::shared_ptr<RecursorLua>();
-
- try {
- if(!::arg()["lua-dns-script"].empty()) {
-- *t_pdl = shared_ptr<RecursorLua>(new RecursorLua(::arg()["lua-dns-script"]));
-+ *t_pdl = boost::shared_ptr<RecursorLua>(new RecursorLua(::arg()["lua-dns-script"]));
- L<<Logger::Warning<<"Loaded 'lua' script from '"<<::arg()["lua-dns-script"]<<"'"<<endl;
- }
-
-@@ -1953,7 +1953,7 @@ try
- exit(99);
- }
-
-- t_traceRegex = new shared_ptr<Regex>();
-+ t_traceRegex = new boost::shared_ptr<Regex>();
-
-
- t_remotes = new RemoteKeeper();
-@@ -2011,7 +2011,7 @@ try
- expired_t expired=t_fdm->getTimeouts(g_now);
-
- for(expired_t::iterator i=expired.begin() ; i != expired.end(); ++i) {
-- shared_ptr<TCPConnection> conn=any_cast<shared_ptr<TCPConnection> >(i->second);
-+ boost::shared_ptr<TCPConnection> conn=any_cast<boost::shared_ptr<TCPConnection> >(i->second);
- if(g_logCommonErrors)
- L<<Logger::Warning<<"Timeout from remote TCP client "<< conn->d_remote.toString() <<endl;
- t_fdm->removeReadFD(i->first);
diff --git a/net/powerdns/patches/patch-pdns_qtype.hh b/net/powerdns/patches/patch-pdns_qtype.hh
new file mode 100644
index 00000000000..a60238468b5
--- /dev/null
+++ b/net/powerdns/patches/patch-pdns_qtype.hh
@@ -0,0 +1,17 @@
+$NetBSD: patch-pdns_qtype.hh,v 1.1 2017/03/09 13:32:54 fhajny Exp $
+
+Avoid symbol pollution on SunOS.
+
+--- pdns/qtype.hh.orig 2017-01-17 08:43:49.000000000 +0000
++++ pdns/qtype.hh
+@@ -26,6 +26,10 @@
+ #include <vector>
+ #include "namespaces.hh"
+
++#if defined(__sun) && defined(DS)
++#undef DS
++#endif
++
+ /** The QType class is meant to deal easily with the different kind of resource types, like 'A', 'NS',
+ * 'CNAME' etcetera. These types have both a name and a number. This class can seamlessly move between
+ * them. Use it like this:
diff --git a/net/powerdns/patches/patch-pdns_receiver.cc b/net/powerdns/patches/patch-pdns_receiver.cc
deleted file mode 100644
index 455528816b7..00000000000
--- a/net/powerdns/patches/patch-pdns_receiver.cc
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD: patch-pdns_receiver.cc,v 1.4 2016/06/03 11:45:34 fhajny Exp $
-
-Limit inclusion of boost headers to only those necessary to avoid conflicting
-types errors on Solaris.
-
---- pdns/receiver.cc.orig 2016-05-13 16:04:50.000000000 +0000
-+++ pdns/receiver.cc
-@@ -42,7 +42,7 @@
- #include <sys/mman.h>
- #include <fcntl.h>
- #include <fstream>
--#include <boost/algorithm/string.hpp>
-+#include <boost/algorithm/string/trim.hpp>
- #ifdef HAVE_OPENSSL
- #include "opensslsigners.hh"
- #endif
diff --git a/net/powerdns/patches/patch-pdns_recursor__cache.cc b/net/powerdns/patches/patch-pdns_recursor__cache.cc
deleted file mode 100644
index a72b6ff44ed..00000000000
--- a/net/powerdns/patches/patch-pdns_recursor__cache.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-$NetBSD: patch-pdns_recursor__cache.cc,v 1.3 2015/03/27 23:37:52 rodent Exp $
-
-Resolve boost symbol ambiguity.
---- pdns/recursor_cache.cc.orig 2015-03-02 13:17:12.000000000 +0000
-+++ pdns/recursor_cache.cc
-@@ -53,7 +53,7 @@ DNSResourceRecord String2DNSRR(const str
- rr.content=".";
- }
- else {
-- shared_ptr<DNSRecordContent> regen=DNSRecordContent::unserialize(qname, qt.getCode(), serial);
-+ boost::shared_ptr<DNSRecordContent> regen=DNSRecordContent::unserialize(qname, qt.getCode(), serial);
- rr.content=regen->getZoneRepresentation();
- }
- rr.content.reserve(0);
-@@ -79,7 +79,7 @@ string DNSRR2String(const DNSResourceRec
- return simpleCompress(rr.content, rr.qname);
- else {
- string ret;
-- shared_ptr<DNSRecordContent> drc(DNSRecordContent::mastermake(type, 1, rr.content));
-+ boost::shared_ptr<DNSRecordContent> drc(DNSRecordContent::mastermake(type, 1, rr.content));
- ret=drc->serialize(rr.qname);
- // cerr<<"stored '"<<rr.qname<<" '"<<rr.qtype.getName()<<"' '"<<rr.content<<"' as "<<ret.size()<<" bytes"<<endl;
- return ret;
diff --git a/net/powerdns/patches/patch-pdns_resolver.cc b/net/powerdns/patches/patch-pdns_resolver.cc
deleted file mode 100644
index 054caf5846f..00000000000
--- a/net/powerdns/patches/patch-pdns_resolver.cc
+++ /dev/null
@@ -1,50 +0,0 @@
-$NetBSD: patch-pdns_resolver.cc,v 1.4 2015/03/27 23:37:52 rodent Exp $
-
-Limit inclusion of boost headers to only those necessary to avoid conflicting
-types errors on Solaris.
-Resolve boost symbol ambiguity.
-
---- pdns/resolver.cc.orig 2015-03-02 13:17:12.000000000 +0000
-+++ pdns/resolver.cc
-@@ -33,7 +33,7 @@
- #include <cstring>
- #include <string>
- #include <vector>
--#include <boost/algorithm/string.hpp>
-+#include <boost/algorithm/string/erase.hpp>
- #include "dns.hh"
- #include "qtype.hh"
- #include "tcpreceiver.hh"
-@@ -286,12 +286,12 @@ bool Resolver::tryGetSOASerial(string* d
- bool gotSOA=false;
- BOOST_FOREACH(const MOADNSParser::answers_t::value_type& drc, mdp.d_answers) {
- if(drc.first.d_type == QType::SOA) {
-- shared_ptr<SOARecordContent> src=boost::dynamic_pointer_cast<SOARecordContent>(drc.first.d_content);
-+ boost::shared_ptr<SOARecordContent> src=boost::dynamic_pointer_cast<SOARecordContent>(drc.first.d_content);
- *theirSerial=src->d_st.serial;
- gotSOA = true;
- }
- if(drc.first.d_type == QType::RRSIG) {
-- shared_ptr<RRSIGRecordContent> rrc=boost::dynamic_pointer_cast<RRSIGRecordContent>(drc.first.d_content);
-+ boost::shared_ptr<RRSIGRecordContent> rrc=boost::dynamic_pointer_cast<RRSIGRecordContent>(drc.first.d_content);
- if(rrc->d_type == QType::SOA) {
- *theirInception= std::max(*theirInception, rrc->d_siginception);
- *theirExpire = std::max(*theirExpire, rrc->d_sigexpire);
-@@ -396,7 +396,7 @@ AXFRRetriever::AXFRRetriever(const Combo
- d_sock = -1;
- try {
- d_sock = makeQuerySocket(local, false); // make a TCP socket
-- d_buf = shared_array<char>(new char[65536]);
-+ d_buf = boost::shared_array<char>(new char[65536]);
- d_remote = remote; // mostly for error reporting
- this->connect();
- d_soacount = 0;
-@@ -490,7 +490,7 @@ int AXFRRetriever::getChunk(Resolver::re
- checkTSIG = true;
-
- if(answer.first.d_type == QType::TSIG) {
-- shared_ptr<TSIGRecordContent> trc = boost::dynamic_pointer_cast<TSIGRecordContent>(answer.first.d_content);
-+ boost::shared_ptr<TSIGRecordContent> trc = boost::dynamic_pointer_cast<TSIGRecordContent>(answer.first.d_content);
- theirMac = trc->d_mac;
- d_trc.d_time = trc->d_time;
- checkTSIG = true;
diff --git a/net/powerdns/patches/patch-pdns_tcpreceiver.cc b/net/powerdns/patches/patch-pdns_tcpreceiver.cc
deleted file mode 100644
index 223d61d8707..00000000000
--- a/net/powerdns/patches/patch-pdns_tcpreceiver.cc
+++ /dev/null
@@ -1,106 +0,0 @@
-$NetBSD: patch-pdns_tcpreceiver.cc,v 1.4 2015/06/10 16:24:44 fhajny Exp $
-
-Resolve boost symbol ambiguity.
---- pdns/tcpreceiver.cc.orig 2015-04-23 08:10:09.000000000 +0000
-+++ pdns/tcpreceiver.cc
-@@ -173,7 +173,7 @@ void connectWithTimeout(int fd, struct s
- ;
- }
-
--void TCPNameserver::sendPacket(shared_ptr<DNSPacket> p, int outsock)
-+void TCPNameserver::sendPacket(boost::shared_ptr<DNSPacket> p, int outsock)
- {
-
- /* Query statistics */
-@@ -203,7 +203,7 @@ catch(NetworkError& ae) {
- throw NetworkError("Error reading DNS data from TCP client "+remote.toString()+": "+ae.what());
- }
-
--static void proxyQuestion(shared_ptr<DNSPacket> packet)
-+static void proxyQuestion(boost::shared_ptr<DNSPacket> packet)
- {
- int sock=socket(AF_INET, SOCK_STREAM, 0);
-
-@@ -247,7 +247,7 @@ static void proxyQuestion(shared_ptr<DNS
-
- void *TCPNameserver::doConnection(void *data)
- {
-- shared_ptr<DNSPacket> packet;
-+ boost::shared_ptr<DNSPacket> packet;
- // Fix gcc-4.0 error (on AMD64)
- int fd=(int)(long)data; // gotta love C (generates a harmless warning on opteron)
- pthread_detach(pthread_self());
-@@ -287,7 +287,7 @@ void *TCPNameserver::doConnection(void *
- getQuestion(fd, mesg.get(), pktlen, remote);
- S.inc("tcp-queries");
-
-- packet=shared_ptr<DNSPacket>(new DNSPacket);
-+ packet=boost::shared_ptr<DNSPacket>(new DNSPacket);
- packet->setRemote(&remote);
- packet->d_tcp=true;
- packet->setSocket(fd);
-@@ -306,8 +306,8 @@ void *TCPNameserver::doConnection(void *
- continue;
- }
-
-- shared_ptr<DNSPacket> reply;
-- shared_ptr<DNSPacket> cached= shared_ptr<DNSPacket>(new DNSPacket);
-+ boost::shared_ptr<DNSPacket> reply;
-+ boost::shared_ptr<DNSPacket> cached= boost::shared_ptr<DNSPacket>(new DNSPacket);
- if(logDNSQueries) {
- string remote;
- if(packet->hasEDNSSubnet())
-@@ -341,7 +341,7 @@ void *TCPNameserver::doConnection(void *
- }
- bool shouldRecurse;
-
-- reply=shared_ptr<DNSPacket>(s_P->questionOrRecurse(packet.get(), &shouldRecurse)); // we really need to ask the backend :-)
-+ reply=boost::shared_ptr<DNSPacket>(s_P->questionOrRecurse(packet.get(), &shouldRecurse)); // we really need to ask the backend :-)
-
- if(shouldRecurse) {
- proxyQuestion(packet);
-@@ -388,7 +388,7 @@ void *TCPNameserver::doConnection(void *
-
-
- // call this method with s_plock held!
--bool TCPNameserver::canDoAXFR(shared_ptr<DNSPacket> q)
-+bool TCPNameserver::canDoAXFR(boost::shared_ptr<DNSPacket> q)
- {
- if(::arg().mustDo("disable-axfr"))
- return false;
-@@ -499,9 +499,9 @@ namespace {
- return soa;
- }
-
-- shared_ptr<DNSPacket> getFreshAXFRPacket(shared_ptr<DNSPacket> q)
-+ boost::shared_ptr<DNSPacket> getFreshAXFRPacket(boost::shared_ptr<DNSPacket> q)
- {
-- shared_ptr<DNSPacket> ret = shared_ptr<DNSPacket>(q->replyPacket());
-+ boost::shared_ptr<DNSPacket> ret = boost::shared_ptr<DNSPacket>(q->replyPacket());
- ret->setCompress(false);
- ret->d_dnssecOk=false; // RFC 5936, 2.2.5
- ret->d_tcp = true;
-@@ -511,9 +511,9 @@ namespace {
-
-
- /** do the actual zone transfer. Return 0 in case of error, 1 in case of success */
--int TCPNameserver::doAXFR(const string &target, shared_ptr<DNSPacket> q, int outsock)
-+int TCPNameserver::doAXFR(const string &target, boost::shared_ptr<DNSPacket> q, int outsock)
- {
-- shared_ptr<DNSPacket> outpacket= getFreshAXFRPacket(q);
-+ boost::shared_ptr<DNSPacket> outpacket= getFreshAXFRPacket(q);
- if(q->d_dnssecOk)
- outpacket->d_dnssecOk=true; // RFC 5936, 2.2.5 'SHOULD'
-
-@@ -935,9 +935,9 @@ int TCPNameserver::doAXFR(const string &
- return 1;
- }
-
--int TCPNameserver::doIXFR(shared_ptr<DNSPacket> q, int outsock)
-+int TCPNameserver::doIXFR(boost::shared_ptr<DNSPacket> q, int outsock)
- {
-- shared_ptr<DNSPacket> outpacket=getFreshAXFRPacket(q);
-+ boost::shared_ptr<DNSPacket> outpacket=getFreshAXFRPacket(q);
- if(q->d_dnssecOk)
- outpacket->d_dnssecOk=true; // RFC 5936, 2.2.5 'SHOULD'
-