]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Merge pull request #2593 from cmouse/remotebackend-patch-createslavedomain
authorPeter van Dijk <peter.van.dijk@netherlabs.nl>
Mon, 15 Jun 2015 11:33:39 +0000 (13:33 +0200)
committerPeter van Dijk <peter.van.dijk@netherlabs.nl>
Mon, 15 Jun 2015 11:33:39 +0000 (13:33 +0200)
Remotebackend patch createSlaveDomain

192 files changed:
.gitignore
.travis.yml
Makefile.am
build-aux/gen-version [new file with mode: 0755]
build-scripts/README [deleted file]
build-scripts/README.md [new file with mode: 0644]
build-scripts/build-auth-debian [new file with mode: 0755]
build-scripts/build-auth-rpm [new file with mode: 0755]
build-scripts/build-auth-semistatic [moved from pdns.spec with 54% similarity, mode: 0755]
build-scripts/build-dnsdist-rpm
build-scripts/build-recursor-debian [new file with mode: 0755]
build-scripts/build-recursor-rpm [new file with mode: 0755]
build-scripts/build-recursor-semistatic [new file with mode: 0755]
build-scripts/debian-authoritative-semistatic/.gitignore [moved from debian/.gitignore with 100% similarity]
build-scripts/debian-authoritative-semistatic/control [moved from debian/control with 88% similarity]
build-scripts/debian-authoritative-semistatic/copyright [moved from debian/copyright with 100% similarity]
build-scripts/debian-authoritative-semistatic/doc-base [moved from debian/doc-base with 100% similarity]
build-scripts/debian-authoritative-semistatic/pdns.conffiles [moved from debian/pdns.conffiles with 100% similarity]
build-scripts/debian-authoritative-semistatic/pdns.postinst [moved from debian/pdns.postinst with 100% similarity]
build-scripts/debian-authoritative-semistatic/pdns.postrm [moved from debian/pdns.postrm with 100% similarity]
build-scripts/debian-authoritative-semistatic/pdns.prerm [moved from debian/pdns.prerm with 100% similarity]
build-scripts/debian-authoritative-semistatic/rules [moved from debian/rules with 96% similarity]
build-scripts/debian-authoritative-semistatic/shlibs.local [moved from debian/shlibs.local with 100% similarity]
build-scripts/debian-authoritative/README.source [new file with mode: 0644]
build-scripts/debian-authoritative/compat [new file with mode: 0644]
build-scripts/debian-authoritative/config/dnsdomain2.schema [new file with mode: 0644]
build-scripts/debian-authoritative/config/pdns [new file with mode: 0644]
build-scripts/debian-authoritative/config/pdns.conf [new file with mode: 0644]
build-scripts/debian-authoritative/config/pdns.local.bind.conf [new file with mode: 0644]
build-scripts/debian-authoritative/config/pdns.local.conf [new file with mode: 0644]
build-scripts/debian-authoritative/config/pdns.local.geo.conf [new file with mode: 0644]
build-scripts/debian-authoritative/config/pdns.local.geoip.conf [new file with mode: 0644]
build-scripts/debian-authoritative/config/pdns.local.gmysql.conf [new file with mode: 0644]
build-scripts/debian-authoritative/config/pdns.local.gpgsql.conf [new file with mode: 0644]
build-scripts/debian-authoritative/config/pdns.local.gsqlite3.conf [new file with mode: 0644]
build-scripts/debian-authoritative/config/pdns.local.ldap.conf [new file with mode: 0644]
build-scripts/debian-authoritative/config/pdns.local.lua.conf [new file with mode: 0644]
build-scripts/debian-authoritative/config/pdns.local.pipe.conf [new file with mode: 0644]
build-scripts/debian-authoritative/config/pdns.simplebind.conf [new file with mode: 0644]
build-scripts/debian-authoritative/control [new file with mode: 0644]
build-scripts/debian-authoritative/copyright [new file with mode: 0644]
build-scripts/debian-authoritative/insserv.d/pdns-server [new file with mode: 0644]
build-scripts/debian-authoritative/patches/series [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-geo.docs [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-geo.examples [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-geo.install [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-geo.postinst [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-geo.prerm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-geoip.examples [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-geoip.install [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-geoip.postinst [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-geoip.prerm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-ldap.examples [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-ldap.install [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-ldap.manpages [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-ldap.postinst [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-ldap.prerm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-lmdb.install [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-lmdb.postinst [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-lmdb.prerm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-lua.docs [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-lua.examples [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-lua.install [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-lua.postinst [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-lua.prerm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-mydns.docs [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-mydns.install [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-mydns.postinst [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-mydns.prerm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-mysql.docs [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-mysql.install [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-mysql.postinst [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-mysql.postrm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-mysql.prerm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-pgsql.docs [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-pgsql.install [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-pgsql.postinst [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-pgsql.postrm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-pgsql.prerm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-pipe.examples [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-pipe.install [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-pipe.postinst [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-pipe.prerm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-remote.install [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-remote.postinst [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-remote.prerm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-sqlite3.dirs [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-sqlite3.docs [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-sqlite3.install [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-sqlite3.postinst [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-sqlite3.postrm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-backend-sqlite3.prerm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-server.README.Debian [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-server.config [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-server.dirs [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-server.examples [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-server.install [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-server.manpages [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-server.pdns.init [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-server.pdns.service [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-server.postinst [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-server.postrm [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-server.templates [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-tools.install [new file with mode: 0644]
build-scripts/debian-authoritative/pdns-tools.manpages [new file with mode: 0644]
build-scripts/debian-authoritative/po/POTFILES.in [new file with mode: 0644]
build-scripts/debian-authoritative/po/cs.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/da.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/de.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/es.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/eu.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/fi.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/fr.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/gl.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/it.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/ja.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/nl.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/pt.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/pt_BR.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/ru.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/sv.po [new file with mode: 0644]
build-scripts/debian-authoritative/po/templates.pot [new file with mode: 0644]
build-scripts/debian-authoritative/po/vi.po [new file with mode: 0644]
build-scripts/debian-authoritative/resolvconf/pdns [new file with mode: 0644]
build-scripts/debian-authoritative/rules [new file with mode: 0755]
build-scripts/debian-authoritative/source/format [new file with mode: 0644]
build-scripts/debian-authoritative/tests/control [new file with mode: 0644]
build-scripts/debian-authoritative/tests/smoke [new file with mode: 0755]
build-scripts/debian-authoritative/triggers [new file with mode: 0644]
build-scripts/debian-authoritative/watch [new file with mode: 0644]
build-scripts/debian-dnsdist/control
build-scripts/debian-recursor/README.source [new file with mode: 0644]
build-scripts/debian-recursor/changelog [new file with mode: 0644]
build-scripts/debian-recursor/compat [new file with mode: 0644]
build-scripts/debian-recursor/config/recursor.conf [new file with mode: 0644]
build-scripts/debian-recursor/control [new file with mode: 0644]
build-scripts/debian-recursor/copyright [new file with mode: 0644]
build-scripts/debian-recursor/patches/series [new file with mode: 0644]
build-scripts/debian-recursor/pdns-recursor.default [new file with mode: 0644]
build-scripts/debian-recursor/pdns-recursor.dirs [new file with mode: 0644]
build-scripts/debian-recursor/pdns-recursor.init [new file with mode: 0644]
build-scripts/debian-recursor/pdns-recursor.install [new file with mode: 0644]
build-scripts/debian-recursor/pdns-recursor.logcheck.ignore.server [new file with mode: 0644]
build-scripts/debian-recursor/pdns-recursor.manpages [new file with mode: 0644]
build-scripts/debian-recursor/pdns-recursor.postinst [new file with mode: 0644]
build-scripts/debian-recursor/pdns-recursor.prerm [new file with mode: 0644]
build-scripts/debian-recursor/pdns-recursor.service [new file with mode: 0644]
build-scripts/debian-recursor/rules [new file with mode: 0755]
build-scripts/debian-recursor/source/format [new file with mode: 0644]
build-scripts/debian-recursor/tests/control [new file with mode: 0644]
build-scripts/debian-recursor/tests/smoke [new file with mode: 0755]
build-scripts/debian-recursor/watch [new file with mode: 0644]
build-scripts/dist-recursor [moved from pdns/dist-recursor with 90% similarity]
build-scripts/test-master [new file with mode: 0644]
build-scripts/test-recursor [new file with mode: 0755]
configure.ac
debian/changelog [deleted file]
docs/Makefile.am
docs/markdown/authoritative/migration.md
docs/markdown/authoritative/settings.md
docs/markdown/recursor/settings.md
m4/pdns_enable_reproducible.m4 [new file with mode: 0644]
modules/bindbackend/bindbackend2.cc
modules/geobackend/geobackend.hh
modules/geoipbackend/geoipbackend.cc
modules/gmysqlbackend/gmysqlbackend.cc
modules/goraclebackend/goraclebackend.cc
modules/gpgsqlbackend/gpgsqlbackend.cc
modules/gsqlite3backend/gsqlite3backend.cc
modules/ldapbackend/ldapbackend.cc
modules/lmdbbackend/lmdbbackend.cc
modules/luabackend/luabackend.cc
modules/mydnsbackend/mydnsbackend.cc
modules/opendbxbackend/odbxbackend.hh
modules/oraclebackend/oraclebackend.cc
modules/pipebackend/pipebackend.cc
modules/randombackend/randombackend.cc
modules/remotebackend/remotebackend.cc
modules/tinydnsbackend/tinydnsbackend.cc
pdns/Makefile-recursor
pdns/Makefile.am
pdns/build-recursor [deleted file]
pdns/configure-recursor
pdns/dnsbackend.hh
pdns/dnsdemog.cc
pdns/dnsscan.cc
pdns/dnswasher.cc
pdns/pdnssec.cc
pdns/secpoll-auth.cc
pdns/secpoll-recursor.cc
pdns/sysdeps-recursor/Linux.inc
pdns/version.cc

index 9fe812cee905ffd990ac4b72302985fdad70cf43..4c79ab6406fed38a5b731cfd8aff17ca64f83b63 100644 (file)
@@ -2,7 +2,8 @@
 /Makefile.in
 /aclocal.m4
 /autom4te.cache
-/build-aux/
+/build-aux/*
+!/build-aux/gen-version
 /config.cache
 /config.guess
 /config.h
@@ -25,6 +26,7 @@
 .deps
 .libs
 .dirstamp
+.version
 codedocs/Makefile
 codedocs/Makefile.in
 /config.log
index 52758a45c35b15b9b0a7b19bfb6103e3355d4c27..1f9f29c0f9a6d47b169e5d906acc86d641150f47 100644 (file)
@@ -106,8 +106,9 @@ script:
  - cd pdns
  - make -k -j 4 pdns_recursor
  - rm -f pdns_recursor
- - ./dist-recursor
- - cd pdns-recursor-*/
+ - cd ..
+ - ./build-scripts/dist-recursor
+ - cd pdns/pdns-recursor-*/
  - ./configure
  - make -k -j 4
  - cd ..
index 1a1b7aae1e10446aae3053009a514819d1173934..b7edccb7bce4593ea6bdc8c7b413c9ac1b7843f8 100644 (file)
@@ -8,14 +8,14 @@ EXTRA_DIST = \
        INSTALL \
        NOTICE \
        README \
+       .version \
+       build-aux/gen-version \
        build-scripts/redhat/pdns-server-test.spec \
        build-scripts/semistaticg++ \
        codedocs/doxygen.conf \
        contrib/powerdns.solaris.init.d \
        contrib/systemd-pdns-recursor.service \
        contrib/systemd-pdns.service \
-       debian \
-       pdns.spec \
        pdns/named.conf.parsertest \
        regression-tests/zones/unit.test
 
diff --git a/build-aux/gen-version b/build-aux/gen-version
new file mode 100755 (executable)
index 0000000..d761c56
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+VERSION="unknown"
+
+if [ ! -z "$(git rev-parse --abbrev-ref HEAD 2> /dev/null)" ]; then
+  if $(git rev-parse --abbrev-ref HEAD | grep -q 'rel/'); then
+    REL_TYPE="$(git rev-parse --abbrev-ref HEAD | cut -d/ -f 2 | cut -d- -f 1)"
+    VERSION="$(git describe --match=${REL_TYPE}-* --dirty=.dirty | cut -d- -f 2-)"
+  else
+    GIT_VERSION=$(git show --no-patch --format=format:%h HEAD)
+    BRANCH=".$(git rev-parse --abbrev-ref HEAD | perl -p -e 's/-//g;')"
+    [ "${BRANCH}" = ".master" ] && BRANCH=''
+    git status | grep -q clean || DIRTY='.dirty'
+    VERSION="0.0${BRANCH}.${PDNS_BUILD_NUMBER}g${GIT_VERSION}${DIRTY}"
+  fi
+  echo "$VERSION" > .version
+elif [ -f .version ]; then
+  VERSION="$(cat .version)"
+fi
+
+echo $VERSION
diff --git a/build-scripts/README b/build-scripts/README
deleted file mode 100644 (file)
index ecdec3c..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-These scripts are more or less private - feel free to edit them, but even
-more than the rest of PowerDNS, the contents of this directory are not
-guaranteed to work for you.
-
-The scripts contain preset paths and have many many dependencies on
-installed software.
diff --git a/build-scripts/README.md b/build-scripts/README.md
new file mode 100644 (file)
index 0000000..2a987d0
--- /dev/null
@@ -0,0 +1,32 @@
+Build Script for PowerDNS
+-------------------------
+The scripts in this directory are used by the folks at PowerDNS to build
+packages. This README will give a small walkthrough of important files.
+
+All `build-*` must be run from the root folder of the pdns repository to ensure
+their correct functionality.
+
+## `build-auth-*`
+These scripts build (based on the suffix) a package of the authoritative
+server. Either RPM's (for several different RHEL-based distro's), .deb's
+(for Debian Jessie only at the moment) or statically compiled RPM's and deb's.
+
+## `build-recursor-*`
+Based on suffix, hese scripts build a deb/RPM package for the Recursor. There is
+also a semi-static build script.
+
+## `build-dnsdist-*`
+Idem, these scripts allow one to build packages from a dnsdist distribution
+directory.
+
+## `debian-*`
+These directories contain the `debian/` directory used by the debhelper programs
+to create the packages. These are copied by the `build-*` scripts when needed.
+
+# Caveat
+These scripts are more or less private - feel free to edit them, but even
+more than the rest of PowerDNS, the contents of this directory are not
+guaranteed to work for you.
+
+Some scripts contain preset paths and have many many dependencies on
+installed software.
diff --git a/build-scripts/build-auth-debian b/build-scripts/build-auth-debian
new file mode 100755 (executable)
index 0000000..6f9b728
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+export DEBFULLNAME="PowerDNS.COM BV AutoBuilder"
+export DEBEMAIL="noreply@powerdns.com"
+
+if [ "$0" != "./build-scripts/build-auth-debian" ]; then
+  echo "Please run me from the root checkout dir"
+  exit 1
+fi
+
+if [ -z "$VERSION" ]; then
+  echo 'Please set $VERSION' >&2
+  exit 1
+fi
+
+if [ -z "$RELEASE" ];then
+  echo 'Please set $RELEASE' >&2
+  exit 1
+fi
+
+DISTDIR=${DISTDIR:=.}
+
+set -e
+set -x
+
+rm -rf $DISTDIR/debian/
+cp -r build-scripts/debian-authoritative $DISTDIR/debian
+
+cd $DISTDIR
+
+cat > debian/changelog << EOF
+pdns (${VERSION}-${RELEASE}) unstable; urgency=medium
+
+  * Automatic build
+
+ -- PowerDNS.COM AutoBuilder <noreply@powerdns.com>  $(date -R)
+
+EOF
+DH_OPTIONS=--parallel fakeroot debian/rules binary
diff --git a/build-scripts/build-auth-rpm b/build-scripts/build-auth-rpm
new file mode 100755 (executable)
index 0000000..9e9eac1
--- /dev/null
@@ -0,0 +1,567 @@
+#!/bin/sh
+
+if [ "$0" != "./build-scripts/build-auth-rpm" ]; then
+  echo "Please run me from the root checkout dir"
+  exit 1
+fi
+
+if [ -z "$VERSION" ]; then
+  echo 'Please set $VERSION' >&2
+  exit 1
+fi
+
+if [ -z "$RELEASE" ];then
+  echo 'Please set $RELEASE' >&2
+  exit 1
+fi
+
+set -e
+set -x
+
+# Prepare the build environment
+rpmdev-setuptree
+
+# This is somethat ugly...
+if [ -f pdns-${VERSION}.tar.bz2 ]; then
+  mv pdns-${VERSION}.tar.bz2 $HOME/rpmbuild/SOURCES
+else
+  echo "pdns-${VERSION}.tar.bz2 not found" >&2
+  exit 1
+fi
+
+# Some setups need rpmbuild in a 'special' env
+RPMBUILD_COMMAND='rpmbuild -bb pdns.spec'
+
+if [ -f /etc/redhat-release ]; then
+  OS="$(cat /etc/redhat-release)"
+  case "$OS" in
+#    Fedora\ *\ 21*)
+#      ;;
+    CentOS\ *\ 6*)
+      RPMBUILD_COMMAND="scl enable devtoolset-2 -- ${RPMBUILD_COMMAND}"
+      cat > pdns.spec << EOF
+%global backends %{nil}
+
+Name: pdns
+Version: ${VERSION}
+Release: ${RELEASE}
+Summary: A modern, advanced and high performance authoritative-only nameserver
+Group: System Environment/Daemons
+License: GPLv2
+URL: http://powerdns.com
+Source: ../%{name}-%{version}.tar.bz2
+
+Requires(pre): shadow-utils
+Requires(post): /sbin/chkconfig
+Requires(preun): /sbin/service, /sbin/chkconfig
+Requires(postun): /sbin/service
+
+BuildRequires: boost-devel
+BuildRequires: lua-devel
+BuildRequires: cryptopp-devel
+BuildRequires: bison
+Provides: powerdns = %{version}-%{release}
+
+%description
+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.
+
+%package tools
+Summary: Extra tools for %{name}
+Group: System Environment/Daemons
+
+%description tools
+This package contains the extra tools for %{name}
+
+%package backend-mysql
+Summary: MySQL backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+BuildRequires: mysql-devel
+%global backends %{backends} gmysql
+
+%description backend-mysql
+This package contains the gmysql backend for %{name}
+
+%package backend-postgresql
+Summary: PostgreSQL backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+BuildRequires: postgresql-devel
+%global backends %{backends} gpgsql
+
+%description backend-postgresql
+This package contains the gpgsql backend for %{name}
+
+%package backend-pipe
+Summary: Pipe backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%global backends %{backends} pipe
+
+%description backend-pipe
+This package contains the pipe backend for %{name}
+
+%package backend-remote
+Summary: Remote backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+BuildRequires: libcurl-devel
+%global backends %{backends} remote
+
+%description backend-remote
+This package contains the remote backend for %{name}
+
+%package backend-geo
+Summary: Geo backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%global backends %{backends} geo
+
+%description backend-geo
+This package contains the geo backend for %{name}
+It allows different answers to DNS queries coming from different
+IP address ranges or based on the geographic location
+
+%package backend-ldap
+Summary: LDAP backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+BuildRequires: openldap-devel
+%global backends %{backends} ldap
+
+%description backend-ldap
+This package contains the LDAP backend for %{name}
+
+%package backend-lua
+Summary: Lua backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%global backends %{backends} lua
+
+%description backend-lua
+This package contains the lua backend for %{name}
+
+%package backend-sqlite
+Summary: SQLite backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+BuildRequires: sqlite-devel
+%global backends %{backends} gsqlite3
+
+%description backend-sqlite
+This package contains the SQLite backend for %{name}
+
+%prep
+%setup -q
+
+%build
+export CPPFLAGS="-DLDAP_DEPRECATED"
+
+%configure \
+       --sysconfdir=%{_sysconfdir}/%{name} \
+       --libdir=%{_libdir}/%{name} \
+       --disable-static \
+       --disable-dependency-tracking \
+       --disable-silent-rules \
+       --with-modules='' \
+       --with-lua \
+       --with-dynmodules='%{backends}' \
+       --enable-cryptopp \
+       --enable-tools \
+       --enable-remotebackend-http \
+       --enable-unit-tests
+
+make %{?_smp_mflags}
+
+%install
+make install DESTDIR=%{buildroot}
+
+%{__rm} -f %{buildroot}%{_libdir}/%{name}/*.la
+%{__install} -p -D -m 0755 pdns/pdns %{buildroot}%{_initrddir}/pdns
+%{__mv} %{buildroot}%{_sysconfdir}/%{name}/pdns.conf{-dist,}
+
+chmod 600 %{buildroot}%{_sysconfdir}/%{name}/pdns.conf
+
+%check
+make %{?_smp_mflags} -C pdns check
+
+%pre
+getent group pdns >/dev/null || groupadd -r pdns
+getent passwd pdns >/dev/null || \
+       useradd -r -g pdns -d / -s /sbin/nologin \
+       -c "PowerDNS user" pdns
+exit 0
+
+%post
+/sbin/chkconfig --add pdns
+
+%preun
+if [ \$1 -eq 0 ]; then
+       /sbin/service pdns stop >/dev/null 2>&1 || :
+       /sbin/chkconfig --del pdns
+fi
+
+%postun
+if [ \$1 -ge 1 ]; then
+       /sbin/service pdns condrestart >/dev/null 2>&1 || :
+fi
+
+%files
+%doc COPYING README
+%{_bindir}/pdns_control
+%{_bindir}/pdnssec
+%{_bindir}/zone2ldap
+%{_bindir}/zone2sql
+%{_bindir}/zone2json
+%{_sbindir}/pdns_server
+%{_mandir}/man1/pdns_control.1.gz
+%{_mandir}/man1/pdns_server.1.gz
+%{_mandir}/man1/zone2sql.1.gz
+%{_mandir}/man1/zone2ldap.1.gz
+%{_mandir}/man1/pdnssec.1.gz
+%{_initrddir}/pdns
+%dir %{_libdir}/%{name}/
+%dir %{_sysconfdir}/%{name}/
+%config(noreplace) %{_sysconfdir}/%{name}/pdns.conf
+
+%files tools
+%{_bindir}/calidns
+%{_bindir}/dnsbulktest
+%{_bindir}/dnsgram
+%{_bindir}/dnsreplay
+%{_bindir}/dnsscan
+%{_bindir}/dnsscope
+%{_bindir}/dnstcpbench
+%{_bindir}/dnswasher
+%{_bindir}/dumresp
+%{_bindir}/notify
+%{_bindir}/nproxy
+%{_bindir}/nsec3dig
+%{_bindir}/saxfr
+%{_mandir}/man1/dnsbulktest.1.gz
+%{_mandir}/man1/dnsgram.1.gz
+%{_mandir}/man1/dnsreplay.1.gz
+%{_mandir}/man1/dnsscan.1.gz
+%{_mandir}/man1/dnsscope.1.gz
+%{_mandir}/man1/dnstcpbench.1.gz
+%{_mandir}/man1/dnswasher.1.gz
+%{_mandir}/man1/nsec3dig.1.gz
+%{_mandir}/man1/saxfr.1.gz
+
+%files backend-mysql
+%doc pdns/dnssec.schema.mysql.sql
+%doc pdns/no-dnssec.schema.mysql.sql
+%{_libdir}/%{name}/libgmysqlbackend.so
+
+%files backend-postgresql
+%doc pdns/dnssec.schema.pgsql.sql
+%doc pdns/no-dnssec.schema.pgsql.sql
+%{_libdir}/%{name}/libgpgsqlbackend.so
+
+%files backend-pipe
+%{_libdir}/%{name}/libpipebackend.so
+
+%files backend-remote
+%{_libdir}/%{name}/libremotebackend.so
+
+%files backend-geo
+%doc modules/geobackend/README
+%{_libdir}/%{name}/libgeobackend.so
+
+%files backend-ldap
+%{_libdir}/%{name}/libldapbackend.so
+
+%files backend-lua
+%{_libdir}/%{name}/libluabackend.so
+
+%files backend-sqlite
+%doc pdns/dnssec.schema.sqlite3.sql
+%doc pdns/no-dnssec.schema.sqlite3.sql
+%doc pdns/bind-dnssec.schema.sqlite3.sql
+%{_libdir}/%{name}/libgsqlite3backend.so
+EOF
+      ;;
+    CentOS\ Linux\ *\ 7*)
+      cat > pdns.spec << EOF
+%global _hardened_build 1
+%global backends %{nil}
+
+Name: pdns
+Version: ${VERSION}
+Release: ${RELEASE}
+Summary: A modern, advanced and high performance authoritative-only nameserver
+Group: System Environment/Daemons
+License: GPLv2
+URL: http://powerdns.com
+Source: ../pdns-%{version}.tar.bz2
+
+Requires(pre): shadow-utils
+Requires(post): systemd-sysv
+Requires(post): systemd-units
+Requires(preun): systemd-units
+Requires(postun): systemd-units
+
+BuildRequires: systemd-units
+BuildRequires: boost-devel
+BuildRequires: lua-devel
+BuildRequires: cryptopp-devel
+BuildRequires: bison
+BuildRequires: polarssl-devel
+Provides: powerdns = %{version}-%{release}
+%global backends %{backends} bind
+
+%description
+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.
+
+%package tools
+Summary: Extra tools for %{name}
+Group: System Environment/Daemons
+
+%description tools
+This package contains the extra tools for %{name}
+
+%package backend-mysql
+Summary: MySQL backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+BuildRequires: mysql-devel
+%global backends %{backends} gmysql
+
+%description backend-mysql
+This package contains the gmysql backend for %{name}
+
+%package backend-postgresql
+Summary: PostgreSQL backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+BuildRequires: postgresql-devel
+%global backends %{backends} gpgsql
+
+%description backend-postgresql
+This package contains the gpgsql backend for %{name}
+
+%package backend-pipe
+Summary: Pipe backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%global backends %{backends} pipe
+
+%description backend-pipe
+This package contains the pipe backend for %{name}
+
+%package backend-remote
+Summary: Remote backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%global backends %{backends} remote
+
+%description backend-remote
+This package contains the remote backend for %{name}
+
+%package backend-geoip
+Summary: Geo backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+BuildRequires: yaml-cpp-devel
+%global backends %{backends} geoip
+
+%description backend-geoip
+This package contains the geoip backend for %{name}
+It allows different answers to DNS queries coming from different
+IP address ranges or based on the geoipgraphic location
+
+%package backend-geo
+Summary: Geo backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%global backends %{backends} geo
+
+%description backend-geo
+This package contains the geo backend for %{name}
+It allows different answers to DNS queries coming from different
+IP address ranges or based on the geographic location
+
+%package backend-ldap
+Summary: LDAP backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+BuildRequires: openldap-devel
+%global backends %{backends} ldap
+
+%description backend-ldap
+This package contains the LDAP backend for %{name}
+
+%package backend-lua
+Summary: Lua backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%global backends %{backends} lua
+
+%description backend-lua
+This package contains the lua backend for %{name}
+
+%package backend-sqlite
+Summary: SQLite backend for %{name}
+Group: System Environment/Daemons
+Requires: %{name}%{?_isa} = %{version}-%{release}
+BuildRequires: sqlite-devel
+%global backends %{backends} gsqlite3
+
+%description backend-sqlite
+This package contains the SQLite backend for %{name}
+
+%prep
+%setup -q
+
+%build
+export CPPFLAGS="-DLDAP_DEPRECATED"
+
+%configure \
+       --sysconfdir=%{_sysconfdir}/%{name} \
+       --disable-static \
+       --disable-dependency-tracking \
+       --disable-silent-rules \
+       --with-modules='' \
+       --with-system-polarssl \
+       --with-lua \
+       --with-dynmodules='%{backends}' \
+       --enable-cryptopp \
+       --enable-tools \
+       --enable-unit-tests
+
+make %{?_smp_mflags}
+
+%install
+
+make install DESTDIR=%{buildroot}
+
+%{__rm} -f %{buildroot}%{_libdir}/%{name}/*.la
+%{__rm} -rf %{buildroot}%{_docdir}
+%{__mv} %{buildroot}%{_sysconfdir}/%{name}/pdns.conf{-dist,}
+
+chmod 600 %{buildroot}%{_sysconfdir}/%{name}/pdns.conf
+
+# rename zone2ldap to pdns-zone2ldap (#1193116)
+%{__mv} %{buildroot}/%{_bindir}/zone2ldap %{buildroot}/%{_bindir}/pdns-zone2ldap
+%{__mv} %{buildroot}/%{_mandir}/man1/zone2ldap.1 %{buildroot}/%{_mandir}/man1/pdns-zone2ldap.1
+
+# install systemd unit file
+%{__install} -D -p -m 644 contrib/systemd-pdns.service %{buildroot}%{_unitdir}/%{name}.service
+
+%check
+make %{?_smp_mflags} -C pdns check
+
+%pre
+getent group pdns >/dev/null || groupadd -r pdns
+getent passwd pdns >/dev/null || \
+       useradd -r -g pdns -d / -s /sbin/nologin \
+       -c "PowerDNS user" pdns
+exit 0
+
+%post
+%systemd_post pdns.service
+
+%preun
+%systemd_preun pdns.service
+
+%postun
+%systemd_postun_with_restart pdns.service
+
+%files
+%doc COPYING README
+%{_bindir}/pdns_control
+%{_bindir}/pdnssec
+%{_bindir}/pdns-zone2ldap
+%{_bindir}/zone2sql
+%{_bindir}/zone2json
+%{_sbindir}/pdns_server
+%{_libdir}/%{name}/libbindbackend.so
+%{_mandir}/man1/pdns_control.1.gz
+%{_mandir}/man1/pdns_server.1.gz
+%{_mandir}/man1/zone2sql.1.gz
+%{_mandir}/man1/pdns-zone2ldap.1.gz
+%{_mandir}/man1/pdnssec.1.gz
+%{_unitdir}/pdns.service
+%dir %{_libdir}/%{name}/
+%dir %{_sysconfdir}/%{name}/
+%config(noreplace) %{_sysconfdir}/%{name}/pdns.conf
+
+%files tools
+%{_bindir}/calidns
+%{_bindir}/dnsbulktest
+%{_bindir}/dnsgram
+%{_bindir}/dnsreplay
+%{_bindir}/dnsscan
+%{_bindir}/dnsscope
+%{_bindir}/dnstcpbench
+%{_bindir}/dnswasher
+%{_bindir}/dumresp
+%{_bindir}/notify
+%{_bindir}/nproxy
+%{_bindir}/nsec3dig
+%{_bindir}/saxfr
+%{_mandir}/man1/dnsbulktest.1.gz
+%{_mandir}/man1/dnsgram.1.gz
+%{_mandir}/man1/dnsreplay.1.gz
+%{_mandir}/man1/dnsscan.1.gz
+%{_mandir}/man1/dnsscope.1.gz
+%{_mandir}/man1/dnstcpbench.1.gz
+%{_mandir}/man1/dnswasher.1.gz
+%{_mandir}/man1/nsec3dig.1.gz
+%{_mandir}/man1/saxfr.1.gz
+
+%files backend-mysql
+%doc modules/gmysqlbackend/schema.mysql.sql
+%doc modules/gmysqlbackend/dnssec-3.x_to_3.4.0_schema.mysql.sql
+%doc modules/gmysqlbackend/nodnssec-3.x_to_3.4.0_schema.mysql.sql
+%{_libdir}/%{name}/libgmysqlbackend.so
+
+%files backend-postgresql
+%doc modules/gpgsqlbackend/schema.pgsql.sql
+%doc modules/gpgsqlbackend/dnssec-3.x_to_3.4.0_schema.pgsql.sql
+%doc modules/gpgsqlbackend/nodnssec-3.x_to_3.4.0_schema.pgsql.sql
+%{_libdir}/%{name}/libgpgsqlbackend.so
+
+%files backend-pipe
+%{_libdir}/%{name}/libpipebackend.so
+
+%files backend-remote
+%{_libdir}/%{name}/libremotebackend.so
+
+%files backend-geoip
+%{_libdir}/%{name}/libgeoipbackend.so
+
+%files backend-geo
+%doc modules/geobackend/README
+%{_libdir}/%{name}/libgeobackend.so
+
+%files backend-ldap
+%{_libdir}/%{name}/libldapbackend.so
+
+%files backend-lua
+%{_libdir}/%{name}/libluabackend.so
+
+%files backend-sqlite
+%doc modules/gsqlite3backend/schema.sqlite3.sql
+%doc modules/gsqlite3backend/dnssec-3.x_to_3.4.0_schema.sqlite3.sql
+%doc modules/gsqlite3backend/nodnssec-3.x_to_3.4.0_schema.sqlite3.sql
+%{_libdir}/%{name}/libgsqlite3backend.so
+EOF
+      ;;
+    *)
+      echo "No support for $OS (yet?)"
+      exit 1
+      ;;
+  esac
+fi
+
+${RPMBUILD_COMMAND}
+
+mkdir -p rpms
+mv $HOME/rpmbuild/RPMS/x86_64/pdns-*${VERSION}-${RELEASE}.x86_64.rpm rpms
old mode 100644 (file)
new mode 100755 (executable)
similarity index 54%
rename from pdns.spec
rename to build-scripts/build-auth-semistatic
index 996b8e9..e7977e5
--- a/pdns.spec
@@ -1,7 +1,48 @@
+#!/bin/sh
+
+if [ "$0" != "./build-scripts/build-auth-semistatic" ]; then
+  echo "Please run me from the root checkout dir"
+  exit 1
+fi
+
+if [ -z "$VERSION" ]; then
+  echo 'Please set $VERSION' >&2
+  exit 1
+fi
+
+if [ -z "$RELEASE" ];then
+  echo 'Please set $RELEASE' >&2
+  exit 1
+fi
+
+if [ -z "$DISTDIR" ]; then
+  DISTDIR=pdns
+fi
+
+set -e
+set -x
+
+rm -rf $DISTDIR/debian/
+cp -r build-scripts/debian-authoritative-semistatic $DISTDIR/debian
+
+cd $DISTDIR
+
+cat > debian/changelog << EOF
+pdns (${VERSION}-${RELEASE}) unstable; urgency=medium
+
+  * Automatic build
+
+ -- PowerDNS.COM AutoBuilder <noreply@powerdns.com>  $(date -R)
+
+EOF
+
+fakeroot debian/rules binary-static
+
+cat > pdns.spec <<EOF
 BuildRoot: /tmp/pdns
 Name: pdns-static
-Version: 3.3
-Release: 1
+Version: $VERSION
+Release: $RELEASE
 Summary: extremely powerful and versatile nameserver
 License: GPLv2
 Distribution: Neutral
@@ -52,6 +93,7 @@ These are the tools
 
 %files -n pdns-tools
 %defattr(-,root,root)
+%{_bindir}/calidns
 %{_bindir}/dnsbulktest
 %{_bindir}/dnsgram
 %{_bindir}/dnsreplay
@@ -59,12 +101,12 @@ These are the tools
 %{_bindir}/dnsscope
 %{_bindir}/dnstcpbench
 %{_bindir}/dnswasher
+%{_bindir}/dumresp
 %{_bindir}/notify
 %{_bindir}/nproxy
 %{_bindir}/nsec3dig
 %{_bindir}/saxfr
 %{_mandir}/man1/dnsbulktest.1
-%{_mandir}/man1/dnsdist.1
 %{_mandir}/man1/dnsgram.1
 %{_mandir}/man1/dnsreplay.1
 %{_mandir}/man1/dnsscan.1
@@ -73,3 +115,15 @@ These are the tools
 %{_mandir}/man1/dnswasher.1
 %{_mandir}/man1/nsec3dig.1
 %{_mandir}/man1/saxfr.1
+
+EOF
+
+BUILDROOT=$(pwd)/rpm-buildroot/
+fakeroot /bin/sh -c "rm -rf $BUILDROOT ; DESTDIR=$BUILDROOT make install-strip"
+fakeroot rm -f $BUILDROOT/usr/lib/pdns/*.a $BUILDROOT/usr/lib/pdns/*.la $BUILDROOT/usr/lib/*.a $BUILDROOT/usr/lib/*.la
+fakeroot mkdir -p $BUILDROOT/etc/init.d
+fakeroot cp pdns/pdns.init $BUILDROOT/etc/init.d/pdns || fakeroot cp pdns/pdns $BUILDROOT/etc/init.d/pdns
+fakeroot mkdir -p $BUILDROOT/etc/powerdns
+fakeroot mv $BUILDROOT/etc/powerdns/pdns.conf-dist $BUILDROOT/etc/powerdns/pdns.conf
+fakeroot rm -f $BUILDROOT/usr/bin/zone2ldap $BUILDROOT/usr/man/man1/zone2ldap.1 $BUILDROOT/usr/man/man1/zone2ldap.1 $BUILDROOT/usr/share/man/man1/zone2ldap.1 $BUILDROOT/usr/share/man/man1/zone2ldap.1
+fakeroot rpmbuild -bb pdns.spec --buildroot $BUILDROOT
index 60dfef3ff65b18c766505c5fdc43442255fc5328..872aa7b382f0d907e5711f5a192d4c20f6cc46ee 100755 (executable)
@@ -89,7 +89,7 @@ ${SODIUM_BUILDREQUIRES}
 ${INIT_BUILDREQUIRES}
 
 %description
-dnsdist is a high-performance DNS loadbalancer that is scriptable in LUA.
+dnsdist is a high-performance DNS loadbalancer that is scriptable in Lua.
 
 %prep
 ${SETUP}
diff --git a/build-scripts/build-recursor-debian b/build-scripts/build-recursor-debian
new file mode 100755 (executable)
index 0000000..3fc56ca
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+if [ "$0" != "./build-scripts/build-recursor-debian" ]; then
+  echo "Please run me from the root checkout dir" >&2
+  exit 1
+fi
+
+if [ -z "$VERSION" ]; then
+  echo 'Please set $VERSION' >&2
+  exit 1
+fi
+
+if [ -z "$RELEASE" ];then
+  echo 'Please set $RELEASE' >&2
+  exit 1
+fi
+
+if [ -z "$DISTDIR" ]; then
+  echo 'Please set $DISTDIR to the directory where pdns-recursor.tar.gz was unpacked' >&2
+  exit 1
+fi
+
+set -e
+set -x
+
+rm -rf $DISTDIR/debian
+cp -r build-scripts/debian-recursor $DISTDIR/debian
+cat > $DISTDIR/debian/changelog << EOF
+pdns-recursor (${VERSION}-${RELEASE}) unstable; urgency=medium
+
+  * Automatic build
+
+ -- PowerDNS.COM AutoBuilder <noreply@powerdns.com>  $(date -R)
+
+EOF
+
+cd $DISTDIR
+
+fakeroot debian/rules binary
diff --git a/build-scripts/build-recursor-rpm b/build-scripts/build-recursor-rpm
new file mode 100755 (executable)
index 0000000..49c60fc
--- /dev/null
@@ -0,0 +1,288 @@
+#!/bin/sh
+
+if [ "$0" != "./build-scripts/build-recursor-rpm" ]; then
+  echo "Please run me from the root checkout dir"
+  exit 1
+fi
+
+if [ -z "$VERSION" ]; then
+  echo 'Please set $VERSION' >&2
+  exit 1
+fi
+
+if [ -z "$RELEASE" ];then
+  echo 'Please set $RELEASE' >&2
+  exit 1
+fi
+
+set -e
+set -x
+
+# Prepare the build environment
+rpmdev-setuptree
+
+# This is somethat ugly...
+if [ -f pdns-recursor-${VERSION}.tar.bz2 ]; then
+  mv pdns-recursor-${VERSION}.tar.bz2 $HOME/rpmbuild/SOURCES
+else
+  echo "pdns-recursor-${VERSION}.tar.bz2 not found" >&2
+  exit 1
+fi
+
+# Some setups need rpmbuild in a 'special' env
+RPMBUILD_COMMAND='rpmbuild -bb pdns-recursor.spec'
+
+if [ -f /etc/redhat-release ]; then
+  OS="$(cat /etc/redhat-release)"
+  case "$OS" in
+    Fedora\ *\ 21*)
+      exit 1
+      ;;
+    CentOS\ *\ 6*)
+      RPMBUILD_COMMAND="scl enable devtoolset-2 -- ${RPMBUILD_COMMAND}"
+      cat > $HOME/rpmbuild/SOURCES/pdns-recursor.init << EOF
+#!/bin/bash
+#
+# pdns-recursor  This shell script controls the PowerDNS Recursor
+#
+# Author:       Ruben Kerkhof <ruben@rubenkerkhof.com>
+#
+# chkconfig:    - 49 51
+#
+# description:  PowerDNS Recursor is a non authoritative/recursing DNS server
+# processname:  pdns-recursor
+# config: /etc/pdns-recursor/recursor.conf
+# pidfile: /var/run/pdns_recursor.pid
+#
+
+# source function library
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+
+start() {
+       echo -n \$"Starting pdns-recursor: "
+       daemon /usr/sbin/pdns_recursor --daemon 2>/dev/null
+       RETVAL=\$?
+       echo
+       [ \$RETVAL -eq 0 ] && touch /var/lock/subsys/pdns-recursor
+}
+
+stop() {
+       echo -n \$"Stopping pdns-recursor: "
+       killproc pdns_recursor
+       echo
+       [ \$RETVAL -eq 0 ] && rm -f /var/lock/subsys/pdns-recursor && rm -f /var/run/pdns_recursor.controlsocket
+}
+
+restart() {
+       stop
+       start
+}
+
+case "\$1" in
+  start)
+       start
+       ;;
+  stop) 
+       stop
+       ;;
+  restart|force-reload|reload)
+       restart
+       ;;
+  condrestart)
+       [ -f /var/lock/subsys/pdns-recursor ] && restart
+       ;;
+  status)
+       status pdns_recursor
+       RETVAL=\$?
+       ;;
+  *)
+       echo \$"Usage: \$0 {start|stop|status|restart|reload|force-reload|condrestart}"
+       exit 1
+esac
+
+exit \$RETVAL
+EOF
+      cat > pdns-recursor.spec << EOF
+Name: pdns-recursor
+Version: ${VERSION}
+Release: ${RELEASE}
+Summary: Modern, advanced and high performance recursing/non authoritative name server
+Group: System Environment/Daemons
+License: GPLv2
+URL: http://powerdns.com
+Source0: ../%{name}-%{version}.tar.bz2
+Source1: pdns-recursor.init
+
+Provides: powerdns-recursor = %{version}-%{release}
+BuildRequires: boost-devel
+BuildRequires: lua-devel
+
+Requires(pre): shadow-utils
+Requires(post): /sbin/chkconfig
+Requires(preun): /sbin/service, /sbin/chkconfig
+Requires(postun): /sbin/service
+
+%description
+PowerDNS Recursor is a non authoritative/recursing DNS server. Use this
+package if you need a dns cache for your network.
+
+%prep
+%setup -q
+sed -i -e 's!SYSCONFDIR=/etc/powerdns!SYSCONFDIR=/etc/pdns-recursor!' -e 's!STRIP_BINARIES?=1!STRIP_BINARIES?=0!' $HOME/rpmbuild/BUILD/pdns-recursor-${VERSION}/Makefile.in
+sed -i -e 's!OS_SPECIFIC_INSTALL=.*!OS_SPECIFIC_INSTALL=!' $HOME/rpmbuild/BUILD/pdns-recursor-${VERSION}/sysdeps/Linux.inc
+
+%build
+%configure
+LUA=1 LUA_CPPFLAGS_CONFIG= LUA_LIBS_CONFIG=-llua OPTFLAGS="%{optflags}" LDFLAGS="%{?__global_ldflags}" make %{?_smp_mflags}
+
+%install
+%{__rm} -rf %{buildroot}
+make install DESTDIR=%{buildroot} CONFIGDIR="%{_sysconfdir}/%{name}"
+chmod 0755 %{buildroot}/%{_bindir}/rec_control
+chmod 0755 %{buildroot}/%{_sbindir}/pdns_recursor
+%{__install} -D -p %{SOURCE1} %{buildroot}%{_initrddir}/pdns-recursor
+
+%{__mv} %{buildroot}%{_sysconfdir}/%{name}/recursor.conf{-dist,}
+
+# add pdns user and group to top of configfile
+sed -i '1i\\setuid=pdns-recursor' %{buildroot}%{_sysconfdir}/%{name}/recursor.conf
+sed -i '2i\\setgid=pdns-recursor' %{buildroot}%{_sysconfdir}/%{name}/recursor.conf
+
+%pre
+getent group pdns-recursor > /dev/null || groupadd -r pdns-recursor
+getent passwd pdns-recursor > /dev/null || \
+    useradd -r -g pdns-recursor -d / -s /sbin/nologin \
+    -c "PowerDNS Recursor user" pdns-recursor
+exit 0
+
+%post
+chkconfig --add %{name}
+
+%preun
+if [ \$1 -eq 0 ]; then
+    service %{name} stop >/dev/null 2>&1 || :
+    chkconfig --del %{name}
+fi
+
+%postun
+if [ \$1 -ge 1 ]; then
+    service %{name} condrestart >/dev/null 2>&1 || :
+fi
+
+%clean
+%{__rm} -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%{_bindir}/rec_control
+%{_sbindir}/pdns_recursor
+%{_mandir}/man1/pdns_recursor.1.gz
+%{_mandir}/man1/rec_control.1.gz
+%{_initrddir}/pdns-recursor
+%dir %{_sysconfdir}/%{name}
+%config(noreplace) %{_sysconfdir}/%{name}/recursor.conf
+%doc COPYING README
+EOF
+      ;;
+    CentOS\ Linux\ *\ 7*)
+      cat > pdns-recursor.spec << EOF
+%global _hardened_build 1
+
+Name: pdns-recursor
+Version: ${VERSION}
+Release: ${RELEASE}
+Summary: Modern, advanced and high performance recursing/non authoritative name server
+Group: System Environment/Daemons
+License: GPLv2
+URL: http://powerdns.com
+Source0: ../%{name}-%{version}.tar.bz2
+
+Provides: powerdns-recursor = %{version}-%{release}
+BuildRequires: boost-devel
+BuildRequires: lua-devel
+BuildRequires: systemd-units
+BuildRequires: hostname
+
+Requires(pre): shadow-utils
+Requires(post): systemd-sysv
+Requires(post): systemd-units
+Requires(preun): systemd-units
+Requires(postun): systemd-units
+
+%description
+PowerDNS Recursor is a non authoritative/recursing DNS server. Use this
+package if you need a dns cache for your network.
+
+%prep
+%setup -q
+sed -i -e 's!SYSCONFDIR=/etc/powerdns!SYSCONFDIR=/etc/pdns-recursor!' -e 's!STRIP_BINARIES?=1!STRIP_BINARIES?=0!' $HOME/rpmbuild/BUILD/pdns-recursor-${VERSION}/Makefile.in
+sed -i -e 's!OS_SPECIFIC_INSTALL=.*!OS_SPECIFIC_INSTALL=!' $HOME/rpmbuild/BUILD/pdns-recursor-${VERSION}/sysdeps/Linux.inc
+
+%build
+%configure
+LUA=1 LUA_CPPFLAGS_CONFIG= LUA_LIBS_CONFIG=-llua OPTFLAGS="%{optflags}" LDFLAGS="%{?__global_ldflags}" make %{?_smp_mflags}
+
+%install
+make install DESTDIR=%{buildroot} CONFIGDIR="%{_sysconfdir}/%{name}"
+chmod 0755 %{buildroot}/%{_bindir}/rec_control
+chmod 0755 %{buildroot}/%{_sbindir}/pdns_recursor
+# install systemd unit file
+%{__install} -D -p -m 644 contrib/systemd-pdns-recursor.service %{buildroot}%{_unitdir}/%{name}.service
+
+%{__mv} %{buildroot}%{_sysconfdir}/%{name}/recursor.conf{-dist,}
+
+# add pdns user and group to top of configfile
+sed -i '1i\\setuid=pdns-recursor' %{buildroot}%{_sysconfdir}/%{name}/recursor.conf
+sed -i '2i\\setgid=pdns-recursor' %{buildroot}%{_sysconfdir}/%{name}/recursor.conf
+
+%pre
+getent group pdns-recursor > /dev/null || groupadd -r pdns-recursor
+getent passwd pdns-recursor > /dev/null || \
+    useradd -r -g pdns-recursor -d / -s /sbin/nologin \
+    -c "PowerDNS Recursor user" pdns-recursor
+exit 0
+
+%post
+%systemd_post pdns-recursor.service
+
+%preun
+%systemd_preun pdns-recursor.service
+
+%postun
+%systemd_postun_with_restart pdns-recursor.service
+
+%triggerun -- pdns-recursor < 3.3-4
+# Save the current service runlevel info
+# User must manually run systemd-sysv-convert --apply pdns-recursor
+# to migrate them to systemd targets
+/usr/bin/systemd-sysv-convert --save pdns-recursor >/dev/null 2>&1 ||:
+
+# Run these because the SysV package being removed won't do them
+/sbin/chkconfig --del pdns-recursor >/dev/null 2>&1 || :
+/bin/systemctl try-restart pdns-recursor.service >/dev/null 2>&1 || :
+
+%files
+%{_bindir}/rec_control
+%{_sbindir}/pdns_recursor
+%{_mandir}/man1/pdns_recursor.1.gz
+%{_mandir}/man1/rec_control.1.gz
+%{_unitdir}/pdns-recursor.service
+%dir %{_sysconfdir}/%{name}
+%config(noreplace) %{_sysconfdir}/%{name}/recursor.conf
+%doc COPYING README
+EOF
+      ;;
+    *)
+      echo "No support for $OS (yet?)"
+      exit 1
+      ;;
+  esac
+fi
+
+
+${RPMBUILD_COMMAND}
+
+mv $HOME/rpmbuild/RPMS/x86_64/pdns-recursor-${VERSION}-${RELEASE}.x86_64.rpm .
+[ -f $HOME/rpmbuild/RPMS/x86_64/pdns-recursor-debuginfo-${VERSION}-${RELEASE}.x86_64.rpm ] && mv $HOME/rpmbuild/RPMS/x86_64/pdns-recursor-debuginfo-${VERSION}-${RELEASE}.x86_64.rpm . || true
diff --git a/build-scripts/build-recursor-semistatic b/build-scripts/build-recursor-semistatic
new file mode 100755 (executable)
index 0000000..9c56bc7
--- /dev/null
@@ -0,0 +1,53 @@
+#!/bin/sh
+if [ "$0" != "./build-scripts/build-recursor-semistatic" ]; then
+  echo "Please run me from the root checkout dir" >&2
+  exit 1
+fi
+
+if [ -z "$VERSION" ]; then
+  echo 'Please set $VERSION' >&2
+  exit 1
+fi
+
+if [ -z "$RELEASE" ];then
+  echo 'Please set $RELEASE' >&2
+  exit 1
+fi
+
+if [ -z "$DISTDIR" ]; then
+  DISTDIR=pdns
+fi
+
+set -e
+set -x
+
+export DEBFULLNAME="PowerDNS.COM BV"
+export DEBEMAIL="noreply@powerdns.com"
+DEBPKGNAME=pdns-recursor_$VERSION
+
+cd $DISTDIR
+
+dh_make -s -f ../pdns-recursor-$VERSION.tar.bz2 -p $DEBPKGNAME < /dev/null
+cp pdns-recursor.init.d debian/init.d
+#[ -e debian/control ] || dh_make -e powerdns.support@powerdns.com -s -r cdbs  -f ../pdns-recursor-$VERSION.tar.bz2  < /dev/null
+perl -i -pe 's/Description: <.*>/Description: extremely powerful and versatile recursing nameserver/' debian/control
+# only to be nice to people usind the generated .dsc
+perl -i -pe 's/(Build-Depends: .*)/$1, libboost-dev, libboost-serialization-dev, liblua5.2-0-dev/' debian/control
+
+cat > debian/changelog << EOF
+pdns-recursor (${VERSION}-${RELEASE}) unstable; urgency=medium
+
+  * Automatic build
+
+ -- PowerDNS.COM AutoBuilder <noreply@powerdns.com>  $(date -R)
+
+EOF
+
+# Fix the rpm version number
+perl -i -pe "s/Version: .*/Version: ${VERSION}/" pdns-recursor.spec
+perl -i -pe "s/Release: .*/Release: ${RELEASE}/" pdns-recursor.spec
+export LUA=1
+export STATIC=semi
+fakeroot debian/rules binary
+./configure
+fakeroot rpmbuild -bb pdns-recursor.spec
similarity index 88%
rename from debian/control
rename to build-scripts/debian-authoritative-semistatic/control
index 10614ddb872dc6b6f5ff6295dae581c75fc133a1..c5bfef1deaea457a0d4ad99bc7edfe0f1f7abb44 100644 (file)
@@ -2,8 +2,9 @@ Source: pdns
 Section: net
 Priority: extra
 Standards-Version: 3.5.8
-Maintainer: bert hubert <bert.hubert@netherlabs.nl>
-Build-Depends: autoconf, libtool, flex, bison, docbook-utils, libmysqlclient-dev, postgresql-dev | libpq-dev, tdb-dev, libgdbm-dev, libldap2-dev, libsqlite3-dev, dpkg-dev (>= 1.10.17), libboost-dev (>=1.34), libboost-program-options-dev, libboost-serialization-dev, pkg-config, ragel, libbotan1.10-dev, liblua5.1-dev
+Maintainer: PowerDNS AutoBuilder
+Origin: PowerDNS
+Build-Depends: autoconf, libtool, flex, bison, docbook-utils, libmysqlclient-dev, postgresql-dev | libpq-dev, tdb-dev, libgdbm-dev, libldap2-dev, libsqlite3-dev, dpkg-dev (>= 1.10.17), libboost-dev (>=1.34), libboost-program-options-dev, libboost-serialization-dev, pkg-config, ragel, libbotan1.10-dev, liblua5.1-dev, libyaml-cpp-dev (>= 0.5). libgeoip-dev
 
 Package: pdns-static
 Architecture: any
similarity index 96%
rename from debian/rules
rename to build-scripts/debian-authoritative-semistatic/rules
index 27d0d166eb05426ce726860224666a0adb4d2ed6..93ba49f3ac4d3c9b28417f1aba66faeb13157648 100755 (executable)
@@ -16,7 +16,7 @@ build-static stamp-build-static:
                --infodir='$${datadir}/info' \
                --mandir='$${datadir}/man' \
                --with-pgsql-lib=/opt/postgresql/lib --with-pgsql-includes=/opt/postgresql/include \
-               --with-modules="bind gmysql gpgsql pipe gsqlite3 lua geo tinydns mydns opendbx remote random" \
+               --with-modules="bind gmysql gpgsql pipe gsqlite3 lua geo geoip tinydns mydns opendbx remote random" \
                --with-dynmodules="" \
                --enable-botan1.10 \
                --enable-static-binaries \
@@ -85,7 +85,7 @@ binary-main-prepare:
 
        #FIXME: shell loops hide errors
        for prog in dnsbulktest dnsgram dnsreplay dnsscan dnsscope dnstcpbench dnswasher \
-               dnsdist notify nproxy nsec3dig saxfr ; do \
+               notify nproxy nsec3dig saxfr ; do \
                mv "$(tmpdir)"/usr/bin/$$prog "$(tools_tmpdir)"/usr/bin ; \
                [ -e "$(tmpdir)"/usr/share/man/man8/"$$prog".8 ] && \
                        mv "$(tmpdir)"/usr/share/man/man8/"$$prog".8 "$(tools_tmpdir)"/usr/share/man/man8/ ; \
diff --git a/build-scripts/debian-authoritative/README.source b/build-scripts/debian-authoritative/README.source
new file mode 100644 (file)
index 0000000..cf42723
--- /dev/null
@@ -0,0 +1 @@
+See /usr/share/doc/quilt/README.source
diff --git a/build-scripts/debian-authoritative/compat b/build-scripts/debian-authoritative/compat
new file mode 100644 (file)
index 0000000..ec63514
--- /dev/null
@@ -0,0 +1 @@
+9
diff --git a/build-scripts/debian-authoritative/config/dnsdomain2.schema b/build-scripts/debian-authoritative/config/dnsdomain2.schema
new file mode 100644 (file)
index 0000000..a89aeaf
--- /dev/null
@@ -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/build-scripts/debian-authoritative/config/pdns b/build-scripts/debian-authoritative/config/pdns
new file mode 100644 (file)
index 0000000..f9d8cb3
--- /dev/null
@@ -0,0 +1,9 @@
+# Variables for PowerDNS
+
+# If you have resolvconf installed, you can enable the following to have
+# resolvconf update an recursor line in the pdns config, as determined by
+# resolvconf.
+RESOLVCONF_UPDATE_FORWARDERS=no
+
+# Arguments to the started daemon
+DAEMON_ARGS=""
diff --git a/build-scripts/debian-authoritative/config/pdns.conf b/build-scripts/debian-authoritative/config/pdns.conf
new file mode 100644 (file)
index 0000000..73523b3
--- /dev/null
@@ -0,0 +1,518 @@
+#################################
+# allow-axfr-ips       Allow zonetransfers only to these subnets
+#
+# allow-axfr-ips=127.0.0.0/8,::1
+
+#################################
+# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges.
+#
+# allow-dnsupdate-from=127.0.0.0/8,::1
+
+#################################
+# allow-recursion      List of subnets that are allowed to recurse
+#
+# allow-recursion=0.0.0.0/0
+
+#################################
+# also-notify  When notifying a domain, also notify these nameservers
+#
+# also-notify=
+
+#################################
+# any-to-tcp   Answer ANY queries with tc=1, shunting to TCP
+#
+# any-to-tcp=no
+
+#################################
+# cache-ttl    Seconds to store packets in the PacketCache
+#
+# cache-ttl=20
+
+#################################
+# carbon-interval      Number of seconds between carbon (graphite) updates
+#
+# carbon-interval=30
+
+#################################
+# carbon-ourname       If set, overrides our reported hostname for carbon stats
+#
+# carbon-ourname=
+
+#################################
+# carbon-server        If set, send metrics in carbon (graphite) format to this server
+#
+# carbon-server=
+
+#################################
+# chroot       If set, chroot to this directory for more security
+#
+# chroot=
+
+#################################
+# config-dir   Location of configuration directory (pdns.conf)
+#
+config-dir=/etc/powerdns
+
+#################################
+# config-name  Name of this virtual configuration - will rename the binary image
+#
+# config-name=
+
+#################################
+# control-console      Debugging switch - don't use
+#
+# control-console=no
+
+#################################
+# daemon       Operate as a daemon
+#
+daemon=yes
+
+#################################
+# default-ksk-algorithms       Default KSK algorithms
+#
+# default-ksk-algorithms=rsasha256
+
+#################################
+# default-ksk-size     Default KSK size (0 means default)
+#
+# default-ksk-size=0
+
+#################################
+# default-soa-mail     mail address to insert in the SOA record if none set in the backend
+#
+# default-soa-mail=
+
+#################################
+# default-soa-name     name to insert in the SOA record if none set in the backend
+#
+# default-soa-name=a.misconfigured.powerdns.server
+
+#################################
+# default-ttl  Seconds a result is valid if not set otherwise
+#
+# default-ttl=3600
+
+#################################
+# default-zsk-algorithms       Default ZSK algorithms
+#
+# default-zsk-algorithms=rsasha256
+
+#################################
+# default-zsk-size     Default ZSK size (0 means default)
+#
+# default-zsk-size=0
+
+#################################
+# direct-dnskey        Fetch DNSKEY RRs from backend during DNSKEY synthesis
+#
+# direct-dnskey=no
+
+#################################
+# disable-axfr Disable zonetransfers but do allow TCP queries
+#
+# disable-axfr=no
+
+#################################
+# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing.
+#
+# disable-axfr-rectify=no
+
+#################################
+# disable-tcp  Do not listen to TCP queries
+#
+# disable-tcp=no
+
+#################################
+# distributor-threads  Default number of Distributor (backend) threads to start
+#
+# distributor-threads=3
+
+#################################
+# do-ipv6-additional-processing        Do AAAA additional processing
+#
+# do-ipv6-additional-processing=yes
+
+#################################
+# edns-subnet-processing       If we should act on EDNS Subnet options
+#
+# edns-subnet-processing=no
+
+#################################
+# entropy-source       If set, read entropy from this file
+#
+# entropy-source=/dev/urandom
+
+#################################
+# experimental-api-key REST API Static authentication key (required for API use)
+#
+# experimental-api-key=
+
+#################################
+# experimental-api-readonly    If the JSON API should disallow data modification
+#
+# experimental-api-readonly=no
+
+#################################
+# experimental-dname-processing        If we should support DNAME records
+#
+# experimental-dname-processing=no
+
+#################################
+# experimental-dnsupdate       Enable/Disable DNS update (RFC2136) support. Default is no.
+#
+# experimental-dnsupdate=no
+
+#################################
+# experimental-json-interface  If the webserver should serve JSON data
+#
+# experimental-json-interface=no
+
+#################################
+# experimental-logfile Filename of the log file for JSON parser
+#
+# experimental-logfile=/var/log/pdns.log
+
+#################################
+# forward-dnsupdate    A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master.
+#
+# forward-dnsupdate=yes
+
+#################################
+# guardian     Run within a guardian process
+#
+guardian=yes
+
+#################################
+# include-dir  Include *.conf files from this directory
+#
+# include-dir=
+include-dir=/etc/powerdns/pdns.d
+
+#################################
+# launch       Which backends to launch and order to query them in
+#
+# launch=
+launch=
+
+#################################
+# load-modules Load this module - supply absolute or relative path
+#
+# load-modules=
+
+#################################
+# local-address        Local IP addresses to which we bind
+#
+# local-address=0.0.0.0
+
+#################################
+# local-address-nonexist-fail  Fail to start if one or more of the local-address's do not exist on this server
+#
+# local-address-nonexist-fail=yes
+
+#################################
+# local-ipv6   Local IP address to which we bind
+#
+# local-ipv6=
+
+#################################
+# local-ipv6-nonexist-fail     Fail to start if one or more of the local-ipv6 addresses do not exist on this server
+#
+# local-ipv6-nonexist-fail=yes
+
+#################################
+# local-port   The port on which we listen
+#
+# local-port=53
+
+#################################
+# log-dns-details      If PDNS should log DNS non-erroneous details
+#
+# log-dns-details=no
+
+#################################
+# log-dns-queries      If PDNS should log all incoming DNS queries
+#
+# log-dns-queries=no
+
+#################################
+# logging-facility     Log under a specific facility
+#
+# logging-facility=
+
+#################################
+# loglevel     Amount of logging. Higher is more. Do not set below 3
+#
+# loglevel=4
+
+#################################
+# lua-prequery-script  Lua script with prequery handler
+#
+# lua-prequery-script=
+
+#################################
+# master       Act as a master
+#
+# master=no
+
+#################################
+# max-cache-entries    Maximum number of cache entries
+#
+# max-cache-entries=1000000
+
+#################################
+# max-ent-entries      Maximum number of empty non-terminals in a zone
+#
+# max-ent-entries=100000
+
+#################################
+# max-nsec3-iterations Limit the number of NSEC3 hash iterations
+#
+# max-nsec3-iterations=500
+
+#################################
+# max-queue-length     Maximum queuelength before considering situation lost
+#
+# max-queue-length=5000
+
+#################################
+# max-signature-cache-entries  Maximum number of signatures cache entries
+#
+# max-signature-cache-entries=
+
+#################################
+# max-tcp-connections  Maximum number of TCP connections
+#
+# max-tcp-connections=10
+
+#################################
+# module-dir   Default directory for modules
+#
+# module-dir=/usr/lib/TRIPLET/pdns
+
+#################################
+# negquery-cache-ttl   Seconds to store negative query results in the QueryCache
+#
+# negquery-cache-ttl=60
+
+#################################
+# no-shuffle   Set this to prevent random shuffling of answers - for regression testing
+#
+# no-shuffle=off
+
+#################################
+# only-notify  Only send AXFR NOTIFY to these IP addresses or netmasks
+#
+# only-notify=0.0.0.0/0,::/0
+
+#################################
+# out-of-zone-additional-processing    Do out of zone additional processing
+#
+# out-of-zone-additional-processing=yes
+
+#################################
+# overload-queue-length        Maximum queuelength moving to packetcache only
+#
+# overload-queue-length=0
+
+#################################
+# pipebackend-abi-version      Version of the pipe backend ABI
+#
+# pipebackend-abi-version=1
+
+#################################
+# prevent-self-notification    Don't send notifications to what we think is ourself
+#
+# prevent-self-notification=yes
+
+#################################
+# query-cache-ttl      Seconds to store query results in the QueryCache
+#
+# query-cache-ttl=20
+
+#################################
+# query-local-address  Source IP address for sending queries
+#
+# query-local-address=0.0.0.0
+
+#################################
+# query-local-address6 Source IPv6 address for sending queries
+#
+# query-local-address6=::
+
+#################################
+# query-logging        Hint backends that queries should be logged
+#
+# query-logging=no
+
+#################################
+# queue-limit  Maximum number of milliseconds to queue a query
+#
+# queue-limit=1500
+
+#################################
+# receiver-threads     Default number of receiver threads to start
+#
+# receiver-threads=1
+
+#################################
+# recursive-cache-ttl  Seconds to store packets for recursive queries in the PacketCache
+#
+# recursive-cache-ttl=10
+
+#################################
+# recursor     If recursion is desired, IP address of a recursing nameserver
+#
+# recursor=no
+
+#################################
+# retrieval-threads    Number of AXFR-retrieval threads for slave operation
+#
+# retrieval-threads=2
+
+#################################
+# reuseport    Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket
+#
+# reuseport=no
+
+#################################
+# security-poll-suffix Domain name from which to query security update notifications
+#
+# security-poll-suffix=secpoll.powerdns.com.
+
+#################################
+# send-root-referral   Send out old-fashioned root-referral instead of ServFail in case of no authority
+#
+# send-root-referral=no
+
+#################################
+# server-id    Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom
+#
+# server-id=
+
+#################################
+# setgid       If set, change group id to this gid for more security
+#
+setgid=pdns
+
+#################################
+# setuid       If set, change user id to this uid for more security
+#
+setuid=pdns
+
+#################################
+# signing-threads      Default number of signer threads to start
+#
+# signing-threads=3
+
+#################################
+# slave        Act as a slave
+#
+# slave=no
+
+#################################
+# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
+#
+# slave-cycle-interval=60
+
+#################################
+# slave-renotify       If we should send out notifications for slaved updates
+#
+# slave-renotify=no
+
+#################################
+# soa-expire-default   Default SOA expire
+#
+# soa-expire-default=604800
+
+#################################
+# soa-minimum-ttl      Default SOA minimum ttl
+#
+# soa-minimum-ttl=3600
+
+#################################
+# soa-refresh-default  Default SOA refresh
+#
+# soa-refresh-default=10800
+
+#################################
+# soa-retry-default    Default SOA retry
+#
+# soa-retry-default=3600
+
+#################################
+# socket-dir   Where the controlsocket will live
+#
+# socket-dir=/var/run
+
+#################################
+# tcp-control-address  If set, PowerDNS can be controlled over TCP on this address
+#
+# tcp-control-address=
+
+#################################
+# tcp-control-port     If set, PowerDNS can be controlled over TCP on this address
+#
+# tcp-control-port=53000
+
+#################################
+# tcp-control-range    If set, remote control of PowerDNS is possible over these networks only
+#
+# tcp-control-range=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
+
+#################################
+# tcp-control-secret   If set, PowerDNS can be controlled over TCP after passing this secret
+#
+# tcp-control-secret=
+
+#################################
+# traceback-handler    Enable the traceback handler (Linux only)
+#
+# traceback-handler=yes
+
+#################################
+# trusted-notification-proxy   IP address of incoming notification proxy
+#
+# trusted-notification-proxy=
+
+#################################
+# udp-truncation-threshold     Maximum UDP response size before we truncate
+#
+# udp-truncation-threshold=1680
+
+#################################
+# version-string       PowerDNS version in packets - full, anonymous, powerdns or custom
+#
+# version-string=full
+
+#################################
+# webserver    Start a webserver for monitoring
+#
+# webserver=no
+
+#################################
+# webserver-address    IP Address of webserver to listen on
+#
+# webserver-address=127.0.0.1
+
+#################################
+# webserver-allow-from Webserver access is only allowed from these subnets
+#
+# webserver-allow-from=0.0.0.0/0,::/0
+
+#################################
+# webserver-password   Password required for accessing the webserver
+#
+# webserver-password=
+
+#################################
+# webserver-port       Port of webserver to listen on
+#
+# webserver-port=8081
+
+#################################
+# webserver-print-arguments    If the webserver should print arguments
+#
+# webserver-print-arguments=no
+
+
diff --git a/build-scripts/debian-authoritative/config/pdns.local.bind.conf b/build-scripts/debian-authoritative/config/pdns.local.bind.conf
new file mode 100644 (file)
index 0000000..48c2f99
--- /dev/null
@@ -0,0 +1,12 @@
+# Bind backend configuration
+
+# Location of the Bind configuration file to parse. 
+# bind-config=/etc/bind/named.conf.local
+
+# How often to check for zone changes. See 'Operation' section. 
+# bind-check-interval=
+
+# Uncomment to enable Huffman compression on zone data.
+# Currently saves around 20% of memory actually used, but slows down operation.
+# bind-enable-huffman
+
diff --git a/build-scripts/debian-authoritative/config/pdns.local.conf b/build-scripts/debian-authoritative/config/pdns.local.conf
new file mode 100644 (file)
index 0000000..3616b88
--- /dev/null
@@ -0,0 +1,3 @@
+# Here come the local changes the user made, like configuration of 
+# the several backends that exist.
+
diff --git a/build-scripts/debian-authoritative/config/pdns.local.geo.conf b/build-scripts/debian-authoritative/config/pdns.local.geo.conf
new file mode 100644 (file)
index 0000000..3eb85b5
--- /dev/null
@@ -0,0 +1,11 @@
+# geo Configuration
+#
+# See for more information /usr/share/doc/pdns-backend-geo/README
+#
+# geo-zone=
+# geo-soa-values=
+# geo-ns-records=
+# geo-ttl=
+# geo-ns-ttl=
+# geo-ip-map-zonefile=
+# geo-maps=
diff --git a/build-scripts/debian-authoritative/config/pdns.local.geoip.conf b/build-scripts/debian-authoritative/config/pdns.local.geoip.conf
new file mode 100644 (file)
index 0000000..48677ee
--- /dev/null
@@ -0,0 +1,8 @@
+# geoip Configuration
+#
+# See for more information https://doc.powerdns.com/md/authoritative/backend-geoip/
+#
+# geoip-database-file=
+# geoip-database-file6=
+# geoip-zones-file=
+# geoip-dnssec-keydir=
diff --git a/build-scripts/debian-authoritative/config/pdns.local.gmysql.conf b/build-scripts/debian-authoritative/config/pdns.local.gmysql.conf
new file mode 100644 (file)
index 0000000..703f198
--- /dev/null
@@ -0,0 +1,13 @@
+# MySQL Configuration
+#
+# Launch gmysql backend
+launch+=gmysql
+
+# gmysql parameters
+gmysql-host=_DBC_DBSERVER_
+gmysql-port=_DBC_DBPORT_
+gmysql-dbname=_DBC_DBNAME_
+gmysql-user=_DBC_DBUSER_
+gmysql-password=_DBC_DBPASS_
+gmysql-dnssec=yes
+# gmysql-socket=
diff --git a/build-scripts/debian-authoritative/config/pdns.local.gpgsql.conf b/build-scripts/debian-authoritative/config/pdns.local.gpgsql.conf
new file mode 100644 (file)
index 0000000..869b5dc
--- /dev/null
@@ -0,0 +1,12 @@
+# PostgreSQL Configuration
+#
+# Launch gpgsql backend
+launch+=gpgsql
+
+# gpgsql parameters
+gpgsql-host=_DBC_DBSERVER_
+gpgsql-port=_DBC_DBPORT_
+gpgsql-dbname=_DBC_DBNAME_
+gpgsql-user=_DBC_DBUSER_
+gpgsql-password=_DBC_DBPASS_
+gpgsql-dnssec=yes
diff --git a/build-scripts/debian-authoritative/config/pdns.local.gsqlite3.conf b/build-scripts/debian-authoritative/config/pdns.local.gsqlite3.conf
new file mode 100644 (file)
index 0000000..ccde43f
--- /dev/null
@@ -0,0 +1,8 @@
+# Configuration for gsqlite
+#
+# Launch gsqlite3
+launch+=gsqlite3
+
+# Database location
+gsqlite3-database=/var/lib/powerdns/pdns.sqlite3
+gsqlite3-dnssec=on
diff --git a/build-scripts/debian-authoritative/config/pdns.local.ldap.conf b/build-scripts/debian-authoritative/config/pdns.local.ldap.conf
new file mode 100644 (file)
index 0000000..e9e7d3f
--- /dev/null
@@ -0,0 +1,7 @@
+# LDAP Configuration
+#
+# ldap-host=
+# ldap-method=
+# ldap-basedn=
+# ldap-binddn=
+# ldap-secret=
diff --git a/build-scripts/debian-authoritative/config/pdns.local.lua.conf b/build-scripts/debian-authoritative/config/pdns.local.lua.conf
new file mode 100644 (file)
index 0000000..529fe51
--- /dev/null
@@ -0,0 +1,13 @@
+# Configuration for the lua backend
+#lua-filename = powerdns-luabackend.lua
+#lua-logging-query = no
+
+# You can also override all the default functionsnames for the luafunctions if you
+# want. The prefix is lua-f_<functionname>=mynewfunction. For example:
+#lua-f_lookup = mynewfunction
+#
+# will call the function 'mynewfunction' for the lookup-routine.
+#
+# If you want your own configuration parameters you can have that too.
+# Just call the function getarg("my_parameter") and it will return the value
+# of 'lua-my_parameter'. For boolean you use the function mustdo("my_parameter").
diff --git a/build-scripts/debian-authoritative/config/pdns.local.pipe.conf b/build-scripts/debian-authoritative/config/pdns.local.pipe.conf
new file mode 100644 (file)
index 0000000..d52be74
--- /dev/null
@@ -0,0 +1,6 @@
+# Configuration for pipe backend
+#
+# pipe-command=
+# pipe-timeout=
+# pipe-regex=
+
diff --git a/build-scripts/debian-authoritative/config/pdns.simplebind.conf b/build-scripts/debian-authoritative/config/pdns.simplebind.conf
new file mode 100644 (file)
index 0000000..390260c
--- /dev/null
@@ -0,0 +1,2 @@
+launch+=bind
+bind-config=/etc/powerdns/bindbackend.conf
diff --git a/build-scripts/debian-authoritative/control b/build-scripts/debian-authoritative/control
new file mode 100644 (file)
index 0000000..7afa70e
--- /dev/null
@@ -0,0 +1,209 @@
+Source: pdns
+Section: net
+Priority: extra
+Standards-Version: 3.9.6
+Maintainer: PowerDNS Autobuilder <powerdns.support@powerdns.com>
+Origin: PowerDNS
+Build-Depends: debhelper (>= 9~), dh-autoreconf, dh-systemd, po-debconf, libtool, flex, bison, libmysqlclient-dev, libpq-dev, libssl-dev, libpolarssl-dev, libgdbm-dev, libldap2-dev, libsqlite3-dev, dpkg-dev (>= 1.17.0~), libboost-dev, libboost-serialization-dev, libboost-program-options-dev, libboost-test-dev, autotools-dev, automake, autoconf, liblua5.2-dev, pkg-config, libcrypto++-dev, ragel, libgmp-dev, libbotan1.10-dev, libcurl4-openssl-dev, libzmq-dev, liblmdb-dev, libyaml-cpp-dev (>= 0.5), libgeoip-dev
+Homepage: http://www.powerdns.com/
+
+Package: pdns-server
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, ucf (>= 0.28), adduser, lsb-base (>= 3.2-14)
+Replaces: pdns
+Suggests: pdns-backend, pdns-recursor
+Description: extremely powerful and versatile nameserver
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This is the authoritative nameserver that answers questions about
+ domains that it knows about. It also includes the bind backend that
+ allows PowerDNS to retrieve domain info from zone files as used by
+ the "bind" software.
+
+Package: pdns-tools
+Architecture: any
+Priority: extra
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Tools for DNS debugging by PowerDNS
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains several tools to debug DNS issues. These tools do not
+ require any part of the PowerDNS server components to work.
+ .
+ * dnsbulktest: A resolver stress-tester
+ * dnsgram: Show per 5-second statistics to study intermittent resolver issues
+ * dnsreplay: Replay a pcap with DNS queries
+ * dnsscan: Prints the query-type amounts in a pcap
+ * dnsscope: Calculates statistics without replaying traffic
+ * dnstcpbench: Perform TCP benchmarking of DNS servers
+ * dnswasher: Clean a pcap of identifying IP information
+ * nsec3dig: Calculate the correctness of NSEC3 proofs
+ * saxfr: AXFR zones and show extra information
+
+Package: pdns-server-dbg
+Section: debug
+Architecture: any
+Priority: extra
+Depends: pdns-server (= ${binary:Version}), ${misc:Depends}
+Description: debugging symbols for PowerDNS
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains debugging symbols for PowerDNS to assist in
+ debugging, such as gdb. It is not required for normal operation.
+
+Package: pdns-backend-pipe
+Architecture: any
+Depends: pdns-server (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
+Provides: pdns-backend
+Description: pipe/coprocess backend for PowerDNS
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains the pipe backend for the PowerDNS nameserver. This
+ allows PowerDNS to retrieve domain info from a process that accepts
+ questions on stdin and returns answers on stdout.
+
+Package: pdns-backend-ldap
+Architecture: any
+Depends: pdns-server (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
+Provides: pdns-backend
+Description: LDAP backend for PowerDNS
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains an LDAP backend for the PowerDNS nameserver.
+
+Package: pdns-backend-geo
+Architecture: any
+Depends: pdns-server (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
+Provides: pdns-backend
+Description: geo backend for PowerDNS
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains a geobackend for the PowerDNS nameserver. This backend
+ balances the load throughout the world so that people access the
+ geographically nearest available server.
+
+Package: pdns-backend-geoip
+Architecture: any
+Depends: pdns-server (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
+Recommends: geoip-database
+Provides: pdns-backend
+Description: geoip backend for PowerDNS
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains a geoipbackend for the PowerDNS nameserver. This backend
+ balances the load throughout the world so that people access the
+ geographically nearest available server based on the zonefile that is written
+ in yaml.
+
+Package: pdns-backend-mysql
+Architecture: any
+Depends: pdns-server (>= ${source:Version}), ucf (>= 0.28), ${shlibs:Depends}, ${misc:Depends}
+Recommends: mysql-client
+Suggests: mysql-server
+Provides: pdns-backend
+Description: generic MySQL backend for PowerDNS
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains a generic MySQL backend for the PowerDNS
+ nameserver. It has configurable SQL statements.
+
+Package: pdns-backend-pgsql
+Architecture: any
+Depends: pdns-server (>= ${source:Version}), ucf (>= 0.28), ${shlibs:Depends}, ${misc:Depends}
+Recommends: postgresql-client
+Suggests: postgresql
+Provides: pdns-backend
+Description: generic PostgreSQL backend for PowerDNS
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains a generic PostgreSQL backend for the PowerDNS
+ nameserver. It has configurable SQL statements.
+
+Package: pdns-backend-sqlite3
+Architecture: any
+Depends: pdns-server (>= ${source:Version}), ucf (>= 0.28), ${shlibs:Depends}, ${misc:Depends}, sqlite3
+Provides: pdns-backend
+Description: sqlite 3 backend for PowerDNS
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains a generic SQLite 3 backend for PowerDNS.
+
+Package: pdns-backend-lua
+Architecture: any
+Depends: pdns-server (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
+Provides: pdns-backend
+Description: Lua backend for PowerDNS
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains the Lua backend for PowerDNS.
+
+Package: pdns-backend-lmdb
+Architecture: any
+Depends: pdns-server (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
+Provides: pdns-backend
+Description: lmdb backend for PowerDNS
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains the Symas Lightning Memory-Mapped Database
+ backend for PowerDNS.
+
+Package: pdns-backend-remote
+Architecture: any
+Depends: pdns-server (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
+Provides: pdns-backend
+Description: remote backend for PowerDNS
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains the remote backend for PowerDNS. It is suitable
+ for serving data acquired from an AF_UNIX, pipe, or HTTP connector.
+
+Package: pdns-backend-mydns
+Architecture: any
+Depends: pdns-server (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
+Provides: pdns-backend
+Description: MyDNS compatibility backend for PowerDNS
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains the MyDNS compatibility backend for PowerDNS.
diff --git a/build-scripts/debian-authoritative/copyright b/build-scripts/debian-authoritative/copyright
new file mode 100644 (file)
index 0000000..d64cbcb
--- /dev/null
@@ -0,0 +1,149 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: PowerDNS
+Source: https://www.powerdns.com/downloads.html
+
+Files: *
+Copyright: 2002 - 2014 PowerDNS.COM BV and contributors
+License: GPL-2 with OpenSSL Exception
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License as
+ published by the Free Software Foundation.
+ .
+ In addition, for the avoidance of any doubt, permission is granted to
+ link this program with OpenSSL and to (re)distribute the binaries
+ produced as the result of such linking.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+Files: debian/*
+Copyright: 2002 - 2004 Wichert Akkermann <wichert@wiggy.net>
+ 2004 - 2013 Matthijs Möhlmann <matthijs@cacholong.nl>
+ 2012 - 2013 Marc Haber <mh+debian-packages@zugschlus.de>
+ 2014 Christian Hofstaedtler <zeha@debian.org>
+License: GPL-2
+
+Files: oraclebackend/*
+Copyright: 2010 - 2011 Maik Zumstrull
+ Steinbuch Centre for Computing,
+ Karlsruhe Institute of Technology
+License: Expat
+
+Files: install-sh
+Copyright: 1994 X Consortium
+License:
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+ .
+ Except as contained in this notice, the name of the X Consortium shall not
+ be used in advertising or otherwise to promote the sale, use or other deal-
+ ings in this Software without prior written authorization from the X Consor-
+ tium.
+ .
+ FSF changes to this file are in the public domain.
+
+Files: pdns/install-sh
+Copyright: 1991 by the Massachusetts Institute of Technology
+License:
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of M.I.T. not be used in advertising or
+ publicity pertaining to distribution of the software without specific,
+ written prior permission.  M.I.T. makes no representations about the
+ suitability of this software for any purpose.  It is provided "as is"
+ without express or implied warranty.
+
+Files: pdns/ext/yahttp*
+Copyright: 2014 Aki Tuomi
+License: Expat
+
+Files: pdns/ext/rapidjson/*
+Copyright: 2011 Milo Yip
+License: Expat
+
+Files: pdns/ext/polarssl*
+Copyright: 2006-2014, Brainspark B.V.
+License: GPL-2+
+
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+
+License: GPL-2
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+License: GPL-2+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
diff --git a/build-scripts/debian-authoritative/insserv.d/pdns-server b/build-scripts/debian-authoritative/insserv.d/pdns-server
new file mode 100644 (file)
index 0000000..0f9d957
--- /dev/null
@@ -0,0 +1 @@
+$named +pdns +pdns-recursor
diff --git a/build-scripts/debian-authoritative/patches/series b/build-scripts/debian-authoritative/patches/series
new file mode 100644 (file)
index 0000000..8b13789
--- /dev/null
@@ -0,0 +1 @@
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-geo.docs b/build-scripts/debian-authoritative/pdns-backend-geo.docs
new file mode 100644 (file)
index 0000000..b00a925
--- /dev/null
@@ -0,0 +1 @@
+modules/geobackend/README
diff --git a/build-scripts/debian-authoritative/pdns-backend-geo.examples b/build-scripts/debian-authoritative/pdns-backend-geo.examples
new file mode 100644 (file)
index 0000000..ed419f8
--- /dev/null
@@ -0,0 +1 @@
+debian/config/pdns.local.geo.conf
diff --git a/build-scripts/debian-authoritative/pdns-backend-geo.install b/build-scripts/debian-authoritative/pdns-backend-geo.install
new file mode 100644 (file)
index 0000000..9d07378
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/pdns/libgeobackend.so*
diff --git a/build-scripts/debian-authoritative/pdns-backend-geo.postinst b/build-scripts/debian-authoritative/pdns-backend-geo.postinst
new file mode 100644 (file)
index 0000000..6511fad
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# postinst script for pdns-backend-geo
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+# Activate trigger
+dpkg-trigger pdns-server
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-geo.prerm b/build-scripts/debian-authoritative/pdns-backend-geo.prerm
new file mode 100644 (file)
index 0000000..3298654
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# Add call to init script to actually stop pdns.
+
+set -e
+
+if [ -x "/etc/init.d/pdns" ]; then
+       invoke-rc.d pdns stop || exit $?
+fi
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-geoip.examples b/build-scripts/debian-authoritative/pdns-backend-geoip.examples
new file mode 100644 (file)
index 0000000..e3a59a4
--- /dev/null
@@ -0,0 +1 @@
+debian/config/pdns.local.geoip.conf
diff --git a/build-scripts/debian-authoritative/pdns-backend-geoip.install b/build-scripts/debian-authoritative/pdns-backend-geoip.install
new file mode 100644 (file)
index 0000000..d8ab64b
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/pdns/libgeoipbackend.so*
diff --git a/build-scripts/debian-authoritative/pdns-backend-geoip.postinst b/build-scripts/debian-authoritative/pdns-backend-geoip.postinst
new file mode 100644 (file)
index 0000000..6511fad
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# postinst script for pdns-backend-geo
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+# Activate trigger
+dpkg-trigger pdns-server
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-geoip.prerm b/build-scripts/debian-authoritative/pdns-backend-geoip.prerm
new file mode 100644 (file)
index 0000000..3298654
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# Add call to init script to actually stop pdns.
+
+set -e
+
+if [ -x "/etc/init.d/pdns" ]; then
+       invoke-rc.d pdns stop || exit $?
+fi
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-ldap.examples b/build-scripts/debian-authoritative/pdns-backend-ldap.examples
new file mode 100644 (file)
index 0000000..1c3b967
--- /dev/null
@@ -0,0 +1 @@
+debian/config/pdns.local.ldap.conf
diff --git a/build-scripts/debian-authoritative/pdns-backend-ldap.install b/build-scripts/debian-authoritative/pdns-backend-ldap.install
new file mode 100644 (file)
index 0000000..ae268dd
--- /dev/null
@@ -0,0 +1,3 @@
+usr/lib/*/pdns/libldapbackend.so*
+usr/bin/zone2ldap usr/bin/
+debian/config/dnsdomain2.schema etc/ldap/schema/
diff --git a/build-scripts/debian-authoritative/pdns-backend-ldap.manpages b/build-scripts/debian-authoritative/pdns-backend-ldap.manpages
new file mode 100644 (file)
index 0000000..33e216d
--- /dev/null
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man1/zone2ldap.1
diff --git a/build-scripts/debian-authoritative/pdns-backend-ldap.postinst b/build-scripts/debian-authoritative/pdns-backend-ldap.postinst
new file mode 100644 (file)
index 0000000..86d48ed
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# postinst script for pdns-backend-ldap
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+# Activating trigger
+dpkg-trigger pdns-server
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-ldap.prerm b/build-scripts/debian-authoritative/pdns-backend-ldap.prerm
new file mode 100644 (file)
index 0000000..3298654
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# Add call to init script to actually stop pdns.
+
+set -e
+
+if [ -x "/etc/init.d/pdns" ]; then
+       invoke-rc.d pdns stop || exit $?
+fi
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-lmdb.install b/build-scripts/debian-authoritative/pdns-backend-lmdb.install
new file mode 100644 (file)
index 0000000..45673ff
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/pdns/liblmdbbackend.so*
diff --git a/build-scripts/debian-authoritative/pdns-backend-lmdb.postinst b/build-scripts/debian-authoritative/pdns-backend-lmdb.postinst
new file mode 100644 (file)
index 0000000..7778c6a
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# postinst script for pdns-backend-lmdb
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+# Activate trigger
+dpkg-trigger pdns-server
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-lmdb.prerm b/build-scripts/debian-authoritative/pdns-backend-lmdb.prerm
new file mode 100644 (file)
index 0000000..3298654
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# Add call to init script to actually stop pdns.
+
+set -e
+
+if [ -x "/etc/init.d/pdns" ]; then
+       invoke-rc.d pdns stop || exit $?
+fi
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-lua.docs b/build-scripts/debian-authoritative/pdns-backend-lua.docs
new file mode 100644 (file)
index 0000000..e1bae81
--- /dev/null
@@ -0,0 +1 @@
+modules/luabackend/README
diff --git a/build-scripts/debian-authoritative/pdns-backend-lua.examples b/build-scripts/debian-authoritative/pdns-backend-lua.examples
new file mode 100644 (file)
index 0000000..d6d918f
--- /dev/null
@@ -0,0 +1 @@
+debian/config/pdns.local.lua.conf
diff --git a/build-scripts/debian-authoritative/pdns-backend-lua.install b/build-scripts/debian-authoritative/pdns-backend-lua.install
new file mode 100644 (file)
index 0000000..3cfcc37
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/pdns/libluabackend.so*
diff --git a/build-scripts/debian-authoritative/pdns-backend-lua.postinst b/build-scripts/debian-authoritative/pdns-backend-lua.postinst
new file mode 100644 (file)
index 0000000..c7eb911
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# postinst script for pdns-backend-lua
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+# Activate trigger
+dpkg-trigger pdns-server
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-lua.prerm b/build-scripts/debian-authoritative/pdns-backend-lua.prerm
new file mode 100644 (file)
index 0000000..3298654
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# Add call to init script to actually stop pdns.
+
+set -e
+
+if [ -x "/etc/init.d/pdns" ]; then
+       invoke-rc.d pdns stop || exit $?
+fi
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-mydns.docs b/build-scripts/debian-authoritative/pdns-backend-mydns.docs
new file mode 100644 (file)
index 0000000..a47a40c
--- /dev/null
@@ -0,0 +1 @@
+modules/mydnsbackend/schema.mydns.sql
diff --git a/build-scripts/debian-authoritative/pdns-backend-mydns.install b/build-scripts/debian-authoritative/pdns-backend-mydns.install
new file mode 100644 (file)
index 0000000..262f35e
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/pdns/libmydnsbackend.so*
diff --git a/build-scripts/debian-authoritative/pdns-backend-mydns.postinst b/build-scripts/debian-authoritative/pdns-backend-mydns.postinst
new file mode 100644 (file)
index 0000000..e97f7db
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# postinst script for pdns-backend-mydns
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+# Activate trigger
+dpkg-trigger pdns-server
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-mydns.prerm b/build-scripts/debian-authoritative/pdns-backend-mydns.prerm
new file mode 100644 (file)
index 0000000..3298654
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# Add call to init script to actually stop pdns.
+
+set -e
+
+if [ -x "/etc/init.d/pdns" ]; then
+       invoke-rc.d pdns stop || exit $?
+fi
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-mysql.docs b/build-scripts/debian-authoritative/pdns-backend-mysql.docs
new file mode 100644 (file)
index 0000000..1ea8dfc
--- /dev/null
@@ -0,0 +1,3 @@
+modules/gmysqlbackend/dnssec-3.x_to_3.4.0_schema.mysql.sql
+modules/gmysqlbackend/nodnssec-3.x_to_3.4.0_schema.mysql.sql
+modules/gmysqlbackend/schema.mysql.sql
diff --git a/build-scripts/debian-authoritative/pdns-backend-mysql.install b/build-scripts/debian-authoritative/pdns-backend-mysql.install
new file mode 100644 (file)
index 0000000..7ab852b
--- /dev/null
@@ -0,0 +1,2 @@
+usr/lib/*/pdns/libgmysqlbackend.so*
+debian/config/pdns.local.gmysql.conf usr/share/pdns-backend-mysql
diff --git a/build-scripts/debian-authoritative/pdns-backend-mysql.postinst b/build-scripts/debian-authoritative/pdns-backend-mysql.postinst
new file mode 100644 (file)
index 0000000..c332a5d
--- /dev/null
@@ -0,0 +1,60 @@
+#!/bin/sh
+#
+# postinst script for pdns-backend-mysql
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+PKGNAME="pdns-backend-gmysql"
+
+# rename ucf-conffile. This was mostly stolen from cacti.postinst after
+# a short discussion on debian-mentors, see
+# http://lists.debian.org/debian-mentors/2013/07/msg00027.html
+# and the following thread. Thanks to Paul Gevers
+renameconffile() {
+  oldname="$1"
+  newname="$2"
+  sourcefile="$3"
+  if [ -f $oldname ] ; then
+    if [ ! -e $newname ] ; then
+      mv $oldname $newname
+#   else: Don't do anything, leave old file in place
+    fi
+    ucf --purge $oldname
+    ucfr --purge $PKGNAME $oldname
+  elif [ ! -e $newname ] ; then
+#   The file was removed, we should respect that. Unfortunately, we don't
+#   have a proper way to tell ucf that for the new location, so we need
+#   to hack it a bit.
+#   We only need to do this if the target does not already exist. If the
+#   target already exists, we can later call ucf straight as there
+#   is already a version of the file available, althought never
+#   provided by this package, but we can just propose the new file anyway.
+    ucf --debconf-ok $sourcefile $newname
+    ucfr $PKGNAME $newname
+    rm -f $newname
+  fi
+}
+
+if [ "$1" = "configure" ]; then
+  if [ -n "$2" ] && dpkg --compare-versions "$2" lt 3.3; then
+    renameconffile /etc/powerdns/pdns.d/pdns.local.gmysql /etc/powerdns/pdns.d/pdns.local.gmysql.conf /dev/null
+  fi
+fi
+
+# Activate trigger
+dpkg-trigger pdns-server
+
+ucfr $PKGNAME /etc/powerdns/pdns.d/pdns.local.gmysql.conf
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-mysql.postrm b/build-scripts/debian-authoritative/pdns-backend-mysql.postrm
new file mode 100644 (file)
index 0000000..a270224
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/sh
+#
+# Post removal
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+PKGNAME="pdns-backend-mysql"
+
+# Remove configuration file
+if [ "$1" = "purge" ]; then
+    # Remove files registered with ucf.
+    # this has been pulled from aide-common.postrm
+
+    UCF="ucf"
+    UCFR="ucfr"
+
+    if command -v ucfq >/dev/null; then
+      for file in $(ucfq --with-colons "$PKGNAME" | cut --delimiter=: --fields=1); do
+        for ext in '~' '%' .bak .dpkg-tmp .dpkg-new .dpkg-old .dpkg-dist;  do
+          rm -f ${file}$ext
+        done
+        rm -f ${file}
+
+        if command -v $UCF >/dev/null; then
+          $UCF --purge ${file}
+        fi
+        if command -v $UCFR >/dev/null; then
+          $UCFR --purge $PKGNAME ${file}
+        fi
+      done
+    else
+      echo >&2 "ucf no longer installed, not cleaning up"
+    fi
+fi
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-mysql.prerm b/build-scripts/debian-authoritative/pdns-backend-mysql.prerm
new file mode 100644 (file)
index 0000000..d02c6bd
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# Pre removal
+
+set -e
+
+# Stop pdns.
+if [ -x "/etc/init.d/pdns" ]; then
+       invoke-rc.d pdns stop || exit $?
+fi
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-pgsql.docs b/build-scripts/debian-authoritative/pdns-backend-pgsql.docs
new file mode 100644 (file)
index 0000000..3b420cd
--- /dev/null
@@ -0,0 +1,3 @@
+modules/gpgsqlbackend/dnssec-3.x_to_3.4.0_schema.pgsql.sql
+modules/gpgsqlbackend/nodnssec-3.x_to_3.4.0_schema.pgsql.sql
+modules/gpgsqlbackend/schema.pgsql.sql
diff --git a/build-scripts/debian-authoritative/pdns-backend-pgsql.install b/build-scripts/debian-authoritative/pdns-backend-pgsql.install
new file mode 100644 (file)
index 0000000..b179a64
--- /dev/null
@@ -0,0 +1,2 @@
+usr/lib/*/pdns/libgpgsqlbackend.so*
+debian/config/pdns.local.gpgsql.conf usr/share/pdns-backend-pgsql
diff --git a/build-scripts/debian-authoritative/pdns-backend-pgsql.postinst b/build-scripts/debian-authoritative/pdns-backend-pgsql.postinst
new file mode 100644 (file)
index 0000000..fb9c140
--- /dev/null
@@ -0,0 +1,60 @@
+#!/bin/sh
+#
+# postinst script for pdns-backend-pgsql
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+PKGNAME="pdns-backend-pgsql"
+
+# rename ucf-conffile. This was mostly stolen from cacti.postinst after
+# a short discussion on debian-mentors, see
+# http://lists.debian.org/debian-mentors/2013/07/msg00027.html
+# and the following thread. Thanks to Paul Gevers
+renameconffile() {
+  oldname="$1"
+  newname="$2"
+  sourcefile="$3"
+  if [ -f $oldname ] ; then
+    if [ ! -e $newname ] ; then
+      mv $oldname $newname
+#   else: Don't do anything, leave old file in place
+    fi
+    ucf --purge $oldname
+    ucfr --purge $PKGNAME $oldname
+  elif [ ! -e $newname ] ; then
+#   The file was removed, we should respect that. Unfortunately, we don't
+#   have a proper way to tell ucf that for the new location, so we need
+#   to hack it a bit.
+#   We only need to do this if the target does not already exist. If the
+#   target already exists, we can later call ucf straight as there
+#   is already a version of the file available, althought never
+#   provided by this package, but we can just propose the new file anyway.
+    ucf --debconf-ok $sourcefile $newname
+    ucfr $PKGNAME $newname
+    rm -f $newname
+  fi
+}
+
+if [ "$1" = "configure" ]; then
+  if [ -n "$2" ] && dpkg --compare-versions "$2" lt 3.3; then
+    renameconffile /etc/powerdns/pdns.d/pdns.local.gpgsql /etc/powerdns/pdns.d/pdns.local.gpgsql.conf /dev/null
+  fi
+fi
+
+# Activate trigger
+dpkg-trigger pdns-server
+
+ucfr $PKGNAME /etc/powerdns/pdns.d/pdns.local.gpgsql.conf
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-pgsql.postrm b/build-scripts/debian-authoritative/pdns-backend-pgsql.postrm
new file mode 100644 (file)
index 0000000..57905f4
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/sh
+#
+# Post removal
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+PKGNAME="pdns-backend-pgsql"
+
+# Remove configuration file
+if [ "$1" = "purge" ]; then
+    # Remove files registered with ucf.
+    # this has been pulled from aide-common.postrm
+    
+    UCF="ucf"
+    UCFR="ucfr"
+
+    if command -v ucfq >/dev/null; then
+      for file in $(ucfq --with-colons "$PKGNAME" | cut --delimiter=: --fields=1); do
+        for ext in '~' '%' .bak .dpkg-tmp .dpkg-new .dpkg-old .dpkg-dist;  do
+          rm -f ${file}$ext
+        done
+        rm -f ${file}
+
+        if command -v $UCF >/dev/null; then
+          $UCF --purge ${file}
+        fi
+        if command -v $UCFR >/dev/null; then
+          $UCFR --purge $PKGNAME ${file}
+        fi
+      done
+    else
+      echo >&2 "ucf no longer installed, not cleaning up"
+    fi
+fi
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-pgsql.prerm b/build-scripts/debian-authoritative/pdns-backend-pgsql.prerm
new file mode 100644 (file)
index 0000000..d02c6bd
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# Pre removal
+
+set -e
+
+# Stop pdns.
+if [ -x "/etc/init.d/pdns" ]; then
+       invoke-rc.d pdns stop || exit $?
+fi
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-pipe.examples b/build-scripts/debian-authoritative/pdns-backend-pipe.examples
new file mode 100644 (file)
index 0000000..a6535ef
--- /dev/null
@@ -0,0 +1 @@
+debian/config/pdns.local.pipe.conf
diff --git a/build-scripts/debian-authoritative/pdns-backend-pipe.install b/build-scripts/debian-authoritative/pdns-backend-pipe.install
new file mode 100644 (file)
index 0000000..34a1acc
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/pdns/libpipebackend.so*
diff --git a/build-scripts/debian-authoritative/pdns-backend-pipe.postinst b/build-scripts/debian-authoritative/pdns-backend-pipe.postinst
new file mode 100644 (file)
index 0000000..b5ee1d2
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# postinst script for pdns-backend-pipe
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+# Activate trigger
+dpkg-trigger pdns-server
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-pipe.prerm b/build-scripts/debian-authoritative/pdns-backend-pipe.prerm
new file mode 100644 (file)
index 0000000..3298654
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# Add call to init script to actually stop pdns.
+
+set -e
+
+if [ -x "/etc/init.d/pdns" ]; then
+       invoke-rc.d pdns stop || exit $?
+fi
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-remote.install b/build-scripts/debian-authoritative/pdns-backend-remote.install
new file mode 100644 (file)
index 0000000..f8b7951
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/pdns/libremotebackend.so*
diff --git a/build-scripts/debian-authoritative/pdns-backend-remote.postinst b/build-scripts/debian-authoritative/pdns-backend-remote.postinst
new file mode 100644 (file)
index 0000000..7701ee1
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# postinst script for pdns-backend-remote
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+# Activate trigger
+dpkg-trigger pdns-server
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-remote.prerm b/build-scripts/debian-authoritative/pdns-backend-remote.prerm
new file mode 100644 (file)
index 0000000..3298654
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# Add call to init script to actually stop pdns.
+
+set -e
+
+if [ -x "/etc/init.d/pdns" ]; then
+       invoke-rc.d pdns stop || exit $?
+fi
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-sqlite3.dirs b/build-scripts/debian-authoritative/pdns-backend-sqlite3.dirs
new file mode 100644 (file)
index 0000000..c50e5cc
--- /dev/null
@@ -0,0 +1 @@
+var/lib/powerdns
diff --git a/build-scripts/debian-authoritative/pdns-backend-sqlite3.docs b/build-scripts/debian-authoritative/pdns-backend-sqlite3.docs
new file mode 100644 (file)
index 0000000..7dbfd92
--- /dev/null
@@ -0,0 +1,3 @@
+modules/gsqlite3backend/dnssec-3.x_to_3.4.0_schema.sqlite3.sql
+modules/gsqlite3backend/nodnssec-3.x_to_3.4.0_schema.sqlite3.sql
+modules/gsqlite3backend/schema.sqlite3.sql
diff --git a/build-scripts/debian-authoritative/pdns-backend-sqlite3.install b/build-scripts/debian-authoritative/pdns-backend-sqlite3.install
new file mode 100644 (file)
index 0000000..e38dfd3
--- /dev/null
@@ -0,0 +1,2 @@
+usr/lib/*/pdns/libgsqlite3backend.so*
+debian/config/pdns.local.gsqlite3.conf usr/share/pdns-backend-sqlite3
diff --git a/build-scripts/debian-authoritative/pdns-backend-sqlite3.postinst b/build-scripts/debian-authoritative/pdns-backend-sqlite3.postinst
new file mode 100644 (file)
index 0000000..ea24daf
--- /dev/null
@@ -0,0 +1,60 @@
+#! /bin/sh
+#
+# postinst script for pdns-backend-sqlite3
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+PKGNAME="pdns-backend-sqlite3"
+
+# rename ucf-conffile. This was mostly stolen from cacti.postinst after
+# a short discussion on debian-mentors, see
+# http://lists.debian.org/debian-mentors/2013/07/msg00027.html
+# and the following thread. Thanks to Paul Gevers
+renameconffile() {
+  oldname="$1"
+  newname="$2"
+  sourcefile="$3"
+  if [ -f $oldname ] ; then
+    if [ ! -e $newname ] ; then
+      mv $oldname $newname
+#   else: Don't do anything, leave old file in place
+    fi
+    ucf --purge $oldname
+    ucfr --purge $PKGNAME $oldname
+  elif [ ! -e $newname ] ; then
+#   The file was removed, we should respect that. Unfortunately, we don't
+#   have a proper way to tell ucf that for the new location, so we need
+#   to hack it a bit.
+#   We only need to do this if the target does not already exist. If the
+#   target already exists, we can later call ucf straight as there
+#   is already a version of the file available, althought never
+#   provided by this package, but we can just propose the new file anyway.
+    ucf --debconf-ok $sourcefile $newname
+    ucfr $PKGNAME $newname
+    rm -f $newname
+  fi
+}
+
+if [ "$1" = "configure" ]; then
+  if [ -n "$2" ] && dpkg --compare-versions "$2" lt 3.3; then
+    renameconffile /etc/powerdns/pdns.d/pdns.local.gsqlite3 /etc/powerdns/pdns.d/pdns.local.gsqlite3.conf /dev/null
+  fi
+fi
+
+ucfr $PKGNAME /etc/powerdns/pdns.d/pdns.local.gsqlite3.conf
+
+# Activate trigger
+dpkg-trigger pdns-server
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-sqlite3.postrm b/build-scripts/debian-authoritative/pdns-backend-sqlite3.postrm
new file mode 100644 (file)
index 0000000..1f7a83d
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/sh
+#
+# Post removal
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+PKGNAME="pdns-backend-sqlite3"
+
+# Remove configuration file
+if [ "$1" = "purge" ]; then
+    # Remove files registered with ucf.
+    # this has been pulled from aide-common.postrm
+    
+    UCF="ucf"
+    UCFR="ucfr"
+
+    if command -v ucfq >/dev/null; then
+      for file in $(ucfq --with-colons "$PKGNAME" | cut --delimiter=: --fields=1); do
+        for ext in '~' '%' .bak .dpkg-tmp .dpkg-new .dpkg-old .dpkg-dist;  do
+          rm -f ${file}$ext
+        done
+        rm -f ${file}
+
+        if command -v $UCF >/dev/null; then
+          $UCF --purge ${file}
+        fi
+        if command -v $UCFR >/dev/null; then
+          $UCFR --purge $PKGNAME ${file}
+        fi
+      done
+    else
+      echo >&2 "ucf no longer installed, not cleaning up"
+    fi
+fi
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-backend-sqlite3.prerm b/build-scripts/debian-authoritative/pdns-backend-sqlite3.prerm
new file mode 100644 (file)
index 0000000..d02c6bd
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# Pre removal
+
+set -e
+
+# Stop pdns.
+if [ -x "/etc/init.d/pdns" ]; then
+       invoke-rc.d pdns stop || exit $?
+fi
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-server.README.Debian b/build-scripts/debian-authoritative/pdns-server.README.Debian
new file mode 100644 (file)
index 0000000..3840693
--- /dev/null
@@ -0,0 +1,28 @@
+Notes about Debian's PowerDNS package
+-------------------------------------
+
+ + Introduction
+
+PowerDNS is a powerful DNS server, it has the ability to communicate
+with several backends, including MySQL, PostgreSQL, LDAP etc.
+
+ + Configure
+
+The configuration for PowerDNS is separated in different files. In
+/etc/powerdns/pdns.conf are the default settings and in
+/etc/powerdns/pdns.d/pdns.local.conf are the user changes. The
+configuration for specific backends can go into
+/etc/powerdns/pdns.d/pdns.local.conf or any other file in
+/etc/powerdns/pdns.d/ending in .conf. Please note that there can only
+be a single launch= statement, and that you need to take care that
+your editor does not leave backup files around, as PowerDNS reads
+every file in the directory (see
+http://wiki.powerdns.com/trac/ticket/493)
+
+ + Chroot
+
+PowerDNS can run in a chrooted environment but this has some disadvantages.
+It is not easy to connect via a socket to another service like MySQL. And when
+using the sqlite backend you need to move the database in your chroot. If you
+don't have these restrictions you can easily enable the chroot option.
+
diff --git a/build-scripts/debian-authoritative/pdns-server.config b/build-scripts/debian-authoritative/pdns-server.config
new file mode 100644 (file)
index 0000000..08f5557
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+# Load several components for debconf configuration
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+PDNSCONF=/etc/powerdns/pdns.conf
+
+db_version 2.0
+if [ ! -f $PDNSCONF ]; then
+  db_input medium pdns-server/localaddress || true
+  db_input medium pdns-server/allowrecursion || true
+
+  db_go || true
+else
+  LOCAL=`(cat $PDNSCONF | grep "^local-address=" | awk -F '=' '{print $2}') || true`
+  RECURSION=`(cat $PDNSCONF | grep "^allow-recursion=" | awk -F '=' '{print $2}') || true`
+
+  # Put multiple lines on one line and separate them by a comma
+  REC=""
+  for i in $RECURSION; do
+    REC="$i,$REC"
+  done
+
+  # Remove , on the end of the line
+  RECURSION=`echo $REC | sed -e 's/,$//'`
+
+  if [ ! -z "$RECURSION" ]; then
+    db_set pdns-server/allowrecursion "$RECURSION"
+  else
+    db_set pdns-server/allowrecursion "127.0.0.1"
+  fi
+  if [ ! -z "$LOCAL" ]; then
+    db_set pdns-server/localaddress $LOCAL
+  else
+    db_set pdns-server/localaddress "0.0.0.0"
+  fi
+
+  db_fset pdns-server/allowrecursion seen true
+  db_fset pdns-server/localaddress seen true
+fi
+
+db_stop || true
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-server.dirs b/build-scripts/debian-authoritative/pdns-server.dirs
new file mode 100644 (file)
index 0000000..9a574d5
--- /dev/null
@@ -0,0 +1,3 @@
+etc/powerdns/pdns.d
+etc/resolvconf
+etc/resolvconf/update.d
diff --git a/build-scripts/debian-authoritative/pdns-server.examples b/build-scripts/debian-authoritative/pdns-server.examples
new file mode 100644 (file)
index 0000000..1f6c247
--- /dev/null
@@ -0,0 +1 @@
+debian/config/pdns.local.bind.conf
diff --git a/build-scripts/debian-authoritative/pdns-server.install b/build-scripts/debian-authoritative/pdns-server.install
new file mode 100644 (file)
index 0000000..4443164
--- /dev/null
@@ -0,0 +1,11 @@
+usr/bin/pdns_control
+usr/bin/zone2sql
+usr/bin/pdnssec
+usr/lib/*/pdns/libbindbackend.so*
+usr/sbin/pdns_server
+debian/config/pdns.conf usr/share/pdns-server/
+debian/config/pdns.local.conf usr/share/pdns-server/
+debian/config/pdns usr/share/pdns-server/
+debian/config/pdns.simplebind.conf usr/share/pdns-server/
+debian/resolvconf/pdns etc/resolvconf/update.d/
+debian/insserv.d/pdns-server etc/insserv.d/
diff --git a/build-scripts/debian-authoritative/pdns-server.manpages b/build-scripts/debian-authoritative/pdns-server.manpages
new file mode 100644 (file)
index 0000000..d1c8b8c
--- /dev/null
@@ -0,0 +1,4 @@
+debian/tmp/usr/share/man/man1/pdns_control.1
+debian/tmp/usr/share/man/man1/pdns_server.1
+debian/tmp/usr/share/man/man1/zone2sql.1
+debian/tmp/usr/share/man/man1/pdnssec.1
diff --git a/build-scripts/debian-authoritative/pdns-server.pdns.init b/build-scripts/debian-authoritative/pdns-server.pdns.init
new file mode 100644 (file)
index 0000000..d951ccb
--- /dev/null
@@ -0,0 +1,273 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides:          pdns
+# Required-Start:    $network $remote_fs $syslog
+# Required-Stop:     $network $remote_fs $syslog
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Should-Start:      slapd
+# Should-Stop:       slapd
+# Short-Description: PowerDNS Authoritative Name Server
+# Description: PDNS is a versatile high performance authoritative nameser
+### END INIT INFO
+
+PATH=/bin:/sbin:/usr/bin:/usr/sbin
+BINARYPATH=/usr/bin
+SBINARYPATH=/usr/sbin
+SOCKETPATH=/var/run
+
+ODESC="PowerDNS Authoritative Name Server"
+DESC="$ODESC"
+NAME=pdns
+DAEMON=/usr/sbin/pdns_server
+DAEMON_ARGS=""
+CONTROL=/usr/bin/pdns_control
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+
+[ -x "$DAEMON" ] || exit 0
+
+[ -r /etc/default/pdns ] && . /etc/default/pdns
+
+# Make sure that /var/run exists
+mkdir -p $SOCKETPATH
+cd $SOCKETPATH
+
+# Handle instance scripts
+suffix=$(basename $0 | cut -d- -f2- -s)
+
+if [ -n "$suffix" ]; then
+       SUFFIX="--config-name=$suffix"
+       DAEMON_ARGS="$DAEMON_ARGS $SUFFIX"
+       NAME="$NAME-$suffix"
+       DESC="$DESC (config name $suffix)"
+       PIDFILE="/var/run/$NAME-$suffix.pid"
+fi
+
+# Define LSB log_* functions.
+. /lib/lsb/init-functions
+
+# function to invoke properly parametrized pdns_control
+doPC()
+{
+       $CONTROL $SUFFIX $1 $2 2> /dev/null
+       return $?
+}
+
+isrunning()
+{
+       doPC ping > /dev/null
+       return $?
+}
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+       # Return
+       #   0 if daemon has been started
+       #   1 if daemon was already running
+       #   2 if daemon could not be started
+       if isrunning; then
+               return 1
+       fi
+       start-stop-daemon --start --quiet \
+               --pidfile $PIDFILE --exec $DAEMON -- \
+               $DAEMON_ARGS --daemon --guardian=yes \
+               || return 2
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+       # Return
+       #   0 if daemon has been stopped
+       #   1 if daemon was already stopped
+       #   2 if daemon could not be stopped
+       #   other if a failure occurred
+       doPC quit >/dev/null
+       RETVAL="2"
+       for sec in $(seq 1 5); do
+               if ! isrunning; then
+                       RETVAL="0"
+                       break
+               fi
+               sleep 1
+       done
+       [ "$RETVAL" = 2 ] && return 2
+       rm -f $PIDFILE
+}
+
+case "$1" in
+  start)
+       [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
+       do_start
+       case "$?" in
+               0|1)
+                       [ "$VERBOSE" != no ] && log_end_msg 0
+                       exit 0
+                       ;;
+               2)
+                       [ "$VERBOSE" != no ] && log_end_msg 1
+                       exit 1
+                       ;;
+       esac
+       ;;
+  stop)
+       [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+       do_stop
+       case "$?" in
+               0|1)
+                       [ "$VERBOSE" != no ] && log_end_msg 0
+                       exit 0
+                       ;;
+               2)
+                       [ "$VERBOSE" != no ] && log_end_msg 1
+                       exit 1
+                       ;;
+       esac
+       ;;
+  status)
+       if isrunning; then
+               log_success_msg "$NAME is running: $(doPC status)"
+               exit 0
+       else
+               log_failure_msg "$NAME is not running"
+               exit 3
+       fi
+       ;;
+  force-stop)
+       [ "$VERBOSE" != no ] && log_daemon_msg "Killing $ODESC (all instances)" "$NAME"
+       kill -9 $(pidof pdns_server)
+       case "$?" in
+               0)
+                       [ "$VERBOSE" != no ] && log_end_msg 0
+                       exit 0
+                       ;;
+               1)
+                       [ "$VERBOSE" != no ] && log_end_msg 1
+                       exit 1
+                       ;;
+       esac
+       ;;
+  restart)
+       log_daemon_msg "Restarting $DESC" "$NAME"
+       do_stop
+       case "$?" in
+               0|1)
+                       do_start
+                       case "$?" in
+                               0)
+                                       log_end_msg 0
+                                       exit 0
+                                       ;;
+                               1)
+                                       log_end_msg 1  # Old process is still running
+                                       exit 1
+                                       ;;
+                               *)
+                                       log_end_msg 1 # Failed to start
+                                       exit 1
+                                       ;;
+                       esac
+                       ;;
+               *)
+                       # Failed to stop
+                       log_end_msg 1
+                       exit 1
+                       ;;
+       esac
+       ;;
+  reload|force-reload)
+       log_daemon_msg "Reloading $DESC" "$NAME"
+       if isrunning; then
+               doPC cycle >/dev/null
+               case "$?" in
+                       0)
+                               [ "$VERBOSE" != no ] && log_end_msg 0
+                               exit 0
+                               ;;
+                       1)
+                               [ "$VERBOSE" != no ] && log_end_msg 1
+                               exit 1
+                               ;;
+               esac
+       else
+               log_end_msg 0
+               exit 7
+       fi
+       ;;
+  monitor)
+       if isrunning; then
+               echo "already running"
+               exit 1
+       else
+               $DAEMON $DAEMON_ARGS --daemon=no --guardian=no --control-console --loglevel=9
+               exit 0
+       fi
+       ;;
+  dump)
+       if isrunning; then
+               doPC list
+               exit 0
+       else
+               echo "not running"
+               exit 7
+       fi
+       ;;
+  show)
+       if isrunning; then
+               if [ $# -lt 2 ]; then
+                       echo "Insufficient parameters"
+                       exit 2
+               fi
+               echo -n "$2="
+               doPC show $2
+               exit 0
+       else
+               echo "not running"
+               exit 7
+       fi
+       ;;
+  mrtg)
+       if isrunning; then
+               if [ $# -lt 2 ]; then
+                       echo "Insufficient parameters"
+                       exit 2
+               fi
+               doPC show $2
+               if [ "$3x" != "x" ]; then
+                       doPC show $3
+               else
+                       echo 0
+               fi
+               doPC uptime
+               echo "$DESC"
+               exit 0
+       else
+               echo "not running"
+               exit 7
+       fi
+       ;;
+  cricket)
+       if isrunning; then
+               if [ $# -lt 2 ]; then
+                       echo "Insufficient parameters"
+                       exit 1
+               fi
+               doPC show $2
+               exit 0
+       else
+               echo "not running"
+               exit 7
+       fi
+       ;;
+  *)
+       echo "Usage: $SCRIPTNAME {start|stop|status|force-stop|restart|reload|monitor|dump|show|mrtg|cricket}"
+       ;;
+esac
+
+exit 0
diff --git a/build-scripts/debian-authoritative/pdns-server.pdns.service b/build-scripts/debian-authoritative/pdns-server.pdns.service
new file mode 100644 (file)
index 0000000..9d3ba43
--- /dev/null
@@ -0,0 +1,15 @@
+[Unit]
+Description=PowerDNS Authoritative Server
+After=network-online.target
+
+[Service]
+Type=simple
+ExecStart=/usr/sbin/pdns_server --daemon=no
+ExecStop=/usr/bin/pdns_control quit
+TimeoutStopSec=5
+Restart=on-failure
+RestartSec=2
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/build-scripts/debian-authoritative/pdns-server.postinst b/build-scripts/debian-authoritative/pdns-server.postinst
new file mode 100644 (file)
index 0000000..5e57e6d
--- /dev/null
@@ -0,0 +1,169 @@
+#!/bin/sh
+#
+# postinst script for pdns-server
+
+set -e
+
+# Load debconf
+. /usr/share/debconf/confmodule
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+PKGNAME="pdns-server"
+
+PDNSCONF=/etc/powerdns/pdns.conf
+PDNSDEFAULT=/etc/default/pdns
+if [ -e $PDNSCONF ]; then
+  PDNSDIR=`cat $PDNSCONF | grep include | awk -F '=' '{print $2}'`
+fi
+if [ -z "$PDNSDIR" ]; then
+  PDNSDIR=/etc/powerdns/pdns.d
+fi
+PDNSLOCAL=$PDNSDIR/pdns.local.conf
+
+# Temporary files
+PDNSCONFTEMP=`mktemp`
+PDNSLOCALTEMP=`mktemp`
+PDNSDEFAULTTEMP=`mktemp`
+
+# rename ucf-conffile. This was mostly stolen from cacti.postinst after
+# a short discussion on debian-mentors, see
+# http://lists.debian.org/debian-mentors/2013/07/msg00027.html
+# and the following thread. Thanks to Paul Gevers
+renameconffile() {
+  oldname="$1"
+  newname="$2"
+  sourcefile="$3"
+  if [ -f $oldname ] ; then
+    if [ ! -e $newname ] ; then
+      mv $oldname $newname
+#   else: Don't do anything, leave old file in place
+    fi
+    ucf --purge $oldname
+    ucfr --purge $PKGNAME $oldname
+  elif [ ! -e $newname ] ; then
+#   The file was removed, we should respect that. Unfortunately, we don't
+#   have a proper way to tell ucf that for the new location, so we need
+#   to hack it a bit.
+#   We only need to do this if the target does not already exist. If the
+#   target already exists, we can later call ucf straight as there
+#   is already a version of the file available, althought never
+#   provided by this package, but we can just propose the new file anyway.
+    ucf --debconf-ok $sourcefile $newname
+    ucfr $PKGNAME $newname
+    rm -f $newname
+  fi
+}
+
+
+case "$1" in
+  configure)
+    if [ -z "`getent group pdns`" ]; then
+      addgroup --quiet --system pdns
+    fi
+    if [ -z "`getent passwd pdns`" ]; then
+      echo -n "Creating user and group pdns..."
+      adduser --quiet --system --home /var/spool/powerdns --shell /bin/false --ingroup pdns --disabled-password --disabled-login --gecos "PowerDNS" pdns
+      echo "done"
+    fi
+
+    # Fill the temporary files with config items.
+    cat /usr/share/pdns-server/pdns.conf > $PDNSCONFTEMP
+    cat /usr/share/pdns-server/pdns.local.conf > $PDNSLOCALTEMP
+    cat /usr/share/pdns-server/pdns > $PDNSDEFAULTTEMP
+
+    # Do we listen on a specified address
+    db_get pdns-server/localaddress || true
+    if [ ! -z "$RET" ]; then
+      sed -i -e "s|^\(#\)\?\(# \)\?local-address=.*$|local-address=$RET|" $PDNSCONFTEMP
+    fi
+
+    # Allow recursion subnets ?
+    db_get pdns-server/allowrecursion || true
+    if [ ! -z "$RET" ]; then
+      sed -i -e "s|^\(#\)\?\(# \)\?allow-recursion=.*$|allow-recursion=$RET|" $PDNSCONFTEMP
+    fi
+    
+    # this can be removed once we do not have to update from
+    # wheezy (pdns 3.1) any more. Note: there was never pdns 3.2 in Debian
+    if [ -n "$2" ] && dpkg --compare-versions "$2" lt 3.3; then
+      renameconffile $PDNSDIR/pdns.local $PDNSDIR/pdns.local.conf $PDNSLOCALTEMP
+      renameconffile $PDNSDIR/pdns.simplebind $PDNSDIR/pdns.simplebind.conf /usr/share/pdns-server/pdns.simplebind.conf
+    fi
+
+    # register configuration files with ucf
+    ucfr $PKGNAME $PDNSCONF
+    ucfr $PKGNAME $PDNSDEFAULT
+    ucfr $PKGNAME $PDNSLOCAL
+    ucfr $PKGNAME $PDNSDIR/pdns.simplebind.conf
+
+
+    # Install the new configuration files if the user wants it.
+    ucf --debconf-ok $PDNSCONFTEMP $PDNSCONF
+    ucf --debconf-ok $PDNSDEFAULTTEMP $PDNSDEFAULT
+    ucf --debconf-ok $PDNSLOCALTEMP $PDNSLOCAL
+    ucf --debconf-ok /usr/share/pdns-server/pdns.simplebind.conf $PDNSDIR/pdns.simplebind.conf
+
+    # Stop the debconf stuff
+    db_stop || true
+
+    # Clean up temporary files.
+    rm -f $PDNSCONFTEMP $PDNSLOCALTEMP $PDNSDEFAULTTEMP
+
+    # There could be passwords in these files. PowerDNS first reads the
+    # configuration files and then drop root privileges.
+    if [ -z "$2" ]; then
+      [ -e $PDNSCONF ] && chmod 0600 $PDNSCONF
+      [ -e $PDNSLOCAL ] && chmod 0600 $PDNSLOCAL
+      [ -d $PDNSDIR ] && chmod 0755 $PDNSDIR
+      [ -e $PDNSDEFAULT ] && chmod 0644 $PDNSDEFAULT
+    fi
+    
+    # If we still have the default config, make sure bindbackend.conf exists
+    PDNSBIND="/etc/powerdns/pdns.d/pdns.simplebind.conf"
+    PDNSBINDBACKENDCONF="/etc/powerdns/bindbackend.conf"
+    if [ -e "$PDNSBIND" ]; then
+      if grep -q "^bind-config=$PDNSBINDBACKENDCONF$" $PDNSBIND; then
+        touch $PDNSBINDBACKENDCONF
+      fi
+    fi
+
+  ;;
+
+  triggered)
+    if [ -x /usr/sbin/invoke-rc.d ]; then
+      invoke-rc.d pdns restart || exit $?
+    else
+      /etc/init.d/pdns restart || exit $?
+    fi
+
+    # Stop the debconf stuff
+    db_stop || true
+  ;;
+
+  abort-upgrade|abort-remove|abort-deconfigure)
+  ;;
+
+  *)
+    echo "postinst called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+# Recover from incorrect init.d script headers in version 2.9.22-1 and earlier
+if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le "2.9.22-1" \
+       && [ -f /etc/rc0.d/K[0-9][0-9]pdns ] \
+       && ! [ -f /etc/rc1.d/K[0-9][0-9]pdns ]; then
+  update-rc.d -f pdns remove
+fi
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-server.postrm b/build-scripts/debian-authoritative/pdns-server.postrm
new file mode 100644 (file)
index 0000000..f81d9b1
--- /dev/null
@@ -0,0 +1,58 @@
+#!/bin/sh
+#
+# postrm script for pdns-server
+
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+PKGNAME="pdns-server"
+
+case "$1" in
+  remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+  ;;
+
+  purge)
+    # Remove pseudo-conffile.
+    rm -f /etc/powerdns/bindbackend.conf
+
+    # Remove files registered with ucf.
+    # this has been pulled from aide-common.postrm
+    
+    UCF="ucf"
+    UCFR="ucfr"
+
+    if command -v ucfq >/dev/null; then
+      for file in $(ucfq --with-colons "$PKGNAME" | cut --delimiter=: --fields=1); do
+        for ext in '~' '%' .bak .dpkg-tmp .dpkg-new .dpkg-old .dpkg-dist;  do
+          rm -f ${file}$ext
+        done
+        rm -f ${file}
+
+        if command -v $UCF >/dev/null; then
+          $UCF --purge ${file}
+        fi
+        if command -v $UCFR >/dev/null; then
+          $UCFR --purge $PKGNAME ${file}
+        fi
+      done
+    else
+      echo >&2 "ucf no longer installed, not cleaning up"
+    fi
+  ;;
+
+  *)
+    echo "postrm called with unknown argument \`$1'" >&2
+    exit 1
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-authoritative/pdns-server.templates b/build-scripts/debian-authoritative/pdns-server.templates
new file mode 100644 (file)
index 0000000..737b5e4
--- /dev/null
@@ -0,0 +1,15 @@
+Template: pdns-server/localaddress
+Type: string
+_Description: IP address where PowerDNS should listen on:
+ If you have multiple IPs, the default behaviour of binding to all addresses
+ can cause the OS to select the wrong IP for outgoing packets, so it is
+ recommended to bind PowerDNS to a specific IP here.
+
+Template: pdns-server/allowrecursion
+Type: string
+Default: 127.0.0.1
+_Description: List of subnets that are allowed to recurse:
+ Enter here, comma separated, the subnets that are allowed to recurse.
+ Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a
+ subnet.
+
diff --git a/build-scripts/debian-authoritative/pdns-tools.install b/build-scripts/debian-authoritative/pdns-tools.install
new file mode 100644 (file)
index 0000000..a76d775
--- /dev/null
@@ -0,0 +1,9 @@
+usr/bin/dnsbulktest
+usr/bin/dnsgram
+usr/bin/dnsreplay
+usr/bin/dnsscan
+usr/bin/dnsscope
+usr/bin/dnstcpbench
+usr/bin/dnswasher
+usr/bin/nsec3dig
+usr/bin/saxfr
diff --git a/build-scripts/debian-authoritative/pdns-tools.manpages b/build-scripts/debian-authoritative/pdns-tools.manpages
new file mode 100644 (file)
index 0000000..1be4dc2
--- /dev/null
@@ -0,0 +1,9 @@
+debian/tmp/usr/share/man/man1/dnsbulktest.1
+debian/tmp/usr/share/man/man1/dnsgram.1
+debian/tmp/usr/share/man/man1/dnsreplay.1
+debian/tmp/usr/share/man/man1/dnsscan.1
+debian/tmp/usr/share/man/man1/dnsscope.1
+debian/tmp/usr/share/man/man1/dnstcpbench.1
+debian/tmp/usr/share/man/man1/dnswasher.1
+debian/tmp/usr/share/man/man1/nsec3dig.1
+debian/tmp/usr/share/man/man1/saxfr.1
diff --git a/build-scripts/debian-authoritative/po/POTFILES.in b/build-scripts/debian-authoritative/po/POTFILES.in
new file mode 100644 (file)
index 0000000..9ff8f78
--- /dev/null
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] pdns-server.templates
diff --git a/build-scripts/debian-authoritative/po/cs.po b/build-scripts/debian-authoritative/po/cs.po
new file mode 100644 (file)
index 0000000..3adfdb8
--- /dev/null
@@ -0,0 +1,70 @@
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2007-01-27 22:44+0100\n"
+"Last-Translator: Jan Outrata <outrataj@upcase.inf.upol.cz>\n"
+"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "IP adresa, na které má PowerDNS naslouchat:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"Pokud máte více IP adres, může výchozí napojení na všechny adresy způsobit, "
+"že OS vybere pro odchozí pakety špatnou IP, takže je doporučeno PowerDNS "
+"napojit na specifickou IP adresu."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Seznam podsítí, které je povoleno začlenit:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Zde zadejte, oddělené čárkami, podsítě, které je povoleno začlenit. Možné "
+"hodnoty jsou 127.0.0.1 pro IP adresu a 192.168.0.0/24 pro podsíť."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "Chcete spustit server PowerDNS automaticky?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Pokud zde odpovíte kladně, bude inicializační skript automaticky "
+#~ "startovat autoritativní jmenný server PowerDNS."
diff --git a/build-scripts/debian-authoritative/po/da.po b/build-scripts/debian-authoritative/po/da.po
new file mode 100644 (file)
index 0000000..6d6613a
--- /dev/null
@@ -0,0 +1,63 @@
+# Danish translation pdns.
+# Copyright (C) 2010 pdns & nedenstående oversættere.
+# This file is distributed under the same license as the pdns package.
+# Joe Hansen <joedalton2@yahoo.dk>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2010-06-11 17:30+01:00\n"
+"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
+"Language-Team: Danish <debian-l10n-danish@lists.debian.org> \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "IP-adresse hvorpå PowerDNS skal lytte:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"Hvis du har flere IP'er, kan standardopførelsen for tildeling til alle "
+"adresser medføre at operativsystemet vælger den forkerte IP til udgående "
+"pakker, så det anbefales at tildele PowerDNS en specifik IP her."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Liste af undernet som har tilladelse til rekursiv:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Indtast her, kommaadskilt, de undernet som har tilladelse til rekursiv. "
+"Tilladte værdier er 127.0.0.1 for en ip-adresse og 192.168.0.0/24 for et "
+"undernet."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "Ønsker du automatisk at starte PowerDNS-serveren?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Hvis du accepterer her, vil et opstartsskript blive brugt til automatisk "
+#~ "at starte den autoritære PowerDNS-navneserver."
diff --git a/build-scripts/debian-authoritative/po/de.po b/build-scripts/debian-authoritative/po/de.po
new file mode 100644 (file)
index 0000000..bc1e4bc
--- /dev/null
@@ -0,0 +1,72 @@
+# translation of de.po to German
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#    Developers do not need to manually edit POT or PO files.
+# Christoph Haas <email@christoph-haas.de>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: de\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2006-05-11 21:59+0200\n"
+"Last-Translator: Christoph Haas <email@christoph-haas.de>\n"
+"Language-Team:  <de@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "IP-Adresse, an der PowerDNS Anfragen entgegen nimmt."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"Falls sie mehrere IP-Adressen haben, bindet sich PowerDNS standardmäßig an "
+"alle Adressen. Möglicherweise wählt das Betriebssystem dadurch aber die "
+"falsche Adresse für ausgehende Datenpakete aus. Es wird empfohlen, die IP-"
+"Adresse hier explizit anzugeben."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Liste der Subnetze, die rekursive Anfragen stellen dürfen:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Geben Sie hier - durch Kommas getrennt - die Subnetze an, die rekursive "
+"Anfragen stellen dürfen. Erlaubte Werte sind z.B. 127.0.0.1 für eine IP-"
+"Adresse oder 192.168.0.0/24 für ein Subnetz."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "Soll der PowerDNS-Server automatisch gestartet werden?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Wenn Sie hier \"OK\" auswählen, wird im Init-Skript der autoritative "
+#~ "Nameserver automatisch mit gestartet."
diff --git a/build-scripts/debian-authoritative/po/es.po b/build-scripts/debian-authoritative/po/es.po
new file mode 100644 (file)
index 0000000..73d278d
--- /dev/null
@@ -0,0 +1,88 @@
+# pdns po-debconf translation to Spanish
+# Copyright (C) 2008 Software in the Public Interest
+# This file is distributed under the same license as the pdns package.
+#
+# Changes:
+# - Initial translation
+#      Alba Ferri Fitó <branvan2k@gmail.com>, 2008
+# - Updates
+#      Alba Ferri Fitó <branvan2k@gmail.com>, 2008
+#
+# Traductores, si no conoce el formato PO, merece la pena leer la
+# documentación de gettext, especialmente las secciones dedicadas a este
+# formato, por ejemplo ejecutando:
+#       info -n '(gettext)PO Files'
+#       info -n '(gettext)Header Entry'
+#
+# Equipo de traducción al español, por favor, lean antes de traducir
+# los siguientes documentos:
+#
+#  - El proyecto de traducción de Debian al español
+#    http://www.debian.org/intl/spanish/
+#    especialmente las notas de traducción en
+#    http://www.debian.org/intl/spanish/notas
+#
+#  - La guía de traducción de po's de debconf:
+#    /usr/share/doc/po-debconf/README-trans
+#    o http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns_2.9.21.1.0-1\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2008-26-11 04:36+0200\n"
+"Last-Translator: Alba Ferri <branvan2k@gmail.com>\n"
+"Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "Dirección IP en la que debe escuchar PowerDNS:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"Si posee múltiples IP, el comportamiento por omisión de vincular todas las "
+"direcciones puede causar que el Sistema Operativo seleccione la IP "
+"incorrecta para los paquetes salientes, por tanto se recomienda vincular "
+"PowerDNS a una IP específica."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Lista de subredes permitidas a las que se puede acceder:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Introduzca aquí, separadas por comas, las subredes permitidas a las que se "
+"puede acceder. Los valores permitidos son 127.0.0.1 para una dirección ip y "
+"192.168.0.0/24 para una subred."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "¿Desea iniciar el servidor PowerDNS automáticamente?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Si acepta, un script de inicio se usará para iniciar automáticamente el "
+#~ "servidor de nombres autoritario de PowerDNS."
diff --git a/build-scripts/debian-authoritative/po/eu.po b/build-scripts/debian-authoritative/po/eu.po
new file mode 100644 (file)
index 0000000..ec95864
--- /dev/null
@@ -0,0 +1,64 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Piarres Beobide <pi@beobide.net>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2009-10-29 09:31+0200\n"
+"Last-Translator: Piarres Beobide <pi@beobide.net>\n"
+"Language-Team: Euskara <debian-l10n-basque@lists.debian.org\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Virtaal 0.4.1\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "PowerDNS-ek entzun behar duen IP helbidea:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"IP helbide anitz adituzu helbide guztietara lotzeko lehenetsitako portaera k "
+"SE-ak kanporako paketeetan okerreko IP helbidea hautatzea, beraz "
+"gomendagarria da PowerDNS IP zehatz batera hemen lotzea."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Errekurtsoa erbaili dezaketen azpisare zerrenda:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"IDatzi hemen, gakoz bereizirik errekurtsoa erabili dezateken azpisareak. "
+"Onartzen diren balio formatua 127.0.0.1 ip helbideeentzat eta 192.168.0.0/24 "
+"azpisareentzat."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "PowerDNS zerbitzaria automatikoki abiaraztea nahi al duzu?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Hemen onartuaz hasiera-script bat erabiliko da PowerDNS izen-zerbitzaria "
+#~ "automatikoki abiarazteko."
diff --git a/build-scripts/debian-authoritative/po/fi.po b/build-scripts/debian-authoritative/po/fi.po
new file mode 100644 (file)
index 0000000..343e3ee
--- /dev/null
@@ -0,0 +1,65 @@
+# Copyright (C) 2009
+# This file is distributed under the same license as the pdns package.
+#
+# Esko Arajärvi <edu@iki.fi>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2009-11-01 20:50+0200\n"
+"Last-Translator: Esko Arajärvi <edu@iki.fi>\n"
+"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "IP-osoite, jota PowerDNS:n tulisi kuunnella:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"Oletuksena PowerDNS kuuntelee kaikkia osoitteita. Jos järjestelmällä on "
+"useampia IP-osoitteita, käyttöjärjestelmä saattaa valita väärän IP-osoitteen "
+"lähteville paketeille. Tästä syystä on suositeltavaa määritellä tässä tietty "
+"IP-osoite."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Aliverkot, jotka saavat tehdä rekursiivisia kyselyitä:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Anna pilkuin eroteltuina luettelo aliverkoista, jotka saavat tehdä "
+"rekursiivisia kyselyitä. Sallitut muodot ovat 127.0.0.1 IP-osoitteille ja "
+"192.168.0.0/24 aliverkoille."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "Tulisiko the PowerDNS-palvelin käynnistää automaattisesti?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Jos valitset tämän vaihtoehdon, PowerDNS käynnistetään automaattisesti "
+#~ "määräävänä nimipalvelimena käyttäen käynnistyskomentosarjaa."
diff --git a/build-scripts/debian-authoritative/po/fr.po b/build-scripts/debian-authoritative/po/fr.po
new file mode 100644 (file)
index 0000000..76182f1
--- /dev/null
@@ -0,0 +1,70 @@
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+# Developers do not need to manually edit POT or PO files.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2006-05-14 14:55+0200\n"
+"Last-Translator: Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "Adresse IP où PowerDNS doit être à l'écoute :"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"Si vous utilisez plusieurs adresses IP, le comportement par défaut est "
+"d'écouter sur chacune d'entre-elles, ce qui peut conduire le système "
+"d'exploitation à choisir la mauvaise adresse IP pour les paquets sortants. "
+"Il est donc recommandé d'associer PowerDNS à une adresse IP spécifique."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Liste des sous-réseaux pouvant être interrogés :"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Veuillez indiquer la liste des sous-réseaux, séparés par des virgules, qu'il "
+"est autorisé de parcourir. Des valeurs autorisées sont 127.0.0.1 pour une "
+"adresse IP et 192.168.0.0/24 pour un sous-réseau entier."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "PowerDNS doit-il être démarré automatiquement ?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Si vous choisissez cette option, PowerDNS sera lancé automatiquement au "
+#~ "démarrage du système."
diff --git a/build-scripts/debian-authoritative/po/gl.po b/build-scripts/debian-authoritative/po/gl.po
new file mode 100644 (file)
index 0000000..0d720d5
--- /dev/null
@@ -0,0 +1,63 @@
+# Galician translation of pdns's debconf templates
+# This file is distributed under the same license as the pdns package.
+# Jacobo Tarrio <jtarrio@debian.org>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2007-03-07 00:36+0100\n"
+"Last-Translator: Jacobo Tarrio <jtarrio@debian.org>\n"
+"Language-Team: Galician <proxecto@trasno.net>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "Enderezo IP no que PowerDNS debería escoitar:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"Se ten varios enderezos IP, o comportamento por defecto de se ligar a "
+"tódolos enderezos pode facer que o sistema operativo escolla o IP incorrecto "
+"para os paquetes saíntes, polo que se recomenda ligar PowerDNS a un enderezo "
+"IP determinado."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Lista de subredes ás que se lle permite facer recursión:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Introduza aquí, separadas por comas, as subredes ás que se lle permite facer "
+"recursión. Admítense os valores 127.0.0.1 para un enderezo IP e "
+"192.168.0.0/24 para unha subrede."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "¿Quere iniciar o servidor PowerDNS automaticamente?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Se acepta esta opción, hase empregar un script de inicio para iniciar "
+#~ "automaticamente o servidor de nomes con autoridade PowerDNS."
diff --git a/build-scripts/debian-authoritative/po/it.po b/build-scripts/debian-authoritative/po/it.po
new file mode 100644 (file)
index 0000000..0741aff
--- /dev/null
@@ -0,0 +1,64 @@
+# Italian translation of pdns.\r
+# COPYRIGHT (C) 2009 THE pdns'S COPYRIGHT HOLDER\r
+# This file is distributed under the same license as the pdns package.\r
+# Luca Monducci <luca.mo@tiscali.it>, 2009.\r
+# \r
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns 2.9.22 italian debconf templates\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2009-10-17 15:01+0200\n"
+"Last-Translator: Luca Monducci <luca.mo@tiscali.it>\n"
+"Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "Indirizzo IP su cui PowerDNS deve stare in ascolto:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"In caso di più IP, il comportamento predefinito di collegarsi su tutti gli "
+"indirizzi potrebbe comportare la scelta da parte del SO dell'IP sbagliato "
+"per i pacchetti in uscita, per questo si raccomanda di collegare PowerDNS a "
+"un IP specifico."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Elenco delle sottoreti a cui è concesso di l'uso del server:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Inserire l'elenco delle sottoreti, separate da una virgola, a cui è permesso "
+"l'uso del server. I valori ammessi sono 127.0.0.1 per un indirizzo IP e "
+"192.168.0.0/24 per una sottorete."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "Avviare il server PowerDNS automaticamente?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Accettando, verrà usato uno initscript che avvierà automaticamente il "
+#~ "nameserver autoritativo PowerDNS."
diff --git a/build-scripts/debian-authoritative/po/ja.po b/build-scripts/debian-authoritative/po/ja.po
new file mode 100644 (file)
index 0000000..93a331f
--- /dev/null
@@ -0,0 +1,62 @@
+# Copyright (C) 2008 Debian PowerDNS Maintainers <powerdns-debian@workaround.org>\r
+# This file is distributed under the same license as pdns package.\r
+# Hideki Yamane (Debian-JP) <henrich@debian.or.jp>, 2008.\r
+# \r
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns 2.9.21.2-1\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2008-12-28 22:26+0900\n"
+"Last-Translator: Hideki Yamane (Debian-JP) <henrich@debian.or.jp>\n"
+"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "PowerDNS が listen する IP アドレス:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"複数の IP アドレスがある場合、デフォルトの全てのアドレスをバインドするという"
+"挙動は、OS が外部へのパケットに対して誤った IP を返すようにしてしまいます。こ"
+"こで PowerDNS が特定の IP にバインドするように設定するのをお勧めします。"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "再起検索を許可するサブネットのリスト:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"再起検索を許可するサブネットをカンマで区切ってここで入力してください。許可す"
+"る値としては、127.0.0.1 は 1 つの IP アドレスで、192.168.0.0/24 はサブネット"
+"になります。"
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "自動的に PowerDNS サーバが起動するようにしますか?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "これを有効にすると、初期化スクリプトは PowerDNS の authoritative ネーム"
+#~ "サーバを自動的に起動するようになります。"
diff --git a/build-scripts/debian-authoritative/po/nl.po b/build-scripts/debian-authoritative/po/nl.po
new file mode 100644 (file)
index 0000000..24a4ed1
--- /dev/null
@@ -0,0 +1,71 @@
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+# Developers do not need to manually edit POT or PO files.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns 2.9.18-2\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2006-05-11 21:38+0200\n"
+"Last-Translator: Matthijs Mohlmann <matthijs@cacholong.nl>\n"
+"Language-Team: Debian l10n Dutch <debian-l10n-dutch@lists.debian.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "IP-adres waar PowerDNS op moet luisteren:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"Als u meerdere IP-adressen heeft, dan is het standaard gedrag om op alle "
+"adressen te luisteren. Dat kan als gevolg kan hebben dat het OS het "
+"verkeerde IP-adres kiest voor uitgaande pakketten. Daarom is het aan te "
+"raden om PowerDNS op een specifiek IP-adres te laten luisteren."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Subnetten vanwaar recursieve query's worden uitgevoerd:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Voer hier, gescheiden door komma's, de subnetten in die recursieve query's "
+"mogen uitvoeren. Toegestane waarden zijn 127.0.0.1 voor een IP-adres en "
+"192.168.0.0/24 voor een subnet."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "Wilt u PowerDNS automatisch laten starten?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Als u bevestigend antwoordt op deze dialoog, dan zal er een opstartscript "
+#~ "gebruikt worden om PowerDNS automatisch te starten."
diff --git a/build-scripts/debian-authoritative/po/pt.po b/build-scripts/debian-authoritative/po/pt.po
new file mode 100644 (file)
index 0000000..d87740c
--- /dev/null
@@ -0,0 +1,65 @@
+# translation of pdns debconf to Portuguese
+# 2005-11-03 - Luís de Matos - Initial translation
+#
+# Luís de Matos <gass@otiliamatos.ath.cx>, 2005.
+# Américo Monteiro <a_monteiro@netcabo.pt>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns 2.9.21-2\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2007-09-26 22:42+0100\n"
+"Last-Translator: Américo Monteiro <a_monteiro@netcabo.pt>\n"
+"Language-Team: Portuguese <traduz@debianpt.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "O endereço IP onde o PowerDNS deverá escutar:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"Se tem vários IPs, o comportamento por omissão de ligar a todos os endereços "
+"pode levar o SO a seleccionar um IP errado para os pacotes de saída, "
+"portanto é recomendado ligar aqui o PowerDNS a um IP específico."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Lista de subredes que são autorizadas a aceder:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Insira aqui, separadas por vírgulas, as subredes que são autorizadas a "
+"aceder. Os valores autorizados são 127.0.0.1 para um endereço ip e "
+"192.168.0.0/24 para uma subrede."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "Deseja iniciar automaticamente o servidor PowerDNS?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Se aceitar aqui, será utilizado um script de inicialização para iniciar "
+#~ "automaticamente o servidor de nomes autoritário PowerDNS."
diff --git a/build-scripts/debian-authoritative/po/pt_BR.po b/build-scripts/debian-authoritative/po/pt_BR.po
new file mode 100644 (file)
index 0000000..bc26361
--- /dev/null
@@ -0,0 +1,64 @@
+# Debconf translations for pdns.
+# Copyright (C) 2011 THE pdns'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the pdns package.
+# Adriano Rafael Gomes <adrianorg@arg.eti.br>, 2011, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns 3.1-4\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2013-07-20 18:21-0300\n"
+"Last-Translator: Adriano Rafael Gomes <adrianorg@arg.eti.br>\n"
+"Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian."
+"org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "Endereço IP onde o PowerDNS deverá escutar:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"Se você tiver múltiplos IPs, o comportamento padrão de escutar em todos os "
+"endereços pode fazer com que o SO selecione o IP errado para a saída dos "
+"pacotes, assim, é recomendado que o PowerDNS escute em um IP específico aqui."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Lista de sub-redes às quais é permitido usar recursão:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Informe aqui, separadas por vírgulas, as sub-redes às quais é permitido usar "
+"recursão. Valores permitidos são, por exemplo, 127.0.0.1 para um endereço IP "
+"e 192.168.0.0/24 para uma sub-rede."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "Você quer iniciar o servidor PowerDNS automaticamente?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Se você aceitar aqui, um script de inicialização será usado para iniciar "
+#~ "automaticamente o servidor de nomes autoritativo PowerDNS."
diff --git a/build-scripts/debian-authoritative/po/ru.po b/build-scripts/debian-authoritative/po/ru.po
new file mode 100644 (file)
index 0000000..8f7c2c6
--- /dev/null
@@ -0,0 +1,67 @@
+# translation of ru.po to Russian
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Yuri Kozlov <yuray@komyakino.ru>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns 2.9.22-1\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2009-07-19 09:17+0400\n"
+"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "IP-адрес, на котором PowerDNS должен принимать запросы:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"Если у вас несколько IP, то поведение по умолчанию, когда запросы "
+"принимаются со всех адресов, может привести к тому, что ОС выберет неверный "
+"IP для исходящих пакетов, поэтому рекомендуется привязать PowerDNS к какому-"
+"то определённому IP."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Список подсетей, для которых разрешены рекурсивные запросы:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Введите через запятую список подсетей, для которых разрешены рекурсивные "
+"запросы. Можно указывать отдельные адреса в виде 127.0.0.1 и целые подсети в "
+"виде 192.168.0.0/24."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "Запускать сервер PowerDNS автоматически?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "При включении машины можно автоматически запускать авторитетный сервер "
+#~ "имён PowerDNS."
diff --git a/build-scripts/debian-authoritative/po/sv.po b/build-scripts/debian-authoritative/po/sv.po
new file mode 100644 (file)
index 0000000..3560c71
--- /dev/null
@@ -0,0 +1,74 @@
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns 2.9.18-3\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2006-05-11 21:44+0100\n"
+"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
+"Language-Team: Swedish <sv@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: swed\n"
+"X-Poedit-Country: swed\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "IP-adress som PowerDNS ska lyssna på:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"Om du har flera IP-adresser kan standardbeteendet, som är att binda till "
+"alla adresser, leda till att operativsystemet väljer fel IP-adress för "
+"utgående paket så det rekommenderas att binda PowerDNS till en specifik IP-"
+"adress här."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Lista på subnät som tillåts ställa rekursiva frågor:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Ange de subnät (kommaseparerade) som ska tillåtas ställa rekursiva frågor. "
+"Tillåtna värden är 127.0.0.1 för en IP-adress och 192.168.0.0/24 för ett "
+"subnät."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "Vill du starta PowerDNS-servern automatiskt?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Om du accepterar här kommer ett init-skript att användas för att "
+#~ "automatiskt starta PowerDNS auktoritativa namnserver."
diff --git a/build-scripts/debian-authoritative/po/templates.pot b/build-scripts/debian-authoritative/po/templates.pot
new file mode 100644 (file)
index 0000000..d20474b
--- /dev/null
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
diff --git a/build-scripts/debian-authoritative/po/vi.po b/build-scripts/debian-authoritative/po/vi.po
new file mode 100644 (file)
index 0000000..e56dafb
--- /dev/null
@@ -0,0 +1,65 @@
+# Vietnamese translation for pdns.
+# Copyright © 2007 Free Software Foundation, Inc.
+# Clytie Siddall <clytie@riverland.net.au>, 2005-2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: pdns 2.9.20-8\n"
+"Report-Msgid-Bugs-To: pdns@packages.debian.org\n"
+"POT-Creation-Date: 2012-06-17 13:40+0000\n"
+"PO-Revision-Date: 2007-05-30 22:46+0930\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+"Language: vi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: LocFactoryEditor 1.6.3b1\n"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid "IP address where PowerDNS should listen on:"
+msgstr "Địa chỉ IP nơi PowerDNS nên lắng nghe:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:1001
+msgid ""
+"If you have multiple IPs, the default behaviour of binding to all addresses "
+"can cause the OS to select the wrong IP for outgoing packets, so it is "
+"recommended to bind PowerDNS to a specific IP here."
+msgstr ""
+"Nếu bạn có nhiều địa chỉ IP khác nhau, hành vi mặc định là đóng kết đến mọi "
+"địa chỉ thì có thể gây ra hệ điều hành chọn địa chỉ IP không đúng cho gói "
+"tin gởi ra. Vì thế khuyên bạn đóng kết trình PowerDNS đến một địa chỉ IP "
+"riêng."
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid "List of subnets that are allowed to recurse:"
+msgstr "Danh sách mạng phụ được phép đệ qui:"
+
+#. Type: string
+#. Description
+#: ../pdns-server.templates:2001
+msgid ""
+"Enter here, comma separated, the subnets that are allowed to recurse. "
+"Allowed values are 127.0.0.1 for an ip address and 192.168.0.0/24 for a "
+"subnet."
+msgstr ""
+"Hãy nhập vào đây, định giới bằng dấu chấm phẩy, những mạng phụ được phép đệ "
+"qui. Giá trị có thể là 127.0.0.1 cho địa chỉ IP và 192.168.0.0/24 cho mạng "
+"phụ."
+
+#~ msgid "Do you want to start the PowerDNS server automatically?"
+#~ msgstr "Bạn có muốn tự động khởi chạy trình phục vụ PowerDNS không?"
+
+#~ msgid ""
+#~ "If you accept here, an initscript will be used to automatically start the "
+#~ "PowerDNS authoritative nameserver."
+#~ msgstr ""
+#~ "Chấp nhận ở đây thì một tập lệnh khởi chạy (initscript) được dùng để tự "
+#~ "động khởi chạy trình phục vụ tên có uy quyền PowerDNS."
diff --git a/build-scripts/debian-authoritative/resolvconf/pdns b/build-scripts/debian-authoritative/resolvconf/pdns
new file mode 100644 (file)
index 0000000..051d98e
--- /dev/null
@@ -0,0 +1,85 @@
+#!/bin/sh
+#
+# Script to update PowerDNS recursor configuration fragment
+#
+# N.B. Resolvconf may run us even if pdns not running.
+# If pdns is installed then we go ahead and update
+# the pdns configuration file in case pdns is started later.
+#
+# Assumption: On entry, PWD contains the resolv.conf-type files
+#
+# Licensed under the GNU GPL. See /usr/share/common-licenses/GPL
+#
+# History:
+# April 2005: Written by Jack Bates <ms419@freezone.co.uk> and
+#             Thomas Hood <jdthood@yahoo.co.uk>
+
+set -e
+PATH=/bin:/sbin
+
+DEFAULT=/etc/default/pdns
+[ -f $DEFAULT ] && . $DEFAULT
+
+if [ -z "${RESOLVCONF_UPDATE_FORWARDERS:-}" ]; then
+    echo "Warning: \$RESOLVCONF_UPDATE_FORWARDERS not defined in $DEFAULT." >&2
+    echo "         Pulling the emergency brake..." >&2
+    exit 0
+fi
+
+case $RESOLVCONF_UPDATE_FORWARDERS in
+    y*|Y*|1|on|On|true|True|TRUE) :;;
+    *)
+        echo "Not updating PowerDNS, disabled in $DEFAULT." >&2
+        exit 0
+    ;;
+esac
+
+[ -x /usr/sbin/pdns_server ] || exit 0
+[ -x /lib/resolvconf/list-records ] || exit 1
+
+RUN_DIR=/var/run
+CONF_FILE="$RUN_DIR/pdns.recursors"
+TMP_FILE="${CONF_FILE}_new.$$"
+
+# Get list of records, excluding our own
+RSLVCNFFILES="$(/lib/resolvconf/list-records | sed -e '/^lo.pdns$/d')"
+
+clean_up() { rm -f "$TMP_FILE" ; }
+trap clean_up EXIT
+clean_up
+
+# Convert nameserver lines to recursor statements, without duplicates
+if [ "$RSLVCNFFILES" ]; then
+  sed -n "
+    s/^nameserver[[:space:]]\+/recursor=/
+    # If no substitution (not a nameserver line) then skip line
+    T
+    # Append hold space (i.e., previous recursor statements) to pattern space
+    G
+    # If this line is a duplicate then skip line
+    /\(^.*\n\).*\1/d
+    # Disable 127.0.0.1 lines, can cause a dns loop.
+    /=127\./d
+    # Copy pattern space, including current line, to hold space
+    h
+    # Print current line
+    P
+  " $RSLVCNFFILES > "$TMP_FILE"
+else
+  :> "$TMP_FILE"
+fi
+
+if [ "$1" = "-i" ]; then
+  mv -f "$TMP_FILE" "$CONF_FILE"
+  exit 0
+fi
+
+# Reload pdns unless we know its configuration file hasn't changed
+if [ -x /usr/bin/diff ] && [ -f "$CONF_FILE" ] && /usr/bin/diff -q "$CONF_FILE" "$TMP_FILE" > /dev/null ; then
+  # No change
+  rm -f "$TMP_FILE"
+else
+  mv -f "$TMP_FILE" "$CONF_FILE"
+  [ -x /etc/init.d/pdns ] && ps -C pdns_server > /dev/null && invoke-rc.d pdns reload || :
+fi
+
diff --git a/build-scripts/debian-authoritative/rules b/build-scripts/debian-authoritative/rules
new file mode 100755 (executable)
index 0000000..97d3ad8
--- /dev/null
@@ -0,0 +1,63 @@
+#!/usr/bin/make -f
+
+# Vendor and version
+version := $(shell dpkg-parsechangelog -SVersion).$(shell dpkg-vendor --query Vendor)
+CXXFLAGS += -DPACKAGEVERSION='"$(version)"'
+
+# Backends
+backends := bind ldap pipe gmysql gpgsql gsqlite3 geo geoip lua lmdb mydns remote
+
+DEB_HOST_MULTIARCH  ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
+# Use new build system
+%:
+       dh $@ --with autoreconf --parallel
+
+override_dh_auto_configure:
+       test -f pdns/dnslabeltext.cc && mv pdns/dnslabeltext.cc debian/dnslabeltext.cc.moved || true
+       ./configure \
+               --host=$(DEB_HOST_GNU_TYPE) \
+               --build=$(DEB_BUILD_GNU_TYPE) \
+               --prefix=/usr \
+               --sysconfdir=/etc/powerdns \
+               --mandir=\$${prefix}/share/man \
+               --infodir=\$${prefix}/share/info \
+               --libdir='$${prefix}/lib/$(DEB_HOST_MULTIARCH)' \
+               --libexecdir='$${prefix}/lib' \
+               --with-dynmodules="$(backends)" \
+               --with-modules="" \
+               --with-system-polarssl \
+               --with-pgsql-includes=`pg_config --includedir` \
+               --enable-cryptopp \
+               --enable-botan1.10 \
+               --enable-tools \
+               --enable-unit-tests
+
+# pdns-server has a debug package
+override_dh_strip:
+       dh_strip --dbg-package=pdns-server-dbg
+
+# Additional permissions
+override_dh_fixperms:
+       dh_fixperms
+       chmod 755 debian/pdns-server/etc/resolvconf/update.d/pdns
+
+# init script needs to be named pdns, not pdns-server
+override_dh_installinit:
+       dh_systemd_enable --name=pdns
+       dh_installinit --name=pdns
+       dh_systemd_start --restart-after-upgrade
+
+# Verbose build (shows used compiler/linker and their flags)
+override_dh_auto_build-arch:
+       dh_auto_build -- V=1
+
+# Verbose tests (shows used compiler/linker and their flags)
+override_dh_auto_test:
+       $(MAKE) -C pdns check
+       #dh_auto_test -- V=1
+
+# restore moved files
+override_dh_clean:
+       test -f debian/dnslabeltext.cc.moved && mv debian/dnslabeltext.cc.moved pdns/dnslabeltext.cc || true
+       dh_clean
diff --git a/build-scripts/debian-authoritative/source/format b/build-scripts/debian-authoritative/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/build-scripts/debian-authoritative/tests/control b/build-scripts/debian-authoritative/tests/control
new file mode 100644 (file)
index 0000000..fd14296
--- /dev/null
@@ -0,0 +1,3 @@
+Tests: smoke
+Depends: pdns-server, dnsutils
+Restrictions: needs-root
diff --git a/build-scripts/debian-authoritative/tests/smoke b/build-scripts/debian-authoritative/tests/smoke
new file mode 100755 (executable)
index 0000000..ee3aa3b
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/bash
+exec 2>&1
+set -ex
+
+cat <<EOF >/etc/powerdns/bindbackend.conf
+zone "example.org" { type master; file "/etc/powerdns/example.org.zone"; };
+EOF
+
+cat <<EOF >/etc/powerdns/example.org.zone
+example.org.           172800  IN      SOA     ns1.example.org. dns.example.org. 1 10800 3600 604800 3600
+example.org.           172800  IN      NS      ns1.example.org.
+smoke.example.org.     172800  IN      A       127.0.0.123
+EOF
+
+service pdns restart
+
+TMPFILE=$(mktemp)
+cleanup() {
+  rm -f "$TMPFILE"
+}
+trap cleanup EXIT
+
+dig @127.0.0.1 smoke.example.org 2>&1 | tee "$TMPFILE"
+
+if grep -c '127\.0\.0\.123' "$TMPFILE"; then
+    echo success
+else
+    echo smoke could not be resolved
+    exit 1
+fi
+
diff --git a/build-scripts/debian-authoritative/triggers b/build-scripts/debian-authoritative/triggers
new file mode 100644 (file)
index 0000000..1603282
--- /dev/null
@@ -0,0 +1 @@
+interest pdns-server
diff --git a/build-scripts/debian-authoritative/watch b/build-scripts/debian-authoritative/watch
new file mode 100644 (file)
index 0000000..61eca75
--- /dev/null
@@ -0,0 +1,6 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# Site         Directory               Pattern                 Version Script
+version=3
+http://downloads.powerdns.com/releases/        pdns-([0-9]+.*)\.tar\.(gz|bz2)  debian  uupdate
index cca2614cdbb29240d02b0adabd526914209d0627..9c6a1b8a58833cea839150a70421eafced346df4 100644 (file)
@@ -2,6 +2,7 @@ Source: dnsdist
 Section: net
 Priority: optional
 Maintainer: PowerDNS Autobuilder <powerdns.support@powerdns.com>
+Origin: PowerDNS
 Build-Depends: debhelper (>= 9), dh-systemd (>= 1.5), autotools-dev, libboost-dev, liblua5.2-dev, libsodium-dev
 Standards-Version: 3.9.5
 Homepage: http://dnsdist.org
diff --git a/build-scripts/debian-recursor/README.source b/build-scripts/debian-recursor/README.source
new file mode 100644 (file)
index 0000000..cf42723
--- /dev/null
@@ -0,0 +1 @@
+See /usr/share/doc/quilt/README.source
diff --git a/build-scripts/debian-recursor/changelog b/build-scripts/debian-recursor/changelog
new file mode 100644 (file)
index 0000000..8b13789
--- /dev/null
@@ -0,0 +1 @@
+
diff --git a/build-scripts/debian-recursor/compat b/build-scripts/debian-recursor/compat
new file mode 100644 (file)
index 0000000..ec63514
--- /dev/null
@@ -0,0 +1 @@
+9
diff --git a/build-scripts/debian-recursor/config/recursor.conf b/build-scripts/debian-recursor/config/recursor.conf
new file mode 100644 (file)
index 0000000..ef1a957
--- /dev/null
@@ -0,0 +1,302 @@
+# Autogenerated configuration file template
+#################################
+# aaaa-additional-processing   turn on to do AAAA additional processing (slow)
+#
+# aaaa-additional-processing=off
+
+#################################
+# allow-from   If set, only allow these comma separated netmasks to recurse
+#
+# allow-from=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
+
+#################################
+# allow-from-file      If set, load allowed netmasks from this file
+#
+# allow-from-file=
+
+#################################
+# auth-can-lower-ttl   If we follow RFC 2181 to the letter, an authoritative server can lower the TTL of NS records
+#
+# auth-can-lower-ttl=off
+
+#################################
+# auth-zones   Zones for which we have authoritative data, comma separated domain=file pairs 
+#
+# auth-zones=
+
+#################################
+# chroot       switch to chroot jail
+#
+# chroot=
+
+#################################
+# client-tcp-timeout   Timeout in seconds when talking to TCP clients
+#
+# client-tcp-timeout=2
+
+#################################
+# config-dir   Location of configuration directory (recursor.conf)
+#
+# config-dir=/etc/powerdns/
+
+#################################
+# daemon       Operate as a daemon
+#
+# daemon=yes
+
+#################################
+# delegation-only      Which domains we only accept delegations from
+#
+# delegation-only=
+
+#################################
+# disable-edns Disable EDNS
+#
+# disable-edns=
+
+#################################
+# disable-edns-ping    Disable EDNSPing
+#
+# disable-edns-ping=no
+
+#################################
+# disable-packetcache  Disable packetcache
+#
+# disable-packetcache=no
+
+#################################
+# dont-query   If set, do not query these netmasks for DNS data
+#
+# dont-query=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
+
+#################################
+# entropy-source       If set, read entropy from this file
+#
+# entropy-source=/dev/urandom
+
+#################################
+# etc-hosts-file       Path to 'hosts' file
+#
+# etc-hosts-file=/etc/hosts
+
+#################################
+# export-etc-hosts     If we should serve up contents from /etc/hosts
+#
+# export-etc-hosts=off
+
+#################################
+# forward-zones        Zones for which we forward queries, comma separated domain=ip pairs
+#
+# forward-zones=
+
+#################################
+# forward-zones-file   File with (+)domain=ip pairs for forwarding
+#
+# forward-zones-file=
+
+#################################
+# forward-zones-recurse        Zones for which we forward queries with recursion bit, comma separated domain=ip pairs
+#
+# forward-zones-recurse=
+
+#################################
+# hint-file    If set, load root hints from this file
+#
+# hint-file=
+
+#################################
+# ignore-rd-bit        Assume each packet requires recursion, for compatability
+#
+# ignore-rd-bit=off
+
+#################################
+# local-address        IP addresses to listen on, separated by spaces or commas. Also accepts ports.
+#
+local-address=127.0.0.1
+
+#################################
+# local-port   port to listen on
+#
+local-port=53
+
+#################################
+# log-common-errors    If we should log rather common errors
+#
+# log-common-errors=yes
+
+#################################
+# logging-facility     Facility to log messages as. 0 corresponds to local0
+#
+# logging-facility=
+
+#################################
+# lua-dns-script       Filename containing an optional 'lua' script that will be used to modify dns answers
+#
+# lua-dns-script=
+
+#################################
+# max-cache-entries    If set, maximum number of entries in the main cache
+#
+# max-cache-entries=1000000
+
+#################################
+# max-cache-ttl        maximum number of seconds to keep a cached entry in memory
+#
+# max-cache-ttl=86400
+
+#################################
+# max-mthreads Maximum number of simultaneous Mtasker threads
+#
+# max-mthreads=2048
+
+#################################
+# max-negative-ttl     maximum number of seconds to keep a negative cached entry in memory
+#
+# max-negative-ttl=3600
+
+#################################
+# max-packetcache-entries      maximum number of entries to keep in the packetcache
+#
+# max-packetcache-entries=500000
+
+#################################
+# max-tcp-clients      Maximum number of simultaneous TCP clients
+#
+# max-tcp-clients=128
+
+#################################
+# max-tcp-per-client   If set, maximum number of TCP sessions per client (IP address)
+#
+# max-tcp-per-client=0
+
+#################################
+# network-timeout      Wait this nummer of milliseconds for network i/o
+#
+# network-timeout=1500
+
+#################################
+# no-shuffle   Don't change
+#
+# no-shuffle=off
+
+#################################
+# packetcache-servfail-ttl     maximum number of seconds to keep a cached servfail entry in packetcache
+#
+# packetcache-servfail-ttl=60
+
+#################################
+# packetcache-ttl      maximum number of seconds to keep a cached entry in packetcache
+#
+# packetcache-ttl=3600
+
+#################################
+# pdns-distributes-queries     If PowerDNS itself should distribute queries over threads (EXPERIMENTAL)
+#
+# pdns-distributes-queries=no
+
+#################################
+# processes    Launch this number of processes (EXPERIMENTAL, DO NOT CHANGE)
+#
+# processes=1
+
+#################################
+# query-local-address  Source IP address for sending queries
+#
+# query-local-address=0.0.0.0
+
+#################################
+# query-local-address6 Source IPv6 address for sending queries
+#
+# query-local-address6=
+
+#################################
+# quiet        Suppress logging of questions and answers
+#
+quiet=yes
+
+#################################
+# remotes-ringbuffer-entries   maximum number of packets to store statistics for
+#
+# remotes-ringbuffer-entries=0
+
+#################################
+# serve-rfc1918        If we should be authoritative for RFC 1918 private IP space
+#
+# serve-rfc1918=
+
+#################################
+# server-id    Returned when queried for 'server.id' TXT or NSID, defaults to hostname
+#
+# server-id=
+
+#################################
+# setgid       If set, change group id to this gid for more security
+#
+setgid=pdns
+
+#################################
+# setuid       If set, change user id to this uid for more security
+#
+setuid=pdns
+
+#################################
+# single-socket        If set, only use a single socket for outgoing queries
+#
+# single-socket=off
+
+#################################
+# soa-minimum-ttl      Don't change
+#
+# soa-minimum-ttl=0
+
+#################################
+# soa-serial-offset    Don't change
+#
+# soa-serial-offset=0
+
+#################################
+# socket-dir   Where the controlsocket will live
+#
+# socket-dir=/var/run/
+
+#################################
+# socket-group Group of socket
+#
+# socket-group=
+
+#################################
+# socket-mode  Permissions for socket
+#
+# socket-mode=
+
+#################################
+# socket-owner Owner of socket
+#
+# socket-owner=
+
+#################################
+# spoof-nearmiss-max   If non-zero, assume spoofing after this many near misses
+#
+# spoof-nearmiss-max=20
+
+#################################
+# stack-size   stack size per mthread
+#
+# stack-size=200000
+
+#################################
+# threads      Launch this number of threads
+#
+# threads=2
+
+#################################
+# trace        if we should output heaps of logging
+#
+# trace=off
+
+#################################
+# version-string       string reported on version.pdns or version.bind
+#
+# version-string=PowerDNS Recursor 3.3 $Id: pdns_recursor.cc 1712 2010-09-11 13:40:03Z ahu $
+
+
diff --git a/build-scripts/debian-recursor/control b/build-scripts/debian-recursor/control
new file mode 100644 (file)
index 0000000..ea9e8ac
--- /dev/null
@@ -0,0 +1,35 @@
+Source: pdns-recursor
+Section: net
+Priority: extra
+Standards-Version: 3.9.6
+Maintainer: PowerDNS Autobuilder <powerdns.support@powerdns.com>
+Origin: PowerDNS
+Build-Depends: debhelper (>= 9~), dh-systemd, quilt, dpkg-dev (>= 1.17.0~), libboost-dev, libboost-serialization-dev, liblua5.2-dev, pkg-config
+Homepage: http://www.powerdns.com/
+
+Package: pdns-recursor
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base (>= 3.0-6), adduser
+Replaces: pdns
+Recommends: pdns-doc
+Description: PowerDNS recursor
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This is the recursive nameserver that goes out to the internet and
+ resolve queries about other domains.
+
+Package: pdns-recursor-dbg
+Section: debug
+Architecture: any
+Depends: pdns-recursor (= ${binary:Version}), ${misc:Depends}
+Description: debugging symbols for PowerDNS recursor
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ PowerDNS tries to emphasize speed and security.
+ .
+ This package contains debugging symbols for PowerDNS to assist in
+ debugging, such as with gdb. It is not required for normal operation.
diff --git a/build-scripts/debian-recursor/copyright b/build-scripts/debian-recursor/copyright
new file mode 100644 (file)
index 0000000..da18f6e
--- /dev/null
@@ -0,0 +1,121 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: PowerDNS
+Source: https://www.powerdns.com/downloads.html
+
+Files: *
+Copyright: 2002 - 2014 PowerDNS.COM BV and contributors
+License: GPL-2 with OpenSSL Exception
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2
+ as published by the Free Software Foundation
+ .
+ In addition, for the avoidance of any doubt, permission is granted to
+ link this program with OpenSSL and to (re)distribute the binaries
+ produced as the result of such linking.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+Files: debian/*
+Copyright: 2002 - 2004 Wichert Akkermann <wichert@wiggy.net>
+ 2004 - 2013 Matthijs Möhlmann <matthijs@cacholong.nl>
+ 2012 - 2013 Marc Haber <mh+debian-packages@zugschlus.de>
+ 2014 Christian Hofstaedtler <zeha@debian.org>
+License: GPL-2
+
+Files: pdns/ext/rapidjson/*
+Copyright: 2011 Milo Yip
+License: Expat
+
+Files: pdns/ext/polarssl*
+Copyright: 2006-2010, Brainspark B.V.
+License: GPL-2+
+
+Files: pdns/ext/yahttp*
+Copyright: 2014 Aki Tuomi
+License: LGPL-2.1+
+
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+
+License: GPL-2
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+License: GPL-2+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+License: LGPL-2.1+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ .
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ .
+ On Debian systems, the full text of the GNU Lesser General Public
+ License version 2.1 can be found in the file
+ `/usr/share/common-licenses/LGPL-2.1'.
diff --git a/build-scripts/debian-recursor/patches/series b/build-scripts/debian-recursor/patches/series
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/build-scripts/debian-recursor/pdns-recursor.default b/build-scripts/debian-recursor/pdns-recursor.default
new file mode 100644 (file)
index 0000000..b7781ac
--- /dev/null
@@ -0,0 +1,6 @@
+# Variables for PowerDNS recursor
+#
+# Set START to yes to start the pdns-recursor
+START=yes
+# Run resolvconf?
+RESOLVCONF=yes
diff --git a/build-scripts/debian-recursor/pdns-recursor.dirs b/build-scripts/debian-recursor/pdns-recursor.dirs
new file mode 100644 (file)
index 0000000..10f46aa
--- /dev/null
@@ -0,0 +1,6 @@
+etc/powerdns
+etc/init.d
+etc/default
+usr/bin
+usr/sbin
+usr/share/doc/pdns-recursor
diff --git a/build-scripts/debian-recursor/pdns-recursor.init b/build-scripts/debian-recursor/pdns-recursor.init
new file mode 100644 (file)
index 0000000..206bf65
--- /dev/null
@@ -0,0 +1,170 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides:          pdns-recursor
+# Required-Start:    $network $remote_fs $syslog
+# Required-Stop:     $network $remote_fs $syslog
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: PowerDNS Recursor - Recursive DNS Server
+# Description:       PowerDNS Recursor - Recursive DNS Server
+### END INIT INFO
+
+#
+# Authors:     Matthijs Möhlmann <matthijs@cacholong.nl>
+#           Christoph Haas <haas@debian.org>
+# 
+# Thanks to:
+# Thomas Hood <jdthood@aglu.demon.nl>
+#
+# initscript for PowerDNS recursor
+
+. /lib/lsb/init-functions
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+DESC="PowerDNS recursor"
+NAME=pdns_recursor
+DAEMON=/usr/sbin/$NAME
+# Derive the socket-dir setting from /etc/powerdns/recursor.conf
+# or fall back to the default /var/run if not specified there.
+PIDDIR=$(awk -F= '/^socket-dir=/ {print $2}' /etc/powerdns/recursor.conf)
+if [ -z "$PIDDIR" ]; then PIDDIR=/var/run; fi
+PIDFILE=$PIDDIR/$NAME.pid
+
+# Gracefully exit if the package has been removed.
+test -x $DAEMON || exit 0
+
+# Read config file if it is present.
+if [ -r /etc/default/pdns-recursor ]; then
+  . /etc/default/pdns-recursor
+fi
+
+start() {
+# Return
+#  0 if daemon has been started / was already running
+#  >0 if daemon could not be started
+  start-stop-daemon --start --oknodo --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null || return 0
+  start-stop-daemon --start --oknodo --quiet --pidfile $PIDFILE --exec $DAEMON || return 2
+}
+
+start_resolvconf() {
+  if [ "X$RESOLVCONF" = "Xyes" ] && [ -x /sbin/resolvconf ]; then
+    echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo.pdns-recursor
+  fi
+  return 0
+}
+
+stop() {
+# Return
+#  0 if daemon has been stopped
+#  1 if daemon was already stopped
+#  2 if daemon could not be stopped
+#  other if a failure occured
+  start-stop-daemon --stop --quiet --retry=HUP/30/TERM/5/KILL/5 --pidfile $PIDFILE --name $NAME
+  RETVAL="$?"
+  [ "$RETVAL" = 2 ] && return 2
+  rm -f $PIDFILE
+  return "$RETVAL"
+}
+
+stop_resolvconf() {
+  if [ "X$RESOLVCONF" = "Xyes" ] && [ -x /sbin/resolvconf ]; then
+    /sbin/resolvconf -d lo.pdns-recursor
+  fi
+  return 0
+}
+
+case "$1" in
+  start)
+    if [ "$START" != "yes" ]; then
+      log_begin_msg "Not starting $DESC -- disabled."
+      log_end_msg 0
+      exit 0
+    fi
+    log_daemon_msg "Starting $DESC" "pdns-recursor"
+    start
+    case "$?" in
+      0)
+        start_resolvconf
+        break
+        ;;
+      1)
+        log_progress_msg "(already running)"
+        break
+        ;;
+      *)
+        log_progress_msg " (failed)."
+        log_end_msg 1
+        exit 1
+        ;;
+    esac
+    log_end_msg 0
+  ;;
+  stop)
+    stop_resolvconf
+    log_daemon_msg "Stopping $DESC" "pdns-recursor"
+    stop
+    case "$?" in
+      0)
+        break
+        ;;
+      1)
+        log_progress_msg "(not running)"
+        break
+        ;;
+      *)
+        log_progress_msg "(failed)"
+        log_end_msg 1
+        exit 1
+        ;;
+    esac
+    log_end_msg 0
+  ;;
+  restart|force-reload)
+    if [ "$START" != "yes" ]; then
+      $0 stop
+      exit 0
+    fi
+    log_daemon_msg "Restarting $DESC" "pdns-recursor"
+    stop
+    case "$?" in
+      0|1)
+        start
+        case "$?" in
+          0)
+            log_end_msg 0
+            exit 0
+            ;;
+          1)
+            log_progress_msg "(failed -- old process still running)"
+            log_end_msg 1
+            exit 1
+            ;;
+          *)
+            log_progress_msg "(failed to start)"
+            log_end_msg 1
+            exit 1
+            ;;
+        esac
+      ;;
+      *)
+        log_progress_msg "(failed to stop)"
+        log_end_msg 1
+        exit 1
+      ;;
+    esac
+  ;;
+  force-stop)
+    killall -v -9 pdns_recursor
+    echo "killed"
+  ;;
+  status)
+    status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
+  ;;
+  *)
+    echo "Usage: $0 {start|stop|restart|force-reload|force-stop|status}" >&2
+    exit 3
+  ;;
+esac
+
+exit 0
+
diff --git a/build-scripts/debian-recursor/pdns-recursor.install b/build-scripts/debian-recursor/pdns-recursor.install
new file mode 100644 (file)
index 0000000..52c9542
--- /dev/null
@@ -0,0 +1,3 @@
+debian/tmp/usr/sbin/pdns_recursor usr/sbin/
+debian/tmp/usr/bin/rec_control usr/bin/
+debian/config/recursor.conf etc/powerdns/
diff --git a/build-scripts/debian-recursor/pdns-recursor.logcheck.ignore.server b/build-scripts/debian-recursor/pdns-recursor.logcheck.ignore.server
new file mode 100644 (file)
index 0000000..f6e86ec
--- /dev/null
@@ -0,0 +1 @@
+^\w{3} [ :0-9]{11} [._[:alnum:]-]+ pdns_recursor\[[0-9]+\]: stats: .*
diff --git a/build-scripts/debian-recursor/pdns-recursor.manpages b/build-scripts/debian-recursor/pdns-recursor.manpages
new file mode 100644 (file)
index 0000000..020a6a1
--- /dev/null
@@ -0,0 +1,2 @@
+pdns_recursor.1
+rec_control.1
diff --git a/build-scripts/debian-recursor/pdns-recursor.postinst b/build-scripts/debian-recursor/pdns-recursor.postinst
new file mode 100644 (file)
index 0000000..64a9982
--- /dev/null
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+#
+
+set -e
+
+case "$1" in
+  configure)
+    if [ -z "`getent group pdns`" ]; then
+      addgroup --quiet --system pdns
+    fi
+    if [ -z "`getent passwd pdns`" ]; then
+      echo -n "Creating user and group pdns..."
+      adduser --quiet --system --home /var/spool/powerdns --shell /bin/false --ingroup pdns --disabled-password --disabled-login --gecos "PowerDNS" pdns
+      echo "done"
+    fi
+  ;;
+
+  *)
+    echo "postinst called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+# Those using dependency based boot sequencing with sysv-rc and
+# installing pdns-recursor version 3.1.7.1-2 or earlier would have wrong
+# runlevel symlinks.  Recover from this.
+if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le "3.1.7.1-2" \
+       && [ -f /etc/rc2.d/S[0-9][0-9]pdns-recursor ] && [ ! -f /etc/rc1.d/K[0-9][0-9]pdns-recursor ]
+then
+       update-rc.d -f pdns-recursor remove
+fi
+
+# Init script has errors in previous versions. Postinst script should just
+# return the exit status of this script
+initscript_error() {
+       return $1
+}
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-recursor/pdns-recursor.prerm b/build-scripts/debian-recursor/pdns-recursor.prerm
new file mode 100644 (file)
index 0000000..956c65e
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# Add an error handler to catch up with a fault in the pdns-recursor script.
+
+set -e
+
+# Set the old version.
+MODE=$1
+OLDVERSION=$2
+
+# Init script has errors in previous versions.
+initscript_error() {
+
+       # Versions older then 3.2-4 have a bug in the initscript.
+       if dpkg --compare-versions "$OLDVERSION" lt-nl "3.2-4" &&
+               [ "$MODE" = "failed-upgrade" ]; then
+
+               return 0
+       fi
+
+       return $1
+}
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/build-scripts/debian-recursor/pdns-recursor.service b/build-scripts/debian-recursor/pdns-recursor.service
new file mode 100644 (file)
index 0000000..53a644d
--- /dev/null
@@ -0,0 +1,12 @@
+[Unit]
+Description=PowerDNS Recursor
+Wants=network-online.target
+After=network-online.target
+
+[Service]
+Type=simple
+ExecStart=/usr/sbin/pdns_recursor --daemon=no
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/build-scripts/debian-recursor/rules b/build-scripts/debian-recursor/rules
new file mode 100755 (executable)
index 0000000..45e1826
--- /dev/null
@@ -0,0 +1,31 @@
+#!/usr/bin/make -f
+
+# Enable lua
+export LUA := 1
+export LUA_CPPFLAGS_CONFIG := $(shell pkg-config lua5.2 --cflags)
+export LUA_LIBS_CONFIG := $(shell pkg-config lua5.2 --libs)
+
+# Enable hardening features for daemons
+# Note: blhc (build log hardening check) will find these false positivies: CPPFLAGS 2 missing, LDFLAGS 1 missing
+export DEB_BUILD_MAINT_OPTIONS=hardening=+bindnow,+pie
+DPKG_EXPORT_BUILDFLAGS = 1
+# Include buildflags.mk so we can append to the vars it sets.
+include /usr/share/dpkg/buildflags.mk
+
+# Vendor and version (after buildflags.mk so we don't overwrite CXXFLAGS)
+version := $(shell dpkg-parsechangelog -SVersion).$(shell dpkg-vendor --query Vendor)
+CXXFLAGS += -DPACKAGEVERSION='"$(version)"'
+
+# Use new build system
+%:
+       dh $@ --with systemd --parallel
+
+override_dh_auto_install:
+       dh_auto_install -- STRIP_BINARIES=0
+
+override_dh_strip:
+       dh_strip --dbg-package=pdns-recursor-dbg
+
+override_dh_installinit:
+       dh_installinit --error-handler=initscript_error -- defaults 19 85
+
diff --git a/build-scripts/debian-recursor/source/format b/build-scripts/debian-recursor/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/build-scripts/debian-recursor/tests/control b/build-scripts/debian-recursor/tests/control
new file mode 100644 (file)
index 0000000..a0a6fc4
--- /dev/null
@@ -0,0 +1,3 @@
+Tests: smoke
+Depends: @, dnsutils
+Restrictions: needs-root
diff --git a/build-scripts/debian-recursor/tests/smoke b/build-scripts/debian-recursor/tests/smoke
new file mode 100755 (executable)
index 0000000..7970733
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/bash
+exec 2>&1
+set -ex
+
+cat <<EOF >>/etc/powerdns/recursor.conf
+auth-zones=example.org=/etc/powerdns/example.org.zone
+EOF
+
+cat <<EOF >/etc/powerdns/example.org.zone
+example.org.           172800  IN      SOA     ns1.example.org. dns.example.org. 1 10800 3600 604800 3600
+example.org.           172800  IN      NS      ns1.example.org.
+smoke.example.org.     172800  IN      A       127.0.0.123
+EOF
+
+service pdns-recursor restart
+
+TMPFILE=$(mktemp)
+cleanup() {
+  rm -f "$TMPFILE"
+}
+trap cleanup EXIT
+
+dig @127.0.0.1 smoke.example.org 2>&1 | tee "$TMPFILE"
+
+if grep -c '127\.0\.0\.123' "$TMPFILE"; then
+    echo success
+else
+    echo smoke could not be resolved
+    exit 1
+fi
+
diff --git a/build-scripts/debian-recursor/watch b/build-scripts/debian-recursor/watch
new file mode 100644 (file)
index 0000000..7e1873c
--- /dev/null
@@ -0,0 +1,3 @@
+# Site         Directory               Pattern                 Version Script
+version=3
+http://downloads.powerdns.com/releases/        pdns-recursor-(.*)\.tar\.bz2    debian  uupdate
similarity index 90%
rename from pdns/dist-recursor
rename to build-scripts/dist-recursor
index 4cd08e20690604fe693bbbc803e20e089a5ffb19..dc61002667ca3e7834fe2255cebcb37c0c05791b 100755 (executable)
@@ -2,26 +2,30 @@
 
 set -e
 
+if [ "$0" != "./build-scripts/dist-recursor" ]; then
+  echo "Please run me from the root checkout dir"
+  exit 1
+fi
+
+if [ -z "$VERSION" ]; then
+  VERSION=$(./build-aux/gen-version)
+  if [ -z "$VERSION" ]; then
+    VERSION="UNKNOWN"
+  fi
+fi
+
+set -x
+
+cd pdns
+
 ragel dnslabeltext.rl -o dnslabeltext.cc
 
 cd ../docs
 pandoc -s -t man manpages/pdns_recursor.1.md -o pdns_recursor.1
 pandoc -s -t man manpages/rec_control.1.md -o rec_control.1
 cd -
-## The following lines will be patched by set-version-recursor.
-VERSION=""
-DIST_HOST=""
-## End patch area.
 
-if [ -z "$VERSION" ]; then
-  VERSION=$(git describe --always --dirty=+ 2>/dev/null || true)
-  if [ -z "$VERSION" ]; then
-    VERSION="UNKNOWN"
-  else
-    VERSION="git-"$VERSION
-  fi
-  DIST_HOST="$(id -u -n)@$(hostname -f 2>/dev/null || hostname 2>/dev/null || echo localhost)"
-fi
+DIST_HOST="$(id -u -n)@$(hostname -f 2>/dev/null || hostname 2>/dev/null || echo localhost)"
 
 INCLUDES="iputils.hh arguments.hh base64.hh zoneparser-tng.hh \
 rcpgenerator.hh lock.hh dnswriter.hh  dnsrecords.hh dnsparser.hh utility.hh \
@@ -77,7 +81,9 @@ cp powerdns-example-script.lua $DIRNAME
 mkdir -p $DIRNAME/contrib
 cp ../contrib/systemd-pdns-recursor.service $DIRNAME/contrib
 mkdir -p $DIRNAME/build-scripts/redhat
+cp ../build-scripts/build-recursor-semistatic $DIRNAME/build-scripts
 cp ../build-scripts/redhat/pdns-recursor-test.spec $DIRNAME/build-scripts/redhat
+cp pdns-recursor.spec $DIRNAME
 
 mkdir -p $DIRNAME/sysdeps
 rm -f sysdeps-recursor/*~
diff --git a/build-scripts/test-master b/build-scripts/test-master
new file mode 100644 (file)
index 0000000..ff48c7e
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if [ "$0" != "./build-scripts/test-auth" ]; then
+  echo "Please run me from the root checkout dir"
+  exit 1
+fi
+
+set -x
+
+cd regression-tests
+
+./runtests auth
diff --git a/build-scripts/test-recursor b/build-scripts/test-recursor
new file mode 100755 (executable)
index 0000000..c02f345
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if [ "$0" != "./build-scripts/test-recursor" ]; then
+  echo "Please run me from the root checkout dir"
+  exit 1
+fi
+
+set -x
+
+cd regression-tests
+
+./runtests recursor
index 4b81411c51d4794c392081f43e61986c15bb706f..2093bb7997ad9dccfcf81496ecb1dac6d658eccd 100644 (file)
@@ -1,9 +1,6 @@
 AC_PREREQ([2.61])
 
-dnl The following lines may be patched by set-version-auth.
-AC_INIT([pdns], [git])
-dnl AC_SUBST([DIST_HOST], [TO_BE_PATCHED])
-dnl End patch area.
+AC_INIT([pdns], m4_esyscmd_s(build-aux/gen-version))
 
 AC_CONFIG_SRCDIR([pdns/receiver.cc])
 AC_CONFIG_MACRO_DIR([m4])
@@ -30,7 +27,6 @@ PDNS_CHECK_FLEX
 AC_PROG_INSTALL
 AC_PROG_MAKE_SET
 
-
 AC_PROG_CXX
 AS_IF([test "x$CXX" = "xno" || test "x$CXX:x$GXX" = "xg++:x"],
   AC_MSG_ERROR([no C++ compiler found])
@@ -78,8 +74,6 @@ LT_INIT([disable-static dlopen])
 
 MC_TM_GMTOFF
 
-AM_CONDITIONAL([RELEASE_BUILD], [test "$PACKAGE_VERSION" != "git"])
-
 # Define full_libdir to be the fully expanded (${exec_prefix}, etc.)
 # "system" library path.
 # We use this to search for other libraries.
@@ -124,6 +118,7 @@ BOOST_PROGRAM_OPTIONS([mt])
 BOOST_SERIALIZATION([mt])
 
 PDNS_ENABLE_UNIT_TESTS
+PDNS_ENABLE_REPRODUCIBLE
 
 PDNS_WITH_SQLITE3
 
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644 (file)
index 0b4692d..0000000
+++ /dev/null
@@ -1,331 +0,0 @@
-pdns (3.3-rc1-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- peter van dijk <peter.van.dijk@netherlabs.nl>  Mon, 27 May 2013 16:00:00 +0200
-
-pdns (3.2-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- peter van dijk <peter.van.dijk@netherlabs.nl>  Tue, 15 Jan 2013 15:00:00 +0100
-
-pdns (3.2-rc4-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- peter van dijk <peter.van.dijk@netherlabs.nl>  Wed, 9 Jan 2013 21:00:00 +0100
-
-pdns (3.2-rc3-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- peter van dijk <peter.van.dijk@netherlabs.nl>  Sat, 22 Dec 2012 21:00:00 +0100
-
-pdns (3.2-rc2-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- peter van dijk <peter.van.dijk@netherlabs.nl>  Wed, 19 Dec 2012 12:00:00 +0100
-
-pdns (3.2-rc1-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Thu, 8 Nov 2012 09:23:33 +0100
-
-pdns (3.2-pre-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Thu, 7 Oct 2012 09:23:33 +0100
-
-pdns (3.1-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Thu, 3 May 2012 09:23:33 +0100
-
-pdns (3.1-rc3-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Thu, 28 Apr 2012 09:23:33 +0100
-
-pdns (3.1-rc2-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Thu, 5 Apr 2012 09:23:33 +0100
-
-pdns (3.1-rc1-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Wed, 21 Mar 2012 09:23:33 +0100
-
-pdns (3.1-pre-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Wed, 28 Sep 2011 09:23:33 +0100
-
-pdns (3.0-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Tue, 19 Jul 2011 09:23:33 +0100
-
-pdns (3.0-rc3-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Fri, 15 Jul 2011 09:23:33 +0100
-
-pdns (3.0-rc2-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Sun, 16 Apr 2011 23:23:33 +0100
-
-pdns (3.0-rc1-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Sun, 3 Apr 2011 23:23:33 +0100
-
-pdns (3.0.pre-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Sun, 9 Jan 2011 23:23:33 +0100
-
-pdns (2.9.22-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Sat, 25 Jan 2009 23:23:33 +0100
-
-pdns (2.9.22-rc4-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Sat, 26 Dec 2008 23:23:33 +0100
-
-pdns (2.9.22-rc3-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Sat, 6 Dec 2008 23:23:33 +0100
-
-pdns (2.9.22-rc2-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Sun, 29 Nov 2008 23:23:33 +0100
-
-pdns (2.9.22-rc1-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Sun, 16 Nov 2008 23:23:33 +0100
-
-pdns (2.9.22-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Sun, 3 Aug 2008 23:23:33 +0100
-
-pdns (2.9.21-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Sat, 21 Apr 2006 23:23:33 +0100
-
-pdns (2.9.20-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Sat, 14 Jan 2006 23:23:33 +0100
-
-pdns (2.9.19-2) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Sun, 29 Oct 2005 23:23:33 +0100
-
-pdns (2.9.19-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Sun, 11 Sep 2005 23:23:33 +0100
-
-pdns (2.9.18-2) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Wed, 20 Jul 2005 23:23:33 +0100
-
-pdns (2.9.18-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- bert hubert <bert.hubert@netherlabs.nl>  Thu, 14 Jun 2005 23:23:33 +0100
-
-pdns (2.9.17-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- Wichert Akkerman <wichert@wiggy.net>  Sat, 13 Sep 2004 23:23:33 +0100
-
-pdns (2.9.16-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- Wichert Akkerman <wichert@wiggy.net>  Sat, 17 Jan 2004 23:23:33 +0100
-
-pdns (2.9.15-1) unstable; urgency=medium
-
-  * fill in the blanks
-
- -- Wichert Akkerman <wichert@wiggy.net>  Sat, 17 Jan 2004 23:23:33 +0100
-
-pdns (2.9.14-1) unstable; urgency=medium
-
-  * New upstream version. Postgres support rewritten to use the C interface
-    instead of the deprectaed libpqpp
-
- -- Wichert Akkerman <wichert@wiggy.net>  Fri, 16 Jan 2004 23:23:33 +0100
-
-pdns (2.9.13-3) unstable; urgency=medium
-
-  * Fix pdns postinst so pdns is properly restart on upgrade
-
- -- Wichert Akkerman <wichert@wiggy.net>  Sat, 10 Jan 2004 17:21:18 +0100
-
-pdns (2.9.13-2) unstable; urgency=critical
-
-  * Fix a bug in calculation of early timestamps: 1<<31-1 is not the
-    same as (1<<31)-1. This made all pdns servers consume all possible
-    CPU when UNIX time went through 2^30 two hours ago.
-
- -- Wichert Akkerman <wichert@wiggy.net>  Sat, 10 Jan 2004 16:53:09 +0100
-
-pdns (2.9.13-1) unstable; urgency=low
-
-  * New upstream release
-  * Stop using my debian.org email address
-  * Change init scripts to conform to Debian policy 
-
- -- Wichert Akkerman <wichert@wiggy.net>  Thu, 25 Dec 2003 13:33:40 +0100
-
-pdns (2.9.12-1) unstable; urgency=low
-
-  * New upstream release
-  * Fix dependency generation. Closes: Bug#210256
-  * Check if pdns is installed in init script. Closes: Bug#217402
-  * Create a SQLite backend package
-  * Add versioned dpkg-dev Build-Depends so ${dpkg:Version} works properly
-
- -- Wichert Akkerman <wakkerma@debian.org>  Mon, 27 Oct 2003 18:52:53 +0100
-
-pdns (2.9.11-2) unstable; urgency=low
-
-  * Remove automake build-depends and bootstrap rule from debian/rules.
-    This makes pdns a bit more portable across Debian releases.
-    Closes: Bug#205990
-  * Try to remove the /etc/powerdns directory on purge. Closes: Bug#209051
-  * Use libmysqlclient-dev instead of libmysqlclient10-dev
-
- -- Wichert Akkerman <wakkerma@debian.org>  Tue,  9 Sep 2003 14:59:46 +0200
-
-pdns (2.9.11-1) unstable; urgency=low
-
-  * New upstream release
-  * Do not include zone2ldap in pdns package. Closes: Bug#198613
-  * The gdbm-dev seems to have changed its name, update Build-Depends
-    accordingly. Closes: Bug#199595
-
- -- Wichert Akkerman <wakkerma@debian.org>  Mon, 14 Jul 2003 13:52:47 +0200
-
-pdns (2.9.8-1) unstable; urgency=low
-
-  * New upstream release. Closes: Bug#187781
-
- -- Wichert Akkerman <wakkerma@debian.org>  Mon,  5 May 2003 13:43:16 +0200
-
-pdns (2.9.7-1) unstable; urgency=low
-
-  * New upstream release. Closes: Bug#185730
-
- -- Wichert Akkerman <wakkerma@debian.org>  Fri, 21 Mar 2003 12:53:00 +0100
-
-pdns (2.9.6-2) unstable; urgency=low
-
-  * Enable the recursing nameserver
-  * Change order of things in clean target so debian/files is properly
-    removed. Closes: Bug#181994
-
- -- Wichert Akkerman <wakkerma@debian.org>  Sun, 23 Feb 2003 12:34:57 +0100
-
-pdns (2.9.6-1) unstable; urgency=low
-
-  * New upstream release, adding a new LDAP backend
-
- -- Wichert Akkerman <wakkerma@debian.org>  Sun, 16 Feb 2003 14:49:08 +0100
-
-
-pdns (2.9.5-1) unstable; urgency=low
-
-  * fill in the blanks
-
- -- Wichert Akkerman <wakkerma@debian.org>  Mon,  3 Feb 2003 20:16:16 +0100
-
-pdns (2.9.4-1) unstable; urgency=low
-
-  * fill in the blanks
-
- -- Wichert Akkerman <wakkerma@debian.org>  Sat, 21 Dec 2002 20:16:16 +0100
-
-pdns (2.9.3a-1) unstable; urgency=low
-
-  * New upstream release; fixes a problem in zone2sql
-
- -- Wichert Akkerman <wakkerma@debian.org>  Sat, 21 Dec 2002 20:16:16 +0100
-
-pdns (2.9.3-1) unstable; urgency=low
-
-  * New upstream release. Yes, the packaging changes yet again to
-    reflect changes made upstream. The packaging of SQL backends should
-    be more sane now and we don't expect to change them again.
-
- -- Wichert Akkerman <wakkerma@debian.org>  Sat, 21 Dec 2002 18:18:40 +0100
-
-pdns (2.9.2-3) unstable; urgency=low
-
-  * Compile pgmysql and xdb backend with -fPIC. Real fix is to swithc
-    to using libtool for all backends, which will happen in the next
-    upstream release.
-
- -- Wichert Akkerman <wakkerma@debian.org>  Mon, 16 Dec 2002 13:43:52 +0100
-
-pdns (2.9.2-2) unstable; urgency=low
-
-  * Add Build-Depends on libgdbmg1-dev, which is needed by the pipe backend
- -- Wichert Akkerman <wakkerma@debian.org>  Mon, 16 Dec 2002 11:18:11 +0100
-
-pdns (2.9.2-1) unstable; urgency=low
-
-  * New upstream release
-  * bind backend fully merged in the main pdns package now
-  * Add new pipe, pgmysql and xdb backends
-
- -- Wichert Akkerman <wakkerma@debian.org>  Fri, 13 Dec 2002 16:39:29 +0100
-
-pdns (2.9-1) unstable; urgency=low
-
-  * Initial packaging
-
- -- Wichert Akkerman <wakkerma@debian.org>  Sun,  1 Dec 2002 15:04:52 +0100
-
index ad9e6983c6a58f93cffc03dc1c897d5f10b37055..39bdaf7a879e572ea5be7850f2df721df6736de3 100644 (file)
@@ -71,5 +71,5 @@ clean:
        rm -rf html html.tar.bz2 *.8 *.1
 
 publish: html html.tar.bz2
-       rsync -crv --exclude '*~' ./html/ pdnsdocs@xs.powerdns.com:md/
-       rsync -crv --exclude '*~' ./html.tar.bz2 pdnsdocs@xs.powerdns.com:html.tar.bz2
+       rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./html/ web1.powerdns.com:/srv/www/doc.powerdns.com/md
+       rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./html.tar.bz2 web1.powerdns.com:/srv/www/doc.powerdns.com/html.tar.bz2
index 4f99ca24bf6bf696ce3a930c3dd31ffecdbc12e8..f4e66e21938924e6e61432bebc9a3289dc6925f5 100644 (file)
@@ -4,7 +4,7 @@ Before migrating to PowerDNS a few things should be considered.
 PowerDNS does not operate as a 'slave' or 'master' server with all backends.
 Only the [Generic SQL](backend-generic-mypgsql.md), [BIND](backend-bind.md) backends have the ability to act as master or slave.
 
-To migrate, the `zone2sql` tool is provided. There are also scripts from external contributors for migrating from `MyDNS` server. See https://github.com/PowerDNS/pdns/wiki/Migrating-DBs-FROM-MyDNS for details. 
+To migrate, the `zone2sql` tool is provided. There are also scripts from external contributors for migrating from `MyDNS` server. See https://github.com/PowerDNS/pdns/wiki/Migrating-DBs-FROM-MyDNS for details. There is also tool in pdnssec to migrate using various backends, most notably bind and mydns. See below for more information.
 
 Additionally, the PowerDNS source comes with a number of diagnostic tools, which can be helpful in verifying proper PowerDNS operation, versus incumbent nameservers. See [Tools to analyse DNS traffic](../tools/analysis.md) for more details.
 
@@ -55,3 +55,30 @@ Parse only this zone file. Conflicts with `--named-conf` parameter.
 
 ## `--zone-name`
 When parsing a single zone without $ORIGIN statement, set this as the zone name.
+
+# Migrating from backend to another
+
+NB! This is experimental feature.
+
+Syntax: `pdnssec b2b-migrate old new`
+
+This tool lets you migrate data from one backend to another, it moves all data, including zones, metadata and crypto keys (if present). Some example use cases are moving from Bind style zonefiles to SQL based, or other way around, or moving from MyDNS to gMySQL.
+
+## Prerequisites
+
+ - Target backend must support same features as source from set of domains, zones, metadata, DNSSEC and TSIG. See [Backend Capabilities](index.md)
+ - There must be no data in the target backend, otherwise the migration will fail. This is checked in the code for domains.
+
+You can perform live upgrade with this tool, provided you follow the procedure.
+
+## Moving from source to target.
+
+Take backups of everything.
+
+Configure both backends to pdns.conf, if you have source configured, you can just add target backend. **DO NOT RESTART AUTH SERVER BEFORE YOU HAVE FINISHED**
+
+Then run `pdnssec b2b-migrate old new`, the old and new being configuration prefixes in pdns.conf. If something goes wrong, make sure you properly clear **ALL** data from target backend before retrying.
+
+Remove (or comment out) old backend from pdns.conf, and run `pdnssec rectify-all-zones` and `pdnssec check-all-zones` to make sure everything is OK.
+
+If everything is OK, then go ahead to restart your pdns auth process. Check logs to make sure everything went ok.
index 9bac9a2666a9dcfc52430fa799b1ad1b32dfa968..d01099f1ac7095942c978612d6ec07f1091ce01e 100644 (file)
@@ -75,7 +75,8 @@ If sending carbon updates, if set, this will override our hostname. Be careful n
 * Available since: 3.3.1
 
 Send all available metrics to this server via the carbon protocol, which is used
-by graphite and metronome. See
+by graphite and metronome. You may specify an alternate port by appending :port, 
+ex: 127.0.0.1:2004. See 
 ["PowerDNS Metrics"](../common/logging.md#sending-to-carbongraphitemetronome).
 
 ## `carbon-interval`
index 6767cb8372dae1242c03aa9f2fa2364731f61693..e95f24ce314aceb5b4862064e4dedfd55423924c 100644 (file)
@@ -74,7 +74,8 @@ are doing. See ["PowerDNS Metrics"](../common/logging.md#sending-to-carbongraphi
 * Available since: 3.5.3
 
 If set to an IP or IPv6 address, will send all available metrics to this server
-via the carbon protocol, which is used by graphite and metronome. See
+via the carbon protocol, which is used by graphite and metronome.  You may specify 
+an alternate port by appending :port, ex: 127.0.0.1:2004. See
 ["PowerDNS Metrics"](../common/logging.md#sending-to-carbongraphitemetronome).
 
 ## `carbon-interval`
@@ -328,6 +329,7 @@ Local port to bind to.
 ## `non-local-bind`
 * Boolean
 * Default: no
+* Available since: 4.0.0
 
 Bind to addresses even if one or more of the [`local-address`'s](#local-address)
 do not exist on this server. Setting this option will enable the needed socket
diff --git a/m4/pdns_enable_reproducible.m4 b/m4/pdns_enable_reproducible.m4
new file mode 100644 (file)
index 0000000..53c13a1
--- /dev/null
@@ -0,0 +1,18 @@
+AC_DEFUN([PDNS_ENABLE_REPRODUCIBLE], [
+  AC_MSG_CHECKING([whether to enable reproducible builds.])
+  AC_ARG_ENABLE([reproducible],
+    AS_HELP_STRING([--enable-reproducible],
+      [Create reproducible builds. Use this only if you are a distribution maintainer and need reproducible builds. If you compile PowerDNS yourself, leave this disabled, as it might make debugging harder. @<:@default=no@:>@]),
+    [enable_reproducible=$enableval],
+    [enable_reproducible=no])
+
+  AC_MSG_RESULT($enable_reproducible)
+
+  AS_IF([test x"$enable_reproducible" = "xyes"],[
+    AC_DEFINE([REPRODUCIBLE], [1], [Define to 1 for reproducible builds])
+  ],[
+    build_user=m4_esyscmd_s(id -u -n)
+    build_host=m4_esyscmd_s(hostname -f || hostname)
+    AC_DEFINE_UNQUOTED([BUILD_HOST], ["$build_user@$build_host"], [Set to the user and host that builds PowerDNS])
+  ])
+])
index 90f40ec521d2ae36bc70d7e33e5882917170928a..555c5f5fc94c3ea2c4e822250e6e1b04a3c081d1 100644 (file)
@@ -1350,7 +1350,11 @@ public:
   Bind2Loader()
   {
     BackendMakers().report(new Bind2Factory);
-    L << Logger::Info << "[bind2backend] This is the bind backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+    L << Logger::Info << "[bind2backend] This is the bind backend version " << VERSION
+#ifndef REPRODUCIBLE
+      << " (" __DATE__ " " __TIME__ ")"
+#endif
+      << " reporting" << endl;
   }
 };
 static Bind2Loader bind2loader;
index b135f27456a5e6b50879c55a6ba780d057eebf9a..e5bbf9c6c7198e5c0711f1a6b10a06d3f770be8c 100644 (file)
@@ -106,7 +106,11 @@ class GeoLoader {
 public:
         GeoLoader() {
                BackendMakers().report(new GeoFactory);
-               L << Logger::Info << "[geobackend] This is the geo backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+               L << Logger::Info << "[geobackend] This is the geo backend version " VERSION
+#ifndef REPRODUCIBLE
+                 << " (" __DATE__ " " __TIME__ ")"
+#endif
+                 << " reporting" << endl;
         }
 };
 
index dccbc2fd0f609cd8f83d7eba1752e78b0a7fd904..e83b3683223b1c1fa081580d7aa92cfaf6215c1a 100644 (file)
@@ -638,7 +638,11 @@ class GeoIPLoader {
 public:
   GeoIPLoader() {
     BackendMakers().report(new GeoIPFactory);
-    L << Logger::Info << "[geobackend] This is the geo backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+    L << Logger::Info << "[geobackend] This is the geo backend version " VERSION
+#ifndef REPRODUCIBLE
+      << " (" __DATE__ " " __TIME__ ")"
+#endif
+      << " reporting" << endl;
   }
 };
 
index 4f7425c35273ae720d267ec95ac9885b61d67906..7b3f4a514c75f5bf820f9d5b8cc3977fa86b6270 100644 (file)
@@ -146,7 +146,11 @@ public:
   gMySQLLoader()
   {
     BackendMakers().report(new gMySQLFactory("gmysql"));
-    L << Logger::Info << "[gmysqlbackend] This is the gmysql backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+    L << Logger::Info << "[gmysqlbackend] This is the gmysql backend version " VERSION
+#ifndef REPRODUCIBLE
+      << " (" __DATE__ " " __TIME__ ")"
+#endif
+      << " reporting" << endl;
   }
 };
 static gMySQLLoader gmysqlloader;
index 1f4d9f64734ccf8eaf71a33a71087e9e8dc1475a..ff6c90ce693463e45d40997110db8fecbcbc2d9c 100644 (file)
@@ -159,7 +159,11 @@ public:
   //! This reports us to the main UeberBackend class
   gOracleLoader() {
     BackendMakers().report(new gOracleFactory("goracle"));
-    L << Logger::Info << "[goraclebackend] This is the goracle backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+    L << Logger::Info << "[goraclebackend] This is the goracle backend version " VERSION
+#ifndef REPRODUCIBLE
+      << " (" __DATE__ " " __TIME__ ")"
+#endif
+      << " reporting" << endl;
   }
 };
 
index cb514a2418ef484ab9370445bd884a5cd3744f03..f48a4c9b3b54d955fdb592e635ea80d83b83c5c6 100644 (file)
@@ -141,7 +141,11 @@ public:
   gPgSQLLoader()
   {
     BackendMakers().report(new gPgSQLFactory("gpgsql"));
-    L << Logger::Info << "[gpgsqlbackend] This is the gpgsql backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+    L << Logger::Info << "[gpgsqlbackend] This is the gpgsql backend version " VERSION
+#ifndef REPRODUCIBLE
+      << " (" __DATE__ " " __TIME__ ")"
+#endif
+      << " reporting" << endl;
   }
 };
 static gPgSQLLoader gpgsqlloader;
index c6a2b91b7b2797d8dd01e102653bf2740c39a2e5..ddd68b1b32e0ae6562296567ea836dd577011667 100644 (file)
@@ -159,7 +159,11 @@ public:
   gSQLite3Loader()
   {
     BackendMakers().report( new gSQLite3Factory( "gsqlite3" ));
-    L << Logger::Info << "[gsqlite3] This is the gsqlite3 backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << std::endl;
+    L << Logger::Info << "[gsqlite3] This is the gsqlite3 backend version " VERSION
+#ifndef REPRODUCIBLE
+      << " (" __DATE__ " " __TIME__ ")"
+#endif
+      << " reporting" << endl;
   }
 };
 
index aafa4dd01bd08ffa348f2338065221445fba3315..44d366bdb9636654b24f0fb845fbcedefc63f7dd 100644 (file)
@@ -541,7 +541,11 @@ public:
         LdapLoader()
         {
                BackendMakers().report( &factory );
-               L << Logger::Info << "[ldapbackend] This is the ldap backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+               L << Logger::Info << "[ldapbackend] This is the ldap backend version " VERSION
+#ifndef REPRODUCIBLE
+                 << " (" __DATE__ " " __TIME__ ")"
+#endif
+                 << " reporting" << endl;
         }
 };
 
index ba2175fae70ac545a7cabc5ba648850d584a9125..b21407452db5e47764eac3a92933f05248134904 100644 (file)
@@ -562,7 +562,11 @@ public:
   LMDBLoader()
   {
     BackendMakers().report(new LMDBFactory);
-    L << Logger::Info << "[lmdbbackend] This is the lmdb backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+    L << Logger::Info << "[lmdbbackend] This is the lmdb backend version " VERSION
+#ifndef REPRODUCIBLE
+      << " (" __DATE__ " " __TIME__ ")"
+#endif
+      << " reporting" << endl;
   }
 };
 
index cfddf4f7c82688207397d29144b9b1efafc290cb..1c062479f80bd0c2862569f70beeb0cdb4285205 100644 (file)
@@ -52,7 +52,11 @@ public:
   {
     BackendMakers().report(new LUAFactory);
     
-    L << Logger::Info << "[luabackend] This is the lua backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+    L << Logger::Info << "[luabackend] This is the lua backend version " VERSION
+#ifndef REPRODUCIBLE
+      << " (" __DATE__ " " __TIME__ ")"
+#endif
+      << " reporting" << endl;
   }  
 };
 
index 80ee38a3452e91c892a92942b40265b2e5182d8f..c06e2d884ca0f2699c2441a5b37d1e5b6b82523d 100644 (file)
@@ -462,7 +462,11 @@ class MyDNSLoader {
 public:
   MyDNSLoader() {
     BackendMakers().report(new MyDNSFactory());
-    L << Logger::Info << "[mydnsbackend] This is the mydns backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+    L << Logger::Info << "[mydnsbackend] This is the mydns backend version " VERSION
+#ifndef REPRODUCIBLE
+      << " (" __DATE__ " " __TIME__ ")"
+#endif
+      << " reporting" << endl;
   }
 };
 
index 831d62b5f6de8b2ae0725b69bacdc7141ab2c61f..4801a29312246065fd6dd8ce5a2fceccae4b2af2 100644 (file)
@@ -164,7 +164,11 @@ public:
         OdbxLoader()
         {
                BackendMakers().report( &factory );
-               L.log( "[opendbxbackend] This is the opendbx backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting", Logger::Info );
+               L<< Logger::Info << "[opendbxbackend] This is the opendbx backend version " VERSION
+#ifndef REPRODUCIBLE
+                 << " (" __DATE__ " " __TIME__ ")"
+#endif
+                 << " reporting" << endl;
         }
 };
 
index 40cfa58d933175a526be5de3ed4e81686ad2d19a..f486c900e69897acb04941e6e19fe17735e1416e 100644 (file)
@@ -2268,7 +2268,11 @@ public:
   OracleLoader()
   {
     BackendMakers().report(new OracleFactory);
-    L << Logger::Info << "[oraclebackend] This is the oracle backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+    L << Logger::Info << "[oraclebackend] This is the oracle backend version " VERSION
+#ifndef REPRODUCIBLE
+      << " (" __DATE__ " " __TIME__ ")"
+#endif
+      << " reporting" << endl;
   }
 
 };
index adf74ed9ddf210186d8ca9b80a1446c0ff360b6c..2d6e9b78f55ff8453485522f62e3102aaf20b47f 100644 (file)
@@ -292,7 +292,11 @@ class PipeLoader
       PipeLoader()
       {
          BackendMakers().report(new PipeFactory);
-         L << Logger::Info << kBackendId <<" This is the pipe backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+         L << Logger::Info << kBackendId <<" This is the pipe backend version " VERSION
+#ifndef REPRODUCIBLE
+      << " (" __DATE__ " " __TIME__ ")"
+#endif
+      << " reporting" << endl;
       }  
 };
 
index b70dfa07db76bfaffe1efc50485e767d53d4cad8..fdfacaf3f67f306e964390e95d01f02d105a8028 100644 (file)
@@ -103,7 +103,11 @@ public:
   RandomLoader()
   {
     BackendMakers().report(new RandomFactory);
-    L << Logger::Info << "[randombackend] This is the random backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+    L << Logger::Info << "[randombackend] This is the random backend version " VERSION
+#ifndef REPRODUCIBLE
+      << " (" __DATE__ " " __TIME__ ")"
+#endif
+      << " reporting" << endl;
   }  
 };
 
index 76dcc7bd817c35fb0c26ea2e2f8558e75e2a7ac2..c7405bdaace4d1e89c323a657370d26c9fdba37d 100644 (file)
@@ -1069,7 +1069,11 @@ public:
 
 RemoteLoader::RemoteLoader() {
     BackendMakers().report(new RemoteBackendFactory);
-    L << Logger::Info << kBackendId << " This is the remote backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+    L << Logger::Info << kBackendId << " This is the remote backend version " VERSION
+#ifndef REPRODUCIBLE
+      << " (" __DATE__ " " __TIME__ ")"
+#endif
+      << " reporting" << endl;
 }
 
 static RemoteLoader remoteloader;
index dede5289380f2f7e1330295bcfc6288aa4b361f7..b04dd5b2231a81ccc8d6d2bd3ed9d3f7c6a2e424 100644 (file)
@@ -329,7 +329,11 @@ class TinyDNSLoader
 public:
        TinyDNSLoader() {
                BackendMakers().report(new TinyDNSFactory);
-               L << Logger::Info << "[tinydnsbackend] This is the tinydns backend version " VERSION " (" __DATE__ ", " __TIME__ ") reporting" << endl;
+               L << Logger::Info << "[tinydnsbackend] This is the tinydns backend version " VERSION
+#ifndef REPRODUCIBLE
+                 << " (" __DATE__ " " __TIME__ ")"
+#endif
+                 << " reporting" << endl;
        }
 };
 
index 98747621f5e5054167687e005bb10ff84b30f8ef..f3cfaee45666ddc186b0996096de701159f12769 100644 (file)
@@ -30,7 +30,7 @@ REC_CONTROL_OBJECTS=rec_channel.o rec_control.o arguments.o misc.o \
        unix_utility.o logger.o qtype.o
 
 # what we need 
-all: message version_generated.h build
+all: message build
 
 # OS specific instructions
 -include sysdeps/$(shell uname).inc
@@ -69,26 +69,6 @@ CFLAGS += -DSYSCONFDIR='"$(SYSCONFDIR)"' -DLOCALSTATEDIR='"$(LOCALSTATEDIR)"'
 dnslabeltext.cc: dnslabeltext.rl
        ragel $< -o $@
 
-# Version
-build_date := $(shell LC_TIME=C date '+%Y%m%d%H%M%S')
-build_host := $(shell id -u -n)@$(shell hostname -f 2>/dev/null || hostname 2>/dev/null || echo localhost)
-
-.PHONY: version_generated.h
-version_generated.h:
-       @echo "$$create_version_generated_h" > $@
-
-define create_version_generated_h
-#ifndef VERSION_GENERATED_H
-#define VERSION_GENERATED_H
-#include "config.h"
-#define PDNS_VERSION VERSION
-#define BUILD_DATE "$(build_date)"
-#define BUILD_HOST "$(build_host)"
-#endif //!VERSION_GENERATED_H
-endef
-
-export create_version_generated_h
-
 message: 
        @echo
        @echo PLEASE READ: If you get an error mentioning \#include '<boost/something.hpp>', please read README
@@ -128,7 +108,7 @@ clean: binclean
        -rm -f dep *~ *.gcda *.gcno optional/*.gcda optional/*.gcno
 
 binclean:
-       -rm -f *.o pdns_hw pdns_recursor rec_control optional/*.o build-stamp ext/library/*.o ext/yahttp/yahttp/*.o version_generated.h
+       -rm -f *.o pdns_hw pdns_recursor rec_control optional/*.o build-stamp ext/library/*.o ext/yahttp/yahttp/*.o
 
 dep:
        $(CXX) $(CXXFLAGS) -MM -MG *.cc *.hh > $@
index 5429a5dace51a421879bd8ab4b073941d619c512..10ae888221167e6b29493229e2211473041abcbc 100644 (file)
@@ -53,11 +53,9 @@ EXTRA_DIST = \
 
 BUILT_SOURCES = \
        bind-dnssec.schema.sqlite3.sql.h \
-       version_generated.h \
        bindparser.h htmlfiles.h 
 
 CLEANFILES = \
-       version_generated.h \
        *.gcda \
        *.gcno \
        *.gcov \
@@ -1134,42 +1132,5 @@ bind-dnssec.schema.sqlite3.sql.h: bind-dnssec.schema.sqlite3.sql
 .hh.h:
        cp $< $@
 
-build_date := $(shell LC_TIME=C date '+%Y%m%d%H%M%S')
-build_host := $(shell id -u -n)@$(shell hostname -f 2>/dev/null || hostname 2>/dev/null || echo localhost)
-git_version := $(shell git describe --always --dirty=+ 2>/dev/null)
-# Do the test in shell, so we don't confuse automake with ifeq/ifneq.
-pdns_version := $(shell test -z "$(git_version)" && echo UNKNOWN || echo "git-$(git_version)")
-
-version.o: version_generated.h
-
 pubsuffix.cc: $(srcdir)/effective_tld_names.dat
        ./mkpubsuffixcc
-
-.PHONY: version_generated.h
-version_generated.h:
-       @echo "$$create_version_generated_h" > $@
-
-if RELEASE_BUILD
-define create_version_generated_h
-#ifndef VERSION_GENERATED_H
-#define VERSION_GENERATED_H
-#define PDNS_VERSION "$(PACKAGE_VERSION)"
-#define DIST_HOST "$(DIST_HOST)"
-#define BUILD_DATE "$(build_date)"
-#define BUILD_HOST "$(build_host)"
-#endif //!VERSION_GENERATED_H
-endef
-
-else
-define create_version_generated_h
-#ifndef VERSION_GENERATED_H
-#define VERSION_GENERATED_H
-#define PDNS_VERSION "$(pdns_version)"
-#define DIST_HOST "$(build_host)"
-#define BUILD_DATE "$(build_date)"
-#define BUILD_HOST "$(build_host)"
-#endif //!VERSION_GENERATED_H
-endef
-endif
-
-export create_version_generated_h
diff --git a/pdns/build-recursor b/pdns/build-recursor
deleted file mode 100755 (executable)
index 380b0c0..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-set -e
-set -x
-
-if [ -z "$1" ]; then
-  VERSION=$(git describe --always --dirty=+ 2>/dev/null || true)
-  if [ -z "$VERSION" ]; then
-    VERSION="UNKNOWN"
-  else
-    VERSION="git-"$VERSION
-  fi
-  DIST_HOST="$(id -u -n)@$(hostname -f 2>/dev/null || hostname 2>/dev/null || echo localhost)"
-else
-  VERSION=$1
-fi
-
-cd pdns-recursor-$VERSION
-export DEBFULLNAME="PowerDNS.COM BV"
-if echo $VERSION | grep -q ^git
-then
-       DEBPKGNAME=pdns-recursor_0.0-$VERSION
-else
-       DEBPKGNAME=pdns-recursor_$VERSION
-fi
-dh_make -e powerdns.support@powerdns.com -s -f ../pdns-recursor-$VERSION.tar.bz2 -p $DEBPKGNAME < /dev/null
-cp pdns-recursor.init.d debian/init.d
-#[ -e debian/control ] || dh_make -e powerdns.support@powerdns.com -s -r cdbs  -f ../pdns-recursor-$VERSION.tar.bz2  < /dev/null
-perl -i -pe 's/Description: <.*>/Description: extremely powerful and versatile recursing nameserver/' debian/control
-# only to be nice to people usind the generated .dsc
-perl -i -pe 's/(Build-Depends: .*)/$1, libboost-dev, libboost-serialization-dev, liblua5.1-0-dev/' debian/control
-export LUA=1
-export STATIC=semi
-./configure
-fakeroot debian/rules binary
-fakeroot rpmbuild -bb ../pdns-recursor.spec
index f18eff6ae3a2996fc9ea219a9442e3d67699382a..802f3b9ede5458cdb42fd83a84433889c231b921 100755 (executable)
@@ -13,6 +13,12 @@ if [ "$STATIC" = "" ]; then
   STATIC="no"
 fi
 
+if [ "$REPRODUCIBLE" = "1" ]; then
+  cat >> config.h << EOF
+#define REPRODUCIBLE 1
+EOF
+fi
+
 set -u
 
 LD_RELRO=""
@@ -20,6 +26,11 @@ CF_PIE=""
 LD_PIE=""
 CF_FORTIFY=""
 CF_STACK=""
+BUILD_HOST="$(id -u -n)@$(hostname -f 2>/dev/null || hostname 2>/dev/null || echo localhost)"
+
+cat >> config.h << EOF
+#define BUILD_HOST "${BUILD_HOST}"
+EOF
 
 test_flags() {
   # test for relocation
index aa0ae7224536520d8949980535cbc62464174469..8ae15c9e0c92634c6b1117c5c54e84d46f2b385b 100644 (file)
@@ -381,6 +381,7 @@ public:
     return false;
   }
 
+  const string& getPrefix() { return d_prefix; };
 protected:
   bool mustDo(const string &key);
   const string &getArg(const string &key);
index bd3d1d2be2262f814d5d35a89c783309cb4b2e16..e5b72d02bc4e732d284af349d9da98a936c0b920 100644 (file)
 #include <algorithm>
 #include "anadns.hh"
 
-#include "namespaces.hh"
 #include "namespaces.hh"
 
 StatBag S;
 
 struct Entry
 {
-  uint32_t ip;
+  ComboAddress ip;
   uint16_t port;
   uint16_t id;
 
@@ -52,7 +51,7 @@ try
 
           MOADNSParser mdp((const char*)pr.d_payload, pr.d_len);
 
-          memcpy(&entry.ip, &pr.d_ip->ip_src, 4);
+          entry.ip = pr.getSource();
           entry.port = pr.d_udp->uh_sport;
           entry.id=dh->id;
 
@@ -64,7 +63,7 @@ try
               break;
           }
           if(pos ==mdp.d_qname.size()) {
-            cout << "insert into dnsstats (source, port, id, query, qtype, tstampSec, tstampUsec, arcount) values ('" << U32ToIP(ntohl(entry.ip)) <<"', "<< ntohs(entry.port) <<", "<< ntohs(dh->id);
+            cout << "insert into dnsstats (source, port, id, query, qtype, tstampSec, tstampUsec, arcount) values ('" << entry.ip.toString() <<"', "<< ntohs(entry.port) <<", "<< ntohs(dh->id);
             cout <<", '"<<mdp.d_qname<<"', "<<mdp.d_qtype<<", " << pr.d_pheader.ts.tv_sec <<", " << pr.d_pheader.ts.tv_usec;
             cout <<", "<< ntohs(dh->arcount) <<");\n";
           }
index d5aaccad03631f842ee54bcc27f75dc0ebaa276a..7a10e4a8b0a98e2777361e6c0bf7b0130b685b23 100644 (file)
@@ -70,7 +70,7 @@ try
         
       }
       catch(MOADNSException &e) {
-        cout<<"Error from remote "<<U32ToIP(ntohl(*((uint32_t*)&pr.d_ip->ip_src)))<<": "<<e.what()<<"\n";
+        cout<<"Error from remote "<<pr.getSource().toString()<<": "<<e.what()<<"\n";
         //        sock.sendTo(string(pr.d_payload, pr.d_payload + pr.d_len), remote);
       }
     }
index 95bac8655236496e9364d5ae70e85f230bdf8741..ae8a5f543cc8b8e774142cd72cd4538a867e4f6c 100644 (file)
@@ -27,11 +27,11 @@ StatBag S;
 class IPObfuscator
 {
 public:
-  IPObfuscator() : d_romap(d_ipmap), d_counter(0)
+  IPObfuscator() : d_romap(d_ipmap), d_ro6map(d_ip6map), d_counter(0)
   {
   }
 
-  uint32_t obf(uint32_t orig)
+  uint32_t obf4(uint32_t orig)
   {
     if(d_romap.count(orig))
       return d_ipmap[orig];
@@ -40,9 +40,23 @@ public:
     }
   }
 
+  uint64_t obf6(uint64_t orig)
+  {
+    cout<<d_counter<<endl;
+    if(d_ro6map.count(orig))
+      return d_ip6map[orig];
+    else {
+      return d_ip6map[orig]=d_counter++;
+    }
+  }
+
 private:
   map<uint32_t, uint32_t> d_ipmap;
   const map<uint32_t, uint32_t>& d_romap;
+  // For IPv6 addresses
+  map<uint64_t, uint32_t> d_ip6map;
+  const map<uint64_t, uint32_t>& d_ro6map;
+  // The counter that we'll convert to an IP address
   uint32_t d_counter;
 };
 
@@ -61,16 +75,24 @@ try
     if(ntohs(pr.d_udp->uh_dport)==53 || (ntohs(pr.d_udp->uh_sport)==53 && pr.d_len > sizeof(dnsheader))) {
       dnsheader* dh=(dnsheader*)pr.d_payload;
 
-      uint32_t *src=(uint32_t*)&pr.d_ip->ip_src;
-      uint32_t *dst=(uint32_t*)&pr.d_ip->ip_dst;
-      
-      if(dh->qr)
-        *dst=htonl(ipo.obf(*dst));
-      else
-        *src=htonl(ipo.obf(*src));
-      
+      if (pr.d_ip->ip_v == 4){
+        uint32_t *src=(uint32_t*)&pr.d_ip->ip_src;
+        uint32_t *dst=(uint32_t*)&pr.d_ip->ip_dst;
+
+        if(dh->qr)
+          *dst=htonl(ipo.obf4(*dst));
+        else
+          *src=htonl(ipo.obf4(*src));
+      } else if (pr.d_ip->ip_v == 6) {
+        uint64_t *src=1+(uint64_t*)&pr.d_ip6->ip6_src;
+        uint64_t *dst=1+(uint64_t*)&pr.d_ip6->ip6_dst;
+
+        if(dh->qr)
+          *dst=ipo.obf6(*dst);
+        else
+          *src=ipo.obf6(*src);
+      }
       pr.d_ip->ip_sum=0;
-      
       pw.write();
     }
   }
index ec46daef3e3ecafffa6a22080c5220b289bf2e06..011ed19c2296371fe269f5f8a59d2fbaeefac99d 100644 (file)
@@ -1293,6 +1293,7 @@ try
     cerr<<"add-zone-key ZONE zsk|ksk [bits] [active|passive]"<<endl;
     cerr<<"             [rsasha1|rsasha256|rsasha512|gost|ecdsa256|ecdsa384]"<<endl;
     cerr<<"                                   Add a ZSK or KSK to zone and specify algo&bits"<<endl;
+    cerr<<"b2b-migrate old new                Move all data from one backend to another"<<endl;
     cerr<<"bench-db [filename]                Bench database backend with queries, one domain per line"<<endl;
     cerr<<"check-zone ZONE                    Check a zone for correctness"<<endl;
     cerr<<"check-all-zones                    Check all zones for correctness"<<endl;
@@ -2263,6 +2264,101 @@ try
     cerr<<"PKCS#11 support not enabled"<<endl;
     return 1; 
 #endif
+  } else if (cmds[0] == "b2b-migrate") {
+    if (cmds.size() < 3) {
+      cerr<<"Usage: b2b-migrate old new"<<endl;
+      return 1;
+    }
+
+    DNSBackend *src,*tgt;
+    src = tgt = NULL;
+
+    for(DNSBackend *b : BackendMakers().all()) {
+      if (b->getPrefix() == cmds[1]) src = b;
+      if (b->getPrefix() == cmds[2]) tgt = b;
+    }
+    if (!src) {
+      cerr<<"Unknown source backend '"<<cmds[1]<<"'"<<endl;
+      return 1;
+    }
+    if (!tgt) {
+      cerr<<"Unknown target backend '"<<cmds[2]<<"'"<<endl;
+      return 1;
+    }
+
+    cout<<"Moving zone(s) from "<<src->getPrefix()<<" to "<<tgt->getPrefix()<<endl;
+
+    vector<DomainInfo> domains;
+
+    tgt->getAllDomains(&domains, true);
+    if (domains.size()>0)
+      throw PDNSException("Target backend has domain(s), please clean it first");
+
+    src->getAllDomains(&domains, true);
+    // iterate zones
+    for(const DomainInfo& di: domains) {
+      size_t nr,nc,nm,nk;
+      DNSResourceRecord rr;
+      cout<<"Processing '"<<di.zone<<"'"<<endl;
+      // create zone
+      if (!tgt->createDomain(di.zone)) throw PDNSException("Failed to create zone");
+      tgt->setKind(di.zone, di.kind);
+      tgt->setAccount(di.zone,di.account);
+      for(const string& master: di.masters) {
+        tgt->setMaster(di.zone, master);
+      }
+      // move records
+      if (!src->list(di.zone, di.id, true)) throw PDNSException("Failed to list records");
+      nr=0;
+      while(src->get(rr)) {
+        if (!tgt->feedRecord(rr)) throw PDNSException("Failed to feed record");
+        nr++;
+      }
+      // move comments
+      nc=0;
+      if (src->listComments(di.id)) {
+        Comment c;
+        while(src->getComment(c)) {
+          tgt->feedComment(c);
+          nc++;
+        }
+      }
+      // move metadata
+      nm=0;
+      std::map<std::string, std::vector<std::string> > meta;
+      if (src->getAllDomainMetadata(di.zone, meta)) {
+        std::map<std::string, std::vector<std::string> >::iterator i;
+        for(i=meta.begin(); i != meta.end(); i++) {
+          if (!tgt->setDomainMetadata(di.zone, i->first, i->second)) throw PDNSException("Failed to feed domain metadata");
+          nm++;
+        }
+      }
+      // move keys
+      nk=0;
+      std::vector<DNSBackend::KeyData> keys;
+      if (src->getDomainKeys(di.zone, 0, keys)) {
+        for(const DNSBackend::KeyData& k: keys) {
+          tgt->addDomainKey(di.zone, k);
+          nk++;
+        }
+      }
+      cout<<"Moved "<<nr<<" record(s), "<<nc<<" comment(s), "<<nm<<" metadata(s) and "<<nk<<" cryptokey(s)"<<endl;
+    }
+
+    int ntk=0;
+    // move tsig keys
+    std::vector<struct TSIGKey> tkeys;
+    if (src->getTSIGKeys(tkeys)) {
+      for(const struct TSIGKey& tk: tkeys) {
+        if (!tgt->setTSIGKey(tk.name, tk.algorithm, tk.key)) throw PDNSException("Failed to feed TSIG key");
+        ntk++;
+      }
+    }
+    cout<<"Moved "<<ntk<<" TSIG key(s)"<<endl;
+
+    cout<<"Remember to drop the old backend and run rectify-all-zones"<<endl;
+
+    return 0;
   } else {
     cerr<<"Unknown command '"<<cmds[0] <<"'"<< endl;
     return 1;
index fb27bf622ab257348597df7048adae247df75bf2..a2f2c7237c703cb860027004465fba32507e0ab5 100644 (file)
@@ -167,8 +167,11 @@ void doSecPoll(bool first)
   }
   else {
     string pkgv(PACKAGEVERSION);
-    if(pkgv.find("git"))
+    if(pkgv.find("0.0."))
       L<<Logger::Warning<<"Could not retrieve security status update for '" + pkgv + "' on '"+query+"', RCODE = "<< RCode::to_s(res)<<endl;
+    else
+      L<<Logger::Warning<<"Not validating response for security status update, this a non-release version."<<endl;
+
     if(security_status == 1) // it was ok, not it is unknown
       security_status = 0;
   }
index e70d896013dbe3a9fe8591b361b0c24e81c09c31..ba76bcd6ddd1d185f6fef37e454e86c67efcafba 100644 (file)
@@ -51,8 +51,11 @@ void doSecPoll(time_t* last_secpoll)
   }
   else {
     string pkgv(PACKAGEVERSION);
-    if(pkgv.find("git"))
+    if(pkgv.find("0.0."))
       L<<Logger::Warning<<"Could not retrieve security status update for '" +pkgv+ "' on '"+query+"', RCODE = "<< RCode::to_s(res)<<endl;
+    else
+      L<<Logger::Warning<<"Not validating response for security status update, this a non-release version."<<endl;
+
     if(g_security_status == 1) // it was ok, not it is unknown
       g_security_status = 0;
     if(res == RCode::NXDomain) // if we had servfail, keep on trying more more frequently
index 4bb042f830e8f8c9b700fadd3f8e1895f4c601d8..f96a518d4fec3d71ce2e6b443afa91a5245aca05 100644 (file)
@@ -8,8 +8,8 @@ endif
 CXXFLAGS := $(CXXFLAGS) -D_GNU_SOURCE -DHAVE_STRCASESTR -std=gnu++11
 CFLAGS := $(CFLAGS) -D_GNU_SOURCE
 
-LUA_CPPFLAGS_CONFIG ?= -I/usr/include/lua5.1
-LUA_LIBS_CONFIG ?= -llua5.1 -rdynamic
+LUA_CPPFLAGS_CONFIG ?= -I/usr/include/lua5.2
+LUA_LIBS_CONFIG ?= -llua5.2 -rdynamic
 
 # Lua 5.0 settings
 #LUA_CPPFLAGS_CONFIG=-I/usr/include/lua50 
index 234ed96d67fbc5700d1d3c8722840714e724860d..58053114fb8f5e9707e063e1455d037d6c14fbe4 100644 (file)
@@ -25,7 +25,6 @@
 #endif
 #include "logger.hh"
 #include "version.hh"
-#include "version_generated.h"
 #include <polarssl/version.h>
 
 static ProductType productType;
@@ -54,7 +53,7 @@ string productName() {
 
 string getPDNSVersion()
 {
-  return PDNS_VERSION;
+  return VERSION;
 }
 
 // REST API product type
@@ -70,10 +69,14 @@ string productTypeApiType() {
 
 void showProductVersion()
 {
-  theL()<<Logger::Warning<<productName()<<" "<< PDNS_VERSION <<" (" DIST_HOST ") "
-    "(C) 2001-2015 PowerDNS.COM BV" << endl;
+  theL()<<Logger::Warning<<productName()<<" "<< VERSION << " (C) 2001-2015 "
+    "PowerDNS.COM BV" << endl;
   theL()<<Logger::Warning<<"Using "<<(sizeof(unsigned long)*8)<<"-bits mode. "
-    "Built on " BUILD_DATE " by " BUILD_HOST ", "<<compilerVersion()<<"."<<endl;
+    "Built using " << compilerVersion()
+#ifndef REPRODUCIBLE
+    <<" on " __DATE__ " " __TIME__ " by " BUILD_HOST
+#endif
+    <<"."<< endl;
   theL()<<Logger::Warning<<"PowerDNS comes with ABSOLUTELY NO WARRANTY. "
     "This is free software, and you are welcome to redistribute it "
     "according to the terms of the GPL version 2." << endl;
@@ -126,7 +129,10 @@ void showBuildConfiguration()
 string fullVersionString()
 {
   ostringstream s;
-  s<<productName()<<" " PDNS_VERSION " (" DIST_HOST " built " BUILD_DATE " " BUILD_HOST ")";
+  s<<productName()<<" " VERSION;
+#ifndef REPRODUCIBLE
+  s<<" (built " __DATE__ " " __TIME__ " by " BUILD_HOST ")";
+#endif
   return s.str();
 }