qorpa export: shims generados, y la clase ajeno para que nadie los cuente mal
Paso 5 del ADR 0015, sus dos mitades. SHIMS. `hammer qorpa export <id>` genera lanzadores finos y `.desktop` en el espacio del host, desde lo DECLARADO en `[export]` — nunca todo: exportar todo haría que el `ls` de la imagen compita con el nuestro, que es la falla de Bedrock (arbitra en tiempo de exec, por heurística). Gana en tres cosas contra un FUSE: cero costo en runtime, `cat` al shim y ves qué hace, y se revoca borrándolos. Se GENERAN, no se copian. El `.desktop` se arma con lista BLANCA de claves, así que `Exec`, `TryExec`, `Path` y `DBusActivatable` quedan fuera por definición y no por enumeración — una lista negra dejaría entrar la próxima clave ejecutable que invente el estándar. El Exec original se cita en un comentario del fichero generado, para que se vea qué decía y qué no se copió. El icono se busca en la vista merged (upper primero, imagen después: si no, se perdería lo que instaló el gestor de paquetes) y se copia al host, porque un icono que el host no resuelve se ve como un cuadrito gris. Y `exported.json` registra cada fichero escrito, para que `--remove` borre EXACTAMENTE eso y no por patrón sobre el ~/.local/bin de alguien. Probado de punta a punta con un .desktop ajeno real de la imagen de Arch: el shim corre `pacman -Q` del huésped desde el host, el X-KDE-Wayland-Interfaces quedó fuera, el icono viajó, y --remove dejó 0 ficheros con la instancia intacta. CLASE `ajeno`. build-state.py inyecta los nodos declarados en el nuevo docs/state/qorpa-ajenos.toml ANTES que los `wanted`, y ese orden es la mitad del punto: un nodo que provee una imagen ajena no es una receta por escribir. Con eso el `xwayland` de escritorio-kde deja de ser deuda y pasa a contarse aparte: escritorio-kde 187/188 listo falta 1 (raíces 14, + 1 ajenas) Dos decisiones que sostienen esa cifra: los ajenos se RESTAN del denominador (si entraran, el número que se lee como "cuánto construimos" crecería solo cada vez que alguien enjaula una app), y la declaración vive en el REPO y no se lee de /var/lib/hammer — build-state.json se commitea y lo regenera el cron en dos máquinas; si la clase saliera de las instancias instaladas, cada una diría algo distinto y se pisarían en cada cosecha. Es el error que ya se cometió con sealed_remoto. Qué provee una imagen ajena es diseño; qué tenés instalado, no. Un ajeno tampoco se hashea, y no por comodidad: no tiene procedencia de fuente, así que un hash afirmaría que lo reproducimos. 2 tests nuevos (que del .desktop ajeno no sobreviva nada ejecutable; que el shim no se rompa con rutas raras). 47/47. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U5cQtQrYNjWJVXVE6aEpQ2
This commit is contained in:
@@ -200,9 +200,20 @@ la hidratación del escritorio ya va por lista explícita (`TARGETS="…"`), nun
|
||||
`ajeno`**, y el reporte pasa a decir:
|
||||
|
||||
```
|
||||
escritorio-kde 171 nativas + 6 ajenas (ajenas: sin procedencia de fuente, sin repro)
|
||||
escritorio-kde 187/188 listo falta 1 (raíces 14, + 1 ajenas)
|
||||
```
|
||||
|
||||
Así sale hoy, de verdad: el `xwayland` que era `wanted` (deuda: receta por escribir) pasó a `ajeno`
|
||||
y **la deuda se disolvió sin escribir la receta**. Dos decisiones que sostienen la cifra:
|
||||
|
||||
- **Los ajenos se restan del denominador.** Si entraran en la fracción, el número que todo el mundo
|
||||
lee como «cuánto construimos» crecería solo cada vez que alguien enjaula una app ajena.
|
||||
- **La declaración vive en `docs/state/qorpa-ajenos.toml`, en el repo — no se lee de
|
||||
`/var/lib/hammer`.** `build-state.json` se commitea y lo regenera el cron en dos máquinas: si la
|
||||
clase saliera de las instancias instaladas, cada una diría algo distinto y se pisarían en cada
|
||||
cosecha. Es el mismo error que ya se cometió con `sealed_remoto`. **Qué provee una imagen ajena es
|
||||
diseño, compartido; qué instancias tiene tu disco, no.**
|
||||
|
||||
Bedrock no puede decirte qué tenés. Nosotros sí, y esto cierra el riesgo real de todo el ADR: que en
|
||||
seis meses alguien cuente esas apps como parte del corpus. **En otra clase no se pueden contar mal.**
|
||||
|
||||
@@ -421,7 +432,12 @@ Se escriben acá para que no se descubran en producción.
|
||||
eslabón dentro de bwrap (cruza un binario **estático**, no una librería ⇒ D2 sigue en pie), y
|
||||
aporta lo que bwrap no da: **seccomp** —hoy una instancia podría `io_uring`, `bpf`, `ptrace`,
|
||||
`userfaultfd`, `keyctl`, `perf_event_open`—, `no_new_privs`, y el canal de evidencia. Ver D9.
|
||||
5. Shims + `.desktop` generados (`export`), y clase `ajeno` en `build-state.py`.
|
||||
5. ✅ **HECHO 2026-09-03.** Shims + `.desktop` generados (`export`), y clase `ajeno` en
|
||||
`build-state.py`. El `.desktop` se genera con lista BLANCA de claves —`Exec`, `TryExec`, `Path`,
|
||||
`DBusActivatable` quedan fuera **por definición**, no por enumeración— y el icono se copia al
|
||||
host, porque un icono que el host no resuelve se ve como un cuadrito gris. Cada fichero escrito
|
||||
queda en un registro (`exported.json`) para que `--remove` borre **exactamente** lo generado y no
|
||||
por patrón sobre el `~/.local/bin` de alguien.
|
||||
6. **Steam de punta a punta**, con verificación explícita del bwrap anidado.
|
||||
7. Poda (`hammer qorpa prune`) y renglón en SDD 20 sobre licencias.
|
||||
8. Proxy filtrante de Wayland — ticket propio, el más valioso de la lista.
|
||||
|
||||
@@ -5,15 +5,15 @@
|
||||
"nodes": 988,
|
||||
"sealed": 986,
|
||||
"debt": 1,
|
||||
"wanted": 1
|
||||
"ajeno": 1
|
||||
},
|
||||
"by_class": {
|
||||
"ajeno": 1,
|
||||
"c": 354,
|
||||
"go": 362,
|
||||
"gui": 36,
|
||||
"kernel": 6,
|
||||
"rust": 229,
|
||||
"wanted": 1
|
||||
"rust": 229
|
||||
},
|
||||
"debt_by_class": {
|
||||
"c": 1
|
||||
@@ -25,7 +25,7 @@
|
||||
},
|
||||
"incoming-kde": {
|
||||
"sealed": 198,
|
||||
"wanted": 1
|
||||
"ajeno": 1
|
||||
}
|
||||
},
|
||||
"by_profile": {
|
||||
@@ -41,9 +41,10 @@
|
||||
},
|
||||
"escritorio-kde": {
|
||||
"raices": 14,
|
||||
"clausura": 188,
|
||||
"clausura": 189,
|
||||
"sealed": 187,
|
||||
"debt": 1
|
||||
"debt": 1,
|
||||
"ajeno": 1
|
||||
},
|
||||
"escritorio-mirada": {
|
||||
"raices": 14,
|
||||
@@ -51,7 +52,7 @@
|
||||
"sealed": 29
|
||||
}
|
||||
},
|
||||
"sin_perfil": 712,
|
||||
"sin_perfil": 711,
|
||||
"orphan_deps": [],
|
||||
"topo_ok": true,
|
||||
"nodes": {
|
||||
@@ -21812,13 +21813,16 @@
|
||||
"link": null,
|
||||
"compiler": null,
|
||||
"deps": [],
|
||||
"cls": "wanted",
|
||||
"cls": "ajeno",
|
||||
"queue": "incoming-kde",
|
||||
"imagen": "arch",
|
||||
"hash": null,
|
||||
"state": "wanted",
|
||||
"state": "ajeno",
|
||||
"blocked_by": [],
|
||||
"unblocks": 0,
|
||||
"perfiles": [],
|
||||
"perfiles": [
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 0
|
||||
},
|
||||
"xwin": {
|
||||
|
||||
+54
-37
@@ -2,24 +2,23 @@
|
||||
"schema": "hammer-build-state/1",
|
||||
"totals": {
|
||||
"recipes": 803,
|
||||
"nodes": 803,
|
||||
"sealed": 802,
|
||||
"debt": 1
|
||||
"nodes": 804,
|
||||
"sealed": 803,
|
||||
"ajeno": 1
|
||||
},
|
||||
"by_class": {
|
||||
"ajeno": 1,
|
||||
"c": 174,
|
||||
"go": 362,
|
||||
"gui": 32,
|
||||
"kernel": 6,
|
||||
"rust": 229
|
||||
},
|
||||
"debt_by_class": {
|
||||
"c": 1
|
||||
},
|
||||
"debt_by_class": {},
|
||||
"by_queue": {
|
||||
"corpus": {
|
||||
"sealed": 802,
|
||||
"debt": 1
|
||||
"sealed": 803,
|
||||
"ajeno": 1
|
||||
}
|
||||
},
|
||||
"by_profile": {
|
||||
@@ -237,7 +236,7 @@
|
||||
"hash": "b3:73fb200aae06b0743035dc9f961121fc94295e80a12d39dc358920d698b7bfe0",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -3542,7 +3541,7 @@
|
||||
"hash": "b3:117ee7e8fd5a41bd936d723c72c95cd3f8290292b52ba8088cc0701be170597b",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"base",
|
||||
"cli",
|
||||
@@ -3751,7 +3750,7 @@
|
||||
"hash": "b3:bfef7bf3a85032167ad45e40b420735d08ee13d7b27af46e2cf72768e8460f6e",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -3920,7 +3919,7 @@
|
||||
"hash": "b3:9c4ed8cd793d3ceb1b68e8878efd380f1565a54d728975d108fea7ef9da52a44",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -4041,7 +4040,7 @@
|
||||
"hash": "b3:6ce0c82fd108d262643a8c8fe395af309b7ceb78cfe91aa77c1693bfa8f339d8",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -4104,7 +4103,7 @@
|
||||
"hash": "b3:5503952cb0c35e16854f641873538580e56916c545682b1ed09a9ccaad3a2913",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -4754,7 +4753,7 @@
|
||||
"hash": "b3:74ade6a67d6a0938d6cba154d2a3d06e647efd872bdc02ada0860214c7b321c4",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -6005,7 +6004,7 @@
|
||||
"hash": "b3:846c900dad69f5435007cf11640bb97d3fde02b9bf5b8194994e127a74208058",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -7796,7 +7795,7 @@
|
||||
"hash": "b3:213df6b1501576c977489dc429bbd60aad9f5270ddb6b322666e816fa3b51787",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -7866,7 +7865,7 @@
|
||||
"hash": "b3:bbe561b7869d7ec30aa7f194e812df81e28a98e9f0ac5d114e0dc13d08829749",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -7954,7 +7953,7 @@
|
||||
"hash": "b3:1df7e7a3eac63694f8d094646cfc231f3843995f6f9f945cda138760f6bc9838",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -8160,7 +8159,7 @@
|
||||
"hash": "b3:4346feca8db5ed53a13f78ac34131eebb1b7bf70386b70965e92ea50fdbe6188",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -8183,7 +8182,7 @@
|
||||
"hash": "b3:dc75cb3d42f9c53425014999cc04586ee697fa790d9c28680b79f26bd85489bc",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -8394,7 +8393,7 @@
|
||||
"hash": "b3:a01fb6bd9a19847e9ec5361bfd22a5b32adbbee927e9c7c728d6f57fd8fcf258",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -8477,7 +8476,7 @@
|
||||
"hash": "b3:b7410a2bd1220d877954db9a19f94db322623506c7b558ff684a6390779c081b",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -8653,7 +8652,7 @@
|
||||
"hash": "b3:fd14c9c4d0081fd44503cbc762e8865413c240097448c5b1be236a285ea811b5",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"base",
|
||||
"cli",
|
||||
@@ -8818,7 +8817,7 @@
|
||||
"hash": "b3:c63de2f3188d26b14f1de47a3044eeccd76a5d755b3599fbff8bd289cc2c6f21",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -9205,7 +9204,7 @@
|
||||
"hash": "b3:2ed75159165da8c1d96ee6b15a3cbc9850ff818f93add282fafd49d00a49a7d0",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -9293,7 +9292,7 @@
|
||||
"hash": "b3:6564ae63c23ca73b0738e0708dfde01cf965ff9bd1c5950d7376fa1659fd5058",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"base",
|
||||
"cli",
|
||||
@@ -9625,7 +9624,7 @@
|
||||
"cls": "c",
|
||||
"queue": "corpus",
|
||||
"hash": "b3:392e96904b8f6c2b9aafee2b3b9354e7def0cf72cab91ac00215423952d1e61b",
|
||||
"state": "debt",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
@@ -10630,7 +10629,7 @@
|
||||
"hash": "b3:c4930964fbaf4f33365e6eb8d7e6069ae3056b5796fca83d254bee2a88a341bc",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"base",
|
||||
"cli",
|
||||
@@ -10794,7 +10793,7 @@
|
||||
"hash": "b3:e240653adae656318d5c3445b36ffb37aa491589b5c34c8688515bc3806944ab",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -10857,7 +10856,7 @@
|
||||
"hash": "b3:cfb6a37eb990fb001dd66d5c2103e80cfa858b49aaa60a397ba0356830cc09b4",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"base",
|
||||
"cli",
|
||||
@@ -11187,7 +11186,7 @@
|
||||
"hash": "b3:ff5cf5e5080f20587b26946d0dfff36a58c9096d30eace4ae9cece24594d171e",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"base",
|
||||
"cli",
|
||||
@@ -11742,7 +11741,7 @@
|
||||
"hash": "b3:2f75c0e225a60fd56f7e415b7a739a461c97695c2e3f015c9af576d8a4a2492c",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"base",
|
||||
"cli",
|
||||
@@ -13996,7 +13995,7 @@
|
||||
"hash": "b3:51116f72a799ceaf8bc9d5512ec5dc413865a6376e2285e550af10046572287b",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -14023,7 +14022,7 @@
|
||||
"hash": "b3:9f81e41cbe8cb202121d8b9d697c7334a2c5d58bbf7cf7734eded9878c5db303",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
@@ -14338,6 +14337,24 @@
|
||||
"perfiles": [],
|
||||
"dependientes_total": 0
|
||||
},
|
||||
"xwayland": {
|
||||
"iname": "xwayland",
|
||||
"version": null,
|
||||
"link": null,
|
||||
"compiler": null,
|
||||
"deps": [],
|
||||
"cls": "ajeno",
|
||||
"queue": "corpus",
|
||||
"imagen": "arch",
|
||||
"hash": null,
|
||||
"state": "ajeno",
|
||||
"blocked_by": [],
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-kde"
|
||||
],
|
||||
"dependientes_total": 0
|
||||
},
|
||||
"xwin": {
|
||||
"iname": "xwin",
|
||||
"version": "0.7.0",
|
||||
@@ -14516,7 +14533,7 @@
|
||||
"hash": "b3:dc363f261a71239412f6090e50e8abc0c7f6e544ccefa48c5ee5f47d26e84ef3",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"base",
|
||||
"cli",
|
||||
@@ -14558,7 +14575,7 @@
|
||||
"hash": "b3:b7d5397b96fc080a6e4ee9a19f5ea5ee32a63148ef87c63c795955676c5f344f",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 1,
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-cosmic",
|
||||
"escritorio-gnome",
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# Nodos que el corpus NO provee y NO va a proveer: los trae una imagen ajena enjaulada
|
||||
# (qorpa, ADR 0015 D5 capa 3). Este fichero existe para que NADIE los pueda contar mal.
|
||||
#
|
||||
# ── POR QUÉ ESTO ES UN FICHERO DEL REPO Y NO UNA LECTURA DE /var/lib/hammer ──────────────────────
|
||||
# `build-state.json` se commitea y lo regenera el cron en dos máquinas. Si la clase `ajeno` saliera
|
||||
# de las instancias que cada máquina tiene instaladas, el grafo diría cosas distintas en cada una y
|
||||
# se pisarían en cada cosecha — el mismo error que ya se cometió con `sealed_remoto`. Qué provee una
|
||||
# imagen ajena es una decisión de DISEÑO, compartida; qué instancias tiene tu disco, no.
|
||||
#
|
||||
# ── QUÉ HACE UN NODO ACÁ ────────────────────────────────────────────────────────────────────────
|
||||
# Deja de ser `wanted` (deuda: receta por escribir) y pasa a `ajeno`: presente, pero SIN procedencia
|
||||
# de fuente y SIN reproducibilidad. No cuenta como deuda ni como corpus. El reporte los suma aparte
|
||||
# («171 nativas + 6 ajenas») precisamente para que la cifra del corpus no se infle sola.
|
||||
#
|
||||
# NO entran al catálogo publicable ni al reporte de licencias (SDD 20): no podemos enumerarlas.
|
||||
|
||||
[xwayland]
|
||||
razon = """
|
||||
X11 está fuera de alcance para toda la distro (Wayland-only, sin systemd) y Xwayland tampoco salva
|
||||
al herramental X11, que sólo ve clientes X. Con instancias, 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.
|
||||
"""
|
||||
imagen = "arch"
|
||||
perfiles = ["escritorio-kde"]
|
||||
@@ -63,11 +63,13 @@ paquetes = [
|
||||
# roto: sin tipos de fichero, sin apps X11, sin diálogos de autorización y con los controles QML
|
||||
# en un estilo genérico. Ver docs/state/frontera-triaje.toml para el porqué de cada uno.
|
||||
"shared-mime-info", "xwayland", "polkit-qt-1", "qqc2-breeze-style",
|
||||
# ⚠ `xwayland` sigue acá pero su receta NO se escribe todavía: [ADR 0015 — Imágenes ajenas]
|
||||
# (../adr/0015-imagenes-ajenas.md, PROPUESTO 2026-09-03) propone que el Xwayland viva DENTRO de
|
||||
# la imagen ajena —Fedora y Arch ya lo traen y se cuelga de kwin por el socket— con lo cual este
|
||||
# hueco se disuelve sin receta y sin tocar la postura Wayland-only. Si el ADR se acepta, sale de
|
||||
# esta lista. Los otros tres ya están sellados (2026-09-02/03).
|
||||
# ⚠ `xwayland` sigue acá como RAÍZ pero su receta NO se va a escribir: lo provee una imagen ajena
|
||||
# enjaulada, declarado en ../state/qorpa-ajenos.toml (ADR 0015 D5 capa 3, qorpa). El Xwayland vive
|
||||
# DENTRO de la imagen —Arch y Fedora ya lo traen y se cuelga de kwin por el socket— así que el
|
||||
# hueco se disuelve sin receta y sin tocar la postura Wayland-only. Queda como raíz A PROPÓSITO:
|
||||
# la imagen lo NECESITA, y sacarlo de acá lo volvería invisible en vez de contado aparte. El grafo
|
||||
# ya lo reporta con clase `ajeno` («+ 1 ajenas»), nunca sumado a las nativas. Los otros tres ya
|
||||
# están sellados (2026-09-02/03).
|
||||
# ── LA PRIMERA APP DE USUARIO FINAL QUE COMPARTEN LOS CUATRO ESCRITORIOS ──────────────────────
|
||||
# `mpv` vive en el CORPUS, no en esta cola, justamente para poder listarse en las cuatro: una
|
||||
# receta resuelve sibling-first y después el catálogo padre, así que desde acá se alcanza.
|
||||
|
||||
Reference in New Issue
Block a user