Bumping SOVERSION

Sandro Knauß sknauss at kde.org
Fri Mar 15 20:41:01 GMT 2019


Hey,

> Sorry but a discussion that we did in 2016... We are in 2019 and for sure I
> forgot this discussion.
> 
> The freeze is today and you just started to do it yesterday without speaking
> about it.

it is dependency freeze - that has nothing to do with SOVERSIONs. So we have 
time till the rc is released. The Dependency is still the same. It is just 
about if  libfoo.so symlinks  to libfoo.so.5 or libfoo.so.6. Exactly this time 
after dependency freeze it is the best time to bump the ABIs as we now focuing 
making everything ready for releasing.

> ABI in kdepim is not stable, we decided it when we switched to kf5.

ACK - I'm totally with you!

> We break each month for some lib.
> I don't want to have a .so.15 in 1 years...

nope. We do not release every month We release a new major version every 4 
months! But what you have against a so.15? There is nothing why you should be 
afraid of an so.15. see answers to dan for more details.

> After I don't understand why it's necessary to do it as when we update
> kdepim we have a dependancies against all pim package.

Okay let's make an example you have Debian and have Kontact 5.10 installed and 
Zanshin installed. Now you upgrade Kontact to 5.11, so every dependency is 
getting updated. Now you start Zanshin and it crashed, because a symbol in 
Akonadi got removed. If we have propper SOVERSION than the upgrade of Kontact 
triggers libAkonadi1 replacement with libAkonadi2 and would this trigger to 
update Zanshin too, because apt see oh a new Zanshin build using the new 
libAkonadi2. Problem solved the next use of Zanshin do not crash.

> Increase ABI version for pimcommon ?? which package uses it outside pim ?

Okay pimcommon is maybe a bad example, as I don't know external users of this 
yet. But also internally inside kdepim it helps to track Distributions, about 
what need to get recompiled and what can be shipped to the users when. Until 
17.12 I tried without bumping the SOVERSION in Debian and I got a lot of weird 
reports that where often solvable, by okay I need to trigger a rebuild of this 
and that or treat people to also update another library. I know there are a 
lot workarounds to make sure, those issues can't happen, but bumping the 
SOVERSION is such simple, why don't do this?

> And how do you manage a code as:
> 
> #if QT_VERSION > 5.12
> void foo (QRegularExpression )
> #else
> void foo (QRegExp )
> #endif
> 
> ?
> We have it in kpimtextedit.
> So you want that we increase ABI depend against Qt version ?

Nope, we ship the same ABI but Qt internally makes sure, that you are only 
able to build with the same Qt version.

Regards,

sandro






More information about the kde-pim mailing list