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

MariaDB 10.2 client library (Debian 9/Stretch) not compatible with Perl MySQL DBI module

    Details

      Description

      Good morning,

      MariaDB 10.2.8 client library as provided by the libmariadb3 package isn't compatible with the perl MySQL DBI module. There are changes made somewhere (surely in header files) that break linking:

      Debian 9/Stretch provides MariaDB 10.1 and therefore the perl MySQL DBI module is build against the MariaDB 10.1 client library. However, for our software, we also provide latest MariaDB 10.2 through your own repository.

      The problem is that when installing your libmariadb3 and libmariadbclient18 packages from your MariaDB 10.2 repository, linking for the Perl MySQL DBI module (libdbd-mysql-perl package from Debian 9/Stretch repository) is broken, resulting to the following error:

      install_driver(mysql) failed: Can't load '/usr/lib/x86_64-linux-gnu/perl5/5.24/auto/DBD/mysql/mysql.so' for module DBD::mysql: /usr/lib/x86_64-linux-gnu/libmariadbclient.so.18: version `libmariadbclient_18' not found (required by /usr/lib/x86_64-linux-gnu/perl5/5.24/auto/DBD/mysql/mysql.so) at /usr/lib/x86_64-linux-gnu/perl/5.24/DynaLoader.pm line 187
      

      Further details:

      root@stretch:~# ldd /usr/lib/x86_64-linux-gnu/perl5/5.24/auto/DBD/mysql/mysql.so
      /usr/lib/x86_64-linux-gnu/perl5/5.24/auto/DBD/mysql/mysql.so: /usr/lib/x86_64-linux-gnu/libmariadbclient.so.18: version `libmariadbclient_18' not found (required by /usr/lib/x86_64-linux-gnu/perl5/5.24/auto/DBD/mysql/mysql.so)
      	linux-vdso.so.1 (0x00007ffdf55dd000)
      	libmariadbclient.so.18 => /usr/lib/x86_64-linux-gnu/libmariadbclient.so.18 (0x00007f4dae6dc000)
      	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4dae4bf000)
      	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f4dae2a5000)
      	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4dadfa1000)
      	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4dadd9d000)
      	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4dad9fc000)
      	libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f4dad790000)
      	libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f4dad2fd000)
      	/lib64/ld-linux-x86-64.so.2 (0x000055dfd3436000)
       
      root@stretch:~# dpkg -S /usr/lib/x86_64-linux-gnu/libmariadbclient.so.18
      libmariadb3: /usr/lib/x86_64-linux-gnu/libmariadbclient.so.18
       
      root@stretch:~# LANG=C aptitude show libmariadbclient18
      Package: libmariadbclient18              
      Version: 10.2.8+maria~stretch
      State: installed
      Automatically installed: no
      Priority: optional
      Section: libs
      Maintainer: MariaDB Developers <maria-developers@lists.launchpad.net>
      Architecture: amd64
      Uncompressed Size: 10.2 k
      Depends: libmariadb3 (= 10.2.8+maria~stretch)
      Provided by: libmariadb3 (10.2.8+maria~stretch)
      Description: Virtual package to satisfy external depends
       MariaDB is a fast, stable and true multi-user, multi-threaded SQL database server. SQL (Structured Query Language) is the most popular database query language in the world.
       The main goals of MariaDB are speed, robustness and ease of use. 
       
       This is an empty package that depends on the libmariadb3 package.
      Homepage: http://mariadb.org/
      Tags: role::shared-lib
       
      root@stretch:~# LANG=C apt-cache policy libmariadb3 libmariadbclient18
      libmariadb3:
        Installed: 10.2.8+maria~stretch
        Candidate: 10.2.8+maria~stretch
        Version table:
       *** 10.2.8+maria~stretch 1001
             1001 http://mirror.netcologne.de/mariadb/repo/10.2/debian stretch/main amd64 Packages
              100 /var/lib/dpkg/status
      libmariadbclient18:
        Installed: 10.2.8+maria~stretch
        Candidate: 10.2.8+maria~stretch
        Version table:
       *** 10.2.8+maria~stretch 1001
             1001 http://mirror.netcologne.de/mariadb/repo/10.2/debian stretch/main amd64 Packages
              100 /var/lib/dpkg/status
           10.1.23-9+deb9u1 500
              500 http://ftp.fr.debian.org/debian stretch/main amd64 Packages
      

      The only way to fix the problem is to pin the libmariadbclient18 (10.1) package from Debian repository as follow:

      Package: *
      Pin: release o=MariaDB,n=stretch
      Pin-Priority: 1001
       
      Package: libmariadbclient18
      Pin: release o=Debian,n=stretch
      Pin-Priority: 1002
      

      See also: https://github.com/i-MSCP/imscp/blob/2a63e423bbd3cf2bae08f89d4ed9818219c84fdc/autoinstaller/Packages/debian-stretch.xml#L288

      Thank you.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                serg Sergei Golubchik
                Reporter:
                nuxwin Laurent Declercq
              • Votes:
                7 Vote for this issue
                Watchers:
                11 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: