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>
10 KiB
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 ───────────────────────────────────────────────────────────────────────── | |
| 23 | musl | MIT |
| 24 | zlib | Zlib |
| 25 | zlib-shared | Zlib |
| 26 | bzip2 | bzip2-1.0.6 |
| 27 | bzip2-shared | bzip2-1.0.6 |
| 28 | xz | 0BSD |
| 29 | zstd | BSD-3-Clause OR GPL-2.0-only |
| 30 | lz4 | BSD-2-Clause AND GPL-2.0-only |
| 31 | brotli | MIT |
| 32 | binutils | GPL-3.0-or-later |
| 33 | gcc | GPL-3.0-or-later WITH GCC-exception-3.1 |
| 34 | make | GPL-3.0-or-later |
| 35 | m4 | GPL-3.0-or-later |
| 36 | bison | GPL-3.0-or-later |
| 37 | flex | BSD-3-Clause |
| 38 | patch | GPL-3.0-or-later |
| 39 | diffutils | GPL-3.0-or-later |
| 40 | findutils | GPL-3.0-or-later |
| 41 | coreutils | GPL-3.0-or-later |
| 42 | grep | GPL-3.0-or-later |
| 43 | sed | GPL-3.0-or-later |
| 44 | gawk | GPL-3.0-or-later |
| 45 | tar | GPL-3.0-or-later |
| 46 | gzip | GPL-3.0-or-later |
| 47 | bash | GPL-3.0-or-later |
| 48 | busybox | GPL-2.0-only |
| 49 | autoconf | GPL-3.0-or-later |
| 50 | automake | GPL-2.0-or-later |
| 51 | libtool | GPL-2.0-or-later |
| 52 | gettext-tiny | GPL-3.0-or-later |
| 53 | texinfo | GPL-3.0-or-later |
| 54 | pkgconf | ISC |
| 55 | cmake | BSD-3-Clause |
| 56 | meson | Apache-2.0 |
| 57 | samurai | ISC |
| 58 | ninja | Apache-2.0 |
| 59 | python3 | Python-2.0 |
| 60 | perl | Artistic-1.0-Perl OR GPL-1.0-or-later |
| 61 | sqlite | blessing |
| 62 | openssl | Apache-2.0 |
| 63 | curl | curl |
| 64 | ca-certificates | MPL-2.0 |
| 65 | libarchive | BSD-2-Clause |
| 66 | libcap | BSD-3-Clause OR GPL-2.0-only |
| 67 | libseccomp | LGPL-2.1-only |
| 68 | bwrap | LGPL-2.0-or-later |
| 69 | kbd | GPL-2.0-or-later |
| 70 | util-linux | GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause |
| 71 | e2fsprogs | GPL-2.0-only AND LGPL-2.0-only AND BSD-3-Clause |
| 72 | linux | GPL-2.0-only WITH Linux-syscall-note |
| 73 | # ── bibliotecas de sistema y gráficas ────────────────────────────────────────────────────────── | |
| 74 | expat | MIT |
| 75 | libffi | MIT |
| 76 | pcre2 | BSD-3-Clause |
| 77 | libxml2 | MIT |
| 78 | libxml2-shared | MIT |
| 79 | libyaml | MIT |
| 80 | libyaml-shared | MIT |
| 81 | libpng | Libpng |
| 82 | libpng-shared | Libpng |
| 83 | libjpeg-turbo | IJG AND BSD-3-Clause AND Zlib |
| 84 | libjpeg-turbo-shared | IJG AND BSD-3-Clause AND Zlib |
| 85 | libtiff | libtiff |
| 86 | libtiff-shared | libtiff |
| 87 | libwebp | BSD-3-Clause |
| 88 | freetype | FTL OR GPL-2.0-or-later |
| 89 | freetype-shared | FTL OR GPL-2.0-or-later |
| 90 | fontconfig | MIT |
| 91 | fontconfig-shared | MIT |
| 92 | harfbuzz | MIT |
| 93 | fribidi | LGPL-2.1-or-later |
| 94 | pixman | MIT |
| 95 | cairo | LGPL-2.1-only OR MPL-1.1 |
| 96 | cairo-shared | LGPL-2.1-only OR MPL-1.1 |
| 97 | pango | LGPL-2.0-or-later |
| 98 | graphene | MIT |
| 99 | libepoxy | MIT |
| 100 | mesa | MIT |
| 101 | libdrm | MIT |
| 102 | wayland | MIT |
| 103 | wayland-protocols | MIT |
| 104 | plasma-wayland-protocols | MIT |
| 105 | xkeyboard-config | MIT |
| 106 | libxkbcommon | MIT |
| 107 | alsa-lib | LGPL-2.1-or-later |
| 108 | pipewire | MIT |
| 109 | wireplumber | MIT |
| 110 | iso-codes | LGPL-2.1-or-later |
| 111 | libseccomp-shared | LGPL-2.1-only |
| 112 | # ── GNOME / GTK ──────────────────────────────────────────────────────────────────────────────── | |
| 113 | glib | LGPL-2.1-or-later |
| 114 | gobject-introspection | LGPL-2.0-or-later AND GPL-2.0-or-later |
| 115 | gdk-pixbuf | LGPL-2.1-or-later |
| 116 | gtk4 | LGPL-2.1-or-later |
| 117 | libadwaita | LGPL-2.1-or-later |
| 118 | gsettings-desktop-schemas | LGPL-2.1-or-later |
| 119 | gnome-desktop | GPL-2.0-or-later AND LGPL-2.0-or-later |
| 120 | gnome-shell | GPL-2.0-or-later |
| 121 | gnome-session | GPL-2.0-or-later |
| 122 | mutter | GPL-2.0-or-later |
| 123 | json-glib | LGPL-2.1-or-later |
| 124 | libsoup | LGPL-2.0-or-later |
| 125 | at-spi2-core | LGPL-2.1-or-later |
| 126 | atk | LGPL-2.0-or-later |
| 127 | adwaita-icon-theme | LGPL-3.0-or-later OR CC-BY-SA-3.0 |
| 128 | hicolor | GPL-2.0-or-later |
| 129 | accountsservice | GPL-3.0-or-later |
| 130 | colord | GPL-2.0-or-later AND LGPL-2.1-or-later |
| 131 | geoclue | GPL-2.0-or-later |
| 132 | appstream | LGPL-2.1-or-later |
| 133 | libxmlb | LGPL-2.1-or-later |
| 134 | xdg-desktop-portal | LGPL-2.1-or-later |
| 135 | xdg-desktop-portal-gnome | LGPL-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á). | |
| 138 | qt6-qtbase | LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only |
| 139 | qt6-qtdeclarative | LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only |
| 140 | qt6-qtwayland | LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only |
| 141 | qt6-qtsvg | LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only |
| 142 | qt6-qttools | LGPL-3.0-only OR GPL-3.0-only |
| 143 | qt6-qtshadertools | LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only |
| 144 | qt6-qt5compat | LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only |
| 145 | qt5compat | LGPL-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). | |
| 148 | karchive | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 149 | kauth | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 150 | kbookmarks | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 151 | kcodecs | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 152 | kcolorscheme | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 153 | kcompletion | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 154 | kconfig | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 155 | kconfigwidgets | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 156 | kcoreaddons | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 157 | kcrash | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 158 | kdbusaddons | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 159 | kdeclarative | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 160 | kdecoration | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 161 | kded | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 162 | kfilemetadata | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 163 | kglobalaccel | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 164 | kguiaddons | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 165 | kholidays | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 166 | ki18n | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 167 | kiconthemes | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 168 | kidletime | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 169 | kio | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 170 | kirigami | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 171 | kirigami-addons | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 172 | kitemmodels | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 173 | kitemviews | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 174 | kjobwidgets | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 175 | knewstuff | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 176 | knotifications | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 177 | knotifyconfig | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 178 | kpackage | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 179 | kparts | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 180 | kplotting | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 181 | kpty | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 182 | kquickcharts | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 183 | kservice | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 184 | kstatusnotifieritem | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 185 | ksvg | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 186 | ktexteditor | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 187 | ktextwidgets | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 188 | kunitconversion | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 189 | kwallet | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 190 | kwayland | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 191 | kwidgetsaddons | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 192 | kwindowsystem | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 193 | kxmlgui | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 194 | kcmutils | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 195 | kdnssd | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 196 | attica | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 197 | kactivitymanagerd | GPL-2.0-or-later |
| 198 | plasma-activities | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 199 | plasma-activities-stats | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 200 | plasma5support | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 201 | # ── Plasma y aplicaciones KDE (GPL) ──────────────────────────────────────────────────────────── | |
| 202 | kwin | GPL-2.0-or-later |
| 203 | plasma-workspace | GPL-2.0-or-later |
| 204 | plasma-desktop | GPL-2.0-or-later |
| 205 | plasma-integration | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 206 | plasma-nm | GPL-2.0-or-later |
| 207 | plasma-pa | GPL-2.0-or-later |
| 208 | kscreen | GPL-2.0-or-later |
| 209 | kscreenlocker | GPL-2.0-or-later |
| 210 | kglobalacceld | GPL-2.0-or-later |
| 211 | krunner | LGPL-2.1-or-later OR LGPL-3.0-or-later |
| 212 | kmenuedit | GPL-2.0-or-later |
| 213 | kinfocenter | GPL-2.0-or-later |
| 214 | kpipewire | GPL-2.0-or-later OR LGPL-2.1-or-later |
| 215 | breeze | GPL-2.0-or-later |
| 216 | breeze-icons | LGPL-3.0-or-later |
| 217 | ark | GPL-2.0-or-later |
| 218 | kate | LGPL-2.0-or-later |
| 219 | konsole | GPL-2.0-or-later |
| 220 | dolphin | GPL-2.0-or-later |
| 221 | kcalc | GPL-2.0-or-later |
| 222 | kcharselect | GPL-2.0-or-later |
| 223 | kdf | GPL-2.0-or-later |
| 224 | kfind | GPL-2.0-or-later |
| 225 | kruler | GPL-2.0-or-later |
| 226 | kwalletmanager | GPL-2.0-or-later |
| 227 | kquickimageeditor | LGPL-2.1-or-later OR LGPL-3.0-or-later |