From f7e9f856687a80ca9517aabf375201d22d1f3014 Mon Sep 17 00:00:00 2001 From: Janek Bevendorff Date: Mon, 6 Feb 2017 19:52:21 +0100 Subject: [PATCH] Install Qt 5.8 inside Docker container --- AppImage-Recipe.sh | 16 +++++++++++++--- Dockerfile | 22 ++++++++++++++++++---- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/AppImage-Recipe.sh b/AppImage-Recipe.sh index 2ed3ae93b..dc30cb696 100755 --- a/AppImage-Recipe.sh +++ b/AppImage-Recipe.sh @@ -39,19 +39,27 @@ mkdir -p $APP.AppDir wget -q https://github.com/probonopd/AppImages/raw/master/functions.sh -O ./functions.sh . ./functions.sh +LIB_DIR=./usr/lib +if [ -d ./usr/lib/x86_64-linux-gnu ]; then + LIB_DIR=./usr/lib/x86_64-linux-gnu +fi + cd $APP.AppDir cp -a ../../bin-release/* . cp -a ./usr/local/* ./usr rm -R ./usr/local +rmdir ./opt 2> /dev/null patch_strings_in_file /usr/local ././ patch_strings_in_file /usr ./ # bundle Qt platform plugins and themes QXCB_PLUGIN="$(find /usr/lib -name 'libqxcb.so' 2> /dev/null)" +if [ "$QXCB_PLUGIN" == "" ]; then + QXCB_PLUGIN="$(find /opt/qt*/plugins -name 'libqxcb.so' 2> /dev/null)" +fi QT_PLUGIN_PATH="$(dirname $(dirname $QXCB_PLUGIN))" -mkdir -p "./${QT_PLUGIN_PATH}/platforms" -cp "$QXCB_PLUGIN" "./${QT_PLUGIN_PATH}/platforms/" -cp -a "${QT_PLUGIN_PATH}/platformthemes" "./${QT_PLUGIN_PATH}" +mkdir -p ".${QT_PLUGIN_PATH}/platforms" +cp "$QXCB_PLUGIN" ".${QT_PLUGIN_PATH}/platforms/" get_apprun copy_deps @@ -66,6 +74,8 @@ get_icon cat << EOF > ./usr/bin/keepassxc_env #!/usr/bin/env bash #export QT_QPA_PLATFORMTHEME=gtk2 +export LD_LIBRARY_PATH="../opt/qt58/lib:\${LD_LIBRARY_PATH}" +export QT_PLUGIN_PATH="..${QT_PLUGIN_PATH}" exec keepassxc "\$@" EOF chmod +x ./usr/bin/keepassxc_env diff --git a/Dockerfile b/Dockerfile index 422e4da84..9623b60dd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,17 +16,23 @@ FROM ubuntu:14.04 +RUN set -x \ + && apt-get update \ + && apt-get install --yes software-properties-common + +RUN set -x \ + && add-apt-repository --yes ppa:beineri/opt-qt58-trusty + RUN set -x \ && apt-get update \ && apt-get install --yes \ g++ \ cmake \ libgcrypt20-dev \ - qtbase5-dev \ - qttools5-dev \ - qttools5-dev-tools \ + qt58base \ + qt58tools \ + qt58x11extras \ libmicrohttpd-dev \ - libqt5x11extras5-dev \ libxi-dev \ libxtst-dev \ zlib1g-dev \ @@ -34,7 +40,15 @@ RUN set -x \ file \ fuse \ python + +RUN set -x \ + && apt-get install --yes mesa-common-dev VOLUME /keepassxc/src VOLUME /keepassxc/out WORKDIR /keepassxc + +ENV CMAKE_PREFIX_PATH=/opt/qt58/lib/cmake +ENV LD_LIBRARY_PATH=/opt/qt58/lib +RUN set -x \ + && echo /opt/qt58/lib > /etc/ld.so.conf.d/qt58.conf