[Linux] Add wayland support #19950

issue A6GibKm openend this issue on September 13, 2020
  1. A6GibKm commented at 10:18 am on September 13, 2020: none

    Is your feature request related to a problem? Please describe.

    • Wayland provides extra security as apps can’t have access to windows from other apps
    • X apps looks blurry using fractional scaling on GNOME.
    • X is mostly unmaintained, in favour of Wayland

    Describe the solution you’d like Add Wayland support to precompiled binaries.

    Additional context As far as I understand wayland is supported on the KDE 5.15 runtime. Currently running with QT_QPA_PLATFORM="wayland" results in

    0This application failed to start because it could not find or load the Qt platform plugin "wayland"
    1in "".
    2
    3Available platform plugins are: xcb.
    4
    5Reinstalling the application may fix this problem.
    
  2. A6GibKm added the label Feature on Sep 13, 2020
  3. hebasto commented at 3:56 pm on September 13, 2020: member

    Just for reference:

    Also #15677.

  4. fanquake added the label GUI on Sep 14, 2020
  5. laanwj commented at 9:57 am on February 6, 2021: member

    This is strange. I tested bitcoin-qt on wayland in 2018 or so and it worked okay (not 100% great at that point, but it showed the window and was usable).

    This was for a self-compiled binary though I don’t know about the distribution binaries.

    It could have regressed due to a change at our side, though in principle you get wayland support for free by using Qt. Also for the distribution binaries we might have to enable it in the build process.

  6. laanwj added the label Linux/Unix on Feb 6, 2021
  7. maflcko commented at 10:25 am on February 6, 2021: member

    the compositor API was first released as stable with Qt 5.8, details: https://wiki.qt.io/QtWayland

    gitian uses 5.9LTS, so what is left to do here?

  8. laanwj commented at 8:54 pm on February 9, 2021: member

    gitian uses 5.9LTS, so what is left to do here?

    I suppose to actually link the wayland backend. We currently only link against xcb, afaik.

  9. hebasto commented at 0:45 am on June 25, 2021: member

    @laanwj @MarcoFalke

    gitian uses 5.9LTS, so what is left to do here?

    I suppose to actually link the wayland backend. We currently only link against xcb, afaik.

    1. add an ability to integrate additional Qt modules (see #20641) in depends
    2. add QtWayland module
  10. fanquake referenced this in commit 4315dc02a1 on Jul 18, 2021
  11. sidhujag referenced this in commit 4a59fda74b on Jul 23, 2021
  12. hebasto commented at 9:58 am on August 5, 2021: member
    See #22631 for Wayland support when building against system packages.
  13. hebasto commented at 9:47 am on April 17, 2022: member
    Wayland support for static builds suggested in #22708.
  14. hebasto commented at 2:16 pm on May 29, 2022: member

    Probably, this issue should be closed for the following reasons:

    • lack of overwhelming demand for Wayland support
    • introducing of “a second Linux graphics backend to support, along with more packages in depends, new runtime dependencies, and the scope for adding even more drivers/features in the future”
  15. adamjonas commented at 8:11 pm on March 9, 2023: member
    Closing for reasons stated by hebasto above.
  16. adamjonas closed this on Mar 9, 2023

  17. berenddeboer commented at 7:00 am on May 5, 2023: none
    I’ve switched to the Sway window manager which gets a lot of traction, but unfortunately got here as bitcoin doesn’t run.
  18. hebasto commented at 9:33 am on May 5, 2023: member

    @berenddeboer

    I’ve switched to the Sway window manager which gets a lot of traction, but unfortunately got here as bitcoin doesn’t run.

    You can compile bitcoin-qt by yourself using linking against system-wide (modern enough) Qt5 packages. The resulted binary will support Wayland.

    To run it, the additional packages could be required. For details, see https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md.

  19. sipa commented at 1:04 pm on May 5, 2023: member
    Is it the case that our bitcion-qt release binaries don’t work on Wayland at all? If so, that should be fixed, I think. Many distributions are increasingly migrating away from X.
  20. hebasto commented at 1:09 pm on May 5, 2023: member

    Is it the case that our bitcion-qt release binaries don’t work on Wayland at all? If so, that should be fixed, I think. Many distributions are increasingly migrating away from X.

    Unfortunately, #22708 did not find enough support. The main concerns were:

    this change introduces a second Linux graphics backend to support, along with more packages in depends, new runtime dependencies, and the scope for adding even more drivers/features in the future.

  21. maflcko commented at 1:24 pm on May 5, 2023: member
    I don’t really buy the concern. Even if this is adding additional depends in a gui/qt-only context, what is the downside? If this allows people to get a feature they want and there are people who maintain it? If someone doesn’t use gui/qt, they should be unaffected by this.
  22. hebasto commented at 1:27 pm on May 5, 2023: member
    OK. Reopened this issue first :)
  23. hebasto reopened this on May 5, 2023

  24. berenddeboer commented at 8:44 pm on May 5, 2023: none

    Is it the case that our bitcion-qt release binaries don’t work on Wayland at all?

    All I can say that on Ubuntu 23.04 + Sway (which uses Wayland), bitcoin-qt does not work, and crashes with:

    0 > bitcoin-core.qt
    1Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
    2Fontconfig warning: FcPattern object weight does not accept value [0 205)
    3fish: Job 1, 'bitcoin-core.qt' terminated by signal SIGSEGV (Address boundary error)
    

    Doing what is suggested does not work:

    0QT_QPA_PLATFORM=wayland bitcoin-core.qt
    1Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
    2Fontconfig warning: FcPattern object weight does not accept value [0 205)
    3fish: Job 1, 'QT_QPA_PLATFORM=wayland bitcoin…' terminated by signal SIGSEGV (Address boundary error)
    

    My current version:

    0bitcoin-core.cli --version
    1Bitcoin Core RPC client version v24.0.1
    

    I have installed this as a snap:

    0snap list | grep bitcoin
    1bitcoin-core                    24.0.1                      126    latest/stable    bitcoin-core  -
    

    System details:

    0uname -a
    1Linux firefly.berenddeboer.net 6.2.0-20-generic [#20](/bitcoin-bitcoin/20/)-Ubuntu SMP PREEMPT_DYNAMIC Thu Apr  6 07:48:48 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
    
  25. KST-Energy commented at 8:59 pm on November 16, 2023: none

    Hi, found this issue while looking for a fix, and want to share my experience.

    0$ bitcoin-qt
    1Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
    

    I have essentially installed core (v24.2 on Ubuntu) using the instructions here with all of these dependencies:

    sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools qtwayland5 libqrencode-dev

    Worth noting that Qt launches & works fine otherwise, as far as I can tell.

  26. laanwj commented at 8:09 am on April 21, 2024: member
    See #29923, it is a first step to Wayland support in the release binaries without the earlier noted drawbacks of requiring extra build-time or run-time dependencies.
  27. laanwj commented at 11:16 am on April 25, 2024: member
    See #29959 for a new wayland PoC.

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-07-01 10:13 UTC

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