kdeinit5 on OS X

René J. V. Bertin rjvbertin at gmail.com
Tue Nov 24 22:46:05 UTC 2015


David Faure wrote:


> I thought app bundles led to more GUI initializations than non-app bundles,
> and clearly the person writing the above (Benjamin Reed, CC'ed) found that to
> be true as well, at least back then.

Yeah, that used to be true, question is to what extent that is still the case.
Best way is to try and see:
https://git.reviewboard.kde.org/r/126161/

> But maybe things changed since then. I don't know what quartz is. How does
> that relate to Carbon and Cocoa ?

Good question, one I never really had the answer to. AFAIU Quartz is (or is what 
they called) the underlying software layer that handles the GUI, with which you 
can interact either through Cocoa or the old Carbon (which itself started life 
as a kind of porting layer designed to ease the transition from Mac OS to Mac OS 
X).

> From qstandardpaths.cpp:
> static QString checkExecutable(const QString &path)
> {
>     const QFileInfo info(path);
>     if (info.isBundle())
>         return info.bundleName();
> 
> ^ it's supposed to find app bundles. If it doesn't, feel free to debug
> qstandardpaths.cpp and submit a patch, I'll review it.

That doesn't show where `path` comes from ... What I really meant with my 
question is whether if finds the executable inside an app bundle that is itself 
not in the PATH but that can be found via LaunchServices.

> You would need to start an executable via kdeinit, e.g. using  `kwrapper5
> kwrite`. Don't just check that kwrite starts up, check the debug output or the
> process list to make sure it was started by kdeinit forking. If kdeinit5 isn't
> found, there's fallback for starting the app directly.

Well, kwrapper5 kwrite doesn't start kwrite.app which lives inside 
/Applications/MacPorts/KDE4 (so the BundleExec is 
/Applications/MacPorts/KDE4/kwrite.app/Contents/MacOS/kwrite). Using the 
complete path does start the application, but with an error that the kdeinit5 
socket isn't found (internal confusion about its name, apparently). When I check 
ps, kwrite's parent is the shell I launched kwrapper5 from. Meaning kwrapper5 
did a direct exec, apparently.

Again, see the RR. I have entitled it "housekeeping" because that's really what 
it is :)

R.



More information about the Kde-frameworks-devel mailing list