Files
hammer/tandas/needs-review-harkaq/README.md
T
sergioandClaude Opus 4.8 a1ab8774c5 harkaq: mtdev — deuda de config.sub CERRADA con patch soberano (+ límite del modelo descubierto)
El único caso de deuda de soberanía del barrido: mtdev copiaba el config.sub/guess
del autoconf de ALPINE (/usr/share/autoconf/build-aux/) porque el suyo (1.1.6) no
conoce *-musl. harkaq lo cazó como lectura no declarada del rootfs.

CERRADO con recipes/mtdev-config-sub-musl.patch: 11 líneas, +`-musl*` a la
whitelist de OS del config.sub DEL PROPIO TARBALL. Ahora es input soberano
(hasheado con la receta), sin leer Alpine. Se quitó el `cp /usr/share/autoconf/...`
del configure. Verificado: mtdev construye (b3:47708e40) sin tocar /usr/share/autoconf.

Método (con un tropiezo honesto): casi afirmo que el `cp` era espurio porque el
config.sub en work/sources/mtdev daba exit 0 con musl — pero ese source estaba
MUTADO por un build previo (el cp lo había reemplazado por el de Alpine). El
tarball ORIGINAL fresco NO conoce musl (exit 1). Casi valido sobre un source
contaminado; me salvó chequear el exit code, no el output.

DESCUBIERTO AL CERRARLO: mtdev tenía DOS deudas de Alpine, no una. También usa
`compiler = "gcc"` (gcc de Alpine, no zig). Bajo la jaula la política deniega
/usr/bin/gcc (sonda esperada) y el configure da "C compiler cannot create
executables". Es parte de matar-gcc (kernel, cmake, mtdev), frente aparte.

LÍMITE DEL MODELO (nuevo, documentado en needs-review): harkaq clasifica gcc como
"sonda esperada" SIEMPRE, así que marca la fase Hermetico — pero para una receta
compiler=gcc, gcc es ESENCIAL y el build no compila sin él. harkaq no distingue
"gcc sondeado (ignorable)" de "gcc = el compilador". Caso límite real del
clasificador; no invalida el cierre de config.sub (producción no usa la jaula).

make declarado en mtdev (deuda declarable restante). config.sub fuera de
needs-review; queda anotado el gcc-compilador.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 08:04:03 -04:00

2.3 KiB

Deuda que harkaq NO puede declarar sola — revisión humana

De 83 recetas barridas, la deuda genuina se reduce a 3 casos, ninguno "falta una receta grande". Todo lo demás era declarable (make/binutils/pkgconf…) o sondas de compilador de Alpine (gcc, cpp, ldd, c89, c99, getent — se deniegan y clasifican, D3). Los 3 que quedan, cada uno una historia:

ncurses — fs.make_dir /usr/lib (NO es de-Alpinización)

El make install de ncurses escribe en /usr/lib, no en /out/usr/lib. Es una escritura de estructura durante install, no la lectura de una lib de Alpine. Causa probable: la fase install no respeta DESTDIR para ese subárbol. Acción: revisar el install de la receta (¿pasa DESTDIR a todo?), no declarar nada. Conceder /usr/lib como rw sería tapar el síntoma y cegar la evidencia.

mtdev — config.sub de Alpine CERRADO (2026-07-16), + gcc-compilador descubierto

config.sub: cerrado. El config.sub de mtdev 1.1.6 no conoce *-musl, así que la receta copiaba el de Alpine (/usr/share/autoconf/build-aux/). Ahora se parchea el config.sub del propio tarball (recipes/mtdev-config-sub-musl.patch, +-musl* a la whitelist de OS, 11 líneas): input soberano, hasheado con la receta, sin tocar Alpine. Verificado: mtdev construye y no lee /usr/share/autoconf.

Descubierto al cerrarlo — mtdev tenía DOS deudas de Alpine: también usa compiler = "gcc" (el gcc de Alpine, no zig). Bajo la jaula, la política deniega /usr/bin/gcc (sonda esperada) y el configure da C compiler cannot create executables. Es parte de la campaña matar gcc (kernel, cmake, mtdev), un frente aparte. Y revela un límite del modelo de clasificación: harkaq marca gcc como "sonda esperada" siempre, así que dice Hermetico, pero para una receta compiler=gcc el gcc es esencial y el build no compila sin él. harkaq no distingue "gcc sondeado (ignorable)" de "gcc = compilador".

perl — /etc/hosts, /etc/resolv.conf (config de sistema para tests)

Los tests de perl durante el build resuelven red y leen la config del sistema. No es un binario ni lib de Alpine: es config. El build completa igual (esos tests fallan o se saltan bajo la jaula). Acción, una de: (a) añadir /etc/hosts+/etc/resolv.conf al runtime base si se quiere que esos tests corran; (b) aceptar la denegación (benigna). No es de-Alpinización.