gioser

sergio/takana

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

TOML 1389Shell 137Markdown 80Rust 802602 Definiciones

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>

6f9e30bcaf4f140d17d63c2a348a4be35cb49d20 · por sergio · (hace 2 meses) · padre 4ae5a3422 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

11 archivos · +905 −197

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"]