[PR #2895] [CLOSED] fix: require Qt 6.9, the actual minimum for the QML UI #3006

Closed
opened 2026-10-14 21:06:50 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/amnezia-vpn/amnezia-client/pull/2895
Author: @Mezo-oz
Created: 7/28/2026
Status: ❌ Closed

Base: dev ← Head: fix/qt-version-floor


📝 Commits (1)

  • 607c131 fix: require Qt 6.9, the actual minimum for the QML UI

📊 Changes

1 file changed (+4 additions, -1 deletions)

View changed files

📝 client/CMakeLists.txt (+4 -1)

📄 Description

client/ui/qml/Controls2 uses the ContextMenu attached type, introduced in Qt 6.9, in three files — TextFieldWithHeaderType.qml:147, TextAreaType.qml:96, TextAreaWithFooterType.qml:82.

find_package(Qt6 REQUIRED COMPONENTS ...) declared no minimum version, so Qt 6.8 and older configure, compile and link without a single warning, and fail only when the QML engine loads the UI:

QQmlApplicationEngine failed to load component
qrc:/ui/qml/main2.qml:213:9: Type CaptchaDialogType unavailable
qrc:/ui/qml/Controls2/CaptchaDialogType.qml:222:13: Type TextFieldWithHeaderType unavailable
qrc:/ui/qml/Controls2/TextFieldWithHeaderType.qml:147:25: Non-existent attached object

The result is a client that builds successfully and cannot open its main window.

Verified both directions on aarch64:

Qt Result
6.8.2 (Debian 13 trixie) QML fails to load, as above
6.10.2 (Ubuntu 26.04) UI loads — Started AmneziaVPN version 5.0.0.2

This is not architecture-specific — it affects any build against distro Qt older than 6.9. It shows up on ARM64 Linux first because Qt publishes no official aarch64 Linux desktop binaries, so distro Qt is the only option there, and several distros still ship 6.8 or older. Related: #1324.

CI is unaffected: the workflows install Qt 6.10.1, comfortably above the floor.

With this change, an unsuitable Qt fails at configure time with both versions named:

Could not find a configuration file for package "Qt6" that is compatible
with requested version "6.9".
  .../Qt6Config.cmake, version: 6.8.2

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/amnezia-vpn/amnezia-client/pull/2895 **Author:** [@Mezo-oz](https://github.com/Mezo-oz) **Created:** 7/28/2026 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `fix/qt-version-floor` --- ### 📝 Commits (1) - [`607c131`](https://github.com/amnezia-vpn/amnezia-client/commit/607c131cd90e81e147e3fe5f30d87ead946b99c8) fix: require Qt 6.9, the actual minimum for the QML UI ### 📊 Changes **1 file changed** (+4 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `client/CMakeLists.txt` (+4 -1) </details> ### 📄 Description `client/ui/qml/Controls2` uses the `ContextMenu` attached type, [introduced in Qt 6.9](https://doc.qt.io/qt-6/qml-qtquick-controls-contextmenu.html), in three files — `TextFieldWithHeaderType.qml:147`, `TextAreaType.qml:96`, `TextAreaWithFooterType.qml:82`. `find_package(Qt6 REQUIRED COMPONENTS ...)` declared no minimum version, so Qt 6.8 and older configure, compile and link without a single warning, and fail only when the QML engine loads the UI: ``` QQmlApplicationEngine failed to load component qrc:/ui/qml/main2.qml:213:9: Type CaptchaDialogType unavailable qrc:/ui/qml/Controls2/CaptchaDialogType.qml:222:13: Type TextFieldWithHeaderType unavailable qrc:/ui/qml/Controls2/TextFieldWithHeaderType.qml:147:25: Non-existent attached object ``` The result is a client that builds successfully and cannot open its main window. **Verified both directions on aarch64:** | Qt | Result | |---|---| | 6.8.2 (Debian 13 trixie) | QML fails to load, as above | | 6.10.2 (Ubuntu 26.04) | UI loads — `Started AmneziaVPN version 5.0.0.2` | This is not architecture-specific — it affects any build against distro Qt older than 6.9. It shows up on ARM64 Linux first because Qt publishes no official aarch64 Linux desktop binaries, so distro Qt is the only option there, and several distros still ship 6.8 or older. Related: #1324. CI is unaffected: the workflows install Qt 6.10.1, comfortably above the floor. With this change, an unsuitable Qt fails at configure time with both versions named: ``` Could not find a configuration file for package "Qt6" that is compatible with requested version "6.9". .../Qt6Config.cmake, version: 6.8.2 ``` --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-14 21:06:50 +00:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
amnezia-vpn/amnezia-client#3006
No description provided.