aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* docs: add testing-strategy.org with ZFS encryption notes and test recipeCraig Jennings2026-02-241-0/+287
|
* feat: add ZFS encrypted volume tests (single disk + mirror)Craig Jennings2026-02-243-10/+110
| | | | | | | 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.
* feat: add preflight checks, rename ISO format, use Makefile targets in docsCraig Jennings2026-02-232-18/+27
| | | | | | | - 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
* docs: fix overview paragraph breaks and missing conjunctionCraig Jennings2026-02-231-1/+5
|
* docs: use inline code for make build in overviewCraig Jennings2026-02-231-7/+1
|
* docs: update README overview wordingCraig Jennings2026-02-231-12/+11
|
* chore: remove default Makefile target, update README overviewCraig Jennings2026-02-232-9/+2
|
* docs: update README subtitle and fix internal linksCraig Jennings2026-02-231-1/+1
|
* docs: fix internal links to use GitHub-compatible anchor formatCraig Jennings2026-02-231-9/+9
|
* docs: expand README with rescue disk, SSH, config example, and address ↵Craig Jennings2026-02-231-44/+134
| | | | review comments
* docs: add CONTRIBUTING.md for open-source contributorsCraig Jennings2026-02-231-0/+58
|
* refactor: rename custom/ to installer/ for clarityCraig Jennings2026-02-2316-14/+15
| | | | | | | | 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.
* docs: reorganize README features and fix table formattingCraig Jennings2026-02-231-12/+12
|
* chore: add inbox/ to .gitignoreCraig Jennings2026-02-231-0/+1
|
* feat: add LUKS passphrase automation to VM test frameworkCraig Jennings2026-02-231-1/+117
| | | | | | | | | | - 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
* fix: support multi-disk LUKS and fix cryptkey format for btrfsCraig Jennings2026-02-231-20/+48
| | | | | | | | | | | | - Fix cryptkey parameter format: use rootfs: prefix so the encrypt hook finds the keyfile embedded in the initramfs (was treating bare path as a device name) - Switch multi-disk LUKS to sd-encrypt hook which reads crypttab.initramfs to open ALL LUKS containers (the traditional encrypt hook only supports a single cryptdevice) - Create crypttab.initramfs during LUKS initramfs setup - Skip cryptdevice/cryptkey cmdline params for multi-disk LUKS since sd-encrypt reads crypttab instead
* chore: add .shellcheckrc to suppress intentional shellcheck warningsCraig Jennings2026-02-231-0/+20
| | | | | | Configure shellcheck to ignore false positives from sourced file patterns (SC2034), intentional word splitting (SC2086), and other stylistic warnings that don't represent bugs.
* fix: resolve remaining SC2155 warnings across all scriptsCraig Jennings2026-02-234-21/+40
| | | | | | 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.
* docs: update archangel.conf.example for btrfs supportCraig Jennings2026-02-231-8/+8
| | | | | | Remove outdated "btrfs coming soon" note, add LUKS_PASSPHRASE option for btrfs installs, and simplify encryption skip documentation to cover both filesystem types.
* chore: make OVMF firmware paths configurable via environmentCraig Jennings2026-02-234-12/+12
| | | | | | 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).
* chore: add set -euo pipefail to scripts for safetyCraig Jennings2026-02-235-8/+8
| | | | | | Enable undefined variable checking (set -u) and pipefail across standalone scripts. Guard SUDO_USER references with ${SUDO_USER:-} for set -u compatibility.
* fix: resolve SC2155 shellcheck warnings in custom/lib/Craig Jennings2026-02-233-9/+18
| | | | | Declare and assign local variables separately to avoid masking return values from command substitutions.
* scrub personal info and make distribution targets configurableCraig Jennings2026-02-236-35/+41
| | | | | | | 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.
* fix: change archzfs SigLevel from Optional TrustAll to NeverCraig Jennings2026-02-231-1/+3
| | | | | | 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.
* docs: update README.org for open-source releaseCraig Jennings2026-02-231-4/+12
| | | | | | | | - Fill in author field - Add SSH security warning for live ISO known password - Update project structure to match current files (add Makefile, RESCUE-GUIDE.txt, test-configs/, full-test.sh, boot-vm.sh) - Remove docs/ from project structure (gitignored)
* chore: standardize shebangs, fix lint target, add .editorconfigCraig Jennings2026-02-2311-10/+33
| | | | | | | - 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
* fix: support no-ssh test by adding console boot verificationCraig Jennings2026-02-231-30/+73
| | | | | | | | 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.
* clean personal info and private files from repositoryCraig Jennings2026-02-2210-1925/+5
| | | | | | | | | | - 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
* fix: correct broken shebangs in zfssnapshot and zfsrollbackCraig Jennings2026-02-222-2/+2
| | | | #!/bin/env bash doesn't exist — changed to #!/usr/bin/env bash.
* remove skeleton archsetup-zfs scriptCraig Jennings2026-02-223-444/+1
| | | | | Non-functional stub that printed "this is a skeleton" — worse than not having it. Removed from build.sh, Makefile, and file permissions.
* add GPL-3.0 LICENSE fileCraig Jennings2026-02-221-0/+674
| | | | Required for open-source release, as referenced in README.org.
* chore: add docs/ to .gitignore and untrack personal filesCraig Jennings2026-02-2261-11148/+3
| | | | | docs/ contains session history, personal workflows, and private protocols that shouldn't be in a public repository.
* docs: sync templates, process announcements, update todo headersCraig Jennings2026-02-1910-2/+1665
| | | | | | Synced workflows, scripts, and protocols from templates. Processed 4 announcements (calendar cross-visibility, gcalcli, open-tasks, summarize-emails). Renamed todo.org headers to project-named convention.
* session: rebuild ISO for linux-lts 6.12.70, fix install test bugsCraig Jennings2026-02-122-119/+157
| | | | | Fixed archzfs GPG key hang and pgrep false positive in test suite. Added local distribution targets to build-release. All tests passing.
* docs: add open-sourcing prep task to todo.orgCraig Jennings2026-02-121-0/+27
|
* fix: archzfs key prompt hang, test false positive, add local distributionCraig Jennings2026-02-127-23/+368
| | | | | | | | | - Change archzfs SigLevel to Never (pacstrap -K empty keyring caused interactive GPG prompt blocking unattended installs) - Fix pgrep matching avahi-daemon's [archangel.local] in full-test.sh - Bump install timeout to 30min for DKMS builds - Add ~/downloads/isos and archsetup inbox to build-release distribution - Sync templates
* docs: sync templates, rename workflows and notes.orgCraig Jennings2026-02-0736-651/+2650
| | | | | | Sync from templates. Rename NOTES.org to notes.org, session-wrap-up to wrap-it-up, retrospective-workflow to retrospective, session-start to startup. Update all references.
* docs: add new workflows and AMD GPU workaroundCraig Jennings2026-01-314-0/+686
| | | | | | | - Add email workflow (msmtp direct sending) - Add assemble-email workflow (document gathering for manual send) - Add retrospective workflow - Add AMD GPU suspend workaround notes
* docs: update protocols and session wrap-up workflowCraig Jennings2026-01-313-142/+198
| | | | | | | - Add Wayland environment section to protocols (wl-copy, Hyprland) - Add session-context deletion step to wrap-up workflow - Add clean git state verification before valediction - Update todo.org tasks
* refactor: rename archzfs to archangel, simplify build-releaseCraig Jennings2026-01-3113-1065/+217
| | | | | | | | - Standardize naming: VM names, hostname, passwords, ISO naming - Remove USB, Ventoy, and local deployment from build-release - Add snapper package and Btrfs validation tests to sanity-test - Update README for dual ZFS/Btrfs architecture - Delete obsolete SESSION-CONTEXT.md and download-archzfs-iso.sh
* fix: remove obsolete test for deleted zfs-snap-pruneCraig Jennings2026-01-262-317/+8
| | | | | | - Remove test-zfs-snap-prune.sh (tested deleted script) - Update Makefile to reference existing custom/ scripts - Remove test-unit target (no unit tests remain)
* chore: remove redundant help targetCraig Jennings2026-01-261-15/+1
| | | | Usage info already documented in header comment.
* refactor: remove archsetup references, make installer standaloneCraig Jennings2026-01-252-20/+7
| | | | | | | - Remove copy_archsetup function and calls from ZFS/Btrfs paths - Update SSH hardening messages to generic advice - Change sanoid references to tips without archsetup dependency - Improve filesystem dialog descriptions
* Remove session-context.org (session complete)Craig Jennings2026-01-251-105/+0
|
* Phase 4.3 complete: btrfs validation testingCraig Jennings2026-01-252-0/+58
| | | | | | | - Non-LUKS tests all pass (single, mirror, stripe) - LUKS reboot automation attempted but blocked (encrypt hook limitation) - Added manual LUKS verification task to todo.org - Session notes updated
* Add LUKS testing infrastructure and documentationCraig Jennings2026-01-256-105/+307
| | | | | | | | | | | | - Add setup_luks_testing_keyfile() for automated LUKS testing - Modify configure_crypttab() and configure_luks_initramfs() for keyfile support - Fix configure_btrfs_initramfs() to preserve encrypt hook when LUKS enabled - Add TESTING=yes to LUKS test configs - Create docs/TESTING-STRATEGY.org documenting testing approach LUKS automated reboot testing remains a work-in-progress due to complexity of sending passphrase to initramfs encrypt hook. Non-LUKS tests all pass: btrfs-single, btrfs-mirror, btrfs-stripe.
* Add ISO naming task, update session contextCraig Jennings2026-01-252-20/+109
| | | | | | | | - Add TODO for ISO naming convention change (date after project name) - Update session context with test results: - btrfs-single, btrfs-mirror, btrfs-stripe: PASS - btrfs-luks, btrfs-mirror-luks: reboot test blocked by passphrase prompt - Sync fix validated for non-encrypted btrfs
* Update test config and documentationCraig Jennings2026-01-253-107/+96
| | | | | | - Add NO_ENCRYPT=yes to btrfs-single.conf for unattended testing - Add offline Arch Wiki documentation section to RESCUE-GUIDE.txt - Update todo.org with completed tasks and new items
* Add reboot survival and rollback verification testsCraig Jennings2026-01-251-6/+223
| | | | | | | | | - Add start_vm_from_disk() to boot installed system without ISO - Add stop_vm keep_vars parameter to preserve EFI boot entries - Add verify_reboot_survival() to check system boots from disk - Add verify_rollback() to test snapshot/rollback functionality - Support different SSH passwords for live ISO vs installed system - Integrate reboot/rollback checks into test flow
* Fix GRUB boot for btrfs with subvolumesCraig Jennings2026-01-251-11/+21
| | | | | | | | | | - Store GRUB modules on EFI partition (FAT32) to avoid btrfs subvolume path prefix issues (/@/boot/grub not found) - Create symlink /boot/grub -> /efi/grub for grub-btrfs compatibility - Add sync after grub-mkconfig to ensure FAT32 write completion - Add sync before unmounting to prevent data loss on VM shutdown - Update snapper-firstboot to use /efi/grub/grub.cfg path - Update multi-disk GRUB functions for consistency