Bumping SOVERSION

laurent Montel montel at kde.org
Fri Mar 15 19:12:35 GMT 2019


Le vendredi 15 mars 2019, 18:00:23 CET Daniel Vrátil a écrit :
> On Friday, March 15, 2019 4:20:11 PM CET Sandro Knauß wrote:
> > Hey,
> 
> Hi Sandro,

Hi,

> > we already had some discussions about bumping the SOVERSION and the
> > discussion ended with something like, that I should evaluate a solution
> > and
> > come up with a suggestion[0]. I implemented a abi-checker on our CI, so we
> > can now answer the question when we break the ABI and need to bump the
> > SOVERSION. And the CI tells me that less than 50% of our libraries need to
> > be bumped base 18.12.0. You can check yourself:
> > https://build.kde.org/job/Applications/job/messagelib/job/kf5-qt5%20SUSEQt
> > 5. 10/lastSuccessfulBuild/artifact/compat_reports/
> > KF5MessageViewer_compat_report.html
> > 
> > I started to bump the SOVERSIONS yesterday but Laurent reverted my changes
> > [1]. Laurent please instead of silently revert commits inform the author
> > of
> > the commit and start a discussion here. I'm not a random dev than drive by
> > and breaks stuff.
> 
> I'll side with Laurent on this - I believe in this case it is you who should
> have announced it on the list for discussion first before starting to
> implement this kind of change, not after someone reverted your commits. I
> personally already forgot about this discussion, so to me this change came
> out of the blue, same for Laurent, I'm sure.

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.


> 
> > Bumping the SOVERSION, if we break ABI is quite important for all Linux
> > distros, as they can need to handle the case, that kdepim broke it ABI and
> > rebuild everything against the new ABI. And please keep in mind we also
> > have users outside kdepim that are using kdepim libs that don't have the
> > same release schedule (zanshin, digikam,...). Why bumping helps? I can
> > check this app is linked against the old version aka I need to recompile.
> Just to refresh my memory, is it because only the major soversion (5) is
> taken in account by distributions and considered relevant, e.g. 5.10.0 and
> 5.11.0 are seen as having the same ABI? Considering how often and unevenly
> we break ABI in our libraries the numbers would get pretty crazy pretty
> quickly.

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

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

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.
Increase ABI version for pimcommon ?? which package uses it outside pim ?

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 ?


> As a random idea, what about encoding the full version into a single number
> (5.10.2 -> 51002) and use that for soversion? This way new version would
> automatically get a new soversion and the numbers would still remain sane
> and consistent.
> 
> > I got a lot of bugreports and workarounds in Debian because of not bumped
> > libs and issues, because the builders take some hours to build kdepim for
> > every supported arch so parts of kdepim got available before others and
> > this triggered core dumps, because of missing symbols etc. For Debian I
> > workaround this by patching the packages to ship a SOVERSION 5abi1 or
> > 5abi2.
> > 
> > Care about the SOVERSION is really nothing about giving any ABI stability
> > guarantees. Giving ABI stability guarantees would mean, that we don't need
> > to bump the SOVERSION.
> > 
> > It is simple bookkeeping, to make sue users of our libs get the
> > information, that they need to recompile.
> > 
> > As we now the first freeze (dependency frezze happend) it would be great
> > to
> > come to conclusion in the next days.
> 
> Maybe it is too late to implement this at this point before freeze. Since
> you now have something to report, maybe it would make sense to wait with
> this discussion for the Toulouse sprint in couple weeks, we can decide if
> and how to implement this for 19.08?

For me we can't change it now as it's the freeze today.


> 
> Regards,
> Dan
> 
> > sandro
> > 
> > [0] https://community.kde.org/KDE_PIM/Meetings/
> > Toulouse2016#Bumping_so_version_number
> > [1]
> > https://commits.kde.org/pimcommon/e5b225022a651568ce49d14efa7c5da3acbd7012


-- 
Laurent Montel | laurent.montel at kdab.com | KDE/Qt Senior Software Engineer 
KDAB (France) S.A.S., a KDAB Group company Tel. France +33 (0)4 90 84 08 53, 
 www.kdab.fr KDAB - The Qt, C++ and OpenGL Experts - Platform-independent 
software solutions 





More information about the kde-pim mailing list