El script decía «sin COPYING ni declaración en el árbol» para `lsof`, `when`, `wpa_supplicant`,
`perl-xml-parser` y `fuse3` — y las cinco SÍ tienen un COPYING o un LICENSE en la raíz. Lo que
pasaba es que ninguna de mis huellas reconocía su texto, que es un problema distinto y se acciona
distinto: uno pide buscar la licencia en otro sitio, el otro pide una huella nueva o leerla. Decir lo
mismo de los dos casos mandaba a mirar donde no era. Ahora el mensaje nombra el fichero y cita su
primera línea, y con eso tres se resolvieron leyéndolas:
· `wpa_supplicant` — su COPYING no es una licencia sino un aviso: «the project has chosen to use
only the BSD license option for future distribution», y remite al README. El README trae las tres
cláusulas clásicas ⇒ BSD-3-Clause. Sin seguir esa remisión no había veredicto posible.
· `when` — «under the same terms as Perl, or, at your option, under version 2 of the GPL». «Los
mismos términos que Perl» ES la disyunción Artistic-1.0-Perl OR GPL-1.0-or-later, y la opción de
GPL-2 ya queda cubierta por el `-or-later`.
· `perl-xml-parser` — su LICENSE es el texto íntegro de la Artistic License 2.0.
Ese último obligó a cerrar un lazo que yo mismo había dejado abierto: el script se niega a declarar
un SPDX cuyo TEXTO no tengamos en `licenses/`, porque la obligación legal es entregar el texto y no
el nombre. Pero `licencias-textos.sh` deriva qué textos bajar DE las licencias ya declaradas ⇒ una
licencia genuinamente nueva no podía entrar por ningún lado. El orden que lo resuelve es: declarar
con evidencia, bajar el texto, comprobar que llegó. `licenses/` pasa de 44 a 48 textos y el único que
queda sin texto canónico es `LicenseRef-qorpa-ajena-no-enumerable`, que es un identificador nuestro y
SPDX no publica.
Quedan 33. `lsof` (licencia propia de Purdue) y `fuse3` (aviso compuesto: LGPL para la librería, GPL
para las utilidades) siguen pendientes a propósito, y el resto son expresiones que decide una
persona: gmp, ffmpeg, clang18, llvm18 y los `gi-*` traen VARIOS ficheros de licencia que dicen cosas
distintas, y en ffmpeg la respuesta ni siquiera está en el árbol —la deciden los flags de la receta.
Los 3 ArtifactHash, idénticos antes y después.
46 lines
1.6 KiB
TOML
46 lines
1.6 KiB
TOML
# wpa_supplicant 2.11 — supplicant WPA2 para asociar el WiFi del medio live al AP (kernel metal).
|
|
#
|
|
# El handshake WPA2 de 4 vías lo hace un supplicant en userspace; busybox NO lo trae. Habla con iwlwifi
|
|
# vía el driver nl80211 (netlink), que enlaza libnl-3/libnl-genl-3 (recipes/libnl.toml). DHCP lo da
|
|
# udhcpc de busybox (ya en el producto) una vez asociada la interfaz.
|
|
#
|
|
# Crypto: CONFIG_TLS=internal ⇒ NO depende de openssl (suficiente para WPA2-PSK, el WiFi de casa). Para
|
|
# WPA-Enterprise/EAP-TLS habría que pasar a CONFIG_TLS=openssl + dep openssl. Sólo medio live en metal.
|
|
#
|
|
# wpa_supplicant usa un build propio: un `.config` con CONFIG_* en el subdir wpa_supplicant/, luego make.
|
|
# Los binarios (wpa_supplicant/wpa_cli/wpa_passphrase) se copian a /usr/sbin (no `make install`).
|
|
|
|
name = "wpa_supplicant"
|
|
version = "2.11"
|
|
license = "BSD-3-Clause"
|
|
|
|
[source]
|
|
tarball = "https://w1.fi/releases/wpa_supplicant-2.11.tar.gz"
|
|
sha256 = "912ea06f74e30a8e36fbb68064d6cdff218d8d591db0fc5d75dee6c81ac7fc0a"
|
|
|
|
[build]
|
|
compiler = "zig-cc"
|
|
target = "x86_64-linux-musl"
|
|
link = "static"
|
|
|
|
[deps]
|
|
build = ["libnl", "make"]
|
|
|
|
[build.phases]
|
|
configure = '''
|
|
cat > wpa_supplicant/.config <<'EOF'
|
|
CONFIG_DRIVER_NL80211=y
|
|
CONFIG_LIBNL32=y
|
|
CONFIG_CTRL_IFACE=y
|
|
CONFIG_CTRL_IFACE_UNIX=y
|
|
CONFIG_BACKEND=file
|
|
CONFIG_TLS=internal
|
|
CONFIG_INTERNAL_LIBTOMMATH=y
|
|
CONFIG_INTERNAL_LIBTOMMATH_FAST=y
|
|
CONFIG_IEEE8021X_EAPOL=y
|
|
CONFIG_PEERKEY=y
|
|
EOF
|
|
'''
|
|
compile = "cd wpa_supplicant && make -j\"$(nproc)\" wpa_supplicant wpa_cli wpa_passphrase"
|
|
install = "mkdir -p /out/usr/sbin && cd wpa_supplicant && cp wpa_supplicant wpa_cli wpa_passphrase /out/usr/sbin/"
|