Skip to content

bird3: add new package - #30166

Merged
tohojo merged 2 commits into
openwrt:masterfrom
BKPepe:add-bird3
Aug 11, 2026
Merged

bird3: add new package#30166
tohojo merged 2 commits into
openwrt:masterfrom
BKPepe:add-bird3

Conversation

@BKPepe

@BKPepe BKPepe commented Aug 6, 2026

Copy link
Copy Markdown
Member

Adds bird3 from the openwrt/routing feed — the routing packages are being moved into openwrt/packages one by one, as discussed in openwrt/routing#184.

Includes the bird3cl title fix and PKG_CPE_ID addition pending in openwrt/routing#1193.

The content matches the current routing feed master. Once this is merged, the package will be removed from the routing feed (a coordinated removal PR is prepared there).

Maintainer: @tohojo, @PolynomialDivision

Copilot AI lite review requested due to automatic review settings August 6, 2026 08:10

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@openwrt-ai openwrt-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 new commit. I compared the whole package against bird3/ on openwrt/routing master (b40e628); the only differences are the two deltas named in the PR body (bird3cl title v2v3, PKG_CPE_ID) plus PKG_LICENSE_FILES:=README and a re-indent of the description blocks. Nothing here blocks a merge — the commit message matches the diff, the Makefile follows the feed's indentation rules (two spaces for metadata, tabs for install recipes, none for conffiles), the init script is procd-based with the right shebang, and BuildPackage is called with literal package names. Three optional notes inline, the test-version.sh one being the most substantive.

Two things I could not verify from here and did not flag inline: whether the 3.3.2 tarball actually carries a top-level README for the new PKG_LICENSE_FILES (bird.nic.cz is unreachable from this environment), and the CI outcome — the build checks on 796b013 were still pending at review time.


Generated by Claude Code

Comment thread net/bird3/test-version.sh Outdated
@@ -0,0 +1 @@
bird --version 2>&1 | grep "$PKG_VERSION"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file overrides the generic version probe for all three sub-packages (bird3, bird3c, bird3cl), but it has no shebang and no $PKG_NAME dispatch. All 71 test-version.sh files already in this feed start with #!/bin/sh and switch on the sub-package name — see net/unbound/test-version.sh — and 10 of them are mode 0644 like this one, so the shebang is what makes them runnable. Without the dispatch, an added sub-package later silently gets probed with bird --version instead of failing loudly.

There is also a trailing space at end of line.

Keeping the current probe (which works for all three, since bird3 is a dependency of both clients) but matching the feed's shape:

Suggested change
bird --version 2>&1 | grep "$PKG_VERSION"
#!/bin/sh
# shellcheck shell=busybox
case "$PKG_NAME" in
bird3|bird3c|bird3cl)
bird --version 2>&1 | grep -F "$PKG_VERSION"
;;
*)
echo "Untested package: $PKG_NAME" >&2
exit 1
;;
esac

Generated by Claude Code

Comment thread net/bird3/Makefile Outdated
Comment on lines +100 to +102
/etc/bird.conf
/etc/bird4.conf
/etc/bird6.conf

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit (optional): /etc/bird4.conf and /etc/bird6.conf are never shipped by this package. Package/bird3/install installs only /etc/bird.conf from doc/bird.conf.example, and files/bird.init only ever passes -c /etc/bird.conf. The two extra entries are carried over from the bird1-era v4/v6 daemon split (still present in the routing feed's bird2/Makefile) and have no counterpart in BIRD 3.

If the intent is not to have sysupgrade preserve hand-written bird4/bird6 configs, they can be dropped:

Suggested change
/etc/bird.conf
/etc/bird4.conf
/etc/bird6.conf
/etc/bird.conf

Generated by Claude Code

Comment thread net/bird3/Makefile
Comment on lines +53 to +57
define Package/bird3/Default/description
BIRD is an internet routing daemon which manages TCP/IP routing tables
with support of modern routing protocols, easy to use configuration
interface and powerful route filtering language. It is lightweight and
efficient and therefore appropriate for small embedded routers.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: the PR body says the content matches routing feed master apart from the bird3cl title fix and the PKG_CPE_ID addition, but this is a third delta: all four description blocks (lines 53-96) were re-indented from column 0 to two spaces relative to bird3/Makefile on routing master. PKG_LICENSE_FILES:=README on line 15 is likewise not in the feed's version.

The re-indent is harmless — BuildPackVariable in package-pack.mk normalises leading whitespace before emitting Description:, and two spaces is the dominant style for description blocks in this feed — but a line in the commit message would save the next reviewer from diffing against the feed to work out whether it was deliberate.


Generated by Claude Code

@openwrt-ai openwrt-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the changes since 796b013 (my last review): the amended db00dc1 plus one new commit c5adeb0. Both deltas are exactly the points raised last round, and both are correct:

  • conffiles now lists only /etc/bird.conf, matching what Package/bird3/install actually ships.
  • test-version.sh gained the #!/bin/sh shebang, the # shellcheck shell=busybox line and the $PKG_NAME dispatch that the other test-version.sh files in this feed use, and it uses grep -F rather than grep -q, so the matched version line stays visible in the CI log. Routing the bird3c/bird3cl arms through bird --version is fine — bird3 is a hard dependency of both clients — and the inline comment documents why.

Commit checks: both commit messages match their diffs (c5adeb0 touches nothing beyond the two conffiles lines it describes), so no findings there. Nothing here blocks a merge; one series-hygiene nit inline.

CI on c5adeb0: all three FormalityCheck jobs pass, 9 of 10 arch builds are green and riscv64_generic was still running at review time — nothing failed, so no CI-grounded comments.

Still unverified from here, same as last round: whether the 3.3.2 tarball carries a top-level README for PKG_LICENSE_FILES:=README — bird.nic.cz is unreachable from this environment (proxy returns 403). The open thread on Makefile line 57 about noting the routing-feed deltas (PKG_LICENSE_FILES, description re-indent) in the commit message is unaddressed and still applies.


Generated by Claude Code

Comment thread net/bird3/Makefile
TARGET_LDFLAGS += -latomic

define Package/bird3/conffiles
/etc/bird.conf

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit (optional): c5adeb0 only removes two lines that db00dc1 added earlier in the same series — /etc/bird4.conf and /etc/bird6.conf have never existed in this tree, since net/bird3/ is new in this PR. Squashing the two commits leaves a single self-contained "bird3: add new package" commit and avoids a bisect point where the package registers conffiles for files it never installs, which is how the test-version.sh fix from the last round was already handled.

The end state of the block is right: Package/bird3/install ships only /etc/bird.conf, and files/bird.init passes only -c /etc/bird.conf.


Generated by Claude Code

@tohojo

tohojo commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

So what's the order here? Do we merge these into packages and then remove them in the routing feed afterwards?

Also, if you're planning to merge openwrt/routing#1193 having PKG_RELEASE=1 here will cause the revision number to go backwards after the transistion; so we should probably bump it here?

Comment thread net/bird3/Makefile Outdated

PKG_NAME:=bird3
PKG_VERSION:=3.3.2
PKG_RELEASE:=1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is lower than the package in the routing feed, we should bump it to the same version.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, increased.

BKPepe and others added 2 commits August 11, 2026 12:32
BIRD is an internet routing daemon with support of modern
routing protocols (BGP, OSPF, RIP, Babel) for IPv4 and IPv6. This is
the 3.x branch, a multithreaded rewrite.

Moved from the openwrt/routing feed, as discussed in
openwrt/routing#184.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
/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.

Reported-by: openwrt-ai[bot]
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@openwrt

openwrt Bot commented Aug 11, 2026

Copy link
Copy Markdown

Formality Check: Suggestions Available

We checked this pull request against the contribution guidelines. Here is what needs your attention:

⚠️ STYLISTIC WARNINGS & SUGGESTIONS

Package Release Audit:

  • ⚠️ New package net/bird3 must start with PKG_RELEASE set to 1 (currently: '2')

Something broken? Consider reporting an issue.
Running version 5c87cab deployed on 2026-08-07 23:35:13 CEST

BKPepe added a commit to BKPepe/openwrt-routing that referenced this pull request Aug 11, 2026
The package has been moved to the openwrt/packages feed, as
discussed in openwrt#184.

See openwrt/packages#30166.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@tohojo
tohojo merged commit 1bae5ff into openwrt:master Aug 11, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants