Skip to content

Commit 81ada68

Browse files
authored
Merge pull request #2 from LibrePCB/add-ubuntu-16.04-qt5.14.2
Add ubuntu-16.04-qt5.14.2
2 parents 797cfbb + 51bc843 commit 81ada68

File tree

3 files changed

+125
-0
lines changed

3 files changed

+125
-0
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ In addition, this image contains
4444
[Qt Installer Framework](https://doc.qt.io/qtinstallerframework/) to build the
4545
official binary releases.
4646

47+
### `ubuntu-16.04-qt5.14.2`
48+
49+
Same purpose as `ubuntu-16.04-qt5.12.3`, but with Qt 5.14.2.
50+
4751
### `ubuntu-18.04`
4852

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

ubuntu-16.04-qt5.14.2/Dockerfile

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
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+
curl \
10+
dbus \
11+
doxygen \
12+
file \
13+
g++ \
14+
git \
15+
graphviz \
16+
libc++-dev \
17+
libc++abi-dev \
18+
libglu1-mesa-dev \
19+
make \
20+
openssl \
21+
python \
22+
software-properties-common \
23+
wget \
24+
xvfb \
25+
zlib1g \
26+
zlib1g-dev \
27+
&& rm -rf /var/lib/apt/lists/*
28+
29+
# Install latest Qt
30+
ARG QT_VERSION="514"
31+
ARG QT_PPA="ppa:beineri/opt-qt-5.14.2-xenial"
32+
RUN add-apt-repository "$QT_PPA" -y \
33+
&& apt-get update -q \
34+
&& apt-get install -qq "qt${QT_VERSION}base" "qt${QT_VERSION}tools" \
35+
"qt${QT_VERSION}svg" "qt${QT_VERSION}translations" \
36+
&& rm -rf /var/lib/apt/lists/*
37+
ENV QTDIR="/opt/qt$QT_VERSION" \
38+
PATH="/opt/qt$QT_VERSION/bin:$PATH" \
39+
LD_LIBRARY_PATH="/opt/qt$QT_VERSION/lib/x86_64-linux-gnu:/opt/qt$QT_VERSION/lib:$LD_LIBRARY_PATH"
40+
41+
# Install Qt Installer Framework
42+
ARG QTIFW_VERSION="3.2.2"
43+
ARG QTIFW_URL_BASE="https://download.qt.io/official_releases/qt-installer-framework/$QTIFW_VERSION"
44+
COPY qtifw-installer-noninteractive.qs /qtifw-installer-noninteractive.qs
45+
RUN wget -cq "$QTIFW_URL_BASE/QtInstallerFramework-linux-x64.run" -O ./QtIFW.run \
46+
&& chmod a+x ./QtIFW.run \
47+
&& ./QtIFW.run --script /qtifw-installer-noninteractive.qs --no-force-installations --platform minimal -v \
48+
&& mv -fv ~/Qt/QtIFW-$QTIFW_VERSION/bin/* /usr/local/bin/
49+
50+
# Install linuxdeployqt
51+
ARG LINUXDEPLOYQT_VERSION="6"
52+
ARG LINUXDEPLOYQT_URL="https://github.com/probonopd/linuxdeployqt/releases/download/$LINUXDEPLOYQT_VERSION/linuxdeployqt-$LINUXDEPLOYQT_VERSION-x86_64.AppImage"
53+
RUN wget -cq "$LINUXDEPLOYQT_URL" -O /linuxdeployqt.AppImage \
54+
&& chmod a+x /linuxdeployqt.AppImage \
55+
&& /linuxdeployqt.AppImage --appimage-extract \
56+
&& chmod -R 755 /squashfs-root \
57+
&& ln -s /squashfs-root/AppRun /usr/local/bin/linuxdeployqt \
58+
&& rm /linuxdeployqt.AppImage
59+
60+
# Install PIP (the version from APT is not sufficient)
61+
RUN curl "https://bootstrap.pypa.io/get-pip.py" -o get-pip.py \
62+
&& python get-pip.py
63+
64+
# Install Python packages
65+
RUN pip install \
66+
"future==0.17.1" \
67+
"flake8==3.7.7"
68+
69+
# LibrePCB's unittests expect that there is a USERNAME environment variable
70+
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)