Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 459876 - app-office/akonadi-server-1.9.0 failed to start for can not find sqlite3 plugin
Summary: app-office/akonadi-server-1.9.0 failed to start for can not find sqlite3 plugin
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo KDE team
URL: http://quickgit.kde.org/?p=akonadi.gi...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-01 14:11 UTC by Changyuan Yu
Modified: 2017-01-01 14:07 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
full log for command akonadictl start (akonadiserver.log,4.77 KB, text/plain)
2013-03-01 14:11 UTC, Changyuan Yu
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Changyuan Yu 2013-03-01 14:11:02 UTC
Created attachment 340636 [details]
full log for command akonadictl start

Build akonadi-server-1.9.0 with USE="sqlite -mysql -postgres -test", then try to start it with the command "akonadictl start". The akonadi server then will complain about can not find sqlite3 driver: "QSqlDatabase: QSQLITE3 driver not loaded" (see attachment for full log) and fail to start.

The plugin libqsqlite3.so is installed by akonadi-server at /usr/lib/plugins/sqldrivers, but I think Qt4 will search path /usr/lib/qt4/plugins/sqldrivers. So I create a symbol link in /usr/lib/qt4/plugins/sqldrivers which point to /usr/lib/plugins/sqldrivers/libqsqlite3.so, then akonadi-server can be started as expected.
Comment 1 Michael Palimaka (kensington) gentoo-dev 2013-03-05 08:09:55 UTC
What USE flags is dev-qt/qtsql built with?
Comment 2 Changyuan Yu 2013-03-05 10:54:55 UTC
(In reply to comment #1)
> What USE flags is dev-qt/qtsql built with?

 * Found these USE flags for x11-libs/qt-sql-4.8.4:
 U I
 - - c++0x      : Build Qt using the C++11 standard
 - - debug      : Enable extra debug codepaths, like asserts and extra output.
                  If you want to get meaningful backtraces see
                  http://www.gentoo.org/proj/en/qa/backtraces.xml
 + + exceptions : Add support for exceptions - like catching them inside the
                  event loop (recommended by Nokia)
 - - firebird   : Adds support for the Firebird relational database
 - - freetds    : Adds support for the TDS protocol to connect to MSSQL/Sybase
                  databases
 - - mysql      : Adds mySQL Database support
 - - oci8       : Adds Oracle 8 Database Support
 - - odbc       : Adds ODBC Support (Open DataBase Connectivity)
 - - pch        : Enable precompiled header support for faster compilation at
                  the expense of disk space and memory (>=sys-devel/gcc-3.4
                  only)
 - - postgres   : Adds support for the postgresql database
 + + qt3support : Enable the Qt3Support libraries for Qt4
 + + sqlite     : Adds support for sqlite - embedded sql database
Comment 3 Simon Alman 2013-03-13 10:57:36 UTC
I found the same thing where sqlite3 only existed in lib/plugins:

ls -lh /usr/lib/plugins/sqldrivers/
total 68K
-rwxr-xr-x 1 root root 68K Mar 13 10:36 libqsqlite3.so

ls -lh /usr/lib/qt4/plugins/sqldrivers/
total 132K
-rwxr-xr-x 1 root root 56K Jan 24 20:53 libqsqlite.so
-rwxr-xr-x 1 root root 76K Jan 24 20:53 libqsqlmysql.so

I worked around it by editing ~/.config/akonadi/akonadiserverrc and changing references of QSQLITE3 to QSQLITE. Akonadi then started up successfully:

Here's my akonadiserverrc:

[%General]
Driver=QSQLITE

[QSQLITE]
Name=/home/haven/.local/share/akonadi/akonadi.db

[Debug]
Tracer=null
Comment 4 Coacher 2013-03-18 00:08:26 UTC
Related upstream bugreport:
https://bugs.kde.org/show_bug.cgi?id=316002
Comment 5 Michael Palimaka (kensington) gentoo-dev 2013-03-18 13:03:50 UTC
The offending change was introduced in 1.8.80 (see URL), but d9f68853265[1] (since kdelibs-4.9.5) is supposed to make it work "out of the box".

[1]: http://quickgit.kde.org/?p=akonadi.git&a=commitdiff&h=ee3c4bb057da9dc78b7faf92740bd6eba65f8cf7
Comment 6 Michael Palimaka (kensington) gentoo-dev 2013-03-18 13:16:37 UTC
What is the output of 'kde4-config --path qtplugins'?
Comment 7 Changyuan Yu 2013-03-18 13:22:42 UTC
The output of 'kde4-config --path qtplugins' is '/home/reiv/.kde4/lib64/kde4/plugins/:/usr/lib64/kde4/plugins/:/usr/lib64/plugins/'

And the output of 'qmake -query QT_INSTALL_PLUGINS' is '/usr/lib64/qt4/plugins'

PS: reiv is my user name.
Comment 8 Maciej Mrozowski gentoo-dev 2013-03-18 23:24:34 UTC
> I worked around it by editing ~/.config/akonadi/akonadiserverrc and changing
> references of QSQLITE3 to QSQLITE. Akonadi then started up successfully:

Just a comment here - changing QSQLITE3 to QSQLITE makes akonadi use completely different QtSql driver (Qt-builtin one) but here we want to use Akonadi-provided one (which is supposedly patched with some thread-safety stuff). So while it may seem to work as a workaround..
On the other hand, Akonadi-sqlite seems to be in sorry state lately on its own anyway.
Comment 9 Coacher 2013-03-19 08:59:54 UTC
Shouldn't we simply apply suggestions from this comment?
https://bugs.kde.org/show_bug.cgi?id=316002#c3

It says "use -DINSTALL_QSQLITE_IN_QT_PREFIX when building Akonadi."
Comment 10 Michael Palimaka (kensington) gentoo-dev 2013-03-19 10:13:12 UTC
(In reply to comment #9)
> Shouldn't we simply apply suggestions from this comment?
> https://bugs.kde.org/show_bug.cgi?id=316002#c3
> 
> It says "use -DINSTALL_QSQLITE_IN_QT_PREFIX when building Akonadi."

Yes, we were just discussing why the plugin does not load anyway as claimed first.
Comment 11 Michael Palimaka (kensington) gentoo-dev 2013-03-20 13:39:44 UTC
Thanks, fixed in CVS and git.

+  20 Mar 2013; Michael Palimaka <kensington@gentoo.org>
+  +akonadi-server-1.9.1-r1.ebuild:
+  Install QSQLITE3 plugin into same directory as other QtSQL plugins, wrt bug
+  #459876.

http://git.overlays.gentoo.org/gitweb/?p=proj/kde.git;a=commit;h=62afb608a0793ef12f6df94d55d2f47f6af9f73c