test(build-depends): lock in os-countme curl+jq FSDK paths - #122
kylerankin wants to merge 5 commits into
Conversation
Regression test for projectbluefin#96. The curl dependency in elements/bluefin-server/os-countme.bst was inferred, not verified; the minimal image ships neither curl nor jq, so a wrong freedesktop-sdk junction path would fail to resolve and the image would not build. The pinned freedesktop-sdk ref (freedesktop-sdk-26.08.0) ships both elements/components/curl.bst and elements/components/jq.bst, so assert os-countme.bst keeps these exact dependency paths. Signed-off-by: kylerankin <kylerankin@users.noreply.github.com>
hanthor
left a comment
There was a problem hiding this comment.
Verified: elements/bluefin-server/os-countme.bst does declare freedesktop-sdk.bst:components/curl.bst and freedesktop-sdk.bst:components/jq.bst, so the test asserts something true rather than aspirational. pytest tests/unit 212 passed / 1 xfailed, bats 62 ok.
One coordination note, not a change request. #132 already contains this exact test, copied verbatim into the slot where it replaces test_os_stack_includes_bash. Merging both into main conflicts on tests/unit/test_build_depends.py, and a careless resolution leaves two def test_os_countme_depends_on_curl_and_jq in one module — Python keeps the second silently, so the duplicate never surfaces as an error.
Cheapest fix: land this one first (it's one function and no risk), then have #132 rebase and drop its copy. I've noted the same on #132.
Separately, worth knowing while #132 is open. Flatcar 4593.2.5's /usr ships /usr/bin/curl and /usr/bin/jq — I checked the tarball listing. So if #132's cutover lands, os-countme.bst would be pulling FSDK-linked curl/jq onto a Flatcar glibc, which is exactly the two-ABI situation #132 says it's removing. This test would still pass while that's true, which is worth being explicit about in its docstring: it pins the declaration, not the ABI.
Generated by Claude Code
kylerankin
left a comment
There was a problem hiding this comment.
Thanks for the review and the merge, Jorge.
On the ABI note: good catch. This test pins the declaration (the FSDK junction path resolves on the pinned FSDK ref), not the ABI — on Flatcar 4593.2.5's /usr ships its own curl/jq, so the assertion would still pass even though the ABI situation #132 is removing is exactly what makes the FSDK-linked curl/jq undesirable there. The docstring already states it verifies the pinned ref ships both components; I'll make the "declaration, not ABI" distinction explicit in #132's copy of this test, since that's the version that lands next to the Flatcar cutover where the question is live. For this PR (FSDK-only), the current wording is accurate as-is, so I'm leaving the approved test untouched rather than resetting the approval for a doc-only tweak.
Sequencing noted: land #122 first, then #132 rebases and drops its duplicate copy of test_os_countme_depends_on_curl_and_jq.
Issue: #96
Confirm the curl component path in the freedesktop-sdk junction.
What was verified
elements/bluefin-server/os-countme.bstdeclares:jq.bstwas already confirmed. Forcurl.bstI checked the pinned junctionref directly instead of trusting the inference. The junction
(
elements/freedesktop-sdk.bst) pinsfreedesktop-sdk-26.08.0-0-gdb97cce32cecadc7a3e98f06d557ebfa6ba9ad46, whose element-path iselements/:Both resolve at the pinned ref, on the exact same
freedesktop-sdk.bst:components/<X>.bstpath that
ca-certificates,systemd,podman, andjqalready use in thisrepo. The path is correct and resolves.
Change
The minimal image ships neither curl nor jq, so a wrong junction path fails to
resolve and the image does not build. This adds a regression test
(
test_os_countme_depends_on_curl_and_jq) locking the two dependency paths sothe confirmed resolution cannot silently drift.
— hive: backend=pi model=lemonade/Ornith-1.5-35B-A3B-GGUF-Q6_K