refactor(linux): the kernel gates are shell, and the base carries the tools #223
Loading…
Reference in a new issue
No description provided.
Delete branch "sean/shell-kernel-gates"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
verify-artifact.py and verify-bootc.py are shell now. Both run inside the node OS image, which installed python3 on purpose because nothing else there could read JSON; node-base:v2 carries jq and yq and node-bootc was rebuilt on it, verified by running the new image. Not a rewrite on faith: each gate was run against its Python original case by case -- 28 cases for verify-artifact and 38 for verify-bootc, zero disagreements, including the initramfs size boundaries and the INI shapes configparser accepts. Two corrections the rebuild forced, both read out of the image: loglevel=7 becomes loglevel=4 (node-bootc 2ea31b1), and the note claiming huge pages are not a boot argument was describing an older base -- node-bootc 9529ecd removed hugepages=1024 on 2026-09-04 because Mayastor is gone. The last python3 in the bake is gone too: assemble-bootc.sh now reads the RPM name with jq. INERT until a following commit moves build.recipe.revision, which is the two-commit shape this recipe already uses. https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76
`verify-artifact.py` and `verify-bootc.py` are shell now. Both run INSIDE the node OS image, which installed `python3` on purpose because nothing else there could read JSON. node-base:v2 carries `jq` and `yq`, and node-bootc was rebuilt on it -- verified by running the new image: `/usr/bin/jq`, `/usr/local/bin/yq v4.53.2`, and `yq -p toml` parses `/usr/lib/bootc/kargs.d/01-seanfarm.toml` correctly. NOT A REWRITE ON FAITH. Each gate was run against its Python original case by case, and they agree everywhere: | gate | cases | disagreements | |---|---|---| | verify-artifact | 28 | 0 | | verify-bootc | 38 | 0 | The 38 include the boundaries -- `initramfs_bytes` at exactly 5000000 and 536870912 -- and the INI shapes `configparser` accepts that a naive grep would not: `enabled=no` unspaced, a trailing space, a missing section, an empty string. Both gates also pass the shell tests written against the Python: 9 and 30 negative controls. TWO CORRECTIONS THE REBUILD FORCED, both read out of the image rather than chosen: * `loglevel=7` becomes `loglevel=4`. node-bootc 2ea31b1, "take 40 seconds off every reboot", changed it. `BASE_KARGS` is an exact list comparison, so a base bump that moves the command line has to move this line in the same commit, and the comment now says so. * The note claiming huge pages are "not a boot argument in this base" was describing an older base. node-bootc 9529ecd removed `hugepages=1024` on 2026-09-04 -- it pre-allocated 2 GiB per node for Mayastor's SPDK io-engine, which had held it on the master for 79 days without ever running one. Mayastor is gone. The note now says that, so the next reader does not put it back. The last `python3` in the bake is gone too: `assemble-bootc.sh` read the RPM name with `python3 -c 'import json'` and now uses `jq -r .rpm`. INERT UNTIL ACTIVATED. `build.recipe.revision` still pins `recipes/linux` atebda47a1, so the bake does not see any of this yet -- including the repinned base. That is the two-commit shape this recipe already uses (ebda47a1, then9e2c780). The activating commit follows once this one has a revision to name. Claude-Session: https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76