Files
hammer/recipes/hammerd.toml
T
SergioandClaude Opus 4.8 02827f62c9 bootstrap: hammerd como receta Cargo en Stage 1 (Lote 7)
Cierra el userland mínimo salvo el init definitivo. hammerd entra como tercer
componente de stage1, construido por el lab vía BuildSys::Cargo + vendoring:

- recipes/hammerd.toml: source git del repo hammer a commit fijado (ADR 0006),
  flags=["-p","hammerd"] para construir sólo ese binario del workspace, estático
  con zig cc; las deps se vendorean en el fetch (Lote 6) ⇒ build --offline
- STAGE1_COMPONENTS += hammerd; el inittab provisional lo arranca como servicio
  respawn (/usr/bin/hammerd) tras montar los pseudo-FS
- el test de recetas del repo ahora valida también hammerd.toml (parse + hash)

Falta sólo sustituir el init provisional de busybox por arje (ADR 0007) para el
CRASHED real. El cross-compile se valida en la VM.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 01:06:40 +00:00

24 lines
1.0 KiB
TOML

# hammerd — daemon de hammer (bus de agente en /run/agent.sock + diario de mutaciones), como
# servicio del userland mínimo del Stage 1 (SDD 11 §3).
#
# Receta Cargo (ADR 0008 / BuildSys::Cargo): el lab construye el crate `hammerd` del workspace
# hammer a un commit fijado (ADR 0006), con las deps vendoreadas en el fetch para un build
# hermético `--offline`. Enlaza con `zig cc` cross al target. El init provisional (busybox) lo
# arranca por /etc/inittab; cuando entre `arje` (ADR 0007) pasará a ser un servicio supervisado.
name = "hammerd"
version = "0.0.1"
[source]
# El repo del propio hammer: el `commit` es el identificador inmutable (la URL es sólo locator y
# no entra al hash de la receta). Subir el commit cuando hammerd avance.
repo = "ssh://gitea@git.gioser.net:2345/sergio/hammer.git"
commit = "e9b055121322d3ef8aef8e75738052d5aff0693a"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
# Sólo el binario `hammerd` del workspace (no el resto de crates).
flags = ["-p", "hammerd"]