[debian-mysql] About packages that depend on mysql-* / mariadb / virtual-mysql-*

Robie Basak robie at justgohome.co.uk
Fri Apr 8 13:28:56 UTC 2016


On Fri, Mar 25, 2016 at 08:13:36PM +0200, Otto Kekäläinen wrote:
> At the moment I think the easiest and solution would just to add to
> lintian a rule that packages should depend on 'mariadb-client |
> virtual-mysql-client' with mariadb first and thus default. Many

I agree. Asking depending packages to use "mariadb-client |
virtual-mysql-client" or "mariadb-server | virtual-mysql-server" seems
like the simplest solution. Then the release team get what they want and
with minimal impact elsewhere.

I'm not sure about lintian being the way to do it though. I thought the
process would be a mass-filed bug? That's the release team's realm
though I guess.

> I don't think it is feasible to split out libmysqliclient into a
> separate source package as it is build from the mysql sources.

A complicating factor is that MySQL 5.7 bumps the soname to
libmysqlclient.so.20. MariaDB forked at libmysqlclient.so.18 (?), and I
understand that in MariaDB libmysqlclient is deprecated in favour of a
different client library. This leads me to the following thoughts:

1. If we have MariaDB packaging provide the/a client library for
depending packages, then I think that should be under a different soname
to prevent collisions. Otherwise confusion will ensue as MySQL upstream
carry on with new libmysqlclient.so sonames.

2. I'm not sure it makes sense for MariaDB packaging to provide a fork
of libmysqlclient.so.18 even under a different soname. Given that
MariaDB upstream have deprecated this, upstreams aren't likely to
maintain compatibility with it. They'll either move on to building
against MySQL 5.7 and its libmysqlclient.so.20, or they'll move to
MariaDB's solution of building against their new library.

I understand that there is general compatiblity at the API level, but as
we're discovering with MySQL 5.7, minor changes such as the dropping of
libmysqlclient_r does cause some issues, requiring patching upstreams,

>                                                                We
> should maybe just start shipping libmariadbclient from the mariadb
> source package now as we have permission to do so, and later on stop
> providing the same package and files from the mysql source package.

Based on my soname argument above, the files would have different names,
so there would be no conflict.

> We also need to think about how to produce the mysql-common package.
> It might make sense to split out into a separate source package, as
> planned by Andreas Beckmann for since last summer. Andreas, still
> planning to do this?

I'm still happy with this plan (a separate source package for

So I think (please correct me if I'm wrong):

1. mysql-common: consensus is to split into a separate source package.

2. Dependencies on mysql-{client,server}: consensus is to have depending
packages depend on mariadb-{client,server} as a first alternative with
virtual-mysql-{server,client} as a second.

3. libmysqlclient: needs further discussion.


More information about the pkg-mysql-maint mailing list