> On Sept. 15, 2016, 1:29 a.m., Aleix Pol Gonzalez wrote:
> > processcore/helper.cpp, line 133
> > <https://git.reviewboard.kde.org/r/128909/diff/2/?file=476882#file476882line133>
> >
> >     `KAUTH_HELPER_MAIN` doesn't work on OS X?
> 
> René J.V. Bertin wrote:
>     Thanks for picking up on this, I'd forgotten to make a comment about it.
>     
>     I think the macro does work, it's KAuth which currently doesn't seem to 
> work for me. It also doesn't in my Linux build, btw, but there at least it 
> gives some error output suggesting tries to use polkit and possibly even the 
> processlist helper from my KDE4 desktop. 
>     
>     The explicit implementation on OS X wasn't because of the macro, it was 
> to allow running setuid root. Initial testing didn't show any benefit to 
> that, but it could well be that's because KAuth still fails somewhere and 
> then simply aborts the requested operation.
>     
>     Suggestions very welcome, but if we can't get this to work I'll probably 
> want to disable changing process priorities.
> 
> René J.V. Bertin wrote:
>     As to testing with setuid root: it looks it won't be trivial to hack 
> KAuth out of helper.cpp . Is there a way to take KAuth out of the loop one 
> way or another - for instance instruct it to do nothing when already running 
> with the required privileges, or to ignore failures?
>     
>     I'm fully aware why Qt disables running setuid root, but I'd hope the 
> risk is minimal in a helper app like this that is designed to work as root 
> (and doesn't "linger").
>     
>     Also, the helper is started via DBus, right? Doesn't DBus provide a 
> mechanism to launch a service with elevated privileges?
> 
> René J.V. Bertin wrote:
>     FWIW, after I uninstalled the KDE4 helper app from my Linux system 
> (`apt-get remove ksysguard`) I started getting the same error as I see on OS 
> X when I try to increase a process's priority:
>     
>     ```
>     kf5.kauth: Tried to start an invalid action
>     kf5.kauth: Tried to start an invalid action
>     ```
>     
>     After reinstalling the KDE4 ksysguard package all errors went away and 
> the feature works. Go figure ...
>     (I don't have KDE4 ksysguard installed on OS X)
> 
> Aleix Pol Gonzalez wrote:
>     I suggest dropping the workaround for now and investigate how to get 
> KAuth to work altogether then.

Not really related, but yeah I guess you're right.

FWIW, on OS X I see this:

```
> KAuthHelperTest -vb -v2
[...]
INFO   : HelperTest::testExecuteJobSignals() QVERIFY(job->data().isEmpty())
   Loc: 
[/opt/local/var/macports/build/_Volumes_Debian_MP9_site-ports_kf5_KF5-Frameworks/kf5-kauth/work/kauth-5.24.0/autotests/HelperTest.cpp(184)]
PASS   : HelperTest::testExecuteJobSignals()
INFO   : HelperTest::testActionData() entering
INFO   : HelperTest::testActionData() QVERIFY(action.isValid())
   Loc: 
[/opt/local/var/macports/build/_Volumes_Debian_MP9_site-ports_kf5_KF5-Frameworks/kf5-kauth/work/kauth-5.24.0/autotests/HelperTest.cpp(199)]
INFO   : HelperTest::testActionData() QCOMPARE(action.status(), 
KAuth::Action::AuthRequiredStatus)
   Loc: 
[/opt/local/var/macports/build/_Volumes_Debian_MP9_site-ports_kf5_KF5-Frameworks/kf5-kauth/work/kauth-5.24.0/autotests/HelperTest.cpp(201)]
QWARN  : HelperTest::testActionData() QSocketNotifier: Socket notifiers cannot 
be enabled or disabled from another thread
^C
QFATAL : HelperTest::testActionData() Received signal 2
         Function time: 5229ms Total time: 7337ms
FAIL!  : HelperTest::testActionData() Received a fatal error.
   Loc: [Unknown file(0)]
Totals: 3 passed, 1 failed, 0 skipped, 0 blacklisted
********* Finished testing of HelperTest *********
Exit 1
```

That's at least 1 thing that doesn't work as it should; not yet sure what this 
has to do with the failures I'm seeing (the socket error is platform-agnostic 
so the KAuth OS X code does cross-thread stuff the Linux code apparently 
doesn't ... unless it's libdbus that uses threading)
).


- René J.V.


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/128909/#review99182
-----------------------------------------------------------


On Sept. 14, 2016, 9:37 p.m., René J.V. Bertin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/128909/
> -----------------------------------------------------------
> 
> (Updated Sept. 14, 2016, 9:37 p.m.)
> 
> 
> Review request for KDE Base Apps and KDE Software on Mac OS X.
> 
> 
> Repository: libksysguard
> 
> 
> Description
> -------
> 
> This patch implements initial and rather minimal support for OS X, for now 
> focussing purely on process information. That feature is justified as it is 
> used by KDevelop in order to obtain the list of processes one can attach a 
> debugger to.
> 
> Mac OS X is tricky because it requires special privileges in order to obtain 
> certain types of information for any running process. For example, even 
> obtaining the number of threads spawned by a foreign process requires 
> privileges that aren't trivial to set up. I've prepared the terrain, but also 
> implemented a fallback strategy that calls `ps` to be sure that crucial 
> information like the command name is available for all processes.
> 
> 
> Diffs
> -----
> 
>   processcore/CMakeLists.txt e7c9263 
>   processcore/Info.plist PRE-CREATION 
>   processcore/helper.cpp d54c8e1 
>   processcore/processes_darwin_p.cpp PRE-CREATION 
>   processcore/processes_local_p.cpp 2bc123f 
> 
> Diff: https://git.reviewboard.kde.org/r/128909/diff/
> 
> 
> Testing
> -------
> 
> On OS X 10.9.5 with Frameworks 5.24.0 and Qt 5.6.1
> 
> 
> File Attachments
> ----------------
> 
> Attach to Process widget in KDevelop
>   
> https://git.reviewboard.kde.org/media/uploaded/files/2016/09/14/47468811-58cb-40b8-a735-4dd86dce98e1__Screen_Shot_2016-09-14_at_17.38.22.png
> 
> 
> Thanks,
> 
> René J.V. Bertin
> 
>

Reply via email to