Version: unspecified (using KDE 4.6.0) OS: Linux When I change any of the implicit authorizations, hit apply on console i get a lot of "QDBusMarshaller: type `PKLAEntry' (285) is not registered with D-BUS. Use qDBusRegisterMetaType to register it" messages and one "QDBusConnection: error: could not send message to service "org.kde.polkitkde1.helper" path "/Helper" interface "org.kde.polkitkde1.helper" member "writePolicy": Marshalling failed: Unregistered type PKLAEntry passed in arguments". When I start kcm_polkitactions all my changes are lost Reproducible: Always Steps to Reproduce: 1. Open kcm_polkitactions 2. Change any of the implicit authorizations for "org.kde.fontinst.manage" 3. Click apply 4. Click somewhere else and then back to "org.kde.fontinst.manage" Actual Results: Implicit authorizations are back to previous state (before change) Expected Results: New settings for implicit authorizations are saved KDE 4.6.0, PolicyKit 0.9
It doesn't let you change the explicit authorizations, either. Click "add", add a new policy, leave, then come back and all the policies you added are gone.
I got curious about this one and I did some research. The error message can indeed be observed. It's easy to fix however by adding a qDBusRegisterMetaType<PKLAEntry>() call in the Polkit KCM module constructor. Unfortunately this still doesn't fix the problem. This time the DBus call is executed, but returns an error: No such method 'writePolicy' in interface 'org.kde.polkitkde1.helper' at object path '/Helper' (signature '') This looks like QDBus is unable to match the signature of the method from the message to the implementation. After adding some explicit authorizations a similar error is returned, but with a different signature: No such method 'writePolicy' in interface 'org.kde.polkitkde1.helper' at object path '/Helper' (signature '(ssssssii)(ssssssii)') I don't know much about DBus and using custom types in QDBus, but I'm really wondering how is all this meant to work at all?
I have had a look on this one for the last couple of days, and I have fixed the issues with explicit authorizations. I really don't know how this could have ever worked? Some of the things I have fixed in the proposed patch: - Wrong DBUS message handling - Added some checks if the configuration directory exists. If not, create it. - Added some prober QT metatype handling, which didn't work with the new way of sending the configurations over the DBUS. Implicit configuration still doesn't work, mostly because it doesn't do anything in kcm_polkitactions. I would love to fix it, but I need some informations about where it should save the settings and what it should do. I will attach the patch later.
Created attachment 62685 [details] Fixing explicit authority settings, by fixing several DBUS messaging bugs.
Comment on attachment 62685 [details] Fixing explicit authority settings, by fixing several DBUS messaging bugs. I have splitted the patch up and cleaned them up a bit.
Created attachment 62707 [details] DBUS message fixing
Created attachment 62708 [details] Added a policy path check. If it does not exist, create a new path. The last two patches, is a splitted-up and cleaned-up versions of the original proposed patches.
I have polished the patches even further. I got someone to give me some feedback. Bare with me, its my first patch :) The patches are currently for reviewing: https://git.reviewboard.kde.org/r/102265/ https://git.reviewboard.kde.org/r/102272/ I will mark my current attachments as obsolete.
Fixed in commit 600bd94954c846e9694c303902d6ac7f9bc897fa. It is now possible to change and save implicit and explicit settings. The bug report can be marked as fixed.
*** Bug 281043 has been marked as a duplicate of this bug. ***
Tested, confirmed fixed. Thank you!