QuasarApp / CQtDeployer

This project is used to deploy applications written using QML, qt or other С / С++ frameworks.
https://quasarapp.ddns.net:3031/docs/QuasarApp/CQtDeployer/latest/
GNU Lesser General Public License v3.0
570 stars 89 forks source link

platform integration problem #803

Closed avttrue closed 6 months ago

avttrue commented 6 months ago

Build system: Linux KDE Neon, wayland Test system: Linux KDE Neon, wayland, X11

cqtdeployer -bin MyApp -extraLibs "libb2,libxcb-cursor" -enablePlugins multimedia

When executing a MyApp.sh file from DistributionKit directory, a number of error messages are displayed in the console. The main problem I noticed is the incorrect functionality of file dialogs and some deviations in GUI styles.

Including string export QT_QPA_PLATFORM=xcb in MyApp.sh file eliminates the "qt.qpa.wayland:..." messages but does not solve the problem in file dialogs.

Error messages:

qt.qpa.wayland: Failed to load client buffer integration: "wayland-egl" qt.qpa.wayland: Available client buffer integrations: QList() ... kf.windowsystem: Could not find any platform plugin ... kf.kio.core: couldn't create worker: "Неизвестный протокол «file»." kf.kio.core: couldn't create worker: "Неизвестный протокол «file»."

lddlog.txt verboselog.txt DistributionKit.txt

EndrII commented 6 months ago

hm, looks as bug o cqtdeployer. because your distribution missed 2 Wayland plugins.

EndrII commented 6 months ago

@avttrue can you try force to enable missed plugins for test ?

-enablePlugins "multimedia,wayland-decoration-client,wayland-graphics-integration-client"
avttrue commented 6 months ago

@avttrue can you try force to enable missed plugins for test ?

-enablePlugins "multimedia,wayland-decoration-client,wayland-graphics-integration-client"

The message no longer appears

qt.qpa.wayland: ...

But these messages remained, and the problems associated with them. The first access to the menu:

kf.windowsystem: Could not find any platform plugin

Calling the file dialog:

kf.kio.core: couldn't create worker: "Неизвестный протокол «file»." kf.kio.core: couldn't create worker: "Неизвестный протокол «file»."

As for the problems I had in mind. Here's what's expected:

Снимок экрана_20240309_124223 Снимок экрана_20240309_124328

And here is how it is displayed when running through the DistributionKit:

Снимок экрана_20240309_124427 Снимок экрана_20240309_124537

DistributionKit.txt

avttrue commented 6 months ago

Here is a test project: test

EndrII commented 6 months ago

Add please the "wayland-graphics-integration-server" plugin too

-enablePlugins "multimedia,wayland-decoration-client,wayland-graphics-integration-client,wayland-graphics-integration-server"
avttrue commented 6 months ago

Add please the "wayland-graphics-integration-server" plugin too

-enablePlugins "multimedia,wayland-decoration-client,wayland-graphics-integration-client,wayland-graphics-integration-server"

No changes: cqtdeployer -bin test_TextEdit -extraLibs "libb2,libxcb-cursor" -enablePlugins "multimedia,wayland-decoration-client,wayland-graphics-integration-client,wayland-graphics-integration-server" -verbose 3 >&verboselog.txt

dirlog.txt verboselog.txt


EndrII commented 6 months ago

Unfortunately, I don't know what exactly is missing from your distribution. If you manage to figure it out—either through the usual method of trying out plugins or Qt libraries—please describe it in this post, and I will assign this task to you.

avttrue commented 6 months ago

I think I found the problematic plugins. Without these plugins, that problems do not appear. Need to test it more. Perhaps these plugins are missing something additionally.

plugins/1$ dir -R -h .: platformthemes styles wayland-decoration-client

./platformthemes: KDEPlasmaPlatformTheme6.so libqgtk3.so libqxdgdesktopportal.so

./styles: breeze6.so oxygen6.so

./wayland-decoration-client: libbradient.so

avttrue commented 6 months ago
  1. Problematic plugins: platformthemes, styles, wayland-decoration-client
  2. The wayland-graphics-integration-server plugin is probably not needed. The absence of this plugin does not affect anything.
  3. The message displayed on X11 Failed to open VDPAU backend libvdpau_va_gl.so: cannot open shared object file: No such file or directory, but I don't have such a library. I don't know if this library is necessary.
  4. The final command for my distribution kit at this moment: cqtdeployer -bin MyApp -extraLibs "libb2,libxcb-cursor,libvdpau_va_gl" -enablePlugins "multimedia,wayland-graphics-integration-client,wayland-graphics-integration-server" -disablePlugins "platformthemes,styles,wayland-decoration-client"
  5. The main problem was that at some stage an errors occurred when accessing plugins responsible for GUI styles and themes.

I will still test on other systems, but at this moment the distribution kit is working.

EndrII commented 6 months ago

About the multimedia, wayland-graphics-integration-client, plugins. At current time, these plugins deployed automatically. So you can skip it.

I will close this issue. Because issues is founded inner Qt libraries/ and all cqtdeployer issues is fixed.