targets: kde/gnome/cosmic heredan cli — las imágenes ya no salen sin shell ni red

Paso 1 del SDD 27. Resultó ser UNA LÍNEA POR PERFIL: el mecanismo `hereda` ya existía en
`scripts/targets.py` —transitivo, con detección de ciclos y orden preservado— y `escritorio-sway`
ya lo usaba desde el 2026-08-07. Los otros tres nunca lo declararon, y eso no era una decisión: era
composición no declarada.

LO QUE ARREGLA, medido antes: de los 27 paquetes del perfil `base`, la clausura de escritorio-kde
alcanzaba DOS. Contra el rootfs real: sin `bash`, sin `sudo`/`doas`, sin `git`, sin `useradd`, sin
`gpg` y **sin `dhcpcd`** —o sea sin con qué pedir una IP—; y lo que parecía estar (`ip`, `mount`,
`fsck`) eran applets de busybox (`/sbin/ip → ../bin/busybox`).

DESPUÉS, verificado hidratando de verdad y no leyendo el grafo: en el rootfs aparecen `bash`,
`sudo`, `doas`, `git`, `dhcpcd`, `useradd`, `gpg`, `rg`, `fd`, `bat`, y `/sbin/ip` pasa a ser el
BINARIO de iproute2 en vez del applet.

  raíces  kde 49→96 · gnome 39→86 · cosmic 43→88
  nodos   kde 301→356 · gnome 204→256 · cosmic 162→216
  deuda   0 en los tres — no hubo que construir NADA, ya estaba todo sellado
  colisiones nuevas al hidratar: CERO (los 28 .hammer-tmp son los de gmp/mpfr de antes)

⚠ `escritorio-mirada` NO hereda a propósito: es el rootfs *slim* del USB y sumarle 47 raíces
contradice su razón de ser. Si algún día se quiere, es la misma línea.

`kde-rootfs` en el volumen se rehidrató con la herencia (11 G) para que el nombre canónico no quede
viejo — que es el error que este mismo día costó encontrar en GNOME y COSMIC. El rootfs FUNDIDO y la
imagen siguen siendo los de antes: rehacerlos es un paso aparte.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LCt3ettR4Z7b6wPCBmbvEV
This commit is contained in:
Sergio
2026-09-09 22:31:12 +00:00
co-authored by Claude Opus 5
parent 1b00a0c7ae
commit c20372597a
6 changed files with 542 additions and 14 deletions
@@ -119,8 +119,17 @@ El verbo, en cambio, ya es el correcto: **`takana install`**.
## 7. Orden propuesto
1. **Herencia entre perfiles** (`hereda = [...]`) y hacer que los cuatro escritorios hereden `base`.
Es lo más barato y arregla un fallo real: hoy los escritorios no traen shell ni red.
1. ~~**Herencia entre perfiles**~~**HECHO el 2026-09-09**, y resultó ser una línea por perfil:
el mecanismo `hereda` YA EXISTÍA en `scripts/targets.py` (transitivo, con detección de ciclos y
orden preservado) y `escritorio-sway` ya lo usaba desde el 2026-08-07. Los otros tres
simplemente no lo habían declarado. Ahora kde/gnome/cosmic heredan `cli`, que hereda `base`.
Medido: raíces 49→96 (kde), 39→86 (gnome), 43→88 (cosmic); nodos 301→356, 204→256, 162→216;
**deuda 0 en los tres** —no hubo que construir nada, ya estaba todo sellado— y **cero colisiones
nuevas** al hidratar (los 28 `.hammer-tmp` son los mismos de `gmp`/`mpfr` de antes).
Verificado en el rootfs: aparecen `bash`, `sudo`, `doas`, `git`, `dhcpcd`, `useradd`, `gpg`,
`rg`, `fd`, `bat`, y `/sbin/ip` deja de ser el applet de busybox para ser el binario de iproute2.
`escritorio-mirada` NO hereda a propósito: es el rootfs *slim* del USB y sumarle 47 raíces
contradice su razón de ser. Si algún día se quiere, es la misma línea.
2. **Decidir el piso**: qué del toolbox CLI de 652 entra en `base`. Coste de build cero.
3. **Publicar perfiles** al repositorio firmado.
4. **`takana install <perfil>`**, hidratando por defecto y con `--reproduce` como camino auditable.