Skip to content

Commit dc7e68e

Browse files
committed
Windows: Add new image for Qt 6.10
1 parent d46efde commit dc7e68e

File tree

6 files changed

+215
-1
lines changed

6 files changed

+215
-1
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
name: Windows Server Core LTSC2025
1212
runs-on: windows-2025
1313
env:
14-
TAG: "windowsservercore-ltsc2025-qt6.6-64bit"
14+
TAG: "windowsservercore-ltsc2025-qt6.10-64bit"
1515
permissions:
1616
contents: read
1717
packages: write

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ and OpenCascade OCCT 7.7.2. This image was intended for deployment of official
5555
### `windowsservercore-ltsc2025-qt6.6-64bit`
5656

5757
Based on Windows Server Core LTSC2025 with Qt6.6.x, MinGW 11.2.0 64-bit
58+
and OpenCascade OCCT 7.9.1. This image was intended for deployment of official
59+
64-bit binary releases of LibrePCB for Windows.
60+
61+
### `windowsservercore-ltsc2025-qt6.10-64bit`
62+
63+
Based on Windows Server Core LTSC2025 with Qt6.10.x, MinGW 13.1.0 64-bit
5864
and OpenCascade OCCT 7.9.1. This image is intended for deployment of official
5965
64-bit binary releases of LibrePCB for Windows.
6066

Lines changed: 208 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,208 @@
1+
# Image tag: ltsc2025
2+
# Referenced by digest to avoid broken caching on CI.
3+
FROM mcr.microsoft.com/windows/servercore@sha256:7404f9a26420caf446b117b0bab158dd0ec45a0b4eb73a345137c33f20125094
4+
5+
# Add OpenGL DLLs from a Windows desktop to allow running unit tests within the container
6+
ADD *.dll C:/Windows/System32/
7+
8+
# Add Arial font since Slint requires it, see
9+
# https://github.com/slint-ui/slint/issues/2556#issuecomment-2995413102
10+
ADD arial.ttf C:/Windows/Fonts/
11+
12+
# Install Microsoft Visual C++ Redistributable for Visual Studio 2015-2022
13+
ARG VCREDIST_URL="https://download.visualstudio.microsoft.com/download/pr/6ba404bb-6312-403e-83be-04b062914c98/1AD7988C17663CC742B01BEF1A6DF2ED1741173009579AD50A94434E54F56073/VC_redist.x64.exe"
14+
RUN curl -o "C:/tmp.exe" -L "%VCREDIST_URL%" \
15+
&& C:/tmp.exe /quiet /norestart \
16+
&& del C:\tmp.exe
17+
18+
# Install 7-Zip
19+
# Attention: I observed issues with version 2409, thus better keep the old version
20+
ARG 7ZIP_URL="https://7-zip.org/a/7z2301-x64.exe"
21+
RUN curl -o "C:/tmp.exe" -L "%7ZIP_URL%" \
22+
&& C:/tmp.exe /S /D="C:/7zip" \
23+
&& setx PATH "%PATH%;C:\7zip" \
24+
&& del C:\tmp.exe
25+
26+
# Install Git
27+
# Attention: Version 2.50 breaks our CI in a strange way!
28+
ARG GIT_VERSION="2.44.0"
29+
ARG GIT_URL="https://github.com/git-for-windows/git/releases/download/v$GIT_VERSION.windows.1/Git-$GIT_VERSION-64-bit.exe"
30+
RUN curl -o "C:/tmp.exe" -L "%GIT_URL%" \
31+
&& C:/tmp.exe /VERYSILENT /NORESTART /NOCANCEL /SP- /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS \
32+
/COMPONENTS="gitlfs" /o:PathOption="CmdTools" /o:CRLFOption="LFOnly" /DIR:"C:/git" \
33+
&& del C:\tmp.exe
34+
35+
# Install UV
36+
ARG UV_URL="https://github.com/astral-sh/uv/releases/download/0.9.21/uv-x86_64-pc-windows-msvc.zip"
37+
RUN curl -o "C:/tmp.zip" -L "%UV_URL%" \
38+
&& 7z x C:/tmp.zip -oC:/uv -bsp1 \
39+
&& setx PYTHONIOENCODING "UTF-8" \
40+
&& setx PATH "%PATH%;C:\uv" \
41+
&& del C:\tmp.zip
42+
43+
# Install CMake
44+
ARG CMAKE_VERSION="4.2.1"
45+
ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-windows-x86_64.zip"
46+
RUN curl -o "C:/tmp.zip" -L "%CMAKE_URL%" \
47+
&& 7z x C:/tmp.zip -oC:/ -bsp1 \
48+
&& rename cmake-%CMAKE_VERSION%-windows-x86_64 cmake \
49+
&& setx PATH "%PATH%;C:\cmake\bin" \
50+
&& del C:\tmp.zip
51+
52+
# Install Ninja
53+
ARG NINJA_VERSION="1.13.2"
54+
ARG NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v$NINJA_VERSION/ninja-win.zip"
55+
RUN curl -o "C:/tmp.zip" -L "%NINJA_URL%" \
56+
&& 7z x C:/tmp.zip -oC:/ninja -bsp1 \
57+
&& setx PATH "%PATH%;C:\ninja" \
58+
&& del C:\tmp.zip
59+
60+
# Install CCache
61+
ARG CCACHE_VERSION="4.12.2"
62+
ARG CCACHE_URL="https://github.com/ccache/ccache/releases/download/v$CCACHE_VERSION/ccache-$CCACHE_VERSION-windows-x86_64.zip"
63+
RUN curl -o "C:/tmp.zip" -L "%CCACHE_URL%" \
64+
&& 7z x C:/tmp.zip -oC:/ -bsp1 \
65+
&& rename ccache-%CCACHE_VERSION%-windows-x86_64 ccache \
66+
&& setx PATH "%PATH%;C:\ccache" \
67+
&& del C:\tmp.zip
68+
69+
# Install MinGW
70+
ARG MINGW_URL="https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/tools_mingw1310/qt.tools.win64_mingw1310/13.1.0-202407240918mingw1310.7z"
71+
RUN curl -o "C:/tmp.7z" -L "%MINGW_URL%" \
72+
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
73+
&& setx PATH "%PATH%;C:\Qt\Tools\mingw1310_64\bin" \
74+
&& del C:\tmp.7z
75+
76+
# Install Rust
77+
ARG RUST_VERSION="1.92.0"
78+
ENV RUSTUP_HOME="C:\rustup" \
79+
CARGO_HOME="C:\cargo"
80+
RUN curl -o "C:/rustup-init.exe" -L "https://win.rustup.rs/x86_64" \
81+
&& C:/rustup-init.exe -y -v \
82+
--profile minimal \
83+
--default-host x86_64-pc-windows-gnu \
84+
--default-toolchain none \
85+
&& C:\cargo\bin\rustup install %RUST_VERSION% \
86+
&& del C:\rustup-init.exe
87+
88+
# Install ZLib
89+
ARG ZLIB_VERSION="1.3.1"
90+
ARG ZLIB_URL="https://github.com/madler/zlib/releases/download/v$ZLIB_VERSION/zlib131.zip"
91+
RUN curl -o "C:/tmp.zip" -L "%ZLIB_URL%" \
92+
&& 7z x C:/tmp.zip -oC:/ -bsp1 \
93+
&& cd C:/zlib-%ZLIB_VERSION% \
94+
&& cmake . -G "Ninja" -DCMAKE_INSTALL_PREFIX=C:/zlib \
95+
&& ninja \
96+
&& ninja install \
97+
&& setx ZLIB_ROOT "C:/zlib" \
98+
&& setx PATH "%PATH%;C:\zlib\bin" \
99+
&& cd .. \
100+
&& rmdir C:\zlib-%ZLIB_VERSION% /s /q \
101+
&& del C:\tmp.zip
102+
103+
# Install OpenCascade
104+
ARG OCC_VERSION="7_9_1"
105+
ARG OCC_URL="https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V$OCC_VERSION.zip"
106+
RUN curl -o "C:/tmp.zip" -L "%OCC_URL%" \
107+
&& 7z x C:/tmp.zip -oC:/ -bsp1 \
108+
&& cd C:\OCCT-%OCC_VERSION% \
109+
&& cmake . -G "Ninja" \
110+
-DCMAKE_BUILD_TYPE=Release \
111+
-DINSTALL_DIR=C:/OpenCascade \
112+
-DBUILD_LIBRARY_TYPE=Shared \
113+
-DBUILD_DOC_Overview=0 \
114+
-DBUILD_MODULE_ApplicationFramework=0 \
115+
-DBUILD_MODULE_DataExchange=1 \
116+
-DBUILD_MODULE_Draw=0 \
117+
-DBUILD_MODULE_FoundationClasses=0 \
118+
-DBUILD_MODULE_ModelingAlgorithms=0 \
119+
-DBUILD_MODULE_ModelingData=0 \
120+
-DBUILD_MODULE_Visualization=0 \
121+
-DUSE_DRACO=0 \
122+
-DUSE_FREEIMAGE=0 \
123+
-DUSE_FREETYPE=0 \
124+
-DUSE_GLES2=0 \
125+
-DUSE_OPENGL=0 \
126+
-DUSE_OPENVR=0 \
127+
-DUSE_RAPIDJSON=0 \
128+
-DUSE_TBB=0 \
129+
-DUSE_TK=0 \
130+
-DUSE_VTK=0 \
131+
&& cmake --build . \
132+
&& cmake --install . \
133+
&& setx OpenCASCADE_DIR C:/OpenCascade/cmake \
134+
&& setx PATH "%PATH%;C:\OpenCascade\win64\gcc\bin" \
135+
&& cd .. \
136+
&& rmdir C:\OCCT-%OCC_VERSION% /s /q \
137+
&& del C:\tmp.zip
138+
139+
# Install Qt Runtime DLLs
140+
ARG QT_VERSION="6.10.1"
141+
ARG QT_BASEURL="https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt6_6101/qt6_6101"
142+
ARG QT_URL="${QT_BASEURL}/qt.qt6.6101.win64_mingw/6.10.1-0-202511161843"
143+
ARG QT_DLLS_URL="${QT_URL}MinGW-w64-x86_64-13.1.0-release-posix-seh-msvcrt-rt_v11-rev1-runtime.7z"
144+
RUN curl -o "C:/tmp.7z" -L "%QT_DLLS_URL%" \
145+
&& 7z x C:/tmp.7z -oC:/Qt/%QT_VERSION%/mingw_64/bin -bsp1 \
146+
&& del C:\tmp.7z
147+
148+
# Install Qt Tools
149+
ARG QT_TOOLS_URL="${QT_URL}qttools-Windows-Windows_11_24H2-Mingw-Windows-Windows_11_24H2-X86_64.7z"
150+
RUN curl -o "C:/tmp.7z" -L "%QT_TOOLS_URL%" \
151+
&& 7z x C:/tmp.7z -oC:/Qt/%QT_VERSION%/mingw_64 -bsp1 \
152+
&& setx PATH "%PATH%;C:\Qt\%QT_VERSION%\mingw_64\bin" \
153+
&& del C:\tmp.7z
154+
155+
# Install Qt Base
156+
ARG QT_BASE_URL="${QT_URL}qtbase-Windows-Windows_11_24H2-Mingw-Windows-Windows_11_24H2-X86_64.7z"
157+
RUN curl -o "C:/tmp.7z" -L "%QT_BASE_URL%" \
158+
&& 7z x C:/tmp.7z -oC:/Qt/%QT_VERSION%/mingw_64 -bsp1 \
159+
&& del C:\tmp.7z
160+
161+
# Install Qt SVG
162+
ARG QT_SVG_URL="${QT_URL}qtsvg-Windows-Windows_11_24H2-Mingw-Windows-Windows_11_24H2-X86_64.7z"
163+
RUN curl -o "C:/tmp.7z" -L "%QT_SVG_URL%" \
164+
&& 7z x C:/tmp.7z -oC:/Qt/%QT_VERSION%/mingw_64 -bsp1 \
165+
&& del C:\tmp.7z
166+
167+
# Install Qt OpenGL (not sure if needed)
168+
ARG QT_QT5OPENGL_URL="${QT_URL}opengl32sw-64-mesa_11_2_2-signed_sha256.7z"
169+
RUN curl -o "C:/tmp.7z" -L "%QT_QT5OPENGL_URL%" \
170+
&& 7z x C:/tmp.7z -oC:/Qt/%QT_VERSION%/mingw_64/bin -bsp1 \
171+
&& del C:\tmp.7z
172+
173+
# Install Qt Translations
174+
ARG QT_TRANSLATIONS_URL="${QT_URL}qttranslations-Windows-Windows_11_24H2-Mingw-Windows-Windows_11_24H2-X86_64.7z"
175+
RUN curl -o "C:/tmp.7z" -L "%QT_TRANSLATIONS_URL%" \
176+
&& 7z x C:/tmp.7z -oC:/Qt/%QT_VERSION%/mingw_64 -bsp1 \
177+
&& del C:\tmp.7z
178+
179+
# Install Qt Image Formats Plugin
180+
ARG QT_IMAGEFORMATS_URL="${QT_BASEURL}/qt.qt6.6101.addons.qtimageformats.win64_mingw/6.10.1-0-202511161843qtimageformats-Windows-Windows_11_24H2-Mingw-Windows-Windows_11_24H2-X86_64.7z"
181+
RUN curl -o "C:/tmp.7z" -L "%QT_IMAGEFORMATS_URL%" \
182+
&& 7z x C:/tmp.7z -oC:/Qt/%QT_VERSION%/mingw_64 -bsp1 \
183+
&& del C:\tmp.7z
184+
185+
# Install Inno Setup
186+
# Note: 6.4.3 emits some warnings when generating the LibrePCB installer,
187+
# should be reviewed when upgrading
188+
ARG INNOSETUP_URL="https://files.jrsoftware.org/is/6/innosetup-6.2.2.exe"
189+
RUN curl -o "C:/tmp.exe" -L "%INNOSETUP_URL%" \
190+
&& C:/tmp.exe /NOICONS /VERYSILENT /DIR=C:\innosetup \
191+
&& setx PATH "%PATH%;C:\innosetup" \
192+
&& del C:\tmp.exe
193+
194+
# Install AzureSignTool for signing official releases
195+
ARG AZURESIGNTOOL_URL="https://github.com/vcsjones/AzureSignTool/releases/download/v6.0.1/AzureSignTool-x64.exe"
196+
RUN mkdir C:\ast \
197+
&& curl -o "C:/ast/AzureSignTool.exe" -L "%AZURESIGNTOOL_URL%" \
198+
&& setx PATH "%PATH%;C:\ast"
199+
200+
# Pre-install a Python version
201+
RUN uv python install 3.13
202+
203+
# Install OpenSSL (last one in Dockerfile because it should be updated regularly)
204+
ARG OPENSSL_URL="https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/tools_opensslv3_x64/qt.tools.opensslv3.win_x64/3.0.16-1openssl_3.0.16_prebuild_x64.7z"
205+
RUN curl -o "C:/tmp.7z" -L "%OPENSSL_URL%" \
206+
&& 7z x C:/tmp.7z -oC:/Qt/Tools/OpenSSLv3 -bsp1 \
207+
&& setx OPENSSL_ROOT "C:/Qt/Tools/OpenSSLv3/Win_x64" \
208+
&& del C:\tmp.7z
1020 KB
Binary file not shown.
160 KB
Binary file not shown.
1.02 MB
Binary file not shown.

0 commit comments

Comments
 (0)