package: declare the runtime binaries these scripts have been inheriting - #2305
Merged
Conversation
Follow-up to #2304. Dropping BR2_PACKAGE_JSONFILTER from every defconfig showed that wifibroadcast-ng ran jsonfilter without selecting it; 630e3bb fixed that one. This is the rest of the same class, found by mapping binary -> owning package from each .mk's install paths, grepping every shipped script for those names, and subtracting what the caller already selects. wifibroadcast-ng yaml-cli (:243), yaml-cli-multi (:71), curl (:129) quirc-openipc curl, in files/qrscan.sh -- installed to /usr/sbin and started at boot by S97qrscan whenever wlandev is set sigmastar-osdrv-infinity6e yaml-cli, nine times in files/script/zoom.sh, which ships because the .mk installs files/script/* wholesale adaptive-link yaml-cli-multi, which its .mk lists in _DEPENDENCIES -- build ordering, not Kconfig enablement curl needs both symbols: the binary is a sub-option inside `if BR2_PACKAGE_LIBCURL_OPENIPC`, so selecting only BR2_PACKAGE_LIBCURL_OPENIPC_CURL leaves it inert. Verified with kconfiglib that all four packages parse, that every selected symbol resolves to y with them enabled, and that there are no unmet-dependency warnings. Only one of these is reachable today. yaml-cli is in 122 of 125 defconfigs and the curl binary in the same 122, so those two held by luck the way jsonfilter did. yaml-cli-multi was never guaranteed anywhere and is absent from a stock lite image -- checked on the ssc30kq lab board -- so enabling wifibroadcast-ng or adaptive-link there ships a script that fails at runtime on a drone. Two packages the sweep flagged are NOT fixed, because neither dependency is real: baresip-openipc's files/dtmf_0.sh has its only curl line commented out, and comgt's files/mywifi_tg.sh is never installed -- comgt.mk ships just the comgt binary.
openipc-ai
requested review from
cronyx,
flyrouter and
viktorxda
as code owners
August 24, 2026 09:17
PR Summary by QodoDeclare runtime tool dependencies for shipped scripts (yaml-cli, yaml-cli-multi, curl)
AI Description
Diagram
High-Level Assessment
Files changed (4)
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can switch off images and animations for a plain-text comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up to #2304. Dropping
BR2_PACKAGE_JSONFILTERfrom every defconfig exposed thatwifibroadcast-ngranjsonfilterwithout ever selecting it — it had worked purely because every defconfig happened to set the symbol for the WebUI's benefit. 630e3bb fixed that one during review. This is the rest of the same class.Found by mapping binary → owning package from each
.mk's install paths, grepping every shipped#!script for those names, and subtracting whatever the calling package already selects.wifibroadcast-ngyaml-cli(:243),yaml-cli-multi(:71),curl(:129)quirc-openipccurl, infiles/qrscan.sh— installed to/usr/sbinand started at boot byS97qrscanwheneverwlandevis setsigmastar-osdrv-infinity6eyaml-cli, nine times infiles/script/zoom.sh, which ships because the.mkinstallsfiles/script/*wholesale into/usr/binadaptive-linkyaml-cli-multi, which its.mklists in_DEPENDENCIES— build ordering, not Kconfig enablementcurl needs both symbols
BR2_PACKAGE_LIBCURL_OPENIPC_CURLlives insideif BR2_PACKAGE_LIBCURL_OPENIPC, so selecting only the sub-option leaves it inert. Both are selected.Incidental find while checking this: 28
ultimatedefconfigs set the curl sub-option without the parent. They are fine —uacme-openipcselects the parent — but that is the same implicit chain this PR is trying to stop relying on.How reachable is any of this
Only one case is live.
yaml-cliis in 122 of 125 defconfigs and the curl binary in the same 122, so those held by luck exactly the wayjsonfilterdid — every board that needs them has them today. The three without ares2l22m_lite,s2l33m_liteandhi3519dv500_toolchain, none of which enables the affected packages.yaml-cli-multiis the real one: it was never guaranteed anywhere, and is absent from a stock lite image — checked on the ssc30kq lab board,which yaml-cli-multi→ nothing. Enablingwifibroadcast-ngoradaptive-linkthere today ships a script that fails at runtime, on a drone.Two the sweep flagged that are NOT fixed
Neither dependency is real, so a
selectwould have been wrong:baresip-openipc— the onlycurlline infiles/dtmf_0.shis commented out (# timeout 2 curl -s …).comgt—files/mywifi_tg.shis never installed;comgt.mkships only thecomgtbinary.Verification
kconfiglibover all four packages plus their select targets — parses clean, every selected symbol resolves, no unmet dependencies:Repo gates:
No image changes on any board in the matrix: every symbol these now select is already enabled wherever the selecting package is enabled.
NOT_BUILTis unchanged —yaml-cli-multi,wifibroadcast-ngandadaptive-linkall stay unbuilt here, and--self-testwill say so if that ever changes.Test plan
kconfiglibconfirms all four parse and every select resolves with no unmet dependenciesci-matrix.py --self-testpasses,NOT_BUILTunchangedtest_shell_parse.shandlint-workflow-shell.pypassyaml-cli-multiabsence confirmed on real hardware (ssc30kq)