commit:     ccc78c84e84938cb3660683aadd0412c53596e9f
Author:     Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr>
AuthorDate: Fri Nov 28 09:58:27 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Nov 29 07:29:27 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ccc78c84

net-dns/knot: add 3.5.2

remove duplicated condition for handling dbus
fix style
the use of protoc instead of protoc-c is now available

Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr>
Part-of: https://github.com/gentoo/gentoo/pull/44813
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-dns/knot/Manifest          |   3 +
 net-dns/knot/knot-3.5.2.ebuild | 238 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 241 insertions(+)

diff --git a/net-dns/knot/Manifest b/net-dns/knot/Manifest
index 2bcb44fe1bbf..202c4b67f381 100644
--- a/net-dns/knot/Manifest
+++ b/net-dns/knot/Manifest
@@ -10,3 +10,6 @@ DIST knot-3.5.0.tar.xz.asc 833 BLAKE2B 
e183ed714215df6e18bdfe839a085e7be5a7a4110
 DIST knot-3.5.1-manpages.tar.xz 40092 BLAKE2B 
fe925acfa6e7a6e8e990e99beb6544c6aae3d0e8e0e72bad54a9b25b3ebd565630436244c3f6564e3f7723a7992f4886e5e69cbd6f3ac414134ec321c236bea3
 SHA512 
a7fe27becc8f19292eaf9ecf2f5aba79ddc5c1ea5defd1b7450f3a3aad51d478d27a3b8d9cca2701fda975e7441944a4d9d6d6092e506a2aaf59411896780061
 DIST knot-3.5.1.tar.xz 1676008 BLAKE2B 
aa6b9d173c7fc0ff7011691ac6178a8b24ae7482c9ccc87ee4b7cc1932d5fa678a367462098f2c2e28865aa5b37bc5ba1b787d8fc4d222cfd1aeb1da1452ebc8
 SHA512 
f4f42425fe20a0632489a6de642993515a7914b0392553dc8842e3ec2a4ab0c515dd3e11799c90a7f36e79d83fa92998aa6f03a5c6c527d1520c2cb6388fc9ba
 DIST knot-3.5.1.tar.xz.asc 833 BLAKE2B 
02f6fe62cdff94c8f274a203ff3873b0d10abc52c8fb2817325ebfcf56e16b048db46c63874894e2922db3a7db3ecfb25155f54c0958d2095054aff50aff555f
 SHA512 
740528e26e999bf4c12cc2995838f8d1bf0aaac68d3bc823f45090ed5f498bb3cb294b4c07fa0056dd8b7033a7502f800cbdf608276fbf40c79d566035aca8d3
+DIST knot-3.5.2-manpages.tar.xz 40252 BLAKE2B 
5da3035fbded6d05fe7d25d80329e83e9375dad9d4da7e1d1c50873e2f704bea76839808a10e6e7b8d45f267dd5366410b1cb1f1616f95a404897ea59652bb73
 SHA512 
62e621b8cc06ad6edc8858c74d7ea4bfb6fb45c01c7f17765176bd9f7240a4724c1833a6a18fe10767ca87688bdcf0ba67c66e092bd0623278ccd53a4b1c6c89
+DIST knot-3.5.2.tar.xz 1710680 BLAKE2B 
215b09a91f2ba21f23f996df2a1e6ea187f362bfb6dc80d5cd1b45cd84ebf4ccb77f90ff567e91dab36f02aae1a776efcc0aea2a54b830eb85039d0b39ff803f
 SHA512 
4dd8e42088f792459859da807427024ded926c2a8fb5b9fd4596b631a184269e3d84f0cd4be9192f2546977c598c418f8d44cabccbc393f9f7cf2f0dd5adc595
+DIST knot-3.5.2.tar.xz.asc 833 BLAKE2B 
e5ba45566c403b2a7b477fdf940ce7d13d5ab8901f0e25b3232eaa3bd5a85114679750a1164bd304f872336b152210923c65e7577a7b4dd485250c89f97310ba
 SHA512 
5f6ee7fedc0d5b904572d2f6d47858065cdc4efa7217b4e9dcbb38ae63a1533646ba2b042bb0c1fe533a3caf6ba41c81010616393d2a0adcea77712608931b38

diff --git a/net-dns/knot/knot-3.5.2.ebuild b/net-dns/knot/knot-3.5.2.ebuild
new file mode 100644
index 000000000000..4da2752199b5
--- /dev/null
+++ b/net-dns/knot/knot-3.5.2.ebuild
@@ -0,0 +1,238 @@
+# 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 eapi9-ver python-r1 systemd tmpfiles verify-sig
+
+# subslot: libknot major.libdnssec major.libzscanner major
+KNOT_SUBSLOT="16.10.5"
+
+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-2+"
+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 
redis 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:= )
+               redis? ( >=dev-libs/hiredis-1.1.0:= )
+               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
+       dnstap? ( dev-libs/protobuf[protoc(+)] )
+       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 redis redis $(usex daemon client))
+               $(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 systemd; then
+               my_conf+=( --enable-dbus=systemd )
+       else
+               my_conf+=( --enable-dbus=no )
+       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
+               rm -r "${ED}"/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
+
+       if has_version net-dns/redis-knot || use redis; then
+               ewarn "To use redis, 
${EPREFIX}/usr/$(get_libdir)/knot/redis/knot.so from net-dns/redis-knot"
+               ewarn "must be loaded by an instance of Redis."
+       fi
+
+       if ver_replacing -lt 3.5; then
+               elog "See documentation for migration:"
+               elog 
"https://www.knot-dns.cz/docs/3.5/html/migration.html#upgrade-3-4-x-to-3-5-x";
+       fi
+}

Reply via email to