apps: zathura + backend de PDF, en gnome/cosmic/sway — y tres defectos de imagen que salieron

La cadena: 5 recetas nuevas (girara, xxhash, poppler-glib, zathura,
zathura-pdf-poppler) y 5 promociones GRATIS al corpus (json-glib, lcms2, glib-shared,
pcre2-shared, bzip2-shared — todas con hash idéntico desde la cola y desde el corpus,
medido con hammer hash antes de mover nada).

NO va en escritorio-kde, y está escrito en tres sitios para que no se liste por
descuido: su backend necesita una poppler con ENABLE_GLIB=ON, y esa imagen ya trae la
de Qt6 vía okular. Las dos instalan /usr/lib/libpoppler.so.146 y son artefactos
DISTINTOS ⇒ hidratar las dos pone dos ficheros en la misma ruta. La salida no sería
listarla igual, sería jubilar una de las dos popplers.

LAS TRES COSAS QUE SE ROMPIERON, que valen más que las recetas:

1. -DENABLE_GLIB=ON SE APAGA SOLO Y EL BUILD SALE OK. CMakeLists:260 hace
   `if(NOT CAIRO_FOUND) set(ENABLE_GLIB OFF)`: no falla, obedece distinto. El primer
   artefacto selló sin nada de glib, exit 0, sin aviso. La causa era una línea que este
   repo ya tiene como patrón: `.pc Requires` → `[deps].build`. cairo.pc pide pixman-1 y
   pixman no estaba declarado ⇒ `pkg-config --exists cairo` falso ⇒ CAIRO_FOUND falso.
   Un .pc que falta a tres saltos apaga una FUNCIÓN, no una librería. La receta ahora
   comprueba en install que poppler-glib.pc y libpoppler-glib.so existan.

2. DOS COPIAS ESTÁTICAS DE GObject EN UN PROCESO. Con la glib estática del corpus todo
   sella y zathura arranca — y al dlopen del plugin escupe «cannot register existing
   type 'gchar'» y no abre nada. No son dos ficheros en una ruta: son dos copias del
   sistema de tipos dentro del mismo proceso, una en el ejecutable y otra dentro de
   libpoppler-glib.so. Un .a NO duplica (sólo tiene símbolos sin definir, se resuelven
   al ligar); el problema aparece sólo cuando dos objetos enlazados por separado meten
   cada uno la suya. Arreglo: las TRES recetas de la cadena declaran glib-shared.

3. FUGA AL LAB, cazada por scripts/vigia-sonames.py: zathura selló con
   NEEDED libsqlite3.so.0, un SONAME que ningún artefacto del cierre publica — meson
   había resuelto dependency('sqlite3') contra el sysroot Alpine DEL LAB. Y declarar la
   dep NO alcanzó: el .pc da un -lsqlite3 pelado y el linker prefiere la .so del lab
   sobre la .a del store. Lo arregla -Dprefer_static=true. Medido: los NEEDED bajaron de
   DIEZ a CUATRO y los cuatro los publica el cierre.

DOS DEFECTOS DE IMAGEN PREEXISTENTES que salieron de paso:

- libbz2.so.1 no lo publicaba nadie y freetype-shared lo pide, en los TRES perfiles.
  Se vio de verdad al probar el visor (el plugin no hacía dlopen). bzip2-shared existía
  sólo en incoming-kde; promovida y puesta de raíz junto a expat-shared/libffi-shared.

- escritorio-gnome NO TRAÍA NI UN FICHERO DE FUENTE. Contado sobre los artefactos del
  cierre: gnome=0, sway=22, kde=1 (una de rebote dentro de qtbase). Tenía fontconfig,
  que es el MOTOR que busca fuentes, no una fuente. Un PDF con base-14 se ve VACÍO y sin
  error. Añadida dejavu-fonts, la única receta de fuentes del catálogo entero.
  ⚠ KDE queda igual y NO se toca acá: no lleva zathura y su árbol lo trabaja otro frente.

EVIDENCIA DE QUE ANDA, no de que sella:
- `zathura --version` con el plugin lista «(plugin) pdf-poppler (2026.07.18)» sin un
  solo GObject-CRITICAL.
- poppler-render-check, receta-TESTIGO en el espíritu de gtk4-hello: arma un PDF a mano,
  lo abre con poppler-glib, lo rasteriza sobre cairo y CUENTA PÍXELES — 9600 negros,
  exactamente el rectángulo de 160x60. Un lienzo blanco no pasa. Su primera versión
  medía el TEXTO y falló: el sandbox no tiene fuentes, que es cómo se descubrió el
  hueco de arriba. El assert quedó sobre el rectángulo, que no depende de tipografía, y
  el texto se informa aparte.

Los cinco grafos quedan en N/N con cero deuda.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XB2iEmxeLZgzqNfhWChrLo
This commit is contained in:
Sergio
2026-09-03 12:14:07 +00:00
co-authored by Claude Opus 5
parent 4e1fed04d7
commit da0186d250
15 changed files with 1757 additions and 284 deletions
+8 -2
View File
@@ -37,7 +37,7 @@ Dos columnas, y **la que importa es la segunda**:
| ~~imv~~ | 7 | **GL de escritorio** | ❌ **BLOQUEADA 2026-09-03** — el muro no lo veía este método; ver abajo. Reemplazada por `swayimg`, sellada el mismo día. |
| ~~swayimg~~ | — | — | ✅ **SELLADA 2026-09-03** (b3:9bcd39c1, **5.5**), en las CUATRO imágenes. Visor sin GL: rasteriza a `wl_shm`. Trae backend DRM de yapa. |
| ~~luajit~~ | — | — | ✅ **SELLADA 2026-09-03** (b3:115d4c1c). Escrita para destrabar swayimg 5.x; mpv también la prefiere. |
| **zathura** | 8 | — | lector de PDF; `girara` es su propia lib y ya usa GTK4 en Alpine. |
| ~~zathura~~ | | — | **SELLADA 2026-09-03** (b3:9c5eac92) + `zathura-pdf-poppler`. **Es GTK4, no GTK3**: upstream vació girara. En gnome/cosmic/sway; **NO en KDE**, por colisión de poppler. |
| **mupdf** | 9 | X11 | el X11 es del visor `mupdf-x11`; el motor y `mupdf-gl` no. Requiere mirar. |
| **inkscape** | 14 | — | sin muros, pero `gtkmm3` en la lista hay que verificarlo (¿GTK3 encubierto?). |
| *mpv* | *16* | *X11* | *YA SELLADA — es el control del método, no una candidata.* |
@@ -221,7 +221,13 @@ cierre (wayland, ffmpeg, libdrm) quedó completo cuando entró mpv.
4.**visor de imágenes** — hecho (2026-09-03), pero con **`swayimg` 4.7 y no `imv`**: imv está
bloqueada por el muro de GL de escritorio (sección de arriba). En las cuatro imágenes.
4b. ✅ **`luajit`** — hecha (2026-09-03). Destrabó swayimg 5.5 y queda disponible para mpv.
5. **zathura** (+ backend PDF) — verificar antes que su cadena sea GTK4 y no GTK3.
5. **zathura + backend PDF** — hecho (2026-09-03). **La sospecha de GTK3 era falsa**: upstream
VACIÓ `girara` (en 2026.07.18 son siete `.c` de utilidades, cero GTK) y toda la UI se mudó a
zathura, que pide GTK4 >= 4.12 — que está en el corpus. Costó 5 recetas nuevas
(`girara`, `xxhash`, `poppler-glib`, `zathura`, `zathura-pdf-poppler`) + 4 promociones gratis al
corpus (`json-glib`, `lcms2`, `glib-shared`, `pcre2-shared`, `bzip2-shared`).
**No va en `escritorio-kde`**: su backend necesita una poppler con `ENABLE_GLIB=ON` y esa imagen
ya trae la de Qt6 vía okular; las dos instalan `/usr/lib/libpoppler.so.146`.
6. **Decisión de navegador** — no es trabajo de recetas, es la elección de arriba. No debería
entrar a una cola de build hasta que esté tomada.
+200 -50
View File
@@ -1,14 +1,14 @@
{
"schema": "hammer-build-state/1",
"totals": {
"recipes": 851,
"nodes": 852,
"sealed": 851,
"recipes": 854,
"nodes": 855,
"sealed": 854,
"ajeno": 1
},
"by_class": {
"ajeno": 1,
"c": 198,
"c": 201,
"go": 362,
"gui": 35,
"kernel": 6,
@@ -17,7 +17,7 @@
"debt_by_class": {},
"by_queue": {
"corpus": {
"sealed": 812,
"sealed": 815,
"ajeno": 1
},
"incoming-cosmic": {
@@ -36,9 +36,9 @@
"sealed": 75
},
"escritorio-cosmic": {
"raices": 34,
"clausura": 113,
"sealed": 113
"raices": 37,
"clausura": 131,
"sealed": 131
},
"escritorio-mirada": {
"raices": 14,
@@ -46,7 +46,7 @@
"sealed": 33
}
},
"sin_perfil": 652,
"sin_perfil": 645,
"orphan_deps": [],
"topo_ok": true,
"nodes": {
@@ -1147,6 +1147,27 @@
"perfiles": [],
"dependientes_total": 10
},
"bzip2-shared": {
"iname": "bzip2-shared",
"version": "1.0.8",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"pkgconf"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:1e404254499a9fdb26185c95a4d3cd112c89cc7e065540fb465fbe104805f8c4",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"ca-certificates": {
"iname": "ca-certificates",
"version": "20260611",
@@ -1214,9 +1235,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 16
"dependientes_total": 17
},
"caligula": {
"iname": "caligula",
@@ -4042,7 +4065,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 64
"dependientes_total": 65
},
"expat-shared": {
"iname": "expat-shared",
@@ -4282,7 +4305,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"filebrowser": {
@@ -4440,9 +4467,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 14
"dependientes_total": 15
},
"foot": {
"iname": "foot",
@@ -4557,9 +4586,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 16
"dependientes_total": 17
},
"freeze": {
"iname": "freeze",
@@ -4752,7 +4783,9 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 9
},
@@ -4922,7 +4955,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"git": {
@@ -5303,7 +5340,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 31
"dependientes_total": 28
},
"glib-shared": {
"iname": "glib-shared",
@@ -6170,7 +6207,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 8
},
"grcov": {
@@ -6328,7 +6369,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 7
},
"gtk4-hello": {
@@ -7382,7 +7427,9 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
@@ -8279,8 +8326,12 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 2
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 3
},
"lefthook": {
"iname": "lefthook",
@@ -8607,8 +8658,10 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-kde"
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 17
},
@@ -8674,7 +8727,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 105
"dependientes_total": 107
},
"libffi-shared": {
"iname": "libffi-shared",
@@ -8807,9 +8860,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 15
"dependientes_total": 16
},
"libksba": {
"iname": "libksba",
@@ -8943,9 +8998,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 22
"dependientes_total": 23
},
"libqalculate": {
"iname": "libqalculate",
@@ -10094,7 +10151,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 121
"dependientes_total": 122
},
"micro": {
"iname": "micro",
@@ -11332,6 +11389,8 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 9
@@ -11450,7 +11509,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 79
"dependientes_total": 76
},
"pcre2-shared": {
"iname": "pcre2-shared",
@@ -11674,7 +11733,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 37
"dependientes_total": 38
},
"pkgconf": {
"iname": "pkgconf",
@@ -11697,7 +11756,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 380
"dependientes_total": 383
},
"plow": {
"iname": "plow",
@@ -11833,10 +11892,10 @@
"pkgconf",
"gettext-tiny",
"gperf",
"glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"pcre2",
"libffi",
"freetype-shared",
"fontconfig-shared",
@@ -11848,12 +11907,49 @@
],
"cls": "gui",
"queue": "corpus",
"hash": "b3:ef5256e7be3b77cf9ca746e3d3cda38a555630f87974ae66b1b2cd4d455d043e",
"hash": "b3:fb5186f90d755cfe8bfe863f5440d0494483968706ef0de84c7c05426ce5cc76",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"poppler-render-check": {
"iname": "poppler-render-check",
"version": "25.02.0",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"pkgconf",
"python3",
"poppler-glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"libffi",
"zlib",
"zlib-shared",
"bzip2-shared",
"freetype-shared",
"fontconfig-shared",
"expat",
"lcms2",
"libjpeg-turbo-shared",
"libpng-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:0d29dc69792df003726252fbc381a0133df7654daafccf547f8d5a82e526c1fe",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 1
"dependientes_total": 0
},
"portal-probe": {
"iname": "portal-probe",
@@ -12103,7 +12199,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 292
"dependientes_total": 294
},
"qrcp": {
"iname": "qrcp",
@@ -12658,7 +12754,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 255
"dependientes_total": 256
},
"sassc": {
"iname": "sassc",
@@ -13247,9 +13343,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 3
"dependientes_total": 4
},
"ssh-vault": {
"iname": "ssh-vault",
@@ -15482,7 +15580,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"xz": {
@@ -15606,8 +15708,10 @@
"xxhash",
"json-glib",
"file",
"sqlite",
"gtk4",
"glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pango",
"gdk-pixbuf",
@@ -15628,18 +15732,64 @@
"libjpeg-turbo",
"libtiff",
"libffi",
"pcre2",
"zlib"
"zlib",
"zlib-shared",
"bzip2-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:94a7c57b0b5b75129f5481361c9a395acd1e253293c75ce041c69b4f9f4e4dc1",
"hash": "b3:9c5eac9263563cbf359ba7c0e6bb6346747a46a6172baa3de8842df6f6ada829",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"zathura-pdf-poppler": {
"iname": "zathura-pdf-poppler",
"version": "2026.07.18",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"meson",
"samurai",
"python3",
"pkgconf",
"linux-headers",
"zathura",
"girara",
"poppler-glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"libffi",
"zlib",
"freetype-shared",
"fontconfig-shared",
"expat",
"lcms2",
"libjpeg-turbo-shared",
"libpng-shared",
"zlib-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:ef4062c5a1a5f9b2c8190b4d7d5576afa2a7485f3c7329366dd73d3360d88231",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 0
},
"zellij": {
"iname": "zellij",
"version": "0.44.3",
@@ -15711,7 +15861,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 103
"dependientes_total": 104
},
"zlib-ng": {
"iname": "zlib-ng",
@@ -15750,7 +15900,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 76
"dependientes_total": 80
},
"zola": {
"iname": "zola",
+246 -48
View File
@@ -1,27 +1,30 @@
{
"schema": "hammer-build-state/1",
"totals": {
"recipes": 875,
"nodes": 876,
"sealed": 875,
"ajeno": 1
"recipes": 880,
"nodes": 882,
"sealed": 880,
"ajeno": 1,
"wanted": 1
},
"by_class": {
"ajeno": 1,
"c": 236,
"c": 240,
"go": 362,
"gui": 41,
"gui": 42,
"kernel": 6,
"rust": 230
"rust": 230,
"wanted": 1
},
"debt_by_class": {},
"by_queue": {
"corpus": {
"sealed": 801,
"sealed": 806,
"ajeno": 1
},
"incoming-gnome": {
"sealed": 74
"sealed": 74,
"wanted": 1
}
},
"by_profile": {
@@ -36,9 +39,9 @@
"sealed": 74
},
"escritorio-gnome": {
"raices": 10,
"clausura": 138,
"sealed": 138
"raices": 14,
"clausura": 148,
"sealed": 148
},
"escritorio-mirada": {
"raices": 14,
@@ -46,7 +49,7 @@
"sealed": 33
}
},
"sin_perfil": 665,
"sin_perfil": 662,
"orphan_deps": [],
"topo_ok": true,
"nodes": {
@@ -1234,6 +1237,27 @@
"perfiles": [],
"dependientes_total": 10
},
"bzip2-shared": {
"iname": "bzip2-shared",
"version": "1.0.8",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"pkgconf"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:1e404254499a9fdb26185c95a4d3cd112c89cc7e065540fb465fbe104805f8c4",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"ca-certificates": {
"iname": "ca-certificates",
"version": "20260611",
@@ -1301,9 +1325,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 15
"dependientes_total": 17
},
"cairo-shared": {
"iname": "cairo-shared",
@@ -2940,6 +2966,21 @@
"perfiles": [],
"dependientes_total": 0
},
"dejavu-fonts": {
"iname": "dejavu-fonts",
"version": null,
"link": null,
"compiler": null,
"deps": [],
"cls": "wanted",
"queue": "incoming-gnome",
"hash": null,
"state": "wanted",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 0
},
"delta": {
"iname": "delta",
"version": "0.19.2",
@@ -3776,7 +3817,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 63
"dependientes_total": 65
},
"expat-shared": {
"iname": "expat-shared",
@@ -4016,7 +4057,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"filebrowser": {
@@ -4174,9 +4219,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 13
"dependientes_total": 15
},
"foot": {
"iname": "foot",
@@ -4291,9 +4338,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 15
"dependientes_total": 17
},
"freeze": {
"iname": "freeze",
@@ -4823,8 +4872,12 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 1
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"git": {
"iname": "git",
@@ -5270,6 +5323,33 @@
],
"dependientes_total": 29
},
"glib-shared": {
"iname": "glib-shared",
"version": "2.88.1",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"meson",
"samurai",
"python3",
"pkgconf",
"libffi",
"pcre2-shared",
"zlib-shared"
],
"cls": "gui",
"queue": "corpus",
"hash": "b3:c3810d3b23e6fb1d8dc6874ddf229f648e3039c5725d5d70035f250394d5dd96",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 4
},
"glow": {
"iname": "glow",
"version": "2.1.2",
@@ -8881,8 +8961,10 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-kde"
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 17
},
@@ -8948,7 +9030,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 104
"dependientes_total": 107
},
"libffi-shared": {
"iname": "libffi-shared",
@@ -9284,9 +9366,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 14
"dependientes_total": 16
},
"libksba": {
"iname": "libksba",
@@ -9420,9 +9504,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 21
"dependientes_total": 23
},
"libpsl": {
"iname": "libpsl",
@@ -10048,7 +10134,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 34
"dependientes_total": 35
},
"linux-metal": {
"iname": "linux-metal",
@@ -10730,7 +10816,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 120
"dependientes_total": 122
},
"micro": {
"iname": "micro",
@@ -12229,7 +12315,28 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 78
"dependientes_total": 76
},
"pcre2-shared": {
"iname": "pcre2-shared",
"version": "10.47",
"link": "dynamic",
"compiler": "gcc",
"deps": [
"zlib-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:a92e924a4d25b7dd42a02411518367a1905463c5cc3165f5fbdfb5925aa877ec",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 5
},
"peco": {
"iname": "peco",
@@ -12434,7 +12541,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 36
"dependientes_total": 38
},
"pkgconf": {
"iname": "pkgconf",
@@ -12457,7 +12564,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 379
"dependientes_total": 383
},
"plow": {
"iname": "plow",
@@ -12602,10 +12709,10 @@
"pkgconf",
"gettext-tiny",
"gperf",
"glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"pcre2",
"libffi",
"freetype-shared",
"fontconfig-shared",
@@ -12617,7 +12724,44 @@
],
"cls": "gui",
"queue": "corpus",
"hash": "b3:ef5256e7be3b77cf9ca746e3d3cda38a555630f87974ae66b1b2cd4d455d043e",
"hash": "b3:fb5186f90d755cfe8bfe863f5440d0494483968706ef0de84c7c05426ce5cc76",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"poppler-render-check": {
"iname": "poppler-render-check",
"version": "25.02.0",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"pkgconf",
"python3",
"poppler-glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"libffi",
"zlib",
"zlib-shared",
"bzip2-shared",
"freetype-shared",
"fontconfig-shared",
"expat",
"lcms2",
"libjpeg-turbo-shared",
"libpng-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:0d29dc69792df003726252fbc381a0133df7654daafccf547f8d5a82e526c1fe",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
@@ -12930,7 +13074,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 291
"dependientes_total": 294
},
"qrcp": {
"iname": "qrcp",
@@ -13485,7 +13629,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 254
"dependientes_total": 256
},
"sassc": {
"iname": "sassc",
@@ -14099,9 +14243,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 3
"dependientes_total": 4
},
"sqlite-shared": {
"iname": "sqlite-shared",
@@ -16458,7 +16604,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"xz": {
@@ -16582,8 +16732,10 @@
"xxhash",
"json-glib",
"file",
"sqlite",
"gtk4",
"glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pango",
"gdk-pixbuf",
@@ -16604,16 +16756,62 @@
"libjpeg-turbo",
"libtiff",
"libffi",
"pcre2",
"zlib"
"zlib",
"zlib-shared",
"bzip2-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:94a7c57b0b5b75129f5481361c9a395acd1e253293c75ce041c69b4f9f4e4dc1",
"hash": "b3:9c5eac9263563cbf359ba7c0e6bb6346747a46a6172baa3de8842df6f6ada829",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"zathura-pdf-poppler": {
"iname": "zathura-pdf-poppler",
"version": "2026.07.18",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"meson",
"samurai",
"python3",
"pkgconf",
"linux-headers",
"zathura",
"girara",
"poppler-glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"libffi",
"zlib",
"freetype-shared",
"fontconfig-shared",
"expat",
"lcms2",
"libjpeg-turbo-shared",
"libpng-shared",
"zlib-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:ef4062c5a1a5f9b2c8190b4d7d5576afa2a7485f3c7329366dd73d3360d88231",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 0
},
"zellij": {
@@ -16687,7 +16885,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 102
"dependientes_total": 104
},
"zlib-ng": {
"iname": "zlib-ng",
@@ -16726,7 +16924,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 75
"dependientes_total": 80
},
"zola": {
"iname": "zola",
+177 -50
View File
@@ -1,14 +1,14 @@
{
"schema": "hammer-build-state/1",
"totals": {
"recipes": 995,
"nodes": 996,
"sealed": 995,
"recipes": 997,
"nodes": 998,
"sealed": 997,
"ajeno": 1
},
"by_class": {
"ajeno": 1,
"c": 360,
"c": 362,
"go": 362,
"gui": 38,
"kernel": 6,
@@ -17,7 +17,7 @@
"debt_by_class": {},
"by_queue": {
"corpus": {
"sealed": 797
"sealed": 799
},
"incoming-kde": {
"sealed": 198,
@@ -36,9 +36,9 @@
"sealed": 70
},
"escritorio-kde": {
"raices": 15,
"clausura": 196,
"sealed": 195,
"raices": 16,
"clausura": 197,
"sealed": 196,
"ajeno": 1
},
"escritorio-mirada": {
@@ -47,7 +47,7 @@
"sealed": 29
}
},
"sin_perfil": 713,
"sin_perfil": 706,
"orphan_deps": [],
"topo_ok": true,
"nodes": {
@@ -1400,7 +1400,9 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-kde"
],
"dependientes_total": 3
},
"ca-certificates": {
@@ -1470,9 +1472,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 15
"dependientes_total": 17
},
"caligula": {
"iname": "caligula",
@@ -3930,7 +3934,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 63
"dependientes_total": 65
},
"expat-shared": {
"iname": "expat-shared",
@@ -4191,7 +4195,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"filebrowser": {
@@ -4412,9 +4420,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 13
"dependientes_total": 15
},
"foot": {
"iname": "foot",
@@ -4603,9 +4613,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 15
"dependientes_total": 17
},
"freeze": {
"iname": "freeze",
@@ -4776,7 +4788,9 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 9
},
@@ -4946,8 +4960,12 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 1
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"git": {
"iname": "git",
@@ -5327,7 +5345,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 30
"dependientes_total": 28
},
"glib-shared": {
"iname": "glib-shared",
@@ -6194,7 +6212,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 8
},
"grcov": {
@@ -6352,7 +6374,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 7
},
"gtk4-hello": {
@@ -7509,7 +7535,9 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
@@ -12342,8 +12370,10 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-kde"
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 17
},
@@ -12405,7 +12435,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 104
"dependientes_total": 107
},
"libffi-shared": {
"iname": "libffi-shared",
@@ -12528,9 +12558,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 14
"dependientes_total": 16
},
"libksba": {
"iname": "libksba",
@@ -12920,9 +12952,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 21
"dependientes_total": 23
},
"libpthread-stubs": {
"iname": "libpthread-stubs",
@@ -13559,7 +13593,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 34
"dependientes_total": 35
},
"linux-metal": {
"iname": "linux-metal",
@@ -14244,7 +14278,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 120
"dependientes_total": 122
},
"micro": {
"iname": "micro",
@@ -15736,6 +15770,8 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 9
@@ -15854,7 +15890,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 78
"dependientes_total": 76
},
"pcre2-shared": {
"iname": "pcre2-shared",
@@ -16142,7 +16178,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 36
"dependientes_total": 38
},
"pkgconf": {
"iname": "pkgconf",
@@ -16165,7 +16201,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 379
"dependientes_total": 383
},
"plasma-activities": {
"iname": "plasma-activities",
@@ -17105,10 +17141,10 @@
"pkgconf",
"gettext-tiny",
"gperf",
"glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"pcre2",
"libffi",
"freetype-shared",
"fontconfig-shared",
@@ -17120,7 +17156,44 @@
],
"cls": "gui",
"queue": "corpus",
"hash": "b3:ef5256e7be3b77cf9ca746e3d3cda38a555630f87974ae66b1b2cd4d455d043e",
"hash": "b3:fb5186f90d755cfe8bfe863f5440d0494483968706ef0de84c7c05426ce5cc76",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"poppler-render-check": {
"iname": "poppler-render-check",
"version": "25.02.0",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"pkgconf",
"python3",
"poppler-glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"libffi",
"zlib",
"zlib-shared",
"bzip2-shared",
"freetype-shared",
"fontconfig-shared",
"expat",
"lcms2",
"libjpeg-turbo-shared",
"libpng-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:0d29dc69792df003726252fbc381a0133df7654daafccf547f8d5a82e526c1fe",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
@@ -17551,7 +17624,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 291
"dependientes_total": 294
},
"qcoro": {
"iname": "qcoro",
@@ -18695,7 +18768,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 254
"dependientes_total": 256
},
"sassc": {
"iname": "sassc",
@@ -19466,9 +19539,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 3
"dependientes_total": 4
},
"ssh-vault": {
"iname": "ssh-vault",
@@ -22048,7 +22123,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"xz": {
@@ -22189,8 +22268,10 @@
"xxhash",
"json-glib",
"file",
"sqlite",
"gtk4",
"glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pango",
"gdk-pixbuf",
@@ -22211,16 +22292,62 @@
"libjpeg-turbo",
"libtiff",
"libffi",
"pcre2",
"zlib"
"zlib",
"zlib-shared",
"bzip2-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:94a7c57b0b5b75129f5481361c9a395acd1e253293c75ce041c69b4f9f4e4dc1",
"hash": "b3:9c5eac9263563cbf359ba7c0e6bb6346747a46a6172baa3de8842df6f6ada829",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"zathura-pdf-poppler": {
"iname": "zathura-pdf-poppler",
"version": "2026.07.18",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"meson",
"samurai",
"python3",
"pkgconf",
"linux-headers",
"zathura",
"girara",
"poppler-glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"libffi",
"zlib",
"freetype-shared",
"fontconfig-shared",
"expat",
"lcms2",
"libjpeg-turbo-shared",
"libpng-shared",
"zlib-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:ef4062c5a1a5f9b2c8190b4d7d5576afa2a7485f3c7329366dd73d3360d88231",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 0
},
"zellij": {
@@ -22294,7 +22421,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 102
"dependientes_total": 104
},
"zlib-ng": {
"iname": "zlib-ng",
@@ -22333,7 +22460,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 75
"dependientes_total": 80
},
"zola": {
"iname": "zola",
+236 -81
View File
@@ -1,27 +1,23 @@
{
"schema": "hammer-build-state/1",
"totals": {
"recipes": 827,
"nodes": 828,
"sealed": 826,
"never": 1,
"recipes": 831,
"nodes": 832,
"sealed": 831,
"ajeno": 1
},
"by_class": {
"ajeno": 1,
"c": 196,
"c": 199,
"go": 362,
"gui": 34,
"gui": 35,
"kernel": 6,
"rust": 229
},
"debt_by_class": {
"c": 1
},
"debt_by_class": {},
"by_queue": {
"corpus": {
"sealed": 811,
"never": 1,
"sealed": 816,
"ajeno": 1
},
"incoming-wlr": {
@@ -45,12 +41,12 @@
"sealed": 33
},
"escritorio-sway": {
"raices": 64,
"clausura": 151,
"sealed": 151
"raices": 67,
"clausura": 170,
"sealed": 170
}
},
"sin_perfil": 653,
"sin_perfil": 645,
"orphan_deps": [],
"topo_ok": true,
"nodes": {
@@ -1151,6 +1147,27 @@
"perfiles": [],
"dependientes_total": 10
},
"bzip2-shared": {
"iname": "bzip2-shared",
"version": "1.0.8",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"pkgconf"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:1e404254499a9fdb26185c95a4d3cd112c89cc7e065540fb465fbe104805f8c4",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"ca-certificates": {
"iname": "ca-certificates",
"version": "20260611",
@@ -1216,11 +1233,13 @@
"hash": "b3:1b222392a90a7c416cc9ea8a5a30dc9aa49ba44031651954566e26ae0e0c8774",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 16
"dependientes_total": 17
},
"caligula": {
"iname": "caligula",
@@ -3570,7 +3589,7 @@
"hash": "b3:117ee7e8fd5a41bd936d723c72c95cd3f8290292b52ba8088cc0701be170597b",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"base",
"cli",
@@ -3580,7 +3599,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 64
"dependientes_total": 65
},
"expat-shared": {
"iname": "expat-shared",
@@ -3820,7 +3839,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"filebrowser": {
@@ -3976,11 +3999,13 @@
"hash": "b3:3031ef0098201d2d302f431a283cfe397e74da20c21b026591a59e2200e5f955",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 14
"dependientes_total": 15
},
"foot": {
"iname": "foot",
@@ -4093,11 +4118,13 @@
"hash": "b3:80b5c5f06b0756b876178e54b47e280bdc32e7dc926605a8d8b059697dc48d1a",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 16
"dependientes_total": 17
},
"freeze": {
"iname": "freeze",
@@ -4478,8 +4505,12 @@
"hash": "b3:f2c0db0a09e4d5dbfa623bbdc39bb91a1f315aa1e062874d66b24e655bbe8e12",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"perfiles": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"git": {
@@ -4853,14 +4884,41 @@
"hash": "b3:74ade6a67d6a0938d6cba154d2a3d06e647efd872bdc02ada0860214c7b321c4",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 31
"dependientes_total": 28
},
"glib-shared": {
"iname": "glib-shared",
"version": "2.88.1",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"meson",
"samurai",
"python3",
"pkgconf",
"libffi",
"pcre2-shared",
"zlib-shared"
],
"cls": "gui",
"queue": "corpus",
"hash": "b3:c3810d3b23e6fb1d8dc6874ddf229f648e3039c5725d5d70035f250394d5dd96",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 4
},
"glow": {
"iname": "glow",
@@ -5682,7 +5740,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 8
},
"grcov": {
@@ -5870,7 +5932,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 7
},
"gtk4-hello": {
@@ -6902,7 +6968,9 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
@@ -7798,9 +7866,13 @@
"hash": "b3:955a60f3fb0eb87c51d39a8d97c1133a85bd2600ded5b1a46f94953dfc74e01c",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"perfiles": [],
"dependientes_total": 2
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 3
},
"lefthook": {
"iname": "lefthook",
@@ -8110,8 +8182,10 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-kde"
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 17
},
@@ -8169,7 +8243,7 @@
"hash": "b3:1df7e7a3eac63694f8d094646cfc231f3843995f6f9f945cda138760f6bc9838",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
@@ -8177,7 +8251,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 105
"dependientes_total": 107
},
"libffi-shared": {
"iname": "libffi-shared",
@@ -8308,11 +8382,13 @@
"hash": "b3:afc8000655fb31cc2204fb24be2bded107dea7810ddc18159fc9a6b22bf6939e",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 15
"dependientes_total": 16
},
"libksba": {
"iname": "libksba",
@@ -8444,11 +8520,13 @@
"hash": "b3:761a6a9f25f59fa351663d574ae527d6a100aed86eef6ea2ef77a8e8ce628f6f",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 22
"dependientes_total": 23
},
"libsass": {
"iname": "libsass",
@@ -8879,7 +8957,7 @@
"hash": "b3:fd14c9c4d0081fd44503cbc762e8865413c240097448c5b1be236a285ea811b5",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"base",
"cli",
@@ -9542,7 +9620,7 @@
"hash": "b3:6564ae63c23ca73b0738e0708dfde01cf965ff9bd1c5950d7376fa1659fd5058",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"base",
"cli",
@@ -9552,7 +9630,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 121
"dependientes_total": 122
},
"micro": {
"iname": "micro",
@@ -10770,6 +10848,8 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 9
@@ -10879,7 +10959,7 @@
"hash": "b3:c4930964fbaf4f33365e6eb8d7e6069ae3056b5796fca83d254bee2a88a341bc",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"base",
"cli",
@@ -10888,7 +10968,28 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 79
"dependientes_total": 76
},
"pcre2-shared": {
"iname": "pcre2-shared",
"version": "10.47",
"link": "dynamic",
"compiler": "gcc",
"deps": [
"zlib-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:a92e924a4d25b7dd42a02411518367a1905463c5cc3165f5fbdfb5925aa877ec",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 5
},
"peco": {
"iname": "peco",
@@ -11085,7 +11186,7 @@
"hash": "b3:22f640e209a9559d193a99563fff6378dc92c8f7f6a44be935172c8f4f7ecb0a",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
@@ -11093,7 +11194,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 37
"dependientes_total": 38
},
"pkgconf": {
"iname": "pkgconf",
@@ -11106,7 +11207,7 @@
"hash": "b3:cfb6a37eb990fb001dd66d5c2103e80cfa858b49aaa60a397ba0356830cc09b4",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"base",
"cli",
@@ -11116,7 +11217,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 380
"dependientes_total": 383
},
"plow": {
"iname": "plow",
@@ -11230,10 +11331,10 @@
"pkgconf",
"gettext-tiny",
"gperf",
"glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"pcre2",
"libffi",
"freetype-shared",
"fontconfig-shared",
@@ -11245,12 +11346,49 @@
],
"cls": "gui",
"queue": "corpus",
"hash": "b3:ef5256e7be3b77cf9ca746e3d3cda38a555630f87974ae66b1b2cd4d455d043e",
"hash": "b3:fb5186f90d755cfe8bfe863f5440d0494483968706ef0de84c7c05426ce5cc76",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"poppler-render-check": {
"iname": "poppler-render-check",
"version": "25.02.0",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"pkgconf",
"python3",
"poppler-glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"libffi",
"zlib",
"zlib-shared",
"bzip2-shared",
"freetype-shared",
"fontconfig-shared",
"expat",
"lcms2",
"libjpeg-turbo-shared",
"libpng-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:0d29dc69792df003726252fbc381a0133df7654daafccf547f8d5a82e526c1fe",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 1
"dependientes_total": 0
},
"prek": {
"iname": "prek",
@@ -11470,7 +11608,7 @@
"hash": "b3:ff5cf5e5080f20587b26946d0dfff36a58c9096d30eace4ae9cece24594d171e",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"base",
"cli",
@@ -11480,7 +11618,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 292
"dependientes_total": 294
},
"qrcp": {
"iname": "qrcp",
@@ -12025,7 +12163,7 @@
"hash": "b3:2f75c0e225a60fd56f7e415b7a739a461c97695c2e3f015c9af576d8a4a2492c",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"base",
"cli",
@@ -12035,7 +12173,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 255
"dependientes_total": 256
},
"sassc": {
"iname": "sassc",
@@ -12663,9 +12801,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 3
"dependientes_total": 4
},
"ssh-vault": {
"iname": "ssh-vault",
@@ -15028,7 +15168,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"xz": {
@@ -15195,8 +15339,10 @@
"xxhash",
"json-glib",
"file",
"sqlite",
"gtk4",
"glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pango",
"gdk-pixbuf",
@@ -15217,16 +15363,21 @@
"libjpeg-turbo",
"libtiff",
"libffi",
"pcre2",
"zlib"
"zlib",
"zlib-shared",
"bzip2-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:94a7c57b0b5b75129f5481361c9a395acd1e253293c75ce041c69b4f9f4e4dc1",
"hash": "b3:9c5eac9263563cbf359ba7c0e6bb6346747a46a6172baa3de8842df6f6ada829",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"perfiles": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"zathura-pdf-poppler": {
@@ -15243,10 +15394,10 @@
"zathura",
"girara",
"poppler-glib",
"glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"pcre2",
"libffi",
"zlib",
"freetype-shared",
@@ -15259,11 +15410,15 @@
],
"cls": "c",
"queue": "corpus",
"hash": "b3:c237623b144e8f373d414f5ba8e20340d7b875387b555c11b2f263584d132013",
"state": "never",
"hash": "b3:ef4062c5a1a5f9b2c8190b4d7d5576afa2a7485f3c7329366dd73d3360d88231",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 0
},
"zellij": {
@@ -15327,7 +15482,7 @@
"hash": "b3:dc363f261a71239412f6090e50e8abc0c7f6e544ccefa48c5ee5f47d26e84ef3",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"base",
"cli",
@@ -15337,7 +15492,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 103
"dependientes_total": 104
},
"zlib-ng": {
"iname": "zlib-ng",
@@ -15369,14 +15524,14 @@
"hash": "b3:b7d5397b96fc080a6e4ee9a19f5ea5ee32a63148ef87c63c795955676c5f344f",
"state": "sealed",
"blocked_by": [],
"unblocks": 1,
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 76
"dependientes_total": 80
},
"zola": {
"iname": "zola",
+247 -49
View File
@@ -1,23 +1,23 @@
{
"schema": "hammer-build-state/1",
"totals": {
"recipes": 812,
"nodes": 813,
"sealed": 812,
"recipes": 817,
"nodes": 818,
"sealed": 817,
"ajeno": 1
},
"by_class": {
"ajeno": 1,
"c": 181,
"c": 185,
"go": 362,
"gui": 34,
"gui": 35,
"kernel": 6,
"rust": 229
},
"debt_by_class": {},
"by_queue": {
"corpus": {
"sealed": 812,
"sealed": 817,
"ajeno": 1
}
},
@@ -38,7 +38,7 @@
"sealed": 33
}
},
"sin_perfil": 652,
"sin_perfil": 645,
"orphan_deps": [],
"topo_ok": true,
"nodes": {
@@ -1139,6 +1139,27 @@
"perfiles": [],
"dependientes_total": 10
},
"bzip2-shared": {
"iname": "bzip2-shared",
"version": "1.0.8",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"pkgconf"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:1e404254499a9fdb26185c95a4d3cd112c89cc7e065540fb465fbe104805f8c4",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"ca-certificates": {
"iname": "ca-certificates",
"version": "20260611",
@@ -1206,9 +1227,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 15
"dependientes_total": 17
},
"caligula": {
"iname": "caligula",
@@ -3551,7 +3574,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 63
"dependientes_total": 65
},
"expat-shared": {
"iname": "expat-shared",
@@ -3791,7 +3814,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"filebrowser": {
@@ -3949,9 +3976,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 13
"dependientes_total": 15
},
"foot": {
"iname": "foot",
@@ -4066,9 +4095,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 15
"dependientes_total": 17
},
"freeze": {
"iname": "freeze",
@@ -4239,7 +4270,9 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 9
},
@@ -4409,8 +4442,12 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 1
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"git": {
"iname": "git",
@@ -4790,7 +4827,34 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 30
"dependientes_total": 28
},
"glib-shared": {
"iname": "glib-shared",
"version": "2.88.1",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"meson",
"samurai",
"python3",
"pkgconf",
"libffi",
"pcre2-shared",
"zlib-shared"
],
"cls": "gui",
"queue": "corpus",
"hash": "b3:c3810d3b23e6fb1d8dc6874ddf229f648e3039c5725d5d70035f250394d5dd96",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 4
},
"glow": {
"iname": "glow",
@@ -5612,7 +5676,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 8
},
"grcov": {
@@ -5770,7 +5838,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 7
},
"gtk4-hello": {
@@ -6783,7 +6855,9 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
@@ -7680,8 +7754,12 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"dependientes_total": 1
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 3
},
"lefthook": {
"iname": "lefthook",
@@ -7968,8 +8046,10 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-kde"
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 17
},
@@ -8035,7 +8115,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 104
"dependientes_total": 107
},
"libffi-shared": {
"iname": "libffi-shared",
@@ -8168,9 +8248,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 14
"dependientes_total": 16
},
"libksba": {
"iname": "libksba",
@@ -8304,9 +8386,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 21
"dependientes_total": 23
},
"libsass": {
"iname": "libsass",
@@ -8746,7 +8830,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 34
"dependientes_total": 35
},
"linux-metal": {
"iname": "linux-metal",
@@ -9410,7 +9494,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 120
"dependientes_total": 122
},
"micro": {
"iname": "micro",
@@ -10628,6 +10712,8 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 9
@@ -10746,7 +10832,28 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 78
"dependientes_total": 76
},
"pcre2-shared": {
"iname": "pcre2-shared",
"version": "10.47",
"link": "dynamic",
"compiler": "gcc",
"deps": [
"zlib-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:a92e924a4d25b7dd42a02411518367a1905463c5cc3165f5fbdfb5925aa877ec",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 5
},
"peco": {
"iname": "peco",
@@ -10951,7 +11058,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 36
"dependientes_total": 38
},
"pkgconf": {
"iname": "pkgconf",
@@ -10974,7 +11081,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 379
"dependientes_total": 383
},
"plow": {
"iname": "plow",
@@ -11088,10 +11195,10 @@
"pkgconf",
"gettext-tiny",
"gperf",
"glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"pcre2",
"libffi",
"freetype-shared",
"fontconfig-shared",
@@ -11103,7 +11210,44 @@
],
"cls": "gui",
"queue": "corpus",
"hash": "b3:ef5256e7be3b77cf9ca746e3d3cda38a555630f87974ae66b1b2cd4d455d043e",
"hash": "b3:fb5186f90d755cfe8bfe863f5440d0494483968706ef0de84c7c05426ce5cc76",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 2
},
"poppler-render-check": {
"iname": "poppler-render-check",
"version": "25.02.0",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"pkgconf",
"python3",
"poppler-glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"libffi",
"zlib",
"zlib-shared",
"bzip2-shared",
"freetype-shared",
"fontconfig-shared",
"expat",
"lcms2",
"libjpeg-turbo-shared",
"libpng-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:0d29dc69792df003726252fbc381a0133df7654daafccf547f8d5a82e526c1fe",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
@@ -11338,7 +11482,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 291
"dependientes_total": 294
},
"qrcp": {
"iname": "qrcp",
@@ -11893,7 +12037,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 254
"dependientes_total": 256
},
"sassc": {
"iname": "sassc",
@@ -12482,9 +12626,11 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-gnome"
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 3
"dependientes_total": 4
},
"ssh-vault": {
"iname": "ssh-vault",
@@ -14601,7 +14747,11 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"xz": {
@@ -14725,8 +14875,10 @@
"xxhash",
"json-glib",
"file",
"sqlite",
"gtk4",
"glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pango",
"gdk-pixbuf",
@@ -14747,16 +14899,62 @@
"libjpeg-turbo",
"libtiff",
"libffi",
"pcre2",
"zlib"
"zlib",
"zlib-shared",
"bzip2-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:94a7c57b0b5b75129f5481361c9a395acd1e253293c75ce041c69b4f9f4e4dc1",
"hash": "b3:9c5eac9263563cbf359ba7c0e6bb6346747a46a6172baa3de8842df6f6ada829",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [],
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 1
},
"zathura-pdf-poppler": {
"iname": "zathura-pdf-poppler",
"version": "2026.07.18",
"link": "dynamic",
"compiler": "zig-cc",
"deps": [
"meson",
"samurai",
"python3",
"pkgconf",
"linux-headers",
"zathura",
"girara",
"poppler-glib",
"glib-shared",
"pcre2-shared",
"cairo",
"pixman",
"libffi",
"zlib",
"freetype-shared",
"fontconfig-shared",
"expat",
"lcms2",
"libjpeg-turbo-shared",
"libpng-shared",
"zlib-shared"
],
"cls": "c",
"queue": "corpus",
"hash": "b3:ef4062c5a1a5f9b2c8190b4d7d5576afa2a7485f3c7329366dd73d3360d88231",
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
"perfiles": [
"escritorio-cosmic",
"escritorio-gnome",
"escritorio-sway"
],
"dependientes_total": 0
},
"zellij": {
@@ -14830,7 +15028,7 @@
"escritorio-mirada",
"escritorio-sway"
],
"dependientes_total": 102
"dependientes_total": 104
},
"zlib-ng": {
"iname": "zlib-ng",
@@ -14869,7 +15067,7 @@
"escritorio-kde",
"escritorio-sway"
],
"dependientes_total": 75
"dependientes_total": 80
},
"zola": {
"iname": "zola",
+81 -4
View File
@@ -98,7 +98,14 @@ paquetes = [
# para `sway`, sólo que ahí se encontró a mano al armar la imagen y estas tres nunca se revisaron.
# Van de raíces (y no de `[deps]`) por lo mismo que las fuentes y el XKB: son data de RUNTIME y
# nadie las declara como dep de BUILD, así que la clausura no puede alcanzarlas por ninguna arista.
"expat-shared", "libffi-shared",
# `bzip2-shared` se suma el 2026-09-03, cazada por `scripts/vigia-sonames.py` en los TRES perfiles
# a la vez: `freetype-shared` sale con `NEEDED libbz2.so.1` y el `bzip2` canónico del corpus es
# `.a`. Es la misma fuga al sysroot del lab que expat y libffi, y venía de antes que zathura —
# sólo que hasta ahora nadie cargaba freetype-shared en RUNTIME. Se vio de verdad al probar el
# visor: el plugin de PDF no hacía dlopen («Error relocating /usr/lib/libbz2.so.1»). La receta
# existía sólo en `incoming-kde`; promovida al corpus con el mismo hash (b3:1e404254 desde las dos
# partes ⇒ un solo artefacto, cero rebuilds).
"expat-shared", "libffi-shared", "bzip2-shared",
]
[perfil.escritorio-gnome]
@@ -146,6 +153,18 @@ paquetes = [
# ninguna cola. swayimg rasteriza a `wl_shm` y no toca GL; el porqué largo está en su receta.
# Trae de yapa backend DRM: muestra imágenes en una TTY pelada, sin compositor.
"swayimg",
# ── LECTOR DE DOCUMENTOS ─────────────────────────────────────────────────────────────────────
# ⚠ NO ESTÁ EN `escritorio-kde`, y no es un olvido. `zathura-pdf-poppler` necesita `poppler-glib`,
# que es una receta NUEVA del corpus (la que ya existía va `-DENABLE_GLIB=OFF` y vive en la cola
# de KDE). Las dos instalan `/usr/lib/libpoppler.so.146` y son artefactos DISTINTOS ⇒ una imagen
# que hidrate las dos pone dos ficheros en la misma ruta y gana el que se proyecte último, que es
# el cuadro de las dos glib. KDE ya trae `okular`, que arrastra la poppler de Qt6.
# Si alguna vez se quiere zathura en KDE, la salida NO es listarla acá: es jubilar una de las dos
# popplers. Escrito también en `recipes/poppler-glib.toml` y `recipes/zathura.toml`.
# El plugin va de raíz APARTE del visor a propósito: `zathura` no lo declara en `[deps]` de
# runtime —lo carga con dlopen— así que sin esta línea la imagen traería un visor que abre la
# ventana y dice «unknown file type». Sellado ≠ instalado, otra vez.
"zathura", "zathura-pdf-poppler",
# ── LAS `.so` QUE mesa Y wayland PIDEN EN RUNTIME Y NINGÚN ARTEFACTO DEL CIERRE PROVEE ────────
# Medido el 2026-09-03 recorriendo los NEEDED de todo el cierre de esta imagen contra los SONAME
# que ese mismo cierre publica: `libEGL.so.1` pide `libexpat.so.1` y `libwayland-client.so.0` pide
@@ -157,7 +176,27 @@ paquetes = [
# para `sway`, sólo que ahí se encontró a mano al armar la imagen y estas tres nunca se revisaron.
# Van de raíces (y no de `[deps]`) por lo mismo que las fuentes y el XKB: son data de RUNTIME y
# nadie las declara como dep de BUILD, así que la clausura no puede alcanzarlas por ninguna arista.
"expat-shared", "libffi-shared",
# `bzip2-shared` se suma el 2026-09-03, cazada por `scripts/vigia-sonames.py` en los TRES perfiles
# a la vez: `freetype-shared` sale con `NEEDED libbz2.so.1` y el `bzip2` canónico del corpus es
# `.a`. Es la misma fuga al sysroot del lab que expat y libffi, y venía de antes que zathura —
# sólo que hasta ahora nadie cargaba freetype-shared en RUNTIME. Se vio de verdad al probar el
# visor: el plugin de PDF no hacía dlopen («Error relocating /usr/lib/libbz2.so.1»). La receta
# existía sólo en `incoming-kde`; promovida al corpus con el mismo hash (b3:1e404254 desde las dos
# partes ⇒ un solo artefacto, cero rebuilds).
# ── FUENTES ──────────────────────────────────────────────────────────────────────────────────
# ⚠ Añadida el 2026-09-03 porque este perfil no traía NI UN FICHERO DE FUENTE. Medido recorriendo
# los artefactos del cierre y contando `.ttf/.otf/.ttc/.pfb`: **gnome=0**, sway=22 (dejavu),
# kde=1 (una que viene dentro de qtbase). `fontconfig` estaba, pero fontconfig es el MOTOR que
# busca fuentes, no una fuente — tenerlo y creer que hay tipografía es el mismo error que
# confundir un directorio vacío con un artefacto.
# Se descubrió con `poppler-render-check`: un PDF con fuentes base-14 (Helvetica, Times…) NO
# trae la tipografía adentro, la sustituye el visor por fontconfig, así que sin fuentes el
# documento se ve VACÍO — y el visor no da error, que es lo peor.
# `dejavu-fonts` es la única receta de fuentes del catálogo entero. Que KDE esté igual (1 fuente
# de rebote, dentro de qtbase) es un hallazgo aparte y NO se toca acá: ese perfil no lleva zathura
# y su árbol lo está trabajando otro frente.
"dejavu-fonts",
"expat-shared", "libffi-shared", "bzip2-shared",
]
[perfil.escritorio-cosmic]
@@ -246,6 +285,18 @@ paquetes = [
# ninguna cola. swayimg rasteriza a `wl_shm` y no toca GL; el porqué largo está en su receta.
# Trae de yapa backend DRM: muestra imágenes en una TTY pelada, sin compositor.
"swayimg",
# ── LECTOR DE DOCUMENTOS ─────────────────────────────────────────────────────────────────────
# ⚠ NO ESTÁ EN `escritorio-kde`, y no es un olvido. `zathura-pdf-poppler` necesita `poppler-glib`,
# que es una receta NUEVA del corpus (la que ya existía va `-DENABLE_GLIB=OFF` y vive en la cola
# de KDE). Las dos instalan `/usr/lib/libpoppler.so.146` y son artefactos DISTINTOS ⇒ una imagen
# que hidrate las dos pone dos ficheros en la misma ruta y gana el que se proyecte último, que es
# el cuadro de las dos glib. KDE ya trae `okular`, que arrastra la poppler de Qt6.
# Si alguna vez se quiere zathura en KDE, la salida NO es listarla acá: es jubilar una de las dos
# popplers. Escrito también en `recipes/poppler-glib.toml` y `recipes/zathura.toml`.
# El plugin va de raíz APARTE del visor a propósito: `zathura` no lo declara en `[deps]` de
# runtime —lo carga con dlopen— así que sin esta línea la imagen traería un visor que abre la
# ventana y dice «unknown file type». Sellado ≠ instalado, otra vez.
"zathura", "zathura-pdf-poppler",
# ── LAS `.so` QUE mesa Y wayland PIDEN EN RUNTIME Y NINGÚN ARTEFACTO DEL CIERRE PROVEE ────────
# Medido el 2026-09-03 recorriendo los NEEDED de todo el cierre de esta imagen contra los SONAME
# que ese mismo cierre publica: `libEGL.so.1` pide `libexpat.so.1` y `libwayland-client.so.0` pide
@@ -257,7 +308,14 @@ paquetes = [
# para `sway`, sólo que ahí se encontró a mano al armar la imagen y estas tres nunca se revisaron.
# Van de raíces (y no de `[deps]`) por lo mismo que las fuentes y el XKB: son data de RUNTIME y
# nadie las declara como dep de BUILD, así que la clausura no puede alcanzarlas por ninguna arista.
"expat-shared", "libffi-shared",
# `bzip2-shared` se suma el 2026-09-03, cazada por `scripts/vigia-sonames.py` en los TRES perfiles
# a la vez: `freetype-shared` sale con `NEEDED libbz2.so.1` y el `bzip2` canónico del corpus es
# `.a`. Es la misma fuga al sysroot del lab que expat y libffi, y venía de antes que zathura —
# sólo que hasta ahora nadie cargaba freetype-shared en RUNTIME. Se vio de verdad al probar el
# visor: el plugin de PDF no hacía dlopen («Error relocating /usr/lib/libbz2.so.1»). La receta
# existía sólo en `incoming-kde`; promovida al corpus con el mismo hash (b3:1e404254 desde las dos
# partes ⇒ un solo artefacto, cero rebuilds).
"expat-shared", "libffi-shared", "bzip2-shared",
]
[perfil.escritorio-sway]
@@ -305,7 +363,14 @@ paquetes = [
# wayland-server, wlroots, xkbcommon, libc) sí los cubre la clausura, porque esas recetas ya son
# `link = dynamic`. Como las tres son data de runtime y nadie las declara como dep de BUILD, van
# de raíces por la misma razón que las fuentes y el XKB de arriba.
"zlib-shared", "expat-shared", "libffi-shared",
# `bzip2-shared` se suma el 2026-09-03, cazada por `scripts/vigia-sonames.py` en los TRES perfiles
# a la vez: `freetype-shared` sale con `NEEDED libbz2.so.1` y el `bzip2` canónico del corpus es
# `.a`. Es la misma fuga al sysroot del lab que expat y libffi, y venía de antes que zathura —
# sólo que hasta ahora nadie cargaba freetype-shared en RUNTIME. Se vio de verdad al probar el
# visor: el plugin de PDF no hacía dlopen («Error relocating /usr/lib/libbz2.so.1»). La receta
# existía sólo en `incoming-kde`; promovida al corpus con el mismo hash (b3:1e404254 desde las dos
# partes ⇒ un solo artefacto, cero rebuilds).
"zlib-shared", "expat-shared", "libffi-shared", "bzip2-shared",
"swaybg", # fondo de escritorio
"swaylock", # bloqueo de pantalla (con PAM: linux-pam SÍ está en el corpus)
"swayidle", # apagado por inactividad
@@ -328,6 +393,18 @@ paquetes = [
# ninguna cola. swayimg rasteriza a `wl_shm` y no toca GL; el porqué largo está en su receta.
# Trae de yapa backend DRM: muestra imágenes en una TTY pelada, sin compositor.
"swayimg",
# ── LECTOR DE DOCUMENTOS ─────────────────────────────────────────────────────────────────────
# ⚠ NO ESTÁ EN `escritorio-kde`, y no es un olvido. `zathura-pdf-poppler` necesita `poppler-glib`,
# que es una receta NUEVA del corpus (la que ya existía va `-DENABLE_GLIB=OFF` y vive en la cola
# de KDE). Las dos instalan `/usr/lib/libpoppler.so.146` y son artefactos DISTINTOS ⇒ una imagen
# que hidrate las dos pone dos ficheros en la misma ruta y gana el que se proyecte último, que es
# el cuadro de las dos glib. KDE ya trae `okular`, que arrastra la poppler de Qt6.
# Si alguna vez se quiere zathura en KDE, la salida NO es listarla acá: es jubilar una de las dos
# popplers. Escrito también en `recipes/poppler-glib.toml` y `recipes/zathura.toml`.
# El plugin va de raíz APARTE del visor a propósito: `zathura` no lo declara en `[deps]` de
# runtime —lo carga con dlopen— así que sin esta línea la imagen traería un visor que abre la
# ventana y dice «unknown file type». Sellado ≠ instalado, otra vez.
"zathura", "zathura-pdf-poppler",
# ── GRABADOR DE PANTALLA — sólo acá, y la razón es de PROTOCOLO, no de gusto ──────────────────
# `wf-recorder` captura por `wlr-screencopy`, que implementan los compositores wlroots. KWin y
# mutter NO lo implementan (usan el portal/ScreenCast), así que ponerlo en esas dos imágenes
+32
View File
@@ -0,0 +1,32 @@
# bzip2-shared 1.0.8 — variante DINÁMICA (libbz2.so, PIC) para el escritorio KDE.
#
# El bzip2 canónico (recipes/bzip2.toml) sólo sella libbz2.a SIN -fPIC (cola static-musl del toolchain).
# Linkear ese .a dentro de un .so (libarchive.so/libzip.so) falla: "relocation R_X86_64_PC32 ... recompile
# with -fPIC". Como zlib-shared, esta variante sella el libbz2.so soberano vía el Makefile-libbz2_so del
# tarball (ya trae -fpic -fPIC, soname libbz2.so.1.0). Nombre distinto para no colisionar con el canónico.
name = "bzip2-shared"
version = "1.0.8"
license = "bzip2-1.0.6"
[source]
tarball = "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz"
sha256 = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
flags = []
[build.phases]
compile = 'make -f Makefile-libbz2_so CC="zig cc"'
install = '''
install -Dm644 bzlib.h /out/usr/include/bzlib.h
install -Dm755 libbz2.so.1.0.8 /out/usr/lib/libbz2.so.1.0.8
ln -sf libbz2.so.1.0.8 /out/usr/lib/libbz2.so.1.0
ln -sf libbz2.so.1.0.8 /out/usr/lib/libbz2.so.1
ln -sf libbz2.so.1.0 /out/usr/lib/libbz2.so
'''
[deps]
build = ["pkgconf"]
+33
View File
@@ -0,0 +1,33 @@
# glib-shared 2.88.1 — variante DINÁMICA (libglib-2.0.so.0 + libgobject/libgio/libgmodule/libgthread)
# para el escritorio KDE. El canónico (recipes/glib.toml) es `-Ddefault_library=static --prefer-static`
# (sólo .a) ⇒ no enlaza dentro de un .so. Es la **deuda Capa 0 "glib shared-PIC"** que el ADR 0011 arrastra
# desde plasma-workspace (se esquivó parcheando NetworkManagerQt a opcional).
#
# glib es foundational para el resto del escritorio: libnm (NetworkManager→plasma-nm), polkit (auth),
# xdg-desktop-portal, gstreamer. Esta variante lo destraba.
#
# Deps: libffi ya es PIC (--with-pic en el canónico, enlazable en .so) ⇒ no necesita variante.
# pcre2-shared SÍ (el pcre2 canónico no tiene --with-pic). zlib-shared por el libz.so versionado.
# Se conservan los switches del canónico (tests/nls/libmount/selinux/introspection off) para no arrastrar
# deps nuevas; sólo cambia el modo de librería.
name = "glib-shared"
version = "2.88.1"
license = "LGPL-2.1-or-later"
[source]
tarball = "https://download.gnome.org/sources/glib/2.88/glib-2.88.1.tar.xz"
sha256 = "51ab804c56f6eab3e5045c774d1290ac5e4c923d4f9a3d8e33123bee45c1840e"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
flags = []
[build.phases]
configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Ddefault_library=shared -Dtests=false -Dnls=disabled -Dlibmount=disabled -Dselinux=disabled -Dman-pages=disabled -Dintrospection=disabled -Dglib_debug=disabled -Dglib_assert=false -Dglib_checks=false"
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"
[deps]
build = ["meson", "samurai", "python3", "pkgconf", "libffi", "pcre2-shared", "zlib-shared"]
+27
View File
@@ -0,0 +1,27 @@
# lcms2 2.16 — Little-CMS, motor de gestión de color (liblcms2.so). Campaña KDE (ADR 0011): sustrato de
# kwin (find_package(lcms2) TYPE REQUIRED, color management del compositor). Autotools sobre zig-cc.
# Sólo el core: --without-jpeg/--without-tiff (esas deps sólo las usan los ejemplos, no la lib).
name = "lcms2"
version = "2.16"
license = "MIT"
[source]
tarball = "https://github.com/mm2/Little-CMS/releases/download/lcms2.16/lcms2-2.16.tar.gz"
sha256 = "d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
zig_version = "0.13.0"
[build.phases]
configure = '''
PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig \
./configure --build=$CBUILD --host=$CHOST --prefix=/usr --disable-static --without-jpeg --without-tiff
'''
compile = "make -j\"$(nproc)\""
install = "make install DESTDIR=/out && find /out -name '*.la' -delete"
[deps]
build = ["pkgconf", "python3"]
+36
View File
@@ -0,0 +1,36 @@
# pcre2-shared 10.47 — variante DINÁMICA (libpcre2-8.so.0, PIC) para el escritorio KDE.
# El canónico (recipes/pcre2.toml) es --disable-shared SIN --with-pic ⇒ su .a no enlaza dentro de un .so.
# Lo exige glib-shared (libglib-2.0.so linkea pcre2 para GRegex). Deuda Capa 0 (static↔dinámico).
#
# compiler=gcc igual que el canónico: su comentario advierte que zig-cc MISCOMPILA libs C (patrón file/jq);
# el gcc del rootfs es musl, y el .so resultante es ABI-compatible con los consumidores zig.
# --disable-symvers como el canónico (musl no maneja symbol versioning de la forma que asume pcre2).
name = "pcre2-shared"
version = "10.47"
[source]
tarball = "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.47/pcre2-10.47.tar.bz2"
sha256 = "47fe8c99461250d42f89e6e8fdaeba9da057855d06eb7fc08d9ca03fd08d7bc7"
[build]
compiler = "gcc"
target = "x86_64-linux-musl"
link = "dynamic"
flags = []
[build.phases]
compile = '''
./configure \
--build=$CBUILD --host=$CHOST \
--prefix=/usr \
--enable-shared --disable-static \
--enable-pcre2-16 --enable-pcre2-32 \
--enable-jit \
--enable-pcre2grep-libz \
--disable-symvers
make -j"$(nproc)"
'''
install = "make DESTDIR=/out install && find /out -name '*.la' -delete"
[deps]
build = ["zlib-shared"]
+130
View File
@@ -0,0 +1,130 @@
# poppler 25.02.0, frontend GLIB — el motor de PDF del corpus. Es el backend de `zathura`.
#
# ══ POR QUÉ UNA SEGUNDA POPPLER, Y CUÁL ES EL PELIGRO ══════════════════════════════════════════
# Ya existe `incoming-kde/poppler`, pero no sirve acá por DOS razones independientes, y las dos
# hacen falta para justificar la variante:
# 1. **Va `-DENABLE_GLIB=OFF`** ⇒ publica `libpoppler.so` y `poppler.pc` pero NO `poppler-glib`,
# que es contra lo que se escribe un backend de zathura. Medido con `scripts/provee.py`, no
# supuesto: `poppler-glib` no lo publica NADIE en ninguna cola.
# 2. **Vive en una cola** ⇒ una receta del corpus no la alcanza (sibling-first, después el padre,
# nunca una cola hermana).
# Y no se puede arreglar encendiendo GLIB allá: esa receta trae Qt6 y todo X11 en sus `[deps]`, que
# es exactamente lo que el corpus no puede ni quiere.
#
# ⚠ **PELIGRO REAL, escrito para que no se descubra en una imagen: las dos instalan
# `/usr/lib/libpoppler.so.146`.** Mientras cada una la resuelva su propia cola no pasa nada —el
# hash decide, y son artefactos DISTINTOS—, pero una imagen que hidrate las dos pone dos ficheros
# distintos en la misma ruta y gana el que se proyecte último. Es el cuadro de las dos glib.
# Por eso `zathura` NO se declara en el perfil `escritorio-kde`: esa imagen ya trae `okular`, que
# arrastra la poppler de Qt6. Si alguna vez se quiere zathura en KDE, la salida NO es listarla: es
# jubilar una de las dos popplers. Ver el comentario de `zathura` en `targets.toml`.
#
# ══ QUÉ QUEDA APAGADO Y QUÉ SE PIERDE ══════════════════════════════════════════════════════════
# Mismo recorte que la de KDE, con los frontends dados vuelta: GLIB ON, QT5/QT6/CPP/UTILS OFF.
# `ENABLE_LIBOPENJPEG=none` ⇒ las imágenes JPEG2000 DENTRO de un PDF no renderizan (el resto sí);
# no hay receta `openjpeg` y no vale abrir una campaña por eso. NSS3/GPGME OFF ⇒ no se verifican
# firmas de PDF. LIBCURL OFF ⇒ no se abren PDF por URL. LIBTIFF OFF, BOOST OFF (sólo perf de Splash).
# `ENABLE_GOBJECT_INTROSPECTION=OFF`: acá nadie introspecta: zathura es C que enlaza y ya, y traerla
# metería la maquinaria de GNOME en la clausura de las cuatro imágenes. Mismo criterio que json-glib.
#
# El sustrato son las variantes `-shared` porque esto produce `.so`: el `.a` canónico de freetype y
# fontconfig no enlaza dentro de una biblioteca compartida. `cairo` sí entra desde el `.a` del
# corpus, y no es por suerte — se midió: `readelf -r libcairo.a` da CERO `R_X86_64_32` fuera de las
# secciones `.debug_*`, o sea que es reubicable. (Contar sin excluir `.debug` MIENTE; es la
# corrección que dejó escrita el frente de GNOME.)
#
# El wrapper `.zwrap` que filtra `-Wl,--fatal-warnings` es el mismo de la receta de KDE y por lo
# mismo: cmake se lo pasa al linker y zig cc convierte avisos benignos en errores.
#
# ══ ⚠ `glib-shared` Y NO `glib`, Y ES LA DECISIÓN QUE HACE FUNCIONAR TODO EL VISOR ═════════════
# Con la `glib` ESTÁTICA del corpus esto sella igual y zathura arranca — y al cargar el plugin de
# PDF escupe `GLib-GObject-CRITICAL: cannot register existing type 'gchar'` y no abre nada.
# Es el cuadro de las dos glib, en vivo y en su forma menos obvia: **no son dos ficheros en la misma
# ruta, son dos COPIAS ESTÁTICAS del sistema de tipos de GObject dentro del MISMO proceso.**
# El ejecutable trae la suya, `libpoppler-glib.so` trae la suya, y el `g_type_register_*` del
# segundo encuentra los tipos fundamentales ya registrados por el primero.
# Un `.a` no arrastra a sus deps —`libgtk-4.a`, `libcairo.a` y `libgirara.a` sólo tienen símbolos
# sin definir y se resuelven al ligar el ejecutable, así que ésos NO duplican nada—; el problema
# aparece únicamente cuando **dos objetos ENLAZADOS por separado** (un `.so` y el ejecutable que lo
# hace dlopen) meten cada uno su copia. Por eso la regla del repo se aplica al revés que de
# costumbre: acá lo correcto es compartir el SONAME `libglib-2.0.so.0`, y por eso esta receta y
# `zathura` y `zathura-pdf-poppler` declaran las TRES `glib-shared`. Si alguna vuelve a `glib`,
# el visor deja de abrir PDFs y el build no se entera.
#
# ══ ⚠ `-DENABLE_GLIB=ON` SE APAGA SOLO Y EL BUILD SALE OK — LA TRAMPA QUE COSTÓ UN CICLO ════════
# `CMakeLists.txt:260-261` hace `if(NOT CAIRO_FOUND) set(ENABLE_GLIB OFF)`. **No falla: obedece
# distinto.** El primer intento selló un artefacto con `libpoppler.so` y `poppler.pc` y NADA de
# glib, con exit 0 y sin un aviso a la vista. Es la figura de siempre: un ausente falla ruidosamente,
# un desviado llega hasta el final diciendo que todo fue bien.
#
# La causa era una línea que este repo ya tiene escrita como patrón y que igual se pasa por alto:
# **`.pc Requires` → `[deps].build`**. `cairo.pc` declara
# `Requires: zlib, libpng, fontconfig, freetype2, pixman-1`, y `pixman` NO estaba en `[deps]`.
# pkg-config resuelve `Requires` transitivamente, así que sin `pixman-1.pc` en el sandbox
# `pkg-config --exists cairo` da FALSO — y cairo estaba ahí, entera y PIC. Un `.pc` que falta a tres
# saltos de distancia apaga una FUNCIÓN, no una librería.
#
# Por eso el `install` termina comprobando que `poppler-glib.pc` y `libpoppler-glib.so` existan.
# No es paranoia: es el único punto donde este modo de fallar se puede ver. Si alguien toca las
# `[deps]` y vuelve a romper la cadena de pkg-config, el build muere acá en vez de sellar un
# artefacto que le miente a `zathura`.
name = "poppler-glib"
version = "25.02.0"
license = "GPL-2.0-or-later"
[source]
tarball = "https://poppler.freedesktop.org/poppler-25.02.0.tar.xz"
sha256 = "21234cb2a9647d73c752ce4031e65a79d11a511a835f2798284c2497b8701dee"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
flags = []
[build.phases]
configure = '''
ZW="$PWD/.zwrap"; mkdir -p "$ZW"
cat > "$ZW/cc" <<'W'
#!/bin/sh
a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
exec /opt/zig/zig cc -mcpu=baseline $a
W
cat > "$ZW/cxx" <<'W'
#!/bin/sh
a=""; for x in "$@"; do [ "$x" = "-Wl,--fatal-warnings" ] && continue; a="$a $x"; done
exec /opt/zig/zig c++ -mcpu=baseline $a
W
chmod +x "$ZW/cc" "$ZW/cxx"
cmake -B build -G Ninja -Wno-dev \
-DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" \
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=/usr \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF -DBUILD_SHARED_LIBS=ON \
-DENABLE_QT5=OFF -DENABLE_QT6=OFF -DENABLE_GLIB=ON -DENABLE_GOBJECT_INTROSPECTION=OFF \
-DENABLE_CPP=OFF -DENABLE_UTILS=OFF -DENABLE_BOOST=OFF \
-DENABLE_LIBOPENJPEG=none -DENABLE_DCTDECODER=libjpeg -DENABLE_LCMS=ON \
-DENABLE_LIBCURL=OFF -DENABLE_LIBTIFF=OFF -DENABLE_NSS3=OFF -DENABLE_GPGME=OFF \
-DBUILD_GTK_TESTS=OFF -DBUILD_QT5_TESTS=OFF -DBUILD_QT6_TESTS=OFF -DBUILD_CPP_TESTS=OFF \
-DBUILD_MANUAL_TESTS=OFF
'''
compile = "cmake --build build"
install = '''
set -e
DESTDIR=/out cmake --install build
# Ver la cabecera: sin esto, un cairo que pkg-config no encuentra sella una poppler SIN glib y el
# build reporta éxito. Se comprueba lo que esta receta EXISTE para producir.
test -f /out/usr/lib/pkgconfig/poppler-glib.pc || {
echo "ERROR: no se generó poppler-glib.pc — cmake apagó ENABLE_GLIB (¿CAIRO_FOUND falso?)" >&2
exit 1
}
test -e /out/usr/lib/libpoppler-glib.so || {
echo "ERROR: no se generó libpoppler-glib.so pese a existir el .pc" >&2
exit 1
}
'''
[deps]
build = ["cmake", "samurai", "python3", "pkgconf", "gettext-tiny", "gperf",
"glib-shared", "pcre2-shared", "cairo", "pixman", "libffi",
"freetype-shared", "fontconfig-shared", "expat", "lcms2",
"libjpeg-turbo-shared", "libpng-shared", "zlib-shared"]
+127
View File
@@ -0,0 +1,127 @@
# poppler-render-check — receta-TESTIGO del camino de PDF, en el espíritu de `gtk4-hello`:
# no aporta nada a ninguna imagen, prueba que la cadena SIRVE y no sólo que sella.
#
# ══ QUÉ PRUEBA, Y POR QUÉ HACÍA FALTA ══════════════════════════════════════════════════════════
# `zathura` es GTK4: sin compositor no abre ventana, así que «arranca» no se puede comprobar de la
# forma barata. Pero lo que de verdad importaba comprobar no es la ventana: es que
# **`poppler-glib` decodifique y RASTERICE**, que es exactamente el camino que recorre
# `zathura-pdf-poppler/render.c` — `poppler_document_new_from_file` → `poppler_page_render` sobre
# un surface de cairo. Eso sí se puede correr sin display, y es lo que hace este programa.
#
# Escribe un PDF mínimo A MANO (catálogo, páginas, una página con un rectángulo relleno Y texto
# Helvetica, más su xref), lo renderiza y comprueba tres cosas MEDIDAS, no un exit code:
# 1. que el documento abra y reporte 1 página de 200x100,
# 2. que la imagen tenga PÍXELES NEGROS — o sea que algo se DIBUJÓ. Sin esto, un render que
# devuelve un lienzo blanco pasa la prueba, que es el modo de fallar que este repo persigue
# (el mismo criterio que contar colores del PPM en el arranque de sway),
# 3. que el PNG salga y tenga cabecera PNG de verdad.
#
# ══ POR QUÉ EL ASSERT ES SOBRE UN RECTÁNGULO Y NO SOBRE EL TEXTO ═══════════════════════════════
# La primera versión de esta receta dibujaba SÓLO texto y **falló**, con `pixeles_oscuros=0` y un
# `some font thing failed` de poppler. No es un fallo de la cadena: es que el sandbox de build no
# tiene NI UNA FUENTE, y las «base-14» de PDF (Helvetica, Times…) no vienen dentro del documento —
# el visor tiene que sustituirlas por fontconfig. Un rectángulo no depende de eso, así que aísla lo
# que esta receta quiere probar (¿decodifica y rasteriza?) de lo que no le toca (¿hay fuentes?).
# El texto se dibuja igual y se INFORMA aparte, sin condicionar el veredicto — así queda a la vista
# si algún día el sandbox sí tiene fuentes.
#
# ⚠ **Y deja una consecuencia escrita para las imágenes:** un PDF con fuentes base-14 se ve VACÍO
# si la imagen no trae fuentes. Los tres perfiles que llevan zathura tienen que traerlas; no es
# problema de esta receta pero es donde se descubre.
#
# Reutiliza el tarball de poppler sólo como acarreo de `[source]`; ignora su árbol.
name = "poppler-render-check"
version = "25.02.0"
license = "GPL-2.0-or-later"
[source]
tarball = "https://poppler.freedesktop.org/poppler-25.02.0.tar.xz"
sha256 = "21234cb2a9647d73c752ce4031e65a79d11a511a835f2798284c2497b8701dee"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
[build.phases]
configure = "true"
compile = '''
set -e
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
cat > check.c <<'CEOF'
#include <poppler.h>
#include <cairo.h>
#include <stdio.h>
#include <string.h>
int main(void) {
GError *e = NULL;
char *uri = g_filename_to_uri("/src/prueba.pdf", NULL, &e);
PopplerDocument *doc = poppler_document_new_from_file(uri, NULL, &e);
if (!doc) { fprintf(stderr, "FALLO: no abre el PDF: %s\n", e ? e->message : "?"); return 1; }
int n = poppler_document_get_n_pages(doc);
PopplerPage *pg = poppler_document_get_page(doc, 0);
double w, h; poppler_page_get_size(pg, &w, &h);
printf("paginas=%d tamano=%.0fx%.0f\n", n, w, h);
if (n != 1 || (int)w != 200 || (int)h != 100) { fprintf(stderr, "FALLO: geometria inesperada\n"); return 1; }
cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, (int)w, (int)h);
cairo_t *cr = cairo_create(s);
cairo_set_source_rgb(cr, 1, 1, 1); cairo_paint(cr);
poppler_page_render(pg, cr);
cairo_destroy(cr);
cairo_surface_flush(s);
/* Tercera comprobacion: contar pixeles oscuros. Un lienzo blanco NO puede pasar. */
unsigned char *d = cairo_image_surface_get_data(s);
int stride = cairo_image_surface_get_stride(s), oscuros = 0;
for (int y = 0; y < (int)h; y++)
for (int x = 0; x < (int)w; x++) {
unsigned char *px = d + y * stride + x * 4;
if (px[0] < 100 && px[1] < 100 && px[2] < 100) oscuros++;
}
printf("pixeles_oscuros=%d\n", oscuros);
/* El rectangulo son 160x60 = 9600 px. Con la mitad ya esta probado que rasterizo. */
if (oscuros < 4000) { fprintf(stderr, "FALLO: se renderizo un lienzo vacio\n"); return 1; }
printf("texto_base14=%s (informativo: depende de que haya fuentes, no de esta cadena)\n",
oscuros > 9600 + 50 ? "si" : "no");
if (cairo_surface_write_to_png(s, "salida.png") != CAIRO_STATUS_SUCCESS) {
fprintf(stderr, "FALLO: no escribe PNG\n"); return 1;
}
printf("OK: poppler-glib abre, rasteriza y dibuja\n");
return 0;
}
CEOF
zig cc -mcpu=baseline check.c -o check $(pkg-config --cflags --libs poppler-glib cairo)
'''
install = '''
set -e
# El PDF de prueba se arma acá y no se versiona: son 583 bytes de estructura PDF a mano.
python3 - <<'PYEOF'
objs = [
b"<< /Type /Catalog /Pages 2 0 R >>",
b"<< /Type /Pages /Kids [3 0 R] /Count 1 >>",
b"<< /Type /Page /Parent 2 0 R /MediaBox [0 0 200 100] /Resources << /Font << /F1 5 0 R >> >> /Contents 4 0 R >>",
None,
b"<< /Type /Font /Subtype /Type1 /BaseFont /Helvetica >>",
]
# Rectangulo relleno (no depende de fuentes) + texto (si que depende). Ver la cabecera.
stream = b"0 0 0 rg 20 20 160 60 re f\nBT /F1 12 Tf 30 45 Td 1 1 1 rg (HAMMER OK) Tj ET"
objs[3] = b"<< /Length %d >>\nstream\n" % len(stream) + stream + b"\nendstream"
out = b"%PDF-1.4\n"; offs = []
for i, o in enumerate(objs, 1):
offs.append(len(out)); out += b"%d 0 obj\n" % i + o + b"\nendobj\n"
xref = len(out)
out += b"xref\n0 %d\n" % (len(objs) + 1) + b"0000000000 65535 f \n"
for off in offs: out += b"%010d 00000 n \n" % off
out += b"trailer\n<< /Size %d /Root 1 0 R >>\nstartxref\n%d\n%%%%EOF\n" % (len(objs) + 1, xref)
open("/src/prueba.pdf", "wb").write(out)
PYEOF
./check
head -c 8 salida.png | od -An -tx1 | grep -q "89 50 4e 47" || { echo "FALLO: el PNG no tiene cabecera PNG" >&2; exit 1; }
mkdir -p /out/usr/share/poppler-render-check
cp salida.png /out/usr/share/poppler-render-check/
'''
[deps]
build = ["pkgconf", "python3", "poppler-glib", "glib-shared", "pcre2-shared", "cairo", "pixman",
"libffi", "zlib", "zlib-shared", "bzip2-shared",
"freetype-shared", "fontconfig-shared", "expat", "lcms2",
"libjpeg-turbo-shared", "libpng-shared"]
+60
View File
@@ -0,0 +1,60 @@
# zathura-pdf-poppler 2026.07.18 — el backend de PDF de `zathura`. Sin esto, zathura abre la
# ventana y no muestra un solo documento: los formatos entran por `.so` que carga con gmodule desde
# `/usr/lib/zathura`, y ésta es la única receta que pone uno ahí.
#
# El `plugindir` NO se codifica: sale de `zathura.pc` (`zathura.get_variable(pkgconfig:'plugindir')`),
# así que las dos recetas no pueden desincronizarse. Por eso `zathura` va en `[deps]` aunque el
# plugin no enlace nada suyo: aporta el `.pc`, las cabeceras de `plugin-api.h` y esa variable.
#
# Los símbolos `zathura_*` que el plugin usa NO se resuelven en el link: los resuelve el dlopen
# contra el EJECUTABLE, que zathura liga con `export_dynamic: true`. Es normal y es por qué esto es
# un `shared_module` y no una `shared_library`.
#
# `poppler-glib` es la receta del corpus escrita para esto: la poppler que ya existía va
# `-DENABLE_GLIB=OFF` y vive en `incoming-kde`. Ver su cabecera, que además explica por qué zathura
# no se declara en el perfil de KDE.
#
# ⚠ `glib-shared` y no `glib`, igual que las otras dos de la cadena: dos copias estáticas de
# GObject en el mismo proceso rompen el dlopen. Ver `recipes/poppler-glib.toml`.
#
# Su `data/meson.build` busca `desktop-file-validate` y `appstreamcli` con `required:false` — sin
# ellos simplemente no registra esos dos tests. No hace falta traer nada.
#
# Fuente por commit git (ADR 0006): `2026.07.18` es un objeto TAG ⇒ éste es su commit pelado.
name = "zathura-pdf-poppler"
version = "2026.07.18"
license = "Zlib"
[source]
repo = "https://github.com/pwmt/zathura-pdf-poppler.git"
commit = "2aaedd3342a12f8d45b209995c375cbdfbf05137"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
flags = []
[build.phases]
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release"
compile = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
install = '''
set -e
PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild
# Un plugin que no aterriza donde zathura lo busca es un artefacto que sella y no sirve para nada:
# zathura arrancaría igual y diría «unknown file type». Se comprueba la ruta, no el exit code.
test -e /out/usr/lib/zathura/libpdf-poppler.so || {
echo "ERROR: el plugin no quedó en /usr/lib/zathura — ¿cambió el plugindir de zathura.pc?" >&2
ls -R /out/usr/lib >&2
exit 1
}
'''
[deps]
build = [
"meson", "samurai", "python3", "pkgconf", "linux-headers",
"zathura", "girara", "poppler-glib",
"glib-shared", "pcre2-shared", "cairo", "pixman", "libffi", "zlib",
"freetype-shared", "fontconfig-shared", "expat", "lcms2",
"libjpeg-turbo-shared", "libpng-shared", "zlib-shared",
]
+117
View File
@@ -0,0 +1,117 @@
# zathura 2026.07.18 — lector de documentos con teclas de vi, para las cuatro imágenes.
#
# ══ ⚠ CORRIGE UNA CREENCIA DEL REPO: ESTO NO ESTÁ BLOQUEADO POR GTK3 ═══════════════════════════
# `docs/plan-apps-usuario-final.md` dejaba a zathura como «verificar antes que su cadena sea GTK4 y
# no GTK3», porque en Alpine `girara` —su librería de apoyo— era GTK3, y GTK3 está aparcado por
# diseño en esta distro. **Upstream VACIÓ girara**: en 2026.07.18 su árbol son siete `.c` de
# utilidades y su `meson.build` no menciona GTK ni una vez. Toda la UI se mudó acá adentro, y esto
# pide **GTK4 >= 4.12**, que está en el corpus (4.18.6). El muro no existe. Medido, no recordado.
#
# ══ EL BACKEND ES UNA RECETA APARTE, Y ESO IMPORTA ═════════════════════════════════════════════
# zathura sin plugin ABRE LA VENTANA Y NADA MÁS: los formatos entran por `.so` que carga con
# gmodule desde `/usr/lib/zathura`. El de PDF es `zathura-pdf-poppler`, que necesita
# `poppler-glib` — y ésa hubo que escribirla, porque la poppler que ya existía va
# `-DENABLE_GLIB=OFF` y encima vive en `incoming-kde`. Ver `recipes/poppler-glib.toml`.
# `export_dynamic: true` (meson.build:207,221) es lo que hace que el plugin resuelva los símbolos
# `zathura_*` contra el EJECUTABLE al hacer dlopen. Ojo con eso y el wrapper de zig: hay una regla
# que quita `-static` ante `--export-dynamic`, la misma que documenta `recipes/luajit.toml`.
#
# ⚠ **NO SE DECLARA EN `escritorio-kde`, y es a propósito.** Esa imagen ya trae `okular`, que
# arrastra `incoming-kde/poppler`; las dos popplers instalan `/usr/lib/libpoppler.so.146` y son
# artefactos DISTINTOS, así que hidratar las dos pone dos ficheros en la misma ruta y gana el que se
# proyecte último — el cuadro de las dos glib. La salida no sería listarla igual, sería jubilar una
# de las dos popplers. Está escrito también en `recipes/poppler-glib.toml` y en `targets.toml`.
#
# ══ OPCIONES TODAS EXPLÍCITAS (las siete nacen `auto`) ═════════════════════════════════════════
# `landlock=enabled` — y no es relleno: es el mismo mecanismo del kernel que usa `harkaq`, la jaula
# de este repo, así que el visor entra encajado con la casa. Se comprobó que la cadena da: pide
# `linux/landlock.h` **y** el campo `scoped` de `struct landlock_ruleset_attr`, que existe en las
# `linux-headers` 6.16.12 del corpus (línea 53 del header). Sin ese campo la perilla se apagaría
# sola, que es el modo de fallar que este repo persigue.
# `seccomp=disabled` — `libseccomp` sólo vive en `incoming-gnome`; una receta del corpus no alcanza
# una cola hermana. Landlock cubre el encierro.
# `synctex=disabled` — no hay receta `synctex` (es de TeX Live).
# `manpages=disabled` — su target pide `sphinx-build`, que no está en el corpus.
# `convert-icon=disabled` — pide `rsvg-convert`, y librsvg vive sólo en `incoming-gnome`. Sólo
# genera PNG del icono a cinco tamaños; el SVG se instala igual.
# `tests-x11` / `tests-wayland` apagadas: X11 está al tacho y la de wayland pide weston.
#
# ══ ⚠ `-Dc_link_args` CON LAS PRIVADAS DE gtk4 — EL PATRÓN QUE YA ESTÁ ESCRITO EN EL CORPUS ═════
# La gtk4 del corpus es `libgtk-4.a` y **su `.pc` no declara `Libs.private` en absoluto** (asume
# link dinámico contra `libgtk-4.so`). Consecuencia: meson resuelve `dependency('gtk4')` como
# `-lgtk-4` a secas y el link muere con
#
# ld.lld: error: undefined symbol: epoxy_glBindRenderbuffer
# >>> referenced by gtkglarea.c ... in archive /usr/lib/libgtk-4.a
#
# **culpando a zathura cuando lo que falta es propagar epoxy.** `-Dprefer_static=true` NO lo
# arregla: no hay `Libs.private` que preferir. Hay que nombrar a mano las privadas que gdk/gsk
# enlazan directo, que son las mismas ocho que `recipes/gtk4-hello.toml` ya dejó escritas —
# harfbuzz-subset, epoxy, xkbcommon, wayland-client, wayland-egl, libtiff-4, libjpeg y
# cairo-script-interpreter. Se hace acá y no arreglando `gtk4.pc` porque re-hashear gtk4 arrastra
# **7 dependientes directos, 6 de ellos sellados que caerían a deuda**; mismo criterio que el
# wrapper de `ar` de las recetas Cargo: per-receta, no framework.
name = "zathura"
version = "2026.07.18"
license = "Zlib"
[source]
repo = "https://github.com/pwmt/zathura.git"
commit = "4fad4e4d82ac3275632fcbc55386915ff361e404"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
# Dinámico: gtk4 y poppler-glib se exponen como `.so`, y el plugin se carga con dlopen.
link = "dynamic"
flags = []
[build.phases]
configure = '''
set -e
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export PYTHONPATH=/usr/lib/python3.12/site-packages
# Ver la cabecera: gtk4.pc no trae Libs.private, así que las privadas de gdk/gsk se nombran a mano.
PRIV="$(pkg-config --libs --static harfbuzz-subset epoxy xkbcommon wayland-client wayland-egl libtiff-4 libjpeg cairo-script-interpreter)"
meson setup output --prefix=/usr --buildtype=release \
-Dprefer_static=true \
-Dc_link_args="$PRIV" \
-Dsynctex=disabled -Dseccomp=disabled -Dlandlock=enabled -Dmanpages=disabled \
-Dtests-x11=disabled -Dtests-wayland=disabled -Dconvert-icon=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"
# ⚠ `sqlite` Y `-Dprefer_static=true` ESTÁN ACÁ PORQUE UN VIGÍA CAZÓ UNA FUGA AL LAB ═══════════
# La primera versión selló con `NEEDED libsqlite3.so.0`, un SONAME que **ningún artefacto del
# cierre publica** (el `sqlite` del corpus es `.a`): meson había resuelto `dependency('sqlite3')`
# contra el **sysroot Alpine DEL LAB**. Artefacto sellado, perfil al 100%, y una imagen que sólo
# arranca en una máquina con Alpine debajo. El lab NO entra en `hash_inputs` ⇒ el store no puede
# notarlo. Lo encontró `scripts/vigia-sonames.py escritorio-sway`, que existe para exactamente esto.
#
# **Y declarar la dep NO alcanzó** — vale la pena que quede escrito, porque era la corrección
# obvia y es la incompleta. Con `sqlite` en `[deps]` el NEEDED seguía ahí: el `.pc` del corpus le da
# a meson un `-lsqlite3` pelado y el linker prefiere la `.so` del lab sobre la `.a` del store.
# Lo que lo arregla es `-Dprefer_static=true`, que hace que meson pida los `.pc` en modo estático.
# Efecto medido: los NEEDED bajaron de DIEZ a CUATRO —libxkbcommon, las dos de wayland y libc—
# y los cuatro los publica el cierre. expat, libffi, zlib, pixman, xxhash y sqlite entraron
# estáticos. Las dos cosas hacen falta: sin la dep, meson ni encuentra el `.pc` del corpus.
#
# ⚠ `glib-shared` Y NO `glib`: una copia ESTÁTICA de GObject acá y otra dentro de
# `libpoppler-glib.so` hacen que el plugin de PDF muera con `cannot register existing type 'gchar'`
# al hacer dlopen. El porqué largo está en `recipes/poppler-glib.toml`. Las tres recetas de la
# cadena —ésta, poppler-glib y el plugin— tienen que declarar la MISMA.
#
# `.pc Requires` → `[deps].build`. La cadena larga es la de gtk4 (pango, gdk-pixbuf, graphene,
# cairo-gobject, libepoxy…), copiada de `recipes/gtk4.toml` porque es exactamente su clausura de
# pkg-config. `file` da `libmagic` (detección de tipo de documento), `xxhash` la caché de páginas
# renderizadas y `json-glib` la sesión. `gettext-tiny` porque `po/` y el `.desktop` pasan por i18n.
[deps]
build = [
"meson", "samurai", "python3", "pkgconf", "linux-headers", "gettext-tiny",
"girara", "xxhash", "json-glib", "file", "sqlite",
"gtk4", "glib-shared", "pcre2-shared", "cairo", "pango", "gdk-pixbuf", "graphene", "libepoxy",
"wayland", "wayland-protocols", "libxkbcommon", "libdrm", "mesa",
"fontconfig", "harfbuzz", "fribidi", "freetype", "pixman", "expat",
"libpng", "libjpeg-turbo", "libtiff", "libffi", "zlib", "zlib-shared", "bzip2-shared",
]