The `pacman -S` in the conflict check exits non-zero by design (a
conflict fails in prepare, a clean list fails at the disabled download),
and `OUT=$(...)` carries that status, so `bash -e` aborted the step
before the output was inspected: exit 1 with no message on every run.
Ignore the status and judge by the output, as intended.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The step ran `pacman -Sp`, which skips conflict checking entirely: it
happily prints URLs for eternalterminal + eternalterminal-client and
exits 0. It also skipped every localrepo package, so the conflict fixed
in f06bfd1 could never have been caught here.
Now the check resolves against a throwaway config that adds [local-aur]
(localrepo/), with a fresh dbpath/root so runner-installed packages
don't mask or fake conflicts, and runs a real `pacman -S`. Conflicts and
broken deps fail in "prepare", before any download; XferCommand is set
to /usr/bin/false after the sync so a clean list stops at the download
instead of fetching the whole ISO. Package availability comes from one
`-Slq` instead of ~400 `-Si` calls.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Run 131 failed at 'pacman -Syu archiso jq' because the gateway
(192.168.1.1) intermittently drops UDP/53: cachyos.db and chaotic-aur.db
lookups hit libalpm's 10s resolve timeout while core/extra survived on
resolved's cache.
- build-iso: reset the host /etc/pacman.conf to stock core/extra first
(tests.yaml leaves [cachyos]/[chaotic-aur] behind, and mkarchiso reads
the profile's pacman.conf anyway), pre-warm mirror hostnames in the
resolver cache, then retry pacman -Syu 5x with backoff.
- tests: wrap all three pacman -Syu calls in the same retry loop.
DNS-side redundancy was added on the runner separately (networkd drop-in
adds 1.1.1.1/8.8.8.8 next to the gateway).
build-iso:
- Remove -c flag (it takes a pacman.conf path, not a clean flag)
- Use absolute paths for mkarchiso with -- separator
- Copy local-aur.files* alongside local-aur.db*
tests:
- Fix word splitting: use 'while IFS= read -r' instead of
'for f in ' for shell and YAML file loops
- Fix YAML find filter to use -not -path like shell find
- Remove yq from packages.x86_64 (conflicts with go-yq)
- Add conflicting packages check step to tests workflow
- Rename 'Scheduled ArchISO Build' to 'Automated Arch ISO Build'
- Add --needed to all pacman install commands to suppress reinstalls