Files
hammer/docs/licencias-conocidas.tsv
T
sergioandClaude Opus 5 346cd59706 licencias: campo license en la receta — de 0 a 228 de 1141, sin re-hashear nada
La deuda legal bloqueante del SDD 19 §2.1. Medido hoy: **0 de 1141 recetas** declaraban
licencia, no «5 de 771» como decía el informe anterior. Los dos números estaban mal: los
«5» eran falsos positivos de `grep license` (el paquete `addlicense`, el paquete
`cargo-bundle-licenses`, una línea `install .../share/licenses/` y un comentario), y las
recetas son 1141. Contar con `grep -l <palabra>` sobre TOML cuenta comentarios y nombres,
no campos; `scripts/licencias.sh` cuenta el campo de verdad (clave en la raíz, antes del
primer `[table]`).

LO QUE HACE LA DEUDA PAGABLE: `Recipe::hash_inputs` es una LISTA BLANCA — sólo entran
source, compiler, target, link, patches, flags, phases y deps. `license` no entra, igual
que `evidence` y `slots`. Por eso se puede poblar en las recetas YA SELLADAS sin mover un
solo ArtifactHash. Verificado, no supuesto: en 40 recetas modificadas se comparó el hash
con y sin la línea — 40 idénticos, 0 cambiados. Si el campo entrara al hash, declarar la
licencia costaría reconstruir el corpus entero y no se haría nunca. Clavado con el test
`licencia_round_trip_y_no_afecta_el_hash`.

TRAMPA DE TOML: una clave suelta después de un `[table]` pertenece a esa tabla. Puesta al
final del fichero, `license` acaba dentro de `[deps]` y se pierde EN SILENCIO, porque serde
ignora los campos que no conoce — no hay error, simplemente no está. Va arriba, junto a
`name` y `version`; el sembrador la inserta tras `version`.

NO SE ADIVINA. Declarar mal una licencia es peor que dejarla vacía: convierte un hueco
visible en una afirmación falsa. Sólo se puebla desde una tabla curada entrada por entrada
(`docs/licencias-conocidas.tsv`); lo que no tiene evidencia queda vacío y se CUENTA.
Concretamente se descartó el atajo «k* = KDE ⇒ LGPL»: en este catálogo `kail`, `kind`,
`ko`, `kopia`, `krew`, `kustomize`, `kyverno`, `katana`, `kibi`, `kmon` y toda la familia
`kube*` son herramientas Go sin relación con KDE. El nombre no es evidencia.

Quedan 913, casi todas CLIs Go/Rust importados en masa — y ésas sí son automatizables con
evidencia real: Cargo.toml trae el campo `license` y los módulos Go traen su LICENSE en el
árbol. El cierre estructural es capturarlo en la fase de fetch, que ya descarga y extrae
cada tarball, y inyectar el texto en `hammer pack` (aguas abajo del ArtifactHash) en vez de
en la fase install (que sí re-hashearía).

De paso, respaldo-storagebox.sh reordenado por valor irreemplazable y con zstd: medido en
la oficina, el uplink da 8 Mbps iguales por cable y por wifi ⇒ 128 G no caben en una
sentada, así que sube primero el cerebro (estado + repo) y `--partial-dir` hace que cortar
a mitad de un artefacto no tire lo ya subido.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-07 10:24:11 -04:00

10 KiB

1# Tabla CURADA de licencias, para `scripts/licencias.sh --sembrar`. SDD 19 §2.1.
2#
3# Formato: <nombre-de-receta><TAB><expresión SPDX>
4#
5# ── LA REGLA ────────────────────────────────────────────────────────────────────────────────────
6# Acá SÓLO entra lo que se puede afirmar con seguridad, entrada por entrada. Declarar mal una
7# licencia es peor que dejarla vacía: convierte un hueco visible —que alguien va a ir a llenar— en
8# una afirmación falsa sobre la que alguien va a construir. Lo que no esté seguro, NO se pone: se
9# queda como deuda contada por `scripts/licencias.sh`.
10#
11# ── POR QUÉ NO SE PUEDE AUTOMATIZAR POR PATRÓN DE NOMBRE ────────────────────────────────────────
12# Tentación evidente: «todo lo que empieza por k* es KDE ⇒ LGPL». **Falso y caro.** En este catálogo
13# `kail`, `kind`, `ko`, `kopia`, `krew`, `kustomize`, `kyverno`, `katana`, `kiterunner`, `kibi`,
14# `kmon`, `kondo`, `kpt`, `kbld`, `kbs2`, `knighttime` y toda la familia `kube*` son herramientas Go
15# sin ninguna relación con KDE — la mayoría Apache-2.0 o MIT. El nombre no es evidencia.
16#
17# ── LO QUE FALTA ES SOBRE TODO Go Y Rust ───────────────────────────────────────────────────────
18# El grueso de las 1141 recetas son CLIs Go/Rust importados en masa. Para esas la licencia SÍ es
19# automatizable con evidencia real y sin red: Cargo.toml trae el campo `license` y los módulos Go
20# traen su LICENSE en el árbol. Es el trabajo estructural descrito en la cabecera de licencias.sh
21# (capturar en la fase de fetch, que ya descarga y extrae el tarball).
22# ── toolchain y base C ─────────────────────────────────────────────────────────────────────────
23muslMIT
24zlibZlib
25zlib-sharedZlib
26bzip2bzip2-1.0.6
27bzip2-sharedbzip2-1.0.6
28xz0BSD
29zstdBSD-3-Clause OR GPL-2.0-only
30lz4BSD-2-Clause AND GPL-2.0-only
31brotliMIT
32binutilsGPL-3.0-or-later
33gccGPL-3.0-or-later WITH GCC-exception-3.1
34makeGPL-3.0-or-later
35m4GPL-3.0-or-later
36bisonGPL-3.0-or-later
37flexBSD-3-Clause
38patchGPL-3.0-or-later
39diffutilsGPL-3.0-or-later
40findutilsGPL-3.0-or-later
41coreutilsGPL-3.0-or-later
42grepGPL-3.0-or-later
43sedGPL-3.0-or-later
44gawkGPL-3.0-or-later
45tarGPL-3.0-or-later
46gzipGPL-3.0-or-later
47bashGPL-3.0-or-later
48busyboxGPL-2.0-only
49autoconfGPL-3.0-or-later
50automakeGPL-2.0-or-later
51libtoolGPL-2.0-or-later
52gettext-tinyGPL-3.0-or-later
53texinfoGPL-3.0-or-later
54pkgconfISC
55cmakeBSD-3-Clause
56mesonApache-2.0
57samuraiISC
58ninjaApache-2.0
59python3Python-2.0
60perlArtistic-1.0-Perl OR GPL-1.0-or-later
61sqliteblessing
62opensslApache-2.0
63curlcurl
64ca-certificatesMPL-2.0
65libarchiveBSD-2-Clause
66libcapBSD-3-Clause OR GPL-2.0-only
67libseccompLGPL-2.1-only
68bwrapLGPL-2.0-or-later
69kbdGPL-2.0-or-later
70util-linuxGPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause
71e2fsprogsGPL-2.0-only AND LGPL-2.0-only AND BSD-3-Clause
72linuxGPL-2.0-only WITH Linux-syscall-note
73# ── bibliotecas de sistema y gráficas ──────────────────────────────────────────────────────────
74expatMIT
75libffiMIT
76pcre2BSD-3-Clause
77libxml2MIT
78libxml2-sharedMIT
79libyamlMIT
80libyaml-sharedMIT
81libpngLibpng
82libpng-sharedLibpng
83libjpeg-turboIJG AND BSD-3-Clause AND Zlib
84libjpeg-turbo-sharedIJG AND BSD-3-Clause AND Zlib
85libtifflibtiff
86libtiff-sharedlibtiff
87libwebpBSD-3-Clause
88freetypeFTL OR GPL-2.0-or-later
89freetype-sharedFTL OR GPL-2.0-or-later
90fontconfigMIT
91fontconfig-sharedMIT
92harfbuzzMIT
93fribidiLGPL-2.1-or-later
94pixmanMIT
95cairoLGPL-2.1-only OR MPL-1.1
96cairo-sharedLGPL-2.1-only OR MPL-1.1
97pangoLGPL-2.0-or-later
98grapheneMIT
99libepoxyMIT
100mesaMIT
101libdrmMIT
102waylandMIT
103wayland-protocolsMIT
104plasma-wayland-protocolsMIT
105xkeyboard-configMIT
106libxkbcommonMIT
107alsa-libLGPL-2.1-or-later
108pipewireMIT
109wireplumberMIT
110iso-codesLGPL-2.1-or-later
111libseccomp-sharedLGPL-2.1-only
112# ── GNOME / GTK ────────────────────────────────────────────────────────────────────────────────
113glibLGPL-2.1-or-later
114gobject-introspectionLGPL-2.0-or-later AND GPL-2.0-or-later
115gdk-pixbufLGPL-2.1-or-later
116gtk4LGPL-2.1-or-later
117libadwaitaLGPL-2.1-or-later
118gsettings-desktop-schemasLGPL-2.1-or-later
119gnome-desktopGPL-2.0-or-later AND LGPL-2.0-or-later
120gnome-shellGPL-2.0-or-later
121gnome-sessionGPL-2.0-or-later
122mutterGPL-2.0-or-later
123json-glibLGPL-2.1-or-later
124libsoupLGPL-2.0-or-later
125at-spi2-coreLGPL-2.1-or-later
126atkLGPL-2.0-or-later
127adwaita-icon-themeLGPL-3.0-or-later OR CC-BY-SA-3.0
128hicolorGPL-2.0-or-later
129accountsserviceGPL-3.0-or-later
130colordGPL-2.0-or-later AND LGPL-2.1-or-later
131geoclueGPL-2.0-or-later
132appstreamLGPL-2.1-or-later
133libxmlbLGPL-2.1-or-later
134xdg-desktop-portalLGPL-2.1-or-later
135xdg-desktop-portal-gnomeLGPL-2.1-or-later
136# ── Qt ─────────────────────────────────────────────────────────────────────────────────────────
137# Qt 6 open source: LGPL-3.0 o GPL (la alternativa es la licencia comercial, que no aplica acá).
138qt6-qtbaseLGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
139qt6-qtdeclarativeLGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
140qt6-qtwaylandLGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
141qt6-qtsvgLGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
142qt6-qttoolsLGPL-3.0-only OR GPL-3.0-only
143qt6-qtshadertoolsLGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
144qt6-qt5compatLGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
145qt5compatLGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
146# ── KDE Frameworks (bibliotecas: LGPL doble) ───────────────────────────────────────────────────
147# Verificadas una a una: son Frameworks de KDE, NO las herramientas Go homónimas (ver cabecera).
148karchiveLGPL-2.1-or-later OR LGPL-3.0-or-later
149kauthLGPL-2.1-or-later OR LGPL-3.0-or-later
150kbookmarksLGPL-2.1-or-later OR LGPL-3.0-or-later
151kcodecsLGPL-2.1-or-later OR LGPL-3.0-or-later
152kcolorschemeLGPL-2.1-or-later OR LGPL-3.0-or-later
153kcompletionLGPL-2.1-or-later OR LGPL-3.0-or-later
154kconfigLGPL-2.1-or-later OR LGPL-3.0-or-later
155kconfigwidgetsLGPL-2.1-or-later OR LGPL-3.0-or-later
156kcoreaddonsLGPL-2.1-or-later OR LGPL-3.0-or-later
157kcrashLGPL-2.1-or-later OR LGPL-3.0-or-later
158kdbusaddonsLGPL-2.1-or-later OR LGPL-3.0-or-later
159kdeclarativeLGPL-2.1-or-later OR LGPL-3.0-or-later
160kdecorationLGPL-2.1-or-later OR LGPL-3.0-or-later
161kdedLGPL-2.1-or-later OR LGPL-3.0-or-later
162kfilemetadataLGPL-2.1-or-later OR LGPL-3.0-or-later
163kglobalaccelLGPL-2.1-or-later OR LGPL-3.0-or-later
164kguiaddonsLGPL-2.1-or-later OR LGPL-3.0-or-later
165kholidaysLGPL-2.1-or-later OR LGPL-3.0-or-later
166ki18nLGPL-2.1-or-later OR LGPL-3.0-or-later
167kiconthemesLGPL-2.1-or-later OR LGPL-3.0-or-later
168kidletimeLGPL-2.1-or-later OR LGPL-3.0-or-later
169kioLGPL-2.1-or-later OR LGPL-3.0-or-later
170kirigamiLGPL-2.1-or-later OR LGPL-3.0-or-later
171kirigami-addonsLGPL-2.1-or-later OR LGPL-3.0-or-later
172kitemmodelsLGPL-2.1-or-later OR LGPL-3.0-or-later
173kitemviewsLGPL-2.1-or-later OR LGPL-3.0-or-later
174kjobwidgetsLGPL-2.1-or-later OR LGPL-3.0-or-later
175knewstuffLGPL-2.1-or-later OR LGPL-3.0-or-later
176knotificationsLGPL-2.1-or-later OR LGPL-3.0-or-later
177knotifyconfigLGPL-2.1-or-later OR LGPL-3.0-or-later
178kpackageLGPL-2.1-or-later OR LGPL-3.0-or-later
179kpartsLGPL-2.1-or-later OR LGPL-3.0-or-later
180kplottingLGPL-2.1-or-later OR LGPL-3.0-or-later
181kptyLGPL-2.1-or-later OR LGPL-3.0-or-later
182kquickchartsLGPL-2.1-or-later OR LGPL-3.0-or-later
183kserviceLGPL-2.1-or-later OR LGPL-3.0-or-later
184kstatusnotifieritemLGPL-2.1-or-later OR LGPL-3.0-or-later
185ksvgLGPL-2.1-or-later OR LGPL-3.0-or-later
186ktexteditorLGPL-2.1-or-later OR LGPL-3.0-or-later
187ktextwidgetsLGPL-2.1-or-later OR LGPL-3.0-or-later
188kunitconversionLGPL-2.1-or-later OR LGPL-3.0-or-later
189kwalletLGPL-2.1-or-later OR LGPL-3.0-or-later
190kwaylandLGPL-2.1-or-later OR LGPL-3.0-or-later
191kwidgetsaddonsLGPL-2.1-or-later OR LGPL-3.0-or-later
192kwindowsystemLGPL-2.1-or-later OR LGPL-3.0-or-later
193kxmlguiLGPL-2.1-or-later OR LGPL-3.0-or-later
194kcmutilsLGPL-2.1-or-later OR LGPL-3.0-or-later
195kdnssdLGPL-2.1-or-later OR LGPL-3.0-or-later
196atticaLGPL-2.1-or-later OR LGPL-3.0-or-later
197kactivitymanagerdGPL-2.0-or-later
198plasma-activitiesLGPL-2.1-or-later OR LGPL-3.0-or-later
199plasma-activities-statsLGPL-2.1-or-later OR LGPL-3.0-or-later
200plasma5supportLGPL-2.1-or-later OR LGPL-3.0-or-later
201# ── Plasma y aplicaciones KDE (GPL) ────────────────────────────────────────────────────────────
202kwinGPL-2.0-or-later
203plasma-workspaceGPL-2.0-or-later
204plasma-desktopGPL-2.0-or-later
205plasma-integrationLGPL-2.1-or-later OR LGPL-3.0-or-later
206plasma-nmGPL-2.0-or-later
207plasma-paGPL-2.0-or-later
208kscreenGPL-2.0-or-later
209kscreenlockerGPL-2.0-or-later
210kglobalacceldGPL-2.0-or-later
211krunnerLGPL-2.1-or-later OR LGPL-3.0-or-later
212kmenueditGPL-2.0-or-later
213kinfocenterGPL-2.0-or-later
214kpipewireGPL-2.0-or-later OR LGPL-2.1-or-later
215breezeGPL-2.0-or-later
216breeze-iconsLGPL-3.0-or-later
217arkGPL-2.0-or-later
218kateLGPL-2.0-or-later
219konsoleGPL-2.0-or-later
220dolphinGPL-2.0-or-later
221kcalcGPL-2.0-or-later
222kcharselectGPL-2.0-or-later
223kdfGPL-2.0-or-later
224kfindGPL-2.0-or-later
225krulerGPL-2.0-or-later
226kwalletmanagerGPL-2.0-or-later
227kquickimageeditorLGPL-2.1-or-later OR LGPL-3.0-or-later