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 1572Shell 203Rust 109Markdown 993728 Definiciones

⎇ main recipes/incoming-gnome/libportal.toml TOML · 57 líneas · 4.3 KB Historia crudo

nautilus y gvfs: el censo de frontera decía 26 recetas y son 6 fadeaa035 · Sergio ·

1# libportal 0.9.1 — la librería cliente de los portales XDG. Es dep DURA de nautilus, y DOS VECES:
2#
3#     meson.build:123  libportal      = dependency('libportal',      version: '>= 0.7')
4#     meson.build:124  libportal_gtk4 = dependency('libportal-gtk4', version: '>= 0.5')
5#
6# ── UNA RECETA DA LAS DOS LIBRERÍAS, y por eso el censo de frontera contaba de más ──────────────
7# `targets.toml` listaba `libportal-gtk4` como una frontera aparte. No lo es: sale del MISMO source.
8# `libportal/meson.build:186` construye el backend GTK4 desde esta misma compilación
9# (`gtk4_dep = dependency('gtk4', required: get_option('backend-gtk4'))`), y el tarball publica
10# `libportal.pc` y `libportal-gtk4.pc` juntos. Es la misma forma que el seed de nixpkgs ya avisa que
11# tiene (sobreestima 5-10×): un `.pc` extra se lee como un paquete extra.
12#
13# ── QUÉ ES, para que el apagado de abajo se entienda ────────────────────────────────────────────
14# El portal es el camino por el que una app pide al escritorio algo que no puede hacer sola: abrir
15# el selector de ficheros del sistema, abrir un URI, pedir una captura. En nautilus es lo que hace
16# que «abrir con otra aplicación» y el diálogo de ficheros de otras apps hablen el mismo idioma.
17# El servidor del otro lado —`xdg-desktop-portal` + `xdg-desktop-portal-gnome`— YA está sellado en
18# esta cola. Esta receta es el lado cliente.
19#
20# ── LOS CUATRO BACKENDS, y por qué sólo uno ─────────────────────────────────────────────────────
21#   backend-gtk4  = enabled   ← el que pide nautilus. `gtk4` es la isla dinámica de esta cola.
22#   backend-gtk3  = disabled  ← GTK3 está aparcado por diseño en este frente (ver gnome-autoar).
23#   backend-qt5   = disabled  ┐ son el camino de KDE, que vive en OTRA cola y es estático. Con
24#   backend-qt6   = disabled  ┘ `auto` meson los buscaría y encenderlos acá mezclaría los dos mundos.
25# ⚠ Las cuatro son `feature` con valor `auto`: dejarlas sin declarar NO es neutral, es «encendé lo
26# que encuentres». Se declaran las cuatro a propósito para que el artefacto no dependa de qué haya
27# en el sysroot el día que se construya.
28#
29# `-Ddocs=false` saca `gi-docgen` (default `true`, y no está en el catálogo).
30# `-Dintrospection=false` / `-Dvapi=false`: mismo criterio que gnome-autoar — el consumidor de hoy
31# es C. Encenderlas es una línea el día que una extensión JS quiera Portal por typelib.
32#
33# ⚠ SIN `gettext-tiny`: este tarball tampoco trae `po/` (comprobado: sus subdirs son `libportal`,
34# `portal-test`, `tests` y `doc`).
35name    = "libportal"
36version = "0.9.1"
37license = "LGPL-3.0-only"
38
39[source]
40tarball = "https://github.com/flatpak/libportal/releases/download/0.9.1/libportal-0.9.1.tar.xz"
41sha256  = "de801ee349ed3c255a9af3c01b1a401fab5b3fc1c35eb2fd7dfb35d4b8194d7f"
42
43[build]
44compiler = "zig-cc"
45target   = "x86_64-linux-musl"
46link     = "dynamic"
47
48[build.phases]
49configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Ddefault_library=shared -Dbackend-gtk4=enabled -Dbackend-gtk3=disabled -Dbackend-qt5=disabled -Dbackend-qt6=disabled -Dintrospection=false -Dvapi=false -Ddocs=false -Dtests=false -Dportal-tests=false -Dc_args=-Wno-error=date-time"
50compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
51install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
52
53[deps]
54# gtk4 + su cierre `.pc` completo: la hidratación es DIRECTA, no transitiva, así que lo que
55# `gtk4.pc` declara en `Requires` tiene que estar nombrado acá. La lista es la de `gtk4.toml`
56# (misma cola) menos lo que sólo hace falta para construir gtk4 en sí.
57build = ["meson", "samurai", "python3", "pkgconf", "glib", "gtk4", "cairo-shared", "pango", "gdk-pixbuf", "graphene", "libepoxy", "wayland", "wayland-protocols", "libxkbcommon", "libdrm", "fontconfig-shared", "harfbuzz", "fribidi", "libpng-shared", "pixman", "freetype-shared", "expat", "libffi", "pcre2", "zlib-shared", "libtiff-shared", "libjpeg-turbo-shared", "mesa"]