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>
This commit is contained in:
@@ -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* \
|
||||
+8
-5
@@ -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"]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"}]}
|
||||
Reference in New Issue
Block a user