mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-06 19:23:41 +02:00
Merge bitcoin/bitcoin#30997: build: Switch to Qt 6
f00345727bdoc: Update `dependencies.md` for Qt 6 (Hennadii Stepanov)80b917991ebuild, msvc: Update `vcpkg.json` for Qt 6 (Hennadii Stepanov)30dd1f1644ci: Update for Qt 6 (Hennadii Stepanov)629d292f4dtest: Update sanitizer suppressions for Qt 6 (Hennadii Stepanov)551e13abf8guix: Adjust for Qt 6 (Hennadii Stepanov)c3e9bd086cqt: Fix compiling for Windows (Hennadii Stepanov)ab399c4db2depends: Add `native_qt` package (Hennadii Stepanov)248613eb3edepends: Factor out Qt modules' details (Hennadii Stepanov)0268f52a4cdepends: Introduce customizable `$(package)_patches_path` variables (Hennadii Stepanov)5e794e6202depends: Bump `qt` package up to 6.7.3 (Hennadii Stepanov)6d4214925fcmake: Require Qt 6 to build GUI (Hennadii Stepanov) Pull request description: The currently used Qt 5.15 is approaching [EOL](https://www.qt.io/blog/qt-5.15-extended-support-for-subscription-license-holders) and will reach it before the Bitcoin Core v30 release. The recent migration of the build system to CMake makes it possible to switch to Qt 6. This PR updates the OS runtime compatibility requirements for the Bitcoin Core GUI as follows: ### 1. Linux Starting with Qt 6.5.0, the `libxcb-cursor0` package is required to be installed at runtime. ### 2. Windows Cross-compiling does not support LTO. We have to re-add it in a follow-up. A new style plugin causes minor visual glitches, such as  which will be fixed in follow-ups. ### 3. macOS `bitcoin-qt` now uses the [Metal](https://developer.apple.com/metal/) backend. --- **IMPORTANT.** Don't forget to install [Ninja](https://ninja-build.org/). --- For historical context, please refer to: - https://github.com/bitcoin/bitcoin/issues/20627 - https://github.com/bitcoin/bitcoin/pull/24798 --- UPD 2024-10-09. Qt 6.8 has been [released](https://www.qt.io/blog/qt-6.8-released), but it has some [drawbacks](https://github.com/bitcoin/bitcoin/pull/30997#issuecomment-2402990346) for us. As a result, this PR will stick to Qt 6.7. UPD 2025-03-18: [Standard support for Qt 5.15 will end after 26th of May 2025](https://www.qt.io/blog/extended-security-maintenance-for-qt-5.15-begins-may-2025) ACKs for top commit: laanwj: re-ACKf00345727bhodlinator: re-ACKf00345727bTree-SHA512: 367f722e6c3ea4700b5395871c40b6df8c8062fdc822107090449ea4ae4ad2db75cc53a982a678f4c48ce8f9b2d43ed10e6d23b06165ab78713f161db712d895
This commit is contained in:
@@ -112,6 +112,7 @@ ELF_ALLOWED_LIBRARIES = {
|
||||
'libfontconfig.so.1', # font support
|
||||
'libfreetype.so.6', # font parsing
|
||||
'libdl.so.2', # programming interface to dynamic linker
|
||||
'libxcb-cursor.so.0',
|
||||
'libxcb-icccm.so.4',
|
||||
'libxcb-image.so.0',
|
||||
'libxcb-shm.so.0',
|
||||
@@ -146,8 +147,9 @@ MACHO_ALLOWED_LIBRARIES = {
|
||||
'IOSurface', # cross process image/drawing buffers
|
||||
'libobjc.A.dylib', # Objective-C runtime library
|
||||
'Metal', # 3D graphics
|
||||
'Security', # access control and authentication
|
||||
'QuartzCore', # animation
|
||||
'Security', # access control and authentication
|
||||
'UniformTypeIdentifiers', # collection of types that map to MIME and file types
|
||||
}
|
||||
|
||||
PE_ALLOWED_LIBRARIES = {
|
||||
@@ -158,7 +160,17 @@ PE_ALLOWED_LIBRARIES = {
|
||||
'SHELL32.dll', # shell API
|
||||
'WS2_32.dll', # sockets
|
||||
# bitcoin-qt only
|
||||
'api-ms-win-core-synch-l1-2-0.dll', # Synchronization Primitives API
|
||||
'api-ms-win-core-winrt-l1-1-0.dll', # Windows Runtime API
|
||||
'api-ms-win-core-winrt-string-l1-1-0.dll', # WinRT String API
|
||||
'AUTHZ.dll', # Windows Authorization Framework
|
||||
'comdlg32.dll', # Common Dialog Box Library
|
||||
'd3d11.dll', # Direct3D 11 API
|
||||
'd3d12.dll', # Direct3D 12 API
|
||||
'd3d9.dll', # Direct3D 9 API
|
||||
'dwmapi.dll', # desktop window manager
|
||||
'DWrite.dll', # DirectX Typography Services
|
||||
'dxgi.dll', # DirectX Graphics Infrastructure
|
||||
'GDI32.dll', # graphics device interface
|
||||
'IMM32.dll', # input method editor
|
||||
'NETAPI32.dll', # network management
|
||||
@@ -171,6 +183,8 @@ PE_ALLOWED_LIBRARIES = {
|
||||
'VERSION.dll', # version checking
|
||||
'WINMM.dll', # WinMM audio API
|
||||
'WTSAPI32.dll', # Remote Desktop
|
||||
'SETUPAPI.dll', # Windows Setup API
|
||||
'SHCORE.dll', # Stream Handler Core
|
||||
}
|
||||
|
||||
def check_version(max_versions, version, arch) -> bool:
|
||||
|
||||
Reference in New Issue
Block a user