[debian-mysql] Bug#855244: libmariadbclient-dev: hardcoded -lmysqlclient, package not providing it though

Michael Prokop mika at debian.org
Wed Feb 15 21:39:04 UTC 2017

Package: libmariadbclient-dev
Version: 10.1.21-5
Severity: serious

% dpkg --list | grep mariadb
ii  libmariadbclient-dev     10.1.21-5            amd64        MariaDB database development files
ii  libmariadbclient18:amd64 10.1.21-5            amd64        MariaDB database client library

% grep Libs /usr/share/pkgconfig/mariadb.pc
Libs: -L${libdir} -lmysqlclient -lpthread -lz -lm -ldl
% grep mysqlclient /usr/bin/mysql_config
libs="-L$pkglibdir  -lmysqlclient -lpthread -lz -lm -ldl"

The hardcoded -lmysqlclient is wrong in this situation though:

% cat > demo.c << EOF
#include <stdio.h>
#include <mysql.h>

MYSQL  *conn;

void main(int argc, char *argv[])
  conn = mysql_init(NULL);
% gcc -o demo demo.c $(pkg-config --cflags mariadb) $(pkg-config --libs mariadb)
/usr/bin/ld: cannot find -lmysqlclient
collect2: error: ld returned 1 exit status

% gcc -o demo demo.c $(mysql_config --cflags) $(mysql_config --libs)
/usr/bin/ld: cannot find -lmysqlclient
collect2: error: ld returned 1 exit status

If invoked with manually provided -lmariadbclient it's fine though:

% gcc -o demo demo.c $(pkg-config --cflags mariadb) -lmariadbclient
% gcc -o demo demo.c $(mysql_config --cflags) -lmariadbclient

As an alternative/workaround installing the
default-libmysqlclient-dev + libmariadbclient-dev-compat packages
also fixes the problem with -lmysqlclient usage.

This clearly shouldn't reach the stable stretch release as is, IMO.


More information about the pkg-mysql-maint mailing list