clementine-player / Clementine

:tangerine: Clementine Music Player
https://www.clementine-player.org/
GNU General Public License v3.0
3.68k stars 670 forks source link

Unbundle qsqlite #7293

Open marcusmueller opened 9 months ago

marcusmueller commented 9 months ago

Before posting

Please follow the steps below and check the boxes with [x] once you did the step.

System information

Please provide information about your system and the version of Clementine used.

Expected behaviour / actual behaviour

not bundling and building old versions of software which are available on user's machines, anyway

Thing is, QSQLite is just part of qt-devel for any platform I'm aware of; it's unlikely anyone would have a Qt5 installation without it. Funnily, we unbundled the sqlite that old versions of the qsqlite driver bundled and use the system one, which is clever, but highlights how ill-advised bundling that driver is.
So, aside from the maintenance overhead, and the bugs schlepped around from shipping an old version, we gain little from bundling it.

CMake-wise: We should be able to just check the Qt5::Sql target's PROPERTY QT_ALL_PLUGINS_sqldrivers for inclusion of Qt5::QSQLiteDriverPlugin, or directly depend on the Qt5::QSQLiteDriverPlugin component.

hatstand commented 9 months ago

IIRC, this was to let us setup FTS in sqlite

marcusmueller commented 9 months ago

ah yes, been digging through the code that uses it, though I have to say, I'm really not sure I would have gone through a Qt abstraction layer if I didn't want an abstracted database. I opened this issue before on the hunch that this would necessitate significant changes to datatabase*.