summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-dns/pdns-recursor
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'net-dns/pdns-recursor')
-rw-r--r--net-dns/pdns-recursor/Manifest8
-rw-r--r--net-dns/pdns-recursor/files/pdns-recursor-3.1.7.2-error-message.patch11
-rw-r--r--net-dns/pdns-recursor/files/pdns-recursor-3.5.3-fdlimit.patch67
-rw-r--r--net-dns/pdns-recursor/files/pdns-recursor-3.6.1-CVE-2014-8601.patch52
-rw-r--r--net-dns/pdns-recursor/files/precursor28
-rw-r--r--net-dns/pdns-recursor/files/recursor.conf21
-rw-r--r--net-dns/pdns-recursor/metadata.xml18
-rw-r--r--net-dns/pdns-recursor/pdns-recursor-3.5.3-r1.ebuild61
-rw-r--r--net-dns/pdns-recursor/pdns-recursor-3.6.1-r1.ebuild59
-rw-r--r--net-dns/pdns-recursor/pdns-recursor-3.6.1.ebuild55
-rw-r--r--net-dns/pdns-recursor/pdns-recursor-3.6.2.ebuild55
-rw-r--r--net-dns/pdns-recursor/pdns-recursor-3.6.3.ebuild55
-rw-r--r--net-dns/pdns-recursor/pdns-recursor-3.6.4.ebuild55
-rw-r--r--net-dns/pdns-recursor/pdns-recursor-3.7.1.ebuild61
-rw-r--r--net-dns/pdns-recursor/pdns-recursor-3.7.2.ebuild61
-rw-r--r--net-dns/pdns-recursor/pdns-recursor-3.7.3.ebuild61
16 files changed, 728 insertions, 0 deletions
diff --git a/net-dns/pdns-recursor/Manifest b/net-dns/pdns-recursor/Manifest
new file mode 100644
index 000000000000..91ba46d8b3d6
--- /dev/null
+++ b/net-dns/pdns-recursor/Manifest
@@ -0,0 +1,8 @@
+DIST pdns-recursor-3.5.3.tar.bz2 176298 SHA256 192c0b47a1cfcdccaa88d70fd33766a4c381f4223f966416f15e169df5d58eaa SHA512 2cfc1706cd1a4a06cae89e4f20da8458629fd9a2c4be6c30037f7162cb1dc91e98a22e602d890a9da09c7d495fb0c61855ae937e39a75ef99e08a095f7062312 WHIRLPOOL eeb888b317b04be86c16c47d48064820b31718074a8e1d0d4e7b7744c9ac3e2b600fde53122ef19f3f144186370474a2a50b2c38772be2af2ce6baa6d6d01194
+DIST pdns-recursor-3.6.1.tar.bz2 196460 SHA256 e57bad320d67d08604fc6f6b7e49b5553cfb5baf3460a3e06d53ba2f7d8de396 SHA512 cd878ed28345129bb0aca2c15a238ea5a0b5fe94e9aae1d0ae023a9a66ec4abae3667aa82e3950e46e9cdde8168878aaaeb759bb247de1841b5cff471ffb347a WHIRLPOOL c645e1cb269ad551d8a4c7f2b413e361898f1ac5561fa2ddf9a627edfe961fce8b1b84a09ea4a82a4a4f67a8f1d5fdce226a08ebacb28adf57ebbe8c1a13d3a5
+DIST pdns-recursor-3.6.2.tar.bz2 200313 SHA256 d9abf5bb5982cee1c3ba6eaa684d2777b7c0d3f038e201dd4e7362b4652750a4 SHA512 1476ccdb84c20dcb116b7e1d808b1cf2745acca78cd3b72a6985f19429d40af658a1ae85e8d5bc31c36c9858f76f5536b1f335e7dbfad5988db410a7931aa209 WHIRLPOOL c8fb1a861276f6e18d4288f78d119e7731caaec31b040919c9b6fcc93d53b05c5c7cb75cf2aedb4c3c975f822d6a33bb12d57a1402d88dab51459906c147e319
+DIST pdns-recursor-3.6.3.tar.bz2 200302 SHA256 6fc28c953b24710349e288bb1338d483e55ac299dcc801c62d831a66cc2aea5e SHA512 4e15061f3776063e30f4098d655dcc8e55864976c8256d38218c8554ac7c58d820f2575f56a4c8e9559c446412fbb53c74f1cfb04b6c06bbd0d4228b459f1ce0 WHIRLPOOL a51b50f44e073eb66a08216851b2a4845df16dfc73bbbde1fe1a5cf305f02afe8a0a12b5296cda27ca0b64db12177c774eea2e3731997a3c5745580552ceed55
+DIST pdns-recursor-3.6.4.tar.bz2 200278 SHA256 b1ab90cd91b10a4888d0641b39195d5b3dc85d780a9b20c8fd95c117a1c171aa SHA512 c803b3118f5fa75060538fcc7c5ad94458aaee2c989389a10b74f9b476d25dcd9b457e47fed1d4fb73b201b518c6d0581a5cd995db6a9b67a881a73a8e719833 WHIRLPOOL fca1d9d2eb2ef6b54fff54860aa0585fdb2890bade817498d99d52e95a6ac701f6950a8fb49254c631bd9c8ef47d22735489bb4426f8cdf7c6e4f8c3c2f36257
+DIST pdns-recursor-3.7.1.tar.bz2 245155 SHA256 e6b0d255a0d8cd023ebd63c50f453a305c649d04873859b4119745d64b8bd36d SHA512 34f12c94ae5d6273cf6c79ad0171f49a6bae99c2ef92cd139119961a0c134863e80f145c17953e9131f80ebefba85d4a278ca64e2ac74a8814d9e2f6c5c83cd3 WHIRLPOOL 8324be055570bd7cadc8f2bbb0859c5444ff4fb537cf21579a40a7d0b30569d818d8341b0988aec1142b667b325321af3e9cd2ab821206de01ef9aada60d3ca7
+DIST pdns-recursor-3.7.2.tar.bz2 244582 SHA256 1366bc1bed7c96fbd3926cf7a9e6d365c53b8a99182642debe1b2863dd015a7e SHA512 7dd3c950e1ba5fc7a00b57ec8cfbf52a894272609c17231b88228cfc8d1f5adcdd9797ccb84ee9801da48630652dd4e93135c8a218ee75746238123a64a97274 WHIRLPOOL d80d1de37c20e50ec865be926e4315411cb767af7986e376352277d3c6fa74657e9a51f6a9f91c1736f605219f7efab896f055869fb3b16414fe4c74490d0c5b
+DIST pdns-recursor-3.7.3.tar.bz2 245192 SHA256 859ca6071147dd2e2ac1b2a5c3d5c2cbff0f5cbc501660db4259e7cbf27fea11 SHA512 35b95130e46d04c91adc3c4676a6e5546ac25d21ec576734162764732993d876d34f0e8124b7b6934c8354c0d042ffa5ec30f138b83a9aeaafcefa3808adcf23 WHIRLPOOL 62bc6b2cb5d6b8350da378af1b3fdf621e5719cd07968603c57dabfdbe384f56971e45c0a757c0b654a727729de55d59798683fe92f5338fc23684d22e372c9a
diff --git a/net-dns/pdns-recursor/files/pdns-recursor-3.1.7.2-error-message.patch b/net-dns/pdns-recursor/files/pdns-recursor-3.1.7.2-error-message.patch
new file mode 100644
index 000000000000..7fdf208037cd
--- /dev/null
+++ b/net-dns/pdns-recursor/files/pdns-recursor-3.1.7.2-error-message.patch
@@ -0,0 +1,11 @@
+--- pdns-recursor-3.1.7.2/rec_channel.cc
++++ pdns-recursor-3.1.7.2/rec_channel.cc
+@@ -100,7 +100,7 @@
+ strcpy(remote.sun_path,(path+"/"+fname).c_str());
+ if(::connect(d_fd, (sockaddr*)&remote, sizeof(remote)) < 0) {
+ unlink(d_local.sun_path);
+- throw AhuException("Unable to connect to remote '"+path+fname+"': "+string(strerror(errno)));
++ throw AhuException("Unable to connect to remote '"+path+"/"+fname+"': "+string(strerror(errno)));
+ }
+ }
+
diff --git a/net-dns/pdns-recursor/files/pdns-recursor-3.5.3-fdlimit.patch b/net-dns/pdns-recursor/files/pdns-recursor-3.5.3-fdlimit.patch
new file mode 100644
index 000000000000..3b6e8e25d972
--- /dev/null
+++ b/net-dns/pdns-recursor/files/pdns-recursor-3.5.3-fdlimit.patch
@@ -0,0 +1,67 @@
+--- pdns-recursor-3.5.3/misc.cc
++++ pdns-recursor-3.5.3/misc.cc
+@@ -22,6 +22,7 @@
+ #include <netdb.h>
+ #include <sys/time.h>
+ #include <time.h>
++#include <sys/resource.h>
+ #include <netinet/in.h>
+ #include <unistd.h>
+ #endif // WIN32
+@@ -697,3 +698,22 @@
+ } while(!strchr(buffer, '\n'));
+ return true;
+ }
++
++unsigned int getFilenumLimit(bool hardOrSoft)
++{
++ struct rlimit rlim;
++ if(getrlimit(RLIMIT_NOFILE, &rlim) < 0)
++ unixDie("Requesting number of available file descriptors");
++ return hardOrSoft ? rlim.rlim_max : rlim.rlim_cur;
++}
++
++void setFilenumLimit(unsigned int lim)
++{
++ struct rlimit rlim;
++
++ if(getrlimit(RLIMIT_NOFILE, &rlim) < 0)
++ unixDie("Requesting number of available file descriptors");
++ rlim.rlim_cur=lim;
++ if(setrlimit(RLIMIT_NOFILE, &rlim) < 0)
++ unixDie("Setting number of available file descriptors");
++}
+--- pdns-recursor-3.5.3/misc.hh
++++ pdns-recursor-3.5.3/misc.hh
+@@ -445,4 +445,6 @@
+ regex_t d_preg;
+ };
+
++unsigned int getFilenumLimit(bool hardOrSoft=0);
++void setFilenumLimit(unsigned int lim);
+ #endif
+--- pdns-recursor-3.5.3/pdns_recursor.cc
++++ pdns-recursor-3.5.3/pdns_recursor.cc
+@@ -1740,7 +1740,21 @@
+
+ g_tcpTimeout=::arg().asNum("client-tcp-timeout");
+ g_maxTCPPerClient=::arg().asNum("max-tcp-per-client");
+- g_maxMThreads=::arg().asNum("max-mthreads");
++ g_maxMThreads=::arg().asNum("max-mthreads");
++ unsigned int availFDs=getFilenumLimit();
++ if(g_maxMThreads * g_numThreads > availFDs) {
++ if(getFilenumLimit(true) >= g_maxMThreads * g_numThreads) {
++ setFilenumLimit(g_maxMThreads * g_numThreads);
++ L<<Logger::Warning<<"Raised soft limit on number of filedescriptors to "<<g_maxMThreads * g_numThreads<<" to match max-mthreads and threads settings"<<endl;
++ }
++ else {
++ int newval = getFilenumLimit(true) / g_numThreads;
++ L<<Logger::Warning<<"Insufficient number of filedescriptors available for max-mthreads*threads setting! ("<<availFDs<<" < "<<g_maxMThreads*g_numThreads<<"), reducing max-mthreads to "<<newval<<endl;
++ g_maxMThreads = newval;
++ }
++
++
++ }
+
+ if(g_numThreads == 1) {
+ L<<Logger::Warning<<"Operating unthreaded"<<endl;
diff --git a/net-dns/pdns-recursor/files/pdns-recursor-3.6.1-CVE-2014-8601.patch b/net-dns/pdns-recursor/files/pdns-recursor-3.6.1-CVE-2014-8601.patch
new file mode 100644
index 000000000000..44ccc2803848
--- /dev/null
+++ b/net-dns/pdns-recursor/files/pdns-recursor-3.6.1-CVE-2014-8601.patch
@@ -0,0 +1,52 @@
+https://downloads.powerdns.com/patches/2014-02/3.6.1.patch
+
+diff --git a/pdns_recursor.cc b/pdns_recursor.cc
+index f1ef93c..8e43d6e 100644
+--- a/pdns_recursor.cc
++++ b/pdns_recursor.cc
+@@ -550,7 +550,14 @@ void startDoResolve(void *p)
+
+ // if there is a RecursorLua active, and it 'took' the query in preResolve, we don't launch beginResolve
+ if(!t_pdl->get() || !(*t_pdl)->preresolve(dc->d_remote, g_listenSocketsAddresses[dc->d_socket], dc->d_mdp.d_qname, QType(dc->d_mdp.d_qtype), ret, res, &variableAnswer)) {
+- res = sr.beginResolve(dc->d_mdp.d_qname, QType(dc->d_mdp.d_qtype), dc->d_mdp.d_qclass, ret);
++ try {
++ res = sr.beginResolve(dc->d_mdp.d_qname, QType(dc->d_mdp.d_qtype), dc->d_mdp.d_qclass, ret);
++ }
++ catch(ImmediateServFailException &e) {
++ L<<Logger::Error<<"Sending SERVFAIL during resolve of '"<<dc->d_mdp.d_qname<<"' because: "<<e.reason<<endl;
++
++ res = RCode::ServFail;
++ }
+
+ if(t_pdl->get()) {
+ if(res == RCode::NoError) {
+diff --git a/syncres.cc b/syncres.cc
+index 4dc78b4..d09e44b 100644
+--- a/syncres.cc
++++ b/syncres.cc
+@@ -923,6 +923,7 @@ int SyncRes::doResolveAt(set<string, CIStringCompare> nameservers, string auth,
+ }
+ else {
+ s_outqueries++; d_outqueries++;
++ if(d_outqueries > 50) throw ImmediateServFailException("more than 50 queries sent while resolving "+qname);
+ TryTCP:
+ if(doTCP) {
+ LOG(prefix<<qname<<": using TCP with "<< remoteIP->toStringWithPort() <<endl);
+diff --git a/syncres.hh b/syncres.hh
+index 5182527..b22de89 100644
+--- a/syncres.hh
++++ b/syncres.hh
+@@ -593,6 +593,13 @@ private:
+ static AtomicCounter s_currentConnections; //!< total number of current TCP connections
+ };
+
++class ImmediateServFailException
++{
++public:
++ ImmediateServFailException(string r){reason=r;};
++
++ string reason; //! Print this to tell the user what went wrong
++};
+
+ struct RemoteKeeper
+ {
diff --git a/net-dns/pdns-recursor/files/precursor b/net-dns/pdns-recursor/files/precursor
new file mode 100644
index 000000000000..aea84531e5ee
--- /dev/null
+++ b/net-dns/pdns-recursor/files/precursor
@@ -0,0 +1,28 @@
+#!/sbin/runscript
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+extra_started_commands="ping"
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting PowerDNS Recursor"
+ /usr/sbin/pdns_recursor --daemon=yes &>/dev/null
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping PowerDNS Recursor"
+ /usr/sbin/rec_control quit &>/dev/null
+ eend $?
+}
+
+ping() {
+ ebegin "Pinging PowerDNS Recursor"
+ /usr/sbin/rec_control ping &>/dev/null
+ eend $?
+}
diff --git a/net-dns/pdns-recursor/files/recursor.conf b/net-dns/pdns-recursor/files/recursor.conf
new file mode 100644
index 000000000000..e231b9fc6f10
--- /dev/null
+++ b/net-dns/pdns-recursor/files/recursor.conf
@@ -0,0 +1,21 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Drop uid
+setuid=nobody
+
+# Drop gid
+setgid=nobody
+
+# Don't log queries
+quiet=on
+
+# Local IP address to bind to
+local-address=127.0.0.1
+
+# Local port to bind to
+local-port=53
+
+# Change root for safety
+chroot=/var/lib/powerdns
diff --git a/net-dns/pdns-recursor/metadata.xml b/net-dns/pdns-recursor/metadata.xml
new file mode 100644
index 000000000000..0f057ee9135e
--- /dev/null
+++ b/net-dns/pdns-recursor/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+ <email>swegener@gentoo.org</email>
+ <name>Sven Wegener</name>
+ <description>Primary Maintainer</description>
+</maintainer>
+<longdescription>
+With a small codebase, the PowerDNS Recursor is an advanced recursor currently
+serving the DNS resolving needs of over 2 million Internet connections. Besides
+high performance (using kqueue or epoll, over 15 thousand qps on commodity
+hardware), it provides advanced anti-spoofing measures. In addition, the program
+caches server performance and timeouts, making it both network and user friendly.
+It also has built-in hooks for making graphs with rrdtool, providing insight into
+nameserver performance.
+</longdescription>
+</pkgmetadata>
diff --git a/net-dns/pdns-recursor/pdns-recursor-3.5.3-r1.ebuild b/net-dns/pdns-recursor/pdns-recursor-3.5.3-r1.ebuild
new file mode 100644
index 000000000000..a4080d80710f
--- /dev/null
+++ b/net-dns/pdns-recursor/pdns-recursor-3.5.3-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit toolchain-funcs flag-o-matic eutils
+
+DESCRIPTION="The PowerDNS Recursor"
+HOMEPAGE="http://www.powerdns.com/"
+SRC_URI="http://downloads.powerdns.com/releases/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="lua"
+
+DEPEND="lua? ( >=dev-lang/lua-5.1 )"
+RDEPEND="${DEPEND}
+ !<net-dns/pdns-2.9.20-r1"
+DEPEND="${DEPEND}
+ >=dev-libs/boost-1.33.1"
+
+pkg_setup() {
+ filter-flags -ftree-vectorize
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-3.1.7.2-error-message.patch \
+ "${FILESDIR}"/${P}-fdlimit.patch
+
+ sed -i -e s:/var/run/:/var/lib/powerdns: "${S}"/config.h || die
+}
+
+src_configure() {
+ true
+}
+
+src_compile() {
+ emake \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ OPTFLAGS="" \
+ LUA_LIBS_CONFIG="-llua" \
+ LUA_CPPFLAGS_CONFIG="" \
+ LUA="$(use lua && echo 1)"
+}
+
+src_install() {
+ dosbin pdns_recursor rec_control
+ doman pdns_recursor.1 rec_control.1
+
+ insinto /etc/powerdns
+ doins "${FILESDIR}"/recursor.conf
+
+ doinitd "${FILESDIR}"/precursor
+
+ # Pretty ugly, uh?
+ dodir /var/lib/powerdns/var/lib
+ dosym ../.. /var/lib/powerdns/var/lib/powerdns
+}
diff --git a/net-dns/pdns-recursor/pdns-recursor-3.6.1-r1.ebuild b/net-dns/pdns-recursor/pdns-recursor-3.6.1-r1.ebuild
new file mode 100644
index 000000000000..c90dfa2b2c19
--- /dev/null
+++ b/net-dns/pdns-recursor/pdns-recursor-3.6.1-r1.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit toolchain-funcs flag-o-matic eutils
+
+DESCRIPTION="The PowerDNS Recursor"
+HOMEPAGE="http://www.powerdns.com/"
+SRC_URI="http://downloads.powerdns.com/releases/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="lua"
+
+DEPEND="lua? ( >=dev-lang/lua-5.1 )"
+RDEPEND="${DEPEND}
+ !<net-dns/pdns-2.9.20-r1"
+DEPEND="${DEPEND}
+ >=dev-libs/boost-1.33.1"
+
+pkg_setup() {
+ filter-flags -ftree-vectorize
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-CVE-2014-8601.patch
+}
+
+src_configure() {
+ true
+}
+
+src_compile() {
+ emake \
+ LOCALSTATEDIR=/var/lib/powerdns \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ OPTFLAGS="" \
+ LUA_LIBS_CONFIG="-llua" \
+ LUA_CPPFLAGS_CONFIG="" \
+ LUA="$(use lua && echo 1)"
+}
+
+src_install() {
+ dosbin pdns_recursor rec_control
+ doman pdns_recursor.1 rec_control.1
+
+ insinto /etc/powerdns
+ doins "${FILESDIR}"/recursor.conf
+
+ doinitd "${FILESDIR}"/precursor
+
+ # Pretty ugly, uh?
+ dodir /var/lib/powerdns/var/lib
+ dosym ../.. /var/lib/powerdns/var/lib/powerdns
+}
diff --git a/net-dns/pdns-recursor/pdns-recursor-3.6.1.ebuild b/net-dns/pdns-recursor/pdns-recursor-3.6.1.ebuild
new file mode 100644
index 000000000000..cb321f43f0f4
--- /dev/null
+++ b/net-dns/pdns-recursor/pdns-recursor-3.6.1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit toolchain-funcs flag-o-matic eutils
+
+DESCRIPTION="The PowerDNS Recursor"
+HOMEPAGE="http://www.powerdns.com/"
+SRC_URI="http://downloads.powerdns.com/releases/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="lua"
+
+DEPEND="lua? ( >=dev-lang/lua-5.1 )"
+RDEPEND="${DEPEND}
+ !<net-dns/pdns-2.9.20-r1"
+DEPEND="${DEPEND}
+ >=dev-libs/boost-1.33.1"
+
+pkg_setup() {
+ filter-flags -ftree-vectorize
+}
+
+src_configure() {
+ true
+}
+
+src_compile() {
+ emake \
+ LOCALSTATEDIR=/var/lib/powerdns \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ OPTFLAGS="" \
+ LUA_LIBS_CONFIG="-llua" \
+ LUA_CPPFLAGS_CONFIG="" \
+ LUA="$(use lua && echo 1)"
+}
+
+src_install() {
+ dosbin pdns_recursor rec_control
+ doman pdns_recursor.1 rec_control.1
+
+ insinto /etc/powerdns
+ doins "${FILESDIR}"/recursor.conf
+
+ doinitd "${FILESDIR}"/precursor
+
+ # Pretty ugly, uh?
+ dodir /var/lib/powerdns/var/lib
+ dosym ../.. /var/lib/powerdns/var/lib/powerdns
+}
diff --git a/net-dns/pdns-recursor/pdns-recursor-3.6.2.ebuild b/net-dns/pdns-recursor/pdns-recursor-3.6.2.ebuild
new file mode 100644
index 000000000000..cb321f43f0f4
--- /dev/null
+++ b/net-dns/pdns-recursor/pdns-recursor-3.6.2.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit toolchain-funcs flag-o-matic eutils
+
+DESCRIPTION="The PowerDNS Recursor"
+HOMEPAGE="http://www.powerdns.com/"
+SRC_URI="http://downloads.powerdns.com/releases/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="lua"
+
+DEPEND="lua? ( >=dev-lang/lua-5.1 )"
+RDEPEND="${DEPEND}
+ !<net-dns/pdns-2.9.20-r1"
+DEPEND="${DEPEND}
+ >=dev-libs/boost-1.33.1"
+
+pkg_setup() {
+ filter-flags -ftree-vectorize
+}
+
+src_configure() {
+ true
+}
+
+src_compile() {
+ emake \
+ LOCALSTATEDIR=/var/lib/powerdns \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ OPTFLAGS="" \
+ LUA_LIBS_CONFIG="-llua" \
+ LUA_CPPFLAGS_CONFIG="" \
+ LUA="$(use lua && echo 1)"
+}
+
+src_install() {
+ dosbin pdns_recursor rec_control
+ doman pdns_recursor.1 rec_control.1
+
+ insinto /etc/powerdns
+ doins "${FILESDIR}"/recursor.conf
+
+ doinitd "${FILESDIR}"/precursor
+
+ # Pretty ugly, uh?
+ dodir /var/lib/powerdns/var/lib
+ dosym ../.. /var/lib/powerdns/var/lib/powerdns
+}
diff --git a/net-dns/pdns-recursor/pdns-recursor-3.6.3.ebuild b/net-dns/pdns-recursor/pdns-recursor-3.6.3.ebuild
new file mode 100644
index 000000000000..bb2f19e8323e
--- /dev/null
+++ b/net-dns/pdns-recursor/pdns-recursor-3.6.3.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit toolchain-funcs flag-o-matic eutils
+
+DESCRIPTION="The PowerDNS Recursor"
+HOMEPAGE="http://www.powerdns.com/"
+SRC_URI="http://downloads.powerdns.com/releases/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="lua"
+
+DEPEND="lua? ( >=dev-lang/lua-5.1 )"
+RDEPEND="${DEPEND}
+ !<net-dns/pdns-2.9.20-r1"
+DEPEND="${DEPEND}
+ >=dev-libs/boost-1.33.1"
+
+pkg_setup() {
+ filter-flags -ftree-vectorize
+}
+
+src_configure() {
+ true
+}
+
+src_compile() {
+ emake \
+ LOCALSTATEDIR=/var/lib/powerdns \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ OPTFLAGS="" \
+ LUA_LIBS_CONFIG="-llua" \
+ LUA_CPPFLAGS_CONFIG="" \
+ LUA="$(use lua && echo 1)"
+}
+
+src_install() {
+ dosbin pdns_recursor rec_control
+ doman pdns_recursor.1 rec_control.1
+
+ insinto /etc/powerdns
+ doins "${FILESDIR}"/recursor.conf
+
+ doinitd "${FILESDIR}"/precursor
+
+ # Pretty ugly, uh?
+ dodir /var/lib/powerdns/var/lib
+ dosym ../.. /var/lib/powerdns/var/lib/powerdns
+}
diff --git a/net-dns/pdns-recursor/pdns-recursor-3.6.4.ebuild b/net-dns/pdns-recursor/pdns-recursor-3.6.4.ebuild
new file mode 100644
index 000000000000..bb2f19e8323e
--- /dev/null
+++ b/net-dns/pdns-recursor/pdns-recursor-3.6.4.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit toolchain-funcs flag-o-matic eutils
+
+DESCRIPTION="The PowerDNS Recursor"
+HOMEPAGE="http://www.powerdns.com/"
+SRC_URI="http://downloads.powerdns.com/releases/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="lua"
+
+DEPEND="lua? ( >=dev-lang/lua-5.1 )"
+RDEPEND="${DEPEND}
+ !<net-dns/pdns-2.9.20-r1"
+DEPEND="${DEPEND}
+ >=dev-libs/boost-1.33.1"
+
+pkg_setup() {
+ filter-flags -ftree-vectorize
+}
+
+src_configure() {
+ true
+}
+
+src_compile() {
+ emake \
+ LOCALSTATEDIR=/var/lib/powerdns \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ OPTFLAGS="" \
+ LUA_LIBS_CONFIG="-llua" \
+ LUA_CPPFLAGS_CONFIG="" \
+ LUA="$(use lua && echo 1)"
+}
+
+src_install() {
+ dosbin pdns_recursor rec_control
+ doman pdns_recursor.1 rec_control.1
+
+ insinto /etc/powerdns
+ doins "${FILESDIR}"/recursor.conf
+
+ doinitd "${FILESDIR}"/precursor
+
+ # Pretty ugly, uh?
+ dodir /var/lib/powerdns/var/lib
+ dosym ../.. /var/lib/powerdns/var/lib/powerdns
+}
diff --git a/net-dns/pdns-recursor/pdns-recursor-3.7.1.ebuild b/net-dns/pdns-recursor/pdns-recursor-3.7.1.ebuild
new file mode 100644
index 000000000000..5b5d2c80a043
--- /dev/null
+++ b/net-dns/pdns-recursor/pdns-recursor-3.7.1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit toolchain-funcs flag-o-matic eutils
+
+DESCRIPTION="The PowerDNS Recursor"
+HOMEPAGE="http://www.powerdns.com/"
+SRC_URI="http://downloads.powerdns.com/releases/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="lua"
+
+DEPEND="lua? ( >=dev-lang/lua-5.1 )"
+RDEPEND="${DEPEND}
+ !<net-dns/pdns-2.9.20-r1"
+DEPEND="${DEPEND}
+ >=dev-libs/boost-1.33.1"
+
+pkg_setup() {
+ filter-flags -ftree-vectorize
+}
+
+src_configure() {
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ OPTFLAGS="" \
+ LUA_LIBS_CONFIG="-llua" \
+ LUA_CPPFLAGS_CONFIG="" \
+ LUA="$(use lua && echo 1)" \
+ ./configure
+}
+
+src_compile() {
+ emake \
+ LOCALSTATEDIR=/var/lib/powerdns \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ OPTFLAGS="" \
+ LUA_LIBS_CONFIG="-llua" \
+ LUA_CPPFLAGS_CONFIG="" \
+ LUA="$(use lua && echo 1)"
+}
+
+src_install() {
+ dosbin pdns_recursor rec_control
+ doman pdns_recursor.1 rec_control.1
+
+ insinto /etc/powerdns
+ doins "${FILESDIR}"/recursor.conf
+
+ doinitd "${FILESDIR}"/precursor
+
+ # Pretty ugly, uh?
+ dodir /var/lib/powerdns/var/lib
+ dosym ../.. /var/lib/powerdns/var/lib/powerdns
+}
diff --git a/net-dns/pdns-recursor/pdns-recursor-3.7.2.ebuild b/net-dns/pdns-recursor/pdns-recursor-3.7.2.ebuild
new file mode 100644
index 000000000000..5b5d2c80a043
--- /dev/null
+++ b/net-dns/pdns-recursor/pdns-recursor-3.7.2.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit toolchain-funcs flag-o-matic eutils
+
+DESCRIPTION="The PowerDNS Recursor"
+HOMEPAGE="http://www.powerdns.com/"
+SRC_URI="http://downloads.powerdns.com/releases/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="lua"
+
+DEPEND="lua? ( >=dev-lang/lua-5.1 )"
+RDEPEND="${DEPEND}
+ !<net-dns/pdns-2.9.20-r1"
+DEPEND="${DEPEND}
+ >=dev-libs/boost-1.33.1"
+
+pkg_setup() {
+ filter-flags -ftree-vectorize
+}
+
+src_configure() {
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ OPTFLAGS="" \
+ LUA_LIBS_CONFIG="-llua" \
+ LUA_CPPFLAGS_CONFIG="" \
+ LUA="$(use lua && echo 1)" \
+ ./configure
+}
+
+src_compile() {
+ emake \
+ LOCALSTATEDIR=/var/lib/powerdns \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ OPTFLAGS="" \
+ LUA_LIBS_CONFIG="-llua" \
+ LUA_CPPFLAGS_CONFIG="" \
+ LUA="$(use lua && echo 1)"
+}
+
+src_install() {
+ dosbin pdns_recursor rec_control
+ doman pdns_recursor.1 rec_control.1
+
+ insinto /etc/powerdns
+ doins "${FILESDIR}"/recursor.conf
+
+ doinitd "${FILESDIR}"/precursor
+
+ # Pretty ugly, uh?
+ dodir /var/lib/powerdns/var/lib
+ dosym ../.. /var/lib/powerdns/var/lib/powerdns
+}
diff --git a/net-dns/pdns-recursor/pdns-recursor-3.7.3.ebuild b/net-dns/pdns-recursor/pdns-recursor-3.7.3.ebuild
new file mode 100644
index 000000000000..5b5d2c80a043
--- /dev/null
+++ b/net-dns/pdns-recursor/pdns-recursor-3.7.3.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit toolchain-funcs flag-o-matic eutils
+
+DESCRIPTION="The PowerDNS Recursor"
+HOMEPAGE="http://www.powerdns.com/"
+SRC_URI="http://downloads.powerdns.com/releases/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="lua"
+
+DEPEND="lua? ( >=dev-lang/lua-5.1 )"
+RDEPEND="${DEPEND}
+ !<net-dns/pdns-2.9.20-r1"
+DEPEND="${DEPEND}
+ >=dev-libs/boost-1.33.1"
+
+pkg_setup() {
+ filter-flags -ftree-vectorize
+}
+
+src_configure() {
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ OPTFLAGS="" \
+ LUA_LIBS_CONFIG="-llua" \
+ LUA_CPPFLAGS_CONFIG="" \
+ LUA="$(use lua && echo 1)" \
+ ./configure
+}
+
+src_compile() {
+ emake \
+ LOCALSTATEDIR=/var/lib/powerdns \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ OPTFLAGS="" \
+ LUA_LIBS_CONFIG="-llua" \
+ LUA_CPPFLAGS_CONFIG="" \
+ LUA="$(use lua && echo 1)"
+}
+
+src_install() {
+ dosbin pdns_recursor rec_control
+ doman pdns_recursor.1 rec_control.1
+
+ insinto /etc/powerdns
+ doins "${FILESDIR}"/recursor.conf
+
+ doinitd "${FILESDIR}"/precursor
+
+ # Pretty ugly, uh?
+ dodir /var/lib/powerdns/var/lib
+ dosym ../.. /var/lib/powerdns/var/lib/powerdns
+}