linux-firmware: los 337 enlaces «sin destino» eran mi comprobación, no el tarball
Los que faltaban son casi todos de la forma `ath11k/WCN6855/hw2.1/regdb.bin -> ../hw2.0/regdb.bin`: un `..` no resuelve si el directorio desde el que cuelga todavía no existe, y yo probaba el destino ANTES del mkdir. Con el directorio creado primero resuelven los 2415 de 2415 — medido sobre el árbol desempaquetado, no deducido. Queda dicho en la receta porque la lectura fácil era la contraria: «WHENCE declara enlaces a blobs que el tarball no trae», que habría llevado a bajar el umbral y sellar un artefacto con 337 firmwares inalcanzables. Y si el destino de verdad no existe, ahora se borra el directorio vacío que el mkdir haya dejado: un directorio vacío en el artefacto es exactamente lo que el §3 de CLAUDE.md prohíbe. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -88,8 +88,16 @@ for pasada in 1 2 3; do
|
||||
dst_abs="/out/lib/firmware/$dst"
|
||||
[ -e "$dst_abs" ] && continue # ya hecho (o es un fichero de verdad)
|
||||
dir=$(dirname "$dst_abs")
|
||||
[ -e "$dir/$src" ] || continue # sólo si el destino existe de verdad
|
||||
# El directorio del enlace se crea ANTES de resolver el destino: muchos son de la forma
|
||||
# `ath11k/WCN6855/hw2.1/regdb.bin -> ../hw2.0/regdb.bin`, y un `..` no resuelve si el
|
||||
# directorio desde el que cuelga todavía no existe. Medido: con el test hecho antes del
|
||||
# mkdir fallaban 337 de 2415 y parecía que el tarball venía roto; con el mkdir primero
|
||||
# resuelven los 2415. El fallo estaba en la comprobación, no en los datos.
|
||||
mkdir -p "$dir"
|
||||
if [ ! -e "$dir/$src" ]; then
|
||||
rmdir "$dir" 2>/dev/null || true # no dejar un directorio vacío de recuerdo
|
||||
continue
|
||||
fi
|
||||
ln -sf "$src" "$dst_abs"
|
||||
hechos=$((hechos+1))
|
||||
done < /tmp/whence-links.tsv
|
||||
|
||||
Reference in New Issue
Block a user