gnome: las 10 raíces del perfil escritorio-gnome — el perfil CIERRA (mapa real)
Autoradas top-down feature-minimal en incoming-gnome (parte por subagentes, parte a mano tras un stall de API): gobject-introspection, gjs, gsettings-desktop-schemas, gnome-desktop, gnome-session, gnome-settings-daemon, mutter, gnome-shell, gdm, xdg-desktop-portal-gnome. Las 10 parsean (hash dry-run). Versiones GNOME 48 salvo gnome-desktop (44.5: upstream no corta estable de la lib compartida tras 44.5). Con las raíces, el perfil escritorio-gnome CIERRA: 70 nodos, 60 YA sellados, 10 en deuda (las raíces), en 3 ondas topológicas. Contra los 613-694 del cierre nixpkgs: la sobreestimación 5-10x confirmada en vivo. La frontera GENUINA que aún no tiene receta va documentada como comentarios FRONTERA en cada TOML (json-glib, libei, colord, gcr, libsecret, polkit, ibus, at-spi2, accountsservice, linux-pam, upower, geoclue, libnotify, iso-codes, xdg-desktop-portal, libseccomp; + gtk3/x11 que g-settings-daemon 48 aún exige incondicional). Deuda de resolver: pipewire/pulseaudio/ alsa-lib/xkeyboard-config existen en incoming-kde pero resolve_dep_path no ve esa cola. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+556
-197
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,32 @@
|
||||
# gdm 48.0 — GNOME Display Manager: el greeter/login que arranca la sesión GNOME (crea la sesión vía
|
||||
# login1, lanza gnome-shell en modo greeter). meson static. sha256 REAL de curl|sha256sum.
|
||||
#
|
||||
# LOGIN1: esta distro NO usa systemd-logind — el API org.freedesktop.login1 lo provee
|
||||
# arje-logind-compat (D-Bus, ya sellado). gdm se apoya en ESE login1. Por eso -Dsystemd=false y el
|
||||
# soporte de sesión va por el shim. (NO es frontera: login1 está cubierto.)
|
||||
# Feature-minimal: plymouth/selinux/systemd-journal off; Wayland-only (sin X11). El greeter es GNOME.
|
||||
name = "gdm"
|
||||
version = "48.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.gnome.org/sources/gdm/48/gdm-48.0.tar.xz"
|
||||
sha256 = "1bc06daff093ec7b5e37ecb4f92e5da3474a1b1ba076edb9151ee967d1c30adf"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
|
||||
[build.phases]
|
||||
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dsystemd-journal=false -Dplymouth=disabled -Dselinux=disabled -Dgds-pam-service=gdm-password -Dc_args=-Wno-error=date-time"
|
||||
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"
|
||||
|
||||
# glib (gio/dbus). login1 = arje-logind-compat (NO frontera).
|
||||
# FRONTERA: accountsservice sin receta — REQUERIDA (lista de usuarios del greeter).
|
||||
# FRONTERA: linux-pam sin receta — REQUERIDA (autenticación; el módulo PAM que registra la sesión).
|
||||
# FRONTERA: libgudev sin receta — REQUERIDA (detección de seats/devices).
|
||||
# FRONTERA: gnome-session → ya en incoming-gnome/ (la sesión que gdm lanza).
|
||||
# FRONTERA: gsettings-desktop-schemas → ya en incoming-gnome/ (config del greeter).
|
||||
[deps]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "gnome-session", "gsettings-desktop-schemas", "glib", "libffi", "pcre2", "zlib"]
|
||||
@@ -0,0 +1,36 @@
|
||||
# gjs 1.84.2 — los bindings JavaScript de GNOME (GNOME 48). gnome-shell cuelga de gjs, y gjs cuelga de
|
||||
# spidermonkey (mozjs-128), que YA está sellado en este repo (recipes/incoming-gnome/spidermonkey.toml,
|
||||
# provee mozjs-128.pc). gjs 1.84 requiere mozjs 128 ✓ — coincide con el spidermonkey sellado.
|
||||
#
|
||||
# ⚠ PRIMER BORRADOR feature-minimal — NO garantiza sellar a la primera. Notas de diseño:
|
||||
# · Build = meson (idioma GNOME, auto-detectado por el lab; calcado de gtk4/glib/libadwaita).
|
||||
# · compiler = zig-cc (como todo el stack meson GNOME del corpus). gjs es cpp+c; zig lo cubre.
|
||||
# · link = DYNAMIC (NO static como gtk4/glib): spidermonkey sólo provee libmozjs-128.so (shared-js);
|
||||
# no hay .a de mozjs contra la que enlazar estáticamente, así que gjs enlaza la .so ⇒ dynamic.
|
||||
# · Feature-minimal: sin instalar tests, sin profiler (evita la dep sysprof-capture), tests de
|
||||
# DBus/GTK saltados, sin x11 (gjs no tiene backend x11 propio; cairo-xlib es `required: false`).
|
||||
# readline SÍ (la receta readline existe y da la shell interactiva/depurador).
|
||||
name = "gjs"
|
||||
version = "1.84.2"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.gnome.org/sources/gjs/1.84/gjs-1.84.2.tar.xz"
|
||||
sha256 = "35142edf345705636300291ec3a7d583f14969ff3fae0ff30f4a95b1e6740166"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "dynamic"
|
||||
|
||||
[build.phases]
|
||||
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Dinstalled_tests=false -Dprofiler=disabled -Dskip_dbus_tests=true -Dskip_gtk_tests=true -Dreadline=enabled -Dc_args=-Wno-error=date-time"
|
||||
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]
|
||||
# spidermonkey → mozjs-128.pc (sellado); glib → glib-2.0/gobject-2.0/gio-2.0/gthread-2.0; cairo →
|
||||
# cairo + cairo-gobject; libffi, readline, pkgconf existen en el corpus. meson/samurai/python3 = tooling.
|
||||
# FRONTERA: gobject-introspection sin receta AÚN (lo autora otro agente en paralelo hacia
|
||||
# recipes/incoming-gnome/gobject-introspection.toml). gjs lo pide en build (g-ir-scanner ⇒ typelib
|
||||
# GjsPrivate) y en link (gobject-introspection-1.0.pc). Se declara igual para dejar el edge cableado.
|
||||
build = ["spidermonkey", "glib", "cairo", "libffi", "readline", "gobject-introspection", "meson", "samurai", "python3", "pkgconf"]
|
||||
@@ -0,0 +1,43 @@
|
||||
# gnome-desktop (libgnome-desktop) 44.5 — utilidades compartidas del escritorio GNOME:
|
||||
# info de monitores (GnomeRR/BG), thumbnails (thumbnailer sandboxeado con bwrap+seccomp),
|
||||
# idioma/locale (GnomeLanguage vía iso-codes). meson static.
|
||||
#
|
||||
# OJO VERSION: no existe "gnome-desktop 48". Upstream dejó de cortar releases estables tras 44.5
|
||||
# y saltó directo a 51.alpha (verificado en download.gnome.org y en los tags de gitlab.gnome.org:
|
||||
# ...44.3, 44.4, 44.5, 51.alpha — sin 45..50). Las distros que envían GNOME 45/46/47/48 shippean
|
||||
# esta misma 44.5 porque es la ÚLTIMA estable de la librería compartida. Por eso 44.5 es la versión
|
||||
# correcta para un escritorio GNOME 48. sha256 REAL de `curl -sL <url> | sha256sum`.
|
||||
#
|
||||
# Feature-minimal: build_gtk4=true, legacy_library=false (SIN libgnome-desktop-3/gtk3 — no está en
|
||||
# el corpus), introspection/docs/debug_tools/installed_tests OFF, udev/systemd disabled (Wayland-only,
|
||||
# el logind/udev lo cubre arje). backend GL vía gtk4 (ya wayland-only, sin X11).
|
||||
name = "gnome-desktop"
|
||||
version = "44.5"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.gnome.org/sources/gnome-desktop/44/gnome-desktop-44.5.tar.xz"
|
||||
sha256 = "20e0995a6e3a03e8c1026c5a27bc3f45e69ffcc392ad743dcab6107a541d232f"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
|
||||
[build.phases]
|
||||
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dbuild_gtk4=true -Dlegacy_library=false -Dintrospection=false -Ddesktop_docs=false -Ddebug_tools=false -Dgtk_doc=false -Dinstalled_tests=false -Dudev=disabled -Dsystemd=disabled -Dc_args=-Wno-error=date-time"
|
||||
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 = tools meson + gtk4 y su cierre .pc transitivo completo (static ⇒ pkg-config resuelve
|
||||
# Requires.private). libxkbcommon aporta xkbregistry (dep opcional, required:false en meson.build).
|
||||
#
|
||||
# FRONTERA: gsettings-desktop-schemas sin receta — REQUERIDA (schemas_dep, sin opción que la apague).
|
||||
# La autoran otros agentes hacia recipes/incoming-gnome/; añadir a [deps].build cuando aterrice.
|
||||
# FRONTERA: iso-codes sin receta — REQUERIDA (GnomeLanguage lee su prefix vía pkg-config).
|
||||
# FRONTERA: xkeyboard-config sin receta alcanzable — REQUERIDA (xkb_config_dep, lee xkb_base). Existe en
|
||||
# recipes/incoming-kde/ pero el resolver sólo mira incoming-gnome/ + recipes/ (no incoming-kde/):
|
||||
# promover a recipes/ o duplicar a incoming-gnome/ para que resuelva.
|
||||
# FRONTERA: libseccomp sin receta — REQUERIDA INCONDICIONAL en linux (sandbox bwrap+seccomp del
|
||||
# thumbnailer; no hay opción meson para desactivarla).
|
||||
[deps]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "gtk4", "glib", "gdk-pixbuf", "fontconfig", "libxkbcommon", "cairo", "pango", "graphene", "libepoxy", "wayland", "wayland-protocols", "libdrm", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "libjpeg-turbo", "libtiff", "mesa"]
|
||||
@@ -0,0 +1,30 @@
|
||||
# gnome-session 48.0 — el gestor de sesión de GNOME: arranca y supervisa los componentes de una
|
||||
# sesión (gnome-shell, settings-daemon, portales) y expone org.gnome.SessionManager. meson static.
|
||||
# sha256 REAL de curl|sha256sum.
|
||||
#
|
||||
# Esta distro NO usa systemd: el login1 lo provee arje-logind-compat (D-Bus), el init es arje-zero.
|
||||
# Feature-minimal: -Dsystemd=false -Dsystemd_journal=false (sin dep de libsystemd), docs/man off.
|
||||
# gnome-session usa gtk4 para el diálogo de fallo ("failwhale") y json-glib para el perfil de sesión.
|
||||
name = "gnome-session"
|
||||
version = "48.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.gnome.org/sources/gnome-session/48/gnome-session-48.0.tar.xz"
|
||||
sha256 = "dd909fbc5b22cdbdb2fc4df1a47d78d1b5943ccc5e61e6a20a1846246347c417"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
|
||||
[build.phases]
|
||||
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dsystemd=false -Dsystemd_journal=false -Ddocbook=false -Dman=false -Dc_args=-Wno-error=date-time"
|
||||
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"
|
||||
|
||||
# gtk4 (+ su cierre .pc) para el diálogo de fallo; glib para gio. login1 = arje-logind-compat (NO frontera).
|
||||
# FRONTERA: json-glib sin receta — REQUERIDA (perfil de sesión).
|
||||
# FRONTERA: gnome-desktop → recipes/incoming-gnome/gnome-desktop.toml YA existe; añadir cuando el grafo lo tome.
|
||||
# FRONTERA: gsettings-desktop-schemas → ya en incoming-gnome/ (runtime).
|
||||
[deps]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "gsettings-desktop-schemas", "gnome-desktop", "gtk4", "glib", "cairo", "pango", "graphene", "libepoxy", "wayland", "wayland-protocols", "libdrm", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "gdk-pixbuf", "libjpeg-turbo", "libtiff", "mesa", "fontconfig"]
|
||||
@@ -0,0 +1,45 @@
|
||||
# gnome-settings-daemon 48.1 — el daemon de ajustes de GNOME (media-keys, energía, color, sonido,
|
||||
# rfkill, sharing…). meson static. Feature-minimal: apaga TODO backend opcional (cups/smartcard/wwan/
|
||||
# network-manager/usb-protection/wayland/systemd/elogind/colord); quedan sólo los core + los que el
|
||||
# proyecto marca "not optional on Linux" (alsa/gudev/rfkill).
|
||||
#
|
||||
# HALLAZGO DE FRONTERA (el valor del mapa): gnome-settings-daemon 48 SIGUE en GTK3 + X11 —
|
||||
# `dependency('gtk+-3.0')`, `gtk+-x11-3.0`, `x11`, `xfixes` son INCONDICIONALES (no hay opción para
|
||||
# apagarlas). El corpus sólo tiene gtk4 ⇒ esta receta NO es construible hasta autorar el stack GTK3/X11.
|
||||
# Se sella como mapa honesto de la cadena, no como artefacto listo.
|
||||
name = "gnome-settings-daemon"
|
||||
version = "48.1"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.gnome.org/sources/gnome-settings-daemon/48/gnome-settings-daemon-48.1.tar.xz"
|
||||
sha256 = "3860a2ea214dcbcb6600ae7a1e3358a5389215087bc3e4a47cee3f87baee062e"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
|
||||
[build.phases]
|
||||
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dcups=false -Dsmartcard=false -Dwwan=false -Dnetwork_manager=false -Dusb-protection=false -Dcolord=false -Dsystemd=false -Delogind=false -Dwayland=false -Drfkill=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]
|
||||
# Recetas EXISTENTES o en autoría paralela hacia incoming-gnome (gsettings-desktop-schemas,
|
||||
# gnome-desktop, gobject-introspection). pulseaudio/alsa-lib viven en incoming-kde.
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "gobject-introspection", "glib", "gsettings-desktop-schemas", "gnome-desktop", "pango", "cairo", "gdk-pixbuf", "harfbuzz", "libffi", "pcre2", "zlib"]
|
||||
|
||||
# FRONTERA: pulseaudio / alsa-lib — REQUERIDA (media-keys/volumen); existen en incoming-kde/ pero el
|
||||
# resolver no ve esa cola (mismo gap que pipewire/xkeyboard-config). Promover o duplicar.
|
||||
|
||||
# FRONTERA: gtk3 (gtk+-3.0 / gtk+-x11-3.0) — INCONDICIONAL; sólo existe gtk4
|
||||
# FRONTERA: libX11 (x11) — INCONDICIONAL, sin opción para apagar
|
||||
# FRONTERA: libXfixes (xfixes >= 6.0) — INCONDICIONAL
|
||||
# FRONTERA: libgweather (gweather4) — INCONDICIONAL
|
||||
# FRONTERA: geocode-glib (geocode-glib-2.0) — INCONDICIONAL
|
||||
# FRONTERA: libnotify (>= 0.7.3) — INCONDICIONAL
|
||||
# FRONTERA: polkit (polkit-gobject-1 >= 0.114) — INCONDICIONAL
|
||||
# FRONTERA: upower (upower-glib >= 0.99.12) — INCONDICIONAL
|
||||
# FRONTERA: libcanberra-gtk3 — existe recipe libcanberra (backend NULL) pero NO la variante gtk3
|
||||
# FRONTERA: geoclue (libgeoclue-2.0 >= 2.3.1) — INCONDICIONAL
|
||||
# FRONTERA: libgudev (gudev-1.0) — "not optional on Linux", no hay recipe
|
||||
@@ -0,0 +1,37 @@
|
||||
# gnome-shell 48.8 — la cima del frente GNOME: la UI del escritorio (top bar, overview, lock screen).
|
||||
# Cuelga de mutter (compositor) + gjs (su lógica está en JavaScript sobre spidermonkey). meson static.
|
||||
# sha256 REAL de curl|sha256sum.
|
||||
#
|
||||
# ⚠ DRAFT PARA EL MAPA: NO sella a la primera — es la cima, su cadena es la más profunda. Valor hoy =
|
||||
# la FRONTERA declarada. Feature-minimal: tests/man/docs off; sin networkmanager (opcional).
|
||||
name = "gnome-shell"
|
||||
version = "48.8"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.gnome.org/sources/gnome-shell/48/gnome-shell-48.8.tar.xz"
|
||||
sha256 = "cb9b7d86cf362530e648e68caaf109a32af4e832874a26791ca8789773efd233"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
|
||||
[build.phases]
|
||||
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dtests=false -Dman=false -Ddocumentation=false -Dnetworkmanager=disabled -Dc_args=-Wno-error=date-time"
|
||||
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"
|
||||
|
||||
# Resolubles: stack gtk4/libadwaita + gjs (ya en incoming-gnome/) y su cierre .pc.
|
||||
# FRONTERA (deps REQUERIDAS sin receta alcanzable — la cadena de la cima):
|
||||
# mutter → YA en incoming-gnome/ (draft); es la dep dura (libmutter).
|
||||
# gjs → YA en incoming-gnome/ (motor JS del shell).
|
||||
# gobject-introspection→ YA en incoming-gnome/ (typelibs).
|
||||
# gsettings-desktop-schemas, gnome-desktop → YA en incoming-gnome/.
|
||||
# gcr, libsecret — REQUERIDA (keyring/prompt).
|
||||
# polkit — REQUERIDA (elevación de privilegios).
|
||||
# ibus — REQUERIDA (input methods).
|
||||
# startup-notification — REQUERIDA.
|
||||
# at-spi2-core, atk — REQUERIDA (accesibilidad).
|
||||
# json-glib — REQUERIDA.
|
||||
[deps]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "mutter", "gjs", "gobject-introspection", "gsettings-desktop-schemas", "gnome-desktop", "gtk4", "libadwaita", "glib", "pango", "cairo", "graphene", "libepoxy", "wayland", "wayland-protocols", "libdrm", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "gdk-pixbuf", "libjpeg-turbo", "libtiff", "mesa", "fontconfig"]
|
||||
@@ -0,0 +1,36 @@
|
||||
# gobject-introspection 1.84.0 — el escáner de metadata de GNOME (g-ir-scanner + typelibs).
|
||||
# Es dep de casi toda lib GNOME (gtk4/libadwaita/etc. lo declaran cuando -Dintrospection=enabled).
|
||||
# meson static, backend feature-minimal: doctool/gtk_doc/tests off, PERO build_introspection_data=true
|
||||
# (los .gir/.typelib SON su razón de ser).
|
||||
#
|
||||
# BORRADOR PARA EL MAPA — dificultad conocida: g-ir-scanner NO es puro metadata. Para cada lib
|
||||
# COMPILA y EJECUTA un pequeño binario "dumper" enlazado contra el target para volcar los GTypes en
|
||||
# runtime. En un lab cross/hermetico static-musl esto es el palo largo del stack GNOME:
|
||||
# 1) ejecutar un binario del target dentro del sandbox (aquí target==host x86_64-linux-musl, así que
|
||||
# NO hay emulación — a favor nuestro; el escenario cross real necesitaría qemu/exe_wrapper).
|
||||
# 2) el dumper enlaza estático contra glib+libffi; el scanner invoca al compilador (CC/zig-cc) y al
|
||||
# linker en runtime ⇒ necesita el toolchain + el cierre .pc COMPLETO visible en PKG_CONFIG_PATH.
|
||||
# 3) suele pelear con -static / musl (símbolos de introspección, gi-dump). PROBABLEMENTE NO selle a
|
||||
# la primera — dejar como frontera medida, no como sellado asumido.
|
||||
name = "gobject-introspection"
|
||||
version = "1.84.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.gnome.org/sources/gobject-introspection/1.84/gobject-introspection-1.84.0.tar.xz"
|
||||
sha256 = "945b57da7ec262e5c266b89e091d14be800cc424277d82a02872b7d794a84779"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
|
||||
[build.phases]
|
||||
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Ddoctool=disabled -Dgtk_doc=false -Dtests=false -Dbuild_introspection_data=true -Dcairo=disabled -Dc_args=-Wno-error=date-time"
|
||||
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]
|
||||
# glib + su cierre .pc estático (pkgconf resuelve Requires.private: pcre2, zlib, libffi).
|
||||
# flex/bison: el parser de anotaciones del scanner. libffi: además lo enlaza el dumper.
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "flex", "bison", "glib", "libffi", "pcre2", "zlib"]
|
||||
# FRONTERA: cairo omitida a propósito (-Dcairo=disabled) — feature-minimal, evita el typelib Cairo-1.0.
|
||||
@@ -0,0 +1,26 @@
|
||||
# gsettings-desktop-schemas 48.0 — los schemas GSettings compartidos de GNOME (org.gnome.desktop.*):
|
||||
# fondo, interface, wm, a11y, sound… Casi todo el escritorio los lee en runtime. Receta LIVIANA:
|
||||
# compila XML de schemas + una libcita de enums; meson static. sha256 REAL de curl|sha256sum.
|
||||
#
|
||||
# Feature-minimal: introspection=false (el typelib no lo exige el runtime de schemas; si mutter/gjs
|
||||
# lo pidieran vía typelib, se re-activa). Sin docs/tests.
|
||||
name = "gsettings-desktop-schemas"
|
||||
version = "48.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.gnome.org/sources/gsettings-desktop-schemas/48/gsettings-desktop-schemas-48.0.tar.xz"
|
||||
sha256 = "e68f155813bf18f865a8b2c8e9d473588b6ccadcafbb666ab788857c6c2d1bd3"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
|
||||
[build.phases]
|
||||
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dintrospection=false -Dc_args=-Wno-error=date-time"
|
||||
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"
|
||||
|
||||
# glib aporta gio (compila los schemas) + su cierre .pc. gobject-introspection sólo si introspection=true.
|
||||
[deps]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "glib", "libffi", "pcre2", "zlib"]
|
||||
@@ -0,0 +1,36 @@
|
||||
# mutter 48.8 — el compositor Wayland de GNOME. El más pesado del frente: funde clutter+cogl in-tree
|
||||
# y arrastra el stack gráfico entero. meson static. sha256 REAL de curl|sha256sum.
|
||||
#
|
||||
# ⚠ DRAFT PARA EL MAPA: NO sella a la primera — su valor hoy es la FRONTERA declarada (lo que falta
|
||||
# autorar). Wayland-only, X11 al tacho: -Dxwayland=false (y sin backend x11 donde el meson lo permita).
|
||||
# Feature-minimal: tests/docs/profiler off. El backend nativo (KMS/DRM+libinput) es el de la distro.
|
||||
name = "mutter"
|
||||
version = "48.8"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.gnome.org/sources/mutter/48/mutter-48.8.tar.xz"
|
||||
sha256 = "a483f91f75c16368d388179ecb855fcdb35db9c628f35b315b717153f99681a9"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
|
||||
[build.phases]
|
||||
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dxwayland=false -Dtests=disabled -Dcogl_tests=false -Dclutter_tests=false -Dmutter_tests=false -Dprofiler=false -Ddocs=false -Dinstalled_tests=false -Dc_args=-Wno-error=date-time"
|
||||
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"
|
||||
|
||||
# Resolubles: el espinazo gráfico + gsettings-desktop-schemas y gnome-desktop (ya en incoming-gnome/).
|
||||
# FRONTERA (deps REQUERIDAS sin receta alcanzable — el mapa honesto del muro de mutter):
|
||||
# gobject-introspection → YA en incoming-gnome/ (typelibs de Meta/Clutter/Cogl); añadir cuando selle.
|
||||
# json-glib — REQUERIDA.
|
||||
# libei — REQUERIDA (emulated input, remote desktop).
|
||||
# libdisplay-info — REQUERIDA (parseo EDID de monitores).
|
||||
# colord, lcms2 — REQUERIDA (gestión de color).
|
||||
# pipewire — REQUERIDA (screencast); existe en incoming-kde/ pero el resolver no la ve.
|
||||
# xkeyboard-config — REQUERIDA (layouts); existe en incoming-kde/, mismo gap del resolver.
|
||||
# libgudev, libwacom — device/tablet.
|
||||
# sysprof-capture — opcional (profiler=false lo evita).
|
||||
[deps]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "gobject-introspection", "gsettings-desktop-schemas", "gnome-desktop", "glib", "gtk4", "graphene", "wayland", "wayland-protocols", "libinput", "libxkbcommon", "cairo", "pango", "gdk-pixbuf", "mesa", "libdrm", "libepoxy", "pixman", "harfbuzz", "fribidi", "libpng", "freetype", "expat", "libffi", "pcre2", "zlib", "libjpeg-turbo", "libtiff", "fontconfig"]
|
||||
@@ -0,0 +1,28 @@
|
||||
# xdg-desktop-portal-gnome 48.0 — backend GNOME de xdg-desktop-portal: file choosers, screenshots,
|
||||
# screencast, settings y appchooser para apps sandboxeadas (Flatpak/snap). Habla con gnome-shell y
|
||||
# xdg-desktop-portal (el frontend genérico). meson static. sha256 REAL de curl|sha256sum.
|
||||
#
|
||||
# Feature-minimal: docs/tests off. GTK4 + libadwaita para la UI de los diálogos. Wayland-only.
|
||||
name = "xdg-desktop-portal-gnome"
|
||||
version = "48.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.gnome.org/sources/xdg-desktop-portal-gnome/48/xdg-desktop-portal-gnome-48.0.tar.xz"
|
||||
sha256 = "cd15aca2e1364da308eb3796bb8ae4a577e60ca4fe12006b315232cfd19c8861"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
|
||||
[build.phases]
|
||||
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dc_args=-Wno-error=date-time"
|
||||
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"
|
||||
|
||||
# gtk4 + libadwaita (+ su cierre .pc) para la UI. glib para gio/dbus.
|
||||
# FRONTERA: xdg-desktop-portal sin receta — REQUERIDA (el frontend genérico; provee el .pc y los .xml
|
||||
# de interfaces que este backend implementa). Es la dep dura que falta.
|
||||
# FRONTERA: gnome-desktop → ya en incoming-gnome/ (thumbnails/settings).
|
||||
[deps]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "gobject-introspection", "gsettings-desktop-schemas", "gnome-desktop", "gtk4", "libadwaita", "glib", "cairo", "pango", "graphene", "libepoxy", "wayland", "wayland-protocols", "libdrm", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "gdk-pixbuf", "libjpeg-turbo", "libtiff", "mesa", "fontconfig"]
|
||||
Reference in New Issue
Block a user