From 20639f31f96ac84c4f27e046f33cf4e6fbae1339 Mon Sep 17 00:00:00 2001 From: rain Date: Sun, 21 Jun 2026 23:13:42 -0400 Subject: [PATCH] Use --sudoloop for paru install in non-interactive bootstrap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kaiser bootstrap failed at 'paru -S maplemono-nf-cn' with 'sudo: a terminal is required to read the password'. paru doesn't need sudo for the build itself (it builds as the user), but it does call sudo internally for some package operations — and on kaiser the sudoers config requires a TTY password for those calls. --sudoloop runs sudo in the background, which avoids the TTY-prompt issue entirely. The package still builds as the user; only the internal sudo calls go through the background loop. --- run_once_20-install-user-packages.sh.tmpl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/run_once_20-install-user-packages.sh.tmpl b/run_once_20-install-user-packages.sh.tmpl index 0c6f121..8f1d0a0 100755 --- a/run_once_20-install-user-packages.sh.tmpl +++ b/run_once_20-install-user-packages.sh.tmpl @@ -162,7 +162,11 @@ if fc-list 2>/dev/null | grep -qi "Maple Mono NF"; then else {{ if eq .os_family "arch" -}} log "installing maplemono-nf-cn from AUR (via paru)" - paru -S --needed --noconfirm maplemono-nf-cn + # paru refuses to run as root, so don't sudo it. --sudoloop runs sudo + # in the background so any internal sudo prompts don't block the + # non-interactive chezmoi run. If the host doesn't have NOPASSWD sudo, + # paru will fail (and the bootstrap will surface the error). + paru --sudoloop -S --needed --noconfirm maplemono-nf-cn {{ else if eq .os_family "debian" -}} log "downloading MapleMono-NF.zip from subframe7536/Maple-font $MAPLE_FONT_VERSION" FONT_DIR="$USER_HOME/.local/share/fonts/maple-mono-nf"