Review Request 126161: OS X housekeeping
René J.V. Bertin
rjvbertin at gmail.com
Fri Apr 22 16:03:18 UTC 2016
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/126161/
-----------------------------------------------------------
(Updated April 22, 2016, 6:03 p.m.)
Review request for KDE Software on Mac OS X and KDE Frameworks.
Changes
-------
New version that avoids code duplication, and adds the minimum number of additional new files:
- kinit.h that contains the declarations for the few functions from kinit.cpp that are called from kinit_mac.mm
- kinit_mac.h that contains the declarations for the Mac-specific functions in kinit_mac.mm
The Unix/X11 `launch()` function could be moved to its own file, but that didn't strike me as overly necessary. The MS Windows kinit_win.cpp seems sufficiently different that it probably won't be sharing any code with kinit.cpp anyway.
`HAVE_X11` and `HAVE_XCB` were treated separately, so I introduced a few `#if HAVE_X11 || HAVE_XCB` to be on the safe side. I presume one of the two includes the other, and hope I didn't introduce regressions in the places where I combined this conditional code?
Repository: kinit
Description
-------
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/kdeinit/CMakeLists.txt ae619f7
src/kdeinit/kinit.h PRE-CREATION
src/kdeinit/kinit.cpp ca18603
src/kdeinit/kinit_mac.h PRE-CREATION
src/kdeinit/kinit_mac.mm PRE-CREATION
src/klauncher/CMakeLists.txt a8e6c3e
src/klauncher/klauncher.h 92f57fa
src/klauncher/klauncher.cpp baa5649
src/klauncher/klauncher_main.cpp 710c889
src/start_kdeinit/CMakeLists.txt 46d6cb3
src/wrapper.cpp 9cb0a71
Diff: https://git.reviewboard.kde.org/r/126161/diff/
Testing
-------
On OS X 10.9.5 with Qt 5.5.1 and KF5rameworks 5.16.0 as well as Qt 5.6 and 5.20.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.
Thanks,
René J.V. Bertin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20160422/c5e80f7d/attachment-0001.html>
More information about the Kde-frameworks-devel
mailing list