Skip to content

Commit 912c4f9

Browse files
authored
Bundle desktop-file-validate
This PR bundles desktop-file-validate inside the appimagetool AppDir. Fixes #1171.
1 parent d555677 commit 912c4f9

File tree

1 file changed

+29
-12
lines changed

1 file changed

+29
-12
lines changed

ci/build-appdir.sh

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,23 +50,40 @@ cp "$repo_root"/resources/appimagetool.desktop "$appimagetool_appdir"
5050
cp "$repo_root"/resources/appimagetool.png "$appimagetool_appdir"/appimagetool.png
5151
cp "$appimagetool_appdir"/appimagetool.png "$appimagetool_appdir"/.DirIcon
5252

53+
# bundle desktop-file-validate
54+
# https://github.com/AppImage/AppImageKit/issues/1171
55+
install -D "$(which desktop-file-validate)" "$appimagetool_appdir"/usr/bin/
56+
5357
if [ -d /deps/ ]; then
54-
# deploy GLib
58+
# deploy GLib, gpgme and gcrypt
5559
mkdir -p "$appimagetool_appdir"/usr/lib/
5660
cp /deps/lib/lib*.so* "$appimagetool_appdir"/usr/lib/
5761

62+
63+
case "$ARCH" in
64+
x86_64)
65+
libarch=x86-64
66+
;;
67+
i686)
68+
libarch=i386
69+
;;
70+
armhf)
71+
libarch=arm
72+
;;
73+
*)
74+
libarch="$ARCH"
75+
;;
76+
esac
77+
5878
# libffi is a runtime dynamic dependency
5979
# see this thread for more information on the topic:
6080
# https://mail.gnome.org/archives/gtk-devel-list/2012-July/msg00062.html
61-
if [ "$ARCH" == "x86_64" ]; then
62-
cp "$(ldconfig -p | grep libffi.so.6 | grep x86-64 | cut -d'>' -f2 | tr -d ' ')" "$appimagetool_appdir"/usr/lib/
63-
elif [ "$ARCH" == "i686" ]; then
64-
cp "$(ldconfig -p | grep libffi.so.6 | head -n1 | cut -d'>' -f2 | tr -d ' ')" "$appimagetool_appdir"/usr/lib/
65-
elif [ "$ARCH" == "armhf" ]; then
66-
cp "$(ldconfig -p | grep libffi.so.6 | grep arm | grep hf | cut -d'>' -f2 | tr -d ' ')" "$appimagetool_appdir"/usr/lib/
67-
elif [ "$ARCH" == "aarch64" ]; then
68-
cp "$(ldconfig -p | grep libffi.so.6 | grep aarch64 | cut -d'>' -f2 | tr -d ' ')" "$appimagetool_appdir"/usr/lib/
69-
else
70-
echo "WARNING: unknown architecture, not bundling libffi"
71-
fi
81+
# libpcre is used by desktop-file-validate
82+
for pattern in libffi libpcre; do
83+
# even though it is likely not necessary, we deploy every viable version of the libraries just to make sure...
84+
ldconfig -p | grep "$pattern" | grep "$libarch" | while read -r line; do
85+
lib="$(echo "$line" | cut -d'>' -f2 | tr -d ' ')"
86+
cp "$lib" "$appimagetool_appdir"/usr/lib/
87+
done
88+
done
7289
fi

0 commit comments

Comments
 (0)