Los identificadores obsoletos (`GPL-2.0`, `LGPL-2.1`, `AGPL-3.0`) no dicen si el proyecto
concede «sólo esta versión» o «ésta o cualquier posterior», y eso decide con qué se puede
combinar el paquete y bajo qué términos puede redistribuirlo quien lo reciba.
NO SE PUEDE MIRAR EL COPYING, que es la trampa evidente: el texto de la GPL es IDÉNTICO en
los dos casos —es la licencia, no la concesión— y encima su apéndice «cómo aplicar la
licencia» contiene literalmente «or (at your option) any later version», así que buscarla
ahí da SIEMPRE positivo y parece evidencia siendo plantilla. Misma trampa que la regla del
`.a` no-PIC, donde grep contaba reubicaciones de `.debug_*`. La concesión vive en las
cabeceras de los fuentes y en el README; ahí se busca, excluyendo los ficheros de licencia.
SE GUARDA LA CITA, no sólo el veredicto: fichero + frase exacta que decidió. Una licencia es
una afirmación legal y quien la revise tiene que poder ver POR QUÉ dice lo que dice sin
repetir el trabajo.
Y eso pagó de inmediato: de las 12 primeras resoluciones, TRES eran evidencia inválida y
sólo se vieron porque estaba la cita. Cada una de una clase distinta:
· caligula — la frase salía de `checks/headless/expected.iso`, un FIXTURE DE TEST;
· libnl — de `include/linux-private/linux/seg6.h`, una cabecera del KERNEL vendorizada.
La licencia del kernel no es la de libnl;
· lm-sensors — declarado GPL-2.0 y la cita decía «version 2.1 of the License», que es la
LGPL. La frase era real pero no sostenía lo que se le atribuía.
Las tres clases quedan filtradas en el script: ficheros de licencia, rutas de test/fixture, y
código vendorizado; más una comprobación nueva de que **la cita hable de la misma versión que
la licencia declarada**.
Sembradas las 9 auditadas (13 ficheros; algunas viven en varias colas). Ambiguas: 55 → 41.
Las 40 sin evidencia quedan listadas y siguen contadas — la mayoría son Go y la familia
cosmic, donde la frase no aparece fuera del COPYING.
Hashes verificados: 0 movidos.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
48 lines
1.8 KiB
TOML
48 lines
1.8 KiB
TOML
# libsndfile 1.2.2 — lectura/escritura de ficheros de audio (WAV, AIFF, AU…). Entra al frente GNOME
|
|
# por debajo de pulseaudio: `sndfile` es dep INCONDICIONAL de su meson.build:615 (top-level, sin
|
|
# `required:` que la ablande), así que ni siquiera `-Ddaemon=false` la esquiva. Cadena de la cima:
|
|
# gnome-shell → subprojects/gvc → libpulse → libsndfile.
|
|
#
|
|
# --disable-external-libs es lo que hace que esta receta sea UNA y no CINCO: por defecto libsndfile
|
|
# enlaza FLAC, Ogg y Vorbis, ninguna en el corpus. Apagándolos queda una librería C autocontenida
|
|
# que no depende de nada fuera de libc. Lo que se pierde es leer .flac/.ogg; lo que consume el
|
|
# escritorio de acá son los sonidos de sistema en WAV, que es el formato nativo de libsndfile.
|
|
# --disable-mpeg apaga LAME/mpg123 por lo mismo.
|
|
#
|
|
# --disable-alsa: ALSA sólo la usa el programa de ejemplo sndfile-play, no la librería.
|
|
# --disable-sqlite: sólo la usa la utilidad sndfile-regtest.
|
|
# --disable-full-suite: no instala los ~10 binarios de utilería (sndfile-info, sndfile-convert…);
|
|
# lo que gvc necesita es libsndfile.so y su .pc.
|
|
#
|
|
# ISLA DINÁMICA: shared, porque libpulse y todo lo que cuelga de gnome-shell son .so.
|
|
name = "libsndfile"
|
|
version = "1.2.2"
|
|
license = "LGPL-2.1-or-later"
|
|
|
|
[source]
|
|
tarball = "https://github.com/libsndfile/libsndfile/releases/download/1.2.2/libsndfile-1.2.2.tar.xz"
|
|
sha256 = "3799ca9924d3125038880367bf1468e53a1b7e3686a934f098b7e1d286cdb80e"
|
|
|
|
[build]
|
|
compiler = "zig-cc"
|
|
target = "x86_64-linux-musl"
|
|
link = "dynamic"
|
|
|
|
[build.phases]
|
|
configure = '''
|
|
./configure \
|
|
--build=$CBUILD --host=$CHOST \
|
|
--prefix=/usr \
|
|
--enable-shared --disable-static \
|
|
--disable-external-libs \
|
|
--disable-mpeg \
|
|
--disable-alsa \
|
|
--disable-sqlite \
|
|
--disable-full-suite
|
|
'''
|
|
compile = 'make -j"$(nproc)"'
|
|
install = 'make DESTDIR=/out install'
|
|
|
|
[deps]
|
|
build = ["make", "pkgconf"]
|