Skip to content

Commit faea05d

Browse files
authored
Merge pull request #11 from LibrePCB/add-qt-5.15.2-images
Add images with Qt 5.15.2
2 parents a699184 + 19890df commit faea05d

File tree

5 files changed

+268
-0
lines changed

5 files changed

+268
-0
lines changed

README.md

+8
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
@@ -78,6 +82,10 @@ Based on Windows Server Core LTSC2019 with Qt5.15.0 and MinGW 8.1 32-bit. This
7882
image is intended for deployment of official binary releases of LibrePCB for
7983
Windows.
8084

85+
### `windowsservercore-ltsc2019-qt5.15.2-32bit`
86+
87+
Same purpose as `windowsservercore-ltsc2019-qt5.15.0-32bit`, but with Qt 5.15.2.
88+
8189

8290
## Updating Images
8391

ubuntu-16.04-qt5.15.2/Dockerfile

+71
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"
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+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
FROM mcr.microsoft.com/windows/servercore:ltsc2019
2+
3+
# Install Chocolatey
4+
RUN powershell -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command \
5+
"[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" \
6+
&& SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
7+
8+
# Install Chocolatey Packages
9+
# Note: Funq doesn't work with Python3 or x64, thus we need Python2 x86.
10+
ENV PYTHONIOENCODING "UTF-8"
11+
RUN choco install -y 7zip ccache vcredist2017 \
12+
&& choco install -y git --params "/GitAndUnixToolsOnPath /NoAutoCrlf" \
13+
&& choco install --forcex86 -y python2
14+
15+
# Install Python Packages
16+
RUN pip install future "flake8==3.7.7"
17+
18+
# Install MinGW
19+
ARG MINGW_URL="https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/tools_mingw/qt.tools.win32_mingw810/8.1.0-1-202004170606i686-8.1.0-release-posix-dwarf-rt_v6-rev0.7z"
20+
RUN powershell -Command Invoke-WebRequest $env:MINGW_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
21+
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
22+
&& setx PATH "%PATH%;C:\Qt\Tools\mingw810_32\bin" \
23+
&& del C:\tmp.7z
24+
25+
# Install OpenSSL
26+
ARG OPENSSL_URL="http://slproweb.com/download/Win32OpenSSL_Light-1_1_1g.exe"
27+
RUN powershell -Command Invoke-WebRequest $env:OPENSSL_URL -OutFile 'C:/tmp.exe' -UseBasicParsing ; \
28+
&& C:/tmp.exe /silent /verysilent /suppressmsgboxes /sp- /dir=C:/OpenSSL-Win32 \
29+
&& del C:\tmp.exe
30+
31+
# Install CMake
32+
ARG CMAKE_URL="https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/tools_cmake/qt.tools.cmake.win64/3.19.2-202101071154windows64_x64_cmake_tools.7z"
33+
RUN powershell -Command Invoke-WebRequest $env:CMAKE_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
34+
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
35+
&& setx PATH "%PATH%;C:\Qt\Tools\CMake_64\bin" \
36+
&& del C:\tmp.7z
37+
38+
# Install Qt whatever DLLs
39+
ARG QT_VERSION="5.15.2"
40+
ARG QT_URL="https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5152/qt.qt5.5152.win32_mingw81/5.15.2-0-202011130602"
41+
ARG QT_DLLS_URL="${QT_URL}i686-8.1.0-release-posix-dwarf-rt_v6-rev0-runtime.7z"
42+
RUN powershell -Command Invoke-WebRequest $env:QT_DLLS_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
43+
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
44+
&& del C:\tmp.7z
45+
46+
# Install Qt Tools
47+
ARG QT_TOOLS_URL="${QT_URL}qttools-Windows-Windows_7-Mingw-Windows-Windows_7-X86.7z"
48+
RUN powershell -Command Invoke-WebRequest $env:QT_TOOLS_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
49+
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
50+
&& setx PATH "%PATH%;C:\Qt\%QT_VERSION%\mingw81_32\bin" \
51+
&& del C:\tmp.7z
52+
53+
# Install Qt Base
54+
ARG QT_BASE_URL="${QT_URL}qtbase-Windows-Windows_7-Mingw-Windows-Windows_7-X86.7z"
55+
ARG QT_PRI="C:\\Qt\\$QT_VERSION\\mingw81_32\\mkspecs\\qconfig.pri"
56+
RUN powershell -Command Invoke-WebRequest $env:QT_BASE_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
57+
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
58+
&& del C:\tmp.7z \
59+
&& powershell -Command "((Get-Content -path $env:QT_PRI -Raw) -replace 'Enterprise', 'OpenSource') | Set-Content -Path $env:QT_PRI" \
60+
&& powershell -Command "((Get-Content -path $env:QT_PRI -Raw) -replace 'licheck.exe', '') | Set-Content -Path $env:QT_PRI"
61+
62+
# Install Qt SVG
63+
ARG QT_SVG_URL="${QT_URL}qtsvg-Windows-Windows_7-Mingw-Windows-Windows_7-X86.7z"
64+
RUN powershell -Command Invoke-WebRequest $env:QT_SVG_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
65+
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
66+
&& del C:\tmp.7z
67+
68+
# Install Qt Declarative
69+
ARG QT_DECLARATIVE_URL="${QT_URL}qtdeclarative-Windows-Windows_7-Mingw-Windows-Windows_7-X86.7z"
70+
RUN powershell -Command Invoke-WebRequest $env:QT_DECLARATIVE_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
71+
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
72+
&& del C:\tmp.7z
73+
74+
# Install Qt Translations
75+
ARG QT_TRANSLATIONS_URL="${QT_URL}qttranslations-Windows-Windows_7-Mingw-Windows-Windows_7-X86.7z"
76+
RUN powershell -Command Invoke-WebRequest $env:QT_TRANSLATIONS_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
77+
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
78+
&& del C:\tmp.7z
79+
80+
# Install Qt Installer Framework
81+
ARG QT_IFW_VERSION="3.2.2"
82+
ARG QT_IFW_URL="https://download.qt.io/official_releases/qt-installer-framework/$QT_IFW_VERSION/QtInstallerFramework-win-x86.exe"
83+
COPY qtifw-installer-noninteractive.qs C:/qtifw-installer-noninteractive.qs
84+
RUN powershell -Command Invoke-WebRequest $env:QT_IFW_URL -OutFile 'C:/tmp.exe' -UseBasicParsing ; \
85+
&& C:/tmp.exe --script C:/qtifw-installer-noninteractive.qs --no-force-installations -v \
86+
&& setx PATH "%PATH%;C:\Qt\QtIFW-%QT_IFW_VERSION%\bin" \
87+
&& del C:\tmp.exe
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)