Segunda tanda del censo con `verificar-repro.sh`, esta vez sobre `poppler-glib` y las dos recetas CMake de la cola de GNOME: **2 de 3 no construyen**. Con esto el censo va en **7 rotas de 18 barridas**, todas por el mismo crash del `lld` de zig con el `--dependency-file` de CMake ≥3.27. ⚠ **`libical` cae enlazando `libical.so` — una librería COMPARTIDA, no un ejecutable.** Eso termina de enterrar el predictor barato que intenté ayer («falla la que instala binarios», 12 aciertos de 14): el crash puede estar en CUALQUIER link del build. Ni ejecutables instalados, ni sólo ejecutables: cualquier link. `evolution-data-server` muere en `camel-lock-helper` y `camel-gpg-photo-saver`, y necesita su propia perilla además de la de su dep — arreglar `libical` no la arregla, porque el fallo está en SU link. Las dos estaban selladas y rotas a la vez. El artefacto tapaba que la cola de GNOME ya no se puede reconstruir entera.
63 lines
4.6 KiB
TOML
63 lines
4.6 KiB
TOML
# libical 3.0.20 — implementación de iCalendar (RFC 5545). Es la dep dura de evolution-data-server:
|
|
# libecal-2.0 está construida sobre libical-glib, y libecal-2.0 es lo que gnome-shell exige en
|
|
# meson.build:72 para el calendario del panel superior. Cadena: gnome-shell → eds → libical.
|
|
#
|
|
# LISTA CONTRA EL CMakeLists.txt REAL (3.0.20), no de memoria:
|
|
# Perl :193 find_package(Perl REQUIRED) — DURA, sin perilla. Genera código a partir de las
|
|
# tablas de propiedades/valores. Sale gratis: perl ya se promovió a recipes/perl.toml
|
|
# cuando el barrido de harkaq en la granja lo destapó como el único irreducible.
|
|
# LibXML :485 — la pide ICAL_GLIB, pero SÓLO la enlaza `ical-glib-src-generator`
|
|
# (src/libical-glib/CMakeLists.txt:12), un ejecutable de BUILD que parsea el XML de la
|
|
# API para generar las fuentes. No entra en ningún .so ⇒ la libxml2.a canónica (no-PIC)
|
|
# sirve tal cual y NO hace falta una variante libxml2-shared. Es la segunda vez en esta
|
|
# cadena que leer el build real ahorra una receta.
|
|
# ICU :214 COMPONENTS uc i18n data — opcional, da soporte RSCALE (calendarios no
|
|
# gregorianos). Se enciende porque icu4c ya está sellada por KDE: sale gratis.
|
|
# BerkeleyDB :256 — opcional, apagada. Es un backend de almacenamiento heredado que eds no usa.
|
|
#
|
|
# Cada apagado y lo que compra:
|
|
# -DWITH_CXX_BINDINGS=OFF → viene en True por defecto (:136). Encenderlo mete el runtime C++ en el
|
|
# artefacto, que es exactamente la deuda irreducible que harkaq destapó en
|
|
# brotli y que se cerró con -static-libstdc++. No hay consumidor: eds es C.
|
|
# -DUSE_BUILTIN_TZDATA=ON → clave para la reproducibilidad. Por defecto libical lee la tzdata del
|
|
# SISTEMA (/usr/share/zoneinfo), o sea que el artefacto quedaría atado al
|
|
# sysroot del constructor y cambiaría con cada actualización de zoneinfo del
|
|
# host. Con la tzdata del propio tarball el artefacto es autocontenido y entra
|
|
# entero al ArtifactHash. El CMakeLists avisa "(Careful)" porque esa tabla
|
|
# envejece con el tarball; es el precio correcto acá — un store direccionable
|
|
# por contenido no puede depender del reloj del anfitrión.
|
|
# -DICAL_BUILD_DOCS=OFF -DLIBICAL_BUILD_TESTING=OFF → ambas vienen en True por defecto (:421, :677).
|
|
# -DICAL_GLIB_VAPI=OFF → Vala; no hay valac en el corpus y nadie lo consume.
|
|
#
|
|
# -DGOBJECT_INTROSPECTION=ON y SHARED_ONLY: isla dinámica. eds expone ECal a gjs y ese typelib
|
|
# arrastra ICalGLib; sin .so real no hay typelib. Ver [[gnome-introspection-dinamica]].
|
|
name = "libical"
|
|
version = "3.0.20"
|
|
# licencia: LICENSE del tarball: «distributed under two licenses. You may choose the terms of either: MPL v2.0 or LGPL v2.1». El fichero no dice «or later» en ningún sitio
|
|
license = "MPL-2.0 OR LGPL-2.1-only"
|
|
|
|
[source]
|
|
tarball = "https://github.com/libical/libical/releases/download/v3.0.20/libical-3.0.20.tar.gz"
|
|
sha256 = "e73de92f5a6ce84c1b00306446b290a2b08cdf0a80988eca0a2c9d5c3510b4c2"
|
|
|
|
[build]
|
|
compiler = "zig-cc"
|
|
target = "x86_64-linux-musl"
|
|
link = "dynamic"
|
|
|
|
[build.phases]
|
|
# ⚠ **`CMAKE_LINK_DEPENDS_USE_LINKER=OFF`: sin esto NO CONSTRUYE HOY.** Estaba sellada y rota a la
|
|
# vez. El `lld` de zig 0.16.0 **segfaultea con el `--dependency-file` que CMake ≥3.27 mete en la
|
|
# línea de enlace** (`Error running link command: Segmentation fault`). Ver `recipes/dwarves.toml`,
|
|
# donde se bisecó la línea literal.
|
|
#
|
|
# ⚠ Y acá el crash cae enlazando una **librería COMPARTIDA** (`libical.so`), no un ejecutable — que
|
|
# es lo que termina de descartar el predictor «sólo falla lo que instala binarios»: el fallo puede
|
|
# estar en cualquier link del build.
|
|
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages cmake -S . -B build -DCMAKE_LINK_DEPENDS_USE_LINKER=OFF -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DSHARED_ONLY=ON -DICAL_GLIB=ON -DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=OFF -DWITH_CXX_BINDINGS=OFF -DUSE_BUILTIN_TZDATA=ON -DICAL_BUILD_DOCS=OFF -DLIBICAL_BUILD_TESTING=OFF -DICAL_ERRORS_ARE_FATAL=OFF"
|
|
compile = "PYTHONPATH=/usr/lib/python3.12/site-packages cmake --build build -j\"$(nproc)\""
|
|
install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out cmake --install build"
|
|
|
|
[deps]
|
|
build = ["cmake", "pkgconf", "python3", "perl", "py3-setuptools", "gi-foreign-girs", "gobject-introspection", "glib", "glib-introspected", "libxml2", "icu4c", "libffi", "pcre2", "zlib-shared"]
|