Skip to content

Commit 24fa5aa

Browse files
committed
Add ubuntu-16.04-qt5.15.2
1 parent a699184 commit 24fa5aa

File tree

3 files changed

+126
-0
lines changed

3 files changed

+126
-0
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ official binary releases.
4848

4949
Same purpose as `ubuntu-16.04-qt5.12.3`, but with Qt 5.14.2.
5050

51+
### `ubuntu-16.04-qt5.15.2`
52+
53+
Same purpose as `ubuntu-16.04-qt5.12.3`, but with Qt 5.15.2.
54+
5155
### `ubuntu-18.04`
5256

5357
Based on Ubuntu 18.04, containing Qt from the official Ubuntu package

ubuntu-16.04-qt5.15.2/Dockerfile

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
FROM ubuntu:16.04
2+
3+
# Install APT packages
4+
ARG DEBIAN_FRONTEND=noninteractive
5+
RUN apt-get update -q && apt-get -y -q install --no-install-recommends \
6+
bzip2 \
7+
ca-certificates \
8+
clang \
9+
cmake \
10+
curl \
11+
dbus \
12+
doxygen \
13+
file \
14+
g++ \
15+
git \
16+
graphviz \
17+
libc++-dev \
18+
libc++abi-dev \
19+
libglu1-mesa-dev \
20+
make \
21+
openssl \
22+
python \
23+
software-properties-common \
24+
wget \
25+
xvfb \
26+
zlib1g \
27+
zlib1g-dev \
28+
&& rm -rf /var/lib/apt/lists/*
29+
30+
# Install latest Qt
31+
ARG QT_VERSION="515"
32+
ARG QT_PPA="ppa:beineri/opt-qt-5.15.2-xenial"
33+
RUN add-apt-repository "$QT_PPA" -y \
34+
&& apt-get update -q \
35+
&& apt-get install -qq "qt${QT_VERSION}base" "qt${QT_VERSION}tools" \
36+
"qt${QT_VERSION}svg" "qt${QT_VERSION}translations" \
37+
&& rm -rf /var/lib/apt/lists/*
38+
ENV QTDIR="/opt/qt$QT_VERSION" \
39+
PATH="/opt/qt$QT_VERSION/bin:$PATH" \
40+
LD_LIBRARY_PATH="/opt/qt$QT_VERSION/lib/x86_64-linux-gnu:/opt/qt$QT_VERSION/lib:$LD_LIBRARY_PATH"
41+
42+
# Install Qt Installer Framework
43+
ARG QTIFW_VERSION="3.2.2"
44+
ARG QTIFW_URL_BASE="https://download.qt.io/official_releases/qt-installer-framework/$QTIFW_VERSION"
45+
COPY qtifw-installer-noninteractive.qs /qtifw-installer-noninteractive.qs
46+
RUN wget -cq "$QTIFW_URL_BASE/QtInstallerFramework-linux-x64.run" -O ./QtIFW.run \
47+
&& chmod a+x ./QtIFW.run \
48+
&& ./QtIFW.run --script /qtifw-installer-noninteractive.qs --no-force-installations --platform minimal -v \
49+
&& mv -fv ~/Qt/QtIFW-$QTIFW_VERSION/bin/* /usr/local/bin/
50+
51+
# Install linuxdeployqt
52+
ARG LINUXDEPLOYQT_VERSION="6"
53+
ARG LINUXDEPLOYQT_URL="https://github.com/probonopd/linuxdeployqt/releases/download/$LINUXDEPLOYQT_VERSION/linuxdeployqt-$LINUXDEPLOYQT_VERSION-x86_64.AppImage"
54+
RUN wget -cq "$LINUXDEPLOYQT_URL" -O /linuxdeployqt.AppImage \
55+
&& chmod a+x /linuxdeployqt.AppImage \
56+
&& /linuxdeployqt.AppImage --appimage-extract \
57+
&& chmod -R 755 /squashfs-root \
58+
&& ln -s /squashfs-root/AppRun /usr/local/bin/linuxdeployqt \
59+
&& rm /linuxdeployqt.AppImage
60+
61+
# Install PIP (the version from APT is not sufficient)
62+
RUN curl "https://bootstrap.pypa.io/2.7/get-pip.py" -o get-pip.py \
63+
&& python get-pip.py
64+
65+
# Install Python packages
66+
RUN pip install \
67+
"future==0.17.1" \
68+
"flake8==3.7.7"
69+
70+
# LibrePCB's unittests expect that there is a USERNAME environment variable
71+
ENV USERNAME="root"
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
function Controller()
2+
{
3+
installer.autoRejectMessageBoxes();
4+
installer.setMessageBoxAutomaticAnswer("OverwriteTargetDirectory", QMessageBox.Yes);
5+
installer.setMessageBoxAutomaticAnswer("stopProcessesForUpdates", QMessageBox.Ignore);
6+
installer.installationFinished.connect(function() {
7+
gui.clickButton(buttons.NextButton);
8+
})
9+
}
10+
11+
12+
Controller.prototype.IntroductionPageCallback = function()
13+
{
14+
gui.clickButton(buttons.NextButton);
15+
}
16+
17+
Controller.prototype.TargetDirectoryPageCallback = function()
18+
{
19+
gui.clickButton(buttons.NextButton);
20+
}
21+
22+
Controller.prototype.ComponentSelectionPageCallback = function()
23+
{
24+
gui.clickButton(buttons.NextButton);
25+
}
26+
27+
Controller.prototype.LicenseAgreementPageCallback = function()
28+
{
29+
gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
30+
gui.clickButton(buttons.NextButton);
31+
}
32+
33+
Controller.prototype.StartMenuDirectoryPageCallback = function()
34+
{
35+
gui.clickButton(buttons.NextButton);
36+
}
37+
38+
Controller.prototype.ReadyForInstallationPageCallback = function()
39+
{
40+
gui.clickButton(buttons.NextButton);
41+
}
42+
43+
Controller.prototype.PerformInstallationPageCallback = function()
44+
{
45+
gui.clickButton(buttons.NextButton);
46+
}
47+
48+
Controller.prototype.FinishedPageCallback = function()
49+
{
50+
gui.clickButton(buttons.FinishButton);
51+
}

0 commit comments

Comments
 (0)