From cc66a24a4e1010439254751e415cc42566fed01a Mon Sep 17 00:00:00 2001 From: Deng Qingfang Date: Thu, 16 May 2019 23:43:51 +0800 Subject: [PATCH] bind: update to 9.14.2 BIND now requires POSIX thread and IPv6 support to build Add filter-AAAA plugin Remove unrecognized options Remove patch that no longer needed - 002-autoconf-ar-fix.patch Signed-off-by: Deng Qingfang --- net/bind/Config.in | 25 ----------- net/bind/Makefile | 42 +++++++++---------- net/bind/patches/001-no-tests.patch | 4 +- net/bind/patches/002-autoconf-ar-fix.patch | 29 ------------- ...inue-if-yield-instruction-is-missing.patch | 36 ++++++++++++++++ 5 files changed, 59 insertions(+), 77 deletions(-) delete mode 100644 net/bind/patches/002-autoconf-ar-fix.patch create mode 100644 net/bind/patches/002-continue-if-yield-instruction-is-missing.patch diff --git a/net/bind/Config.in b/net/bind/Config.in index 8973821f8..ab27b18e3 100644 --- a/net/bind/Config.in +++ b/net/bind/Config.in @@ -1,19 +1,5 @@ if PACKAGE_bind-server -config BIND_ENABLE_FILTER_AAAA - bool - default y - prompt "Enable filtering of AAAA records returned to the client" - help - BIND 9 has an option to filter AAAA (IPv6 address) records - returned to the client based on the transport used for the - query, and other filtering conditions. This filtering does - not affect the recursive queries made by the server (if - any) as a result of the client request. - - Additional details are available at - https://kb.isc.org/article/AA-00576/0/Filter-AAAA-option-in-BIND-9-.html - config BIND_LIBJSON bool default n @@ -33,15 +19,4 @@ config BIND_LIBXML2 libxml2 is required to report server statistics in XML format. Building with libjson support will require the libxml2 package to be installed as well. - -config BIND_ENABLE_EDDSA - bool - default n - prompt "Include Edwards Curve DNSSEC signature support" - help - Enable BIND support for Edwards Curve DNSSEC signing algorithms - described in RFC 8080. - - Note that this requires OpenSSL 1.1, which is not currently - the available in OpenWRT, so it is disabled by default. endif diff --git a/net/bind/Makefile b/net/bind/Makefile index ed11b2eee..265569302 100644 --- a/net/bind/Makefile +++ b/net/bind/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=bind -PKG_VERSION:=9.12.3-P4 +PKG_VERSION:=9.14.2 PKG_RELEASE:=1 USERID:=bind=57:bind=57 @@ -21,7 +21,7 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:= \ https://www.mirrorservice.org/sites/ftp.isc.org/isc/bind9/$(PKG_VERSION) \ https://ftp.isc.org/isc/bind9/$(PKG_VERSION) -PKG_HASH:=d1014453c62623e42323fd83fc89444c12ae6b707fd586466959a052fe21f206 +PKG_HASH:=0e4027573726502ec038db3973a086c02508671723a4845e21da1769a5c27f0c PKG_FIXUP:=autoreconf PKG_REMOVE_FILES:=aclocal.m4 libtool.m4 @@ -31,7 +31,6 @@ PKG_USE_MIPS16:=0 PKG_BUILD_PARALLEL:=1 PKG_CONFIG_DEPENDS := \ - CONFIG_BIND_ENABLE_FILTER_AAAA \ CONFIG_BIND_LIBJSON \ CONFIG_BIND_LIBXML2 @@ -56,7 +55,7 @@ endef define Package/bind-libs SECTION:=libs CATEGORY:=Libraries - DEPENDS:=+libopenssl +zlib + DEPENDS:=+libopenssl +zlib +libpthread +libatomic TITLE:=bind shared libraries URL:=https://www.isc.org/software/bind ifdef CONFIG_BIND_LIBJSON @@ -76,6 +75,12 @@ define Package/bind-server/config source "$(SOURCE)/Config.in" endef +define Package/bind-server-filter-aaaa + $(call Package/bind-server) + DEPENDS:=+bind-server + TITLE+= filter AAAA plugin +endef + define Package/bind-client $(call Package/bind/Default) TITLE+= dynamic DNS client @@ -122,33 +127,22 @@ export BUILD_CC="$(TARGET_CC)" TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed CONFIGURE_ARGS += \ - --enable-ipv6=$(if $(CONFIG_IPV6),yes,no) \ - --with-randomdev="/dev/urandom" \ - --disable-threads \ --disable-linux-caps \ --with-openssl="$(STAGING_DIR)/usr" \ --with-libtool \ --without-lmdb \ - --enable-epoll=yes \ - --with-gost=no \ - --with-gssapi=no \ - --with-ecdsa=$(if $(CONFIG_OPENSSL_WITH_EC),yes,no) \ - --with-eddsa=$(if $(CONFIG_BIND_ENABLE_EDDSA),yes,no) \ - --with-readline=no \ - --enable-atomic=no \ + --enable-epoll \ + --without-gssapi \ + --without-readline \ + --without-python \ --sysconfdir=/etc/bind -ifdef CONFIG_BIND_ENABLE_FILTER_AAAA - CONFIGURE_ARGS += \ - --enable-filter-aaaa -endif - ifdef CONFIG_BIND_LIBJSON CONFIGURE_ARGS += \ --with-libjson="$(STAGING_DIR)/usr" else CONFIGURE_ARGS += \ - --with-libjson=no + --without-libjson endif ifdef CONFIG_BIND_LIBXML2 @@ -156,7 +150,7 @@ ifdef CONFIG_BIND_LIBXML2 --with-libxml2="$(STAGING_DIR)/usr" else CONFIGURE_ARGS += \ - --with-libxml2=no + --without-libxml2 endif CONFIGURE_VARS += \ @@ -204,6 +198,11 @@ define Package/bind-server/conffiles /etc/bind/named.conf endef +define Package/bind-server-filter-aaaa/install + $(INSTALL_DIR) $(1)/usr/lib/named + $(CP) $(PKG_INSTALL_DIR)/usr/lib/named/filter-aaaa.so $(1)/usr/lib/named +endef + define Package/bind-client/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nsupdate $(1)/usr/bin/ @@ -245,6 +244,7 @@ endef $(eval $(call BuildPackage,bind-libs)) $(eval $(call BuildPackage,bind-server)) +$(eval $(call BuildPackage,bind-server-filter-aaaa)) $(eval $(call BuildPackage,bind-client)) $(eval $(call BuildPackage,bind-tools)) $(eval $(call BuildPackage,bind-rndc)) diff --git a/net/bind/patches/001-no-tests.patch b/net/bind/patches/001-no-tests.patch index 02049fd32..b21b563b7 100644 --- a/net/bind/patches/001-no-tests.patch +++ b/net/bind/patches/001-no-tests.patch @@ -4,8 +4,8 @@ top_srcdir = @top_srcdir@ SUBDIRS = named rndc dig delv dnssec tools nsupdate check confgen \ -- @NZD_TOOLS@ @PYTHON_TOOLS@ @PKCS11_TOOLS@ tests -+ @NZD_TOOLS@ @PYTHON_TOOLS@ @PKCS11_TOOLS@ +- @NZD_TOOLS@ @PYTHON_TOOLS@ @PKCS11_TOOLS@ plugins tests ++ @NZD_TOOLS@ @PYTHON_TOOLS@ @PKCS11_TOOLS@ plugins TARGETS = @BIND9_MAKE_RULES@ diff --git a/net/bind/patches/002-autoconf-ar-fix.patch b/net/bind/patches/002-autoconf-ar-fix.patch deleted file mode 100644 index 1bf444c8d..000000000 --- a/net/bind/patches/002-autoconf-ar-fix.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- a/configure.in -+++ b/configure.in -@@ -182,26 +182,11 @@ esac - # - AC_CONFIG_FILES([make/rules make/includes]) - --AC_PATH_PROG(AR, ar) --ARFLAGS="cruv" --AC_SUBST(AR) --AC_SUBST(ARFLAGS) -- - # The POSIX ln(1) program. Non-POSIX systems may substitute - # "copy" or something. - LN=ln - AC_SUBST(LN) - --case "$AR" in -- "") -- AC_MSG_ERROR([ --ar program not found. Please fix your PATH to include the directory in --which ar resides, or set AR in the environment with the full path to ar. --]) -- -- ;; --esac -- - # - # Etags. - # diff --git a/net/bind/patches/002-continue-if-yield-instruction-is-missing.patch b/net/bind/patches/002-continue-if-yield-instruction-is-missing.patch new file mode 100644 index 000000000..24508fbb3 --- /dev/null +++ b/net/bind/patches/002-continue-if-yield-instruction-is-missing.patch @@ -0,0 +1,36 @@ +--- a/config.h.in ++++ b/config.h.in +@@ -45,6 +45,9 @@ + /* Define to 1 if you have the `arc4random_uniform' function. */ + #undef HAVE_ARC4RANDOM_UNIFORM + ++/* Define if the ARM yield instruction is available */ ++#undef HAVE_ARM_YIELD ++ + /* Define to 1 if the compiler supports __builtin_clz. */ + #undef HAVE_BUILTIN_CLZ + +--- a/configure.ac ++++ b/configure.ac +@@ -421,8 +421,8 @@ AS_CASE([$host], + [[]], + [[__asm__ __volatile__ ("yield")]] + )], +- [AC_MSG_RESULT([yes])], +- [AC_MSG_ERROR([no, try adding -march=native or -march=armv7-a to CFLAGS (see PLATFORMS.md for more information)])])]) ++ [AC_MSG_RESULT([yes]) AC_DEFINE([HAVE_ARM_YIELD],[1],[Define if the ARM yield instruction is available])], ++ [AC_MSG_RESULT([no])])]) + + AC_CHECK_FUNCS([sysctlbyname]) + +--- a/lib/isc/rwlock.c ++++ b/lib/isc/rwlock.c +@@ -54,7 +54,7 @@ + # define isc_rwlock_pause() __asm__ __volatile__ ("rep; nop") + #elif defined(__ia64__) + # define isc_rwlock_pause() __asm__ __volatile__ ("hint @pause") +-#elif defined(__arm__) ++#elif defined(__arm__) && HAVE_ARM_YIELD + # define isc_rwlock_pause() __asm__ __volatile__ ("yield") + #elif defined(sun) && (defined(__sparc) || defined(__sparc__)) + # define isc_rwlock_pause() smt_pause()