From 71904ebbdee562bc5b0c8dbfd126b7392d6b2bb4 Mon Sep 17 00:00:00 2001 From: Sergio Date: Wed, 9 Sep 2026 18:55:20 +0000 Subject: [PATCH] =?UTF-8?q?xwayland:=20retirar=20la=20receta=20=E2=80=94?= =?UTF-8?q?=20la=20decisi=C3=B3n=20ya=20estaba=20escrita=20y=20dec=C3=ADa?= =?UTF-8?q?=20que=20no?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Decisión del usuario (2026-09-09): X11 se erradica, y eso incluye no construir el servidor que lo mantiene vivo. La receta se retira; `xwayland` VUELVE a ser lo que sus propios documentos decían. ⚠ LO QUE APARECIÓ AL MIRAR: esto ya estaba decidido, por escrito y DOS VECES, el 2026-09-03 (commit f64859ba): docs/state/targets.toml:143 «`xwayland` sigue acá como RAÍZ pero su receta NO se va a escribir: lo provee una imagen ajena enjaulada … el hueco se disuelve sin receta y sin tocar la postura Wayland-only» docs/state/qorpa-ajenos.toml «X11 está fuera de alcance para toda la distro … el Xwayland vive DENTRO de la imagen —Arch y Fedora ya lo traen— y se cuelga de nuestro kwin por el socket. La receta no se escribe.» El 2026-09-08 se escribió igual (3d8c6fc6, «cerrar los 3 huecos que quedaban»), y los dos documentos siguieron diciendo lo contrario durante toda la jornada de hoy. No hubo que cambiar ninguno de los dos: alcanzó con borrar la receta para que el repo volviera a coincidir con ellos. MEDIDO ANTES DE SACARLA, no supuesto: · Sólo kwin podía lanzarlo. mutter va con -Dxwayland=false y wlroots con -Dxwayland=disabled ⇒ GNOME, sway y COSMIC no podían usarlo aunque el binario existiera. Nunca sirvió a más de un perfil de los cuatro. · NINGUNA app del catálogo necesita servidor X: todo lo gráfico es Wayland nativo (Qt6 con qtwayland, GTK3 Wayland-only, mpv, OBS con ENABLE_WAYLAND=ON, foot, fuzzel, swayimg). El consumidor que lo justificaba está nombrado en qorpa-ajenos.toml y es Steam, que corre enjaulado y TRAE EL SUYO ADENTRO. · Y la imagen KDE ya arrancaba sin él: la propia receta contaba que KDE sellaba 1037/1037 con las apps X11 muertas. Esto no estrena una configuración, vuelve a una ya probada. EFECTO EN EL GRAFO, verificado regenerando: `xwayland` deja de ser una receta y pasa a clase `ajeno` —que es como targets.toml decía que había que contarlo— y el perfil escritorio-kde baja de 304 a 299 nodos con deuda 0. Los cinco que se van son la cadena que sólo él usaba. ⚠ QUEDAN CINCO RECETAS HUÉRFANAS, y no las borro de paso: `libfontenc`, `libXfont2`, `libxkbfile`, `libxshmfence` y `xkbcomp`. Medido: NADA más en el catálogo las declara, y ninguna es raíz de ningún perfil ⇒ siguen selladas pero no entran en ninguna imagen. Sacarlas es su propia unidad de trabajo y su propia decisión. El triaje pasa de `provisto` a `opcional` con la historia entera en su `porque`, y con eso se cae el alias `xwayland xwayland` de alias-triaje.txt, que habría afirmado que tenemos una receta con ese nombre. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01LCt3ettR4Z7b6wPCBmbvEV --- docs/state/alias-triaje.txt | 1 - docs/state/build-state-kde.json | 144 +++++++++++------------------ docs/state/drenaje.json | 2 +- docs/state/frontera-triaje.toml | 6 +- recipes/incoming-kde/xwayland.toml | 69 -------------- 5 files changed, 56 insertions(+), 166 deletions(-) delete mode 100644 recipes/incoming-kde/xwayland.toml diff --git a/docs/state/alias-triaje.txt b/docs/state/alias-triaje.txt index 8898c1cf..f227f0fa 100644 --- a/docs/state/alias-triaje.txt +++ b/docs/state/alias-triaje.txt @@ -25,4 +25,3 @@ qqc2-breeze-style qqc2-breeze-style shared-mime-info shared-mime-info uname coreutils wayland-scanner wayland -xwayland xwayland diff --git a/docs/state/build-state-kde.json b/docs/state/build-state-kde.json index a2b394cd..796f7cb3 100644 --- a/docs/state/build-state-kde.json +++ b/docs/state/build-state-kde.json @@ -1,16 +1,16 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 1046, + "recipes": 1045, "nodes": 1047, - "sealed": 1046, - "ajeno": 1 + "sealed": 1045, + "ajeno": 2 }, "by_class": { - "ajeno": 1, + "ajeno": 2, "c": 400, "go": 362, - "gui": 45, + "gui": 44, "kernel": 6, "rust": 233 }, @@ -21,7 +21,8 @@ "ajeno": 1 }, "incoming-kde": { - "sealed": 194 + "sealed": 193, + "ajeno": 1 } }, "by_profile": { @@ -37,8 +38,9 @@ }, "escritorio-kde": { "raices": 48, - "clausura": 304, - "sealed": 304 + "clausura": 299, + "sealed": 298, + "ajeno": 1 }, "escritorio-mirada": { "raices": 17, @@ -46,7 +48,7 @@ "sealed": 37 } }, - "sin_perfil": 648, + "sin_perfil": 653, "orphan_deps": [], "topo_ok": true, "nodes": { @@ -5278,7 +5280,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 27 + "dependientes_total": 26 }, "freeze": { "iname": "freeze", @@ -13135,7 +13137,7 @@ "perfiles": [ "escritorio-kde" ], - "dependientes_total": 63 + "dependientes_total": 62 }, "libXau": { "iname": "libXau", @@ -13157,7 +13159,7 @@ "perfiles": [ "escritorio-kde" ], - "dependientes_total": 70 + "dependientes_total": 69 }, "libXcursor": { "iname": "libXcursor", @@ -13208,7 +13210,7 @@ "perfiles": [ "escritorio-kde" ], - "dependientes_total": 70 + "dependientes_total": 69 }, "libXext": { "iname": "libXext", @@ -13287,10 +13289,8 @@ "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [ - "escritorio-kde" - ], - "dependientes_total": 1 + "perfiles": [], + "dependientes_total": 0 }, "libXi": { "iname": "libXi", @@ -13612,7 +13612,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 150 + "dependientes_total": 149 }, "libelogind": { "iname": "libelogind", @@ -13658,7 +13658,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 22 + "dependientes_total": 21 }, "libevdev": { "iname": "libevdev", @@ -13766,10 +13766,8 @@ "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [ - "escritorio-kde" - ], - "dependientes_total": 2 + "perfiles": [], + "dependientes_total": 1 }, "libgcrypt": { "iname": "libgcrypt", @@ -14344,7 +14342,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 34 + "dependientes_total": 33 }, "libpthread-stubs": { "iname": "libpthread-stubs", @@ -14740,7 +14738,7 @@ "perfiles": [ "escritorio-kde" ], - "dependientes_total": 70 + "dependientes_total": 69 }, "libxcvt": { "iname": "libxcvt", @@ -14763,7 +14761,7 @@ "perfiles": [ "escritorio-kde" ], - "dependientes_total": 2 + "dependientes_total": 1 }, "libxkbcommon": { "iname": "libxkbcommon", @@ -14792,7 +14790,7 @@ "perfiles": [ "escritorio-kde" ], - "dependientes_total": 119 + "dependientes_total": 118 }, "libxkbfile": { "iname": "libxkbfile", @@ -14818,10 +14816,8 @@ "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [ - "escritorio-kde" - ], - "dependientes_total": 2 + "perfiles": [], + "dependientes_total": 1 }, "libxml2": { "iname": "libxml2", @@ -14911,10 +14907,8 @@ "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [ - "escritorio-kde" - ], - "dependientes_total": 1 + "perfiles": [], + "dependientes_total": 0 }, "libxslt": { "iname": "libxslt", @@ -15755,7 +15749,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 147 + "dependientes_total": 146 }, "mesa-llvmpipe": { "iname": "mesa-llvmpipe", @@ -15851,7 +15845,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 124 + "dependientes_total": 123 }, "micro": { "iname": "micro", @@ -17340,7 +17334,7 @@ "perfiles": [ "escritorio-kde" ], - "dependientes_total": 23 + "dependientes_total": 22 }, "openssl-threads": { "iname": "openssl-threads", @@ -18069,7 +18063,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 46 + "dependientes_total": 45 }, "pkgconf": { "iname": "pkgconf", @@ -18093,7 +18087,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 396 + "dependientes_total": 395 }, "plasma-activities": { "iname": "plasma-activities", @@ -19652,7 +19646,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 315 + "dependientes_total": 314 }, "qcoro": { "iname": "qcoro", @@ -20877,7 +20871,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 267 + "dependientes_total": 266 }, "sassc": { "iname": "sassc", @@ -23422,7 +23416,7 @@ "perfiles": [ "escritorio-kde" ], - "dependientes_total": 26 + "dependientes_total": 25 }, "uutils": { "iname": "uutils", @@ -23993,7 +23987,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 161 + "dependientes_total": 160 }, "wayland-protocols": { "iname": "wayland-protocols", @@ -24021,7 +24015,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 58 + "dependientes_total": 57 }, "websocketd": { "iname": "websocketd", @@ -24540,10 +24534,8 @@ "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [ - "escritorio-kde" - ], - "dependientes_total": 1 + "perfiles": [], + "dependientes_total": 0 }, "xkeyboard-config": { "iname": "xkeyboard-config", @@ -24569,7 +24561,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 7 + "dependientes_total": 6 }, "xorgproto": { "iname": "xorgproto", @@ -24592,7 +24584,7 @@ "perfiles": [ "escritorio-kde" ], - "dependientes_total": 78 + "dependientes_total": 77 }, "xorriso": { "iname": "xorriso", @@ -24681,49 +24673,19 @@ "perfiles": [ "escritorio-kde" ], - "dependientes_total": 6 + "dependientes_total": 5 }, "xwayland": { "iname": "xwayland", - "version": "24.1.13", - "link": "dynamic", - "compiler": "zig-cc", - "deps": [ - "freetype-shared", - "libX11", - "libXau", - "libXdmcp", - "libXfont2", - "libdrm", - "libepoxy", - "libfontenc", - "libpng-shared", - "libxcb", - "libxcvt", - "libxkbcommon", - "libxkbfile", - "libxshmfence", - "mesa", - "meson", - "openssl", - "pixman", - "pkgconf", - "python3", - "samurai", - "util-macros", - "wayland", - "wayland-protocols", - "xkbcomp", - "xkeyboard-config", - "xorgproto", - "xtrans", - "zlib" - ], - "cls": "gui", + "version": null, + "link": null, + "compiler": null, + "deps": [], + "cls": "ajeno", "queue": "incoming-kde", - "foreign": false, - "hash": "b3:d43f7ba02a1f9f4b2cf01e1d03610020779991fb13adbd804f5dd3007244bf3d", - "state": "sealed", + "imagen": "arch", + "hash": null, + "state": "ajeno", "blocked_by": [], "unblocks": 0, "perfiles": [ @@ -25082,7 +25044,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 113 + "dependientes_total": 112 }, "zlib-ng": { "iname": "zlib-ng", diff --git a/docs/state/drenaje.json b/docs/state/drenaje.json index e02bb5d3..80c8a1b3 100644 --- a/docs/state/drenaje.json +++ b/docs/state/drenaje.json @@ -40,7 +40,7 @@ }, "escritorio-kde": { "grafo": "docs/state/build-state-kde.json", - "nodos": 304, + "nodos": 299, "en_deuda": 0, "ondas": 0, "profundidad": 0, diff --git a/docs/state/frontera-triaje.toml b/docs/state/frontera-triaje.toml index c1695b11..05192584 100644 --- a/docs/state/frontera-triaje.toml +++ b/docs/state/frontera-triaje.toml @@ -2509,10 +2509,8 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["ffmpeg"] [candidato."xwayland"] -veredicto = "provisto" -sugerencia = "opcional?" -provee = "xwayland" -porque = "sin él NINGUNA app X11 corre en el escritorio Wayland. Gap de RUNTIME" +veredicto = "opcional" +porque = "X11 está FUERA DE ALCANCE para toda la distro y la decisión ya estaba escrita dos veces el 2026-09-03 (commit f64859ba): targets.toml y qorpa-ajenos.toml dicen «la receta no se escribe» — el Xwayland vive DENTRO de la imagen ajena enjaulada (Arch ya lo trae) y se cuelga de kwin por el socket. Se escribió igual el 2026-09-08 y se RETIRA el 2026-09-09 por decisión del usuario. Medido antes de sacarla: sólo kwin podía lanzarlo (mutter va -Dxwayland=false y wlroots -Dxwayland=disabled) y NINGUNA app del catálogo necesita servidor X — todo lo gráfico es Wayland nativo. Sigue como raíz en targets.toml a propósito, contado en clase `ajeno`" perfiles = ["escritorio-kde"] piden = ["kwin"] ausente = true # ya no aparece en el último barrido de la frontera diff --git a/recipes/incoming-kde/xwayland.toml b/recipes/incoming-kde/xwayland.toml deleted file mode 100644 index 99d9c9b6..00000000 --- a/recipes/incoming-kde/xwayland.toml +++ /dev/null @@ -1,69 +0,0 @@ -# xwayland 24.1.13 — el servidor X que corre DENTRO de una sesión Wayland para que las apps X11 -# sigan funcionando. NO es «volver a X11»: la distro es Wayland-only y eso se refiere al servidor de -# la sesión y al display manager. Xwayland es lo contrario — la capa que permite jubilar X11 SIN -# perder las aplicaciones que aún no se portaron. -# -# POR QUÉ AHORA. Es el último HUECO de `escritorio-kde` en la frontera, y estaba declarado como raíz -# en `docs/state/targets.toml` desde el 2026-07-22 («sin apps X11»). `kwin` ya se construye con -# `-DKWIN_BUILD_X11=ON`, o sea que el lado del compositor está compilado: lo que faltaba era el -# BINARIO que kwin lanza. Hueco de RUNTIME puro — nada de build lo necesitaba y por eso KDE sellaba -# 1037/1037 con las apps X11 muertas. -# -# ⚠ CADENA DE 4 ESLABONES PREVIOS, todos autorados en la misma tanda porque ninguno existía: -# `libfontenc` → `libXfont2` (la capa de fuentes DEL SERVIDOR, no del cliente), `libxkbfile` y -# `libxshmfence`. Su meson los pide sin `required: false`, así que no son opcionales. -name = "xwayland" -version = "24.1.13" -license = "MIT" - -[source] -tarball = "https://www.x.org/releases/individual/xserver/xwayland-24.1.13.tar.xz" -sha256 = "173aea3d6f79609164c04528e1c8e4c9b60fcd59391c3c9dad4667297d727fb6" - -[build] -compiler = "zig-cc" -target = "x86_64-linux-musl" -link = "dynamic" - -[build.phases] -# Apagado lo que esta distro no tiene ni quiere: -# xvfb — servidor de pantalla virtual, no pinta nada acá -# secure-rpc — pide libtirpc, que no está en el catálogo -# xdmcp — protocolo de display manager remoto; no hay XDM en una distro Wayland-only -# xwayland_ei — emulación de entrada por libei, que tampoco tenemos -# glx — ⚠ NO es una preferencia: `glx/meson.build:43` pide `dependency('gl')` y en esta -# distro NINGUNA cola publica `gl.pc` ni `libGL.so` (las tres recetas de mesa van -# con glx y glvnd apagados, decisión de catálogo anterior a esto). Consecuencia -# honesta: las apps X11 corren en 2D bajo Xwayland; las que piden OpenGL de -# escritorio ya estaban bloqueadas en toda la distro, no las bloquea esta receta. -# ⚠ El `meson.build` RAÍZ engaña: ahí `build_glx` sólo enciende una tabla hash y -# parece gratis. El requisito de verdad está en el subdirectorio. -# `xkb_dir` apunta a los datos de `xkeyboard-config`, que ya está en el corpus: sin eso el servidor -# arranca sin mapa de teclado, que es el mismo síntoma que ya nos costó una noche en sway. -configure = "meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Dxvfb=false -Dsecure-rpc=false -Dxdmcp=false -Dxdm-auth-1=false -Dxwayland_ei=false -Dglx=false -Dxkb_dir=/usr/share/X11/xkb -Dxkb_output_dir=/var/lib/xkb" -compile = "ninja -C output" -install = "DESTDIR=/out meson install -C output --no-rebuild" - -[deps] -# `xkbcomp` va en RUNTIME, no en build: Xwayland lo lanza como SUBPROCESO para compilar el mapa de -# teclado (`xkb/ddxLoad.c`, XkbRunXkbComp). Su meson lo pide con `required: false` —sólo para -# averiguar rutas—, así que sin él la receta COMPILA IGUAL y el servidor arranca sin teclado. El -# propio fuente lo dice: «Errors from xkbcomp are not fatal to the X server». Un hueco que el build -# no puede delatar, encontrado leyendo la fuente y no esperando a que fallara. -runtime = ["xkbcomp"] -# ⚠ Las deps de hammer NO son transitivas: va la clausura entera, no la primera capa. -build = ["meson", "samurai", "python3", "pkgconf", "util-macros", - "xorgproto", "xtrans", "libX11", "libxcb", "libXau", "libXdmcp", - "libfontenc", "libXfont2", "libxkbfile", "libxshmfence", - "pixman", "libdrm", "mesa", "libepoxy", "libxcvt", "libxkbcommon", - "wayland", "wayland-protocols", "freetype-shared", "libpng-shared", "zlib", "xkeyboard-config", - # SHA-1: el servidor lo usa para las cookies de autorización (XDM-AUTHORIZATION). Su meson - # prueba libsha1 → nettle → libgcrypt → openssl y ABORTA si no hay ninguna («No suitable SHA1 - # implementation found»). Se elige `openssl`, que ya está en el catálogo y en la clausura de - # media cola KDE, en vez de traer nettle o libsha1 sólo para esto. - "openssl"] -# ⚠ `freetype-shared` y `libpng-shared`, no las estáticas, y `libpng` aunque xwayland no lo use: -# la cadena de pkg-config es `xfont2.pc` → `freetype2.pc` → `Requires: zlib, libpng`, y se -# resuelve TRANSITIVAMENTE. Sin libpng el meson dice «Run-time dependency xfont2 found: NO», -# culpando a xfont2, que está perfectamente instalada. Compartidas porque es lo que enlaza -# libXfont2.so: mezclar la estática ahí revienta en PIC.