diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-25 14:18:43 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-25 14:18:43 -0400 |
| commit | 8ed42b96cfd0d365678392ef65c99d24c9f2de82 (patch) | |
| tree | 814a0c89b4076df53860c32bf447b7ac57dfb033 | |
| parent | 353b17968bf48100bbd18ed746e0fbe2fe88141f (diff) | |
| download | archsetup-8ed42b96cfd0d365678392ef65c99d24c9f2de82.tar.gz archsetup-8ed42b96cfd0d365678392ef65c99d24c9f2de82.zip | |
fix(archsetup): clear informant news hook before pacman runs
An archangel-installed base ships informant, which registers a pacman PreTransaction hook (AbortOnFail) that blocks every package transaction until Arch news is marked read. archsetup's first transaction (the keyring reinstall) tripped it and the script halted at the bootstrap step. archsetup now marks all news read up front with `informant read --all` so the keyring, refresh, and install steps proceed. The --all flag marks without printing or prompting. A bare `informant read` is interactive and would hang an unattended run. The guard is a no-op when informant isn't installed.
The new ZFS VM test path surfaced this. Its base image comes from a current archangel ISO that includes informant, and the older btrfs base predated it.
| -rwxr-xr-x | archsetup | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -876,6 +876,17 @@ prerequisites() { display "subtitle" "Bootstrapping" + # If the base ships informant (e.g. an archangel-installed system), it + # registers a pacman PreTransaction hook (AbortOnFail) that blocks every + # package transaction while Arch news is unread. Mark it all read up front + # so the keyring/refresh/install steps below don't abort. --all marks + # without printing or prompting; a bare `informant read` is interactive and + # would hang an unattended run. No-op when informant isn't installed. + if command -v informant >/dev/null 2>&1; then + action="marking Arch news read (informant)" && display "task" "$action" + informant read --all >> "$logfile" 2>&1 || true + fi + action="ensuring current Arch Linux keyring" && display "task" "$action" (pacman -Syy) >> "$logfile" 2>&1 || error_fatal "$action" "$?" (pacman -S --noconfirm archlinux-keyring) >> "$logfile" 2>&1 || \ |
