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

Rename libmysqclient files and sonames to libmariadbclient

Details

    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.

      Attachments

        Activity

          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

          georgrichter 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?

          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 georgrichter 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?

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

          otto Otto Kekäläinen added a comment - I'd like to get the comments from georg or georgrichter before I put an period to this issue, thanks!
          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

          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

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

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

          These are now fixed in multiple steps, among others in https://github.com/MariaDB/server/commit/dcfe6cb834b8106e384e24ac038cf6a6456fa9ee

          From 10.2 onwards we have libmariadb3 and for backwards compatibliity symlinked libmariadbclient and libmysqlclient.

          otto Otto Kekäläinen added a comment - These are now fixed in multiple steps, among others in https://github.com/MariaDB/server/commit/dcfe6cb834b8106e384e24ac038cf6a6456fa9ee From 10.2 onwards we have libmariadb3 and for backwards compatibliity symlinked libmariadbclient and libmysqlclient.

          People

            otto Otto Kekäläinen
            otto Otto Kekäläinen
            Votes:
            1 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.