diff --git a/linux/appimage/Dockerfile b/linux/appimage/Dockerfile index 5457753e2..1c4da853d 100644 --- a/linux/appimage/Dockerfile +++ b/linux/appimage/Dockerfile @@ -25,7 +25,13 @@ RUN yum -y install \ alsa-lib-devel \ libXi-devel \ libXtst-devel \ - libXrandr-devel + libXrandr-devel \ + xcb-util-keysyms-devel \ + gperf \ + flex \ + bison \ + libgcrypt-devel \ + systemd-devel RUN yum -y install devtoolset-4-gcc-c++ diff --git a/linux/appimage/build-appimage.sh b/linux/appimage/build-appimage.sh index cafac55c9..30043d309 100755 --- a/linux/appimage/build-appimage.sh +++ b/linux/appimage/build-appimage.sh @@ -237,7 +237,9 @@ libQt5WebEngine.so.5 libQt5WebEngineWidgets.so.5 libQt5Widgets.so.5 libQt5X11Extras.so.5 -libQt5XcbQpa.so.5" +libQt5XcbQpa.so.5 +libQt5Concurrent.so.5 +libQt5Xml.so.5" NEEDEDPLUGINSLIST="bearer generic diff --git a/linux/appimage/setup.sh b/linux/appimage/setup.sh index 88d108a4c..238e56fe0 100755 --- a/linux/appimage/setup.sh +++ b/linux/appimage/setup.sh @@ -1,37 +1,87 @@ #!/usr/bin/env bash +set -e + +NCPUS=$(getconf _NPROCESSORS_ONLN) QT_INSTALL_URL="https://download.qt.io/official_releases/qt/5.10/5.10.1/qt-opensource-linux-x64-5.10.1.run" -EXTRA_CMAKE_MODULES_URL="https://download.kde.org/stable/frameworks/5.45/extra-cmake-modules-5.45.0.tar.xz" -KI18N_URL="https://download.kde.org/stable/frameworks/5.45/ki18n-5.45.0.tar.xz" + +FRAMEWORK_VERSION="5.45" +CMAKE_FRAMEWORKS_URL="https://download.kde.org/stable/frameworks/${FRAMEWORK_VERSION}" +MODULE_VERSION="${FRAMEWORK_VERSION}.0" QTDIR="/root/Qt/5.10.1/gcc_64" +trap "rm -rf *${MODULE_VERSION} *.tar.xz phonon* qt-installer setup.sh" EXIT 1 2 + # Install Qt cd /root wget $QT_INSTALL_URL -O qt-installer chmod u+x qt-installer -./qt-installer --script qt-installer-noninteractive.qs --platform minimal -v +./qt-installer --script qt-installer-noninteractive.qs --platform minimal -v || : echo "export QTDIR=$QTDIR" > /root/env.sh +NEEDED_MODULES="ki18n +kcoreaddons +kconfig +kwindowsystem +kauth +kcodecs +kguiaddons +kwidgetsaddons +kconfigwidgets +kdbusaddons +karchive +kitemviews +kiconthemes +knotifications +kcrash +kservice +kwallet +solid +sonnet +kcompletion +ktextwidgets +attica +kglobalaccel +kxmlgui +kbookmarks +kjobwidgets +kio" + +moduleBuild() { + mkdir build && cd build + cmake -DBUILD_TESTING=OFF -DBUILD_QCH=OFF -DCMAKE_PREFIX_PATH=$QTDIR/lib/cmake -DCMAKE_INSTALL_PREFIX=$QTDIR -DCMAKE_INSTALL_LIBDIR=lib .. + make -j${NCPUS} + make install +} + # Install ECM -cd /root -wget $EXTRA_CMAKE_MODULES_URL -O extra-cmake-modules.tar.xz +wget "${CMAKE_FRAMEWORKS_URL}/extra-cmake-modules-${MODULE_VERSION}.tar.xz" -O extra-cmake-modules.tar.xz tar xf extra-cmake-modules.tar.xz -cd extra-cmake-modules-* -mkdir build && cd build -cmake -DBUILD_TESTING=OFF -DBUILD_QCH=OFF -DCMAKE_PREFIX_PATH=$QTDIR/lib/cmake -DCMAKE_INSTALL_PREFIX=$QTDIR -DCMAKE_INSTALL_LIBDIR=lib .. -make && make install +pushd extra-cmake-modules-${MODULE_VERSION} +moduleBuild +popd -# Install KI18n -cd /root -wget $KI18N_URL -O ki18n.tar.xz -tar xf ki18n.tar.xz -cd ki18n-* +# Install PHONON +wget https://download.kde.org/stable/phonon/4.10.1/phonon-4.10.1.tar.xz -O phonon.tar.xz +tar xf phonon.tar.xz +pushd phonon-4.10.1 mkdir build && cd build -cmake -DBUILD_TESTING=OFF -DBUILD_QCH=OFF -DCMAKE_PREFIX_PATH=$QTDIR/lib/cmake -DCMAKE_INSTALL_PREFIX=$QTDIR -DCMAKE_INSTALL_LIBDIR=lib .. -make && make install +cmake \ + -DCMAKE_INSTALL_PREFIX:PATH=$QTDIR \ + -DCMAKE_INSTALL_LIBDIR:PATH=lib \ + -DPLUGIN_INSTALL_DIR:PATH=$QTDIR/plugins \ + -DPHONON_BUILD_PHONON4QT5=ON -DCMAKE_PREFIX_PATH=$QTDIR .. +make -j${NCPUS} +make install +popd -# Cleanup -cd /root -rm -r qt-installer* extra-cmake-modules* ki18n* setup.sh +# Install RQUIRED MODULES +for MODULE_NAME in ${NEEDED_MODULES}; do + wget "${CMAKE_FRAMEWORKS_URL}/${MODULE_NAME}-${MODULE_VERSION}.tar.xz" -O ${MODULE_NAME}.tar.xz + tar xf ${MODULE_NAME}.tar.xz + pushd ${MODULE_NAME}-${MODULE_VERSION} + moduleBuild + popd +done