[MDEV-2804] LP:463161 - Centos MariaDB package dependency problems for libmysqlclient15.so Created: 2009-10-29  Updated: 2012-10-04  Resolved: 2012-10-04

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

Type: Bug Priority: Critical
Reporter: Kristian Nielsen Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: Launchpad

Attachments: XML File LPexportBug463161.xml    

 Description   

Here is my understanding of the problem after some discussions. Someone please
correct me if anything is incorrect or incomplete.

On Centos 5, there is a base package called "mysql". This package includes
libmysqlclient.so.15, which is a dependency of many other packages (anything
that needs to connect to MySQL, for example DBD::mysql).

The base package "mysql" also includes client programs, like /usr/bin/mysql.

Since MariaDB also includes /usr/bin/mysql, it conflicts with the base "mysql"
package and has to replace it. However, MariaDB does not include
libmysqlclient.so.15. It has libmysqlclient16.so (difference between MySQL 5.0
and MySQL 5.1).

So the root problem seems to be that the base "mysql" package in Centos should
have been split, with a seperate package 'libmysqlclient15' containing the
client library, like it is done in eg. Ubuntu. Since this is not the case, any
package that wants to replace /usr/bin/mysql needs to somehow provide
libmysqlclient.so.15. Otherwise any installed 3rd party package build against
the libmysqlclient.so.15 will break when installing MariaDB.

Proposed solution:

Ourdelta already provides builds based on MySQL 5.0, which includes
libmysqlclient.so.15. In these builds, the libmysqlclient.so.15 could be split
into a separate package libmysqlclient15-ourdelta (say), which does not
contain any other binaries like /usr/bin/mysql. Or maybe this split is already
done, don't know.

Then the MariaDB packages could provide/replace the base 'mysql' package, but
depend on 'libmysqlclient15-ourdelta' (or whatever it is called). This would
then make sure that both libmysqlclient.so.15 (for old packages) and
libmysqlclient.so.16 (for MariaDB stuff) are available.

The reason I suggest pulling in a 5.0-based ourdelta package from a separate
build is that we need the MariaDB packaging fully automated in Buildbot. This
is much harder if we have to pull in some magic .so file from another location
or build a separate mysql 5.0 tree as part of the 5.1 build.



 Comments   
Comment by Arjen Lentz (Inactive) [ 2009-11-01 ]

Re: Centos MariaDB package dependency problems for libmysqlclient15.so
Can't quite go with the exact picture from the description, but we've got a solution and are implementing it.

Comment by Arjen Lentz (Inactive) [ 2009-11-09 ]

Re: Centos MariaDB package dependency problems for libmysqlclient15.so
The OurDelta build scripts now grab a 5.0.x ourdelta -shared RPM build, and using rpm2cpio magic extract the .so.15 libraries from it which then get included in the 5.1 -shared RPM. This is similar to the method the -shared-compat libraries from mysql.com uses, except our method will work with the YUM repositories.
This resolves the RHEL/CentOS 5 issues.

RHEL/CentOS 4 originally came with MySQL 4.1, which had .so.14. OurDelta does not have 4.1 builds, so we don't have our own shared libraries to copy in. There are a number of possible solutions for this, but barring that, CentOS4 packages will work, provided there's no local need for the php, perl or python bindings, or the mysql-shared-compat (from mysql.com) is tossed in after installing 5.1 before installing the bindings. That'll work. Might need a --force.

Comment by Arjen Lentz (Inactive) [ 2009-11-15 ]

Re: Centos MariaDB package dependency problems for libmysqlclient15.so
Resolved in 5.1.39 build.

Comment by Hakan Küçükyılmaz (Inactive) [ 2009-11-19 ]

Re: Centos MariaDB package dependency problems for libmysqlclient15.so
I could verify the fix with CentOS 5.4 x86_64

Comment by Rasmus Johansson (Inactive) [ 2009-11-19 ]

Launchpad bug id: 463161

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