From 78ad2e82013cea2c2fefcd9d6017f3fbfa934b3d Mon Sep 17 00:00:00 2001 From: sergio Date: Fri, 7 Aug 2026 14:53:54 -0400 Subject: [PATCH] =?UTF-8?q?docs:=20SDD=2020=20=E2=80=94=20corregido=20d?= =?UTF-8?q?=C3=B3nde=20va=20el=20texto=20de=20licencia=20(im=C3=A1genes,?= =?UTF-8?q?=20no=20pack)=20y=20estado=20real=201063/1141?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El catálogo decía que el texto de la licencia se inyecta en `hammer pack`. El razonamiento del coste era correcto pero el sitio estaba mal: pack emite un .swm (receta sobre fuente pública, sin binarios) e install reproduce construyendo, así que el canal de paquetes no distribuye binarios. El punto de entrega es la IMAGEN, y ahí está hecho, con veto. Co-Authored-By: Claude Opus 5 (1M context) --- docs/20-catalogo-publicable-y-completa.md | 24 ++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/docs/20-catalogo-publicable-y-completa.md b/docs/20-catalogo-publicable-y-completa.md index cfdc21f1..21dc9da9 100644 --- a/docs/20-catalogo-publicable-y-completa.md +++ b/docs/20-catalogo-publicable-y-completa.md @@ -104,7 +104,12 @@ Ese mismo día se hizo lo estructural: curada. - 228 sembradas: todo el toolchain, la base C, las gráficas, GNOME/GTK, Qt, KDE Frameworks y Plasma. -**Falta**: las 913 restantes, casi todas CLIs Go/Rust importados en masa. Buena noticia: **ésas sí se +**Estado al cierre del día: 1063 de 1141 (93%).** Cuatro escalones de evidencia, de peor a mejor: +nombre (prohibido) → URL de fuente (familias) → API de licencias de GitHub → `Cargo.toml` del autor +al tag exacto. Faltan 78. **Falta también** desambiguar ~55 SPDX obsoletos (`GPL-3.0` no dice si es +`-only` u `-or-later`), que es trabajo humano: hay que leer cabeceras de fuentes. + +*(texto original: «Falta: las 913 restantes, casi todas CLIs Go/Rust importados en masa.»)* Buena noticia: **ésas sí se automatizan con evidencia real y sin red** — `Cargo.toml` trae el campo `license` y los módulos Go traen su `LICENSE` en el árbol. El cierre definitivo es capturarlo en la **fase de fetch**, que ya descarga y extrae cada tarball. @@ -114,10 +119,19 @@ vacía — convierte un hueco visible en una afirmación falsa. Concretamente se «`k*` = KDE ⇒ LGPL»: en este catálogo `kail`, `kind`, `ko`, `kopia`, `krew`, `kustomize`, `kyverno` y toda la familia `kube*` son herramientas Go sin relación con KDE. -### El texto de la licencia dentro del paquete -La GPL obliga a acompañar el binario del texto. **Dónde se inyecta decide el precio**: en la fase -`install` de la receta re-hashearía las 1141 (las fases SÍ entran al hash); en **`hammer pack`** es -gratis, porque pack es aguas abajo del `ArtifactHash`. Va en pack. +### El texto de la licencia dentro del paquete — ✅ HECHO (y no donde yo dije) +> **CORRECCIÓN.** Esto decía «va en `hammer pack`». El razonamiento del coste era correcto —las +> fases SÍ entran al hash, así que hacerlo en la receta re-hashearía las 1141— pero **el sitio +> estaba mal**: `pack` produce un `.swm`, una receta de transformación sobre fuente pública que por +> diseño «NUNCA transporta binarios cocidos», e `install` REPRODUCE construyendo. **El canal de +> paquetes de hammer no distribuye binarios.** Donde sí se entrega un binario es en la **imagen +> instalable**, y ahí se hace ahora: `scripts/licencias-rootfs.sh` escribe +> `/usr/share/licenses//` con el texto canónico de cada licencia de la expresión, más un +> `MANIFEST.tsv` (1,0 MB para el perfil `cli`). Los 44 textos SPDX viven en `licenses/`. +> +> **Y VETA**: sale ≠0 si un paquete del rootfs no declara licencia. Al estrenarlo reveló que `base` +> y `cli` llevaban 10 y 12 paquetes con binarios y licencia desconocida; hoy van 2 cada uno (`lsof` +> y `tzdata`, que necesitan la vía `LicenseRef-` y siguen vetando a propósito). ### Espejo de fuentes — la obligación que más se malentiende La GPL no pide «que el código exista en internet»: pide que **quien recibe el binario pueda obtener