aboutsummaryrefslogtreecommitdiff
path: root/configs
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-08 12:55:55 -0500
committerCraig Jennings <c@cjennings.net>2026-07-08 12:55:55 -0500
commite8eff25043c12a7d30dc347be60ce516a5afd05d (patch)
treeb4533792b350d6fd15d5e0144c452aa762ee43c6 /configs
parentda29e92aea51803234d25b6473b4d7fb82dbf7da (diff)
downloadarchsetup-e8eff25043c12a7d30dc347be60ce516a5afd05d.tar.gz
archsetup-e8eff25043c12a7d30dc347be60ce516a5afd05d.zip
fix(guard): allow same-version reinstalls through the live-update hook
The hypr-live-update-guard hook blocked on target names alone, so a same-version reinstall of hyprland (the maintenance console's integrity REINSTALL, right after a full update) aborted identically to a real upgrade. A pure reinstall writes identical bytes over identical bytes and can't crash the live compositor: the SIGABRT hazard needs the on-disk version to actually change. The guard now compares each target's installed version (pacman -Q) against the sync-db candidate (expac -S %v). Both are read-only queries and safe under the transaction lock, pinned live with db.lck present. Targets that match pass as reinstalls, and the block message lists only the version-changing packages. Unresolvable versions (AUR targets, -U transactions, expac missing) still block conservatively. Verified live on ratio: the previously blocked six-package reinstall ran clean with Hyprland up. The block path is pinned by the test suite (13 tests, four new). I deployed the script to /usr/local/bin on both hosts by hand since the installer only copies it on fresh systems.
Diffstat (limited to 'configs')
0 files changed, 0 insertions, 0 deletions