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

libxcb-xinerama not found #779

Closed GoldSnake2100 closed 3 months ago

GoldSnake2100 commented 10 months ago

I built my app installer on ubuntu220.0.4, and it works on the machine. But I run the installer on other machine runs ubuntu 22.0.4, the installer does not work. This is the log when I run the installer.

./InstallerCOMINT.run: error while loading shared libraries: libxcb-xinerama.so.0: cannot open shared object file: No such file or directory

I tried to add extraLibs option, but it results same.

This is deploy command I used.

cqtdeployer -bin COMINT -qmake /home/hkc/Qt/6.5.2/gcc_64/bin/qmake -qmlDir /home/hkc/Comint/COMINT/resource/qml -extraLibs libxcb-xinerama qif

EndrII commented 10 months ago

@GoldSnake2100 can you send me verbose log of cqtdeployer tool ? just add -verbose 3 to your deploy command

GoldSnake2100 commented 10 months ago

Here is attacted the verbose log file. verbose-log.txt

EndrII commented 10 months ago

Hm, libxcb-xinerama.so.0 is dependency of the system xcb library that is a depends on the qt plugins, so just mark this lib as a depends on your executable. Use the new extraDepends option

-extraDepends libxcb-xinerama.so.0

Its library ignored because, add all xcb libs into distribution it is not safe, so CQtDeployer ignore it by default.

GoldSnake2100 commented 10 months ago

Thanks, I just tried to use the extraDepends option, but the result is same. This is the deploy command and verbose log file verbose-log.txt

GoldSnake2100 commented 10 months ago

The problem is just not running .run installer file, I am not sure the libxcb-xinerama lib is related with my application itself. When I manually install libxcb-xinerama library to target machine, the installer just run and my application also works. but I can't tell users to install the lib manually before use the installer.

EndrII commented 10 months ago

@GoldSnake2100 I thought that the problem was in launching your program directly, and the problem was in launching the installer, Unfortunately, you will not be able to solve it except by changing the installer type to zip or deb,

This is a problem with Qt and Ubuntu, Qt is linked to the optional library of ubuntu OS.

There is a difficult way with replacing the installer base and rebuilding qt and the qt installer framework, but this is too complicated a process, I don’t think it’s worth it.


note

this problem is not, actually, because Ubuntu and another distributions move to Wayland, in theory, these problems should not be on Wayland. Just try to run installer with option

-platform wayland

update

i was tried to launch standard qt installers (based on QIFW 4.6) with Wayland option, but installer not support this platform (

andrei@andrei-X570-GAMING-X:~/Downloads$ ./CQtDeployer_1.6.2320.097d82b_Linux_x86_64\(1\).run -platform wayland 
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: minimal, xcb.

so you can run it with minimal plugin... but it is console only.

EndrII commented 10 months ago

@GoldSnake2100 we should wait for solve this issue by Qt Installer team

EndrII commented 3 months ago

i close this issue, because it is qt installer framework issue.