targets: barrido de perfiles y servicios — la WiFi faltaba, y tres escritorios no arrancaban nada
── BARRIDO 1: las hojas selladas sin perfil ────────────────────────────────────────────────────
Método, para que se pueda repetir: cruzar el campo `perfiles` de los cinco build-state*.json con
`dependientes_total`. De 905 nodos, 631 sin perfil; de ésos, **620 son HOJAS** (nadie depende de
ellas, o sea que ninguna clausura las puede alcanzar) y 11 llegan por la clausura de otra.
Las 620 se parten en dos por una marca objetiva, la cabecera del importador:
· **529** dicen «PUNTO DE PARTIDA, no final» — volcado crudo de import-nix/import-alpine
(328 Go + 195 Rust + 6 C). Nadie las curó nunca para una imagen.
· **91** están trabajadas a mano. Ésas son las que se triaron una por una.
Lo que salió de ese triaje, y lo que se declara:
**`base` += `wpa_supplicant` — la imagen NO PODÍA ASOCIARSE A UN WiFi.** dhcpcd resuelve la IP de
un cable; el handshake WPA2 de 4 vías lo hace un supplicant en userspace y busybox no lo trae. La
receta existía desde el frente de metal —su cabecera dice «para asociar el WiFi del medio live al
AP»— y estaba en CERO perfiles. Es la figura de `foot` y esta vez el precio era quedarse sin red.
**`cli` += nano, tig, patch, socat, pigz, miller, dwarves.** El criterio va escrito en el fichero
porque meter las 620 habría sido peor que no mirar: entra lo que un usuario de esta capa ESPERA
encontrar y hoy no está. El resto queda en el catálogo, que NO es lo mismo que la imagen.
**`escritorio-sway` += wlr-randr**: no había con qué cambiar la resolución ni rotar una pantalla.
── BARRIDO 2: el «enable» ──────────────────────────────────────────────────────────────────────
De los cuatro escritorios **sólo GNOME tenía lista `servicios`**. Los otros tres salían con sus
demonios instalados y NINGUNO arrancado, y la métrica de clausura daba N/N igual — `paquetes` dice
qué se instala, `servicios` dice qué se levanta, y sin la segunda la imagen está a medias sin que
nada falle.
Escritas las tres que faltaban, computando la lista (no a ojo): se cruzaron los `[[service]]` de
las 11 recetas que los declaran contra el campo `perfiles` de los cinco grafos — la CLAUSURA, no
las raíces, porque la mitad de los demonios llegan como dep. Y GNOME sumó `cupsd`+`bluetoothd`,
que nacieron ayer.
⚠ El cruce destapó tres ausencias que NO se arreglan acá y quedan escritas en el fichero:
· KDE y sway tienen `pipewire` y **no tienen `wireplumber`**: sin gestor de sesión los nodos
existen y nadie los conecta.
· COSMIC **no tiene `upowerd`** y dibuja un indicador de batería.
· KDE y sway no tienen `logind-compat`.
Comprobado: tomllib parsea, y los ocho perfiles resuelven con scripts/targets.py.
This commit is contained in:
@@ -57,6 +57,18 @@ paquetes = [
|
||||
# porque los 8 ficheros eran headers y `libzstd.a`. Ampliar la canónica re-hashearía a sus 13
|
||||
# consumidores (mesa entre ellos), así que va como variante. Ver SDD 28 §6.13.
|
||||
"zstd-cli",
|
||||
# ── LA CAPACIDAD QUE FALTABA: WiFi (2026-09-13, barrido de perfiles) ─────────────────────────
|
||||
# La imagen NO podía asociarse a una red inalámbrica. `dhcpcd`, ahí arriba, resuelve la IP de un
|
||||
# cable; el handshake WPA2 de 4 vías lo hace un supplicant en userspace, y busybox NO lo trae.
|
||||
# La receta existía desde el frente de metal —su cabecera dice literalmente «para asociar el WiFi
|
||||
# del medio live al AP»— y no estaba declarada en NINGÚN perfil: sellada, reproducible, y en cero
|
||||
# imágenes. Es la figura de `foot` otra vez, y esta vez el precio era quedarse sin red.
|
||||
# Va en `base` por el mismo argumento que `dhcpcd`: es la capa que convierte «la máquina arrancó»
|
||||
# en «la máquina tiene red», y un portátil sin WiFi es una máquina sin red aunque el resto esté.
|
||||
# ⚠ Son TRES binarios (`wpa_supplicant`, `wpa_cli`, `wpa_passphrase`) y nada más. NO trae gestor
|
||||
# de red: `networkmanager` existe SÓLO en `incoming-kde`, así que GNOME, COSMIC y sway no lo
|
||||
# alcanzan (cola hermana). Eso es una decisión aparte, escrita en el plan del barrido.
|
||||
"wpa_supplicant",
|
||||
]
|
||||
|
||||
[perfil.cli]
|
||||
@@ -100,6 +112,18 @@ paquetes = [
|
||||
# herramientas de quien CONSTRUYE con la distro, no de quien la usa: `sccache` ya estaba sellada
|
||||
# y sin perfil, `mold` es de hoy. Van acá y no en `base` porque un servidor pelado no las quiere.
|
||||
"sccache", "mold",
|
||||
# ── BARRIDO DE PERFILES (2026-09-13): selladas hace meses y en ninguna imagen ────────────────
|
||||
# Criterio para entrar acá, y está escrito porque el barrido encontró 620 hojas sin perfil y
|
||||
# meterlas todas habría sido peor que no mirar: entra lo que un usuario de esta capa ESPERA
|
||||
# encontrar y hoy no está. Lo demás queda en el catálogo y se instala por nombre — ver
|
||||
# `docs/plan-barrido-perfiles-y-servicios.md`, §la política.
|
||||
"nano", # el editor que teclea quien no sabe salir de vim; `base` sólo trae vim
|
||||
"tig", # git en TUI; el corpus tenía lazygit y gitui y ninguno declarado hasta hoy
|
||||
"patch", # aplicar un diff a mano. Userland clásico que simplemente faltaba
|
||||
"socat", # el destornillador de red: sockets, puertos, diagnóstico
|
||||
"pigz", # gzip en paralelo
|
||||
"miller", # `jq` para CSV/TSV — el hueco de datos tabulares
|
||||
"dwarves", # `pahole`: inspeccionar el BTF/DWARF del kernel. Esta distro compila el suyo
|
||||
]
|
||||
|
||||
[perfil.escritorio-mirada]
|
||||
@@ -369,6 +393,31 @@ paquetes = [
|
||||
"cups", "bluez",
|
||||
]
|
||||
|
||||
# ── QUÉ ARRANCA (el «enable»; SDD 30 §3) ────────────────────────────────────────────────────────
|
||||
# ⚠ ESTE PERFIL NO TENÍA ESTA LISTA HASTA EL 2026-09-13, y eso NO se leía como un hueco: se leía
|
||||
# como un perfil completo. `paquetes` dice qué se INSTALA y `servicios` dice qué se LEVANTA; sin la
|
||||
# segunda, la imagen salía con sus demonios instalados y **ninguno arrancado**, y la métrica de
|
||||
# clausura daba N/N igual. De los cuatro escritorios sólo `escritorio-gnome` la tenía.
|
||||
#
|
||||
# Cada entrada es el `label` de un `[[service]]` declarado por una receta de la CLAUSURA de este
|
||||
# perfil (no de sus raíces: la mitad viven en deps). La lista es exactamente lo que la clausura
|
||||
# ofrece hoy — se computó cruzando los `[[service]]` del corpus y las cuatro colas contra el campo
|
||||
# `perfiles` de los cinco `build-state*.json`, no a ojo.
|
||||
#
|
||||
# ⚠ Declarar NO es hacer funcionar. Los de `scope = "session"` salen con AVISO a propósito, como en
|
||||
# GNOME: fuera de `mirada` nadie entrega Cards de sesión todavía. Un hueco escrito se ve.
|
||||
#
|
||||
# ⚠ DOS AUSENCIAS QUE ESTE CRUCE DESTAPÓ Y QUE NO SE ARREGLAN ACÁ:
|
||||
# · **no hay `wireplumber`** en la clausura. `pipewire` sin gestor de sesión no encamina nada:
|
||||
# los nodos existen y nadie los conecta. GNOME y COSMIC sí lo tienen; KDE y sway, no.
|
||||
# · **no hay `logind-compat`**. KWin pide una sesión de logind para tomar el seat; acá la cubre
|
||||
# `seatd`/el propio `plasma-workspace`, pero conviene saber que el servicio no está.
|
||||
# Las dos son deuda del perfil, no de esta lista. Se escriben para que se vean.
|
||||
servicios = [
|
||||
"dbus-system", "upowerd", "cupsd", "bluetoothd",
|
||||
"pipewire", "pipewire-pulse",
|
||||
]
|
||||
|
||||
[perfil.escritorio-gnome]
|
||||
descripcion = "escritorio GNOME (Wayland-nativo) desde fuente — 3er escritorio, X11 al tacho"
|
||||
cola = "incoming-gnome"
|
||||
@@ -672,6 +721,9 @@ paquetes = [
|
||||
servicios = [
|
||||
"dbus-system", "logind-compat", "polkit-compat", "accounts-daemon", "upowerd", "colord",
|
||||
"pipewire", "pipewire-pulse", "wireplumber",
|
||||
# 2026-09-13: los dos que nacieron con `cups` y `bluez`. Sin esta línea la imagen los traía
|
||||
# instalados y apagados, que es la mitad inútil de tenerlos.
|
||||
"cupsd", "bluetoothd",
|
||||
]
|
||||
|
||||
[perfil.escritorio-cosmic]
|
||||
@@ -884,6 +936,28 @@ paquetes = [
|
||||
"cliphist",
|
||||
]
|
||||
|
||||
# ── QUÉ ARRANCA (el «enable»; SDD 30 §3) ────────────────────────────────────────────────────────
|
||||
# ⚠ ESTE PERFIL NO TENÍA ESTA LISTA HASTA EL 2026-09-13, y eso NO se leía como un hueco: se leía
|
||||
# como un perfil completo. `paquetes` dice qué se INSTALA y `servicios` dice qué se LEVANTA; sin la
|
||||
# segunda, la imagen salía con sus demonios instalados y **ninguno arrancado**, y la métrica de
|
||||
# clausura daba N/N igual. De los cuatro escritorios sólo `escritorio-gnome` la tenía.
|
||||
#
|
||||
# Cada entrada es el `label` de un `[[service]]` declarado por una receta de la CLAUSURA de este
|
||||
# perfil (no de sus raíces: la mitad viven en deps). La lista es exactamente lo que la clausura
|
||||
# ofrece hoy — se computó cruzando los `[[service]]` del corpus y las cuatro colas contra el campo
|
||||
# `perfiles` de los cinco `build-state*.json`, no a ojo.
|
||||
#
|
||||
# ⚠ Declarar NO es hacer funcionar. Los de `scope = "session"` salen con AVISO a propósito, como en
|
||||
# GNOME: fuera de `mirada` nadie entrega Cards de sesión todavía. Un hueco escrito se ve.
|
||||
#
|
||||
# ⚠ AUSENCIA DESTAPADA POR EL CRUCE: **no hay `upowerd`**. COSMIC dibuja un indicador de batería y
|
||||
# el demonio que lo alimenta no está en la clausura ⇒ en un portátil el applet no tiene datos.
|
||||
# Deuda del perfil, no de esta lista.
|
||||
servicios = [
|
||||
"dbus-system", "logind-compat", "cupsd", "bluetoothd",
|
||||
"pipewire", "pipewire-pulse", "wireplumber",
|
||||
]
|
||||
|
||||
[perfil.escritorio-sway]
|
||||
descripcion = "WM Wayland ligero: sway sobre wlroots propio, sin X11 y sin systemd"
|
||||
cola = "incoming-wlr"
|
||||
@@ -1078,6 +1152,32 @@ paquetes = [
|
||||
# este perfil y en COSMIC: habla `wlr-data-control`, que KWin y mutter NO implementan (mismo
|
||||
# muro que `wf-recorder`). Declararlo donde no funciona sería peor que no tenerlo.
|
||||
"cliphist",
|
||||
# `wlr-randr` (2026-09-13, barrido): sway no tenía CON QUÉ cambiar la resolución ni orientar una
|
||||
# pantalla. `swaymsg output` sirve si el compositor está vivo y configurado; esto es la
|
||||
# herramienta equivalente a xrandr para wlroots, y era otra hoja sellada sin perfil.
|
||||
"wlr-randr",
|
||||
]
|
||||
|
||||
# ── QUÉ ARRANCA (el «enable»; SDD 30 §3) ────────────────────────────────────────────────────────
|
||||
# ⚠ ESTE PERFIL NO TENÍA ESTA LISTA HASTA EL 2026-09-13, y eso NO se leía como un hueco: se leía
|
||||
# como un perfil completo. `paquetes` dice qué se INSTALA y `servicios` dice qué se LEVANTA; sin la
|
||||
# segunda, la imagen salía con sus demonios instalados y **ninguno arrancado**, y la métrica de
|
||||
# clausura daba N/N igual. De los cuatro escritorios sólo `escritorio-gnome` la tenía.
|
||||
#
|
||||
# Cada entrada es el `label` de un `[[service]]` declarado por una receta de la CLAUSURA de este
|
||||
# perfil (no de sus raíces: la mitad viven en deps). La lista es exactamente lo que la clausura
|
||||
# ofrece hoy — se computó cruzando los `[[service]]` del corpus y las cuatro colas contra el campo
|
||||
# `perfiles` de los cinco `build-state*.json`, no a ojo.
|
||||
#
|
||||
# ⚠ Declarar NO es hacer funcionar. Los de `scope = "session"` salen con AVISO a propósito, como en
|
||||
# GNOME: fuera de `mirada` nadie entrega Cards de sesión todavía. Un hueco escrito se ve.
|
||||
#
|
||||
# ⚠ MISMA AUSENCIA QUE KDE: **no hay `wireplumber`**. `pipewire` sin gestor de sesión no encamina
|
||||
# nada. Y tampoco hay `upowerd` ni `logind-compat` — en un WM ligero eso es defendible (seatd hace
|
||||
# el seat y `yambar` puede leer la batería de sysfs), pero es una decisión, no un hecho dado.
|
||||
servicios = [
|
||||
"dbus-system", "cupsd", "bluetoothd",
|
||||
"pipewire", "pipewire-pulse",
|
||||
]
|
||||
|
||||
[perfil.servidor]
|
||||
|
||||
Reference in New Issue
Block a user