# Contributor: Jakub Jirutka # Contributor: tcely # Maintainer: Jakub Jirutka pkgname=knot-resolver pkgver=4.3.0 pkgrel=2 pkgdesc="Minimalistic caching DNS resolver implementation" url="https://www.knot-resolver.cz/" arch="all !s390x" # limited by luajit license="GPL-3.0" pkgusers="kresd" pkggroups="kresd" depends="dns-root-hints dnssec-root lua5.1-sec lua5.1-socket" _depends_dnstap_dev="fstrm-dev protobuf-dev protobuf-c-dev" _depends_http="$pkgname lua5.1-http" depends_dev="knot-dev>=2.8.0 libedit-dev libuv-dev>=1.7 lmdb-dev luajit-dev>=2.0 $_depends_dnstap_dev" depends_static="$pkgname-dev" makedepends="$depends_dev bash cmake gnutls-dev luacheck meson>=0.46 ninja pkgconf py3-flake8" checkdepends="cmocka-dev" install="$pkgname.pre-install" subpackages=" $pkgname-mod-http:http:noarch $pkgname-mod-dnstap:dnstap $pkgname-libs-static $pkgname-dev $pkgname-dbg $pkgname-doc $pkgname-openrc " source="https://secure.nic.cz/files/$pkgname/$pkgname-$pkgver.tar.xz $pkgname.logrotate $pkgname.confd $pkgname.initd " builddir="$srcdir/$pkgname-$pkgver" # secfixes: # 4.3.0-r0: # - CVE-2019-19331 # 4.1.0-r0: # - CVE-2019-10190 # - CVE-2019-10191 # 2.3.0-r0: # - CVE-2018-1110 build() { # strict-aliasing breaks stats module - variable "sa" in stats.c:495 is 0x0. # (https://gitlab.labs.nic.cz/knot/knot-resolver/blob/v4.2.2/modules/stats/stats.c#L495) export CFLAGS="$CFLAGS -fno-strict-aliasing" meson build \ --prefix=/usr \ --buildtype=plain \ --default-library=both \ -Dclient=enabled \ -Dgroup="$pkggroups" \ -Dinstall_kresd_conf=enabled \ -Dunit_tests=enabled \ -Duser="$pkgusers" \ -Droot_hints=/usr/share/dns-root-hints/named.root \ -Dmanaged_ta=disabled \ -Dkeyfile_default=/usr/share/dnssec-root/trusted-key.key ninja -C build } check() { meson test -C build } package() { DESTDIR="$pkgdir" ninja -C build install cd "$pkgdir" install -m 755 -D "$srcdir"/$pkgname.initd ./etc/init.d/$pkgname install -m 644 -D "$srcdir"/$pkgname.confd ./etc/conf.d/$pkgname install -m 644 -D "$srcdir"/$pkgname.logrotate ./etc/logrotate.d/$pkgname } http() { pkgdesc="Knot Resolver - HTTP/2 services" depends="$_depends_http" local moddir="usr/lib/$pkgname/kres_modules" mkdir -p "$subpkgdir"/$moddir mv "$pkgdir"/$moddir/http* "$subpkgdir"/$moddir/ } dnstap() { pkgdesc="Knot Resolver - dnstap logging" depends="$_depends_dnstap" local moddir="usr/lib/$pkgname/kres_modules" mkdir -p "$subpkgdir"/$moddir mv "$pkgdir"/$moddir/dnstap.so "$subpkgdir"/$moddir/ } gpg_signature_extensions="asc" gpgfingerprints=" good:BE26 EBB9 CBE0 59B3 910C A35B CE8D D6A1 A50A 21E4 good:4A8B A48C 2AED 933B D495 C509 A1FB A5F7 EF8C 4869 B600 6460 B60A 80E7 8206 2449 E747 DF1F 9575 A3AA " sha512sums="cb59b8bd3d12feeba0fbf45e021c8cd7736393377aa6c71d2d365d0ebb58122c440df3187ed4d3396dacfa5aba4bb752826b9d9da02aea4b626fcba3767c7c47 knot-resolver-4.3.0.tar.xz 688aeacb0c1f21c7e532533b402e67068897217713fb668636df7533000b493981ddfa0497f8dba7da7c804ee4ab8d587a4f52155b4e2bf1f4025d2588d314bb knot-resolver.logrotate 9a4af28918d85fb973739cc856ac32c07746e4b1b2daee343905d5956bfd6cc45bf5cba87efa56625a9b38aced43aafb793ab37f9a2c06c95a899e47c84ee5a2 knot-resolver.confd 5891eb694f49ff221233afb0e4d7dcc5879783c3e365732189b623886b3a8351af022d80775bddf25e39f8b930ce9fccaed87384ee793e2746518ec5f3b78324 knot-resolver.initd"