# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Maintainer: Remi Gacogne <rgacogne[at]archlinux[dot]org>
# Contributor: Alexander Rødseth <rodseth@gmail.com>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Kevin Mihelich <kevin@archlinuxarm.org>
# Contributor: Pieter Lexis <pieter[dot]lexis[at]powerdns[dot]com>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - explicitly link v5/v6 with libatomic

pkgname=powerdns
pkgver=4.4.1
pkgrel=1
pkgdesc='Authoritative DNS server'
url='https://www.powerdns.com/'
arch=('x86_64')
license=('GPL2')
depends=('boost-libs' 'libcurl.so' 'libsodium' 'lmdb' 'luajit' 'openssl' 'protobuf'
         'sqlite' 'systemd-libs')
makedepends=('boost' 'geoip' 'libldap' 'mariadb-libs' 'curl' 'libmaxminddb'
             'postgresql-libs' 'systemd' 'tinycdb' 'unixodbc' 'yaml-cpp')
optdepends=('geoip: GeoIP backend'
            'mariadb-libs: MariaDB/MySQL and MyDNS backend'
            'libldap: LDAP backend'
            'libmaxminddb: MaxMindDB GeoIP2 database for the GeoIP backend'
            'postgresql-libs: PostgreSQL backend'
            'unixodbc: ODBC backend'
            'tinycdb: TinyDNS backend'
            'yaml-cpp: GeoIP backend')
provides=('pdns')
conflicts=('pdns')
backup=('etc/powerdns/pdns.conf')
source=(https://downloads.powerdns.com/releases/pdns-${pkgver}.tar.bz2{,.asc}
        sysusers.conf)
sha512sums=('a6f31972f77ded8ecfb523e8810dd90e5b7aa628746fee2a9a0daae2a7935800f111ce8617ffd71d5ce3881947d4ffc36c9cb37996a7bcc514536bb4abe1f79e'
            'SKIP'
            '522bde8b76367db6edd461fca8f81d50304a4d764addf33774b3e2c5c93a9e72d93993f54ddd4ee887ceeccf70280aceea3ffaf6370d26310e0a7ebbbf61f26a')
validpgpkeys=('B76CD4671C0968BAA87DE61C5E50715BF2FFE1A7'   # Winkels, Erik <erik.winkels@open-xchange.com>
              '16E12866B7738C73976A57436FFC33439B0D04DF'   # Peter van Dijk <peter.van.dijk@powerdns.com>
              'FBAE0323821C7706A5CA151BDCF513FA7EED19F3' ) # Pieter Lexis <pieter.lexis@powerdns.com>

prepare() {
  cd pdns-${pkgver}
  # Patch the Makefile.in's so /powerdns is used instead of /pdns (for e.g. $LIBDIR)
  # This allows for running pdns_server without setting `module-dir` in the config.
  find . -name 'Makefile.in' -exec sed -i 's,pkglibdir = \$(libdir)/@PACKAGE@,pkglibdir = $(libdir)/powerdns,' {} \;
}

build() {
  cd pdns-${pkgver}
  [[ $CARCH == arm || $CARCH == armv6h ]] && LIBS="-latomic"
  LIBS=$LIBS ./configure \
    --prefix=/usr \
    --sysconfdir=/etc/powerdns \
    --sbindir=/usr/bin \
    --with-modules='' \
    --with-dynmodules="bind geoip gmysql godbc gpgsql gsqlite3 ldap lmdb lua2 pipe random remote tinydns" \
    --docdir=/usr/share/doc/powerdns \
    --with-libsodium \
    --enable-tools \
    --enable-ixfrdist \
    --disable-dependency-tracking \
    --disable-silent-rules \
    --enable-reproducible \
    --enable-unit-tests \
    --enable-systemd \
    --with-service-user=powerdns \
    --with-service-group=powerdns
  make
}

check() {
  make -C pdns-${pkgver} check
}

package() {
  make -C pdns-${pkgver} DESTDIR="${pkgdir}" install
  install -Dm 644 sysusers.conf "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf"
  mv "${pkgdir}/etc/powerdns/pdns.conf"{-dist,}
  # Ensure we run as the powerdns user
  sed -i "s,^# \(set.id=\),\1${pkgname}," "${pkgdir}/etc/powerdns/pdns.conf"
}

# vim: ts=2 sw=2 et: