Commit d3df08b7 authored by Daniel Agar's avatar Daniel Agar Committed by GitHub

appimage add libdirectfb-1.2-9 (#3531)

-general cleanup
parent 13bf81aa
......@@ -199,7 +199,7 @@ script:
after_success:
- if [[ "${TRAVIS_OS_NAME}" = "linux" && "${CONFIG}" = "installer" ]]; then
${TRAVIS_BUILD_DIR}/deploy/create_linux_appimage.sh
${TRAVIS_BUILD_DIR}/deploy/create_linux_appimage.sh ${TRAVIS_BUILD_DIR} ${SHADOW_BUILD_DIR}/release ${SHADOW_BUILD_DIR}/release/package
;
fi
- if [ "${TRAVIS_TAG}" ]; then
......@@ -238,6 +238,7 @@ deploy:
file_glob: true
file:
- ${SHADOW_BUILD_DIR}/release/package/qgroundcontrol.*
- ${SHADOW_BUILD_DIR}/release/package/QGroundControl.*
skip_cleanup: true
on:
tags: true
......
......@@ -154,6 +154,8 @@ LinuxBuild {
# QGroundControl start script
QMAKE_POST_LINK += && $$QMAKE_COPY $$BASEDIR/deploy/qgroundcontrol-start.sh $$DESTDIR
QMAKE_POST_LINK += && $$QMAKE_COPY $$BASEDIR/deploy/qgroundcontrol.desktop $$DESTDIR
QMAKE_POST_LINK += && $$QMAKE_COPY $$BASEDIR/resources/icons/qgroundcontrol.png $$DESTDIR
}
}
......@@ -17,7 +17,7 @@ Vagrant.configure(2) do |config|
# the "dev configuration puts the build products and a suitable
# environment into the /vagrant directory. This allows you to run
# qgroundcontrol on the host machine with:
# "cd shadow-build/release; ../../deploy/qgroundcontrol-start.sh"
# "cd shadow-build/release; ./qgroundcontrol-start.sh"
$config_shell = <<-'SHELL'
sudo apt-get update -y
......
......@@ -2,28 +2,58 @@
set +e
if [[ $# -eq 0 ]]; then
echo 'create_linux_appimage.sh QGC_SRC_DIR QGC_RELEASE_DIR'
exit 1
fi
QGC_SRC=$1
if [ ! -f ${QGC_SRC}/qgroundcontrol.pro ]; then
echo 'please specify path to qgroundcontrol source as the 1st argument'
exit 1
fi
QGC_RELEASE_DIR=$2
if [ ! -f ${QGC_RELEASE_DIR}/qgroundcontrol ]; then
echo 'please specify path to qgroundcontrol release as the 2nd argument'
exit 1
fi
OUTPUT_DIR=${3-`pwd`}
echo "Output directory:" ${OUTPUT_DIR}
# Generate AppImage using the binaries currently provided by the project.
# These require at least GLIBC 2.14, which older distributions might not have.
# On the other hand, 2.14 is not that recent so maybe we can just live with it.
APP=qgroundcontrol
mkdir -p /tmp/$APP/$APP.AppDir
cd /tmp/$APP/
tar xf ${SHADOW_BUILD_DIR}/release/package/qgroundcontrol.tar.bz2
APP=QGroundControl
wget -c http://ftp.us.debian.org/debian/pool/main/u/udev/udev_175-7.2_amd64.deb
wget -c http://ftp.us.debian.org/debian/pool/main/e/espeak/espeak_1.46.02-2_amd64.deb
wget -c http://ftp.us.debian.org/debian/pool/main/libs/libsdl1.2/libsdl1.2debian_1.2.15-5_amd64.deb
TMPDIR=`mktemp -d`
APPDIR=${TMPDIR}/$APP".AppDir"
mkdir -p ${APPDIR}
cd $APP.AppDir/
cd ${TMPDIR}
wget -c --quiet http://ftp.us.debian.org/debian/pool/main/u/udev/udev_175-7.2_amd64.deb
wget -c --quiet http://ftp.us.debian.org/debian/pool/main/e/espeak/espeak_1.46.02-2_amd64.deb
wget -c --quiet http://ftp.us.debian.org/debian/pool/main/libs/libsdl1.2/libsdl1.2debian_1.2.15-5_amd64.deb
mv ../qgroundcontrol/* .
mv qgroundcontrol-start.sh AppRun
cd ${APPDIR}
find ../ -name *.deb -exec dpkg -x {} . \;
# Get icon
cp ${TRAVIS_BUILD_DIR}/resources/icons/qgroundcontrol.png .
# copy libdirectfb-1.2.so.9
cd ${TMPDIR}
wget -c --quiet http://ftp.us.debian.org/debian/pool/main/d/directfb/libdirectfb-1.2-9_1.2.10.0-5.1_amd64.deb
mkdir libdirectfb
dpkg -x libdirectfb-1.2-9_1.2.10.0-5.1_amd64.deb libdirectfb
cp -L libdirectfb/usr/lib/x86_64-linux-gnu/libdirectfb-1.2.so.9 ${APPDIR}/usr/lib/x86_64-linux-gnu/
# copy QGroundControl release into appimage
cp -r ${QGC_RELEASE_DIR}/* ${APPDIR}/
rm -rf ${APPDIR}/package
mv ${APPDIR}/qgroundcontrol-start.sh ${APPDIR}/AppRun
# copy icon
cp ${QGC_SRC}/resources/icons/qgroundcontrol.png ${APPDIR}/
cat > ./qgroundcontrol.desktop <<\EOF
[Desktop Entry]
......@@ -31,24 +61,22 @@ Type=Application
Name=QGroundControl
GenericName=Ground Control Station
Comment=UAS ground control station
Icon=qgroundcontrol.png
Icon=qgroundcontrol
Exec=AppRun
Terminal=false
Categories=Utility;
Keywords=computer;
EOF
VERSION=$(strings qgroundcontrol | grep v[0-9*]\.[0-9*]\.[0-9*]-[0-9*] | head -n 1)
VERSION=$(strings ${APPDIR}/qgroundcontrol | grep '^v[0-9*]\.[0-9*].[0-9*]' | head -n 1)
echo QGC Version: ${VERSION}
# Go out of AppImage
cd ..
wget -c "https://github.com/probonopd/AppImageKit/releases/download/5/AppImageAssistant" # (64-bit)
cd ${TMPDIR}
wget -c --quiet "https://github.com/probonopd/AppImageKit/releases/download/5/AppImageAssistant" # (64-bit)
chmod a+x ./AppImageAssistant
mkdir -p ../out
rm ../out/$APP".AppImage" || true
./AppImageAssistant ./$APP.AppDir/ ../out/$APP".AppImage"
# s3 deploys everything in release/package
cp ../out/$APP".AppImage" ${SHADOW_BUILD_DIR}/release/package/$APP".AppImage"
./AppImageAssistant ./$APP.AppDir/ ${TMPDIR}/$APP".AppImage"
cp ${TMPDIR}/$APP".AppImage" ${OUTPUT_DIR}/$APP".AppImage"
......@@ -3,4 +3,8 @@ HERE="$(dirname "$(readlink -f "${0}")")"
export LD_LIBRARY_PATH="${HERE}/usr/lib/x86_64-linux-gnu":"${HERE}/Qt/libs":$LD_LIBRARY_PATH
export QML2_IMPORT_PATH="${HERE}/Qt/qml"
export QT_PLUGIN_PATH="${HERE}/Qt/plugins"
# hack until icon issue with AppImage is resolved
mkdir -p ~/.icons && cp ${HERE}/qgroundcontrol.png ~/.icons
"${HERE}/qgroundcontrol" "$@"
[Desktop Entry]
Type=Application
Name=qgroundcontrol
Name=QGroundControl
GenericName=Ground Control Station
Comment=UAS ground control station
Icon=qgroundcontrol
Exec=qgroundcontrol
Exec=qgroundcontrol-start.sh
Terminal=false
Categories=Utility;
Keywords=computer;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment