doc: Add packages that provide Qt Wayland plugin for Linux #22631

pull hebasto wants to merge 1 commits into bitcoin:master from hebasto:210805-wayland changing 1 files +8 −0
  1. hebasto commented at 9:28 am on August 5, 2021: member

    When building on Linux using system packages (without depends) the support of Wayland protocol for modern desktop environments (e.g., GNOME, KDE Plasma) depends on the presence of the installed Qt Wayland plugin which is loaded dynamically at the GUI startup.

    1. On Debian/Ubuntu, the qtwayland5 package is required (also see this patch, and this doc):
    • with qtwayland5 installed:
    0$ QT_QPA_PLATFORM="wayland;xcb" ./src/qt/bitcoin-qt -printtoconsole
    1Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
    22021-08-05T09:51:31Z Bitcoin Core version v22.99.0-c4b42aa4ffa1 (release build)
    32021-08-05T09:51:31Z Qt 5.11.3 (dynamic), plugin=wayland (dynamic)
    42021-08-05T09:51:31Z No static plugins.
    52021-08-05T09:51:31Z Style: fusion / QFusionStyle
    62021-08-05T09:51:31Z System: Debian GNU/Linux 10 (buster), x86_64-little_endian-lp64
    7...
    
    • without qtwayland5:
    0$ QT_QPA_PLATFORM="wayland;xcb" ./src/qt/bitcoin-qt -printtoconsole
    1Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
    2qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
    32021-08-05T09:48:55Z Bitcoin Core version v22.99.0-c4b42aa4ffa1 (release build)
    42021-08-05T09:48:55Z Qt 5.11.3 (dynamic), plugin=xcb (dynamic)
    52021-08-05T09:48:55Z No static plugins.
    62021-08-05T09:48:55Z Style: fusion / QFusionStyle
    72021-08-05T09:48:55Z System: Debian GNU/Linux 10 (buster), x86_64-little_endian-lp64
    82021-08-05T09:48:55Z Screen: XWAYLAND0 1920x1200, pixel ratio=1.0
    9...
    
    1. On Fedora, the qt5-qtwayland package is required:
    • with qt5-qtwayland installed:
    0$ ./src/qt/bitcoin-qt -printtoconsole
    1QSocketNotifier: Can only be used with threads started with QThread
    22021-08-05T08:41:03Z Bitcoin Core version v22.99.0-c4b42aa4ffa1 (release build)
    32021-08-05T08:41:03Z Qt 5.15.2 (dynamic), plugin=wayland (dynamic)
    42021-08-05T08:41:03Z No static plugins.
    52021-08-05T08:41:03Z Style: fusion / QFusionStyle
    62021-08-05T08:41:03Z System: Fedora 34 (Workstation Edition), x86_64-little_endian-lp64
    7...
    
    • without qt5-qtwayland:
    0$ ./src/qt/bitcoin-qt -printtoconsole
    1qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
    22021-08-05T07:50:41Z Bitcoin Core version v22.99.0-c4b42aa4ffa1 (release build)
    32021-08-05T07:50:41Z Qt 5.15.2 (dynamic), plugin=xcb (dynamic)
    42021-08-05T07:50:41Z No static plugins.
    52021-08-05T07:50:41Z Style: fusion / QFusionStyle
    62021-08-05T07:50:41Z System: Fedora 34 (Workstation Edition), x86_64-little_endian-lp64
    72021-08-05T07:50:41Z Screen: XWAYLAND0 1920x1200, pixel ratio=1.0
    8...
    
  2. doc: Add packages that provide Qt Wayland plugin for Linux 5559cf1460
  3. fanquake added the label Docs on Aug 5, 2021
  4. laanwj added the label GUI on Aug 5, 2021
  5. laanwj added the label Build system on Aug 5, 2021
  6. laanwj commented at 12:37 pm on August 18, 2021: member

    Concept ACK. Note though that neither of these packages is a build-time dependency, unlike any of the other packages that are mentioned in build-unix.md. It is necessary to run Qt5 software with a wayland backend, but the build itself is (as far as I know) Qt backend independent.

    (This is the case for builds against the system libraries because distributions ship Qt5 as a shared library, and the package contains a set of shared libraries loaded at run time)

  7. laanwj added the label Linux/Unix on Aug 18, 2021
  8. jarolrod commented at 6:02 pm on August 18, 2021: member

    concept ACK, confirmed this is the correct package and is needed for ubuntu and fedora.

    would need to explore where this is also appropriate to add in the *BSD docs.

    I was able to test on FreeBSD and the qt5-wayland package is required, we could add the following to build-freebsd.md.

    0@@ -76,6 +76,11 @@ Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compi
    1
    2+
    3+Additionally, to support Wayland protocol for modern desktop environments:
    4+```bash
    5+pkg install qt5-wayland
    6+```
    7 ###### libqrencode
    8 
    9 The GUI can encode addresses in a QR Code. To build in QR support for the GUI, install `libqrencode`. Skip if not using the GUI or don't want QR code functionality.
    

    I still need to test on netBSD or openBSD and am not aware of the current wayland support for those OS’s.

  9. hebasto commented at 8:02 am on August 19, 2021: member

    @jarolrod

    would need to explore where this is also appropriate to add in the *BSD docs.

    I’m not quite familiar with *BSD systems, therefore, I cannot include *BSD docs changes in this PR.

    There are some possible options:

    • closing this PR in favor of another one, which covers all systems and is submitted by a developer with an expertise in *BSD
    • keep this PR focused on Linux
  10. hebasto commented at 8:09 am on August 19, 2021: member

    Concept ACK. Note though that neither of these packages is a build-time dependency, unlike any of the other packages that are mentioned in build-unix.md. It is necessary to run Qt5 software with a wayland backend, but the build itself is (as far as I know) Qt backend independent.

    (This is the case for builds against the system libraries because distributions ship Qt5 as a shared library, and the package contains a set of shared libraries loaded at run time)

    Yes, I think we need make docs more clear about the fact that those packages provide a Wayland plugin which is required at run-time.

  11. jbeich commented at 12:43 pm on August 26, 2021: contributor

    pkg install qt5-wayland

    Looks correct for DragonFly (supports wlroots and probably kwin_wayland) and FreeBSD (supports wlroots and kwin_wayland) but not NetBSD (supports swc, different command: pkgin install qt5-qtwayland) and OpenBSD (no Wayland-related packages, different command).

    Disclaimer: I don’t use Bitcoin myself but maintain many Wayland-related packages in FreeBSD and indirectly on DragonFly.

  12. fanquake approved
  13. fanquake commented at 3:25 am on September 2, 2021: member
    ACK 5559cf1460c98eb6998d99784f27de85f95f14d0 - I don’t think there’s any harm to point this out in our Linux build docs. It’s not changing our binaries or dependencies in any way.
  14. fanquake merged this on Sep 2, 2021
  15. fanquake closed this on Sep 2, 2021

  16. hebasto deleted the branch on Sep 2, 2021
  17. sidhujag referenced this in commit 56d64d6fbe on Sep 2, 2021
  18. DrahtBot locked this on Sep 2, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-03 15:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me