From 8f7109f4e980cde4e2d72db4b086aced293d9e1d Mon Sep 17 00:00:00 2001 From: sergio Date: Wed, 15 Jul 2026 18:51:32 -0400 Subject: [PATCH] =?UTF-8?q?harkaq:=20el=20barrido=20queda=20en=200=20IRRED?= =?UTF-8?q?UCIBLES=20=E2=80=94=20perl=20ya=20exist=C3=ADa=20(=C2=A74.11)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La única deuda irreducible del barrido (§4.10) era /usr/bin/perl en ca-certificates y curl. Dos hallazgos al abrirla: 1. EL COMENTARIO DE ca-certificates.toml YA LO DECÍA, 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. 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. 2. 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 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. Receta promovida a recipes/perl.toml (no había canónica ⇒ sin colisión). 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) ⇒ decisión de rollout, no un sed. Co-Authored-By: Claude Opus 4.8 --- docs/16-harkaq-jaula.md | 30 ++++++++++++++++++++++++++-- recipes/{incoming-kde => }/perl.toml | 9 ++++++++- 2 files changed, 36 insertions(+), 3 deletions(-) rename recipes/{incoming-kde => }/perl.toml (62%) 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"