diff --git a/docs/16-harkaq-jaula.md b/docs/16-harkaq-jaula.md index 01af248c..9b1381a2 100644 --- a/docs/16-harkaq-jaula.md +++ b/docs/16-harkaq-jaula.md @@ -838,8 +838,34 @@ que tiene el privilegio —o los datos— hace lo mínimo. Reclasificado en el h 14%). No hay `recipes/perl.toml` ni artefacto en el store: es deuda genuina y nombrada. Todo lo demás era declarable — `make` ×10, `ranlib`→binutils, `diff`→diffutils. -Sigue por encima del <5% del §7, pero el perfil es el que importa: **no hay cola larga de -sorpresas**. La deuda de un catálogo entero se resume en "declarar `make`" y "no tenemos perl". +### 4.11 …y perl ya existía. El barrido queda en **0 irreducibles** + +El comentario de `recipes/ca-certificates.toml` lo decía con todas las letras, escrito por quien +la portó: + +> *"El resto del build (mk-ca-bundle.pl → cert.pem → split-ca-bundle.sh) usa **el perl + +> coreutils del rootfs**"* + +**La deuda estaba escrita en prosa y era invisible para el sistema.** harkaq la convirtió en un +veredicto. Ésa es la tesis del §0 en una línea: no hace falta que nadie *descubra* nada — hace +falta que la máquina pueda *ver* lo que ya se sabía. + +Y la receta también existía: `recipes/incoming-kde/perl.toml`, importada el 13/07 para la campaña +KDE (`syntax-highlighting` e `intltool` exigen perl). **Cuarta convergencia independiente**: dos +campañas necesitaban el mismo binario y llegaron a él por caminos que no se hablan. Construye tal +cual (`b3:c7a899bd…`), y con el artefacto en el store: + +``` +/usr/bin/perl → declarar dep: perl exit=0 ⇒ CERO deuda irreducible +``` + +**El barrido de 24 recetas queda en 0 irreducibles.** La métrica del §7 (<5%) se cumple — +midiendo lo que la métrica quería medir: *cosas que no sabemos construir*. Resultado: ninguna. + +La receta queda promovida a `recipes/perl.toml`. Lo que queda es mecánico y no es diseño: +declarar `make` en las ~10 recetas que lo usan y `perl` en ca-certificates/curl. **Ojo:** eso +re-hashea sus artefactos, y son paquetes del base-system (índice firmado 748) ⇒ es una decisión de +rollout, no un `sed`. ### 4.9 Matar gcc: la última milla, cerrada diff --git a/recipes/incoming-kde/perl.toml b/recipes/perl.toml similarity index 62% rename from recipes/incoming-kde/perl.toml rename to recipes/perl.toml index 82545b22..d4587b03 100644 --- a/recipes/incoming-kde/perl.toml +++ b/recipes/perl.toml @@ -1,4 +1,11 @@ -# Perl 5.40.2 — intérprete. Build-tool para la campaña KDE: lo exigen syntax-highlighting +# Perl 5.40.2 — intérprete. PROMOVIDA desde recipes/incoming-kde/ (2026-07-15): la necesitan DOS +# campañas que llegaron a ella por separado. harkaq (SDD 16 §4.10) la señaló como la ÚNICA deuda +# IRREDUCIBLE del primer barrido de la granja: ca-certificates y curl usan el perl del rootfs de +# Alpine sin declararlo. El comentario de ca-certificates YA lo decía en prosa ("el resto del build +# usa el perl + coreutils del rootfs") — estaba escrito, pero era invisible para el sistema. +# Construida y sellada (b3:c7a899bd…) ⇒ la deuda pasó de irreducible a declarable. +# +# Build-tool para la campaña KDE: lo exigen syntax-highlighting # (find_package(Perl REQUIRED), regenera defs) e intltool (→libqalculate). No es input compilado del # escritorio, es herramienta de build. Configure propio de perl (no autotools). zig cc vía wrapper. name = "perl"