From 5543194bec795bd2efa2fb76f8e33774ba25f5f7 Mon Sep 17 00:00:00 2001 From: The_miro Date: Thu, 2 Jul 2026 12:55:59 +0200 Subject: [PATCH] fix(modules): correct wrong package names/sources found by static audit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Statically audited every optional-module and DE script's package tokens against the official repos, the AUR, and Flathub. Ten modules named a package that does not exist at the source they used, so each would abort with "target not found" (pacman), an AUR miss, or a Flathub 404: Installed via pacman but AUR-only (switched to the yay AUR helper): - tetris: bastet - doom: chocolate-doom, freedoom - openarena:openarena - openshot: openshot - freeipa-client (module): oddjob — now optional via yay with a pam_mkhomedir fallback (matches freeipa-enroll.sh) Wrong AUR/repo package names: - cecilia: cecilia -> cecilia-git - productivity: python-jrnl -> jrnl (in the official repos) - localtunnel: AUR fallback localtunnel -> nodejs-localtunnel Wrong/absent Flatpak IDs: - zen-browser: io.github.zen_browser.zen -> app.zen_browser.zen - stuntrally: io.github.stuntrally.StuntRally3 is not on Flathub at all; switch to the AUR stuntrally-bin (the actual Stunt Rally 3) Verified all corrected names resolve (repo / AUR RPC / Flathub API). Modules whose tokens are in the official repos and merely installed via yay (nyxt, toot, llama-cpp — yay handles both sources) were left as-is. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01MUhrcFU8J1Hnf7vNqNxZNi --- setup/modules/optional-Modules/apps/cecilia.sh | 3 ++- setup/modules/optional-Modules/apps/doom.sh | 8 +++++--- .../optional-Modules/apps/freeipa-client.sh | 17 ++++++++++++++--- .../optional-Modules/apps/localtunnel.sh | 3 ++- .../modules/optional-Modules/apps/openarena.sh | 9 +++++---- setup/modules/optional-Modules/apps/openshot.sh | 8 +++++--- .../optional-Modules/apps/productivity.sh | 4 +++- .../modules/optional-Modules/apps/stuntrally.sh | 11 +++++++---- setup/modules/optional-Modules/apps/tetris.sh | 9 ++++----- .../optional-Modules/apps/zen-browser.sh | 4 ++-- 10 files changed, 49 insertions(+), 27 deletions(-) diff --git a/setup/modules/optional-Modules/apps/cecilia.sh b/setup/modules/optional-Modules/apps/cecilia.sh index 33058aa..182de61 100644 --- a/setup/modules/optional-Modules/apps/cecilia.sh +++ b/setup/modules/optional-Modules/apps/cecilia.sh @@ -24,6 +24,7 @@ source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh" # --answerclean All : answer "clean" to the "clean build dir?" prompt # --noconfirm : suppress all remaining yay/makepkg confirmation prompts log "Installing Cecilia (AUR)..." -yay -S --answerdiff None --answerclean All --noconfirm cecilia +# The AUR package is named cecilia-git (there is no plain "cecilia" in repos/AUR). +yay -S --answerdiff None --answerclean All --noconfirm --needed cecilia-git log "Cecilia installed." diff --git a/setup/modules/optional-Modules/apps/doom.sh b/setup/modules/optional-Modules/apps/doom.sh index 68de007..a5b3e18 100644 --- a/setup/modules/optional-Modules/apps/doom.sh +++ b/setup/modules/optional-Modules/apps/doom.sh @@ -27,8 +27,10 @@ set -euo pipefail # Load shared logging helpers from the dotfiles lib source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh" -# chocolate-doom: faithful vanilla Doom port; freedoom: free game data (playable without IWADs) -log "Installing Chocolate Doom and Freedoom data..." -sudo pacman -S --noconfirm --needed chocolate-doom freedoom +# chocolate-doom: faithful vanilla Doom port; freedoom: free game data (playable without IWADs). +# Both are AUR-only (not in the official repos), so install via the AUR helper — +# `pacman -S chocolate-doom freedoom` fails with "target not found". +log "Installing Chocolate Doom and Freedoom data (AUR)..." +yay -S --answerdiff None --answerclean All --noconfirm --needed chocolate-doom freedoom log "Doom installed." diff --git a/setup/modules/optional-Modules/apps/freeipa-client.sh b/setup/modules/optional-Modules/apps/freeipa-client.sh index a674c0f..4780f99 100755 --- a/setup/modules/optional-Modules/apps/freeipa-client.sh +++ b/setup/modules/optional-Modules/apps/freeipa-client.sh @@ -54,13 +54,24 @@ DEF_SERVER="freeipa.abdelbaki.eu" # ── Packages ────────────────────────────────────────────────────────────────── echo "[+] Installing FreeIPA client packages..." -# pacman (without sudo) because this script may be run as root by the TUI +# pacman (without sudo) because this script may be run as root by the TUI. +# Only sssd + Kerberos/LDAP tooling are in the official repos: # sssd : provides NSS/PAM lookups against IPA LDAP + Kerberos # cyrus-sasl-gssapi : GSSAPI mechanism; needed for LDAP binds with Kerberos tickets # openldap : ldapsearch and other LDAP client utilities # krb5 : Kerberos 5 runtime; kinit, klist, kdestroy -# oddjob : D-Bus service that runs pam_oddjob_mkhomedir on first login -pacman -S --noconfirm --needed sssd cyrus-sasl-gssapi openldap krb5 oddjob +pacman -S --noconfirm --needed sssd cyrus-sasl-gssapi openldap krb5 + +# oddjob (pam_oddjob_mkhomedir for on-login home creation) is AUR-only on Arch — +# `pacman -S oddjob` fails with "target not found". It is optional: pam_mkhomedir +# provides the same on-login home creation, so degrade gracefully if the AUR +# build is unavailable. +if command -v yay &>/dev/null; then + yay -S --noconfirm --needed oddjob 2>/dev/null \ + || echo "[!] oddjob AUR build failed — mkhomedir will fall back to pam_mkhomedir." +else + echo "[!] yay not found — skipping oddjob (mkhomedir falls back to pam_mkhomedir)." +fi # freeipa-client provides ipa-client-install (the official FreeIPA enrolment # tool). It is AUR-only on Arch; gracefully degrade if yay is absent. diff --git a/setup/modules/optional-Modules/apps/localtunnel.sh b/setup/modules/optional-Modules/apps/localtunnel.sh index 8179696..fa74d60 100755 --- a/setup/modules/optional-Modules/apps/localtunnel.sh +++ b/setup/modules/optional-Modules/apps/localtunnel.sh @@ -14,6 +14,7 @@ if command -v npm &>/dev/null; then npm install -g localtunnel else # --answerdiff None / --answerclean All suppress interactive PKGBUILD/clean prompts. - yay -S --answerdiff None --answerclean All --noconfirm localtunnel + # The AUR package is named nodejs-localtunnel (there is no plain "localtunnel"). + yay -S --answerdiff None --answerclean All --noconfirm --needed nodejs-localtunnel fi log "LocalTunnel installed." diff --git a/setup/modules/optional-Modules/apps/openarena.sh b/setup/modules/optional-Modules/apps/openarena.sh index 82f73ef..4db5cb8 100644 --- a/setup/modules/optional-Modules/apps/openarena.sh +++ b/setup/modules/optional-Modules/apps/openarena.sh @@ -4,8 +4,9 @@ set -euo pipefail # Load shared log/warn/skip helpers from the installer library. source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh" -log "Installing OpenArena..." -# OpenArena is a free, open-source FPS based on the Quake III Arena engine, -# available directly from the official Arch repositories. -sudo pacman -S --noconfirm --needed openarena +log "Installing OpenArena (AUR)..." +# OpenArena is a free, open-source FPS based on the Quake III Arena engine. +# It is AUR-only (not in the official repos), so install via the AUR helper — +# `pacman -S openarena` fails with "target not found". +yay -S --answerdiff None --answerclean All --noconfirm --needed openarena log "OpenArena installed." diff --git a/setup/modules/optional-Modules/apps/openshot.sh b/setup/modules/optional-Modules/apps/openshot.sh index af7be33..68b64ad 100755 --- a/setup/modules/optional-Modules/apps/openshot.sh +++ b/setup/modules/optional-Modules/apps/openshot.sh @@ -4,7 +4,9 @@ set -euo pipefail # Load shared log/warn/skip helpers from the installer library. source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh" -log "Installing OpenShot..." -# OpenShot is a non-linear video editor available in the official Arch repos. -sudo pacman -S --noconfirm --needed openshot +log "Installing OpenShot (AUR)..." +# OpenShot is a non-linear video editor. It is AUR-only (no longer in the +# official repos), so install via the AUR helper — `pacman -S openshot` +# fails with "target not found". +yay -S --answerdiff None --answerclean All --noconfirm --needed openshot log "OpenShot installed." diff --git a/setup/modules/optional-Modules/apps/productivity.sh b/setup/modules/optional-Modules/apps/productivity.sh index 0013a6d..4f42560 100755 --- a/setup/modules/optional-Modules/apps/productivity.sh +++ b/setup/modules/optional-Modules/apps/productivity.sh @@ -11,5 +11,7 @@ sudo pacman -S --noconfirm --needed task log "Installing watson and jrnl (AUR)..." # watson: time-tracker that logs work sessions to JSON; python-jrnl: encrypted CLI journal. # Both are Python-based tools only available via the AUR on Arch. -yay -S --answerdiff None --answerclean All --noconfirm watson python-jrnl +# jrnl is the correct package name (in the official repos); "python-jrnl" exists +# in neither the repos nor the AUR. watson is AUR-only. yay handles both sources. +yay -S --answerdiff None --answerclean All --noconfirm --needed watson jrnl log "Productivity tools installed." diff --git a/setup/modules/optional-Modules/apps/stuntrally.sh b/setup/modules/optional-Modules/apps/stuntrally.sh index aa5378f..5d07777 100755 --- a/setup/modules/optional-Modules/apps/stuntrally.sh +++ b/setup/modules/optional-Modules/apps/stuntrally.sh @@ -2,8 +2,11 @@ set -euo pipefail source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh" -log "Installing Stunt Rally (Flatpak)..." -ensure_flatpak -sudo flatpak install --system -y flathub io.github.stuntrally.StuntRally3 -apply_flatpak_theme "io.github.stuntrally.StuntRally3" +log "Installing Stunt Rally (AUR)..." +# Stunt Rally 3 is NOT on Flathub (the previously-used +# io.github.stuntrally.StuntRally3 flatpak ID does not exist there — only the +# older org.tuxfamily.StuntRally v2 is published). Install the current release +# from the AUR instead. stuntrally-bin is the pre-built package (no long source +# compile); stuntrally-git builds from source. +yay -S --answerdiff None --answerclean All --noconfirm --needed stuntrally-bin log "Stunt Rally installed." diff --git a/setup/modules/optional-Modules/apps/tetris.sh b/setup/modules/optional-Modules/apps/tetris.sh index 86c9e96..21b4c3a 100644 --- a/setup/modules/optional-Modules/apps/tetris.sh +++ b/setup/modules/optional-Modules/apps/tetris.sh @@ -2,9 +2,8 @@ set -euo pipefail source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh" -log "Installing bastet (Tetris CLI)..." -sudo pacman -S --noconfirm --needed bastet - -log "Installing vitetris (AUR)..." -yay -S --answerdiff None --answerclean All --noconfirm vitetris +log "Installing bastet and vitetris (AUR)..." +# Both bastet and vitetris are AUR-only — they are NOT in the official repos, +# so `pacman -S bastet` fails with "target not found". Install via the AUR helper. +yay -S --answerdiff None --answerclean All --noconfirm --needed bastet vitetris log "Tetris CLI tools installed." diff --git a/setup/modules/optional-Modules/apps/zen-browser.sh b/setup/modules/optional-Modules/apps/zen-browser.sh index 6441402..4c15d49 100755 --- a/setup/modules/optional-Modules/apps/zen-browser.sh +++ b/setup/modules/optional-Modules/apps/zen-browser.sh @@ -4,6 +4,6 @@ source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh" log "Installing Zen Browser (Flatpak)..." ensure_flatpak -sudo flatpak install --system -y flathub io.github.zen_browser.zen -apply_flatpak_theme "io.github.zen_browser.zen" +sudo flatpak install --system -y flathub app.zen_browser.zen +apply_flatpak_theme "app.zen_browser.zen" log "Zen Browser installed."