Verified the 0.11.0 release tree on Linux (domedog.pro, Debian) before tagging: cargo fmt --check ✅ cargo build --workspace --release ✅ (4m 31s) cargo clippy -D warnings ✅ cargo test --workspace ✅ (228 passed, 0 failed) FreeBSD runtime validation remains the pre-poudriere step.
3.4 KiB
FreeBSD port: sysutils/colibri
Source-of-truth for the Clawdie Colibri FreeBSD port, built by the first-party
poudriere server (pkg.clawdie.si). Kept here, with the code it builds, so the
port tracks the source. See clawdie-iso docs/POUDRIERE-BUILD-SERVER.md.
What's here (hand-authored)
sysutils/colibri/
├── Makefile port recipe (cargo; ships 6 runtime/operator binaries + rc.d)
├── pkg-descr package description
├── pkg-plist installed file list
└── files/ rc.d service templates installed into etc/rc.d/
├── colibri_daemon.in
└── colibri_bridge.in
The files/ rc.d templates mirror the canonical live-image copies in
packaging/freebsd/; poudriere builds in a clean jail and only sees the port
directory, so the package carries its own copy. This is the single canonical
port — the clawdie-iso repo consumes it from here and keeps no duplicate.
Generated content
-
CARGO_CRATES(committed, in theMakefile) — the crates.io dependency closure fromCargo.lock(#109). Regenerate withmake cargo-cratesafter any dependency change.check-cargo-crates.shverifies it stays in sync withCargo.lock(no network, any host) and runs in CI, so drift fails the build:./packaging/freebsd/port/check-cargo-crates.sh -
distinfo(NOT committed) — checksums of the source tarball + every crate distfile. Generated on the build host withmake makesum; it is intentionally not hand-authored (the Forgejo source tarball hash must come from the host that fetches it).
Build it
-
Tag a release. The Makefile fetches
archive/v${DISTVERSION}.tar.gzfrom Forgejo, so a matching tag (e.g.v0.11.0) must exist onclawdie/colibri. -
Drop the port into the poudriere ports tree (default tree name
clawdie, perpoudriere-setup.sh):cp -R sysutils/colibri \ /usr/local/poudriere/ports/clawdie/sysutils/colibri cd /usr/local/poudriere/ports/clawdie/sysutils/colibri make makesum # -> distinfo (CARGO_CRATES is already in the Makefile) -
Build + sign via the wrapper:
poudriere-build.sh --jail clawdie-amd64 --ports clawdie sysutils/colibri
Validation
Linux cross-build gate (domedog, 2026-06-20)
The source tree is cross-platform (FreeBSD + Linux). Before tagging, the full
Rust gate was verified on Linux (domedog.pro, Debian):
cargo fmt --check # ✅ clean
cargo build --workspace --release # ✅ 4m 31s
cargo clippy --workspace --all-targets -- -D warnings # ✅ zero warnings
cargo test --workspace # ✅ 228 passed, 0 failed
228 tests cover all 13 crates including unit, integration, golden, and
live-socket tests. This confirms the 0.11.0 tree compiles and passes on
Linux. FreeBSD runtime validation (cargo test on FreeBSD 15) is the
remaining step before the first poudriere build.
Notes
- License: MIT (matches
Cargo.toml; same as layered-soul). - Builds only the crates whose binaries ship (
colibri-clientyields bothcolibriandcolibri-test-agent);colibri-probe/colibri-runtime-inventoryare dev tools and are not installed. rust-toolchain.tomlpins a rustup channel; the port removes it inpost-extractso the clean jail uses the portslang/rusttoolchain.- Not yet test-built against a live ports tree — first real run is on
mother-build.