RFC v2: adding a temporary, non-BC gauranteed, 'private' library

Kevin Krammer kevin.krammer at gmx.at
Fri Apr 24 20:16:28 BST 2009


On Friday, 2009-04-24, Friedrich W. H. Kossebau wrote:

> > It is just another external library, i.e. it is either optional for
> > additional features or required, in which case it needs a CMake check for
> > the required version.
>
> Sure. But see this from a KDE developers point of view: It increases the
> complexity of the whole build process. Where one was used to think in
> modules without needing to care much what is contained, one now also has to
> always think of the individual packages which are linked into the
> dependency chain and always need to be up-to-date.

As with any other external library I would just install the respective 
development package.
At least I don't build all the dependencies from source when building KDE from 
trunk.

> Where it was
> 	kdesupport->kdelibs->kdepimlibs->kdebase->kdeutils
> it would become
> 	kdesupport->kdelibs->knotificationitem->kdepimlibs->kdebase->oktetalibs->
> kdeutils
> and perhaps worse, if more developers take chance of giving their libs some
> publish feedback before freezing the API.

No, in both cases
kdelibs->kdepimlibs->module.

You would only need to inject knotificationitem if for whatever reason you 
want to build an not-yet-released version.
Very similar to how you'd do it if you want Phonon from kdesupport/trunk 
rather than using the one in Qt.

> > > Or kdepimlibs
> > > (who perhaps might be happy to have some more time to make the
> > > akonadi-based APIs stable)?
> >
> > We do that in module private libs in kdepim.
>
> Private as in? Are the libs used outside of kdepimlibs?

They are in kdepim, so yes outside of kdepimlibs.

> Are headers installed whose API changes incompatible for 4.x+1?

Potentially

> Would kdepim 4.3 compile against kdepimlibs 4.4, or rather, would kdepim
> 4.3 compiled against kdepimlibs 4.3 run with kdepimlibs 4.4?

Sure. KDE does have an API and ABI stability policy and kdepimlibs is part of 
the KDE development platform.

> Then I just guessed these published parts of kdepimlibs are still candidate
> for changes, so it might have been a bad example :)

Public API can and will only be changed in a compatible way.
That's why we have the private libs.

> > If they are specific to a certain version of Okteta, just release them
> > with that version, no?
>
> But as far as I was told once they are released and published with
> kdeutils, I have to ensure ABI-stability until KDE5. Or? Or do you mean
> release them from extragear?

Well, if you define the stability guarantee for your libs that way, then you 
should probably stick to it.
I just thought you might not follow the stricter rules for platform libraries.
Usually application level APIs are far less stable.

Cheers,
Kevin

-- 
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20090424/cc68636c/attachment.sig>


More information about the kde-core-devel mailing list