Details
-
Task
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.14.2, 5.15.0, 6.0, 6.2
-
None
-
macOS 10.15
Description
Running otool on the postgres and odbc plugins reveals the following:
$ otool -L libqsqlpsql.dylib libqsqlpsql.dylib: libqsqlpsql.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/QtSql.framework/Versions/5/QtSql (compatibility version 5.14.0, current version 5.14.2) @rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.14.0, current version 5.14.2) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) /Applications/Postgres.app/Contents/Versions/9.6/lib/libpq.5.dylib (compatibility version 5.0.0, current version 5.9.0) <--------------------- non existent /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.4) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5) $ otool -L libqsqlodbc.dylib libqsqlodbc.dylib: libqsqlodbc.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/QtSql.framework/Versions/5/QtSql (compatibility version 5.14.0, current version 5.14.2) @rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.14.0, current version 5.14.2) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) /usr/local/opt/libiodbc/lib/libiodbc.2.dylib (compatibility version 4.0.0, current version 4.25.0) <--------------------- non existent /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.4) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)
Both plugins link against a library that was installed during CI provisioning, but these files will most likely not exist on a user's machine, and the Qt installer doesn't package them either (we do it for ICU libs on Linux for example).
The end result is that if a user app tries to load the plugin, the plugin load will fail, but the app will continue to run as far as i understand.
The sql docs https://doc.qt.io/qt-5/sql-driver.html mention that
Due to the practicalities of dealing with external dependencies, only the SQLite3 plugin is shipped with binary builds of Qt.
which is clearly not the case.
Perhaps the intention was to provision, build and test the plugins, but not ship them in the official packages?
Because currently we ship kind of broken plugins (unless the Qt app developer installs the exact same packages as in Coin provisioning).
Attachments
Issue Links
- relates to
-
QTBUG-82962 Allow sqlite plugin to be buildable as a standalone CMake project
- Closed