Pixel3Arch packages.yml now publishes all 14 device packages; pacman -Sl souveraine-aarch64 is the manifest. Update TASK-25 status/acceptance + record the four cross-build shapes and the committed-junk CI trap. DUMP for the session. STATE.md last-updated 2026-07-30.
2.8 KiB
DUMP — package publishing green (2026-07-30)
The session that closed the TASK-25 stranding gap. Every hand-carried device
package now reaches the phone through pacman -Syu.
What was wrong
9 device packages were installed on the daily-driver phone but NOT in
souveraine-aarch64, so they could never update — the same silent-stale
disease that bit sessiond. The audit (pacman -Sl vs pacman -Qs vs the
PKGBUILD inventory) found the memory's "5 stranded" was an undercount: the
real set was 9.
| package | arch | shape |
|---|---|---|
| pulse-native-provider | any | meta |
| souveraine-osk-switch | any | script |
| souveraine-stevia | aarch64 | meson C |
| souveraine-squeekboard | aarch64 | meson C + cargo |
| blueline-edge-sense | aarch64 | Makefile C |
| hexagonrpc-blueline | aarch64 | meson C (audio ADSP — boot path) |
| tqftpserv-blueline | aarch64 | meson C (modem FW — boot path) |
| usb-signaller | aarch64 | cargo |
| hyprgrass | aarch64 | meson (Hyprland plugin) — DEFERRED |
libssc-souveraine is authored but the phone runs upstream libssc — deferred
until we switch.
What landed
Pixel3Arch packages.yml (run 993, first green) builds, signs, and
publishes all 8 into the additive edge release. pacman -Sl souveraine-aarch64 now lists 14 packages and IS the manifest. First real
upgrade delivered: usb-signaller 0.3.1-2 → 0.3.1-3.
Four cross-build shapes are encoded (see TASK-25). The non-obvious one: on this
toolchain --sysroot alone fails to link — ld resolves the sysroot libc.so
script's = paths against the wrong prefix and falls back to the host
/lib/libc.so.6; an explicit -L$SYSROOT/usr/lib is what makes ld find the
correct script.
Traps found
- Committed build junk. Run 992 failed because stale bare VCS clones
(
pkgs/stevia/stevia/,pkgs/squeekboard/squeekboard/) and 9 built*.pkg.tar.zstbinaries (incl. a 1.7 MB packfile) had been committed; makepkg rejected the clone. Fix:git rm'd the junk, gitignored*.pkg.tar.zst+ VCS checkout dirs, setSRCDESTout-of-tree in CI. - usb-signaller built for the host tuple. Its
prepare()/build()usedrustc's host target with no--target. Made cross-aware (CARGO_BUILD_TARGET+ per-target linker;package()follows thetarget/<triple>/releaseartifact). - tqftpserv had no cross hook. Added
MESON_CROSS_FILEinbuild(), mirroring hexagonrpc.
Open
- The kernel (
kernel.yml) is the last holdout — still a raw.pkg.tar.zstwith norepo-add --sign. - hyprgrass + libssc-souveraine deferred (in-header in
packages.yml). - The subconscious surface still has no souveraine overlay host (see
SHELL-SURFACES.md) — the package-side twin of that problem is now closed.
Connects to
TASK-25 (updated in place), STATE.md, SHELL-SURFACES.md,
stranded-packages-publishing memory.