Date: Friday, January 4, 2019 @ 19:21:07 Author: seblu Revision: 342961
archrelease: copy trunk to testing-x86_64 Added: bind/repos/testing-x86_64/ bind/repos/testing-x86_64/01-fs60913.patch (from rev 342960, bind/trunk/01-fs60913.patch) bind/repos/testing-x86_64/127.0.0.zone (from rev 342960, bind/trunk/127.0.0.zone) bind/repos/testing-x86_64/PKGBUILD (from rev 342960, bind/trunk/PKGBUILD) bind/repos/testing-x86_64/empty.zone (from rev 342960, bind/trunk/empty.zone) bind/repos/testing-x86_64/fix-FS#60286.patch (from rev 342960, bind/trunk/fix-FS#60286.patch) bind/repos/testing-x86_64/localhost.ip6.zone (from rev 342960, bind/trunk/localhost.ip6.zone) bind/repos/testing-x86_64/localhost.zone (from rev 342960, bind/trunk/localhost.zone) bind/repos/testing-x86_64/named.conf (from rev 342960, bind/trunk/named.conf) bind/repos/testing-x86_64/named.service (from rev 342960, bind/trunk/named.service) bind/repos/testing-x86_64/sysusers.conf (from rev 342960, bind/trunk/sysusers.conf) bind/repos/testing-x86_64/tmpfiles.conf (from rev 342960, bind/trunk/tmpfiles.conf) --------------------+ 01-fs60913.patch | 45 +++++++++++++++++ 127.0.0.zone | 10 +++ PKGBUILD | 134 +++++++++++++++++++++++++++++++++++++++++++++++++++ empty.zone | 8 +++ fix-FS#60286.patch | 129 +++++++++++++++++++++++++++++++++++++++++++++++++ localhost.ip6.zone | 10 +++ localhost.zone | 11 ++++ named.conf | 72 +++++++++++++++++++++++++++ named.service | 10 +++ sysusers.conf | 1 tmpfiles.conf | 1 11 files changed, 431 insertions(+) Copied: bind/repos/testing-x86_64/01-fs60913.patch (from rev 342960, bind/trunk/01-fs60913.patch) =================================================================== --- testing-x86_64/01-fs60913.patch (rev 0) +++ testing-x86_64/01-fs60913.patch 2019-01-04 19:21:07 UTC (rev 342961) @@ -0,0 +1,45 @@ +From 0e5dd25fc5c70d656666f6d537e93cf346e7f419 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Witold=20Kr=C4=99cicki?= <w...@isc.org> +Date: Thu, 3 Jan 2019 13:06:39 +0100 +Subject: [PATCH] When a forwarder fails and we're not in a forward-only mode + we go back to regular resolution. When this happens the fetch timer is + already running, and we might end up in a situation where we we create a + fetch for qname-minimized query and after that the timer is triggered and the + query is retried (fctx_try) - which causes relaunching of qname-minimization + fetch - and since we already have a qmin fetch for this fctx - assertion + failure. + + +diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c +index 8beecbcb07..ea122bd30c 100644 +--- a/lib/dns/resolver.c ++++ b/lib/dns/resolver.c +@@ -4012,6 +4012,7 @@ fctx_try(fetchctx_t *fctx, bool retrying, bool badcache) { + options &= ~DNS_FETCHOPT_QMINIMIZE; + fctx_increference(fctx); + task = res->buckets[bucketnum].task; ++ fctx_stoptimer(fctx); + result = dns_resolver_createfetch(fctx->res, &fctx->qminname, + fctx->qmintype, &fctx->domain, + &fctx->nameservers, NULL, NULL, 0, +@@ -4343,13 +4344,12 @@ fctx_timeout(isc_task_t *task, isc_event_t *event) { + * timer. + */ + result = fctx_starttimer(fctx); +- if (result != ISC_R_SUCCESS) ++ if (result != ISC_R_SUCCESS) { + fctx_done(fctx, result, __LINE__); +- else +- /* +- * Keep trying. +- */ ++ } else { ++ /* Keep trying */ + fctx_try(fctx, true, false); ++ } + } + + isc_event_free(&event); +-- +2.18.1 + Copied: bind/repos/testing-x86_64/127.0.0.zone (from rev 342960, bind/trunk/127.0.0.zone) =================================================================== --- testing-x86_64/127.0.0.zone (rev 0) +++ testing-x86_64/127.0.0.zone 2019-01-04 19:21:07 UTC (rev 342961) @@ -0,0 +1,10 @@ +@ 1D IN SOA localhost. root.localhost. ( + 42 ; serial (yyyymmdd##) + 3H ; refresh + 15M ; retry + 1W ; expiry + 1D ) ; minimum ttl + + 1D IN NS localhost. + +1.0.0.127.in-addr.arpa. 1D IN PTR localhost. Copied: bind/repos/testing-x86_64/PKGBUILD (from rev 342960, bind/trunk/PKGBUILD) =================================================================== --- testing-x86_64/PKGBUILD (rev 0) +++ testing-x86_64/PKGBUILD 2019-01-04 19:21:07 UTC (rev 342961) @@ -0,0 +1,134 @@ +# Maintainer: Sébastien Luttringer +# Contributor: Gaetan Bisson <bis...@archlinux.org> +# Contributor: judd <jvi...@zeroflux.org> +# Contributor: Mario Vazquez <mario_v...@hotmail.com> + +pkgbase=bind +pkgname=(bind bind-tools) +_pkgver=9.13.5 +pkgver=${_pkgver//-/.} +pkgrel=2 +url='https://www.isc.org/software/bind/' +license=('MPL2') +arch=('x86_64') +options=('!emptydirs') +makedepends=('libcap' 'libxml2' 'zlib' 'krb5' 'e2fsprogs' 'openssl' 'readline' + 'libidn2' 'geoip' 'dnssec-anchors' 'python' 'json-c' 'python-ply' 'lmdb' + 'zlib' 'icu' 'xz') +validpgpkeys=('2B48A38AE1CF9886435F89EE45AC7857189CDBC5' + 'ADBE9446286C794905F1E0756FA6EBC9911A4C02' #ISC, Inc) + 'BE0E9748B718253A28BB89FFF1B11BF05CF02E57' #Internet Systems Consortium, Inc. + ) +source=("https://ftp.isc.org/isc/bind9/${_pkgver}/bind-${_pkgver}.tar.gz"{,.asc} + 'tmpfiles.conf' + 'sysusers.conf' + 'named.conf' + 'named.service' + 'localhost.zone' + 'localhost.ip6.zone' + '127.0.0.zone' + 'empty.zone' + '01-fs60913.patch') +sha1sums=('8c01018e6928e9117cd8e0cdd464efe3b68894c5' + 'SKIP' + 'c5a2bcd9b0f009ae71f3a03fbdbe012196962a11' + '9537f4835a1f736788d0733c7996a10db2d4eee4' + 'c017aae379c32c7cb1aa1ad84776b83e3a5c139f' + '62b06487323dd0d515a4dc659b8ecd193c29107b' + '6704303a6ed431a29b1d8fe7b12decd4d1f2f50f' + '52da8f1c0247a11b16daa4e03d920e8f09315cbe' + '9c33726088342207ad06d33b2c13408290a0c8ad' + '4f4457b310cbbeadca2272eced062a9c2b2b42fe' + 'a71c39b6073be96589e3c0a8cc7430f0e22ebe9c') + +prepare() { + msg2 'Getting a fresh version of root DNS' + # no more using source array, lack of versioning. + curl -o root.hint https://www.internic.net/zones/named.root + [[ -s root.hint ]] + cd bind-$_pkgver + # apply patch from the source array (should be a pacman feature) + local filename + for filename in "${source[@]}"; do + if [[ "$filename" =~ \.patch$ ]]; then + msg2 "Applying patch ${filename##*/}" + patch -p1 -N -i "$srcdir/${filename##*/}" + fi + done +} + +build() { + cd bind-$_pkgver + export CFLAGS+=' -DDIG_SIGCHASE' + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --sbindir=/usr/bin \ + --localstatedir=/var \ + --disable-static \ + --enable-fixed-rrset \ + --enable-full-report \ + --enable-dnsrps \ + --with-python=/usr/bin/python \ + --with-geoip \ + --with-openssl \ + --with-libidn2 \ + --with-libjson \ + --with-libxml2 \ + --with-lmdb \ + --with-libtool + make +} + +package_bind() { + pkgdesc='The ISC DNS Server' + provides=('dns-server') + depends=('glibc' 'libxml2' 'libcap' 'openssl' 'geoip' 'json-c' 'bind-tools' + 'zlib' 'lmdb') + backup=('etc/named.conf' + 'var/named/127.0.0.zone' + 'var/named/localhost.zone' + 'var/named/localhost.ip6.zone' + 'var/named/empty.zone') + + cd "bind-$_pkgver" + install -dm755 "$pkgdir/usr/share/licenses/$pkgname/" + install -Dm644 LICENSE COPYRIGHT "$pkgdir/usr/share/licenses/$pkgname/" + for _d in bin/{check,named,rndc}; do + (cd "$_d" && make DESTDIR="$pkgdir" install) + done + + cd "$srcdir" + install -D -m644 tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" + install -D -m644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" + + install -D -m644 named.service "$pkgdir/usr/lib/systemd/system/named.service" + install -D -m640 -o 0 -g 40 named.conf "$pkgdir/etc/named.conf" + + install -d -m770 -o 0 -g 40 "$pkgdir/var/named" + install -m640 -o 0 -g 40 root.hint "$pkgdir/var/named" + install -m640 -o 0 -g 40 localhost.zone "$pkgdir/var/named" + install -m640 -o 0 -g 40 localhost.ip6.zone "$pkgdir/var/named" + install -m640 -o 0 -g 40 127.0.0.zone "$pkgdir/var/named" + install -m640 -o 0 -g 40 empty.zone "$pkgdir/var/named" +} + +package_bind-tools() { + pkgdesc='The ISC DNS tools' + depends=('glibc' 'libcap' 'libxml2' 'zlib' 'krb5' 'e2fsprogs' 'python' 'bash' + 'openssl' 'readline' 'geoip' 'libidn2' 'dnssec-anchors' 'json-c' + 'lmdb' 'xz' 'icu') + conflicts=('dnsutils') + replaces=('dnsutils' 'host') + provides=("dnsutils=$pkgver") + + cd "bind-$_pkgver" + install -Dm644 COPYRIGHT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + make DESTDIR="$pkgdir" SUBDIRS="" install + (cd lib && make DESTDIR="$pkgdir" install) + for _d in bin/{confgen,dig,dnssec,delv,nsupdate,python,tools}; do + (cd "$_d" && make DESTDIR="$pkgdir" install) + done +} + +# vim:set ts=2 sw=2 et: Copied: bind/repos/testing-x86_64/empty.zone (from rev 342960, bind/trunk/empty.zone) =================================================================== --- testing-x86_64/empty.zone (rev 0) +++ testing-x86_64/empty.zone 2019-01-04 19:21:07 UTC (rev 342961) @@ -0,0 +1,8 @@ +@ 1D IN SOA localhost. root.localhost. ( + 42 ; serial (yyyymmdd##) + 3H ; refresh + 15M ; retry + 1W ; expiry + 1D ) ; minimum ttl + + 1D IN NS localhost. Copied: bind/repos/testing-x86_64/fix-FS#60286.patch (from rev 342960, bind/trunk/fix-FS#60286.patch) =================================================================== --- testing-x86_64/fix-FS#60286.patch (rev 0) +++ testing-x86_64/fix-FS#60286.patch 2019-01-04 19:21:07 UTC (rev 342961) @@ -0,0 +1,129 @@ +diff --git a/lib/irs/getaddrinfo.c b/lib/irs/getaddrinfo.c +index 1b2df6d71c9a3df0e75c1f336833a136e0d6a06c..d5481c7afa605880b7c9e5ca17815d5f80e6ea5a 100644 +--- a/lib/irs/getaddrinfo.c ++++ b/lib/irs/getaddrinfo.c +@@ -181,6 +181,47 @@ static void _freeaddrinfo(struct addrinfo *ai); + #define FOUND_IPV6 0x2 + #define FOUND_MAX 2 + ++/*% ++ * Try converting the scope identifier in 'src' to a network interface index. ++ * Upon success, return true and store the resulting index in 'dst'. Upon ++ * failure, return false. ++ */ ++static bool ++parse_scopeid(const char *src, uint32_t *dst) { ++ uint32_t scopeid = 0; ++ ++ REQUIRE(src != NULL); ++ REQUIRE(dst != NULL); ++ ++#ifdef HAVE_IF_NAMETOINDEX ++ /* ++ * Try using if_nametoindex() first if it is available. As it does not ++ * handle numeric scopes, we do not simply return if it fails. ++ */ ++ scopeid = (uint32_t)if_nametoindex(src); ++#endif ++ ++ /* ++ * Fall back to numeric scope processing if if_nametoindex() either ++ * fails or is unavailable. ++ */ ++ if (scopeid == 0) { ++ char *endptr = NULL; ++ scopeid = (uint32_t)strtoul(src, &endptr, 10); ++ /* ++ * The scope identifier must not be empty and no trailing ++ * characters are allowed after it. ++ */ ++ if (src == endptr || endptr == NULL || *endptr != '\0') { ++ return (false); ++ } ++ } ++ ++ *dst = scopeid; ++ ++ return (true); ++} ++ + #define ISC_AI_MASK (AI_PASSIVE|AI_CANONNAME|AI_NUMERICHOST) + /*% + * Get a list of IP addresses and port numbers for host hostname and +@@ -365,39 +406,24 @@ getaddrinfo(const char *hostname, const char *servname, + char abuf[sizeof(struct in6_addr)]; + char nbuf[NI_MAXHOST]; + int addrsize, addroff; +-#ifdef IRS_HAVE_SIN6_SCOPE_ID +- char *p, *ep; + char ntmp[NI_MAXHOST]; +- uint32_t scopeid; +-#endif ++ uint32_t scopeid = 0; + +-#ifdef IRS_HAVE_SIN6_SCOPE_ID + /* + * Scope identifier portion. + */ + ntmp[0] = '\0'; + if (strchr(hostname, '%') != NULL) { ++ char *p; + strlcpy(ntmp, hostname, sizeof(ntmp)); + p = strchr(ntmp, '%'); +- ep = NULL; +- +- /* +- * Vendors may want to support non-numeric +- * scopeid around here. +- */ + +- if (p != NULL) +- scopeid = (uint32_t)strtoul(p + 1, +- &ep, 10); +- if (p != NULL && ep != NULL && ep[0] == '\0') ++ if (p != NULL && parse_scopeid(p + 1, &scopeid)) { + *p = '\0'; +- else { ++ } else { + ntmp[0] = '\0'; +- scopeid = 0; + } +- } else +- scopeid = 0; +-#endif ++ } + + if (inet_pton(AF_INET, hostname, (struct in_addr *)abuf) + == 1) { +@@ -415,7 +441,6 @@ getaddrinfo(const char *hostname, const char *servname, + addroff = offsetof(struct sockaddr_in, sin_addr); + family = AF_INET; + goto common; +-#ifdef IRS_HAVE_SIN6_SCOPE_ID + } else if (ntmp[0] != '\0' && + inet_pton(AF_INET6, ntmp, abuf) == 1) { + if (family && family != AF_INET6) +@@ -424,7 +449,6 @@ getaddrinfo(const char *hostname, const char *servname, + addroff = offsetof(struct sockaddr_in6, sin6_addr); + family = AF_INET6; + goto common; +-#endif + } else if (inet_pton(AF_INET6, hostname, abuf) == 1) { + if (family != 0 && family != AF_INET6) + return (EAI_NONAME); +@@ -444,12 +468,10 @@ getaddrinfo(const char *hostname, const char *servname, + ai->ai_socktype = socktype; + SIN(ai->ai_addr)->sin_port = port; + memmove((char *)ai->ai_addr + addroff, abuf, addrsize); ++ if (ai->ai_family == AF_INET6) { ++ SIN6(ai->ai_addr)->sin6_scope_id = scopeid; ++ } + if ((flags & AI_CANONNAME) != 0) { +-#ifdef IRS_HAVE_SIN6_SCOPE_ID +- if (ai->ai_family == AF_INET6) +- SIN6(ai->ai_addr)->sin6_scope_id = +- scopeid; +-#endif + if (getnameinfo(ai->ai_addr, + (socklen_t)ai->ai_addrlen, + nbuf, sizeof(nbuf), NULL, 0, Copied: bind/repos/testing-x86_64/localhost.ip6.zone (from rev 342960, bind/trunk/localhost.ip6.zone) =================================================================== --- testing-x86_64/localhost.ip6.zone (rev 0) +++ testing-x86_64/localhost.ip6.zone 2019-01-04 19:21:07 UTC (rev 342961) @@ -0,0 +1,10 @@ +@ 1D IN SOA localhost. root.localhost. ( + 42 ; serial (yyyymmdd##) + 3H ; refresh + 15M ; retry + 1W ; expiry + 1D ) ; minimum ttl + + 1D IN NS localhost. + +1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. 1D IN PTR localhost. Copied: bind/repos/testing-x86_64/localhost.zone (from rev 342960, bind/trunk/localhost.zone) =================================================================== --- testing-x86_64/localhost.zone (rev 0) +++ testing-x86_64/localhost.zone 2019-01-04 19:21:07 UTC (rev 342961) @@ -0,0 +1,11 @@ +@ 1D IN SOA localhost. root.localhost. ( + 42 ; serial (yyyymmdd##) + 3H ; refresh + 15M ; retry + 1W ; expiry + 1D ) ; minimum ttl + + 1D IN NS localhost. + +localhost. 1D IN A 127.0.0.1 +localhost. 1D IN AAAA ::1 Copied: bind/repos/testing-x86_64/named.conf (from rev 342960, bind/trunk/named.conf) =================================================================== --- testing-x86_64/named.conf (rev 0) +++ testing-x86_64/named.conf 2019-01-04 19:21:07 UTC (rev 342961) @@ -0,0 +1,72 @@ +// vim:set ts=4 sw=4 et: + +options { + directory "/var/named"; + pid-file "/run/named/named.pid"; + + // Uncomment these to enable IPv6 connections support + // IPv4 will still work: + // listen-on-v6 { any; }; + // Add this for no IPv4: + // listen-on { none; }; + + allow-recursion { 127.0.0.1; }; + allow-transfer { none; }; + allow-update { none; }; + + version none; + hostname none; + server-id none; +}; + +zone "localhost" IN { + type master; + file "localhost.zone"; +}; + +zone "0.0.127.in-addr.arpa" IN { + type master; + file "127.0.0.zone"; +}; + +zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" { + type master; + file "localhost.ip6.zone"; +}; + +zone "255.in-addr.arpa" IN { + type master; + file "empty.zone"; +}; + +zone "0.in-addr.arpa" IN { + type master; + file "empty.zone"; +}; + +zone "." IN { + type hint; + file "root.hint"; +}; + +//zone "example.org" IN { +// type slave; +// file "example.zone"; +// masters { +// 192.168.1.100; +// }; +// allow-query { any; }; +// allow-transfer { any; }; +//}; + +//logging { +// channel xfer-log { +// file "/var/log/named.log"; +// print-category yes; +// print-severity yes; +// severity info; +// }; +// category xfer-in { xfer-log; }; +// category xfer-out { xfer-log; }; +// category notify { xfer-log; }; +//}; Copied: bind/repos/testing-x86_64/named.service (from rev 342960, bind/trunk/named.service) =================================================================== --- testing-x86_64/named.service (rev 0) +++ testing-x86_64/named.service 2019-01-04 19:21:07 UTC (rev 342961) @@ -0,0 +1,10 @@ +[Unit] +Description=Internet domain name server +After=network.target + +[Service] +ExecStart=/usr/bin/named -f -u named +ExecReload=/usr/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target Copied: bind/repos/testing-x86_64/sysusers.conf (from rev 342960, bind/trunk/sysusers.conf) =================================================================== --- testing-x86_64/sysusers.conf (rev 0) +++ testing-x86_64/sysusers.conf 2019-01-04 19:21:07 UTC (rev 342961) @@ -0,0 +1 @@ +u named 40 "BIND DNS Server" - Copied: bind/repos/testing-x86_64/tmpfiles.conf (from rev 342960, bind/trunk/tmpfiles.conf) =================================================================== --- testing-x86_64/tmpfiles.conf (rev 0) +++ testing-x86_64/tmpfiles.conf 2019-01-04 19:21:07 UTC (rev 342961) @@ -0,0 +1 @@ +d /run/named 0750 named named -