2.9 KiB
2.9 KiB
Phase 7.3: Installable FreeBSD rootfs tree materialized from the Fruix system closure
Date: 2026-04-01
Summary
This step takes the Phase 7.2 system closure and materializes a root filesystem tree suitable for later image-construction work.
Added files:
tests/system/materialize-phase7-rootfs.scmtests/system/run-phase7-rootfs.sh
Validation command
Run command:
METADATA_OUT=/tmp/phase7-rootfs-metadata.txt \
./tests/system/run-phase7-rootfs.sh
What the harness does
The harness:
- ensures the local Guile/Fibers/Shepherd runtime is available
- reuses the declarative Phase 7 operating-system model
- materializes the referenced system closure under
/frx/store - creates a root filesystem tree that points at that closure through:
/run/current-system- boot symlinks
/bin,/sbin,/lib, and/usr/*links into the system profile- generated
/etclinks into the system closure - generated Shepherd
rc.dlaunch integration
- performs static validation of the generated rootfs structure
Observed results
Observed metadata included:
rootfs=/tmp/.../rootfsclosure_path=/frx/store/...-fruix-system-fruix-freebsdrun_current_system_target=/frx/store/...-fruix-system-fruix-freebsdactivate_target=/run/current-system/activatebin_target=/run/current-system/profile/binsbin_target=/run/current-system/profile/sbinboot_kernel_target=/run/current-system/boot/kernelboot_loader_target=/run/current-system/boot/loaderboot_loader_efi_target=/run/current-system/boot/loader.efirc_conf_target=/run/current-system/etc/rc.confrc_script_target=/run/current-system/usr/local/etc/rc.d/fruix-shepherdready_marker=/var/lib/fruix/readyvalidation_mode=static-rootfs-checkready_state_mode=freebsd-init+rc.d-shepherd
Important findings
- the current FreeBSD Fruix track now has a concrete rootfs tree derived from the declarative system model and closure rather than only a closure directory in the store
- the rootfs uses a Guix-like
/run/current-systemanchor so that generated configuration and system profile content remain tied back to the declarative closure - static validation confirmed:
- boot asset linkage
- generated
/etclinkage - activation payload presence
- Shepherd launch integration
- declared filesystem content
- declared user/group provisioning in the activation path
- the deterministic ready-marker path for the first boot target
- the chosen ready state for the first integrated FreeBSD system remains:
- FreeBSD init +
rc.d+ Shepherd-managed ready marker
- FreeBSD init +
Conclusion
Phase 7.3 is satisfied on the current FreeBSD prototype track:
- a root filesystem tree can now be materialized from the declarative Fruix system closure
- the rootfs is internally coherent enough for the next image-construction phase
- Phase 7 as a whole is now complete on the active FreeBSD amd64 prototype path