Differences between revisions 3 and 4
Revision 3 as of 2014-03-11 13:59:57
Size: 739
Editor: ?JamesPage
Comment:
Revision 4 as of 2014-03-11 14:03:31
Size: 1461
Editor: ?JamesPage
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== Depending on mysql-server and mysql-client packages ==
Line 11: Line 13:
}}}
Line 17: Line 20:

== 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.

Depending on mysql-server and mysql-client packages

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

 Depends: the-one-they-tested-with | virtual-mysql-client

(or Suggests or Recommends)

At the moment in unstable the packages mysql-server-5.5 and mariadb-server-5.5 have

 Provides: virtual-mysql-server

and mysql-client-5-5 and mariadb-client-5.5 have

 Provides: virtual-mysql-client

Later when other versions are uploaded to Debian (e.g. MySQL 5.6, MariaDB 10, Percona etc) they will include the same provides as long as they are compatible enough with MySQL 5.5 to be drop-in-replacements. (Side note: Drizzle is a MySQL fork but is not an drop-in-replacement and thus does not have this provides.)

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.