tawasuyu

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 1430Shell 145Markdown 87Rust 852973 Definiciones

targets: obs-studio entra al perfil escritorio-kde (274/274)

Una receta sellada que ningún perfil declara NO ESTÁ EN NINGUNA IMAGEN, y la
métrica de clausura no lo puede ver porque mide lo declarado — la lección que este
fichero ya aprendió con foot en sway y con las 22 apps KDE. OBS estaba sellado y
en ninguna imagen.

Entra SÓLO en escritorio-kde, y no por preferencia: su frontend es Qt6 y las 13
recetas Qt viven sólo en esa cola. Verificado con `yupana perfiles obs-studio`.
El perfil pasa de 263/263 a 274/274 — arrastra 11 nodos a la clausura, todos ya
sellados, y el grafo sigue cerrando.

De paso: el aviso de los «tres huecos de mpv» estaba repetido en los CUATRO
perfiles de escritorio y hoy quedó vencido en los cuatro (ALSA/PipeWire, Lua/OSC
y vaapi están cerrados). Corregidos los cuatro; el assert de count==1 fue lo que
destapó que no era uno solo.

e684c26e527e19fbaeb9c80b56c017137c1f76d3 · por Sergio · (hace 1 mes) · padre 461f67736 · ver el árbol en este commit

Delta semántico

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

7 archivos · +171 −63

diff --git a/docs/state/build-state-cosmic.json b/docs/state/build-state-cosmic.json
index 62e80622..dd37f352 100644
--- a/docs/state/build-state-cosmic.json
+++ b/docs/state/build-state-cosmic.json
@@ -46,7 +46,7 @@
    "sealed": 33
   }
  },
- "sin_perfil": 653,
+ "sin_perfil": 645,
  "orphan_deps": [],
  "topo_ok": true,
  "nodes": {
@@ -3252,6 +3252,7 @@
     "base",
     "cli",
     "escritorio-gnome",
+    "escritorio-kde",
     "escritorio-sway"
    ],
    "dependientes_total": 10
@@ -7727,7 +7728,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "jaq": {
@@ -9341,7 +9344,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "libgpg-error": {
@@ -10587,7 +10592,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "mcfly": {
@@ -11600,7 +11607,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "node_exporter": {
@@ -11950,6 +11959,7 @@
     "cli",
     "escritorio-cosmic",
     "escritorio-gnome",
+    "escritorio-kde",
     "escritorio-sway"
    ],
    "dependientes_total": 28
@@ -12306,7 +12316,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "pcre2": {
@@ -13998,7 +14010,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "simple-http-server": {
@@ -15744,7 +15758,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "util-linux": {
@@ -16464,7 +16480,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "xan": {
diff --git a/docs/state/build-state-gnome.json b/docs/state/build-state-gnome.json
index 11ec7bdf..d78422d4 100644
--- a/docs/state/build-state-gnome.json
+++ b/docs/state/build-state-gnome.json
@@ -46,7 +46,7 @@
    "sealed": 33
   }
  },
- "sin_perfil": 667,
+ "sin_perfil": 659,
  "orphan_deps": [],
  "topo_ok": true,
  "nodes": {
@@ -2970,6 +2970,7 @@
     "base",
     "cli",
     "escritorio-gnome",
+    "escritorio-kde",
     "escritorio-sway"
    ],
    "dependientes_total": 10
@@ -8002,7 +8003,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "jaq": {
@@ -9709,7 +9712,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "libgpg-error": {
@@ -11270,7 +11275,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "mcfly": {
@@ -12356,7 +12363,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "node_exporter": {
@@ -12752,6 +12761,7 @@
     "cli",
     "escritorio-cosmic",
     "escritorio-gnome",
+    "escritorio-kde",
     "escritorio-sway"
    ],
    "dependientes_total": 28
@@ -13134,7 +13144,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "pcre2": {
@@ -14898,7 +14910,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "simple-http-server": {
@@ -16747,7 +16761,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "util-linux": {
@@ -17484,7 +17500,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "xan": {
diff --git a/docs/state/build-state-kde.json b/docs/state/build-state-kde.json
index c590e115..2b5ddd51 100644
--- a/docs/state/build-state-kde.json
+++ b/docs/state/build-state-kde.json
@@ -37,9 +37,9 @@
    "sealed": 70
   },
   "escritorio-kde": {
-   "raices": 44,
-   "clausura": 264,
-   "sealed": 263,
+   "raices": 45,
+   "clausura": 275,
+   "sealed": 274,
    "ajeno": 1
   },
   "escritorio-mirada": {
@@ -48,7 +48,7 @@
    "sealed": 29
   }
  },
- "sin_perfil": 655,
+ "sin_perfil": 645,
  "orphan_deps": [],
  "topo_ok": true,
  "nodes": {
@@ -3038,6 +3038,7 @@
     "base",
     "cli",
     "escritorio-gnome",
+    "escritorio-kde",
     "escritorio-sway"
    ],
    "dependientes_total": 10
@@ -7865,7 +7866,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "jaq": {
@@ -13198,7 +13201,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "libgpg-error": {
@@ -14864,7 +14869,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "mcfly": {
@@ -16042,7 +16049,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "node_exporter": {
@@ -16281,7 +16290,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 0
   },
   "octosql": {
@@ -16919,7 +16930,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "pcre2": {
@@ -20302,7 +20315,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "simple-http-server": {
@@ -20723,7 +20738,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "sq": {
@@ -22419,7 +22436,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "util-linux": {
@@ -23153,7 +23172,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "xan": {
diff --git a/docs/state/build-state-wlr.json b/docs/state/build-state-wlr.json
index 4b36899d..10ac89f6 100644
--- a/docs/state/build-state-wlr.json
+++ b/docs/state/build-state-wlr.json
@@ -46,7 +46,7 @@
    "sealed": 175
   }
  },
- "sin_perfil": 653,
+ "sin_perfil": 645,
  "orphan_deps": [],
  "topo_ok": true,
  "nodes": {
@@ -2789,6 +2789,7 @@
     "base",
     "cli",
     "escritorio-gnome",
+    "escritorio-kde",
     "escritorio-sway"
    ],
    "dependientes_total": 10
@@ -7269,7 +7270,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "jaq": {
@@ -8865,7 +8868,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "libgpg-error": {
@@ -10064,7 +10069,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "mcfly": {
@@ -11056,7 +11063,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "node_exporter": {
@@ -11406,6 +11415,7 @@
     "cli",
     "escritorio-cosmic",
     "escritorio-gnome",
+    "escritorio-kde",
     "escritorio-sway"
    ],
    "dependientes_total": 28
@@ -11762,7 +11772,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "pcre2": {
@@ -13412,7 +13424,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "simple-http-server": {
@@ -15361,7 +15375,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "util-linux": {
@@ -16111,7 +16127,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "xan": {
diff --git a/docs/state/build-state.json b/docs/state/build-state.json
index 60b17ae4..ffe7acfc 100644
--- a/docs/state/build-state.json
+++ b/docs/state/build-state.json
@@ -38,7 +38,7 @@
    "sealed": 33
   }
  },
- "sin_perfil": 653,
+ "sin_perfil": 645,
  "orphan_deps": [],
  "topo_ok": true,
  "nodes": {
@@ -2781,6 +2781,7 @@
     "base",
     "cli",
     "escritorio-gnome",
+    "escritorio-kde",
     "escritorio-sway"
    ],
    "dependientes_total": 10
@@ -7170,7 +7171,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "jaq": {
@@ -8742,7 +8745,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "libgpg-error": {
@@ -9941,7 +9946,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "mcfly": {
@@ -10933,7 +10940,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "node_exporter": {
@@ -11283,6 +11292,7 @@
     "cli",
     "escritorio-cosmic",
     "escritorio-gnome",
+    "escritorio-kde",
     "escritorio-sway"
    ],
    "dependientes_total": 28
@@ -11639,7 +11649,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "pcre2": {
@@ -13289,7 +13301,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "simple-http-server": {
@@ -15035,7 +15049,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "util-linux": {
@@ -15718,7 +15734,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 1
   },
   "xan": {
diff --git a/docs/state/drenaje.json b/docs/state/drenaje.json
index ef4643ef..7f440638 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": 264,
+   "nodos": 275,
    "en_deuda": 0,
    "ondas": 0,
    "profundidad": 0,
diff --git a/docs/state/targets.toml b/docs/state/targets.toml
index 76a7e4de..5d2e9129 100644
--- a/docs/state/targets.toml
+++ b/docs/state/targets.toml
@@ -125,10 +125,25 @@ paquetes = [
   # Va de raíz por la lección que este mismo fichero ya aprendió con `foot` en el perfil de sway:
   # una receta sellada que ningún perfil declara NO ESTÁ EN NINGUNA IMAGEN, y la métrica de
   # clausura no lo puede ver porque mide lo declarado. Sellado ≠ instalado.
-  # ⚠ Hoy entra con tres huecos escritos en `recipes/mpv.toml`: audio por ALSA con
-  # `-Dpipewire-alsa=disabled` en las pipewire (⇒ no suena con PipeWire vivo), sin Lua (⇒ sin OSC)
-  # y sin vaapi (⇒ sin decodificación por hardware).
+  # Los tres huecos con que entró (ALSA sin PipeWire, sin Lua/OSC, sin vaapi) están CERRADOS al
+  # 2026-09-04: pipewire nativo con ALSA de respaldo, `-Dlua=lua5.2`, y `-Dvaapi=enabled` con `libva`
+  # subida al corpus. Además su ffmpeg ya va con x86asm ⇒ decodifica con SIMD.
   "mpv",
+  # ── CAPTURA Y STREAMING ──────────────────────────────────────────────────────────────────────
+  # `obs-studio` (2026-09-04). A diferencia de mpv, ésta vive en ESTA COLA y no en el corpus, y no
+  # es preferencia: su frontend es Qt6 y las 13 recetas Qt viven sólo en `incoming-kde`. Un qtbase
+  # de corpus tendría otro hash con el MISMO nombre de artefacto ⇒ dos Qt peleando por
+  # `/usr/lib/libQt6Core.so`. ⇒ **por ahora OBS es de KDE y de nadie más**; el día que exista un Qt
+  # de corpus (`yupana radio qtbase` = 119, campaña propia) puede subir y listarse en las cuatro.
+  #
+  # Su renderer va PORTADO a EGL (`obs-glad-egl-loader.patch`): el glad de upstream hacía
+  # `dlopen("libGL.so.1")` + `dlsym("glXGetProcAddressARB")`, o sea GLX en runtime, que esta distro
+  # no tiene ni quiere.
+  #
+  # ⚠ Entra con tres huecos escritos en su receta: sin webcam (`ENABLE_V4L2=OFF`, `libv4l2` no lo
+  # publica ninguna cola), sin salida MPEG-TS (SRT/RIST ausentes) y sin scripting (falta `swig`).
+  # Grabar, capturar la pantalla y publicar por RTMP —el uso real— no pasan por ninguno de los tres.
+  "obs-studio",
   # ── VISOR DE IMÁGENES, TAMBIÉN EN LAS CUATRO ─────────────────────────────────────────────────
   # `swayimg` y no `imv`, que era lo que proponía `docs/plan-apps-usuario-final.md`: imv dibuja con
   # OpenGL de función fija (`glBegin`/`glOrtho`) y esta distro NO tiene proveedor de GL de
@@ -225,9 +240,9 @@ paquetes = [
   # Va de raíz por la lección que este mismo fichero ya aprendió con `foot` en el perfil de sway:
   # una receta sellada que ningún perfil declara NO ESTÁ EN NINGUNA IMAGEN, y la métrica de
   # clausura no lo puede ver porque mide lo declarado. Sellado ≠ instalado.
-  # ⚠ Hoy entra con tres huecos escritos en `recipes/mpv.toml`: audio por ALSA con
-  # `-Dpipewire-alsa=disabled` en las pipewire (⇒ no suena con PipeWire vivo), sin Lua (⇒ sin OSC)
-  # y sin vaapi (⇒ sin decodificación por hardware).
+  # Los tres huecos con que entró (ALSA sin PipeWire, sin Lua/OSC, sin vaapi) están CERRADOS al
+  # 2026-09-04: pipewire nativo con ALSA de respaldo, `-Dlua=lua5.2`, y `-Dvaapi=enabled` con `libva`
+  # subida al corpus. Además su ffmpeg ya va con x86asm ⇒ decodifica con SIMD.
   "mpv",
   # ── VISOR DE IMÁGENES, TAMBIÉN EN LAS CUATRO ─────────────────────────────────────────────────
   # `swayimg` y no `imv`, que era lo que proponía `docs/plan-apps-usuario-final.md`: imv dibuja con
@@ -427,9 +442,9 @@ paquetes = [
   # Va de raíz por la lección que este mismo fichero ya aprendió con `foot` en el perfil de sway:
   # una receta sellada que ningún perfil declara NO ESTÁ EN NINGUNA IMAGEN, y la métrica de
   # clausura no lo puede ver porque mide lo declarado. Sellado ≠ instalado.
-  # ⚠ Hoy entra con tres huecos escritos en `recipes/mpv.toml`: audio por ALSA con
-  # `-Dpipewire-alsa=disabled` en las pipewire (⇒ no suena con PipeWire vivo), sin Lua (⇒ sin OSC)
-  # y sin vaapi (⇒ sin decodificación por hardware).
+  # Los tres huecos con que entró (ALSA sin PipeWire, sin Lua/OSC, sin vaapi) están CERRADOS al
+  # 2026-09-04: pipewire nativo con ALSA de respaldo, `-Dlua=lua5.2`, y `-Dvaapi=enabled` con `libva`
+  # subida al corpus. Además su ffmpeg ya va con x86asm ⇒ decodifica con SIMD.
   "mpv",
   # ── VISOR DE IMÁGENES, TAMBIÉN EN LAS CUATRO ─────────────────────────────────────────────────
   # `swayimg` y no `imv`, que era lo que proponía `docs/plan-apps-usuario-final.md`: imv dibuja con
@@ -568,9 +583,9 @@ paquetes = [
   # Va de raíz por la lección que este mismo fichero ya aprendió con `foot` en el perfil de sway:
   # una receta sellada que ningún perfil declara NO ESTÁ EN NINGUNA IMAGEN, y la métrica de
   # clausura no lo puede ver porque mide lo declarado. Sellado ≠ instalado.
-  # ⚠ Hoy entra con tres huecos escritos en `recipes/mpv.toml`: audio por ALSA con
-  # `-Dpipewire-alsa=disabled` en las pipewire (⇒ no suena con PipeWire vivo), sin Lua (⇒ sin OSC)
-  # y sin vaapi (⇒ sin decodificación por hardware).
+  # Los tres huecos con que entró (ALSA sin PipeWire, sin Lua/OSC, sin vaapi) están CERRADOS al
+  # 2026-09-04: pipewire nativo con ALSA de respaldo, `-Dlua=lua5.2`, y `-Dvaapi=enabled` con `libva`
+  # subida al corpus. Además su ffmpeg ya va con x86asm ⇒ decodifica con SIMD.
   "mpv",
   # ── VISOR DE IMÁGENES, TAMBIÉN EN LAS CUATRO ─────────────────────────────────────────────────
   # `swayimg` y no `imv`, que era lo que proponía `docs/plan-apps-usuario-final.md`: imv dibuja con