gnome onda 3: json-glib SELLADO + 3 recetas reusadas de KDE + veredicto de gnome-session
json-glib (b3:1b90c876): la dep más compartida de la cima — la piden mutter, gnome-shell y gnome-session. Feature-minimal, static, sin introspección (con la condición de vuelta escrita en la receta: si gnome-shell pide Json-1.0.typelib desde JS, pasa a isla dinámica). Reusadas de incoming-kde SIN construir nada — fichero idéntico ⇒ mismo ArtifactHash ⇒ cache-hit del artefacto que KDE ya selló: libdisplay-info (b3:260f0519) + su dep hwdata, y lcms2 (b3:07fbf8a1). Tres de la frontera de mutter cerradas a coste cero. pipewire NO se trajo, y el intento dejó la lección: al resolverse contra la glib de la cola GNOME cambia de hash (deja de ser cache-hit) y arrastra pulseaudio/libsndfile/alsa-lib a esta cola. mutter tiene -Dremote_desktop=false, que mata pipewire Y libei de un saque. El guardián del barrido existe justamente para no pisar variantes homónimas. gnome-session: medido y APARCADO con diagnóstico en la propia receta. No le falta un parche: exige gtk+-3.0, gnome-desktop-3.0 (la legacy que apagamos) y libsystemd required:true sin perilla. Asume systemd y GTK3, los dos ausentes por decisión. No bloquea el escritorio: gnome-shell no depende de gnome-session — sólo gdm. El camino vivo es mutter → gnome-shell. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
{
|
||||
"schema": "hammer-build-state/1",
|
||||
"totals": {
|
||||
"recipes": 796,
|
||||
"nodes": 796,
|
||||
"sealed": 786,
|
||||
"recipes": 800,
|
||||
"nodes": 800,
|
||||
"sealed": 790,
|
||||
"never": 8,
|
||||
"debt": 2
|
||||
},
|
||||
"by_class": {
|
||||
"c": 163,
|
||||
"c": 166,
|
||||
"go": 362,
|
||||
"gui": 39,
|
||||
"gui": 40,
|
||||
"kernel": 6,
|
||||
"rust": 226
|
||||
},
|
||||
@@ -26,7 +26,7 @@
|
||||
"debt": 2
|
||||
},
|
||||
"incoming-gnome": {
|
||||
"sealed": 27,
|
||||
"sealed": 31,
|
||||
"never": 6
|
||||
}
|
||||
},
|
||||
@@ -54,7 +54,7 @@
|
||||
"debt": 2
|
||||
}
|
||||
},
|
||||
"sin_perfil": 649,
|
||||
"sin_perfil": 653,
|
||||
"orphan_deps": [],
|
||||
"topo_ok": true,
|
||||
"nodes": {
|
||||
@@ -4656,7 +4656,7 @@
|
||||
"perfiles": [
|
||||
"escritorio-gnome"
|
||||
],
|
||||
"dependientes_total": 17
|
||||
"dependientes_total": 18
|
||||
},
|
||||
"glib-introspected": {
|
||||
"iname": "glib-introspected",
|
||||
@@ -6545,6 +6545,23 @@
|
||||
"perfiles": [],
|
||||
"dependientes_total": 0
|
||||
},
|
||||
"hwdata": {
|
||||
"iname": "hwdata",
|
||||
"version": "0.393",
|
||||
"link": "dynamic",
|
||||
"compiler": "gcc",
|
||||
"deps": [
|
||||
"pkgconf"
|
||||
],
|
||||
"cls": "c",
|
||||
"queue": "incoming-gnome",
|
||||
"hash": "b3:bdc36cf9a118a0eb505966cd5132552e51e420c12186694907898fb44873684a",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 0,
|
||||
"perfiles": [],
|
||||
"dependientes_total": 1
|
||||
},
|
||||
"hyperfine": {
|
||||
"iname": "hyperfine",
|
||||
"version": "1.20.0",
|
||||
@@ -6878,6 +6895,30 @@
|
||||
"perfiles": [],
|
||||
"dependientes_total": 0
|
||||
},
|
||||
"json-glib": {
|
||||
"iname": "json-glib",
|
||||
"version": "1.10.8",
|
||||
"link": "static",
|
||||
"compiler": "zig-cc",
|
||||
"deps": [
|
||||
"meson",
|
||||
"samurai",
|
||||
"python3",
|
||||
"pkgconf",
|
||||
"glib",
|
||||
"libffi",
|
||||
"pcre2",
|
||||
"zlib"
|
||||
],
|
||||
"cls": "gui",
|
||||
"queue": "incoming-gnome",
|
||||
"hash": "b3:1b90c87650b775ad60049f7c3c20c9bf4d56f230ca43eec411ce69762d661c9d",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 0,
|
||||
"perfiles": [],
|
||||
"dependientes_total": 0
|
||||
},
|
||||
"jsonnet-bundler": {
|
||||
"iname": "jsonnet-bundler",
|
||||
"version": "0.6.0",
|
||||
@@ -7754,6 +7795,24 @@
|
||||
"perfiles": [],
|
||||
"dependientes_total": 0
|
||||
},
|
||||
"lcms2": {
|
||||
"iname": "lcms2",
|
||||
"version": "2.16",
|
||||
"link": "dynamic",
|
||||
"compiler": "zig-cc",
|
||||
"deps": [
|
||||
"pkgconf",
|
||||
"python3"
|
||||
],
|
||||
"cls": "c",
|
||||
"queue": "incoming-gnome",
|
||||
"hash": "b3:07fbf8a1da5b346fe394bebe512cbc0e8acc9b509c3614b462329fe70b1a73b8",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 0,
|
||||
"perfiles": [],
|
||||
"dependientes_total": 0
|
||||
},
|
||||
"lefthook": {
|
||||
"iname": "lefthook",
|
||||
"version": "2.1.5",
|
||||
@@ -7956,6 +8015,27 @@
|
||||
],
|
||||
"dependientes_total": 3
|
||||
},
|
||||
"libdisplay-info": {
|
||||
"iname": "libdisplay-info",
|
||||
"version": "0.2.0",
|
||||
"link": "dynamic",
|
||||
"compiler": "zig-cc",
|
||||
"deps": [
|
||||
"meson",
|
||||
"samurai",
|
||||
"python3",
|
||||
"pkgconf",
|
||||
"hwdata"
|
||||
],
|
||||
"cls": "c",
|
||||
"queue": "incoming-gnome",
|
||||
"hash": "b3:260f0519727bcf33ce69d05644929558eafb7fae78730e5201345629a3dff42c",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 0,
|
||||
"perfiles": [],
|
||||
"dependientes_total": 0
|
||||
},
|
||||
"libdrm": {
|
||||
"iname": "libdrm",
|
||||
"version": "2.4.134",
|
||||
@@ -8062,7 +8142,7 @@
|
||||
"escritorio-kde",
|
||||
"escritorio-mirada"
|
||||
],
|
||||
"dependientes_total": 66
|
||||
"dependientes_total": 67
|
||||
},
|
||||
"libgcrypt": {
|
||||
"iname": "libgcrypt",
|
||||
@@ -9202,7 +9282,7 @@
|
||||
"escritorio-kde",
|
||||
"escritorio-mirada"
|
||||
],
|
||||
"dependientes_total": 78
|
||||
"dependientes_total": 80
|
||||
},
|
||||
"micro": {
|
||||
"iname": "micro",
|
||||
@@ -10482,7 +10562,7 @@
|
||||
"escritorio-gnome",
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 52
|
||||
"dependientes_total": 53
|
||||
},
|
||||
"peco": {
|
||||
"iname": "peco",
|
||||
@@ -10665,7 +10745,7 @@
|
||||
"escritorio-kde",
|
||||
"escritorio-mirada"
|
||||
],
|
||||
"dependientes_total": 291
|
||||
"dependientes_total": 295
|
||||
},
|
||||
"plow": {
|
||||
"iname": "plow",
|
||||
@@ -10976,7 +11056,7 @@
|
||||
"escritorio-kde",
|
||||
"escritorio-mirada"
|
||||
],
|
||||
"dependientes_total": 235
|
||||
"dependientes_total": 238
|
||||
},
|
||||
"qrcp": {
|
||||
"iname": "qrcp",
|
||||
@@ -11522,7 +11602,7 @@
|
||||
"escritorio-kde",
|
||||
"escritorio-mirada"
|
||||
],
|
||||
"dependientes_total": 210
|
||||
"dependientes_total": 212
|
||||
},
|
||||
"sassc": {
|
||||
"iname": "sassc",
|
||||
@@ -14277,7 +14357,7 @@
|
||||
"escritorio-kde",
|
||||
"escritorio-mirada"
|
||||
],
|
||||
"dependientes_total": 90
|
||||
"dependientes_total": 91
|
||||
},
|
||||
"zlib-ng": {
|
||||
"iname": "zlib-ng",
|
||||
|
||||
@@ -22,9 +22,30 @@ configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/s
|
||||
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).
|
||||
# ⛔ MURO ESTRUCTURAL, medido el 2026-07-27 — esta receta NO puede sellar tal cual, y no por un
|
||||
# parche que falte. El primer intento murió en «Unknown option: systemd»: el comentario de arriba
|
||||
# suponía perillas que gnome-session 48.0 no tiene. Leyendo su meson.build, lo que pide es peor que
|
||||
# un nombre de opción (líneas del tarball 48.0):
|
||||
#
|
||||
# :86 gtk_dep = dependency('gtk+-3.0', '>= 3.22') INCONDICIONAL — es GTK **3**.
|
||||
# :97 dependency('gnome-desktop-3.0', '>= 3.34.2') la librería LEGACY, la que gnome-desktop
|
||||
# apaga a propósito con legacy_library=false
|
||||
# («SIN libgnome-desktop-3/gtk3»).
|
||||
# :124 dependency('libsystemd', required: true) INCONDICIONAL, sin opción que lo apague.
|
||||
# (el -Dsystemduserunitdir= sólo esquiva el
|
||||
# dependency('systemd') de :119, no éste.)
|
||||
#
|
||||
# O sea: gnome-session 48 asume systemd Y GTK3. Esta distro no tiene ninguno de los dos por decisión
|
||||
# —arje-zero es PID1, arje-logind-compat da login1, y el frente es Wayland-only con X11 al tacho—
|
||||
# así que sellarla exigiría meter GTK3 entero + un shim de libsystemd. Eso no es feature-minimal:
|
||||
# es traer un toolkit muerto para un gestor de sesión que el escritorio no necesita.
|
||||
#
|
||||
# POR QUÉ NO BLOQUEA EL ESCRITORIO: gnome-shell NO depende de gnome-session (su cierre es
|
||||
# mutter+gjs+gobject-introspection+gnome-desktop). El único que la pide es gdm. El camino vivo es
|
||||
# mutter → gnome-shell, arrancado por arje como ya arranca mirada. gnome-session/gdm quedan
|
||||
# APARCADAS con este diagnóstico, no en cola: es la decisión de alcance, escrita donde se busca.
|
||||
#
|
||||
# json-glib: frontera CERRADA (b3:1b90c876, en esta cola). No era el problema.
|
||||
# gsettings-desktop-schemas / gnome-desktop: ya en incoming-gnome/ y selladas.
|
||||
[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,24 @@
|
||||
# hwdata 0.393 — bases de datos de IDs de hardware (pnp.ids, pci.ids, usb.ids) + hwdata.pc. Sin código:
|
||||
# sólo datos. Campaña KDE (ADR 0011): lo exige libdisplay-info en tiempo de build (dependency('hwdata')
|
||||
# native → pkgdatadir/pnp.ids) y kwin como RUNTIME (find_package(hwdata) TYPE RUNTIME, tabla PNP de EDID).
|
||||
# `configure` es un script shell propio (no autoconf); no compila nada.
|
||||
name = "hwdata"
|
||||
version = "0.393"
|
||||
|
||||
[source]
|
||||
tarball = "https://github.com/vcrhonek/hwdata/archive/refs/tags/v0.393.tar.gz"
|
||||
sha256 = "322add86944680e99d04468d49de180a7ce0c77fb406f7abde8ab14f2d161051"
|
||||
|
||||
[build]
|
||||
compiler = "gcc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "dynamic"
|
||||
flags = []
|
||||
|
||||
[build.phases]
|
||||
configure = './configure --prefix=/usr --libdir=/usr/lib --datadir=/usr/share'
|
||||
compile = 'true'
|
||||
install = 'make install DESTDIR=/out'
|
||||
|
||||
[deps]
|
||||
build = ["pkgconf"]
|
||||
@@ -0,0 +1,31 @@
|
||||
# json-glib 1.10.8 — parser/serializador JSON con el modelo de objetos de GLib (JsonNode/JsonObject).
|
||||
# La dep MÁS COMPARTIDA de la frontera GNOME: la exigen mutter (config de monitores), gnome-shell y
|
||||
# gnome-session. Por eso es el primer ladrillo de la onda 3 después de gnome-desktop. meson static.
|
||||
# sha256 REAL de `curl -sL <url> | sha256sum`.
|
||||
#
|
||||
# Feature-minimal: introspection=false, docs/man/tests off, nls=false (las traducciones piden msgfmt
|
||||
# completo y el corpus sólo tiene gettext-tiny — mismo motivo que iso-codes).
|
||||
#
|
||||
# CUÁNDO SE DA VUELTA introspection: si gnome-shell resulta pedir Json-1.0.typelib desde JS
|
||||
# (`imports.gi.Json`), esta receta tiene que pasar a la ISLA DINÁMICA como glib/gtk4 — el typelib
|
||||
# exige un .so real que gjs pueda dlopen(). Mientras sólo la enlace mutter en C, static alcanza.
|
||||
name = "json-glib"
|
||||
version = "1.10.8"
|
||||
|
||||
[source]
|
||||
tarball = "https://download.gnome.org/sources/json-glib/1.10/json-glib-1.10.8.tar.xz"
|
||||
sha256 = "55c5c141a564245b8f8fbe7698663c87a45a7333c2a2c56f06f811ab73b212dd"
|
||||
|
||||
[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=disabled -Ddocumentation=disabled -Dman=false -Dtests=false -Dconformance=false -Dnls=disabled -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"
|
||||
|
||||
# glib aporta gobject/gio + su cierre .pc (static ⇒ pkg-config resuelve Requires.private).
|
||||
[deps]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "glib", "libffi", "pcre2", "zlib"]
|
||||
@@ -0,0 +1,26 @@
|
||||
# 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"
|
||||
|
||||
[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"]
|
||||
@@ -0,0 +1,24 @@
|
||||
# libdisplay-info 0.2.0 — parseo de EDID/DisplayID (libdisplay-info.so). Campaña KDE (ADR 0011): sustrato
|
||||
# de kwin (pkg_check_modules(libdisplay-info>=0.2.0) REQUIRED, lectura de EDID de los monitores). Meson.
|
||||
# En build necesita pnp.ids: usa dependency('hwdata') native → si no está, cae a /usr/share/hwdata/pnp.ids
|
||||
# y meson `files()` EXIGE que exista ⇒ hwdata es dep de build. Sin di-edid-decode (tool) para evitar más deps.
|
||||
name = "libdisplay-info"
|
||||
version = "0.2.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://gitlab.freedesktop.org/emersion/libdisplay-info/-/archive/0.2.0/libdisplay-info-0.2.0.tar.gz"
|
||||
sha256 = "f7331fcaf5527251b84c8fb84238d06cd2f458422ce950c80e86c72927aa8c2b"
|
||||
|
||||
[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 meson setup output --prefix=/usr --buildtype=release"
|
||||
compile = "ninja -C output"
|
||||
install = "DESTDIR=/out ninja -C output install"
|
||||
|
||||
[deps]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "hwdata"]
|
||||
Reference in New Issue
Block a user