Bumping SOVERSION
Volker Krause
vkrause at kde.org
Sat Mar 16 10:32:59 GMT 2019
On Friday, 15 March 2019 21:41:01 CET Sandro Knauß wrote:
> > 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.
While this might be mostly cosmetic in some cases, this is at least a problem
for things using the KF5 library namespace already, we'd be out of sync with
KF5 (so)versioning for stuff supposed to move there eventually.
That btw is the real solution to this IMHO, getting ABI guarantees back to
what used to be kdepimlibs.
> > 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.
Not sure I understand your answer here:
- Qt is updated from 5.11 to 5.12, ABI compatible, it's SOVERSION stays "5",
therefore no rebuild of packages depending on it
- kpimtextedit gets rebuild due to a minor bugfix, not changing its ABI, no
SOVERSION bump. However now the #ifdef kicks in now and changes the ABI.
- packages depending on kpimtextedit don't notice the ABI change and are not
rebuilt -> boom
Regards,
Volker
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20190316/c2bdf9a9/attachment.sig>
More information about the kde-pim
mailing list