mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-17 02:39:08 -07:00
net-dns/dnsdist: New package, #611892
Closes: https://github.com/gentoo/gentoo/pull/4606
This commit is contained in:
1
net-dns/dnsdist/Manifest
Normal file
1
net-dns/dnsdist/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST dnsdist-1.1.0.tar.bz2 874837 SHA256 b4a1e8931b6d05a24494f54224211c0de0eeb1f5ff170f6b9f5665219bfeafc2 SHA512 91da716997c2440e153944f510a39dd86c9cf8ba8093a7f51a9a5d58ab0a1c230bd99ec57fe8ff0721279c8c4429ad576fe797c1fbe4cde2b9fb8f0405025320 WHIRLPOOL 6d88f4159b8155c9600af94e6e8401c426f183102a18b3f35fc066b8a19d781f5800a2aa64d306ab4ee0daadbaaab1d29b2df05c10058a9b99b9d9cf1abf071e
|
||||
99
net-dns/dnsdist/dnsdist-1.1.0.ebuild
Normal file
99
net-dns/dnsdist/dnsdist-1.1.0.ebuild
Normal file
@@ -0,0 +1,99 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
EGIT_REPO_URI="https://github.com/PowerDNS/pdns.git"
|
||||
|
||||
if [[ ${PV} = 9999 ]]; then
|
||||
ADDITIONAL_ECLASSES="autotools git-r3"
|
||||
fi
|
||||
|
||||
inherit eutils flag-o-matic user ${ADDITIONAL_ECLASSES}
|
||||
|
||||
DESCRIPTION="A highly DNS-, DoS- and abuse-aware loadbalancer"
|
||||
HOMEPAGE="http://dnsdist.org"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
SRC_URI=""
|
||||
S="${WORKDIR}/${P}/pdns/dnsdistdist"
|
||||
else
|
||||
SRC_URI="https://downloads.powerdns.com/releases/${P}.tar.bz2"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
IUSE="dnscrypt luajit readline regex remote-logging +ssl test"
|
||||
RESTRICT="readline? ( bindist )"
|
||||
REQUIRED_USE="dnscrypt? ( ssl )"
|
||||
|
||||
DEPEND="
|
||||
>=dev-libs/boost-1.35:=
|
||||
luajit? ( dev-lang/luajit:= )
|
||||
!luajit? ( >=dev-lang/lua-5.1:= )
|
||||
remote-logging? ( dev-libs/protobuf:= )
|
||||
readline? ( sys-libs/readline:0= )
|
||||
!readline? ( dev-libs/libedit:= )
|
||||
regex? ( dev-libs/re2:= )
|
||||
ssl? ( dev-libs/libsodium:= )
|
||||
"
|
||||
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
[[ ${PV} == 9999 ]] && DEPEND+="
|
||||
app-text/pandoc
|
||||
dev-util/ragel
|
||||
"
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/${PN}-readline.patch"
|
||||
eapply_user
|
||||
|
||||
[[ ${PV} == 9999 ]] && eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use readline ; then
|
||||
local -x LIBEDIT_CFLAGS="-I/usr/include/readline"
|
||||
local -x LIBEDIT_LIBS="-lreadline -lcurses"
|
||||
append-cxxflags -DREADLINE
|
||||
fi
|
||||
|
||||
econf \
|
||||
--sysconfdir=/etc/dnsdist \
|
||||
$(use_enable ssl libsodium) \
|
||||
$(use_with remote-logging protobuf) \
|
||||
$(use_enable regex re2) \
|
||||
$(use_enable dnscrypt) \
|
||||
$(use_with luajit) \
|
||||
$(use_enable test unit-tests)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
insinto /etc/dnsdist
|
||||
doins "${FILESDIR}"/dnsdist.conf.example
|
||||
|
||||
newconfd "${FILESDIR}"/dnsdist.confd ${PN}
|
||||
newinitd "${FILESDIR}"/dnsdist.initd ${PN}
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
enewgroup dnsdist
|
||||
enewuser dnsdist -1 -1 -1 dnsdist
|
||||
}
|
||||
|
||||
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."
|
||||
|
||||
if use readline ; then
|
||||
ewarn "dnsdist (GPLv2) was linked against readline (GPLv3)."
|
||||
ewarn "A binary distribution should therefore not happen."
|
||||
fi
|
||||
}
|
||||
101
net-dns/dnsdist/dnsdist-9999.ebuild
Normal file
101
net-dns/dnsdist/dnsdist-9999.ebuild
Normal file
@@ -0,0 +1,101 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
EGIT_REPO_URI="https://github.com/PowerDNS/pdns.git"
|
||||
|
||||
if [[ ${PV} = 9999 ]]; then
|
||||
ADDITIONAL_ECLASSES="autotools git-r3"
|
||||
fi
|
||||
|
||||
inherit eutils flag-o-matic user ${ADDITIONAL_ECLASSES}
|
||||
|
||||
DESCRIPTION="A highly DNS-, DoS- and abuse-aware loadbalancer"
|
||||
HOMEPAGE="http://dnsdist.org"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
SRC_URI=""
|
||||
S="${WORKDIR}/${P}/pdns/dnsdistdist"
|
||||
else
|
||||
SRC_URI="https://downloads.powerdns.com/releases/${P}.tar.bz2"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
IUSE="dnscrypt luajit readline regex remote-logging snmp +ssl test"
|
||||
RESTRICT="readline? ( bindist )"
|
||||
REQUIRED_USE="dnscrypt? ( ssl )"
|
||||
|
||||
DEPEND="
|
||||
>=dev-libs/boost-1.35:=
|
||||
luajit? ( dev-lang/luajit:= )
|
||||
!luajit? ( >=dev-lang/lua-5.1:= )
|
||||
remote-logging? ( dev-libs/protobuf:= )
|
||||
readline? ( sys-libs/readline:0= )
|
||||
!readline? ( dev-libs/libedit:= )
|
||||
regex? ( dev-libs/re2:= )
|
||||
snmp? ( net-analyzer/net-snmp:= )
|
||||
ssl? ( dev-libs/libsodium:= )
|
||||
"
|
||||
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
[[ ${PV} == 9999 ]] && DEPEND+="
|
||||
app-text/pandoc
|
||||
dev-util/ragel
|
||||
"
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/${PN}-readline.patch"
|
||||
eapply_user
|
||||
|
||||
[[ ${PV} == 9999 ]] && eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use readline ; then
|
||||
local -x LIBEDIT_CFLAGS="-I/usr/include/readline"
|
||||
local -x LIBEDIT_LIBS="-lreadline -lcurses"
|
||||
append-cxxflags -DREADLINE
|
||||
fi
|
||||
|
||||
econf \
|
||||
--sysconfdir=/etc/dnsdist \
|
||||
$(use_enable ssl libsodium) \
|
||||
$(use_with remote-logging protobuf) \
|
||||
$(use_enable regex re2) \
|
||||
$(use_enable dnscrypt) \
|
||||
$(use_with luajit) \
|
||||
$(use_enable test unit-tests) \
|
||||
$(use_with snmp net-snmp)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
insinto /etc/dnsdist
|
||||
doins "${FILESDIR}"/dnsdist.conf.example
|
||||
|
||||
newconfd "${FILESDIR}"/dnsdist.confd ${PN}
|
||||
newinitd "${FILESDIR}"/dnsdist.initd ${PN}
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
enewgroup dnsdist
|
||||
enewuser dnsdist -1 -1 -1 dnsdist
|
||||
}
|
||||
|
||||
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."
|
||||
|
||||
if use readline ; then
|
||||
ewarn "dnsdist (GPLv2) was linked against readline (GPLv3)."
|
||||
ewarn "A binary distribution should therefore not happen."
|
||||
fi
|
||||
}
|
||||
25
net-dns/dnsdist/files/dnsdist-readline.patch
Normal file
25
net-dns/dnsdist/files/dnsdist-readline.patch
Normal file
@@ -0,0 +1,25 @@
|
||||
diff -Naur dnsdist-1.1.0/dnsdist.cc dnsdist-1.1.0-gentoo/dnsdist.cc
|
||||
--- dnsdist-1.1.0/dnsdist.cc 2016-12-29 13:45:46.000000000 +0100
|
||||
+++ dnsdist-1.1.0-gentoo/dnsdist.cc 2017-05-21 15:09:10.414951426 +0200
|
||||
@@ -29,6 +29,8 @@
|
||||
|
||||
#if defined (__OpenBSD__)
|
||||
#include <readline/readline.h>
|
||||
+#elif defined READLINE
|
||||
+#include <readline/readline.h>
|
||||
#else
|
||||
#include <editline/readline.h>
|
||||
#endif
|
||||
diff -Naur dnsdist-1.1.0/dnsdist-console.cc dnsdist-1.1.0-gentoo/dnsdist-console.cc
|
||||
--- dnsdist-1.1.0/dnsdist-console.cc 2016-12-29 13:45:46.000000000 +0100
|
||||
+++ dnsdist-1.1.0-gentoo/dnsdist-console.cc 2017-05-21 15:09:24.758950947 +0200
|
||||
@@ -25,6 +25,9 @@
|
||||
#if defined (__OpenBSD__)
|
||||
#include <readline/readline.h>
|
||||
#include <readline/history.h>
|
||||
+#elif defined READLINE
|
||||
+#include <readline/readline.h>
|
||||
+#include <readline/history.h>
|
||||
#else
|
||||
#include <editline/readline.h>
|
||||
#endif
|
||||
19
net-dns/dnsdist/files/dnsdist.conf.example
Normal file
19
net-dns/dnsdist/files/dnsdist.conf.example
Normal file
@@ -0,0 +1,19 @@
|
||||
--[[
|
||||
This is an example dnsdist configuration file.
|
||||
Please refer to the dnsdist documentation
|
||||
at http://dnsdist.org/README/ for more information.
|
||||
]]--
|
||||
|
||||
-- Listen on 192.0.2.1 on port 53.
|
||||
setLocal("192.0.2.1:53")
|
||||
|
||||
-- Add 2001:db8::2:1 to the list of adresses dnsdist should listen on
|
||||
addLocal("2001:db8::2:1")
|
||||
|
||||
-- Add to the ACL set who can use this server
|
||||
addACL("192.0.2.0/24")
|
||||
addACL("2001:db8::/32")
|
||||
|
||||
-- Instantiate two new downstram server with their default settings
|
||||
newServer("198.51.100.1")
|
||||
newServer("198.51.100.2")
|
||||
13
net-dns/dnsdist/files/dnsdist.confd
Normal file
13
net-dns/dnsdist/files/dnsdist.confd
Normal file
@@ -0,0 +1,13 @@
|
||||
# /etc/conf.d/dnsdist
|
||||
|
||||
# Options to pass on to dnsdist during the start
|
||||
DNSDIST_OPTIONS=""
|
||||
|
||||
# Run dnsdist as this user
|
||||
DNSDIST_USER="dnsdist"
|
||||
|
||||
# Run dnsdist in this group
|
||||
DNSDIST_GROUP="dnsdist"
|
||||
|
||||
# Set the maximum number of open file descriptors
|
||||
rc_ulimit="-n 2048"
|
||||
55
net-dns/dnsdist/files/dnsdist.initd
Normal file
55
net-dns/dnsdist/files/dnsdist.initd
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
extra_commands="configcheck"
|
||||
#extra_started_commands=""
|
||||
|
||||
DNSDIST_INSTANCE="${SVCNAME#dnsdist[.-]}"
|
||||
DNSDIST_CONFFILE="/etc/dnsdist/${SVCNAME#dnsdist[.-]}.conf"
|
||||
DNSDIST="/usr/bin/dnsdist"
|
||||
PIDDIR=/run/dnsdist
|
||||
PIDFILE=$PIDDIR/$SVCNAME.pid
|
||||
|
||||
|
||||
if [ -n "${DNSDIST_INSTANCE}" ] && [ "${DNSDIST_INSTANCE}" != "dnsdist" ]
|
||||
then
|
||||
DNSDIST_INSTANCE="dnsdist-${SVCNAME#dnsdist[.-]}"
|
||||
DNSDIST_CONFFILE="/etc/dnsdist/${DNSDIST_INSTANCE}.conf"
|
||||
else
|
||||
DNSDIST_INSTANCE="default"
|
||||
fi
|
||||
|
||||
depend() {
|
||||
need net
|
||||
}
|
||||
|
||||
start() {
|
||||
checkpath -q -d ${PIDDIR} -o ${DNSDIST_USER}:${DNSDIST_GROUP}
|
||||
|
||||
configcheck || return 1
|
||||
|
||||
ebegin "Starting dnsdist (${DNSDIST_INSTANCE})"
|
||||
start-stop-daemon --start --exec $DNSDIST --pidfile ${PIDFILE} \
|
||||
-- -d -p ${PIDFILE} -u ${DNSDIST_USER} -g ${DNSDIST_GROUP} \
|
||||
-C $DNSDIST_CONFFILE ${DNSDIST_OPTIONS}
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping dnsdist (${DNSDIST_INSTANCE})"
|
||||
start-stop-daemon --stop --exec $DNSDIST --pidfile ${PIDFILE}
|
||||
eend $?
|
||||
}
|
||||
|
||||
configcheck() {
|
||||
ebegin "Checking configuration file (${DNSDIST_CONFFILE})"
|
||||
$DNSDIST --check-config -C $DNSDIST_CONFFILE > /dev/null
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
$DNSDIST --check-config -C $DNSDIST_CONFFILE
|
||||
fi
|
||||
|
||||
eend $? "failed, please correct errors above"
|
||||
}
|
||||
|
||||
22
net-dns/dnsdist/metadata.xml
Normal file
22
net-dns/dnsdist/metadata.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>bgo@9dt.de</email>
|
||||
<name>Vladimir Datsevich</name>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<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="dnscrypt">Enable the ability to act as a DNSCrypt server</flag>
|
||||
<flag name="luajit">Use <pkg>dev-lang/luajit</pkg> instead of <pkg>dev-lang/lua</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>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
Reference in New Issue
Block a user