zsh: dejar de pedir install.info — fallaba siempre y sellaba un /usr/share/info VACÍO
`makeinfo` no está en el lab, así que `make … install install.info` moría con `/bin/sh: makeinfo: not found` ⇒ `Error 2` en TODOS los builds. Y el artefacto sellaba igual: las fases corren con `/bin/sh -c` sin `-e` (`takana-build/src/sandbox.rs:332,491`), o sea que un fallo a mitad de fase no aborta — sólo cuenta el estado del ÚLTIMO comando, que acá era el bucle de guardianes y daba 0. Lo que llegaba al store era un zsh por lo demás correcto (estático, con sus módulos, con `=~`) pero con un `/usr/share/info` vacío adentro. Es la regla 3 de CLAUDE.md a escala de fase en vez de artefacto: un ausente falla ruidosamente, un vacío llega hasta el final diciendo que todo fue bien. Lo que salvó al artefacto no fue el estado de salida sino los dos guardianes que la receta ya traía escritos a mano. Una receta sin guardianes propios no tiene esa red — eso es el hallazgo general, y va aparte.
This commit is contained in:
+11
-1
@@ -148,8 +148,18 @@ _abuild_phase
|
||||
# de package() de Alpine (traducido $pkgdir→/out). Sin locales: el corpus no los hidrata y pesan.
|
||||
install = '''
|
||||
_abuild_phase() {
|
||||
make LOCAL_LDFLAGS= DESTDIR="/out" install install.info
|
||||
make LOCAL_LDFLAGS= DESTDIR="/out" install
|
||||
rm -rf "/out"/usr/share/locale
|
||||
# `install.info` NO se pide, y no es una poda de tamaño como la de arriba: MEDIDO el
|
||||
# 2026-09-18, `makeinfo` no está en el lab, así que fallaba SIEMPRE
|
||||
# (`/bin/sh: makeinfo: not found` ⇒ `make: *** [Makefile:255: install.info] Error 2`).
|
||||
# Y el build SELLABA IGUAL, dejando un `/usr/share/info` vacío adentro: las fases corren
|
||||
# con `/bin/sh -c` SIN `-e` (`takana-build/src/sandbox.rs:332,491`), así que un fallo a
|
||||
# mitad de fase no aborta nada — sólo cuenta el estado del ÚLTIMO comando. Un directorio
|
||||
# vacío en el artefacto es la regla 3 de CLAUDE.md en pequeño: llega hasta el final
|
||||
# diciendo que todo fue bien. Pedir algo que no puede funcionar y tolerar su fallo es
|
||||
# peor que no pedirlo.
|
||||
rm -rf "/out"/usr/share/info
|
||||
# `/etc/shells` no se escribe acá: es estado del sistema instalado, no del artefacto.
|
||||
# GUARDIÁN: un zsh dinámico sella, reproduce y NO ARRANCA dentro de una imagen (pide
|
||||
# libncursesw.so.6, que nadie provee). Se comprueba el hecho en el ELF, no la intención.
|
||||
|
||||
Reference in New Issue
Block a user