diff options
Diffstat (limited to 'community/pdns-recursor/APKBUILD')
-rw-r--r-- | community/pdns-recursor/APKBUILD | 118 |
1 files changed, 101 insertions, 17 deletions
diff --git a/community/pdns-recursor/APKBUILD b/community/pdns-recursor/APKBUILD index c0c1bf29201..dde680c9554 100644 --- a/community/pdns-recursor/APKBUILD +++ b/community/pdns-recursor/APKBUILD @@ -1,26 +1,53 @@ # Maintainer: Peter van Dijk <peter.van.dijk@powerdns.com> -_pkgname=pdns-recursor # upstream package name pkgname=pdns-recursor -pkgver=4.6.2 -pkgrel=1 +pkgver=5.0.3 +pkgrel=2 pkgdesc="PowerDNS Recursive Server" url="https://www.powerdns.com/" arch="all !s390x" # broken context license="GPL-2.0-only WITH OpenSSL-Exception" -makedepends="autoconf automake libtool boost-dev openssl1.1-compat-dev libsodium-dev lua5.3-dev - net-snmp-dev curl curl-dev" -install="$pkgname.pre-install" -subpackages="$pkgname-doc $pkgname-openrc" +depends="$pkgname-common" +makedepends="autoconf + automake + boost-dev + cargo + curl + curl-dev + libtool + libsodium-dev + lua5.4-dev + net-snmp-dev + openssl-dev>3 + " +install="$pkgname-common.pre-install" +subpackages="$pkgname-common::noarch $pkgname-doc $pkgname-openrc" pkgusers="recursor" pkggroups="recursor" -source="https://downloads.powerdns.com/releases/$_pkgname-$pkgver.tar.bz2 - $_pkgname.initd +source="https://downloads.powerdns.com/releases/pdns-recursor-${pkgver//_/-}.tar.bz2 + $pkgname.initd recursor.conf " +builddir="$srcdir/$pkgname-${pkgver//_/-}" -[ "$CARCH" = "riscv64" ] && options="$options textrels" +case "$CARCH" in +loongarch64|ppc64le|riscv64) + _luajit=OFF + ;; +*) + makedepends="$makedepends luajit-dev" + subpackages="$subpackages $pkgname-luajit" + _luajit=ON + ;; +esac # secfixes: +# 5.0.2-r0: +# - CVE-2023-50387 +# - CVE-2023-50868 +# 4.8.1-r0: +# - CVE-2023-22617 +# 4.7.2-r0: +# - CVE-2022-37428 # 4.6.1-r0: # - CVE-2022-27227 # 4.3.5-r0: @@ -47,7 +74,25 @@ source="https://downloads.powerdns.com/releases/$_pkgname-$pkgver.tar.bz2 # - CVE-2017-15093 # - CVE-2017-15094 -build() { +prepare() { + default_prepare + if [ "$_luajit" = "ON" ]; then + cp -a "$builddir" "$builddir-jit" + fi +} + +_configure() { + local arg="$1" + local lua + + if [ "$arg" = '-jit' ]; then + lua="luajit" + else + lua="lua5.4" + fi + + cd "$builddir$arg" + ./configure --prefix=/usr \ --sysconfdir=/etc/pdns \ --mandir=/usr/share/man \ @@ -55,26 +100,65 @@ build() { --localstatedir=/var \ --libdir=/usr/lib/pdns \ --enable-dns-over-tls \ - --enable-unit-tests + --enable-unit-tests \ + --with-lua=$lua \ + --with-libcrypto=/usr +} + +build() { + _configure + make + + [ -d "$builddir-jit" ] || return 0 + + _configure -jit make } +_cat_found_file() { + local _rc="$?" + find . -name "$1" -type f -print -exec cat {} \; + return "$_rc" +} + check() { - make check + make check || _cat_found_file 'test-suite.log' + + if cd "$builddir-jit"; then + make check || _cat_found_file 'test-suite.log' + fi } package() { make DESTDIR="$pkgdir" install - mv "$pkgdir"/etc/pdns/recursor.conf-dist "$pkgdir"/etc/pdns/recursor.conf - cat "$srcdir/recursor.conf" >> "$pkgdir"/etc/pdns/recursor.conf - install -m755 -D "$srcdir/$_pkgname.initd" \ + install -m755 -D "$srcdir/$pkgname.initd" \ "$pkgdir/etc/init.d/$pkgname" +} + +common() { + pkgdesc="$pkgname common files" + depends="" + + mkdir -p "$subpkgdir/etc/pdns" + + mv "$pkgdir"/etc/pdns/* "$subpkgdir"/etc/pdns/ + mv "$subpkgdir"/etc/pdns/recursor.conf-dist "$subpkgdir"/etc/pdns/recursor.conf + cat "$srcdir/recursor.conf" >> "$subpkgdir"/etc/pdns/recursor.conf +} + +luajit() { + pkgdesc="$pkgname with luajit bindings" + depends="$pkgname-common" + provides="$pkgname=$pkgver-r$pkgrel" + cd "$builddir-jit" + make DESTDIR="$subpkgdir" install-exec + rm -rf "$subpkgdir"/etc/pdns } sha512sums=" -20779a065720162f0a6223a4d92deeef7911892bb8aa1929f9c6a8a6ccd2f8756e7bd35c877dbf945bb7627a2a7d40626d02f0008c2e8a602b424d36c110fddc pdns-recursor-4.6.2.tar.bz2 +9e7ece25e05729e4e46023c5b7e524f46e9806cd6546bcdde9c01c038f6d53380184423e3f4c9239eaba94157d5fc53c3376225e75b4136d508dafdc1ad4e04b pdns-recursor-5.0.3.tar.bz2 71f7be51d3a9a78f22f3946e95534d4f5b37b3bcbd1891ad3a17095be545fdb0eaf239d58c9f40ccc642542150c0b35ed025bf69acabfa779c0ab10c67a5e796 pdns-recursor.initd abda278d29b21e9635fb154c8685e5d346f47889498f075a8dd2e486f8ea4dcc2ccd20f4245783e4d55534fed88c49825b22fd3d1c55d8645522ce45cc53d661 recursor.conf " |