net-dns/dnsdist: add -9999 with USE=ipcrypt

Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com>
Part-of: https://github.com/gentoo/gentoo/pull/44863
Closes: https://github.com/gentoo/gentoo/pull/44863
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Holger Hoffstätte 2025-12-02 14:21:46 +01:00 committed by Sam James
parent 93effd99eb
commit f3f523e7b2
No known key found for this signature in database
GPG Key ID: 738409F520DF9190
3 changed files with 183 additions and 0 deletions

View File

@ -4,5 +4,7 @@ DIST dnsdist-2.0.1.tar.xz 2279512 BLAKE2B 6eee67a678ef1a044f60f8989befdcf84ce487
DIST dnsdist-2.0.2.tar.xz 2284864 BLAKE2B 87a4179f474d7f8117e4e03c4ff680f79207c8056765c6925ee21b3011e4555e47ad9c97950f30ab2876ac0978ee07555017cb1bbc6b93792992c1821f8da27a SHA512 7f53d13bb90b7b70da364341e50473b88be0bc9619e3263e352bed75aa57edbc018824439749956281a2c7a5d32c653e7378fe9d3cbc296042fa8120eee75fae
DIST dnsdist-docs-2.0.1.tar.xz 1382776 BLAKE2B 9b701e1c06118f242cf5fef019c015d5bd9608db893c1e708666d572cc8d0b3745f5bd935e76995e2894288a3d039aea9de6a409295ba096a72acd960d4e5507 SHA512 fc0ce707ec6dddf0057f8fd4bafe7513017b8e71e39b77e0525a67fbab68bbc1393490368eacad31ffccebebed156d0cc6ec646dbba30369ff67c63d71410057
DIST dnsdist-docs-2.0.2.tar.xz 1385828 BLAKE2B 79b4bb02f42f9bb3829fec6c6788ea2cc79c3f55d31b462e3c54d32f8afb0dfc84d8b347cbdae6cc3f9d8c9ebd1207a71f097f5201f14b9b2b6b20c72842d6b2 SHA512 ab73d30193bd99b4163962be5564c596fdd1d0c85c20d6606a70ed491ceb8ff801418aa7890c9ad2025ef3c9767f1d8252c0c18cfee5ebf9d845cce7e681f578
DIST dnsdist-docs-9999.tar.xz 1347420 BLAKE2B f96bcd42f33a212e7d5b9f277dfc405bccd8aaea12564c70726c149827d8d67652a5007cce7c23032a30f3dd36405087f920168397b7b4d971df40a4630da23d SHA512 eeb83262405f07c536ec624820106c28dacd65f4a0644cea1d223d229f19ec5ae510016111ef39a09c01a9cd3ebad6f23482c7b0be322990aeeb3beaf6b91a33
DIST dnsdist-rust-2.0.1-crates.tar.xz 5268364 BLAKE2B 36b370eacb7332d04de0fa1be2a49983c030c94df00abcc6681180b1ad5fa8bfe3e19744543b3707e305d57649837a632c1400fd4ae1b4626f084310db8f9bad SHA512 a9f1e10a71a9fb2e6879077224823dd278f1a27c5698076e69bc4bcdf89cff5e54ffd0fce90113131358398289400da263b90c895d167cb3c007fcc96654e116
DIST dnsdist-rust-2.0.2-crates.tar.xz 5268364 BLAKE2B 36b370eacb7332d04de0fa1be2a49983c030c94df00abcc6681180b1ad5fa8bfe3e19744543b3707e305d57649837a632c1400fd4ae1b4626f084310db8f9bad SHA512 a9f1e10a71a9fb2e6879077224823dd278f1a27c5698076e69bc4bcdf89cff5e54ffd0fce90113131358398289400da263b90c895d167cb3c007fcc96654e116
DIST dnsdist-rust-9999-crates.tar.xz 3257828 BLAKE2B 5915f30c0be1a23174a4125186dabda99652143ee8862f5fdaaaad3d407ab2d3cc99b2602feff7b43fefb1bf6fd5b60a6954d1d3f084be3e43fcdbb7de0c6d18 SHA512 ebeab68d84da12f47fa0efb05fcfd6eeddad61a174bd53e6a93845b1023a4fef46e35a87a46a72ede378cd0e7f5ec0710bce3b5ac822c3432a9725071be2f340

View File

@ -0,0 +1,180 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
LUA_COMPAT=( lua5-{1..4} luajit )
PYTHON_COMPAT=( python3_{11..14} )
RUST_MIN_VER="1.85.1"
RUST_OPTIONAL=1
inherit cargo flag-o-matic lua-single meson python-any-r1 toolchain-funcs
DESCRIPTION="A highly DNS-, DoS- and abuse-aware loadbalancer"
HOMEPAGE="https://www.dnsdist.org/index.html"
if [[ ${PV} == *9999* ]] ; then
EGIT_REPO_URI="https://github.com/PowerDNS/pdns"
EGIT_BRANCH="master"
inherit git-r3
else
SRC_URI="https://downloads.powerdns.com/releases/${P}.tar.xz"
KEYWORDS="~amd64 ~x86"
fi
SRC_URI+="
doc? ( https://www.applied-asynchrony.com/distfiles/${PN}-docs-${PV}.tar.xz )
yaml? ( https://www.applied-asynchrony.com/distfiles/${PN}-rust-${PV}-crates.tar.xz )
"
LICENSE="GPL-2"
SLOT="0"
IUSE="bpf cdb dnscrypt dnstap doc doh doh3 ipcipher ipcrypt lmdb quic regex snmp +ssl systemd test web xdp yaml"
RESTRICT="!test? ( test )"
REQUIRED_USE="${LUA_REQUIRED_USE}
dnscrypt? ( ssl )
doh? ( ssl )
doh3? ( ssl quic )
ipcipher? ( ssl )
quic? ( ssl )"
RDEPEND="acct-group/dnsdist
acct-user/dnsdist
bpf? ( dev-libs/libbpf:= )
cdb? ( dev-db/tinycdb:= )
dev-libs/boost:=
sys-libs/libcap
dev-libs/libedit
dev-libs/libsodium:=
dnstap? ( dev-libs/fstrm )
doh? ( net-libs/nghttp2:= )
doh3? ( net-libs/quiche:= )
lmdb? ( dev-db/lmdb:= )
quic? ( net-libs/quiche )
regex? ( dev-libs/re2:= )
snmp? ( net-analyzer/net-snmp:= )
ssl? ( dev-libs/openssl:= )
systemd? ( sys-apps/systemd:0= )
xdp? ( net-libs/xdp-tools )
${LUA_DEPS}
"
DEPEND="${RDEPEND}"
BDEPEND="$(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
virtual/pkgconfig
yaml? ( ${RUST_DEPEND} )
"
# special requirements for live
if [[ ${PV} == *9999* ]] ; then
BDEPEND+=" dev-util/ragel"
S="${S}/pdns/dnsdistdist"
fi
pkg_setup() {
lua-single_pkg_setup
python-any-r1_pkg_setup
use yaml && rust_pkg_setup
}
python_check_deps() {
python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
}
# git-r3 overrides automatic SRC_URI unpacking
src_unpack() {
default
if [[ ${PV} == *9999* ]] ; then
git-r3_src_unpack
fi
}
src_prepare() {
default
# clean up duplicate file
rm -f README.md
}
src_configure() {
# bug #822855
append-lfs-flags
# There is currently no reliable way to handle mixed C++/Rust + LTO
# correctly: https://bugs.gentoo.org/963128
if use yaml && tc-is-lto ; then
ewarn "Disabling LTO because of mixed C++/Rust toolchains."
filter-lto
fi
# some things can only be enabled/disabled by defines
! use dnstap && append-cppflags -DDISABLE_PROTOBUF
! use web && append-cppflags -DDISABLE_BUILTIN_HTML
local emesonargs=(
--sysconfdir="${EPREFIX}/etc/dnsdist"
# always use libsodium
-Dlibsodium=enabled
-Dlua=${ELUA}
# never try to build man pages (virtualenv)
-Dman-pages=false
# never use gnutls (openssl only)
-Dtls-gnutls=disabled
$(meson_feature bpf ebpf)
$(meson_feature cdb)
$(meson_feature dnscrypt)
$(meson_feature dnstap)
$(meson_feature doh dns-over-https)
$(meson_feature doh nghttp2)
$(meson_feature doh3 dns-over-http3)
$(meson_feature ipcipher)
$(meson_feature ipcrypt ipcrypt2)
$(meson_feature lmdb)
$(meson_feature quic dns-over-quic)
$(meson_feature regex re2)
$(meson_feature snmp)
$(meson_feature ssl libcrypto)
$(meson_feature ssl tls-libssl)
$(meson_feature ssl dns-over-tls)
$(meson_feature systemd systemd-service)
$(meson_use test unit-tests)
$(meson_feature xdp xsk)
$(meson_feature yaml)
)
meson_src_configure
}
# explicitly implement src_compile/test to override the
# otherwise automagic cargo_src_compile/test phases
src_compile() {
cargo_gen_config
cargo_env meson_src_compile
}
src_test() {
meson_src_test
}
src_install() {
meson_src_install
use doc && dodoc -r "${WORKDIR}"/html
insinto /etc/dnsdist
doins "${FILESDIR}"/dnsdist.conf.example
newconfd "${FILESDIR}"/dnsdist.confd ${PN}
newinitd "${FILESDIR}"/dnsdist.initd ${PN}
}
pkg_postinst() {
elog "dnsdist provides multiple instances support. You can create more instances"
elog "by symlinking the dnsdist init script to another name."
elog
elog "The name must be in the format dnsdist.<suffix> and dnsdist will use the"
elog "/etc/dnsdist/dnsdist-<suffix>.conf configuration file instead of the default."
}

View File

@ -20,6 +20,7 @@
<flag name="doh">Enable support for dns over http via <pkg>net-libs/nghttp2</pkg></flag>
<flag name="doh3">Enable support for dns over http3 via <pkg>net-libs/quiche</pkg></flag>
<flag name="ipcipher">Enable support for ipcipher via <pkg>dev-libs/openssl</pkg></flag>
<flag name="ipcrypt">Enable support for encryption/decryption of IP addresses via IPCrypt</flag>
<flag name="lmdb">Enable support for lmdb</flag>
<flag name="quic">Enable support for dns over quic via <pkg>net-libs/quiche</pkg></flag>
<flag name="regex">Enable support for regular expression matching via <pkg>dev-libs/re2</pkg></flag>