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