Hello maintainers of packages that depend in MySQL/MariaDB!
TL;DR; 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. 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 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 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. 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 otherwise. 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, - Otto