diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..4cd3b96 --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +# alt-controller-image + +An independent Rust proof of concept that produces an ALT Controller rootfs tarball without invoking `mkimage-profiles`, `mkimage`, or GNU Make. + +## Pipeline + +1. Rust parses `profiles/alt-controller.profile`. +2. The profile uses vendored package lists under `profiles/package-lists/`. +3. Rust initializes an isolated Hasher work root with `hsh --initroot-only`. +4. Rust installs the resolved package set with `hsh-install`. +5. Rust archives `work/alt-controller/chroot` to `out/alt-controller-rootfs.tar` using `tar`, excluding Hasher's `.host` helper directory. + +Hasher is intentionally the only external build dependency in this slice. It supplies ALT package resolution and isolation; the image/profile orchestration belongs to this project. + +## Build + +```bash +cargo test +cargo build --release +sudo -u hermes ./target/release/alt-controller-image +``` + +The output is: + +```text +out/alt-controller-rootfs.tar +``` + +## Scope + +The goal is a working, independent `alt-controller` rootfs tarball. This first slice packages the target’s vendored controller, systemd, and OpenSSH lists plus the explicit target packages and real-time kernel selection. It does not yet reproduce every post-install script or VM-image conversion behavior from the legacy meta-profile; those become separately testable Rust pipeline stages rather than Make fragments. |