CUBE / DOCUMENTATION
Build from source
Developer setup for building Cube, signing local binaries, and running repository helpers.
Prerequisites
Use Apple Silicon and macOS 15 or later. Install Git, Make, Rust with Cargo, Xcode Command Line Tools, dtc, and xz. Installation and verification scripts also require Python 3. Internet access is needed for source and guest media downloads.
xcode-select -p
rustc --version
cargo --version
dtc --version
xz --version
Build and sign the CLI
Run from your normal user account:
git clone https://github.com/darcyliu/cube.git
cd cube
make all
./target/debug/cubectl --help
./target/debug/cube --help
The build signs the local binaries with the hypervisor entitlement. It does not provision the separate networking entitlement required by the app helper.
Expose commands in your terminal
The install-cli target links the development binaries into ~/.local/bin. Keep the checkout and its built binaries in place when using those links.
make install-cli
export PATH="$HOME/.local/bin:$PATH"
cubectl --help
cube --help
For everyday commands, return to Getting started.
Build the app
The app target produces a development app bundle. Networking through that app requires an Apple-granted entitlement, a matching profile, and signing after each rebuild. See the app signing runbook.
make app
Fetch firmware and test an offline boot
These repository targets download UEFI firmware or FreeBSD boot media:
make fetch-uefi
make freebsd-root NET=none
The live-shell target downloads a kernel and mini-memstick image; it does not install FreeBSD. NET=none avoids the need for a running guest network service.
Repository installation helpers
For a source-based automated installation, start the development service in a second terminal. Run the target as your normal user; it invokes sudo only for the service:
make vmnet-service
Then run the installer from the repository in the first terminal. It requires Python 3 and downloads or reuses media:
python3 -B scripts/install-vm.py --version 14.4 --unattended --name freebsd-dev
For the documented XFCE desktop workflow, use a separate VM name:
python3 -B scripts/install-vm.py --version 14.4 --unattended --desktop xfce --name work
Retain the generated credentials and artifacts. Use the exact launch command printed by the installer. Desktop packages require guest internet. The desktop runbook documents verification scope and release-specific behavior.