Update QT to 6.10.0 and increase security:

* Use QT 6.10.0
* Change invalidateFilter (deprecated) to beginFilterChange/endFilterChange
* Remove warning of presenceStatusItem
* Add changelog with this modification for 6.1.0

* Do not use anymore variables to build docker images. Qt versions are now hardcoded in images to allow multiple opensource Qt versions.
This commit is contained in:
Alexandre Jörgensen 2025-10-29 17:10:06 +01:00 committed by Peio Rigaux
parent ca4bdd3736
commit ae8b49ba1a
7 changed files with 80 additions and 65 deletions

View file

@ -26,7 +26,7 @@
.macosx-desktop: .macosx-desktop:
stage: build stage: build
tags: [ "macos-min-xcode12.2-flat" ] tags: [ "macmini-m1-xcode15-flat" ]
rules: rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $DOCKER_UPDATE == null && $SKIP_MACOSX == null - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $DOCKER_UPDATE == null && $SKIP_MACOSX == null
- if: $CI_PIPELINE_SOURCE == "schedule" && $DOCKER_UPDATE == null && $SKIP_MACOSX == null - if: $CI_PIPELINE_SOURCE == "schedule" && $DOCKER_UPDATE == null && $SKIP_MACOSX == null
@ -93,7 +93,7 @@ macosx-ninja-novideo:
# WAIT for QT6 for arm64 # WAIT for QT6 for arm64
macosx-ninja-package: macosx-ninja-package:
stage: package stage: package
tags: [ "macos-min-xcode12.2-flat" ] tags: [ "macmini-m1-xcode15-flat" ]
needs: [] needs: []
rules: rules:
- !reference [.rules-merge-request-manual, rules] - !reference [.rules-merge-request-manual, rules]
@ -117,7 +117,7 @@ macosx-ninja-package:
macosx-codesigning: macosx-codesigning:
stage: signing stage: signing
tags: [ "macos-min-xcode12.2-flat" ] tags: [ "macmini-m1-xcode15-flat" ]
needs: needs:
- macosx-ninja-package - macosx-ninja-package
rules: rules:
@ -142,7 +142,7 @@ macosx-codesigning:
macosx-deploy: macosx-deploy:
stage: deploy stage: deploy
tags: [ "macos-min-xcode12.2-flat" ] tags: [ "macmini-m1-xcode15-flat" ]
needs: needs:
- macosx-codesigning - macosx-codesigning
only: only:
@ -160,7 +160,7 @@ macosx-deploy:
macosx-makefile-plugins-deploy: macosx-makefile-plugins-deploy:
stage: deploy stage: deploy
tags: [ "macos-min-xcode12.2-flat" ] tags: [ "macmini-m1-xcode15-flat" ]
needs: needs:
- macosx-makefile - macosx-makefile
only: only:

View file

@ -31,3 +31,9 @@ Group changes to describe their impact on the project, as follows:
- Default screen (between contacts, call history, conversations & meetings list) will change depending on where you were when the app was paused or killed, and you will return to that last visited screen on the next startup. - Default screen (between contacts, call history, conversations & meetings list) will change depending on where you were when the app was paused or killed, and you will return to that last visited screen on the next startup.
- Minimum supported Qt version is now 6.5.3 - Minimum supported Qt version is now 6.5.3
- Some settings have changed name and/or section in linphonerc file. - Some settings have changed name and/or section in linphonerc file.
## [6.1.0] - XXXX-XX-XX
### Changed
- Minimum supported Qt version is now 6.10.0

View file

@ -63,9 +63,10 @@ int SortFilterProxy::getFilterType() const {
void SortFilterProxy::setFilterType(int filterType) { void SortFilterProxy::setFilterType(int filterType) {
if (getFilterType() != filterType) { if (getFilterType() != filterType) {
beginFilterChange();
mFilterType = filterType; mFilterType = filterType;
endFilterChange();
emit filterTypeChanged(filterType); emit filterTypeChanged(filterType);
invalidate();
} }
} }

View file

@ -26,7 +26,6 @@ IconLabelButton {
icon.source: UtilsCpp.getPresenceIcon(mainItem.presence) icon.source: UtilsCpp.getPresenceIcon(mainItem.presence)
Layout.fillWidth: true Layout.fillWidth: true
shadowEnabled: false shadowEnabled: false
contentImageColor: undefined
padding: 0 padding: 0
onClicked: { onClicked: {

View file

@ -8,48 +8,48 @@ QtObject {
property var currentTheme: Themes.themes.hasOwnProperty(SettingsCpp.themeMainColor) property var currentTheme: Themes.themes.hasOwnProperty(SettingsCpp.themeMainColor)
? Themes.themes[SettingsCpp.themeMainColor] ? Themes.themes[SettingsCpp.themeMainColor]
: Themes.themes["orange"] : Themes.themes["orange"]
property color main1_100: currentTheme.main100 property var main1_100: currentTheme.main100
property color main1_200: currentTheme.main200 property var main1_200: currentTheme.main200
property color main1_300: currentTheme.main300 property var main1_300: currentTheme.main300
property color main1_500_main: currentTheme.main500 property var main1_500_main: currentTheme.main500
property color main1_600: currentTheme.main600 property var main1_600: currentTheme.main600
property color main1_700: currentTheme.main700 property var main1_700: currentTheme.main700
property color main2_0: "#FAFEFF" property var main2_0: "#FAFEFF"
property color main2_100: "#EEF6F8" property var main2_100: "#EEF6F8"
property color main2_200: "#DFECF2" property var main2_200: "#DFECF2"
property color main2_300: "#C0D1D9" property var main2_300: "#C0D1D9"
property color main2_400: "#9AABB5" property var main2_400: "#9AABB5"
property color main2_500_main: "#6C7A87" property var main2_500_main: "#6C7A87"
property color main2_600: "#4E6074" property var main2_600: "#4E6074"
property color main2_700: "#364860" property var main2_700: "#364860"
property color main2_800: "#22334D" property var main2_800: "#22334D"
property color main2_900: "#2D3648" property var main2_900: "#2D3648"
property color grey_0: "#FFFFFF" property var grey_0: "#FFFFFF"
property color grey_100: "#F9F9F9" property var grey_100: "#F9F9F9"
property color grey_200: "#EDEDED" property var grey_200: "#EDEDED"
property color grey_300: "#C9C9C9" property var grey_300: "#C9C9C9"
property color grey_400: "#949494" property var grey_400: "#949494"
property color grey_500: "#4E4E4E" property var grey_500: "#4E4E4E"
property color grey_600: "#2E3030" property var grey_600: "#2E3030"
property color grey_850: "#D9D9D9" property var grey_850: "#D9D9D9"
property color grey_900: "#070707" property var grey_900: "#070707"
property color grey_1000: "#000000" property var grey_1000: "#000000"
property color warning_600: "#DBB820" property var warning_600: "#DBB820"
property color warning_700: "#AF9308" property var warning_700: "#AF9308"
property color danger_500_main: "#DD5F5F" property var danger_500_main: "#DD5F5F"
property color warning_500_main: "#FFDC2E" property var warning_500_main: "#FFDC2E"
property color danger_700: "#9E3548" property var danger_700: "#9E3548"
property color danger_900: "#723333" property var danger_900: "#723333"
property color success_500_main: "#4FAE80" property var success_500_main: "#4FAE80"
property color success_700: "#377d71" property var success_700: "#377d71"
property color success_900: "#1E4C53" property var success_900: "#1E4C53"
property color info_500_main: "#4AA8FF" property var info_500_main: "#4AA8FF"
property color vue_meter_light_green: "#6FF88D" property var vue_meter_light_green: "#6FF88D"
property color vue_meter_dark_green: "#00D916" property var vue_meter_dark_green: "#00D916"
property real defaultHeight: 1080.0 property real defaultHeight: 1080.0
property real defaultWidth: 1920.0 property real defaultWidth: 1920.0
@ -66,10 +66,10 @@ QtObject {
property string flagFont: "Noto Color Emoji" property string flagFont: "Noto Color Emoji"
property string defaultFont: "Noto Sans" property string defaultFont: "Noto Sans"
property color numericPadPressedButtonColor: "#EEF7F8" property var numericPadPressedButtonColor: "#EEF7F8"
property color groupCallButtonColor: "#EEF7F8" property var groupCallButtonColor: "#EEF7F8"
property color placeholders: '#CACACA' // No name in design property var placeholders: '#CACACA' // No name in design
} }

View file

@ -28,7 +28,7 @@ Linphone is dual licensed, and is available either :
As linphone-desktop depends on [Linphone SDK](https://gitlab.linphone.org/BC/public/linphone-sdk), you need to install to Build dependencies common to all target platforms of this project: [The Linphone SDK depdencies](https://gitlab.linphone.org/BC/public/linphone-sdk#common-to-all-target-platforms) As linphone-desktop depends on [Linphone SDK](https://gitlab.linphone.org/BC/public/linphone-sdk), you need to install to Build dependencies common to all target platforms of this project: [The Linphone SDK depdencies](https://gitlab.linphone.org/BC/public/linphone-sdk#common-to-all-target-platforms)
For Desktop : you will need QT6 (_6.5.3 or newer_). `C++17` support is required!. You have two way to install it : For Desktop : you will need QT6 (_6.10.0 or newer_). `C++17` support is required!. You have two way to install it :
- Using the [official QT installer](https://www.qt.io/download-thank-you) - Using the [official QT installer](https://www.qt.io/download-thank-you)
- Using an alternative installer like [aqtinstall](https://github.com/miurahr/aqtinstall) - Using an alternative installer like [aqtinstall](https://github.com/miurahr/aqtinstall)
@ -39,8 +39,8 @@ For Desktop : you will need QT6 (_6.5.3 or newer_). `C++17` support is required!
2. You have to set the environment variable `Qt6_DIR` to point to the path containing the cmake folders of Qt6, and the `PATH` to the Qt6 `bin`. Example: 2. You have to set the environment variable `Qt6_DIR` to point to the path containing the cmake folders of Qt6, and the `PATH` to the Qt6 `bin`. Example:
```bash ```bash
export Qt6_DIR="~/Qt/6.5.3/gcc_64/lib/cmake/Qt6" export Qt6_DIR="~/Qt/6.10.0/gcc_64/lib/cmake/Qt6"
export PATH="~/Qt/6.5.3/gcc_64/bin/:$PATH" export PATH="~/Qt/6.10.0/gcc_64/bin/:$PATH"
``` ```

View file

@ -1,16 +1,9 @@
############################################################################### ###############################################################################
# Dockerfile used to make gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-ubuntu-20-04-lts:20231024_add_multimedia # Dockerfile used to make gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-ubuntu-22-04-lts:20251106_add_commercial_qt_version_5.15.14_5.15.19_6.8.1_6.8.3_6.9.1_6.10.0
############################################################################### ###############################################################################
FROM ubuntu:22.04 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
LABEL Gaelle Braud <gaelle.braud@belledonne-communications.com> LABEL Gaelle Braud <gaelle.braud@belledonne-communications.com>
# Use a Swiss mirror # Use a Swiss mirror
@ -88,15 +81,18 @@ 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. # 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 apt install -y python3-py7zr
RUN sudo pip3 install --upgrade aqtinstall RUN sudo pip3 install --upgrade aqtinstall
RUN sudo python3 -m aqt install-qt linux desktop $QT_VERSION -O /opt/Qt/opensource RUN sudo python3 -m aqt install-qt linux desktop 5.15.2 -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 5.15.2 -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 6.9.1 -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 python3 -m aqt install-qt linux desktop 6.9.1 -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d qtmultimedia qt5compat qtshadertools
RUN sudo python3 -m aqt install-qt linux desktop 6.10.0 -O /opt/Qt/opensource
RUN sudo python3 -m aqt install-qt linux desktop 6.10.0 -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d qtmultimedia qt5compat qtshadertools
RUN sudo chown -R bc:bc /opt/Qt/ RUN sudo chown -R bc:bc /opt/Qt/
RUN qtchooser -install "$QT_VERSION-opensource" /opt/Qt/opensource/$QT_VERSION/gcc_64/bin/qmake RUN qtchooser -install "5.15.2-opensource" /opt/Qt/opensource/5.15.2/gcc_64/bin/qmake
RUN qtchooser -install "$QT6_VERSION-opensource" /opt/Qt/opensource/$QT6_VERSION/gcc_64/bin/qmake RUN qtchooser -install "6.9.1-opensource" /opt/Qt/opensource/6.9.1/gcc_64/bin/qmake
RUN qtchooser -install "6.10.0-opensource" /opt/Qt/opensource/6.10.0/gcc_64/bin/qmake
# Download QT official installer for proprietary versions # Download QT official installer for proprietary versions
# -O : name the destination file after the remote file name, in the current directory # -O : name the destination file after the remote file name, in the current directory
@ -158,10 +154,23 @@ RUN /opt/Qt/proprietary/MaintenanceTool \
--auto-answer OperationDoesNotExistError=Ignore,OverwriteTargetDirectory=Yes,stopProcessesForUpdates=Ignore,installationErrorWithCancel=Ignore,InstallationErrorWithIgnore=Ignore,AssociateCommonFiletypes=Yes,telemetry-question=No \ --auto-answer OperationDoesNotExistError=Ignore,OverwriteTargetDirectory=Yes,stopProcessesForUpdates=Ignore,installationErrorWithCancel=Ignore,InstallationErrorWithIgnore=Ignore,AssociateCommonFiletypes=Yes,telemetry-question=No \
install qt.qt6.691.linux_gcc_64 qt.qt6.691.addons.qtnetworkauth qt.qt6.691.addons.qtquick3d qt.qt6.691.addons.qtmultimedia qt.qt6.691.addons.qt5compat qt.qt6.691.addons.qtshadertools install qt.qt6.691.linux_gcc_64 qt.qt6.691.addons.qtnetworkauth qt.qt6.691.addons.qtquick3d qt.qt6.691.addons.qtmultimedia qt.qt6.691.addons.qt5compat qt.qt6.691.addons.qtshadertools
# # Install Qt 6.10.0 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.6100.linux_gcc_64 qt.qt6.6100.addons.qtnetworkauth qt.qt6.6100.addons.qtquick3d qt.qt6.6100.addons.qtmultimedia qt.qt6.6100.addons.qt5compat qt.qt6.6100.addons.qtshadertools
RUN qtchooser -install 5.15.19-proprietary /opt/Qt/proprietary/5.15.19/gcc_64/bin/qmake RUN qtchooser -install 5.15.19-proprietary /opt/Qt/proprietary/5.15.19/gcc_64/bin/qmake
RUN qtchooser -install 5.15.14-proprietary /opt/Qt/proprietary/5.15.14/gcc_64/bin/qmake RUN qtchooser -install 5.15.14-proprietary /opt/Qt/proprietary/5.15.14/gcc_64/bin/qmake
RUN qtchooser -install 6.8.1-proprietary /opt/Qt/proprietary/6.8.1/gcc_64/bin/qmake RUN qtchooser -install 6.8.1-proprietary /opt/Qt/proprietary/6.8.1/gcc_64/bin/qmake
RUN qtchooser -install 6.8.3-proprietary /opt/Qt/proprietary/6.8.3/gcc_64/bin/qmake RUN qtchooser -install 6.8.3-proprietary /opt/Qt/proprietary/6.8.3/gcc_64/bin/qmake
RUN qtchooser -install 6.9.1-proprietary /opt/Qt/proprietary/6.9.1/gcc_64/bin/qmake RUN qtchooser -install 6.9.1-proprietary /opt/Qt/proprietary/6.9.1/gcc_64/bin/qmake
RUN qtchooser -install 6.10.0-proprietary /opt/Qt/proprietary/6.10.0/gcc_64/bin/qmake
RUN rm -f /home/bc/.local/share/Qt/qtaccount.ini
RUN rm -f /home/bc/.local/share/Qt/qtlicenses.ini
cmd bash cmd bash