harkaq: el barrido queda en 0 IRREDUCIBLES — perl ya existía (§4.11)
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 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# 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"
|
||||
version = "5.40.2"
|
||||
|
||||
[source]
|
||||
tarball = "https://www.cpan.org/src/5.0/perl-5.40.2.tar.gz"
|
||||
sha256 = "10d4647cfbb543a7f9ae3e5f6851ec49305232ea7621aed24c7cfbb0bef4b70d"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "dynamic"
|
||||
zig_version = "0.13.0"
|
||||
flags = []
|
||||
|
||||
[build.phases]
|
||||
# Configure de perl: -des (defaults, sin preguntas). cc/ld como scripts wrapper (perl guarda el cc en
|
||||
# Config y lo re-invoca; un script evita el split del espacio de "zig cc"). -Dusenm=false (no usa nm).
|
||||
configure = '''
|
||||
ZW="$PWD/.zwrap"; mkdir -p "$ZW"
|
||||
printf '#!/bin/sh\nexec /opt/zig/zig cc -mcpu=baseline "$@"\n' > "$ZW/cc"; chmod +x "$ZW/cc"
|
||||
sh Configure -des -Dprefix=/usr -Dcc="$ZW/cc" -Dld="$ZW/cc" -Duseshrplib -Dusenm=false -Dnoextensions=ODBM_File
|
||||
'''
|
||||
compile = 'make -j"$(nproc)"'
|
||||
install = 'make install DESTDIR=/out'
|
||||
|
||||
[deps]
|
||||
build = ["pkgconf"]
|
||||
Reference in New Issue
Block a user