> On July 28, 2014, 12:57 a.m., Ian Wadham wrote: > > kinit/kinit.cpp, line 119 > > <https://git.reviewboard.kde.org/r/119497/diff/1/?file=293442#file293442line119> > > > > The real issue is on this line. I do not know how "MAC_DISPLAY" got > > into the act, but clearly it has not been tested recently, if ever. There > > is no "MAC_DISPLAY" in Apple OS X. > > > > Also "DISPLAY" is a threatened species in Mac OS X and its existence in > > an installation appears to depend, in more recent versions of Apple OS X, > > on whether FOSS XQuartz (a non-Apple X11 emulator) is installed. > > > > It is not clear ATM whether the socket name on which kinit "listens" > > needs to be qualified in some way on Apple OS X, as opposed to Linux and > > X11, or whether $DISPLAY could safely have an empty string as its value. > > > > Also, I find it questionable that kinit.cpp, wrapper.c and kcrash.cpp > > use different methods or cloned source-code to evaluate the all-important > > socket name on which they will communicate. See kdeui/util/kcrash.cpp line > > 637. There must be a better way to program this... > > > > That is why I would like to see some KDE core developers reviewing this > > code. I am not a KDE core developer. > > David Faure wrote: > The reason we have $DISPLAY in the kdeinit socket name on X11, is to > allow the same user to have more than one graphical session. > I don't mean two full KDE-workspace instances running (they'd overwrite > config files), but it happened to me sometimes that I would use ssh -X from > another machine, then start one app (which wasn't running in the main > session). > What happens then is that another kdeinit4 starts, in that separate > session (which has a separate dbus session). So it should all be separate > from the main session, hence $DISPLAY. > > AFAIK this use case doesn't apply to Mac, so it would be ok to have an > empty string in there. > > RJVB Bertin wrote: > It doesn't, indeed, and OS X doesn't allow non-X11 apps to be started > remotely. > > (It doesn't really work for me on Linux either, launching a KDE app from > an ssh-X session rarely if ever started a new dbus session for me ...)
(It should have, after dbus got support for autostarting session, but otherwise you can always do it by hand eval `dbus-launch` ; kdeinit4 ; kmyapp ) - David ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/119497/#review63291 ----------------------------------------------------------- On July 27, 2014, 9:15 a.m., Ian Wadham wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/119497/ > ----------------------------------------------------------- > > (Updated July 27, 2014, 9:15 a.m.) > > > Review request for KDE Software on Mac OS X, KDE Runtime, kdelibs, and > Michael Pyne. > > > Repository: kdelibs > > > Description > ------- > > When a KDE app crashes in Apple OS X, it just disappears from the screen. At > the most, the user is invited to report the crash to Apple. AFAIK this has > been a problem in KDE on Apple OS X for years, leading to frustration with > KDE among Apple users and MacPorts developers and an attitude among KDE > developers of "Why does nobody report the problem(s) on bugs.kde.org?" > > It is my strong belief that the failure to report crashes of KDE apps in > Apple OS X also exists in Frameworks. > > So far I have identified a number of portability bugs in KDE on Apple OS X: 1 > in KCrash, 1 in kdeinit4 and 5 in Dr Konqi. Patches for the first two are > submitted in this review. Patches for three more are submitted in part 2 of > this review, against kde-runtime. I am still investigating the other two > problems in Dr Konqi - and there could be more than two... > > In this review we have two portability problems: > > 1. KCrash itself crashes (SIGILL) when it tries to close all file descriptors > and so Dr Konqi is not started. Some of the FDs belong to the Apple OS X > library (COCOA) and it crashes if they are closed prematurely. > > 2. The preferred way to start Dr K is via a socket message to kdeinit4, but > that fails in Apple OS X because kdeinit4 is listening with the wrong socket > name. The DISPLAY ID is missing from the end of the name. The fallback is for > KCrash to use fork() and exec(), which works, but could cause Dr K to be > polluted, depending on the nature of the crash. > > This "deafness" of kdeinit4 (and klauncher) could be causing other failures > in KDE software in the Apple OS X environment. > > > Diffs > ----- > > kdeui/util/kcrash.cpp 45eb46b > kinit/kinit.cpp e41845a > > Diff: https://git.reviewboard.kde.org/r/119497/diff/ > > > Testing > ------- > > Using Apple OS X 10.7.5 (Lion) on a MacBook Pro, I have installed KDE libs > via MacPorts (at version 4.12.5) and I have adapted kdesrc-build to run in an > Apple OS X environment and used it to test against the KDE 4.13 branch. I > have been testing with a KDE app that I can crash at will and using stderr > and Apple OS X Console log output to determine the outcome. > > Please note that I am the -only- KDE developer who has this kind of setup, > but I am NOT a KDE core developer. My experience before now has been in KDE > Games. However I used to be a UNIX and database guru before I retired in 1998. > > I NEED HELP from KDE -core- developers to proceed further. These problems > also exist in FRAMEWORKS, but I am as yet unable to build or test Frameworks > on Apple OS X. And I am sure there are many more Apple OS X portability > problems in KDE software. > > Without my patches, Dr Konqi is not started and, if it does get past its own > crash, KCrash reports: > KCrash: Attempting to start > /kdedev/kde4.13/kde4/lib/kde4/libexec/drkonqi.app/Contents/MacOS/drkonqi from > kdeinit > sock_file=/kdedev/kde4.13/home/.kde4.13/socket-Tara.local/kdeinit4__tmp_launch-svPd0L_org.x_0 > Warning: connect() failed: : No such file or directory > > With my patches, Dr Konqi can always be started directly (using fork()) and > it -will- start via kdeinit4 and klauncher but it immediately runs into a > privilege problem with Apple OS X (a problem which I am still investigating). > > I would not have got this far without help from Michael Pyne, Thomas Lübking > and several of the MacPorts developers, as well as the unfailing enthusiasm > and encouragement of my friend Marko Käning. > > > Thanks, > > Ian Wadham > >