Files
takana/docs/state/keystones.json
T
SergioandClaude Opus 5 542d9875fb kde: upower — la imagen declaraba powerdevil y no tenía batería
Primero de los dos huecos que dejaban a KDE POR DEBAJO de una instalación estándar. El perfil
declaraba `powerdevil` —el gestor de energía de Plasma— pero no a `upower`, que es con quien
powerdevil habla para leer la batería y aplicar perfiles. Medido: upower sólo existía en la cola de
GNOME, y las colas no se ven entre sí (HERMANO→corpus, nunca de reojo). En un portátil eso es un
escritorio sin indicador de batería, y el arranque no falla ⇒ no se ve hasta usarlo.

Cuesta TRES recetas y no siete, y la diferencia es una perilla: `-Dintrospection=disabled`.
GNOME la necesita ENCENDIDA porque su shell hace `imports.gi.UPowerGlib` desde JavaScript, o sea que
carga el typelib. powerdevil NO: habla D-Bus con `org.freedesktop.UPower`. Apagarla saca de la
frontera gobject-introspection, gi-foreign-girs, glib-introspected y py3-setuptools, que sólo viven
en la cola de GNOME.

⚠ Y NO SE PROMUEVEN AL CORPUS, aunque era lo primero que intenté. Al mover `libgudev` allá su
ArtifactHash CAMBIÓ (7404bc8d → 87ca5e73) y eso no es una mudanza: `glib` existe en las DOS colas y
son recetas distintas, así que desde `incoming-gnome/` se construye contra la glib de GNOME y desde
el corpus contra la del corpus. Promoverla habría arrastrado a GNOME a la glib del corpus — el
cuadro de las «dos glib» que este repo ya pagó caro. Revertido y verificado que vuelve al hash de
antes (7404bc8d), o sea GNOME intacto. Se COPIAN a la cola de KDE.
`udev-pc` sí comparte artefacto (sus deps son sólo pkgconf ⇒ mismo hash desde las dos colas, un
solo directorio en el store). `libgudev` es otro a propósito, por la glib.

VERIFICADO sobre el artefacto sellado, no supuesto: trae `usr/libexec/upowerd`, el
`org.freedesktop.UPower.service` de system-services y su política en `system.d` — que es exactamente
lo que powerdevil necesita para que el demonio arranque por activación D-Bus.

El perfil pasa a 49 raíces, 301/301 listo, deuda 0.

Queda el segundo hueco: KDE no tiene backend de portal (ni `xdg-desktop-portal` en su cola), o sea
que no hay compartir pantalla — y en particular la captura de obs-studio, que la imagen ya trae, no
tiene con quién hablar en Plasma. Eso es más caro: pide traer el portal a la cola y ESCRIBIR
`xdg-desktop-portal-kde`, que no existe como receta en ninguna cola.

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

576 lines
10 KiB
JSON

{
"schema": "hammer-keystones/3",
"nudos": [
{
"nudo": "incoming-kde/libgudev",
"gateo_total": 1,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": true
},
{
"nudo": "corpus/make",
"gateo_total": 526,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/binutils",
"gateo_total": 448,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/pkgconf",
"gateo_total": 441,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/zlib",
"gateo_total": 381,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/perl",
"gateo_total": 377,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/xz-shared",
"gateo_total": 356,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/bzip2-shared",
"gateo_total": 355,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/ncurses-shared",
"gateo_total": 355,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/readline-shared",
"gateo_total": 354,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/openssl-threads",
"gateo_total": 353,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/sqlite-shared",
"gateo_total": 353,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/python3",
"gateo_total": 352,
"gateo_en_deuda": 1,
"exclusivo": 1,
"en_deuda": false
},
{
"nudo": "corpus/samurai",
"gateo_total": 337,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/meson",
"gateo_total": 314,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/libffi",
"gateo_total": 248,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/pcre2",
"gateo_total": 220,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/libudev-zero",
"gateo_total": 91,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/glib",
"gateo_total": 82,
"gateo_en_deuda": 1,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/go",
"gateo_total": 362,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/bison",
"gateo_total": 223,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/expat",
"gateo_total": 212,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/flex",
"gateo_total": 201,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/cmake",
"gateo_total": 188,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/wayland",
"gateo_total": 172,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/wayland-protocols",
"gateo_total": 168,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/zstd",
"gateo_total": 161,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/markupsafe",
"gateo_total": 160,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/libdrm",
"gateo_total": 159,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/mako",
"gateo_total": 156,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/packaging",
"gateo_total": 156,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/mesa",
"gateo_total": 153,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/util-macros",
"gateo_total": 148,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/xorgproto",
"gateo_total": 147,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/libXau",
"gateo_total": 140,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/libXdmcp",
"gateo_total": 140,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/xcb-proto",
"gateo_total": 140,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/libpthread-stubs",
"gateo_total": 140,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/libxcb",
"gateo_total": 139,
"gateo_en_deuda": 0,
"exclusivo": 1,
"en_deuda": false
},
{
"nudo": "incoming-kde/xtrans",
"gateo_total": 136,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/libX11",
"gateo_total": 132,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/gettext-tiny",
"gateo_total": 131,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/dbus",
"gateo_total": 127,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/linux-headers",
"gateo_total": 126,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/libXfixes",
"gateo_total": 126,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/libXext",
"gateo_total": 125,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/libXi",
"gateo_total": 124,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/libXrender",
"gateo_total": 124,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/openssl",
"gateo_total": 124,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/xcb-util",
"gateo_total": 124,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/xcb-util-image",
"gateo_total": 123,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/xcb-util-renderutil",
"gateo_total": 123,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/libxkbcommon",
"gateo_total": 122,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/xcb-util-keysyms",
"gateo_total": 122,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/xcb-util-wm",
"gateo_total": 122,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/xcb-util-cursor",
"gateo_total": 122,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/qtbase",
"gateo_total": 121,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/zlib-shared",
"gateo_total": 115,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/extra-cmake-modules",
"gateo_total": 108,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/qttools",
"gateo_total": 105,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/qtsvg",
"gateo_total": 103,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/qtshadertools",
"gateo_total": 102,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/qtlanguageserver",
"gateo_total": 102,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/qtdeclarative",
"gateo_total": 101,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/util-linux",
"gateo_total": 80,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/kcoreaddons",
"gateo_total": 72,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/kconfig",
"gateo_total": 65,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/ki18n",
"gateo_total": 64,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/plasma-wayland-protocols",
"gateo_total": 62,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/gperf",
"gateo_total": 59,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/pcre2-shared",
"gateo_total": 56,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/glib-shared",
"gateo_total": 55,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/kwidgetsaddons",
"gateo_total": 53,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/kcodecs",
"gateo_total": 52,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/kguiaddons",
"gateo_total": 52,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/libxkbcommon",
"gateo_total": 51,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "corpus/pixman",
"gateo_total": 48,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/kwindowsystem",
"gateo_total": 48,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/karchive",
"gateo_total": 47,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
},
{
"nudo": "incoming-kde/kcolorscheme",
"gateo_total": 47,
"gateo_en_deuda": 0,
"exclusivo": 0,
"en_deuda": false
}
],
"en_deuda": 1,
"camino_critico": {
"con_datos": true,
"segundos": 45.0,
"pasos": 1,
"cobertura": "0/1",
"secuencia": [
"incoming-kde/libgudev"
]
}
}