Skip to content

Commit

Permalink
net-dns/pdns: add 4.9.0
Browse files Browse the repository at this point in the history
Signed-off-by: Sven Wegener <[email protected]>
  • Loading branch information
swegener committed Mar 15, 2024
1 parent 0569216 commit 7eb6410
Show file tree
Hide file tree
Showing 2 changed files with 166 additions and 0 deletions.
1 change: 1 addition & 0 deletions net-dns/pdns/Manifest
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
DIST pdns-4.8.3.tar.bz2 1336985 BLAKE2B 3de58d5e79ce5b13460d0b989c89d2d1740269ddac0c49289726d29edc183d0efeaf264424312a97fb3888086f4a271995b29dd95f8c969f7dd44965a2b47740 SHA512 a67a349a0484521e889c97ffdc2b2aa61a95507e3a05a7289127efcb75b43cfb4de3e14f3bf1cc73db9e487d2a8469c301b9f22d45758a4507fe65cef4600381
DIST pdns-4.8.4.tar.bz2 1334756 BLAKE2B b92a35ee3e76806bd24bd030428e74afae19a46333d2a444e2bb822300049f3be5afa260cbdadd435f45ba1cf160481c8ccd0bd386eeb4d2679498d650fb7bf7 SHA512 1e8ec7e5ba0c8d87d273eab866890d0fa999825f2ca50127c4337a627fb1aabc6a957608fc9e60b53d5fde8b76530dc08bda4463e62e642d9b1f74f6e097c774
DIST pdns-4.9.0.tar.bz2 1364768 BLAKE2B a018459b250f181686d2638e4487dfd18ef1173f20798039be1f8f6e7134399bada5a9bf2aab16004026630c175f363b22d7749fdbfb0b8601699b29db1b1ed2 SHA512 73dcad9a6cc80e5ca2bdd28f1c49b1acab463ec51cb181324536a566ab26ac3a236099bd4eb03fbe98748f798ad0e11270fb8e6d52a33ea106c8dd2d97013388
165 changes: 165 additions & 0 deletions net-dns/pdns/pdns-4.9.0.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

LUA_COMPAT=( lua5-{1..4} luajit )
PYTHON_COMPAT=( python3_{10..12} )

inherit flag-o-matic lua-single python-any-r1

DESCRIPTION="The PowerDNS Daemon"
HOMEPAGE="https://www.powerdns.com/"
SRC_URI="https://downloads.powerdns.com/releases/${P/_/-}.tar.bz2"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"

IUSE="debug doc geoip ldap lmdb lua-records mysql odbc postgres remote sodium sqlite systemd tools tinydns test"
RESTRICT="!test? ( test )"

REQUIRED_USE="${LUA_REQUIRED_USE}"

DEPEND="${LUA_DEPS}
dev-libs/openssl:=
dev-libs/boost:=
lmdb? ( >=dev-db/lmdb-0.9.29 )
lua-records? ( >=net-misc/curl-7.21.3 )
mysql? ( dev-db/mysql-connector-c:= )
postgres? ( dev-db/postgresql:= )
ldap? ( >=net-nds/openldap-2.0.27-r4:= app-crypt/mit-krb5 )
odbc? ( dev-db/unixODBC )
sqlite? ( dev-db/sqlite:3 )
geoip? ( >=dev-cpp/yaml-cpp-0.5.1:= dev-libs/geoip )
sodium? ( dev-libs/libsodium:= )
tinydns? ( >=dev-db/tinycdb-0.77 )
elibc_glibc? ( x86? ( >=sys-libs/glibc-2.34 ) )"
RDEPEND="${DEPEND}
acct-user/pdns
acct-group/pdns"

BDEPEND="${PYTHON_DEPS}
virtual/pkgconfig
doc? ( app-text/doxygen[dot] )"

S="${WORKDIR}"/${P/_/-}

pkg_setup() {
lua-single_pkg_setup
python-any-r1_pkg_setup
append-lfs-flags
append-cppflags -D_TIME_BITS=64
}

src_configure() {
local cnf_dynmodules="bind lua2 pipe" # the default backends, always enabled

use geoip && cnf_dynmodules+=" geoip"
use ldap && cnf_dynmodules+=" ldap"
use lmdb && cnf_dynmodules+=" lmdb"
use mysql && cnf_dynmodules+=" gmysql"
use odbc && cnf_dynmodules+=" godbc"
use postgres && cnf_dynmodules+=" gpgsql"
use remote && cnf_dynmodules+=" remote"
use sqlite && cnf_dynmodules+=" gsqlite3"
use tinydns && cnf_dynmodules+=" tinydns"

econf \
--disable-static \
--sysconfdir=/etc/powerdns \
--libdir=/usr/$(get_libdir)/powerdns \
--with-service-user=pdns \
--with-service-group=pdns \
--with-modules= \
--with-dynmodules="${cnf_dynmodules}" \
--with-mysql-lib=/usr/$(get_libdir) \
--with-lua="${ELUA}" \
$(use_enable debug verbose-logging) \
$(use_enable lua-records) \
$(use_enable test unit-tests) \
$(use_enable tools) \
$(use_enable systemd) \
$(use_with sodium libsodium) \
${myconf}
}

src_compile() {
default
use doc && emake -C codedocs codedocs
}

src_install() {
default

mv "${D}"/etc/powerdns/pdns.conf{-dist,}

fperms 0700 /etc/powerdns
fperms 0600 /etc/powerdns/pdns.conf

# set defaults: setuid=pdns, setgid=pdns
sed -i \
-e 's/^# set\([ug]\)id=$/set\1id=pdns/g' \
"${D}"/etc/powerdns/pdns.conf

newinitd "${FILESDIR}"/pdns-r1 pdns

keepdir /var/empty

if use doc; then
docinto html
dodoc -r codedocs/html/.
fi

# Install development headers
insinto /usr/include/pdns
doins pdns/*.hh
insinto /usr/include/pdns/backends/gsql
doins pdns/backends/gsql/*.hh

if use ldap ; then
insinto /etc/openldap/schema
doins "${FILESDIR}"/dnsdomain2.schema
fi

find "${D}" -name '*.la' -delete || die
}

pkg_postinst() {
elog "PowerDNS provides multiple instances support. You can create more instances"
elog "by symlinking the pdns init script to another name."
elog
elog "The name must be in the format pdns.<suffix> and PowerDNS will use the"
elog "/etc/powerdns/pdns-<suffix>.conf configuration file instead of the default."

local old
for old in ${REPLACING_VERSIONS}; do
ver_test ${old} -lt 3.2 || continue

echo
ewarn "To fix a security bug (bug #458018) had the following"
ewarn "files/directories the world-readable bit removed (if set):"
ewarn " ${EPREFIX}/etc/powerdns"
ewarn " ${EPREFIX}/etc/powerdns/pdns.conf"
ewarn "Check if this is correct for your setup"
ewarn "This is a one-time change and will not happen on subsequent updates."
chmod o-rwx "${EPREFIX}"/etc/powerdns/{,pdns.conf}

break
done

if use postgres; then
for old in ${REPLACING_VERSIONS}; do
ver_test ${old} -lt 4.1.11-r1 || continue

echo
ewarn "PowerDNS 4.1.11 contains a security fix for the PostgreSQL backend."
ewarn "This security fix needs to be applied manually to the database schema."
ewarn "Please refer to the official security advisory for more information:"
ewarn
ewarn " https://doc.powerdns.com/authoritative/security-advisories/powerdns-advisory-2019-06.html"

break
done
fi
}

0 comments on commit 7eb6410

Please sign in to comment.