Package: pdns
Severity: wishlist
Tags: experimental
Hi,
the attached patch will create a new debian/patches directory which
contains patches that apply to PowerDNS 3.1 RC2. It may help in
packaging 3.1 (for experimental?).
Greetings
Marc
-- System Information:
Debian Release: 6.0.4
APT prefers stable
APT policy: (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 3.3.2-zgsrv20080 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -urN /home/mhaber/empty/addconfigdir patches/addconfigdir
--- /home/mhaber/empty/addconfigdir 1970-01-01 01:00:00.000000000 +0100
+++ patches/addconfigdir 2012-04-24 10:51:47.193193070 +0200
@@ -0,0 +1,81 @@
+--- a/pdns/arguments.cc
++++ b/pdns/arguments.cc
+@@ -312,9 +312,12 @@
+ if(pos && pos!=string::npos)
+ val=val.substr(pos);
+
+- if(parmIsset(var))
++ if(parmIsset(var)) {
+ params[var]=val;
+- else
++ if (var == "include") { // include directory
++ preParseDir(val, arg, lax);
++ }
++ } else
+ if(!lax)
+ throw ArgException("Trying to set unexisting parameter '"+var+"'");
+ }
+@@ -341,6 +344,35 @@
+ }
+ }
+
++bool ArgvMap::preParseDir(const string &dir, const string &arg, bool lax)
++{
++ DIR *dir_p;
++ string filename, name;
++ struct dirent *dir_entry_p;
++
++ if (dir_p = opendir(dir.c_str())) {
++ while((dir_entry_p = readdir(dir_p)))
++ {
++ name = dir_entry_p->d_name;
++ if (name == "." || name == "..")
++ continue;
++ if (name.find("ucf-dist") != std::string::npos)
++ continue;
++ if (name.find("ucf-old") != std::string::npos)
++ continue;
++
++ filename = dir + "/" + name;
++ file(filename.c_str(), lax);
++ }
++ closedir(dir_p);
++ } else {
++ // Could be a file.
++ file(dir.c_str(), lax);
++ }
++
++ return true;
++}
++
+ bool ArgvMap::preParseFile(const char *fname, const string &arg, const string& theDefault)
+ {
+ params[arg]=theDefault;
+--- a/pdns/arguments.hh
++++ b/pdns/arguments.hh
+@@ -24,6 +24,7 @@
+ #include <vector>
+ #include <fstream>
+ #include <iostream>
++#include <dirent.h>
+ #include "misc.hh"
+ #include "ahuexception.hh"
+ #ifndef WIN32
+@@ -83,6 +84,7 @@
+ }
+ void preParse(int &argc, char **argv, const string &arg); //!< use this to preparse a single var
+ bool preParseFile(const char *fname, const string &arg, const string& theDefault=""); //!< use this to preparse a single var in configuration
++ bool preParseDir(const string &dir, const string &arg, bool lax); //!< use this to include a directory
+
+ bool file(const char *fname, bool lax=false); //!< Parses a file with parameters
+ bool laxFile(const char *fname)
+--- a/pdns/common_startup.cc
++++ b/pdns/common_startup.cc
+@@ -65,6 +65,7 @@
+ ::arg().set("control-console","Debugging switch - don't use")="no"; // but I know you will!
+ ::arg().set("fancy-records","Process URL and MBOXFW records")="no";
+ ::arg().set("wildcard-url","Process URL and MBOXFW records")="no";
++ ::arg().set("include", "Directory with config files to include")="/etc/powerdns/pdns.d"; // Add directory with config files
+ ::arg().set("loglevel","Amount of logging. Higher is more. Do not set below 3")="4";
+ ::arg().set("default-soa-name","name to insert in the SOA record if none set in the backend")="a.misconfigured.powerdns.server";
+ ::arg().set("distributor-threads","Default number of Distributor (backend) threads to start")="3";
diff -urN /home/mhaber/empty/fix-mongodb-backend-patch patches/fix-mongodb-backend-patch
--- /home/mhaber/empty/fix-mongodb-backend-patch 1970-01-01 01:00:00.000000000 +0100
+++ patches/fix-mongodb-backend-patch 2012-04-24 10:52:53.775460815 +0200
@@ -0,0 +1,46 @@
+--- a/modules/mongodbbackend/Makefile.am
++++ b/modules/mongodbbackend/Makefile.am
+@@ -1,10 +1,10 @@
+ AM_CPPFLAGS=@THREADFLAGS@ $(BOOST_CPPFLAGS)
+ EXTRA_DIST=OBJECTFILES OBJECTLIBS
+
+-INCLUDES=-I/opt/mongo/include/mongo/
++INCLUDES=-I/usr/include/mongo/
+
+ lib_LTLIBRARIES = libmongodbbackend.la
+
+ libmongodbbackend_la_SOURCES=mongodbbackend.cc mongodbbackend.hh minimal.cc slave.cc master.cc reload.cc private.cc dnssec.cc supermaster.cc crc32.cc
+-libmongodbbackend_la_LDFLAGS=-module -avoid-version -L/opt/mongo/lib64 $(BOOST_THREAD_LDFLAGS) $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_SYSTEM_LDFLAGS) -lmongoclient $(BOOST_THREAD_LIBS) $(BOOST_FILESYSTEM_LIBS) $(BOOST_SYSTEM_LIBS)
++libmongodbbackend_la_LDFLAGS=-module -avoid-version $(BOOST_THREAD_LDFLAGS) $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_SYSTEM_LDFLAGS) -lmongoclient $(BOOST_THREAD_LIBS) $(BOOST_FILESYSTEM_LIBS) $(BOOST_SYSTEM_LIBS)
+
+--- a/modules/mongodbbackend/Makefile.in
++++ b/modules/mongodbbackend/Makefile.in
+@@ -261,10 +261,10 @@
+ top_srcdir = @top_srcdir@
+ AM_CPPFLAGS = @THREADFLAGS@ $(BOOST_CPPFLAGS)
+ EXTRA_DIST = OBJECTFILES OBJECTLIBS
+-INCLUDES = -I/opt/mongo/include/mongo/
++INCLUDES = -I/usr/include/mongo/
+ lib_LTLIBRARIES = libmongodbbackend.la
+ libmongodbbackend_la_SOURCES = mongodbbackend.cc mongodbbackend.hh minimal.cc slave.cc master.cc reload.cc private.cc dnssec.cc supermaster.cc crc32.cc
+-libmongodbbackend_la_LDFLAGS = -module -avoid-version -L/opt/mongo/lib64 $(BOOST_THREAD_LDFLAGS) $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_SYSTEM_LDFLAGS) -lmongoclient $(BOOST_THREAD_LIBS) $(BOOST_FILESYSTEM_LIBS) $(BOOST_SYSTEM_LIBS)
++libmongodbbackend_la_LDFLAGS = -module -avoid-version $(BOOST_THREAD_LDFLAGS) $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_SYSTEM_LDFLAGS) -lmongoclient $(BOOST_THREAD_LIBS) $(BOOST_FILESYSTEM_LIBS) $(BOOST_SYSTEM_LIBS)
+ all: all-am
+
+ .SUFFIXES:
+--- a/modules/mongodbbackend/OBJECTLIBS
++++ b/modules/mongodbbackend/OBJECTLIBS
+@@ -1 +1 @@
+--L/opt/mongo/lib64/ -lmongoclient -lboost_thread -lboost_filesystem -lboost_system
++-lmongoclient -lboost_thread -lboost_filesystem -lboost_system
+--- a/modules/mongodbbackend/mongodbbackend.hh
++++ b/modules/mongodbbackend/mongodbbackend.hh
+@@ -106,7 +106,7 @@
+
+ mongo::DBClientConnection m_db;
+
+- auto_ptr<mongo::DBClientCursor> cursor;
++ std::auto_ptr<mongo::DBClientCursor> cursor;
+
+ string q_name;
+
diff -urN /home/mhaber/empty/remove-rpath-ldflags-patch patches/remove-rpath-ldflags-patch
--- /home/mhaber/empty/remove-rpath-ldflags-patch 1970-01-01 01:00:00.000000000 +0100
+++ patches/remove-rpath-ldflags-patch 2012-04-24 10:59:27.808883117 +0200
@@ -0,0 +1,47 @@
+--- a/pdns/Makefile.am
++++ b/pdns/Makefile.am
+@@ -51,7 +51,7 @@
+ ednssubnet.cc ednssubnet.hh cachecleaner.hh dnslabel.hh dnslabel.cc
+
+ #
+-pdns_server_LDFLAGS=@moduleobjects@ @modulelibs@ @DYNLINKFLAGS@ @LIBDL@ @THREADFLAGS@ $(BOOST_SERIALIZATION_LDFLAGS) -rdynamic
++pdns_server_LDFLAGS=@moduleobjects@ @modulelibs@ @DYNLINKFLAGS@ @LIBDL@ @THREADFLAGS@S) -rdynamic
+ pdns_server_LDADD= ext/polarssl-1.1.1/library/libpolarssl.a $(BOOST_SERIALIZATION_LIBS) $(LUA_LIBS) $(SQLITE3_LIBS)
+
+
+@@ -86,7 +86,7 @@
+ signingpipe.cc dnslabeltext.cc ednssubnet.cc cachecleaner.hh dnslabel.hh dnslabel.cc
+
+
+-pdnssec_LDFLAGS=@moduleobjects@ @modulelibs@ @DYNLINKFLAGS@ @LIBDL@ @THREADFLAGS@ $(BOOST_PROGRAM_OPTIONS_LDFLAGS) $(BOOST_SERIALIZATION_LDFLAGS)
++pdnssec_LDFLAGS=@moduleobjects@ @modulelibs@ @DYNLINKFLAGS@ @LIBDL@ @THREADFLAGS@
+ pdnssec_LDADD= ext/polarssl-1.1.1/library/libpolarssl.a $(BOOST_PROGRAM_OPTIONS_LIBS) $(BOOST_SERIALIZATION_LIBS) $(SQLITE3_LIBS)
+
+ if BOTAN110
+@@ -163,7 +163,7 @@
+ rcpgenerator.cc rcpgenerator.hh base64.cc base64.hh dnswriter.cc dnslabeltext.cc dnswriter.hh \
+ unix_utility.cc utility.hh sillyrecords.cc nsecrecords.cc base32.cc
+
+-dnsreplay_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
++dnsreplay_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@
+ dnsreplay_LDADD= $(BOOST_PROGRAM_OPTIONS_LIBS)
+
+ nproxy_SOURCES=nproxy.cc dnsparser.cc dnsrecords.cc dnsparser.hh \
+@@ -171,7 +171,7 @@
+ sillyrecords.cc selectmplexer.cc mplexer.hh misc.cc nsecrecords.cc unix_utility.cc qtype.cc \
+ logger.cc statbag.cc base32.cc
+
+-nproxy_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
++nproxy_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@
+ nproxy_LDADD= $(BOOST_PROGRAM_OPTIONS_LIBS)
+
+ notify_SOURCES=notify.cc dnsparser.cc dnsrecords.cc dnsparser.hh \
+@@ -179,7 +179,7 @@
+ sillyrecords.cc selectmplexer.cc nsecrecords.cc base32.cc misc.cc unix_utility.cc \
+ logger.cc qtype.cc statbag.cc
+
+-notify_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
++notify_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@
+ notify_LDADD= $(BOOST_PROGRAM_OPTIONS_LIBS)
+
+ dnsscope_SOURCES=dnsscope.cc misc.cc unix_utility.cc qtype.cc \
diff -urN /home/mhaber/empty/series patches/series
--- /home/mhaber/empty/series 1970-01-01 01:00:00.000000000 +0100
+++ patches/series 2012-04-24 11:02:52.243846956 +0200
@@ -0,0 +1,3 @@
+addconfigdir
+fix-mongodb-backend-patch
+remove-rpath-ldflags-patch