From acef3d48e576a205c3b6ab70a2f71022ddd88350 Mon Sep 17 00:00:00 2001 From: Josef Schlehofer Date: Thu, 6 Aug 2026 09:43:57 +0200 Subject: [PATCH 1/7] bird2: use SPDX license identifier Replace the free-form license boilerplate with an SPDX license identifier, in line with the other packages in this feed. Signed-off-by: Josef Schlehofer Co-authored-by: Claude Fable 5 --- bird2/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bird2/Makefile b/bird2/Makefile index aca8e36e5..60c651f6a 100644 --- a/bird2/Makefile +++ b/bird2/Makefile @@ -1,8 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0-only # # Copyright (C) 2009-2017 OpenWrt.org # -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. include $(TOPDIR)/rules.mk From cb52d9da509e5897581341fdd625de18c0967176 Mon Sep 17 00:00:00 2001 From: Josef Schlehofer Date: Thu, 6 Aug 2026 09:43:57 +0200 Subject: [PATCH 2/7] bird3: fix title of bird3cl and add CPE ID The bird3cl package was titled as "(v2)" client although it is built from BIRD 3. Fix the copy-paste leftover from the bird2 Makefile. Also add PKG_CPE_ID, the same product identifier as used by bird2, so published CVEs can be matched against this package. Signed-off-by: Josef Schlehofer Co-authored-by: Claude Fable 5 --- bird3/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bird3/Makefile b/bird3/Makefile index 5d09e6b3a..3f542605a 100644 --- a/bird3/Makefile +++ b/bird3/Makefile @@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=bird3 PKG_VERSION:=3.3.2 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=bird-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://bird.nic.cz/download/ @@ -12,6 +12,7 @@ PKG_HASH:=21297d7a02edd700ae82de5a630055a9cb88a99e2e7e45551bc7d6c1e5b4de2c PKG_MAINTAINER:=Toke Høiland-Jørgensen , Nick Hainke PKG_LICENSE:=GPL-2.0-or-later +PKG_CPE_ID:=cpe:/a:nic:bird PKG_BUILD_DEPENDS:=ncurses readline PKG_BUILD_DIR:=$(BUILD_DIR)/bird-$(PKG_VERSION) @@ -39,7 +40,7 @@ define Package/bird3c endef define Package/bird3cl - TITLE:=The BIRD lightweight command-line client (v2) + TITLE:=The BIRD lightweight command-line client (v3) URL:=https://bird.nic.cz/ SECTION:=net CATEGORY:=Network From a23f06aed9ab713f29cef54198799f1ec0ae0ac4 Mon Sep 17 00:00:00 2001 From: Josef Schlehofer Date: Thu, 6 Aug 2026 15:50:33 +0200 Subject: [PATCH 3/7] bird2: drop stale conffiles entries /etc/bird4.conf and /etc/bird6.conf are left over from the bird1 packages, which shipped a separate configuration file per address family. bird2 is a single daemon handling both and installs /etc/bird.conf only, so the two entries refer to files this package never creates. Signed-off-by: Josef Schlehofer Co-authored-by: Claude Fable 5 --- bird2/Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/bird2/Makefile b/bird2/Makefile index 60c651f6a..a67ac592d 100644 --- a/bird2/Makefile +++ b/bird2/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=bird2 PKG_VERSION:=2.19.2 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=bird-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://bird.nic.cz/download/ @@ -100,8 +100,6 @@ CONFIGURE_ARGS += --disable-libssh define Package/bird2/conffiles /etc/bird.conf -/etc/bird4.conf -/etc/bird6.conf endef define Package/bird2/install From 3929c8535239bea459735e5d0c6fc5d19da70027 Mon Sep 17 00:00:00 2001 From: Josef Schlehofer Date: Thu, 6 Aug 2026 15:50:34 +0200 Subject: [PATCH 4/7] bird3: drop stale conffiles entries /etc/bird4.conf and /etc/bird6.conf are left over from the bird1 packages, which shipped a separate configuration file per address family. bird3 is a single daemon handling both and installs /etc/bird.conf only, so the two entries refer to files this package never creates. Signed-off-by: Josef Schlehofer Co-authored-by: Claude Fable 5 --- bird3/Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/bird3/Makefile b/bird3/Makefile index 3f542605a..2c0c01876 100644 --- a/bird3/Makefile +++ b/bird3/Makefile @@ -97,8 +97,6 @@ TARGET_LDFLAGS += -latomic define Package/bird3/conffiles /etc/bird.conf -/etc/bird4.conf -/etc/bird6.conf endef define Package/bird3/install From 476e46027f713b601f8defc42bba3a710ea1cddc Mon Sep 17 00:00:00 2001 From: Josef Schlehofer Date: Thu, 6 Aug 2026 15:50:46 +0200 Subject: [PATCH 5/7] bird2: follow the feed conventions in test-version.sh The script was a single bare command with no shebang and a trailing space. Every other test-version.sh in the OpenWrt feeds starts with #!/bin/sh and dispatches on $PKG_NAME, so that a sub-package added later fails loudly instead of being probed with a command that happens to work for a different package. Also use grep -F, so the dots in the version are not treated as regular expression wildcards, and record why the daemon is checked rather than birdc/birdcl, which do not report a version of their own. Signed-off-by: Josef Schlehofer Co-authored-by: Claude Fable 5 --- bird2/test-version.sh | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/bird2/test-version.sh b/bird2/test-version.sh index 0fab5cdf8..70b45c997 100644 --- a/bird2/test-version.sh +++ b/bird2/test-version.sh @@ -1 +1,16 @@ -bird --version 2>&1 | grep "$PKG_VERSION" +#!/bin/sh + +# shellcheck shell=busybox + +case "$PKG_NAME" in +bird2|bird2c|bird2cl) + # birdc and birdcl do not report a version; check the daemon, + # which both clients depend on anyway + bird --version 2>&1 | grep -F "$PKG_VERSION" + ;; + +*) + echo "Untested package: $PKG_NAME" >&2 + exit 1 + ;; +esac From a2448983f22951e0f8c868cffddc594dacdbb012 Mon Sep 17 00:00:00 2001 From: Josef Schlehofer Date: Thu, 6 Aug 2026 15:50:47 +0200 Subject: [PATCH 6/7] bird3: follow the feed conventions in test-version.sh The script was a single bare command with no shebang and a trailing space. Every other test-version.sh in the OpenWrt feeds starts with #!/bin/sh and dispatches on $PKG_NAME, so that a sub-package added later fails loudly instead of being probed with a command that happens to work for a different package. Also use grep -F, so the dots in the version are not treated as regular expression wildcards, and record why the daemon is checked rather than birdc/birdcl, which do not report a version of their own. Signed-off-by: Josef Schlehofer Co-authored-by: Claude Fable 5 --- bird3/test-version.sh | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/bird3/test-version.sh b/bird3/test-version.sh index 0fab5cdf8..665570760 100644 --- a/bird3/test-version.sh +++ b/bird3/test-version.sh @@ -1 +1,16 @@ -bird --version 2>&1 | grep "$PKG_VERSION" +#!/bin/sh + +# shellcheck shell=busybox + +case "$PKG_NAME" in +bird3|bird3c|bird3cl) + # birdc and birdcl do not report a version; check the daemon, + # which both clients depend on anyway + bird --version 2>&1 | grep -F "$PKG_VERSION" + ;; + +*) + echo "Untested package: $PKG_NAME" >&2 + exit 1 + ;; +esac From c3a4215733e500444b30655908939792d5a57c9c Mon Sep 17 00:00:00 2001 From: Josef Schlehofer Date: Thu, 6 Aug 2026 15:50:47 +0200 Subject: [PATCH 7/7] bird2: document the OSPF alignment patch The patch carried only a subject line and a placeholder commit id, so nothing recorded why marking struct top_hash_entry as PACKED fixes a bus error, or whether it can be dropped. Restore the description and the sign-off from the commit that introduced it in this feed, keeping the original author's wording, and record the upstream status. Verified that BIRD 2.19.2 still declares the structure without any alignment attribute, so the patch is still needed. The header keeps the "---" separator the sibling patch uses, and orders Signed-off-by last among the trailers. Signed-off-by: Josef Schlehofer Co-authored-by: Claude Fable 5 --- bird2/patches/000-ospf-bus-error.patch | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/bird2/patches/000-ospf-bus-error.patch b/bird2/patches/000-ospf-bus-error.patch index 085965e7b..e1e631fed 100644 --- a/bird2/patches/000-ospf-bus-error.patch +++ b/bird2/patches/000-ospf-bus-error.patch @@ -1,3 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Matt Reeve +Date: Tue, 10 Aug 2021 12:41:04 +0100 +Subject: [PATCH] Fix bus error on OSPF on IPQ806X + +On a Netgear R7800, if ospf v2 or v3 is configured in bird.conf, it fails +to start with this error: + + kernel: Alignment trap: not handling instruction f44c0a1f at [<00035848>] + kernel: Unhandled fault: alignment exception (0x801) at 0x007e0624 + +The problem is due to a struct not being properly aligned on the ARMv7 +architecture. + +This patch fixes the problem by adding the "PACKED" macro to the affected +struct. Note that upstream may later fix this in another way, in which +case this patch will not be required. + +Upstream-Status: not submitted. As of 2.19.2 the structure still carries +no alignment attribute. + +Signed-off-by: Matt Reeve +--- --- a/proto/ospf/topology.h +++ b/proto/ospf/topology.h @@ -41,7 +41,7 @@ struct top_hash_entry