mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-11-09 06:37:10 -08:00
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:
@@ -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
|
||||
|
||||
@@ -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\"); };"
|
||||
}
|
||||
Reference in New Issue
Block a user