combined/iso-poudriere-livepower #75

Merged
clawdie merged 4 commits from combined/iso-poudriere-livepower into main 2026-06-20 17:24:39 +02:00

4 commits

Author SHA1 Message Date
Sam & Claude
5c5ed57abe docs(live-power): document C3 wake-safety invariant; tidy rcorder block
clawdie_live_power is a one-shot boot script that applies the power_profile
C-state policy once (FreeBSD's power_profile is nostart and otherwise only
runs on a devd AC-line transition). Comment-only clarification — no behavior
change:

- Move the PROVIDE/REQUIRE/BEFORE/KEYWORD rcorder block to the top (convention;
  rcorder scans the whole file, so behavior is identical).
- Document scope explicitly: this selects a CPU C-state/freq profile ONLY —
  never suspend/sleep/blank/DPMS (screen-blank is the separate no-blank stack).
- Record the wake-safety invariant: both AC (0x01) and battery (0x00) branches
  are safe because rc.conf pins performance_cx_lowest AND economy_cx_lowest to
  C3, so neither can select a deeper C-state that breaks USB resume. Guard-rail
  for future editors: do not deepen on the live USB.

sh -n clean; rcorder tags intact.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 17:22:28 +02:00
Sam & Claude
95c0cf879f docs(poudriere): point port section at canonical colibri port; fix MIT→AGPLv3
The inline Makefile example claimed LICENSE=MIT (wrong — colibri is
AGPL-3.0-only) and duplicated what now lives canonically in
colibri/packaging/freebsd/port/. Replace the snippet with a pointer + the
corrected key facts (license, binaries shipped, generated files).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 17:22:28 +02:00
Sam & Claude
8437b6e237 docs(poudriere): retarget plan to mother-build + pkg.clawdie.si; mark done work
v1.0.0 → v2.0.0. Fix stale references and cross resolved items from pending:

- Target: ML350p Gen8 (retired/boot-looping) → mother-build FreeBSD VPS.
- Repo URL: pkg.clawdie.home.arpa → pkg.clawdie.si (signed). Client config now
  uses signature_type pubkey + ships the public key; points at the
  clawdie-repo.conf.in template.
- Phase 1: drop iLO/IPMI/10.0.0.2 boot path (provider-specific now).
- Phase 2/4: marked SCRIPTED — implemented by scripts/poudriere/.
- Phase 6 (bhyve): marked DONE — the ISO-boot test gate already exists
  (scripts/bhyve-test.sh + run-bhyve-test.sh + bhyve-pf-allow.sh).
- Jail/tree example names aligned to the scripts (clawdie-amd64 / clawdie).
- Timeline rebuilt with real status; ML350p sizing kept only as labeled
  reference numbers. .home.arpa LIVE-USB hostname refs left intact (not stale).

Validation: prettier@3 --check '**/*.md' clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 17:22:28 +02:00
Sam & Claude
2dac2d108d feat(poudriere): lean scripts for first-party pkg.clawdie.si build server
Turns the manual Phase 2–3 runbook (docs/POUDRIERE-BUILD-SERVER.md) into
repeatable, idempotent steps for the mother-build host — the package half of
the trusted supply chain (layered-soul HIVE-ONBOARDING §10).

- poudriere-setup.sh: verify-then-act setup. Validates root, FreeBSD version
  format, pkg/openssl, and that the ZFS pool exists BEFORE acting; then installs
  poudriere, generates the repo signing key (0400), writes poudriere.conf (only
  if absent), and creates the build jail + ports tree. Re-running skips anything
  already present.
- poudriere-build.sh: validates jail, ports tree, and each origin (category/name
  + Makefile present) before `poudriere bulk`; repo is signed automatically via
  PKG_REPO_SIGNING_KEY.
- clawdie-repo.conf.in: client repo template (signature_type pubkey) + the
  first-party-only priority note.
- README.md: the three-step flow and conventions.

Style matches live/operator-session/hw-report: POSIX sh, set -u, fixed PATH,
strict arg parsing, minimal checks (only what is acted upon). Host provisioning
(ZFS/base/network) stays in the runbook — these assume a FreeBSD host with a
pool. sh -n clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 17:22:28 +02:00