net-dns/knot: add 3.4.6

Three changes from ebuild 3.4.5 :
* add verify-sig
* add sphinx-panels for doc (unkeyword for riscv)
* add manpages from own-repo and disable doc by default

Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr>
Part-of: https://github.com/gentoo/gentoo/pull/41532
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Nicolas PARLANT 2025-04-10 07:35:00 +00:00 committed by Sam James
parent 248b884e52
commit ff234d1477
No known key found for this signature in database
GPG Key ID: 738409F520DF9190
2 changed files with 217 additions and 0 deletions

View File

@ -1,2 +1,5 @@
DIST knot-3.4.4.tar.xz 1641460 BLAKE2B d477a4a368b0c6d6c1003a52041403d17bab4e3ecb6e532130b633894d4ee88711038b94e1d4cf12406eb281b800d701c00e40414d458b7bdefb1d632a779821 SHA512 bf8e80d430336934083c1f7c304306de78b254fba5d3b9dd8b44065a0f1527cd78b74d498d994822ed2d364b66091ad967d3cd991bde380fbba67ea34a1ee33f
DIST knot-3.4.5.tar.xz 1610204 BLAKE2B 50f7258502f58a7a02500de7b1f195c99b380b7ae38b97aed62228fbdd8897c407fef1a59f5015cf9a00982305ddf0094065495a16ae4ef375472537e6a9e4c2 SHA512 62e7023fa2a9b2323104816dbc2adeec513b70c1891f5f87ab4e951d0db18717f1089bab8b5d2ada008fcf2efd9f0547881084a2e6121891e15cbe9992528c9e
DIST knot-3.4.6-manpages.tar.xz 37324 BLAKE2B 1e7418a8cb4b0b4ec7ddbea71aa83458a7f0602b2210c1120b8ab94a34ce46e44e63f80e426330d711c6f897d2ffbb03e2892fb098c33d7ad5a0bebccf347283 SHA512 3edaa8b130fb292c7f267a733f8be3ae05abfc285fde5279a0ce630a2531117d84ae6bc08ce4f60713388efe4172c875f14952a536148fc7d1ccf577ae0226ad
DIST knot-3.4.6.tar.xz 1610708 BLAKE2B 19054f9ff0d5fc05a1d8160a99b553a047f14e4825094a6009e76a5c915b9511458ae517237bf6559bfea02f74f67f2993e2a495208dfa1e36d7746664ad7d76 SHA512 30e6a843c5b4b89fd51f062f138e031a96cbaf86db5a559ab10dc98d3705086bd987bf99deb5f2c077f7201af8f05311ab8b579bfafa7d285ca4c3e78de8c096
DIST knot-3.4.6.tar.xz.asc 833 BLAKE2B 49c3aa776e8f185c0553bd878c00aedaba95150bb3e47efa1e9a686873c943d67b7d526828748f25f2841a02ea6f410772e2c2eb7988dfbd8ed79e8cf30f7e32 SHA512 400512cfddadd93e4b536d2421126ee5fce19fa03e0ad6cee2407b1f67e242b9d65ac4ea3f527c17a7100cb63b583cf8a4ca617f6fe119cd4f15a001a0c80abf

View File

@ -0,0 +1,214 @@
# 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 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 ~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
dev-python/sphinx-panels
)
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 )
pkg_setup() {
use python && python-single-r1_pkg_setup
}
src_unpack() {
if use verify-sig; then
verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.asc}
fi
default
}
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_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
}