Hello maintainers of packages that depend in MySQL/MariaDB! TL;DR; Please update 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 | virtual-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 have introduced 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, shall 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 have been available in experimental since July, and since also in unstable and testing, and we are confident there are no regressions. If you however do encounter problems, please report to pkg-mysql-maint@. On behalf ot the pkg-mysql team, - Otto
Attachment:
signature.asc
Description: This is a digitally signed message part