1. host.ovmf: Arch edk2-ovmf 202508+ uses OVMF_CODE.4m.fd (4MB variant)
instead of OVMF_CODE.fd. Added .4m.fd paths to the search list and
updated the find fallback to match OVMF_CODE*.fd glob.
2. test_parse_dep_atoms: The single-regex approach with lazy quantifiers
failed on atoms like "sys-libs/zlib" at end-of-string. Rewrote
parse_dep_atoms to split on whitespace first, strip [:slot] and [USE]
suffixes, then match category/name with a simple anchored regex.
This is more robust and easier to reason about.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1. converter panic (5 unit tests): "FIXME_CHECKSUM".repeat(4) is only
56 chars but was sliced to [..64], causing index-out-of-bounds panic.
Both crux.rs and gentoo.rs converters now use "a".repeat(64) as the
placeholder checksum instead.
2. dpack list/check exit code 1: these commands call PackageDb::open()
which tries to create /var/lib/dpack/db — fails without root.
Test runner now creates a temp dpack.conf pointing at a writable
temp directory with repos symlinked from the project. Also added
search and info smoke tests.
3. host.ovmf: not a code bug — edk2-ovmf just needs to be installed
on the test VM (sudo pacman -S edk2-ovmf --noconfirm).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Arch's edk2-ovmf package installs split files (OVMF_CODE.fd +
OVMF_VARS.fd) instead of a single OVMF.fd. Updated the search
to check OVMF_CODE.fd paths first, with a find fallback.
QEMU boot command now handles both formats:
- Split: -drive if=pflash,format=raw,readonly=on,file=OVMF_CODE.fd
-drive if=pflash,format=raw,file=OVMF_VARS.fd
- Single: -bios OVMF.fd
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tests now run inside a tmux session so you can disconnect and
reconnect without interrupting multi-hour test runs.
Changes:
- create-vm.sh: cloud-init no longer auto-runs tests, just provisions
packages and clones the repo. Installs a `darkforge-test` command
in /usr/local/bin that wraps run-in-vm.sh in tmux.
- run-in-vm.sh: detects when called as `darkforge-test` and re-execs
inside a tmux session named "darkforge". --tmux flag for internal use.
- README updated with tmux workflow (detach/reattach instructions).
Workflow:
ssh darkforge@<ip>
darkforge-test --quick # starts in tmux
Ctrl+B D # detach, go do other things
tmux attach -t darkforge # come back later
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>