plan de apps: el triaje preguntaba «¿existe la receta?» y la pregunta es «¿la alcanza quién la usa?»

Se descubrió usándolo. `wf-recorder` daba 0 faltantes / 0 muros, y al ir a escribirlo resultó que
sus dos backends de audio —pipewire y pulse— existen en las TRES colas de escritorio y en NINGUNA
en el corpus. Una receta del corpus no ve una cola hermana, así que wf-recorder construye pero
graba MUDO, y no tiene backend ALSA con el que caerse.

Lo que eso destapa es más grande que wf-recorder y por eso queda escrito como decisión abierta:
**el corpus no tiene ningún cliente de audio salvo ALSA**. Ya chocó dos veces en un día — mpv
terminó con `--ao=alsa` en vez de su salida nativa, y ahora esto. Las tres salidas posibles
(promover UNA pipewire al corpus / aceptar ALSA como la ABI única / que las apps multimedia vivan
en las colas) quedan planteadas con su precio; la primera choca con la enfermedad de las dos glib
y no se decide de madrugada.

wf-recorder NO se escribe hasta entonces: un grabador de pantalla mudo es la clase de media-cosa
que conviene no sellar sin que alguien la haya elegido.
This commit is contained in:
Sergio
2026-09-03 03:47:17 +00:00
parent 04e2c89014
commit 524d18aba1
+48 -5
View File
@@ -33,7 +33,7 @@ Dos columnas, y **la que importa es la segunda**:
| app | faltan | muros | veredicto |
|---|---:|---|---|
| **wf-recorder** | **0** | — | **construible HOY.** Grabar pantalla en Wayland. |
| **wf-recorder** | 0 | *(ver ⚠ abajo)* | construible hoy **sin audio**: su captura de sonido es pulse o pipewire, y ninguno de los dos se alcanza desde el corpus. |
| **imv** | 7 | — | barato: los 7 son cargadores de formato opcionales (heif, jxl, freeimage…). Visor de imágenes. |
| **zathura** | 8 | — | lector de PDF; `girara` es su propia lib y ya usa GTK4 en Alpine. |
| **mupdf** | 9 | X11 | el X11 es del visor `mupdf-x11`; el motor y `mupdf-gl` no. Requiere mirar. |
@@ -45,6 +45,47 @@ Dos columnas, y **la que importa es la segunda**:
| **chromium** | 38 | **GTK3**, **Qt6**, X11 | peor que Firefox por todos lados. |
| **libreoffice** | 59 | **GTK3**, **Qt6**, X11 | 59 recetas y tres muros. No es un ticket, es un año. |
## ⚠ El defecto del método, encontrado al usarlo (y lo que destapó)
La columna «recetas que faltan» pregunta **¿existe esta receta en el disco?** y esa es la pregunta
equivocada. La correcta es **¿la alcanza el consumidor?** — porque una receta resuelve sus deps
sibling-first (su propia cola) y después el catálogo PADRE, **nunca una cola hermana**.
Se descubrió al ir a escribir `wf-recorder`, que la tabla daba en 0/0: su `makedepends` pide
`pipewire-dev` y `pulseaudio-dev`, los dos existen… **en las tres colas de escritorio y en ninguna
en el corpus**. Una app del corpus no los ve. wf-recorder construye igual (`-Dpulse=disabled
-Dpipewire=disabled`, `have_audio=false`) pero graba **sin sonido**, y no tiene backend ALSA con el
que caerse.
### Lo que eso destapa, que es más grande que wf-recorder
> **El corpus no tiene ningún cliente de audio salvo ALSA.** `libpipewire-0.3` y `libpulse` viven
> sólo en `incoming-{kde,gnome,cosmic}`. Toda app multimedia que llegue al corpus va a chocar acá.
Ya chocó dos veces en un día: `mpv` terminó con `--ao=alsa` en vez de su salida nativa de PipeWire
(y por eso hubo que dar vuelta `-Dpipewire-alsa` en las tres pipewire, que fue el arreglo correcto
pero fue un rodeo), y ahora `wf-recorder` se queda mudo.
**La decisión que hay que tomar (no es de madrugada):** promover UNA pipewire al corpus. Construye
—el corpus tiene su propia `glib`, `dbus` y `pcre2`— pero el problema no es construirla: es que una
imagen que hidrate `corpus/pipewire` **y** la de su cola pondría dos `libpipewire-0.3.so` distintas
en la misma ruta, que es la enfermedad de las dos glib. Las salidas posibles, para pensarlas
despierto:
1. **Una sola pipewire, en el corpus, y las tres colas jubilan la suya.** Es lo más limpio y es lo
que ya se hizo con otras 13 copias que sellaban igual — pero éstas NO sellan igual (difieren en
glib/dbus/pcre2), así que hay que decidir cuál gana y volver a sellar wireplumber y los portales
de las tres colas.
2. **Aceptar ALSA como la única ABI de audio del corpus**, que es lo que hoy quedó funcionando de
hecho: `-Dpipewire-alsa=enabled` hace que un cliente ALSA desemboque en PipeWire. Barato y ya
está hecho; el precio es que las apps del corpus nunca usan la API nativa (sin control por-stream,
sin metadata de sesión) y que las que sólo hablan pulse/pipewire —wf-recorder— quedan afuera.
3. **Que las apps multimedia vivan en las colas**, una copia por escritorio. Es lo que la estructura
empuja hoy y es exactamente lo que no queremos para una app que sirve a las cuatro imágenes.
Hasta que eso se decida, `wf-recorder` queda **sin escribir**: un grabador de pantalla mudo es
justamente la clase de media-cosa que conviene no sellar sin que alguien la haya elegido.
## Los dos veredictos que corrigen al ADR
### Firefox NO es montón A
@@ -84,10 +125,12 @@ cierre (wayland, ffmpeg, libdrm) quedó completo cuando entró mpv.
## Orden propuesto, en reemplazo del del ADR
1.**mpv** — hecho (2026-09-03).
2. **wf-recorder** — 0 faltantes. Cubre el caso de uso principal de OBS por una receta.
3. **imv** — visor de imágenes; los 7 faltantes son opcionales y se puede entrar con los mínimos.
4. **zathura** (+ backend PDF) — verificar antes que su cadena sea GTK4 y no GTK3.
5. **Decisión de navegador** — no es trabajo de recetas, es la elección de arriba. No debería
2. **decisión de audio del corpus** (el ⚠ de arriba). Destraba wf-recorder y le da a mpv
su salida nativa. Es una decisión, no una campaña.
3. **wf-recorder** — inmediato una vez tomada esa decisión; cubre el caso de uso principal de OBS.
4. **imv** — visor de imágenes; los 7 faltantes son opcionales y se puede entrar con los mínimos.
5. **zathura** (+ backend PDF) — verificar antes que su cadena sea GTK4 y no GTK3.
6. **Decisión de navegador** — no es trabajo de recetas, es la elección de arriba. No debería
entrar a una cola de build hasta que esté tomada.
OBS, Firefox, Chromium, GIMP y LibreOffice **salen del montón A** hasta que se decida GTK3 o qorpa.