mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
build-system/trusty: use new Qt installer
Update to Qt 5.12.10, latest OpenSSL, add QtChart, add other missing packages. Also switch to gcc-7 as our statistics code requires better C++17 support than what gcc-6 can offer. This then creates trusty-qt512:1.1 Signed-off-by: Subsurface CI <dirk@hohndel.org>
This commit is contained in:
parent
cdd3adc61b
commit
3cf6848605
5 changed files with 30 additions and 78 deletions
2
.github/workflows/linux-trusty-5.12.yml
vendored
2
.github/workflows/linux-trusty-5.12.yml
vendored
|
@ -11,7 +11,7 @@ jobs:
|
||||||
buildAppImage:
|
buildAppImage:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: docker://subsurface/trusty-qt512:1.0
|
image: docker://subsurface/trusty-qt512:1.1
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: checkout sources
|
- name: checkout sources
|
||||||
|
|
|
@ -9,9 +9,9 @@ set -e
|
||||||
export PATH=$QT_ROOT/bin:$PATH # Make sure correct qmake is found on the $PATH for linuxdeployqt
|
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
|
export CMAKE_PREFIX_PATH=$QT_ROOT/lib/cmake
|
||||||
|
|
||||||
echo "--------------------------------------------------------------"
|
# echo "--------------------------------------------------------------"
|
||||||
echo "install missing packages"
|
# echo "install missing packages"
|
||||||
apt install -y libbluetooth-dev libmtp-dev
|
# apt install -y libbluetooth-dev libmtp-dev
|
||||||
|
|
||||||
# the container currently has things under / that need to be under /__w/subsurface/subsurface instead
|
# the container currently has things under / that need to be under /__w/subsurface/subsurface instead
|
||||||
cp -a /appdir /__w/subsurface/
|
cp -a /appdir /__w/subsurface/
|
||||||
|
@ -34,7 +34,7 @@ export QT_DEBUG_PLUGINS=1
|
||||||
mkdir -p appdir/usr/plugins/
|
mkdir -p appdir/usr/plugins/
|
||||||
|
|
||||||
# mv googlemaps plugins into place
|
# 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/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
|
rm -rf appdir/usr/usr appdir/usr/lib/cmake appdir/usr/lib/pkgconfig
|
||||||
cp /ssllibs/libssl.so appdir/usr/lib/libssl.so.1.1
|
cp /ssllibs/libssl.so appdir/usr/lib/libssl.so.1.1
|
||||||
|
|
|
@ -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 apt-get -y update && apt-get install -y software-properties-common
|
||||||
RUN add-apt-repository -y 'ppa:ubuntu-toolchain-r/test'
|
RUN add-apt-repository -y 'ppa:ubuntu-toolchain-r/test'
|
||||||
RUN apt-get -y update && apt-get install -y \
|
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 \
|
curl libdbus-1-3 libexpat1 libfontconfig1 libfreetype6 \
|
||||||
libexpat1-dev libgl1-mesa-dev libgl1-mesa-glx \
|
libexpat1-dev libgl1-mesa-dev libgl1-mesa-glx \
|
||||||
ruby gperf bison libx11-6 libx11-xcb1 libjpeg-dev libpng-dev \
|
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 \
|
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 \
|
libssl-dev libssh2-1-dev libcurl4-openssl-dev mesa-common-dev libqt5gui5 \
|
||||||
libxcb-xinerama0 libpulse-mainloop-glib0 libhyphen-dev libicu52 \
|
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
|
# oddly this gets us too many gcc/g++ version (even though we explicitly
|
||||||
# ask for gcc-6/g++6
|
# ask for gcc-7/g++-7
|
||||||
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 10 && \
|
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 10 && \
|
||||||
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 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/cc cc /usr/bin/gcc 10 && \
|
||||||
update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 10 && \
|
update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 10 && \
|
||||||
update-alternatives --set cc /usr/bin/gcc && \
|
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 .
|
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
|
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
|
# deadsnale Python 3.6
|
||||||
ADD qtifwsilent.qs .
|
RUN add-apt-repository ppa:deadsnakes/ppa
|
||||||
ADD qt-opensource-linux-x64-5.12.4.run .
|
RUN apt-get update && sudo apt-get install -y python3.6
|
||||||
|
|
||||||
RUN chmod +x qt-opensource-linux-x64-5.12.4.run && \
|
# install Qt
|
||||||
QT_INSTALL_DIR=/usr/local/Qt ./qt-opensource-linux-x64-5.12.4.run --platform minimal --script qtifwsilent.qs && \
|
RUN curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" && python3.6 get-pip.py
|
||||||
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* \
|
RUN pip3 install aqtinstall
|
||||||
/usr/local/Qt/5.12.4/gcc_64/bin/qgltf /usr/local/Qt/5.12.4/gcc_64/bin/qdoc
|
RUN find /usr /home -name aqt -ls
|
||||||
ENV QT_ROOT /usr/local/Qt/5.12.4/gcc_64
|
RUN /usr/local/bin/aqt install -O /usr/local/Qt 5.12.10 linux desktop -m qtcharts
|
||||||
ENV PATH="/usr/local/Qt/5.12.4/gcc_64/bin/:${PATH}"
|
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
|
# now build and install QtWebKit
|
||||||
RUN git clone -b 5.212 git://github.com/qt/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 mkdir -p qtwebkit/WebKitBuild/Release
|
||||||
RUN cd qtwebkit/WebKitBuild/Release && make install/fast
|
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
|
RUN rm -rf qtwebkit
|
||||||
|
|
||||||
# finally, we need a new libdbus
|
# finally, we need a new libdbus
|
||||||
|
@ -61,13 +65,13 @@ RUN mkdir dbus-1.12.16/build && \
|
||||||
cd 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 && \
|
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 && \
|
cmake ../cmake -DDBUS_INSTALL_SYSTEM_LIBS=1 && \
|
||||||
make install && \
|
make -j4 install && \
|
||||||
ldconfig
|
ldconfig
|
||||||
|
|
||||||
ADD OpenSSL_1_1_1.tar.gz .
|
ADD OpenSSL_1_1_1i.tar.gz .
|
||||||
RUN cd /openssl-OpenSSL_1_1_1 && \
|
RUN cd /openssl-OpenSSL_1_1_1i && \
|
||||||
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib && \
|
./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
|
# try to remove some of the packages we no longer need
|
||||||
RUN apt-get remove -y libqt5core5a libqt5dbus5 libqt5gui5 ruby openssh-client
|
RUN apt-get remove -y libqt5core5a libqt5dbus5 libqt5gui5 ruby openssh-client
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
wget https://github.com/Kitware/CMake/releases/download/v3.13.2/cmake-3.13.2-Linux-x86_64.sh
|
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
|
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
|
||||||
|
|
|
@ -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);
|
|
||||||
}
|
|
Loading…
Reference in a new issue