From ba4c61e4edb37ba5cb0ecd9533214ad6f54ae2ec Mon Sep 17 00:00:00 2001 From: Michael Pfeifroth Date: Tue, 29 Sep 2026 15:18:25 +0200 Subject: [PATCH 1/3] frr: add libcrypt-compat dependency for glibc builds frr links against libcrypt (crypt(3)). On musl this symbol lives in libc itself, but glibc ships it in a separate libcrypt.so.1, so the package fails the library dependency check on glibc targets: Package frr is missing dependencies for the following libraries: libcrypt.so.1 Add the conditional +USE_GLIBC:libcrypt-compat dependency, matching the convention already used by other packages that call crypt(3) (perl, python3, stress-ng, screen, dante, ...). This is a no-op on musl builds. Signed-off-by: Michael Pfeifroth --- net/frr/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/net/frr/Makefile b/net/frr/Makefile index b75aa8f45113f..43eb49555e2fb 100644 --- a/net/frr/Makefile +++ b/net/frr/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=frr PKG_VERSION:=10.6.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/FRRouting/frr/tar.gz/$(PKG_NAME)-$(PKG_VERSION)? @@ -80,7 +80,8 @@ endef define Package/frr $(call Package/frr/Default) DEPENDS:=+librt +libatomic +libcap +libncurses +libjson-c +libreadline \ - +libyang +libprotobuf-c +FRR_OPENSSL:libopenssl +FRR_SNMP:libnetsnmp +more + +libyang +libprotobuf-c +FRR_OPENSSL:libopenssl +FRR_SNMP:libnetsnmp +more \ + +USE_GLIBC:libcrypt-compat TITLE:=The FRRouting (FRR) Software Routing Suite MENU:=1 endef From 05421cdde1eec3f8df21304fa2ffeef733d97477 Mon Sep 17 00:00:00 2001 From: Michael Pfeifroth Date: Wed, 30 Sep 2026 08:42:18 +0200 Subject: [PATCH 2/3] frr: preserve libmlag_pb.so SONAME symlink in frr-zebra frr-zebra installs libmlag_pb.so* with INSTALL_BIN, which dereferences symlinks and copies each match as a regular file. The versioned SONAME link libmlag_pb.so.0 -> libmlag_pb.so.0.0.0 is therefore lost, and the package check fails: frr-zebra: [fail] Library /usr/lib/libmlag_pb.so.0.0.0 has SONAME 'libmlag_pb.so.0' but no corresponding symlink was found in /usr/lib Install the library with $(CP) instead, which preserves the symlinks, matching how libfrr.so*/libmgmt_be_nb.so* are already installed in the base frr package. Signed-off-by: Michael Pfeifroth --- net/frr/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/frr/Makefile b/net/frr/Makefile index 43eb49555e2fb..e891489ae5a47 100644 --- a/net/frr/Makefile +++ b/net/frr/Makefile @@ -217,7 +217,7 @@ endef define Package/frr-zebra/install $(INSTALL_DIR) $(1)/usr/sbin $(1)/usr/lib $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/zebra $(1)/usr/sbin/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libmlag_pb.so* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmlag_pb.so* $(1)/usr/lib/ endef define Package/frr-pythontools/install From 765bd7f8db5a36bc994ec3ce1bbb7f130e81368b Mon Sep 17 00:00:00 2001 From: Michael Pfeifroth Date: Mon, 5 Oct 2026 10:01:47 +0200 Subject: [PATCH 3/3] frr: add test-version.sh for CI runtime tests frr-pythontools has no executable that reports the package version: /usr/sbin/frr-reload just runs 'frr-reload.py --reload', which needs running daemons, so the generic CI version check fails with "No executables in the package provided version". Add a version test override. Since it replaces the generic version probe for every frr subpackage, keep checking --version for vtysh, mgmtd, watchfrr, zebra and all daemons, and skip frr-pythontools, which provides no version information. Signed-off-by: Michael Pfeifroth --- net/frr/test-version.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100755 net/frr/test-version.sh diff --git a/net/frr/test-version.sh b/net/frr/test-version.sh new file mode 100755 index 0000000000000..845ed72941fa0 --- /dev/null +++ b/net/frr/test-version.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +# shellcheck shell=busybox + +case "$1" in +frr) + vtysh --version | grep -F "$2" || exit 1 + mgmtd --version | grep -F "$2" + ;; +frr-pythontools) + # Python scripts only, no version information provided + exit 0 + ;; +frr-*) + "/usr/sbin/${1#frr-}" --version | grep -F "$2" + ;; +*) + echo "Untested package: $1" >&2 + exit 1 + ;; +esac