gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1346Shell 97Rust 63Markdown 571650 Definitions

⎇ 32627251b1adcc995958bd60e72226040bff6125 recipes/zathura-pdf-poppler.toml TOML · 60 lines · 2.8 KB History raw

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

1# zathura-pdf-poppler 2026.07.18 — el backend de PDF de `zathura`. Sin esto, zathura abre la
2# ventana y no muestra un solo documento: los formatos entran por `.so` que carga con gmodule desde
3# `/usr/lib/zathura`, y ésta es la única receta que pone uno ahí.
4#
5# El `plugindir` NO se codifica: sale de `zathura.pc` (`zathura.get_variable(pkgconfig:'plugindir')`),
6# así que las dos recetas no pueden desincronizarse. Por eso `zathura` va en `[deps]` aunque el
7# plugin no enlace nada suyo: aporta el `.pc`, las cabeceras de `plugin-api.h` y esa variable.
8#
9# Los símbolos `zathura_*` que el plugin usa NO se resuelven en el link: los resuelve el dlopen
10# contra el EJECUTABLE, que zathura liga con `export_dynamic: true`. Es normal y es por qué esto es
11# un `shared_module` y no una `shared_library`.
12#
13# `poppler-glib` es la receta del corpus escrita para esto: la poppler que ya existía va
14# `-DENABLE_GLIB=OFF` y vive en `incoming-kde`. Ver su cabecera, que además explica por qué zathura
15# no se declara en el perfil de KDE.
16#
17# ⚠ `glib-shared` y no `glib`, igual que las otras dos de la cadena: dos copias estáticas de
18# GObject en el mismo proceso rompen el dlopen. Ver `recipes/poppler-glib.toml`.
19#
20# Su `data/meson.build` busca `desktop-file-validate` y `appstreamcli` con `required:false` — sin
21# ellos simplemente no registra esos dos tests. No hace falta traer nada.
22#
23# Fuente por commit git (ADR 0006): `2026.07.18` es un objeto TAG ⇒ éste es su commit pelado.
24name    = "zathura-pdf-poppler"
25version = "2026.07.18"
26license = "Zlib"
27
28[source]
29repo   = "https://github.com/pwmt/zathura-pdf-poppler.git"
30commit = "2aaedd3342a12f8d45b209995c375cbdfbf05137"
31
32[build]
33compiler = "zig-cc"
34target   = "x86_64-linux-musl"
35link     = "dynamic"
36flags    = []
37
38[build.phases]
39configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release"
40compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
41install   = '''
42set -e
43PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild
44# Un plugin que no aterriza donde zathura lo busca es un artefacto que sella y no sirve para nada:
45# zathura arrancaría igual y diría «unknown file type». Se comprueba la ruta, no el exit code.
46test -e /out/usr/lib/zathura/libpdf-poppler.so || {
47  echo "ERROR: el plugin no quedó en /usr/lib/zathura — ¿cambió el plugindir de zathura.pc?" >&2
48  ls -R /out/usr/lib >&2
49  exit 1
50}
51'''
52
53[deps]
54build = [
55  "meson", "samurai", "python3", "pkgconf", "linux-headers",
56  "zathura", "girara", "poppler-glib",
57  "glib-shared", "pcre2-shared", "cairo", "pixman", "libffi", "zlib",
58  "freetype-shared", "fontconfig-shared", "expat", "lcms2",
59  "libjpeg-turbo-shared", "libpng-shared", "zlib-shared",
60]