mirror of
https://github.com/outbackdingo/UltraGrid.git
synced 2026-03-20 13:40:13 +00:00
Use code checked out by GitHub Action - previously there was a clone but we want rather the actual code, which doesn't need to be in master branch of the main repository. This also requires a small refactor (chroot in home rather than in $GITHUB_WORKSPACE)
109 lines
3.2 KiB
Bash
Executable File
109 lines
3.2 KiB
Bash
Executable File
#!/bin/sh -eux
|
|
|
|
export CPATH=/usr/local/include${CPATH:+":$CPATH"}
|
|
EXTRA_LIB_PATH=/usr/local/cuda/lib64:/usr/local/lib
|
|
export LIBRARY_PATH=$EXTRA_LIB_PATH${LIBRARY_PATH:+":$LIBRARY_PATH"}
|
|
export LD_LIBRARY_PATH=$EXTRA_LIB_PATH${LD_LIBRARY_PATH:+":$LD_LIBRARY_PATH"}
|
|
export PATH=/usr/local/bin:$PATH
|
|
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH:+":$PKG_CONFIG_PATH"}
|
|
|
|
APPDIR=UltraGrid.AppDir
|
|
ARCH=`dpkg --print-architecture`
|
|
APPNAME=UltraGrid-latest-${ARCH}.AppImage
|
|
DIR=UltraGrid-AppImage
|
|
|
|
./autogen.sh --enable-plugins
|
|
|
|
mkdir $APPDIR
|
|
mkdir tmpinstall
|
|
make DESTDIR=tmpinstall install
|
|
mv tmpinstall/usr/local/* $APPDIR
|
|
|
|
for n in $APPDIR/bin/* $APPDIR/lib/ultragrid/*
|
|
do
|
|
for lib in `ldd $n | awk '{ print $3 }'`; do [ ! -f $lib ] || cp $lib $APPDIR/lib; done
|
|
done
|
|
|
|
# glibc libraries should not be bundled
|
|
# Taken from https://gitlab.com/probono/platformissues
|
|
# libnsl.so.1 is not removed - is not in Fedora 28 by default
|
|
for n in ld-linux.so.2 ld-linux-aarch64.so.1 ld-linux-armhf.so.3 libanl.so.1 libBrokenLocale.so.1 libcidn.so.1 libcrypt.so.1 libc.so.6 libdl.so.2 libm.so.6 libmvec.so.1 libnss_compat.so.2 libnss_db.so.2 libnss_dns.so.2 libnss_files.so.2 libnss_hesiod.so.2 libnss_nisplus.so.2 libnss_nis.so.2 libpthread.so.0 libresolv.so.2 librt.so.1 libthread_db.so.1 libutil.so.1
|
|
do
|
|
if [ -f $APPDIR/lib/$n ]; then
|
|
rm $APPDIR/lib/$n
|
|
fi
|
|
done
|
|
|
|
( cd $APPDIR/lib; rm -f libasound.so.2 libdrm.so.2 libEGL.so.1 libGL.so.1 libGLdispatch.so.0 libstdc++.so.6 libX11-xcb.so.1 libX11.so.6 libXau.so.6 libXcursor.so.1 libXdmcp.so.6 libXext.so.6 libXfixes.so.3 libXi.so.6 libXinerama.so.1 libXrandr.so.2 libXrender.so.1 libXtst.so.6 libXxf86vm.so.1 libxcb* libxshm* )
|
|
|
|
cat << 'EOF' >> $APPDIR/uv-wrapper.sh
|
|
#!/bin/sh
|
|
|
|
set -u
|
|
|
|
DIR=`dirname $0`
|
|
export LD_LIBRARY_PATH=$DIR/lib${LD_LIBRARY_PATH:+":$LD_LIBRARY_PATH"}
|
|
# there is an issue with running_from_path() which evaluates this executable
|
|
# as being system-installed
|
|
#export PATH=$DIR/bin:$PATH
|
|
|
|
exec $DIR/bin/uv "$@"
|
|
EOF
|
|
|
|
chmod 755 $APPDIR/uv-wrapper.sh
|
|
|
|
cat << 'EOF' >> $APPDIR/AppRun
|
|
#!/bin/sh
|
|
|
|
set -u
|
|
|
|
DIR=`dirname $0`
|
|
export LD_LIBRARY_PATH=$DIR/lib${LD_LIBRARY_PATH:+":$LD_LIBRARY_PATH"}
|
|
# there is an issue with running_from_path() which evaluates this executable
|
|
# as being system-installed
|
|
#export PATH=$DIR/bin:$PATH
|
|
export QT_QPA_FONTDIR=$DIR/lib/fonts
|
|
|
|
usage() {
|
|
printf "usage:\n"
|
|
printf "\tUltraGrid --help\n"
|
|
printf "\t\tprints this help\n"
|
|
printf "\n"
|
|
printf "\tUltraGrid --appimage-help\n"
|
|
printf "\t\tprints AppImage related options\n"
|
|
printf "\n"
|
|
printf "\tUltraGrid --tool uv --help\n"
|
|
printf "\t\tprints command-line UltraGrid help\n"
|
|
printf "\n"
|
|
printf "\tUltraGrid --tool <t> [args]\n"
|
|
printf "\t\tinvokes specified tool\n"
|
|
printf "\t\ttool may be: $(ls $DIR/bin | tr '\n' ' ')\n"
|
|
printf "\n"
|
|
printf "\tUltraGrid args\n"
|
|
printf "\t\tinvokes command-line UltraGrid\n"
|
|
printf "\n"
|
|
}
|
|
|
|
if [ $# -eq 0 ]; then
|
|
usage
|
|
elif [ x"$1" = x"--tool" ]; then
|
|
TOOL=$2
|
|
shift 2
|
|
$DIR/bin/$TOOL "$@"
|
|
elif [ x"$1" = x"-h" -o x"$1" = x"--help" ]; then
|
|
usage
|
|
exit 0
|
|
else
|
|
$DIR/bin/uv "$@"
|
|
fi
|
|
|
|
exit $?
|
|
EOF
|
|
chmod 755 $APPDIR/AppRun
|
|
|
|
cp data/ultragrid.png $APPDIR/ultragrid.png
|
|
cp data/uv-qt.desktop $APPDIR/ultragrid.desktop
|
|
|
|
appimagetool --comp gzip $APPDIR $APPNAME # --sign
|
|
|