[KDE/Mac] OS X : org.kde.klauncher5 was not provided by any .service files

René J.V. Bertin rjvbertin at gmail.com
Tue Nov 24 11:37:28 UTC 2015


On Tuesday November 24 2015 21:45:35 Ian Wadham wrote:

Hi Ian,

>> I only see "org.kde.XXX' references in the CMake files and in the source, so where do the "kf5_org.kde.XXX" files come from -- not because I have KDE4 equivalents installed I hope?
>> How is kdeinit_exec_wait supposed to find org.kde.klauncher5 if there's no file with that name, nor any *.KLauncher.service file?
>
>I seem to remember that Jeremy Whiting found several service files that
>contained wrong data and file paths, though I do not remember the details,
>nor do I know whether the bad files would affect your situation.  I think the
>same problem (with the files) may also exist in Macports' KDE 4 ports.

Indeed, starting kdeinit4 by hand gives a very comparable error ... but then it works afterwards.
I usually let it be started by launching kded4, though.

>> There there's also a crash in kdeinit5 because (from the looks of it) it does an exec-after-fork,
>> which is allowed only in very specific conditions on OS X. It's possible that one was already
>> solved once for kdeinit4, I haven't yet had the time to check that out.
>
>I think there is an option in kdeinit4 that makes kdeinit4 fork and re-exec
>itself, ostensibly to avoid the problem you mention.

I've had a further look, and it appears that *someone* wrote a workaround patch for port:kdelibs4 that rearranges the code in kinit.cpp (specifically in the function that forks and re-execs "self") to avoid the crash on more recent OS X version. It also adds a helper thingy; figuring this out is on my plate for today.

It'd be nice to know who wrote that patch though, Nicolas maybe? This should have been submitted for upstream inclusion long ago, so I do intend to do that once (and if) I get this working. It'd be nice to give credit where credit is due.

> Nowadays, I believe,
> kdeinit has been fixed so as to show something more meaningful in "ps".

Haven't compared the ps output on Linux and OS X, but I still have a "sh*load" of entries showing up that match "kdeinit" when I'm running kmail!

> One advantage of kdeinit being an app is that you can include it in your
> OS X "Users & Groups, Login items" settings, so that it is always running.

I think that it needs to be started with the appropriate option(s) if it's to have a kind of bootstrapping role.
It would probably make more sense to auto-start kded (insofar as it's of any use to the user; it is if you run kmail) ... but that can also be done via launchctl, the way we start the dbus daemon.

And the problem with that is (probably) that there is no way to impose an order of execution on things launched that way, so that might be a reason to build kded as an app bundle, so it can be started as a login item? Presuming *those* are started after launchctl had its way?
It *that*'s not the case either, we're probably left with writing a script that somehow waits for the dbus daemon to be accessible.

R.


More information about the Kde-frameworks-devel mailing list