diff --git a/.github/workflows/linux-trusty-5.12.yml b/.github/workflows/linux-trusty-5.12.yml index 2142d482c..0aa822dfd 100644 --- a/.github/workflows/linux-trusty-5.12.yml +++ b/.github/workflows/linux-trusty-5.12.yml @@ -11,7 +11,7 @@ jobs: buildAppImage: runs-on: ubuntu-latest container: - image: docker://subsurface/trusty-qt512:1.0 + image: docker://subsurface/trusty-qt512:1.1 steps: - name: checkout sources diff --git a/.github/workflows/scripts/linux-in-container-build.sh b/.github/workflows/scripts/linux-in-container-build.sh index fedf1d6eb..8805057e8 100644 --- a/.github/workflows/scripts/linux-in-container-build.sh +++ b/.github/workflows/scripts/linux-in-container-build.sh @@ -9,9 +9,9 @@ set -e export PATH=$QT_ROOT/bin:$PATH # Make sure correct qmake is found on the $PATH for linuxdeployqt export CMAKE_PREFIX_PATH=$QT_ROOT/lib/cmake -echo "--------------------------------------------------------------" -echo "install missing packages" -apt install -y libbluetooth-dev libmtp-dev +# echo "--------------------------------------------------------------" +# echo "install missing packages" +# apt install -y libbluetooth-dev libmtp-dev # the container currently has things under / that need to be under /__w/subsurface/subsurface instead cp -a /appdir /__w/subsurface/ @@ -34,7 +34,7 @@ export QT_DEBUG_PLUGINS=1 mkdir -p appdir/usr/plugins/ # mv googlemaps plugins into place -mv appdir/usr/usr/local/Qt/5.12.4/gcc_64/plugins/* appdir/usr/plugins # the usr/usr is not a typo, that's where it ends up +mv appdir/usr/usr/local/Qt/5.*/gcc_64/plugins/* appdir/usr/plugins # the usr/usr is not a typo, that's where it ends up rm -rf appdir/usr/home/ appdir/usr/include/ appdir/usr/share/man/ # No need to ship developer and man files as part of the AppImage rm -rf appdir/usr/usr appdir/usr/lib/cmake appdir/usr/lib/pkgconfig cp /ssllibs/libssl.so appdir/usr/lib/libssl.so.1.1 diff --git a/scripts/docker/trusty-qt512/Dockerfile b/scripts/docker/trusty-qt512/Dockerfile index 383d6725c..44000dd9a 100644 --- a/scripts/docker/trusty-qt512/Dockerfile +++ b/scripts/docker/trusty-qt512/Dockerfile @@ -14,7 +14,7 @@ ADD ubuntu-esm-infra-trusty /etc/apt/preferences.d/ubuntu-esm-infra-trusty RUN apt-get -y update && apt-get install -y software-properties-common RUN add-apt-repository -y 'ppa:ubuntu-toolchain-r/test' RUN apt-get -y update && apt-get install -y \ - gcc-6 g++-6 make git autoconf automake libtool pkg-config \ + gcc-7 g++-7 make git autoconf automake libtool pkg-config \ curl libdbus-1-3 libexpat1 libfontconfig1 libfreetype6 \ libexpat1-dev libgl1-mesa-dev libgl1-mesa-glx \ ruby gperf bison libx11-6 libx11-xcb1 libjpeg-dev libpng-dev \ @@ -22,12 +22,12 @@ RUN apt-get -y update && apt-get install -y \ libxml2-dev libxslt1-dev libzip-dev libsqlite3-dev libusb-1.0-0-dev \ libssl-dev libssh2-1-dev libcurl4-openssl-dev mesa-common-dev libqt5gui5 \ libxcb-xinerama0 libpulse-mainloop-glib0 libhyphen-dev libicu52 \ - libglib2.0-dev mdbtools-dev + libglib2.0-dev mdbtools-dev libbluetooth-dev libmtp-dev # oddly this gets us too many gcc/g++ version (even though we explicitly -# ask for gcc-6/g++6 -RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 10 && \ - update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 10 && \ +# ask for gcc-7/g++-7 +RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 10 && \ + update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 10 && \ update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 10 && \ update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 10 && \ update-alternatives --set cc /usr/bin/gcc && \ @@ -37,21 +37,25 @@ RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 10 && \ ADD cmake-3.13.2-Linux-x86_64.sh . RUN chmod a+x cmake-3.13.2-Linux-x86_64.sh && ./cmake-3.13.2-Linux-x86_64.sh --prefix=/usr --skip-license && rm -f cmake-3.13.2-Linux-x86_64.sh -# install Qt silently -ADD qtifwsilent.qs . -ADD qt-opensource-linux-x64-5.12.4.run . +# deadsnale Python 3.6 +RUN add-apt-repository ppa:deadsnakes/ppa +RUN apt-get update && sudo apt-get install -y python3.6 -RUN chmod +x qt-opensource-linux-x64-5.12.4.run && \ - QT_INSTALL_DIR=/usr/local/Qt ./qt-opensource-linux-x64-5.12.4.run --platform minimal --script qtifwsilent.qs && \ - rm -rf qt-opensource-linux-x64-5.12.4.run qtifwsilent.qs /usr/local/Qt/Tools /usr/local/Qt/Docs /usr/local/Qt/Examples /usr/local/Qt/Maintenance* \ - /usr/local/Qt/5.12.4/gcc_64/bin/qgltf /usr/local/Qt/5.12.4/gcc_64/bin/qdoc -ENV QT_ROOT /usr/local/Qt/5.12.4/gcc_64 -ENV PATH="/usr/local/Qt/5.12.4/gcc_64/bin/:${PATH}" +# install Qt +RUN curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" && python3.6 get-pip.py +RUN pip3 install aqtinstall +RUN find /usr /home -name aqt -ls +RUN /usr/local/bin/aqt install -O /usr/local/Qt 5.12.10 linux desktop -m qtcharts +RUN rm -rf /usr/local/Qt/Tools /usr/local/Qt/Docs /usr/local/Qt/Examples /usr/local/Qt/Maintenance* \ + /usr/local/Qt/5.12.10/gcc_64/bin/qgltf /usr/local/Qt/5.12.10/gcc_64/bin/qdoc +ENV QT_ROOT /usr/local/Qt/5.12.10/gcc_64 +ENV PATH="/usr/local/Qt/5.12.10/gcc_64/bin/:${PATH}" # now build and install QtWebKit RUN git clone -b 5.212 git://github.com/qt/qtwebkit -RUN cd qtwebkit && PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$QT_ROOT/lib/pkgconfig ./Tools/Scripts/build-webkit --qt --prefix $QT_ROOT --release -RUN cd qtwebkit/WebKitBuild/Release && make install/fast +RUN mkdir -p qtwebkit/WebKitBuild/Release +RUN cd qtwebkit/WebKitBuild/Release && cmake -DPORT=Qt -DCMAKE_BUILD_TYPE=Release -DQt5_DIR=/usr/local/Qt/5.12.10/gcc_64/lib/cmake/Qt5 ../.. +RUN cd qtwebkit/WebKitBuild/Release && make -j4 && make install RUN rm -rf qtwebkit # finally, we need a new libdbus @@ -61,13 +65,13 @@ RUN mkdir dbus-1.12.16/build && \ cd dbus-1.12.16/build && \ sed -inline 's/${CMAKE_INSTALL_FULL_LOCALSTATEDIR}\/lib\/dbus\/machine-id/\/var\/lib\/dbus\/machine-id/' ../cmake/CMakeLists.txt && \ cmake ../cmake -DDBUS_INSTALL_SYSTEM_LIBS=1 && \ - make install && \ + make -j4 install && \ ldconfig -ADD OpenSSL_1_1_1.tar.gz . -RUN cd /openssl-OpenSSL_1_1_1 && \ +ADD OpenSSL_1_1_1i.tar.gz . +RUN cd /openssl-OpenSSL_1_1_1i && \ ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib && \ - make && mkdir -p /ssllibs && cp *.so /ssllibs && cd / && rm -rf openssl-OpenSSL_1_1_1 + make -j4 && mkdir -p /ssllibs && cp *.so /ssllibs && cd / && rm -rf openssl-OpenSSL_1_1_1i # try to remove some of the packages we no longer need RUN apt-get remove -y libqt5core5a libqt5dbus5 libqt5gui5 ruby openssh-client diff --git a/scripts/docker/trusty-qt512/getpackages.sh b/scripts/docker/trusty-qt512/getpackages.sh index 9b0e0fbe3..53250ba2c 100644 --- a/scripts/docker/trusty-qt512/getpackages.sh +++ b/scripts/docker/trusty-qt512/getpackages.sh @@ -1,6 +1,5 @@ #!/bin/bash wget https://github.com/Kitware/CMake/releases/download/v3.13.2/cmake-3.13.2-Linux-x86_64.sh -wget http://download.qt.io/official_releases/qt/5.12/5.12.4/qt-opensource-linux-x64-5.12.4.run curl -O https://dbus.freedesktop.org/releases/dbus/dbus-1.12.16.tar.gz -wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1.tar.gz +wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1i.tar.gz diff --git a/scripts/docker/trusty-qt512/qtifwsilent.qs b/scripts/docker/trusty-qt512/qtifwsilent.qs deleted file mode 100644 index e9d5976ca..000000000 --- a/scripts/docker/trusty-qt512/qtifwsilent.qs +++ /dev/null @@ -1,51 +0,0 @@ -function Controller() { - installer.autoRejectMessageBoxes(); - installer.installationFinished.connect(function() { - gui.clickButton(buttons.NextButton); - }) -} - -Controller.prototype.WelcomePageCallback = function() { - gui.clickButton(buttons.NextButton, 3000); -} - -Controller.prototype.CredentialsPageCallback = function() { - gui.clickButton(buttons.NextButton); -} - -Controller.prototype.IntroductionPageCallback = function() { - gui.clickButton(buttons.NextButton); -} - -Controller.prototype.TargetDirectoryPageCallback = function() { - gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.environmentVariable("QT_INSTALL_DIR")); - gui.clickButton(buttons.NextButton); -} - -Controller.prototype.ComponentSelectionPageCallback = function() { - var widget = gui.currentPageWidget(); - widget.deselectAll(); - widget.selectComponent("qt.qt5.5124.gcc_64"); - widget.selectComponent("qt.qt5.5124.qtscript"); - gui.clickButton(buttons.NextButton); -} - -Controller.prototype.LicenseAgreementPageCallback = function() { - gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true); - gui.clickButton(buttons.NextButton); -} - -Controller.prototype.StartMenuDirectoryPageCallback = function() { - gui.clickButton(buttons.NextButton); -} - -Controller.prototype.ReadyForInstallationPageCallback = function() { - gui.clickButton(buttons.NextButton); -} - -Controller.prototype.FinishedPageCallback = function() { - var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm; - if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) - checkBoxForm.launchQtCreatorCheckBox.checked = false; - gui.clickButton(buttons.FinishButton); -}