runbook del armador: el zig del kernel se busca por directorio versionado, no por PATH

«no encuentro el ejecutable zig en …» no quiere decir que falte zig: falta ESA versión.
hammer lo resuelve en .dev-fs/tools/zig-x86_64-linux-<ver>/, ni el symlink tools/zig ni el
PATH cuentan.

Medido para el caso concreto del kernel: linux.toml NO pinea zig_version, pero tres de sus
deps.build sí — flex, openssl y elfutils, las tres a 0.13.0 — y la receta derivada las
hereda enteras. En gioser están 0.13.0 y 0.16.0, así que el eje está cubierto.

Aviso de la sesión de granja/store; verificado contra las recetas antes de escribirlo.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sergio
2026-08-10 14:03:46 +00:00
co-authored by Claude Opus 5
parent 675d0590c2
commit 9728055269
+6
View File
@@ -116,6 +116,12 @@ scripts de la granja ya lo toman por fuera y hammer se bloquearía contra ellos.
Nada más del armador toca el store: `plan` calcula el `ArtifactHash` con `hammer_build::artifact_hash`,
que es cómputo puro sobre las recetas, y `probe`/`gate`/`bundles`/`closure` sólo leen.
**Si el build muere con «no encuentro el ejecutable zig en …», el zig está bien: falta ESA versión.**
hammer lo busca por **directorio versionado** (`.dev-fs/tools/zig-x86_64-linux-<ver>/`), no por el
symlink `tools/zig` ni por el `PATH`. `linux.toml` no pinea `zig_version`, pero tres de sus
`deps.build` sí — `flex`, `openssl` y `elfutils`, las tres a **0.13.0** — y la receta derivada las
hereda enteras.
## 4. El gate de no-regresión — **por objetivo**
La regla es «todo dispositivo en uso debe seguir teniendo driver». Aplicada global rechazaría