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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MUhrcFU8J1Hnf7vNqNxZNi
Found while testing client enrollment across distros in VMs:
- Restore the executable bit on freeipa-enroll.sh (lost on a prior edit), which
made freeipa-client.sh fail with a misleading "not found" for every path.
- Arch: freeipa-client is AUR-only, not the repo package "freeipa" — pacman -S
freeipa died with "target not found". Install sssd/krb5 from repos and
freeipa-client via an aur_install helper that drops to the sudo user.
- Bundle autofs-pkgbuild/: freeipa-client (AUR) hard-depends on autofs (AUR),
whose PKGBUILD pins autofs-5.1.9.tar.xz — pruned from kernel.org at the 5.2.0
release, so it 404s and blocks all Arch enrollment. Build autofs ourselves
from upstream git pinned to a 5.1.9-series commit that already carries the
cyrus-sasl function-pointer fix GCC 14+ needs, and install it before the
freeipa-client AUR build so the broken AUR autofs is never touched. Verified
the bundled PKGBUILD builds and installs cleanly on Arch.
- Fedora vs RHEL/Rocky/Alma use different client package names: keep
freeipa-client on Fedora, use ipa-client on the RHEL family (freeipa-client
does not exist there). Split the case arms accordingly.
- Guard both freeipa-client.sh entry points against unattended/no-TTY runs: the
module TUI would hang on a dialog menu, and the wrapper would block on an
interactive password read when the shipped answerfile has a blank password.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MUhrcFU8J1Hnf7vNqNxZNi
Add modules/lib/logging.sh with log(), skip(), warn(), err() helpers.
Source it in all 84 scripts (core, DEs, optional apps) and replace bare
echo calls with structured log messages. Add log file capture to install.sh.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Presents a Cyberqueer-themed menu after package install:
- Answerfile: prompts for path (defaults to FreeipaAnsible/freeipa-client-answerfile.json),
offers to create one with defaults if it doesn't exist
- Manual: dialog inputboxes for domain, realm, server, hostname, principal,
passwordbox for the admin password, yes/no for mkhomedir/sudo/dns/fido2
- Skip: prints post-install hints
Falls back to ipa-client-install directly if freeipa-client.sh is not
available (standalone install outside the dotfiles repo).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add freeipa-client module (sssd, cyrus-sasl-gssapi, freeipa-client AUR)
with post-install enrollment hints; wired into tui-install.sh and
install-modules.sh
- Add ansipa-install-modules.sh: reads IPA host groups named
ansipa-module-<name>, applies matching module scripts via a yay wrapper
that drops to ANSIPA_USER so AUR builds work from the root service
- Add ansipa-install-modules.service + .timer (boot + 30 min)
- Add deploy-ansipa-modules.yml Ansible playbook that deploys scripts,
writes /etc/ansipa-modules.conf, and enables the timer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>