From cf98e69d76cd952b2fd58fc9f77e46826ac941d0 Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Fri, 22 May 2026 10:41:22 +0100 Subject: fix(pkg): skip mark-explicit for packages resolved to a different provider paru may resolve a declared name to a provider with a different package name (e.g. ttf-font-awesome -> otf-font-awesome). Calling `pacman -D --asexplicit` on the declared name then fails with 'could not find or read package' and aborts the recipe. Intersect the declared list with `pacman -Qq` before bumping reasons; names not present in the local DB are silently skipped. --- justfile | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/justfile b/justfile index d9b9699..e74740b 100644 --- a/justfile +++ b/justfile @@ -1073,7 +1073,15 @@ pkg-apply *groups: mark_explicit() { # Skip blank input; pacman -D errors on empty arg list. [ -n "$1" ] || return 0 - printf '%s\n' "$1" | xargs sudo pacman -D --asexplicit >/dev/null + # Intersect with the local DB: a declared name may have been + # resolved by paru to a provider with a different package name + # (e.g. ttf-font-awesome -> otf-font-awesome), in which case + # `pacman -D --asexplicit ` would error with + # "could not find or read package". + installed=$(printf '%s\n' "$1" | sort -u \ + | comm -12 - <(pacman -Qq | sort -u)) + [ -n "$installed" ] || return 0 + printf '%s\n' "$installed" | xargs sudo pacman -D --asexplicit >/dev/null } if [ -n "{{ groups }}" ]; then for group in {{ groups }}; do -- cgit v1.3.1