The build reads the staging archive without verifying it #7
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Keel-Linux/tracker#7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Measured during a mariadb rebuild, 2026-09-27:
The staging distribution was given its own key so a nightly could sign itself
and so appliance recipes could stop reading it through
[trusted=yes], whichswitches verification off. Half of that landed: staging is signed. The other
half did not: the build environment has no copy of the staging public key, so
apt warns and carries on unverified, which is where it was before, only now it
says so.
Closes when a layer build verifies the staging archive: the staging keyring is
installed where the build's apt reads keyrings, the source entry names it
through
Signed-By, no[trusted=yes]remains in a recipe, and a build failsrather than warns when the signature cannot be checked. The keyring must not
reach the finished image, the way the build time source does not:
common/removelists-final/turnkeyis where that is arranged today.Touches the recipes that copy the archive into their bootstrap, which is
keel-nodebb, keel-mariadb, keel-postgresql and keel-wordpress, all four
carrying the same block, and it is one more argument for the shared CI and
recipe pieces in tracker#4's neighbourhood.
Found while rebuilding mariadb for keel 0.3.5. Note for whoever takes it: a
rebuilt parent orphans its children, so mariadb and wordpress have to be
rebuilt and published together, which
keel verifycorrectly refused to lethappen by halves.
Closed. The build verifies the staging archive, and the chain was rebuilt on it.
How it verifies. In all four recipes: the public half of the staging key is installed into the build tree as
/etc/apt/keyrings/keel-staging-keyring.asc, from/srv/keel-apt/keys/keel-staging-keyring.asc, whichbin/publishof keel-linux/apt now writes on every signed publication (apt#11); the source entry names it throughsigned-by; no recipe saystrusted=yesany more;apt-get updateruns with--error-on=any; andbin/keel-archive-checkmakes the same checks itself withgpgv, at the bootstrap and again on the tree about to be configured, where noapt-get updateruns.How it fails. Measured against the real archive in a scratch apt root:
[trusted=yes], no keyringW: ... Missing key, exit 0, packages installedsigned-by, no keyringE: The repository ... is not signed, exit 100signed-by, the wrong keyE: The repository ... is not signed, exit 100signed-by, the staging keyGet:1 ... InRelease, exit 0The keyring does not reach the image. The conf script removes it with the source entry and the archive copy;
common/removelists-final/turnkeyremoves all three whatever a recipe does (Keel-Linux/common#4);conf.d/zzz-keel-archiverefuses to enable the appliance's own source while either is present; and the wordpress boot test reads the assembled rootfs and fails if any of the three is there. Absent from both rootfs trees published tonight, and both delta tarballs carry the three paths as whiteouts.The rebuild this was blocking.
mariadb0adca434toc1d6fe68andwordpressc9e33fa1toc09dc984, rebuilt and published together with the verification in place;keel verifyreports 6 checked, 6 ok on the staged tree and again against mirror.keellinux.org. The newmariadbcarries keel 0.3.5 andconf.d/mainraises the floor to it.appliance / build-and-booton keel-mariadb#10 is green, the replication phase and its refusal included, and that pull request is merged.Pull requests: Keel-Linux/common#4, apt#11, keel-mariadb#12 and #13, keel-postgresql#8 and #9, keel-nodebb#11 and #12, keel-wordpress#4.
The four way duplication this issue notes is now #8, and a
keel-wordpressworkflow that never runs on its own default branch is #9.