Watch
1
0
Fork
You've already forked SouveraineOS
0
SouveraineOS/docs/DUMP-packages-publish-2026-07-30.md
Fimeg ee68f5b47b mark package stranding resolved (TASK-25)
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.
2026-07-30 13:57:00 -04:00

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.zst binaries (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, set SRCDEST out-of-tree in CI.
  • usb-signaller built for the host tuple. Its prepare()/build() used rustc's host target with no --target. Made cross-aware (CARGO_BUILD_TARGET + per-target linker; package() follows the target/<triple>/release artifact).
  • tqftpserv had no cross hook. Added MESON_CROSS_FILE in build(), mirroring hexagonrpc.

Open

  • The kernel (kernel.yml) is the last holdout — still a raw .pkg.tar.zst with no repo-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.