Files
takana/docs/state/drenaje.json
T
SergioandClaude Opus 5 8c2cb10414 gnome: la primera extensión del catálogo — blur-my-shell v72, instalada Y activa
La imagen de GNOME traía la CÁSCARA: el shell sabe cargar extensiones —`ui/extensionSystem.js` va
en el gresource sin opción que lo apague y su gschema sellado trae `enabled-extensions`— pero no
había ninguna que cargar. Esta es la primera, y fija el patrón para las otras ~1400.

⚠ NO HIZO FALTA TLS, que era la conclusión fácil del análisis de ayer. glib-networking sólo lo pide
BAJARLAS desde extensions.gnome.org con el descargador del shell. Empaquetada, una extensión se
instala como cualquier receta y no toca la red.

LA FUENTE ES EL REPO DEL AUTOR, NO EL ZIP DE EGO, por dos razones y las dos medidas:
  1. hammer no sabe abrir un zip: el fetch extrae con `tar -x` y GNU tar contesta «This does not
     look like a tar archive». Ninguna receta del corpus usa .zip.
  2. Y aunque lo abriera, el zip de EGO es un ARTEFACTO que construye EGO desde este mismo repo.
     Pinear el zip es pinear el binario de un tercero; pinear el commit es pinear el código.
El tag v72 es el que EGO sirve para shell 48 —preguntado a su API, no supuesto— y el metadata.json
declara ['46','47','48','49','50']. ⚠ Eso hay que preguntarlo por extensión: nixpkgs va por GNOME
50 y hay extensiones que ya sólo declaran el major nuevo.

SIN `gnome-extensions pack`, que es lo que usa el Makefile de upstream y es el CLI que nuestra
receta del shell apaga (-Dextensions_tool=false; encenderlo costaría gnome-autoar y re-hashear
gnome-shell entero). No hace falta: `pack` sólo arma un zip que después alguien descomprime, y lo
que el shell lee es un DIRECTORIO. El layout no se inventó — se leyó del zip de EGO v72, que es la
salida de ese mismo `pack`, y el artefacto sellado se comparó contra él: **entradas idénticas, ni
sobras ni faltantes**, 45 .mo compilados.

⚠ INSTALADA ≠ ACTIVA, y esto es lo que hace que la receta sirva. El shell sólo carga lo que esté en
`org.gnome.shell enabled-extensions`: sin eso el artefacto sella, el fichero está en la imagen y NO
PASA NADA al arrancar — el mismo cuadro de «sellado ≠ instalado» que este repo ya se comió con
foot, mpv y libnotify, un escalón más abajo. Se resuelve con un override de GSettings, que cambia
el DEFAULT y deja ganar al dconf del usuario que no la quiera.
PROBADO DE VERDAD, no deducido: se compiló el directorio de esquemas del shell con el override
puesto (`glib-compile-schemas`, exit 0 y stderr vacío — que hay que mirar, porque sale 0 aunque
RECHACE un esquema) y después `gsettings get org.gnome.shell enabled-extensions` devolvió
['blur-my-shell@aunetx'].

⚠ TRAMPA ANOTADA PARA LA SEGUNDA: `enabled-extensions` es un ARRAY y el override lo escribe ENTERO.
Dos recetas con su propio override no se suman — gana la que compile última y la otra queda
instalada y muerta, sin error. Cuando llegue la segunda, la lista pasa a un solo sitio.

Y una corrección sobre la licencia, que casi firmo mal: el LICENSE es el texto del GPLv3, y su
apéndice «How to Apply» CONTIENE la frase «either version 3 … or any later version» siempre, así
que grepearla ahí no distingue -only de -or-later (la trampa que la memoria del repo ya tenía
escrita). La evidencia buena es el README del commit pineado: «This program is distributed under
the terms of the GNU General Public License, version 3 or later». El árbol JS no lleva cabecera de
licencia en ningún fichero.

Va de RAÍZ en escritorio-gnome por la lección de `foot` que targets.toml ya aprendió tres veces.
El perfil queda 183/183 listo con 25 raíces, deuda 0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LCt3ettR4Z7b6wPCBmbvEV
2026-09-09 19:14:08 +00:00

71 lines
1.4 KiB
JSON

{
"schema": "hammer-drenaje/1",
"nota": "DERIVADO del grafo de estado por scripts/drenar.py — no editar a mano.",
"perfiles": {
"base": {
"grafo": "docs/state/build-state.json",
"nodos": 58,
"en_deuda": 0,
"ondas": 0,
"profundidad": 0,
"construibles_ya": [],
"olas": []
},
"cli": {
"grafo": "docs/state/build-state.json",
"nodos": 81,
"en_deuda": 0,
"ondas": 0,
"profundidad": 0,
"construibles_ya": [],
"olas": []
},
"escritorio-cosmic": {
"grafo": "docs/state/build-state-cosmic.json",
"nodos": 160,
"en_deuda": 0,
"ondas": 0,
"profundidad": 0,
"construibles_ya": [],
"olas": []
},
"escritorio-gnome": {
"grafo": "docs/state/build-state-gnome.json",
"nodos": 183,
"en_deuda": 0,
"ondas": 0,
"profundidad": 0,
"construibles_ya": [],
"olas": []
},
"escritorio-kde": {
"grafo": "docs/state/build-state-kde.json",
"nodos": 299,
"en_deuda": 0,
"ondas": 0,
"profundidad": 0,
"construibles_ya": [],
"olas": []
},
"escritorio-mirada": {
"grafo": "docs/state/build-state.json",
"nodos": 41,
"en_deuda": 0,
"ondas": 0,
"profundidad": 0,
"construibles_ya": [],
"olas": []
},
"escritorio-sway": {
"grafo": "docs/state/build-state-wlr.json",
"nodos": 205,
"en_deuda": 0,
"ondas": 0,
"profundidad": 0,
"construibles_ya": [],
"olas": []
}
},
"sin_medir": []
}