[KDE/Mac] Cross-platform with kdeinit5, klauncher5, kded5 and friends

Jeremy Whiting jpwhiting at kde.org
Sun Feb 1 02:28:21 UTC 2015


On Sat, Jan 31, 2015 at 2:10 AM, David Faure <faure at kde.org> wrote:

> On Friday 30 January 2015 16:34:51 Jeremy Whiting wrote:
> > Ok, I took a deep look inside kbuildsycoca5 today. I ran Instruments on
> it
> > and found as Marko already pointed out most of the time spent in there is
> > delving deep into /Applications subfolders. I'm not sure exactly what
> it's
> > looking for, mostly .desktop files from what I saw, but it's not finding
> > any.
> Yes, .desktop files.
> Since you're patching Qt anyway for Macports (it seems), you should
> probably
> change ApplicationsLocation to remove /Applications and only keep
> /opt/local/share/applications in there.

Yeah, that would work. I'd rather not have it remove /Applications, but it
could certainly add /opt/local/share/applications to it's list of
ApplicationsLocation locations. I'm a bit conflicted on the QSP issue
currently. I can see as Rene pointed out it may be good to give all unixy
paths when configured with a different flag at build time, but what if I
created an application that used some kde frameworks but wanted it to give
me OSX type paths for some things?

> > Traversing the whole tree is time consuming though, and we know it's
> > not likely to find .desktop files inside any .app bundles, so I added the
> > attached patch and that sped up both kbuildsycoca5 itself (running from
> the
> > terminal manually)
> Patch looks good, you can commit it.

Ok, I will, I'll give it more thought, but I wonder which parts of
kded/kbuildsycoca make sense on non plasma platforms. Another question that
might help clarify this, do Gnome/Unity, other linux desktop environments
use the cache kbuildsycoca creates when building their menus or is it
strictly used by plasma (or rather kickoff/kicker which is part of plasma)

> > Could you point me at some documentation or explain to me a bit what the
> > difference between kinit, kded, kbuildsycoca and klauncher is? I know
> > kbuildsycoca checks for system configurations and caches them, like
> > contents of .desktop files and such, but I'm not sure where the others
> fit
> > in or what they are for exactly.
> kded watches the same dirs, so that it can launch kbuildsycoca when a
> .desktop
> file is installed/removed/changed.
> kinit and klauncher are mostly separate from that. kinit is the "fork+exec
> to
> avoid relocations" mechanism (see kinit/README.md), and klauncher is the
> DBus
> API for it (kinit can't initialize DBus, since that would be inherited
> after
> forking).

Ok, that does help explain what they are. Next is to know what uses them.
Are they required for kparts to work, or for KService/KServiceTypeTrader to
work? or is only kded required for those to function properly?

Thanks for the information, I do appreciate it.

> --
> David Faure, faure at kde.org, http://www.davidfaure.fr
> Working on KDE Frameworks 5
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-mac/attachments/20150131/1afcdc43/attachment.html>

More information about the kde-mac mailing list