Restore the rpm mtime on vmlinuz after signing #74
No reviewers
Labels
No labels
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
monolith-os/monolith!74
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "pin-vmlinuz-mtime"
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?
Follow-up to
55d5035: the faketime pin made the signature bytes deterministic, but the ~290MB kernel-cachyos layer still churned nightly. sbsign writes a fresh output file whose mtime is the real build wallclock (LD_PRELOAD can't fake what the kernel stamps on the inode), and chunkah embeds mtimes in the layer tar, so the layer re-hashed on every build even when the kernel didn't change. Confirmed by diffing the gnome 20260717/20260718 amd64 manifests: the layer changed on a day with no kernel-cachyos update.Touch vmlinuz back to the rpm's timestamp (the same instant the signature is already pinned to). Verify by checking the kernel layer digest stays identical across the next two nightlies without a kernel update.
Should cut roughly 290MB per edition per nightly off both the runner pushes and every machine's daily update.
🧪 Test this PR on a real install
Once the build checks on this PR pass, a signed test image is published for each edition this PR builds. Pick the one matching your hardware and, from an existing Monolith install (which already has the signing policy), rebase onto it:
gnomekdexfcecosmicbudgiehyprland-noctaliahyprland-dmsniri-noctalianiri-dmsnourishgnome-nvidiakde-nvidiaxfce-nvidiacosmic-nvidiabudgie-nvidiahyprland-noctalia-nvidiahyprland-dms-nvidianiri-noctalia-nvidianiri-dms-nvidianourish-nvidiaThe tags are rebuilt on every new commit here, so
rpm-ostree upgradepulls the latest build. When you're done testing, return to your edition's released image (:latest).The commands cover the editions this PR affected when it was opened; commits that touch more editions publish their tags too, just without a refreshed comment. The test tags stop updating once this PR is merged or closed.