[debian-mysql] Draft: Introducing default-mysql-server metapackages

Otto Kekäläinen otto at debian.org
Sat Jul 9 10:29:13 UTC 2016


Hello!

Repositories at http://anonscm.debian.org/cgit/pkg-mysql/ now contain
the changes we decided on earlier in the week and next we'll upload
them to experimental.

We plan to send the message below to debian-devel@ once we have out
new packages in experimental for general testing. Please let us know
there is anything that you object.



***
Hello maintainers of packages that depend in MySQL/MariaDB!

We will soon ask you to change packages that depend on MySQL or
MariaDB as follows:

BEFORE: Build-Depends: libmysqlclient-dev
AFTER: Build-Depends: default-libmysqlclient-dev

BEFORE: Depends: mysql-server | virtual-mysql-server OR Depends:
mariadb-server | virtual-mysql-server
AFTER: Depends: default-mysql-server | virtual-mysql-server

BEFORE: Depends: mysql-client | virtual-mysql-client OR Depends:
mariadb-client | virtual-mariadb-client
AFTER: Depends: default-mysql-client | default-mysql-client

Details follow:

The release team decided earlier in the spring that MariaDB should be
made the default MySQL variant in Debian. The release team also wished
to have a facility that allows easy switching of the default.

Therefore we are now about to introduce the following metapackages
from the mysql-defaults source package:
- default-mysql-server
- default-mysql-server-core
- default-mysql-client
- default-mysql-client-core
- default-libmysqlclient-dev

All maintainers of packages that currently depend directly on
mysql-server, mariadb-server, or any of the other packages in these
series, will at a later time be asked to update the dependencies in
their packages to point to default-mysql-* instead.

Installing the metapackage default-mysql-server will pull in
mariadb-server-10.0. Users who had mysql-server-5.6 will have it
removed and replaced by the MariaDB equivalent on upgrade. Note that
once you have switched to MariaDB, it might not possible to convert
your in-place database files back to MySQL automatically, since Oracle
does not maintain tools to convert possible MariaDB features present
in the binary format. Please back up your data first if you wish to
switch or experiment. Manual dump/import is the most reliable way to
import data from one installation to another.

A virtual package scheme virtual-mysql-* already exists since 2013,
and will continue to exist. All MySQL variants in Debian (and outside
in 3rd party repositories too) have Provides for these virtual-mysql-*
packages. Maintainers can [should?] use "Depends: default-mysql-server
| virtual-mysql-server" if their package can be satisfied by any MySQL
variant (Oracle, MariaDB, Percona, mysql-wsrep).

The first dependency should be default-mysql-*, which is a
metapackage, that in turn depends on exactly one option, which for now
is MariaDB.

If a maintainer knows that his/her package only works with one
variant, then the package can depend directly on that package and not
use the default-mysql-* (matches one) or virtual-mysql-* (matches any)
schemes. Please get in touch if this applies to you. At the moment
there should be no such packages, but in the future cases like this
can arise when MySQL and MariaDB develop diverging feature sets.

Packages built against default-mysqlclient-dev and link using
"-lmysqlclient" will end up with a shared library dependency on either
libmysqlclient.so.X or libmariadbclient.so.X depending on the default
defined by the release team at build time. These will be provided by
the libmysqlclient18 (soon to be libmysqlclient20) and
libmariadbclient18 packages, which will be co-installable. Packages
which require particular functionality available from only one of the
forks may Build-Depend directly on libmysqlclient-dev or
libmariadbclient-dev and then link using "-lmysqlclient" or
"-lmariadbclient" respectively. Again, please get in touch if this
applies to you.

The default-mysql-* metapackages will be uploaded to Experimental soon
and to Unstable once we are confident there are no regressions. Once
they are available in Unstable, we will announce this on
devel-announce@ officially and later mass file bugs for packages that
have not updated their dependencies in a reasonable time otherwise.

If you wish to participate in testing or finalizing this scheme,
please reply to this thread or write to pkg-mysql-maint at .


On behalf ot the pkg-mysql team,

- Otto



More information about the pkg-mysql-maint mailing list