Files
fruix/docs/PROGRESS.md

3.4 KiB

Progress

This file is now intentionally compact.

Detailed chronological history through Phase 18.2 has been archived at:

  • docs/reports/progress-log-through-phase18-2-freebsd.md

For a broader narrative summary, see:

  • docs/PROG_SUMMARY.md

Current status

Fruix currently has:

  • declarative system modeling on FreeBSD
  • content-addressed system closures under /frx/store
  • native FreeBSD base artifacts in /frx/store
  • declarative FreeBSD source objects and source materialization
  • source-driven native base builds from materialized source snapshots
  • side-by-side source revisions and boot validation
  • a host-driven non-interactive install path:
    • fruix system install
  • a bootable Fruix-managed installer environment:
    • fruix system installer
  • a bootable Fruix-managed installer ISO:
    • fruix system installer-iso

Validated boot modes still are:

  • freebsd-init+rc.d-shepherd
  • shepherd-pid1

The validated Phase 18 installation work currently uses:

  • freebsd-init+rc.d-shepherd

Latest completed achievement

2026-04-04 — Phase 18.3 completed

Fruix now builds a bootable installer ISO, boots it, installs from it, and boots the installed target successfully.

Highlights:

  • added in modules/fruix/system/freebsd.scm:
    • operating-system-installer-iso-spec
    • materialize-installer-iso
  • added CLI support in scripts/fruix.scm:
    • fruix system installer-iso
  • the installer ISO now carries:
    • a UEFI El Torito boot image
    • /boot/root.img as the installer mdroot payload
    • the installer closure
    • the selected target closure
    • the target runtime store closure needed for installation
    • in-guest installer state/log/scripts
  • validated workflows:
    • local QEMU/UEFI/TCG boot, install, and installed-target reboot
    • real XCP-ng VM boot, install, and installed-target reboot
  • a platform-specific installer detail is now recorded in-tree:
    • QEMU ISO path installs onto /dev/vtbd0
    • XCP-ng ISO path installs onto /dev/ada0

Validation:

  • PASS phase18-installer-iso
  • PASS phase18-installer-iso-xcpng

Report:

  • docs/reports/phase18-installer-iso-freebsd.md

Commits:

  • 1970c5csystem: add UEFI installer ISO builder
  • 604ad82system: validate UEFI installer ISO boot path

Recent major milestones

  • 1d00907Add Fruix bootable installer environment
  • 2517710Add non-interactive Fruix installation flow
  • 02a02e3Document Fruix FreeBSD source policy
  • 865012eBoot Fruix from distinct FreeBSD source revisions
  • 8150508Validate side-by-side FreeBSD source revisions
  • 5cbf5b9Build native bases from materialized FreeBSD sources

Active constraints

  • local bhyve remains blocked under Xen due to lack of nested VT-x exposure
  • XO self-service creation is still not usable with the current token
  • real XCP-ng validation must continue to use:
    • VM 90490f2e-e8fc-4b7a-388e-5c26f0157289
    • approved A/B VDIs:
      • 0f1f90d3-48ca-4fa2-91d8-fc6339b95743
      • 7061d761-3639-4bec-87f7-2ba1af924eaa
  • local QEMU/TCG validation keeps conservative default SMP settings; QEMU_SMP remains overrideable

Next step

Per docs/PLAN_4.md, the next planned step is:

  • Phase 19.1 — define and document the canonical Fruix deployment workflow for rebuild, image generation, installation, and rollback

Phase 18.3 is now complete: Fruix can build, boot, install from, and validate a bootable UEFI installer ISO on FreeBSD.