[MDEV-3253] LP:587850 - Using "mysql-common" as a package name for a MariaDB package is showstopper for adding us into any Debian repository Created: 2010-05-31  Updated: 2014-06-20  Resolved: 2012-10-04

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Henrik Ingo (Inactive) Assignee: Kristian Nielsen
Resolution: Fixed Votes: 0
Labels: Launchpad

Attachments: XML File LPexportBug587850.xml    

 Description   

Background:
Packages built by MariaDB buildbot system can be seen here: http://ftp.rediris.es/mirror/MariaDB/mariadb-5.1.44b/kvm-deb-debian5-amd64/debs/binary/
Packages from OurDelta are here: http://nerdvana.us.mirror.ourdelta.org/deb/dists/lenny/mariadb-ourdelta/

MariaDB deb packages contain packages "mysql-common" and "libmysqlclient16". OurDelta additionally ships a "libmysqlclient15off" package.

This issue was in fact reported once, but we decided to ignore it then: https://bugs.launchpad.net/maria/+bug/481298

Problem:
Since this is the exact name of a package that already exists in Debian (the original mysql-common from MySQL) then this prevents MariaDB from being in a Debian repository.

The current package naming seems to have been chosen as a work around to solve some behavior where APT would prefer to install a MySQL package instead of an Ourdelta package (and this is inherited in current MariaDB packaging). (I will post in a comment an IRC discussion of the details with more info.)

Solution:
MariaDB must have unique package names and use Provides: and Conflicts: to properly replace existing MySQL packages. It is not a correct solution to produce packages that have the identical same name as the MySQL package.

There could be many different solutions. At the moment it is unclear why apt-get proposes to install a package that shouldn't even be considered since it "Conflict:"s with a package being installed instead. If this is true, it may be considered a bug in apt-get. (This needs to be re-verified as a first step of fixing this bug.)

Alternatively: for "mysql-common" we could decide that on Debian platforms we in fact "Depend:" on the original MySQL package and then provide additions in a "mariadb-common" package that installs additional configurations in /etc/mysql/conf.d/ and similarly we could omit to provide a libmysqlclient16 package at all.



 Comments   
Comment by Henrik Ingo (Inactive) [ 2010-05-31 ]

Re: Using "mysql-common" as a package name for a MariaDB package is showstopper for adding us into any Debian repository
IRC log of discussing this
https://lists.launchpad.net/maria-developers/msg03207.html

Comment by Henrik Ingo (Inactive) [ 2010-05-31 ]

Re: Using "mysql-common" as a package name for a MariaDB package is showstopper for adding us into any Debian repository
I added 5.2 into tags: If we need to change details of the packaging, such as package names, this should be done before 5.2 RC.

Comment by Henrik Ingo (Inactive) [ 2010-05-31 ]

Re: Using "mysql-common" as a package name for a MariaDB package is showstopper for adding us into any Debian repository
[13:05:22] <serg> so, mysql-client-5.1 depends on libmysqlclient16 (>= 5.1.43-1) and libdbd-mysql-perl (>= 1.2202)
[13:05:50] <serg> libdbd-mysql-perl (>= 1.2202) in turn depends on libmysqlclient16 (>= 5.1.21-1)
[13:06:39] <serg> that is, we need to provide libmysqlclient16 to satisfy libdbd-mysql-perl dependencies

Comment by Kristian Nielsen [ 2010-06-03 ]

Re: Using "mysql-common" as a package name for a MariaDB package is showstopper for adding us into any Debian repository
Apart from libdbd-mysql-perl, another important thing to check is that libmyodbc works correctly. We had a bug where it did not work with MariaDB client library, as it uses internal stuff (the actual culprit was fastmutexes calls).

A full list of packages that depend on libmysqlclient can be obtained from

apt-cache rdepends libmysqlclient15off

The mysql-common package contains /etc/mysql/my.cnf. It seems to me that mariadb and mysql has to use the same my.cnf, since they use the same data directory /var/lib/mysql. Otherwise a user switching from mysql to mariadb or vice versa could experience all kinds of problems when the my.cnf suddenly changes server configuration.

Comment by Sergei Golubchik [ 2010-06-28 ]

Re: Using "mysql-common" as a package name for a MariaDB package is showstopper for adding us into any Debian repository
see also https://bugs.launchpad.net/maria/+bug/509535

Comment by Kristian Nielsen [ 2012-03-02 ]

Re: Using "mysql-common" as a package name for a MariaDB package is showstopper for adding us into any Debian repository
In MariaDB 5.5, there is no longer a conflict on package mysql-common. We do

provide a mysql-common package in the MariaDB repo for completeness, but it is

perfectly possible to use MariaDB with the standard mysql-common package from

the main repos. MariaDB-specific config is done through a separate package

mariadb-common.

As for package libmysqlclient16 - this is an empty package that depends on

libmariadbclient16. This is necessary as long as MariaDB is maintained in a

3rd-party repository. There are other packages with versioned dependencies on

libmysqlclient16. To replace libmysqlclient.so with the MariaDB version, we

need to provide a real libmysqlclient package to satisfy these dependencies.

But when/if MariaDB is integrated into the main repositories, this can be

handled with the alternatives system. Eg. main libmysqlclient16 package can be

a virtual package that depends: on libmariadbclient16 |

libmysqlclient16-oracle.

So this should be fixed now.

Comment by Rasmus Johansson (Inactive) [ 2012-03-02 ]

Launchpad bug id: 587850

Generated at Thu Feb 08 06:47:21 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.