Differences between revisions 6 and 7
Revision 6 as of 2016-04-11 20:36:55
Size: 1622
Editor: ?OttoKekalainen
Comment:
Revision 7 as of 2016-04-24 16:44:36
Size: 1709
Editor: ?OttoKekalainen
Comment:
Deletions are marked like this. Additions are marked like this.
Line 21: Line 21:
As of March 2016 the '''Debian release team decided, that in Debian the default database option should be MariaDB'''. The primary dependency should therefore be on the MariaDB package but the virtual-mysql-x should be kept as an alternative dependency to satisfy installation of other variants if users explicitly want so. As of March 2016 the '''Debian release team [[http://meetbot.debian.net/debian-release/2016/debian-release.2016-03-23-18.58.html|decided]], that in Debian the default database option should be MariaDB'''. The primary dependency should therefore be on the MariaDB package but the virtual-mysql-x should be kept as an alternative dependency to satisfy installation of other variants if users explicitly want so.

The new way to mark dependency on the mysql-server and mysql-client packages

All packages that at the moment depend directly on mysql-server or mysql-client should instead have something like:

 Depends: mariadb-server | virtual-mysql-server

(or Suggests or Recommends)

Since late 2013, all variants (Oracle MySQL, MariaDB, Percona) have hade provides like this in th x-server package:

 Provides: virtual-mysql-server

and in x-client packages:

 Provides: virtual-mysql-client

(Side note: Drizzle is a MySQL fork but is not an drop-in-replacement and thus does not have this provides.)

As of March 2016 the Debian release team decided, that in Debian the default database option should be MariaDB. The primary dependency should therefore be on the MariaDB package but the virtual-mysql-x should be kept as an alternative dependency to satisfy installation of other variants if users explicitly want so.

Switching in/out MySQL alternatives

The virtual-mysql-* approach is also used for switching in/out alternative MySQL implementations.

Each binary package should declare (for example):

Provides: virtual-mysql-server
Breaks: virtual-mysql-server, ...
Replaces: virtual-mysql-server, ...

Currently recognised virtual-mysql-* packages are:

virtual-mysql-client-core
virtual-mysql-client
virtual-mysql-server-core
virtual-mysql-server
virtual-mysql-testsuite

It is acceptable for a package to Provide/Break/Replace multiple virtual-mysql-*'s; not all packages have exactly the same binary package structure.