akonadi-backend-mysql... mess

Harald Sitter sitter at kde.org
Wed Apr 15 15:03:13 UTC 2015

On Tue, Apr 14, 2015 at 5:38 PM, Philip Muskovac <yofel at gmx.net> wrote:
> After people constantly file bugs about our akonadi mysql situation, I looked at the packaging more closely which is just giving me headaches:


> In akonadi, we set the default backend to mysql, and ship that by default together with mysql-server-core-5.6 and mysql-client-core-5.6. So far so good, and I believe that's the only configuration we actually support.
> Reality is more complicated:
> 1) There are alternate mysql implementations like mariadb or percona in the archive, but those conflict with mysql, so kubuntu users can't use them as they would need to remove mysql, which removes akonadi, which removes kdepim
> (mariadb is an exception actually, as our mysql-server dep is really "mysql-server-core-5.5 | mysql-server-core-5.6 | mariadb-server-core-5.5 | mariadb-server-core-10.0", just percona is missing [bug #1336005])
> 2) There's also sqlite and postgres backends, which in the packaging are valid alternatives for mysql. Now if a user (or apt) actually switches the installed backends, akonadi will be very unhappy as it can't autodetect backend changes. All it will do is tell the user "Hey, your mysql backend is broken, fix it!" - unless the user also reconfigures the backend settings by hand.
> As we had the problem once that apt choose the wrong backend [bug #923189] I made akonadi-backend-mysql a hard requirement for akonadi-server as a workaround (which leads to e.g. bug #1443470) - but it seems like Scarlett accidentally dropped that in her last merge.
> Unless someone else comes up with something better, I'll do this:
> 1) Change the mysql dep to "mysql-server-core-5.6 | virtual-mysql-server-core" so we still use mysql by default but allow whatever else (fixes #1336005)
> Still allows apt to switch out mysql databases if it wants, which isn't fully supported, but I see no way to prevent that...

What I am concerned about here is that virtual-mysql-server-core would
be provided by any version bypassing the explicit version we use for
server-core, so it might in fact be necessary to list all possible
alternatives rather than use the virtual. OR perhaps the better
solution is to create a new virtual that contains the version; that is
slightly more involved though (also I am not sure it matters much).

> 2) Bring the dep back. It's still a bloody workaround, but unless akonadi learns to detect what backends are actually installed, I see no way of fixing this properly...


FWIW though, I think it would be very cool if you could talk to
dvratil about future plans there. Assuming akonadi(kf5) will continue
to support multiple backends we certainly should come up with some way
of communicating to the user that switching backends will not migrate
data (i.e. have debconf shout at them probably).


More information about the kubuntu-devel mailing list