Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-2804

LP:463161 - Centos MariaDB package dependency problems for libmysqlclient15.so

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:

      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.

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            arjenlentz Arjen Lentz added a comment -

            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.

            Show
            arjenlentz Arjen Lentz added a comment - 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.
            Hide
            arjenlentz Arjen Lentz added a comment -

            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.

            Show
            arjenlentz Arjen Lentz added a comment - 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.
            Hide
            arjenlentz Arjen Lentz added a comment -

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

            Show
            arjenlentz Arjen Lentz added a comment - Re: Centos MariaDB package dependency problems for libmysqlclient15.so Resolved in 5.1.39 build.
            Hide
            hakanküçükyılmaz Hakan Küçükyılmaz added a comment -

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

            Show
            hakanküçükyılmaz Hakan Küçükyılmaz added a comment - Re: Centos MariaDB package dependency problems for libmysqlclient15.so I could verify the fix with CentOS 5.4 x86_64
            Hide
            ratzpo Rasmus Johansson added a comment -

            Launchpad bug id: 463161

            Show
            ratzpo Rasmus Johansson added a comment - Launchpad bug id: 463161

              People

              • Assignee:
                Unassigned
                Reporter:
                knielsen Kristian Nielsen
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: