El «79%» que este plan y los SDD 19/20 venían citando era **el 79% del CONTENIDO BINARIO**,
medido sobre una muestra de .so/.a. Es cierto y es la cifra equivocada para planificar, porque un
artefacto no es sólo binarios: trae cabeceras, datos, iconos, locales, .pc y documentación, que
no encogen.
MEDIDO con `scripts/medir-debug.sh` (suma los tamaños reales de las secciones .debug_* vía
readelf -S y los compara con el tamaño del árbol, sin reconstruir nada):
40 artefactos · 876 MB · 27%
100 artefactos · 2955 MB · 38% (truncada a 60 ficheros/artefacto)
250 artefactos · 8874 MB · 60% ← la que manda: sin truncar, ~7% del store
La varianza es alta porque unos pocos artefactos grandes dominan el total, así que el número
necesitaba validación independiente — y la tiene: el piloto de la etapa 2, donde se reconstruyó y
se pesó de verdad, dio bison −50% y appstream −68%. Los dos ENCIERRAN el 60% de la muestra
grande. El modelo predice lo que el rebuild produjo.
CIFRAS CORREGIDAS, con el store en 127 G:
se venía diciendo medido
reserva de disco ~96 G ~76 G
store tras el split ~30 G ~51 G
espejo público ~30 G ~51 G
Sigue siendo el mayor ahorro disponible en el proyecto —76 G no es poco— pero no es lo
prometido, y la diferencia importa para dimensionar el alojamiento del espejo, que es una
decisión con factura.
LA LECCIÓN: una cifra medida sobre una cosa (contenido binario) se citó durante semanas como si
midiera otra (tamaño de artefacto), y llegó a tres documentos. El número no era falso; LA UNIDAD
sí. Cuando un número vaya a decidir un gasto, hay que volver a la medición original y comprobar
QUÉ estaba midiendo.
Corregido en los tres sitios donde se había propagado.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Pedido del usuario: «el catálogo de todo lo que falta hasta decir la distro está
publicable, y lo de más hasta la distro está completa. Y un tipo manual, todos los pasos
que tengo que ir haciendo en las tres etapas que marcan esos dos codos.»
SDD 20 = el inventario, medido contra el repo (grafo, no recuento a mano). SDD 21 = el
manual de a pie, un comando por vez, marcando qué puede hacer el agente y qué es del
usuario.
LO QUE APARECIÓ AL MEDIR, y que no se sabía:
· La deuda de construcción NO son 12+12+13+12 recetas: es UNA lista de 12 vista desde
cuatro grafos (la cadena GUI de la cascada de mesa). Un solo arreglo —declarar python3 y
cmake en `[deps]`, no engordar el rootfs del worker— las destraba todas. `base` y `cli`
ya están al 100%, KDE cierra 162/162.
· De WMs Wayland ligeros no hay NINGUNO: sólo `foot` y `mako`. Falta wlroots entero, los
compositores y todos los accesorios (waybar, fuzzel, swaybg, grim, slurp, wl-clipboard).
· De aplicaciones gráficas de terceros hay CERO. Ni visor de imágenes ni lector de PDF.
· Firefox no es «una receta más»: su cadena de `*-sys` con C++ es justo la frontera que el
techo MSRV del sandbox (1.96) no cruza. Antes de Firefox hay que subir el techo; empezar
por la receta es empezar por el final.
· El texto de la licencia va inyectado en `hammer pack`, NO en la fase install: las fases
entran al ArtifactHash, así que hacerlo en la receta re-hashearía las 1141. Pack es aguas
abajo y sale gratis. Misma lógica que hizo pagable el campo `license`.
Dos correcciones al SDD 19, que escribí yo ayer y tenía mal:
· «5 de 771 recetas declaran licencia» — falso por partida doble. El número real era 0 de
1141; los «5» eran falsos positivos de `grep license` (nombres de paquete, una línea de
install, un comentario) y 771 son los nodos del grafo del corpus, no las recetas.
· «El repo no declara licencia» — falso: hay LICENSE (MIT) en la raíz y en Cargo.toml. No
lo miré antes de escribirlo.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Lo que falta para TERMINAR de construir no es lo mismo que lo que falta para
PUBLICAR. Lo primero es trabajo conocido (16 recetas, WMs Wayland ligeros,
apps de terceros — con el navegador como frente propio). Lo segundo tiene dos
bloqueantes que hoy no existen y no se improvisan el día del anuncio:
1. METADATOS DE LICENCIA: sólo 5 de 771 recetas los declaran. La distro no sabe
bajo qué términos redistribuye el 99% de lo que empaqueta. Hace falta campo
obligatorio validado por hammer + el texto dentro del artefacto.
2. ESPEJO DE FUENTES: la GPL no pide que el código exista en internet, pide que
quien recibe el binario pueda obtener la fuente correspondiente DE VOS. Acá
estamos bien parados —cada receta pinea tarball+sha256— pero hay que hacerlo.
Más: gestión de claves (firma sin eso es teatro), evidencia de reproducibilidad
publicada como diferenciador comprobable, imagen validada en METAL, y ciclo de
actualización ensayado antes de publicar.
Recomendación de arranque: el campo de licencia obligatorio, ya. A 771 recetas
es un rato; a 2000 es un proyecto.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>