Skip to content

mesh11sd: add new package - #30168

Merged
BKPepe merged 1 commit into
openwrt:masterfrom
BKPepe:add-mesh11sd
Aug 18, 2026
Merged

mesh11sd: add new package#30168
BKPepe merged 1 commit into
openwrt:masterfrom
BKPepe:add-mesh11sd

Conversation

@BKPepe

@BKPepe BKPepe commented Aug 6, 2026

Copy link
Copy Markdown
Member

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

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: @bluewavenet

Copilot AI lite review requested due to automatic review settings August 6, 2026 08:10
@openwrt openwrt Bot added the Add package label Aug 6, 2026

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 verified the PR's central claim: net/mesh11sd/Makefile is byte-identical to mesh11sd/Makefile on openwrt/routing master (b40e628), so the move itself is clean and the PKG_HASH carries over from a feed that already ships it. The commit subject and body match the diff.

Since this is the point where openwrt/packages adopts the package rather than a cherry-pick, I reviewed it as a new package here. Three inline notes, none of which I'd call a merge blocker:

  • The missing DEPENDS for ip-full / vxlan is the one substantive finding — the description promises vxlan tunneling "by default" and the daemon silently disables it when those packages are absent, which they are on a stock image.
  • The GPL-2.0-only vs. GPLv3-or-later disagreement between LICENSE and the installed script is a question for the maintainer, not a defect in this diff.
  • The new Mesh submenu is marked optional.

CI had not reported any results on 0fd8df0 at review time (no check runs), so there is nothing to ground against there.


Generated by Claude Code

Comment thread net/mesh11sd/Makefile
SECTION:=net
CATEGORY:=Network
TITLE:=Dynamic 802.11s Mesh Management Daemon
PKGARCH:=all

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.

No DEPENDS at all, but the description below (line 35) advertises "Point to multi-point vxlan tunneling is provided by default". The daemon builds the tunnel with ip -6 link add ... type vxlan and gates the whole feature on two packages being installed:

package_list="ip-full vxlan"
check_package_list

if [ "$ip_full" -eq 0 ] && [ "$vxlan" -eq 0 ]; then # we have the required packages for vxlan and it is enabled

(src/mesh11sd:629, same check at lines 2745, 3797 and 6380)

Neither ip-full nor vxlan is in DEFAULT_PACKAGES, and nothing else pulls them in — so on a fresh install the advertised default feature is silently off, with only a syslog line to say so. vxlan already depends on kmod-vxlan, so two entries cover it:

Suggested change
PKGARCH:=all
DEPENDS:=+ip-full +vxlan
PKGARCH:=all

Alternatively, if the degraded mode is meant to be the supported default, dropping "by default" from the description would make that clear.

For the record, I checked iw too — the script uses it unconditionally (iw dev, mesh_param, mpath) and it is not in DEFAULT_PACKAGES either, but kmod-cfg80211 depends on +iw, so any board with a wifi driver already has it transitively. Adding +iw explicitly would be tidier but is not a functional gap.


Generated by Claude Code

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.

@bluewavenet Since you are using this package and most likely, you have it installed on several routers, could you confirm it?

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.

Hmm, @bluewavenet respondented that there are optional dependencies here:
#30168 (comment)

Comment thread net/mesh11sd/Makefile Outdated
PKG_RELEASE:=1

PKG_MAINTAINER:=Rob White <rob@blue-wave.net>
PKG_LICENSE:=GPL-2.0-only

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.

The license metadata and the shipped source disagree. PKG_LICENSE_FILES:=LICENSE points at a file that is verbatim GPL v2 ("GNU GENERAL PUBLIC LICENSE / Version 2, June 1991"), which matches GPL-2.0-only. But the only file this package actually installs to /usr/sbin carries a GPLv3-or-later header:

#	This software is released under the GNU General Public License version 3 or any later version.
#	... either version 3 of the License, or (at your option) any later version.

(src/mesh11sd:4-6)

Since this is the point where openwrt/packages starts publishing the license metadata itself, worth confirming with @bluewavenet which one is authoritative before merge — no change needed here if the LICENSE file wins and the source header is just stale upstream.


Generated by Claude Code

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.

What do you think, @bluewavenet?

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.

@bluewavenet this license matter, if you tell me how to proceed, I will tweak it and merge it afterwards

Comment thread net/mesh11sd/Makefile

@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.

Re-reviewed against f4b840e (previous review was on 0fd8df0, since force-pushed). The only change since then is the new net/mesh11sd/test-version.sh; the Makefile is untouched, and the commit message is unchanged and still matches the diff.

The addition is the documented mechanism for this feed and its stated reason checks out — I confirmed openNDS/mesh11sd#203 exists and matches, and that the bashism it describes is harmless on target because OpenWrt enables ASH_BASH_COMPAT by default. So the bypass is not masking a defect that would ship. Two optional nits inline, neither a blocker.

The three threads from the previous review (missing DEPENDS on ip-full/vxlan, the GPL-2.0-only vs. GPLv3-or-later disagreement, and the new Mesh submenu) are still open and unaddressed by this push; I have not repeated them here.

Build jobs on f4b840e were still queued at review time, so there is nothing to ground against on CI yet.


Generated by Claude Code

Comment thread net/mesh11sd/test-version.sh Outdated
Comment on lines +7 to +12
# The mesh11sd daemon script performs environment setup before
# parsing its arguments and aborts in the CI container before
# reaching the version output (it relies on non-POSIX shell
# substring expansion, see
# https://github.com/openNDS/mesh11sd/issues/203), so probing the
# script for its version is not possible here.

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.

I checked the justification and it holds up, with one detail worth recording here.

openNDS/mesh11sd#203 exists and matches the description ("mesh11sd aborts before argument parsing under POSIX-only shells (bashism at get_current_setup)", open, reported against 6.2.1). And the failure really is container-only rather than a defect this package would ship: ${var:offset:length} is a busybox ash extension gated on ASH_BASH_COMPAT, which OpenWrt defaults to y (BUSYBOX_DEFAULT_ASH_BASH_COMPAT in Config-defaults.in:3054-3056, consumed by BUSYBOX_CONFIG_ASH_BASH_COMPAT), so /usr/sbin/mesh11sd runs fine on a stock image and only trips over the SDK container's /bin/sh. Bypassing the generic probe is the right call.

nit (optional): unlike the usual in-tree overrides — which cover executables that will never grow a --version — this one works around an open upstream bug that is expected to be fixed. A line saying so keeps it from silently becoming permanent after the next version bump:

Suggested change
# The mesh11sd daemon script performs environment setup before
# parsing its arguments and aborts in the CI container before
# reaching the version output (it relies on non-POSIX shell
# substring expansion, see
# https://github.com/openNDS/mesh11sd/issues/203), so probing the
# script for its version is not possible here.
# The mesh11sd daemon script performs environment setup before
# parsing its arguments and aborts in the CI container before
# reaching the version output (it relies on non-POSIX shell
# substring expansion, see
# https://github.com/openNDS/mesh11sd/issues/203), so probing the
# script for its version is not possible here.
# This override can be dropped once that issue is fixed upstream.

Generated by Claude Code

Comment thread net/mesh11sd/test-version.sh Outdated
@@ -0,0 +1,20 @@
#!/bin/sh

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): the PR body states "The content matches the current routing feed master", but mesh11sd/ in openwrt/routing contains only a Makefile — this file has no counterpart there, so the move is no longer byte-for-byte. It is obviously deliberate and self-documented, but a sentence in the commit body ("add a test-version.sh to bypass the generic version probe, see openNDS/mesh11sd#203") would save the next reader from diffing the two trees to work out where the extra file came from. Not a blocker.

The file itself matches the dominant in-tree shape — $PKG_NAME case (52 of 71 overrides use it, vs. 7 on $1), # shellcheck shell=busybox, and the *) "Untested package" fallback, same as net/uspot/test-version.sh and net/cgi-io/test-version.sh.


Generated by Claude Code

@bluewavenet

Copy link
Copy Markdown
Contributor

@BKPepe
Yikes! 10 seconds to get version? What are you running it on? 😁
Takes sub 1 second in the real world....

@bluewavenet

Copy link
Copy Markdown
Contributor

@BKPepe

09:53:30.182   Executing mesh11sd-6.2.1-r1.post-install
09:53:40.369     * mesh11sd version 6.2.1

Something very wrong with CI here.
It runs in a fraction of a second even on an ancient gl-mt300m-v2, so .... not good.

Sorry, I'm not complaining deliberately and as always, your efforts are appreciated. But the deficiencies of openwrt/packages seem to be showing up thick and fast.....

@BKPepe

BKPepe commented Aug 6, 2026

Copy link
Copy Markdown
Member Author

Not the CI/CD's fault, and nothing wrong with mesh11sd on a real router either. The CI/CD simply has no br-lan, and there is no reason it should have one.

What eats the ten seconds, all in src/mesh11sd:

  • get_current_setup()refresh_bridgemac()wait_for_interface "br-lan"
  • that loop polls ip link show for state UP and sleeps one second between attempts
  • it repeats interface_timeout times — 10 by default, and that default lives in the script itself.

So:

  • on your router br-lan is up, the loop exits on the first attempt and you get your answer straight away. I measure ~0.5 s here as soon as I make br-lan report as up, so our numbers agree.
  • in the CI container there is no br-lan, all ten attempts run, and each version probe is killed by its ten second timeout before anything is printed.

Which is why -v and -h end up waiting for an interface they never use.


Claude AI suggested you can try this on your router:

mkdir -p /tmp/stub
printf '#!/bin/sh\n[ "$*" = "link show br-lan" ] && exit 0\nexec /sbin/ip "$@"\n' > /tmp/stub/ip
chmod +x /tmp/stub/ip
time mesh11sd -v                         # as you know it
time PATH=/tmp/stub:$PATH mesh11sd -v    # same box, br-lan just hidden from the poll

@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 (fa804d3) since my last review on f4b840e; 98fcf27 is f4b840e amended, its only content change being the reworded comment in test-version.sh, which fa804d3 then deletes.

The new commit does what its message says: it replaces the CI bypass with a real fix. The patch applies cleanly and the completed build jobs on fa804d3 are green with no test-version.sh present, which is the direct evidence that mesh11sd -v now answers inside the probe's timeout. The hunk arithmetic checks out (@@ -5976,7 +5976,11 @@, 5 insertions / 1 deletion) and the case is POSIX shell, so it does not reintroduce a busybox-ash dependency.

Four inline notes; the two on the Makefile and the patch subject are optional, the upstream-reference one is worth an answer before merge:

  • the patch body has no upstream reference, and the Submitted upstream: link in the commit body points at openNDS/mesh11sd#203, which the earlier push described as a different failure (an abort under POSIX-only shells, not a ten second wait);
  • PKG_RELEASE:=1 now describes a different build than the 6.2.1-r1 the routing feed already ships;
  • the test-version.sh added in 98fcf27 and removed in fa804d3 argues for squashing the series.

The three threads from my first review (missing DEPENDS on ip-full/vxlan, the GPL-2.0-only vs. GPLv3-or-later disagreement, and the new Mesh submenu) are still open and untouched by this push; not repeated here. The two test-version.sh threads are moot now that the file is gone.


Generated by Claude Code

Comment on lines +14 to +17
The informational branches need only $version and $tmpdir, both set
at the top of the script, so the setup pass can be skipped for them.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>

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.

The patch body carries no upstream reference, and the one in the commit message looks like it points at a different bug.

.github/llm-review-rules.md asks for an upstream reference / Upstream-Status on patches that are upstream candidates. This one changes behaviour in live upstream code and has an upstream to go to, so the reference belongs in the patch file itself — whoever refreshes or rebases it later has the file, not the commit message.

On the reference itself: the commit body says Submitted upstream: https://github.com/openNDS/mesh11sd/issues/203, but that issue was cited one push ago (in the now-removed test-version.sh) as "mesh11sd aborts before argument parsing under POSIX-only shells (bashism at get_current_setup)" — an abort, not a ten second wait. That diagnosis has since been replaced by the wait_for_interface "br-lan" explanation in this comment, and the two cannot both be what the CI probe hit. If #203 really is the bashism report, this patch does not fix it and is not "submitted" there — is there a separate issue or PR for this change? An issue is also not a submission for a shell script upstream; a PR against openNDS/mesh11sd would be.

(I could not re-check #203 in this session — repo access here is scoped to openwrt/packages — so the quote above is from the earlier review that did verify it.)


Generated by Claude Code

Comment thread net/mesh11sd/Makefile Outdated

PKG_NAME:=mesh11sd
PKG_VERSION:=6.2.1
PKG_RELEASE:=1

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.

The routing feed already ships mesh11sd 6.2.1-r1 (this Makefile is byte-identical to the one on openwrt/routing master, PKG_RELEASE:=1 included), but the build output is no longer the same now that patches/100-* is applied. An installation that got 6.2.1-r1 from the routing feed compares equal to the copy this feed will publish, so it never picks up the fix — the coordinated removal on the routing side does not change that. Bumping to 2 here would make the patched build win:

Suggested change
PKG_RELEASE:=1
PKG_RELEASE:=2

This is also what .github/llm-review-rules.md asks for when a patch is added without a PKG_VERSION change. Your call whether the transition is worth it — if the answer is "the routing feed copy is going away anyway", 1 is defensible.


Generated by Claude Code

@@ -0,0 +1,36 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001

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): the two commits cancel each other out. 98fcf27 adds net/mesh11sd/test-version.sh (22 lines) and fa804d3 deletes it again — the file never appears in the PR diff, and 98fcf27's body still spends a paragraph on it ("The generic version check of the CI runtime tests is overridden … It is a timing issue rather than a defect"), describing a file that does not exist at the end of the series. A reader landing on 98fcf27 in git log gets a rationale for something that was never merged.

Squashing the two into a single "mesh11sd: add new package" commit that ships the Makefile and the patch would leave a history that matches what actually lands, and would make PKG_RELEASE:=1 unambiguous for a package this feed is publishing for the first time.


Generated by Claude Code

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Josef Schlehofer <pepe.schlehofer@gmail.com>
Date: Thu, 6 Aug 2026 13:00:00 +0200
Subject: [PATCH] mesh11sd: skip the environment setup for -v and -h

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): the subject names two of the seven invocations the case actually covers ("", -h, --help, help, -v, --version, version) — the filename and the commit body both use the broader wording:

Suggested change
Subject: [PATCH] mesh11sd: skip the environment setup for -v and -h
Subject: [PATCH] mesh11sd: skip the environment setup for the informational options

Generated by Claude Code

@BKPepe

BKPepe commented Aug 6, 2026

Copy link
Copy Markdown
Member Author

It looks like CI/CD is now happy. 🥳 🥳

2026-08-06T12:24:15.8986724Z   Executing mesh11sd-6.2.1-r1.post-install
2026-08-06T12:24:16.6060728Z   * mesh11sd version 6.2.1

@openwrt

openwrt Bot commented Aug 6, 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/mesh11sd must start with PKG_RELEASE set to 1 (currently: '2')

Something broken? Consider reporting an issue.
Running version 21db518 deployed on 2026-08-16 10:59:44 CEST

@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 squashed commit e3b4726 (previous review was on fa804d3). The series is now a single commit and the message matches the diff, including the PKG_RELEASE rationale.

Three of the four notes from my last review are addressed: the release bump, the Upstream-Status line in the patch, and the squash. On the fourth — I could not check openNDS/mesh11sd through the connector, but git ls-remote resolves refs/pull/204/head to afcd9a8, and that commit's src/mesh11sd hunk is byte-identical to the one in this patch (only the line numbers differ, upstream master being ahead of 6.2.1). So the reference is real and points at this change, not at #203.

The patch itself checks out: it applies to the v6.2.1 tarball with no fuzz or offset, the case is POSIX shell, and every non-informational entry point still gets the setup pass — the init script's procd_append_param command daemon and its stop_service call both fall through to *), while service_data() { mesh11sd -v; } is one of the callers that gets faster.

One inline note, on a sentence in the patch body rather than on the code. Not a blocker.

On the formality bot's PKG_RELEASE warning: that is the expected consequence of the bump, and the commit body states the reason. Whether the routing feed's existing 6.2.1-r1 is worth deviating from the new-package convention for is a maintainer call, so I am not re-arguing it here.

Still open and untouched by this push, from my first review: the missing DEPENDS on ip-full / vxlan (the one I would want an answer on), the GPL-2.0-only vs. GPLv3-or-later disagreement, and the new Mesh submenu. Not repeated.

The build jobs on e3b4726 were still queued at review time; the FormalityCheck runs are green.


Generated by Claude Code

Comment on lines +19 to +20
The informational branches need only $version and $tmpdir, both set at
the top of the script, so the setup pass can be skipped for them.

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.

$tmpdir is set at the top of the script, but that is only the initial value — get_current_setup() overwrites it:

tmpdir="$log_mountpoint/mesh11sd"
mkdir -p "$tmpdir"

(src/mesh11sd:225-226, where log_mountpoint comes from uci get mesh11sd.setup.log_mountpoint and falls back to /tmp if unset or not mounted)

The script says as much itself at src/mesh11sd:24-25: # initial tmpdir, use $log_mountpoint/mesh11sd once startup begins.

So on a node that sets log_mountpoint to a mounted path (say /mnt/usb), mesh11sd -h used to print /mnt/usb/mesh11sd and after this patch prints /tmp/mesh11sd. It is one line of help text — src/mesh11sd:6019, Copy a file to $tmpdir/ on a remote meshnode, the only $tmpdir reference in either informational branch — and it is correct for the default log_mountpoint, so I would not hold the patch for it. But the sentence here reads as "nothing changes", and something does.

Either resolving tmpdir from log_mountpoint before the informational branches, or just saying in the body that the help text falls back to the default tmpdir, would keep the rationale accurate. Same wording is in openNDS/mesh11sd#204, so whichever you pick is worth carrying there too.

For the record, $version and $tmpdir really are the only two variables the -h / -v branches reference, and the chain they sit in ends the script, so nothing downstream runs without the setup pass.


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 1 new commit (1a7763b, an amend of e3b4726 — my last review). No new issues found.

The only content change is the patch body: the sentence that used to read "both set at the top of the script" now names the consequence explicitly. That was my one open note from last time and it is resolved — and it is accurate. In v6.2.1 the initial value is tmpdir="/tmp/mesh11sd" at src/mesh11sd:25 and get_current_setup() reassigns it at src/mesh11sd:225 after log_mountpoint has been read and mount-checked, so "the help text now names the initial /tmp/mesh11sd" is exactly what happens.

Re-checked the rest against the new head, all still holds:

  • the patch applies to the v6.2.1 tarball with no fuzz and no offset, and the hunk arithmetic (@@ -5976,7 +5976,11 @@, 5 insertions / 1 deletion) matches the diff body;
  • openNDS/mesh11sd#204 has moved on since my last review (refs/pull/204/head is now 26b79df, was afcd9a8 — the branch picked up upstream master, which is at 7.1.0), but the hunk is still byte-identical to the one shipped here, case "$1" in at src/mesh11sd:6918-6922. The Upstream-Status: Submitted line is therefore still true;
  • $version and $tmpdir remain the only variables the -h / -v branches touch, and the case is POSIX shell.

CI is fully green on 1a7763b — all ten Feeds Package Test Build targets plus the three FormalityCheck runs — so nothing to ground against there. The formality bot's PKG_RELEASE warning is stale; it last ran on e3b4726 and the current FormalityCheck runs pass.

Still open from my first review, untouched by this push and not repeated inline: the missing DEPENDS on ip-full / vxlan (the one I would still want an answer on before merge), the GPL-2.0-only vs. GPLv3-or-later disagreement between LICENSE and the installed script, and the new single-package Mesh submenu. None of the three is a blocker in my reading; the first is the only one with a user-visible consequence.


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 1 new commit (3e25152, an amend of 1a7763b — my last review). The only content change is the patch's Upstream-Status paragraph, which now says #204 was closed in favour of an upstream fix released in 7.2.0, plus the matching paragraph added to the commit body.

That claim is the one finding. openNDS/mesh11sd has no v7.2.0 tag (v7.1.0 is the newest), and refs/heads/7.2.0beta, master and refs/tags/v7.1.0 are all the same commit 6299bce, where get_current_setup still runs before the version/help handling. refs/pull/204/head also still carries this patch's own hunk rather than a replacement. Details and links inline. I could not check #204's open/closed state — connector access here is scoped to openwrt/packages — so it is the "released in 7.2.0" half I would want corrected, since it is what tells a later maintainer when to drop the patch.

Everything else re-checked and unchanged: the hunk itself is byte-identical to the previous head, applies to the v6.2.1 tarball with no fuzz or offset, the case is POSIX shell, and $version / $tmpdir remain the only variables the informational branches touch.

Commit checks

  • 3e25152 "mesh11sd: add new package" — the message body's new paragraph ("Upstream has since fixed this in 7.2.0 by moving the get_current_setup() call after the version and help handling, so the patch goes away with the next version bump") is not supported by upstream state; see the inline note. The rest of the message matches the diff, including the PKG_RELEASE:=2 rationale.

Still open from my first review, untouched by this push and not repeated inline: the missing DEPENDS on ip-full / vxlan (still the one I would want an answer on before merge), the GPL-2.0-only vs. GPLv3-or-later disagreement between LICENSE and the installed script, and the new single-package Mesh submenu. None of them, nor the finding above, blocks a merge in my reading.

No check runs had reported on 3e25152 at review time, so there is nothing to ground against on CI.


Generated by Claude Code

Comment on lines +26 to +29
Upstream-Status: superseded. openNDS/mesh11sd#204 was closed in favour
of an upstream change that moves the get_current_setup() call after
the version and help handling; released in 7.2.0. Drop this patch when
the package is bumped to that 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.

I cannot find the upstream state this describes. Three checks, all against openNDS/mesh11sd:

$ git ls-remote --tags https://github.com/openNDS/mesh11sd | tail -3
4dfbf1d…  refs/tags/v6.2.0
564b7e1…  refs/tags/v6.2.1
6299bce…  refs/tags/v7.1.0

I could not check whether #204 is open or closed (connector access here is scoped to openwrt/packages), so the "was closed" half may well be right. But "released in 7.2.0" and "Drop this patch when the package is bumped to that version" point at a release that does not exist, which is the part a later maintainer would act on. If the upstream change is real, could you point at the commit or PR that carries it? If it is only queued for a future 7.2.0, saying so ("expected in 7.2.0") keeps the instruction honest; if #204 is in fact still open, the previous Upstream-Status: Submitted [https://github.com/openNDS/mesh11sd/pull/204] was accurate as it stood.

The same claim is in the commit body ("Upstream has since fixed this in 7.2.0 … so the patch goes away with the next version bump"), so whatever you land on wants updating in both places.

Two smaller points on the same block, both optional: superseded is outside the usual Upstream-Status vocabulary (Pending / Submitted / Accepted / Backport / Denied / Inappropriate), and openNDS/mesh11sd#204 is GitHub shorthand that does not resolve when the patch is read as a file — which was the argument for putting the reference in the patch rather than the commit message. The full URL that was there before survives make package/mesh11sd/refresh and a git log just as well.


Generated by Claude Code

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.

There is no v7.2.0 tag

At this moment in time this is correct.
Currently v7.2.0 is in private beta.
It will become a public beta in due course, at the end of the current development/field testing cycle.
Subject to public testing it will thereafter be tagged as release version 7.2.0

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.

Okay, going to backport your commit openNDS/mesh11sd@443cdb4 as you mentioned. Could you please look at other comments here, so we can move forward, please? :)

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.

@BKPepe
Do you mean this?:

Still open from my first review and untouched by this push, not repeated inline: the missing DEPENDS on ip-full / vxlan (@BKPepe has #30168 (comment) and there is no answer yet

These are not dependencies, they are options that give additional functionality. What would they be called, "optional dependencies" perhaps?

The full list of optional dependencies (none of which is required for basic functionality):

  1. wpad-mbedtls
  2. luci-ssl
  3. luci-app-commands
  4. ip-full
  5. kmod-nft-bridge
  6. vxlan

Is anything else outstanding?

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.

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.

@BKPepe
There's this, although it's not in the comments here:
openNDS/mesh11sd@d0db535

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.

We do have the Mesh submenu question.
We actually have the following packages that should be in that submenu:
mesh11sd
batman-adv
batctl
alfred

What about batmand, already in openwrt/packages?

So it is not a single package submenu, it is at least 5 packages that should be in there.

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.

Based on this: #30163 (review) there would be just three packages in that SUBMENU. :( I agree that at least 5 packages should be placed there, but we can put it somewhere right now and later we can move it to the more appropriate place, though.

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#30168.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

@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 (4a953b7, an amend of 3e25152 — my last review); no new issues found.

Two content changes, both of which close notes from earlier rounds:

  • SUBMENU:=MeshWireless. That is the grouping @BKPepe landed on in the submenu thread and it is an established one here — 13 other net/ packages already use SUBMENU:=Wireless (net/dawn, net/wavemon, net/wifischedule, …). The thread is still live on @bluewavenet's side, but that is a feed-wide taxonomy question rather than something this diff has to settle.
  • The patch's Upstream-Status paragraph. My one finding last time was that "released in 7.2.0" pointed at a release that does not exist; it now reads "in the private 7.2.0 beta and is expected in the 7.2.0 release", which matches what @bluewavenet stated in the thread. Re-checked upstream and it is still consistent: git ls-remote shows v7.1.0 (6299bce) as the newest tag with no v7.2.0, and refs/heads/master and refs/heads/7.2.0beta both still point at that same 6299bce — i.e. the public branches do not yet carry the fix, which is exactly what "private beta" implies. Denied [https://github.com/openNDS/mesh11sd/pull/204] is also inside the standard Upstream-Status vocabulary, unlike the previous superseded, and the full URL survives being read as a bare file. I still cannot query openNDS/mesh11sd through the connector (access here is scoped to openwrt/packages), so the "was closed" half rests on the submitter's word rather than my own check.

The commit body was reworded in step with the patch and still matches the diff, including the PKG_RELEASE:=2 rationale. Everything else re-verified against the new head and unchanged: the hunk is byte-identical to the previous head, applies to the v6.2.1 tarball with no fuzz or offset, the case is POSIX shell, and $version / $tmpdir remain the only variables the informational branches touch.

CI is fully green on 4a953b7 — all ten Feeds Package Test Build targets and the three FormalityCheck runs — so nothing to ground against there, and the earlier PKG_RELEASE formality warning is resolved.

Still open from my first review and untouched by this push, not repeated inline: the missing DEPENDS on ip-full / vxlan (@BKPepe has asked @bluewavenet to confirm and there is no answer yet — it remains the one I would want settled before merge, since the description advertises vxlan tunneling "by default") and the GPL-2.0-only vs. GPLv3-or-later disagreement between LICENSE and the installed script. Neither blocks a merge in my reading.


Generated by Claude Code

Mesh11sd autonomously manages all aspects of an 802.11s mesh
network, with dynamic mesh parameters across all nodes and point to
multi-point vxlan tunneling.

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

Carries three backports on top of the routing feed's copy, all from
the 7.2.0 development cycle and all pointed out by upstream:

- 443cdb4c handles the informational options before get_current_setup()
  runs. The setup pass waits for br-lan through wait_for_interface(),
  so on a host without that bridge "mesh11sd -v" took the full
  interface_timeout, ten seconds by default. That is invisible on a
  running router and fatal in the package CI, which kills each version
  probe after ten seconds.
- 9d18091f makes the script header agree with the LICENSE file the
  project ships. It claimed GPL version 3 or later while the file is
  GPL version 2, so PKG_LICENSE follows it to GPL-2.0-or-later.
- d0db5353 fixes a typo in get_current_setup(): the length came from
  $apmon_cgi_dir, which is never set, so strlen was always 0 and the
  trailing slash check read the wrong character.

The submenu is Mesh rather than the Network top level the feed copy
used; the other mesh packages follow once the move from the routing
feed is complete.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
@BKPepe
BKPepe merged commit cf71e9d into openwrt:master Aug 18, 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