Depending on 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-client | virtual-mysql-client
(or Suggests or Recommends)
since late 2013, all variants x-server (Oracle MySQL, MariaDB, Percona) have hade provides like this:
Provides: virtual-mysql-server
and x-client packages have
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 alternative dependency to satisfy installation of other variants is 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.