Tres que había clasificado como decisión legal y no lo eran. Las dos causas son distintas y las dos me las estaba perdiendo por mirar sólo el árbol: **ffmpeg → LGPL-2.1-or-later.** Su raíz trae cuatro COPYING.* y por eso el detector se planta, con razón: el árbol solo no puede decidir. Pero el `LICENSE.md` del propio ffmpeg explica la regla —«In combination the LGPL v2.1+ applies to FFmpeg» y «None of these parts are used by default, you have to explicitly pass `--enable-gpl`… In this case, FFmpeg's license changes to GPL v2+»— y la respuesta la da NUESTRA receta: no pasa `--enable-gpl` ni `--enable-version3`, y encima va con `--disable-autodetect`. O sea que la licencia sale de cruzar el árbol con los flags, no de elegir uno de los cuatro ficheros. **llvm18 y clang18 → Apache-2.0 WITH LLVM-exception.** Acá el detector veía «tres licencias distintas» en un solo `LICENSE.TXT` y se plantaba, pero el fichero ABRE diciendo «The LLVM Project is under the Apache License v2.0 with LLVM Exceptions»: lo demás es la sección legada. La regla de «varias licencias ⇒ decide un humano» es correcta como default y aquí el humano sólo tuvo que leer la primera línea. `licenses/` pasa de 48 a 49 textos: `LLVM-exception` hacía falta para poder declararla, que es el lazo de siempre —no se declara lo que no se puede entregar—. El único sin texto canónico sigue siendo `LicenseRef-qorpa-ajena-no-enumerable`, que es identificador nuestro y SPDX no publica. 97% (1135/1165); la cola baja de 27 a 24. Los 3 ArtifactHash, idénticos.
2.3 KiB
2.3 KiB
| 1 | # licencias-pendientes.tsv — lo que NO alcanza para afirmar una licencia, y por qué. | |
|---|---|---|
| 2 | # Lo regenera entero scripts/licencias-fuente.py en cada corrida: es la foto de lo | |
| 3 | # que queda, no un registro. Los veredictos van en licencias-evidencia.tsv. | |
| 4 | # | |
| 5 | # paquete<TAB>por qué no se puede afirmar | |
| 6 | boost | sin COPYING ni declaración en el árbol |
| 7 | cargo-audit | sin COPYING ni declaración en el árbol |
| 8 | gi-foreign-girs | la raíz dice 2 licencias distintas (GPL-2.0 en COPYING.GPL, LGPL-2.0 en COPYING.LGPL): la expresión la compone un humano |
| 9 | gi-foreign-typelibs | la raíz dice 2 licencias distintas (GPL-2.0 en COPYING.GPL, LGPL-2.0 en COPYING.LGPL): la expresión la compone un humano |
| 10 | gi-girepository-typelib | la raíz dice 2 licencias distintas (GPL-2.0 en COPYING.GPL, LGPL-2.0 en COPYING.LGPL): la expresión la compone un humano |
| 11 | gsd-schemas | la raíz dice 2 licencias distintas (GPL-2.0 en COPYING, LGPL-2.1 en COPYING.LIB): la expresión la compone un humano |
| 12 | hwdata | GPL-2.0 ambigua · sin concesión fuera del COPYING |
| 13 | libgdm | el autor declara «GPL2+», que no es un SPDX del que tengamos texto en licenses/ (meson.build: license: 'GPL2+') |
| 14 | libical | la raíz dice 2 licencias distintas (LGPL-2.1 en LICENSE.LGPL21.txt, MPL-2.0 en LICENSE.MPL2.txt): la expresión la compone un humano |
| 15 | openssh | la raíz dice 2 licencias distintas (BSD-3-Clause en LICENCE, MIT en LICENCE): la expresión la compone un humano |
| 16 | pigz | sin COPYING ni declaración en el árbol |
| 17 | sqlite-shared | sin COPYING ni declaración en el árbol |
| 18 | vulkan-headers | REUSE con varias licencias: Apache-2.0,MIT |
| 19 | xz-shared | la raíz dice 4 licencias distintas (0BSD en COPYING.0BSD, GPL-2.0 en COPYING.GPLv2, GPL-3.0 en COPYING.GPLv3, LGPL-2.1 en COPYING.LGPLv2.1): la expresión la co… |
| 20 | amp | fuente git (probá --fetch) |
| 21 | cargo-binstall | fuente git (probá --fetch) |
| 22 | duplicacy | fuente git (probá --fetch) |
| 23 | gmp | tarball no cacheado (probá --fetch) |
| 24 | leptonica | tarball no cacheado (probá --fetch) |
| 25 | libcanberra | tarball no cacheado (probá --fetch) |
| 26 | tzdata | fuente git (probá --fetch) |
| 27 | waybackurls | fuente git (probá --fetch) |