net-dns/bind: add 9.18.47 (security bug #971607)

Bug: https://bugs.gentoo.org/971607
Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
This commit is contained in:
Patrick McLean
2026-03-27 10:28:51 -07:00
parent 5b35cb25d6
commit cb5945e2ac
2 changed files with 283 additions and 0 deletions
+1
View File
@@ -1,6 +1,7 @@
DIST bind-9.18.38.tar.xz 5362772 BLAKE2B 04a7eeba174dc0333f5f4f3a0767ac66a0f81665dc26dc5a88434ab1c1c12fdd2deaee91b62f77001a92283d40942a0487f6d314b465d9dac6c817d4f78166d4 SHA512 38710646a817dca0df6247b660cd244c79da13d0fed2898da139ae206bc8732fddd93af6fc2cbeca805c0c0d0789ec22eacf26789db288154581478ab2eaf44c
DIST bind-9.18.39.tar.xz 5383056 BLAKE2B 5629a4973273d0ef132c94634be2787a916e6cf2dd2d4dfb12c5a27359ffc8eda26bbfc8650a03fbb5f5b98d834527289a213c74f0c5d31a68f4781053fed3bc SHA512 fd6d45c9cb9c599d8770c18801fad2f177faf3a8af82948800d186ae6dc9eb2c894b61802def0841eb722c615c93c077b55368204f0cf2737a3c50d949efca07
DIST bind-9.18.42.tar.xz 5423412 BLAKE2B d29813a76f18eaf75908e95f18d0c82fb591a1228962ec6d209a08260b2f60327e049fc263bd772eed12bd9c2231c835f1e3f3262df0e0f6811481570e1dc169 SHA512 9133be987e2043aabf8cd7de58f62c41c632b92d9930a3644aaff80b23211e5a967a133080f6e61142408ef752f8a07d6b7c1e775ca8a495bb29ff9d167446c0
DIST bind-9.18.47.tar.xz 5448920 BLAKE2B fea217afba2d40b8d762bee70a0f31c35cd9c6fe1df5e5a7730bd8c5c69e0f0e8df03d8eb276a40851f4105d40210f297d5d3a970ed678d620aa726ddf27b945 SHA512 8135d453c0dd99947c93b9fb8fe1a52c5657f1c675b503dbfb745dfc9bb278121dc307d590bae99b439b093e87cb2bd0bf07d0a32ffd8a39841752559a0df1e8
DIST bind-9.20.13.tar.xz 5762540 BLAKE2B c3738ebe468849293bec3d89499d7607b76fb636c7d21833dd56414fb569c1edfaa84d152ff9febfe0ebd5c65fa351423fbfbeaaee294d57949eb45631fd5623 SHA512 2e4be2153f80f60b97c0854ce69e5eb5c343713f5544ef6b9b9229d1ba65ba13e092c17170ae5ae328a97d0ccd8cb7c8cc8259baea70827a841d251423bc0a1c
DIST bind-9.20.16.tar.xz 5768340 BLAKE2B 1a083efbd7a95df8c9c05966681be577cb119f1a75292cbf65a31cdf0fc7677a70834be4f8599984635b9ea09a909c1453b489e920e5f27502ab2b496aa278b0 SHA512 0cd9d531830ae8fd9df13849f333bc156063836f6ffd3ce757244a3cb58c6608cafb0ba43c22fa2846fdaa42d2dccff4fa84ae92ec69430071769168d57e9e9c
DIST bind-9.20.16.tar.xz.asc 833 BLAKE2B 54eba12d36f9b52ac510ea1d22af6270872d43ef564298a90c5d9b9fb93f806ae7b496c594d9433d53e289609b44ac0fec28ebef06999f684a239dd1ca68bcd9 SHA512 a5d20dd8d1f3aa8238dcaf65d9ac177b40cb0117f1c3075cd334db7200701d1cc1917a3a3005b883d75f63659a343b9ebb0c7f72806829188985d2c759042a90
+282
View File
@@ -0,0 +1,282 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit eapi9-ver systemd tmpfiles toolchain-funcs
MY_PV="${PV/_p/-P}"
MY_PV="${MY_PV/_rc/rc}"
DESCRIPTION="Berkeley Internet Name Domain - Name Server"
HOMEPAGE="https://www.isc.org/software/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"
IUSE="+caps 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/libuv-1.37.0:=
virtual/zlib:=
dev-libs/openssl:=[-bindist(-)]
caps? ( >=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
# Test is (notoriously) slow/resource intensive
sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/isc/netmgr_test.c || die
# Relies on -Wl,--wrap (bug #877741)
if tc-is-lto ; then
sed -i -e 's:ISC_TEST_MAIN:int main(void) { exit(77); }:' tests/ns/query_test.c || die
fi
}
src_configure() {
# configure automagically uses sphinx even if prebuilt man pages
# are available. Force fallback to prebuilt ones.
use doc || export ac_cv_path_SPHINX_BUILD= SPHINX_BUILD=
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
$(use_enable caps linux-caps)
--disable-dnsrps
$(use_enable dnstap)
$(use_enable doh)
$(use_with doh libnghttp2)
$(use_enable fixed-rrset)
$(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
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-r9 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/{bind.keys,named.conf,named.conf.auth}
fperms 0640 /etc/bind/{bind.keys,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} "${CHROOT}"/run/named/ || die
chown root:named \
"${CHROOT}" \
"${CHROOT}"/var/{bind,log/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\"); };"
}