annotate deploy/linux/deploy-appimage.sh @ 129:afd72eb2b0aa tip

Added tag v1.0-windows-32bit for changeset 7d5387c63447
author Chris Cannam
date Fri, 12 Jun 2020 17:20:52 +0100
parents d12ee4ccda41
children
rev   line source
Chris@91 1 #!/bin/bash
Chris@91 2
Chris@91 3 set -eu
Chris@91 4
Chris@91 5 program=vamp-plugin-pack-installer
Chris@91 6
Chris@91 7 get_id() {
Chris@91 8 if [ -d .hg ]; then
Chris@91 9 hg id | sed 's/[+ ].*$//'
Chris@91 10 elif [ -d .git ]; then
Chris@91 11 git rev-parse --short HEAD
Chris@91 12 else
Chris@91 13 echo "WARNING: can't figure out revision from VCS metadata" 1>&2
Chris@91 14 echo "unknown"
Chris@91 15 fi
Chris@91 16 }
Chris@91 17
Chris@91 18 version=$(get_id)
Chris@91 19
Chris@91 20 targetdir="${program}.AppDir"
Chris@91 21
Chris@91 22 echo "Target dir is $targetdir"
Chris@91 23
Chris@91 24 if [ -d "$targetdir" ]; then
Chris@91 25 echo "Target directory exists, not overwriting"
Chris@91 26 exit
Chris@91 27 fi
Chris@91 28
Chris@91 29 mkdir "$targetdir"
Chris@91 30
Chris@91 31 mkdir -p "$targetdir"/usr/bin
Chris@91 32 mkdir -p "$targetdir"/usr/lib
Chris@91 33
Chris@91 34 cp "$program" "$targetdir"/usr/bin/
Chris@91 35
Chris@91 36 add_dependencies() {
Chris@91 37
Chris@91 38 local binary="$1"
Chris@91 39
Chris@91 40 echo "ldd $binary yields:"
Chris@91 41 ldd "$binary"
Chris@91 42
Chris@91 43 for lib in $(ldd "$binary" | grep '=> [^ ]*/lib/' | \
Chris@91 44 sed 's/^.*=> //' | sed 's/ .*$//'); do
Chris@91 45
Chris@91 46 base=$(basename "$lib")
Chris@91 47 if grep -v '^#' sv-dependency-builds/linux/appimage/excludelist |
Chris@91 48 grep -q "^$base$" ; then
Chris@91 49 echo "excluding: $lib"
Chris@91 50 continue
Chris@91 51 fi
Chris@91 52
Chris@91 53 target="$targetdir/usr/lib/$(basename $lib)"
Chris@91 54
Chris@91 55 mkdir -p "$(dirname $target)"
Chris@91 56
Chris@91 57 if [ ! -f "$target" ]; then
Chris@91 58
Chris@91 59 cp -Lv "$lib" "$target"
Chris@91 60 chmod +x "$target"
Chris@91 61
Chris@91 62 add_dependencies "$lib"
Chris@91 63
Chris@91 64 fi
Chris@91 65 done
Chris@91 66 }
Chris@91 67
Chris@91 68 add_dependencies "$program"
Chris@91 69
Chris@91 70 qtplugins="gif icns ico jpeg tga tiff wbmp webp cocoa minimal offscreen xcb"
Chris@91 71 qtlibdirs="/usr/lib/x86_64-linux-gnu/qt5 /usr/lib/x86_64-linux-gnu/qt /usr/lib/qt5 /usr/lib/qt"
Chris@91 72
Chris@91 73 QTDIR=${QTDIR:-}
Chris@91 74 if [ -n "$QTDIR" ]; then
Chris@91 75 qtlibdirs="$QTDIR $qtlibdirs"
Chris@91 76 fi
Chris@91 77
Chris@91 78 for plug in $qtplugins; do
Chris@91 79 for libdir in $qtlibdirs; do
Chris@91 80 lib=$(find $libdir/plugins -name libq$plug.so -print 2>/dev/null || true)
Chris@91 81 if [ -n "$lib" ]; then
Chris@91 82 if [ -f "$lib" ]; then
Chris@91 83 subdir=$(basename $(dirname $lib))
Chris@91 84 if [ t"$subdir" = t"plugins" ]; then
Chris@91 85 subdir=""
Chris@91 86 fi
Chris@91 87 target="$targetdir/usr/lib/qt5/plugins/$subdir/$(basename $lib)"
Chris@91 88 mkdir -p "$(dirname $target)"
Chris@91 89 cp -v "$lib" "$target"
Chris@91 90 chmod +x "$target"
Chris@91 91 add_dependencies "$lib"
Chris@91 92 break
Chris@91 93 fi
Chris@91 94 fi
Chris@91 95 done
Chris@91 96 done
Chris@91 97
Chris@91 98 cp "$program.desktop" "$targetdir/"
Chris@91 99
Chris@91 100 cp "icons/scalable/sv-icon.svg" "$targetdir/"
Chris@91 101 cp "icons/scalable/sv-icon.svg" "$targetdir/vamp-plugin-pack-installer.svg"
Chris@91 102
Chris@91 103 cp "deploy/linux/AppRun" "$targetdir/"
Chris@91 104
Chris@91 105 chmod +x "$targetdir/AppRun"
Chris@91 106
Chris@91 107 # Do this with a separate extraction step, so as to make it work even
Chris@91 108 # in situations where FUSE is unavailable like in a Docker container
Chris@91 109 export ARCH=x86_64
Chris@91 110 sv-dependency-builds/linux/appimage/appimagetool-x86_64.AppImage --appimage-extract
Chris@104 111 ./squashfs-root/AppRun "$targetdir" "VampPluginPackInstaller-$version-x86_64.AppImage"
Chris@91 112