live-iso common: TPM2-unlocked ZFS encryption (tpm-or-none), storage gates, swtpm harness, xfs fstab fix, pahole, vdb-prune #13

Closed
CanuteTheGreat wants to merge 0 commits from feat/tpm-unlock-patronus-fs-gates into main
Owner

Based on fix/gringotts-post-install-roots-v2: merge that first. Patronus vendors this common/.

Based on fix/gringotts-post-install-roots-v2: merge that first. Patronus vendors this common/.
- liveinst/rtc.py + Installer.finish(): hwclock -w -u only from a verified clock (chrony or HTTP Date), steps a months-off live clock first; never writes an unverified clock
- gnome-extra/horcrux-gnome-defaults-1-r1: RDEPEND net-misc/horcrux-chrony-nm (+chrony, NM, control-center), first-login Wi-Fi chooser autostart (once, only when offline with a Wi-Fi device); desktop.apply puts both into the target world
- gringotts-tools-1-r1: gringotts-firstboot waits for a network with no time limit, retries the tree sync every 10 min, is not a supervised daemon (OpenRC showed it crashed once finished); gringotts-install offers nmtui when the live stick is offline
- gnome-light Dockerfile: the size strip kept deleting /usr/include and every static lib (no C compiler on installed systems, no zfs-kmod rebuild on kernel updates): keep glibc/linux-headers/elfutils/openssl/zlib/zstd/xz/ncurses/libxcrypt dev files and gate a compile
- gringotts Dockerfile: stale-base gate (REUSE_ROOTFS base predating the hogshead fixes shipped without the clock hook / cups-browsed zeroconf)
- harness: -rtc base months off on every desktop boot; gates installer-writes-rtc-from-a-synced-clock, chrony-nm hook package-owned, chrony steps the months-off clock after the network, toolchain compiles; gringotts late-network phase (NIC link down 12 min via QMP set_link, firstboot must wait then complete and not show crashed)
- horcrux-backup-1-r1: exclude ~/Nextcloud
- build.sh: unpack the rootfs with tar --anchored --exclude='dev/*': the unanchored pattern also dropped every directory named dev (kernel can/dev, dhcpcd/dev ...)
- setup-rootfs.sh: keep /usr/src/linux-<ver> (the kernel build tree, ~170 MB) - zfs-kmod and every other module build against it
- gringotts variant: same toolchain-keeping strip as gnome-light (it deleted /usr/include and every *.a)
- common/vdb-prune.py (+tests): drops the CONTENTS records of intentionally stripped files (reviewed groups: docs, non-English locale/help, pyc, SoC firmware, non-toolchain headers/static libs, clang), run as the last strip step
- QEMU gates package-contents-complete-no-missing-files (any installed package with a missing CONTENTS file fails) and kernel-module-builds-against-running-kernel (out-of-tree module against /lib/modules/$(uname -r)/build)
Without the flag nothing rebuilds the ZFS module for a new kernel: the dist-kernel update installs an initramfs without zfs.ko (dracut: Failed to find module zfs) and a ZFS-root laptop would not boot. This is also what broke the daily ISO builds (cached zfs-kmod layer for the previous kernel).
installer: plain xfs/ext4 installs write /etc/fstab (root, /boot, ESP by UUID); without it /boot was not mounted on the installed system and kernel updates missed the partition GRUB reads
All checks were successful
CI / Web UI theme (light/dark) (pull_request) Successful in 10s
CI / Mobile theme (light/dark) (pull_request) Successful in 9s
CI / Check (pull_request) Successful in 1m37s
CI / Security Audit (pull_request) Successful in 2m43s
CI / Build Web UI (pull_request) Successful in 2m21s
CI / USE-flag feature builds (pull_request) Successful in 9m31s
CI / UI E2E (browser) (pull_request) Successful in 8m51s
CI / Test (pull_request) Successful in 32m31s
CI / Build (pull_request) Successful in 8m32s
CI / Build-1 (pull_request) Successful in 9m17s
CI / Gentoo Docker Build (pull_request) Successful in 40m53s
CI / Gentoo USE-flag matrix (ebuild install) (pull_request) Successful in 35m48s
c427b73452
CanuteTheGreat closed this pull request 2026-11-04 20:52:52 -08:00
All checks were successful
CI / Web UI theme (light/dark) (pull_request) Successful in 10s
CI / Mobile theme (light/dark) (pull_request) Successful in 9s
CI / Check (pull_request) Successful in 1m37s
CI / Security Audit (pull_request) Successful in 2m43s
CI / Build Web UI (pull_request) Successful in 2m21s
CI / USE-flag feature builds (pull_request) Successful in 9m31s
CI / UI E2E (browser) (pull_request) Successful in 8m51s
CI / Test (pull_request) Successful in 32m31s
CI / Build (pull_request) Successful in 8m32s
CI / Build-1 (pull_request) Successful in 9m17s
CI / Gentoo Docker Build (pull_request) Successful in 40m53s
CI / Gentoo USE-flag matrix (ebuild install) (pull_request) Successful in 35m48s

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
CanuteTheGreat/horcrux!13
No description provided.