Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Phase 005 — first .stone

At a glance

FieldValue
Phase familyPhase 0 — forge
Run commandmake phase 005
Underlying make target/scriptvm/phase0/build-hello-stone.sh
Runs onguest over SSH
Main proof/artifactBuilds, 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.