linuxdeploy-plugin-qt icon indicating copy to clipboard operation
linuxdeploy-plugin-qt copied to clipboard

SQLite plugin is not packaged with Qt 6.4.2

Open VK6NX opened this issue 2 years ago • 4 comments

The issue is possibly related to #133

directory 'sqldrivers' is missing after successful build within 'usr/plugins' of target directory, which makes running App unable to load database and produce the error: 'Qt QSqlDatabase driver not loaded'

Workaround is manually create 'sqldrivers' directory and copy libqsqlite.so into it.

VK6NX avatar Feb 04 '23 11:02 VK6NX

Please provide a build log, e.g., a link to your CI job.

Edit: Should be deployed already for Qt 6, see https://github.com/linuxdeploy/linuxdeploy-plugin-qt/blob/master/src/qt-modules.h#L116.

TheAssassin avatar Feb 04 '23 11:02 TheAssassin

Output log:

output.txt

VK6NX avatar Feb 04 '23 11:02 VK6NX

Clearly linuxdeploy doesn't detect the libQtSql6. Looks like a bug. I'll have to try and reproduce this.

TheAssassin avatar Feb 05 '23 00:02 TheAssassin

I see where the issue is coming from. Why the hell is your application not linked against libQt6Sql in the first place? linuxdeploy-plugin-qt relies on linuxdeploy to initially deploy all Qt dependency libraries. Then, it just ldds the binaries in your AppDir to detect which libraries it needs to deploy.

A second run of linuxdeploy with the Qt plugin should work around the problem. But I'd like to know where the libQt6Sql dependency has come from. Maybe you could try to run linuxdeploy without the Qt plugin, then use ldd to verify that nothing links to libQt6Sql.

A really weird bug.

TheAssassin avatar Dec 10 '23 22:12 TheAssassin