Version: KDE4 (using KDE 4.0.83) Installed from: Compiled From Sources Compiler: GCC 4.3.1 Starting Digikam (KDE 4 version, compiled today on OpenSUSE 11) doesn't work. I am getting thousands of lines like the following. It stops with "Speicherzugriffsfehler". That is a segmentation fault. QSqlDatabase: QSQLITE driver not loaded QSqlDatabase: available drivers: QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-138070288' is still in use, all queries will cease to work. QSqlDatabasePrivate::addDatabase: duplicate connection name 'digikamDatabase-138070288', old connection removed. QSqlQuery::prepare: database not open digikam(19608): Failure executing query: digikam(19608): "" digikam(19608): "Driver not loaded Driver not loaded" digikam(19608): Bound values: () QSqlQuery::prepare: database not open digikam(19608): Failure executing query: digikam(19608): "" digikam(19608): "Driver not loaded Driver not loaded" digikam(19608): Bound values: () QSqlDatabase: QSQLITE driver not loaded QSqlDatabase: available drivers: QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-138070288' is still in use, all queries will cease to work. QSqlDatabasePrivate::addDatabase: duplicate connection name 'digikamDatabase-138070288', old connection removed. QSqlQuery::prepare: database not open digikam(19608): Failure executing query: digikam(19608): "" digikam(19608): "Driver not loaded Driver not loaded" digikam(19608): Bound values: () QSqlQuery::prepare: database not open digikam(19608): Failure executing query: digikam(19608): "" digikam(19608): "Driver not loaded Driver not loaded" digikam(19608): Bound values: () QSqlDatabase: QSQLITE driver not loaded QSqlDatabase: available drivers: QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-138070288' is still in use, all queries will cease to work. QSqlDatabasePrivate::addDatabase: duplicate connection name 'digikamDatabase-138070288', old connection removed. Speicherzugriffsfehler
Carsten, Install QT4 SQLite3 plugin, and all will be fine. Gilles Caulier
libqt4-sql-sqlite works, yes. Shouldn't this be caught by CMake?
Well, there is no CMake script to detect Qt4::Sqlite3 plugin. All contribution are welcome.... Gilles Caulier
First thing: How to handle this problem if it occurs. It's a runtime dependency, and some time ago it did not crash but the error was detected and a message box displayed. You dont test too often with a broken setup, seems I should do that sometimes. Second: How to avoid the situation. It's clear that distro packages must contain the SQlite plugin as a hard dependency. For compilation, I dont know how to detect Qt plugins.
Marcel, Why not to use this staic method at startup: http://doc.trolltech.com/4.3/qsqldatabase.html#isDriverAvailable Just to be sure than Sqlite3 Qt4 DB drivers is available. If not, open a message box to ping user and stop digiKam. Gilles Caulier
SVN commit 826363 by mwiesweg: Make sure that initialization errors are passed on to the user. CCBUG: 165318 M +9 -0 scancontroller.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=826363
SVN commit 826364 by mwiesweg: Avoid endless loop when database setup is broken (CollectionManager would create new DatabaseAccess objects, the constructor would again call CollectionManager) BUG: 165318 M +19 -2 databaseaccess.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=826364
Created attachment 25803 [details] qtsqlite driver detect during cmake configure of digikam Attached is a tarball containing a svn diff on digikam/CMakeLists.txt as well as a directory digikam/qtsqlitedrv. Cmake attempts to compile and run the program in the directory. Success indicates the driver is functional. The output of this patch has been made “information only” at this time. Should a modification of this patch make it to svn, the failure of qt-sqlite driver detection should perhaps cause digikam to not be compiled. The digikam/qtsqlitedrv/CMakeCache.txt file created by cmake would need to be removed if a second cmake configure is attempted otherwise false results are possible. I have not attempted to code this feature. This was created and seems to work on GNU/Linux Fedora 9 on using an Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz processor royboy626