yofel at gmx.net
Wed Apr 15 17:54:39 UTC 2015
On Wednesday 15 April 2015 17:03:13 Harald Sitter wrote:
> 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).
I can see what you mean, but there's currently no reasonable way to make sure it's fine except testing every mysql server that we want to allow ourselves. In the meantime, I think assuming virtual-mysql-server-core provides a working mysql server is ~ok. If that shows to be wrong, we can deal with it then. (And if people install $random_external_mysql_server from a PPA or so that provides that but doesn't work then I just don't care)
After looking at the mysql backend again I noticed more issues anyway:
- We depend on mysql-client-core for mysqlcheck, which could be a recommends though (it's optional).
- Optionally the backend also uses mysqladmin (to properly stop the server) from mysql-server, but that's in the full server package, not core :(
- Optionally it uses mysql_install_db to set up the empty database, which according to git is needed by "some" (?) databases, but that's in the full client package, not core :(
We definitely don't want to install a full mysql server, and mysql-client adds 12MB of mostly useless binaries to the default install...
> > 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).
Good idea, I'll make a note on my todo list.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 819 bytes
Desc: This is a digitally signed message part.
More information about the kubuntu-devel