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

Rename libmysqclient files and sonames to libmariadbclient

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 5.1.67, 5.2.14, 5.3.12, 5.5.34, 10.0.7
    • Fix Version/s: None
    • Component/s: Platform Debian
    • Labels:
    • Environment:
      Debian/Ubuntu

      Description

      While packaging MariaDB for official Debian inclusion, one of the most invasive changes I made was to rename the shared library filenames in libmysqlclient.so & co to libmariadbclient.so.

      The rationale (originally presented by Debian MySQL packagers team) was that as the MySQL and MariaDB libraries are not 100% identical, they should not have the same filename (or soname), otherwise there will be ungraceful failures when a software optimized for MariaDB is run in an environment with the non-MariaDB version of soname libmysqlclient.

      In current official Debian packages (source at http://anonscm.debian.org/gitweb/?p=pkg-mysql/mariadb-5.5.git and -10.0.git) the packages libmariadbclient18 and libmysqlclient18 are co-installable and the filenames are not the same (libmariadbclient.so.18 and libmysqlclient.so.18).

      It seems that the original MySQL version of libmysqlclient.so.18 can be used with the MariaDB client/server. Therefore software that link to libmysqlclient.so.18 will work just fine with MySQL libmysqlclient.so.18.so and MariaDB server/client. Also if any software was to link to libmariadbclient.so.18 if would work via MariaDB libmysqlclient.so.18.so and MariaDB server/client just fine.

        Activity

        Hide
        georg Georg Richter added a comment -

        Please note that the LGPL licensed MariaDB client library ( https://mariadb.com/kb/en/mariadb/client-libraries/client-library-for-c/) also provides libmariadb.so and libmaridbclient.a

        Show
        georg Georg Richter added a comment - Please note that the LGPL licensed MariaDB client library ( https://mariadb.com/kb/en/mariadb/client-libraries/client-library-for-c/ ) also provides libmariadb.so and libmaridbclient.a
        Hide
        otto Otto Kekäläinen added a comment -

        I didn't spot a libmariadbclient.a, only a libmariadb.a.

        Here are the file listings of the binary packages as created from the mariadb-client-lgpl source package in Debian:
        https://packages.debian.org/sid/amd64/libmariadb2/filelist
        https://packages.debian.org/sid/amd64/libmariadb-client-lgpl-dev-compat/filelist
        https://packages.debian.org/sid/amd64/libmariadb-client-lgpl-dev/filelist

        Georg Richter Is there a documentation somewhere that lists the symbols of the LGPL library vs. old libmysqlclient18.so? Or something else where we can read up on what the status of the new LGPL library is and what features are still missing so that it would be on par with the old library?

        Show
        otto Otto Kekäläinen added a comment - I didn't spot a libmariadbclient.a, only a libmariadb.a. Here are the file listings of the binary packages as created from the mariadb-client-lgpl source package in Debian: https://packages.debian.org/sid/amd64/libmariadb2/filelist https://packages.debian.org/sid/amd64/libmariadb-client-lgpl-dev-compat/filelist https://packages.debian.org/sid/amd64/libmariadb-client-lgpl-dev/filelist Georg Richter Is there a documentation somewhere that lists the symbols of the LGPL library vs. old libmysqlclient18.so? Or something else where we can read up on what the status of the new LGPL library is and what features are still missing so that it would be on par with the old library?
        Hide
        otto Otto Kekäläinen added a comment -

        I'd like to get the comments from Georg Richter or Georg Richter before I put an period to this issue, thanks!

        Show
        otto Otto Kekäläinen added a comment - I'd like to get the comments from Georg Richter or Georg Richter before I put an period to this issue, thanks!
        Hide
        georg Georg Richter added a comment -

        LGPL Mariadb client library provides

        libmariadbclient.a
        libmariadb.so -> libmariadb.so.2
        libmariadb.so.2

        if it was builded with mysql compatibility fag (default) additionally:
        libmysqlclient.a -> libmariadbclient.a
        libmysqlclient_r.so -> libmariadb.so
        ibmysqlclient.so -> libmariadb.so
        libmysql.so -> libmariadb.so

        Show
        georg Georg Richter added a comment - LGPL Mariadb client library provides libmariadbclient.a libmariadb.so -> libmariadb.so.2 libmariadb.so.2 if it was builded with mysql compatibility fag (default) additionally: libmysqlclient.a -> libmariadbclient.a libmysqlclient_r.so -> libmariadb.so ibmysqlclient.so -> libmariadb.so libmysql.so -> libmariadb.so
        Hide
        otto Otto Kekäläinen added a comment -

        Georg Richter Apparently the mariadb_config is not yet as featureful as mysql_config? See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770650

        Show
        otto Otto Kekäläinen added a comment - Georg Richter Apparently the mariadb_config is not yet as featureful as mysql_config? See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770650

          People

          • Assignee:
            otto Otto Kekäläinen
            Reporter:
            otto Otto Kekäläinen
          • Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

            • Created:
              Updated: