summaryrefslogtreecommitdiff
path: root/net-dns/pdns
diff options
context:
space:
mode:
Diffstat (limited to 'net-dns/pdns')
-rw-r--r--net-dns/pdns/Manifest15
-rw-r--r--net-dns/pdns/files/dnsdomain2.schema195
-rw-r--r--net-dns/pdns/files/pdns61
-rw-r--r--net-dns/pdns/files/pdns-r1102
-rw-r--r--net-dns/pdns/metadata.xml24
-rw-r--r--net-dns/pdns/pdns-4.0.2.ebuild153
-rw-r--r--net-dns/pdns/pdns-4.0.3-r3.ebuild153
-rw-r--r--net-dns/pdns/pdns-4.0.3.ebuild153
-rw-r--r--net-dns/pdns/pdns-4.0.4.ebuild153
-rw-r--r--net-dns/pdns/pdns-4.1.0_rc1.ebuild151
10 files changed, 1160 insertions, 0 deletions
diff --git a/net-dns/pdns/Manifest b/net-dns/pdns/Manifest
new file mode 100644
index 000000000000..1e0aaeeb30a5
--- /dev/null
+++ b/net-dns/pdns/Manifest
@@ -0,0 +1,15 @@
+AUX dnsdomain2.schema 6640 SHA256 a59cfe28a82ffdcb7faa7d7a3d282cd998edcb49fc2543d3789e0ad6f329a938 SHA512 ac16f8d528d6138d3c2cbf997fd8fbb467d388aa63eb6ed4e7780a3dad11ea885b91252ff0809b1d2cf7d5200814b8963aab890af84741ea86d35b2f5955a7ea WHIRLPOOL a005f1d5676fb049429893b4951f252220e97184a63875ded9090373b493da3e3cc5bdc10a61bcdea3b00b72d3e686fc4d75cb5a661329a4ea0075cba417cebd
+AUX pdns 1218 SHA256 aa50c51bcf9b42be4315afcdeed0b420049f97d8fea351096626c343fb4038d1 SHA512 7765720e89b6332af6b1f3e346c0768dc1c4533131598023c55cde09710d578c54d7a9c82df699c322cef8059b4d05a08dee3afa4837149f924b06c74e56080b WHIRLPOOL e8d3283717c2fc268cba4da5f33672d57b480c90946846fb74597c97c499fc4a32801bcd99818341c54610739da441dc4bf8553a82d65bdc7a3929da87b5ef32
+AUX pdns-r1 2533 SHA256 2f7692cd21c0212597ad474586ade8794648702bcfaae6e689c529a0a8847b7e SHA512 6392f59f82b82621b6cab6823f7761cd875bc6818c48db846df289057c02d8119a1024c5ecdf70a5ca8a55c00a2c3c56240d36b42cc038a25e8616ab9b966dd6 WHIRLPOOL 33f02fc7cd8c49aa10b93d1ebe714df0387d4f78093c61a32aa080c04ffff722d484fd32107185dceb17dcad069be3c2f87a708ecf0ad673cc83af306e73d1c1
+DIST pdns-4.0.2.tar.bz2 1314886 SHA256 d051e53b63f586c924f00ce8a81662f7bd285b461d125d4991538f92cf7e629d SHA512 6720289332ee5186f4c58a00a720f3bb58480c0ae7f09915148ca8b40e2dfdc77e2f14123df903692afa464539eeef6b21e8ea3d284278897751ba807e2cdffe WHIRLPOOL 6b58de4f2fc6fe830255203c281ca518a543b373171f73021cd8efd597c146b438a7ffd6ed018b637816fe07153a51f947818a0fa76dc237ba0f50903d3afbe9
+DIST pdns-4.0.3.tar.bz2 1312299 SHA256 60fa21550b278b41f58701af31c9f2b121badf271fb9d7642f6d35bfbea8e282 SHA512 58d33ac6cf457a916bae6abd8d2dc17f76fbcd1bd9e649948584dd669f5596b43e3e4d91841700ea1ea2cd1ac102749e503cd9075273540f33a2321e20d8bfc2 WHIRLPOOL a28ab5011b3365423f13331c31e8f0fdb9aef0798155ce6fcbe328f82ebc3ca57a966b77f48c31422d374837ee4be3f7f0bc935bab463add19714eb8abd46493
+DIST pdns-4.0.4.tar.bz2 1320327 SHA256 d974ab89de69477c7f581a3233bc731eacbb43d479291e472b2c531c83b6d763 SHA512 4ef4705cd990b03976775167c7c37850d45907e198549feda5f5701172e008e3f1f74a35a9bebdb24b63dec15ff63cb2cc9dfc8f92e4e1012e0539c5a88b845b WHIRLPOOL 5ac68a15155424d42fb4b84be1b34eb2e51498ae5193ae104215e4bb52a72845923f82dc6b112ce165444cdbfe3aaf01557d2f6ab42f6531dd525aee15ee1b19
+DIST pdns-4.1.0-rc1.tar.bz2 1106039 SHA256 a973202ca1c9333c236d76286ab1d8566d420a877a003130381150171d63d4ff SHA512 7356277126578b34587579039d4c63e9ba7822ddd39810b4a43eb06d076c2d247d8b8db7162b2aafd1cb73fd83047b0b5584d4d8bb333ec77597717bac76b450 WHIRLPOOL 19a003a7564691f5ba812f34b376d79c6acbb538df7e4b978a7058f919ef71d778770527d7a091a689a433e915cfccfc22152bc4da46e36ba6c335a31bcdb40f
+EBUILD pdns-4.0.2.ebuild 4135 SHA256 24f5032ad5e1e048133a97f3429dd2506e196f428e69da3758c1db440a5946f2 SHA512 1f67708f99dcaa22638c101bcd014db5e050a9faf82fa8bd33e92361159551b496baab06e171b18e84f98cf333b949d0398f36ff0e1a4f0afba89485fd1bf08b WHIRLPOOL 576114051c4550af58eba31023475d947cfb15d229410b768100a7dd2d7cba6097e5d0fad2911dfdfecf7317fad8f13c38be200a0fee03ad3a92ba399e06b8f4
+EBUILD pdns-4.0.3-r3.ebuild 4146 SHA256 edba6f9a310f4e9b753c0bc0396385f4d04ec198355751d44495600aed8fe9d4 SHA512 4493c9211c817c9f26f3329e64a079a18570bfcaf18fb1e318100b4bb3f2ead15e3ac4436ce20cb1779b34a624bd490cea8d8182eddee8360fcb6def57be1e37 WHIRLPOOL 629182b4d6864352705fbdbd6f24fe06d8ba0acfe371df381507187c814fdf30c3534621330e27fbf4223aae43953c3749762c232d4dc1256765378e4137f6f3
+EBUILD pdns-4.0.3.ebuild 4137 SHA256 c37616d96d56911b6f143ff74b38aaec23fcd1e79857c67c8703244a74c94c77 SHA512 a757268e5d43bc22a666c6fc84986aa1582fdc5604527677e9b8928342f010f49d4b1beefa998539d37247c9bcaaf12dd3dad600f679897e2e1c6c74fafad15c WHIRLPOOL ac212bcd7ccad356e530fd27ed44fd1061c142edbaedc7119c9762ce42122775f985d97ff637116f7ba512e67a89f6a81ae6f12bed917ea1303694fe6af497a7
+EBUILD pdns-4.0.4.ebuild 4144 SHA256 814425cb3ff6b8be6e2c0fd39671ef748553ff9a4532064d50c6114eb2b78a66 SHA512 2491bd5013165ef666ca5c077c5d6330d016ba8d87950e6875fbdf780d212624616569a708ab6bdb7016ad10bfee18605d9136541d92166253a50e4ea0729ba0 WHIRLPOOL 1ba005ec54b80ad3c305cbd76db3c97ef0073e644879dfad2877a6e6102e19adb5c46e4d9724bc0b205a142a949335a138cba03f5cd83eaa1c9241406d446699
+EBUILD pdns-4.1.0_rc1.ebuild 4067 SHA256 742d4e08c15d1bfa8da7b2bf0f83808016b7ffe5a536b217c0fd304da901266a SHA512 3c627af21069277b5a24203edcebc94342867125c287db9346aec4a81f655217e4bfc01a35f0febe33a18557c6788654bdad0e109311ff43bda98cbf69e15427 WHIRLPOOL 1a315bde86086b80ff8b2bce01b2324b716a27beb5f5a4c424f02463aa73cfb0a83015554c4af1d5b887f0d1b69560e08ed815e3a1df7046e883ad48880a8e10
+MISC ChangeLog 5944 SHA256 35de26d1c11b2d393aa8a0c4eadb15c2575dd70df9a575f6c154eb42c58418b9 SHA512 ffa4c8e213e312dafd3e1b1b6d439a4bb7d3a645eaa0485c92a9c2cb61caf68e336b3cbca6f2a36dbc232a40a869e3fa99300456e1e418c87b77e5f0ec4b5af3 WHIRLPOOL c3cfde00afbe919570b062e3077d67e682b6b37aa114d480314eb92a5dfbd301d04ab1b1cee4414a398518113aa6706ce704d8a0c11e82860e7e9cd936a86030
+MISC ChangeLog-2015 17472 SHA256 0def7a9b8ef442683005b5805aaa3d3875a59c41ac239451c8f8b27177b3aedc SHA512 cb67db8b70208f96ad278ed3a706fd81bd97c9a278ba42a4bfd2369a2c1a47e0533eeed18e0673bf4a6c76d8ab6d12c6d5bf41804e83facaf4572983bf3ea43c WHIRLPOOL d9f6683e3836f9938d9b4d25f10f8fafc262510c2593d8210ff207a22bec3ad8d444417708b61138b7c9fea108dfd5aa25c1dd76a84c75fc1598efac73ce8bd2
+MISC metadata.xml 1372 SHA256 0c8074107d7379fc04ad8e6e31bd823c6d8d492e96beba90e13299bba017777e SHA512 5031d165e37113c51d9c608a6493594825bbef8f35ea6e85eae0c4b515df91522c99c574bc0fac141fdd1d428065a66a45e8367c67b459f730d0171a3bb85080 WHIRLPOOL de40f263dbe9929a3276d341f265e27943be737576626e2af4edbffe7218eae34ef8c46ce1b8c9945bbb5546537861e1200bae2785cd8efe371b0b764eb106ce
diff --git a/net-dns/pdns/files/dnsdomain2.schema b/net-dns/pdns/files/dnsdomain2.schema
new file mode 100644
index 000000000000..a89aeafb3746
--- /dev/null
+++ b/net-dns/pdns/files/dnsdomain2.schema
@@ -0,0 +1,195 @@
+# A schema for storing DNS zones in LDAP
+#
+# ORDERING is not necessary, and some servers don't support
+# integerOrderingMatch. Omit or change if you like
+
+attributetype ( 1.3.6.1.4.1.2428.20.0.0 NAME 'dNSTTL'
+ DESC 'An integer denoting time to live'
+ EQUALITY integerMatch
+ ORDERING integerOrderingMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.0.1 NAME 'dNSClass'
+ DESC 'The class of a resource record'
+ EQUALITY caseIgnoreIA5Match
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.11 NAME 'wKSRecord'
+ DESC 'a well known service description, RFC 1035'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.12 NAME 'pTRRecord'
+ DESC 'domain name pointer, RFC 1035'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.13 NAME 'hInfoRecord'
+ DESC 'host information, RFC 1035'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.14 NAME 'mInfoRecord'
+ DESC 'mailbox or mail list information, RFC 1035'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.16 NAME 'tXTRecord'
+ DESC 'text string, RFC 1035'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.17 NAME 'rPRecord'
+ DESC 'for Responsible Person, RFC 1183'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.18 NAME 'aFSDBRecord'
+ DESC 'for AFS Data Base location, RFC 1183'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.24 NAME 'SigRecord'
+ DESC 'Signature, RFC 2535'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.25 NAME 'KeyRecord'
+ DESC 'Key, RFC 2535'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.27 NAME 'gPosRecord'
+ DESC 'Geographical Position, RFC 1712'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.28 NAME 'aAAARecord'
+ DESC 'IPv6 address, RFC 1886'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.29 NAME 'LocRecord'
+ DESC 'Location, RFC 1876'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.30 NAME 'nXTRecord'
+ DESC 'non-existant, RFC 2535'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.33 NAME 'sRVRecord'
+ DESC 'service location, RFC 2782'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.35 NAME 'nAPTRRecord'
+ DESC 'Naming Authority Pointer, RFC 2915'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.36 NAME 'kXRecord'
+ DESC 'Key Exchange Delegation, RFC 2230'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.37 NAME 'certRecord'
+ DESC 'certificate, RFC 2538'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.38 NAME 'a6Record'
+ DESC 'A6 Record Type, RFC 2874'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.39 NAME 'dNameRecord'
+ DESC 'Non-Terminal DNS Name Redirection, RFC 2672'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.42 NAME 'aPLRecord'
+ DESC 'Lists of Address Prefixes, RFC 3123'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.43 NAME 'dSRecord'
+ DESC 'Delegation Signer, RFC 3658'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.44 NAME 'sSHFPRecord'
+ DESC 'SSH Key Fingerprint, RFC 4255'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.45 NAME 'iPSecKeyRecord'
+ DESC 'SSH Key Fingerprint, RFC 4025'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.46 NAME 'rRSIGRecord'
+ DESC 'RRSIG, RFC 3755'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.47 NAME 'nSECRecord'
+ DESC 'NSEC, RFC 3755'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.48 NAME 'dNSKeyRecord'
+ DESC 'DNSKEY, RFC 3755'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.49 NAME 'dHCIDRecord'
+ DESC 'DHCID, RFC 4701'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.2428.20.1.99 NAME 'sPFRecord'
+ DESC 'Sender Policy Framework, RFC 4408'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+objectclass ( 1.3.6.1.4.1.2428.20.2 NAME 'dNSDomain2'
+ SUP 'dNSDomain' STRUCTURAL
+ MAY ( DNSTTL $ DNSClass $ WKSRecord $ PTRRecord $
+ HINFORecord $ MINFORecord $ TXTRecord $ RPRecord $
+ AFSDBRecord $ SIGRecord $ KEYRecord $ GPOSRecord $
+ AAAARecord $ LOCRecord $ NXTRecord $ SRVRecord $
+ NAPTRRecord $ KXRecord $ CERTRecord $ A6Record $
+ DNAMERecord $ APLRecord $ DSRecord $ SSHFPRecord $
+ IPSECKEYRecord $ RRSIGRecord $ NSECRecord $
+ DNSKEYRecord $ DHCIDRecord $ SPFRecord
+ ) )
diff --git a/net-dns/pdns/files/pdns b/net-dns/pdns/files/pdns
new file mode 100644
index 000000000000..c16037913112
--- /dev/null
+++ b/net-dns/pdns/files/pdns
@@ -0,0 +1,61 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_commands="monitor"
+extra_started_commands="reload dump"
+
+PDNS_INSTANCE="${SVCNAME#pdns[.-]}"
+PDNS_CONFIG=""
+
+if [ -n "${PDNS_INSTANCE}" ] && [ "${PDNS_INSTANCE}" != "pdns" ]
+then
+ PDNS_CONFIG="--config-name=${PDNS_INSTANCE}"
+else
+ PDNS_INSTANCE="default"
+fi
+
+depend() {
+ need net
+ use mysql postgresql
+}
+
+start() {
+ ebegin "Starting PowerDNS (${PDNS_INSTANCE})"
+ /usr/sbin/pdns_server \
+ ${PDNS_CONFIG} \
+ --daemon=yes \
+ --guardian=yes
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping PowerDNS (${PDNS_INSTANCE})"
+ /usr/bin/pdns_control ${PDNS_CONFIG} quit >/dev/null 2>&1
+ eend $?
+}
+
+reload() {
+ ebegin "Reloading PowerDNS (${PDNS_INSTANCE})"
+ /usr/bin/pdns_control ${PDNS_CONFIG} cycle >/dev/null 2>&1
+ eend $?
+}
+
+dump() {
+ ebegin "Dumping PowerDNS (${PDNS_INSTANCE}) variables"
+ /usr/bin/pdns_control ${PDNS_CONFIG} list
+ eend $?
+}
+
+monitor() {
+ ebegin "Starting PowerDNS (${PDNS_INSTANCE}) in monitor mode"
+ /usr/sbin/pdns_server \
+ ${PDNS_CONFIG} \
+ --daemon=no \
+ --guardian=no \
+ --control-console=yes \
+ --loglevel=9 \
+ --log-dns-details=yes \
+ --query-logging=yes
+ eend $?
+}
diff --git a/net-dns/pdns/files/pdns-r1 b/net-dns/pdns/files/pdns-r1
new file mode 100644
index 000000000000..76c4a3f1bbf5
--- /dev/null
+++ b/net-dns/pdns/files/pdns-r1
@@ -0,0 +1,102 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+PDNS_CONFIGDIR="${PDNS_CONFIGDIR:-/etc/powerdns}"
+PDNS_STOP_TIMEOUT="${PDNS_STOP_TIMEOUT:-10}"
+
+[ "${RC_SVCNAME}" != "pdns" ] && PDNS_INSTANCE="${RC_SVCNAME#pdns[.-]}" || PDNS_INSTANCE=""
+
+PDNS_CONFIG="${PDNS_CONFIGDIR}/pdns${PDNS_INSTANCE:+-${PDNS_INSTANCE}}.conf"
+PDNS_CHROOTDIR="$( awk -F = '$1 == "chroot" { print $2 }' "${PDNS_CONFIG}" )"
+PDNS_SOCKETDIR="$( awk -F = '$1 == "socket-dir" { print $2 }' "${PDNS_CONFIG}" )"
+[ -z "${PDNS_SOCKETDIR}" -a -z "${PDNS_CHROOTDIR}" ] && PDNS_SOCKETDIR="/var/run"
+
+name="PowerDNS Authoritative Server${PDNS_INSTANCE:+ (${PDNS_INSTANCE})}"
+description="Authoritative name server"
+
+extra_started_commands="dump ping"
+extra_stopped_commands="monitor"
+description_dump="Dumps all statistic variables"
+description_ping="Ping the PowerDNS instance"
+description_monitor="Starts in foreground with logging and console enabled"
+
+command="/usr/sbin/pdns_server"
+command_args="--config-dir=${PDNS_CONFIGDIR}${PDNS_INSTANCE:+ --config-name=${PDNS_INSTANCE}}"
+command_args_foreground="--daemon=no"
+command_args_background="--daemon=yes"
+yesno ${rc_verbose} || command_args_background="${command_args_background} >/dev/null 2>&1"
+
+pidfile="${PDNS_CHROOTDIR}/${PDNS_SOCKETDIR}/pdns${PDNS_INSTANCE:+-${PDNS_INSTANCE}}.pid"
+
+control_command="/usr/bin/pdns_control"
+control_command_args="${command_args}"
+
+depend() {
+ need net
+ use mysql postgresql
+}
+
+status() {
+ default_status || return
+ _ping || return 32
+}
+
+stop() {
+ default_stop || return
+ _ping || return 0
+ wait_for_stop
+}
+
+wait_for_stop() {
+ einfon "Waiting for ${name} to stop"
+
+ local timeout="${PDNS_STOP_TIMEOUT}"
+ while [ "${timeout}" -gt 0 ]; do
+ sleep 1
+ if ! _ping; then
+ echo
+ return 0
+ fi
+ : $(( timeout -= 1 ))
+ printf .
+ done
+
+ echo
+ return 1
+}
+
+dump() {
+ einfo "Dumping ${name} variables"
+ ${control_command} ${control_command_args} list
+}
+
+_ping() {
+ ${control_command} ${control_command_args} rping >/dev/null 2>&1
+}
+
+ping() {
+ ebegin "Pinging ${name}"
+ _ping
+ eend $?
+}
+
+monitor() {
+ einfo "Starting ${name} in monitor mode"
+
+ echo
+ echo '************************************************'
+ echo '* Use "QUIT" or Ctrl-C to end monitoring mode! *'
+ echo '************************************************'
+ echo
+
+ ${command} \
+ ${command_args} \
+ ${command_args_foreground} \
+ --guardian=no \
+ --control-console=yes \
+ --loglevel=9 \
+ --log-dns-details=yes \
+ --query-logging=yes
+ return 0
+}
diff --git a/net-dns/pdns/metadata.xml b/net-dns/pdns/metadata.xml
new file mode 100644
index 000000000000..264c58531540
--- /dev/null
+++ b/net-dns/pdns/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+ <email>swegener@gentoo.org</email>
+ <name>Sven Wegener</name>
+ <description>Primary Maintainer</description>
+</maintainer>
+<longdescription>
+The PowerDNS Nameserver is a modern, advanced and high performance authoritative-
+only nameserver. It is written from scratch and conforms to all relevant DNS
+standards documents. Furthermore, PowerDNS interfaces with almost any database.
+</longdescription>
+<use>
+ <flag name="botan">Make it possible to use the <pkg>dev-libs/botan</pkg> library for crypto-related stuff (like DNSSec) which can be significantly faster than PolarSSL.</flag>
+ <flag name="luajit">Enable support for <pkg>dev-lang/luajit</pkg></flag>
+ <flag name="mydns">Making it possible to use a MyDNS MySQL database with PowerDNS (not recommended for new deployments).</flag>
+ <flag name="opendbx">Use a database supported by <pkg>dev-db/opendbx</pkg> as backend.</flag>
+ <flag name="protobuf">Enable support for <pkg>dev-libs/protobuf</pkg>.</flag>
+ <flag name="remote">Use a generic socket or pipe as a backend (via JSON RPC requests).</flag>
+ <flag name="tinydns">Use a TinyDNS CDB database as backend.</flag>
+ <flag name="tools">Build optional tools (dnsscan, dnsscope, etc..).</flag>
+</use>
+</pkgmetadata>
diff --git a/net-dns/pdns/pdns-4.0.2.ebuild b/net-dns/pdns/pdns-4.0.2.ebuild
new file mode 100644
index 000000000000..99bcbba8399b
--- /dev/null
+++ b/net-dns/pdns/pdns-4.0.2.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit eutils multilib user toolchain-funcs versionator
+
+DESCRIPTION="The PowerDNS Daemon"
+HOMEPAGE="https://www.powerdns.com/"
+SRC_URI="https://downloads.powerdns.com/releases/${P/_/-}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+# other possible flags:
+# db2: we lack the dep
+# oracle: dito (need Oracle Client Libraries)
+# xdb: (almost) dead, surely not supported
+
+IUSE="botan debug doc geoip ldap libressl lua luajit mydns mysql opendbx postgres protobuf remote sqlite systemd tools tinydns test"
+
+REQUIRED_USE="mydns? ( mysql ) ?? ( lua luajit )"
+
+RDEPEND="
+ libressl? ( dev-libs/libressl:= )
+ !libressl? ( dev-libs/openssl:= )
+ >=dev-libs/boost-1.35:=
+ botan? ( =dev-libs/botan-1.10*[threads] )
+ lua? ( dev-lang/lua:= )
+ luajit? ( dev-lang/luajit:= )
+ mysql? ( virtual/mysql )
+ postgres? ( dev-db/postgresql:= )
+ ldap? ( >=net-nds/openldap-2.0.27-r4 )
+ sqlite? ( dev-db/sqlite:3 )
+ opendbx? ( dev-db/opendbx )
+ geoip? ( >=dev-cpp/yaml-cpp-0.5.1 dev-libs/geoip )
+ tinydns? ( >=dev-db/tinycdb-0.77 )
+ protobuf? ( dev-libs/protobuf )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )"
+
+S="${WORKDIR}"/${P/_/-}
+
+src_configure() {
+ local dynmodules="pipe bind" # the default backends, always enabled
+
+ #use db2 && dynmodules+=" db2"
+ use ldap && dynmodules+=" ldap"
+ use lua && dynmodules+=" lua"
+ use mydns && dynmodules+=" mydns"
+ use mysql && dynmodules+=" gmysql"
+ use opendbx && dynmodules+=" opendbx"
+ #use oracle && dynmodules+=" goracle oracle"
+ use postgres && dynmodules+=" gpgsql"
+ use remote && dynmodules+=" remote"
+ use sqlite && dynmodules+=" gsqlite3"
+ use tinydns && dynmodules+=" tinydns"
+ use geoip && dynmodules+=" geoip"
+ #use xdb && dynmodules+=" xdb"
+
+ econf \
+ --disable-static \
+ --sysconfdir=/etc/powerdns \
+ --libdir=/usr/$(get_libdir)/powerdns \
+ --with-modules= \
+ --with-dynmodules="${dynmodules}" \
+ --with-pgsql-includes=/usr/include \
+ --with-pgsql-lib=/usr/$(get_libdir) \
+ --with-mysql-lib=/usr/$(get_libdir) \
+ $(use_enable botan botan1.10) \
+ $(use_enable debug verbose-logging) \
+ $(use_enable test unit-tests) \
+ $(use_enable tools) \
+ $(use_enable systemd) \
+ $(use_with lua) \
+ $(use_with luajit) \
+ $(use_with protobuf) \
+ ${myconf}
+}
+
+src_compile() {
+ default
+ use doc && emake -C codedocs codedocs
+}
+
+src_install() {
+ default
+
+ mv "${D}"/etc/powerdns/pdns.conf{-dist,}
+
+ fperms 0700 /etc/powerdns
+ fperms 0600 /etc/powerdns/pdns.conf
+
+ # set defaults: setuid=pdns, setgid=pdns
+ sed -i \
+ -e 's/^# set\([ug]\)id=$/set\1id=pdns/g' \
+ "${D}"/etc/powerdns/pdns.conf
+
+ doinitd "${FILESDIR}"/pdns
+
+ keepdir /var/empty
+
+ use doc && dohtml -r codedocs/html/.
+
+ # Install development headers
+ insinto /usr/include/pdns
+ doins pdns/*.hh
+ insinto /usr/include/pdns/backends/gsql
+ doins pdns/backends/gsql/*.hh
+
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ doins "${FILESDIR}"/dnsdomain2.schema
+ fi
+
+ prune_libtool_files --all
+}
+
+pkg_preinst() {
+ enewgroup pdns
+ enewuser pdns -1 -1 /var/empty pdns
+}
+
+pkg_postinst() {
+ elog "PowerDNS provides multiple instances support. You can create more instances"
+ elog "by symlinking the pdns init script to another name."
+ elog
+ elog "The name must be in the format pdns.<suffix> and PowerDNS will use the"
+ elog "/etc/powerdns/pdns-<suffix>.conf configuration file instead of the default."
+
+ if use ldap ; then
+ ewarn "The official LDAP backend module is only compile-tested by upstream."
+ ewarn "Try net-dns/pdns-ldap-backend if you have problems with it."
+ fi
+
+ local old
+ for old in ${REPLACING_VERSIONS}; do
+ version_compare ${old} 3.2
+ [[ $? -eq 1 ]] || continue
+
+ ewarn "To fix a security bug (bug #458018) had the following"
+ ewarn "files/directories the world-readable bit removed (if set):"
+ ewarn " ${EPREFIX}/etc/powerdns"
+ ewarn " ${EPREFIX}/etc/powerdns/pdns.conf"
+ ewarn "Check if this is correct for your setup"
+ ewarn "This is a one-time change and will not happen on subsequent updates."
+ chmod o-rwx "${EPREFIX}"/etc/powerdns/{,pdns.conf}
+
+ break
+ done
+}
diff --git a/net-dns/pdns/pdns-4.0.3-r3.ebuild b/net-dns/pdns/pdns-4.0.3-r3.ebuild
new file mode 100644
index 000000000000..2ba5df54f29e
--- /dev/null
+++ b/net-dns/pdns/pdns-4.0.3-r3.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit eutils multilib user toolchain-funcs versionator
+
+DESCRIPTION="The PowerDNS Daemon"
+HOMEPAGE="https://www.powerdns.com/"
+SRC_URI="https://downloads.powerdns.com/releases/${P/_/-}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+# other possible flags:
+# db2: we lack the dep
+# oracle: dito (need Oracle Client Libraries)
+# xdb: (almost) dead, surely not supported
+
+IUSE="botan debug doc geoip ldap libressl lua luajit mydns mysql opendbx postgres protobuf remote sqlite systemd tools tinydns test"
+
+REQUIRED_USE="mydns? ( mysql ) ?? ( lua luajit )"
+
+RDEPEND="
+ libressl? ( dev-libs/libressl:= )
+ !libressl? ( dev-libs/openssl:= )
+ >=dev-libs/boost-1.35:=
+ botan? ( =dev-libs/botan-1.10*[threads] )
+ lua? ( dev-lang/lua:= )
+ luajit? ( dev-lang/luajit:= )
+ mysql? ( virtual/mysql )
+ postgres? ( dev-db/postgresql:= )
+ ldap? ( >=net-nds/openldap-2.0.27-r4 )
+ sqlite? ( dev-db/sqlite:3 )
+ opendbx? ( dev-db/opendbx )
+ geoip? ( >=dev-cpp/yaml-cpp-0.5.1 dev-libs/geoip )
+ tinydns? ( >=dev-db/tinycdb-0.77 )
+ protobuf? ( dev-libs/protobuf )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )"
+
+S="${WORKDIR}"/${P/_/-}
+
+src_configure() {
+ local dynmodules="pipe bind" # the default backends, always enabled
+
+ #use db2 && dynmodules+=" db2"
+ use ldap && dynmodules+=" ldap"
+ use lua && dynmodules+=" lua"
+ use mydns && dynmodules+=" mydns"
+ use mysql && dynmodules+=" gmysql"
+ use opendbx && dynmodules+=" opendbx"
+ #use oracle && dynmodules+=" goracle oracle"
+ use postgres && dynmodules+=" gpgsql"
+ use remote && dynmodules+=" remote"
+ use sqlite && dynmodules+=" gsqlite3"
+ use tinydns && dynmodules+=" tinydns"
+ use geoip && dynmodules+=" geoip"
+ #use xdb && dynmodules+=" xdb"
+
+ econf \
+ --disable-static \
+ --sysconfdir=/etc/powerdns \
+ --libdir=/usr/$(get_libdir)/powerdns \
+ --with-modules= \
+ --with-dynmodules="${dynmodules}" \
+ --with-pgsql-includes=/usr/include \
+ --with-pgsql-lib=/usr/$(get_libdir) \
+ --with-mysql-lib=/usr/$(get_libdir) \
+ $(use_enable botan botan1.10) \
+ $(use_enable debug verbose-logging) \
+ $(use_enable test unit-tests) \
+ $(use_enable tools) \
+ $(use_enable systemd) \
+ $(use_with lua) \
+ $(use_with luajit) \
+ $(use_with protobuf) \
+ ${myconf}
+}
+
+src_compile() {
+ default
+ use doc && emake -C codedocs codedocs
+}
+
+src_install() {
+ default
+
+ mv "${D}"/etc/powerdns/pdns.conf{-dist,}
+
+ fperms 0700 /etc/powerdns
+ fperms 0600 /etc/powerdns/pdns.conf
+
+ # set defaults: setuid=pdns, setgid=pdns
+ sed -i \
+ -e 's/^# set\([ug]\)id=$/set\1id=pdns/g' \
+ "${D}"/etc/powerdns/pdns.conf
+
+ newinitd "${FILESDIR}"/pdns-r1 pdns
+
+ keepdir /var/empty
+
+ use doc && dohtml -r codedocs/html/.
+
+ # Install development headers
+ insinto /usr/include/pdns
+ doins pdns/*.hh
+ insinto /usr/include/pdns/backends/gsql
+ doins pdns/backends/gsql/*.hh
+
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ doins "${FILESDIR}"/dnsdomain2.schema
+ fi
+
+ prune_libtool_files --all
+}
+
+pkg_preinst() {
+ enewgroup pdns
+ enewuser pdns -1 -1 /var/empty pdns
+}
+
+pkg_postinst() {
+ elog "PowerDNS provides multiple instances support. You can create more instances"
+ elog "by symlinking the pdns init script to another name."
+ elog
+ elog "The name must be in the format pdns.<suffix> and PowerDNS will use the"
+ elog "/etc/powerdns/pdns-<suffix>.conf configuration file instead of the default."
+
+ if use ldap ; then
+ ewarn "The official LDAP backend module is only compile-tested by upstream."
+ ewarn "Try net-dns/pdns-ldap-backend if you have problems with it."
+ fi
+
+ local old
+ for old in ${REPLACING_VERSIONS}; do
+ version_compare ${old} 3.2
+ [[ $? -eq 1 ]] || continue
+
+ ewarn "To fix a security bug (bug #458018) had the following"
+ ewarn "files/directories the world-readable bit removed (if set):"
+ ewarn " ${EPREFIX}/etc/powerdns"
+ ewarn " ${EPREFIX}/etc/powerdns/pdns.conf"
+ ewarn "Check if this is correct for your setup"
+ ewarn "This is a one-time change and will not happen on subsequent updates."
+ chmod o-rwx "${EPREFIX}"/etc/powerdns/{,pdns.conf}
+
+ break
+ done
+}
diff --git a/net-dns/pdns/pdns-4.0.3.ebuild b/net-dns/pdns/pdns-4.0.3.ebuild
new file mode 100644
index 000000000000..c7455c660e77
--- /dev/null
+++ b/net-dns/pdns/pdns-4.0.3.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit eutils multilib user toolchain-funcs versionator
+
+DESCRIPTION="The PowerDNS Daemon"
+HOMEPAGE="https://www.powerdns.com/"
+SRC_URI="https://downloads.powerdns.com/releases/${P/_/-}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+# other possible flags:
+# db2: we lack the dep
+# oracle: dito (need Oracle Client Libraries)
+# xdb: (almost) dead, surely not supported
+
+IUSE="botan debug doc geoip ldap libressl lua luajit mydns mysql opendbx postgres protobuf remote sqlite systemd tools tinydns test"
+
+REQUIRED_USE="mydns? ( mysql ) ?? ( lua luajit )"
+
+RDEPEND="
+ libressl? ( dev-libs/libressl:= )
+ !libressl? ( dev-libs/openssl:= )
+ >=dev-libs/boost-1.35:=
+ botan? ( =dev-libs/botan-1.10*[threads] )
+ lua? ( dev-lang/lua:= )
+ luajit? ( dev-lang/luajit:= )
+ mysql? ( virtual/mysql )
+ postgres? ( dev-db/postgresql:= )
+ ldap? ( >=net-nds/openldap-2.0.27-r4 )
+ sqlite? ( dev-db/sqlite:3 )
+ opendbx? ( dev-db/opendbx )
+ geoip? ( >=dev-cpp/yaml-cpp-0.5.1 dev-libs/geoip )
+ tinydns? ( >=dev-db/tinycdb-0.77 )
+ protobuf? ( dev-libs/protobuf )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )"
+
+S="${WORKDIR}"/${P/_/-}
+
+src_configure() {
+ local dynmodules="pipe bind" # the default backends, always enabled
+
+ #use db2 && dynmodules+=" db2"
+ use ldap && dynmodules+=" ldap"
+ use lua && dynmodules+=" lua"
+ use mydns && dynmodules+=" mydns"
+ use mysql && dynmodules+=" gmysql"
+ use opendbx && dynmodules+=" opendbx"
+ #use oracle && dynmodules+=" goracle oracle"
+ use postgres && dynmodules+=" gpgsql"
+ use remote && dynmodules+=" remote"
+ use sqlite && dynmodules+=" gsqlite3"
+ use tinydns && dynmodules+=" tinydns"
+ use geoip && dynmodules+=" geoip"
+ #use xdb && dynmodules+=" xdb"
+
+ econf \
+ --disable-static \
+ --sysconfdir=/etc/powerdns \
+ --libdir=/usr/$(get_libdir)/powerdns \
+ --with-modules= \
+ --with-dynmodules="${dynmodules}" \
+ --with-pgsql-includes=/usr/include \
+ --with-pgsql-lib=/usr/$(get_libdir) \
+ --with-mysql-lib=/usr/$(get_libdir) \
+ $(use_enable botan botan1.10) \
+ $(use_enable debug verbose-logging) \
+ $(use_enable test unit-tests) \
+ $(use_enable tools) \
+ $(use_enable systemd) \
+ $(use_with lua) \
+ $(use_with luajit) \
+ $(use_with protobuf) \
+ ${myconf}
+}
+
+src_compile() {
+ default
+ use doc && emake -C codedocs codedocs
+}
+
+src_install() {
+ default
+
+ mv "${D}"/etc/powerdns/pdns.conf{-dist,}
+
+ fperms 0700 /etc/powerdns
+ fperms 0600 /etc/powerdns/pdns.conf
+
+ # set defaults: setuid=pdns, setgid=pdns
+ sed -i \
+ -e 's/^# set\([ug]\)id=$/set\1id=pdns/g' \
+ "${D}"/etc/powerdns/pdns.conf
+
+ doinitd "${FILESDIR}"/pdns
+
+ keepdir /var/empty
+
+ use doc && dohtml -r codedocs/html/.
+
+ # Install development headers
+ insinto /usr/include/pdns
+ doins pdns/*.hh
+ insinto /usr/include/pdns/backends/gsql
+ doins pdns/backends/gsql/*.hh
+
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ doins "${FILESDIR}"/dnsdomain2.schema
+ fi
+
+ prune_libtool_files --all
+}
+
+pkg_preinst() {
+ enewgroup pdns
+ enewuser pdns -1 -1 /var/empty pdns
+}
+
+pkg_postinst() {
+ elog "PowerDNS provides multiple instances support. You can create more instances"
+ elog "by symlinking the pdns init script to another name."
+ elog
+ elog "The name must be in the format pdns.<suffix> and PowerDNS will use the"
+ elog "/etc/powerdns/pdns-<suffix>.conf configuration file instead of the default."
+
+ if use ldap ; then
+ ewarn "The official LDAP backend module is only compile-tested by upstream."
+ ewarn "Try net-dns/pdns-ldap-backend if you have problems with it."
+ fi
+
+ local old
+ for old in ${REPLACING_VERSIONS}; do
+ version_compare ${old} 3.2
+ [[ $? -eq 1 ]] || continue
+
+ ewarn "To fix a security bug (bug #458018) had the following"
+ ewarn "files/directories the world-readable bit removed (if set):"
+ ewarn " ${EPREFIX}/etc/powerdns"
+ ewarn " ${EPREFIX}/etc/powerdns/pdns.conf"
+ ewarn "Check if this is correct for your setup"
+ ewarn "This is a one-time change and will not happen on subsequent updates."
+ chmod o-rwx "${EPREFIX}"/etc/powerdns/{,pdns.conf}
+
+ break
+ done
+}
diff --git a/net-dns/pdns/pdns-4.0.4.ebuild b/net-dns/pdns/pdns-4.0.4.ebuild
new file mode 100644
index 000000000000..43c8063885e7
--- /dev/null
+++ b/net-dns/pdns/pdns-4.0.4.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit eutils multilib user toolchain-funcs versionator
+
+DESCRIPTION="The PowerDNS Daemon"
+HOMEPAGE="https://www.powerdns.com/"
+SRC_URI="https://downloads.powerdns.com/releases/${P/_/-}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+# other possible flags:
+# db2: we lack the dep
+# oracle: dito (need Oracle Client Libraries)
+# xdb: (almost) dead, surely not supported
+
+IUSE="botan debug doc geoip ldap libressl lua luajit mydns mysql opendbx postgres protobuf remote sqlite systemd tools tinydns test"
+
+REQUIRED_USE="mydns? ( mysql ) ?? ( lua luajit )"
+
+RDEPEND="
+ libressl? ( dev-libs/libressl:= )
+ !libressl? ( dev-libs/openssl:= )
+ >=dev-libs/boost-1.35:=
+ botan? ( =dev-libs/botan-1.10*[threads] )
+ lua? ( dev-lang/lua:= )
+ luajit? ( dev-lang/luajit:= )
+ mysql? ( virtual/mysql )
+ postgres? ( dev-db/postgresql:= )
+ ldap? ( >=net-nds/openldap-2.0.27-r4 )
+ sqlite? ( dev-db/sqlite:3 )
+ opendbx? ( dev-db/opendbx )
+ geoip? ( >=dev-cpp/yaml-cpp-0.5.1 dev-libs/geoip )
+ tinydns? ( >=dev-db/tinycdb-0.77 )
+ protobuf? ( dev-libs/protobuf )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )"
+
+S="${WORKDIR}"/${P/_/-}
+
+src_configure() {
+ local dynmodules="pipe bind" # the default backends, always enabled
+
+ #use db2 && dynmodules+=" db2"
+ use ldap && dynmodules+=" ldap"
+ use lua && dynmodules+=" lua"
+ use mydns && dynmodules+=" mydns"
+ use mysql && dynmodules+=" gmysql"
+ use opendbx && dynmodules+=" opendbx"
+ #use oracle && dynmodules+=" goracle oracle"
+ use postgres && dynmodules+=" gpgsql"
+ use remote && dynmodules+=" remote"
+ use sqlite && dynmodules+=" gsqlite3"
+ use tinydns && dynmodules+=" tinydns"
+ use geoip && dynmodules+=" geoip"
+ #use xdb && dynmodules+=" xdb"
+
+ econf \
+ --disable-static \
+ --sysconfdir=/etc/powerdns \
+ --libdir=/usr/$(get_libdir)/powerdns \
+ --with-modules= \
+ --with-dynmodules="${dynmodules}" \
+ --with-pgsql-includes=/usr/include \
+ --with-pgsql-lib=/usr/$(get_libdir) \
+ --with-mysql-lib=/usr/$(get_libdir) \
+ $(use_enable botan botan1.10) \
+ $(use_enable debug verbose-logging) \
+ $(use_enable test unit-tests) \
+ $(use_enable tools) \
+ $(use_enable systemd) \
+ $(use_with lua) \
+ $(use_with luajit) \
+ $(use_with protobuf) \
+ ${myconf}
+}
+
+src_compile() {
+ default
+ use doc && emake -C codedocs codedocs
+}
+
+src_install() {
+ default
+
+ mv "${D}"/etc/powerdns/pdns.conf{-dist,}
+
+ fperms 0700 /etc/powerdns
+ fperms 0600 /etc/powerdns/pdns.conf
+
+ # set defaults: setuid=pdns, setgid=pdns
+ sed -i \
+ -e 's/^# set\([ug]\)id=$/set\1id=pdns/g' \
+ "${D}"/etc/powerdns/pdns.conf
+
+ newinitd "${FILESDIR}"/pdns-r1 pdns
+
+ keepdir /var/empty
+
+ use doc && dohtml -r codedocs/html/.
+
+ # Install development headers
+ insinto /usr/include/pdns
+ doins pdns/*.hh
+ insinto /usr/include/pdns/backends/gsql
+ doins pdns/backends/gsql/*.hh
+
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ doins "${FILESDIR}"/dnsdomain2.schema
+ fi
+
+ prune_libtool_files --all
+}
+
+pkg_preinst() {
+ enewgroup pdns
+ enewuser pdns -1 -1 /var/empty pdns
+}
+
+pkg_postinst() {
+ elog "PowerDNS provides multiple instances support. You can create more instances"
+ elog "by symlinking the pdns init script to another name."
+ elog
+ elog "The name must be in the format pdns.<suffix> and PowerDNS will use the"
+ elog "/etc/powerdns/pdns-<suffix>.conf configuration file instead of the default."
+
+ if use ldap ; then
+ ewarn "The official LDAP backend module is only compile-tested by upstream."
+ ewarn "Try net-dns/pdns-ldap-backend if you have problems with it."
+ fi
+
+ local old
+ for old in ${REPLACING_VERSIONS}; do
+ version_compare ${old} 3.2
+ [[ $? -eq 1 ]] || continue
+
+ ewarn "To fix a security bug (bug #458018) had the following"
+ ewarn "files/directories the world-readable bit removed (if set):"
+ ewarn " ${EPREFIX}/etc/powerdns"
+ ewarn " ${EPREFIX}/etc/powerdns/pdns.conf"
+ ewarn "Check if this is correct for your setup"
+ ewarn "This is a one-time change and will not happen on subsequent updates."
+ chmod o-rwx "${EPREFIX}"/etc/powerdns/{,pdns.conf}
+
+ break
+ done
+}
diff --git a/net-dns/pdns/pdns-4.1.0_rc1.ebuild b/net-dns/pdns/pdns-4.1.0_rc1.ebuild
new file mode 100644
index 000000000000..95b9943f9c63
--- /dev/null
+++ b/net-dns/pdns/pdns-4.1.0_rc1.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit eutils multilib user toolchain-funcs versionator
+
+DESCRIPTION="The PowerDNS Daemon"
+HOMEPAGE="https://www.powerdns.com/"
+SRC_URI="https://downloads.powerdns.com/releases/${P/_/-}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+# other possible flags:
+# db2: we lack the dep
+# oracle: dito (need Oracle Client Libraries)
+# xdb: (almost) dead, surely not supported
+
+IUSE="botan debug doc geoip ldap libressl lua luajit mydns mysql opendbx postgres protobuf remote sqlite systemd tools tinydns test"
+
+REQUIRED_USE="mydns? ( mysql ) ?? ( lua luajit )"
+
+RDEPEND="
+ libressl? ( dev-libs/libressl:= )
+ !libressl? ( dev-libs/openssl:= )
+ >=dev-libs/boost-1.35:=
+ botan? ( =dev-libs/botan-1.10*[threads] )
+ lua? ( dev-lang/lua:= )
+ luajit? ( dev-lang/luajit:= )
+ mysql? ( virtual/mysql )
+ postgres? ( dev-db/postgresql:= )
+ ldap? ( >=net-nds/openldap-2.0.27-r4 )
+ sqlite? ( dev-db/sqlite:3 )
+ opendbx? ( dev-db/opendbx )
+ geoip? ( >=dev-cpp/yaml-cpp-0.5.1 dev-libs/geoip )
+ tinydns? ( >=dev-db/tinycdb-0.77 )
+ protobuf? ( dev-libs/protobuf )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )"
+
+S="${WORKDIR}"/${P/_/-}
+
+src_configure() {
+ local dynmodules="pipe bind" # the default backends, always enabled
+
+ #use db2 && dynmodules+=" db2"
+ use ldap && dynmodules+=" ldap"
+ use lua && dynmodules+=" lua"
+ use mydns && dynmodules+=" mydns"
+ use mysql && dynmodules+=" gmysql"
+ use opendbx && dynmodules+=" opendbx"
+ #use oracle && dynmodules+=" goracle oracle"
+ use postgres && dynmodules+=" gpgsql"
+ use remote && dynmodules+=" remote"
+ use sqlite && dynmodules+=" gsqlite3"
+ use tinydns && dynmodules+=" tinydns"
+ use geoip && dynmodules+=" geoip"
+ #use xdb && dynmodules+=" xdb"
+
+ econf \
+ --disable-static \
+ --sysconfdir=/etc/powerdns \
+ --libdir=/usr/$(get_libdir)/powerdns \
+ --with-modules= \
+ --with-dynmodules="${dynmodules}" \
+ --with-mysql-lib=/usr/$(get_libdir) \
+ $(use_enable botan botan1.10) \
+ $(use_enable debug verbose-logging) \
+ $(use_enable test unit-tests) \
+ $(use_enable tools) \
+ $(use_enable systemd) \
+ $(use_with lua) \
+ $(use_with luajit) \
+ $(use_with protobuf) \
+ ${myconf}
+}
+
+src_compile() {
+ default
+ use doc && emake -C codedocs codedocs
+}
+
+src_install() {
+ default
+
+ mv "${D}"/etc/powerdns/pdns.conf{-dist,}
+
+ fperms 0700 /etc/powerdns
+ fperms 0600 /etc/powerdns/pdns.conf
+
+ # set defaults: setuid=pdns, setgid=pdns
+ sed -i \
+ -e 's/^# set\([ug]\)id=$/set\1id=pdns/g' \
+ "${D}"/etc/powerdns/pdns.conf
+
+ newinitd "${FILESDIR}"/pdns-r1 pdns
+
+ keepdir /var/empty
+
+ use doc && dohtml -r codedocs/html/.
+
+ # Install development headers
+ insinto /usr/include/pdns
+ doins pdns/*.hh
+ insinto /usr/include/pdns/backends/gsql
+ doins pdns/backends/gsql/*.hh
+
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ doins "${FILESDIR}"/dnsdomain2.schema
+ fi
+
+ prune_libtool_files --all
+}
+
+pkg_preinst() {
+ enewgroup pdns
+ enewuser pdns -1 -1 /var/empty pdns
+}
+
+pkg_postinst() {
+ elog "PowerDNS provides multiple instances support. You can create more instances"
+ elog "by symlinking the pdns init script to another name."
+ elog
+ elog "The name must be in the format pdns.<suffix> and PowerDNS will use the"
+ elog "/etc/powerdns/pdns-<suffix>.conf configuration file instead of the default."
+
+ if use ldap ; then
+ ewarn "The official LDAP backend module is only compile-tested by upstream."
+ ewarn "Try net-dns/pdns-ldap-backend if you have problems with it."
+ fi
+
+ local old
+ for old in ${REPLACING_VERSIONS}; do
+ version_compare ${old} 3.2
+ [[ $? -eq 1 ]] || continue
+
+ ewarn "To fix a security bug (bug #458018) had the following"
+ ewarn "files/directories the world-readable bit removed (if set):"
+ ewarn " ${EPREFIX}/etc/powerdns"
+ ewarn " ${EPREFIX}/etc/powerdns/pdns.conf"
+ ewarn "Check if this is correct for your setup"
+ ewarn "This is a one-time change and will not happen on subsequent updates."
+ chmod o-rwx "${EPREFIX}"/etc/powerdns/{,pdns.conf}
+
+ break
+ done
+}