[debian-mysql] Bug#759309: Bug#759309: Must not Provide: libmysqlclient-dev

Otto Kekäläinen otto at seravo.fi
Tue Aug 26 05:40:27 UTC 2014


2014-08-26 6:08 GMT+03:00 Lisandro Damián Nicanor Pérez Meyer
<perezmeyer at gmail.com>:
> On Tuesday 26 August 2014 04:01:05 Steve McIntyre wrote:
>> Package: libmariadbclient-dev
>> Version: 5.5.39-1
>> Severity: grave
>>
>> libmariadbclient-dev currently includes "Provides: libmysqlclient-dev"
>> but does not actually include a libmysqlclient. This is breaking
>> builds on buildds and wasting porter time. Please remove this
>> ASAP. :-(
>
> FWIW an example in [0]. Note that -lmariadbclient_r is added but -
> lmysqlclient_r is not being removed, and that's because the pro file expects
> mysqlclient_r to be there. The package can't provide somthing that doesn't
> ships.
>
> [0] <https://buildd.debian.org/status/fetch.php?pkg=qt4-x11&arch=arm64&ver=4%3A4.8.6%2Bgit64-g5dc8b2b%2Bdfsg-1&stamp=1409020017>

I can see the log has the line:
    g++ -Wl,-O1 -o mysql_r mysql.o     -lfontconfig
-L/usr/lib/aarch64-linux-gnu -lmariadbclient_r -lpthread -lz -lm -lssl
-lcrypto -ldl -lmysqlclient_r
    /usr/bin/ld: cannot find -lmysqlclient_r

Why are you trying to build with both mariadbclient_r and
mysqlclient_r at the same time? Both provide a way to access the same
back-end. Both bibmysqlclient can also talk to a MariaDB server and
libmariadbclient can also talk to a MySQL server. They are almost the
same library, with the MariaDB version having some additions.

What do you mean with "pro file"? I am not familiar with what "pro"
means in this context.

The MariaDB control file looks like this because it cannot be
co-installed with libmysqlclient-dev, but it can be used to the same
purpose:

Package: libmariadbclient-dev
Architecture: any
Section: libdevel
Depends: libmariadbclient18 (= ${binary:Version}),
         zlib1g-dev,
         ${misc:Depends},
         ${shlibs:Depends}
Breaks: libmysqlclient-dev
Replaces: libmysqlclient-dev
Provides: libmysqlclient-dev
Description: MariaDB database development files


Upstream MariaDB only ships with libmysqlclient.so, while I have
changed the Debian version to ship the library using the name
libmariadbclient.so, because I got feedback that it is not good policy
for the MariaDB package to ship a so name that also exists in another
package. Maybe this re-name decision should be re-visited, and MariaDB
should rather ship with a libmysqlclient.so, which would actually also
solve this issue as MariaDB packages would be a more complete
drop-in-replacement for MySQL here?

There is also a LGPL licensed version of the MariaDB client libs, and
it has been uploaded to Debian experimental. Maybe I should remove
libmariadbclient.so completely from the mariadb-5.5 source package and
recommend that people separately install the new client library
package and use it to interface MariaDB if they wan MariaDB-specific
features, like the async API?

In the light of this issue you marked severe, what do you suggest
would be the best solution?

Thank you for your report and feedback!



More information about the pkg-mysql-maint mailing list