PKGBUILDs/extra/bind/PKGBUILD
2024-04-17 23:41:08 +00:00

107 lines
3.7 KiB
Bash

# Maintainer: Sébastien Luttringer
# Maintainer: T.J. Townsend <blakkheim@archlinux.org>
# Contributor: Gaetan Bisson <bisson@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
# Contributor: Mario Vazquez <mario_vazq@hotmail.com>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - !makeflags - bind build doesn't like concurrency
_pkgver=9.18.26
pkgname=bind
pkgver=${_pkgver//-/.}
pkgrel=1
pkgdesc='A complete, highly portable implementation of the DNS protocol'
url='https://www.isc.org/software/bind/'
license=('MPL2')
arch=('x86_64')
options=('!emptydirs' '!makeflags')
depends=('bash' 'dnssec-anchors' 'e2fsprogs' 'glibc' 'icu' 'libedit' 'json-c'
'krb5' 'libcap' 'libidn2' 'libmaxminddb' 'libnsl' 'libuv' 'libxml2' 'lmdb'
'openssl' 'readline' 'xz' 'zlib' 'jemalloc' 'libnghttp2')
conflicts=('bind-tools' 'dnsutils')
replaces=('bind-tools' 'dnsutils' 'host')
provides=('bind-tools' 'dnsutils' 'dns-server')
backup=('etc/named.conf'
'var/named/127.0.0.zone'
'var/named/localhost.zone'
'var/named/localhost.ip6.zone')
install=bind.install
validpgpkeys=('D99CCEAF879747014F038D63182E23579462EFAA' # Michal Nowak
'706B6C28620E76F91D11F7DF510A642A06C52CEC') # Michał Kępień
source=("https://ftp.isc.org/isc/bind9/${_pkgver}/bind-${_pkgver}.tar.xz"{,.asc}
'tmpfiles.conf'
'sysusers.conf'
'named.conf'
'named.service'
'localhost.zone'
'localhost.ip6.zone'
'127.0.0.zone')
sha256sums=('75ffee52731e9604c849b658df29e927f1c4f01d5a71ea3ebcbeb63702cb6651'
'SKIP'
'f0423c4ee8495da487e07e9144bec1d25f46a0cd2dfa7cfd7a761ef15bfefc98'
'7c0acefcfcc3ae093550caed7ec90fe84bec8f7477459ffa7e71dda76bcbdb2c'
'e08a01d41b18bdb771d534daca99642314939aafdb088e5cfcf0ef2d33f8e7eb'
'3f0f8db0a1deae270dd166b4750be7c1041b4b44891176f35a8df7dd55d24d34'
'0011708e516128647dd25b59b6ebc465f36e85bbe0a8fbdc3eb04b7f28c2197f'
'c06fc270e32a843c8b6d86335a2ec607d405dfba6875de8d8a9abde39a9e2c17'
'b88fd2b99e7d42d414b329b814b9ff3304fa0ef9c67df81bde235bbfa0f3a3b8')
prepare() {
cd bind-$_pkgver
# apply patch from the source array (should be a pacman feature)
local src
for src in "${source[@]}"; do
src="${src%%::*}"
src="${src##*/}"
[[ $src = *.patch ]] || continue
echo "Applying patch $src..."
patch -Np1 < "../$src"
done
}
build() {
cd bind-$_pkgver
export CFLAGS
# support to chase DNSSEC signature chains
CFLAGS+=' -DDIG_SIGCHASE'
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--sbindir=/usr/bin \
--localstatedir=/var \
--disable-static \
--enable-fixed-rrset \
--enable-full-report \
--with-maxminddb \
--with-openssl \
--with-libidn2 \
--with-json-c \
--with-libxml2 \
--with-lmdb
make
}
# No test suite because it requires root.
# See: https://gitlab.isc.org/isc-projects/bind9/-/blob/main/README.md#testing.
package() {
cd "bind-$_pkgver"
install -dm755 "$pkgdir/usr/share/licenses/$pkgname/"
install -Dm644 LICENSE COPYRIGHT "$pkgdir/usr/share/licenses/$pkgname/"
make DESTDIR="$pkgdir" install
cd "$srcdir"
install -D -m644 tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
install -D -m644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/$pkgname.conf"
install -D -m644 named.service "$pkgdir/usr/lib/systemd/system/named.service"
install -D -m640 -o 0 -g 40 named.conf "$pkgdir/etc/named.conf"
install -d -m770 -o 0 -g 40 "$pkgdir/var/named"
install -m640 -o 0 -g 40 localhost.zone "$pkgdir/var/named"
install -m640 -o 0 -g 40 localhost.ip6.zone "$pkgdir/var/named"
install -m640 -o 0 -g 40 127.0.0.zone "$pkgdir/var/named"
}
# vim:set ts=2 sw=2 et: