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

Jonathan Wiltshire jmw at debian.org
Tue Jul 5 09:41:15 UTC 2016


On Sun, Jul 03, 2016 at 12:46:29PM +0100, Otto Kekäläinen wrote:
> On the pkg-mysql-maint team we have discussed providing a new scheme
> to complement the existing virtual-mysql-* scheme. We plan to
> introduce new purely virtual packages, that are provided only by
> MariaDB:
> - default-mysql-client
> - default-mysql-client-core
> - default-mysql-server
> - default-mysql-server-core
> - default-libmysqlclient
> 
> (the last item on the list is my own addition, see point 3 below)
> 
> Once these are available we would announce them on debian-devel@ and
> ask all packagers to update existing "Depends: mysql-*" to "Depends:
> default-mysql-*"
> 
> If release team whished to switch defaults, then it is just a matter
> on deciding which package shall provide these default-mysql-* virtual
> packages. This is how e.g. default-mta works and is provided by
> Postfix.

I don't think I understand why you would have both virtual-mysql-* and
default-mysql-* packages for dependencies (leaving aside build-deps). If a
package requires one of the variants, it will need an explicit dependency.
If it doesn't care, it should use the default.

Therefore are the virtual-* packages required?

As virtual packages provided by >1 package breaks build-dependency
handling, if there is any danger that these might be used in build-depends
they should be meta-packages, not virtual.

> > 3. libmysqlclient.so.18
> 
> Here theres's no concensus yet within the pkg-mysql-maint team on this one.
> 
> I suggest we extend the mysql-defaults source package to provide a
> real default-mysqlclient-dev metapackage, which other packages can
> build depend on, using versions if needed (just as default-jdk does).

Yes.

> Current mariadb-10.0 source package does not ship any
> libmariadbclient18 nor libmariadbclient-dev packages at all, as
> previously it was seen as against the policy (but mariadb-5.5 in
> Debian did). I suggest we start producing them now again to make a
> libmysqlclient.so(.18) available from mariadb-10.0.
> 
> Having two libmysqlclient.so.18 files from two different packages is a
> controversial topic. They are not identical so it is ugly to use the
> same name. This is however a necessity dictated by the need to provide
> a drop-in-replacement that can be used directly without going into
> every single clienting program and editing the C headers and soname
> calls.

We discussed this in the release team and concluded that having two
libmysqlclient.so.18 files in two packages is likely to run into problems
later if/when they diverge, so there is no point delaying that pain.
Especially as they are not identical even now.

I wonder if pkgconfig can be any help here? That involves a one-time change
to client packages if they don't already use pkgconfig but doesn't have to
be repeated if the default switches.



-- 
Jonathan Wiltshire                                      jmw at debian.org
Debian Developer                         http://people.debian.org/~jmw

4096R: 0xD3524C51 / 0A55 B7C5 1223 3942 86EC  74C3 5394 479D D352 4C51




More information about the pkg-mysql-maint mailing list