Commit Graph
3268 Commits
Author SHA1 Message Date
Sergio 72fafd563c estado: cosecha granja 2026-09-21T03:33:07Z — avance del árbol KDE 2026-09-21 03:33:07 +00:00
Sergio 505745577d estado: cosecha granja 2026-09-21T03:02:11Z — avance del árbol KDE 2026-09-21 03:02:11 +00:00
Sergio b7e5467ac8 estado: cosecha granja 2026-09-21T02:31:40Z — avance del árbol KDE 2026-09-21 02:31:40 +00:00
Sergio 1b21969274 estado: cosecha granja 2026-09-21T02:01:30Z — avance del árbol KDE 2026-09-21 02:01:30 +00:00
Sergio 48b2152c24 jaula: el sysroot del corpus — el compositor ya se construye y CORRE adentro
`jaula-herramientas.sh` deja el compilador, y eso alcanza hasta que algo toca una
biblioteca de C. `mirada-compositor` moría en su build script con «The
PKG_CONFIG_PATH environment variable is not set», y el mensaje engaña: las
dieciocho bibliotecas están en el store. Lo que no había era dónde verlas juntas
— los `.pc` del corpus declaran `prefix=/usr` porque se miran desde el sandbox de
`takana build`, que monta la clausura ahí.

La lista sale de `recipes/mirada-compositor.toml`, no de una copia que se pudra.
Se le suman dos cosas que ninguna receta nombra y que un sysroot a mano sí
necesita: `musl` (adentro del sandbox la libc la pone el sandbox; sin sus
cabeceras bindgen lee las de glibc y muere en 'stddef.h' file not found) y las
gemelas `<dep>-shared` cuando existen (la receta pide zlib/expat/libffi
estáticas, pero el producto es dinámico y al CORRER pide las .so).

Tres cosas que sólo aparecieron haciéndolo:

· La granja espeja el ÁRBOL ENTERO, no `/usr`. El primer intento perdía
  `linux-pam` completo, que instala en /lib64 — y no falló compilando: falló con
  el binario ya enlazado tomando el libpam de Arch y muriendo en __memcpy_chk.
· Los `-L` van explícitos y derivados de la granja. pkg-config sólo emite el del
  módulo que le preguntan, y `pam-sys` no usa pkg-config: emite `link-lib=pam` y
  nada más. Con el sysroot a medias eso daba verde porque lld caía al /usr/lib de
  Arch; con el sysroot completo dice la verdad y no enlaza.
· El control corre `xkb_keysym_from_name` y no `xkb_context_new`: el contexto
  necesita los datos de xkeyboard-config, que no están en la clausura, y el
  control moría por algo que no estaba midiendo.

Medido adentro de la jaula, con el ambiente limpio (todo sale de la config de
cargo): `cargo build -p mirada-compositor` en 5m13s, y el binario arranca, elige
el backend DRM y llega hasta donde la jaula lo deja. Sin regresión: `format`
compila y los 14 tests de `llimphi-cpu` pasan.
2026-09-21 01:35:37 +00:00
Sergio bfd2827b40 estado: cosecha granja 2026-09-21T01:32:00Z — avance del árbol KDE 2026-09-21 01:32:00 +00:00
SergioandClaude Opus 5 e6ab5a5016 atuq: la bóveda estaba SELLADA y en ninguna imagen — y estar en la imagen no es poder abrirla
El §7.novies dio la función por cerrada: las seis etapas del guardián de metal en verde, con el
navegador de verdad y el diálogo a la vista. Lo que seguía abierto era la decisión 1 del §7.sexies
—«en qué imágenes se declaran»—, escrita como NO mientras ninguna app llimphi pudiera pintar. Ese
motivo se cayó el 2026-09-18, así que antes de tomarla se volvió a medir en vez de darla por sabida:

    atuq             sealed   perfiles=[cosmic, gnome, kde, sway]
    puriy-costura    sealed   perfiles=[cosmic, gnome, kde, sway]
    boveda           sealed   perfiles=[]
    shuma-pregunta   sealed   perfiles=[]

`sealed` con `perfiles: []` es sellado ≠ instalado: la lección de `foot`, que targets.toml repetía
QUINCE veces antes de hoy y que igual volvió a morder. Las dos entran a los cuatro perfiles de
escritorio, las dos o ninguna —sin el dueño `vault.match` no ofrece nada; sin el diálogo,
`Command::new` falla y TODO `vault.fill` se deniega—: media bóveda es una que niega todo en
silencio. ~43 M por imagen (22 M + 21 M medidos), contra los ~1,25 GiB que ya lleva el §6.7.

Y al declararlas apareció el hueco de una capa más arriba: la receta instalaba `/usr/bin/boveda` y
nada más, y los lanzadores de los cuatro escritorios leen `/usr/share/applications`. La app viajaría
en la imagen sin existir para quien la usa — la misma forma de fallo que esto viene persiguiendo.
Entra `boveda.desktop`, con tres cosas medidas antes de escribirlo:

· el icono existe: `dialog-password` está en breeze-icons (6), adwaita (1) y cosmic-icons (2). El
  cuarto perfil lleva sólo hicolor, que no trae iconos: ahí cae al genérico, que es degradarse;
· lo acepta el `desktop-file-validate` del store, con `atuq.desktop` de control. Deja un hint sobre
  `Security`, y las dos formas de callarlo lo cambian por uno PEOR (dos categorías principales ⇒ la
  app aparece dos veces en el menú). Se queda como está;
· ⚠ y lo que NO puede hacer: emparejar la ventana con el lanzador. `llimphi_ui::run` no llama nunca
  a `with_name` ⇒ winit no manda `set_app_id` y la ventana sale SIN app_id y con el título
  "llimphi". Por eso no hay `StartupWMClass`. Vale para toda app llimphi; se arregla en llimphi.

La receta se reconstruyó en el worker con la guarda del §7.quinquies puesta (`### receta verificada
3f1072cc` antes de compilar nada, porque el latido revierte la receta cada media hora y un acierto
de caché sobre la vieja imprime SELLADA en cero segundos): `b3:b0c6adc4` ⇒ `b3:3f1072cc`, 22 M, con
el árbol mirado por dentro y la entrada dentro del artefacto.

Y el guardián de coherencia pasa de CINCO lugares a SEIS: el sexto es `targets.toml` —quién DECLARA
al dueño en la imagen—, con control positivo (`atuq` tiene que estar, o el chequeo está leyendo el
campo equivocado) y su propio control negativo, el tercero. Probado en los dos sentidos: cuatro
perfiles en verde, y `--negative-control-perfil` en rojo.

Abierto, y dicho como lo que es: quién levanta la app con la sesión (atado a la decisión 2 del
§7.sexies, la raíz de las claves), y que el único proveedor de GL de las cuatro imágenes es iris
—mesa-llvmpipe en ningún perfil—, que la bóveda hereda y no agrega.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-21 01:30:57 +00:00
Sergio 35cc75be0c estado-granja: tres números que mentían — la barra KDE clavada por un ajeno, el latido medido en el clon viejo, y el load del anfitrión leído como del worker 2026-09-21 01:14:28 +00:00
Sergio 0d0f16981c estado: cosecha granja 2026-09-21T01:01:30Z — avance del árbol KDE 2026-09-21 01:01:31 +00:00
Sergio d09f91c3c3 jaula: el envoltorio hacía arrancar a cargo, pero no a lo que cargo LANZA
cargo exporta `CARGO=<ruta del binario REAL>` —el del store, no el envoltorio— y
hay macros que lo ejecutan: `proc-macro-crate` corre `$CARGO locate-project` para
ubicar la raíz del workspace. Adentro de la jaula ese exec moría con «No such
file or directory», que acá miente: el fichero existe y es ejecutable, el que
falta es el INTÉRPRETE. `crate_name()` devolvía Err y el derive `Type` de
zvariant caía a su última rama, `::zvariant` en vez de `::zbus::zvariant`:

    error[E0433]: cannot find `zvariant` in the crate root   (atspi-proxies 0.13.0)

Eso se lee como un defecto del lock del repo ajeno y NO lo es. Con el cargador
puesto en /lib, `llimphi-ui` de tawasuyu —winit + accesskit + wgpu— compila
entero en 2m17s. La clase es más grande que el caso: cualquier herramienta que
re-ejecute `$CARGO` o `$RUSTC` por ruta absoluta se rompía igual, en un crate
ajeno y a diez capas del origen.

El envoltorio ya prefería el cargador de la caja (`[ -x /lib/ld-musl… ]`); lo que
faltaba era ponerlo cuando no está. En la caja, que es musl, el guion se aparta.

Y va con su control, porque los trece de antes NO lo veían: todos entran por el
envoltorio. Brazo de control corrido con un cargador falso — los trece en verde y
el nuevo en rojo, que es exactamente el hueco.
2026-09-21 00:54:12 +00:00
Sergio 48f8c1d259 estado: cosecha granja 2026-09-21T00:31:26Z — avance del árbol KDE 2026-09-21 00:31:26 +00:00
Sergio 083a7ba40d estado: cosecha granja 2026-09-21T00:01:39Z — avance del árbol KDE 2026-09-21 00:01:39 +00:00
Sergio f6890cb4fb estado: cosecha granja 2026-09-20T23:31:29Z — avance del árbol KDE 2026-09-20 23:31:29 +00:00
Sergio 2f533da8ca estado: cosecha granja 2026-09-20T23:01:24Z — avance del árbol KDE 2026-09-20 23:01:24 +00:00
Sergio 5499cecfd6 estado: cosecha granja 2026-09-20T22:31:24Z — avance del árbol KDE 2026-09-20 22:31:24 +00:00
Sergio 23823e5831 estado: cosecha granja 2026-09-20T22:01:45Z — avance del árbol KDE 2026-09-20 22:01:45 +00:00
Sergio fb237afb1e estado: cosecha granja 2026-09-20T21:31:25Z — avance del árbol KDE 2026-09-20 21:31:25 +00:00
Sergio 042a846eb1 estado: cosecha granja 2026-09-20T21:01:55Z — avance del árbol KDE 2026-09-20 21:01:55 +00:00
Sergio 7e4e94dbff estado: cosecha granja 2026-09-20T20:31:27Z — avance del árbol KDE 2026-09-20 20:31:27 +00:00
Sergio 1938a4b214 estado: cosecha granja 2026-09-20T20:01:46Z — avance del árbol KDE 2026-09-20 20:01:46 +00:00
Sergio ceebc94c43 estado: cosecha granja 2026-09-20T19:31:32Z — avance del árbol KDE 2026-09-20 19:31:32 +00:00
Sergio 1094eec86d estado: cosecha granja 2026-09-20T19:01:39Z — avance del árbol KDE 2026-09-20 19:01:39 +00:00
Sergio 6a993a08e1 estado: cosecha granja 2026-09-20T18:31:53Z — avance del árbol KDE 2026-09-20 18:31:53 +00:00
Sergio a27008ff3a estado: cosecha granja 2026-09-20T18:01:50Z — avance del árbol KDE 2026-09-20 18:01:50 +00:00
Sergio 3c28686bde estado: cosecha granja 2026-09-20T17:31:25Z — avance del árbol KDE 2026-09-20 17:31:25 +00:00
Sergio 7a058954ea estado: cosecha granja 2026-09-20T17:01:40Z — avance del árbol KDE 2026-09-20 17:01:40 +00:00
Sergio e7c558617a estado: cosecha granja 2026-09-20T16:31:34Z — avance del árbol KDE 2026-09-20 16:31:34 +00:00
Sergio 043ac3f27b estado: cosecha granja 2026-09-20T16:01:31Z — avance del árbol KDE 2026-09-20 16:01:31 +00:00
Sergio f11ee8380d estado: cosecha granja 2026-09-20T15:32:15Z — avance del árbol KDE 2026-09-20 15:32:15 +00:00
Sergio 8ce2c20b31 estado: cosecha granja 2026-09-20T15:01:31Z — avance del árbol KDE 2026-09-20 15:01:31 +00:00
Sergio 38a1392a4a estado: cosecha granja 2026-09-20T14:31:28Z — avance del árbol KDE 2026-09-20 14:31:28 +00:00
Sergio 8b83050e65 estado: cosecha granja 2026-09-20T14:01:55Z — avance del árbol KDE 2026-09-20 14:01:55 +00:00
Sergio 816d3c6dbe estado: cosecha granja 2026-09-20T13:31:37Z — avance del árbol KDE 2026-09-20 13:31:37 +00:00
Sergio 72a3c3c988 estado: cosecha granja 2026-09-20T13:01:33Z — avance del árbol KDE 2026-09-20 13:01:33 +00:00
Sergio 0a71b867c2 estado: cosecha granja 2026-09-20T12:31:31Z — avance del árbol KDE 2026-09-20 12:31:31 +00:00
Sergio ad4c5b5b97 estado: cosecha granja 2026-09-20T12:01:35Z — avance del árbol KDE 2026-09-20 12:01:35 +00:00
Sergio b06ebb60e4 estado: cosecha granja 2026-09-20T11:31:26Z — avance del árbol KDE 2026-09-20 11:31:26 +00:00
Sergio 20d47a7541 estado: cosecha granja 2026-09-20T11:01:45Z — avance del árbol KDE 2026-09-20 11:01:45 +00:00
Sergio 03d94a3e9e estado: cosecha granja 2026-09-20T10:31:54Z — avance del árbol KDE 2026-09-20 10:31:54 +00:00
Sergio e6c2c11785 estado: cosecha granja 2026-09-20T10:01:31Z — avance del árbol KDE 2026-09-20 10:01:31 +00:00
Sergio 4ae2afd273 estado: cosecha granja 2026-09-20T09:31:20Z — avance del árbol KDE 2026-09-20 09:31:20 +00:00
Sergio 3262668deb estado: cosecha granja 2026-09-20T09:01:33Z — avance del árbol KDE 2026-09-20 09:01:33 +00:00
Sergio ae7ca4f420 estado: cosecha granja 2026-09-20T08:32:03Z — avance del árbol KDE 2026-09-20 08:32:03 +00:00
Sergio ae22ecf1c7 estado: cosecha granja 2026-09-20T08:01:23Z — avance del árbol KDE 2026-09-20 08:01:23 +00:00
Sergio a6bbb8df6c estado: cosecha granja 2026-09-20T07:31:30Z — avance del árbol KDE 2026-09-20 07:31:31 +00:00
Sergio 5e93edacbb estado: cosecha granja 2026-09-20T07:01:35Z — avance del árbol KDE 2026-09-20 07:01:35 +00:00
Sergio 15b63b5ecd estado: cosecha granja 2026-09-20T06:32:05Z — avance del árbol KDE 2026-09-20 06:32:05 +00:00
Sergio 3de3031658 estado: cosecha granja 2026-09-20T06:01:22Z — avance del árbol KDE 2026-09-20 06:01:22 +00:00
Sergio 19e1a71ce4 estado: cosecha granja 2026-09-20T05:31:23Z — avance del árbol KDE 2026-09-20 05:31:23 +00:00
Sergio 35465464d0 estado: cosecha granja 2026-09-20T05:01:31Z — avance del árbol KDE 2026-09-20 05:01:31 +00:00