<feed xmlns='http://www.w3.org/2005/Atom'>
<title>archangel/scripts, branch v0.8</title>
<subtitle>Arch Linux installer ISO — ZFS-on-root or BTRFS, doubles as rescue disk
</subtitle>
<id>https://git.cjennings.net/archangel/atom?h=v0.8</id>
<link rel='self' href='https://git.cjennings.net/archangel/atom?h=v0.8'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/'/>
<updated>2026-02-24T13:45:34+00:00</updated>
<entry>
<title>feat: add ZFS encrypted volume tests (single disk + mirror)</title>
<updated>2026-02-24T13:45:34+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-24T13:45:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=58ec870dc06f226c24a94f47c363e784bafaee1e'/>
<id>urn:sha1:58ec870dc06f226c24a94f47c363e784bafaee1e</id>
<content type='text'>
Add automated tests for ZFS native encryption, matching existing Btrfs
LUKS test coverage. ZFS encrypted boot requires two passphrase entries
(ZFSBootMenu + mkinitcpio zfs hook), both sent via QEMU monitor sendkey
with timed delays since ZFSBootMenu renders to VGA, not serial.
</content>
</entry>
<entry>
<title>refactor: rename custom/ to installer/ for clarity</title>
<updated>2026-02-23T17:54:25+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T17:54:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=6631521d9f45b73f9b4df76db9148d82af8d57b9'/>
<id>urn:sha1:6631521d9f45b73f9b4df76db9148d82af8d57b9</id>
<content type='text'>
The custom/ directory name was an archiso implementation detail. Renamed
to installer/ which clearly communicates that this directory contains the
installer scripts and utilities that ship on the ISO.

Updated all references in build.sh, Makefile, test-install.sh, and README.
</content>
</entry>
<entry>
<title>feat: add LUKS passphrase automation to VM test framework</title>
<updated>2026-02-23T16:31:08+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T16:31:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=0f4c5e185dc0df0c486ec5ce768334c4ff38cde1'/>
<id>urn:sha1:0f4c5e185dc0df0c486ec5ce768334c4ff38cde1</id>
<content type='text'>
- Add monitor_sendkeys() to type strings into QEMU via monitor socket
- Add send_luks_passphrase() that detects GRUB passphrase prompt in
  serial log and sends passphrase via sendkey, supporting multi-disk
  LUKS (one passphrase per encrypted disk)
- Add QEMU monitor socket to start_vm_from_disk() for LUKS configs
- Auto-detect LUKS configs and handle passphrase entry during reboot test
- Add socat dependency check
</content>
</entry>
<entry>
<title>fix: resolve remaining SC2155 warnings across all scripts</title>
<updated>2026-02-23T12:10:51+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T12:10:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=396a85ab21d2519e83b59640971dd2b1a130469d'/>
<id>urn:sha1:396a85ab21d2519e83b59640971dd2b1a130469d</id>
<content type='text'>
Declare and assign local variables separately in custom/archangel,
scripts/full-test.sh, scripts/test-install.sh, and remove unused
variable in custom/lib/zfs.sh.
</content>
</entry>
<entry>
<title>chore: make OVMF firmware paths configurable via environment</title>
<updated>2026-02-23T12:07:41+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T12:07:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=720935de06757c7e236e3d57a1fe21fef54dd8d2'/>
<id>urn:sha1:720935de06757c7e236e3d57a1fe21fef54dd8d2</id>
<content type='text'>
Allow OVMF_CODE and OVMF_VARS_ORIG to be overridden via environment
variables for portability across distros (Fedora, Ubuntu, etc. use
different paths for UEFI firmware).
</content>
</entry>
<entry>
<title>chore: add set -euo pipefail to scripts for safety</title>
<updated>2026-02-23T12:06:55+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T12:06:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=499b3da410f92d58fed05e1a0cb68c3a20421b69'/>
<id>urn:sha1:499b3da410f92d58fed05e1a0cb68c3a20421b69</id>
<content type='text'>
Enable undefined variable checking (set -u) and pipefail across
standalone scripts. Guard SUDO_USER references with ${SUDO_USER:-}
for set -u compatibility.
</content>
</entry>
<entry>
<title>scrub personal info and make distribution targets configurable</title>
<updated>2026-02-23T12:02:17+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T12:02:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=51636daebfac034380d1122ad5ea22c2e6dd9cf4'/>
<id>urn:sha1:51636daebfac034380d1122ad5ea22c2e6dd9cf4</id>
<content type='text'>
Remove personal email addresses, hardcoded paths, and infrastructure
references to prepare for open-source release. Distribution targets
in build-release are now configurable via environment variables,
and archsetup inclusion is opt-in.
</content>
</entry>
<entry>
<title>chore: standardize shebangs, fix lint target, add .editorconfig</title>
<updated>2026-02-23T11:27:27+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T11:27:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=f7526e7eff76204bff4b4e6e37507311bf01002f'/>
<id>urn:sha1:f7526e7eff76204bff4b4e6e37507311bf01002f</id>
<content type='text'>
- Change all script shebangs to #!/usr/bin/env bash for portability
  (heredocs writing to installed systems keep #!/bin/bash)
- Remove || true from Makefile lint target so shellcheck errors fail the build
- Add .editorconfig for consistent formatting across editors
</content>
</entry>
<entry>
<title>fix: support no-ssh test by adding console boot verification</title>
<updated>2026-02-23T11:09:45+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T11:09:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=e1733666d6c942483925a61a0aa21ea66f5e6d96'/>
<id>urn:sha1:e1733666d6c942483925a61a0aa21ea66f5e6d96</id>
<content type='text'>
The no-ssh test failed because reboot verification unconditionally
used wait_for_ssh, which timed out on systems without SSH. Add
wait_for_boot_console() that checks serial log for ZFSBootMenu boot
markers, and branch run_test() on ENABLE_SSH to use the appropriate
verification path.
</content>
</entry>
<entry>
<title>clean personal info and private files from repository</title>
<updated>2026-02-23T05:23:59+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T05:23:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=8b9c2cc247f8d71d570921cb127e7e08cfac7674'/>
<id>urn:sha1:8b9c2cc247f8d71d570921cb127e7e08cfac7674</id>
<content type='text'>
- Remove personal hardware specs, machine-specific troubleshooting docs,
  and video transcript from assets/
- Remove stale PLAN-zfsbootmenu-implementation.org (feature complete)
- Remove .stignore (Syncthing config, not project-relevant)
- Untrack todo.org (personal task tracker with private infra details)
- Make archsetup path configurable via ARCHSETUP_DIR env var in build.sh
- Use $REAL_USER instead of hardcoded username in build-release scp
</content>
</entry>
</feed>
