commit: 222f1517ae72557e6b17e573276c5080acd84d35 Author: Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr> AuthorDate: Mon Mar 3 15:06:23 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon Mar 24 06:09:25 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=222f1517
net-dns/knot: add 3.4.5, clean IUSE iuse: rm modules without rdep, now built unconditionally each module still needs to be enabled in the config files rework both options for dnstap (one for kdig/utils, one for knotd/daemon) rdep: fix alphabetic order in rdep libknot links against ngtpc2 even w/o daemon/utils (COMMON->RDEP) Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr> Closes: https://github.com/gentoo/gentoo/pull/40874 Signed-off-by: Sam James <sam <AT> gentoo.org> net-dns/knot/Manifest | 1 + net-dns/knot/knot-3.4.5.ebuild | 194 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 195 insertions(+) diff --git a/net-dns/knot/Manifest b/net-dns/knot/Manifest index 97ab67ba7cd1..7d0c6566d9df 100644 --- a/net-dns/knot/Manifest +++ b/net-dns/knot/Manifest @@ -1 +1,2 @@ DIST knot-3.4.4.tar.xz 1641460 BLAKE2B d477a4a368b0c6d6c1003a52041403d17bab4e3ecb6e532130b633894d4ee88711038b94e1d4cf12406eb281b800d701c00e40414d458b7bdefb1d632a779821 SHA512 bf8e80d430336934083c1f7c304306de78b254fba5d3b9dd8b44065a0f1527cd78b74d498d994822ed2d364b66091ad967d3cd991bde380fbba67ea34a1ee33f +DIST knot-3.4.5.tar.xz 1610204 BLAKE2B 50f7258502f58a7a02500de7b1f195c99b380b7ae38b97aed62228fbdd8897c407fef1a59f5015cf9a00982305ddf0094065495a16ae4ef375472537e6a9e4c2 SHA512 62e7023fa2a9b2323104816dbc2adeec513b70c1891f5f87ab4e951d0db18717f1089bab8b5d2ada008fcf2efd9f0547881084a2e6121891e15cbe9992528c9e diff --git a/net-dns/knot/knot-3.4.5.ebuild b/net-dns/knot/knot-3.4.5.ebuild new file mode 100644 index 000000000000..14df7d46f1ff --- /dev/null +++ b/net-dns/knot/knot-3.4.5.ebuild @@ -0,0 +1,194 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) +inherit python-single-r1 flag-o-matic systemd tmpfiles + +# 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" +S="${WORKDIR}/${P/_/-}" + +LICENSE="GPL-3+" +SLOT="0/${KNOT_SUBSLOT}" +KEYWORDS="~amd64 ~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 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? ( + $(python_gen_cond_dep ' + dev-python/prometheus-client[${PYTHON_USEDEP}] + dev-python/psutil[${PYTHON_USEDEP}] + ') + ) + python? ( ${PYTHON_DEPS} ) + quic? ( net-libs/ngtcp2[gnutls] ) + 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? ( dev-python/sphinx ) + python? ( ${PYTHON_DEPS} ) + test? ( + pkcs11? ( dev-libs/softhsm ) + ) +" + +# 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 ) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +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() { + use doc && local HTML_DOCS=( doc/_build/html/{*.html,*.js,_sources,_static} ) + + if use python; then + python_domodule python/libknot/libknot + newdoc python/libknot/README.md README.python.md + fi + + if use prometheus; then + python_domodule python/knot_exporter/knot_exporter + python_scriptinto /usr/sbin + 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 +}
