aboutsummaryrefslogtreecommitdiff
path: root/archsetup.conf.example
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
commit26538d558398b51a23f402582783d2be0a897ff4 (patch)
treee8e90c315267079386bdb1a9c54498713cb7c456 /archsetup.conf.example
parentdb9a5979dd192decf5c9affdd9edb7e2f8fa665a (diff)
downloadarchsetup-26538d558398b51a23f402582783d2be0a897ff4.tar.gz
archsetup-26538d558398b51a23f402582783d2be0a897ff4.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 'archsetup.conf.example')
0 files changed, 0 insertions, 0 deletions