From a74ef6263420eea82be313a8e31653843e414ae9 Mon Sep 17 00:00:00 2001 From: Peio Rigaux Date: Mon, 22 Sep 2025 14:46:53 +0200 Subject: [PATCH] Add QT proprietary versions for Linux to Dockerfile and docker image. Add QT proprietary 5.15.14, 5.15.19, 6.8.1, 6.8.3 in Dockerfile. Modified CI and dockerfile to use qtchooser, to keep the same behaviour without having to rely on a specific entrypoint. Split opensource versions from proprietary versions by using a different directory. --- .gitlab-ci.yml | 2 +- docker-files/bc-dev-ubuntu-22-04-lts | 73 +++++++++++++++++++++++++--- 2 files changed, 66 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 22db09fc..938afb25 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,7 +27,7 @@ variables: DEBIAN_10_IMAGE_VERSION: 20210217_python3 UBUNTU_ROLLING_IMAGE_VERSION: 20211012_add_qtwebview UBUNTU_2004_IMAGE_VERSION: 20250226_qt6-8-0 - UBUNTU_2204_IMAGE_VERSION: 20250807_add_xinerama + UBUNTU_2204_IMAGE_VERSION: 20250924_add_commercial_qt_versions_5.15.14_5.15.19_6.8.1_6.8.3 workflow: diff --git a/docker-files/bc-dev-ubuntu-22-04-lts b/docker-files/bc-dev-ubuntu-22-04-lts index 257ca7ee..88d9bf65 100644 --- a/docker-files/bc-dev-ubuntu-22-04-lts +++ b/docker-files/bc-dev-ubuntu-22-04-lts @@ -7,6 +7,7 @@ FROM ubuntu:22.04 # Qt on Ubuntu 22.04 is too old. Use a downloader. ARG QT_VERSION=5.15.2 ARG QT6_VERSION=6.9.1 + #Do not use it. It seems that it cannot be used from python command. #ARG QT_MODULES=qtnetworkauth qtquick3d qtmultimedia qt5compat qtshadertools @@ -42,7 +43,7 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone ARG DEBIAN_FRONTEND=noninteractive ENV SHELL=/bin/bash -#ENV PS1='\[\e[33m\]\u@bc-dev-ubuntu-20-04>\[\e[0m\] ' +#ENV PS1='\[\e[33m\]\u@bc-dev-ubuntu-22-04>\[\e[0m\] ' # Install common general tools RUN apt-get update && \ @@ -87,14 +88,70 @@ RUN sudo apt install --upgrade -y python3-setuptools # installation is split because there is a way where some modules are not downloaded in the first attempt. RUN sudo apt install -y python3-py7zr RUN sudo pip3 install --upgrade aqtinstall -RUN sudo python3 -m aqt install-qt linux desktop $QT_VERSION -O /opt/Qt -RUN sudo python3 -m aqt install-qt linux desktop $QT_VERSION -O /opt/Qt --noarchives -m qtnetworkauth qtquick3d -RUN sudo python3 -m aqt install-qt linux desktop $QT6_VERSION -O /opt/Qt -RUN sudo python3 -m aqt install-qt linux desktop $QT6_VERSION -O /opt/Qt --noarchives -m qtnetworkauth qtquick3d qtmultimedia qt5compat qtshadertools +RUN sudo python3 -m aqt install-qt linux desktop $QT_VERSION -O /opt/Qt/opensource +RUN sudo python3 -m aqt install-qt linux desktop $QT_VERSION -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d +RUN sudo python3 -m aqt install-qt linux desktop $QT6_VERSION -O /opt/Qt/opensource +RUN sudo python3 -m aqt install-qt linux desktop $QT6_VERSION -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d qtmultimedia qt5compat qtshadertools RUN sudo chown -R bc:bc /opt/Qt/ -RUN qtchooser -install $QT_VERSION /opt/Qt/$QT_VERSION/gcc_64/bin/qmake -RUN qtchooser -install $QT6_VERSION /opt/Qt/$QT6_VERSION/gcc_64/bin/qmake +RUN qtchooser -install $QT_VERSION /opt/Qt/opensource/$QT_VERSION/gcc_64/bin/qmake +RUN qtchooser -install $QT6_VERSION /opt/Qt/opensource/$QT6_VERSION/gcc_64/bin/qmake -CMD bash +# Download QT official installer for proprietary versions +# -O : name the destination file after the remote file name, in the current directory +# -L : follow http redirections +RUN curl -O -L https://download.qt.io/official_releases/online_installers/qt-online-installer-linux-x64-online.run +RUN chmod u+x qt-online-installer-linux-x64-online.run + +RUN mkdir -p /home/bc/.local/share/Qt/ + +# Ask infra@belledonne-communications.com for these files +COPY qtaccount.ini /home/bc/.local/share/Qt/ +COPY qtlicenses.ini /home/bc/.local/share/Qt/ + +RUN sudo chmod 600 /home/bc/.local/share/Qt/* +RUN sudo chown bc /home/bc/.local/share/Qt/* + +# Install Qt 5.15.19 proprietary +RUN ./qt-online-installer-linux-x64-online.run \ + --accept-licenses \ + --accept-obligations \ + --confirm-command \ + --root "/opt/Qt/proprietary" \ + --auto-answer OperationDoesNotExistError=Ignore,OverwriteTargetDirectory=Yes,stopProcessesForUpdates=Ignore,installationErrorWithCancel=Ignore,InstallationErrorWithIgnore=Ignore,AssociateCommonFiletypes=Yes,telemetry-question=No \ + install qt.qt5.51519.gcc_64 qt.qt5.51519.qtnetworkauth qt.qt5.51519.qtquick3d + +# Install Qt 5.15.14 proprietary +RUN /opt/Qt/proprietary/MaintenanceTool \ + --accept-licenses \ + --accept-obligations \ + --confirm-command \ + --root "/opt/Qt/proprietary" \ + --auto-answer OperationDoesNotExistError=Ignore,OverwriteTargetDirectory=Yes,stopProcessesForUpdates=Ignore,installationErrorWithCancel=Ignore,InstallationErrorWithIgnore=Ignore,AssociateCommonFiletypes=Yes,telemetry-question=No \ + install qt.qt5.51514.gcc_64 qt.qt5.51514.qtnetworkauth qt.qt5.51514.qtquick3d + +# Install Qt 6.8.1 proprietary +RUN /opt/Qt/proprietary/MaintenanceTool \ + --accept-licenses \ + --accept-obligations \ + --confirm-command \ + --root "/opt/Qt/proprietary" \ + --auto-answer OperationDoesNotExistError=Ignore,OverwriteTargetDirectory=Yes,stopProcessesForUpdates=Ignore,installationErrorWithCancel=Ignore,InstallationErrorWithIgnore=Ignore,AssociateCommonFiletypes=Yes,telemetry-question=No \ + install qt.qt6.681.linux_gcc_64 qt.qt6.681.addons.qtnetworkauth qt.qt6.681.addons.qtquick3d qt.qt6.681.addons.qtmultimedia qt.qt6.681.addons.qt5compat qt.qt6.681.addons.qtshadertools + +# # Install Qt 6.8.3 proprietary +RUN /opt/Qt/proprietary/MaintenanceTool \ + --accept-licenses \ + --accept-obligations \ + --confirm-command \ + --root "/opt/Qt/proprietary" \ + --auto-answer OperationDoesNotExistError=Ignore,OverwriteTargetDirectory=Yes,stopProcessesForUpdates=Ignore,installationErrorWithCancel=Ignore,InstallationErrorWithIgnore=Ignore,AssociateCommonFiletypes=Yes,telemetry-question=No \ + install qt.qt6.683.linux_gcc_64 qt.qt6.683.addons.qtnetworkauth qt.qt6.683.addons.qtquick3d qt.qt6.683.addons.qtmultimedia qt.qt6.683.addons.qt5compat qt.qt6.683.addons.qtshadertools + +RUN qtchooser -install 5.15.19 /opt/Qt/proprietary/5.15.19/gcc_64/bin/qmake +RUN qtchooser -install 5.15.14 /opt/Qt/proprietary/5.15.14/gcc_64/bin/qmake +RUN qtchooser -install 6.8.1 /opt/Qt/proprietary/6.8.1/gcc_64/bin/qmake +RUN qtchooser -install 6.8.3 /opt/Qt/proprietary/6.8.3/gcc_64/bin/qmake + +cmd bash \ No newline at end of file