Repository navigation
Debian package: clean-image install check for root ownership and the GTK shell - #510
Conversation
1b4783d to
325e307
Compare
325e307
ℹ️ Sentinel notice — informational; author is trusted (owner), merge is not blockedHive flagged this PR (author @hanthor, head
Hive did not add the |
🛑 Fix loop escalated — human attention neededThis PR has stayed red on the same commit through 6 delivered fix re-dispatches with no new commit pushed (2 distinct red heads seen). The hive has stopped dispatching further automated fixes for it. Failing checks: arch-package Also red on the base branch / other open PRs (shared breakage, not this PR): gtk-shell, journey Raw failure evidence (from check-run annotations): Remove the |
325e307
ℹ️ Sentinel notice — informational; author is trusted (owner), merge is not blockedHive flagged this PR (author @hanthor, head
Hive did not add the |
325e307 to
4768fc4
Compare
4768fc4
ℹ️ Sentinel notice — informational; author is trusted (owner), merge is not blockedHive flagged this PR (author @hanthor, head
Hive did not add the |
✅ Escalation cleared — back in the automated laneThe shared CI breakage this escalation was raised over (gtk-shell, journey) has cleared — returning this PR to the automated lane. The |
Closes #468
Closes #476
Where main already stood
#474 already did most of the packaging repair.
scripts/tuna-releasebuilds, stages and version-checkstuna-shell-gtk, declareslibgtk4-layer-shell0 (>= 1.1),libgtk-4-1 (>= 4.12)andlibadwaita-1-0 (>= 1.0)plus thedpkg-shlibdepsclosure, and builds withdpkg-deb --root-owner-group.scripts/check-release-packagevalidates numeric uid/gid in both original archives (with negative tests inrelease-deb-ownership-tests.py). Thejourneyjob apt-installs the.deband runstuna-gtk-shell-proof --installed-package. The GTK shell's CSS and icons are compiled into the binary, so there are no extra data files to ship. Because it is installed beside the compositor,SHELL_BINARIESselects it ahead of the legacy shell, which matches the Arch package.What this PR adds
scripts/check-deb-clean-install, a new CI step right after the package build:dpkg-deb -clisting and requires every entry to beroot/root, the archive root to bedrwxr-xr-x, and./usr/bin/tuna-shell-gtkto be-rwxr-xr-x..debon a pristineubuntu:26.04container. Each of the six installed binaries must be0:0 755, have nonot foundlibraries inldd, and report<bin> <package version>.tuna-shell-gtkmust sit besidetuna-compositor, theroost-*compat symlinks from Rename roost to tuna (reproducible script + compat layer) #536 must resolve to thetuna-*binaries, the sessionExecmust resolve, and the PAM and systemd files must be root-owned.-devpackage, so a missingDependscould never fail CI. The Arch job's equivalent is itspacman -Uplus--versionstep inarchlinux:latest.Dependsno longer listslibgtk-4-1andlibadwaita-1-0twice.packaging/README.mdno longer says the.debships only the legacy shell.docs/install.mdanddocs/release.mdnow describe the Ubuntu 26.04 target and the clean-install check.release_contract::debian_archive_is_root_owned_and_ships_the_gtk_shell, pins--root-owner-group, the clean-install checks and the CI step.This is rebased onto the rename (#536) and keeps its
tuna-desktoppackage and compat layer.scripts/rename-to-tuna --check --no-cargopasses.Verification
shellcheck -x scripts/check-deb-clean-installis clean.--root-owner-groupis rejected ("entries not owned by root/root"), and the deb without the GTK shell is rejected.release_contracttests pass (7 of 7, run before the rename).ubuntu:26.04install, and the installed GTK session proof.Known issue
journeyfailing atG-IME-CANDIDATESon ubuntu-26.04 is pre-existing (#526).🤖 Generated with Claude Code
https://claude.ai/code/session_016YpFGeYYmfpLzk2LMr8ebX