]> granicus.if.org Git - pdns/commitdiff
builder: add debian-stretch builder based on downstream
authorPieter Lexis <pieter.lexis@powerdns.com>
Thu, 14 Dec 2017 15:34:47 +0000 (16:34 +0100)
committerPieter Lexis <pieter.lexis@powerdns.com>
Thu, 27 Sep 2018 11:59:25 +0000 (13:59 +0200)
112 files changed:
builder-support/debian/debian-stretch/README.source [new file with mode: 0644]
builder-support/debian/debian-stretch/compat [new file with mode: 0644]
builder-support/debian/debian-stretch/config/bind.conf [new file with mode: 0644]
builder-support/debian/debian-stretch/config/dnsdomain2.schema [new file with mode: 0644]
builder-support/debian/debian-stretch/config/geoip.conf [new file with mode: 0644]
builder-support/debian/debian-stretch/config/godbc.conf [new file with mode: 0644]
builder-support/debian/debian-stretch/config/ldap.conf [new file with mode: 0644]
builder-support/debian/debian-stretch/config/lua.conf [new file with mode: 0644]
builder-support/debian/debian-stretch/config/named.conf [new file with mode: 0644]
builder-support/debian/debian-stretch/config/opendbx.conf [new file with mode: 0644]
builder-support/debian/debian-stretch/config/pdns.local.gmysql.conf [new file with mode: 0644]
builder-support/debian/debian-stretch/config/pdns.local.gpgsql.conf [new file with mode: 0644]
builder-support/debian/debian-stretch/config/pdns.local.gsqlite3.conf [new file with mode: 0644]
builder-support/debian/debian-stretch/config/pipe.conf [new file with mode: 0644]
builder-support/debian/debian-stretch/config/tinydns.conf [new file with mode: 0644]
builder-support/debian/debian-stretch/control [new file with mode: 0644]
builder-support/debian/debian-stretch/copyright [new file with mode: 0644]
builder-support/debian/debian-stretch/gbp.conf [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-bind.dirs [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-bind.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-bind.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-bind.postrm [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-geoip.examples [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-geoip.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-geoip.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-ldap.examples [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-ldap.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-ldap.manpages [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-ldap.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-lua.docs [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-lua.examples [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-lua.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-lua.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-mydns.docs [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-mydns.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-mydns.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-mysql.README.Debian [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-mysql.config [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-mysql.docs [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-mysql.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-mysql.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-mysql.postrm [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-mysql.prerm [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-odbc.docs [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-odbc.examples [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-odbc.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-odbc.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-opendbx.examples [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-opendbx.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-opendbx.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-pgsql.README.Debian [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-pgsql.config [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-pgsql.docs [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-pgsql.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-pgsql.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-pgsql.postrm [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-pgsql.prerm [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-pipe.examples [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-pipe.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-pipe.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-remote.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-remote.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-sqlite3.config [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-sqlite3.dirs [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-sqlite3.docs [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-sqlite3.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-sqlite3.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-sqlite3.postrm [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-sqlite3.prerm [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-tinydns.examples [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-tinydns.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-backend-tinydns.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-server.README.Debian [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-server.dirs [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-server.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-server.lintian-overrides [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-server.manpages [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-server.pdns.default [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-server.pdns.init [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-server.postinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-server.preinst [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-tools.install [new file with mode: 0644]
builder-support/debian/debian-stretch/pdns-tools.manpages [new file with mode: 0644]
builder-support/debian/debian-stretch/rules [new file with mode: 0755]
builder-support/debian/debian-stretch/source/format [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/mysql/3.0-1 [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/mysql/3.3.1-4 [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/mysql/3.4.0 [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/mysql/4.0.1-6 [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/mysql/4.0.3-1 [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/mysql/4.1.0-1 [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/mysql/mysql [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/pgsql/3.0-1 [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/pgsql/3.3-1 [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/pgsql/3.3.1-4 [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/pgsql/3.4.0 [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/pgsql/4.1.0-1 [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/pgsql/pgsql [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/sqlite3/3.0-1 [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/sqlite3/3.4.0 [new file with mode: 0644]
builder-support/debian/debian-stretch/sql/sqlite3/sqlite3 [new file with mode: 0644]
builder-support/debian/debian-stretch/tests/control [new file with mode: 0644]
builder-support/debian/debian-stretch/tests/smoke-bind [new file with mode: 0755]
builder-support/debian/debian-stretch/tests/smoke-mysql [new file with mode: 0755]
builder-support/debian/debian-stretch/tests/smoke-pgsql [new file with mode: 0755]
builder-support/debian/debian-stretch/tests/supported-algos [new file with mode: 0755]
builder-support/debian/debian-stretch/triggers [new file with mode: 0644]
builder-support/debian/debian-stretch/upstream/signing-key.asc [new file with mode: 0644]
builder-support/debian/debian-stretch/watch [new file with mode: 0644]
builder-support/dockerfiles/Dockerfile.debbuild [new file with mode: 0644]
builder-support/dockerfiles/Dockerfile.debbuild-prepare [new file with mode: 0644]
builder-support/dockerfiles/Dockerfile.target.debian-stretch [new file with mode: 0644]

diff --git a/builder-support/debian/debian-stretch/README.source b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/compat b/builder-support/debian/debian-stretch/compat
new file mode 100644 (file)
index 0000000..ec63514
--- /dev/null
@@ -0,0 +1 @@
+9
diff --git a/builder-support/debian/debian-stretch/config/bind.conf b/builder-support/debian/debian-stretch/config/bind.conf
new file mode 100644 (file)
index 0000000..7353b16
--- /dev/null
@@ -0,0 +1,46 @@
+# Bind backend configuration
+
+launch+=bind
+
+#################################
+# bind-check-interval  Interval for zonefile changes
+#
+# bind-check-interval=0
+
+#################################
+# bind-config  Location of named.conf
+#
+# bind-config=
+bind-config=/etc/powerdns/named.conf
+
+#################################
+# bind-dnssec-db       Filename to store & access our DNSSEC metadatabase, empty for none
+#
+# bind-dnssec-db=
+
+#################################
+# bind-hybrid  Store DNSSEC metadata in other backend
+#
+# bind-hybrid=no
+
+#################################
+# bind-ignore-broken-records   Ignore records that are out-of-bound for the zone.
+#
+# bind-ignore-broken-records=no
+
+#################################
+# bind-supermaster-config      Location of (part of) named.conf where pdns can write zone-statements to
+#
+# bind-supermaster-config=
+bind-supermaster-config=/var/lib/powerdns/supermaster.conf
+
+#################################
+# bind-supermaster-destdir     Destination directory for newly added slave zones
+#
+# bind-supermaster-destdir=
+bind-supermaster-destdir=/var/lib/powerdns/zones.slave.d
+
+#################################
+# bind-supermasters    List of IP-addresses of supermasters
+#
+# bind-supermasters=
diff --git a/builder-support/debian/debian-stretch/config/dnsdomain2.schema b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/config/geoip.conf b/builder-support/debian/debian-stretch/config/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/builder-support/debian/debian-stretch/config/godbc.conf b/builder-support/debian/debian-stretch/config/godbc.conf
new file mode 100644 (file)
index 0000000..a80b71b
--- /dev/null
@@ -0,0 +1,19 @@
+# godbc Configuration
+#
+# Uncomment to launch the godbc backend
+#launch+=godbc
+
+#################################
+# godbc-datasource      Datasource (DSN) to use
+#
+# godbc-datasource=PowerDNS
+
+#################################
+# godbc-username        User to connect as
+#
+# godbc-username=powerdns
+
+#################################
+# godbc-password        Password to connect with
+#
+# godbc-password=
diff --git a/builder-support/debian/debian-stretch/config/ldap.conf b/builder-support/debian/debian-stretch/config/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/builder-support/debian/debian-stretch/config/lua.conf b/builder-support/debian/debian-stretch/config/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/builder-support/debian/debian-stretch/config/named.conf b/builder-support/debian/debian-stretch/config/named.conf
new file mode 100644 (file)
index 0000000..7b8f760
--- /dev/null
@@ -0,0 +1,10 @@
+# Debian default: supermaster created zones are written here:
+include "/var/lib/powerdns/supermaster.conf";
+
+# Example for a manually configured slave zone:
+#
+# zone "example.net" {
+#   file "/var/lib/powerdns/zones.slave.d/example.net.zone";
+#   type slave;
+#   masters { 192.0.2.53; };
+# };
diff --git a/builder-support/debian/debian-stretch/config/opendbx.conf b/builder-support/debian/debian-stretch/config/opendbx.conf
new file mode 100644 (file)
index 0000000..3de13a9
--- /dev/null
@@ -0,0 +1,22 @@
+# OpenDBX Configuration
+#
+# The backend to use
+# opendbx-backend=
+#
+# The database host to read from
+# opendbx-host-read=
+#
+# The database host to write to
+# opendbx-host-write=
+#
+# The port on which the database hosts listen
+# opendbx-port=
+#
+# The name of the database
+# opendbx-database=
+#
+# The username to connect to the database
+# opendbx-username=
+#
+# The password to connect to the database
+# opendbx-password
diff --git a/builder-support/debian/debian-stretch/config/pdns.local.gmysql.conf b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/config/pdns.local.gpgsql.conf b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/config/pdns.local.gsqlite3.conf b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/config/pipe.conf b/builder-support/debian/debian-stretch/config/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/builder-support/debian/debian-stretch/config/tinydns.conf b/builder-support/debian/debian-stretch/config/tinydns.conf
new file mode 100644 (file)
index 0000000..22f0449
--- /dev/null
@@ -0,0 +1,27 @@
+# Config file for the TinyDNS backend
+# Specifies the name of the data file to use.
+# tinydns-dbfile=data.cdb
+
+# Adjusts the TAI value if timestamps are used. These seconds will be added to
+# the start point (1970) and will allow you to adjust for leap seconds. The
+# current default is 11. The last update was on june 30th 2012.
+# tinydns-tai-adjust=11
+# 
+# Notify all the slave nameservers on startup. This might cause broadcast storms.
+# tinydns-notify-on-startup=no
+
+# The tinydns-data program can create data.cdb files that have bad/corrupt
+# RDATA. PowerDNS will crash when it tries to read that bad/corrupt data. This
+# option (change to yes), allows you to ignore that bad RDATA to make PowerDNS
+# operate when bad data is in your CDB file. Be aware that the records are then
+# ignored, where tinydns would still send out the bogus data. The option is
+# primarily useful in master mode, as that reads all the packets in the zone to
+# find all the SOA records.
+# tinydns-ignore-bogus-records=no
+
+
+# Enable or Disable location support in the backend. Changing the value to 'no'
+# will make the backend ignore the locations. This then returns all records.
+# When the setting is changed to 'no' an AXFR will also return all the records.
+# With the setting on 'yes' an AXFR will only return records without a location.
+# tinydns-locations=no
diff --git a/builder-support/debian/debian-stretch/control b/builder-support/debian/debian-stretch/control
new file mode 100644 (file)
index 0000000..a2802cc
--- /dev/null
@@ -0,0 +1,281 @@
+Source: pdns
+Section: net
+Priority: extra
+Standards-Version: 4.1.1
+Maintainer: PowerDNS Autobuilder <powerdns.support@powerdns.com>
+Origin: PowerDNS
+Build-Depends: autoconf,
+               automake,
+               autotools-dev,
+               bison,
+               curl,
+               debhelper (>= 9.20160114~),
+               default-libmysqlclient-dev,
+               dh-autoreconf,
+               dh-systemd,
+               dpkg-dev (>= 1.17.0~),
+               flex,
+               libboost-dev,
+               libboost-program-options-dev,
+               libboost-serialization-dev,
+               libboost-test-dev,
+               libcdb-dev,
+               libgeoip-dev,
+               libkrb5-dev,
+               libldap2-dev,
+               liblua5.3-dev,
+               libopendbx1-dev,
+               libpq-dev,
+               libsodium-dev,
+               libsqlite3-dev,
+               libssl-dev,
+               libsystemd-dev [linux-any],
+               libtool,
+               libyaml-cpp-dev (>= 0.5),
+               pkg-config,
+               po-debconf,
+               ragel,
+               unixodbc-dev (>= 2.3.1)
+Homepage: http://www.powerdns.com/
+
+Package: pdns-server
+Architecture: any
+Depends: adduser,
+         ${misc:Depends},
+         ${shlibs:Depends}
+Recommends: pdns-backend-bind
+Suggests: pdns-backend
+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. You also need at least one backend installed to
+ serve data.
+
+Package: pdns-tools
+Architecture: any
+Depends: ${misc:Depends},
+         ${shlibs:Depends}
+Replaces: pdns-server (<< 3.4.6-2)
+Breaks: pdns-server (<< 3.4.6-2)
+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
+   * ixplore: Explore diffs from IXFRs
+   * nsec3dig: Calculate the correctness of NSEC3 proofs
+   * saxfr: AXFR zones and show extra information
+
+Package: pdns-backend-bind
+Architecture: any
+Depends: pdns-server (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: pdns-backend
+Replaces: pdns-server (<< 4.0.0-2~)
+Breaks: pdns-server (<< 4.0.0-2~)
+Description: BIND 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 bind backend for the PowerDNS nameserver.
+ Zone data will be read from flat BIND-style zone files, and the list
+ of zones needs to be given in a named.conf-style file.
+
+Package: pdns-backend-pipe
+Architecture: any
+Depends: pdns-server (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs: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 (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs: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-geoip
+Architecture: any
+Depends: pdns-server (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+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 geoip-backend for the PowerDNS nameserver. This
+ backend balances the load throughout the world so that people access the
+ geographically nearest available server based on a zonefile written in
+ YAML.
+
+Package: pdns-backend-mysql
+Architecture: any
+Depends: pdns-server (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Suggests: default-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-odbc
+Architecture: any
+Depends: pdns-server (>= ${source:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: pdns-backend
+Description: generic UnixODBC 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 UnixODBC backend for the PowerDNS
+ nameserver. It has configurable SQL statements.
+
+Package: pdns-backend-pgsql
+Architecture: any
+Depends: pdns-server (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+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 (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+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 (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs: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-remote
+Architecture: any
+Depends: pdns-server (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs: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-opendbx
+Architecture: any
+Depends: pdns-server (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: pdns-backend
+Description: OpenDBX 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 OpenDBX backend for PowerDNS. Please install
+ the libopendbx1-DATABASE package to allow OpenDBX to connect to
+ the chosen database.
+
+Package: pdns-backend-mydns
+Architecture: any
+Depends: pdns-server (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs: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.
+
+Package: pdns-backend-tinydns
+Architecture: any
+Depends: pdns-server (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Provides: pdns-backend
+Description: tinydns 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 tinydns compatibility backend for PowerDNS.
diff --git a/builder-support/debian/debian-stretch/copyright b/builder-support/debian/debian-stretch/copyright
new file mode 100644 (file)
index 0000000..6d7144d
--- /dev/null
@@ -0,0 +1,623 @@
+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 - 2016 PowerDNS.COM BV and contributors
+License: GPL-2 with OpenSSL Exception
+Comment: Sometimes, Netherlabs BV is credited, which is a precursor
+ to todays PowerDNS.COM BV.
+
+Files: m4/ax_cxx_compile_stdcxx_11.m4
+Copyright: 2008 Benjamin Kosnik <bkoz@redhat.com>
+ 2012 Zack Weinberg <zackw@panix.com>
+ 2013 Roy Stogner <roystgnr@ices.utexas.edu>
+ 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
+License: free-generic
+
+Files: m4/boost.m4
+Copyright: 2007-2011, 2014  Benoit Sigoure <tsuna@lrde.epita.fr>
+License: GPL-3 or Autoconf
+
+Files: m4/libtool.m4 m4/lt*.m4
+Copyright: 1996-2011 Free Software Foundation, Inc.
+License: free-fsf
+
+Files: m4/systemd.m4
+Copyright: 2014 Luis R. Rodriguez <mcgrof@suse.com>
+ 2016 Pieter Lexis <pieter.lexis@powerdns.com>
+License: GPL-2+
+
+Files: m4/warnings.m4
+Copyright: 2008-2015 Free Software Foundation, Inc.
+License: free-fsf
+
+Files: m4/pdns_d_fortify_source.m4 m4/pdns_param_ssp_buffer_size.m4 m4/pdns_pie.m4 m4/pdns_relro.m4 m4/pdns_stack_protector.m4
+Copyright: 2013 Red Hat, Inc.
+License: LGPL-2.1+
+
+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 - 2015 Christian Hofstaedtler <zeha@debian.org>
+License: GPL-2
+
+Files: modules/gsqlite3backend/*
+Copyright: 2003 Michel Stol <michel@powerdns.com>
+ 2011 PowerDNS.COM BV
+License: GPL-2 with OpenSSL Exception
+
+Files: modules/mydnsbackend/*
+Copyright: 2011 Jonathan Oddy (Hostway UK) <jonathan@woaf.net>
+License: GPL-2 with OpenSSL Exception
+
+Files: modules/mydnsbackend/schema.mydns.sql
+Copyright: 2002-2005 Don Moore
+ 2007-2008 Howard Wilkinson
+License: GPL-2+
+
+Files: modules/ldapbackend/* pdns/zone2ldap.cc
+Copyright: 2003-2007 Norbert Sendetzky <norbert@linuxnetworks.de>
+License: GPL-2 with OpenSSL Exception
+
+Files: modules/luabackend/*
+Copyright: 2011 Fredrik Danerklint
+License: GPL-2 with OpenSSL Exception
+
+Files: modules/oraclebackend/*
+Copyright: 2010 - 2011 Maik Zumstrull
+ Steinbuch Centre for Computing,
+ Karlsruhe Institute of Technology
+License: Expat
+
+Files: modules/opendbxbackend/*
+Copyright: 2005-2007 Norbert Sendetzky <norbert@linuxnetworks.de>
+License: GPL-2 with OpenSSL Exception
+
+Files: ext/yahttp/*
+Copyright: 2014 Aki Tuomi
+License: Expat
+
+Files: ext/json11/*
+Copyright: 2013 Dropbox, Inc.
+License: Expat
+
+Files: ext/luawrapper/*
+Copyright: 2013, Pierre KRIEGER
+License: BSD-3
+
+Files: pdns/effective_tld_names.dat
+Copyright: 2007–11 Mozilla Foundation
+License: MPL-2.0
+
+License: MPL-2.0
+ Mozilla Public License Version 2.0
+ ==================================
+ .
+ 1. Definitions
+ --------------
+ .
+ 1.1. "Contributor"
+     means each individual or legal entity that creates, contributes to
+     the creation of, or owns Covered Software.
+ .
+ 1.2. "Contributor Version"
+     means the combination of the Contributions of others (if any) used
+     by a Contributor and that particular Contributor's Contribution.
+ .
+ 1.3. "Contribution"
+     means Covered Software of a particular Contributor.
+ .
+ 1.4. "Covered Software"
+     means Source Code Form to which the initial Contributor has attached
+     the notice in Exhibit A, the Executable Form of such Source Code
+     Form, and Modifications of such Source Code Form, in each case
+     including portions thereof.
+ .
+ 1.5. "Incompatible With Secondary Licenses"
+     means
+ .
+     (a) that the initial Contributor has attached the notice described
+         in Exhibit B to the Covered Software; or
+ .
+     (b) that the Covered Software was made available under the terms of
+         version 1.1 or earlier of the License, but not also under the
+         terms of a Secondary License.
+ .
+ 1.6. "Executable Form"
+     means any form of the work other than Source Code Form.
+ .
+ 1.7. "Larger Work"
+     means a work that combines Covered Software with other material, in
+     a separate file or files, that is not Covered Software.
+ .
+ 1.8. "License"
+     means this document.
+ .
+ 1.9. "Licensable"
+     means having the right to grant, to the maximum extent possible,
+     whether at the time of the initial grant or subsequently, any and
+     all of the rights conveyed by this License.
+ .
+ 1.10. "Modifications"
+     means any of the following:
+ .
+     (a) any file in Source Code Form that results from an addition to,
+         deletion from, or modification of the contents of Covered
+         Software; or
+ .
+     (b) any new file in Source Code Form that contains any Covered
+         Software.
+ .
+ 1.11. "Patent Claims" of a Contributor
+     means any patent claim(s), including without limitation, method,
+     process, and apparatus claims, in any patent Licensable by such
+     Contributor that would be infringed, but for the grant of the
+     License, by the making, using, selling, offering for sale, having
+     made, import, or transfer of either its Contributions or its
+     Contributor Version.
+ .
+ 1.12. "Secondary License"
+     means either the GNU General Public License, Version 2.0, the GNU
+     Lesser General Public License, Version 2.1, the GNU Affero General
+     Public License, Version 3.0, or any later versions of those
+     licenses.
+ .
+ 1.13. "Source Code Form"
+     means the form of the work preferred for making modifications.
+ .
+ 1.14. "You" (or "Your")
+     means an individual or a legal entity exercising rights under this
+     License. For legal entities, "You" includes any entity that
+     controls, is controlled by, or is under common control with You. For
+     purposes of this definition, "control" means (a) the power, direct
+     or indirect, to cause the direction or management of such entity,
+     whether by contract or otherwise, or (b) ownership of more than
+     fifty percent (50%) of the outstanding shares or beneficial
+     ownership of such entity.
+ .
+ 2. License Grants and Conditions
+ --------------------------------
+ .
+ 2.1. Grants
+ .
+ Each Contributor hereby grants You a world-wide, royalty-free,
+ non-exclusive license:
+ .
+ (a) under intellectual property rights (other than patent or trademark)
+     Licensable by such Contributor to use, reproduce, make available,
+     modify, display, perform, distribute, and otherwise exploit its
+     Contributions, either on an unmodified basis, with Modifications, or
+     as part of a Larger Work; and
+ .
+ (b) under Patent Claims of such Contributor to make, use, sell, offer
+     for sale, have made, import, and otherwise transfer either its
+     Contributions or its Contributor Version.
+ .
+ 2.2. Effective Date
+ .
+ The licenses granted in Section 2.1 with respect to any Contribution
+ become effective for each Contribution on the date the Contributor first
+ distributes such Contribution.
+ .
+ 2.3. Limitations on Grant Scope
+ .
+ The licenses granted in this Section 2 are the only rights granted under
+ this License. No additional rights or licenses will be implied from the
+ distribution or licensing of Covered Software under this License.
+ Notwithstanding Section 2.1(b) above, no patent license is granted by a
+ Contributor:
+ .
+ (a) for any code that a Contributor has removed from Covered Software;
+     or
+ .
+ (b) for infringements caused by: (i) Your and any other third party's
+     modifications of Covered Software, or (ii) the combination of its
+     Contributions with other software (except as part of its Contributor
+     Version); or
+ .
+ (c) under Patent Claims infringed by Covered Software in the absence of
+     its Contributions.
+ .
+ This License does not grant any rights in the trademarks, service marks,
+ or logos of any Contributor (except as may be necessary to comply with
+ the notice requirements in Section 3.4).
+ .
+ 2.4. Subsequent Licenses
+ .
+ No Contributor makes additional grants as a result of Your choice to
+ distribute the Covered Software under a subsequent version of this
+ License (see Section 10.2) or under the terms of a Secondary License (if
+ permitted under the terms of Section 3.3).
+ .
+ 2.5. Representation
+ .
+ Each Contributor represents that the Contributor believes its
+ Contributions are its original creation(s) or it has sufficient rights
+ to grant the rights to its Contributions conveyed by this License.
+ .
+ 2.6. Fair Use
+ .
+ This License is not intended to limit any rights You have under
+ applicable copyright doctrines of fair use, fair dealing, or other
+ equivalents.
+ .
+ 2.7. Conditions
+ .
+ Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+ in Section 2.1.
+ .
+ 3. Responsibilities
+ -------------------
+ .
+ 3.1. Distribution of Source Form
+ .
+ All distribution of Covered Software in Source Code Form, including any
+ Modifications that You create or to which You contribute, must be under
+ the terms of this License. You must inform recipients that the Source
+ Code Form of the Covered Software is governed by the terms of this
+ License, and how they can obtain a copy of this License. You may not
+ attempt to alter or restrict the recipients' rights in the Source Code
+ Form.
+ .
+ 3.2. Distribution of Executable Form
+ .
+ If You distribute Covered Software in Executable Form then:
+ .
+ (a) such Covered Software must also be made available in Source Code
+     Form, as described in Section 3.1, and You must inform recipients of
+     the Executable Form how they can obtain a copy of such Source Code
+     Form by reasonable means in a timely manner, at a charge no more
+     than the cost of distribution to the recipient; and
+ .
+ (b) You may distribute such Executable Form under the terms of this
+     License, or sublicense it under different terms, provided that the
+     license for the Executable Form does not attempt to limit or alter
+     the recipients' rights in the Source Code Form under this License.
+ .
+ 3.3. Distribution of a Larger Work
+ .
+ You may create and distribute a Larger Work under terms of Your choice,
+ provided that You also comply with the requirements of this License for
+ the Covered Software. If the Larger Work is a combination of Covered
+ Software with a work governed by one or more Secondary Licenses, and the
+ Covered Software is not Incompatible With Secondary Licenses, this
+ License permits You to additionally distribute such Covered Software
+ under the terms of such Secondary License(s), so that the recipient of
+ the Larger Work may, at their option, further distribute the Covered
+ Software under the terms of either this License or such Secondary
+ License(s).
+ .
+ 3.4. Notices
+ .
+ You may not remove or alter the substance of any license notices
+ (including copyright notices, patent notices, disclaimers of warranty,
+ or limitations of liability) contained within the Source Code Form of
+ the Covered Software, except that You may alter any license notices to
+ the extent required to remedy known factual inaccuracies.
+ .
+ 3.5. Application of Additional Terms
+ .
+ You may choose to offer, and to charge a fee for, warranty, support,
+ indemnity or liability obligations to one or more recipients of Covered
+ Software. However, You may do so only on Your own behalf, and not on
+ behalf of any Contributor. You must make it absolutely clear that any
+ such warranty, support, indemnity, or liability obligation is offered by
+ You alone, and You hereby agree to indemnify every Contributor for any
+ liability incurred by such Contributor as a result of warranty, support,
+ indemnity or liability terms You offer. You may include additional
+ disclaimers of warranty and limitations of liability specific to any
+ jurisdiction.
+ .
+ 4. Inability to Comply Due to Statute or Regulation
+ ---------------------------------------------------
+ .
+ If it is impossible for You to comply with any of the terms of this
+ License with respect to some or all of the Covered Software due to
+ statute, judicial order, or regulation then You must: (a) comply with
+ the terms of this License to the maximum extent possible; and (b)
+ describe the limitations and the code they affect. Such description must
+ be placed in a text file included with all distributions of the Covered
+ Software under this License. Except to the extent prohibited by statute
+ or regulation, such description must be sufficiently detailed for a
+ recipient of ordinary skill to be able to understand it.
+ .
+ 5. Termination
+ --------------
+ .
+ 5.1. The rights granted under this License will terminate automatically
+ if You fail to comply with any of its terms. However, if You become
+ compliant, then the rights granted under this License from a particular
+ Contributor are reinstated (a) provisionally, unless and until such
+ Contributor explicitly and finally terminates Your grants, and (b) on an
+ ongoing basis, if such Contributor fails to notify You of the
+ non-compliance by some reasonable means prior to 60 days after You have
+ come back into compliance. Moreover, Your grants from a particular
+ Contributor are reinstated on an ongoing basis if such Contributor
+ notifies You of the non-compliance by some reasonable means, this is the
+ first time You have received notice of non-compliance with this License
+ from such Contributor, and You become compliant prior to 30 days after
+ Your receipt of the notice.
+ .
+ 5.2. If You initiate litigation against any entity by asserting a patent
+ infringement claim (excluding declaratory judgment actions,
+ counter-claims, and cross-claims) alleging that a Contributor Version
+ directly or indirectly infringes any patent, then the rights granted to
+ You by any and all Contributors for the Covered Software under Section
+ 2.1 of this License shall terminate.
+ .
+ 5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+ end user license agreements (excluding distributors and resellers) which
+ have been validly granted by You or Your distributors under this License
+ prior to termination shall survive termination.
+ .
+ ************************************************************************
+ *                                                                      *
+ *  6. Disclaimer of Warranty                                           *
+ *  -------------------------                                           *
+ *                                                                      *
+ *  Covered Software is provided under this License on an "as is"       *
+ *  basis, without warranty of any kind, either expressed, implied, or  *
+ *  statutory, including, without limitation, warranties that the       *
+ *  Covered Software is free of defects, merchantable, fit for a        *
+ *  particular purpose or non-infringing. The entire risk as to the     *
+ *  quality and performance of the Covered Software is with You.        *
+ *  Should any Covered Software prove defective in any respect, You     *
+ *  (not any Contributor) assume the cost of any necessary servicing,   *
+ *  repair, or correction. This disclaimer of warranty constitutes an   *
+ *  essential part of this License. No use of any Covered Software is   *
+ *  authorized under this License except under this disclaimer.         *
+ *                                                                      *
+ ************************************************************************
+ .
+ ************************************************************************
+ *                                                                      *
+ *  7. Limitation of Liability                                          *
+ *  --------------------------                                          *
+ *                                                                      *
+ *  Under no circumstances and under no legal theory, whether tort      *
+ *  (including negligence), contract, or otherwise, shall any           *
+ *  Contributor, or anyone who distributes Covered Software as          *
+ *  permitted above, be liable to You for any direct, indirect,         *
+ *  special, incidental, or consequential damages of any character      *
+ *  including, without limitation, damages for lost profits, loss of    *
+ *  goodwill, work stoppage, computer failure or malfunction, or any    *
+ *  and all other commercial damages or losses, even if such party      *
+ *  shall have been informed of the possibility of such damages. This   *
+ *  limitation of liability shall not apply to liability for death or   *
+ *  personal injury resulting from such party's negligence to the       *
+ *  extent applicable law prohibits such limitation. Some               *
+ *  jurisdictions do not allow the exclusion or limitation of           *
+ *  incidental or consequential damages, so this exclusion and          *
+ *  limitation may not apply to You.                                    *
+ *                                                                      *
+ ************************************************************************
+ .
+ 8. Litigation
+ -------------
+ .
+ Any litigation relating to this License may be brought only in the
+ courts of a jurisdiction where the defendant maintains its principal
+ place of business and such litigation shall be governed by laws of that
+ jurisdiction, without reference to its conflict-of-law provisions.
+ Nothing in this Section shall prevent a party's ability to bring
+ cross-claims or counter-claims.
+ .
+ 9. Miscellaneous
+ ----------------
+ .
+ This License represents the complete agreement concerning the subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the extent
+ necessary to make it enforceable. Any law or regulation which provides
+ that the language of a contract shall be construed against the drafter
+ shall not be used to construe this License against a Contributor.
+ .
+ 10. Versions of the License
+ ---------------------------
+ .
+ 10.1. New Versions
+ .
+ Mozilla Foundation is the license steward. Except as provided in Section
+ 10.3, no one other than the license steward has the right to modify or
+ publish new versions of this License. Each version will be given a
+ distinguishing version number.
+ .
+ 10.2. Effect of New Versions
+ .
+ You may distribute the Covered Software under the terms of the version
+ of the License under which You originally received the Covered Software,
+ or under the terms of any subsequent version published by the license
+ steward.
+ .
+ 10.3. Modified Versions
+ .
+ If you create software not governed by this License, and you want to
+ create a new license for such software, you may create and use a
+ modified version of this License if you rename the license and remove
+ any references to the name of the license steward (except to note that
+ such modified license differs from this License).
+ .
+ 10.4. Distributing Source Code Form that is Incompatible With Secondary
+ Licenses
+ .
+ If You choose to distribute Source Code Form that is Incompatible With
+ Secondary Licenses under the terms of this version of the License, the
+ notice described in Exhibit B of this License must be attached.
+ .
+ Exhibit A - Source Code Form License Notice
+ -------------------------------------------
+ .
+   This Source Code Form is subject to the terms of the Mozilla Public
+   License, v. 2.0. If a copy of the MPL was not distributed with this
+   file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ .
+ If it is not possible or desirable to put the notice in a particular
+ file, then You may include the notice in a location (such as a LICENSE
+ file in a relevant directory) where a recipient would be likely to look
+ for such a notice.
+ .
+ You may add additional accurate notices of copyright ownership.
+ .
+ Exhibit B - "Incompatible With Secondary Licenses" Notice
+ ---------------------------------------------------------
+ .
+   This Source Code Form is "Incompatible With Secondary Licenses", as
+   defined by the Mozilla Public License, v. 2.0.
+
+License: BSD-3
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+     * Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+     * Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+     * Neither the name of the <organization> nor the
+       names of its contributors may be used to endorse or promote products
+       derived from this software without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+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: GPL-3 or Autoconf
+ 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 3 of the License, or
+ (at your option) any later version.
+ .
+ Additional permission under section 7 of the GNU General Public
+ License, version 3 ("GPLv3"):
+ .
+ If you convey this file as part of a work that contains a
+ configuration script generated by Autoconf, you may do so under
+ terms of your choice.
+ .
+ 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, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 3 can be found in the file
+ `/usr/share/common-licenses/GPL-3'.
+
+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'.
+
+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, see
+ <http://www.gnu.org/licenses/>.
+ .
+ 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'.
+
+License: free-fsf
+ This file is free software; the Free Software Foundation gives
+ unlimited permission to copy and/or distribute it, with or without
+ modifications, as long as this notice is preserved.
+
+License: free-generic
+ Copying and distribution of this file, with or without modification, are
+ permitted in any medium without royalty provided the copyright notice
+ and this notice are preserved. This file is offered as-is, without any
+ warranty.
diff --git a/builder-support/debian/debian-stretch/gbp.conf b/builder-support/debian/debian-stretch/gbp.conf
new file mode 100644 (file)
index 0000000..cec628c
--- /dev/null
@@ -0,0 +1,2 @@
+[DEFAULT]
+pristine-tar = True
diff --git a/builder-support/debian/debian-stretch/pdns-backend-bind.dirs b/builder-support/debian/debian-stretch/pdns-backend-bind.dirs
new file mode 100644 (file)
index 0000000..75de4d8
--- /dev/null
@@ -0,0 +1 @@
+var/lib/powerdns/zones.slave.d
diff --git a/builder-support/debian/debian-stretch/pdns-backend-bind.install b/builder-support/debian/debian-stretch/pdns-backend-bind.install
new file mode 100644 (file)
index 0000000..b6e7f5b
--- /dev/null
@@ -0,0 +1,3 @@
+debian/config/bind.conf etc/powerdns/pdns.d/
+debian/config/named.conf etc/powerdns/
+usr/lib/*/pdns/libbindbackend.so*
diff --git a/builder-support/debian/debian-stretch/pdns-backend-bind.postinst b/builder-support/debian/debian-stretch/pdns-backend-bind.postinst
new file mode 100644 (file)
index 0000000..ba1173f
--- /dev/null
@@ -0,0 +1,30 @@
+#!/bin/sh
+set -e
+
+case "$1" in
+    configure)
+        chown pdns:pdns /var/lib/powerdns/zones.slave.d || :
+
+        # Create suggested supermaster.conf, which is included from /etc/powerdns/named.conf by default.
+        BINDCONF=/etc/powerdns/pdns.d/bind.conf
+        SUPERMASTERCONF=/var/lib/powerdns/supermaster.conf
+        if test -e $BINDCONF && grep "^bind-supermaster-config=$SUPERMASTERCONF" $BINDCONF >/dev/null 2>&1; then
+            touch $SUPERMASTERCONF
+            chown pdns:pdns $SUPERMASTERCONF
+        fi
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+dpkg-trigger pdns-server
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-bind.postrm b/builder-support/debian/debian-stretch/pdns-backend-bind.postrm
new file mode 100644 (file)
index 0000000..51be23e
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+set -e
+
+case "$1" in
+  purge)
+    # remove data file, if empty (created by postinst).
+    if [ -e /var/lib/powerdns/supermaster.conf ] && echo "d41d8cd98f00b204e9800998ecf8427e /var/lib/powerdns/supermaster.conf" | md5sum --check --status; then
+      rm -f /var/lib/powerdns/supermaster.conf
+    fi
+  ;;
+esac
+
+#DEBHELPER#
diff --git a/builder-support/debian/debian-stretch/pdns-backend-geoip.examples b/builder-support/debian/debian-stretch/pdns-backend-geoip.examples
new file mode 100644 (file)
index 0000000..8f26fae
--- /dev/null
@@ -0,0 +1 @@
+debian/config/geoip.conf
diff --git a/builder-support/debian/debian-stretch/pdns-backend-geoip.install b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/pdns-backend-geoip.postinst b/builder-support/debian/debian-stretch/pdns-backend-geoip.postinst
new file mode 100644 (file)
index 0000000..1beff20
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+dpkg-trigger pdns-server
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-ldap.examples b/builder-support/debian/debian-stretch/pdns-backend-ldap.examples
new file mode 100644 (file)
index 0000000..801a92e
--- /dev/null
@@ -0,0 +1 @@
+debian/config/ldap.conf
diff --git a/builder-support/debian/debian-stretch/pdns-backend-ldap.install b/builder-support/debian/debian-stretch/pdns-backend-ldap.install
new file mode 100644 (file)
index 0000000..6375d07
--- /dev/null
@@ -0,0 +1,3 @@
+debian/config/dnsdomain2.schema etc/ldap/schema/
+usr/bin/zone2ldap usr/bin/
+usr/lib/*/pdns/libldapbackend.so*
diff --git a/builder-support/debian/debian-stretch/pdns-backend-ldap.manpages b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/pdns-backend-ldap.postinst b/builder-support/debian/debian-stretch/pdns-backend-ldap.postinst
new file mode 100644 (file)
index 0000000..1beff20
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+dpkg-trigger pdns-server
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-lua.docs b/builder-support/debian/debian-stretch/pdns-backend-lua.docs
new file mode 100644 (file)
index 0000000..e1bae81
--- /dev/null
@@ -0,0 +1 @@
+modules/luabackend/README
diff --git a/builder-support/debian/debian-stretch/pdns-backend-lua.examples b/builder-support/debian/debian-stretch/pdns-backend-lua.examples
new file mode 100644 (file)
index 0000000..d2df686
--- /dev/null
@@ -0,0 +1 @@
+debian/config/lua.conf
diff --git a/builder-support/debian/debian-stretch/pdns-backend-lua.install b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/pdns-backend-lua.postinst b/builder-support/debian/debian-stretch/pdns-backend-lua.postinst
new file mode 100644 (file)
index 0000000..1beff20
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+dpkg-trigger pdns-server
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-mydns.docs b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/pdns-backend-mydns.install b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/pdns-backend-mydns.postinst b/builder-support/debian/debian-stretch/pdns-backend-mydns.postinst
new file mode 100644 (file)
index 0000000..1beff20
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+dpkg-trigger pdns-server
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-mysql.README.Debian b/builder-support/debian/debian-stretch/pdns-backend-mysql.README.Debian
new file mode 100644 (file)
index 0000000..f7ecae4
--- /dev/null
@@ -0,0 +1,18 @@
+Instructions on setting up MySQL as a backend for PowerDNS
+----------------------------------------------------------
+
+PowerDNS uses dbconfig-common. The database backends offer you to
+automatically create and maintain the databases for you. If you choose
+yes, you're fine, no more action needed.
+
+Should you decide to create your databases yourself, for example, if
+you decide to use a non-standard schema, please find the database
+schema recommended by Upstream for MySQL in
+/usr/share/dbconfig-common/data/pdns-backend-mysql/install/mysql
+
+Just create a database (for example, named pdns) and then feed these
+SQL commands to MySQL to get some defaults to start with:
+
+   mysql -u root -p <database> < /usr/share/dbconfig-common/data/pdns-backend-mysql/install/mysql
+
+Then add your data to the database.
diff --git a/builder-support/debian/debian-stretch/pdns-backend-mysql.config b/builder-support/debian/debian-stretch/pdns-backend-mysql.config
new file mode 100644 (file)
index 0000000..18ce7c2
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# Install / upgrade database.
+
+set -e
+
+# Execute dbconfig-common
+. /usr/share/debconf/confmodule
+if [ -f /usr/share/dbconfig-common/dpkg/config.mysql ]; then
+       . /usr/share/dbconfig-common/dpkg/config.mysql
+
+       # Default values
+       dbc_dbuser="pdns"
+       dbc_dbname="pdns"
+       dbc_first_version="3.0-1"
+
+       dbc_go pdns-backend-mysql $@
+fi
+
+exit 0
+
diff --git a/builder-support/debian/debian-stretch/pdns-backend-mysql.docs b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/pdns-backend-mysql.install b/builder-support/debian/debian-stretch/pdns-backend-mysql.install
new file mode 100644 (file)
index 0000000..30e35c5
--- /dev/null
@@ -0,0 +1,4 @@
+debian/config/pdns.local.gmysql.conf usr/share/pdns-backend-mysql
+debian/sql/mysql/*.* usr/share/dbconfig-common/data/pdns-backend-mysql/upgrade/mysql/
+debian/sql/mysql/mysql usr/share/dbconfig-common/data/pdns-backend-mysql/install/
+usr/lib/*/pdns/libgmysqlbackend.so*
diff --git a/builder-support/debian/debian-stretch/pdns-backend-mysql.postinst b/builder-support/debian/debian-stretch/pdns-backend-mysql.postinst
new file mode 100644 (file)
index 0000000..59396e6
--- /dev/null
@@ -0,0 +1,69 @@
+#!/bin/sh
+set -e
+
+# Execute dbconfig-common
+. /usr/share/debconf/confmodule
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+PKGNAME="pdns-backend-mysql"
+
+# 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 ucfq -w /etc/powerdns/pdns.d/pdns.local.gmysql.conf | grep 'pdns-backend-gmysql' >/dev/null; then
+    # before 4.0.0~beta1, PKGNAME was incorrectly set to pdns-backend-gmysql. Fix that.
+    ucfr --purge 'pdns-backend-gmysql' '/etc/powerdns/pdns.d/pdns.local.gmysql.conf'
+  fi
+  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
+
+
+. /usr/share/dbconfig-common/dpkg/postinst.mysql
+dbc_first_version="3.0-1"
+dbc_generate_include_args="-o template_infile=/usr/share/pdns-backend-mysql/pdns.local.gmysql.conf"
+dbc_generate_include=template:/etc/powerdns/pdns.d/pdns.local.gmysql.conf
+dbc_generate_include_owner=pdns
+dbc_generate_include_perms=0640
+dbc_go $PKGNAME $@
+
+# Activate trigger
+dpkg-trigger pdns-server
+
+ucfr $PKGNAME /etc/powerdns/pdns.d/pdns.local.gmysql.conf
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-mysql.postrm b/builder-support/debian/debian-stretch/pdns-backend-mysql.postrm
new file mode 100644 (file)
index 0000000..07e2e2d
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/sh
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+PKGNAME="pdns-backend-mysql"
+
+# Execute dbconfig-common
+if [ -f /usr/share/debconf/confmodule ]; then
+       . /usr/share/debconf/confmodule
+fi
+if [ -f /usr/share/dbconfig-common/dpkg/postrm.mysql ]; then
+       . /usr/share/dbconfig-common/dpkg/postrm.mysql
+       dbc_go pdns-backend-mysql $@
+fi
+
+if [ "$1" = "purge" ]; then
+    # Remove files registered with ucf.
+    if command -v ucfq >/dev/null; then
+      for file in $(ucfq --with-colons "$PKGNAME" | cut --delimiter=: --fields=1); do
+        rm -f ${file}
+        ucf --purge ${file}
+        ucfr --purge $PKGNAME ${file}
+      done
+    else
+      echo >&2 "ucf no longer installed, not cleaning up"
+    fi
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-mysql.prerm b/builder-support/debian/debian-stretch/pdns-backend-mysql.prerm
new file mode 100644 (file)
index 0000000..283c36a
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+set -e
+
+# Execute dbconfig-common
+. /usr/share/debconf/confmodule
+. /usr/share/dbconfig-common/dpkg/prerm.mysql
+dbc_go pdns-backend-mysql $@
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-odbc.docs b/builder-support/debian/debian-stretch/pdns-backend-odbc.docs
new file mode 100644 (file)
index 0000000..76cc1e0
--- /dev/null
@@ -0,0 +1 @@
+modules/godbcbackend/schema.mssql.sql
diff --git a/builder-support/debian/debian-stretch/pdns-backend-odbc.examples b/builder-support/debian/debian-stretch/pdns-backend-odbc.examples
new file mode 100644 (file)
index 0000000..b59603c
--- /dev/null
@@ -0,0 +1 @@
+debian/config/godbc.conf
diff --git a/builder-support/debian/debian-stretch/pdns-backend-odbc.install b/builder-support/debian/debian-stretch/pdns-backend-odbc.install
new file mode 100644 (file)
index 0000000..152e3e0
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/pdns/libgodbcbackend.so*
diff --git a/builder-support/debian/debian-stretch/pdns-backend-odbc.postinst b/builder-support/debian/debian-stretch/pdns-backend-odbc.postinst
new file mode 100644 (file)
index 0000000..1beff20
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+dpkg-trigger pdns-server
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-opendbx.examples b/builder-support/debian/debian-stretch/pdns-backend-opendbx.examples
new file mode 100644 (file)
index 0000000..1923d59
--- /dev/null
@@ -0,0 +1 @@
+debian/config/opendbx.conf
diff --git a/builder-support/debian/debian-stretch/pdns-backend-opendbx.install b/builder-support/debian/debian-stretch/pdns-backend-opendbx.install
new file mode 100644 (file)
index 0000000..bc796d1
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/pdns/libopendbxbackend.so*
diff --git a/builder-support/debian/debian-stretch/pdns-backend-opendbx.postinst b/builder-support/debian/debian-stretch/pdns-backend-opendbx.postinst
new file mode 100644 (file)
index 0000000..1beff20
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+dpkg-trigger pdns-server
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-pgsql.README.Debian b/builder-support/debian/debian-stretch/pdns-backend-pgsql.README.Debian
new file mode 100644 (file)
index 0000000..335cfc1
--- /dev/null
@@ -0,0 +1,26 @@
+Instructions on setting up PostgreSQL as a backend for PowerDNS
+---------------------------------------------------------------
+
+PowerDNS uses dbconfig-common. The database backends offer you to
+automatically create and maintain the databases for you. If you choose
+yes, you're fine, no more action needed.
+
+Should you decide to create your databases yourself, for example, if
+you decide to use a non-standard schema, please find the database
+schema recommended by Upstream for PostgreSQL in
+/usr/share/dbconfig-common/data/pdns-backend-pgsql/install/pgsql
+
+Just create a database using 'createdb' (for example named pdns) and
+then feed these SQL commands to PostgreSQL to get some defaults to
+start with:
+
+   psql -h <host> -U <user> <database> -f /usr/share/dbconfig-common/data/pdns-backend-pgsql/install/pgsql
+
+Then add your data to the database.
+
+*** SSL WARNING ***
+Please note that SSL connections to a PostgreSQL database currently do not
+work when PowerDNS is run chrooted because PowerDNS cannot access the
+libssl library from within the chroot.
+*** SSL WARNING ***
+
diff --git a/builder-support/debian/debian-stretch/pdns-backend-pgsql.config b/builder-support/debian/debian-stretch/pdns-backend-pgsql.config
new file mode 100644 (file)
index 0000000..2c1d00b
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# Install / upgrade database.
+
+set -e
+
+# Execute dbconfig-common
+. /usr/share/debconf/confmodule
+if [ -f /usr/share/dbconfig-common/dpkg/config.pgsql ]; then
+       . /usr/share/dbconfig-common/dpkg/config.pgsql
+
+       # Default values
+       dbc_dbuser="pdns"
+       dbc_dbname="pdns"
+       dbc_first_version="3.0-1"
+
+       dbc_go pdns-backend-pgsql $@
+fi
+
+exit 0
+
diff --git a/builder-support/debian/debian-stretch/pdns-backend-pgsql.docs b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/pdns-backend-pgsql.install b/builder-support/debian/debian-stretch/pdns-backend-pgsql.install
new file mode 100644 (file)
index 0000000..9ea5a52
--- /dev/null
@@ -0,0 +1,4 @@
+debian/config/pdns.local.gpgsql.conf usr/share/pdns-backend-pgsql
+debian/sql/pgsql/*.* usr/share/dbconfig-common/data/pdns-backend-pgsql/upgrade/pgsql/
+debian/sql/pgsql/pgsql usr/share/dbconfig-common/data/pdns-backend-pgsql/install/
+usr/lib/*/pdns/libgpgsqlbackend.so*
diff --git a/builder-support/debian/debian-stretch/pdns-backend-pgsql.postinst b/builder-support/debian/debian-stretch/pdns-backend-pgsql.postinst
new file mode 100644 (file)
index 0000000..2430275
--- /dev/null
@@ -0,0 +1,65 @@
+#!/bin/sh
+set -e
+
+# Execute dbconfig-common
+. /usr/share/debconf/confmodule
+
+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
+
+. /usr/share/dbconfig-common/dpkg/postinst.pgsql
+dbc_first_version="3.0-1"
+dbc_pgsql_createdb_encoding="UTF8"
+dbc_generate_include_args="-o template_infile=/usr/share/pdns-backend-pgsql/pdns.local.gpgsql.conf"
+dbc_generate_include=template:/etc/powerdns/pdns.d/pdns.local.gpgsql.conf
+dbc_generate_include_owner=pdns
+dbc_generate_include_perms=0640
+dbc_go $PKGNAME $@
+
+# Activate trigger
+dpkg-trigger pdns-server
+
+ucfr $PKGNAME /etc/powerdns/pdns.d/pdns.local.gpgsql.conf
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-pgsql.postrm b/builder-support/debian/debian-stretch/pdns-backend-pgsql.postrm
new file mode 100644 (file)
index 0000000..8a1e11e
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+PKGNAME="pdns-backend-pgsql"
+
+# Execute dbconfig-common
+if [ -f /usr/share/debconf/confmodule ]; then
+       . /usr/share/debconf/confmodule
+fi
+if [ -f /usr/share/dbconfig-common/dpkg/postrm.pgsql ]; then
+       . /usr/share/dbconfig-common/dpkg/postrm.pgsql
+       dbc_go pdns-backend-pgsql $@
+fi
+
+if [ "$1" = "purge" ]; then
+    # Remove files registered with ucf.
+    UCF="ucf"
+    UCFR="ucfr"
+
+    if command -v ucfq >/dev/null; then
+      for file in $(ucfq --with-colons "$PKGNAME" | cut --delimiter=: --fields=1); do
+        rm -f ${file}
+        ucf --purge ${file}
+        ucfr --purge $PKGNAME ${file}
+      done
+    else
+      echo >&2 "ucf no longer installed, not cleaning up"
+    fi
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-pgsql.prerm b/builder-support/debian/debian-stretch/pdns-backend-pgsql.prerm
new file mode 100644 (file)
index 0000000..a350d8e
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+set -e
+
+# Execute dbconfig-common
+. /usr/share/debconf/confmodule
+. /usr/share/dbconfig-common/dpkg/prerm.pgsql
+dbc_go pdns-backend-pgsql $@
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-pipe.examples b/builder-support/debian/debian-stretch/pdns-backend-pipe.examples
new file mode 100644 (file)
index 0000000..861ee3a
--- /dev/null
@@ -0,0 +1 @@
+debian/config/pipe.conf
diff --git a/builder-support/debian/debian-stretch/pdns-backend-pipe.install b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/pdns-backend-pipe.postinst b/builder-support/debian/debian-stretch/pdns-backend-pipe.postinst
new file mode 100644 (file)
index 0000000..1beff20
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+dpkg-trigger pdns-server
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-remote.install b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/pdns-backend-remote.postinst b/builder-support/debian/debian-stretch/pdns-backend-remote.postinst
new file mode 100644 (file)
index 0000000..1beff20
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+dpkg-trigger pdns-server
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-sqlite3.config b/builder-support/debian/debian-stretch/pdns-backend-sqlite3.config
new file mode 100644 (file)
index 0000000..c34e84c
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# Install / upgrade database.
+
+set -e
+
+# Execute dbconfig-common
+. /usr/share/debconf/confmodule
+if [ -f /usr/share/dbconfig-common/dpkg/config.sqlite3 ]; then
+       . /usr/share/dbconfig-common/dpkg/config.sqlite3
+
+       # Default values
+       dbc_basepath=/var/lib/powerdns
+       dbc_dbname="pdns.sqlite3"
+       dbc_first_version="3.0-1"
+
+       dbc_go pdns-backend-sqlite3 $@
+fi
+
+exit 0
+
diff --git a/builder-support/debian/debian-stretch/pdns-backend-sqlite3.dirs b/builder-support/debian/debian-stretch/pdns-backend-sqlite3.dirs
new file mode 100644 (file)
index 0000000..c50e5cc
--- /dev/null
@@ -0,0 +1 @@
+var/lib/powerdns
diff --git a/builder-support/debian/debian-stretch/pdns-backend-sqlite3.docs b/builder-support/debian/debian-stretch/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/builder-support/debian/debian-stretch/pdns-backend-sqlite3.install b/builder-support/debian/debian-stretch/pdns-backend-sqlite3.install
new file mode 100644 (file)
index 0000000..37e8cff
--- /dev/null
@@ -0,0 +1,4 @@
+debian/config/pdns.local.gsqlite3.conf usr/share/pdns-backend-sqlite3
+debian/sql/sqlite3/*.* usr/share/dbconfig-common/data/pdns-backend-sqlite3/upgrade/sqlite3/
+debian/sql/sqlite3/sqlite3 usr/share/dbconfig-common/data/pdns-backend-sqlite3/install/
+usr/lib/*/pdns/libgsqlite3backend.so*
diff --git a/builder-support/debian/debian-stretch/pdns-backend-sqlite3.postinst b/builder-support/debian/debian-stretch/pdns-backend-sqlite3.postinst
new file mode 100644 (file)
index 0000000..b95cabb
--- /dev/null
@@ -0,0 +1,68 @@
+#! /bin/sh
+#
+# postinst script for pdns-backend-sqlite3
+
+set -e
+
+# Execute dbconfig-common
+. /usr/share/debconf/confmodule
+
+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
+
+. /usr/share/dbconfig-common/dpkg/postinst.sqlite3
+dbc_first_version="3.0-1"
+dbc_generate_include_args="-o template_infile=/usr/share/pdns-backend-sqlite3/pdns.local.gsqlite3.conf"
+dbc_generate_include=template:/etc/powerdns/pdns.d/pdns.local.gsqlite3.conf
+dbc_generate_include_owner=pdns
+dbc_generate_include_perms=0640
+dbc_dbfile_owner=pdns:pdns
+dbc_dbfile_perms=0640
+dbc_go pdns-backend-sqlite3 $@
+
+ucfr $PKGNAME /etc/powerdns/pdns.d/pdns.local.gsqlite3.conf
+
+dpkg-trigger pdns-server
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-sqlite3.postrm b/builder-support/debian/debian-stretch/pdns-backend-sqlite3.postrm
new file mode 100644 (file)
index 0000000..47f0934
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/sh
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+PKGNAME="pdns-backend-sqlite3"
+
+# Execute dbconfig-common
+if [ -f /usr/share/debconf/confmodule ]; then
+       . /usr/share/debconf/confmodule
+fi
+if [ -f /usr/share/dbconfig-common/dpkg/postrm.sqlite3 ]; then
+       . /usr/share/dbconfig-common/dpkg/postrm.sqlite3
+       dbc_go pdns-backend-sqlite3 $@
+fi
+
+if [ "$1" = "purge" ]; then
+    # Remove files registered with ucf.
+    if command -v ucfq >/dev/null; then
+      for file in $(ucfq --with-colons "$PKGNAME" | cut --delimiter=: --fields=1); do
+        rm -f ${file}
+        ucf --purge ${file}
+        ucfr --purge $PKGNAME ${file}
+      done
+    else
+      echo >&2 "ucf no longer installed, not cleaning up"
+    fi
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-sqlite3.prerm b/builder-support/debian/debian-stretch/pdns-backend-sqlite3.prerm
new file mode 100644 (file)
index 0000000..bf71ca2
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+set -e
+
+# Execute dbconfig-common
+. /usr/share/debconf/confmodule
+. /usr/share/dbconfig-common/dpkg/prerm.sqlite3
+dbc_go pdns-backend-sqlite3 $@
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-backend-tinydns.examples b/builder-support/debian/debian-stretch/pdns-backend-tinydns.examples
new file mode 100644 (file)
index 0000000..df4635e
--- /dev/null
@@ -0,0 +1 @@
+debian/config/tinydns.conf
diff --git a/builder-support/debian/debian-stretch/pdns-backend-tinydns.install b/builder-support/debian/debian-stretch/pdns-backend-tinydns.install
new file mode 100644 (file)
index 0000000..5d4ab6b
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/pdns/libtinydnsbackend.so*
diff --git a/builder-support/debian/debian-stretch/pdns-backend-tinydns.postinst b/builder-support/debian/debian-stretch/pdns-backend-tinydns.postinst
new file mode 100644 (file)
index 0000000..1beff20
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+dpkg-trigger pdns-server
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-server.README.Debian b/builder-support/debian/debian-stretch/pdns-server.README.Debian
new file mode 100644 (file)
index 0000000..58c50ec
--- /dev/null
@@ -0,0 +1,25 @@
+Notes about Debian's PowerDNS package
+-------------------------------------
+
+ + Introduction
+
+PowerDNS is a powerful DNS server, it has the ability to serve data
+from different backends, including MySQL, PostgreSQL, LDAP etc.
+
+ + Configure
+
+The configuration for PowerDNS is separated in different files. In
+/etc/powerdns/pdns.conf are the base server settings, the configuration for
+specific backends could go into any other file (ending in .conf) in
+/etc/powerdns/pdns.d/. launch= settings can be chained by using the launch+=
+syntax.
+
+ + 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 or
+PostgreSQL. When using the sqlite backend, the database needs to live inside
+the chroot. With systemd, the service startup notification currently does
+not work for similar reasons. If you don't have these restrictions you can
+enable the chroot option.
+
diff --git a/builder-support/debian/debian-stretch/pdns-server.dirs b/builder-support/debian/debian-stretch/pdns-server.dirs
new file mode 100644 (file)
index 0000000..f464f58
--- /dev/null
@@ -0,0 +1 @@
+etc/powerdns/pdns.d
diff --git a/builder-support/debian/debian-stretch/pdns-server.install b/builder-support/debian/debian-stretch/pdns-server.install
new file mode 100644 (file)
index 0000000..89f2775
--- /dev/null
@@ -0,0 +1,7 @@
+lib/systemd/system/*
+usr/bin/pdns_control
+usr/bin/pdnsutil
+usr/bin/zone2json
+usr/bin/zone2sql
+usr/lib/*/pdns/librandombackend.so*
+usr/sbin/pdns_server
diff --git a/builder-support/debian/debian-stretch/pdns-server.lintian-overrides b/builder-support/debian/debian-stretch/pdns-server.lintian-overrides
new file mode 100644 (file)
index 0000000..b6b6bec
--- /dev/null
@@ -0,0 +1,4 @@
+# Often this file will contain passwords.
+pdns-server: non-standard-file-perm etc/powerdns/pdns.conf 0600 != 0644
+# We load lsb-functions conditionally.
+pdns-server: init.d-script-needs-depends-on-lsb-base
diff --git a/builder-support/debian/debian-stretch/pdns-server.manpages b/builder-support/debian/debian-stretch/pdns-server.manpages
new file mode 100644 (file)
index 0000000..effe502
--- /dev/null
@@ -0,0 +1,5 @@
+debian/tmp/usr/share/man/man1/pdns_control.1
+debian/tmp/usr/share/man/man1/pdns_server.1
+debian/tmp/usr/share/man/man1/pdnsutil.1
+debian/tmp/usr/share/man/man1/zone2json.1
+debian/tmp/usr/share/man/man1/zone2sql.1
diff --git a/builder-support/debian/debian-stretch/pdns-server.pdns.default b/builder-support/debian/debian-stretch/pdns-server.pdns.default
new file mode 100644 (file)
index 0000000..0519ac1
--- /dev/null
@@ -0,0 +1,5 @@
+# Variables for the PowerDNS sysv init script.
+# Note: ignored under systemd.
+
+# Arguments to the started daemon
+DAEMON_ARGS=""
diff --git a/builder-support/debian/debian-stretch/pdns-server.pdns.init b/builder-support/debian/debian-stretch/pdns-server.pdns.init
new file mode 100644 (file)
index 0000000..16ce98b
--- /dev/null
@@ -0,0 +1,270 @@
+#!/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
+
+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
+
+# 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
+
+# Load lsb stuff for systemd redirection (if available).
+if [ -e /lib/lsb/init-functions ]; then
+  . /lib/lsb/init-functions
+fi
+
+# 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)
+       echo -n "Starting $DESC: $NAME ..."
+       do_start
+       case "$?" in
+               0|1)
+                       echo done
+                       exit 0
+                       ;;
+               2)
+                       echo failed
+                       exit 1
+                       ;;
+       esac
+       ;;
+  stop)
+       echo -n "Stopping $DESC: $NAME ..."
+       do_stop
+       case "$?" in
+               0|1)
+                       echo done
+                       exit 0
+                       ;;
+               2)
+                       echo failed
+                       exit 1
+                       ;;
+       esac
+       ;;
+  status)
+       if isrunning; then
+               echo "$NAME is running: $(doPC status)"
+               exit 0
+       else
+               echo "$NAME is not running"
+               exit 3
+       fi
+       ;;
+  force-stop)
+       echo -n "Killing $ODESC (all instances): $NAME ..."
+       kill -9 $(pidof pdns_server)
+       case "$?" in
+               0)
+                       echo done
+                       exit 0
+                       ;;
+               1)
+                       echo failed
+                       exit 1
+                       ;;
+       esac
+       ;;
+  restart)
+       echo -n "Restarting $DESC: $NAME ..."
+       do_stop
+       case "$?" in
+               0|1)
+                       do_start
+                       case "$?" in
+                               0)
+                                       echo done
+                                       exit 0
+                                       ;;
+                               1)
+                                       echo failed  # Old process is still running
+                                       exit 1
+                                       ;;
+                               *)
+                                       echo failed # Failed to start
+                                       exit 1
+                                       ;;
+                       esac
+                       ;;
+               *)
+                       # Failed to stop
+                       echo failed
+                       exit 1
+                       ;;
+       esac
+       ;;
+  reload|force-reload)
+       echo -n "Reloading $DESC: $NAME ..."
+       if isrunning; then
+               doPC cycle >/dev/null
+               case "$?" in
+                       0)
+                               echo done
+                               exit 0
+                               ;;
+                       1)
+                               echo failed
+                               exit 1
+                               ;;
+               esac
+       else
+               echo done
+               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/builder-support/debian/debian-stretch/pdns-server.postinst b/builder-support/debian/debian-stretch/pdns-server.postinst
new file mode 100644 (file)
index 0000000..dcb2003
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/sh
+set -e
+
+if [ -n "$PDNSDEBUG" ]; then
+  echo "now debugging $0 $@"
+  set -x
+fi
+
+# Startup errors should never cause dpkg to fail.
+initscript_error() {
+    return 0
+}
+
+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
+  ;;
+
+  triggered)
+    invoke-rc.d pdns restart || :
+  ;;
+
+  abort-upgrade|abort-remove|abort-deconfigure)
+  ;;
+
+  *)
+    echo "postinst called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/builder-support/debian/debian-stretch/pdns-server.preinst b/builder-support/debian/debian-stretch/pdns-server.preinst
new file mode 100644 (file)
index 0000000..837a3a0
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+set -e
+
+ucf_delete_unchanged() {
+  # pdns-server no longer Depends: ucf, so only do this if ucf is installed.
+  if which ucf >/dev/null; then
+    if ucfq --with-colons "$1" | grep -q ':pdns-server:Yes:No'; then
+      # file exists, not changed; delete it
+      echo "Removing unchanged configuration file $1"
+      rm -f "$1"
+    fi
+    ucf --purge "$1"
+    ucfr --purge pdns-server "$1"
+  else
+    echo "E: ucf not installed, can not remove unchanged configuration file $1."
+  fi
+}
+
+backup_conffile() {
+  if [ -e "$1" ]; then
+    echo "Moving configuration file $1 to $1.dpkg-bak"
+    mv -f "$1" "$1".dpkg-bak
+  fi
+}
+
+case "$1" in
+  install|upgrade)
+    # for upgrades from before 4.0.0-2, drop empty file created by previous postinst.
+    if [ -e /etc/powerdns/bindbackend.conf ] && echo "d41d8cd98f00b204e9800998ecf8427e /etc/powerdns/bindbackend.conf" | md5sum --check --status; then
+      rm -f /etc/powerdns/bindbackend.conf
+    fi
+
+    # 4.0.0-2 moved pdns-server' configuration files back under dpkg conffile control (from ucf),
+    # and bindbackend was split into its own package.
+    # the upgrade code in 4.0.0-2 did not delete unchanged files.
+    if [ ! -z "$2" ] && dpkg --compare-versions "$2" le "4.0.0-3~"; then
+      # we want to preserve the following if they were changed.
+      ucf_delete_unchanged "/etc/default/pdns"
+      ucf_delete_unchanged "/etc/powerdns/pdns.conf"
+      ucf_delete_unchanged "/etc/powerdns/pdns.d/pdns.local.conf"
+      # pdns.simplebind.conf is no longer useful with just pdns-server,
+      # pdns-backend-bind will install bind.conf instead.
+      ucf_delete_unchanged "/etc/powerdns/pdns.d/pdns.simplebind.conf"
+      backup_conffile "/etc/powerdns/pdns.d/pdns.simplebind.conf"
+    fi
+  ;;
+esac
+
+#DEBHELPER#
diff --git a/builder-support/debian/debian-stretch/pdns-tools.install b/builder-support/debian/debian-stretch/pdns-tools.install
new file mode 100644 (file)
index 0000000..dd9d70c
--- /dev/null
@@ -0,0 +1,15 @@
+usr/bin/calidns
+usr/bin/dnsbulktest
+usr/bin/dnsgram
+usr/bin/dnsreplay
+usr/bin/dnsscan
+usr/bin/dnsscope
+usr/bin/dnstcpbench
+usr/bin/dnswasher
+usr/bin/dumresp
+usr/bin/ixplore
+usr/bin/nproxy
+usr/bin/nsec3dig
+usr/bin/pdns_notify
+usr/bin/saxfr
+usr/bin/sdig
diff --git a/builder-support/debian/debian-stretch/pdns-tools.manpages b/builder-support/debian/debian-stretch/pdns-tools.manpages
new file mode 100644 (file)
index 0000000..afbafe8
--- /dev/null
@@ -0,0 +1,15 @@
+debian/tmp/usr/share/man/man1/calidns.1
+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/dumresp.1
+debian/tmp/usr/share/man/man1/ixplore.1
+debian/tmp/usr/share/man/man1/nproxy.1
+debian/tmp/usr/share/man/man1/nsec3dig.1
+debian/tmp/usr/share/man/man1/pdns_notify.1
+debian/tmp/usr/share/man/man1/saxfr.1
+debian/tmp/usr/share/man/man1/sdig.1
diff --git a/builder-support/debian/debian-stretch/rules b/builder-support/debian/debian-stretch/rules
new file mode 100755 (executable)
index 0000000..70efdf2
--- /dev/null
@@ -0,0 +1,77 @@
+#!/usr/bin/make -f
+DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
+DEB_HOST_ARCH_BITS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS)
+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
+# Backends
+backends := bind ldap pipe gmysql godbc gpgsql gsqlite3 geoip lua mydns remote random opendbx tinydns
+
+# Disable systemd integration on non-linux archs
+ifeq ($(DEB_HOST_ARCH_OS),linux)
+CONFIGURE_ARGS += --enable-systemd --with-systemd=/lib/systemd/system
+else
+CONFIGURE_ARGS += --disable-systemd
+endif
+
+
+# Use new build system
+%:
+       dh $@ \
+         --with autoreconf \
+         --with systemd \
+         --parallel
+
+override_dh_auto_configure:
+       test -f pdns/dnslabeltext.cc && mv pdns/dnslabeltext.cc debian/dnslabeltext.cc.moved || true
+       dh_auto_configure -- \
+               --sysconfdir=/etc/powerdns \
+               --with-dynmodules="$(backends)" \
+               --with-modules="" \
+               --enable-libsodium \
+               --enable-tools \
+               --without-protobuf \
+               --enable-unit-tests \
+               --enable-reproducible \
+               $(CONFIGURE_ARGS)
+
+override_dh_strip:
+       dh_strip --ddeb-migration='pdns-server-dbg (<< 4.0.0-0)'
+
+override_dh_systemd_enable:
+       dh_systemd_enable --name=pdns
+
+# init script needs to be named pdns, not pdns-server. if no pdns-backend
+# is installed, start will fail, so pass --no-start. backends will trigger
+# a restart.
+override_dh_installinit:
+       dh_installinit --error-handler=initscript_error --no-start --restart-after-upgrade --name=pdns
+
+override_dh_install:
+       dh_install
+       ./pdns/pdns_server --no-config --config | sed \
+         -e 's!# module-dir=.*!!' \
+         -e 's!# include-dir=.*!&\ninclude-dir=/etc/powerdns/pdns.d!' \
+         -e 's!# launch=.*!&\nlaunch=!' \
+         -e 's!# setgid=.*!setgid=pdns!' \
+         -e 's!# setuid=.*!setuid=pdns!' \
+         -e 's!# security-poll-suffix=.*!&\nsecurity-poll-suffix=!' \
+         > debian/pdns-server/etc/powerdns/pdns.conf
+ifeq ($(DEB_HOST_ARCH_BITS),32)
+       echo RestrictAddressFamilies is broken on 32bit, removing it from service file
+       perl -ni -e 'print unless /RestrictAddressFamilies/' debian/pdns-server/lib/systemd/system/*.service
+endif
+
+# Verbose tests (shows used compiler/linker and their flags)
+override_dh_auto_test:
+       echo Skipping make test, as dependencies are missing.
+       make check
+
+override_dh_fixperms:
+       dh_fixperms
+       # these files often contain passwords.
+       chmod 0600 debian/pdns-server/etc/powerdns/pdns.conf
+
+# 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/builder-support/debian/debian-stretch/source/format b/builder-support/debian/debian-stretch/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/builder-support/debian/debian-stretch/sql/mysql/3.0-1 b/builder-support/debian/debian-stretch/sql/mysql/3.0-1
new file mode 100644 (file)
index 0000000..696d495
--- /dev/null
@@ -0,0 +1,32 @@
+create table domainmetadata (
+ id              INT auto_increment,
+ domain_id       INT NOT NULL,
+ kind            VARCHAR(16),
+ content        TEXT,
+ primary key(id)
+);
+
+create table cryptokeys (
+ id             INT auto_increment,
+ domain_id      INT NOT NULL,
+ flags          INT NOT NULL,
+ active         BOOL,
+ content        TEXT,
+ primary key(id)
+);               
+
+alter table records add ordername      VARCHAR(255);
+alter table records add auth bool;
+create index orderindex on records(ordername);
+
+create table tsigkeys (
+ id             INT auto_increment,
+ name           VARCHAR(255), 
+ algorithm      VARCHAR(255),
+ secret         VARCHAR(255),
+ primary key(id)
+);
+
+create unique index namealgoindex on tsigkeys(name, algorithm);
+
+alter table records change column type type VARCHAR(10);
diff --git a/builder-support/debian/debian-stretch/sql/mysql/3.3.1-4 b/builder-support/debian/debian-stretch/sql/mysql/3.3.1-4
new file mode 100644 (file)
index 0000000..1970623
--- /dev/null
@@ -0,0 +1,17 @@
+-- 3.0 to 3.1
+
+ALTER TABLE records MODIFY content VARCHAR(64000);
+ALTER TABLE tsigkeys MODIFY algorithm VARCHAR(50);
+
+-- 3.1 to 3.2
+ALTER TABLE records MODIFY ordername    VARCHAR(255) BINARY;
+DROP INDEX orderindex ON records;
+CREATE INDEX recordorder ON records (domain_id, ordername);
+
+-- 3.2 to 3.3
+ALTER TABLE supermasters MODIFY ip VARCHAR(64);
+DROP INDEX rec_name_index ON records;
+
+-- 3.3 to 3.3.1
+-- None for MySQL
+
diff --git a/builder-support/debian/debian-stretch/sql/mysql/3.4.0 b/builder-support/debian/debian-stretch/sql/mysql/3.4.0
new file mode 100644 (file)
index 0000000..a97f576
--- /dev/null
@@ -0,0 +1,31 @@
+-- 3.3.1 dnssec to 3.4
+ALTER TABLE records ADD disabled TINYINT(1) DEFAULT 0 AFTER change_date;
+ALTER TABLE records MODIFY content VARCHAR(64000) DEFAULT NULL;
+ALTER TABLE records MODIFY ordername VARCHAR(255) BINARY DEFAULT NULL;
+ALTER TABLE records MODIFY auth TINYINT(1) DEFAULT 1;
+ALTER TABLE records MODIFY type VARCHAR(10);
+ALTER TABLE supermasters MODIFY ip VARCHAR(64) NOT NULL;
+ALTER TABLE supermasters ADD PRIMARY KEY(ip, nameserver);
+ALTER TABLE supermasters MODIFY account VARCHAR(40) NOT NULL;
+ALTER TABLE domainmetadata MODIFY kind VARCHAR(32);
+ALTER TABLE tsigkeys MODIFY algorithm VARCHAR(50);
+ALTER TABLE domainmetadata ENGINE=InnoDB;
+ALTER TABLE cryptokeys ENGINE=InnoDB;
+ALTER TABLE tsigkeys ENGINE=InnoDB;
+
+CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
+
+CREATE TABLE comments (
+  id                    INT AUTO_INCREMENT,
+  domain_id             INT NOT NULL,
+  name                  VARCHAR(255) NOT NULL,
+  type                  VARCHAR(10) NOT NULL,
+  modified_at           INT NOT NULL,
+  account               VARCHAR(40) NOT NULL,
+  comment               VARCHAR(64000) NOT NULL,
+  PRIMARY KEY(id)
+) Engine=InnoDB;
+
+CREATE INDEX comments_domain_id_idx ON comments (domain_id);
+CREATE INDEX comments_name_type_idx ON comments (name, type);
+CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
diff --git a/builder-support/debian/debian-stretch/sql/mysql/4.0.1-6 b/builder-support/debian/debian-stretch/sql/mysql/4.0.1-6
new file mode 100644 (file)
index 0000000..d6140a3
--- /dev/null
@@ -0,0 +1,21 @@
+-- MariaDB default index size and default character set causes the
+-- name indexes to fail to create. Therefore we are overriding the
+-- character set to something smaller than the insane utf8mb4 def.
+
+ALTER TABLE domains CONVERT TO CHARACTER SET 'latin1';
+ALTER TABLE domains MODIFY account VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL;
+
+ALTER TABLE records CONVERT TO CHARACTER SET 'latin1';
+
+ALTER TABLE supermasters CONVERT TO CHARACTER SET 'latin1';
+ALTER TABLE supermasters MODIFY account VARCHAR(40) CHARACTER SET 'utf8' NOT NULL;
+
+ALTER TABLE comments CONVERT TO CHARACTER SET 'latin1';
+ALTER TABLE comments MODIFY account VARCHAR(40) CHARACTER SET 'utf8' NOT NULL;
+ALTER TABLE comments MODIFY comment TEXT CHARACTER SET 'utf8' NOT NULL;
+
+ALTER TABLE domainmetadata CONVERT TO CHARACTER SET 'latin1';
+
+ALTER TABLE cryptokeys CONVERT TO CHARACTER SET 'latin1';
+
+ALTER TABLE tsigkeys CONVERT TO CHARACTER SET 'latin1';
diff --git a/builder-support/debian/debian-stretch/sql/mysql/4.0.3-1 b/builder-support/debian/debian-stretch/sql/mysql/4.0.3-1
new file mode 100644 (file)
index 0000000..c63c753
--- /dev/null
@@ -0,0 +1,3 @@
+-- Use TEXT in place of VARCHAR(64000) for compatibility with mysql 5.6 and mariadb.
+-- pdns 4.0.1, 4.0.2 got this wrong.
+ALTER TABLE comments MODIFY comment TEXT CHARACTER SET 'utf8' NOT NULL;
diff --git a/builder-support/debian/debian-stretch/sql/mysql/4.1.0-1 b/builder-support/debian/debian-stretch/sql/mysql/4.1.0-1
new file mode 100644 (file)
index 0000000..acd9ce3
--- /dev/null
@@ -0,0 +1,5 @@
+ALTER TABLE records MODIFY id BIGINT AUTO_INCREMENT;
+CREATE INDEX ordername ON records (ordername);
+DROP INDEX recordorder ON records;
+
+DROP INDEX comments_domain_id_idx ON comments;
diff --git a/builder-support/debian/debian-stretch/sql/mysql/mysql b/builder-support/debian/debian-stretch/sql/mysql/mysql
new file mode 100644 (file)
index 0000000..455de0b
--- /dev/null
@@ -0,0 +1,93 @@
+-- MariaDB default index size and default character set causes the
+-- name indexes to fail to create. Therefore we are overriding the
+-- character set to something smaller than the insane utf8mb4 def.
+
+CREATE TABLE domains (
+  id                    INT AUTO_INCREMENT,
+  name                  VARCHAR(255) NOT NULL,
+  master                VARCHAR(128) DEFAULT NULL,
+  last_check            INT DEFAULT NULL,
+  type                  VARCHAR(6) NOT NULL,
+  notified_serial       INT DEFAULT NULL,
+  account               VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL,
+  PRIMARY KEY (id)
+) Engine=InnoDB CHARACTER SET 'latin1';
+
+CREATE UNIQUE INDEX name_index ON domains(name);
+
+
+CREATE TABLE records (
+  id                    BIGINT AUTO_INCREMENT,
+  domain_id             INT DEFAULT NULL,
+  name                  VARCHAR(255) DEFAULT NULL,
+  type                  VARCHAR(10) DEFAULT NULL,
+  content               VARCHAR(64000) DEFAULT NULL,
+  ttl                   INT DEFAULT NULL,
+  prio                  INT DEFAULT NULL,
+  change_date           INT DEFAULT NULL,
+  disabled              TINYINT(1) DEFAULT 0,
+  ordername             VARCHAR(255) BINARY DEFAULT NULL,
+  auth                  TINYINT(1) DEFAULT 1,
+  PRIMARY KEY (id)
+) Engine=InnoDB CHARACTER SET 'latin1';
+
+CREATE INDEX nametype_index ON records(name,type);
+CREATE INDEX domain_id ON records(domain_id);
+CREATE INDEX ordername ON records (ordername);
+
+
+CREATE TABLE supermasters (
+  ip                    VARCHAR(64) NOT NULL,
+  nameserver            VARCHAR(255) NOT NULL,
+  account               VARCHAR(40) CHARACTER SET 'utf8' NOT NULL,
+  PRIMARY KEY (ip, nameserver)
+) Engine=InnoDB CHARACTER SET 'latin1';
+
+
+CREATE TABLE comments (
+  id                    INT AUTO_INCREMENT,
+  domain_id             INT NOT NULL,
+  name                  VARCHAR(255) NOT NULL,
+  type                  VARCHAR(10) NOT NULL,
+  modified_at           INT NOT NULL,
+  account               VARCHAR(40) CHARACTER SET 'utf8' NOT NULL,
+  comment               TEXT CHARACTER SET 'utf8' NOT NULL,
+  PRIMARY KEY (id)
+) Engine=InnoDB CHARACTER SET 'latin1';
+
+CREATE INDEX comments_name_type_idx ON comments (name, type);
+CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
+
+
+CREATE TABLE domainmetadata (
+  id                    INT AUTO_INCREMENT,
+  domain_id             INT NOT NULL,
+  kind                  VARCHAR(32),
+  content               TEXT,
+  PRIMARY KEY (id)
+) Engine=InnoDB CHARACTER SET 'latin1';
+
+CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
+
+
+CREATE TABLE cryptokeys (
+  id                    INT AUTO_INCREMENT,
+  domain_id             INT NOT NULL,
+  flags                 INT NOT NULL,
+  active                BOOL,
+  content               TEXT,
+  PRIMARY KEY(id)
+) Engine=InnoDB CHARACTER SET 'latin1';
+
+CREATE INDEX domainidindex ON cryptokeys(domain_id);
+
+
+CREATE TABLE tsigkeys (
+  id                    INT AUTO_INCREMENT,
+  name                  VARCHAR(255),
+  algorithm             VARCHAR(50),
+  secret                VARCHAR(255),
+  PRIMARY KEY (id)
+) Engine=InnoDB CHARACTER SET 'latin1';
+
+CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
diff --git a/builder-support/debian/debian-stretch/sql/pgsql/3.0-1 b/builder-support/debian/debian-stretch/sql/pgsql/3.0-1
new file mode 100644 (file)
index 0000000..a508e7a
--- /dev/null
@@ -0,0 +1,29 @@
+alter table records add ordername       VARCHAR(255);
+alter table records add auth bool;
+create index orderindex on records(ordername);
+
+create table domainmetadata (
+ id             SERIAL PRIMARY KEY,
+ domain_id      INT REFERENCES domains(id) ON DELETE CASCADE,
+ kind           VARCHAR(16),
+ content        TEXT
+);
+
+create table cryptokeys (
+ id             SERIAL PRIMARY KEY,
+ domain_id      INT REFERENCES domains(id) ON DELETE CASCADE,
+ flags          INT NOT NULL,
+ active         BOOL,
+ content        TEXT
+);               
+
+create table tsigkeys (
+ id             SERIAL PRIMARY KEY,
+ name           VARCHAR(255),
+ algorithm      VARCHAR(255), 
+ secret         VARCHAR(255)
+);
+
+create unique index namealgoindex on tsigkeys(name, algorithm);
+
+alter table records alter column type type VARCHAR(10);
diff --git a/builder-support/debian/debian-stretch/sql/pgsql/3.3-1 b/builder-support/debian/debian-stretch/sql/pgsql/3.3-1
new file mode 100644 (file)
index 0000000..d5be011
--- /dev/null
@@ -0,0 +1,26 @@
+-- Change master VARCHAR(20) -> VARCHAR(255)
+ALTER TABLE domains ALTER COLUMN master TYPE VARCHAR(255);
+
+-- Change content VARCHAR(255) -> VARCHAR(65535)
+ALTER TABLE records ALTER COLUMN content TYPE VARCHAR(65535);
+
+-- Lowercase the name column and add a lowercase constraint check
+UPDATE records SET name=lower(name);
+ALTER TABLE records ADD CONSTRAINT c_lowercase_name CHECK (((name)::text = lower((name)::text)));
+
+-- Change ip VARCHAR(25) -> VARCHAR(64)
+ALTER TABLE supermasters ALTER COLUMN ip TYPE VARCHAR(64);
+
+-- Recreate index
+DROP INDEX IF EXISTS orderindex;
+CREATE INDEX recordorder ON records (domain_id, ordername text_pattern_ops);
+
+-- Create an index on domainmetadata
+CREATE INDEX domainidmetaindex ON domainmetadata(domain_id);
+
+-- Create an index on cryptokeys
+CREATE INDEX domainidindex ON cryptokeys(domain_id);
+
+-- Change algorithm VARCHAR(255) -> VARCHAR(50)
+ALTER TABLE tsigkeys ALTER COLUMN algorithm TYPE VARCHAR(50);
+
diff --git a/builder-support/debian/debian-stretch/sql/pgsql/3.3.1-4 b/builder-support/debian/debian-stretch/sql/pgsql/3.3.1-4
new file mode 100644 (file)
index 0000000..417184d
--- /dev/null
@@ -0,0 +1,4 @@
+-- 3.3 to 3.3.1
+ALTER TABLE domains ADD CONSTRAINT c_lowercase_name CHECK (((name)::text = lower((name)::text)));
+ALTER TABLE tsigkeys ADD CONSTRAINT c_lowercase_name check (((name)::text = lower((name)::text)));
+
diff --git a/builder-support/debian/debian-stretch/sql/pgsql/3.4.0 b/builder-support/debian/debian-stretch/sql/pgsql/3.4.0
new file mode 100644 (file)
index 0000000..121bed5
--- /dev/null
@@ -0,0 +1,35 @@
+-- 3.3.1 to 3.4
+ALTER TABLE records ADD disabled BOOL DEFAULT 'f';
+ALTER TABLE records ALTER COLUMN content TYPE VARCHAR(65535);
+ALTER TABLE records ALTER COLUMN auth SET DEFAULT 't';
+ALTER TABLE records ALTER COLUMN type TYPE VARCHAR(10);
+ALTER TABLE supermasters ALTER COLUMN ip TYPE INET USING ip::INET;
+ALTER TABLE supermasters ALTER COLUMN account SET DEFAULT NOT NULL;
+ALTER TABLE supermasters ADD CONSTRAINT supermasters_pkey PRIMARY KEY (ip, nameserver);
+ALTER TABLE domainmetadata ALTER COLUMN kind TYPE VARCHAR(32);
+ALTER TABLE tsigkeys ALTER COLUMN algorithm TYPE VARCHAR(50);
+
+-- recordorder was already in our 3.3.1 upgrade scripts, so drop it if needed
+DROP INDEX IF EXISTS recordorder;
+
+CREATE INDEX recordorder ON records (domain_id, ordername text_pattern_ops);
+DROP INDEX IF EXISTS orderindex;
+
+
+CREATE TABLE comments (
+  id                    SERIAL PRIMARY KEY,
+  domain_id             INT NOT NULL,
+  name                  VARCHAR(255) NOT NULL,
+  type                  VARCHAR(10) NOT NULL,
+  modified_at           INT NOT NULL,
+  account               VARCHAR(40) DEFAULT NULL,
+  comment               VARCHAR(65535) NOT NULL,
+  CONSTRAINT domain_exists
+  FOREIGN KEY(domain_id) REFERENCES domains(id)
+  ON DELETE CASCADE,
+  CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT)))
+);
+
+CREATE INDEX comments_domain_id_idx ON comments (domain_id);
+CREATE INDEX comments_name_type_idx ON comments (name, type);
+CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
diff --git a/builder-support/debian/debian-stretch/sql/pgsql/4.1.0-1 b/builder-support/debian/debian-stretch/sql/pgsql/4.1.0-1
new file mode 100644 (file)
index 0000000..6c4f660
--- /dev/null
@@ -0,0 +1 @@
+ALTER TABLE records ALTER id TYPE BIGINT;
diff --git a/builder-support/debian/debian-stretch/sql/pgsql/pgsql b/builder-support/debian/debian-stretch/sql/pgsql/pgsql
new file mode 100644 (file)
index 0000000..b105d87
--- /dev/null
@@ -0,0 +1,95 @@
+CREATE TABLE domains (
+  id                    SERIAL PRIMARY KEY,
+  name                  VARCHAR(255) NOT NULL,
+  master                VARCHAR(128) DEFAULT NULL,
+  last_check            INT DEFAULT NULL,
+  type                  VARCHAR(6) NOT NULL,
+  notified_serial       INT DEFAULT NULL,
+  account               VARCHAR(40) DEFAULT NULL,
+  CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT)))
+);
+
+CREATE UNIQUE INDEX name_index ON domains(name);
+
+
+CREATE TABLE records (
+  id                    BIGSERIAL PRIMARY KEY,
+  domain_id             INT DEFAULT NULL,
+  name                  VARCHAR(255) DEFAULT NULL,
+  type                  VARCHAR(10) DEFAULT NULL,
+  content               VARCHAR(65535) DEFAULT NULL,
+  ttl                   INT DEFAULT NULL,
+  prio                  INT DEFAULT NULL,
+  change_date           INT DEFAULT NULL,
+  disabled              BOOL DEFAULT 'f',
+  ordername             VARCHAR(255),
+  auth                  BOOL DEFAULT 't',
+  CONSTRAINT domain_exists
+  FOREIGN KEY(domain_id) REFERENCES domains(id)
+  ON DELETE CASCADE,
+  CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT)))
+);
+
+CREATE INDEX rec_name_index ON records(name);
+CREATE INDEX nametype_index ON records(name,type);
+CREATE INDEX domain_id ON records(domain_id);
+CREATE INDEX recordorder ON records (domain_id, ordername text_pattern_ops);
+
+
+CREATE TABLE supermasters (
+  ip                    INET NOT NULL,
+  nameserver            VARCHAR(255) NOT NULL,
+  account               VARCHAR(40) NOT NULL,
+  PRIMARY KEY(ip, nameserver)
+);
+
+
+CREATE TABLE comments (
+  id                    SERIAL PRIMARY KEY,
+  domain_id             INT NOT NULL,
+  name                  VARCHAR(255) NOT NULL,
+  type                  VARCHAR(10) NOT NULL,
+  modified_at           INT NOT NULL,
+  account               VARCHAR(40) DEFAULT NULL,
+  comment               VARCHAR(65535) NOT NULL,
+  CONSTRAINT domain_exists
+  FOREIGN KEY(domain_id) REFERENCES domains(id)
+  ON DELETE CASCADE,
+  CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT)))
+);
+
+CREATE INDEX comments_domain_id_idx ON comments (domain_id);
+CREATE INDEX comments_name_type_idx ON comments (name, type);
+CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
+
+
+CREATE TABLE domainmetadata (
+  id                    SERIAL PRIMARY KEY,
+  domain_id             INT REFERENCES domains(id) ON DELETE CASCADE,
+  kind                  VARCHAR(32),
+  content               TEXT
+);
+
+CREATE INDEX domainidmetaindex ON domainmetadata(domain_id);
+
+
+CREATE TABLE cryptokeys (
+  id                    SERIAL PRIMARY KEY,
+  domain_id             INT REFERENCES domains(id) ON DELETE CASCADE,
+  flags                 INT NOT NULL,
+  active                BOOL,
+  content               TEXT
+);
+
+CREATE INDEX domainidindex ON cryptokeys(domain_id);
+
+
+CREATE TABLE tsigkeys (
+  id                    SERIAL PRIMARY KEY,
+  name                  VARCHAR(255),
+  algorithm             VARCHAR(50),
+  secret                VARCHAR(255),
+  CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT)))
+);
+
+CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
diff --git a/builder-support/debian/debian-stretch/sql/sqlite3/3.0-1 b/builder-support/debian/debian-stretch/sql/sqlite3/3.0-1
new file mode 100644 (file)
index 0000000..1471339
--- /dev/null
@@ -0,0 +1,27 @@
+alter table records add ordername      VARCHAR(255);
+alter table records add auth bool;
+create index orderindex on records(ordername);
+
+create table domainmetadata (
+ id              INTEGER PRIMARY KEY,
+ domain_id       INT NOT NULL,
+ kind            VARCHAR(16) COLLATE NOCASE,
+ content        TEXT
+);
+
+create table cryptokeys (
+ id             INTEGER PRIMARY KEY,
+ domain_id      INT DEFAULT NULL,
+ flags          INT NOT NULL,
+ active         BOOL,
+ content        TEXT
+);        
+
+create table tsigkeys (
+ id             INTEGER PRIMARY KEY,
+ name           VARCHAR(255) COLLATE NOCASE,
+ algorithm      VARCHAR(255) COLLATE NOCASE,
+ secret         VARCHAR(255)
+);
+
+create unique index namealgoindex on tsigkeys(name, algorithm);
diff --git a/builder-support/debian/debian-stretch/sql/sqlite3/3.4.0 b/builder-support/debian/debian-stretch/sql/sqlite3/3.4.0
new file mode 100644 (file)
index 0000000..3d88490
--- /dev/null
@@ -0,0 +1,103 @@
+-- 3.x to 3.4
+
+CREATE TABLE comments (
+  id                    INTEGER PRIMARY KEY,
+  domain_id             INTEGER NOT NULL,
+  name                  VARCHAR(255) NOT NULL,
+  type                  VARCHAR(10) NOT NULL,
+  modified_at           INT NOT NULL,
+  account               VARCHAR(40) DEFAULT NULL,
+  comment               VARCHAR(65535) NOT NULL
+);
+
+CREATE INDEX comments_domain_id_index ON comments (domain_id);
+CREATE INDEX comments_nametype_index ON comments (name, type);
+CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
+
+
+BEGIN TRANSACTION;
+  CREATE TEMPORARY TABLE records_backup(
+    id                  INTEGER PRIMARY KEY,
+    domain_id           INTEGER DEFAULT NULL,
+    name                VARCHAR(255) DEFAULT NULL,
+    type                VARCHAR(10) DEFAULT NULL,
+    content             VARCHAR(65535) DEFAULT NULL,
+    ttl                 INTEGER DEFAULT NULL,
+    prio                INTEGER DEFAULT NULL,
+    change_date         INTEGER DEFAULT NULL,
+    ordername           VARCHAR(255),
+    auth                BOOL DEFAULT 1
+  );
+
+  INSERT INTO records_backup SELECT id,domain_id,name,type,content,ttl,prio,change_date,ordername,auth FROM records;
+  DROP TABLE records;
+
+  CREATE TABLE records (
+    id                  INTEGER PRIMARY KEY,
+    domain_id           INTEGER DEFAULT NULL,
+    name                VARCHAR(255) DEFAULT NULL,
+    type                VARCHAR(10) DEFAULT NULL,
+    content             VARCHAR(65535) DEFAULT NULL,
+    ttl                 INTEGER DEFAULT NULL,
+    prio                INTEGER DEFAULT NULL,
+    change_date         INTEGER DEFAULT NULL,
+    disabled            BOOLEAN DEFAULT 0,
+    ordername           VARCHAR(255),
+    auth                BOOL DEFAULT 1
+  );
+
+  CREATE INDEX rec_name_index ON records(name);
+  CREATE INDEX nametype_index ON records(name,type);
+  CREATE INDEX domain_id ON records(domain_id);
+  CREATE INDEX orderindex ON records(ordername);
+
+  INSERT INTO records SELECT id,domain_id,name,type,content,ttl,prio,change_date,0,ordername,auth FROM records_backup;
+  DROP TABLE records_backup;
+COMMIT;
+
+
+BEGIN TRANSACTION;
+  CREATE TEMPORARY TABLE supermasters_backup (
+    ip                  VARCHAR(64) NOT NULL,
+    nameserver          VARCHAR(255) NOT NULL COLLATE NOCASE,
+    account             VARCHAR(40) DEFAULT NULL
+  );
+
+  INSERT INTO supermasters_backup SELECT ip,nameserver,account FROM supermasters;
+  UPDATE supermasters_backup SET account='' WHERE account IS NULL;
+  DROP TABLE supermasters;
+
+  CREATE TABLE supermasters (
+    ip                  VARCHAR(64) NOT NULL,
+    nameserver          VARCHAR(255) NOT NULL COLLATE NOCASE,
+    account             VARCHAR(40) NOT NULL
+  );
+  CREATE UNIQUE INDEX ip_nameserver_pk ON supermasters(ip, nameserver);
+
+  INSERT INTO supermasters SELECT ip,nameserver,account FROM supermasters_backup;
+  DROP TABLE supermasters_backup;
+COMMIT;
+
+
+BEGIN TRANSACTION;
+  CREATE TABLE domainmetadata_backup (
+    id INTEGER PRIMARY KEY,
+    domain_id INT NOT NULL,
+    kind VARCHAR(32) COLLATE NOCASE,
+    content TEXT
+  );
+
+  INSERT INTO domainmetadata_backup SELECT id,domain_id,kind,content FROM domainmetadata;
+  DROP TABLE domainmetadata;
+
+  CREATE TABLE domainmetadata (
+    id INTEGER PRIMARY KEY,
+    domain_id INT NOT NULL,
+    kind VARCHAR(32) COLLATE NOCASE,
+    content TEXT
+  );
+  CREATE INDEX domainmetaidindex ON domainmetadata(domain_id);
+
+  INSERT INTO domainmetadata SELECT id,domain_id,kind,content FROM domainmetadata_backup;
+  DROP TABLE domainmetadata_backup;
+COMMIT;
diff --git a/builder-support/debian/debian-stretch/sql/sqlite3/sqlite3 b/builder-support/debian/debian-stretch/sql/sqlite3/sqlite3
new file mode 100644 (file)
index 0000000..7cdd2b8
--- /dev/null
@@ -0,0 +1,86 @@
+CREATE TABLE domains (
+  id                    INTEGER PRIMARY KEY,
+  name                  VARCHAR(255) NOT NULL COLLATE NOCASE,
+  master                VARCHAR(128) DEFAULT NULL,
+  last_check            INTEGER DEFAULT NULL,
+  type                  VARCHAR(6) NOT NULL,
+  notified_serial       INTEGER DEFAULT NULL,
+  account               VARCHAR(40) DEFAULT NULL
+);
+
+CREATE UNIQUE INDEX name_index ON domains(name);
+
+
+CREATE TABLE records (
+  id                    INTEGER PRIMARY KEY,
+  domain_id             INTEGER DEFAULT NULL,
+  name                  VARCHAR(255) DEFAULT NULL,
+  type                  VARCHAR(10) DEFAULT NULL,
+  content               VARCHAR(65535) DEFAULT NULL,
+  ttl                   INTEGER DEFAULT NULL,
+  prio                  INTEGER DEFAULT NULL,
+  change_date           INTEGER DEFAULT NULL,
+  disabled              BOOLEAN DEFAULT 0,
+  ordername             VARCHAR(255),
+  auth                  BOOL DEFAULT 1
+);
+
+CREATE INDEX rec_name_index ON records(name);
+CREATE INDEX nametype_index ON records(name,type);
+CREATE INDEX domain_id ON records(domain_id);
+CREATE INDEX orderindex ON records(ordername);
+
+
+CREATE TABLE supermasters (
+  ip                    VARCHAR(64) NOT NULL,
+  nameserver            VARCHAR(255) NOT NULL COLLATE NOCASE,
+  account               VARCHAR(40) NOT NULL
+);
+
+CREATE UNIQUE INDEX ip_nameserver_pk ON supermasters(ip, nameserver);
+
+
+CREATE TABLE comments (
+  id                    INTEGER PRIMARY KEY,
+  domain_id             INTEGER NOT NULL,
+  name                  VARCHAR(255) NOT NULL,
+  type                  VARCHAR(10) NOT NULL,
+  modified_at           INT NOT NULL,
+  account               VARCHAR(40) DEFAULT NULL,
+  comment               VARCHAR(65535) NOT NULL
+);
+
+CREATE INDEX comments_domain_id_index ON comments (domain_id);
+CREATE INDEX comments_nametype_index ON comments (name, type);
+CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
+
+
+CREATE TABLE domainmetadata (
+ id                     INTEGER PRIMARY KEY,
+ domain_id              INT NOT NULL,
+ kind                   VARCHAR(32) COLLATE NOCASE,
+ content                TEXT
+);
+
+CREATE INDEX domainmetaidindex ON domainmetadata(domain_id);
+
+
+CREATE TABLE cryptokeys (
+ id                     INTEGER PRIMARY KEY,
+ domain_id              INT NOT NULL,
+ flags                  INT NOT NULL,
+ active                 BOOL,
+ content                TEXT
+);
+
+CREATE INDEX domainidindex ON cryptokeys(domain_id);
+
+
+CREATE TABLE tsigkeys (
+ id                     INTEGER PRIMARY KEY,
+ name                   VARCHAR(255) COLLATE NOCASE,
+ algorithm              VARCHAR(50) COLLATE NOCASE,
+ secret                 VARCHAR(255)
+);
+
+CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
diff --git a/builder-support/debian/debian-stretch/tests/control b/builder-support/debian/debian-stretch/tests/control
new file mode 100644 (file)
index 0000000..06a25ec
--- /dev/null
@@ -0,0 +1,15 @@
+Tests: smoke-bind
+Depends: pdns-server, pdns-backend-bind, dnsutils
+Restrictions: needs-root
+
+Tests: smoke-mysql
+Depends: default-mysql-server, pdns-server, pdns-backend-mysql, dnsutils
+Restrictions: needs-root, isolation-container
+
+Tests: smoke-pgsql
+Depends: postgresql, pdns-server, pdns-backend-pgsql, dnsutils
+Restrictions: needs-root, isolation-container
+
+Tests: supported-algos
+Depends: pdns-server
+Restrictions: isolation-container
diff --git a/builder-support/debian/debian-stretch/tests/smoke-bind b/builder-support/debian/debian-stretch/tests/smoke-bind
new file mode 100755 (executable)
index 0000000..2fb0d19
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/bash
+exec 2>&1
+set -ex
+
+cat <<EOF >/etc/powerdns/named.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"
+  service pdns stop
+}
+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/builder-support/debian/debian-stretch/tests/smoke-mysql b/builder-support/debian/debian-stretch/tests/smoke-mysql
new file mode 100755 (executable)
index 0000000..3008a66
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/bash
+exec 2>&1
+set -ex
+
+echo /etc/powerdns/pdns.d/pdns.local.gmysql.conf follows:
+echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+cat  /etc/powerdns/pdns.d/pdns.local.gmysql.conf
+echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+
+# gmysql-dbname=pdnsbackendmysql
+DBNAME=$(grep gmysql-dbname /etc/powerdns/pdns.d/pdns.local.gmysql.conf | awk -F= '{print $2}')
+
+cat <<EOF >/etc/powerdns/example.org
+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.124
+EOF
+
+zone2sql --gmysql --zone-name=example.org --zone=/etc/powerdns/example.org | \
+    mysql -uroot $DBNAME
+
+service pdns restart
+
+TMPFILE=$(mktemp)
+cleanup() {
+  rm -f "$TMPFILE"
+  service pdns stop
+}
+trap cleanup EXIT
+
+dig @127.0.0.1 smoke.example.org 2>&1 | tee "$TMPFILE"
+
+if grep -c '127\.0\.0\.124' "$TMPFILE"; then
+    echo success
+else
+    echo smoke.example.org could not be resolved
+    exit 1
+fi
+
diff --git a/builder-support/debian/debian-stretch/tests/smoke-pgsql b/builder-support/debian/debian-stretch/tests/smoke-pgsql
new file mode 100755 (executable)
index 0000000..1db81a4
--- /dev/null
@@ -0,0 +1,42 @@
+#!/bin/bash
+exec 2>&1
+set -ex
+
+echo /etc/powerdns/pdns.d/pdns.local.gpgsql.conf follows:
+echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+cat  /etc/powerdns/pdns.d/pdns.local.gpgsql.conf
+echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+
+# gpgsql-dbname=pdnsbackendpgsql
+DBNAME=$(grep gpgsql-dbname   /etc/powerdns/pdns.d/pdns.local.gpgsql.conf | awk -F= '{print $2}')
+DBHOST=$(grep gpgsql-host     /etc/powerdns/pdns.d/pdns.local.gpgsql.conf | awk -F= '{print $2}')
+DBUSER=$(grep gpgsql-user     /etc/powerdns/pdns.d/pdns.local.gpgsql.conf | awk -F= '{print $2}')
+DBPASS=$(grep gpgsql-password /etc/powerdns/pdns.d/pdns.local.gpgsql.conf | awk -F= '{print $2}')
+
+cat <<EOF >/etc/powerdns/example.org
+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.125
+EOF
+
+zone2sql --gpgsql --zone-name=example.org --zone=/etc/powerdns/example.org | \
+    PGPASSWORD="$DBPASS" psql -h "$DBHOST" -U "$DBUSER" "$DBNAME"
+
+service pdns restart
+
+TMPFILE=$(mktemp)
+cleanup() {
+  rm -f "$TMPFILE"
+  service pdns stop
+}
+trap cleanup EXIT
+
+dig @127.0.0.1 smoke.example.org 2>&1 | tee "$TMPFILE"
+
+if grep -c '127\.0\.0\.125' "$TMPFILE"; then
+    echo success
+else
+    echo smoke.example.org could not be resolved
+    exit 1
+fi
+
diff --git a/builder-support/debian/debian-stretch/tests/supported-algos b/builder-support/debian/debian-stretch/tests/supported-algos
new file mode 100755 (executable)
index 0000000..40a68dd
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash
+exec 2>&1
+set -ex
+
+TMPFILE=$(mktemp)
+cleanup() {
+  rm -f "$TMPFILE"
+}
+trap cleanup EXIT
+
+pdnsutil list-algorithms 2>/dev/null | tee "$TMPFILE"
+
+for algo in RSASHA1 RSASHA1-NSEC3-SHA1 RSASHA256 RSASHA512 ECC-GOST ECDSAP256SHA256 ECDSAP384SHA384 ED25519; do
+    if ! grep -E -c " $algo\$" "$TMPFILE"; then
+        echo Algorithm $algo is not supported
+        exit 1
+    fi
+done
+
+echo success
diff --git a/builder-support/debian/debian-stretch/triggers b/builder-support/debian/debian-stretch/triggers
new file mode 100644 (file)
index 0000000..1603282
--- /dev/null
@@ -0,0 +1 @@
+interest pdns-server
diff --git a/builder-support/debian/debian-stretch/upstream/signing-key.asc b/builder-support/debian/debian-stretch/upstream/signing-key.asc
new file mode 100644 (file)
index 0000000..3d84016
--- /dev/null
@@ -0,0 +1,165 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBFT0b7IBEADHlzJvds1NqKEDhOAG0IWGN4J/jBvO5dPPFqwDJaU32x+4wTw0
+OOxCcgFYdzWPl17nFwjC8yeXvbACCZNz62Kg5o1lWA6Mdx8eazCiGOuTdUbndZDB
+lrIEAs1OUZmqxTSydDnaRNCtLTE2o0t4MaidczjinUn2RkvrtvlCsi1HpQdO5mUT
+r/bmp7v4mvCP5vERuY2+qVc1KbqFltCeV0KAOpr1kRGyQ4D9LFloFkr7ftF0ba3B
+0fbInu2uMp46MC+jPok5uEoT66l+U7sZsCUkHH02Y6s/uXJ6ack84/phtv4xwRER
+lpC97Md+7N7qIYVrdhGVbsiHFEDIoBrLAqfdteivoocguLRI/EUn26J9+bezhmCZ
+UUu1f62iJuBnWCwjpELNMlCIpWugHAucaUZx1xyF71DR65NZwMs+TxBEf+gYlvrz
+Dm6J8fhkfKFH6PtrjIOC0mCsfqOY4FgRYknTZd4ECufkbMKXRX88qvYGX+Fr1Tgn
+QR9GChEPIiWF9e3a5J+DljBu7tEJ0LOhnWU3ApUCTE1lQSGgrUTDQsbil+lyPVjo
+MI+rxzP4o3roDyzrFEr/rlnCv3x+0kqprSXTJqcDShVJq+GU2lmeUCy7+pF2yKCq
+hChcF5CQD4Jt+plRBPq7stxaDZdLpvUtFvLRl4LO6TJjNAGf5x2+kfvupQARAQAB
+tChQaWV0ZXIgTGV4aXMgPHBpZXRlci5sZXhpc0Bwb3dlcmRucy5jb20+iQI+BBMB
+AgAoBQJU9G+yAhsDBQkJZgGABgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBe
+UHFb8v/hp0tWEADG6hcabGBjLFUacKxWdfzV8n3pC5O1wlg/vmIMGddHfI10AL9A
+R5ebm5KQhLmXW+0qhJC4Cm40X8OCg6q4u4gxo8KGHJJqodcZdtKsk2JH3kJyos7g
+VpjbFS9CU9MVMyoXBwYdW1seBTxfoqIzpWUCysFYj6RjmnLLZQXD30T0IWj+0Cyq
+zlb1UHdHm3227I0gT/qJYpOjlkYsl4iH7AJhqtDhQ7ZPn+4yNlCDAvvwA6bpczJi
+Xa/JdvMIKLnbVTPsOCweoWxTmEr1cvpHDKliPskOuA8ujpxVSOXGR948UF74qhLP
+kDczOI1EN+yqd0zwRA7xzUJHWJZZOxNuHnBf24v95AyEgX1aG0nTBjBEcTyYZzVg
+ht7BD/lj0+W3gyssHFl+JDh6ZoS98EcSW2cxLrAOyF8nnm9gFn7CQXTLTOVK9ruM
+lvQ6vbjRQ7176OJkF6jNGj5qSjeSK0s0wU//Wyr7uojiPiQYhGPwOcAskq6iLI6n
+ieVmnOnTwnDbMS1danRFTFdnoPOgP5W8pj4kIOcScxekUhcJlaW8nuxxanCky8G2
+SR83+OgqYBcitFrmr6fdDca69KE2h8X5wB5Uw3VzMm5t2e8JRFxINoUoea60ymH4
+4LaCCUZAo2kYeNI0ZCDNGC8ebkeTwZOoQM44pP+7GL4BuV7j62ty+mPFxrkCDQRU
+9G+yARAAo3nHYN3tSBd8wTGnRWxWoe2UjxSuGPEPjjG3ortE81z+ua0Vw0IufeY3
+SHEGOv+4AdSILqgtB1lKPzbOxhZzZ1m6wGqFVqS4x14DCfYanciBIJbqCRAh+d3d
+GO96IvjwaGFFOc9rR4uwIoiXPajBuJvatj+8VK56gqphjuKVPZxSUxVAKHX/4qDZ
+PRHZnIi5hVJu15BzbVHClUBlhEe74nXnVi1tX4RwM4SNYWJDfOWXyFC361TWQZ9V
+Py+J68uz+xztCEMaCuzzrOmqcVOCcgExMr7J42FPlDggz10SChwGeI6BJxYchz8l
+EYHTC8UG9LNYZ20xAvrM76m/ZAtKwmp9RkW+v1XlvXkYtQqAaR7UBMGOpPmIFqb3
+H0dMPfugR+WqsqRlpzQwlnDkyDVK6LgC2+vKMYJxAKMIViGtLo1GMvjzGBdABQK4
+y1cbtSASmjA/1rJNMLN/PcQJ21VvNW4RzdmHtjc5w3t2HyuRZFMllzuhgNbRUMPo
+6Mbevkz3E8USS0vzBv4F3JbkBNyr/o7Xqov3W7eQPqaLV+qhjfhdRicA/5kCslC5
+Jc5XGQiGGTfTpylW0sX59sUPPW475Db0Y7jt98dCKMyK/0f7s+E9B/VXuFKDY9r0
++KR/wWv3q4EEn66wCTA8iAfkkSIGOywkBQd6ziL4Px4qgGN1S9cAEQEAAYkCJQQY
+AQIADwUCVPRvsgIbDAUJCWYBgAAKCRBeUHFb8v/hp4PlD/9AoyzBd9MY0Ypv/v6s
+8ftjmdUukegdpqfe9ZUMQfIAgO3Z/NFIUmWTB3zHqNjd+IrSOBxIUG/to0zoELzY
+79+szKaWYx0FIOPsWm72VN9xawdoYQ/2XTU5u5Qg/O7ysc9O35QKZLHMNtFXp2PB
+PNc9eRrliyv1KhPcCubG1aBQd+psDRaoIfFt6AQSUyaMVgRZ6mbu2q7Gl4RFqVVt
+vt+iNklmlhZiD8K1G7sCF0rr/ofpLBDnVV6/OwIMV+KrD7OODes+e8oQiM+oN6MO
+0dOiKJbA0hPMMjli99d1+lBNUeUMqgF9ckNAbZnD0YdOUgv70Xu1nj9qvk8hzKzN
+f2Czf1vV+GO5aDy9/H6ZljBGjU/0YGTxY6g26sWKcjeispnbH692D2Da83GJXNFk
+aZb6WYdw+uz4SPV7kbG9nOxgFNY1c3vWWtWaz6XAgiYKeetiPRNQ/muMe8PX7Ihg
+5DzpuSMtx04PRR/FVFjN7sK3re+GZUMkJBNV2IEY6h646iTmoyYPEMOJniLWNEAf
++ZMZgFtYfejqCgVGauRmkPAIbT5x/uKXhkBxvX70i+fKbpKnixh5EsIHTDyBWGUx
+4iA7drVZG4u7xN7ryj5tW2abzNk+pvWVJFVld/T9VvZZKlr10lX4rdRkVKRXdqJz
+O0bNI8W2fVX4kYtjm5WfVpL7bJkCDQROXyaRARAA5exKafKcYORDQWOCjO1P5a8U
+YN9wTwyXGU8apwi2zQnRDkjtUxI941pdRxIdt+jZVi7x7F4K7CogdY19N+6utkCq
+6ddLa0DLDOkIhFI8JqxicYMb9g//lNjyT4evxJRYcdT6hhAtSId6U6T9WCDc31+n
+EPf3t53OuAXAU0KmANv2CL+KRzGF2az5t/fCWWz6U9KLfYIHS7pVGEkSUPXXzSWx
+qbLTDHzpANiBb35inOQU+WP2QGshe8TwRBmwTC2mbk/KvseUt/Wcs8cwjEiCQ+52
+AIe6iNMYqLH7vGMo1zzd8dTmF5HQSs2BJPI4vcYMjWf/R5bKtyYSc7hirlyrgtxi
+n/AXDcNCR/v1Vpqvt5Hd9GvHchoAlvmCaJPs8qOdVllS3if/+bWdvxr0YWyIrwOh
+qdnMUJcJfTro+0pATUVr4wSVKzdDRdRcSqNWKvThAqtioC595dr1EVvi1LXVw22X
+J/RnGGxhyBNMXQhkEh/x/g5IJU+t60CIATdjE0OJYbp/+QAS6u7PNgQLWpIUOUvt
+4A/i8pAnLwsYBwKVdvMiSU92WfkLerjbR39suk+HiaYhPm1iaRt7owsM0Mbt8eS+
++ozoIkWo+h3MM0+/S6Y2TM4ZytbCoQwLiT9lTSGIQF5/FBfs+eHZgUSufLfM0FaK
+fgaSQBO0DPwxQ6d7i4cAEQEAAbQsUGV0ZXIgdmFuIERpamsgPHBldGVyLnZhbi5k
+aWprQHBvd2VyZG5zLmNvbT6JAjgEEwECACIFAlTKH88CGwMGCwkIBwMCBhUIAgkK
+CwQWAgMBAh4BAheAAAoJENz1E/p+7Rnzo4YP/jbQIh/QFRk5m6XTRzclq5j8YDuV
+yrXy2fuIM+g9UKRcBTv2Dy/YjfEYc7GSQnrLSOrT/b7gT75LuzXdSBX7mZVJoNuo
+H7VE0FJkTHf5TJtuuFjmD17tdoPPj75FMF38qAHHd9pzqUjJKYhcpkTfBrU8yJuK
+joFgNvpnRVjJdMU0rir+tDIjSLMxCg/NFMQ0tm0o9XL9lQcQxcJpa8zxGv6M8QCP
+bfQsWPC7+grBH6+ch0ljpFf5qkqPuDnoHTY4kUaHjKNP21ATrZGUspI9jjUlQZ9a
+CDmELRaK1IbUcmRSySIjtdbM54EQ6kWDrJZjDC7mdpPv2/yuBPY7yb8+8rfmNwTz
+rI0bVfbT+6EiiaUzeNz0502yjDNkaVUzd2z7X4WdfokLm5NMth9l2ijpyl+sBHY2
+ljqAUekkc1c0s/HYDqr5HwYQP2yXIcFh58nJJO22SVzLM2n55CWc1v3lXrqKVIJM
+lnjB6epZ4KcKUqgj159dM5t2wWDUjhXQgl9kLN4QfHy4vDkBr/abopGZr3SMC9Y1
+j9RhJJD/eMRU7b+MKoAcpMko0zAbPcxAzjhqtsdp3VCWblKaGOwBwbc5jK38Lrh8
+MhR301aWpRN+kun+w/FAOt9bzvwRnA4/ucZwIYUwYohW8KKzYwH2bOP23ympuL+a
+2G/q4s/jiWFWtJvStC1QZXRlciB2YW4gRGlqayA8cGV0ZXIudmFuLmRpamtAbmV0
+aGVybGFicy5ubD6JAjgEEwECACIFAk5fJpECGwMGCwkIBwMCBhUIAgkKCwQWAgMB
+Ah4BAheAAAoJENz1E/p+7RnzoQQQAJjEVUbLcBd4blXL6EW3VMqIMFbxBt4CiHRj
+sSo02+rUMWLOqZBERfynv0oufhrW3AqTO0OMoqPLWjWFNeOHOdKieBJdcXHDJPO8
+qRUpbcYh5CXr54X09d5WZU8sGipnd8wxO68J8g+5vux3xscEaZTwWZTwyelWA77O
+xJm6WlPPxJ+lTyIuhVC3KoBUWRwfNrxE/ij/0tkVFoIXvczbAQqB6+nApHZvtoR4
+Wys4bzmCWuo9PUj0r3+eyjsWEB0A4Ya1bwaJOchubi/Gq99wfp71zJC8FcSMWmoG
+PRnpg6oLpkxC8YreV/16DUgiMnxUPyJAEpb+AH0MMudmp6tnUaWBs/hWnpyWPXqj
+t6wzs7X31X2oj93ANKjnSpglOgUEBKk4GTyOuBo3S+kyXD9WW977kyKVtUQf3U5E
+HUR08UA/DuEJPGDnMa9lujXM17h//iyixa0RhJXX+ZRKRwEAZqj6H8wNayF045Jd
+wMJ6TIePuymV2ltyG5E0M5l5SOc4fELNHJyHvjhi1Fb23lqBxNhvdm8+RtwtFz+Q
+tFwihP/cEBMue5lcj5Bkvwx3NERJxoPi/Qe82mLZLaMCdlP++jzvSrsVrRWkyw+i
+08T0+Dp9/V5YoEUkhSfNp1w26FtrFVqC4XpVxtjda32Ipw3aygpOqEkCxNsy3+C1
+buzr/QK9uQINBE5fJpEBEADOFiLByCv9fv9/UGW4d++olV33ODVXRNyA/y6M8/SQ
+2p45KUnKYpMLoA8ILlcfvCXTtrU8qOiU86YmfgqGsZo7nSaVE0+3w+TjXAHdbLaR
+ylEBcCXM1Oi0l6U0AqZoVebNd6cLpsY8pikZaLcS3a/fs8RZdHuFUxW+aI+CJNsL
+urHoXCLe9wMTN/AvLJhUa0XoD0C9l56vQRPllBdssmN0zlQCuUz9jG8EE5K0zok2
+CWXTRzZb4yKWWsRyji6srTV0pl59ZNtJ4rZsrLCM79GhAtVHZLViC/4A9Wfko6yU
+Ae/8ueg8e6OoK+idjGWXqO2ttdUy3W5Xow+mzIxmh+Ak5485pDLQwv9m/hVHN8d/
+xpUBeIVgeImk+Ggo4ijlTUIGkMgHkU7L9QVKKn/Cw8rVtfzHWpS2BJSku+7evRxE
+PR0sre0B1N7IwBuqoLKPMlp/Hm2Ann5tZcmUj9wW72f1KaCrgfmhpV47Xml0ISES
+0QNU4Io4hgN2MNXU3M9gm+NsOFDWcOK+ecjetEA0QR+Jdcq0T5bXcgGl96hIOOFP
+2ey1NmEw1/uCS9TuGRPrJw1bEzzKbmS70RZMQixtRU12WnGUV385Rc8OmFoaZx1G
+DkTt3xoW/jyjCmBJaE8i8sI5FSxxW72j7bPenQsVsg63DDqoYIiziyaO6gvv0qvJ
+PQARAQABiQIfBBgBAgAJBQJOXyaRAhsMAAoJENz1E/p+7Rnzb9QP/3WFlfry9Y4i
+/l+L0UgqwzPGwZrf3GXzeTtItx2DzHUg/ZVa/TvlmCiaIMRF19aH4BDu+K8GcRsN
+HK6zDfFTPUoDGd44qBiNeTRdyDZwNa+dxjRoSeCVZ89CldjSrbIZOwrUsa46EfKq
+ZcGzDCAlYEyBEVT9Xp7jm9xRLW4SOK3MvtlE8N4cFEQYSH1KLVRTukirt2S7HCLW
+4jcaU6k6S+gCKfVDq2Y3KnwrhbPD/ue7rrAB3KehmIYSITSHV3+uEULO4LXS1Vu9
+c9HYksbtyhVpa1zsdK65u0UwEJ9VTi5eFuaAT73BdmVUL3fOCO+EzLaT9DEQxYC7
+itBxxVcg339L8e+q7m0IKJus/Go4iGujHxJne8/cYUE+T1NBQKWGOh/5Fu2qPn9o
+diCI8//kIx7mJ9AqqnI5JCwu+kQIEIx2DvTSKS/RovTviNgBc/GIzit4TqcTKxfy
+4zybcQVxhRMD+LnfocwzI8Gmuz5JXJgz1AbkgyIGzb7FTQOoJ+wJG0J+jR/gyJna
+6c4KUq9RRzG4yFqqV1mwGbZjrq8Z/X+WVzygIDL5VeE0uDWap1k+R2QirNm+T3nd
+i/swHSz+TZssya0iMlUyeyTCy3wi2lrv6rB0RrdcPOoHsIO7jD3QNSBL4412iFjY
+WClKuopPgza6tGN31LkYN+UB2j03Gm/nmQGiBDz2UqURBADq+b0jXuV5JOOq+WrJ
+JEOreZoptPiO+gtEQf1ITUTXEMDJWnnyGQ2LafrwbS7eD/Ih8yLvk32FL1CiITA8
+FkS59v8vRRRd8Ag046cEENAsFbESXAnpv4EVXKzK/K1IlJj4ZFAId6ARv4n96CmS
+xR6kc+SSywoNkeH310z3yDq/YwCg72sX/D6YNASqBTd2lVDxNcW2fgkD/jgyGV52
+61rU0EKqIcN+/W1CwCXIwm0MGRN4/fMQfzoC6sux519M6mB+4HLtW7lWLP5LVBlM
+iC8AJlHJf711NNPxV5Xol+rOlc78tpfxbr0N19/QDUPVhIgEL3rui0x2YWWME0uC
+PTZWKe9+RJEQOPA/RPoDb9v8XMzcDx3RVAVyBACDUeqNJ6Z8e+mcXjC6DRBvg4jt
+0bd1k0/FN/a6GxrpdpglU8XSBErJhB5rvxfVhVwYrO8M4uyTx/2a29ssRCFAOGtI
+jr3R6J4hoRusgDTr3NRjqjKbw/2EVpN+oePu9oGIQYy/5woZRN4ftabntQkqXtjo
+IjIl2JcA0Nr81sl1obQZYmVydCBodWJlcnQgPGFodUBkczlhLm5sPohfBBMRAgAX
+BQI89lKlBQsHCgMEAxUDAgMWAgECF4AAEgkQHF7pkNLnFXUHZUdQRwABASq1AKDk
+dusIoMiNKktSMWfCbg/oMJcmYwCg38laBCCqB2Oudv6+OebHWSMHrNi0JWJlcnQg
+aHViZXJ0IChmb3gpIDxodWJlcnRAZm94LWl0LmNvbT6ISQQwEQIACQUCVA/k0wId
+IAAKCRAcXumQ0ucVdWFPAKC9315eBt4gCqWUfUj6EfaexeTj/ACgnv7tMyoH4Nv7
+jK1BG4JQ0S7Fewe0JmJlcnQgaHViZXJ0IDxiZXJ0Lmh1YmVydEBuZXRzY291dC5j
+b20+iEkEMBECAAkFAlQP5PICHSAACgkQHF7pkNLnFXWhrgCg3bm+cERc+F75j2Da
+MhdStYhcCoMAoLzC6QFrVqICjXAWt7LUhRetEb+LtDNiZXJ0IGh1YmVydCAoY29y
+cG9yYXRlKSA8YmVydC5odWJlcnRAbmV0aGVybGFicy5ubD6IXwQTEQIAFwUCQoys
+wgULBwoDBAMVAwIDFgIBAheAABIJEBxe6ZDS5xV1B2VHUEcAAQFGrgCg4ZgRb7G4
+H15PKPfOJX6C9PD0wEIAn3HjAg1fNN9WP8vP9UnlbiH08FEZtDFiZXJ0IGh1YmVy
+dCAocG93ZXJkbnMpIDxiZXJ0Lmh1YmVydEBwb3dlcmRucy5jb20+iGIEExECACIF
+Ald/SwoCGyMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEBxe6ZDS5xV1BKEA
+nikLxRY1dyV+u+r9ImnaY7AmZ+x6AJ9GWMGzivQldWwZYPYYh7f3TTE0+bkBDQQ8
+9lKoEAQAvChVI1iQYngKQtFxxelx4Uv+10B/HaIn4Obk2LqJrbc6yS+zatqOBl0p
+M7jOTRRZp549P7U72jApCW2/bKzdcQNJlJRV7FIe5E1qZNf84AsKBHqphe/7FxHY
+ypekmcvAiZG1B5cmQDEW+ebIBqrPBolNFYUjgDaPMZz0Nr5xoyMAAwYD/jfkkn6j
+JwMSZPUHMuVGBTQlCQ3+b70XClBV5uN0UIKyWx7dRtZD7vuf+NqblygnRlsAsEuh
+99ggWKOL7zUjcXJKtHWrMhjhVtPg/4we19rOY7Z9/n8Jc427dTffAX84CHLuuSEZ
+omYQ1uds9DMMayRSiO5BOOXqeP9ItLElyHb4iE4EGBECAAYFAjz2UqgAEgkQHF7p
+kNLnFXUHZUdQRwABARDzAKDK/3G2YXuVXtDDiPe599ncuzJEPwCg471sTokR9Dn3
+3H9ZFpjspd5Z+dGZAQ0EWOzWBQEIALuqBv3556Glk00Hu866hDtDEOtLeyVXOJA8
+ySsKYIwacAHzaTa2whLLzfx3XdwBWKtly1o3hlduwfwL1l3aMh4zamHFgl58a+P6
+fGTlPEEehi+1silIT3QPbqxzOowiwe93UVkJiTqhapGbFDmnguiLZYTWhgAuGYRr
+EpvtNmnJU+6TrDTO8DH834uoYTESqs+fuOVw6Ab84th+Qucq1LB3yKsHhyq7m0en
+81a22xVXIl5+CKZts7pH8bRTTSMn6eo97k1KJ2E15hoRnnrshlduxhzbRjrx1wfq
+OZ0mVzuNHSJYlGvUKnbtNTatOZXRfUAlqMqcsYkXz8t3QLz/cuUAEQEAAbQtV2lu
+a2VscywgRXJpayA8ZXJpay53aW5rZWxzQG9wZW4teGNoYW5nZS5jb20+iQExBBMB
+AgAbBQJY7NYFAhsDBAsJCAcGFQoJCAsCBQkSzAMAAAoJEG/8M0ObDQTfcIcH/32n
+9IqQwvOqh+rNjl3vHn3on4MdUebEIIg3QkhGtBb912Rdbvqp2lJxLDtgI1EolYbm
+ab1HRRBXh0x4ErGt2yJSruyQrTPp6RKX/dP7tAghTPHtiZ5JK/KjhvuBgjbZ4xiy
+3ge/ZVJoEOuxzPfZlK+MOz75RqT7eH4mBvfB4oBr67OTfAzbYQOGRXNSsRzhHr9x
+CGXk1zlNHheyXrwpPm9wD2RahRPRXscagv+HKI7W8taDLY500C3iX7ux3VfzJcy0
+ub4m0ru96VFJRrdwi8O7WT7oJEZvxV/QtG7sXfo7dt+ryRAKxu3er24Hmk1S9iVh
+owEGnq/JRMOIg1ioRj25AQ0EWOzWBQEIAJ+8XbWUGbMEpYf0gEfnxznD6WxBf3j4
+E2GWiqfGYHd5rQPMErrk0DXmxCwSWjJf0+96KNvJ4wrQ/G5gAUj7R7OChXWFt/KZ
+eaEBCJQd0de41pjBQ7+kVb8cRTBt3gCLWC0xEkbYn7jk9T/Rqm7fOkkmt8x2i5+j
+k83M+lteR1aFbwIIA9dMuG5lm5jz+a1Hu6fK65A2V8lsBacp3+D3NNXIwl19UEh7
+u1H6Pg1R67BuePT2iKo/TYyLrfD/G4pLr8HoU19wXEkJq4S/yzoYr9oABZ3spTSa
+fNoVYaxqmerpBHSC5EY/D1t2QfR0C6pUVOVjxaGjYNoaajd0kA4BXqcAEQEAAYkB
+MQQYAQIAGwUCWOzWBQIbDAQLCQgHBhUKCQgLAgUJEswDAAAKCRBv/DNDmw0E3+Da
+CACIyXcUOmgyGqFXmRXC8MVzc5NcKEE6amh13Cwb75xjmXI9p2nvcklCiIAF4MrJ
+JqR22Hkok0SqlcrUb5vjJw2/CZ4PNdbWM1PaB7AyKmiqvM4lpFfH2hR1U1miQZdM
+8V1CXmzOH6DGwuZNU3jUNyYvEbidIxBcJT282Zp/jC9hZFGLL7VL1he0hUvF3WyD
+mQo9RSe0xNrLCTNN+HE2VaTEk7L0dAcVS/NbOv0BJkdB0LqlHGOAE5ahv/iUxO/6
+FCpxjtb6qfCQwUQXjRrMSTSwdSTTlKA015yy44aEXfRnMH9zOPKYbZeJMFOCsfc8
+fU3LLuacV5Kv6l4aJyRYJaN/
+=z55N
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/builder-support/debian/debian-stretch/watch b/builder-support/debian/debian-stretch/watch
new file mode 100644 (file)
index 0000000..cb3c498
--- /dev/null
@@ -0,0 +1,3 @@
+# Site         Directory               Pattern                 Version Script
+version=3
+opts="pgpsigurlmangle=s/$/.asc/,versionmangle=s/-(alpha|beta|rc)/~$1/" https://downloads.powerdns.com/releases/        pdns-(\d+.*)\.tar\.bz2  debian  uupdate
diff --git a/builder-support/dockerfiles/Dockerfile.debbuild b/builder-support/dockerfiles/Dockerfile.debbuild
new file mode 100644 (file)
index 0000000..0c150a5
--- /dev/null
@@ -0,0 +1,8 @@
+RUN if $(echo ${BUILDER_VERSION} | grep -q -E '^0\.0\.'); then \
+  # make sure we don't break dependencies for master releases \
+  sed -i '/pdns-server (<< .*/d' pdns-${BUILDER_VERSION}/debian/control; \
+fi
+
+RUN PDNS_TEST_NO_IPV6=1 builder/helpers/build-debs.sh pdns-${BUILDER_VERSION}
+
+RUN mv pdns*${BUILDER_VERSION}*.deb /dist
diff --git a/builder-support/dockerfiles/Dockerfile.debbuild-prepare b/builder-support/dockerfiles/Dockerfile.debbuild-prepare
new file mode 100644 (file)
index 0000000..18b9861
--- /dev/null
@@ -0,0 +1,18 @@
+FROM dist-base as package-builder
+ARG APT_URL
+RUN apt-get -y install devscripts dpkg-dev build-essential python3
+
+RUN mkdir /dist /pdns
+WORKDIR /pdns
+
+ADD builder/helpers/ /pdns/builder/helpers/
+
+# Used for -p option to only build specific packages
+ARG BUILDER_PACKAGE_MATCH
+
+ARG BUILDER_VERSION
+ARG BUILDER_RELEASE
+
+COPY --from=sdist /sdist /sdist
+
+RUN tar xvf /sdist/pdns-${BUILDER_VERSION}.tar.bz2
diff --git a/builder-support/dockerfiles/Dockerfile.target.debian-stretch b/builder-support/dockerfiles/Dockerfile.target.debian-stretch
new file mode 100644 (file)
index 0000000..f3fcaed
--- /dev/null
@@ -0,0 +1,16 @@
+# First do the source builds
+@INCLUDE Dockerfile.target.sdist
+
+FROM debian:stretch as dist-base
+ARG APT_URL
+RUN apt-get update && apt-get -y dist-upgrade
+
+@INCLUDE Dockerfile.debbuild-prepare
+
+ADD builder-support/debian/debian-stretch/ pdns-${BUILDER_VERSION}/debian/
+
+@INCLUDE Dockerfile.debbuild
+
+# Do a test install and verify
+# Can be skipped with skiptests=1 in the environment
+# @EXEC [ "$skiptests" = "" ] && include Dockerfile.debtest