pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/net/bind916
Module Name: pkgsrc
Committed By: taca
Date: Sun Aug 9 15:20:22 UTC 2020
Added Files:
pkgsrc/net/bind916: DESCR MESSAGE.rcd Makefile PLIST buildlink3.mk
builtin.mk distinfo options.mk
pkgsrc/net/bind916/files: named9.sh
pkgsrc/net/bind916/files/smf: manifest.xml named.sh
pkgsrc/net/bind916/patches: patch-bin_dig_dighost.c
patch-bin_dig_include_dig_dig.h patch-bin_named_Makefile.in
patch-bin_named_main.c patch-bin_named_server.c
patch-bin_nsupdate_nsupdate.c patch-bin_pkcs11_pkcs11-keygen.c
patch-bin_tests_system_kasp_tests.sh
patch-bin_tests_system_metadata_tests.sh
patch-bin_tests_system_rpz_tests.sh patch-bin_tools_arpaname.c
patch-bin_tools_nsec3hash.c patch-config.guess patch-config.h.in
patch-config.sub patch-config.threads.in patch-configure
patch-contrib_dlz_config.dlz.in
patch-contrib_dlz_modules_wildcard_dlz__wildcard__dynamic.c
patch-lib_dns_byaddr.c patch-lib_dns_dnsrps.c
patch-lib_dns_gssapi__link.c patch-lib_dns_include_dns_zone.h
patch-lib_dns_lookup.c patch-lib_dns_peer.c patch-lib_dns_rbt.c
patch-lib_dns_rbtdb.c patch-lib_dns_request.c patch-lib_dns_sdb.c
patch-lib_dns_sdlz.c patch-lib_dns_spnego.c
patch-lib_dns_validator.c patch-lib_dns_view.c patch-lib_dns_zone.c
patch-lib_isc_backtrace.c patch-lib_isc_hp.c
patch-lib_isc_include_isc_netmgr.h
patch-lib_isc_include_isc_socket.h
patch-lib_isc_include_isc_types.h patch-lib_isc_netmgr_netmgr.c
patch-lib_isc_netmgr_tcp.c patch-lib_isc_rwlock.c
patch-lib_isc_siphash.c patch-lib_isc_stats.c patch-lib_isc_task.c
patch-lib_isc_unix_include_isc_align.h patch-lib_isc_unix_net.c
patch-lib_isc_unix_socket.c patch-lib_isc_unix_time.c
patch-lib_ns_Makefile.in patch-lib_ns_client.c
patch-lib_ns_include_ns_client.h patch-lib_ns_include_ns_pfilter.h
patch-lib_ns_interfacemgr.c patch-lib_ns_pfilter.c
patch-lib_ns_query.c patch-lib_ns_update.c patch-lib_ns_xfrout.c
patch-make_rules.in
Log Message:
net/bind916: add version 9.16.5 package
Add bind916 version 9.16.5 package (BIND 9.16.5).
BIND, the Berkeley Internet Name Daemon. This package contains the BIND
9.16 release.
* New dnssec-policy statement to configure a key and signing policy for
zones, enabling automatic key regeneration and rollover.
* New network manager based on libuv.
* Added support for the new GeoIP2 geolocation API, libmaxminddb.
* Improved DNSSEC trust anchor configuration using the trust-anchors
statement, permitting configuration of trust anchors in DS as well as
DNSKEY format.
* YAML output for dig, mdig, and delv.
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/net/bind916/DESCR \
pkgsrc/net/bind916/MESSAGE.rcd pkgsrc/net/bind916/Makefile \
pkgsrc/net/bind916/PLIST pkgsrc/net/bind916/buildlink3.mk \
pkgsrc/net/bind916/builtin.mk pkgsrc/net/bind916/distinfo \
pkgsrc/net/bind916/options.mk
cvs rdiff -u -r0 -r1.1 pkgsrc/net/bind916/files/named9.sh
cvs rdiff -u -r0 -r1.1 pkgsrc/net/bind916/files/smf/manifest.xml \
pkgsrc/net/bind916/files/smf/named.sh
cvs rdiff -u -r0 -r1.1 pkgsrc/net/bind916/patches/patch-bin_dig_dighost.c \
pkgsrc/net/bind916/patches/patch-bin_dig_include_dig_dig.h \
pkgsrc/net/bind916/patches/patch-bin_named_Makefile.in \
pkgsrc/net/bind916/patches/patch-bin_named_main.c \
pkgsrc/net/bind916/patches/patch-bin_named_server.c \
pkgsrc/net/bind916/patches/patch-bin_nsupdate_nsupdate.c \
pkgsrc/net/bind916/patches/patch-bin_pkcs11_pkcs11-keygen.c \
pkgsrc/net/bind916/patches/patch-bin_tests_system_kasp_tests.sh \
pkgsrc/net/bind916/patches/patch-bin_tests_system_metadata_tests.sh \
pkgsrc/net/bind916/patches/patch-bin_tests_system_rpz_tests.sh \
pkgsrc/net/bind916/patches/patch-bin_tools_arpaname.c \
pkgsrc/net/bind916/patches/patch-bin_tools_nsec3hash.c \
pkgsrc/net/bind916/patches/patch-config.guess \
pkgsrc/net/bind916/patches/patch-config.h.in \
pkgsrc/net/bind916/patches/patch-config.sub \
pkgsrc/net/bind916/patches/patch-config.threads.in \
pkgsrc/net/bind916/patches/patch-configure \
pkgsrc/net/bind916/patches/patch-contrib_dlz_config.dlz.in \
pkgsrc/net/bind916/patches/patch-contrib_dlz_modules_wildcard_dlz__wildcard__dynamic.c \
pkgsrc/net/bind916/patches/patch-lib_dns_byaddr.c \
pkgsrc/net/bind916/patches/patch-lib_dns_dnsrps.c \
pkgsrc/net/bind916/patches/patch-lib_dns_gssapi__link.c \
pkgsrc/net/bind916/patches/patch-lib_dns_include_dns_zone.h \
pkgsrc/net/bind916/patches/patch-lib_dns_lookup.c \
pkgsrc/net/bind916/patches/patch-lib_dns_peer.c \
pkgsrc/net/bind916/patches/patch-lib_dns_rbt.c \
pkgsrc/net/bind916/patches/patch-lib_dns_rbtdb.c \
pkgsrc/net/bind916/patches/patch-lib_dns_request.c \
pkgsrc/net/bind916/patches/patch-lib_dns_sdb.c \
pkgsrc/net/bind916/patches/patch-lib_dns_sdlz.c \
pkgsrc/net/bind916/patches/patch-lib_dns_spnego.c \
pkgsrc/net/bind916/patches/patch-lib_dns_validator.c \
pkgsrc/net/bind916/patches/patch-lib_dns_view.c \
pkgsrc/net/bind916/patches/patch-lib_dns_zone.c \
pkgsrc/net/bind916/patches/patch-lib_isc_backtrace.c \
pkgsrc/net/bind916/patches/patch-lib_isc_hp.c \
pkgsrc/net/bind916/patches/patch-lib_isc_include_isc_netmgr.h \
pkgsrc/net/bind916/patches/patch-lib_isc_include_isc_socket.h \
pkgsrc/net/bind916/patches/patch-lib_isc_include_isc_types.h \
pkgsrc/net/bind916/patches/patch-lib_isc_netmgr_netmgr.c \
pkgsrc/net/bind916/patches/patch-lib_isc_netmgr_tcp.c \
pkgsrc/net/bind916/patches/patch-lib_isc_rwlock.c \
pkgsrc/net/bind916/patches/patch-lib_isc_siphash.c \
pkgsrc/net/bind916/patches/patch-lib_isc_stats.c \
pkgsrc/net/bind916/patches/patch-lib_isc_task.c \
pkgsrc/net/bind916/patches/patch-lib_isc_unix_include_isc_align.h \
pkgsrc/net/bind916/patches/patch-lib_isc_unix_net.c \
pkgsrc/net/bind916/patches/patch-lib_isc_unix_socket.c \
pkgsrc/net/bind916/patches/patch-lib_isc_unix_time.c \
pkgsrc/net/bind916/patches/patch-lib_ns_Makefile.in \
pkgsrc/net/bind916/patches/patch-lib_ns_client.c \
pkgsrc/net/bind916/patches/patch-lib_ns_include_ns_client.h \
pkgsrc/net/bind916/patches/patch-lib_ns_include_ns_pfilter.h \
pkgsrc/net/bind916/patches/patch-lib_ns_interfacemgr.c \
pkgsrc/net/bind916/patches/patch-lib_ns_pfilter.c \
pkgsrc/net/bind916/patches/patch-lib_ns_query.c \
pkgsrc/net/bind916/patches/patch-lib_ns_update.c \
pkgsrc/net/bind916/patches/patch-lib_ns_xfrout.c \
pkgsrc/net/bind916/patches/patch-make_rules.in
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Added files:
Index: pkgsrc/net/bind916/DESCR
diff -u /dev/null pkgsrc/net/bind916/DESCR:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/DESCR Sun Aug 9 15:20:21 2020
@@ -0,0 +1,11 @@
+BIND, the Berkeley Internet Name Daemon. This package contains the BIND
+9.16 release.
+
+ * New dnssec-policy statement to configure a key and signing policy for
+ zones, enabling automatic key regeneration and rollover.
+ * New network manager based on libuv.
+ * Added support for the new GeoIP2 geolocation API, libmaxminddb.
+ * Improved DNSSEC trust anchor configuration using the trust-anchors
+ statement, permitting configuration of trust anchors in DS as well as
+ DNSKEY format.
+ * YAML output for dig, mdig, and delv.
Index: pkgsrc/net/bind916/MESSAGE.rcd
diff -u /dev/null pkgsrc/net/bind916/MESSAGE.rcd:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/MESSAGE.rcd Sun Aug 9 15:20:21 2020
@@ -0,0 +1,19 @@
+===========================================================================
+$NetBSD: MESSAGE.rcd,v 1.1 2020/08/09 15:20:21 taca Exp $
+
+Please consider running BIND under the pseudo user account "${BIND_USER}"
+in a chroot environment for security reasons.
+
+To achieve this, set the variable "named_chrootdir" in /etc/rc.conf to
+the directory with the chroot environment e.g. "${BIND_DIR}".
+
+Note: named(8) requires writable directories under "/etc/namedb" which
+specified by "directory" in "options" statement:
+
+ cache
+ keys
+ nta
+
+Make sure to these directories exists with writable by "${BIND_USER}" user.
+
+===========================================================================
Index: pkgsrc/net/bind916/Makefile
diff -u /dev/null pkgsrc/net/bind916/Makefile:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/Makefile Sun Aug 9 15:20:21 2020
@@ -0,0 +1,86 @@
+# $NetBSD: Makefile,v 1.1 2020/08/09 15:20:21 taca Exp $
+
+DISTNAME= bind-${BIND_VERSION}
+PKGNAME= ${DISTNAME:S/-P/pl/}
+CATEGORIES= net
+MASTER_SITES= ftp://ftp.isc.org/isc/bind9/${BIND_VERSION}/
+EXTRACT_SUFX= .tar.xz
+
+MAINTAINER= pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE= https://www.isc.org/software/bind/
+COMMENT= Berkeley Internet Name Daemon implementation of DNS, version 9.14
+LICENSE= mpl-2.0
+
+CONFLICTS+= host-[0-9]*
+
+MAKE_JOBS_SAFE= no
+
+BIND_VERSION= 9.16.5
+
+.include "../../mk/bsd.prefs.mk"
+
+BUILD_DEFS+= BIND_DIR VARBASE
+
+.include "options.mk"
+
+USE_TOOLS+= pax perl pkg-config
+USE_LIBTOOL= yes
+GNU_CONFIGURE= yes
+CHECK_FILES_SKIP= bin/tests/system/system-test-driver.sh
+MAKE_ENV+= WRKDIR=${WRKDIR} PREFIX=${PREFIX}
+
+.if ${OPSYS} == "Linux" && !exists(/usr/include/sys/capability.h)
+CONFIGURE_ARGS+= --disable-linux-caps
+.endif
+
+CONFIGURE_ARGS+= --with-libtool
+CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
+CONFIGURE_ARGS+= --localstatedir=${VARBASE}
+CONFIGURE_ARGS+= --with-openssl=${SSLBASE:Q}
+CONFIGURE_ARGS+= --with-python=no
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-m68k) || \
+ !empty(MACHINE_PLATFORM:MNetBSD-*-mipsel) || \
+ !empty(MACHINE_PLATFORM:MNetBSD-*-vax)
+CONFIGURE_ARGS+= --disable-atomic
+.endif
+CONFIGURE_ARGS.DragonFly+= --disable-kqueue
+CONFIGURE_ARGS.SunOS+= --disable-epoll
+
+BUILDLINK_TRANSFORM.SunOS+= rm:-zrelax=transtls
+
+PKG_GROUPS_VARS+= BIND_GROUP
+PKG_USERS_VARS= BIND_USER
+
+PKG_GROUPS= ${BIND_GROUP}
+PKG_USERS= ${BIND_USER}:${BIND_GROUP}
+
+PKG_GECOS.${BIND_USER}= Named pseudo-user
+PKG_HOME.${BIND_USER}= ${BIND_DIR}
+
+DOCS= CHANGES HISTORY OPTIONS README
+
+FILES_SUBST+= BIND_GROUP=${BIND_GROUP} \
+ BIND_USER=${BIND_USER} PAX=${PAX:Q} \
+ SSLBASE=${SSLBASE}
+MESSAGE_SUBST+= BIND_DIR=${BIND_DIR} BIND_USER=${BIND_USER}
+
+DOCDIR= share/doc/bind9
+
+RCD_SCRIPTS= named9
+SMF_METHODS= named
+
+INSTALL_MAKE_FLAGS+= sysconfdir=${PREFIX}/share/examples/bind9
+CONF_FILES+= share/examples/bind9/bind.keys \
+ ${PKG_SYSCONFDIR}/bind.keys
+
+INSTALLATION_DIRS+= ${DOCDIR}
+
+post-install:
+.for f in ${DOCS}
+ ${INSTALL_DATA} ${WRKSRC}/${f} ${DESTDIR}${PREFIX}/${DOCDIR}
+.endfor
+
+.include "../../security/openssl/buildlink3.mk"
+.include "../../devel/libuv/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/net/bind916/PLIST
diff -u /dev/null pkgsrc/net/bind916/PLIST:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/PLIST Sun Aug 9 15:20:21 2020
@@ -0,0 +1,343 @@
+@comment $NetBSD: PLIST,v 1.1 2020/08/09 15:20:21 taca Exp $
+bin/arpaname
+bin/delv
+bin/dig
+${PLIST.dnstap}bin/dnstap-read
+bin/host
+bin/mdig
+bin/named-rrchecker
+bin/nslookup
+bin/nsupdate
+include/bind9/check.h
+include/bind9/getaddresses.h
+include/bind9/version.h
+include/dns/acl.h
+include/dns/adb.h
+include/dns/badcache.h
+include/dns/bit.h
+include/dns/byaddr.h
+include/dns/cache.h
+include/dns/callbacks.h
+include/dns/catz.h
+include/dns/cert.h
+include/dns/client.h
+include/dns/clientinfo.h
+include/dns/compress.h
+include/dns/db.h
+include/dns/dbiterator.h
+include/dns/dbtable.h
+include/dns/diff.h
+include/dns/dispatch.h
+include/dns/dlz.h
+include/dns/dlz_dlopen.h
+include/dns/dns64.h
+include/dns/dnsrps.h
+include/dns/dnssec.h
+include/dns/dnstap.h
+include/dns/ds.h
+include/dns/dsdigest.h
+include/dns/dyndb.h
+include/dns/ecdb.h
+include/dns/ecs.h
+include/dns/edns.h
+include/dns/enumclass.h
+include/dns/enumtype.h
+include/dns/events.h
+include/dns/fixedname.h
+include/dns/forward.h
+include/dns/geoip.h
+include/dns/ipkeylist.h
+include/dns/iptable.h
+include/dns/journal.h
+include/dns/kasp.h
+include/dns/keydata.h
+include/dns/keyflags.h
+include/dns/keymgr.h
+include/dns/keytable.h
+include/dns/keyvalues.h
+include/dns/lib.h
+include/dns/librpz.h
+include/dns/lmdb.h
+include/dns/log.h
+include/dns/lookup.h
+include/dns/master.h
+include/dns/masterdump.h
+include/dns/message.h
+include/dns/name.h
+include/dns/ncache.h
+include/dns/nsec.h
+include/dns/nsec3.h
+include/dns/nta.h
+include/dns/opcode.h
+include/dns/order.h
+include/dns/peer.h
+include/dns/portlist.h
+include/dns/private.h
+include/dns/rbt.h
+include/dns/rcode.h
+include/dns/rdata.h
+include/dns/rdataclass.h
+include/dns/rdatalist.h
+include/dns/rdataset.h
+include/dns/rdatasetiter.h
+include/dns/rdataslab.h
+include/dns/rdatastruct.h
+include/dns/rdatatype.h
+include/dns/request.h
+include/dns/resolver.h
+include/dns/result.h
+include/dns/rootns.h
+include/dns/rpz.h
+include/dns/rriterator.h
+include/dns/rrl.h
+include/dns/sdb.h
+include/dns/sdlz.h
+include/dns/secalg.h
+include/dns/secproto.h
+include/dns/soa.h
+include/dns/ssu.h
+include/dns/stats.h
+include/dns/tcpmsg.h
+include/dns/time.h
+include/dns/timer.h
+include/dns/tkey.h
+include/dns/tsec.h
+include/dns/tsig.h
+include/dns/ttl.h
+include/dns/types.h
+include/dns/update.h
+include/dns/validator.h
+include/dns/version.h
+include/dns/view.h
+include/dns/xfrin.h
+include/dns/zone.h
+include/dns/zonekey.h
+include/dns/zoneverify.h
+include/dns/zt.h
+include/dst/dst.h
+include/dst/gssapi.h
+include/dst/result.h
+include/irs/context.h
+include/irs/dnsconf.h
+include/irs/netdb.h
+include/irs/platform.h
+include/irs/resconf.h
+include/irs/types.h
+include/irs/version.h
+include/isc/aes.h
+include/isc/align.h
+include/isc/app.h
+include/isc/assertions.h
+include/isc/astack.h
+include/isc/atomic.h
+include/isc/backtrace.h
+include/isc/base32.h
+include/isc/base64.h
+include/isc/bind9.h
+include/isc/buffer.h
+include/isc/bufferlist.h
+include/isc/commandline.h
+include/isc/condition.h
+include/isc/counter.h
+include/isc/crc64.h
+include/isc/deprecated.h
+include/isc/dir.h
+include/isc/endian.h
+include/isc/errno.h
+include/isc/error.h
+include/isc/event.h
+include/isc/eventclass.h
+include/isc/file.h
+include/isc/formatcheck.h
+include/isc/fsaccess.h
+include/isc/fuzz.h
+include/isc/hash.h
+include/isc/heap.h
+include/isc/hex.h
+include/isc/hmac.h
+include/isc/hp.h
+include/isc/ht.h
+include/isc/httpd.h
+include/isc/interfaceiter.h
+include/isc/iterated_hash.h
+include/isc/lang.h
+include/isc/lex.h
+include/isc/lfsr.h
+include/isc/lib.h
+include/isc/likely.h
+include/isc/list.h
+include/isc/log.h
+include/isc/magic.h
+include/isc/md.h
+include/isc/mem.h
+include/isc/meminfo.h
+include/isc/mutex.h
+include/isc/mutexatomic.h
+include/isc/mutexblock.h
+include/isc/net.h
+include/isc/netaddr.h
+include/isc/netdb.h
+include/isc/netmgr.h
+include/isc/netscope.h
+include/isc/nonce.h
+include/isc/offset.h
+include/isc/once.h
+include/isc/os.h
+include/isc/parseint.h
+include/isc/platform.h
+include/isc/pool.h
+include/isc/portset.h
+include/isc/print.h
+include/isc/queue.h
+include/isc/quota.h
+include/isc/radix.h
+include/isc/random.h
+include/isc/ratelimiter.h
+include/isc/refcount.h
+include/isc/regex.h
+include/isc/region.h
+include/isc/resource.h
+include/isc/result.h
+include/isc/resultclass.h
+include/isc/rwlock.h
+include/isc/safe.h
+include/isc/serial.h
+include/isc/siphash.h
+include/isc/sockaddr.h
+include/isc/socket.h
+include/isc/stat.h
+include/isc/stats.h
+include/isc/stdatomic.h
+include/isc/stdio.h
+include/isc/stdtime.h
+include/isc/strerr.h
+include/isc/string.h
+include/isc/symtab.h
+include/isc/syslog.h
+include/isc/task.h
+include/isc/taskpool.h
+include/isc/thread.h
+include/isc/time.h
+include/isc/timer.h
+include/isc/tm.h
+include/isc/types.h
+include/isc/utf8.h
+include/isc/util.h
+include/isc/version.h
+include/isccc/alist.h
+include/isccc/base64.h
+include/isccc/cc.h
+include/isccc/ccmsg.h
+include/isccc/events.h
+include/isccc/result.h
+include/isccc/sexpr.h
+include/isccc/symtab.h
+include/isccc/symtype.h
+include/isccc/types.h
+include/isccc/util.h
+include/isccc/version.h
+include/isccfg/aclconf.h
+include/isccfg/cfg.h
+include/isccfg/dnsconf.h
+include/isccfg/grammar.h
+include/isccfg/kaspconf.h
+include/isccfg/log.h
+include/isccfg/namedconf.h
+include/isccfg/version.h
+include/ns/client.h
+include/ns/hooks.h
+include/ns/interfacemgr.h
+include/ns/lib.h
+include/ns/listenlist.h
+include/ns/log.h
+include/ns/notify.h
+include/ns/query.h
+include/ns/server.h
+include/ns/sortlist.h
+include/ns/stats.h
+include/ns/types.h
+include/ns/update.h
+include/ns/version.h
+include/ns/xfrout.h
+include/pk11/constants.h
+include/pk11/internal.h
+include/pk11/pk11.h
+include/pk11/result.h
+include/pk11/site.h
+include/pkcs11/pkcs11.h
+lib/libbind9.la
+lib/libdns.la
+lib/libirs.la
+lib/libisc.la
+lib/libisccc.la
+lib/libisccfg.la
+lib/libns.la
+lib/named/filter-aaaa.so
+man/man1/arpaname.1
+man/man1/delv.1
+man/man1/dig.1
+${PLIST.dnstap}man/man1/dnstap-read.1
+man/man1/host.1
+man/man1/mdig.1
+man/man1/named-rrchecker.1
+man/man1/nslookup.1
+man/man1/nsupdate.1
+man/man5/named.conf.5
+man/man5/rndc.conf.5
+man/man8/ddns-confgen.8
+man/man8/dnssec-cds.8
+man/man8/dnssec-checkds.8
+man/man8/dnssec-coverage.8
+man/man8/dnssec-dsfromkey.8
+man/man8/dnssec-importkey.8
+man/man8/dnssec-keyfromlabel.8
+man/man8/dnssec-keygen.8
+man/man8/dnssec-keymgr.8
+man/man8/dnssec-revoke.8
+man/man8/dnssec-settime.8
+man/man8/dnssec-signzone.8
+man/man8/dnssec-verify.8
+man/man8/filter-aaaa.8
+man/man8/named-checkconf.8
+man/man8/named-checkzone.8
+man/man8/named-compilezone.8
+man/man8/named-journalprint.8
+man/man8/named-nzd2nzf.8
+man/man8/named.8
+man/man8/nsec3hash.8
+${PLIST.pkcs11}man/man8/pkcs11-destroy.8
+${PLIST.pkcs11}man/man8/pkcs11-keygen.8
+${PLIST.pkcs11}man/man8/pkcs11-list.8
+${PLIST.pkcs11}man/man8/pkcs11-tokens.8
+man/man8/rndc-confgen.8
+man/man8/rndc.8
+man/man8/tsig-keygen.8
+sbin/ddns-confgen
+sbin/dnssec-cds
+sbin/dnssec-dsfromkey
+sbin/dnssec-importkey
+sbin/dnssec-keyfromlabel
+sbin/dnssec-keygen
+sbin/dnssec-revoke
+sbin/dnssec-settime
+sbin/dnssec-signzone
+sbin/dnssec-verify
+sbin/named
+sbin/named-checkconf
+sbin/named-checkzone
+sbin/named-compilezone
+sbin/named-journalprint
+${PLIST.lmdb}sbin/named-nzd2nzf
+sbin/nsec3hash
+${PLIST.pkcs11}sbin/pkcs11-destroy
+${PLIST.pkcs11}sbin/pkcs11-keygen
+${PLIST.pkcs11}sbin/pkcs11-list
+${PLIST.pkcs11}sbin/pkcs11-tokens
+sbin/rndc
+sbin/rndc-confgen
+sbin/tsig-keygen
+share/doc/bind9/CHANGES
+share/doc/bind9/HISTORY
+share/doc/bind9/OPTIONS
+share/doc/bind9/README
+share/examples/bind9/bind.keys
Index: pkgsrc/net/bind916/buildlink3.mk
diff -u /dev/null pkgsrc/net/bind916/buildlink3.mk:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/buildlink3.mk Sun Aug 9 15:20:21 2020
@@ -0,0 +1,12 @@
+# $NetBSD: buildlink3.mk,v 1.1 2020/08/09 15:20:21 taca Exp $
+
+BUILDLINK_TREE+= bind
+
+.if !defined(BIND_BUILDLINK3_MK)
+BIND_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.bind+= bind>=9.16.0
+BUILDLINK_PKGSRCDIR.bind?= ../../net/bind916
+.endif # BIND_BUILDLINK3_MK
+
+BUILDLINK_TREE+= -bind
Index: pkgsrc/net/bind916/builtin.mk
diff -u /dev/null pkgsrc/net/bind916/builtin.mk:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/builtin.mk Sun Aug 9 15:20:21 2020
@@ -0,0 +1,92 @@
+# $NetBSD: builtin.mk,v 1.1 2020/08/09 15:20:21 taca Exp $
+
+BUILTIN_PKG:= bind
+
+BUILTIN_FIND_FILES_VAR:= EXE_NAMED
+BUILTIN_FIND_FILES.EXE_NAMED= /usr/sbin/named
+BUILTIN_FIND_LIBS:= bind
+
+.include "../../mk/buildlink3/bsd.builtin.mk"
+
+###
+### Figure out the version of BIND if an ISC BIND named exists on the
+### system.
+###
+.if !defined(BUILTIN_VERSION.bind) && \
+ empty(EXE_NAMED:M__nonexistent__) && \
+ empty(EXE_NAMED:M${LOCALBASE}/*)
+BUILTIN_VERSION.bind!= \
+ ${EXE_NAMED} -v 2>/dev/null | ${HEAD} -1 | \
+ ${AWK} 'BEGIN { v = "4.9.11"; } \
+ /^BIND / { v = $$2; sub("-.*", "", v); } \
+ /^named / { v = $$2; sub("-.*", "", v); } \
+ END { print v; }'
+.endif
+MAKEVARS+= BUILTIN_VERSION.bind
+
+###
+### Determine if there is a built-in implementation of the package and
+### set IS_BUILTIN.<pkg> appropriately ("yes" or "no").
+###
+.if !defined(IS_BUILTIN.bind)
+IS_BUILTIN.bind= no
+. if defined(BUILTIN_VERSION.bind)
+IS_BUILTIN.bind= yes
+. endif
+.endif
+MAKEVARS+= IS_BUILTIN.bind
+
+###
+### If there is a built-in implementation, then set BUILTIN_PKG.<pkg> to
+### a package name to represent the built-in package.
+###
+.if !defined(BUILTIN_PKG.bind) && \
+ !empty(IS_BUILTIN.bind:M[yY][eE][sS]) && \
+ defined(BUILTIN_VERSION.bind)
+BUILTIN_PKG.bind= bind-${BUILTIN_VERSION.bind}
+.endif
+MAKEVARS+= BUILTIN_PKG.bind
+
+###
+### Determine whether we should use the built-in implementation if it
+### exists, and set USE_BUILTIN.<pkg> appropriate ("yes" or "no").
+###
+.if !defined(USE_BUILTIN.bind)
+. if ${PREFER.bind} == "pkgsrc"
+USE_BUILTIN.bind= no
+. else
+USE_BUILTIN.bind= ${IS_BUILTIN.bind}
+. if defined(BUILTIN_PKG.bind) && \
+ !empty(IS_BUILTIN.bind:M[yY][eE][sS])
+USE_BUILTIN.bind= yes
+. for dep in ${BUILDLINK_API_DEPENDS.bind}
+. if !empty(USE_BUILTIN.bind:M[yY][eE][sS])
+USE_BUILTIN.bind!= \
+ if ${PKG_ADMIN} pmatch ${dep:Q} ${BUILTIN_PKG.bind:Q}; then \
+ ${ECHO} yes; \
+ else \
+ ${ECHO} no; \
+ fi
+. endif
+. endfor
+. endif
+. endif # PREFER.bind
+.endif
+MAKEVARS+= USE_BUILTIN.bind
+
+###
+### The section below only applies if we are not including this file
+### solely to determine whether a built-in implementation exists.
+###
+CHECK_BUILTIN.bind?= no
+.if !empty(CHECK_BUILTIN.bind:M[nN][oO])
+
+. if !empty(USE_BUILTIN.bind:M[yY][eE][sS])
+. if !empty(BUILTIN_LIB_FOUND.bind:M[yY][eE][sS])
+BUILDLINK_LDADD.bind?= -lbind
+. endif
+. elif !empty(USE_BUILTIN.bind:M[nN][oO])
+BUILDLINK_LDADD.bind?= -lbind
+. endif
+
+.endif # CHECK_BUILTIN.bind
Index: pkgsrc/net/bind916/distinfo
diff -u /dev/null pkgsrc/net/bind916/distinfo:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/distinfo Sun Aug 9 15:20:21 2020
@@ -0,0 +1,65 @@
+$NetBSD: distinfo,v 1.1 2020/08/09 15:20:21 taca Exp $
+
+SHA1 (bind-9.16.5.tar.xz) = a5b0fffd3a53c06368772c185688207dd57058f1
+RMD160 (bind-9.16.5.tar.xz) = 28228bd5d7531026e9b0cc324235d347e704bf57
+SHA512 (bind-9.16.5.tar.xz) = 789fc19f60e81f67ef13ebacd030ea5d8f8cc42cf5f06a01ee2eefe9b7c6d3b10603a3a6a3df85b0e5d770fcf462ce8dddc3a7e5f7f2dab27aa5879ee5380eb7
+Size (bind-9.16.5.tar.xz) = 3474044 bytes
+SHA1 (patch-bin_dig_dighost.c) = b1073911d80ecd519af98b6678968296ff8c0c98
+SHA1 (patch-bin_dig_include_dig_dig.h) = 10166f5bb98b208c7b10d63eb31e8253f704acc8
+SHA1 (patch-bin_named_Makefile.in) = f1367da6a226ba44d0ee13acf00b8abeb5b1b7eb
+SHA1 (patch-bin_named_main.c) = 408c3f6acd70f20c26801baaa9922091a6a7fe7e
+SHA1 (patch-bin_named_server.c) = 6e59d3f637ebb829eec2f76ba7c350fb5cf9be6d
+SHA1 (patch-bin_nsupdate_nsupdate.c) = 4ccd0e503a972cf16905e999bcc574f8ee0dd85d
+SHA1 (patch-bin_pkcs11_pkcs11-keygen.c) = d953bf48aadcdf7e95975d335167cc50f54ef91e
+SHA1 (patch-bin_tests_system_kasp_tests.sh) = 5243413a7b24beae80afc39daf57bf3b22133730
+SHA1 (patch-bin_tests_system_metadata_tests.sh) = d01a492d0b7738760bdbff714248e279a78fef28
+SHA1 (patch-bin_tests_system_rpz_tests.sh) = 1bc5e0d5c0cc50608e6314c2d2664bd1dc3f6e34
+SHA1 (patch-bin_tools_arpaname.c) = 868da4454d06dc823680cf06a764fa40b8474708
+SHA1 (patch-bin_tools_nsec3hash.c) = 87c3891db62c45cd8ed2b484b17f7bf2e319bef3
+SHA1 (patch-config.guess) = b3edcb0b841ed7251f313af22ca21b5259ab0d04
+SHA1 (patch-config.h.in) = 1df3dd99685700144c05775b8594981fb9bb9bc0
+SHA1 (patch-config.sub) = 021f252966d9499f76fcbc6e0dd84eb9d5babf5e
+SHA1 (patch-config.threads.in) = fc5cc7097d87523a34c0e630cb8dd1d081d859e5
+SHA1 (patch-configure) = 619a7b81131e945361756e9d1971be2ff1a79851
+SHA1 (patch-contrib_dlz_config.dlz.in) = 6c53d61aaaf1a952a867e4c4da0194db94f511d7
+SHA1 (patch-contrib_dlz_modules_wildcard_dlz__wildcard__dynamic.c) = 37ba5f06f4970abaae6d98c4305f6372537a313f
+SHA1 (patch-lib_dns_byaddr.c) = 647ddaaaf040233e18d1a87d83bc2bd63d2a20e3
+SHA1 (patch-lib_dns_dnsrps.c) = b4c66a808eeb1e859801028afacd7237cd89903a
+SHA1 (patch-lib_dns_gssapi__link.c) = acd5f3c975d4edf391e77fd39cfa91810ad17ba2
+SHA1 (patch-lib_dns_include_dns_zone.h) = 8abf4c18935629624e68a14361dbeaf00a440c90
+SHA1 (patch-lib_dns_lookup.c) = 6c7463aca16abf6bd578aba1733a3217608a39d3
+SHA1 (patch-lib_dns_peer.c) = 16cc26fd4e792a23caef6e091f94f974041179e7
+SHA1 (patch-lib_dns_rbt.c) = b52d5b965461a39192d4eab598bc82e54254ab80
+SHA1 (patch-lib_dns_rbtdb.c) = bb3f829cbed23bce624462766aa6d039a0153afe
+SHA1 (patch-lib_dns_request.c) = 82560e819cba0259883da8d47618ffabead22c55
+SHA1 (patch-lib_dns_sdb.c) = ed447ec7a134e620765b25ee36124a19dfd9fab0
+SHA1 (patch-lib_dns_sdlz.c) = 4fc15a577c64501c10c144eab147e54686e80309
+SHA1 (patch-lib_dns_spnego.c) = 56f913c283e3833eab2b8a03c285ab5e6a9f70f1
+SHA1 (patch-lib_dns_validator.c) = 03dd60d4c38be7248d1e07f2c29ddd543b5f7454
+SHA1 (patch-lib_dns_view.c) = 5b092f0344b92d003f1fe1f28e4cc4c76b2505cf
+SHA1 (patch-lib_dns_zone.c) = 900e84e0de403d601df4c30f22758ab26a2a52b5
+SHA1 (patch-lib_isc_backtrace.c) = 1b6bca9b3de7f7298882c6c88274b0baf1dad507
+SHA1 (patch-lib_isc_hp.c) = 4c9646722297460f0e973bd131439b4ede885588
+SHA1 (patch-lib_isc_include_isc_netmgr.h) = 1b59d94e0236922f8fc3118ad775cb8eecf8f033
+SHA1 (patch-lib_isc_include_isc_socket.h) = dc6376cd9e8391fa96efd805faee1a5d0647a142
+SHA1 (patch-lib_isc_include_isc_types.h) = bc0cdeb762d974b7be6e602b7dc2aac17fa7fe2f
+SHA1 (patch-lib_isc_netmgr_netmgr.c) = 63168c8901646e7b2079e1dc3324087508bb1e62
+SHA1 (patch-lib_isc_netmgr_tcp.c) = f71556e21a6416af012b8d37a9ffb7c3ed4aa986
+SHA1 (patch-lib_isc_rwlock.c) = 1d114248ddee20db7a7429afab446f8b2f0dca82
+SHA1 (patch-lib_isc_siphash.c) = 1527f960967148cece7337a453fe868e812fd5f1
+SHA1 (patch-lib_isc_stats.c) = 024a372d9919fa751b894f8fc8267691297f00f4
+SHA1 (patch-lib_isc_task.c) = 103a23c74888edd3ddee0793ce6531cd2e6b87f3
+SHA1 (patch-lib_isc_unix_include_isc_align.h) = 1bbd78f1617a40079d1044175cfe037bbd1d95b2
+SHA1 (patch-lib_isc_unix_net.c) = c654f60a1feefdba9bf980dcfa46ce37f46918aa
+SHA1 (patch-lib_isc_unix_socket.c) = 48fb35ae552164ce2ce3fb0df76db8df4271d2ee
+SHA1 (patch-lib_isc_unix_time.c) = fac9e66754e099f53ba8c499f5f179825a0b0fbd
+SHA1 (patch-lib_ns_Makefile.in) = 5626877ffe97261518f976bb8dd827cdb53668ed
+SHA1 (patch-lib_ns_client.c) = e0453a7483a4f899023e0c5ab970cda241976b90
+SHA1 (patch-lib_ns_include_ns_client.h) = 56009c601d54491ffd16f6438d55206705a5aa23
+SHA1 (patch-lib_ns_include_ns_pfilter.h) = cc86752971b4f9f7492283c4ad3ff29bc1bae237
+SHA1 (patch-lib_ns_interfacemgr.c) = fc31720734b02155acd7fa9b370a6ebb82022532
+SHA1 (patch-lib_ns_pfilter.c) = c2e7c747a7f1faf3c82871581b6eb561a5c31d77
+SHA1 (patch-lib_ns_query.c) = fb9ee13205a95a7fc52893406dbeaf3145640ea6
+SHA1 (patch-lib_ns_update.c) = 30468795b1d8ea5b81ad799a395a8a37ec7fa2d0
+SHA1 (patch-lib_ns_xfrout.c) = 82fe2dd10feaef58a042103b9d417bfeb49d12b7
+SHA1 (patch-make_rules.in) = b4e340237b4d444dbd857a8c2a4760182569173d
Index: pkgsrc/net/bind916/options.mk
diff -u /dev/null pkgsrc/net/bind916/options.mk:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/options.mk Sun Aug 9 15:20:21 2020
@@ -0,0 +1,144 @@
+# $NetBSD: options.mk,v 1.1 2020/08/09 15:20:21 taca Exp $
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.bind916
+PKG_SUPPORTED_OPTIONS= bind-dig-sigchase bind-xml-statistics-server
+PKG_SUPPORTED_OPTIONS+= bind-json-statistics-server blacklist
+PKG_SUPPORTED_OPTIONS+= threads readline lmdb mysql pgsql ldap dlz-filesystem
+PKG_SUPPORTED_OPTIONS+= geoip tuning dnstap # pkcs11
+PKG_SUGGESTED_OPTIONS+= readline
+
+PLIST_VARS+= dnstap lmdb pkcs11
+
+PTHREAD_OPTS+= native
+.include "../../mk/pthread.buildlink3.mk"
+
+.if defined(PTHREAD_TYPE) && (${PTHREAD_TYPE} == "none") || \
+ !empty(MACHINE_PLATFORM:MNetBSD-*-vax) || \
+ !empty(MACHINE_PLATFORM:MNetBSD-*-sparc) || \
+ !empty(MACHINE_PLATFORM:MNetBSD-*-sparc64) || \
+ !empty(MACHINE_PLATFORM:MNetBSD-*-m68k)
+# don't touch PKG_SUGGESTED_OPTIONS
+.else
+PKG_SUGGESTED_OPTIONS+= threads
+.endif
+
+.if ${OPSYS} == "NetBSD"
+. if !empty(OS_VERSION:M[8-9].*)
+PKG_SUGGESTED_OPTIONS+= blacklist
+. endif
+.endif
+
+.include "../../mk/bsd.options.mk"
+
+###
+### The mysql pgsql ldap dlz-filesystem options are all for BIND
+### DLZ (Dynamically Loadable Zones) functionality
+###
+### NOTE: bdb is excluded on purpose as pkgsrc does not contain
+### a bdb v4.1 or 4.2 package which is what BIND needs.
+### The majority of these are compile tested only
+###
+
+.if !empty(PKG_OPTIONS:Mlmdb)
+.include "../../databases/lmdb/buildlink3.mk"
+CONFIGURE_ARGS+= --with-lmdb=${PREFIX}
+PLIST.lmdb= yes
+.endif
+
+.if !empty(PKG_OPTIONS:Mmysql)
+.include "../../mk/mysql.buildlink3.mk"
+CONFIGURE_ARGS+= --with-dlz-mysql=${BUILDLINK_PREFIX.mysql-client}
+.endif
+
+.if !empty(PKG_OPTIONS:Mpgsql)
+.include "../../mk/pgsql.buildlink3.mk"
+CONFIGURE_ARGS+= --with-dlz-postgres=${BUILDLINK_PREFIX.${PGSQL_TYPE}}
+CONFIGURE_ENV+= ac_cv_path_PG_CONFIG=${PREFIX}/bin/pg_config
+.endif
+
+.if !empty(PKG_OPTIONS:Mldap)
+.include "../../databases/openldap-client/buildlink3.mk"
+CONFIGURE_ARGS+= --with-dlz-ldap=${BUILDLINK_PREFIX.openldap-client}
+.endif
+
+.if !empty(PKG_OPTIONS:Mdlz-filesystem)
+CONFIGURE_ARGS+= --with-dlz-filesystem
+.endif
+
+.if !empty(PKG_OPTIONS:Mblacklist)
+CONFIGURE_ARGS+= --with-blacklist=yes
+.else
+CONFIGURE_ARGS+= --with-blacklist=no
+.endif
+
+.if !empty(PKG_OPTIONS:Mgeoip)
+CONFIGURE_ARGS+= --with-geoip=${PREFIX}
+LDFLAGS+= -lGeoIP
+.include "../../net/GeoIP/buildlink3.mk"
+.endif
+
+#.if !empty(PKG_OPTIONS:Mpkcs11)
+#CONFIGURE_ARGS+= --enable-native-pkcs11
+#PLIST.pkcs11= yes
+#.else
+#CONFIGURE_ARGS+= --disable-native-pkcs11
+#.endif
+
+.if !empty(PKG_OPTIONS:Mtuning)
+CONFIGURE_ARGS+= --with-tuning=large
+.endif
+
+.if !empty(PKG_OPTIONS:Mdnstap)
+CONFIGURE_ARGS+= --enable-dnstap
+PLIST.dnstap= yes
+.include "../../net/fstrm/buildlink3.mk"
+.include "../../devel/protobuf/buildlink3.mk"
+.include "../../devel/protobuf-c/buildlink3.mk"
+.endif
+
+###
+### The statistics server in bind99 and later needs libxml2
+###
+.if !empty(PKG_OPTIONS:Mbind-xml-statistics-server)
+.include "../../textproc/libxml2/buildlink3.mk"
+CONFIGURE_ARGS+= --with-libxml2
+LDFLAGS+= -lxml2
+.else
+CONFIGURE_ARGS+= --without-libxml2
+.endif
+
+###
+### The statistics server in bind911 and later supports json
+###
+.if !empty(PKG_OPTIONS:Mbind-json-statistics-server)
+.include "../../textproc/json-c/buildlink3.mk"
+CONFIGURE_ARGS+= --with-libjson
+.else
+CONFIGURE_ARGS+= --without-libjson
+.endif
+
+###
+### pthreads support (also see magic above)
+###
+.if !empty(PKG_OPTIONS:Mthreads)
+PTHREAD_AUTO_VARS= yes
+.endif
+
+###
+### readline support in dig(1) and nsupdate(1).
+###
+.if !empty(PKG_OPTIONS:Mreadline)
+.include "../../mk/readline.buildlink3.mk"
+CONFIGURE_ARGS+= --with-readline
+.else
+CONFIGURE_ARGS+= --without-readline
+.endif
+
+###
+### dig(1) option +sigchase for DNSSEC signature chasing
+###
+.if !empty(PKG_OPTIONS:Mbind-dig-sigchase)
+# If anything else needs to add entries to STD_CDEFINES, this will need
+# to be changed so that the two can cooperate.
+CONFIGURE_ENV+= STD_CDEFINES=-DDIG_SIGCHASE=1
+.endif
Index: pkgsrc/net/bind916/files/named9.sh
diff -u /dev/null pkgsrc/net/bind916/files/named9.sh:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/files/named9.sh Sun Aug 9 15:20:21 2020
@@ -0,0 +1,74 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: named9.sh,v 1.1 2020/08/09 15:20:21 taca Exp $
+#
+
+# PROVIDE: named
+# REQUIRE: NETWORKING mountcritremote syslogd
+# BEFORE: DAEMON
+# KEYWORD: chrootdir
+
+. /etc/rc.subr
+
+name="named"
+rcvar="${name}9"
+command="@PREFIX@/sbin/${name}"
+pidfile="@VARBASE@/run/named/${name}.pid"
+start_precmd="named_precmd"
+extra_commands="reload"
+required_dirs="$named_chrootdir" # if it is set, it must exist
+
+named_precmd()
+{
+ # Die if $named is also set (i.e. the system's named is not disabled
+ if checkyesno named ; then
+ warn \
+ "disable 'named' when setting 'named9'!"
+ return 1
+ fi
+
+ if [ ! -d @VARBASE@/run/named ]; then
+ @MKDIR@ @VARBASE@/run/named
+ fi
+
+ if [ -z "$named_chrootdir" ]; then
+ return 0;
+ fi
+
+ for i in crypto null random urandom
+ do
+ if [ ! -c "${named_chrootdir}/dev/$i" ]; then
+ @RM@ -f "${named_chrootdir}/dev/$i"
+ (cd /dev &&
+ @PAX@ -rw -pe "$i" "${named_chrootdir}/dev")
+ fi
+ done
+
+ if [ -f /etc/localtime ]; then
+ @CMP@ -s /etc/localtime "${named_chrootdir}/etc/localtime" || \
+ @CP@ -p /etc/localtime "${named_chrootdir}/etc/localtime"
+ fi
+
+ if [ -f @SSLBASE@/lib/engines/libgost.so ]; then
+ if [ ! -d ${named_chrootdir}@SSLBASE@/lib/engines ]; then
+ @MKDIR@ ${named_chrootdir}@SSLBASE@/lib/engines
+ fi
+ @CMP@ -s @SSLBASE@/lib/engines/libgost.so "${named_chrootdir}@SSLBASE@/lib/engines/libgost.so" || \
+ @CP@ -p @SSLBASE@/lib/engines/libgost.so "${named_chrootdir}@SSLBASE@/lib/engines/libgost.so"
+ fi
+
+ if [ ! -d ${named_chrootdir}@VARBASE@/run/named ]; then
+ @MKDIR@ ${named_chrootdir}@VARBASE@/run/named
+ @CHOWN@ @BIND_USER@ ${named_chrootdir}@VARBASE@/run/named
+ fi
+
+ @RM@ -f ${pidfile}
+ @LN@ -s "${named_chrootdir}${pidfile}" ${pidfile}
+
+ # Change run_rc_commands()'s internal copy of $named_flags
+ #
+ rc_flags="-u @BIND_USER@ -t ${named_chrootdir} $rc_flags"
+}
+
+load_rc_config "$rcvar"
+run_rc_command "$1"
Index: pkgsrc/net/bind916/files/smf/manifest.xml
diff -u /dev/null pkgsrc/net/bind916/files/smf/manifest.xml:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/files/smf/manifest.xml Sun Aug 9 15:20:21 2020
@@ -0,0 +1,138 @@
+<?xml version="1.0"?>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+-->
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<!--
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ Use is subject to license terms.
+
+ ident "@(#)server.xml 1.8 07/06/19 SMI"
+-->
+<!-- Portions Copyright 2007 Vedran Bender -->
+<service_bundle type='manifest' name='export'>
+ <service name='@SMF_PREFIX@/@SMF_NAME@' type='service' version='1'>
+ <dependency name='filesystem_minimal' grouping='require_all' restart_on='none' type='service'>
+ <service_fmri value='svc:/system/filesystem/local' />
+ </dependency>
+ <dependency name='loopback' grouping='require_any' restart_on='error' type='service'>
+ <service_fmri value='svc:/network/loopback' />
+ </dependency>
+ <dependency name='network' grouping='optional_all' restart_on='error' type='service'>
+ <service_fmri value='svc:/milestone/network' />
+ </dependency>
+ <dependency name='config-files' grouping='require_any' restart_on='refresh' type='path'>
+ <service_fmri value='file://localhost@PKG_SYSCONFDIR@/named.conf' />
+ </dependency>
+ <!--
+ In order to run multiple named(1M) processes with their own
+ configuration file or properties each must have a unique
+ instance.
+ -->
+ <instance name='default' enabled='false'>
+ <exec_method type='method' name='start' exec='@PREFIX@/@SMF_METHOD_FILE.named@ %m %i' timeout_seconds='60'>
+ <method_context>
+ <method_credential user='root' group='root' />
+ </method_context>
+ </exec_method>
+ <exec_method type='method' name='stop' exec='@PREFIX@/@SMF_METHOD_FILE.named@ %m %i %{restarter/contract}' timeout_seconds='60'>
+ <method_context>
+ <method_credential user='root' group='root' />
+ </method_context>
+
+ </exec_method>
+ <!--
+ SIGHUP causes named to reread its configuration file, but not any
+ of the properties below.
+ -->
+ <exec_method type='method' name='refresh' exec=':kill -HUP' timeout_seconds='60'>
+ <method_context />
+ </exec_method>
+ <property_group name='general' type='framework'>
+ <!-- manage DNS server state -->
+ <propval name='action_authorization' type='astring' value='solaris.smf.manage.bind' />
+ <propval name='value_authorization' type='astring' value='solaris.smf.manage.bind' />
+ </property_group>
+ <!-- Default property settings for named(1M) instance. -->
+ <property_group name='options' type='application'>
+ <!--
+ server: specifies an alternative server command. If
+ not specified the default /usr/sbin/named is used.
+ -->
+ <propval name='server' type='astring' value='' />
+ <!--
+ configuration_file: specifies an alternative
+ configuration file to be used. The property is similar
+ to named(1M) command line option '-c'
+ -->
+ <propval name='configuration_file' type='astring' value='' />
+ <!--
+ ip_interfaces: specifies which IP transport BIND will
+ transmit on. Possible values are 'IPv4' or 'IPv6'. Any
+ other setting assumes 'all', the default.
+ Equivalent command line option '-4' or '-6'.
+ -->
+ <propval name='ip_interfaces' type='astring' value='all' />
+ <!--
+ listen_on_port: Specifies the default UDP and TCP port
+ which will be used to listen for DNS requests.
+ Equivalent command line option '-p <integer>'.
+ -->
+ <propval name='listen_on_port' type='integer' value='0' />
+ <!--
+ debug_level: Specifies the default debug level. The
+ default is 0; no debugging. The Higher the number the
+ more verbose debug information becomes.
+ Equivalent command line option '-d <integer>'.
+ -->
+ <propval name='debug_level' type='integer' value='0' />
+ <!--
+ threads: Specifies the number of cpu worker threads to
+ create. The default of 0 causes named to try and
+ determine the number of CPUs present and create one
+ thread per CPU.
+ Equivalent command line option '-n <integer>'.
+ -->
+ <propval name='threads' type='integer' value='0' />
+ <!--
+ chroot_dir: Change the root directory using chroot(2)
+ to directory after processing the command line
+ arguments, but before reading the configuration file.
+ Equivalent command line option '-t <pathname>'.
+ -->
+ <propval name='chroot_dir' type='astring' value='' />
+ <!--
+ user: Change the user id after processing command line
+ arguments, but before reading the configuration file.
+ Equivalent command line option '-u <user>'.
+ -->
+ <propval name='user' type='astring' value='named' />
+ </property_group>
+ </instance>
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>BIND DNS server</loctext>
+ </common_name>
+ <documentation>
+ <manpage title='named' section='1M' manpath='@PREFIX@/@PKGMANDIR@' />
+ </documentation>
+ </template>
+ </service>
+</service_bundle>
Index: pkgsrc/net/bind916/files/smf/named.sh
diff -u /dev/null pkgsrc/net/bind916/files/smf/named.sh:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/files/smf/named.sh Sun Aug 9 15:20:21 2020
@@ -0,0 +1,262 @@
+#!@SMF_METHOD_SHELL@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#pragma ident "@(#)dns-server.sh 1.1 07/03/26 SMI"
+
+# smf_method(5) start/stop script required for server DNS
+
+. /lib/svc/share/smf_include.sh
+
+mount_chroot ()
+{
+ c=$1
+ shift
+ for f in $*; do
+ if [ -z "${f}" -o ! -f "${f}" -o \
+ -z "${c}" -o ! -d "${c}" ]; then
+ exit ${SMF_EXIT_ERR_CONFIG}
+ fi
+
+ umount ${c}/${f} >/dev/null 2>&1
+ mkdir -p `dirname ${c}/${f}`
+ touch ${c}/${f}
+ mount -Flofs ${f} ${c}/${f}
+ done
+}
+
+umount_chroot ()
+{
+ c=$1
+ shift
+ for f in $*; do
+ umount ${c}/${f} >/dev/null 2>&1
+ done
+}
+
+get_config ()
+{
+ configuration_file=@PKG_SYSCONFDIR@/named.conf
+ rndc_config_file=@PKG_SYSCONFDIR@/rndc.conf
+ rndc_key_file=@PKG_SYSCONFDIR@/rndc.key
+ rndc_cmd_opts="-a"
+ libraries="/usr/pkg/lib/engines/libgost.so"
+ cmdopts=""
+ checkopts=""
+ properties="debug_level ip_interfaces listen_on_port
+ threads chroot_dir configuration_file server user"
+
+ for prop in $properties
+ do
+ value=`/usr/bin/svcprop -p options/${prop} ${SMF_FMRI}`
+ if [ -z "${value}" -o "${value}" = '""' ]; then
+ continue;
+ fi
+
+ case $prop in
+ 'debug_level')
+ if [ ${value} -gt 0 ]; then
+ cmdopts="${cmdopts} -d ${value}"
+ fi
+ ;;
+ 'ip_interfaces')
+ case ${value} in
+ 'IPv4')
+ cmdopts="${cmdopts} -4";;
+ 'IPv6')
+ cmdopts="${cmdopts} -6";;
+ 'all')
+ : # Default is all, therefore ignore.
+ ;;
+ *)
+ echo "$I: Unrecognised value in service instance property" >&2
+ echo "$I: options/${prop} : ${value}" >&2
+ ;;
+ esac
+ ;;
+ 'listen_on_port')
+ if [ ${value} -gt 0 ]; then
+ cmdopts="${cmdopts} -p ${value}"
+ fi
+ ;;
+ 'threads')
+ if [ ${value} -gt 0 ]; then
+ cmdopts="${cmdopts} -n ${value}"
+ fi
+ ;;
+ 'chroot_dir')
+ cmdopts="${cmdopts} -t ${value}"
+ checkopts="${checkopts} -t ${value}"
+ chroot_dir=${value};
+ ;;
+ 'configuration_file')
+ cmdopts="${cmdopts} -c ${value}"
+ checkopts="${checkopts} ${value}"
+ configuration_file=${value};
+ ;;
+ 'server')
+ set -- `echo ${value} | /usr/bin/sed -e 's/\\\\//g'`
+ server=$@
+ ;;
+ 'user')
+ cmdopts="${cmdopts} -u ${value}"
+ cmduser=${value};
+ ;;
+ esac
+ done
+
+ configuration_dir=$(sed -n -e 's,^[[:space:]]*directory.*"\(.*\)";,\1,p' \
+ ${configuration_file})
+ [ "${configuration_dir}" == "" ] && configuration_dir=@PKG_SYSCONFDIR@/namedb
+
+ configuration_files=$(sed -n -e \
+ "s,^[[:space:]]*file.*\"\(.*\)\";,${configuration_dir}/\1,p" \
+ ${configuration_file} | sort -u)
+ configuration_files="${configuration_files} ${configuration_file}"
+}
+
+result=${SMF_EXIT_OK}
+
+# Read command line arguments
+method="$1" # %m
+instance="$2" # %i
+contract="$3" # %{restarter/contract}
+
+# Set defaults; SMF_FMRI should have been set, but just in case.
+if [ -z "$SMF_FMRI" ]; then
+ SMF_FMRI="svc:/@SMF_PREFIX@/@SMF_NAME@:${instance}"
+fi
+server="@PREFIX@/sbin/named"
+checkconf="@PREFIX@/sbin/named-checkconf"
+I=`/usr/bin/basename $0`
+
+case "$method" in
+'start')
+ get_config
+
+ # If chroot option is set, note zones(5) are preferred, then
+ # configuration file lives under chroot directory.
+ if [ "${chroot_dir}" != "" ]; then
+ if [ "${chroot_dir}" = "/" ]; then
+ msg="$I: chroot_dir must not be /"
+ echo ${msg} >&2
+ /usr/bin/logger -p daemon.error ${msg}
+ # dns-server should be placed in maintenance state.
+ exit ${SMF_EXIT_ERR_CONFIG}
+ fi
+
+ server="env LD_NOLAZYLOAD=1 ${server}"
+ checkconf="env LD_NOLAZYLOAD=1 ${checkconf}"
+
+ mkdir -p ${chroot_dir}
+
+ if [ "${SMF_ZONENAME}" = "global" ]; then
+ for dev in crypto log null poll random urandom; do
+ rm -f ${chroot_dir}/dev/${dev}
+ pax -rw -H -pe /dev/${dev} ${chroot_dir}
+ done
+ fi
+
+ missing=""
+ for dev in crypto null poll random urandom; do
+ if [ ! -e "${chroot_dir}/dev/${dev}" ]; then
+ missing="${missing} ${dev}"
+ fi
+ done
+
+ if [ ! -z "${missing}" ]; then
+ msg="$I: missing device nodes in ${chroot_dir}: ${missing}"
+ echo ${msg} >&2
+ /usr/bin/logger -p daemon.err ${msg}
+ # dns-server should be placed in maintenance state.
+ exit ${SMF_EXIT_ERR_CONFIG}
+ fi
+
+ mount_chroot ${chroot_dir} ${configuration_files} ${libraries}
+
+ mkdir -p ${chroot_dir}/var/run/named
+ chown ${cmduser}:${cmduser} ${chroot_dir}/var/run/named
+
+ configuration_file=${chroot_dir}${configuration_file}
+ rndc_config_file=${chroot_dir}${rndc_config_file}
+ rndc_key_file=${chroot_dir}${rndc_key_file}
+ rndc_cmd_opts="${rndc_cmd_opts} -t ${chroot_dir}"
+ else
+ mkdir -p 0770 @VARBASE@/run/named
+ chown ${cmduser}:${cmduser} @VARBASE@/run/named
+ fi
+
+ # Check if the rndc config file exists.
+ if [ ! -f ${rndc_config_file} ]; then
+ # If not, check if the default rndc key file exists.
+ if [ ! -f ${rndc_key_file} ]; then
+ echo "$I: Creating default rndc key file: ${rndc_key_file}." >&2
+ @PREFIX@/sbin/rndc-confgen ${rndc_cmd_opts}
+ if [ $? -ne 0 ]; then
+ echo "$I : Warning: rndc configuration failed! Use of 'rndc' to" \
+ "control 'named' may fail and 'named' may report further error" \
+ "messages to the system log. This is not fatal. For more" \
+ "information see rndc(1M) and rndc-confgen(1M)." >&2
+ fi
+ fi
+ fi
+
+ if [ ${result} = ${SMF_EXIT_OK} ]; then
+ ${checkconf} -z ${checkopts}
+ result=$?
+ if [ $result -ne 0 ]; then
+ msg="$I: named-checkconf failed to verify configuration"
+ echo ${msg} >&2
+ /usr/bin/logger -p daemon.error ${msg}
+ if [ "${chroot_dir}" != "" -a "${chroot_dir}" != "/" ]; then
+ umount_chroot ${chroot_dir} ${configuration_files} ${libraries}
+ fi
+ # dns-server should be placed in maintenance state.
+ exit ${SMF_EXIT_ERR_CONFIG}
+ fi
+ fi
+
+ if [ ${result} = ${SMF_EXIT_OK} ]; then
+ echo "$I: Executing: ${server} ${cmdopts}"
+ # Execute named(1M) with relevant command line options.
+ ${server} ${cmdopts}
+ result=$?
+ fi
+ ;;
+'stop')
+ get_config
+
+ smf_kill_contract ${contract} TERM 1
+ [ $? -ne 0 ] && exit 1
+
+ if [ "${chroot_dir}" != "" -a "${chroot_dir}" != "/" ]; then
+ umount_chroot ${chroot_dir} ${configuration_files} ${libraries}
+ fi
+
+ ;;
+*)
+ echo "Usage: $I [stop|start] <instance>" >&2
+ exit 1
+ ;;
+esac
+exit ${result}
Index: pkgsrc/net/bind916/patches/patch-bin_dig_dighost.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-bin_dig_dighost.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-bin_dig_dighost.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-bin_dig_dighost.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- bin/dig/dighost.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ bin/dig/dighost.c
+@@ -164,7 +164,7 @@ isc_mempool_t *commctx = NULL;
+ bool debugging = false;
+ bool debugtiming = false;
+ bool memdebugging = false;
+-char *progname = NULL;
++const char *progname = NULL;
+ isc_mutex_t lookup_lock;
+ dig_lookup_t *current_lookup = NULL;
+
Index: pkgsrc/net/bind916/patches/patch-bin_dig_include_dig_dig.h
diff -u /dev/null pkgsrc/net/bind916/patches/patch-bin_dig_include_dig_dig.h:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-bin_dig_include_dig_dig.h Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-bin_dig_include_dig_dig.h,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- bin/dig/include/dig/dig.h.orig 2020-05-06 09:59:35.000000000 +0000
++++ bin/dig/include/dig/dig.h
+@@ -230,7 +230,7 @@ extern bool free_now;
+ extern bool debugging, debugtiming, memdebugging;
+ extern bool keep_open;
+
+-extern char *progname;
++extern const char *progname;
+ extern int tries;
+ extern int fatalexit;
+ extern bool verbose;
Index: pkgsrc/net/bind916/patches/patch-bin_named_Makefile.in
diff -u /dev/null pkgsrc/net/bind916/patches/patch-bin_named_Makefile.in:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-bin_named_Makefile.in Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-bin_named_Makefile.in,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Dirty hack to prevent WRKDIR reference.
+
+--- bin/named/Makefile.in.orig 2020-05-06 09:59:35.000000000 +0000
++++ bin/named/Makefile.in
+@@ -127,7 +127,7 @@ main.@O@: main.c
+ -DPRODUCT=\"${PRODUCT}\" \
+ -DDESCRIPTION=\"${DESCRIPTION}\" \
+ -DSRCID=\"${SRCID}\" \
+- -DCONFIGARGS="\"${CONFIGARGS}\"" \
++ -DCONFIGARGS="\"${CONFIGARGS:S/${WRKDIR}\/.tools/${PREFIX}/g:S/${WRKDIR}\/.buildlink/${PREFIX}/g}\"" \
+ -DBUILDER="\"make\"" \
+ -DNAMED_LOCALSTATEDIR=\"${localstatedir}\" \
+ -DNAMED_SYSCONFDIR=\"${sysconfdir}\" -c ${srcdir}/main.c
Index: pkgsrc/net/bind916/patches/patch-bin_named_main.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-bin_named_main.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-bin_named_main.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,28 @@
+$NetBSD: patch-bin_named_main.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base including support for blacklistd.
+
+--- bin/named/main.c.orig 2020-06-10 21:01:43.000000000 +0000
++++ bin/named/main.c
+@@ -94,6 +94,10 @@
+ #ifdef HAVE_ZLIB
+ #include <zlib.h>
+ #endif /* ifdef HAVE_ZLIB */
++#ifdef HAVE_BLACKLIST
++#include <ns/pfilter.h>
++#endif /* ifdef HAVE_BLACKLIST */
++
+ /*
+ * Include header files for database drivers here.
+ */
+@@ -1529,6 +1533,10 @@ main(int argc, char *argv[]) {
+
+ parse_command_line(argc, argv);
+
++#ifdef HAVE_BLACKLIST
++ pfilter_enable();
++#endif
++
+ #ifdef ENABLE_AFL
+ if (named_g_fuzz_type != isc_fuzz_none) {
+ named_fuzz_setup();
Index: pkgsrc/net/bind916/patches/patch-bin_named_server.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-bin_named_server.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-bin_named_server.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,39 @@
+$NetBSD: patch-bin_named_server.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base, especially disable checking working directory
+ is writable as BIND_USER in NetBSD base system.
+
+--- bin/named/server.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ bin/named/server.c
+@@ -6667,12 +6667,14 @@ directory_callback(const char *clausenam
+ directory);
+ }
+
++#if 0
+ if (!isc_file_isdirwritable(directory)) {
+ isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
+ NAMED_LOGMODULE_SERVER, ISC_LOG_ERROR,
+ "directory '%s' is not writable", directory);
+ return (ISC_R_NOPERM);
+ }
++#endif
+
+ result = isc_dir_chdir(directory);
+ if (result != ISC_R_SUCCESS) {
+@@ -9110,6 +9112,7 @@ load_configuration(const char *filename,
+ named_os_changeuser();
+ }
+
++#if 0
+ /*
+ * Check that the working directory is writable.
+ */
+@@ -9120,7 +9123,7 @@ load_configuration(const char *filename,
+ result = ISC_R_NOPERM;
+ goto cleanup;
+ }
+-
++#endif
+ #ifdef HAVE_LMDB
+ /*
+ * Reopen NZD databases.
Index: pkgsrc/net/bind916/patches/patch-bin_nsupdate_nsupdate.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-bin_nsupdate_nsupdate.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-bin_nsupdate_nsupdate.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,24 @@
+$NetBSD: patch-bin_nsupdate_nsupdate.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* C syntax.
+
+--- bin/nsupdate/nsupdate.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ bin/nsupdate/nsupdate.c
+@@ -212,8 +212,6 @@ typedef struct nsu_gssinfo {
+ } nsu_gssinfo_t;
+
+ static void
+-failed_gssrequest();
+-static void
+ start_gssrequest(dns_name_t *master);
+ static void
+ send_gssrequest(isc_sockaddr_t *destaddr, dns_message_t *msg,
+@@ -2893,7 +2891,7 @@ get_ticket_realm(isc_mem_t *mctx) {
+ }
+
+ static void
+-failed_gssrequest() {
++failed_gssrequest(void) {
+ seenerror = true;
+
+ dns_name_free(&tmpzonename, gmctx);
Index: pkgsrc/net/bind916/patches/patch-bin_pkcs11_pkcs11-keygen.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-bin_pkcs11_pkcs11-keygen.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-bin_pkcs11_pkcs11-keygen.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,30 @@
+$NetBSD: patch-bin_pkcs11_pkcs11-keygen.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Honor HAVE_PKCS11_ECDSA.
+
+--- bin/pkcs11/pkcs11-keygen.c.orig 2019-02-27 23:42:04.000000000 +0000
++++ bin/pkcs11/pkcs11-keygen.c
+@@ -421,13 +421,23 @@ main(int argc, char *argv[]) {
+ id_offset = ECC_ID;
+
+ if (bits == 256) {
++#if HAVE_PKCS11_ECDSA
+ public_template[4].pValue = pk11_ecc_prime256v1;
+ public_template[4].ulValueLen =
+ sizeof(pk11_ecc_prime256v1);
++#else
++ fprintf(stderr, "PRIME256v1 is not supported\n");
++ usage();
++#endif
+ } else {
++#if HAVE_PKCS11_ECDSA
+ public_template[4].pValue = pk11_ecc_secp384r1;
+ public_template[4].ulValueLen =
+ sizeof(pk11_ecc_secp384r1);
++#else
++ fprintf(stderr, "SEP384r1 is not supported\n");
++ usage();
++#endif
+ }
+
+ break;
Index: pkgsrc/net/bind916/patches/patch-bin_tests_system_kasp_tests.sh
diff -u /dev/null pkgsrc/net/bind916/patches/patch-bin_tests_system_kasp_tests.sh:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-bin_tests_system_kasp_tests.sh Sun Aug 9 15:20:22 2020
@@ -0,0 +1,225 @@
+$NetBSD: patch-bin_tests_system_kasp_tests.sh,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+Fix shell portability.
+
+--- bin/tests/system/kasp/tests.sh.orig 2020-07-03 10:44:14.000000000 +0000
++++ bin/tests/system/kasp/tests.sh
+@@ -320,7 +320,7 @@ check_key() {
+ # Check file existence.
+ [ -s "$KEY_FILE" ] || ret=1
+ [ -s "$PRIVATE_FILE" ] || ret=1
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ [ -s "$STATE_FILE" ] || ret=1
+ fi
+ [ "$ret" -eq 0 ] || log_error "${BASE_FILE} files missing"
+@@ -331,7 +331,7 @@ check_key() {
+ KEY_CREATED=$(awk '{print $3}' < "${ZONE}.${KEY_ID}.${_alg_num}.created")
+
+ grep "Created: ${KEY_CREATED}" "$PRIVATE_FILE" > /dev/null || log_error "mismatch created in $PRIVATE_FILE"
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "Generated: ${KEY_CREATED}" "$STATE_FILE" > /dev/null || log_error "mismatch generated in $STATE_FILE"
+ fi
+
+@@ -344,9 +344,9 @@ check_key() {
+ grep "Private-key-format: v1.3" "$PRIVATE_FILE" > /dev/null || log_error "mismatch private key format in $PRIVATE_FILE"
+ grep "Algorithm: ${_alg_num} (${_alg_string})" "$PRIVATE_FILE" > /dev/null || log_error "mismatch algorithm in $PRIVATE_FILE"
+ # Now check the key state file.
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "This is the state of key ${_key_id}, for ${_zone}." "$STATE_FILE" > /dev/null || log_error "mismatch top comment in $STATE_FILE"
+- if [ "$_lifetime" == "none" ]; then
++ if [ "$_lifetime" = "none" ]; then
+ grep "Lifetime: " "$STATE_FILE" > /dev/null && log_error "unexpected lifetime in $STATE_FILE"
+ else
+ grep "Lifetime: ${_lifetime}" "$STATE_FILE" > /dev/null || log_error "mismatch lifetime in $STATE_FILE"
+@@ -438,13 +438,13 @@ check_timingmetadata() {
+ if [ "$_published" = "none" ]; then
+ grep "; Publish:" "${_key_file}" > /dev/null && log_error "unexpected publish comment in ${_key_file}"
+ grep "Publish:" "${_private_file}" > /dev/null && log_error "unexpected publish in ${_private_file}"
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "Published: " "${_state_file}" > /dev/null && log_error "unexpected publish in ${_state_file}"
+ fi
+ else
+ grep "; Publish: $_published" "${_key_file}" > /dev/null || log_error "mismatch publish comment in ${_key_file} (expected ${_published})"
+ grep "Publish: $_published" "${_private_file}" > /dev/null || log_error "mismatch publish in ${_private_file} (expected ${_published})"
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "Published: $_published" "${_state_file}" > /dev/null || log_error "mismatch publish in ${_state_file} (expected ${_published})"
+ fi
+ fi
+@@ -452,13 +452,13 @@ check_timingmetadata() {
+ if [ "$_syncpublish" = "none" ]; then
+ grep "; SyncPublish:" "${_key_file}" > /dev/null && log_error "unexpected syncpublish comment in ${_key_file}"
+ grep "SyncPublish:" "${_private_file}" > /dev/null && log_error "unexpected syncpublish in ${_private_file}"
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "PublishCDS: " "${_state_file}" > /dev/null && log_error "unexpected syncpublish in ${_state_file}"
+ fi
+ else
+ grep "; SyncPublish: $_syncpublish" "${_key_file}" > /dev/null || log_error "mismatch syncpublish comment in ${_key_file} (expected ${_syncpublish})"
+ grep "SyncPublish: $_syncpublish" "${_private_file}" > /dev/null || log_error "mismatch syncpublish in ${_private_file} (expected ${_syncpublish})"
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "PublishCDS: $_syncpublish" "${_state_file}" > /dev/null || log_error "mismatch syncpublish in ${_state_file} (expected ${_syncpublish})"
+ fi
+ fi
+@@ -466,13 +466,13 @@ check_timingmetadata() {
+ if [ "$_active" = "none" ]; then
+ grep "; Activate:" "${_key_file}" > /dev/null && log_error "unexpected active comment in ${_key_file}"
+ grep "Activate:" "${_private_file}" > /dev/null && log_error "unexpected active in ${_private_file}"
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "Active: " "${_state_file}" > /dev/null && log_error "unexpected active in ${_state_file}"
+ fi
+ else
+ grep "; Activate: $_active" "${_key_file}" > /dev/null || log_error "mismatch active comment in ${_key_file} (expected ${_active})"
+ grep "Activate: $_active" "${_private_file}" > /dev/null || log_error "mismatch active in ${_private_file} (expected ${_active})"
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "Active: $_active" "${_state_file}" > /dev/null || log_error "mismatch active in ${_state_file} (expected ${_active})"
+ fi
+ fi
+@@ -480,13 +480,13 @@ check_timingmetadata() {
+ if [ "$_retired" = "none" ]; then
+ grep "; Inactive:" "${_key_file}" > /dev/null && log_error "unexpected retired comment in ${_key_file}"
+ grep "Inactive:" "${_private_file}" > /dev/null && log_error "unexpected retired in ${_private_file}"
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "Retired: " "${_state_file}" > /dev/null && log_error "unexpected retired in ${_state_file}"
+ fi
+ else
+ grep "; Inactive: $_retired" "${_key_file}" > /dev/null || log_error "mismatch retired comment in ${_key_file} (expected ${_retired})"
+ grep "Inactive: $_retired" "${_private_file}" > /dev/null || log_error "mismatch retired in ${_private_file} (expected ${_retired})"
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "Retired: $_retired" "${_state_file}" > /dev/null || log_error "mismatch retired in ${_state_file} (expected ${_retired})"
+ fi
+ fi
+@@ -494,13 +494,13 @@ check_timingmetadata() {
+ if [ "$_revoked" = "none" ]; then
+ grep "; Revoke:" "${_key_file}" > /dev/null && log_error "unexpected revoked comment in ${_key_file}"
+ grep "Revoke:" "${_private_file}" > /dev/null && log_error "unexpected revoked in ${_private_file}"
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "Revoked: " "${_state_file}" > /dev/null && log_error "unexpected revoked in ${_state_file}"
+ fi
+ else
+ grep "; Revoke: $_revoked" "${_key_file}" > /dev/null || log_error "mismatch revoked comment in ${_key_file} (expected ${_revoked})"
+ grep "Revoke: $_revoked" "${_private_file}" > /dev/null || log_error "mismatch revoked in ${_private_file} (expected ${_revoked})"
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "Revoked: $_revoked" "${_state_file}" > /dev/null || log_error "mismatch revoked in ${_state_file} (expected ${_revoked})"
+ fi
+ fi
+@@ -508,13 +508,13 @@ check_timingmetadata() {
+ if [ "$_removed" = "none" ]; then
+ grep "; Delete:" "${_key_file}" > /dev/null && log_error "unexpected removed comment in ${_key_file}"
+ grep "Delete:" "${_private_file}" > /dev/null && log_error "unexpected removed in ${_private_file}"
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "Removed: " "${_state_file}" > /dev/null && log_error "unexpected removed in ${_state_file}"
+ fi
+ else
+ grep "; Delete: $_removed" "${_key_file}" > /dev/null || log_error "mismatch removed comment in ${_key_file} (expected ${_removed})"
+ grep "Delete: $_removed" "${_private_file}" > /dev/null || log_error "mismatch removed in ${_private_file} (expected ${_removed})"
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "Removed: $_removed" "${_state_file}" > /dev/null || log_error "mismatch removed in ${_state_file} (expected ${_removed})"
+ fi
+ fi
+@@ -586,7 +586,7 @@ key_unused() {
+ grep "Revoke:" "$PRIVATE_FILE" > /dev/null && log_error "unexpected revoked in $PRIVATE_FILE"
+ grep "Delete:" "$PRIVATE_FILE" > /dev/null && log_error "unexpected removed in $PRIVATE_FILE"
+
+- if [ "$_legacy" == "no" ]; then
++ if [ "$_legacy" = "no" ]; then
+ grep "Published: " "$STATE_FILE" > /dev/null && log_error "unexpected publish in $STATE_FILE"
+ grep "Active: " "$STATE_FILE" > /dev/null && log_error "unexpected active in $STATE_FILE"
+ grep "Retired: " "$STATE_FILE" > /dev/null && log_error "unexpected retired in $STATE_FILE"
+@@ -1324,7 +1324,7 @@ set_keytimes_algorithm_policy() {
+ set_keytime "KEY1" "PUBLISHED" "${created}"
+ set_keytime "KEY1" "ACTIVE" "${created}"
+ # Key was pregenerated.
+- if [ "$1" == "pregenerated" ]; then
++ if [ "$1" = "pregenerated" ]; then
+ keyfile=$(key_get KEY1 BASEFILE)
+ grep "; Publish:" "${keyfile}.key" > published.test${n}.key1
+ published=$(awk '{print $3}' < published.test${n}.key1)
+@@ -1351,7 +1351,7 @@ set_keytimes_algorithm_policy() {
+ set_keytime "KEY2" "PUBLISHED" "${created}"
+ set_keytime "KEY2" "ACTIVE" "${created}"
+ # Key was pregenerated.
+- if [ "$1" == "pregenerated" ]; then
++ if [ "$1" = "pregenerated" ]; then
+ keyfile=$(key_get KEY2 BASEFILE)
+ grep "; Publish:" "${keyfile}.key" > published.test${n}.key2
+ published=$(awk '{print $3}' < published.test${n}.key2)
+@@ -1374,7 +1374,7 @@ set_keytimes_algorithm_policy() {
+ set_keytime "KEY3" "PUBLISHED" "${created}"
+ set_keytime "KEY3" "ACTIVE" "${created}"
+ # Key was pregenerated.
+- if [ "$1" == "pregenerated" ]; then
++ if [ "$1" = "pregenerated" ]; then
+ keyfile=$(key_get KEY3 BASEFILE)
+ grep "; Publish:" "${keyfile}.key" > published.test${n}.key3
+ published=$(awk '{print $3}' < published.test${n}.key3)
+@@ -2541,12 +2541,12 @@ rollover_predecessor_keytimes() {
+ set_addkeytime "KEY1" "PUBLISHED" "${_created}" "${_addtime}"
+ set_addkeytime "KEY1" "SYNCPUBLISH" "${_created}" "${_addtime}"
+ set_addkeytime "KEY1" "ACTIVE" "${_created}" "${_addtime}"
+- [ "$Lksk" == 0 ] || set_retired_removed "KEY1" "${Lksk}" "${IretKSK}"
++ [ "$Lksk" = 0 ] || set_retired_removed "KEY1" "${Lksk}" "${IretKSK}"
+
+ _created=$(key_get KEY2 CREATED)
+ set_addkeytime "KEY2" "PUBLISHED" "${_created}" "${_addtime}"
+ set_addkeytime "KEY2" "ACTIVE" "${_created}" "${_addtime}"
+- [ "$Lzsk" == 0 ] || set_retired_removed "KEY2" "${Lzsk}" "${IretZSK}"
++ [ "$Lzsk" = 0 ] || set_retired_removed "KEY2" "${Lzsk}" "${IretZSK}"
+ }
+
+ # Key properties.
+@@ -2994,7 +2994,7 @@ csk_rollover_predecessor_keytimes() {
+ set_addkeytime "KEY1" "PUBLISHED" "${_created}" "${_addksktime}"
+ set_addkeytime "KEY1" "SYNCPUBLISH" "${_created}" "${_addzsktime}"
+ set_addkeytime "KEY1" "ACTIVE" "${_created}" "${_addzsktime}"
+- [ "$Lcsk" == 0 ] || set_retired_removed "KEY1" "${Lcsk}" "${IretCSK}"
++ [ "$Lcsk" = 0 ] || set_retired_removed "KEY1" "${Lcsk}" "${IretCSK}"
+ }
+
+ #
+@@ -3908,8 +3908,8 @@ dnssec_verify
+ n=$((n+1))
+ echo_i "check that of zone ${ZONE} migration to dnssec-policy uses the same keys ($n)"
+ ret=0
+-[ $_migrate_ksk == $(key_get KEY1 ID) ] || log_error "mismatch ksk tag"
+-[ $_migrate_zsk == $(key_get KEY2 ID) ] || log_error "mismatch zsk tag"
++[ $_migrate_ksk = $(key_get KEY1 ID) ] || log_error "mismatch ksk tag"
++[ $_migrate_zsk = $(key_get KEY2 ID) ] || log_error "mismatch zsk tag"
+ status=$((status+ret))
+
+ # Test migration to dnssec-policy, existing keys do not match key algorithm.
+@@ -4024,8 +4024,8 @@ dnssec_verify
+ n=$((n+1))
+ echo_i "check that of zone ${ZONE} migration to dnssec-policy keeps existing keys ($n)"
+ ret=0
+-[ $_migratenomatch_algnum_ksk == $(key_get KEY1 ID) ] || log_error "mismatch ksk tag"
+-[ $_migratenomatch_algnum_zsk == $(key_get KEY2 ID) ] || log_error "mismatch zsk tag"
++[ $_migratenomatch_algnum_ksk = $(key_get KEY1 ID) ] || log_error "mismatch ksk tag"
++[ $_migratenomatch_algnum_zsk = $(key_get KEY2 ID) ] || log_error "mismatch zsk tag"
+ status=$((status+ret))
+
+ # Test migration to dnssec-policy, existing keys do not match key length.
+@@ -4141,8 +4141,8 @@ dnssec_verify
+ n=$((n+1))
+ echo_i "check that of zone ${ZONE} migration to dnssec-policy keeps existing keys ($n)"
+ ret=0
+-[ $_migratenomatch_alglen_ksk == $(key_get KEY1 ID) ] || log_error "mismatch ksk tag"
+-[ $_migratenomatch_alglen_zsk == $(key_get KEY2 ID) ] || log_error "mismatch zsk tag"
++[ $_migratenomatch_alglen_ksk = $(key_get KEY1 ID) ] || log_error "mismatch ksk tag"
++[ $_migratenomatch_alglen_zsk = $(key_get KEY2 ID) ] || log_error "mismatch zsk tag"
+ status=$((status+ret))
+
+ #
Index: pkgsrc/net/bind916/patches/patch-bin_tests_system_metadata_tests.sh
diff -u /dev/null pkgsrc/net/bind916/patches/patch-bin_tests_system_metadata_tests.sh:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-bin_tests_system_metadata_tests.sh Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-bin_tests_system_metadata_tests.sh,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Avoid using "==" for argument of test(1).
+
+--- bin/tests/system/metadata/tests.sh.orig 2018-07-03 06:56:55.000000000 +0000
++++ bin/tests/system/metadata/tests.sh
+@@ -139,7 +139,7 @@ status=`expr $status + $ret`
+
+ echo_i "checking warning about permissions change on key with dnssec-settime ($n)"
+ uname=`uname -o 2> /dev/null`
+-if [ Cygwin == "$uname" ]; then
++if [ Cygwin = "$uname" ]; then
+ echo_i "Cygwin detected, skipping"
+ else
+ ret=0
Index: pkgsrc/net/bind916/patches/patch-bin_tests_system_rpz_tests.sh
diff -u /dev/null pkgsrc/net/bind916/patches/patch-bin_tests_system_rpz_tests.sh:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-bin_tests_system_rpz_tests.sh Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-bin_tests_system_rpz_tests.sh,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Avoid using "==" for argument of test(1).
+
+--- bin/tests/system/rpz/tests.sh.orig 2019-04-06 20:09:59.000000000 +0000
++++ bin/tests/system/rpz/tests.sh
+@@ -209,7 +209,7 @@ restart () {
+ fi
+ fi
+ rm -f ns$1/*.jnl
+- if [ "$2" == "rebuild-bl-rpz" ]; then
++ if [ "$2" = "rebuild-bl-rpz" ]; then
+ if test -f ns$1/base.db; then
+ for NM in ns$1/bl*.db; do
+ cp -f ns$1/base.db $NM
Index: pkgsrc/net/bind916/patches/patch-bin_tools_arpaname.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-bin_tools_arpaname.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-bin_tools_arpaname.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-bin_tools_arpaname.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* C syntax.
+
+--- bin/tools/arpaname.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ bin/tools/arpaname.c
+@@ -14,7 +14,7 @@
+ #include <isc/net.h>
+ #include <isc/print.h>
+
+-#define UNUSED(x) (void)(x)
++#define UNUSED(x) (void)&(x)
+
+ int
+ main(int argc, char *argv[]) {
Index: pkgsrc/net/bind916/patches/patch-bin_tools_nsec3hash.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-bin_tools_nsec3hash.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-bin_tools_nsec3hash.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-bin_tools_nsec3hash.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* C syntax.
+
+--- bin/tools/nsec3hash.c.orig 2019-04-06 20:09:59.000000000 +0000
++++ bin/tools/nsec3hash.c
+@@ -56,7 +56,7 @@ check_result(isc_result_t result, const
+ }
+
+ static void
+-usage() {
++usage(void) {
+ fprintf(stderr, "Usage: %s salt algorithm iterations domain\n",
+ program);
+ fprintf(stderr, " %s -r algorithm flags iterations salt domain\n",
Index: pkgsrc/net/bind916/patches/patch-config.guess
diff -u /dev/null pkgsrc/net/bind916/patches/patch-config.guess:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-config.guess Sun Aug 9 15:20:22 2020
@@ -0,0 +1,627 @@
+$NetBSD: patch-config.guess,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- config.guess.orig 2020-05-06 09:59:35.000000000 +0000
++++ config.guess
+@@ -1,8 +1,8 @@
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+-# Copyright 1992-2013 Free Software Foundation, Inc.
++# Copyright 1992-2017 Free Software Foundation, Inc.
+
+-timestamp='2013-11-29'
++timestamp='2017-01-01'
+
+ # This file is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+@@ -24,12 +24,12 @@ timestamp='2013-11-29'
+ # program. This Exception is an additional permission under section 7
+ # of the GNU General Public License, version 3 ("GPLv3").
+ #
+-# Originally written by Per Bothner.
++# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
+ #
+ # You can get the latest version of this script from:
+-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+ #
+-# Please send patches with a ChangeLog entry to config-patches%gnu.org@localhost.
++# Please send patches to <config-patches%gnu.org@localhost>.
+
+
+ me=`echo "$0" | sed -e 's,.*/,,'`
+@@ -50,7 +50,7 @@ version="\
+ GNU config.guess ($timestamp)
+
+ Originally written by Per Bothner.
+-Copyright 1992-2013 Free Software Foundation, Inc.
++Copyright 1992-2017 Free Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -149,7 +149,7 @@ Linux|GNU|GNU/*)
+ LIBC=gnu
+ #endif
+ EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ ;;
+ esac
+
+@@ -168,19 +168,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
++ UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
++ /sbin/$sysctl 2>/dev/null || \
++ /usr/sbin/$sysctl 2>/dev/null || \
++ echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
++ earmv*)
++ arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
++ endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
++ machine=${arch}${endian}-unknown
++ ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+- # to ELF recently, or will in the future.
++ # to ELF recently (or will in the future) and ABI.
+ case "${UNAME_MACHINE_ARCH}" in
++ earm*)
++ os=netbsdelf
++ ;;
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+@@ -197,6 +207,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
+ os=netbsd
+ ;;
+ esac
++ # Determine ABI tags.
++ case "${UNAME_MACHINE_ARCH}" in
++ earm*)
++ expr='s/^earmv[0-9]/-eabi/;s/eb$//'
++ abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
++ ;;
++ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+@@ -207,13 +224,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
+ release='-gnu'
+ ;;
+ *)
+- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++ release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+- echo "${machine}-${os}${release}"
++ echo "${machine}-${os}${release}${abi}"
+ exit ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+@@ -223,6 +240,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
++ *:LibertyBSD:*:*)
++ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
++ echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
++ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit ;;
+@@ -235,6 +256,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
++ *:Sortix:*:*)
++ echo ${UNAME_MACHINE}-unknown-sortix
++ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+@@ -251,42 +275,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+- UNAME_MACHINE="alpha" ;;
++ UNAME_MACHINE=alpha ;;
+ "EV4.5 (21064)")
+- UNAME_MACHINE="alpha" ;;
++ UNAME_MACHINE=alpha ;;
+ "LCA4 (21066/21068)")
+- UNAME_MACHINE="alpha" ;;
++ UNAME_MACHINE=alpha ;;
+ "EV5 (21164)")
+- UNAME_MACHINE="alphaev5" ;;
++ UNAME_MACHINE=alphaev5 ;;
+ "EV5.6 (21164A)")
+- UNAME_MACHINE="alphaev56" ;;
++ UNAME_MACHINE=alphaev56 ;;
+ "EV5.6 (21164PC)")
+- UNAME_MACHINE="alphapca56" ;;
++ UNAME_MACHINE=alphapca56 ;;
+ "EV5.7 (21164PC)")
+- UNAME_MACHINE="alphapca57" ;;
++ UNAME_MACHINE=alphapca57 ;;
+ "EV6 (21264)")
+- UNAME_MACHINE="alphaev6" ;;
++ UNAME_MACHINE=alphaev6 ;;
+ "EV6.7 (21264A)")
+- UNAME_MACHINE="alphaev67" ;;
++ UNAME_MACHINE=alphaev67 ;;
+ "EV6.8CB (21264C)")
+- UNAME_MACHINE="alphaev68" ;;
++ UNAME_MACHINE=alphaev68 ;;
+ "EV6.8AL (21264B)")
+- UNAME_MACHINE="alphaev68" ;;
++ UNAME_MACHINE=alphaev68 ;;
+ "EV6.8CX (21264D)")
+- UNAME_MACHINE="alphaev68" ;;
++ UNAME_MACHINE=alphaev68 ;;
+ "EV6.9A (21264/EV69A)")
+- UNAME_MACHINE="alphaev69" ;;
++ UNAME_MACHINE=alphaev69 ;;
+ "EV7 (21364)")
+- UNAME_MACHINE="alphaev7" ;;
++ UNAME_MACHINE=alphaev7 ;;
+ "EV7.9 (21364A)")
+- UNAME_MACHINE="alphaev79" ;;
++ UNAME_MACHINE=alphaev79 ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+@@ -359,16 +383,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ eval $set_cc_for_build
+- SUN_ARCH="i386"
++ SUN_ARCH=i386
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+- SUN_ARCH="x86_64"
++ SUN_ARCH=x86_64
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+@@ -393,7 +417,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
+ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
++ test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+@@ -579,8 +603,9 @@ EOF
+ else
+ IBM_ARCH=powerpc
+ fi
+- if [ -x /usr/bin/oslevel ] ; then
+- IBM_REV=`/usr/bin/oslevel`
++ if [ -x /usr/bin/lslpp ] ; then
++ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
++ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+@@ -617,13 +642,13 @@ EOF
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
++ 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
++ 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+- 32) HP_ARCH="hppa2.0n" ;;
+- 64) HP_ARCH="hppa2.0w" ;;
+- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
++ 32) HP_ARCH=hppa2.0n ;;
++ 64) HP_ARCH=hppa2.0w ;;
++ '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+@@ -662,11 +687,11 @@ EOF
+ exit (0);
+ }
+ EOF
+- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
++ (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+- if [ ${HP_ARCH} = "hppa2.0w" ]
++ if [ ${HP_ARCH} = hppa2.0w ]
+ then
+ eval $set_cc_for_build
+
+@@ -679,12 +704,12 @@ EOF
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
++ if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep -q __LP64__
+ then
+- HP_ARCH="hppa2.0w"
++ HP_ARCH=hppa2.0w
+ else
+- HP_ARCH="hppa64"
++ HP_ARCH=hppa64
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+@@ -789,14 +814,14 @@ EOF
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
++ FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
++ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
++ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+@@ -826,7 +851,7 @@ EOF
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
+- i*:MSYS*:*)
++ *:MSYS*:*)
+ echo ${UNAME_MACHINE}-pc-msys
+ exit ;;
+ i*:windows32*:*)
+@@ -878,7 +903,7 @@ EOF
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+@@ -901,7 +926,7 @@ EOF
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+- if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
++ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arc:Linux:*:* | arceb:Linux:*:*)
+@@ -932,6 +957,9 @@ EOF
+ crisv32:Linux:*:*)
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
++ e2k:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
+ frv:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+@@ -944,6 +972,9 @@ EOF
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
++ k1om:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+@@ -969,10 +1000,13 @@ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ ;;
+- or1k:Linux:*:*)
++ mips64el:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+- or32:Linux:*:*)
++ openrisc*:Linux:*:*)
++ echo or1k-unknown-linux-${LIBC}
++ exit ;;
++ or32:Linux:*:* | or1k*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ padre:Linux:*:*)
+@@ -1001,6 +1035,9 @@ EOF
+ ppcle:Linux:*:*)
+ echo powerpcle-unknown-linux-${LIBC}
+ exit ;;
++ riscv32:Linux:*:* | riscv64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+ exit ;;
+@@ -1020,7 +1057,7 @@ EOF
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+ exit ;;
+ x86_64:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+@@ -1099,7 +1136,7 @@ EOF
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+- # prints for the "djgpp" host, or else GDB configury will decide that
++ # prints for the "djgpp" host, or else GDB configure will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
+ exit ;;
+@@ -1248,6 +1285,9 @@ EOF
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
++ SX-ACE:SUPER-UX:*:*)
++ echo sxace-nec-superux${UNAME_RELEASE}
++ exit ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+@@ -1261,9 +1301,9 @@ EOF
+ UNAME_PROCESSOR=powerpc
+ fi
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+@@ -1285,7 +1325,7 @@ EOF
+ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+- if test "$UNAME_PROCESSOR" = "x86"; then
++ if test "$UNAME_PROCESSOR" = x86; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+@@ -1316,7 +1356,7 @@ EOF
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+- if test "$cputype" = "386"; then
++ if test "$cputype" = 386; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+@@ -1358,7 +1398,7 @@ EOF
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
+ exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+@@ -1369,171 +1409,25 @@ EOF
+ x86_64:VMkernel:*:*)
+ echo ${UNAME_MACHINE}-unknown-esx
+ exit ;;
+-esac
+-
+-eval $set_cc_for_build
+-cat >$dummy.c <<EOF
+-#ifdef _SEQUENT_
+-# include <sys/types.h>
+-# include <sys/utsname.h>
+-#endif
+-main ()
+-{
+-#if defined (sony)
+-#if defined (MIPSEB)
+- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+- I don't know.... */
+- printf ("mips-sony-bsd\n"); exit (0);
+-#else
+-#include <sys/param.h>
+- printf ("m68k-sony-newsos%s\n",
+-#ifdef NEWSOS4
+- "4"
+-#else
+- ""
+-#endif
+- ); exit (0);
+-#endif
+-#endif
+-
+-#if defined (__arm) && defined (__acorn) && defined (__unix)
+- printf ("arm-acorn-riscix\n"); exit (0);
+-#endif
+-
+-#if defined (hp300) && !defined (hpux)
+- printf ("m68k-hp-bsd\n"); exit (0);
+-#endif
+-
+-#if defined (NeXT)
+-#if !defined (__ARCHITECTURE__)
+-#define __ARCHITECTURE__ "m68k"
+-#endif
+- int version;
+- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+- if (version < 4)
+- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+- else
+- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+- exit (0);
+-#endif
+-
+-#if defined (MULTIMAX) || defined (n16)
+-#if defined (UMAXV)
+- printf ("ns32k-encore-sysv\n"); exit (0);
+-#else
+-#if defined (CMU)
+- printf ("ns32k-encore-mach\n"); exit (0);
+-#else
+- printf ("ns32k-encore-bsd\n"); exit (0);
+-#endif
+-#endif
+-#endif
+-
+-#if defined (__386BSD__)
+- printf ("i386-pc-bsd\n"); exit (0);
+-#endif
+-
+-#if defined (sequent)
+-#if defined (i386)
+- printf ("i386-sequent-dynix\n"); exit (0);
+-#endif
+-#if defined (ns32000)
+- printf ("ns32k-sequent-dynix\n"); exit (0);
+-#endif
+-#endif
+-
+-#if defined (_SEQUENT_)
+- struct utsname un;
+-
+- uname(&un);
+-
+- if (strncmp(un.version, "V2", 2) == 0) {
+- printf ("i386-sequent-ptx2\n"); exit (0);
+- }
+- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+- printf ("i386-sequent-ptx1\n"); exit (0);
+- }
+- printf ("i386-sequent-ptx\n"); exit (0);
+-
+-#endif
+-
+-#if defined (vax)
+-# if !defined (ultrix)
+-# include <sys/param.h>
+-# if defined (BSD)
+-# if BSD == 43
+- printf ("vax-dec-bsd4.3\n"); exit (0);
+-# else
+-# if BSD == 199006
+- printf ("vax-dec-bsd4.3reno\n"); exit (0);
+-# else
+- printf ("vax-dec-bsd\n"); exit (0);
+-# endif
+-# endif
+-# else
+- printf ("vax-dec-bsd\n"); exit (0);
+-# endif
+-# else
+- printf ("vax-dec-ultrix\n"); exit (0);
+-# endif
+-#endif
+-
+-#if defined (alliant) && defined (i860)
+- printf ("i860-alliant-bsd\n"); exit (0);
+-#endif
+-
+- exit (1);
+-}
+-EOF
+-
+-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+- { echo "$SYSTEM_NAME"; exit; }
+-
+-# Apollos put the system type in the environment.
+-
+-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+-
+-# Convex versions that predate uname can use getsysinfo(1)
+-
+-if [ -x /usr/convex/getsysinfo ]
+-then
+- case `getsysinfo -f cpu_type` in
+- c1*)
+- echo c1-convex-bsd
+- exit ;;
+- c2*)
+- if getsysinfo -f scalar_acc
+- then echo c32-convex-bsd
+- else echo c2-convex-bsd
+- fi
+- exit ;;
+- c34*)
+- echo c34-convex-bsd
+- exit ;;
+- c38*)
+- echo c38-convex-bsd
++ amd64:Isilon\ OneFS:*:*)
++ echo x86_64-unknown-onefs
+ exit ;;
+- c4*)
+- echo c4-convex-bsd
+- exit ;;
+- esac
+-fi
++esac
+
+ cat >&2 <<EOF
+ $0: unable to guess system type
+
+-This script, last modified $timestamp, has failed to recognize
+-the operating system you are using. It is advised that you
+-download the most up to date version of the config scripts from
++This script (version $timestamp), has failed to recognize the
++operating system you are using. If your script is old, overwrite
++config.guess and config.sub with the latest versions from:
+
+- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+ and
+- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+
+-If the version you run ($0) is already up to date, please
+-send the following data and any information you think might be
+-pertinent to <config-patches%gnu.org@localhost> in order to provide the needed
+-information to handle your system.
++If $0 has already been updated, send the following data and any
++information you think might be pertinent to config-patches%gnu.org@localhost to
++provide the necessary information to handle your system.
+
+ config.guess timestamp = $timestamp
+
Index: pkgsrc/net/bind916/patches/patch-config.h.in
diff -u /dev/null pkgsrc/net/bind916/patches/patch-config.h.in:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-config.h.in Sun Aug 9 15:20:22 2020
@@ -0,0 +1,16 @@
+$NetBSD: patch-config.h.in,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base, adding support for blacklistd.
+
+--- config.h.in.orig 2019-06-04 15:20:04.000000000 +0000
++++ config.h.in
+@@ -48,6 +48,9 @@
+ /* define if the ARM yield instruction is available */
+ #undef HAVE_ARM_YIELD
+
++/* Define to 1 if blacklist is supported. */
++#undef HAVE_BLACKLIST
++
+ /* Define to 1 if the compiler supports __builtin_clz. */
+ #undef HAVE_BUILTIN_CLZ
+
Index: pkgsrc/net/bind916/patches/patch-config.sub
diff -u /dev/null pkgsrc/net/bind916/patches/patch-config.sub:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-config.sub Sun Aug 9 15:20:22 2020
@@ -0,0 +1,312 @@
+$NetBSD: patch-config.sub,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- config.sub.orig 2020-05-06 09:59:35.000000000 +0000
++++ config.sub
+@@ -1,8 +1,8 @@
+ #! /bin/sh
+ # Configuration validation subroutine script.
+-# Copyright 1992-2013 Free Software Foundation, Inc.
++# Copyright 1992-2017 Free Software Foundation, Inc.
+
+-timestamp='2013-10-01'
++timestamp='2017-01-01'
+
+ # This file is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+@@ -25,7 +25,7 @@ timestamp='2013-10-01'
+ # of the GNU General Public License, version 3 ("GPLv3").
+
+
+-# Please send patches with a ChangeLog entry to config-patches%gnu.org@localhost.
++# Please send patches to <config-patches%gnu.org@localhost>.
+ #
+ # Configuration subroutine to validate and canonicalize a configuration type.
+ # Supply the specified configuration type as an argument.
+@@ -33,7 +33,7 @@ timestamp='2013-10-01'
+ # Otherwise, we print the canonical config type on stdout and succeed.
+
+ # You can get the latest version of this script from:
+-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+
+ # This file is supposed to be the same for all GNU packages
+ # and recognize all the CPU types, system types and aliases
+@@ -53,8 +53,7 @@ timestamp='2013-10-01'
+ me=`echo "$0" | sed -e 's,.*/,,'`
+
+ usage="\
+-Usage: $0 [OPTION] CPU-MFR-OPSYS
+- $0 [OPTION] ALIAS
++Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
+
+ Canonicalize a configuration name.
+
+@@ -68,7 +67,7 @@ Report bugs and patches to <config-patch
+ version="\
+ GNU config.sub ($timestamp)
+
+-Copyright 1992-2013 Free Software Foundation, Inc.
++Copyright 1992-2017 Free Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -117,8 +116,8 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-
+ case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+- knetbsd*-gnu* | netbsd*-gnu* | \
+- kopensolaris*-gnu* | \
++ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
++ kopensolaris*-gnu* | cloudabi*-eabi* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+@@ -255,12 +254,13 @@ case $basic_machine in
+ | arc | arceb \
+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+ | avr | avr32 \
++ | ba \
+ | be32 | be64 \
+ | bfin \
+ | c4x | c8051 | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+- | epiphany \
+- | fido | fr30 | frv \
++ | e2k | epiphany \
++ | fido | fr30 | frv | ft32 \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i860 | i960 | ia64 \
+@@ -283,8 +283,10 @@ case $basic_machine in
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
++ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
++ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
+@@ -296,14 +298,15 @@ case $basic_machine in
+ | nds32 | nds32le | nds32be \
+ | nios | nios2 | nios2eb | nios2el \
+ | ns16k | ns32k \
+- | open8 \
+- | or1k | or32 \
++ | open8 | or1k | or1knd | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
++ | pru \
+ | pyramid \
++ | riscv32 | riscv64 \
+ | rl78 | rx \
+ | score \
+- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
++ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+@@ -311,6 +314,7 @@ case $basic_machine in
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
++ | visium \
+ | we32k \
+ | x86 | xc16x | xstormy16 | xtensa \
+ | z8k | z80)
+@@ -325,6 +329,9 @@ case $basic_machine in
+ c6x)
+ basic_machine=tic6x-unknown
+ ;;
++ leon|leon[3-9])
++ basic_machine=sparc-$basic_machine
++ ;;
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
+ basic_machine=$basic_machine-unknown
+ os=-none
+@@ -370,12 +377,13 @@ case $basic_machine in
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* | avr32-* \
++ | ba-* \
+ | be32-* | be64-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+ | c8051-* | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+- | elxsi-* \
++ | e2k-* | elxsi-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+@@ -402,8 +410,10 @@ case $basic_machine in
+ | mips64vr5900-* | mips64vr5900el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
++ | mipsisa32r6-* | mipsisa32r6el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
++ | mipsisa64r6-* | mipsisa64r6el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipsr5900-* | mipsr5900el-* \
+@@ -415,16 +425,19 @@ case $basic_machine in
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
++ | or1k*-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
++ | pru-* \
+ | pyramid-* \
++ | riscv32-* | riscv64-* \
+ | rl78-* | romp-* | rs6000-* | rx-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
+ | tahoe-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tile*-* \
+@@ -432,6 +445,7 @@ case $basic_machine in
+ | ubicom32-* \
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+ | vax-* \
++ | visium-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
+ | xstormy16-* | xtensa*-* \
+@@ -508,6 +522,9 @@ case $basic_machine in
+ basic_machine=i386-pc
+ os=-aros
+ ;;
++ asmjs)
++ basic_machine=asmjs-unknown
++ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+@@ -628,6 +645,14 @@ case $basic_machine in
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
++ e500v[12])
++ basic_machine=powerpc-unknown
++ os=$os"spe"
++ ;;
++ e500v[12]-*)
++ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=$os"spe"
++ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+@@ -769,6 +794,9 @@ case $basic_machine in
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
++ leon-*|leon[3-9]-*)
++ basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
++ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=-linux
+@@ -824,6 +852,10 @@ case $basic_machine in
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
++ moxiebox)
++ basic_machine=moxie-unknown
++ os=-moxiebox
++ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+@@ -1000,7 +1032,7 @@ case $basic_machine in
+ ppc-* | ppcbe-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+- ppcle | powerpclittle | ppc-le | powerpc-little)
++ ppcle | powerpclittle)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+@@ -1010,7 +1042,7 @@ case $basic_machine in
+ ;;
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
++ ppc64le | powerpc64little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+@@ -1356,27 +1388,28 @@ case $os in
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+ | -sym* | -kopensolaris* | -plan9* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+- | -aos* | -aros* \
++ | -aos* | -aros* | -cloudabi* | -sortix* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+- | -bitrig* | -openbsd* | -solidbsd* \
++ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+- | -chorusos* | -chorusrdb* | -cegcc* \
++ | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
++ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+- | -uxpv* | -beos* | -mpeix* | -udk* \
++ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
++ | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+@@ -1508,6 +1541,8 @@ case $os in
+ ;;
+ -nacl*)
+ ;;
++ -ios)
++ ;;
+ -none)
+ ;;
+ *)
+@@ -1594,9 +1629,6 @@ case $basic_machine in
+ mips*-*)
+ os=-elf
+ ;;
+- or1k-*)
+- os=-elf
+- ;;
+ or32-*)
+ os=-coff
+ ;;
+@@ -1606,6 +1638,9 @@ case $basic_machine in
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
++ pru-*)
++ os=-elf
++ ;;
+ *-be)
+ os=-beos
+ ;;
Index: pkgsrc/net/bind916/patches/patch-config.threads.in
diff -u /dev/null pkgsrc/net/bind916/patches/patch-config.threads.in:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-config.threads.in Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-config.threads.in,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Add DragonFly support.
+
+--- config.threads.in.orig 2019-04-06 20:09:59.000000000 +0000
++++ config.threads.in
+@@ -48,6 +48,8 @@ case $host in
+ use_threads=false ;;
+ *-freebsd*)
+ use_threads=true ;;
++*-dragonfly*)
++ use_threads=false ;;
+ *-linux*)
+ use_threads=true ;;
+ *-darwin[[123456789]].*)
Index: pkgsrc/net/bind916/patches/patch-configure
diff -u /dev/null pkgsrc/net/bind916/patches/patch-configure:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-configure Sun Aug 9 15:20:22 2020
@@ -0,0 +1,229 @@
+$NetBSD: patch-configure,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Add DragonFly support.
+* Use proper link options for NetBSD.
+* Link proper postgresql library.
+* Take from NetBSD base, adding support for blacklistd.
+
+--- configure.orig 2020-07-03 10:44:14.000000000 +0000
++++ configure
+@@ -637,6 +637,8 @@ BUILD_LDFLAGS
+ BUILD_CPPFLAGS
+ BUILD_CFLAGS
+ BUILD_CC
++BLACKLISTLINKOBJS
++BLACKLISTLINKSRCS
+ DLZ_DRIVER_MYSQL_LIBS
+ DLZ_DRIVER_MYSQL_INCLUDES
+ DLZ_SYSTEM_TEST
+@@ -732,6 +734,8 @@ JSON_C_LIBS
+ JSON_C_CFLAGS
+ LIBXML2_LIBS
+ LIBXML2_CFLAGS
++LIBUV_LIBS
++LIBUV_CFLAGS
+ NZD_MANS
+ NZDTARGETS
+ NZDSRCS
+@@ -1719,6 +1723,7 @@ Optional Packages:
+ --with-dlz-stub=ARG Build with stub DLZ driver [yes|no]. (Required to
+ use stub driver with DLZ)
+ --with-make-clean run "make clean" at end of configure [yes|no]
++ --with-blacklist Build with blacklist
+
+ Some influential environment variables:
+ CC C compiler command
+@@ -3917,7 +3922,7 @@ fi
+
+ # On IRIX 5.3, sys/types and inttypes.h are conflicting.
+ for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+- inttypes.h stdint.h unistd.h
++ inttypes.h stdint.h unistd.h blacklist.h
+ do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+@@ -18385,6 +18390,135 @@ esac
+
+
+
++#
++# was --with-blacklist specified?
++#
++BLACKLISTLINKOBJS=
++BLACKLISTLINKSRCS=
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for blacklist library" >&5
++$as_echo_n "checking for blacklist library... " >&6; }
++
++# Check whether --with-blacklist was given.
++if test "${with_blacklist+set}" = set; then :
++ withval=$with_blacklist; with_blacklist="$withval"
++else
++ with_blacklist="auto"
++fi
++
++
++have_blacklist=""
++case "$with_blacklist" in
++ no)
++ ;;
++ auto|yes)
++ for d in /usr /usr/local /opt/local
++ do
++ if test -f "${d}/include/blacklist.h"
++ then
++ if test ${d} != /usr
++ then
++ blacklist_cflags="-I ${d}/include"
++ LIBS="$LIBS -L${d}/lib"
++ fi
++ have_blacklist="yes"
++ fi
++ done
++ ;;
++ *)
++ if test -f "${with_blacklist}/include/blacklist.h"
++ then
++ blacklist_cflags="-I${with_blacklist}/include"
++ LIBS="$LIBS -L${with_blacklist}/lib"
++ have_blacklist="yes"
++ else
++ as_fn_error $? "$with_blacklist/include/blacklist.h not found." "$LINENO" 5
++ fi
++ ;;
++esac
++
++if test "X${have_blacklist}" != "X"
++then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing blacklist" >&5
++$as_echo_n "checking for library containing blacklist... " >&6; }
++if ${ac_cv_search_blacklist+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ ac_func_search_save_LIBS=$LIBS
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
++/* Override any GCC internal prototype to avoid an error.
++ Use char because int might match the return type of a GCC
++ builtin and then its argument prototype would still apply. */
++#ifdef __cplusplus
++extern "C"
++#endif
++char blacklist_open(void);
++int
++main ()
++{
++return blacklist_open();
++ ;
++ return 0;
++}
++_ACEOF
++for ac_lib in '' blacklist; do
++ if test -z "$ac_lib"; then
++ ac_res="none required"
++ else
++ ac_res=-l$ac_lib
++ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
++ fi
++ if ac_fn_c_try_link "$LINENO"; then :
++ ac_cv_search_blacklist=$ac_res
++fi
++rm -f core conftest.err conftest.$ac_objext \
++ conftest$ac_exeext
++ if ${ac_cv_search_blacklist+:} false; then :
++ break
++fi
++done
++if ${ac_cv_search_blacklist+:} false; then :
++
++else
++ ac_cv_search_blacklist=no
++fi
++rm conftest.$ac_ext
++LIBS=$ac_func_search_save_LIBS
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_blacklist" >&5
++$as_echo "$ac_cv_search_blacklist" >&6; }
++ac_res=$ac_cv_search_blacklist
++if test "$ac_res" != no; then :
++ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
++
++else
++ as_fn_error $? "found blacklist include but not library." "$LINENO" 5
++ have_blacklist=""
++fi
++
++elif test "X$with_blacklist" = Xyes
++then
++ as_fn_error $? "include/blacklist.h not found." "$LINENO" 5
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++BLACKLIST=
++if test "X${have_blacklist}" != "X"
++then
++ CFLAGS="$CFLAGS $blacklist_cflags"
++
++$as_echo "#define HAVE_BLACKLIST 1" >>confdefs.h
++
++ BLACKLIST=1
++ BLACKLISTLINKSRCS='${BLACKLISTLINKSRCS}'
++ BLACKLISTLINKOBJS='${BLACKLISTLINKOBJS}'
++fi
+
+ # Check whether --with-zlib was given.
+ if test "${with_zlib+set}" = set; then :
+@@ -22517,7 +22651,7 @@ else
+
+ fi
+ ;; #(
+- *-freebsd*|*-openbsd*|*-netbsd*) :
++ *-dragonfly*|*-freebsd*|*-openbsd*|*-netbsd*) :
+
+ LDFLAGS="${LDFLAGS} -Wl,-E"
+ SO_CFLAGS="-fpic"
+@@ -22549,9 +22683,9 @@ fi
+ ;; #(
+ *-solaris*) :
+
+- SO_CFLAGS="-KPIC"
+- SO_LDFLAGS="-G -z text"
+- SO_LD="ld"
++ SO_CFLAGS="-fPIC"
++ SO_LDFLAGS="-Xcompiler -shared -Wl,-z -Wl,text"
++ SO_LD="${CC}"
+ ;; #(
+ ia64-hp-hpux*) :
+
+@@ -22980,8 +23114,8 @@ $as_echo "no" >&6; }
+ fi
+ if test -n "-L$use_dlz_postgres_lib -lpq"
+ then
+- DLZ_DRIVER_LIBS="$DLZ_DRIVER_LIBS -L$use_dlz_postgres_lib -lpq"
+- DLZ_DRIVER_POSTGRES_LIBS="-L$use_dlz_postgres_lib -lpq"
++ DLZ_DRIVER_LIBS="$DLZ_DRIVER_LIBS -L${PREFIX}/lib -lpq"
++ DLZ_DRIVER_POSTGRES_LIBS="-L${PREFIX}/lib -lpq"
+ fi
+
+
+@@ -26186,6 +26320,7 @@ report() {
+ test "X$PYTHON" = "X" || echo " Python tools (--with-python)"
+ test "X$LIBXML2_LIBS" = "X" || echo " XML statistics (--with-libxml2)"
+ test "X$JSON_C_LIBS" = "X" || echo " JSON statistics (--with-json-c): $JSON_C_CFLAGS $JSON_C_LIBS"
++ test "X$BLACKLIST" = "X" || echo " blacklist support (--with-blacklist)"
+ test "X$ZLIB_LIBS" = "X" || echo " HTTP zlib compression (--with-zlib)"
+ test "X$NZD_TOOLS" = "X" || echo " LMDB database to store configuration for 'addzone' zones (--with-lmdb)"
+ test "no" = "$with_libidn2" || echo " IDN support (--with-libidn2)"
+@@ -26264,6 +26399,7 @@ report() {
+ test "X$PYTHON" = "X" && echo " Python tools (--with-python)"
+ test "X$LIBXML2_LIBS" = "X" && echo " XML statistics (--with-libxml2)"
+ test "X$JSON_C_LIBS" = "X" && echo " JSON statistics (--with-json-c)"
++ test "X$BLACKLIST" = "X" && echo " blacklist support (--with-blacklist)"
+ test "X$ZLIB_LIBS" = "X" && echo " HTTP zlib compression (--with-zlib)"
+ test "X$NZD_TOOLS" = "X" && echo " LMDB database to store configuration for 'addzone' zones (--with-lmdb)"
+ test "no" = "$with_libidn2" && echo " IDN support (--with-libidn2)"
Index: pkgsrc/net/bind916/patches/patch-contrib_dlz_config.dlz.in
diff -u /dev/null pkgsrc/net/bind916/patches/patch-contrib_dlz_config.dlz.in:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-contrib_dlz_config.dlz.in Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-contrib_dlz_config.dlz.in,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Link proper postgresql library.
+
+--- contrib/dlz/config.dlz.in.orig 2018-07-03 06:56:55.000000000 +0000
++++ contrib/dlz/config.dlz.in
+@@ -113,7 +113,7 @@ case "$use_dlz_postgres" in
+ *)
+ DLZ_ADD_DRIVER(POSTGRES, dlz_postgres_driver,
+ [-I$use_dlz_postgres],
+- [-L$use_dlz_postgres_lib -lpq])
++ [-L${PREFIX}/lib -lpq])
+
+ AC_MSG_RESULT(
+ [using PostgreSQL from $use_dlz_postgres_lib and $use_dlz_postgres])
Index: pkgsrc/net/bind916/patches/patch-contrib_dlz_modules_wildcard_dlz__wildcard__dynamic.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-contrib_dlz_modules_wildcard_dlz__wildcard__dynamic.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-contrib_dlz_modules_wildcard_dlz__wildcard__dynamic.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-contrib_dlz_modules_wildcard_dlz__wildcard__dynamic.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- contrib/dlz/modules/wildcard/dlz_wildcard_dynamic.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ contrib/dlz/modules/wildcard/dlz_wildcard_dynamic.c
+@@ -59,6 +59,8 @@
+ #include <dlz_list.h>
+ #include <dlz_minimal.h>
+
++#include <ctype.h>
++
+ #define DE_CONST(konst, var) \
+ do { \
+ union { \
Index: pkgsrc/net/bind916/patches/patch-lib_dns_byaddr.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_byaddr.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_byaddr.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_dns_byaddr.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* C syntax.
+
+--- lib/dns/byaddr.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/dns/byaddr.c
+@@ -160,7 +160,7 @@ lookup_done(isc_task_t *task, isc_event_
+ byaddr->event->result = levent->result;
+ }
+ isc_event_free(&event);
+- isc_task_sendanddetach(&byaddr->task, (isc_event_t **)&byaddr->event);
++ isc_task_sendanddetach(&byaddr->task, (isc_event_t **)(void *)&byaddr->event);
+ }
+
+ static void
Index: pkgsrc/net/bind916/patches/patch-lib_dns_dnsrps.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_dnsrps.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_dnsrps.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,14 @@
+$NetBSD: patch-lib_dns_dnsrps.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/dns/dnsrps.c.orig 2019-04-06 20:09:59.000000000 +0000
++++ lib/dns/dnsrps.c
+@@ -15,6 +15,7 @@
+
+ #include <inttypes.h>
+ #include <stdbool.h>
++#include <stdlib.h>
+
+ #ifdef USE_DNSRPS
+
Index: pkgsrc/net/bind916/patches/patch-lib_dns_gssapi__link.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_gssapi__link.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_gssapi__link.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,20 @@
+$NetBSD: patch-lib_dns_gssapi__link.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/dns/gssapi_link.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/dns/gssapi_link.c
+@@ -179,9 +179,12 @@ gssapi_verify(dst_context_t *dctx, const
+ gss_buffer_desc gmessage, gsig;
+ OM_uint32 minor, gret;
+ gss_ctx_id_t gssctx = dctx->key->keydata.gssctx;
+- unsigned char buf[sig->length];
++ unsigned char buf[4096];
+ char err[1024];
+
++ if (sizeof(buf) < sig->length)
++ abort();
++
+ /*
+ * Convert the data we wish to sign into a structure gssapi can
+ * understand.
Index: pkgsrc/net/bind916/patches/patch-lib_dns_include_dns_zone.h
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_include_dns_zone.h:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_include_dns_zone.h Sun Aug 9 15:20:22 2020
@@ -0,0 +1,26 @@
+$NetBSD: patch-lib_dns_include_dns_zone.h,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/dns/include/dns/zone.h.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/dns/include/dns/zone.h
+@@ -87,7 +87,9 @@ typedef enum {
+ DNS_ZONEOPT_CHECKSPF = 1 << 27, /*%< check SPF records */
+ DNS_ZONEOPT_CHECKTTL = 1 << 28, /*%< check max-zone-ttl */
+ DNS_ZONEOPT_AUTOEMPTY = 1 << 29, /*%< automatic empty zone */
++#ifndef __NetBSD__
+ DNS_ZONEOPT___MAX = UINT64_MAX, /* trick to make the ENUM 64-bit wide */
++#endif
+ } dns_zoneopt_t;
+
+ /*
+@@ -99,7 +101,9 @@ typedef enum {
+ DNS_ZONEKEY_CREATE = 0x00000004U, /*%< make keys when needed */
+ DNS_ZONEKEY_FULLSIGN = 0x00000008U, /*%< roll to new keys immediately */
+ DNS_ZONEKEY_NORESIGN = 0x00000010U, /*%< no automatic resigning */
++#ifndef __NetBSD__
+ DNS_ZONEKEY___MAX = UINT64_MAX, /* trick to make the ENUM 64-bit wide */
++#endif
+ } dns_zonekey_t;
+
+ #ifndef DNS_ZONE_MINREFRESH
Index: pkgsrc/net/bind916/patches/patch-lib_dns_lookup.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_lookup.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_lookup.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_dns_lookup.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/dns/lookup.c.orig 2019-04-06 20:09:59.000000000 +0000
++++ lib/dns/lookup.c
+@@ -339,7 +339,7 @@ lookup_find(dns_lookup_t *lookup, dns_fe
+ lookup->event->result = result;
+ lookup->event->ev_sender = lookup;
+ isc_task_sendanddetach(&lookup->task,
+- (isc_event_t **)&lookup->event);
++ (isc_event_t **)(void *)&lookup->event);
+ dns_view_detach(&lookup->view);
+ }
+
Index: pkgsrc/net/bind916/patches/patch-lib_dns_peer.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_peer.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_peer.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,23 @@
+$NetBSD: patch-lib_dns_peer.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/dns/peer.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/dns/peer.c
+@@ -214,6 +214,8 @@ dns_peer_newprefix(isc_mem_t *mem, const
+
+ peer = isc_mem_get(mem, sizeof(*peer));
+
++#ifndef __lint__
++// XXX: bug
+ *peer = (dns_peer_t){
+ .magic = DNS_PEER_MAGIC,
+ .address = *addr,
+@@ -221,6 +223,7 @@ dns_peer_newprefix(isc_mem_t *mem, const
+ .mem = mem,
+ .transfer_format = dns_one_answer,
+ };
++#endif
+
+ isc_refcount_init(&peer->refs, 1);
+
Index: pkgsrc/net/bind916/patches/patch-lib_dns_rbt.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_rbt.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_rbt.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,94 @@
+$NetBSD: patch-lib_dns_rbt.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+* Disable inline on powerpc.
+
+--- lib/dns/rbt.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/dns/rbt.c
+@@ -301,12 +301,13 @@ Name(dns_rbtnode_t *node) {
+ }
+
+ static void
+-hexdump(const char *desc, unsigned char *data, size_t size) {
++hexdump(const char *desc, void *blob, size_t size) {
+ char hexdump[BUFSIZ * 2 + 1];
+ isc_buffer_t b;
+ isc_region_t r;
+ isc_result_t result;
+ size_t bytes;
++ uint8_t *data = blob;
+
+ fprintf(stderr, "%s: ", desc);
+ do {
+@@ -324,6 +325,10 @@ hexdump(const char *desc, unsigned char
+ }
+ #endif /* DEBUG */
+
++#if !defined(inline) && defined(__powerpc__)
++#define inline /**/
++#endif
++
+ /*
+ * Upper node is the parent of the root of the passed node's
+ * subtree. The passed node must not be NULL.
+@@ -545,6 +550,9 @@ serialize_node(FILE *file, dns_rbtnode_t
+ off_t file_position;
+ unsigned char *node_data = NULL;
+ size_t datasize;
++#ifdef DEBUG
++ dns_name_t nodename;
++#endif
+
+ INSIST(node != NULL);
+
+@@ -597,10 +605,12 @@ serialize_node(FILE *file, dns_rbtnode_t
+ CHECK(isc_stdio_write(node_data, 1, datasize, file, NULL));
+
+ #ifdef DEBUG
++ dns_name_init(&nodename, NULL);
++ NODENAME(node, &nodename);
+ fprintf(stderr, "serialize ");
+- dns_name_print(name, stderr);
++ dns_name_print(&nodename, stderr);
+ fprintf(stderr, "\n");
+- hexdump("node header", (unsigned char *)&temp_node,
++ hexdump("node header", &temp_node,
+ sizeof(dns_rbtnode_t));
+ hexdump("node data", node_data, datasize);
+ #endif /* ifdef DEBUG */
+@@ -721,7 +731,7 @@ dns_rbt_serialize_tree(FILE *file, dns_r
+
+ isc_crc64_final(&crc);
+ #ifdef DEBUG
+- hexdump("serializing CRC", (unsigned char *)&crc, sizeof(crc));
++ hexdump("serializing CRC", &crc, sizeof(crc));
+ #endif /* ifdef DEBUG */
+
+ /* Serialize header */
+@@ -742,7 +752,7 @@ cleanup:
+ result = ISC_R_INVALIDFILE; \
+ goto cleanup; \
+ } \
+- } while (0);
++ } while(/*CONSTCOND*/0)
+
+ static isc_result_t
+ treefix(dns_rbt_t *rbt, void *base, size_t filesize, dns_rbtnode_t *n,
+@@ -852,7 +862,7 @@ treefix(dns_rbt_t *rbt, void *base, size
+ fprintf(stderr, "deserialize ");
+ dns_name_print(&nodename, stderr);
+ fprintf(stderr, "\n");
+- hexdump("node header", (unsigned char *)&header, sizeof(dns_rbtnode_t));
++ hexdump("node header", &header, sizeof(dns_rbtnode_t));
+ hexdump("node data", node_data, datasize);
+ #endif /* ifdef DEBUG */
+ isc_crc64_update(crc, (const uint8_t *)&header, sizeof(dns_rbtnode_t));
+@@ -928,7 +938,7 @@ dns_rbt_deserialize_tree(void *base_addr
+
+ isc_crc64_final(&crc);
+ #ifdef DEBUG
+- hexdump("deserializing CRC", (unsigned char *)&crc, sizeof(crc));
++ hexdump("deserializing CRC", &crc, sizeof(crc));
+ #endif /* ifdef DEBUG */
+
+ /* Check file hash */
Index: pkgsrc/net/bind916/patches/patch-lib_dns_rbtdb.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_rbtdb.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_rbtdb.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_dns_rbtdb.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/dns/rbtdb.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/dns/rbtdb.c
+@@ -2218,7 +2218,7 @@ prune_tree(isc_task_t *task, isc_event_t
+ NODE_UNLOCK(&rbtdb->node_locks[locknum].lock, isc_rwlocktype_write);
+ RWUNLOCK(&rbtdb->tree_lock, isc_rwlocktype_write);
+
+- detach((dns_db_t **)&rbtdb);
++ detach((dns_db_t **)(void *)&rbtdb);
+ }
+
+ static inline void
Index: pkgsrc/net/bind916/patches/patch-lib_dns_request.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_request.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_request.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,24 @@
+$NetBSD: patch-lib_dns_request.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/dns/request.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/dns/request.c
+@@ -1443,7 +1443,7 @@ req_sendevent(dns_request_t *request, is
+ task = request->event->ev_sender;
+ request->event->ev_sender = request;
+ request->event->result = result;
+- isc_task_sendanddetach(&task, (isc_event_t **)&request->event);
++ isc_task_sendanddetach(&task, (isc_event_t **)(void *)&request->event);
+ }
+
+ static void
+@@ -1460,7 +1460,7 @@ req_destroy(dns_request_t *request) {
+ isc_buffer_free(&request->answer);
+ }
+ if (request->event != NULL) {
+- isc_event_free((isc_event_t **)&request->event);
++ isc_event_free((isc_event_t **)(void *)&request->event);
+ }
+ if (request->dispentry != NULL) {
+ dns_dispatch_removeresponse(&request->dispentry, NULL);
Index: pkgsrc/net/bind916/patches/patch-lib_dns_sdb.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_sdb.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_sdb.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_dns_sdb.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/dns/sdb.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/dns/sdb.c
+@@ -621,7 +621,7 @@ createnode(dns_sdb_t *sdb, dns_sdbnode_t
+ node = isc_mem_get(sdb->common.mctx, sizeof(dns_sdbnode_t));
+
+ node->sdb = NULL;
+- attach((dns_db_t *)sdb, (dns_db_t **)&node->sdb);
++ attach((dns_db_t *)sdb, (dns_db_t **)(void *)&node->sdb);
+ ISC_LIST_INIT(node->lists);
+ ISC_LIST_INIT(node->buffers);
+ ISC_LINK_INIT(node, link);
Index: pkgsrc/net/bind916/patches/patch-lib_dns_sdlz.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_sdlz.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_sdlz.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,22 @@
+$NetBSD: patch-lib_dns_sdlz.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/dns/sdlz.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/dns/sdlz.c
+@@ -451,11 +451,14 @@ closeversion(dns_db_t *db, dns_dbversion
+ static isc_result_t
+ createnode(dns_sdlz_db_t *sdlz, dns_sdlznode_t **nodep) {
+ dns_sdlznode_t *node;
++ void *sdlzv, *tdlzv;
+
+ node = isc_mem_get(sdlz->common.mctx, sizeof(dns_sdlznode_t));
+
+ node->sdlz = NULL;
+- attach((dns_db_t *)sdlz, (dns_db_t **)&node->sdlz);
++ sdlzv = sdlz;
++ tdlzv = &node->sdlz;
++ attach(sdlzv, tdlzv);
+ ISC_LIST_INIT(node->lists);
+ ISC_LIST_INIT(node->buffers);
+ ISC_LINK_INIT(node, link);
Index: pkgsrc/net/bind916/patches/patch-lib_dns_spnego.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_spnego.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_spnego.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_dns_spnego.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base, avoid gcc warning.
+
+--- lib/dns/spnego.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/dns/spnego.c
+@@ -1503,7 +1503,7 @@ spnego_initial(OM_uint32 *minor_status,
+ gss_buffer_desc krb5_output_token = GSS_C_EMPTY_BUFFER;
+ unsigned char *buf = NULL;
+ size_t buf_size;
+- size_t len;
++ size_t len = 0; /* XXX: gcc */
+ int ret;
+
+ (void)mech_type;
Index: pkgsrc/net/bind916/patches/patch-lib_dns_validator.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_validator.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_validator.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_dns_validator.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/dns/validator.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/dns/validator.c
+@@ -221,7 +221,7 @@ validator_done(dns_validator_t *val, isc
+ val->event->ev_type = DNS_EVENT_VALIDATORDONE;
+ val->event->ev_action = val->action;
+ val->event->ev_arg = val->arg;
+- isc_task_sendanddetach(&task, (isc_event_t **)&val->event);
++ isc_task_sendanddetach(&task, (isc_event_t **)(void *)&val->event);
+ }
+
+ /*
Index: pkgsrc/net/bind916/patches/patch-lib_dns_view.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_view.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_view.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_dns_view.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Use nta sub-directory as NetBSD base system.
+
+--- lib/dns/view.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/dns/view.c
+@@ -105,7 +105,7 @@ dns_view_create(isc_mem_t *mctx, dns_rda
+ isc_mem_attach(mctx, &view->mctx);
+ view->name = isc_mem_strdup(mctx, name);
+
+- result = isc_file_sanitize(NULL, view->name, "nta", buffer,
++ result = isc_file_sanitize("nta", view->name, "nta", buffer,
+ sizeof(buffer));
+ if (result != ISC_R_SUCCESS) {
+ goto cleanup_name;
Index: pkgsrc/net/bind916/patches/patch-lib_dns_zone.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_dns_zone.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_dns_zone.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,42 @@
+$NetBSD: patch-lib_dns_zone.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/dns/zone.c.orig 2020-06-10 21:01:43.000000000 +0000
++++ lib/dns/zone.c
+@@ -224,8 +224,13 @@ struct dns_zone {
+ int32_t journalsize;
+ dns_rdataclass_t rdclass;
+ dns_zonetype_t type;
++#ifdef __NetBSD__
++ atomic_uint_fast32_t flags;
++ atomic_uint_fast32_t options;
++#else
+ atomic_uint_fast64_t flags;
+ atomic_uint_fast64_t options;
++#endif
+ unsigned int db_argc;
+ char **db_argv;
+ isc_time_t expiretime;
+@@ -370,7 +375,11 @@ struct dns_zone {
+ /*%
+ * Autosigning/key-maintenance options
+ */
++#ifdef __NetBSD__
++ atomic_uint_fast32_t keyopts;
++#else
+ atomic_uint_fast64_t keyopts;
++#endif
+
+ /*%
+ * True if added by "rndc addzone"
+@@ -499,7 +508,9 @@ typedef enum {
+ * notify due to the zone
+ * just being loaded for
+ * the first time. */
++#ifndef __NetBSD__
+ DNS_ZONEFLG___MAX = UINT64_MAX, /* trick to make the ENUM 64-bit wide */
++#endif
+ } dns_zoneflg_t;
+
+ #define DNS_ZONE_OPTION(z, o) ((atomic_load_relaxed(&(z)->options) & (o)) != 0)
Index: pkgsrc/net/bind916/patches/patch-lib_isc_backtrace.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_backtrace.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_backtrace.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_isc_backtrace.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/isc/backtrace.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/backtrace.c
+@@ -196,7 +196,7 @@ isc_backtrace_gettrace(void **addrs, int
+ * first argument. Note that the body of this function cannot be
+ * inlined since it depends on the address of the function argument.
+ */
+- sp = (void **)&addrs - 2;
++ sp = (void **)(void *)&addrs - 2;
+ #endif /* ifdef __x86_64__ */
+
+ while (sp != NULL && i < maxaddrs) {
Index: pkgsrc/net/bind916/patches/patch-lib_isc_hp.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_hp.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_hp.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_isc_hp.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/isc/hp.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/hp.c
+@@ -82,7 +82,7 @@ struct isc_hp {
+ };
+
+ static inline int
+-tid() {
++tid(void) {
+ if (tid_v == TID_UNKNOWN) {
+ tid_v = atomic_fetch_add(&tid_v_base, 1);
+ REQUIRE(tid_v < isc__hp_max_threads);
Index: pkgsrc/net/bind916/patches/patch-lib_isc_include_isc_netmgr.h
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_include_isc_netmgr.h:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_include_isc_netmgr.h Sun Aug 9 15:20:22 2020
@@ -0,0 +1,16 @@
+$NetBSD: patch-lib_isc_include_isc_netmgr.h,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/isc/include/isc/netmgr.h.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/include/isc/netmgr.h
+@@ -96,6 +96,9 @@ isc_nmhandle_unref(isc_nmhandle_t *handl
+ * with the client.)
+ */
+
++int
++isc_nmhandle_getfd(isc_nmhandle_t *handle);
++
+ void *
+ isc_nmhandle_getdata(isc_nmhandle_t *handle);
+
Index: pkgsrc/net/bind916/patches/patch-lib_isc_include_isc_socket.h
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_include_isc_socket.h:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_include_isc_socket.h Sun Aug 9 15:20:22 2020
@@ -0,0 +1,72 @@
+$NetBSD: patch-lib_isc_include_isc_socket.h,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/isc/include/isc/socket.h.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/include/isc/socket.h
+@@ -160,7 +160,8 @@ typedef enum {
+ isc_sockettype_udp = 1,
+ isc_sockettype_tcp = 2,
+ isc_sockettype_unix = 3,
+- isc_sockettype_raw = 4
++ isc_sockettype_raw = 4,
++ isc_sockettype_fdwatch = 5
+ } isc_sockettype_t;
+
+ /*@{*/
+@@ -945,12 +946,55 @@ isc_socketmgr_renderjson(isc_socketmgr_t
+ */
+ #endif /* HAVE_JSON_C */
+
++/*!
++ * Flags for fdwatchcreate.
++ */
++#define ISC_SOCKFDWATCH_READ 0x00000001 /*%< watch for readable */
++#define ISC_SOCKFDWATCH_WRITE 0x00000002 /*%< watch for writable */
++/*@}*/
++
++isc_result_t
++isc_socket_fdwatchcreate(isc_socketmgr_t *manager,
++ int fd,
++ int flags,
++ isc_sockfdwatch_t callback,
++ void *cbarg,
++ isc_task_t *task,
++ isc_socket_t **socketp);
+ /*%<
+ * See isc_socketmgr_create() above.
+ */
+ typedef isc_result_t (*isc_socketmgrcreatefunc_t)(isc_mem_t * mctx,
+ isc_socketmgr_t **managerp);
+
++isc_result_t
++isc_socket_fdwatchpoke(isc_socket_t *sock,
++ int flags);
++/*%<
++ * Poke a file descriptor watch socket informing the manager that it
++ * should restart watching the socket
++ *
++ * Note:
++ *
++ *\li 'sock' is the socket returned by isc_socket_fdwatchcreate
++ *
++ *\li 'flags' indicates what the manager should watch for on the socket
++ * in addition to what it may already be watching. It can be one or
++ * both of ISC_SOCKFDWATCH_READ and ISC_SOCKFDWATCH_WRITE. To
++ * temporarily disable watching on a socket the value indicating
++ * no more data should be returned from the call back routine.
++ *
++ *\li This function is not available on Windows.
++ *
++ * Requires:
++ *
++ *\li 'sock' is a valid isc socket
++ *
++ *
++ * Returns:
++ *
++ *\li #ISC_R_SUCCESS
++ */
+ ISC_LANG_ENDDECLS
+
+ #endif /* ISC_SOCKET_H */
Index: pkgsrc/net/bind916/patches/patch-lib_isc_include_isc_types.h
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_include_isc_types.h:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_include_isc_types.h Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_isc_include_isc_types.h,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/isc/include/isc/types.h.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/include/isc/types.h
+@@ -84,7 +84,7 @@ typedef struct isc_socket isc_socke
+ typedef struct isc_socketevent isc_socketevent_t; /*%< Socket Event */
+ typedef struct isc_socketmgr isc_socketmgr_t; /*%< Socket Manager */
+ typedef struct isc_stats isc_stats_t; /*%< Statistics */
+-#if defined(_WIN32) && !defined(_WIN64)
++#if defined(_WIN32) && !defined(_WIN64) || !defined(_LP64)
+ typedef int_fast32_t isc_statscounter_t; /*%< Statistics Counter */
+ #else /* if defined(_WIN32) && !defined(_WIN64) */
+ typedef int_fast64_t isc_statscounter_t;
Index: pkgsrc/net/bind916/patches/patch-lib_isc_netmgr_netmgr.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_netmgr_netmgr.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_netmgr_netmgr.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,20 @@
+$NetBSD: patch-lib_isc_netmgr_netmgr.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/isc/netmgr/netmgr.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/netmgr/netmgr.c
+@@ -1197,6 +1197,13 @@ isc_nmhandle_getdata(isc_nmhandle_t *han
+ return (handle->opaque);
+ }
+
++int
++isc_nmhandle_getfd(isc_nmhandle_t *handle) {
++ REQUIRE(VALID_NMHANDLE(handle));
++
++ return (handle->sock->fd);
++}
++
+ void
+ isc_nmhandle_setdata(isc_nmhandle_t *handle, void *arg,
+ isc_nm_opaquecb_t doreset, isc_nm_opaquecb_t dofree) {
Index: pkgsrc/net/bind916/patches/patch-lib_isc_netmgr_tcp.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_netmgr_tcp.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_netmgr_tcp.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_isc_netmgr_tcp.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/isc/netmgr/tcp.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/netmgr/tcp.c
+@@ -36,7 +36,7 @@
+ static atomic_uint_fast32_t last_tcpquota_log = ATOMIC_VAR_INIT(0);
+
+ static bool
+-can_log_tcp_quota() {
++can_log_tcp_quota(void) {
+ isc_stdtime_t now, last;
+
+ isc_stdtime_get(&now);
Index: pkgsrc/net/bind916/patches/patch-lib_isc_rwlock.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_rwlock.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_rwlock.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,33 @@
+$NetBSD: patch-lib_isc_rwlock.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/isc/rwlock.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/rwlock.c
+@@ -142,6 +142,9 @@ isc_rwlock_destroy(isc_rwlock_t *rwl) {
+ #define RWLOCK_MAX_ADAPTIVE_COUNT 100
+ #endif /* ifndef RWLOCK_MAX_ADAPTIVE_COUNT */
+
++#ifdef __lint__
++# define isc_rwlock_pause()
++#else
+ #if defined(_MSC_VER)
+ #include <intrin.h>
+ #define isc_rwlock_pause() YieldProcessor()
+@@ -152,7 +155,7 @@ isc_rwlock_destroy(isc_rwlock_t *rwl) {
+ #define isc_rwlock_pause() __asm__ __volatile__("rep; nop")
+ #elif defined(__ia64__)
+ #define isc_rwlock_pause() __asm__ __volatile__("hint @pause")
+-#elif defined(__arm__) && HAVE_ARM_YIELD
++#elif defined(__arm__) && (defined(_ARM_ARCH_6) || HAVE_ARM_YIELD)
+ #define isc_rwlock_pause() __asm__ __volatile__("yield")
+ #elif defined(sun) && (defined(__sparc) || defined(__sparc__))
+ #define isc_rwlock_pause() smt_pause()
+@@ -164,6 +167,7 @@ isc_rwlock_destroy(isc_rwlock_t *rwl) {
+ #else /* if defined(_MSC_VER) */
+ #define isc_rwlock_pause()
+ #endif /* if defined(_MSC_VER) */
++#endif
+
+ static isc_result_t
+ isc__rwlock_lock(isc_rwlock_t *rwl, isc_rwlocktype_t type);
Index: pkgsrc/net/bind916/patches/patch-lib_isc_siphash.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_siphash.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_siphash.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,23 @@
+$NetBSD: patch-lib_isc_siphash.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/isc/siphash.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/siphash.c
+@@ -113,8 +113,14 @@ isc_siphash24(const uint8_t *k, const ui
+ REQUIRE(k != NULL);
+ REQUIRE(out != NULL);
+
+- uint64_t k0 = U8TO64_LE(k);
+- uint64_t k1 = U8TO64_LE(k + 8);
++ uint64_t k0;
++ uint64_t k1;
++
++ memcpy(&k0, k, sizeof(k0));
++ memcpy(&k1, k + sizeof(k0), sizeof(k1));
++
++ k0 = le64toh(k0);
++ k1 = le64toh(k1);
+
+ uint64_t v0 = 0x736f6d6570736575ULL ^ k0;
+ uint64_t v1 = 0x646f72616e646f6dULL ^ k1;
Index: pkgsrc/net/bind916/patches/patch-lib_isc_stats.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_stats.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_stats.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_isc_stats.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Platform fixes from NetBSD base system.
+
+--- lib/isc/stats.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/stats.c
+@@ -27,7 +27,7 @@
+ #define ISC_STATS_MAGIC ISC_MAGIC('S', 't', 'a', 't')
+ #define ISC_STATS_VALID(x) ISC_MAGIC_VALID(x, ISC_STATS_MAGIC)
+
+-#if defined(_WIN32) && !defined(_WIN64)
++#if (defined(_WIN32) && !defined(_WIN64)) || !defined(_LP64)
+ typedef atomic_int_fast32_t isc__atomic_statcounter_t;
+ #else /* if defined(_WIN32) && !defined(_WIN64) */
+ typedef atomic_int_fast64_t isc__atomic_statcounter_t;
Index: pkgsrc/net/bind916/patches/patch-lib_isc_task.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_task.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_task.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,27 @@
+$NetBSD: patch-lib_isc_task.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/isc/task.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/task.c
+@@ -1381,8 +1381,11 @@ isc_taskmgr_create(isc_mem_t *mctx, unsi
+ REQUIRE(managerp != NULL && *managerp == NULL);
+
+ manager = isc_mem_get(mctx, sizeof(*manager));
++#ifndef __lint__
++// XXX: bug
+ *manager = (isc__taskmgr_t){ .common.impmagic = TASK_MANAGER_MAGIC,
+ .common.magic = ISCAPI_TASKMGR_MAGIC };
++#endif
+
+ atomic_store(&manager->mode, isc_taskmgrmode_normal);
+ isc_mutex_init(&manager->lock);
+@@ -1431,7 +1434,7 @@ isc_taskmgr_create(isc_mem_t *mctx, unsi
+ isc_thread_create(run, &manager->queues[i],
+ &manager->queues[i].thread);
+ char name[21];
+- snprintf(name, sizeof(name), "isc-worker%04u", i);
++ snprintf(name, sizeof(name), "work-%u", i);
+ isc_thread_setname(manager->queues[i].thread, name);
+ }
+ UNLOCK(&manager->lock);
Index: pkgsrc/net/bind916/patches/patch-lib_isc_unix_include_isc_align.h
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_unix_include_isc_align.h:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_unix_include_isc_align.h Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_isc_unix_include_isc_align.h,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/isc/unix/include/isc/align.h.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/unix/include/isc/align.h
+@@ -16,3 +16,8 @@
+ #else /* ifdef HAVE_STDALIGN_H */
+ #define alignas(x) __attribute__((__aligned__(x)))
+ #endif /* ifdef HAVE_STDALIGN_H */
++#ifdef __lint__
++// XXX: bug
++#undef alignas
++#define alignas(a)
++#endif
Index: pkgsrc/net/bind916/patches/patch-lib_isc_unix_net.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_unix_net.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_unix_net.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,23 @@
+$NetBSD: patch-lib_isc_unix_net.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Fix build on SmartOS. In this special case, _XOPEN_SOURCE has to be only
+ defined on SmartOS.
+
+--- lib/isc/unix/net.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/unix/net.c
+@@ -9,6 +9,15 @@
+ * information regarding copyright ownership.
+ */
+
++/* needed for CMSG_DATA */
++#if defined(__sun)
++#if (__STDC_VERSION__ - 0 < 199901L)
++#define _XOPEN_SOURCE 500
++#else
++#define _XOPEN_SOURCE 600
++#endif
++#endif
++
+ #include <stdbool.h>
+ #include <sys/types.h>
+
Index: pkgsrc/net/bind916/patches/patch-lib_isc_unix_socket.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_unix_socket.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_unix_socket.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,384 @@
+$NetBSD: patch-lib_isc_unix_socket.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Apply fixes from NetBSD base system.
+* Fix build on SmartOS. In this special case, _XOPEN_SOURCE has to be only
+ defined on SmartOS.
+
+--- lib/isc/unix/socket.c.orig 2020-06-10 21:01:43.000000000 +0000
++++ lib/isc/unix/socket.c
+@@ -11,6 +11,15 @@
+
+ /*! \file */
+
++/* needed for CMSG_DATA */
++#if defined(__sun)
++#if (__STDC_VERSION__ - 0 < 199901L)
++#define _XOPEN_SOURCE 500
++#else
++#define _XOPEN_SOURCE 600
++#endif
++#endif
++
+ #include <inttypes.h>
+ #include <stdbool.h>
+ #include <sys/param.h>
+@@ -362,7 +371,11 @@ struct isc__socket {
+ unsigned char overflow; /* used for MSG_TRUNC fake */
+ #endif /* ifdef ISC_PLATFORM_RECVOVERFLOW */
+
+- unsigned int dscp;
++ void *fdwatcharg;
++ isc_sockfdwatch_t fdwatchcb;
++ int fdwatchflags;
++ isc_task_t *fdwatchtask;
++ unsigned int dscp;
+ };
+
+ #define SOCKET_MANAGER_MAGIC ISC_MAGIC('I', 'O', 'm', 'g')
+@@ -471,6 +484,14 @@ static bool
+ process_ctlfd(isc__socketthread_t *thread);
+ static void
+ setdscp(isc__socket_t *sock, isc_dscp_t dscp);
++static void
++dispatch_recv(isc__socket_t *sock);
++static void
++dispatch_send(isc__socket_t *sock);
++static void
++internal_fdwatch_read(isc__socket_t *sock);
++static void
++internal_fdwatch_write(isc__socket_t *sock);
+
+ #define SELECT_POKE_SHUTDOWN (-1)
+ #define SELECT_POKE_NOTHING (-2)
+@@ -1558,6 +1579,7 @@ doio_recv(isc__socket_t *sock, isc_socke
+ case isc_sockettype_udp:
+ case isc_sockettype_raw:
+ break;
++ case isc_sockettype_fdwatch:
+ default:
+ INSIST(0);
+ ISC_UNREACHABLE();
+@@ -1766,9 +1788,26 @@ socketclose(isc__socketthread_t *thread,
+ */
+ LOCK(&thread->fdlock[lockid]);
+ thread->fds[fd] = NULL;
+- thread->fdstate[fd] = CLOSE_PENDING;
++ if (sock->type == isc_sockettype_fdwatch)
++ thread->fdstate[fd] = CLOSED;
++ else
++ thread->fdstate[fd] = CLOSE_PENDING;
+ UNLOCK(&thread->fdlock[lockid]);
+- select_poke(thread->manager, thread->threadid, fd, SELECT_POKE_CLOSE);
++ if (sock->type == isc_sockettype_fdwatch) {
++ /*
++ * The caller may close the socket once this function returns,
++ * and `fd' may be reassigned for a new socket. So we do
++ * unwatch_fd() here, rather than defer it via select_poke().
++ * Note: this may complicate data protection among threads and
++ * may reduce performance due to additional locks. One way to
++ * solve this would be to dup() the watched descriptor, but we
++ * take a simpler approach at this moment.
++ */
++ (void)unwatch_fd(thread, fd, SELECT_POKE_READ);
++ (void)unwatch_fd(thread, fd, SELECT_POKE_WRITE);
++ } else
++ select_poke(thread->manager, thread->threadid, fd,
++ SELECT_POKE_CLOSE);
+
+ inc_stats(thread->manager->stats, sock->statsindex[STATID_CLOSE]);
+
+@@ -2154,6 +2193,13 @@ again:
+ }
+ #endif /* if defined(PF_ROUTE) */
+ break;
++ case isc_sockettype_fdwatch:
++ /*
++ * We should not be called for isc_sockettype_fdwatch
++ * sockets.
++ */
++ INSIST(0);
++ break;
+ }
+ } else {
+ sock->fd = dup(dup_socket->fd);
+@@ -2447,6 +2493,7 @@ socket_create(isc_socketmgr_t *manager0,
+
+ REQUIRE(VALID_MANAGER(manager));
+ REQUIRE(socketp != NULL && *socketp == NULL);
++ REQUIRE(type != isc_sockettype_fdwatch);
+
+ result = allocate_socket(manager, type, &sock);
+ if (result != ISC_R_SUCCESS) {
+@@ -2564,6 +2611,7 @@ isc_socket_open(isc_socket_t *sock0) {
+ REQUIRE(isc_refcount_current(&sock->references) >= 1);
+ REQUIRE(sock->fd == -1);
+ REQUIRE(sock->threadid == -1);
++ REQUIRE(sock->type != isc_sockettype_fdwatch);
+
+ result = opensocket(sock->manager, sock, NULL);
+
+@@ -2645,6 +2693,7 @@ isc_socket_close(isc_socket_t *sock0) {
+
+ LOCK(&sock->lock);
+
++ REQUIRE(sock->type != isc_sockettype_fdwatch);
+ REQUIRE(sock->fd >= 0 && sock->fd < (int)sock->manager->maxsocks);
+
+ INSIST(!sock->connecting);
+@@ -2675,6 +2724,24 @@ isc_socket_close(isc_socket_t *sock0) {
+ return (ISC_R_SUCCESS);
+ }
+
++static void
++dispatch_recv(isc__socket_t *sock) {
++ if (sock->type != isc_sockettype_fdwatch) {
++ internal_recv(sock);
++ } else {
++ internal_fdwatch_read(sock);
++ }
++}
++
++static void
++dispatch_send(isc__socket_t *sock) {
++ if (sock->type != isc_sockettype_fdwatch) {
++ internal_send(sock);
++ } else {
++ internal_fdwatch_write(sock);
++ }
++}
++
+ /*
+ * Dequeue an item off the given socket's read queue, set the result code
+ * in the done event to the one provided, and send it to the task it was
+@@ -3117,6 +3184,64 @@ finish:
+ UNLOCK(&sock->lock);
+ }
+
++static void
++internal_fdwatch_write(isc__socket_t *sock)
++{
++ int more_data;
++
++ INSIST(VALID_SOCKET(sock));
++
++ LOCK(&sock->lock);
++ isc_refcount_increment(&sock->references);
++ UNLOCK(&sock->lock);
++
++ more_data = (sock->fdwatchcb)(sock->fdwatchtask, (isc_socket_t *)sock,
++ sock->fdwatcharg, ISC_SOCKFDWATCH_WRITE);
++
++ LOCK(&sock->lock);
++
++ if (isc_refcount_decrement(&sock->references) == 0) {
++ UNLOCK(&sock->lock);
++ destroy(&sock);
++ return;
++ }
++
++ if (more_data)
++ select_poke(sock->manager, sock->threadid, sock->fd,
++ SELECT_POKE_WRITE);
++
++ UNLOCK(&sock->lock);
++}
++
++static void
++internal_fdwatch_read(isc__socket_t *sock)
++{
++ int more_data;
++
++ INSIST(VALID_SOCKET(sock));
++
++ LOCK(&sock->lock);
++ isc_refcount_increment(&sock->references);
++ UNLOCK(&sock->lock);
++
++ more_data = (sock->fdwatchcb)(sock->fdwatchtask, (isc_socket_t *)sock,
++ sock->fdwatcharg, ISC_SOCKFDWATCH_READ);
++
++ LOCK(&sock->lock);
++
++ if (isc_refcount_decrement(&sock->references) == 0) {
++ UNLOCK(&sock->lock);
++ destroy(&sock);
++ return;
++ }
++
++ if (more_data)
++ select_poke(sock->manager, sock->threadid, sock->fd,
++ SELECT_POKE_READ);
++
++ UNLOCK(&sock->lock);
++}
++
+ /*
+ * Process read/writes on each fd here. Avoid locking
+ * and unlocking twice if both reads and writes are possible.
+@@ -3164,7 +3289,7 @@ process_fd(isc__socketthread_t *thread,
+ if (sock->listener) {
+ internal_accept(sock);
+ } else {
+- internal_recv(sock);
++ dispatch_recv(sock);
+ }
+ }
+
+@@ -3172,7 +3297,7 @@ process_fd(isc__socketthread_t *thread,
+ if (sock->connecting) {
+ internal_connect(sock);
+ } else {
+- internal_send(sock);
++ dispatch_send(sock);
+ }
+ }
+
+@@ -5287,7 +5412,7 @@ static isc_once_t hasreuseport_once = IS
+ static bool hasreuseport = false;
+
+ static void
+-init_hasreuseport() {
++init_hasreuseport(void) {
+ /*
+ * SO_REUSEPORT works very differently on *BSD and on Linux (because why not).
+ * We only want to use it on Linux, if it's available. On BSD we want to dup()
+@@ -5341,6 +5466,8 @@ _socktype(isc_sockettype_t type) {
+ return ("tcp");
+ case isc_sockettype_unix:
+ return ("unix");
++ case isc_sockettype_fdwatch:
++ return ("fdwatch");
+ default:
+ return ("not-initialized");
+ }
+@@ -5353,7 +5480,7 @@ _socktype(isc_sockettype_t type) {
+ xmlrc = (a); \
+ if (xmlrc < 0) \
+ goto error; \
+- } while (0)
++ } while (/*CONSTCOND*/0)
+ int
+ isc_socketmgr_renderxml(isc_socketmgr_t *mgr0, void *writer0) {
+ isc__socketmgr_t *mgr = (isc__socketmgr_t *)mgr0;
+@@ -5460,7 +5587,7 @@ error:
+ result = ISC_R_NOMEMORY; \
+ goto error; \
+ } \
+- } while (0)
++ } while (/*CONSTCOND*/0)
+
+ isc_result_t
+ isc_socketmgr_renderjson(isc_socketmgr_t *mgr0, void *stats0) {
+@@ -5582,3 +5709,112 @@ isc_socketmgr_createinctx(isc_mem_t *mct
+
+ return (result);
+ }
++
++/*
++ * Create a new 'type' socket managed by 'manager'. Events
++ * will be posted to 'task' and when dispatched 'action' will be
++ * called with 'arg' as the arg value. The new socket is returned
++ * in 'socketp'.
++ */
++isc_result_t
++isc_socket_fdwatchcreate(isc_socketmgr_t *manager0, int fd, int flags,
++ isc_sockfdwatch_t callback, void *cbarg,
++ isc_task_t *task, isc_socket_t **socketp)
++{
++ isc__socketmgr_t *manager = (isc__socketmgr_t *)manager0;
++ isc__socket_t *sock = NULL;
++ isc__socketthread_t *thread;
++ isc_result_t result;
++ int lockid;
++
++ REQUIRE(VALID_MANAGER(manager));
++ REQUIRE(socketp != NULL && *socketp == NULL);
++
++ if (fd < 0 || (unsigned int)fd >= manager->maxsocks)
++ return (ISC_R_RANGE);
++
++ result = allocate_socket(manager, isc_sockettype_fdwatch, &sock);
++ if (result != ISC_R_SUCCESS)
++ return (result);
++
++ sock->fd = fd;
++ sock->fdwatcharg = cbarg;
++ sock->fdwatchcb = callback;
++ sock->fdwatchflags = flags;
++ sock->fdwatchtask = task;
++
++ sock->threadid = gen_threadid(sock);
++ isc_refcount_init(&sock->references, 1);
++ thread = &manager->threads[sock->threadid];
++ *socketp = (isc_socket_t *)sock;
++
++ /*
++ * Note we don't have to lock the socket like we normally would because
++ * there are no external references to it yet.
++ */
++
++ lockid = FDLOCK_ID(sock->fd);
++ LOCK(&thread->fdlock[lockid]);
++ thread->fds[sock->fd] = sock;
++ thread->fdstate[sock->fd] = MANAGED;
++
++#if defined(USE_EPOLL)
++ manager->epoll_events[sock->fd] = 0;
++#endif
++ UNLOCK(&thread->fdlock[lockid]);
++
++ LOCK(&manager->lock);
++ ISC_LIST_APPEND(manager->socklist, sock, link);
++#ifdef USE_SELECT
++ if (manager->maxfd < sock->fd)
++ manager->maxfd = sock->fd;
++#endif
++ UNLOCK(&manager->lock);
++
++ sock->active = 1;
++ if (flags & ISC_SOCKFDWATCH_READ)
++ select_poke(sock->manager, sock->threadid, sock->fd,
++ SELECT_POKE_READ);
++ if (flags & ISC_SOCKFDWATCH_WRITE)
++ select_poke(sock->manager, sock->threadid, sock->fd,
++ SELECT_POKE_WRITE);
++
++ socket_log(sock, NULL, CREATION, "fdwatch-created");
++
++ return (ISC_R_SUCCESS);
++}
++
++/*
++ * Indicate to the manager that it should watch the socket again.
++ * This can be used to restart watching if the previous event handler
++ * didn't indicate there was more data to be processed. Primarily
++ * it is for writing but could be used for reading if desired
++ */
++
++isc_result_t
++isc_socket_fdwatchpoke(isc_socket_t *sock0, int flags)
++{
++ isc__socket_t *sock = (isc__socket_t *)sock0;
++
++ REQUIRE(VALID_SOCKET(sock));
++
++ /*
++ * We check both flags first to allow us to get the lock
++ * once but only if we need it.
++ */
++
++ if ((flags & (ISC_SOCKFDWATCH_READ | ISC_SOCKFDWATCH_WRITE)) != 0) {
++ LOCK(&sock->lock);
++ if ((flags & ISC_SOCKFDWATCH_READ) != 0)
++ select_poke(sock->manager, sock->threadid, sock->fd,
++ SELECT_POKE_READ);
++ if ((flags & ISC_SOCKFDWATCH_WRITE) != 0)
++ select_poke(sock->manager, sock->threadid, sock->fd,
++ SELECT_POKE_WRITE);
++ UNLOCK(&sock->lock);
++ }
++
++ socket_log(sock, NULL, TRACE, "fdwatch-poked flags: %d", flags);
++
++ return (ISC_R_SUCCESS);
++}
Index: pkgsrc/net/bind916/patches/patch-lib_isc_unix_time.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_isc_unix_time.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_isc_unix_time.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,35 @@
+$NetBSD: patch-lib_isc_unix_time.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* More check time_t range.
+
+--- lib/isc/unix/time.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/isc/unix/time.c
+@@ -285,7 +285,7 @@ isc_time_seconds(const isc_time_t *t) {
+
+ isc_result_t
+ isc_time_secondsastimet(const isc_time_t *t, time_t *secondsp) {
+- time_t seconds;
++ time_t seconds, i;
+
+ REQUIRE(t != NULL);
+ INSIST(t->nanoseconds < NS_PER_S);
+@@ -312,7 +312,18 @@ isc_time_secondsastimet(const isc_time_t
+ INSIST(sizeof(unsigned int) == sizeof(uint32_t));
+ INSIST(sizeof(time_t) >= sizeof(uint32_t));
+
+- if (t->seconds > (~0U >> 1) && seconds <= (time_t)(~0U >> 1)) {
++ if (sizeof(time_t) == sizeof(uint32_t) && /* Same size. */
++ (time_t)0.5 != 0.5 && /* Not a floating point type. */
++ (i = (time_t)-1) != 4294967295u && /* Is signed. */
++ (seconds &
++ (1ULL << (sizeof(time_t) * CHAR_BIT - 1))) != 0ULL) { /* Negative. */
++ /*
++ * This UNUSED() is here to shut up the IRIX compiler:
++ * variable "i" was set but never used
++ * when the value of i *was* used in the third test.
++ * (Let's hope the compiler got the actual test right.)
++ */
++ UNUSED(i);
+ return (ISC_R_RANGE);
+ }
+
Index: pkgsrc/net/bind916/patches/patch-lib_ns_Makefile.in
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_ns_Makefile.in:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_ns_Makefile.in Sun Aug 9 15:20:22 2020
@@ -0,0 +1,28 @@
+$NetBSD: patch-lib_ns_Makefile.in,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base; add blacklist support.
+
+--- lib/ns/Makefile.in.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/ns/Makefile.in
+@@ -42,16 +42,19 @@ LIBS = @LIBS@
+ OBJS = client.@O@ hooks.@O@ interfacemgr.@O@ lib.@O@ \
+ listenlist.@O@ log.@O@ notify.@O@ query.@O@ \
+ server.@O@ sortlist.@O@ stats.@O@ update.@O@ \
+- version.@O@ xfrout.@O@
++ version.@O@ xfrout.@O@ @BLACKLISTLINKOBJS@
+
+ SRCS = client.c hooks.c interfacemgr.c lib.c listenlist.c \
+ log.c notify.c query.c server.c sortlist.c stats.c \
+- update.c version.c xfrout.c
++ update.c version.c xfrout.c @BLACKLISTLINKSRCS@
+
+ SUBDIRS = include
+ TESTDIRS = @UNITTESTS@
+ TARGETS = timestamp
+
++BLACKLISTLINKOBJS= pfilter.@O@
++BLACKLISTLINKSRCS= pfilter.c
++
+ SO_CFLAGS = @CFLAGS@ @SO_CFLAGS@
+ SO_LDFLAGS = @LDFLAGS@ @SO_LDFLAGS@
+
Index: pkgsrc/net/bind916/patches/patch-lib_ns_client.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_ns_client.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_ns_client.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,43 @@
+$NetBSD: patch-lib_ns_client.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/ns/client.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/ns/client.c
+@@ -87,8 +87,8 @@
+ isc_log_write(ns_lctx, NS_LOGCATEGORY_CLIENT, NS_LOGMODULE_CLIENT, \
+ ISC_LOG_DEBUG(3), "clientmgr @%p: %s", manager, (m))
+ #else /* ifdef NS_CLIENT_TRACE */
+-#define CTRACE(m) ((void)(m))
+-#define MTRACE(m) ((void)(m))
++#define CTRACE(m) ((void)/*LINTED*/(m))
++#define MTRACE(m) ((void)/*LINTED*/(m))
+ #endif /* ifdef NS_CLIENT_TRACE */
+
+ #define TCP_CLIENT(c) (((c)->attributes & NS_CLIENTATTR_TCP) != 0)
+@@ -126,7 +126,7 @@
+ * Number of tasks to be used by clients - those are used only when recursing
+ */
+
+-#if defined(_WIN32) && !defined(_WIN64)
++#if (defined(_WIN32) && !defined(_WIN64)) || !defined(_LP64)
+ LIBNS_EXTERNAL_DATA atomic_uint_fast32_t ns_client_requests;
+ #else /* if defined(_WIN32) && !defined(_WIN64) */
+ LIBNS_EXTERNAL_DATA atomic_uint_fast64_t ns_client_requests;
+@@ -2334,6 +2334,8 @@ ns__client_setup(ns_client_t *client, ns
+ * Retain these values from the existing client, but
+ * zero every thing else.
+ */
++#ifndef __lint__
++/* XXX: bug ? */
+ *client = (ns_client_t){ .magic = 0,
+ .mctx = oldmctx,
+ .manager = oldmgr,
+@@ -2342,6 +2344,7 @@ ns__client_setup(ns_client_t *client, ns
+ .sendbuf = sendbuf,
+ .message = message,
+ .query = query };
++#endif
+ }
+
+ client->state = NS_CLIENTSTATE_INACTIVE;
Index: pkgsrc/net/bind916/patches/patch-lib_ns_include_ns_client.h
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_ns_include_ns_client.h:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_ns_include_ns_client.h Sun Aug 9 15:20:22 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_ns_include_ns_client.h,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/ns/include/ns/client.h.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/ns/include/ns/client.h
+@@ -271,7 +271,7 @@ struct ns_client {
+ */
+ #define NS_FAILCACHE_CD 0x01
+
+-#if defined(_WIN32) && !defined(_WIN64)
++#if (defined(_WIN32) && !defined(_WIN64)) || !defined(_LP64)
+ LIBNS_EXTERNAL_DATA extern atomic_uint_fast32_t ns_client_requests;
+ #else /* if defined(_WIN32) && !defined(_WIN64) */
+ LIBNS_EXTERNAL_DATA extern atomic_uint_fast64_t ns_client_requests;
Index: pkgsrc/net/bind916/patches/patch-lib_ns_include_ns_pfilter.h
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_ns_include_ns_pfilter.h:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_ns_include_ns_pfilter.h Sun Aug 9 15:20:22 2020
@@ -0,0 +1,9 @@
+$NetBSD: patch-lib_ns_include_ns_pfilter.h,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/ns/include/ns/pfilter.h.orig 2020-05-27 15:17:34.854399492 +0000
++++ lib/ns/include/ns/pfilter.h
+@@ -0,0 +1,2 @@
++void pfilter_enable(void);
++void pfilter_notify(isc_result_t, ns_client_t *, const char *);
Index: pkgsrc/net/bind916/patches/patch-lib_ns_interfacemgr.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_ns_interfacemgr.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_ns_interfacemgr.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,19 @@
+$NetBSD: patch-lib_ns_interfacemgr.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/ns/interfacemgr.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/ns/interfacemgr.c
+@@ -396,9 +396,12 @@ ns_interface_create(ns_interfacemgr_t *m
+ REQUIRE(NS_INTERFACEMGR_VALID(mgr));
+
+ ifp = isc_mem_get(mgr->mctx, sizeof(*ifp));
++#ifndef __lint__
++/* XXX: bug? */
+ *ifp = (ns_interface_t){ .generation = mgr->generation,
+ .addr = *addr,
+ .dscp = -1 };
++#endif
+
+ strlcpy(ifp->name, name, sizeof(ifp->name));
+
Index: pkgsrc/net/bind916/patches/patch-lib_ns_pfilter.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_ns_pfilter.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_ns_pfilter.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,51 @@
+$NetBSD: patch-lib_ns_pfilter.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/ns/pfilter.c.orig 2020-05-27 15:17:34.821165296 +0000
++++ lib/ns/pfilter.c
+@@ -0,0 +1,44 @@
++
++#include <isc/platform.h>
++#include <isc/util.h>
++#include <ns/types.h>
++#include <ns/client.h>
++
++#include <blacklist.h>
++
++#include <ns/pfilter.h>
++
++static struct blacklist *blstate;
++static int blenable;
++
++void
++pfilter_enable(void) {
++ blenable = 1;
++}
++
++#define TCP_CLIENT(c) (((c)->attributes & NS_CLIENTATTR_TCP) != 0)
++
++void
++pfilter_notify(isc_result_t res, ns_client_t *client, const char *msg)
++{
++ int fd;
++
++ if (!blenable)
++ return;
++
++ if (blstate == NULL)
++ blstate = blacklist_open();
++
++ if (blstate == NULL)
++ return;
++
++ if (!TCP_CLIENT(client) && !client->peeraddr_valid)
++ return;
++
++ if ((fd = isc_nmhandle_getfd(client->handle)) == -1)
++ return;
++
++ blacklist_sa_r(blstate,
++ res != ISC_R_SUCCESS, fd,
++ &client->peeraddr.type.sa, client->peeraddr.length, msg);
++}
Index: pkgsrc/net/bind916/patches/patch-lib_ns_query.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_ns_query.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_ns_query.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,37 @@
+$NetBSD: patch-lib_ns_query.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/ns/query.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/ns/query.c
+@@ -68,6 +68,10 @@
+ #include <ns/stats.h>
+ #include <ns/xfrout.h>
+
++#ifdef HAVE_BLACKLIST
++#include <ns/pfilter.h>
++#endif
++
+ #if 0
+ /*
+ * It has been recommended that DNS64 be changed to return excluded
+@@ -857,6 +861,9 @@ query_checkcacheaccess(ns_client_t *clie
+ msg);
+ }
+ } else if (log) {
++#ifdef HAVE_BLACKLIST
++ pfilter_notify(result, client, "checkcacheaccess");
++#endif
+ /*
+ * We were denied by the "allow-query-cache" ACL.
+ * There is no need to clear NS_QUERYATTR_CACHEACLOK
+@@ -989,6 +996,9 @@ query_validatezonedb(ns_client_t *client
+ msg);
+ }
+ } else {
++#ifdef HAVE_BLACKLIST
++ pfilter_notify(result, client, "validatezonedb");
++#endif
+ ns_client_aclmsg("query", name, qtype,
+ client->view->rdclass, msg,
+ sizeof(msg));
Index: pkgsrc/net/bind916/patches/patch-lib_ns_update.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_ns_update.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_ns_update.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,47 @@
+$NetBSD: patch-lib_ns_update.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/ns/update.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/ns/update.c
+@@ -52,6 +52,10 @@
+ #include <ns/stats.h>
+ #include <ns/update.h>
+
++#ifdef HAVE_BLACKLIST
++#include <ns/pfilter.h>
++#endif
++
+ /*! \file
+ * \brief
+ * This module implements dynamic update as in RFC2136.
+@@ -340,6 +344,9 @@ checkqueryacl(ns_client_t *client, dns_a
+
+ result = ns_client_checkaclsilent(client, NULL, queryacl, true);
+ if (result != ISC_R_SUCCESS) {
++#ifdef HAVE_BLACKLIST
++ pfilter_notify(result, client, "queryacl");
++#endif
+ dns_name_format(zonename, namebuf, sizeof(namebuf));
+ dns_rdataclass_format(client->view->rdclass, classbuf,
+ sizeof(classbuf));
+@@ -352,6 +359,9 @@ checkqueryacl(ns_client_t *client, dns_a
+ "update '%s/%s' denied due to allow-query",
+ namebuf, classbuf);
+ } else if (updateacl == NULL && ssutable == NULL) {
++#ifdef HAVE_BLACKLIST
++ pfilter_notify(result, client, "updateacl");
++#endif
+ dns_name_format(zonename, namebuf, sizeof(namebuf));
+ dns_rdataclass_format(client->view->rdclass, classbuf,
+ sizeof(classbuf));
+@@ -393,6 +403,9 @@ checkupdateacl(ns_client_t *client, dns_
+ msg = "disabled";
+ } else {
+ result = ns_client_checkaclsilent(client, NULL, acl, false);
++#ifdef HAVE_BLACKLIST
++ pfilter_notify(result, client, "updateacl");
++#endif
+ if (result == ISC_R_SUCCESS) {
+ level = ISC_LOG_DEBUG(3);
+ msg = "approved";
Index: pkgsrc/net/bind916/patches/patch-lib_ns_xfrout.c
diff -u /dev/null pkgsrc/net/bind916/patches/patch-lib_ns_xfrout.c:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-lib_ns_xfrout.c Sun Aug 9 15:20:22 2020
@@ -0,0 +1,33 @@
+$NetBSD: patch-lib_ns_xfrout.c,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Take from NetBSD base.
+
+--- lib/ns/xfrout.c.orig 2020-05-06 09:59:35.000000000 +0000
++++ lib/ns/xfrout.c
+@@ -46,6 +46,10 @@
+ #include <ns/stats.h>
+ #include <ns/xfrout.h>
+
++#ifdef HAVE_BLACKLIST
++#include <ns/pfilter.h>
++#endif
++
+ /*! \file
+ * \brief
+ * Outgoing AXFR and IXFR.
+@@ -821,9 +825,15 @@ ns_xfr_start(ns_client_t *client, dns_rd
+ ISC_LOG_ERROR,
+ "zone transfer '%s/%s' denied",
+ _buf1, _buf2);
++#ifdef HAVE_BLACKLIST
++ pfilter_notify(result, client, "zonexfr");
++#endif
+ goto failure;
+ }
+ if (result != ISC_R_SUCCESS) {
++#ifdef HAVE_BLACKLIST
++ pfilter_notify(result, client, "zonexfr");
++#endif
+ FAILQ(DNS_R_NOTAUTH, "non-authoritative zone",
+ question_name, question_class);
+ }
Index: pkgsrc/net/bind916/patches/patch-make_rules.in
diff -u /dev/null pkgsrc/net/bind916/patches/patch-make_rules.in:1.1
--- /dev/null Sun Aug 9 15:20:22 2020
+++ pkgsrc/net/bind916/patches/patch-make_rules.in Sun Aug 9 15:20:22 2020
@@ -0,0 +1,16 @@
+$NetBSD: patch-make_rules.in,v 1.1 2020/08/09 15:20:22 taca Exp $
+
+* Add libuv handling.
+
+--- make/rules.in.orig 2020-06-10 21:01:43.000000000 +0000
++++ make/rules.in
+@@ -134,6 +134,9 @@ LIBUV_LIBS = @LIBUV_LIBS@
+ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+ LIBXML2_LIBS = @LIBXML2_LIBS@
+
++LIBUV_CFLAGS = @LIBUV_CFLAGS@
++LIBUV_LIBS = @LIBUV_LIBS@
++
+ LMDB_CFLAGS = @LMDB_CFLAGS@
+ LMDB_LIBS = @LMDB_LIBS@
+
Home |
Main Index |
Thread Index |
Old Index