summaryrefslogtreecommitdiff
path: root/net-dns/knot
diff options
context:
space:
mode:
Diffstat (limited to 'net-dns/knot')
-rw-r--r--net-dns/knot/Manifest6
-rw-r--r--net-dns/knot/files/knot-1.init42
-rw-r--r--net-dns/knot/files/knot.tmpfile2
-rw-r--r--net-dns/knot/knot-3.4.2.ebuild166
-rw-r--r--net-dns/knot/metadata.xml9
5 files changed, 224 insertions, 1 deletions
diff --git a/net-dns/knot/Manifest b/net-dns/knot/Manifest
index e95a261143ed..452acf718334 100644
--- a/net-dns/knot/Manifest
+++ b/net-dns/knot/Manifest
@@ -1,7 +1,11 @@
+AUX knot-1.init 891 BLAKE2B 2301f632deba8af7c4f4107cb44ff611eff0b1ce2e5c60c9e3c0670fc7b07a8c93d64b4c2933035df2bc06543a08560d7b687a3925b57efc9251ae0ade3418c3 SHA512 aae41f5443c3f19350cd6869ed5355d194fe99a0110e7f565e4d136c0e258f01e85c374bbb02d4714f21ca8681e6c0858c94cad4c8679f33f567fbb7b9b3452c
AUX knot-1.service 337 BLAKE2B a6645b2ab92612f3c6640f4e9601cefe087a519d8a40b222e05dbd44c8b8c5c87a01d500d5ac328fdee1cae3f9dd126448a8b82b979e13a4ff5285fa48b983d5 SHA512 58c4186e57ebd00b86dae34d5d208ed8801c0376da40cccb23b3d4542a7ee04a1003a12a4b89347b76a384b50eae4a61f96164bf22ec987ce05b1c65691659e7
AUX knot.init 861 BLAKE2B 30ffe287f4f83058407ceab00b2113dade3b60b38d76c86f156cc31c33cc4f2ec8cf7f22172823755b71385ca18cc1044605b5479c9de05284f911d500b5dc40 SHA512 e5faa96cbee618e9042bdfd0628f06c4bc4d23c7295521771e16f6eae715835a240799e8425317b03b1ea162966defb5d6b6592139cb1d9d61b47a24961ec9b9
+AUX knot.tmpfile 58 BLAKE2B a107ca27b8d47253409c319d0e69ab151237844d10840155e6ceeb37b8c63268de52c161f63ca27b6c3ec4092c7759fc46d325d4cd79063caa33ef82e23e119e SHA512 db13a4108ce820032a72aa788e6cf79c6bb0870ec457f454dea9102f07255dd5c1543723436665da92236c093ee97161f72298131f80dff09d5faf6aba24bde8
DIST knot-3.2.2.tar.xz 1632748 BLAKE2B 185567dc883f946570fe60cd7d01d96162c5f13ac84330e5551c293b5011c162401fd25ddbdb43bf9242e13c3cdc8225be107dc579619fe54c05335601cd27ae SHA512 29fadb96c1ea525c6183f9e7552f4ad370579b67d74aec1910a92d561cc2c5656fd7876015f29161d279a07c23643f6584308bf9fa0e74d351b17af54e5e9a7f
DIST knot-3.2.9.tar.xz 1642600 BLAKE2B 2c81b2afa96c6077778c3458b2ddeeb8b47ea99607ba755a904278f9755a32171738418ea442b1e6b4afcebe0db2c86e68845d38f8e78342b8354411d1e34af8 SHA512 baf8da222e38198c85fa62e45e71b29ddac7c90433b811710ace1e0395e6e7b5d63547ce8f3a62792ee11259ec2e36d6ddd8fff999416f9171671444a95086cf
+DIST knot-3.4.2.tar.xz 1632976 BLAKE2B 0b633b27b22665db243bc4222f05028a17ee7ec6ba5960ff1cfe503d27bf3d26218f771cb15b70bbf8782898bcc7748bd5c27d55747607a1d93f784cdadddad7 SHA512 d5353fdd51224e20a8009aea7df6fe7503a726756c82041b770d8e90cae00b38ede7ecb2f31178ccb9f472a98b86f90208d4627fa4aaaf3c0383272b451e3015
EBUILD knot-3.2.2.ebuild 2351 BLAKE2B 456d0058996844d267484c81541b35d55d48c4451c23762abb98b378f73f6371f66f2dae327fc98d1f648779b784cdcf796d4edb1bae86a9578103c59f5b0c86 SHA512 f07e0ef6885cc8ee60dfcf8a3b064bd7edb81d2f4b7d236f7fecba3ff3292cbdb3f2f2d9fa42ad45da0fc2f5f5142feda4cae40ca0dc0b0954a91db3fb2064f9
EBUILD knot-3.2.9.ebuild 2362 BLAKE2B f60e095c8213bbdc2e074ee42de0e2e337676c25130659352a76e1778b548358c3774513fbd9fbc3d43e3979add8fde4348653a8b81f1df1b1d37e719f960f23 SHA512 fb5dd093c85ce7cb8e85532f2a634d9d0492ed4ef290ccf46af97ee40f6f2d4d0a9ec5dfa06509bdfc0431b45a08c30be20ac96a4e836b8e6de19b58119e296c
-MISC metadata.xml 2134 BLAKE2B 3146dae8c2a77647e608c17a2ef319162956b87c24ed41b15c9e2f89a1d43d4137a281220e168ecd2d6e9a7d2aac39656398d9fc4ed44234b242593c15849725 SHA512 352cf20a4701f0c102abcd78a3ed21b6b114b6dbe4500e0d1f8ae7467219fccc6baa34c482432094be4d6f2f573be4237a35ff9d8a940edb527d0161ae50b985
+EBUILD knot-3.4.2.ebuild 3348 BLAKE2B eb4d0fb6c91fc7ed0b9415e3c44c4ae0653c3063a24c21e91a7365334cdb88bf275f81e65fc90990b9689ab8ff9f76b290a12a60588ca973f98d2fb30b567b86 SHA512 5ba5bcc094d07831481e0453cbd6e511ea99560e71f717379d0f5b16a1efb4ce48e1aba8ec547a532224d00ec19696e1349810f827b776def8eccd4d0e39c4ba
+MISC metadata.xml 2358 BLAKE2B 49b224bac7b6828b759663e64d9f768afa7904ab5ad87fbc48a22c9e26a24e3ccec5306171a8ee6cdef32dfe1798cfd6257a8af62f42e70d5b9f487f44dab60b SHA512 a8d48af1366421e506b6117620916a775a3ebca50cdffdd40ee45429fc181aef3d70d5f0f8a99df09ea07babbe6c6c124a2716c71ffa09ec6806e0dc10d44ba4
diff --git a/net-dns/knot/files/knot-1.init b/net-dns/knot/files/knot-1.init
new file mode 100644
index 000000000000..989a576dcc59
--- /dev/null
+++ b/net-dns/knot/files/knot-1.init
@@ -0,0 +1,42 @@
+#!/sbin/openrc-run
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: ${KNOT_USER:=knot}
+: ${KNOT_GROUP:=knot}
+: ${KNOT_PIDFILE:=/run/knot.pid}
+: ${KNOT_CONFIG:=/etc/knot/knot.conf}
+
+name="knot"
+description="High-performance authoritative-only DNS server"
+command="/usr/sbin/knotd"
+command_args="-c ${KNOT_CONFIG}"
+command_user="${KNOT_USER}:${KNOT_GROUP}"
+command_background=true
+pidfile="${KNOT_PIDFILE}"
+
+extra_commands="checkconfig"
+extra_started_commands="reload"
+
+checkconfig() {
+ /usr/bin/knotc conf-check 1>/dev/null || return 1
+}
+
+reload() {
+ checkconfig || return 1
+ ebegin "Reloading ${SVCNAME}"
+ start-stop-daemon --signal HUP --pidfile $pidfile
+ eend $?
+}
+
+start_pre() {
+ if [ "${RC_CMD}" != "restart" ]; then
+ checkconfig || return 1
+ fi
+}
+
+stop_pre() {
+ if [ "${RC_CMD}" != "restart" ]; then
+ checkconfig || return 1
+ fi
+}
diff --git a/net-dns/knot/files/knot.tmpfile b/net-dns/knot/files/knot.tmpfile
new file mode 100644
index 000000000000..dfc488ca0583
--- /dev/null
+++ b/net-dns/knot/files/knot.tmpfile
@@ -0,0 +1,2 @@
+d /run/knot 0750 knot knot
+d /var/lib/knot 0750 knot knot
diff --git a/net-dns/knot/knot-3.4.2.ebuild b/net-dns/knot/knot-3.4.2.ebuild
new file mode 100644
index 000000000000..06a4f78e8400
--- /dev/null
+++ b/net-dns/knot/knot-3.4.2.ebuild
@@ -0,0 +1,166 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools 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://secure.nic.cz/files/knot-dns/${P/_/-}.tar.xz"
+
+S="${WORKDIR}/${P/_/-}"
+
+LICENSE="GPL-3+"
+SLOT="0/${KNOT_SUBSLOT}"
+KEYWORDS="~amd64 ~riscv ~x86"
+
+KNOT_MODULES=(
+ "+authsignal"
+ "+cookies"
+ "+dnsproxy"
+ "dnstap"
+ "geoip"
+ "+noudp"
+ "+onlinesign"
+ "+queryacl"
+ "+rrl"
+ "+stats"
+ "+synthrecord"
+ "+whoami"
+)
+
+IUSE="caps +daemon dbus +doc doh +fastparser +idn pkcs11 quic systemd test +utils xdp ${KNOT_MODULES[@]}"
+RESTRICT="!test? ( test )"
+
+COMMON_DEPEND="
+ dev-libs/libedit
+ dnstap? (
+ dev-libs/fstrm
+ dev-libs/protobuf-c:=
+ )
+ quic? ( net-libs/ngtcp2[gnutls] )
+"
+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:= )
+ )
+ 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 )
+ test? (
+ pkcs11? ( dev-libs/softhsm )
+ )
+"
+
+src_prepare() {
+ default
+
+ # these tests call this daemon file knot/server/dthreads.h
+ if use test && use !daemon; then
+ sed -i \
+ -e '/test_atomic/d' \
+ -e '/test_spinlock/d' \
+ tests/Makefile.am || die
+ eautoreconf
+ fi
+}
+
+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)
+ $(use_enable fastparser)
+ $(use_enable dnstap)
+ $(use_enable doc documentation)
+ $(use_with doh libnghttp2)
+ $(use_enable geoip maxminddb)
+ $(use_with idn libidn)
+ $(use_enable quic)
+ $(use_enable systemd)
+ $(use_enable utils utilities)
+ $(use_enable xdp)
+ )
+
+ # modules (except dnstap forced by use_enable if set with utils) are only used by daemon
+ if use daemon; then
+ for u in "${KNOT_MODULES[@]#+}"; 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} )
+
+ default
+
+ if use daemon; then
+ rmdir "${D}/var/run/${PN}" "${D}/var/run/" || die
+
+ newinitd "${FILESDIR}/knot-1.init" 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
+}
diff --git a/net-dns/knot/metadata.xml b/net-dns/knot/metadata.xml
index d7aafeb4ba1e..eb4839a1be64 100644
--- a/net-dns/knot/metadata.xml
+++ b/net-dns/knot/metadata.xml
@@ -10,9 +10,15 @@
<name>Proxy Maintainers</name>
</maintainer>
<use>
+ <flag name="authsignal">
+ Enable Automatic Authenticated DNSSEC Bootstrapping records
+ </flag>
<flag name="cookies">
Enable the DNS cookie module (RFC 7873)
</flag>
+ <flag name="daemon">
+ Enable Knot DNS main daemon
+ </flag>
<flag name="doh">
Enable DNS over HTTP (DoH) using libnghttp2
</flag>
@@ -42,6 +48,9 @@
Enable the module that sign zones on the fly instead of
pre-signing zone
</flag>
+ <flag name="pkcs11">
+ Add support for PKCS#11
+ </flag>
<flag name="queryacl">
Enable the module for query access control
</flag>