# 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" license = "Artistic-1.0-Perl OR GPL-1.0-or-later" [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' # ⚠ DEUDA MEDIDA Y NO PAGADA (2026-09-04): esta receta instala 945 ficheros en la RAÍZ del rootfs. # # Su `Configure -des` no encuentra nroff, así que elige `man1ext='0'` y —lo importante— # `man1dir=' '` / `man3dir=' '`, la convención de perl para «no instales man». Pero `installman` # igual GENERA las páginas preformateadas y, con el directorio vacío, `make install DESTDIR=/out` # las deja en `/out/`: `AnyDBM_File.0`, `App::Cpan.0`, … 945 ficheros sueltos en `/`. # Se ve hidratando un rootfs de verdad; ninguna métrica sobre recetas puede verlo. El guardián que # lo caza y NOMBRA al culpable está en `scripts/hydrate-profile.py` (§quién ensucia la raíz). # # EL ARREGLO ES UNA LÍNEA —`-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 # -Dman1ext=1 -Dman3ext=3`— Y NO SE APLICA HOY. `yupana radio perl` dice por qué: # # dependientes transitivos 347 · sellados que CAEN a deuda 305 # imágenes afectadas: base, cli, escritorio-{kde,gnome,cosmic,sway,mirada} (TODAS) # # 305 rebuilds para mover unas páginas de man de sitio no se paga solo. **Va con el próximo bump de # perl**, cuando el re-hash ya esté pagado: ahí la línea cuesta cero. Esto no es un olvido, es una # decisión con el número delante. [deps] build = ["pkgconf"]