From 8ed42b96cfd0d365678392ef65c99d24c9f2de82 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Thu, 25 Jun 2026 14:18:43 -0400 Subject: 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. --- archsetup | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/archsetup b/archsetup index ce08ad3..cc62751 100755 --- a/archsetup +++ b/archsetup @@ -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 || \ -- cgit v1.2.3