Skip to content

test(build-depends): lock in os-countme curl+jq FSDK paths - #122

Open
kylerankin wants to merge 5 commits into
projectbluefin:mainfrom
kylerankin:confirm-curl-path
Open

kylerankin wants to merge 5 commits into
projectbluefin:mainfrom
kylerankin:confirm-curl-path

Conversation

@kylerankin

Copy link
Copy Markdown
Contributor

Issue: #96

Confirm the curl component path in the freedesktop-sdk junction.

What was verified

elements/bluefin-server/os-countme.bst declares:

- freedesktop-sdk.bst:components/curl.bst
- freedesktop-sdk.bst:components/jq.bst

jq.bst was already confirmed. For curl.bst I checked the pinned junction
ref directly instead of trusting the inference. The junction
(elements/freedesktop-sdk.bst) pins freedesktop-sdk-26.08.0-0-gdb97cce32cecadc7a3e98f06d557ebfa6ba9ad46, whose element-path is elements/:

git ls-tree -r --name-only db97cce32cecadc7a3e98f06d557ebfa6ba9ad46 \
  | grep -E 'components/(curl|jq)\.bst$'
# elements/components/curl.bst
# elements/components/jq.bst

Both resolve at the pinned ref, on the exact same freedesktop-sdk.bst:components/<X>.bst
path that ca-certificates, systemd, podman, and jq already use in this
repo. 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 so
the confirmed resolution cannot silently drift.

— hive: backend=pi model=lemonade/Ornith-1.5-35B-A3B-GGUF-Q6_K

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 hanthor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

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 kylerankin left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants