Files
hammer/recipes/perl.toml
T
sergioandClaude Opus 4.8 8f7109f4e9 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>
2026-07-15 18:51:32 -04:00

38 lines
1.7 KiB
TOML

# 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"]