Files
SergioandClaude Opus 5 058e3e9206 recetas: girara, xxhash y json-glib al corpus — la cadena de zathura, medida
⚠ CORRIGE UNA CREENCIA DEL REPO: zathura NO está bloqueada por GTK3. Upstream VACIÓ
girara — en 2026.07.18 su árbol son siete .c (datastructures, input-history, log,
template, utils) y su meson.build no menciona GTK ni una vez. Toda la UI se mudó
adentro de zathura, que hoy pide GTK4 >= 4.12, y gtk4 4.18.6 está en el corpus.
El plan de apps daba a zathura por «verificar si su cadena es GTK4 y no GTK3»: lo es.

Las tres piezas que faltaban, medidas con scripts/provee.py --desde corpus:

- girara: sella al primer intento; sus tres deps (glib/gobject/gio) salen del mismo
  artefacto glib. -Ddocs=disabled porque ese target es doxygen y produce HTML de API.

- xxhash 0.8.3 (zathura lo usa para la caché de páginas). DISPATCH=0 no es preferencia,
  el build se cae sin eso: Makefile:58-62 hace `$(CC) -dumpmachine | grep x86_64` y
  enciende DISPATCH solo por detección de arquitectura — una perilla auto que hace
  depender el artefacto de dónde se construyó. Con ella, xxh_x86dispatch.c muere porque
  pide AVX-512 con -mavx512f a secas y el clang de zig ya exige además -mevex512
  («AVX vector argument of type __m512i without evex512 enabled changes the ABI»).
  No se arregla subiendo flags: esa variante sólo la usa el despacho en runtime, que es
  justo lo que no queremos. Apaga las dos cosas de una.

- json-glib PROMOVIDA al corpus, y salió GRATIS por la misma razón que pipewire: la
  variante de COSMIC resuelve sus deps enteras contra el catálogo padre ⇒ mismo
  ArtifactHash desde las dos partes (b3:62011e81, medido antes de mover nada). La de
  GNOME no podía: arrastra gobject-introspection, glib-introspected, gi-foreign-girs y
  py3-setuptools. La copia de incoming-cosmic se jubila, verificado como manda el repo:
  su único consumidor (xdg-desktop-portal) hashea b3:749fbffe ANTES y DESPUÉS ⇒ cero
  rebuilds. La de incoming-gnome SE QUEDA: variante deliberada, artefacto distinto.

Falta todavía el backend de PDF, que es el hueco real: incoming-kde/poppler va con
-DENABLE_GLIB=OFF ⇒ publica libpoppler.so pero NO poppler-glib, y encima sólo se
alcanza desde su cola.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XB2iEmxeLZgzqNfhWChrLo
2026-09-03 11:49:44 +00:00

49 lines
2.5 KiB
TOML

# xxHash 0.8.3 — hash no criptográfico extremadamente rápido. Entra como dep de `zathura`, que lo
# usa para la caché de páginas renderizadas (`dependency('libxxhash')`).
#
# Un solo `.c`, Makefile con `DESTDIR`/`PREFIX` de manual y un `libxxhash.pc.in` que el propio
# Makefile instancia. Pero SÍ trae una perilla que mira la máquina, y no está donde uno la buscaría:
#
# ══ `DISPATCH=0` — Y NO ES UNA PREFERENCIA, EL BUILD SE CAE SIN ESTO ═══════════════════════════
# `Makefile:58-62` hace `$(CC) -dumpmachine | grep x86_64` y, si acierta, pone `DISPATCH ?= 1`. O
# sea que el despacho vectorial en runtime **se enciende solo** por detección de arquitectura: es
# exactamente la clase de perilla `auto` que hace depender el artefacto de dónde se construyó.
# Con ella encendida se compila `xxh_x86dispatch.c`, y ahí muere:
#
# error: always_inline function '_mm512_add_epi64' requires target feature 'evex512', but would
# be inlined into 'XXH3_accumulate_512_avx512' compiled without support for 'evex512'
# error: AVX vector argument of type '__m512i' without 'evex512' enabled changes the ABI
#
# El fichero pide AVX-512 con `-mavx512f` a secas, y el clang que trae zig ya exige además
# `-mevex512` para los vectores de 512 bits. **No se arregla subiendo flags**: la variante AVX-512
# de xxHash sólo la usa el despacho en runtime, y esta distro no quiere un binario que elija
# implementación según el `cpuid` del que lo compiló. `DISPATCH=0` apaga las dos cosas de una.
# `LIBXXH_DISPATCH` —el equivalente para la `.so`— no tiene default, así que ya venía apagado.
#
# El target por defecto (`lib xxhsum_and_links`) es justo lo que pide `install`: la `.a`, la `.so`,
# el CLI `xxhsum` y sus cuatro symlinks (xxh32sum/xxh64sum/xxh128sum/xxh3sum). Se dejan: son 20 KB y
# `xxhsum` es una herramienta de verdad, del mismo tamaño de utilidad que `sha256sum`.
#
# Fuente por commit git (ADR 0006): `v0.8.3` es un tag LIVIANO ⇒ éste es su commit.
name = "xxhash"
version = "0.8.3"
license = "BSD-2-Clause"
[source]
repo = "https://github.com/Cyan4973/xxHash.git"
commit = "e626a72bc2321cd320e953a0ccf1584cad60f363"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
flags = []
[build.phases]
configure = "true"
compile = "make PREFIX=/usr CC=hammer-zig-cc DISPATCH=0"
install = "make install PREFIX=/usr DESTDIR=/out CC=hammer-zig-cc DISPATCH=0"
[deps]
build = ["make", "pkgconf"]