copy-firmware: Handle links to uncompressed files
If copy-firwmware is told to compress files, it blindly assumes that
the target is indeed compressed (unless it's a directory) and creates
any symlinks accordingly.
This leads to broken symlinks for links that point at RawFiles:
adspr.jsn.zst -> ../qcm6490/adspr.jsn.zst
adsps.jsn.zst -> ../qcm6490/adsps.jsn.zst
That should be:
adspr.jsn -> ../qcm6490/adspr.jsn
adsps.jsn -> ../qcm6490/adsps.jsn
Fix that by checking if the target (directory or file) exists. And while
at it, add a check for broken symlinks at the end.
Fixes: 541f96c0fa
("qcom: qcm6490: add ADSP and CDSP firmware")
Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
This commit is contained in:
parent
590d8aa4e3
commit
121e467fde
|
@ -133,7 +133,7 @@ grep -E '^Link:' WHENCE | sed -e 's/^Link: *//g;s/-> //g' | while read f d; do
|
||||||
directory="$destdir/$(dirname "$f")"
|
directory="$destdir/$(dirname "$f")"
|
||||||
install -d "$directory"
|
install -d "$directory"
|
||||||
target="$(cd "$directory" && realpath -m -s "$d")"
|
target="$(cd "$directory" && realpath -m -s "$d")"
|
||||||
if test -d "$target"; then
|
if test -e "$target"; then
|
||||||
$verbose "creating link $f -> $d"
|
$verbose "creating link $f -> $d"
|
||||||
ln -s "$d" "$destdir/$f"
|
ln -s "$d" "$destdir/$f"
|
||||||
else
|
else
|
||||||
|
@ -143,6 +143,13 @@ grep -E '^Link:' WHENCE | sed -e 's/^Link: *//g;s/-> //g' | while read f d; do
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Verify no broken symlinks
|
||||||
|
if test "$(find "$destdir" -xtype l | wc -l)" -ne 0 ; then
|
||||||
|
echo "ERROR: Broken symlinks found:"
|
||||||
|
find "$destdir" -xtype l
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
# vim: et sw=4 sts=4 ts=4
|
# vim: et sw=4 sts=4 ts=4
|
||||||
|
|
Loading…
Reference in New Issue