proposal: remove KTextEditor interface from kdelibs repository

Kevin Krammer kevin.krammer at gmx.at
Tue Feb 1 11:53:30 GMT 2011


On Tuesday, 2011-02-01, Christoph Cullmann wrote:
> On Tuesday, February 01, 2011 11:11:08 am Sune Vuorela wrote:

> > So far, we as packagers have been told that applications can expect all
> > plugins (kio slaves, kparts, ...) located in kdelibs and kdebase-runtime
> > to be available, and segfault is a acceptable way of handling missing
> > things.
> 
> I agree that this will lead to additional dependency to kate package for
> some modules, but is this that bad?

It would require a new kdelibs package (the new one will no longer satisfy the 
same needs) or require that the packagers extract the interface related things 
from kate and add them as a dependency for the kdelibs meta package.

> > Application developers has made their *current* apps based on this, and
> > stuff will break by moving e.g. katepart out of kdelibs.
> > 
> > Now KTextEditor. KTextEditor is a public library in kdelibs. This means
> > that people can actually expect KTextEditor to be there when they do
> > 
> > find_package(KDE4 REQUIRED)
> 
> Yeah, and because of this requirement, which I can agree on, I didn't
> remove it from kdelibs, as its public API and I wanted to be SC + BC. And
> no, runtime components moving to other modules is not a SC/BC problem.

While it is SC/BC, it changes the contents of the kdelibs package.
Either packagers put in extra effort of extracting the now missing parts from 
Kate and add them as dependencies to kdelibs or they create a new version of 
kdelibs which no longer satisfies the dependency rules of all applications 
packaged against the old one (or with even more effort adding the old kdelibs 
package as an alternative for all program packages that do not use the runtime 
dependency).

> > It also means that people who builds from source can do svn up / git
> > pull  in kdelibs and install new requirements,make, make install and
> > still have all apps working.
> 
> They never can do that. Every now and then new dependencies come up. New
> versions of virtuoso needed, new lib*, whatever. You NEVER was able to rely
> that you can just up + recompile kdelibs and be fine. Normally it not even
> compiled...

The difference is that new dependencies add things to kdelibs so they can only 
be used by applications built against that new version. Removing a dependency 
would mean you'd have to check all applications on whether they need the 
removed dependency and explicitly add it to their dependency list.

Or do you mean kate would become an additional depencency of kdelibs (however 
that would work)?

> I still no get this problem. kdelibs adds more and more dependencies over
> the last years, same for other modules. Why is this dependency change
> different at all? It is not even a compile time dependency change...

My guess is that there are different rules for removal of functionality than 
there are for adding.
On source or binary level we can always add (non-virtual) functions but we 
cannot remove any.

When we make kdelibs depend on something, we usually put quite some effort 
into our layer to make sure we can change dependencies without changing 
dependencies for apps built on kdelibs, e.g. make kdelibs depend on different 
libraries for new Solid backend implementations without requiring new 
dependency rules for all applications using Solid.

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: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20110201/1355d5b9/attachment.sig>


More information about the kde-core-devel mailing list