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>
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
11 archivos · +905 −197
- docs/state/build-state-gnome.json +556 −197
- recipes/incoming-gnome/gdm.toml +32 −0
- recipes/incoming-gnome/gjs.toml +36 −0
- recipes/incoming-gnome/gnome-desktop.toml +43 −0
- recipes/incoming-gnome/gnome-session.toml +30 −0
- recipes/incoming-gnome/gnome-settings-daemon.toml +45 −0
- recipes/incoming-gnome/gnome-shell.toml +37 −0
- recipes/incoming-gnome/gobject-introspection.toml +36 −0
- recipes/incoming-gnome/gsettings-desktop-schemas.toml +26 −0
- recipes/incoming-gnome/mutter.toml +36 −0
- recipes/incoming-gnome/xdg-desktop-portal-gnome.toml +28 −0
diff --git a/docs/state/build-state-gnome.json b/docs/state/build-state-gnome.json
index 1e19eb7f..8fbc2891 100644
--- a/docs/state/build-state-gnome.json
+++ b/docs/state/build-state-gnome.json
@@ -1,24 +1,22 @@
{
"schema": "hammer-build-state/1",
"totals": {
- "recipes": 773,
- "nodes": 782,
+ "recipes": 783,
+ "nodes": 783,
"sealed": 769,
- "never": 2,
- "debt": 2,
- "wanted": 9
+ "never": 12,
+ "debt": 2
},
"by_class": {
- "c": 148,
+ "c": 153,
"go": 362,
- "gui": 31,
+ "gui": 36,
"kernel": 6,
- "rust": 226,
- "wanted": 9
+ "rust": 226
},
"debt_by_class": {
- "c": 2,
- "gui": 1,
+ "c": 7,
+ "gui": 6,
"rust": 1
},
"by_queue": {
@@ -29,7 +27,7 @@
},
"incoming-gnome": {
"sealed": 4,
- "wanted": 9
+ "never": 10
}
},
"by_profile": {
@@ -45,7 +43,9 @@
},
"escritorio-gnome": {
"raices": 9,
- "clausura": 0
+ "clausura": 70,
+ "sealed": 60,
+ "never": 10
},
"escritorio-mirada": {
"raices": 14,
@@ -54,7 +54,7 @@
"debt": 2
}
},
- "sin_perfil": 680,
+ "sin_perfil": 649,
"orphan_deps": [],
"topo_ok": true,
"nodes": {
@@ -385,7 +385,9 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 4
},
"argo-rollouts": {
@@ -791,6 +793,7 @@
"perfiles": [
"base",
"cli",
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
@@ -822,14 +825,15 @@
"hash": "b3:9463c983ee94a155f37a9d42bc8117aa09c5640a790796af65ea29b846d8d601",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
+ "unblocks": 1,
"perfiles": [
"base",
"cli",
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 18
+ "dependientes_total": 19
},
"blackbox_exporter": {
"iname": "blackbox_exporter",
@@ -1143,9 +1147,11 @@
"hash": "b3:439fe1abc78f5e6e74e4b4003bb52c01b9adac875e22d98a599e33c30fe2fcc3",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 8
+ "unblocks": 7,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 15
},
"caligula": {
"iname": "caligula",
@@ -1862,7 +1868,9 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 1
},
"cdncheck": {
@@ -2131,6 +2139,7 @@
"blocked_by": [],
"unblocks": 1,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde"
],
"dependientes_total": 135
@@ -2526,7 +2535,8 @@
"unblocks": 0,
"perfiles": [
"base",
- "cli"
+ "cli",
+ "escritorio-gnome"
],
"dependientes_total": 7
},
@@ -3412,14 +3422,15 @@
"hash": "b3:e6990b3e555f0c54b085cb6e49672ac38f6d8700b4a8afe7688c69962a5fa542",
"state": "sealed",
"blocked_by": [],
- "unblocks": 2,
+ "unblocks": 7,
"perfiles": [
"base",
"cli",
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 29
+ "dependientes_total": 34
},
"eza": {
"iname": "eza",
@@ -3669,14 +3680,15 @@
"hash": "b3:a03274567711503cfc5a0147dbe60337e04f6f489d025b14e38eeab2214e35b3",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
+ "unblocks": 1,
"perfiles": [
"base",
"cli",
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 16
+ "dependientes_total": 17
},
"flyctl": {
"iname": "flyctl",
@@ -3730,11 +3742,12 @@
"hash": "b3:b6957a16be9a666c0698855a55a63ac98ea3e473a250705af5cc4029f0674814",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
+ "unblocks": 5,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde"
],
- "dependientes_total": 17
+ "dependientes_total": 22
},
"foot": {
"iname": "foot",
@@ -3821,11 +3834,12 @@
"hash": "b3:26df6ca03d8e528d1d2865aabf19217128571e01a05fd9b008625e3558fec8e4",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
+ "unblocks": 5,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde"
],
- "dependientes_total": 19
+ "dependientes_total": 24
},
"freeze": {
"iname": "freeze",
@@ -3860,9 +3874,11 @@
"hash": "b3:ef3cb3d2d6b27cfdaa6711566c58ae89b8e730f0bd5bfaa7cad225cf2eb04726",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 8
+ "unblocks": 5,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 13
},
"fselect": {
"iname": "fselect",
@@ -3987,23 +4003,41 @@
"hash": "b3:3f3e37b30cd36c8cb3aa411c31b576e8b2f38f5f3a898e711738eeb6a284a500",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 7
+ "unblocks": 6,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 13
},
"gdm": {
"iname": "gdm",
- "version": null,
- "link": null,
- "compiler": null,
- "deps": [],
- "cls": "wanted",
+ "version": "48.0",
+ "link": "static",
+ "compiler": "zig-cc",
+ "deps": [
+ "meson",
+ "samurai",
+ "python3",
+ "pkgconf",
+ "gnome-session",
+ "gsettings-desktop-schemas",
+ "glib",
+ "libffi",
+ "pcre2",
+ "zlib"
+ ],
+ "cls": "c",
"queue": "incoming-gnome",
- "hash": null,
- "state": "wanted",
- "blocked_by": [],
+ "hash": "b3:ae3ddd9fc3023cfe94f1b44370f1887c0decc72e8a178787f5d31313a218b84d",
+ "state": "never",
+ "blocked_by": [
+ "gnome-session",
+ "gsettings-desktop-schemas"
+ ],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 0
},
"gdu": {
@@ -4053,6 +4087,7 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde"
],
"dependientes_total": 78
@@ -4448,18 +4483,33 @@
},
"gjs": {
"iname": "gjs",
- "version": null,
- "link": null,
- "compiler": null,
- "deps": [],
- "cls": "wanted",
+ "version": "1.84.2",
+ "link": "dynamic",
+ "compiler": "zig-cc",
+ "deps": [
+ "spidermonkey",
+ "glib",
+ "cairo",
+ "libffi",
+ "readline",
+ "gobject-introspection",
+ "meson",
+ "samurai",
+ "python3",
+ "pkgconf"
+ ],
+ "cls": "c",
"queue": "incoming-gnome",
- "hash": null,
- "state": "wanted",
- "blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 0
+ "hash": "b3:792d63750f7af79882f7b7ee5445ee0047cd8b0551e624dd6c0d4464057ec4f0",
+ "state": "never",
+ "blocked_by": [
+ "gobject-introspection"
+ ],
+ "unblocks": 1,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 1
},
"glab": {
"iname": "glab",
@@ -4497,9 +4547,11 @@
"hash": "b3:93d2cad06701b3b6c42dff4644e20012471ea0a71795fb24dc63c6708b5c75c4",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 14
+ "unblocks": 10,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 24
},
"glow": {
"iname": "glow",
@@ -4520,62 +4572,192 @@
},
"gnome-desktop": {
"iname": "gnome-desktop",
- "version": null,
- "link": null,
- "compiler": null,
- "deps": [],
- "cls": "wanted",
+ "version": "44.5",
+ "link": "static",
+ "compiler": "zig-cc",
+ "deps": [
+ "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"
+ ],
+ "cls": "gui",
"queue": "incoming-gnome",
- "hash": null,
- "state": "wanted",
+ "hash": "b3:2662ae233e5be92f4753fecc444aed0d9b654c14e8012745eb1149f7027450e8",
+ "state": "never",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 0
+ "unblocks": 5,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 5
},
"gnome-session": {
"iname": "gnome-session",
- "version": null,
- "link": null,
- "compiler": null,
- "deps": [],
- "cls": "wanted",
+ "version": "48.0",
+ "link": "static",
+ "compiler": "zig-cc",
+ "deps": [
+ "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"
+ ],
+ "cls": "gui",
"queue": "incoming-gnome",
- "hash": null,
- "state": "wanted",
- "blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 0
+ "hash": "b3:c948f212fd7e3ad60a46fb6d2298c28c55113772cff96310803408b262073ae2",
+ "state": "never",
+ "blocked_by": [
+ "gsettings-desktop-schemas",
+ "gnome-desktop"
+ ],
+ "unblocks": 1,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 1
},
"gnome-settings-daemon": {
"iname": "gnome-settings-daemon",
- "version": null,
- "link": null,
- "compiler": null,
- "deps": [],
- "cls": "wanted",
+ "version": "48.1",
+ "link": "static",
+ "compiler": "zig-cc",
+ "deps": [
+ "meson",
+ "samurai",
+ "python3",
+ "pkgconf",
+ "gobject-introspection",
+ "glib",
+ "gsettings-desktop-schemas",
+ "gnome-desktop",
+ "pango",
+ "cairo",
+ "gdk-pixbuf",
+ "harfbuzz",
+ "libffi",
+ "pcre2",
+ "zlib"
+ ],
+ "cls": "gui",
"queue": "incoming-gnome",
- "hash": null,
- "state": "wanted",
- "blocked_by": [],
+ "hash": "b3:6aa3521a0562582c8a5a337c124d081f41e0d074518a9a8f7e3c5f331d19c89b",
+ "state": "never",
+ "blocked_by": [
+ "gobject-introspection",
+ "gsettings-desktop-schemas",
+ "gnome-desktop"
+ ],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 0
},
"gnome-shell": {
"iname": "gnome-shell",
- "version": null,
- "link": null,
- "compiler": null,
- "deps": [],
- "cls": "wanted",
+ "version": "48.8",
+ "link": "static",
+ "compiler": "zig-cc",
+ "deps": [
+ "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"
+ ],
+ "cls": "gui",
"queue": "incoming-gnome",
- "hash": null,
- "state": "wanted",
- "blocked_by": [],
+ "hash": "b3:a8ca8abf121c0be237bb1d6b5e9562e8fe1904f1db6bf6ded0ed9ae8bec068d8",
+ "state": "never",
+ "blocked_by": [
+ "mutter",
+ "gjs",
+ "gobject-introspection",
+ "gsettings-desktop-schemas",
+ "gnome-desktop"
+ ],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 0
},
"gnupg": {
@@ -4759,6 +4941,34 @@
"perfiles": [],
"dependientes_total": 0
},
+ "gobject-introspection": {
+ "iname": "gobject-introspection",
+ "version": "1.84.0",
+ "link": "static",
+ "compiler": "zig-cc",
+ "deps": [
+ "meson",
+ "samurai",
+ "python3",
+ "pkgconf",
+ "flex",
+ "bison",
+ "glib",
+ "libffi",
+ "pcre2",
+ "zlib"
+ ],
+ "cls": "c",
+ "queue": "incoming-gnome",
+ "hash": "b3:428044a8d99c46a5b4f76733e6f408c6b931b48ff5f5f50b5bd8b0ca2fbcf9c5",
+ "state": "never",
+ "blocked_by": [],
+ "unblocks": 5,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 5
+ },
"gobuster": {
"iname": "gobuster",
"version": "3.8.2",
@@ -5303,6 +5513,7 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde"
],
"dependientes_total": 4
@@ -5374,9 +5585,11 @@
"hash": "b3:49369c8e14a089c5859a17f930ca2e3ef946be159ccbfa413f596a62df76233d",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 7
+ "unblocks": 5,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 12
},
"grcov": {
"iname": "grcov",
@@ -5493,18 +5706,29 @@
},
"gsettings-desktop-schemas": {
"iname": "gsettings-desktop-schemas",
- "version": null,
- "link": null,
- "compiler": null,
- "deps": [],
- "cls": "wanted",
+ "version": "48.0",
+ "link": "static",
+ "compiler": "zig-cc",
+ "deps": [
+ "meson",
+ "samurai",
+ "python3",
+ "pkgconf",
+ "glib",
+ "libffi",
+ "pcre2",
+ "zlib"
+ ],
+ "cls": "c",
"queue": "incoming-gnome",
- "hash": null,
- "state": "wanted",
+ "hash": "b3:4777231b1089968322b64957e95d9a3070d1d1b2bf12669f84d673781c8b6171",
+ "state": "never",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 0
+ "unblocks": 6,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 6
},
"gtk4": {
"iname": "gtk4",
@@ -5545,9 +5769,11 @@
"hash": "b3:5df1b9139980db8b5c3023e9ebd1f30677d0ebe7804d0fa3ffc41a35206dec2d",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 6
+ "unblocks": 5,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 11
},
"gtk4-hello": {
"iname": "gtk4-hello",
@@ -5806,9 +6032,11 @@
"hash": "b3:05322806ed0f6aafc6737d47b8a741e66e78216c43be478e338661fad9b90e9d",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 10
+ "unblocks": 6,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 16
},
"hcl2json": {
"iname": "hcl2json",
@@ -6372,7 +6600,9 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 1
},
"jaq": {
@@ -7499,9 +7729,11 @@
"hash": "b3:ef878a2f3128453f73a515783224188fb0742d8a2ae18ec50c90b034559d0141",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 3
+ "unblocks": 2,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 5
},
"libarchive": {
"iname": "libarchive",
@@ -7580,12 +7812,13 @@
"hash": "b3:62525e34e17993ad51369c816c96ef4ca812184998b31fe98dc1f3f0778b436b",
"state": "sealed",
"blocked_by": [],
- "unblocks": 2,
+ "unblocks": 7,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 126
+ "dependientes_total": 131
},
"libepoxy": {
"iname": "libepoxy",
@@ -7604,11 +7837,12 @@
"hash": "b3:ea32e6b5b970564904e345078b70fcc48c6b55988cadd473d0b1c55766112389",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
+ "unblocks": 5,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde"
],
- "dependientes_total": 10
+ "dependientes_total": 15
},
"libevdev": {
"iname": "libevdev",
@@ -7627,6 +7861,7 @@
"blocked_by": [],
"unblocks": 1,
"perfiles": [
+ "escritorio-gnome",
"escritorio-mirada"
],
"dependientes_total": 2
@@ -7661,12 +7896,13 @@
"hash": "b3:2f6d62862c9978c79a5fc593625e110c6947475b8a6a600efa2c95b83033a6b1",
"state": "sealed",
"blocked_by": [],
- "unblocks": 2,
+ "unblocks": 12,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 33
+ "dependientes_total": 43
},
"libgcrypt": {
"iname": "libgcrypt",
@@ -7728,11 +7964,12 @@
"hash": "b3:de1a73ac32a8cc231c9cd87d940285713c48575bdd98fb7b96fd780b554a5482",
"state": "sealed",
"blocked_by": [],
- "unblocks": 1,
+ "unblocks": 2,
"perfiles": [
+ "escritorio-gnome",
"escritorio-mirada"
],
- "dependientes_total": 1
+ "dependientes_total": 2
},
"libjpeg-turbo": {
"iname": "libjpeg-turbo",
@@ -7747,9 +7984,11 @@
"hash": "b3:82e319b977f1c928cf90f6e998b3ea21c2edc6d0ba374e705843ea499f6ac3fd",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 9
+ "unblocks": 5,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 14
},
"libksba": {
"iname": "libksba",
@@ -7808,11 +8047,12 @@
"hash": "b3:f65887051274b7babcdd52f286ea5cdfe52e5ef8be2915bd0289990a076b987f",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
+ "unblocks": 5,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde"
],
- "dependientes_total": 16
+ "dependientes_total": 21
},
"libsass": {
"iname": "libsass",
@@ -7828,7 +8068,9 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 1
},
"libsodium": {
@@ -7882,9 +8124,11 @@
"hash": "b3:8d257bef5f5693db6db77cbc07b761ee3df1862ea8ea9103de7e8e01ab5e5594",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 7
+ "unblocks": 5,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 12
},
"libudev-zero": {
"iname": "libudev-zero",
@@ -7904,6 +8148,7 @@
"perfiles": [
"base",
"cli",
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
@@ -7982,11 +8227,12 @@
"hash": "b3:14d29058553e8b2a93ade023ecf80815749117d66d183ced6605d701675aeda1",
"state": "sealed",
"blocked_by": [],
- "unblocks": 1,
+ "unblocks": 3,
"perfiles": [
+ "escritorio-gnome",
"escritorio-mirada"
],
- "dependientes_total": 9
+ "dependientes_total": 11
},
"libxml2": {
"iname": "libxml2",
@@ -8002,7 +8248,9 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 7
},
"libxmlb": {
@@ -8027,7 +8275,9 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 5
},
"libyaml": {
@@ -8044,7 +8294,9 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 5
},
"linux": {
@@ -8347,6 +8599,7 @@
"perfiles": [
"base",
"cli",
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
@@ -8365,6 +8618,7 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
@@ -8438,6 +8692,7 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
@@ -8612,12 +8867,13 @@
"hash": "b3:6d443d9fdc833adbd0736ad52b51befdaa44902091932cc2cf23211974d050ab",
"state": "sealed",
"blocked_by": [],
- "unblocks": 2,
+ "unblocks": 7,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 124
+ "dependientes_total": 129
},
"mesa-llvmpipe": {
"iname": "mesa-llvmpipe",
@@ -8697,14 +8953,15 @@
"hash": "b3:b45037ebba3fdbf0361ef0fcc61dee5c9795b08c1ea4a0231aafc7dc45bdaf85",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
+ "unblocks": 10,
"perfiles": [
"base",
"cli",
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 43
+ "dependientes_total": 53
},
"micro": {
"iname": "micro",
@@ -9002,6 +9259,7 @@
"blocked_by": [],
"unblocks": 1,
"perfiles": [
+ "escritorio-gnome",
"escritorio-mirada"
],
"dependientes_total": 2
@@ -9057,18 +9315,57 @@
},
"mutter": {
"iname": "mutter",
- "version": null,
- "link": null,
- "compiler": null,
- "deps": [],
- "cls": "wanted",
+ "version": "48.8",
+ "link": "static",
+ "compiler": "zig-cc",
+ "deps": [
+ "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"
+ ],
+ "cls": "c",
"queue": "incoming-gnome",
- "hash": null,
- "state": "wanted",
- "blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 0
+ "hash": "b3:196c345afc42a947b1e58b3f3aadb4e5747b76b42465f1d9c6ee9ac1436f8437",
+ "state": "never",
+ "blocked_by": [
+ "gobject-introspection",
+ "gsettings-desktop-schemas",
+ "gnome-desktop"
+ ],
+ "unblocks": 1,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 1
},
"naabu": {
"iname": "naabu",
@@ -9137,7 +9434,9 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 1
},
"natls": {
@@ -9218,7 +9517,8 @@
"unblocks": 0,
"perfiles": [
"base",
- "cli"
+ "cli",
+ "escritorio-gnome"
],
"dependientes_total": 11
},
@@ -9403,7 +9703,9 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 1
},
"nsq": {
@@ -9626,7 +9928,8 @@
"unblocks": 0,
"perfiles": [
"base",
- "cli"
+ "cli",
+ "escritorio-gnome"
],
"dependientes_total": 25
},
@@ -9771,6 +10074,7 @@
"blocked_by": [],
"unblocks": 0,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
@@ -9821,9 +10125,11 @@
"hash": "b3:28cbbc6fb137a6182c07f615ad799601ecc7566fde8ae433f51706a4844e707d",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 7
+ "unblocks": 6,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 13
},
"parallel-disk-usage": {
"iname": "parallel-disk-usage",
@@ -9928,13 +10234,14 @@
"hash": "b3:06ad7580fd1d61db1822a5682dc0a9cef359329e4b4cf6bfa6c6dc507973f47d",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
+ "unblocks": 9,
"perfiles": [
"base",
"cli",
+ "escritorio-gnome",
"escritorio-kde"
],
- "dependientes_total": 19
+ "dependientes_total": 28
},
"peco": {
"iname": "peco",
@@ -9970,6 +10277,7 @@
"perfiles": [
"base",
"cli",
+ "escritorio-gnome",
"escritorio-kde"
],
"dependientes_total": 13
@@ -10089,12 +10397,13 @@
"hash": "b3:b86203bd3076ae913fe38fc27e27b3a27de6746a8dc0f870891823093c884248",
"state": "sealed",
"blocked_by": [],
- "unblocks": 1,
+ "unblocks": 6,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 15
+ "dependientes_total": 20
},
"pkgconf": {
"iname": "pkgconf",
@@ -10107,14 +10416,15 @@
"hash": "b3:f0b5d0b1cb4321b3c61f24a871b9a58da3ebb7eb903af4015e35bd41a6465437",
"state": "sealed",
"blocked_by": [],
- "unblocks": 2,
+ "unblocks": 12,
"perfiles": [
"base",
"cli",
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 249
+ "dependientes_total": 259
},
"plow": {
"iname": "plow",
@@ -10400,14 +10710,15 @@
"hash": "b3:27889026076514935b53d486951792d08ed7fd5210b44e7f92979c03c96be665",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
+ "unblocks": 10,
"perfiles": [
"base",
"cli",
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 197
+ "dependientes_total": 207
},
"qrcp": {
"iname": "qrcp",
@@ -10489,12 +10800,13 @@
"hash": "b3:03c0eb9ccaf42a65d876c0778b7ee53695f6389bbe5c4c9bcf606f8aa328ec36",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
+ "unblocks": 1,
"perfiles": [
"base",
- "cli"
+ "cli",
+ "escritorio-gnome"
],
- "dependientes_total": 2
+ "dependientes_total": 3
},
"reflex": {
"iname": "reflex",
@@ -10944,14 +11256,15 @@
"hash": "b3:b8fca71dd92577d3a44ef01a7d5779d86473553199e0c24736438cdc846e5199",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
+ "unblocks": 10,
"perfiles": [
"base",
"cli",
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 173
+ "dependientes_total": 183
},
"sassc": {
"iname": "sassc",
@@ -10968,7 +11281,9 @@
"state": "sealed",
"blocked_by": [],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 1
},
"scaleway-cli": {
@@ -11470,9 +11785,11 @@
"hash": "b3:c48dbd1016a3ff2da124fcc98eacd135e5b2d3acae66f9553ef8d41bc1c0905d",
"state": "sealed",
"blocked_by": [],
- "unblocks": 0,
- "perfiles": [],
- "dependientes_total": 0
+ "unblocks": 1,
+ "perfiles": [
+ "escritorio-gnome"
+ ],
+ "dependientes_total": 1
},
"sq": {
"iname": "sq",
@@ -13131,12 +13448,13 @@
"hash": "b3:c4eb40ba21935bba70ab54338fe755e3dc8b41541d877a48be544dfe73bbfe7b",
"state": "sealed",
"blocked_by": [],
- "unblocks": 2,
+ "unblocks": 7,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 126
+ "dependientes_total": 131
},
"wayland-protocols": {
"iname": "wayland-protocols",
@@ -13155,12 +13473,13 @@
"hash": "b3:a2122760419cc44529d9be002613aa3c66dad2efc31cd706dadfb6d2e4cdbb59",
"state": "sealed",
"blocked_by": [],
- "unblocks": 2,
+ "unblocks": 7,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 29
+ "dependientes_total": 34
},
"websocketd": {
"iname": "websocketd",
@@ -13368,17 +13687,55 @@
},
"xdg-desktop-portal-gnome": {
"iname": "xdg-desktop-portal-gnome",
- "version": null,
- "link": null,
- "compiler": null,
- "deps": [],
- "cls": "wanted",
+ "version": "48.0",
+ "link": "static",
+ "compiler": "zig-cc",
+ "deps": [
+ "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"
+ ],
+ "cls": "gui",
"queue": "incoming-gnome",
- "hash": null,
- "state": "wanted",
- "blocked_by": [],
+ "hash": "b3:4b1297f31d8a00c3d51e26daac997b772dcc192f6ded21c2fd2f7aed6374d9eb",
+ "state": "never",
+ "blocked_by": [
+ "gobject-introspection",
+ "gsettings-desktop-schemas",
+ "gnome-desktop"
+ ],
"unblocks": 0,
- "perfiles": [],
+ "perfiles": [
+ "escritorio-gnome"
+ ],
"dependientes_total": 0
},
"xh": {
@@ -13636,14 +13993,15 @@
"hash": "b3:28522f99f433496dbaacfa309f8e937d6526ac3c8db34b4a94b18e22656dcd33",
"state": "sealed",
"blocked_by": [],
- "unblocks": 3,
+ "unblocks": 12,
"perfiles": [
"base",
"cli",
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
- "dependientes_total": 68
+ "dependientes_total": 77
},
"zlib-ng": {
"iname": "zlib-ng",
@@ -13709,6 +14067,7 @@
"blocked_by": [],
"unblocks": 2,
"perfiles": [
+ "escritorio-gnome",
"escritorio-kde",
"escritorio-mirada"
],
diff --git a/recipes/incoming-gnome/gdm.toml b/recipes/incoming-gnome/gdm.toml
new file mode 100644
index 00000000..d8d18094
--- /dev/null
+++ b/recipes/incoming-gnome/gdm.toml
@@ -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"]
diff --git a/recipes/incoming-gnome/gjs.toml b/recipes/incoming-gnome/gjs.toml
new file mode 100644
index 00000000..469855f1
--- /dev/null
+++ b/recipes/incoming-gnome/gjs.toml
@@ -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"]
diff --git a/recipes/incoming-gnome/gnome-desktop.toml b/recipes/incoming-gnome/gnome-desktop.toml
new file mode 100644
index 00000000..bde74a4e
--- /dev/null
+++ b/recipes/incoming-gnome/gnome-desktop.toml
@@ -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"]
diff --git a/recipes/incoming-gnome/gnome-session.toml b/recipes/incoming-gnome/gnome-session.toml
new file mode 100644
index 00000000..2fc4edb5
--- /dev/null
+++ b/recipes/incoming-gnome/gnome-session.toml
@@ -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"]
diff --git a/recipes/incoming-gnome/gnome-settings-daemon.toml b/recipes/incoming-gnome/gnome-settings-daemon.toml
new file mode 100644
index 00000000..06f2096c
--- /dev/null
+++ b/recipes/incoming-gnome/gnome-settings-daemon.toml
@@ -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
diff --git a/recipes/incoming-gnome/gnome-shell.toml b/recipes/incoming-gnome/gnome-shell.toml
new file mode 100644
index 00000000..52484111
--- /dev/null
+++ b/recipes/incoming-gnome/gnome-shell.toml
@@ -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"]
diff --git a/recipes/incoming-gnome/gobject-introspection.toml b/recipes/incoming-gnome/gobject-introspection.toml
new file mode 100644
index 00000000..17314f23
--- /dev/null
+++ b/recipes/incoming-gnome/gobject-introspection.toml
@@ -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.
diff --git a/recipes/incoming-gnome/gsettings-desktop-schemas.toml b/recipes/incoming-gnome/gsettings-desktop-schemas.toml
new file mode 100644
index 00000000..14c856f8
--- /dev/null
+++ b/recipes/incoming-gnome/gsettings-desktop-schemas.toml
@@ -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"]
diff --git a/recipes/incoming-gnome/mutter.toml b/recipes/incoming-gnome/mutter.toml
new file mode 100644
index 00000000..8b53045d
--- /dev/null
+++ b/recipes/incoming-gnome/mutter.toml
@@ -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"]
diff --git a/recipes/incoming-gnome/xdg-desktop-portal-gnome.toml b/recipes/incoming-gnome/xdg-desktop-portal-gnome.toml
new file mode 100644
index 00000000..c1577b13
--- /dev/null
+++ b/recipes/incoming-gnome/xdg-desktop-portal-gnome.toml
@@ -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"]