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: 541f96c0fa47b ("qcom: qcm6490: add ADSP and CDSP firmware")
Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
directory="$destdir/$(dirname "$f")"
install -d "$directory"
target="$(cd "$directory" && realpath -m -s "$d")"
- if test -d "$target"; then
+ if test -e "$target"; then
$verbose "creating link $f -> $d"
ln -s "$d" "$destdir/$f"
else
fi
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
# vim: et sw=4 sts=4 ts=4