Files
Sergio d4d120a079 brotli y json-c: selladas y rotas a la vez — las dos baratas del censo, arregladas
El barrido con `verificar-repro.sh` sobre las 15 recetas CMake baratas del corpus dio
**5 que no construyen hoy**. Éstas son las dos cuyo arreglo no cuesta nada (radio 0 y 3 rebuilds).

Diagnosticada `json-c` en vez de suponerla: apartando su artefacto y reconstruyendo con la salida
capturada, muere con el mismo `Error running link command: Segmentation fault` que `dwarves` y que
los `protoc-gen-upb*` de protobuf. Un `-DCMAKE_LINK_DEPENDS_USE_LINKER=OFF` en cada una y listo — el
`lld` de zig 0.16.0 segfaultea con el `--dependency-file` que CMake ≥3.27 emite.

⚠ **Lo que importa de este commit no son las dos recetas: es que el fallo no era un caso aislado.**
Cuando apareció en protobuf lo esquivé con `compiler = "gcc"` creyendo que era cosa de esos plugins.
Ya van CINCO proyectos sin relación entre sí con el mismo crash, y otros tres medidos y pendientes.

`crun` cayó a deuda (json-c es dep suya) y se reconstruyó: sigue siendo estático con 0 NEEDED y
**vuelve a arrancar un contenedor de verdad** con el busybox del corpus como rootfs. Las tres
REPRODUCEN bit a bit.

Queda planteado con el número delante, sin arrancarlo: los otros tres del censo son
`libtiff-shared` (12 rebuilds), `libjpeg-turbo` (17) y `libjpeg-turbo-shared` (23) — ~52 en total y
tocan los stacks gráficos de los escritorios. Y el censo cubrió 15 de las 23 CMake del corpus y
NINGUNA de las ~130 de las colas: el número real de rotas es mayor que 5.
2026-09-12 11:29:01 +00:00

37 lines
1.8 KiB
TOML

# brotli 1.2.0 — compresión Brotli (libbrotli{common,dec,enc} + CLI). Base de fuentes web
# (woff2/freetype/harfbuzz→GTK). De-Alpinizada: cmake static (generador Make, sin Ninja),
# sin wheel de python (BOOTSTRAP). El fallo previo era falta de `cmake` en el sandbox:
# hay que declararlo en [deps].build para que el lab lo materialice (patrón libjpeg-turbo/libtiff).
name = "brotli"
version = "1.2.0"
license = "MIT"
[source]
tarball = "https://github.com/google/brotli/archive/refs/tags/v1.2.0.tar.gz"
sha256 = "816c96e8e8f193b40151dad7e8ff37b1221d019dbcb9c35cd3fadbfe6477dfec"
patches = ["optimize-mips.patch", "fix-lp64.patch"]
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
# Split de la info de depuración (SDD 23 etapa 4, tanda de HOJAS). Entra en `hash_inputs`.
strip_debug = true
flags = []
[build.phases]
# CMAKE_INSTALL_LIBDIR=lib: el lab usa /usr/lib (no /usr/lib64) → pkg-config de los consumidores.
# ⚠ **`CMAKE_LINK_DEPENDS_USE_LINKER=OFF`: sin esto NO CONSTRUYE HOY.** Estaba sellada y rota a la
# vez — el artefacto tapaba que el link muere con `Error running link command: Segmentation fault`.
# La causa no es de esta receta: el `lld` de zig 0.16.0 **segfaultea con el `--dependency-file` que
# CMake ≥3.27 mete en la línea de enlace**. Bisecado sobre la línea literal de `dwarves`
# (`build/CMakeFiles/<target>.dir/link.txt`): quitar `-static` no cambia nada, quitar
# `--dependency-file` lo arregla. Ver `recipes/dwarves.toml` para el detalle.
configure = "cmake -S . -B build -DCMAKE_LINK_DEPENDS_USE_LINKER=OFF -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF"
compile = "cmake --build build"
install = "DESTDIR=/out cmake --install build"
[deps]
build = ["binutils", "cmake"]