diff --git a/community/pdns/PKGBUILD b/community/pdns/PKGBUILD new file mode 100644 index 000000000..c6ff59cb8 --- /dev/null +++ b/community/pdns/PKGBUILD @@ -0,0 +1,66 @@ +# $Id: PKGBUILD 79756 2012-11-12 00:04:11Z arodseth $ +# Maintainer: Alexander Rødseth +# Contributor: Jan de Groot + +# ALARM: Kevin Mihelich +# - removed linking to boost_graph_parallel and dep on openmpi, there's no need for that + +pkgname=pdns +pkgver=3.1 +pkgrel=2 +pkgdesc="Modern, advanced and high performance authoritative-only nameserver" +arch=('x86_64' 'i686') +url='http://www.powerdns.com/' +license=('GPL') +depends=('gcc-libs' 'zlib' 'postgresql-libs' 'libmysqlclient' 'sqlite' 'libldap' 'lua' 'boost-libs') +makedepends=('boost') +provides=('pdns-ldap' 'pdns-mysql' 'pdns-sqlite' 'pdns-pgsql') +replaces=('pdns-ldap' 'pdns-mysql' 'pdns-sqlite' 'pdns-pgsql') +conflicts=('pdns-ldap' 'pdns-mysql' 'pdns-sqlite' 'pdns-pgsql') +install=pdns.install +options=('!makeflags' '!libtool') +backup=('etc/powerdns/pdns.conf') +source=("http://downloads.powerdns.com/releases/$pkgname-$pkgver.tar.gz" + 'pdns.service' + 'pdns.rc' + 'pdns.conf') +sha256sums=('1400f7bd659207c0b1f4b8296092e559a7b7bf6a2434951970217d9af06922a1' + '2a60c4407bcfe19026ae77d3e3b7b477d5a0c6323c0bc78892e9d907003b442a' + '0457ffa2baa40518a03393e4f76964d9452c16aebbcb925582814f88367d62c2' + '91c8889f41fe9d6bc9478c3ad53a10f6725e36e10f05e8e9257f9d35c9e2bab6') + +build() { + cd "$srcdir/$pkgname-$pkgver" + + touch AUTHORS NEWS + libtoolize --force --copy + aclocal + autoconf + automake --add-missing + sed -i 's/BOOST/#BOOST/g' configure + ./configure --prefix=/usr \ + --sysconfdir=/etc/powerdns \ + --libexecdir=/usr/lib \ + --libdir=/usr/lib/powerdns \ + --mandir=/usr/share/man \ + --with-modules="" \ + --with-dynmodules="ldap pipe gmysql gpgsql gsqlite3 geo" \ + --disable-recursor \ + --disable-static + make \ + CXXFLAGS="-lboost_serialization -lboost_program_options $CXXFLAGS" +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + + make DESTDIR="$pkgdir" install + install -m755 -d "$pkgdir/etc/rc.d" + rm "$pkgdir/etc/powerdns/pdns.conf-dist" + install -m644 "$srcdir/pdns.conf" "$pkgdir/etc/powerdns/" + install -m755 "$srcdir/pdns.rc" "$pkgdir/etc/rc.d/pdns" + install -Dm644 "$srcdir/pdns.service" \ + "$pkgdir/usr/lib/systemd/system/pdns.service" +} + +# vim:set ts=2 sw=2 et: diff --git a/community/pdns/pdns.conf b/community/pdns/pdns.conf new file mode 100644 index 000000000..fba6617a6 --- /dev/null +++ b/community/pdns/pdns.conf @@ -0,0 +1,281 @@ +# Autogenerated configuration file template +################################# +# allow-axfr-ips If disabled, DO allow zonetransfers from these IP addresses +# +# allow-axfr-ips= + +################################# +# allow-recursion List of netmasks that are allowed to recurse +# +allow-recursion=127.0.0.1 + +################################# +# allow-recursion-override Local data overrrides hosts on the internet +# +allow-recursion-override=yes + +################################# +# cache-ttl Seconds to store packets in the PacketCache +# +cache-ttl=60 + +################################# +# chroot If set, chroot to this directory for more security +# +chroot=/var/empty + +################################# +# config-dir Location of configuration directory (pdns.conf) +# +config-dir=/etc + +################################# +# config-name Name of this virtual configuration - will rename the binary image +# +# config-name= + +################################# +# control-console Debugging switch - don't use +# +# control-console=no + +################################# +# daemon Operate as a daemon +# +daemon=yes + +################################# +# default-soa-name name to insert in the SOA record if none set in the backend +# +# default-soa-name=a.misconfigured.powerdns.server + +################################# +# disable-axfr Disable zonetransfers but do allow TCP queries +# +# disable-axfr=no + +################################# +# disable-tcp Do not listen to TCP queries +# +# disable-tcp=no + +################################# +# distributor-threads Default number of Distributor (backend) threads to start +# +distributor-threads=3 + +################################# +# fancy-records Process URL and MBOXFW records +# +# fancy-records=no + +################################# +# guardian Run within a guardian process +# +guardian=yes + +################################# +# launch Which backends to launch and order to query them in +# +#launch= + +################################# +# lazy-recursion Only recurse if question cannot be answered locally +# +lazy-recursion=yes + +################################# +# load-modules Load this module - supply absolute or relative path +# +# load-modules= + +################################# +# local-address Local IP address to which we bind +# +local-address=127.0.0.1 + +################################# +# local-ipv6 Local IP address to which we bind +# +# local-ipv6= + +################################# +# local-port The port on which we listen +# +local-port=53 + +################################# +# log-dns-details If PDNS should log failed update requests +# +#log-dns-details=off + +################################# +# log-failed-updates If PDNS should log failed update requests +# +#log-failed-updates=off + +################################# +# logfile Logfile to use +# +# logfile=pdns.log + +################################# +# logging-facility Log under a specific facility +# +# logging-facility= + +################################# +# loglevel Amount of logging. Higher is more. Do not set below 3 +# +loglevel=3 + +################################# +# master Act as a master +# +# master=no + +################################# +# max-queue-length Maximum queuelength before considering situation lost +# +# max-queue-length=5000 + +################################# +# max-tcp-connections Maximum number of TCP connections +# +# max-tcp-connections=10 + +################################# +# module-dir Default directory for modules +# +module-dir=/usr/lib/powerdns + +################################# +# negquery-cache-ttl Seconds to store packets in the PacketCache +# +negquery-cache-ttl=60 + +################################# +# only-soa Make sure that no SOA serial is less than this number +# +# only-soa=org + +################################# +# out-of-zone-additional-processing Do out of zone additional processing +# +# out-of-zone-additional-processing=no + +################################# +# query-cache-ttl Seconds to store packets in the PacketCache +# +# query-cache-ttl=20 + +################################# +# query-logging Hint backends that queries should be logged +# +# query-logging=no + +################################# +# queue-limit Maximum number of milliseconds to queue a query +# +# queue-limit=1500 + +################################# +# receiver-threads Number of receiver threads to launch +# +# receiver-threads=1 + +################################# +# recursive-cache-ttl Seconds to store packets in the PacketCache +# +# recursive-cache-ttl=10 + +################################# +# recursor If recursion is desired, IP address of a recursing nameserver +# +#recursor= + +################################# +# setgid If set, change group id to this gid for more security +# +setgid=nobody + +################################# +# setuid If set, change user id to this uid for more security +# +setuid=nobody + +################################# +# skip-cname Do not perform CNAME indirection for each query +# +# skip-cname=no + +################################# +# slave Act as a slave +# +# slave=no + +################################# +# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds +# +# slave-cycle-interval=60 + +################################# +# smtpredirector Our smtpredir MX host +# +# smtpredirector=a.misconfigured.powerdns.smtp.server + +################################# +# soa-minimum-ttl Default SOA mininum ttl +# +# soa-minimum-ttl=3600 + +################################# +# soa-serial-offset Make sure that no SOA serial is less than this number +# +# soa-serial-offset=0 + +################################# +# socket-dir Where the controlsocket will live +# +socket-dir=/var/run + +################################# +# strict-rfc-axfrs Perform strictly rfc compliant axfrs (very slow) +# +# strict-rfc-axfrs=no + +################################# +# urlredirector Where we send hosts to that need to be url redirected +# +# urlredirector=127.0.0.1 + +################################# +# use-logfile Use a log file +# +use-logfile=no + +################################# +# webserver Start a webserver for monitoring +# +webserver=no + +################################# +# webserver-address IP Address of webserver to listen on +# +# webserver-address=127.0.0.1 + +################################# +# webserver-password Password required for accessing the webserver +# +# webserver-password= + +################################# +# webserver-port Port of webserver to listen on +# +# webserver-port=8081 + +################################# +# webserver-print-arguments If the webserver should print arguments +# +# webserver-print-arguments=no + diff --git a/community/pdns/pdns.install b/community/pdns/pdns.install new file mode 100644 index 000000000..f41b36b20 --- /dev/null +++ b/community/pdns/pdns.install @@ -0,0 +1,11 @@ +post_install() { + cat << 'EOM' +==> PowerDNS is built without recursor now. To use the recursor, +==> please install the pdns-recursor package and update the +==> configuration in /etc/powerdns/recursor.conf +EOM +} + +post_upgrade() { + post_install $1 +} diff --git a/community/pdns/pdns.rc b/community/pdns/pdns.rc new file mode 100644 index 000000000..2f143ddae --- /dev/null +++ b/community/pdns/pdns.rc @@ -0,0 +1,35 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + stat_busy "Starting DNS" + ! /usr/sbin/pdns_control ping > /dev/null 2>&1 && /usr/sbin/pdns_server --daemon + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon pdns + stat_done + fi + ;; + stop) + stat_busy "Stopping DNS" + pdns_control quit > /dev/null 2>&1 + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon pdns + stat_done + fi + ;; + restart) + $0 stop + sleep 3 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/community/pdns/pdns.service b/community/pdns/pdns.service new file mode 100644 index 000000000..1005c9f64 --- /dev/null +++ b/community/pdns/pdns.service @@ -0,0 +1,12 @@ +[Unit] +Description=PowerDNS Authorative Server +After=syslog.target network.target + +[Service] +Type=forking +ExecStart=/usr/sbin/pdns_server --daemon --guardian=yes +ExecReload=/usr/bin/pdns_control cycle +ExecStop=/usr/bin/pdns_control quit + +[Install] +WantedBy=multi-user.target