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.
37 lines
1.8 KiB
TOML
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"]
|