From 927d03bfc81a53d599ef8ca1b3193b9d84d251fc Mon Sep 17 00:00:00 2001 From: Bill Sommerfeld <sommerfeld@hamachi.org> Date: Thu, 25 Jan 2024 08:35:27 +0100 Subject: [PATCH] bind: fix link-local addresses scoped with interface names --- components/network/bind/patches/03-fix-netmask.patch | 11 ++ components/network/bind/patches/04-fix-update-test.patch | 11 ++ components/network/bind/patches/05-if-nametoindex.patch | 10 ++ components/network/bind/Makefile | 12 ++ components/network/bind/test/results-all.master | 205 +++++++++++++++++++++------------------- 5 files changed, 150 insertions(+), 99 deletions(-) diff --git a/components/network/bind/Makefile b/components/network/bind/Makefile index d970a38..3b6020b 100644 --- a/components/network/bind/Makefile +++ b/components/network/bind/Makefile @@ -30,6 +30,7 @@ COMPONENT_NAME= bind COMPONENT_VERSION= 9.18.21 +COMPONENT_REVISION= 1 COMPONENT_SUMMARY= BIND DNS name server and configuration tools. COMPONENT_DESCRIPTION= BIND is open source software that implements the Domain Name System \ (DNS) protocols for the Internet. This package contains the DNS \ @@ -60,6 +61,10 @@ # FYI, The configure options are displayed by 'named -V'. Previously # that was overriden by setting CONFIGARGS to hide build server # pathnames. + +# default LD_OPTION $(LD_B_DIRECT) causes problems with tests which +# interpose on functions in shared libraries +LD_B_DIRECT= # DNS libraries are in usr/lib/dns - Override settings from configure.mk CONFIGURE_LIBDIR.64= $(CONFIGURE_PREFIX)/lib/dns/$(MACH64) @@ -102,6 +107,13 @@ COMPONENT_PRE_TEST_ACTION= ( cd $(BUILD_DIR_64)/bin/tests/system && pfexec sh ./ifconfig.sh up ) COMPONENT_POST_TEST_ACTION= ( cd $(BUILD_DIR_64)/bin/tests/system && pfexec sh ./ifconfig.sh down ) +# If SHELLOPTS is exported (as it is by the userland makefiles), +# then all shell options get exported to child invocations of bash, +# which results in test failures due to nounset and xtrace being +# set unexpectedly, and errors such as "$1: unbound variable" and +# diffs failing due to script tracing in output files. +unexport SHELLOPTS + # Manually added build dependencies REQUIRED_PACKAGES += library/cmocka diff --git a/components/network/bind/patches/03-fix-netmask.patch b/components/network/bind/patches/03-fix-netmask.patch new file mode 100644 index 0000000..302e728 --- /dev/null +++ b/components/network/bind/patches/03-fix-netmask.patch @@ -0,0 +1,11 @@ +--- bind-9.18.21/bin/tests/system/ifconfig.sh.in.~1~ Fri Dec 8 04:09:37 2023 ++++ bind-9.18.21/bin/tests/system/ifconfig.sh.in Wed Jan 24 09:57:02 2024 +@@ -69,7 +69,7 @@ + *-*-solaris2.1[1-9]) + [ "$a" ] && { + /sbin/ipadm create-addr -t -T static \ +- -a $a lo0/bind9v4$int \ ++ -a $a/32 lo0/bind9v4$int \ + || echo failed lo0/bind9v4$int + } + [ "$aaaa" ] && { diff --git a/components/network/bind/patches/04-fix-update-test.patch b/components/network/bind/patches/04-fix-update-test.patch new file mode 100644 index 0000000..77a6282 --- /dev/null +++ b/components/network/bind/patches/04-fix-update-test.patch @@ -0,0 +1,11 @@ +--- bind-9.18.21/tests/dns/update_test.c.~1~ Fri Dec 8 04:09:37 2023 ++++ bind-9.18.21/tests/dns/update_test.c Wed Jan 24 14:18:57 2024 +@@ -49,7 +49,7 @@ + setup_test(void **state) { + UNUSED(state); + +- setenv("TZ", "", 1); ++ setenv("TZ", "GMT0", 1); + + return (0); + } diff --git a/components/network/bind/patches/05-if-nametoindex.patch b/components/network/bind/patches/05-if-nametoindex.patch new file mode 100644 index 0000000..9b4063e --- /dev/null +++ b/components/network/bind/patches/05-if-nametoindex.patch @@ -0,0 +1,10 @@ +--- bind-9.18.21/configure.ac.~2~ Wed Jan 24 14:54:35 2024 ++++ bind-9.18.21/configure.ac Wed Jan 24 16:16:14 2024 +@@ -1025,6 +1025,7 @@ + # + # Check for if_nametoindex() for IPv6 scoped addresses support + # ++AC_SEARCH_LIBS([if_nametoindex], [socket]) + AC_CHECK_FUNCS([if_nametoindex]) + + ISC_ATOMIC_LIBS="" diff --git a/components/network/bind/test/results-all.master b/components/network/bind/test/results-all.master index d92dd8b..a6476b1 100644 --- a/components/network/bind/test/results-all.master +++ b/components/network/bind/test/results-all.master @@ -1,102 +1,109 @@ -FAIL: serve-stale -PASS: doth -PASS: acl -PASS: additional -PASS: addzone -PASS: allow-query -PASS: auth -PASS: autosign -PASS: builtin -PASS: cacheclean -PASS: case -PASS: catz -FAIL: cds -PASS: checkconf -PASS: checknames -PASS: checkzone -PASS: database -PASS: dialup -PASS: dlzexternal -PASS: dns64 -PASS: dsdigest -PASS: dupsigs -PASS: dyndb -PASS: ecdsa -PASS: eddsa -PASS: ednscompliance -PASS: emptyzones -SKIP: enginepkcs11 -PASS: filter-aaaa -PASS: formerr -SKIP: geoip2 -PASS: glue -PASS: idna -PASS: include-multiplecfg -PASS: inline -PASS: integrity -PASS: hooks -PASS: host -PASS: journal -PASS: keepalive -SKIP: keyfromlabel -PASS: legacy -PASS: limits -PASS: logfileconfig -PASS: masterfile -PASS: masterformat -PASS: metadata -PASS: mirror -PASS: mkeys -PASS: names -PASS: notify -PASS: nsec3 -PASS: nslookup -PASS: padding -PASS: pending -PASS: redirect -PASS: rndc -PASS: rootkeysentinel -PASS: rpz -PASS: rrchecker -PASS: rrl -PASS: rrsetorder -PASS: rsabigexponent -FAIL: runtime -PASS: sfcache -PASS: smartsign -PASS: sortlist -PASS: spf -PASS: staticstub -PASS: stub -PASS: synthfromdnssec -PASS: tkey -PASS: tools -PASS: transport-acl -FAIL: tsig -FAIL: tsiggss -PASS: ttl -PASS: unknown -PASS: verify -PASS: views -PASS: wildcard -PASS: xferquota -PASS: zonechecks -PASS: nzd2nzf -PASS: kasp -PASS: keymgr2kasp -PASS: tcp -PASS: pipelined -PASS: checkds -PASS: dispatch -PASS: rpzextra -PASS: shutdown -PASS: timeouts -PASS: qmin -PASS: cookie -# TOTAL: 95 -# PASS: 87 -# SKIP: 3 +# TOTAL: 0 +# PASS: 0 +# SKIP: 0 # XFAIL: 0 -# FAIL: 5 +# FAIL: 0 +# XPASS: 0 +# ERROR: 0 +PASS: aes_test +PASS: buffer_test +PASS: counter_test +PASS: crc64_test +PASS: errno_test +PASS: file_test +PASS: hash_test +PASS: heap_test +PASS: hmac_test +PASS: ht_test +PASS: lex_test +PASS: md_test +PASS: mem_test +PASS: netaddr_test +PASS: netmgr_test +PASS: parse_test +PASS: pool_test +PASS: quota_test +PASS: radix_test +PASS: random_test +PASS: regex_test +PASS: result_test +PASS: safe_test +PASS: siphash_test +PASS: sockaddr_test +PASS: stats_test +PASS: symtab_test +PASS: task_test +PASS: taskpool_test +PASS: time_test +PASS: timer_test +PASS: doh_test +# TOTAL: 32 +# PASS: 32 +# SKIP: 0 +# XFAIL: 0 +# FAIL: 0 +# XPASS: 0 +# ERROR: 0 +PASS: acl_test +PASS: db_test +PASS: dbdiff_test +PASS: dbiterator_test +PASS: dbversion_test +PASS: dh_test +PASS: dispatch_test +PASS: dns64_test +PASS: dst_test +PASS: keytable_test +PASS: name_test +PASS: nsec3_test +PASS: nsec3param_test +PASS: private_test +PASS: rbt_test +PASS: rbtdb_test +PASS: rdata_test +PASS: rdataset_test +PASS: rdatasetstats_test +PASS: resolver_test +PASS: rsa_test +PASS: sigs_test +PASS: time_test +PASS: tsig_test +PASS: update_test +PASS: zonemgr_test +PASS: zt_test +PASS: master_test +# TOTAL: 28 +# PASS: 28 +# SKIP: 0 +# XFAIL: 0 +# FAIL: 0 +# XPASS: 0 +# ERROR: 0 +PASS: listenlist_test +PASS: notify_test +PASS: plugin_test +PASS: query_test +# TOTAL: 4 +# PASS: 4 +# SKIP: 0 +# XFAIL: 0 +# FAIL: 0 +# XPASS: 0 +# ERROR: 0 +PASS: duration_test +PASS: parser_test +# TOTAL: 2 +# PASS: 2 +# SKIP: 0 +# XFAIL: 0 +# FAIL: 0 +# XPASS: 0 +# ERROR: 0 +PASS: resconf_test +# TOTAL: 1 +# PASS: 1 +# SKIP: 0 +# XFAIL: 0 +# FAIL: 0 # XPASS: 0 # ERROR: 0 -- Gitblit v1.9.3