Phase 005 — first .stone
At a glance
| Field | Value |
|---|---|
| Phase family | Phase 0 — forge |
| Run command | make phase 005 |
| Underlying make target/script | vm/phase0/build-hello-stone.sh |
| Runs on | guest over SSH |
| Main proof/artifact | Builds, checks, indexes, installs, and runs the tiny onix-hello .stone. |
make phase 005
This builds a deliberately tiny package called onix-hello.
It creates a local source archive in the guest, writes a stone.yaml, builds a
.stone, checks it, extracts it, indexes it into a local repo, installs it into
a throwaway target root, and runs:
/usr/bin/onix-hello
Expected output:
hello from onix forge
This proves the package build pipeline works:
source tarball -> stone.yaml -> boulder -> .stone -> moss inspect/extract/install
Important recipe gotcha learned here:
install : |
install -Dm00755 onix-hello %(installroot)%(bindir)/onix-hello
chmod g-s %(installroot)/usr %(installroot)%(bindir)
Boulder build directories inherit g+s. If /usr keeps that bit, Boulder can
emit a /usr/ layout entry that Moss rejects during extract/install.