Plasma Plugin Loading

Sebastian Kügler sebas at kde.org
Tue Sep 2 11:30:57 UTC 2014


On Tuesday, September 02, 2014 10:22:07 Marco Martin wrote:
> On Tuesday 02 September 2014, Sebastian Kügler wrote:
> > That means we can use a mechanism similar to the Qt one to query plugins
> > and then load them, KService would be out of the picture, so would ksycoca
> > be -- we can use the query language parser without KService.
> > KPluginTrader::applyConstraints(KPluginInfo::List &list, QString
> > constraints) is indeed public API. That's the the really complex piece of
> > code. The rest is basically looking up files in a bunch of directories.
> >
> > The upside is that we can then remove the separately installed .desktop
> > files in the services directories, and packages would be entirely
> > standalone, no ksycoca runs necessary anymore, installing a package is
> 
> only thing, could this ever be reasonably fast? to me tis reminds me an old 
> discussion about having a lot of little separate caches instead of the only
> big central sycoca..

I think this actually is "reasonably fast" for our current usecases, we're 
only hitting the disk once on startup, the rest is hot from the caches and in 
those cases, my measurements didn't show a big difference compared to ksycoca. 
That highly depends on the usecases, though, and if we want to support systems 
with insane amounts of Plasma packages installed, we might well want a cache 
here.
David Faure has ideas about this (but probably is lacking time to implement 
such a cache), and I'd hope it's something we can lift on for Plasma as well.

For SSD-backed systems, I think this is pretty much a non-issue.

> > simply a matter of unzipping it into the right package directory, removing
> > it also becomes easier, and we have less problems with stale or outdated
> > service files around. Regarding the packages and plugins itself, this is a
> > fully transparent change. It also means that plasmapkg can be cut down a
> > bit, likely more cleanups can be done in other places. Also, less
> > deprecation warnings.
> >
> > I think my brain is empty now.
> 
> Thanks a lot for clarifying, i'm trying now to assimilate the informations
> 
> maybe would be useful to put those informations in the wiki as well? just
> to  have a good recap what piece uses what plugin loading mechanism, why
> and what the plans are.

I can put it in a wiki, but my fear is that it will get outdated and that we 
end up with information that is inaccurate. Since not a lot of people 
understand all these details, nobody will know how reliable the information 
is. Thoughts?

Cheers,
-- 
sebas

http://www.kde.org | http://vizZzion.org | GPG Key ID: 9119 0EF9


More information about the Plasma-devel mailing list