bind: prevent mismatch of bind-libs version

When upgrading specific packages manually, like:

        apk upgrade bind-dig

the bind-libs package is not upgraded automatically, which results in
problems when running the program, for example:

        root@OpenWrt:~# dig
        Error loading shared library libisc-9.20.10.so: No such file or directory (needed by /usr/bin/dig)
        Error loading shared library libdns-9.20.10.so: No such file or directory (needed by /usr/bin/dig)
        Error loading shared library libisccfg-9.20.10.so: No such file or directory (needed by /usr/bin/dig)
        Error relocating /usr/bin/dig: cfg_map_getname: symbol not found
        Error relocating /usr/bin/dig: irs_resconf_getndots: symbol not found
        Error relocating /usr/bin/dig: isc_managers_destroy: symbol not found
        Error relocating /usr/bin/dig: dns_fixedname_init: symbol not found
        Error relocating /usr/bin/dig: isc_nm_read: symbol not found
        Error relocating /usr/bin/dig: dns_rdata_init: symbol not found
        Error relocating /usr/bin/dig: isc_random_uniform: symbol not found
        [...]

This has happened to me twice on OpenWRT 24.10.

To fix this, enforce that the version of bind-libs matches the version
of any dependent packages. Use the same approach as in
net/knot/Makefile: make the dependency be present twice, once in the
DEPENDS variable, the other one in the EXTRA_DEPENDS variable.

Also, add an explicit EXTRA_DEPENDS variable to other internal
dependencies. For example, versions of the bind-server-filter-aaaa and
bind-server packages must match.

Tested on snapshot, on x86/64.

Signed-off-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
This commit is contained in:
Mateusz Jończyk
2026-02-01 20:00:24 +01:00
committed by Noah Meyerhans
parent 9c3470ac4a
commit 6f6bee95f8

View File

@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=bind
PKG_VERSION:=9.20.21
PKG_RELEASE:=1
PKG_RELEASE:=2
USERID:=bind=57:bind=57
PKG_MAINTAINER:=Noah Meyerhans <frodo@morgul.net>
@@ -49,6 +49,7 @@ define Package/bind/Default
SECTION:=net
CATEGORY:=Network
DEPENDS:=+bind-libs +@OPENSSL_WITH_EC
EXTRA_DEPENDS:=bind-libs (=$(PKG_VERSION)-r$(PKG_RELEASE))
TITLE:=bind
URL:=https://www.isc.org/software/bind
SUBMENU:=IP Addresses and Names
@@ -78,6 +79,7 @@ define Package/bind-server
TITLE+= DNS server
DEPENDS+= +libcap \
+bind-rndc
EXTRA_DEPENDS+=, bind-rndc (=$(PKG_VERSION)-r$(PKG_RELEASE))
endef
define Package/bind-server/config
@@ -87,6 +89,7 @@ endef
define Package/bind-server-filter-aaaa
$(call Package/bind-server)
DEPENDS:=bind-server
EXTRA_DEPENDS:=bind-server (=$(PKG_VERSION)-r$(PKG_RELEASE))
TITLE+= filter AAAA plugin
endef
@@ -106,6 +109,14 @@ define Package/bind-tools
+bind-host \
+bind-rndc \
+bind-ddns-confgen
EXTRA_DEPENDS:= \
bind-check (=$(PKG_VERSION)-r$(PKG_RELEASE)), \
bind-dig (=$(PKG_VERSION)-r$(PKG_RELEASE)), \
bind-nslookup (=$(PKG_VERSION)-r$(PKG_RELEASE)), \
bind-dnssec (=$(PKG_VERSION)-r$(PKG_RELEASE)), \
bind-host (=$(PKG_VERSION)-r$(PKG_RELEASE)), \
bind-rndc (=$(PKG_VERSION)-r$(PKG_RELEASE)), \
bind-ddns-confgen (=$(PKG_VERSION)-r$(PKG_RELEASE))
endef
define Package/bind-rndc