2017-12-21 16:38:55 +01:00
|
|
|
#!/bin/sh -e
|
|
|
|
|
2018-03-03 20:05:38 +01:00
|
|
|
# A shell script that does the same as the binaries in the release section.
|
|
|
|
|
2017-12-21 16:38:55 +01:00
|
|
|
cd "$(dirname "$0")"
|
|
|
|
|
|
|
|
cxxpre=""
|
|
|
|
gccpre=""
|
|
|
|
execpre=""
|
|
|
|
libc6arch="libc6,x86-64"
|
2022-09-21 04:05:53 +02:00
|
|
|
exec="./bin/$(sed -n -e 's|%f||' -e 's|^Exec=||p' $(ls -1 *.desktop))"
|
2017-12-21 16:38:55 +01:00
|
|
|
|
|
|
|
if [ -n "$APPIMAGE" ] && [ "$(file -b "$APPIMAGE" | cut -d, -f2)" != " x86-64" ]; then
|
|
|
|
libc6arch="libc6"
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd "usr"
|
|
|
|
|
|
|
|
if [ -e "./optional/libstdc++/libstdc++.so.6" ]; then
|
2018-03-03 20:05:38 +01:00
|
|
|
lib="$(PATH="/sbin:$PATH" ldconfig -p | grep "libstdc++\.so\.6 ($libc6arch)" | awk 'NR==1{print $NF}')"
|
2022-05-26 00:50:43 +02:00
|
|
|
sym_sys=$(tr '\0' '\n' < "$lib" | grep -e '^GLIBCXX_3\.4' | sort -V | tail -n1)
|
|
|
|
sym_app=$(tr '\0' '\n' < "./optional/libstdc++/libstdc++.so.6" | grep -e '^GLIBCXX_3\.4' | sort -V | tail -n1)
|
2017-12-21 16:38:55 +01:00
|
|
|
if [ "$(printf "${sym_sys}\n${sym_app}"| sort -V | tail -1)" != "$sym_sys" ]; then
|
|
|
|
cxxpath="./optional/libstdc++:"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -e "./optional/libgcc/libgcc_s.so.1" ]; then
|
2018-03-03 20:05:38 +01:00
|
|
|
lib="$(PATH="/sbin:$PATH" ldconfig -p | grep "libgcc_s\.so\.1 ($libc6arch)" | awk 'NR==1{print $NF}')"
|
2022-05-26 00:50:43 +02:00
|
|
|
sym_sys=$(tr '\0' '\n' < "$lib" | grep -e '^GCC_[0-9]\\.[0-9]' | sort -V | tail -n1)
|
|
|
|
sym_app=$(tr '\0' '\n' < "./optional/libgcc/libgcc_s.so.1" | grep -e '^GCC_[0-9]\\.[0-9]' | sort -V | tail -n1)
|
2017-12-21 16:38:55 +01:00
|
|
|
if [ "$(printf "${sym_sys}\n${sym_app}"| sort -V | tail -1)" != "$sym_sys" ]; then
|
|
|
|
gccpath="./optional/libgcc:"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -n "$cxxpath" ] || [ -n "$gccpath" ]; then
|
|
|
|
if [ -e "./optional/exec.so" ]; then
|
|
|
|
execpre=""
|
|
|
|
export LD_PRELOAD="./optional/exec.so:${LD_PRELOAD}"
|
|
|
|
fi
|
|
|
|
export LD_LIBRARY_PATH="${cxxpath}${gccpath}${LD_LIBRARY_PATH}"
|
|
|
|
fi
|
|
|
|
|
2022-09-21 04:05:53 +02:00
|
|
|
# Force xcb platform for Qt applications
|
|
|
|
if [ -z "${QT_QPA_PLATFORM}" ]; then
|
|
|
|
export QT_QPA_PLATFORM=xcb
|
|
|
|
fi
|
|
|
|
|
2022-09-20 23:04:35 +02:00
|
|
|
# Find correct root CA file
|
2022-09-21 00:54:58 +02:00
|
|
|
_POSSIBLE_CERTIFICATES="/etc/ssl/certs/ca-bundle.crt \
|
|
|
|
/etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt \
|
|
|
|
/etc/ssl/ca-bundle.pem /etc/pki/tls/cacert.pem"
|
|
|
|
|
2022-09-20 23:04:35 +02:00
|
|
|
if [ -z "$SSL_CERT_FILE" ]; then
|
2022-09-21 00:54:58 +02:00
|
|
|
for i in $_POSSIBLE_CERTIFICATES; do
|
2022-09-20 23:04:35 +02:00
|
|
|
if [ -f "$i" ]; then
|
|
|
|
export SSL_CERT_FILE="$i"
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
|
2017-12-21 16:38:55 +01:00
|
|
|
#echo ">>>>> $LD_LIBRARY_PATH"
|
|
|
|
#echo ">>>>> $LD_PRELOAD"
|
|
|
|
|
2022-09-21 04:05:53 +02:00
|
|
|
exec $exec "$@"
|
2017-12-21 16:38:55 +01:00
|
|
|
|