<feed xmlns='http://www.w3.org/2005/Atom'>
<title>archangel/build.sh, branch main</title>
<subtitle>Arch Linux installer ISO — ZFS-on-root or BTRFS, doubles as rescue disk
</subtitle>
<id>https://git.cjennings.net/archangel/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/archangel/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/'/>
<updated>2026-04-13T04:12:18+00:00</updated>
<entry>
<title>refactor: dedupe findmnt invocation in safe_cleanup_work_dir</title>
<updated>2026-04-13T04:12:18+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-13T04:12:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=0f4fbe00108c811da20e802290d9d50fc8daff4d'/>
<id>urn:sha1:0f4fbe00108c811da20e802290d9d50fc8daff4d</id>
<content type='text'>
The catch-all mount-cleanup block called findmnt twice (once as an
existence guard, once in the pipe). Consolidate to a single call
captured to a local, guard with -n test. No behavior change — same
mounts, same order, same lazy-unmount.

Left the explicit known-mount loop alone; it's a faster path for the
deterministic mkarchiso bind mounts, with findmnt as the catch-all
for anything else. Not parallel strategies, just fast path + fallback.
</content>
</entry>
<entry>
<title>fix: migrate archzfs repo from stale archzfs.com to GitHub Releases</title>
<updated>2026-04-10T03:02:44+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-10T03:02:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=bf7098186f60ec1705addb4841d1d5bcf7dacd45'/>
<id>urn:sha1:bf7098186f60ec1705addb4841d1d5bcf7dacd45</id>
<content type='text'>
archzfs.com was abandoned mid-2025; latest packages were ZFS 2.3.2 for
kernel 6.12.29. The new GitHub-hosted repo has ZFS 2.4.1 for 6.18.21.
</content>
</entry>
<entry>
<title>feat: add preflight checks, rename ISO format, use Makefile targets in docs</title>
<updated>2026-02-24T01:41:53+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-24T01:41:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=8feac7b730ffd0b38b5285b53c5a942f49822580'/>
<id>urn:sha1:8feac7b730ffd0b38b5285b53c5a942f49822580</id>
<content type='text'>
- Add Arch Linux and disk space preflight checks to build.sh
- Rename ISO format: archangel-YYYY-MM-DD-vmlinuz-version-lts-x86_64.iso
- Update README to use Makefile targets throughout (make build, make clean)
- Note preflight checks in Prerequisites section
</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=fd2ea796b20bcbebea19c43978fb08e3cd6754ed'/>
<id>urn:sha1:fd2ea796b20bcbebea19c43978fb08e3cd6754ed</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>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=2ef27b6a5d190c4d38eb4d13a039e10c006d7c7b'/>
<id>urn:sha1:2ef27b6a5d190c4d38eb4d13a039e10c006d7c7b</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=2b842fcd47ac24b9da7f192f64b78f83e8fc45af'/>
<id>urn:sha1:2b842fcd47ac24b9da7f192f64b78f83e8fc45af</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>fix: change archzfs SigLevel from Optional TrustAll to Never</title>
<updated>2026-02-23T11:48:45+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T11:48:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=2faf2b088e67bb79d61b5e051a805aed60b85206'/>
<id>urn:sha1:2faf2b088e67bb79d61b5e051a805aed60b85206</id>
<content type='text'>
Optional TrustAll is misleading — it implies signature checking when
none is actually happening. Use Never to match the installer and be
explicit. Repo is served over HTTPS; GPG adds no value in build env.
</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=a171caf0b0a5541246f994155406e840b28390de'/>
<id>urn:sha1:a171caf0b0a5541246f994155406e840b28390de</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>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=77fdae15fb5ad1498d8b006104a0d6fd151060bb'/>
<id>urn:sha1:77fdae15fb5ad1498d8b006104a0d6fd151060bb</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>
<entry>
<title>remove skeleton archsetup-zfs script</title>
<updated>2026-02-23T05:22:26+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T05:22:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=b8f4bf5e9caae747345dfab05ef9e5c2b2cb6de6'/>
<id>urn:sha1:b8f4bf5e9caae747345dfab05ef9e5c2b2cb6de6</id>
<content type='text'>
Non-functional stub that printed "this is a skeleton" — worse than
not having it. Removed from build.sh, Makefile, and file permissions.
</content>
</entry>
</feed>
