summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schuerch <nativemad@gentoo.org>2024-02-19 19:47:12 +0100
committerAndreas Schuerch <nativemad@gentoo.org>2024-02-19 19:50:37 +0100
commitcd27b48e1fbc51a086a41f1325b2fedb5b0e12f3 (patch)
tree139d9598accbb69a5545f8f1b7dec36cfb0f797b /net-dns/dnsdist
parentwww-servers/nginx-unit: drop 1.29.1 (diff)
downloadgentoo-cd27b48e1fbc51a086a41f1325b2fedb5b0e12f3.tar.gz
gentoo-cd27b48e1fbc51a086a41f1325b2fedb5b0e12f3.tar.bz2
gentoo-cd27b48e1fbc51a086a41f1325b2fedb5b0e12f3.zip
net-dns/dnsdist: 1.9.0-r1 update EAPI 7 -> 8, new useflags and several fixes all over.
Thanks Holger Hoffstätte and Joonas Niilola for all the inputs! Closes: https://github.com/gentoo/gentoo/pull/35413 Signed-off-by: Andreas Schuerch <nativemad@gentoo.org>
Diffstat (limited to 'net-dns/dnsdist')
-rw-r--r--net-dns/dnsdist/dnsdist-1.9.0-r1.ebuild111
-rw-r--r--net-dns/dnsdist/metadata.xml21
2 files changed, 127 insertions, 5 deletions
diff --git a/net-dns/dnsdist/dnsdist-1.9.0-r1.ebuild b/net-dns/dnsdist/dnsdist-1.9.0-r1.ebuild
new file mode 100644
index 000000000000..473717e4807a
--- /dev/null
+++ b/net-dns/dnsdist/dnsdist-1.9.0-r1.ebuild
@@ -0,0 +1,111 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1..4} luajit )
+
+inherit flag-o-matic lua-single
+
+DESCRIPTION="A highly DNS-, DoS- and abuse-aware loadbalancer"
+HOMEPAGE="https://dnsdist.org"
+
+SRC_URI="https://downloads.powerdns.com/releases/${P}.tar.bz2"
+KEYWORDS="~amd64 ~x86"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="bpf cdb dnscrypt dnstap doh doh3 ipcipher lmdb quic regex snmp +ssl systemd test web xdp"
+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="virtual/pkgconfig"
+
+src_prepare() {
+ default
+
+ # clean up duplicate file
+ rm -f README.md
+}
+
+src_configure() {
+ # bug #822855
+ append-lfs-flags
+
+ # some things can only be enabled/disabled by defines
+ ! use dnstap && append-cppflags -DDISABLE_PROTOBUF
+ ! use web && append-cppflags -DDISABLE_BUILTIN_HTML
+
+ sed 's/hardcode_libdir_flag_spec_CXX='\''$wl-rpath $wl$libdir'\''/hardcode_libdir_flag_spec_CXX='\''$wl-rpath $wl\/$libdir'\''/g' \
+ -i "${S}/configure"
+
+ local myeconfargs=(
+ --sysconfdir=/etc/dnsdist
+ --with-lua="${ELUA}"
+ --without-h2o
+ --enable-tls-providers
+ --without-gnutls
+ $(use_with bpf ebpf)
+ $(use_with cdb cdb)
+ $(use_enable doh dns-over-https)
+ $(use_enable doh3 dns-over-http3)
+ $(use_enable dnscrypt)
+ $(use_enable dnstap)
+ $(use_enable ipcipher)
+ $(use_with lmdb )
+ $(use_enable quic dns-over-quic)
+ $(use_with regex re2)
+ $(use_with snmp net-snmp)
+ $(use_enable ssl dns-over-tls)
+ $(use_enable systemd) \
+ $(use_enable test unit-tests)
+ $(use_with xdp xsk)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ 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."
+}
diff --git a/net-dns/dnsdist/metadata.xml b/net-dns/dnsdist/metadata.xml
index 3b1c4911d481..c0cba7b1344e 100644
--- a/net-dns/dnsdist/metadata.xml
+++ b/net-dns/dnsdist/metadata.xml
@@ -5,20 +5,31 @@
<email>nativemad@gentoo.org</email>
<name>Andreas Schuerch</name>
</maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>holger@applied-asynchrony.com</email>
+ <name>Holger Hoffstätte</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
<longdescription lang="en">
dnsdist is a highly DNS-, DoS- and abuse-aware loadbalancer. Its goal in life is to route traffic to the best server, delivering top performance to legitimate users while shunting or blocking abusive traffic.
</longdescription>
<use>
+ <flag name="bpf">Enable support for eBPF socket filtering</flag>
<flag name="dnscrypt">Enable the ability to act as a DNSCrypt server</flag>
- <flag name="regex">Enable support for regular expression matching via <pkg>dev-libs/re2</pkg></flag>
- <flag name="remote-logging">Enable support for remote logging via <pkg>dev-libs/protobuf</pkg></flag>
- <flag name="ssl">Enable support for and encrypted client-server communication via <pkg>dev-libs/libsodium</pkg></flag>
+ <flag name="dnstap">Enable support for dnstap</flag>
<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="dnstap">Enable support for dnstap</flag>
+ <flag name="ipcipher">Enable support for ipcipher via <pkg>dev-libs/openssl</pkg></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="ipcipher">Enable support for ipcipher via <pkg>dev-libs/openssl</pkg></flag>
+ <flag name="regex">Enable support for regular expression matching via <pkg>dev-libs/re2</pkg></flag>
+ <flag name="remote-logging">Enable support for remote logging via <pkg>dev-libs/protobuf</pkg></flag>
+ <flag name="ssl">Enable support for and encrypted client-server communication via <pkg>dev-libs/libsodium</pkg></flag>
+ <flag name="web">Enable support for the web UI</flag>
+ <flag name="xdp">Enable support for AF_XDP high performance packet processing</flag>
</use>
<upstream>
<remote-id type="github">PowerDNS/pdns</remote-id>