← Back to team overview

maria-developers team mailing list archive

Re: libmysqlclient.so and Fedora-specific symbol versioning

 

On 01/08/2014 02:25 PM, Sergei Golubchik wrote:
Hi, Honza!

On Jan 07, Sergei Golubchik wrote:
On Jan 07, Honza Horak wrote:
Primarily, I'd like to hear what MariaDB upstream's position on that
is, if the sync can happen, but any ideas will be welcome.

I believe, Fedora's way is the correct one. Symbols that weren't
changed from libmysqlclient.so.16 should have libmysqlclient_16
version, new or modified symbols should have libmysqlclient_18
version. This way old applications that only use libmysqlclient_16.*
symbols will continue working just fine.

What is the point of versioning if all symbols have the same version -
if the version cannot be used to distinguish symbols, one can as well
use no version at all.

Another thought - as Fedora is the only one that did the symbol
versioning in libmysqlclient correctly, it'd be a pity to revert that
for compatibility with incorectly versioned libraries.

I'd consider doing the following instead (one of or all of that):

* report a bug to MySQL about incorrect versioning

* report a bug to Debian about incorrect versioning

* change the versioning to be correct and debian-compatible,
   by having old symbols to appear under both libmysqlclient_16 and
   libmysqlclient_18 version.

I don't believe Debian will use Fedora-style versioning, it's an
incompatible change after all. But they might want to use
"correct-and-compatible" approach with symbol aliases and two versions
per symbol.

Sergei, thanks a lot for both your advices, I'll try that. Anyway, do you happen to know from scratch how to define two versions for one symbol in the version script (what is the syntax)? I'm quite lost right now, but maybe you have experiences with it.

Honza


Follow ups

References