# arje-zero — init PID 1 de arje (ADR 0007), construido por el lab de hammer como **puente # build-side** hacia "arje es el init de hammer". # # Receta Cargo: la fuente es el monorepo tawasuyu a un commit fijado (ADR 0006), `-p arje-zero` # para construir sólo ese binario; las deps se vendorean en el fetch (Lote 6) ⇒ build `--offline` # hermético. Estático con zig cc cross al target — lo que pide un PID 1 (sin loader del host). # # Es un PUENTE, no el init todavía: prueba que el lab cruza al repo de tawasuyu y produce el # binario del init. Hacerlo PID 1 del rootfs (seed `card.json`, `arje-bus`, hammerd como Card de # servicio) es el paso "init real" posterior (plan B.2 + contrato de runtime de arje). El plan C.3 # prefiere extraer arje-zero a un front-door standalone para no vendorear el monorepo entero; # sourcearlo del monorepo pinned es el interino, igual que hammerd desde el repo hammer. name = "arje-zero" version = "0.0.1" [source] # El `commit` es el identificador inmutable (la URL es sólo locator, no entra al hash). Fijado en # `selfhost/arje-zero-lockfile` = la migración A0 (arje-cas → BLAKE3, 35ec8ef9) + el Cargo.lock del # workspace committeado encima: sin lock, el monorepo lo gitignora y el fetch vendorea SIN --locked # ⇒ las deps derivan en el tiempo y arje-zero (y of_tree(stage1)) deja de ser reproducible. Con el # lock fijo el build es --locked y bit-reproducible. repo = "gitea@git.tawasuyu.net:tawasuyu/tawasuyu.git" commit = "9967b02cf597df6d065edbad8d6669b5653d4928" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" flags = ["-p", "arje-zero"]