This PR adds the QtWayland module into the qt
package in depends.
This change allows to build release binaries for Linux systems that can run natively—as a Wayland client—on modern desktops with Wayland compositors.
Closes #19950.
The diff for Qt “Configure summary” in depends:
0@@ -85,11 +85,11 @@
1 MarkdownReader ....................... yes
2 Using system libmd4c ............... no
3 MarkdownWriter ....................... no
4- EGL .................................... no
5+ EGL .................................... yes
6 OpenVG ................................. no
7 OpenGL:
8 Desktop OpenGL ....................... no
9- OpenGL ES 2.0 ........................ no
10+ OpenGL ES 2.0 ........................ yes
11 OpenGL ES 3.0 ........................ no
12 OpenGL ES 3.1 ........................ no
13 OpenGL ES 3.2 ........................ no
14@@ -157,6 +157,24 @@
15 WinRT Runner Tool ...................... no
16 Qt Tools:
17 QDoc ................................... no
18+Qt Wayland Drivers:
19+ EGL .................................... yes
20+ Raspberry Pi ........................... no
21+ XComposite EGL ......................... no
22+ XComposite GLX ......................... no
23+ DRM EGL ................................ no
24+ libhybris EGL .......................... no
25+ Linux dma-buf server buffer integration . no
26+ Vulkan-based server buffer integration . no
27+ Shm emulation server buffer integration . no
28+Qt Wayland Client Shell Integrations:
29+ xdg-shell .............................. yes
30+ xdg-shell unstable v5 (deprecated) ..... no
31+ xdg-shell unstable v6 .................. no
32+ ivi-shell .............................. no
33+ wl-shell (deprecated) .................. no
34+Qt Wayland Client ........................ yes
35+Qt Wayland Compositor .................... no
36
37 Note: Also available for Linux: linux-clang linux-icc
38
Here is an excerpt from the log on Ubuntu 22.04 + GNOME:
0$ QT_QPA_PLATFORM=wayland ./src/qt/bitcoin-qt -printtoconsole
1Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
22022-04-04T11:11:26Z Bitcoin Core version v23.99.0-8ffd5cae0b8a (release build)
32022-04-04T11:11:26Z Qt 5.15.3 (static), plugin=wayland (static)
42022-04-04T11:11:26Z Static plugins:
52022-04-04T11:11:26Z QXcbIntegrationPlugin, version 331520
62022-04-04T11:11:26Z QWaylandIntegrationPlugin, version 331520
72022-04-04T11:11:26Z QWaylandEglClientBufferPlugin, version 331520
82022-04-04T11:11:26Z QWaylandBradientDecorationPlugin, version 331520
92022-04-04T11:11:26Z QWaylandXdgShellIntegrationPlugin, version 331520
102022-04-04T11:11:26Z Style: fusion / QFusionStyle
112022-04-04T11:11:26Z System: Ubuntu Jammy Jellyfish (development branch), x86_64-little_endian-lp64
122022-04-04T11:11:26Z Screen: eDP-1 1920x1080, pixel ratio=1.0
13...
Please note that for the simplicity sake Wayland 1.19.0 has been used as in Wayland 1.20.0:
- The autotools build system has been dropped. Meson has replaced it.
Notes about new runtime dependencies
Wayland compositor infrastructure:
- libwayland-client.so.0 – client library, e.g., libwayland-client0
- libwayland-cursor.so.0 – cursor library, e.g., libwayland-cursor0
- libwayland-egl.so.1 – EGL library, e.g., libwayland-egl1
Vendor neutral GL dispatch libraries:
https://ubuntu.com/security/cves and https://security-tracker.debian.org/tracker/ have no records about the packages mentioned above.
More details: