Skip to content

[feat] Update Qt dependency to 6.7.3 #217

@cdonnachie

Description

@cdonnachie

Feature Request

Describe the Feature Request
Update Avian’s Qt dependency from Qt 5.12.11 to Qt 6.7.3 in the depends/ build system and Qt wallet. Qt 5.12 is EOL and increasingly difficult to build on modern toolchains, while Qt 6.7.3 provides long-term API stability, C++20 support, and better HiDPI/platform integration. This request is to officially adopt Qt 6.7.3 for the Avian GUI.

Describe Preferred Solution

  • Bump Qt in depends/packages/qt.mk (version, URLs, hashes) to 6.7.3.
  • Continue producing a static, reproducible, minimal Qt build:
    • Enable only required modules (Core, Gui, Widgets, Network, etc.).
    • Disable non-essential tools/modules.
  • Ensure Avian builds/runs with Qt 6.7.3 on Linux, Windows, macOS.
  • Port or replace existing Qt 5 patches (e.g., qtbase_skip_tools.patch, qttools_skip_dependencies.patch).
  • Update src/qt/ sources for Qt 6 API changes.
  • Keep user-visible behavior equal or better than the Qt 5 build.

Describe Alternatives

  • Stay on Qt 5.12.11 (requires growing maintenance patches, no upstream support).
  • Move to another Qt 5.x / early Qt 6 version (still near EOL).
  • Rely on prebuilt Qt binaries outside depends (hurts reproducibility/determinism).

Related Code

  • depends/packages/qt.mk and the referenced patch files.
  • Other depends libraries (freetype.mk, fontconfig.mk, libxcb*, etc.).
  • Wallet UI sources under src/qt/.

Additional Context

  • Qt 5.12 is unsupported upstream and fails more often with new GCC/Clang, glibc, SDKs.
  • Qt 6.7.3 offers better compiler integration, HiDPI behavior, and long-term support.
  • Experimental work shows Qt 6.7.3 builds mostly succeed; optional tools like qdbusviewer trigger extra dependencies (Expat, freetype BDF) and can be disabled for the wallet build.
  • Goal: keep depends deterministic and self-contained while modernizing the GUI stack.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestuiUI feature or change

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions