[debian-mysql] My issues with the structure of the mysql-5.5 package

Nicholas Bamber nicholas at periapt.co.uk
Thu May 17 23:47:53 UTC 2012

Various issues have forced me to seriously question whether the
Debian MySQL package has the right structure. This is an entangled
set of issues so please bare with me. I have tentative opinions but
no certainty and in any case this is exactly the sort of issue that
needs discussion. It goes without saying that nothing in this email
will make it into wheezy.


* Various bug reports, (#660087, #317934, #511438), call for the package 
to be further split up. I don't see how any one person can make a 
decision on these sort of issues but I for one am sympathetic to the 
views expressed there.

* Some executables, e.g. innochecksum, are in different packages
from their man pages.

* There seems to be no coherent definition of what is client side and 
what server side. I would have thought a MySQL client is an executable 
that only requires a TCP connection to the MySQL server. On this basis 
there are executables in the wrong package in both directions.

* Some setups (for example simple websites) may only require MyISAM 
support. Others (for example highly transactional systems) may have no 
need for MyISAM.

* The test suite largely consists of non executable ASCII files. We 
could split this into an arch:any core and an arch:all test data.

* Ubuntu has struck out in its own direction and put the mysql and 
mysqlcheck clients into a new mysql-client-core-5.5 package. In 
principle I have no issue with following Ubuntu on this. But I struggle 
to see by what criteria, for example, mysqlcheck was included and 
mysqladmin excluded.

* It is confusing and wasteful for each MySQL package to have its own 
doc directory. Debhelper would help consolidate them. However the 
directory  would have to be physically owned by an arch:any package 
which was required by all the others.

On the other hand, if we split out 'replace' as per ??? we would not 
want it sharing the same docs directory as the rest as that would defeat 
the motivation of the bug report. It would need a separate copyright 

* ?? also needs to be considered if we rearrange the packages. Ideally 
each package should own its bit of config below /etc/mysql/conf.d

I have documented the issues at ???.

Tentative Suggestions
* I propose a radical restructuring of the package. I suggest the actual 
split should be done as soon as possible after the freeze. However 
dependencies that should become Recommends will stay as Depends for now 
to ease the transition.

* The mysql-common package would become arch:any. This package would own 
the shared documentation directory.

* We would have the following

Package                  Depends On
innotop                  n/a [separate source anyway]
replace                  n/a [would have to have separate docs directory]
mysql-common             n/a
mysql-source-5.5         mysql-common
mysql-testsuite-core-5.5 mysql-common
mysql-testsuite-5.5      mysql-testsuite-core-5.5
mysql-testsuite          mysql-testsuite-5.5
libmysqlclient18         mysql-common
libmysqlclient-dev       mysql-common
libmysqld-dev            libmysqlclient18
libmysqld-pic            libmysqlclient18
mysql-client-core-5.5    mysql-common, libmysqlclient18 (via 
mysql-client-5.5         mysql-client-core-5.5
mysql-client             mysql-client-5.5
mysql-server-core-5.5    mysql-common
mysql-myisam-utils-5.5   mysql-server-core-5.5, replace
mysql-server-utils-5.5   mysql-server-core-5.5
mysql-server-5.5         mysql-server-core-5.5, mysql-server-utils-5.5,
mysql-server             mysql-server-5.5

The proposed mysql-server-utils-5.5 package is something of hodge podge. 
I am amenable to saying it should be split up further. But I am not sure 
what the principles are.

More information about the pkg-mysql-maint mailing list