@@ -43,10 +43,6 @@ RUN apt-get update -q && apt-get -y -q install --no-install-recommends \
43
43
make \
44
44
ninja-build \
45
45
p7zip-full \
46
- python3 \
47
- python3-pip \
48
- python3-setuptools \
49
- python3-wheel \
50
46
software-properties-common \
51
47
wget \
52
48
xvfb \
@@ -58,16 +54,9 @@ RUN apt-get update -q && apt-get -y -q install --no-install-recommends \
58
54
RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100
59
55
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100
60
56
61
- # Set Python3 as default Python version
62
- RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 100
63
- RUN update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 100
64
-
65
- # Allow installing pip packages system-wide since there's no risk in a container
66
- ENV PIP_BREAK_SYSTEM_PACKAGES=1
67
-
68
57
# Install Rust
69
58
# Make .cargo/ writable for everyone to allow running the container as non-root.
70
- ARG RUST_VERSION="1.85.1 "
59
+ ARG RUST_VERSION="1.87.0 "
71
60
ENV RUSTUP_HOME="/.rustup" \
72
61
CARGO_HOME="/.cargo" \
73
62
PATH="/.cargo/bin:$PATH"
@@ -77,7 +66,7 @@ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
77
66
&& chmod 777 $CARGO_HOME
78
67
79
68
# Install CMake
80
- ARG CMAKE_VERSION="3.31.1 "
69
+ ARG CMAKE_VERSION="4.0.3 "
81
70
ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION.tar.gz"
82
71
RUN wget -c "${CMAKE_URL}" -O /tmp.tar.gz \
83
72
&& tar -xzf /tmp.tar.gz -C /opt \
@@ -88,17 +77,8 @@ RUN wget -c "${CMAKE_URL}" -O /tmp.tar.gz \
88
77
&& make install \
89
78
&& cd / && rm -rf "/opt/cmake-$CMAKE_VERSION"
90
79
91
- # Install sccache
92
- ARG SCCACHE_VERSION="0.8.2"
93
- ARG SCCACHE_URL="https://github.com/mozilla/sccache/releases/download/v$SCCACHE_VERSION/sccache-v$SCCACHE_VERSION-x86_64-unknown-linux-musl.tar.gz"
94
- RUN wget -c "$SCCACHE_URL" -O /tmp.tar.gz \
95
- && tar -zxf /tmp.tar.gz \
96
- && cp "./sccache-v$SCCACHE_VERSION-x86_64-unknown-linux-musl/sccache" /usr/local/bin/ \
97
- && rm -rf "./sccache-v$SCCACHE_VERSION-x86_64-unknown-linux-musl" \
98
- && rm /tmp.tar.gz
99
-
100
80
# Install OpenCascade
101
- ARG OCC_VERSION="7_7_2 "
81
+ ARG OCC_VERSION="7_9_1 "
102
82
ARG OCC_URL="https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V$OCC_VERSION.tar.gz"
103
83
RUN wget -c "${OCC_URL}" -O /tmp.tar.gz \
104
84
&& tar -xzf /tmp.tar.gz -C /opt \
@@ -162,21 +142,11 @@ RUN wget -c "${QT_URL}qtsvg-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z" -O /tmp
162
142
&& 7za x /tmp.7z -o/opt/qt \
163
143
&& rm /tmp.7z
164
144
165
- # Install Qt Declarative
166
- RUN wget -c "${QT_URL}qtdeclarative-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z" -O /tmp.7z \
167
- && 7za x /tmp.7z -o/opt/qt \
168
- && rm /tmp.7z
169
-
170
145
# Install Qt Translations
171
146
RUN wget -c "${QT_URL}qttranslations-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z" -O /tmp.7z \
172
147
&& 7za x /tmp.7z -o/opt/qt \
173
148
&& rm /tmp.7z
174
149
175
- # Install Qt5 Compat
176
- RUN wget -c "${QT_BASEURL}/qt.qt6.662.qt5compat.gcc_64/6.6.2-0-202402121133qt5compat-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z" -O /tmp.7z \
177
- && 7za x /tmp.7z -o/opt/qt \
178
- && rm /tmp.7z
179
-
180
150
# Install Qt Image Formats Plugin
181
151
RUN wget -c "${QT_BASEURL}/qt.qt6.662.addons.qtimageformats.gcc_64/6.6.2-0-202402121133qtimageformats-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z" -O /tmp.7z \
182
152
&& 7za x /tmp.7z -o/opt/qt \
@@ -187,29 +157,6 @@ RUN wget -c "${QT_URL}icu-linux-Rhel7.2-x64.7z" -O /tmp.7z \
187
157
&& 7za x /tmp.7z -o/opt/qt \
188
158
&& rm /tmp.7z
189
159
190
- # Install linuxdeployqt
191
- ARG LINUXDEPLOYQT_URL="https://github.com/probonopd/linuxdeployqt/releases/download/10/linuxdeployqt-continuous-x86_64.AppImage"
192
- RUN wget -c "$LINUXDEPLOYQT_URL" -O /linuxdeployqt.AppImage \
193
- && chmod a+x /linuxdeployqt.AppImage \
194
- && /linuxdeployqt.AppImage --appimage-extract \
195
- && chmod -R 755 /squashfs-root \
196
- && mv /squashfs-root /opt/linuxdeployqt \
197
- && ln -s /opt/linuxdeployqt/AppRun /usr/local/bin/linuxdeployqt \
198
- && rm /linuxdeployqt.AppImage
199
-
200
- # Install beta appimagetool which should not depend on any system libraries
201
- # anymore, and should therefore run on Ubuntu 22.04 which doesn't provide
202
- # libfuse2 anymore (see https://github.com/LibrePCB/LibrePCB/issues/980).
203
- # However, since there are no official releases yet, the binary is downloaded
204
- # from the nightly build and added to the repository. Download URL:
205
- # https://github.com/probonopd/go-appimage/releases/download/continuous/appimagetool-765-x86_64.AppImage
206
- COPY appimagetool-x86_64.AppImage /appimagetool-x86_64.AppImage
207
- RUN /appimagetool-x86_64.AppImage --appimage-extract \
208
- && chmod -R 755 /squashfs-root \
209
- && mv /squashfs-root /opt/appimagetool \
210
- && ln -s /opt/appimagetool/AppRun /usr/local/bin/appimagetool \
211
- && rm /appimagetool-x86_64.AppImage
212
-
213
160
# Install linuxdeploy
214
161
ARG LINUXDEPLOY_URL="https://github.com/linuxdeploy/linuxdeploy/releases/download/1-alpha-20250213-2/linuxdeploy-x86_64.AppImage"
215
162
ARG LINUXDEPLOY_PLUGIN_APPIMAGE_URL="https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/1-alpha-20250213-1/linuxdeploy-plugin-appimage-x86_64.AppImage"
@@ -223,9 +170,25 @@ RUN wget -c "$LINUXDEPLOY_URL" -O /usr/local/bin/linuxdeploy-x86_64.AppImage \
223
170
&& chmod a+x /usr/local/bin/linuxdeploy-plugin-qt-x86_64.AppImage \
224
171
&& linuxdeploy-x86_64.AppImage --list-plugins
225
172
173
+ # Install UV
174
+ # Set its python directory to a known, user-writable path to allow accessing the
175
+ # python versions installed during docker build from within CI runs which are
176
+ # run as non-root.
177
+ ARG UV_VERSION="0.7.13"
178
+ ARG UV_URL="https://github.com/astral-sh/uv/releases/download/$UV_VERSION/uv-x86_64-unknown-linux-gnu.tar.gz"
179
+ ENV UV_PYTHON_INSTALL_DIR="/.uv/python"
180
+ RUN wget -c "${UV_URL}" -O /tmp.tar.gz \
181
+ && tar -xzf /tmp.tar.gz --strip-components=1 -C /usr/local/bin/ \
182
+ && rm /tmp.tar.gz \
183
+ && mkdir -p $UV_PYTHON_INSTALL_DIR && chmod 777 $UV_PYTHON_INSTALL_DIR
184
+
185
+ # Pre-install a Python version
186
+ ARG PYTHON_VERSION="3.13"
187
+ RUN uv python install $PYTHON_VERSION
188
+
226
189
# Install latest OpenSSL to avoid possible issues if servers some day stop
227
190
# working with an old OpenSSL library (as already happened in the past).
228
- ARG OPENSSL_VERSION="3.4.1 "
191
+ ARG OPENSSL_VERSION="3.5.0 "
229
192
ENV LD_LIBRARY_PATH="/opt/openssl/lib:$LD_LIBRARY_PATH"
230
193
RUN apt-get remove -y libssl-dev \
231
194
&& wget -c "https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz" -O /tmp.tar.gz \
0 commit comments