diff --git a/recipes/girara.toml b/recipes/girara.toml new file mode 100644 index 00000000..9d04bc17 --- /dev/null +++ b/recipes/girara.toml @@ -0,0 +1,42 @@ +# girara 2026.07.18 — utilidades comunes de zathura. **YA NO ES UN TOOLKIT.** +# +# ══ LO QUE HAY QUE SABER ANTES DE LEER NADA MÁS ════════════════════════════════════════════════ +# La memoria del repo tenía a girara anotada como muro de GTK3, y el plan de apps daba a zathura por +# bloqueada por eso. **Está desactualizado y hay que decirlo fuerte**: upstream VACIÓ girara. En +# 2026.07.18 el árbol `girara/` son siete `.c` —datastructures, input-history, log, template, +# utils— y el `meson.build` no menciona GTK ni una vez. Toda la UI (sesión, pestañas, statusbar, +# completado) se mudó adentro de zathura, que hoy pide **GTK4 >= 4.12**, y GTK4 sí está en el corpus. +# O sea: el muro de GTK3 que bloqueaba a zathura NO EXISTE. Medido, no recordado. +# +# Sus tres deps son glib, gobject y gio, las tres del mismo artefacto `glib` del corpus. +# +# `-Ddocs=disabled` porque ese target es doxygen y lo que produce es HTML de API, no algo que vaya +# a una imagen. Los tests se compilan igual (su `meson.build` no está detrás de una opción) pero no +# se instalan; no vale la pena parchear el árbol para ahorrar dos ejecutables que no se sellan. +# +# Fuente por commit git (ADR 0006): `2026.07.18` es un objeto TAG ⇒ éste es su commit pelado. +name = "girara" +version = "2026.07.18" +license = "Zlib" + +[source] +repo = "https://github.com/pwmt/girara.git" +commit = "c5faf7f92442804e3e7eabebc1ed82e0d9d9d6a8" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" +flags = [] + +[build.phases] +configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Ddefault_library=static -Ddocs=disabled" +compile = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output" +install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild" + +# `.pc Requires` → `[deps].build`: glib-2.0 arrastra pcre2 y libffi, y gio pide además zlib. +[deps] +build = [ + "meson", "samurai", "python3", "pkgconf", "linux-headers", + "glib", "pcre2", "libffi", "zlib", +] diff --git a/recipes/incoming-cosmic/json-glib.toml b/recipes/json-glib.toml similarity index 63% rename from recipes/incoming-cosmic/json-glib.toml rename to recipes/json-glib.toml index 17be3927..215a6d5d 100644 --- a/recipes/incoming-cosmic/json-glib.toml +++ b/recipes/json-glib.toml @@ -1,3 +1,23 @@ +# json-glib 1.10.8 — PROMOVIDA AL CORPUS el 2026-09-03, para `zathura`. +# +# ══ POR QUÉ SUBE, Y POR QUÉ SALIÓ GRATIS ═══════════════════════════════════════════════════════ +# `zathura` va al corpus para poder estar en las cuatro imágenes, y pide `json-glib-1.0`. Existían +# DOS copias y ninguna en el corpus: `incoming-cosmic` e `incoming-gnome`. Una receta del corpus no +# alcanza una cola hermana ⇒ había que subir una. +# +# Ganó la de COSMIC, y no por gusto: sus `[deps]` (glib, libffi, pcre2, zlib) resuelven ENTERAS +# contra el catálogo padre, así que **sella el MISMO ArtifactHash desde el corpus que desde la cola** +# —`b3:62011e81`, medido con `hammer hash` antes de mover nada— o sea cache hit y UN solo artefacto, +# no dos peleando por la misma ruta. La de GNOME no podía: arrastra `gobject-introspection`, +# `glib-introspected`, `gi-foreign-girs` y `py3-setuptools`, que son maquinaria de GNOME. +# +# **La copia de `incoming-cosmic` se jubiló** en el mismo movimiento, verificado como manda el +# repo: su único consumidor (`xdg-desktop-portal`) hashea `b3:749fbffe` ANTES y DESPUÉS de quitarla +# ⇒ cero rebuilds. La de `incoming-gnome` SE QUEDA: es una variante deliberada (con introspección), +# artefacto distinto, y jubilarla sí rompería a quien la usa. +# +# Lo de abajo es el comentario original de la receta de COSMIC, que sigue valiendo tal cual. +# # json-glib 1.10.8 — segundo eslabón de LA CADENA DEL PORTAL. `xdg-desktop-portal` lo pide con # `dependency('json-glib-1.0')` incondicional (lo usa para el índice de portales y la configuración). # diff --git a/recipes/xxhash.toml b/recipes/xxhash.toml new file mode 100644 index 00000000..8d04469b --- /dev/null +++ b/recipes/xxhash.toml @@ -0,0 +1,48 @@ +# 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"]