rpm dependency on "mysql" no longer satisfied by Oracle MySQL 5.5.29 packages

Reported by Ville Skyttä on 2013-01-04
36
This bug affects 6 people
Affects Status Importance Assigned to Milestone
Percona XtraBackup
Medium
Alexey Bychko
2.0
Medium
Alexey Bychko
2.1
Medium
Alexey Bychko

Bug Description

It seems that MySQL-* 5.5.29 rpm packages from Oracle no longer satisfy "mysql" which is required by the xtrabackup rpms, at least on CentOS/RHEL 6, causing xtrabackup to try to pull in CentOS's "mysql" package which will fail because it'll conflict with MySQL-* installed from Oracle packages. Earlier Oracle package versions did Provide "mysql", but that Provides seems to have been dropped without a mention in the release notes.

I suppose changing "Requires: mysql" to "Requires: /usr/bin/mysql" in the xtrabackup rpms would fix this.

Confirmed.

(with MySQL-server-5.5.29-1.linux2.6.x86_64.rpm installed prior)

sudo yum install xtrabackup
Loaded plugins: auto-update-debuginfo, fastestmirror, presto, security, upgrade-helper
Loading mirror speeds from cached hostfile
 * base: mirrors.hns.net.in
 * centosplus: mirrors.hns.net.in
 * elrepo: mirror.solvention.de
 * elrepo-extras: mirror.solvention.de
 * elrepo-kernel: mirror.solvention.de
 * epel: mirrors.ispros.com.bd
 * epel-debuginfo: mirrors.ispros.com.bd
 * epel-source: mirrors.ispros.com.bd
 * extras: mirrors.hns.net.in
 * fasttrack: mirrors.hns.net.in
 * updates: mirrors.hns.net.in
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package percona-xtrabackup.x86_64 0:2.0.4-484.rhel6 will be installed
--> Processing Dependency: mysql for package: percona-xtrabackup-2.0.4-484.rhel6.x86_64
--> Running transaction check
---> Package mysql.x86_64 0:5.1.66-2.el6_3 will be installed
--> Processing Conflict: MySQL-server-5.5.29-1.linux2.6.x86_64 conflicts mysql
--> Processing Conflict: mysql-5.1.66-2.el6_3.x86_64 conflicts MySQL
--> Finished Dependency Resolution
Error: MySQL-server conflicts with mysql
Error: mysql conflicts with MySQL-server
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Here is what the provides shows: http://sprunge.us/fBdg

The Percona Server in the right installs fine whereas the MySQL
server fails as above.

Changed in percona-xtrabackup:
status: New → Confirmed
Tomasz Ch (gridzilla) wrote :

I was planning to try out Percona-xtrabackup, but I am not willing to put anything compiled from source on production servers.

5.5.29 is the official version from Oracle, and a fix seems to be very simple - does the team have plans to deal with this bug?

Just a note, the current "provides" for the Oracle MySQL:

$> rpm --provides -q MySQL-server-5.5.29
MySQL
MySQL-server
adt_null.so()(64bit)
auth.so()(64bit)
auth_socket.so()(64bit)
auth_test_plugin.so()(64bit)
config(MySQL-server) = 5.5.29-1.el6
libdaemon_example.so()(64bit)
msqlormysql
mypluglib.so()(64bit)
qa_auth_client.so()(64bit)
qa_auth_interface.so()(64bit)
qa_auth_server.so()(64bit)
semisync_master.so()(64bit)
semisync_slave.so()(64bit)
MySQL-server = 5.5.29-1.el6
MySQL-server(x86-64) = 5.5.29-1.el6

Alexey Bychko (abychko) on 2013-02-09
tags: added: pkg
tags: added: i29642

rpm -q --provides -p MySQL-client-5.5.30-1.linux2.6.x86_64.rpm
MySQL-client
MySQL-client = 5.5.30-1.linux2.6

raghu archie:~ [74]% rpm -q --provides Percona-Server-client-55-5.5.27-rel28.1.296.rhel6.x86_64
MySQL
MySQL-client
mysql
mysql-client
Percona-Server-client-55 = 5.5.27-rel28.1.296.rhel6
Percona-Server-client-55(x86-64) = 5.5.27-rel28.1.296.rhel6

raghu archie:~ [75]% rpm -q --requires percona-xtrabackup-2.0.2-461.rhel6.x86_64
mysql
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadIsXz) <= 5.2-1

So, adding MySQL-client or /usr/bin/mysql to Xtrabackup's
Requires should do.

(However, this dependency won't be needed for long, since because of https://blueprints.launchpad.net/percona-xtrabackup/+spec/use-dbd-mysql-in-innobackupex the dependency from XB 2.1 onwards will be on perl DBD MySQL (much like percona-toolkit))

Ovais Tariq (ovais-tariq) wrote :

Adding the summary of discussion with Alexey.

The current dependencies of percona-xtrabackup are as follows:
[root@centos58_01 ~]# yum deplist percona-xtrabackup
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirror.awo-ha-mk.de
 * epel: mirrors.n-ix.net
 * extras: centos.mirror.linuxwerk.com
 * updates: centos.mirror.linuxwerk.com
Finding dependencies:
package: percona-xtrabackup.x86_64 2.0.5-499.rhel5
  dependency: mysql
   provider: mysql.i386 5.0.95-3.el5
   provider: mysql.x86_64 5.0.95-3.el5
   provider: mysql.i386 5.0.95-5.el5_9
   provider: mysql.x86_64 5.0.95-5.el5_9
   provider: Percona-SQL-client-50.x86_64 5.0.92-b23.85.rhel5
   provider: Percona-Server-client-55.x86_64 5.5.29-rel29.4.401.rhel5
   provider: Percona-Server-client-51.x86_64 5.1.67-rel14.3.506.rhel5
   provider: Percona-XtraDB-Cluster-client.x86_64 1:5.5.29-23.7.2.389.rhel5

The problem is that starting MySQL version 5.5.29 the MySQL-server RPM no loner meets the dependency, as it no longer provides "mysql":
[root@centos58_01 ~]# rpm -qp MySQL-server-5.5.30-1.rhel5.x86_64.rpm --provides
MySQL
MySQL-server
adt_null.so()(64bit)
auth.so()(64bit)
auth_socket.so()(64bit)
auth_test_plugin.so()(64bit)
config(MySQL-server) = 5.5.30-1.rhel5
libdaemon_example.so()(64bit)
libtcmalloc_minimal.so.0()(64bit)
msqlormysql
mypluglib.so()(64bit)
qa_auth_client.so()(64bit)
qa_auth_interface.so()(64bit)
qa_auth_server.so()(64bit)
semisync_master.so()(64bit)
semisync_slave.so()(64bit)
MySQL-server = 5.5.30-1.rhel5

The MySQL-client package provides the following:
[root@centos58_01 ~]# rpm -qp MySQL-client-5.5.30-1.rhel5.x86_64.rpm --provides
MySQL-client
MySQL-client = 5.5.30-1.rhel5

We cannot simply change the dependency of percona-xtrabackup to mysql-client because the mysql client that ships with centos 5 does not provide mysql-client. A solution could be to change to "Requires: /usr/bin/mysql"

Just to clarify on the DBD dep in future, I think XB 2.0.x will still be depedent on mysql client and XB 2.1 will be on DBD, DBD dependency may not be backported to XB 2.0.x

Ignacio Nin (ignacio-nin) wrote :

What about depending on MySQL-client?

Percona-Server has been Provide:ing in both 5.1 and 5.5, since it's provided by Oracle's and we aim for compatibility.

Changed in percona-xtrabackup:
importance: Undecided → Medium
Ovais Tariq (ovais-tariq) wrote :

Ignacio depending on MySQL-client will cause problems with clients that ship with for example CentOS 5 because they do not provide MySQL-client

Alexey Bychko (abychko) on 2013-02-20
Changed in percona-xtrabackup:
assignee: nobody → Alexey Bychko (abychko)
Ovais Tariq (ovais-tariq) wrote :

Ignacio, a bit of context on what I was saying.

Provides from a MySQL client package that ships with CentOS 5.8:
[root@centos58_01 ~]# rpm -qp mysql-5.0.95-5.el5_9.x86_64.rpm --provides
config(mysql) = 5.0.95-5.el5_9
libmysqlclient.so.15()(64bit)
libmysqlclient.so.15(libmysqlclient_15)(64bit)
libmysqlclient_r.so.15()(64bit)
libmysqlclient_r.so.15(libmysqlclient_15)(64bit)
mysql = 5.0.95-5.el5_9

Provides from a MySQL client package that ships with CentOS 6.3:
[root@centos6_01 ~]# rpm -qp mysql-5.1.67-1.el6_3.x86_64.rpm --provides
mysql = 5.1.67-1.el6_3
mysql(x86-64) = 5.1.67-1.el6_3

So if the requires of XtraBackup is changed to MySQL-client or mysql-client, then percona-xtrabackup will still have dependency issues.

tags: added: i30889
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers