harkaq: revisadas las 5 irreducibles — 2 recuperadas, 3 casos genuinos diagnosticados
Ninguna de las 5 necesitaba una receta nueva. Eran falsos irreducibles por
política incompleta + un caso real de de-Alpinización.
FALTABAN 2 SONDAS EN LA POLÍTICA: /usr/bin/cpp (frontend del preprocesador de
gcc, mismo grupo que gcc/c89/c99) y /usr/bin/getent (utilidad NSS de musl).
hammer NO las construye ⇒ se deniegan y clasifican (D3), como gcc. Sin ellas en
`# expect`, arrastraban la receta entera a irreducible. Añadidas a base.policy y
a harkaq-farm-setup.sh (para los próximos workers). Re-clasifiqué SIN re-medir
(la clasificación lee la política; los veredictos crudos no cambian).
nm/ranlib NO se añadieron como sondas: los provee binutils ⇒ son DECLARABLES.
Ponerlos como esperadas dejaría a una receta usar el ranlib de Alpine en vez de
decir "declará binutils" — lo contrario de lo que se busca.
RECUPERADAS (declaradas y fuera de needs-review):
dhcpcd → make, pkgconf strace → make
QUEDAN 3, cada una una historia distinta (README en needs-review):
ncurses fs.make_dir /usr/lib — ESCRITURA en install, no lectura de Alpine
(DESTDIR de la receta), NO de-Alpinización.
mtdev config.guess/sub del autoconf de Alpine — LA ÚNICA deuda de soberanía
genuina del barrido (parchar mtdev o escribir recipes/autoconf.toml).
perl /etc/hosts,/etc/resolv.conf — config de sistema para tests de red; el
build completa igual. Runtime base o denegación benigna, no Alpine.
Resultado del barrido completo: de 83 recetas, la deuda de soberanía REAL es UN
caso (mtdev/autoconf). Todo lo demás era declarable o sondas.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# 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 — `/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.
|
||||
|
||||
## 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.
|
||||
@@ -0,0 +1 @@
|
||||
{"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"}]}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user