2.8 KiB
2.8 KiB
Phase 6.3: Minimal profile installation validated on top of real store outputs
Date: 2026-04-01
Summary
This step validates a minimal user-facing profile installation flow using the real /frx/store outputs produced in Phases 6.1 and 6.2.
Added file:
tests/packages/run-phase6-real-store-profile-prototype.sh
Validation command
Run command:
METADATA_OUT=/tmp/phase6-real-store-profile-metadata.txt \
./tests/packages/run-phase6-real-store-profile-prototype.sh
What the harness does
The harness:
- reruns the Phase 6.1 real-package build harness
- reruns the Phase 6.2 jail-integrated package build harness
- creates a minimal Fruix-owned profile transaction layout using those real store outputs
- installs generation 1 from the Phase 6.1 store item
- installs generation 2 from the Phase 6.2 store item
- switches the current
profilesymlink to generation 2 - validates:
- preserved generation links
- current-profile switching
PATHusability- execution from a nearly empty environment
Observed results
Observed metadata included:
profile=.../profileprofile_target=profile-2-linkgeneration1_store_path=/frx/store/...-hello-2.12.3generation2_store_path=/frx/store/...-hello-2.12.3current_store_path=/frx/store/...-hello-2.12.3profile_hello_output=Hello, world!clean_env_hello_output=Hello, world!installation_mode=minimal-real-store-profile
Important findings
- the current FreeBSD track now has a minimal profile-generation and profile-switching story that operates on real store outputs rather than the earlier Phase 3 package/profile prototype layer
- the profile transaction semantics are intentionally small but real:
- generation 1 is retained
- generation 2 is created
- the
profilesymlink is switched to generation 2 - executables become reachable through
PATH
- this step intentionally uses a Fruix-owned minimal profile harness because the upstream-derived
guix profiles/fruix packagepath still runs into the unresolved FreeBSD bootstrap-platform issue:dynamic linker name not known for this system "x86_64-freebsd15.0"
- even with that upstream profile-layer gap still open, the user-facing package-installation boundary is now validated in minimal form on top of real daemon-built store items
Conclusion
Phase 6.3 is satisfied on the current FreeBSD prototype track:
- packages built through the real store path can be installed into a profile-like user environment
- generation switching works in a minimal but concrete form
- package execution through the profile succeeds for the current user
- Phase 6 as a whole is now complete on the active FreeBSD prototype path, with deeper upstream profile-layer integration remaining follow-up work rather than a blocker to this milestone