Which package will provide the common KDE library version number ?

Alexander Neundorf neundorf at kde.org
Mon Feb 27 16:48:44 UTC 2012


On Friday 24 February 2012, Sune Vuorela wrote:
> On 2012-02-24, Alexander Neundorf <neundorf at kde.org> wrote:
> > * the version numbers of the projects themselves
> > * the required Qt version
> 
> This might differ across frameworks. I see no reason to artificial bump
> required version.

If this is handled properly for each library, then there is no problem. But 
this is a big "if".
A common setup will be that "core" developers are building all frameworks 
libraries.
Let's say some tier1 library, e.g. kcore needs Qt 5.1.2 and cmake 2.8.9.
Another tier1 library, let's say solid, maybe says it needs Qt 5.1.0 and cmake 
2.8.8.

But since due to kcore already Qt 5.1.2 and cmake 2.8.9 are installed and 
available, it may, no, it will happen that solid accidentially uses features 
from Qt 5.1.2 and/or cmake 2.8.9. The developer will not even notice that the 
required versions of Qt and cmake (5.1.0 and 2.8.8) are wrong.
So other developers will try to build solid and it will fail at buildtime.

I am quite sure this is what will happen if they don't share common required 
versions.
So you (as packager) will end up with packages stating wrong required 
versions.

IMO it is part of the "KDE" development model that a C++ developer not 
necessarily has to care a lot about e.g. translations, packaging, releasing 
and building, because there are specialist who do that in the team.
By not requiring common required versions, this task moves from the 
buildsystem maintainer to the C++ developer (because I will not go through 50 
libraries and check whether they use any features which don't match their 
required versions).
Do we really want that any of the let's say 20 libraries can require a newer 
version Qt and so enforce a rebuild for everybody ? or cmake ?
If they don't share an enforced common required versions, it is perfectly ok 
for them to do so.

Such a change really changes the libraries which make up kdelibs now into a 
set of *completely* separate libraries.
While this is nice and good in theory, in practice we may very well end up in 
version and dependency hell.

Are we really ready to go there ?

Maybe the few developers here on kde-frameworks are (except David), but I 
don't think this is true for everybody else.

...
> >> repositories to another solution having another script keeping another
> >> line in sync across repositories.
> >> 
> >> Either the "set(CURRENT_LIBRARY_VERSION 5.3.10)"
> >> or the
> >> find_package(KF5BuildSpecs 5.2.3).
> >> 
> >> And by chosing the latter we require everyone to do complete lock-step
> >> upgrades.
> > 
> > What  is a lock-step upgrade ?
> 
> A requirement to upgrade other packages to upgrade a different package.
> 
> Like FrameworkA and FrameworkB. One is related to fetching imap mails,
> the other   is related to paint svg images on screen.

Ok.
 
> I could imagine to want to be able to upgrade one without the other.
> Given we promise source and binary compatibilities, it should be
> perfectly possible. Except if we introduce artificial limitations like
> this one.

There are valid reasons to add these artificial limitations, see above.

Alex


More information about the Kde-frameworks-devel mailing list