triaje: obs-studio y xwayland enteros — 20 más, y dos alias por PUNTUACIÓN

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) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LCt3ettR4Z7b6wPCBmbvEV
This commit is contained in:
Sergio
2026-09-09 16:46:26 +00:00
co-authored by Claude Opus 5
parent a43beeb352
commit 1ef1bea605
2 changed files with 44 additions and 40 deletions
+2
View File
@@ -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
+42 -40
View File
@@ -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 = "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"]