diff --git a/recipes/mtdev-config-sub-musl.patch b/recipes/mtdev-config-sub-musl.patch new file mode 100644 index 00000000..4248cebb --- /dev/null +++ b/recipes/mtdev-config-sub-musl.patch @@ -0,0 +1,11 @@ +--- a/config-aux/config.sub 2026-07-16 07:56:31.397383082 -0400 ++++ b/config-aux/config.sub 2026-07-16 07:56:31.398068534 -0400 +@@ -1301,7 +1301,7 @@ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ ++ | -mingw32* | -linux-gnu* | -linux-musl* | -musl* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ diff --git a/recipes/mtdev.toml b/recipes/mtdev.toml index 6b87c286..812ea173 100644 --- a/recipes/mtdev.toml +++ b/recipes/mtdev.toml @@ -5,7 +5,7 @@ version = "1.1.6" [source] tarball = "https://bitmath.org/code/mtdev/mtdev-1.1.6.tar.gz" sha256 = "1325f389a2f25cd5f5a8ea4d29aad24aa7c3ec30401d679400dd79eb9c0a8dbb" - +patches = ["mtdev-config-sub-musl.patch"] [build] compiler = "gcc" target = "x86_64-linux-musl" @@ -13,11 +13,14 @@ link = "dynamic" flags = [] [build.phases] -# El config.sub de mtdev 1.1.6 es viejo y NO conoce el triple `*-musl` ⇒ lo reemplazamos por el -# moderno del sandbox (autoconf build-aux) antes de configurar. -configure = 'cp /usr/share/autoconf/build-aux/config.sub config-aux/config.sub; cp /usr/share/autoconf/build-aux/config.guess config-aux/config.guess; ./configure --build=$CBUILD --host=$CHOST --prefix=/usr' +# El config.sub de mtdev 1.1.6 no conoce el triple `*-musl`. ANTES se copiaba el de Alpine +# (`/usr/share/autoconf/build-aux/`) — una lectura NO DECLARADA del rootfs que harkaq (SDD 16) +# cazó como la única deuda de soberanía del barrido. Ahora se parchea el config.sub del propio +# tarball (mtdev-config-sub-musl.patch, +`-musl*` a la whitelist de OS): input soberano, hasheado +# con la receta, sin tocar Alpine. +configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr' compile = 'make' install = 'make DESTDIR=/out install' [deps] -build = ["pkgconf"] +build = ["pkgconf", "make"] diff --git a/tandas/needs-review-harkaq/README.md b/tandas/needs-review-harkaq/README.md index e29eafbe..861da537 100644 --- a/tandas/needs-review-harkaq/README.md +++ b/tandas/needs-review-harkaq/README.md @@ -10,11 +10,18 @@ estructura durante install, no la lectura de una lib de Alpine. Causa probable: 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 — `/usr/share/autoconf/build-aux/config.guess` + `config.sub` (de-Alpinización real) -mtdev, al `./configure`, toma el `config.guess`/`config.sub` del **autoconf de Alpine** en vez de los -de su propio tarball. hammer no tiene receta de `autoconf`. **Acción, una de:** (a) parchar mtdev para -que use su config.guess embebido; (b) escribir `recipes/autoconf.toml` y declararlo. Es la única deuda -de soberanía genuina de todo el barrido. +## 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 diff --git a/tandas/needs-review-harkaq/mtdev.verdicts b/tandas/needs-review-harkaq/mtdev.verdicts deleted file mode 100644 index ec6a95d8..00000000 --- a/tandas/needs-review-harkaq/mtdev.verdicts +++ /dev/null @@ -1 +0,0 @@ -{"estado":"Impuro","canario_visto":true,"domain":"18a3bc08d","contador_kernel":5,"denials":[{"blockers":"fs.read_file","path":"/usr/share/autoconf/build-aux/config.sub","dev":"overlay","ino":"2203057"},{"blockers":"fs.read_file","path":"/usr/share/autoconf/build-aux/config.guess","dev":"overlay","ino":"2203056"},{"blockers":"fs.execute,fs.read_file","path":"/usr/bin/make","dev":"overlay","ino":"2208840"},{"blockers":"fs.execute,fs.read_file","path":"/usr/bin/make","dev":"overlay","ino":"2208840"}]}