From 1ef1bea605fc58025fb415ce39b68b9481c57756 Mon Sep 17 00:00:00 2001 From: Sergio Date: Wed, 9 Sep 2026 16:46:26 +0000 Subject: [PATCH] =?UTF-8?q?triaje:=20obs-studio=20y=20xwayland=20enteros?= =?UTF-8?q?=20=E2=80=94=2020=20m=C3=A1s,=20y=20dos=20alias=20por=20PUNTUAC?= =?UTF-8?q?I=C3=93N?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit De 125 pendientes a 105. Las dos recetas más pedidas del ranking quedan sin un solo candidato pendiente. Las de obs ya estaban medio contestadas en los comentarios de su propia receta; lo que faltaba era mirar el ARTEFACTO y no sólo la línea de cmake. ⚠ DOS ALIAS MÁS, y los dos son el mismo defecto del sembrador: cruza por nombre literal. nlohmann_json → nlohmann-json guion bajo vs guion libxfont_2 → libXfont2 minúsculas vs mayúsculas (primero de esta forma) Las dos recetas existen, están selladas y ya figuran en el [deps].build de quien «las pedía». Van tres alias por puntuación o caso (con mesa-gl-headers, cuatro en total): conviene normalizar en seed-graph.py antes que seguir triándolos de a uno. MEDIDO, NO DEDUCIDO — el artefacto sellado de obs-studio: · usr/lib/obs-plugins NO tiene obs-websocket.so ⇒ asio, websocket++ y qrcodegencpp no tienen a quién servir. El `touch plugins/obs-websocket/CMakeLists.txt` de la receta funciona. · readelf sobre los 13 plugins: CERO NEEDED a libcjson. El JSON que OBS enlaza es jansson. · obs-x264.so está y enlaza libx264.so.165 ⇒ la codificación H.264 del escritorio existe y no pasa por ffmpeg. Es lo que hace que -DENABLE_QSV11=OFF (libvpl) no cueste capacidad. ⚠ libxres es «la etiqueta no es el hecho» otra vez: lo que xwayland usa es `resourceproto` (meson.build:90), las CABECERAS del protocolo XRes, que vienen en xorgproto y ya están en [deps]. libXres es la librería CLIENTE — el servidor IMPLEMENTA la extensión, no la consume. ⚠ Y libxaw/libxmu/libxpm/libxt no aparecen en NINGÚN meson del árbol: sólo en .appveyor.yml y .gitlab-ci/debian-install.sh, que instalan las deps de todos los servidores del repo xserver (Xorg, Xnest, Xvfb). El sembrador leyó la expresión de nixpkgs, que hereda esa lista entera. ⚠ SEGUNDA ESCOTILLA 'auto' de la jornada (la primera fue cairo/lzo): xwayland pide libdecor con `required: false` y la opción en 'auto' (meson.build:210). Si libdecor entra al catálogo y cae en su clausura, xwayland cambia de ArtifactHash sin que nadie lo haya pedido. Sólo decoraría la ventana en modo ROOTFUL, que no es como lo lanza el compositor. dri-pkgconfig-stub cierra limpio: include/meson.build:9 lo pide como `dependency('dri', required: build_glx)` ⇒ obligatorio SÓLO con glx, y la receta va -Dglx=false porque ninguna cola publica gl.pc. font-util aparece una vez y es el default de `fontrootdir`, la raíz de las fuentes de mapa de bits legacy que la distro no publica. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01LCt3ettR4Z7b6wPCBmbvEV --- docs/state/alias-triaje.txt | 2 + docs/state/frontera-triaje.toml | 82 +++++++++++++++++---------------- 2 files changed, 44 insertions(+), 40 deletions(-) diff --git a/docs/state/alias-triaje.txt b/docs/state/alias-triaje.txt index a18cdc73..7e0615c2 100644 --- a/docs/state/alias-triaje.txt +++ b/docs/state/alias-triaje.txt @@ -11,8 +11,10 @@ libxcb-keysyms xcb-util-keysyms libxcb-render-util xcb-util-renderutil libxcb-util xcb-util libxcb-wm xcb-util-wm +libxfont_2 libXfont2 mesa-gl-headers mesa mesa-libgbm mesa +nlohmann_json nlohmann-json polkit-qt-1 polkit-qt-1 poppler-qt6 poppler purpose purpose diff --git a/docs/state/frontera-triaje.toml b/docs/state/frontera-triaje.toml index 2c23fd84..327a2023 100644 --- a/docs/state/frontera-triaje.toml +++ b/docs/state/frontera-triaje.toml @@ -79,9 +79,9 @@ perfiles = ["escritorio-gnome"] piden = ["colord"] [candidato."asio"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (obs-studio); mirá si es una feature opcional" +porque = "dep del plugin obs-websocket, que NO se construye: la receta lo neutraliza con `touch plugins/obs-websocket/CMakeLists.txt` y el artefacto sellado lo confirma — usr/lib/obs-plugins no tiene obs-websocket.so. asio es su capa de red asíncrona" perfiles = ["escritorio-kde"] piden = ["obs-studio"] @@ -216,9 +216,9 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["nghttp2", "nodejs"] [candidato."cef-binary"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (obs-studio); mirá si es una feature opcional" +porque = "-DENABLE_BROWSER=OFF, y la receta ya lo explica: CEF es un prebuilt de glibc ⇒ montón B (qorpa, ADR 0015), no se construye desde fuente" perfiles = ["escritorio-kde"] piden = ["obs-studio"] @@ -237,9 +237,9 @@ perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio- piden = ["fcft", "girara", "parted", "pulseaudio"] [candidato."cjson"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (obs-studio); mirá si es una feature opcional" +porque = "el artefacto sellado de obs-studio no tiene NINGÚN NEEDED a libcjson (medido con readelf sobre los 13 plugins y los binarios): el JSON que OBS enlaza de verdad es jansson, que sí está en [deps]" perfiles = ["escritorio-kde"] piden = ["obs-studio"] @@ -353,9 +353,9 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["exiv2", "libqalculate", "libxkbcommon", "pipewire", "wayland", "wireplumber"] [candidato."dri-pkgconfig-stub"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (xwayland); mirá si es una feature opcional" +porque = "es el stub que publica dri.pc desde que mesa dejó de hacerlo. include/meson.build:9 lo pide como `dependency('dri', required: build_glx)` ⇒ sólo es OBLIGATORIO con glx encendido, y la receta va -Dglx=false porque ninguna cola publica gl.pc" perfiles = ["escritorio-kde"] piden = ["xwayland"] @@ -445,9 +445,9 @@ perfiles = ["escritorio-kde"] piden = ["qtspeech"] [candidato."font-util"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (xwayland); mirá si es una feature opcional" +porque = "en todo el árbol aparece UNA vez y es como valor por defecto de `fontrootdir` (meson_options.txt:12-13): la raíz de las fuentes de mapa de bits LEGACY de X11. Sin él meson cae a $datadir/fonts/X11 y la distro no publica esas fuentes" perfiles = ["escritorio-kde"] piden = ["xwayland"] @@ -911,9 +911,9 @@ piden = ["mesa"] ausente = true # ya no aparece en el último barrido de la frontera [candidato."libdatachannel"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (obs-studio); mirá si es una feature opcional" +porque = "-DENABLE_WEBRTC=OFF; la receta lo dice: pide libdatachannel, que no está en ninguna cola" perfiles = ["escritorio-kde"] piden = ["obs-studio"] @@ -925,9 +925,9 @@ perfiles = ["escritorio-kde"] piden = ["qtbase"] [candidato."libdecor"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (xwayland); mirá si es una feature opcional" +porque = "sólo decora la ventana cuando Xwayland corre ROOTFUL (meson_options.txt:81); acá lo lanza el compositor en rootless. ⚠ Ojo: meson.build:210 la pide `required: false` con la opción en 'auto' ⇒ si libdecor entrara al catálogo y cayera en la clausura de xwayland, xwayland cambiaría de ArtifactHash sin que nadie lo pida" perfiles = ["escritorio-kde"] piden = ["xwayland"] @@ -1289,9 +1289,9 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["ffmpeg"] [candidato."libtirpc"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (xwayland); mirá si es una feature opcional" +porque = "la receta pasa -Dsecure-rpc=false y lo documenta: es el único camino por el que os/meson.build pediría tirpc" perfiles = ["escritorio-kde"] piden = ["xwayland"] @@ -1324,16 +1324,16 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["ffmpeg"] [candidato."libvlc"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (obs-studio); mirá si es una feature opcional" +porque = "-DENABLE_VLC=OFF; la fuente de vídeo por VLC pide vlc entero, que no está en el catálogo" perfiles = ["escritorio-kde"] piden = ["obs-studio"] [candidato."libvpl"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (obs-studio); mirá si es una feature opcional" +porque = "-DENABLE_QSV11=OFF: es la codificación por hardware Quick Sync de Intel. La codificación H.264 de la distro va por obs-x264.so, que SÍ está en el artefacto sellado y enlaza libx264.so.165 (medido)" perfiles = ["escritorio-kde"] piden = ["obs-studio"] @@ -1351,9 +1351,9 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["libinput", "mutter", "plasma-desktop"] [candidato."libxaw"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (xwayland); mirá si es una feature opcional" +porque = "no aparece en ningún meson del árbol: sólo en .appveyor.yml y en .gitlab-ci/debian-install.sh, que instalan las deps de TODOS los servidores del repo xserver (Xorg, Xnest, Xvfb). Xwayland no la enlaza" perfiles = ["escritorio-kde"] piden = ["xwayland"] @@ -1434,9 +1434,10 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["gtk3", "gtk4", "mutter"] [candidato."libxfont_2"] -veredicto = "pendiente" +veredicto = "provisto" sugerencia = "opcional?" -porque = "lo pide una sola receta (xwayland); mirá si es una feature opcional" +provee = "libXfont2" +porque = "no falta: es el MISMO paquete con el nombre normalizado por el sembrador. recipes/incoming-kde/libXfont2.toml existe, se autoró en la misma tanda que xwayland y ya figura en su [deps].build. Alias de MAYÚSCULAS, primero de esa forma" perfiles = ["escritorio-kde"] piden = ["xwayland"] @@ -1454,16 +1455,16 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["dunst", "gtk3", "gtk4", "mutter"] [candidato."libxmu"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (xwayland); mirá si es una feature opcional" +porque = "mismo caso que libxaw: sólo en los ficheros de CI del repo xserver, cero referencias en los meson que construyen Xwayland" perfiles = ["escritorio-kde"] piden = ["xwayland"] [candidato."libxpm"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (xwayland); mirá si es una feature opcional" +porque = "mismo caso que libxaw: sólo en los ficheros de CI del repo xserver, cero referencias en los meson que construyen Xwayland" perfiles = ["escritorio-kde"] piden = ["xwayland"] @@ -1475,9 +1476,9 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["dunst", "gtk3", "gtk4", "mesa", "mutter", "qtmultimedia", "vulkan-loader"] [candidato."libxres"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (xwayland); mirá si es una feature opcional" +porque = "⚠ la etiqueta no es el hecho: lo que xwayland usa es `resourceproto` (meson.build:90), las CABECERAS del protocolo XRes, y vienen en xorgproto, que ya está en [deps]. libXres es la librería CLIENTE — el servidor IMPLEMENTA la extensión, no la consume" perfiles = ["escritorio-kde"] piden = ["xwayland"] @@ -1496,9 +1497,9 @@ piden = ["mesa"] ausente = true # ya no aparece en el último barrido de la frontera [candidato."libxt"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (xwayland); mirá si es una feature opcional" +porque = "mismo caso que libxaw: sólo en los ficheros de CI del repo xserver. Es el toolkit intrínseco de las apps X11 clásicas, no del servidor" perfiles = ["escritorio-kde"] piden = ["xwayland"] @@ -1698,9 +1699,10 @@ perfiles = ["base", "cli", "escritorio-cosmic", "escritorio-gnome", "escritorio- piden = ["curl", "nodejs"] [candidato."nlohmann_json"] -veredicto = "pendiente" +veredicto = "provisto" sugerencia = "opcional?" -porque = "lo pide una sola receta (obs-studio); mirá si es una feature opcional" +provee = "nlohmann-json" +porque = "no falta: es el MISMO paquete con el separador cambiado. recipes/nlohmann-json.toml está en el corpus y ya figura en [deps].build de obs-studio. Alias de puntuación, como libxcb-image→xcb-util-image" perfiles = ["escritorio-kde"] piden = ["obs-studio"] @@ -1962,9 +1964,9 @@ piden = ["kscreenlocker", "plasma-workspace"] ausente = true # ya no aparece en el último barrido de la frontera [candidato."qrcodegencpp"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (obs-studio); mirá si es una feature opcional" +porque = "dep del plugin obs-websocket, que NO se construye: la receta lo neutraliza con `touch plugins/obs-websocket/CMakeLists.txt` y el artefacto sellado lo confirma — usr/lib/obs-plugins no tiene obs-websocket.so. qrcodegencpp sólo dibuja el QR con el que la app móvil se empareja" perfiles = ["escritorio-kde"] piden = ["obs-studio"] @@ -2206,9 +2208,9 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["ffmpeg"] [candidato."swig"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (obs-studio); mirá si es una feature opcional" +porque = "-DENABLE_SCRIPTING=OFF, y la receta lo deja escrito: luajit está en el corpus pero swig no, así que el scripting quedó apagado en la primera vuelta" perfiles = ["escritorio-kde"] piden = ["obs-studio"] @@ -2399,9 +2401,9 @@ perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritor piden = ["pipewire", "pulseaudio"] [candidato."websocket++"] -veredicto = "pendiente" +veredicto = "opcional" sugerencia = "opcional?" -porque = "lo pide una sola receta (obs-studio); mirá si es una feature opcional" +porque = "dep del plugin obs-websocket, que NO se construye: la receta lo neutraliza con `touch plugins/obs-websocket/CMakeLists.txt` y el artefacto sellado lo confirma — usr/lib/obs-plugins no tiene obs-websocket.so. websocket++ es su implementación del protocolo" perfiles = ["escritorio-kde"] piden = ["obs-studio"]