aboutsummaryrefslogtreecommitdiff
path: root/scripts/testing/archsetup-test.conf
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-28 01:43:24 -0400
committerCraig Jennings <c@cjennings.net>2026-06-28 01:43:24 -0400
commit7630a385a57263b7ac5ea0d130542c7400788f8a (patch)
tree60f266d98972f2ef201e32a8f1716eba164fd88e /scripts/testing/archsetup-test.conf
parent934f7aaa12e68c9389b238e8cfbd1e9568a8c0a8 (diff)
downloadarchsetup-7630a385a57263b7ac5ea0d130542c7400788f8a.tar.gz
archsetup-7630a385a57263b7ac5ea0d130542c7400788f8a.zip
feat(hyprland): guard against live GPU/compositor library upgrades
A pacman -Syu that swaps mesa/hyprland/wayland runtime libs out from under a running Hyprland session crashes the compositor: the next GPU-lib call hits a now-"(deleted)" library and SIGABRTs, taking the Wayland clients with it (hit ratio 2026-06-07, mesa + hyprland upgraded live). It's a likely driver of ratio's high unsafe-shutdown ratio. I added a pacman PreTransaction hook (hypr-live-update-guard) on the GPU/compositor runtime set. When such an upgrade is pending and Hyprland is running, it aborts before any package is swapped and tells the user to re-run from a TTY with the session stopped. Aborting at PreTransaction is safe: nothing is replaced yet, so the live session is untouched. With no Hyprland running (the from-a-TTY path) the guard stays quiet and the upgrade proceeds. Override with HYPR_ALLOW_LIVE_UPDATE=1 or by touching the sentinel file named in the abort message. archsetup installs the guard and hook in the hyprland path. The decision logic is covered by tests/hypr-live-update-guard (running/not, override, multi-package, empty-target). The hook firing against a real pacman transaction needs a live Hyprland session, filed as a manual test.
Diffstat (limited to 'scripts/testing/archsetup-test.conf')
0 files changed, 0 insertions, 0 deletions