> 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
>
>