[KDE/Mac] Review Request 126161: OS X housekeeping

René J.V. Bertin rjvbertin at gmail.com
Wed Nov 25 16:19:07 UTC 2015

This is an automatically generated e-mail. To reply, visit:

(Updated Nov. 25, 2015, 5:19 p.m.)

Review request for KDE Software on Mac OS X and KDE Frameworks.


This revision takes into account all fixed issues, excluding the still open one being discussed with David.

I have also copied and adapted the code that determines the kdeinit socketname from kdeinit/kinit.cpp to wrapper.cpp , so kwrapper5 now opens the correct socket file. There should really be some common code for this, rather than duplicating it; there was a warning comment somewhere in the algorithm but that didn't help getting other parts of it out of sync.

I notice that `klauncher` leaves socket files (`klauncherL<PID>.1.slave-socket`) behind, at least when I send it a SIGHUP. It'd be nice if those files were removed when klauncher exits; would that be feasible and if so, where? I couldn't find the code creating the socket yet.

Repository: kinit


This patch addresses several issues with the OS X adaptations:

-1 replaces the obsolete Q_OS_MAC with Q_OS_OSX
-2 builds the relevant applications `nongui` instead of as app bundles
-3 turns klauncher into an "agent" by setting `LSUIElement` to true programmatically
-4 ports a patch that has been in MacPorts' `port:kdelibs4` since October 14th 2009, which prevents a kdeinit crash that is caused by calling exec after `fork()` in an application that has used non-POSIX APIs and/or calling those APIs in the exec'ed application. This patch (originally by MacPorts developers Jeremy Lainé and Jeremy Lavergne) rearranges call order and uses a proxy application to do the actual exec.

Diffs (updated)

  src/klauncher/klauncher.h e155f72 
  src/start_kdeinit/CMakeLists.txt 46d6cb3 
  src/kdeinit/kinit.cpp a18008a 
  src/kdeinit/CMakeLists.txt f94db71 
  src/wrapper.cpp 95b7ec2 
  src/klauncher/klauncher.cpp 8b3d343 
  src/klauncher/klauncher_main.cpp f69aaa5 
  src/klauncher/CMakeLists.txt 746edfa 
  src/kdeinit/kdeinit5_proxy.cpp PRE-CREATION 

Diff: https://git.reviewboard.kde.org/r/126161/diff/


On OS X 10.9.5 with Qt 5.5.1 and KF5rameworks 5.16.0 . With this patch, starting `kded5` will launch kdeinit5 and klauncher5 as expected, but `kdeinit5 --kded` does not yet launch `kded5`. This is probably acceptable for typical KF5 use on OS X (kded5 can be launched as a login item or as a LaunchAgent) but I will have another look at why the kded isn't started.

I am not yet able to perform further testing; practice will for instance have to show whether point 2 above needs revision (apps that need to be installed as app bundles).

Similarly it will have to be seen whether point 3 above has any drawbacks. Applications running as agents do not show up in the Dock or App Switcher. Thus, klauncher will not be able to "turn itself into" an application that does have a full GUI presence with my current modification. I don't know if that's supposed to be possible though.
NB: I have been building the KDE4 klauncher in a way that makes it impossible to construct a GUI at all, so I'm not expecting issues in KF5 as long as klauncher's role hasn't evolved too much.


René J.V. Bertin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-mac/attachments/20151125/df68f48e/attachment-0001.html>

More information about the kde-mac mailing list