net-dns/bind: Sync with Gentoo

It's from Gentoo commit b447225da02c4971e635943bd7ad177e5cf01903.
This commit is contained in:
Flatcar Buildbot 2025-03-31 07:10:07 +00:00
parent 5e26640b4a
commit 80f5fba0eb
4 changed files with 276 additions and 4 deletions

View File

@ -4,4 +4,5 @@ DIST bind-9.16.50.tar.xz 5134620 BLAKE2B 0464d1e246d0a5c39e20faf733b7f4ee21d192c
DIST bind-9.16.50.tar.xz.asc 833 BLAKE2B 7eabf67b96d1fc94ec096adf1b4d075c370b603b7225522fe5b97d04c519f68f017fe0ccaf7ddeff029d17c0b4c3932a09f009376553f987671ba21f6b9cdb7d SHA512 0650ad5d55da2d9fe848d68aa59b16998b781152209ebcaabaea68144dab75ff9f4cfcceaa87a6b6da4f2f98fcf6f9eddd16d19ddf958fef242d93da03516dbc
DIST bind-9.18.29.tar.xz 5562720 BLAKE2B f3e7de6936362bcce4993e401ed8fdd9d597459e82ad908a918fff1da619f91ef4896595ea210b43f2b492d763d7be2b71105495858da55431b60874c7fd2312 SHA512 6c2676e2e2cb90f3bd73afb367813c54d1c961e12df1e12e41b9d0ee5a1d5cdf368d81410469753eaef37e43358b56796f078f3b2f20c3b247c4bef91d56c716
DIST bind-9.18.31.tar.xz 5385812 BLAKE2B e069ab3caab887a87220b54804e5b19a4c21b8d3e4e8f1bc6a7135b3990a228d6c48b1ca4a22c75242485275eff1de145a9aff89addf81124e7dfcafd8ab30cf SHA512 e51873484be3ee367eb1e601b8e0adc45abcdb16df04021ea42ffcc51b99821f8b30f67b2a693a90ad3efa51698a651c8da9d7947ee8fa19680f627afe1f7034
DIST bind-9.20.7.tar.xz 5655168 BLAKE2B c5198939382e7295b4dfcb2ddbd86e5bccc10047d5e963dab2381404eb7a14543218e3caa438b395a2982cb607da84012f3a76a41c790a48ed615238bc080b5c SHA512 b9570c0c6588819108017d30dc7fb5e2f34361f941186d29da3d2830bbe3333c8c16bdb6581f5bec4786d90b74db860a9cad5f66d4f1c65168eae69f401a9df0
DIST dyndns-samples.tbz2 22866 BLAKE2B 409890653c6536cb9c0e3ba809d2bfde0e0ae73a2a101b4f229b46c01568466bc022bbbc37712171adbd08c572733e93630feab95a0fcd1ac50a7d37da1d1108 SHA512 83b0bf99f8e9ff709e8e9336d8c5231b98a4b5f0c60c10792f34931e32cc638d261967dfa5a83151ec3740977d94ddd6e21e9ce91267b3e279b88affdbc18cac

View File

@ -1,4 +1,4 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Re dlz/mysql and threads, needs to be verified..
@ -38,7 +38,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="Apache-2.0 BSD BSD-2 GPL-2 HPND ISC MPL-2.0"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
# -berkdb by default re bug #602682
IUSE="berkdb +caps +dlz dnstap doc dnsrps fixed-rrset geoip geoip2 gssapi"
IUSE+=" json ldap lmdb mysql odbc postgres python selinux static-libs test xml +zlib"

View File

@ -1,4 +1,4 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -15,7 +15,7 @@ S="${WORKDIR}/${PN}-${MY_PV}"
LICENSE="MPL-2.0"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
IUSE="+caps dnsrps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs test xml"
RESTRICT="!test? ( test )"

View File

@ -0,0 +1,271 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit eapi9-ver systemd tmpfiles
MY_PV="${PV/_p/-P}"
MY_PV="${MY_PV/_rc/rc}"
DESCRIPTION="Berkeley Internet Name Domain - Name Server"
HOMEPAGE="https://www.isc.org/bind/"
SRC_URI="https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz"
S="${WORKDIR}/${PN}-${MY_PV}"
LICENSE="MPL-2.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs test xml"
RESTRICT="!test? ( test )"
DEPEND="
acct-group/named
acct-user/named
dev-libs/json-c:=
dev-libs/userspace-rcu:=
>=dev-libs/libuv-1.37.0:=
sys-libs/zlib:=
dev-libs/openssl:=[-bindist(-)]
>=sys-libs/libcap-2.1.0
dnstap? (
dev-libs/fstrm
dev-libs/protobuf-c
)
doh? ( net-libs/nghttp2:= )
geoip? ( dev-libs/libmaxminddb )
gssapi? ( virtual/krb5 )
idn? ( net-dns/libidn2 )
jemalloc? ( dev-libs/jemalloc:= )
lmdb? ( dev-db/lmdb )
xml? ( dev-libs/libxml2 )
"
RDEPEND="
${DEPEND}
selinux? ( sec-policy/selinux-bind )
sys-process/psmisc
!<net-dns/bind-tools-9.18.0
"
# sphinx required for man-page and html creation
BDEPEND="
dev-lang/perl
virtual/pkgconfig
doc? ( dev-python/sphinx )
test? (
dev-util/cmocka
)
"
src_prepare() {
default
# Don't clobber our toolchain defaults
sed -i -e '/FORTIFY_SOURCE=/d' configure || die
}
src_configure() {
local myeconfargs=(
--prefix="${EPREFIX}"/usr
--sysconfdir="${EPREFIX}"/etc/bind
--localstatedir="${EPREFIX}"/var
--enable-full-report
--without-readline
--with-openssl="${ESYSROOT}"/usr
--with-json-c
--with-zlib
--disable-dnsrps
$(use_enable dnstap)
$(use_enable doh)
$(use_with doh libnghttp2)
$(use_enable static-libs static)
$(use_enable geoip)
$(use_with test cmocka)
$(use_with geoip maxminddb)
$(use_with gssapi)
$(use_with idn libidn2)
$(use_with jemalloc)
$(use_with lmdb)
$(use_with xml libxml2)
)
econf "${myeconfargs[@]}"
}
src_test() {
# system tests ('emake test') require network configuration for IPs etc
# so we run the unit tests instead.
CI=1 emake unit V=1
# libtest is an internal test helper library, it has no tests,
# so suppress the QA warning.
rm tests/libtest/test-suite.log || die
}
src_install() {
default
dodoc README.md
if use doc; then
docinto misc
dodoc -r doc/misc/
docinto html
dodoc -r doc/arm/
docinto dnssec-guide
dodoc -r doc/dnssec-guide/
docinto contrib
dodoc contrib/scripts/nanny.pl
fi
insinto /etc/bind
newins "${FILESDIR}"/named.conf-r8 named.conf
newins "${FILESDIR}"/named.conf.auth named.conf.auth
newinitd "${FILESDIR}"/named.init-r15 named
newconfd "${FILESDIR}"/named.confd-r8 named
newenvd "${FILESDIR}"/10bind.env 10bind
if ! use static-libs ; then
find "${ED}"/usr/lib* -name '*.la' -delete || die
fi
#
# /var/bind
#
# These need to remain for now because CONFIG_PROTECT won't
# save them and we shipped configs for years containing references
# to them.
#
# ftp://ftp.rs.internic.net/domain/named.cache:
insinto /var/bind
newins "${FILESDIR}"/named.cache-r4 named.cache
# bug #450406
dosym named.cache /var/bind/root.cache
#
insinto /var/bind/pri
newins "${FILESDIR}"/localhost.zone-r3 localhost.zone
dosym -r /var/bind/pri /etc/bind/pri
dosym -r /var/bind/sec /etc/bind/sec
dosym -r /var/bind/dyn /etc/bind/dyn
keepdir /var/bind/{pri,sec,dyn} /var/log/named
fowners root:named /{etc,var}/bind /var/log/named /var/bind/{sec,pri,dyn}
fowners root:named /etc/bind/{named.conf,named.conf.auth}
fperms 0640 /etc/bind/{named.conf,named.conf.auth}
fperms 0750 /etc/bind /var/bind/pri
fperms 0770 /var/log/named /var/bind/{,sec,dyn}
systemd_newunit "${FILESDIR}/named.service-r2" named.service
dotmpfiles "${FILESDIR}"/named.conf
exeinto /usr/libexec
doexe "${FILESDIR}/generate-rndc-key.sh"
}
pkg_postinst() {
tmpfiles_process named.conf
if [[ -z ${ROOT} && ! -f ${EPREFIX}/etc/bind/rndc.key && ! -f ${EPREFIX}/etc/bind/rndc.conf ]]; then
einfo "Generating rndc.key"
"${EPREFIX}"/usr/sbin/rndc-confgen -a || die
chown root:named "${EPREFIX}"/etc/bind/rndc.key || die
chmod 0640 "${EPREFIX}"/etc/bind/rndc.key || die
fi
einfo
einfo "You can edit /etc/conf.d/named to customize named settings"
einfo
einfo "If you'd like to run bind in a chroot AND this is a new"
einfo "install OR your bind doesn't already run in a chroot:"
einfo "1) Uncomment and set the CHROOT variable in /etc/conf.d/named."
einfo "2) Run \`emerge --config '=${CATEGORY}/${PF}'\`"
einfo
CHROOT=$(source "${EROOT}"/etc/conf.d/named 2>/dev/null; echo ${CHROOT})
if [[ -n ${CHROOT} ]]; then
elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!"
elog "To enable the old behaviour (without using mount) uncomment the"
elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config."
elog "If you decide to use the new/default method, ensure to make backup"
elog "first and merge your existing configs/zones to /etc/bind and"
elog "/var/bind because bind will now mount the needed directories into"
elog "the chroot dir."
fi
# show only when upgrading to 9.18
if ver_replacing -lt 9.18; then
elog "As this is a major bind version upgrade, please read:"
elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918"
elog "for differences in functionality."
elog ""
ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore"
ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a"
ewarn "root hints file - usually called named.cache - bind will not start as it will not be able"
ewarn "to find the specified file. Best practice is to delete the offending lines that"
ewarn "reference named.cache file from your configuration."
fi
}
pkg_config() {
CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT})
CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT})
CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP})
if [[ -z "${CHROOT}" ]]; then
eerror "This config script is designed to automate setting up"
eerror "a chrooted bind/named. To do so, please first uncomment"
eerror "and set the CHROOT variable in '/etc/conf.d/named'."
die "Unset CHROOT"
fi
if [[ -d "${CHROOT}" ]]; then
ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!"
ewarn "To enable the old behaviour (without using mount) uncomment the"
ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config."
ewarn
ewarn "${CHROOT} already exists... some things might become overridden"
ewarn "press CTRL+C if you don't want to continue"
sleep 10
fi
echo; einfo "Setting up the chroot directory..."
mkdir -m 0750 -p "${CHROOT}" || die
mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die
mkdir -m 0750 -p "${CHROOT}"/etc/bind || die
mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named,run/named} "${CHROOT}"/run/named/ || die
chown root:named \
"${CHROOT}" \
"${CHROOT}"/var/{bind,log/named,run/named} \
"${CHROOT}"/run/named/ \
"${CHROOT}"/etc/bind \
|| die
mknod "${CHROOT}"/dev/null c 1 3 || die
chmod 0666 "${CHROOT}"/dev/null || die
mknod "${CHROOT}"/dev/zero c 1 5 || die
chmod 0666 "${CHROOT}"/dev/zero || die
if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then
cp -a /etc/bind "${CHROOT}"/etc/ || die
cp -a /var/bind "${CHROOT}"/var/ || die
fi
if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then
if use geoip; then
mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die
elif use geoip2; then
mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die
fi
fi
elog "You may need to add the following line to your syslog-ng.conf:"
elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };"
}