Open a12e opened 2 months ago
Thanks for analyzing this @a12e, and for the workaround.
Maybe we should simply not skip already deployed imports? This might significantly increase the time the program needs to run. The proper thing to do would probably be to check if it had been deployed and rpath patched properly before...
Reference:
AppImages fail to start because
libworkerscriptplugin.so
have no RPATH set, and thus tries to load its backing librarylibQt6QmlWorkerScript.so.6
on the host system instead of the AppImage.No QML plugin (stored in
/tmp/.mount_XXXL4O6JB/usr/qml/
) has its RPATH set.Non-working QML plugin .so:
Working backing library .so (note RUNPATH):
The problem is that with "modern Qt with CMake" the QML plugins are already copied in
appdir/usr/qml
duringcmake --install
. When linuxdeployqt steps on this existing directory (https://github.com/probonopd/linuxdeployqt/blob/ff74b85e0352d65053207fd884aacc31aaaae09b/tools/linuxdeployqt/shared.cpp#L1771-L1776), it does nothing because the target QML directory already exists.A workaround is to
rm -rf appdir/usr/qml
before invoking linuxdeployqt.