gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

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.

3b36e9df0a83e314afb408241a0ffcaacc27f48c · by Sergio · (1 month ago) · parent c7c233755 · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

1 files · +11 −1

diff --git a/recipes/zsh.toml b/recipes/zsh.toml
index b1b866e5..7b4f8c7b 100644
--- a/recipes/zsh.toml
+++ b/recipes/zsh.toml
@@ -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.