JuliaGraphics / QML.jl

Build Qt6 QML interfaces for Julia programs.
Other
386 stars 35 forks source link

Wayland support under Linux #125

Closed doppioandante closed 1 year ago

doppioandante commented 3 years ago

On my system I have overridden QT_QPA_PLATFORM to "wayland". This causes a crash in QML.jl, as apparently the Qt libs it relies on weren't compiled with wayland support. The quick workaround is to set QT_QPA_PLATFORM to "xcb" before running it, but it would be nice to start adding wayland support to the Qt packages in Yggsdril. Unfortunately I am not really well versed in this side of the julia ecosystem yet, I am opening this issue to see if someone else had already thought about this.

Example crash backtrace here:

Qt Info: Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway. ((null):0, (null))
Qt Warning: Could not find the Qt platform plugin "wayland" in "" ((null):0, (null))
Qt Fatal: This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: linuxfb, minimal, offscreen, vnc, xcb.
 ((null):0, (null))

signal (6): Annullato
in expression starting at /home/enrico/projects/Mindobotics/scratchpad/QMLRenderBox.jl:106
gsignal at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
abort at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_ZNK14QMessageLogger5fatalEPKcz at /home/enrico/.julia/artifacts/f88efb2d9aedf42ee5bf6069eddfe226653e93e6/lib/libQt5Core.so.5 (unknown line)
_ZN22QGuiApplicationPrivate25createPlatformIntegrationEv at /home/enrico/.julia/artifacts/f88efb2d9aedf42ee5bf6069eddfe226653e93e6/lib/libQt5Gui.so (unknown line)
_ZN22QGuiApplicationPrivate21createEventDispatcherEv at /home/enrico/.julia/artifacts/f88efb2d9aedf42ee5bf6069eddfe226653e93e6/lib/libQt5Gui.so (unknown line)
_ZN23QCoreApplicationPrivate4initEv at /home/enrico/.julia/artifacts/f88efb2d9aedf42ee5bf6069eddfe226653e93e6/lib/libQt5Core.so.5 (unknown line)
_ZN22QGuiApplicationPrivate4initEv at /home/enrico/.julia/artifacts/f88efb2d9aedf42ee5bf6069eddfe226653e93e6/lib/libQt5Gui.so (unknown line)
_ZN19QApplicationPrivate4initEv at /home/enrico/.julia/artifacts/f88efb2d9aedf42ee5bf6069eddfe226653e93e6/lib/libQt5Widgets.so.5 (unknown line)
_ZN7qmlwrap18ApplicationManager16init_applicationEv at /home/enrico/.julia/artifacts/649409328b8e340782d9a504e112306ee02710fe/lib/libjlqml.so (unknown line)
_ZN7qmlwrap18ApplicationManager25init_qmlapplicationengineEv at /home/enrico/.julia/artifacts/649409328b8e340782d9a504e112306ee02710fe/lib/libjlqml.so (unknown
line)
_ZN5jlcxx6detail11CallFunctorIP21QQmlApplicationEngineJEE5applyEPKv at /home/enrico/.julia/artifacts/649409328b8e340782d9a504e112306ee02710fe/lib/libjlqml.so (unknown line)
init_qmlapplicationengine at /home/enrico/.julia/packages/CxxWrap/OcN1Z/src/CxxWrap.jl:618 [inlined]
#loadqml#1 at /home/enrico/.julia/packages/QML/z2QKL/src/QML.jl:58
loadqml##kw at /home/enrico/.julia/packages/QML/z2QKL/src/QML.jl:58 [inlined]
top-level scope at /home/enrico/projects/Mindobotics/scratchpad/QMLRenderBox.jl:106
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:871
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:825
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:929
eval at ./boot.jl:360 [inlined]
include_string at ./loading.jl:1094
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2419
_include at ./loading.jl:1148
include at ./Base.jl:386
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2419
exec_options at ./client.jl:285
_start at ./client.jl:485
jfptr__start_35892 at /home/enrico/bin/sys_ohmyrepl.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2419
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1703 [inlined]true_main at /buildworker/worker/package_linux64/build/src/jlapi.c:560
repl_entrypoint at /buildworker/worker/package_linux64/build/src/jlapi.c:702
main at julia (unknown line)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x4007d8)
Allocations: 10136810 (Pool: 10134163; Big: 2647); GC: 6
Annullato (core dump creato)
bramtayl commented 3 years ago

I ran into this problem, ENV["QT_QPA_PLATFORM"] = "xcb" worked

ufechner7 commented 1 year ago

Perhaps this can be closed now that 0.8 is released?

barche commented 1 year ago

Wayland is indeed fully and automatically supported in QML.jl 0.8.