[kde-linux] 'Fetch Error' on exit
Duncan
1i5t5.duncan at cox.net
Thu Feb 23 02:56:52 UTC 2012
Mark Knecht posted on Wed, 22 Feb 2012 15:24:11 -0800 as excerpted:
> On Wed, Feb 22, 2012 at 2:39 PM, Kevin Krammer <kevin.krammer at gmx.at>
wrote:
>> The problem seems to be that the Akonadi server configuration says
that it
>> should be using a MySQL instance for its database needs.
>>
>
> Might this have been be created by me having MySQL installed at one
> time, KDE choosing to use it, but it not being installed now? I bought
> a book on MySQL awhile back just to run through a bunch of learning
> experiments but then later removed it. All Gentoo dependencies are
> being met so maybe an ebuild needs to be improved or something.
FWIW, as a gentooer, kdeer and former akonadi/kmail user here, I know
enough of the history to explain what's going on.
The problem is indeed historical, but it has nothing to do with your
former mysql interest. Instead, here's the sequence.
There are AFAIK three possible akonadi-server backend databases, along
with their drivers, mysql, sqlite, and postgresql, and in gentoo, the
corresponding USE flags for that package (akonadi-server, you can verify
the USE flags and their state).
Back in the early kde4/akonadi days, to the kde 4.5.1 and akonadi-server
1.4.0-r1 time frame if you correlate the gentoo changelogs for akonadi-
server and say kdelibs, the mysql backend was the default, gentoo
following the upstream kde/akonadi lead, as it was the first to mature
and early-on the stablest.
However, mysql, while arguably a great full-sized database for those
willing to take the time to properly tune and administer it (that is,
professional server administrators), isn't particularly well suited to "I
just want it to work" installations (that is, average joe blow desktop
users). Among other things, mysql has at least a history of version
upgrade challenges that can involve converting the database as part of
the upgrade, and various weird (from the perspective of non-professional
non-server-admins who just want it to work) problems with calendars and
utf-8 charset issues.
Meanwhile, the sqlite backend was maturing and its capacities and
stability improving. Sqlite's history of course is as an application
library, and it originally had problems with multi-threading and
concurrent thread-safe access to the same databases from multiple
threads. But by late 2010 under the pressure of akonadi intended usage,
it had grown these features while still remaining much less of a problem
to properly administer and upgrade than the previous mysql default, so
first kde/akonadi and then gentoo as well, switched to the sqlite backend
by default.
Here's one of two entries, same day, from the gentoo akonadi-server
changelog, that cover the switch:
07 Sep 2010; Maciej Mrozowski <reavertm at gentoo.org>
+akonadi-server-1.4.0-r1.ebuild:
Enable SQLite backend as default one, fix SQLite driver name
(QSQLITE3 is new one, adjust qt-sql USE dep)
Again, correlating with the kdelibs changelog for kde timing perspective,
that was right after kdelibs 4.5.1 was added to the tree on 06 Sep 2010.
Of course, that change would have hit stable rather later. From the
changelog again, it appears that would have been May 09 2011 (x86 and
amd64), with akonadi-server 1.5.2, parallel to kdelibs 4.6.2-r3
stabilization (again, x86 and amd64) on the same day.
OK, the default changed, which meant that new users installing it would
get the new setup. However, gentoo by policy does not muck with files in
a users's home dir: that's strictly up to the user and/or local admin.
The PROBLEM was that unlike MOST kde settings, where a system level
setting is the default and a user level setting doesn't appear unless it
is specifically changed from the default, in THIS case, the akonadi-
server active backend setting is stored in the USER config.
Thus, what happened is that local admins who had set no specific USE flag
preference manually, had the system default backend switched out from
mysql to sqlite, with the resulting change in dependencies and actually
installed packages if they kept up with emerge --depclean, removing no
longer needed package dependency cruft from their system.
But that did nothing at all to change out the already set user
configuration in $HOME dirs, on systems where akonadi had been installed
before the switch. These configurations remained mysql, until users
switched them manually. If the only thing that had pulled in mysql was
akonadi-server and an admin did an emerge --depclean before the user had
switched, they'd suddenly find themselves with a broken config!
One of the reasons this didn't hit more folks is that not everybody
actually uses akonadi or the various kdepim apps that use it, so it
didn't really matter to them. Another is that amarok continued to depend
on mysql, so anyone who had it, or for that matter, anything else
depending on mysql, installed, wouldn't have lost mysql. Yet another is
that a lot of folks don't regularly run emerge --depclean or otherwise
clear the old dependency cruft that's no longer pulled in as a current
dependency, and they'd have not seen the problem unless or until they
did. And of course there's the folks that don't upgrade very often in
any case, and never run emerge --update --deep when they do, in which
case the old mysql-default version would have stuck around for some time,
until it was removed from the tree and the user next did a tree sync.
So it would have only affected those who were simply using the gentoo
default-use for the package or who specifically changed it themselves,
who didn't still have mysql in their dependency tree for other reasons,
and even then, it would have taken quite some time to filter down to the
last stable user, updating only a few times a year and never doing --deep
upgrades.
>> Since you want SQLite instead you'll have to modify that.
>> I am not sure if Gentoo has patched the sources to make that
>> the defaut in case the config is missing or whether you have
>> to change the driver key manually.
>>
>> In case of the latter, open ~/.config/akonadi/akonadiserverrc
>> and look for the section labelle [%General]
>>
>> In it should be an entry like this:
>> Driver=QMYSQL
>>
>> Change that to
>>
>> Driver=QSQLITE3
>>
> The file is there but I want to double check. The only line I change
> is the Driver=QSQLITE line. I don't bother with the MYSQL section and
> SQLITE doesn't require a section of its own?
Having done that change here myself (very shortly after it was introduced
in Sept. 2010 IIRC, or even earlier when it hit the overlay, as I'm ~arch
and running the gentoo/kde overlay, here, regularly check the git
whatchanged logs for the overlay, and was by that time already quite fed
up with the various mysql issues... and of course looonngg before I
dumped kmail and then kdepim and akonadi entirely after getting fed up
with the kmail akonadification with kdepim 4.6 and 4.7)...
Yes, that's ALL you need change. If you want, you /can/ remove the mysql
stuff as it's obviously no longer doing anything, but the single Driver=
line change is the operational one, the rest can be left in case you ever
install and switch to the mysql backend again, or removed, as desired.
And sqlite being the much MUCH simpler "just works" solution (unlike
mysql, perfect for a desktop default), there's really nothing to
configure for the sqlite/QSQLITE3 driver; only to change to it.
--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman
More information about the kde-linux
mailing list