Introducing default-mysql-* metapackages
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
You can already test this in experimental. We will announce when you
should do this in unstable.
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:
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 must 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
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.
Users that want to rebuild packages against a different variant of
lib*client-dev for experimenting and testing locally should prefer
using a locally modified default-libmysqlclient-dev over modifying
each client application source package individually.
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
debian-devel-announce@ officially and later mass file bugs for
packages that have not updated their dependencies in a reasonable time
If you wish to participate in testing or finalizing this scheme,
please reply to this thread or write to pkg-mysql-maint@.
On behalf ot the pkg-mysql team,