From: Pieter Lexis Date: Tue, 19 Dec 2017 06:36:22 +0000 (+0100) Subject: Add ubuntu-trusty builder, fix auth sdist X-Git-Tag: dnsdist-1.3.3~83^2~41 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7aa1e8c2f14860fb90d5a61dacdcf95509bb056f;p=pdns Add ubuntu-trusty builder, fix auth sdist --- diff --git a/builder-support/debian/ubuntu-trusty/README.source b/builder-support/debian/ubuntu-trusty/README.source new file mode 100644 index 000000000..cf42723ce --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/README.source @@ -0,0 +1 @@ +See /usr/share/doc/quilt/README.source diff --git a/builder-support/debian/ubuntu-trusty/compat b/builder-support/debian/ubuntu-trusty/compat new file mode 100644 index 000000000..ec635144f --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/compat @@ -0,0 +1 @@ +9 diff --git a/builder-support/debian/ubuntu-trusty/config/bind.conf b/builder-support/debian/ubuntu-trusty/config/bind.conf new file mode 100644 index 000000000..7353b16ba --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/config/bind.conf @@ -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/ubuntu-trusty/config/dnsdomain2.schema b/builder-support/debian/ubuntu-trusty/config/dnsdomain2.schema new file mode 100644 index 000000000..a89aeafb3 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/config/dnsdomain2.schema @@ -0,0 +1,195 @@ +# A schema for storing DNS zones in LDAP +# +# ORDERING is not necessary, and some servers don't support +# integerOrderingMatch. Omit or change if you like + +attributetype ( 1.3.6.1.4.1.2428.20.0.0 NAME 'dNSTTL' + DESC 'An integer denoting time to live' + EQUALITY integerMatch + ORDERING integerOrderingMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) + +attributetype ( 1.3.6.1.4.1.2428.20.0.1 NAME 'dNSClass' + DESC 'The class of a resource record' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.11 NAME 'wKSRecord' + DESC 'a well known service description, RFC 1035' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.12 NAME 'pTRRecord' + DESC 'domain name pointer, RFC 1035' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.13 NAME 'hInfoRecord' + DESC 'host information, RFC 1035' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.14 NAME 'mInfoRecord' + DESC 'mailbox or mail list information, RFC 1035' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.16 NAME 'tXTRecord' + DESC 'text string, RFC 1035' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.17 NAME 'rPRecord' + DESC 'for Responsible Person, RFC 1183' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.18 NAME 'aFSDBRecord' + DESC 'for AFS Data Base location, RFC 1183' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.24 NAME 'SigRecord' + DESC 'Signature, RFC 2535' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.25 NAME 'KeyRecord' + DESC 'Key, RFC 2535' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.27 NAME 'gPosRecord' + DESC 'Geographical Position, RFC 1712' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.28 NAME 'aAAARecord' + DESC 'IPv6 address, RFC 1886' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.29 NAME 'LocRecord' + DESC 'Location, RFC 1876' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.30 NAME 'nXTRecord' + DESC 'non-existant, RFC 2535' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.33 NAME 'sRVRecord' + DESC 'service location, RFC 2782' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.35 NAME 'nAPTRRecord' + DESC 'Naming Authority Pointer, RFC 2915' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.36 NAME 'kXRecord' + DESC 'Key Exchange Delegation, RFC 2230' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.37 NAME 'certRecord' + DESC 'certificate, RFC 2538' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.38 NAME 'a6Record' + DESC 'A6 Record Type, RFC 2874' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.39 NAME 'dNameRecord' + DESC 'Non-Terminal DNS Name Redirection, RFC 2672' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.42 NAME 'aPLRecord' + DESC 'Lists of Address Prefixes, RFC 3123' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.43 NAME 'dSRecord' + DESC 'Delegation Signer, RFC 3658' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.44 NAME 'sSHFPRecord' + DESC 'SSH Key Fingerprint, RFC 4255' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.45 NAME 'iPSecKeyRecord' + DESC 'SSH Key Fingerprint, RFC 4025' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.46 NAME 'rRSIGRecord' + DESC 'RRSIG, RFC 3755' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.47 NAME 'nSECRecord' + DESC 'NSEC, RFC 3755' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.48 NAME 'dNSKeyRecord' + DESC 'DNSKEY, RFC 3755' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.49 NAME 'dHCIDRecord' + DESC 'DHCID, RFC 4701' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 1.3.6.1.4.1.2428.20.1.99 NAME 'sPFRecord' + DESC 'Sender Policy Framework, RFC 4408' + EQUALITY caseIgnoreIA5Match + SUBSTR caseIgnoreIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +objectclass ( 1.3.6.1.4.1.2428.20.2 NAME 'dNSDomain2' + SUP 'dNSDomain' STRUCTURAL + MAY ( DNSTTL $ DNSClass $ WKSRecord $ PTRRecord $ + HINFORecord $ MINFORecord $ TXTRecord $ RPRecord $ + AFSDBRecord $ SIGRecord $ KEYRecord $ GPOSRecord $ + AAAARecord $ LOCRecord $ NXTRecord $ SRVRecord $ + NAPTRRecord $ KXRecord $ CERTRecord $ A6Record $ + DNAMERecord $ APLRecord $ DSRecord $ SSHFPRecord $ + IPSECKEYRecord $ RRSIGRecord $ NSECRecord $ + DNSKEYRecord $ DHCIDRecord $ SPFRecord + ) ) diff --git a/builder-support/debian/ubuntu-trusty/config/geoip.conf b/builder-support/debian/ubuntu-trusty/config/geoip.conf new file mode 100644 index 000000000..48677ee64 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/config/geoip.conf @@ -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/ubuntu-trusty/config/godbc.conf b/builder-support/debian/ubuntu-trusty/config/godbc.conf new file mode 100644 index 000000000..a80b71b9d --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/config/godbc.conf @@ -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/ubuntu-trusty/config/ldap.conf b/builder-support/debian/ubuntu-trusty/config/ldap.conf new file mode 100644 index 000000000..e9e7d3fae --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/config/ldap.conf @@ -0,0 +1,7 @@ +# LDAP Configuration +# +# ldap-host= +# ldap-method= +# ldap-basedn= +# ldap-binddn= +# ldap-secret= diff --git a/builder-support/debian/ubuntu-trusty/config/lua.conf b/builder-support/debian/ubuntu-trusty/config/lua.conf new file mode 100644 index 000000000..529fe5195 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/config/lua.conf @@ -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_=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/ubuntu-trusty/config/named.conf b/builder-support/debian/ubuntu-trusty/config/named.conf new file mode 100644 index 000000000..7b8f76039 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/config/named.conf @@ -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/ubuntu-trusty/config/opendbx.conf b/builder-support/debian/ubuntu-trusty/config/opendbx.conf new file mode 100644 index 000000000..3de13a998 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/config/opendbx.conf @@ -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/ubuntu-trusty/config/pdns.local.gmysql.conf b/builder-support/debian/ubuntu-trusty/config/pdns.local.gmysql.conf new file mode 100644 index 000000000..703f198f5 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/config/pdns.local.gmysql.conf @@ -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/ubuntu-trusty/config/pdns.local.gpgsql.conf b/builder-support/debian/ubuntu-trusty/config/pdns.local.gpgsql.conf new file mode 100644 index 000000000..869b5dc3a --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/config/pdns.local.gpgsql.conf @@ -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/ubuntu-trusty/config/pdns.local.gsqlite3.conf b/builder-support/debian/ubuntu-trusty/config/pdns.local.gsqlite3.conf new file mode 100644 index 000000000..ccde43fc6 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/config/pdns.local.gsqlite3.conf @@ -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/ubuntu-trusty/config/pipe.conf b/builder-support/debian/ubuntu-trusty/config/pipe.conf new file mode 100644 index 000000000..d52be74be --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/config/pipe.conf @@ -0,0 +1,6 @@ +# Configuration for pipe backend +# +# pipe-command= +# pipe-timeout= +# pipe-regex= + diff --git a/builder-support/debian/ubuntu-trusty/config/tinydns.conf b/builder-support/debian/ubuntu-trusty/config/tinydns.conf new file mode 100644 index 000000000..22f0449cf --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/config/tinydns.conf @@ -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/ubuntu-trusty/control b/builder-support/debian/ubuntu-trusty/control new file mode 100644 index 000000000..c98085d27 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/control @@ -0,0 +1,294 @@ +Source: pdns +Section: net +Priority: extra +Standards-Version: 3.9.8 +Maintainer: PowerDNS Autobuilder +Origin: PowerDNS +Build-Depends: autoconf, + automake, + autotools-dev, + bison, + curl, + debhelper (>= 9~), + dh-autoreconf, + 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, + libluajit-5.1-dev, + libmysqlclient-dev, + libopendbx1-dev, + libp11-kit-dev, + libpq-dev, + libprotobuf-dev, + libsqlite3-dev, + libssl-dev, + libtool, + libyaml-cpp-dev (>= 0.5), + pkg-config, + po-debconf, + protobuf-compiler, + ragel, + unixodbc-dev (>= 2.2.14) +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. + +Package: pdns-server-dbg +Section: debug +Architecture: any +Depends: pdns-server (= ${binary:Version}), ${misc:Depends} +Description: debugging symbols for PowerDNS + PowerDNS is a versatile nameserver which supports a large number + of different backends ranging from simple zonefiles to relational + databases and load balancing/failover algorithms. + PowerDNS tries to emphasize speed and security. + . + This package contains debugging symbols for PowerDNS to assist in + debugging, such as gdb. It is not required for normal operation. diff --git a/builder-support/debian/ubuntu-trusty/copyright b/builder-support/debian/ubuntu-trusty/copyright new file mode 100644 index 000000000..6d7144d9c --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/copyright @@ -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 + 2012 Zack Weinberg + 2013 Roy Stogner + 2014, 2015 Google Inc.; contributed by Alexey Sokolov +License: free-generic + +Files: m4/boost.m4 +Copyright: 2007-2011, 2014 Benoit Sigoure +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 + 2016 Pieter Lexis +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 + 2004 - 2013 Matthijs Möhlmann + 2012 - 2013 Marc Haber + 2014 - 2015 Christian Hofstaedtler +License: GPL-2 + +Files: modules/gsqlite3backend/* +Copyright: 2003 Michel Stol + 2011 PowerDNS.COM BV +License: GPL-2 with OpenSSL Exception + +Files: modules/mydnsbackend/* +Copyright: 2011 Jonathan Oddy (Hostway UK) +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 +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 +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 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 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 . + . + 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 + . + . + 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/ubuntu-trusty/gbp.conf b/builder-support/debian/ubuntu-trusty/gbp.conf new file mode 100644 index 000000000..cec628c74 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/gbp.conf @@ -0,0 +1,2 @@ +[DEFAULT] +pristine-tar = True diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-bind.dirs b/builder-support/debian/ubuntu-trusty/pdns-backend-bind.dirs new file mode 100644 index 000000000..75de4d8ef --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-bind.dirs @@ -0,0 +1 @@ +var/lib/powerdns/zones.slave.d diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-bind.install b/builder-support/debian/ubuntu-trusty/pdns-backend-bind.install new file mode 100644 index 000000000..b6e7f5bb7 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-bind.install @@ -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/ubuntu-trusty/pdns-backend-bind.postinst b/builder-support/debian/ubuntu-trusty/pdns-backend-bind.postinst new file mode 100644 index 000000000..ba1173fd4 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-bind.postinst @@ -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/ubuntu-trusty/pdns-backend-bind.postrm b/builder-support/debian/ubuntu-trusty/pdns-backend-bind.postrm new file mode 100644 index 000000000..51be23e14 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-bind.postrm @@ -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/ubuntu-trusty/pdns-backend-geoip.examples b/builder-support/debian/ubuntu-trusty/pdns-backend-geoip.examples new file mode 100644 index 000000000..8f26fae7f --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-geoip.examples @@ -0,0 +1 @@ +debian/config/geoip.conf diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-geoip.install b/builder-support/debian/ubuntu-trusty/pdns-backend-geoip.install new file mode 100644 index 000000000..d8ab64b0e --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-geoip.install @@ -0,0 +1 @@ +usr/lib/*/pdns/libgeoipbackend.so* diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-geoip.postinst b/builder-support/debian/ubuntu-trusty/pdns-backend-geoip.postinst new file mode 100644 index 000000000..1beff2003 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-geoip.postinst @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +dpkg-trigger pdns-server + +#DEBHELPER# + +exit 0 diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-ldap.examples b/builder-support/debian/ubuntu-trusty/pdns-backend-ldap.examples new file mode 100644 index 000000000..801a92e94 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-ldap.examples @@ -0,0 +1 @@ +debian/config/ldap.conf diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-ldap.install b/builder-support/debian/ubuntu-trusty/pdns-backend-ldap.install new file mode 100644 index 000000000..6375d0700 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-ldap.install @@ -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/ubuntu-trusty/pdns-backend-ldap.manpages b/builder-support/debian/ubuntu-trusty/pdns-backend-ldap.manpages new file mode 100644 index 000000000..33e216d7c --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-ldap.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/zone2ldap.1 diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-ldap.postinst b/builder-support/debian/ubuntu-trusty/pdns-backend-ldap.postinst new file mode 100644 index 000000000..1beff2003 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-ldap.postinst @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +dpkg-trigger pdns-server + +#DEBHELPER# + +exit 0 diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-lua.docs b/builder-support/debian/ubuntu-trusty/pdns-backend-lua.docs new file mode 100644 index 000000000..e1bae8137 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-lua.docs @@ -0,0 +1 @@ +modules/luabackend/README diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-lua.examples b/builder-support/debian/ubuntu-trusty/pdns-backend-lua.examples new file mode 100644 index 000000000..d2df686bd --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-lua.examples @@ -0,0 +1 @@ +debian/config/lua.conf diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-lua.install b/builder-support/debian/ubuntu-trusty/pdns-backend-lua.install new file mode 100644 index 000000000..3cfcc3799 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-lua.install @@ -0,0 +1 @@ +usr/lib/*/pdns/libluabackend.so* diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-lua.postinst b/builder-support/debian/ubuntu-trusty/pdns-backend-lua.postinst new file mode 100644 index 000000000..1beff2003 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-lua.postinst @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +dpkg-trigger pdns-server + +#DEBHELPER# + +exit 0 diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-mydns.docs b/builder-support/debian/ubuntu-trusty/pdns-backend-mydns.docs new file mode 100644 index 000000000..a47a40c59 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-mydns.docs @@ -0,0 +1 @@ +modules/mydnsbackend/schema.mydns.sql diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-mydns.install b/builder-support/debian/ubuntu-trusty/pdns-backend-mydns.install new file mode 100644 index 000000000..262f35ec7 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-mydns.install @@ -0,0 +1 @@ +usr/lib/*/pdns/libmydnsbackend.so* diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-mydns.postinst b/builder-support/debian/ubuntu-trusty/pdns-backend-mydns.postinst new file mode 100644 index 000000000..1beff2003 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-mydns.postinst @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +dpkg-trigger pdns-server + +#DEBHELPER# + +exit 0 diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.README.Debian b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.README.Debian new file mode 100644 index 000000000..f7ecae432 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.README.Debian @@ -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 < /usr/share/dbconfig-common/data/pdns-backend-mysql/install/mysql + +Then add your data to the database. diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.config b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.config new file mode 100644 index 000000000..18ce7c2a8 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.config @@ -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/ubuntu-trusty/pdns-backend-mysql.docs b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.docs new file mode 100644 index 000000000..1ea8dfc11 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.docs @@ -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/ubuntu-trusty/pdns-backend-mysql.install b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.install new file mode 100644 index 000000000..30e35c511 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.install @@ -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/ubuntu-trusty/pdns-backend-mysql.postinst b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.postinst new file mode 100644 index 000000000..59396e605 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.postinst @@ -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/ubuntu-trusty/pdns-backend-mysql.postrm b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.postrm new file mode 100644 index 000000000..07e2e2dc8 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.postrm @@ -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/ubuntu-trusty/pdns-backend-mysql.prerm b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.prerm new file mode 100644 index 000000000..283c36a64 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-mysql.prerm @@ -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/ubuntu-trusty/pdns-backend-odbc.docs b/builder-support/debian/ubuntu-trusty/pdns-backend-odbc.docs new file mode 100644 index 000000000..76cc1e02c --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-odbc.docs @@ -0,0 +1 @@ +modules/godbcbackend/schema.mssql.sql diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-odbc.examples b/builder-support/debian/ubuntu-trusty/pdns-backend-odbc.examples new file mode 100644 index 000000000..b59603c13 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-odbc.examples @@ -0,0 +1 @@ +debian/config/godbc.conf diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-odbc.install b/builder-support/debian/ubuntu-trusty/pdns-backend-odbc.install new file mode 100644 index 000000000..152e3e083 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-odbc.install @@ -0,0 +1 @@ +usr/lib/*/pdns/libgodbcbackend.so* diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-odbc.postinst b/builder-support/debian/ubuntu-trusty/pdns-backend-odbc.postinst new file mode 100644 index 000000000..1beff2003 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-odbc.postinst @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +dpkg-trigger pdns-server + +#DEBHELPER# + +exit 0 diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-opendbx.examples b/builder-support/debian/ubuntu-trusty/pdns-backend-opendbx.examples new file mode 100644 index 000000000..1923d59a9 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-opendbx.examples @@ -0,0 +1 @@ +debian/config/opendbx.conf diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-opendbx.install b/builder-support/debian/ubuntu-trusty/pdns-backend-opendbx.install new file mode 100644 index 000000000..bc796d1b0 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-opendbx.install @@ -0,0 +1 @@ +usr/lib/*/pdns/libopendbxbackend.so* diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-opendbx.postinst b/builder-support/debian/ubuntu-trusty/pdns-backend-opendbx.postinst new file mode 100644 index 000000000..1beff2003 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-opendbx.postinst @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +dpkg-trigger pdns-server + +#DEBHELPER# + +exit 0 diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.README.Debian b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.README.Debian new file mode 100644 index 000000000..335cfc135 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.README.Debian @@ -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 -U -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/ubuntu-trusty/pdns-backend-pgsql.config b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.config new file mode 100644 index 000000000..2c1d00b32 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.config @@ -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/ubuntu-trusty/pdns-backend-pgsql.docs b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.docs new file mode 100644 index 000000000..3b420cd6a --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.docs @@ -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/ubuntu-trusty/pdns-backend-pgsql.install b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.install new file mode 100644 index 000000000..9ea5a52a2 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.install @@ -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/ubuntu-trusty/pdns-backend-pgsql.postinst b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.postinst new file mode 100644 index 000000000..243027560 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.postinst @@ -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/ubuntu-trusty/pdns-backend-pgsql.postrm b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.postrm new file mode 100644 index 000000000..8a1e11e04 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.postrm @@ -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/ubuntu-trusty/pdns-backend-pgsql.prerm b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.prerm new file mode 100644 index 000000000..a350d8ec7 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-pgsql.prerm @@ -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/ubuntu-trusty/pdns-backend-pipe.examples b/builder-support/debian/ubuntu-trusty/pdns-backend-pipe.examples new file mode 100644 index 000000000..861ee3aa7 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-pipe.examples @@ -0,0 +1 @@ +debian/config/pipe.conf diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-pipe.install b/builder-support/debian/ubuntu-trusty/pdns-backend-pipe.install new file mode 100644 index 000000000..34a1acca7 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-pipe.install @@ -0,0 +1 @@ +usr/lib/*/pdns/libpipebackend.so* diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-pipe.postinst b/builder-support/debian/ubuntu-trusty/pdns-backend-pipe.postinst new file mode 100644 index 000000000..1beff2003 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-pipe.postinst @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +dpkg-trigger pdns-server + +#DEBHELPER# + +exit 0 diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-remote.install b/builder-support/debian/ubuntu-trusty/pdns-backend-remote.install new file mode 100644 index 000000000..f8b7951f5 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-remote.install @@ -0,0 +1 @@ +usr/lib/*/pdns/libremotebackend.so* diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-remote.postinst b/builder-support/debian/ubuntu-trusty/pdns-backend-remote.postinst new file mode 100644 index 000000000..1beff2003 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-remote.postinst @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +dpkg-trigger pdns-server + +#DEBHELPER# + +exit 0 diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.config b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.config new file mode 100644 index 000000000..c34e84caa --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.config @@ -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/ubuntu-trusty/pdns-backend-sqlite3.dirs b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.dirs new file mode 100644 index 000000000..c50e5cc04 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.dirs @@ -0,0 +1 @@ +var/lib/powerdns diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.docs b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.docs new file mode 100644 index 000000000..7dbfd921f --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.docs @@ -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/ubuntu-trusty/pdns-backend-sqlite3.install b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.install new file mode 100644 index 000000000..37e8cff2c --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.install @@ -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/ubuntu-trusty/pdns-backend-sqlite3.postinst b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.postinst new file mode 100644 index 000000000..b95cabbb0 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.postinst @@ -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/ubuntu-trusty/pdns-backend-sqlite3.postrm b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.postrm new file mode 100644 index 000000000..47f0934ee --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.postrm @@ -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/ubuntu-trusty/pdns-backend-sqlite3.prerm b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.prerm new file mode 100644 index 000000000..bf71ca243 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-sqlite3.prerm @@ -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/ubuntu-trusty/pdns-backend-tinydns.examples b/builder-support/debian/ubuntu-trusty/pdns-backend-tinydns.examples new file mode 100644 index 000000000..df4635ec9 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-tinydns.examples @@ -0,0 +1 @@ +debian/config/tinydns.conf diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-tinydns.install b/builder-support/debian/ubuntu-trusty/pdns-backend-tinydns.install new file mode 100644 index 000000000..5d4ab6b71 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-tinydns.install @@ -0,0 +1 @@ +usr/lib/*/pdns/libtinydnsbackend.so* diff --git a/builder-support/debian/ubuntu-trusty/pdns-backend-tinydns.postinst b/builder-support/debian/ubuntu-trusty/pdns-backend-tinydns.postinst new file mode 100644 index 000000000..1beff2003 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-backend-tinydns.postinst @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +dpkg-trigger pdns-server + +#DEBHELPER# + +exit 0 diff --git a/builder-support/debian/ubuntu-trusty/pdns-server.README.Debian b/builder-support/debian/ubuntu-trusty/pdns-server.README.Debian new file mode 100644 index 000000000..58c50ecfa --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-server.README.Debian @@ -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/ubuntu-trusty/pdns-server.dirs b/builder-support/debian/ubuntu-trusty/pdns-server.dirs new file mode 100644 index 000000000..f464f58b2 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-server.dirs @@ -0,0 +1 @@ +etc/powerdns/pdns.d diff --git a/builder-support/debian/ubuntu-trusty/pdns-server.install b/builder-support/debian/ubuntu-trusty/pdns-server.install new file mode 100644 index 000000000..7d80817d9 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-server.install @@ -0,0 +1,6 @@ +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/ubuntu-trusty/pdns-server.lintian-overrides b/builder-support/debian/ubuntu-trusty/pdns-server.lintian-overrides new file mode 100644 index 000000000..b6b6bec79 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-server.lintian-overrides @@ -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/ubuntu-trusty/pdns-server.manpages b/builder-support/debian/ubuntu-trusty/pdns-server.manpages new file mode 100644 index 000000000..effe502eb --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-server.manpages @@ -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/ubuntu-trusty/pdns-server.pdns.default b/builder-support/debian/ubuntu-trusty/pdns-server.pdns.default new file mode 100644 index 000000000..0519ac140 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-server.pdns.default @@ -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/ubuntu-trusty/pdns-server.pdns.init b/builder-support/debian/ubuntu-trusty/pdns-server.pdns.init new file mode 100644 index 000000000..16ce98be8 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-server.pdns.init @@ -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/ubuntu-trusty/pdns-server.postinst b/builder-support/debian/ubuntu-trusty/pdns-server.postinst new file mode 100644 index 000000000..dcb2003de --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-server.postinst @@ -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/ubuntu-trusty/pdns-server.preinst b/builder-support/debian/ubuntu-trusty/pdns-server.preinst new file mode 100644 index 000000000..837a3a0fc --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-server.preinst @@ -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/ubuntu-trusty/pdns-tools.install b/builder-support/debian/ubuntu-trusty/pdns-tools.install new file mode 100644 index 000000000..6ca38a9e4 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-tools.install @@ -0,0 +1,16 @@ +usr/bin/calidns +usr/bin/dnsbulktest +usr/bin/dnsgram +usr/bin/dnspcap2protobuf +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/ubuntu-trusty/pdns-tools.manpages b/builder-support/debian/ubuntu-trusty/pdns-tools.manpages new file mode 100644 index 000000000..b8b70a83d --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/pdns-tools.manpages @@ -0,0 +1,16 @@ +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/dnspcap2protobuf.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/ubuntu-trusty/rules b/builder-support/debian/ubuntu-trusty/rules new file mode 100755 index 000000000..6a093a9c8 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/rules @@ -0,0 +1,68 @@ +#!/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 + + +# Use new build system +%: + dh $@ \ + --with autoreconf \ + --parallel + +override_dh_auto_configure: + test -f pdns/dnslabeltext.cc && mv pdns/dnslabeltext.cc debian/dnslabeltext.cc.moved || true + dh_auto_configure -- \ + --sysconfdir=/etc/powerdns \ + --with-dynmodules="$(backends)" \ + --with-modules="" \ + --enable-tools \ + --disable-libsodium \ + --with-luajit \ + --with-protobuf \ + --enable-unit-tests \ + --enable-experimental-pkcs11 \ + --disable-systemd + +# pdns-server has a debug package +override_dh_strip: + dh_strip --dbg-package=pdns-server-dbg + +# 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 + +# Verbose tests (shows used compiler/linker and their flags) +override_dh_auto_test: + echo Skipping make test, as dependencies are missing. + make check -- V=1 || (cat pdns/test-suite.log && false) + +# Verbose build (shows used compiler/linker and their flags) +override_dh_auto_build-arch: + dh_auto_build -- V=1 MAKEOPTS=-j2 + +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/ubuntu-trusty/source/format b/builder-support/debian/ubuntu-trusty/source/format new file mode 100644 index 000000000..163aaf8d8 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/builder-support/debian/ubuntu-trusty/sql/mysql/3.0-1 b/builder-support/debian/ubuntu-trusty/sql/mysql/3.0-1 new file mode 100644 index 000000000..696d495d3 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/mysql/3.0-1 @@ -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/ubuntu-trusty/sql/mysql/3.3.1-4 b/builder-support/debian/ubuntu-trusty/sql/mysql/3.3.1-4 new file mode 100644 index 000000000..197062365 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/mysql/3.3.1-4 @@ -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/ubuntu-trusty/sql/mysql/3.4.0 b/builder-support/debian/ubuntu-trusty/sql/mysql/3.4.0 new file mode 100644 index 000000000..a97f5762f --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/mysql/3.4.0 @@ -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/ubuntu-trusty/sql/mysql/4.0.1-6 b/builder-support/debian/ubuntu-trusty/sql/mysql/4.0.1-6 new file mode 100644 index 000000000..d6140a302 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/mysql/4.0.1-6 @@ -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/ubuntu-trusty/sql/mysql/4.0.3-1 b/builder-support/debian/ubuntu-trusty/sql/mysql/4.0.3-1 new file mode 100644 index 000000000..c63c75348 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/mysql/4.0.3-1 @@ -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/ubuntu-trusty/sql/mysql/4.1.0-1 b/builder-support/debian/ubuntu-trusty/sql/mysql/4.1.0-1 new file mode 100644 index 000000000..acd9ce3cc --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/mysql/4.1.0-1 @@ -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/ubuntu-trusty/sql/mysql/mysql b/builder-support/debian/ubuntu-trusty/sql/mysql/mysql new file mode 100644 index 000000000..455de0b1d --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/mysql/mysql @@ -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/ubuntu-trusty/sql/pgsql/3.0-1 b/builder-support/debian/ubuntu-trusty/sql/pgsql/3.0-1 new file mode 100644 index 000000000..a508e7aae --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/pgsql/3.0-1 @@ -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/ubuntu-trusty/sql/pgsql/3.3-1 b/builder-support/debian/ubuntu-trusty/sql/pgsql/3.3-1 new file mode 100644 index 000000000..d5be011c3 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/pgsql/3.3-1 @@ -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/ubuntu-trusty/sql/pgsql/3.3.1-4 b/builder-support/debian/ubuntu-trusty/sql/pgsql/3.3.1-4 new file mode 100644 index 000000000..417184dba --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/pgsql/3.3.1-4 @@ -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/ubuntu-trusty/sql/pgsql/3.4.0 b/builder-support/debian/ubuntu-trusty/sql/pgsql/3.4.0 new file mode 100644 index 000000000..121bed5ec --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/pgsql/3.4.0 @@ -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/ubuntu-trusty/sql/pgsql/4.1.0-1 b/builder-support/debian/ubuntu-trusty/sql/pgsql/4.1.0-1 new file mode 100644 index 000000000..6c4f660a1 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/pgsql/4.1.0-1 @@ -0,0 +1 @@ +ALTER TABLE records ALTER id TYPE BIGINT; diff --git a/builder-support/debian/ubuntu-trusty/sql/pgsql/pgsql b/builder-support/debian/ubuntu-trusty/sql/pgsql/pgsql new file mode 100644 index 000000000..b105d8795 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/pgsql/pgsql @@ -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/ubuntu-trusty/sql/sqlite3/3.0-1 b/builder-support/debian/ubuntu-trusty/sql/sqlite3/3.0-1 new file mode 100644 index 000000000..147133906 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/sqlite3/3.0-1 @@ -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/ubuntu-trusty/sql/sqlite3/3.4.0 b/builder-support/debian/ubuntu-trusty/sql/sqlite3/3.4.0 new file mode 100644 index 000000000..3d884905c --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/sqlite3/3.4.0 @@ -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/ubuntu-trusty/sql/sqlite3/sqlite3 b/builder-support/debian/ubuntu-trusty/sql/sqlite3/sqlite3 new file mode 100644 index 000000000..7cdd2b878 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/sql/sqlite3/sqlite3 @@ -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/ubuntu-trusty/tests/control b/builder-support/debian/ubuntu-trusty/tests/control new file mode 100644 index 000000000..06a25ecfe --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/tests/control @@ -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/ubuntu-trusty/tests/smoke-bind b/builder-support/debian/ubuntu-trusty/tests/smoke-bind new file mode 100755 index 000000000..2fb0d194a --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/tests/smoke-bind @@ -0,0 +1,32 @@ +#!/bin/bash +exec 2>&1 +set -ex + +cat </etc/powerdns/named.conf +zone "example.org" { type master; file "/etc/powerdns/example.org.zone"; }; +EOF + +cat </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/ubuntu-trusty/tests/smoke-mysql b/builder-support/debian/ubuntu-trusty/tests/smoke-mysql new file mode 100755 index 000000000..3008a6629 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/tests/smoke-mysql @@ -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 </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/ubuntu-trusty/tests/smoke-pgsql b/builder-support/debian/ubuntu-trusty/tests/smoke-pgsql new file mode 100755 index 000000000..1db81a43c --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/tests/smoke-pgsql @@ -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 </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/ubuntu-trusty/tests/supported-algos b/builder-support/debian/ubuntu-trusty/tests/supported-algos new file mode 100755 index 000000000..40a68ddaf --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/tests/supported-algos @@ -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/ubuntu-trusty/triggers b/builder-support/debian/ubuntu-trusty/triggers new file mode 100644 index 000000000..1603282fa --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/triggers @@ -0,0 +1 @@ +interest pdns-server diff --git a/builder-support/debian/ubuntu-trusty/upstream/signing-key.asc b/builder-support/debian/ubuntu-trusty/upstream/signing-key.asc new file mode 100644 index 000000000..3d8401691 --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/upstream/signing-key.asc @@ -0,0 +1,165 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +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/ubuntu-trusty/watch b/builder-support/debian/ubuntu-trusty/watch new file mode 100644 index 000000000..cb3c4987a --- /dev/null +++ b/builder-support/debian/ubuntu-trusty/watch @@ -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.authoritative b/builder-support/dockerfiles/Dockerfile.authoritative index 13de945a2..60ac71baa 100644 --- a/builder-support/dockerfiles/Dockerfile.authoritative +++ b/builder-support/dockerfiles/Dockerfile.authoritative @@ -1,7 +1,8 @@ FROM alpine:3.6 as pdns-authoritative RUN apk add --no-cache gcc g++ make tar autoconf automake protobuf-dev lua-dev \ - libtool file boost-dev curl openssl-dev ragel py-virtualenv + libtool file boost-dev curl openssl-dev ragel py-virtualenv \ + flex bison git # the pdns/ dir is a bit broad, but who cares :) ADD configure.ac Makefile.am COPYING INSTALL NOTICE README /pdns-authoritative/ diff --git a/builder-support/dockerfiles/Dockerfile.target.ubuntu-trusty b/builder-support/dockerfiles/Dockerfile.target.ubuntu-trusty new file mode 100644 index 000000000..8194e9e21 --- /dev/null +++ b/builder-support/dockerfiles/Dockerfile.target.ubuntu-trusty @@ -0,0 +1,16 @@ +# First do the source builds +@INCLUDE Dockerfile.target.sdist + +FROM ubuntu:trusty as dist-base +ARG APT_URL +RUN apt-get update && apt-get -y dist-upgrade + +@INCLUDE Dockerfile.debbuild-prepare + +ADD builder-support/debian/ubuntu-trusty/ 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