commit: ae1235c786329e12b020c65a921d2d019f100e44 Author: Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr> AuthorDate: Wed Jul 30 04:37:23 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Aug 26 15:10:43 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ae1235c7
net-dns/knot: Bump to 3.4.8 Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr> Part-of: https://github.com/gentoo/gentoo/pull/43241 Signed-off-by: Sam James <sam <AT> gentoo.org> net-dns/knot/Manifest | 3 + net-dns/knot/knot-3.4.8.ebuild | 230 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 233 insertions(+) diff --git a/net-dns/knot/Manifest b/net-dns/knot/Manifest index 9f4b390bc2b8..bdead198cee0 100644 --- a/net-dns/knot/Manifest +++ b/net-dns/knot/Manifest @@ -1,3 +1,6 @@ DIST knot-3.4.7-manpages.tar.xz 37584 BLAKE2B aa4347e1b3aa90985aaeb19235b86cc693dbf7775b63e40a94c952e3ea02f4b2605802cf50472468c268e4c8b9a0c247b621624a593b73f2bb7b09d98197752d SHA512 97658142ce885a8358f2efcab1d836543f255e939e6eeff16f135f6aed666ff0f30ad3184b86d86dc4f3078060104796a806ba5d8ba6a4af24e76d3ae8e99998 DIST knot-3.4.7.tar.xz 1653576 BLAKE2B 31e0d939847a1fb7538eed371b4e9a4d8dcfb45b9df996fa13b083a6ec32550fc5d90fc528eb43b20a4effbed06353abd0238da3a04fdf48f5139a22d1eced35 SHA512 edc0ac8f6bcb9a2bb0221fbc438f8b0b048bd592bea0a486f2cd8bedfd52509e3692a2e29daa39fdd4c11f7d1d83aa0b0d7394b94c8e15d570535cdc2b3a2e13 DIST knot-3.4.7.tar.xz.asc 833 BLAKE2B 2b0a073f3c5ed1ae4f7fb3078361ee39c9427650c016fa85321eb1030a4a4932d44a8c86fae83effe75aeaca1ab33f496db3dfd74881144df6d9dc4660bf0414 SHA512 56f15712467b06440daf5ab8e69d69671345959a0c91d799b2c43e6eb7f14f5be543abd11ff0d99edb45bb4b397fc0ee9f02282669832778cf6e4b2d56fe550a +DIST knot-3.4.8-manpages.tar.xz 37756 BLAKE2B 19eff0aa04988619f3950c3d983992558b25a7c24cc690b5c85b44a5839004e4b50db17008eb183e3bd5012856d6b9aa9dbad70ec57a707ba3333acdbebd00d3 SHA512 3fd1826a10cdb94690c1e457e6b12abc47b8338e0873fd6ca1e3d15f1e83e544da1db98e2d0ddb90e190d8e0ff878980a0da23537ff1af54c52cdbd2bdbd4a06 +DIST knot-3.4.8.tar.xz 1656224 BLAKE2B 493fb10965fc8ec037b2e89652f18b35e2f5f655423663fd88aa87385ff8d1333203914d64b87b2ad21f6ccee61e8c50a886b6b4bd04ad8597ed734002919d3e SHA512 62fb62e07c751bbc63759c0c74e3967b6a245bb0c76770e109b2c1bacf1580be98315ce3ecac8adfbdd37beab7b300a06078c44e57a1189def9efbc48b8d2c3e +DIST knot-3.4.8.tar.xz.asc 833 BLAKE2B 0bdcfd3a9ada6c9b09a418bd1686f30e08aadefcbafab786c3073f855c2f958ed3b7b563a7f6d1561d89735787b4e331fa4b37b93a2edc89a99c476cde628c6b SHA512 55900f6cd9963299066597da6eab2be61a9a8fb7acd562b24a6883466e132372b99fc9e9643aef39566d2eff5fec27850fed0d8b97ca8ea417626ef5c90481e1 diff --git a/net-dns/knot/knot-3.4.8.ebuild b/net-dns/knot/knot-3.4.8.ebuild new file mode 100644 index 000000000000..5c7200e2ba50 --- /dev/null +++ b/net-dns/knot/knot-3.4.8.ebuild @@ -0,0 +1,230 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +inherit autotools python-r1 flag-o-matic systemd tmpfiles verify-sig + +# subslot: libknot major.libdnssec major.libzscanner major +KNOT_SUBSLOT="15.9.4" + +DESCRIPTION="High-performance authoritative-only DNS server" +HOMEPAGE="https://www.knot-dns.cz/ https://gitlab.nic.cz/knot/knot-dns" +SRC_URI=" + https://knot-dns.nic.cz/release/${P}.tar.xz + !doc? ( https://raw.githubusercontent.com/PPN-SD/gentoo-manpages/refs/tags/${P}/${P}-manpages.tar.xz ) + verify-sig? ( https://knot-dns.nic.cz/release/${P}.tar.xz.asc ) +" + +LICENSE="GPL-3+" +SLOT="0/${KNOT_SUBSLOT}" +KEYWORDS="~amd64 ~arm64 ~riscv ~x86" + +# Modules without dep. Built unconditionally. +KNOT_MODULES=( + "authsignal" + "cookies" + "dnsproxy" + "noudp" + "onlinesign" + "queryacl" + "rrl" + "stats" + "synthrecord" + "whoami" +) + +KNOT_MODULES_OPT=( + "dnstap" + "geoip" +) + +IUSE="caps +daemon dbus doc doh +fastparser +idn pkcs11 prometheus python quic selinux systemd test +utils xdp ${KNOT_MODULES_OPT[@]}" +RESTRICT="!test? ( test )" +REQUIRED_USE=" + prometheus? ( python ) + python? ( ${PYTHON_REQUIRED_USE} ) +" + +COMMON_DEPEND=" + dev-libs/libedit + dnstap? ( + dev-libs/fstrm + dev-libs/protobuf-c:= + ) +" +RDEPEND=" + dev-db/lmdb:= + net-libs/gnutls:=[pkcs11?] + daemon? ( + ${COMMON_DEPEND} + acct-group/knot + acct-user/knot + dev-libs/userspace-rcu:= + caps? ( sys-libs/libcap-ng ) + dbus? ( sys-apps/dbus ) + geoip? ( dev-libs/libmaxminddb:= ) + systemd? ( sys-apps/systemd:= ) + ) + prometheus? ( + dev-python/prometheus-client[${PYTHON_USEDEP}] + dev-python/psutil[${PYTHON_USEDEP}] + ) + python? ( ${PYTHON_DEPS} ) + quic? ( net-libs/ngtcp2[gnutls] ) + selinux? ( sec-policy/selinux-knot ) + utils? ( + ${COMMON_DEPEND} + doh? ( net-libs/nghttp2:= ) + idn? ( net-dns/libidn2:= ) + ) + xdp? ( + >=dev-libs/libbpf-1.0:= + net-libs/xdp-tools + utils? ( net-libs/libmnl:= ) + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( + $(python_gen_any_dep ' + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-panels[${PYTHON_USEDEP}] + ') + ) + python? ( ${PYTHON_DEPS} ) + test? ( + pkcs11? ( dev-libs/softhsm ) + ) + verify-sig? ( sec-keys/openpgp-keys-knot ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/${PN}.asc + +# Used to check cpuset_t in sched.h with NetBSD. +# False positive because linux have sched.h too but with cpu_set_t +QA_CONFIG_IMPL_DECL_SKIP=( cpuset_create cpuset_destroy ) + +python_check_deps() { + use doc || return 0 + python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" \ + "dev-python/sphinx-panels[${PYTHON_USEDEP}]" +} + +pkg_setup() { + if use doc || use python; then + python_setup + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + default + # avoid the old ltmain.sh modified by upstream which causes a linking issue + # reproduced with test and musl + eautoreconf +} + +src_configure() { + local u + local my_conf=( + --with-storage="${EPREFIX}/var/lib/${PN}" + --with-rundir="${EPREFIX}/var/run/${PN}" + $(use_enable caps cap_ng) + $(use_enable daemon) + # enable-dnstap defines support for kdig only + $(use_enable dnstap dnstap $(usex utils)) + $(use_enable doc documentation) + $(use_with doh libnghttp2) + $(use_enable fastparser) + $(use_enable geoip maxminddb) + $(use_with idn libidn) + $(use_enable quic) + $(use_enable systemd) + $(use_enable utils utilities) + $(use_enable xdp) + ) + # modules are only used by daemon + # module-dnstap defines support for knotd only + if use daemon; then + for u in "${KNOT_MODULES[@]}"; do + my_conf+=("--with-module-${u}") + done + for u in "${KNOT_MODULES_OPT[@]#+}"; do + my_conf+=("$(use_with ${u} module-${u})") + done + else + my_conf+=("--disable-modules") + fi + + if use !daemon; then + my_conf+=("--enable-dbus=no") + elif use dbus; then + my_conf+=("--enable-dbus=libdbus") + elif use !dbus && use !systemd; then + my_conf+=("--enable-dbus=no") + elif use !dbus && use systemd; then + my_conf+=("--enable-dbus=systemd") + fi + + if use riscv; then + append-libs -latomic + fi + + econf "${my_conf[@]}" +} + +src_compile() { + default + + use doc && emake -C doc html +} + +src_install() { + if use doc; then + local HTML_DOCS=( doc/_build/html/{*.html,*.js,_sources,_static} ) + else + doman "${WORKDIR}"/man/* + fi + + if use python; then + python_foreach_impl python_domodule python/libknot/libknot + newdoc python/libknot/README.md README.python.md + fi + + if use prometheus; then + python_foreach_impl python_domodule python/knot_exporter/knot_exporter + python_scriptinto /usr/sbin + python_foreach_impl python_newscript python/knot_exporter/knot_exporter/knot_exporter.py knot-exporter + newdoc python/knot_exporter/README.md README.knot_exporter.md + fi + + default + + if use daemon; then + rmdir "${D}/var/run/${PN}" "${D}/var/run/" || die + + newinitd "${FILESDIR}"/knot-3.init knot + newconfd "${FILESDIR}"/knot.confd knot + + newtmpfiles "${FILESDIR}"/${PN}.tmpfile ${PN}.conf + + use systemd && systemd_newunit distro/common/knot.service knot.service + fi + + find "${D}" -name '*.la' -delete || die + + keepdir /var/lib/knot +} + +pkg_postinst() { + use daemon && tmpfiles_process ${PN}.conf +}
