diff --git a/kdelibs-4.4.80-policykit-workaround.patch b/kdelibs-4.4.80-policykit-workaround.patch index 8e2bd02..41c5312 100644 --- a/kdelibs-4.4.80-policykit-workaround.patch +++ b/kdelibs-4.4.80-policykit-workaround.patch @@ -1,6 +1,6 @@ -diff -up kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.cpp.policykit kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.cpp ---- kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.cpp.policykit 2010-04-22 10:04:55.000000000 +0200 -+++ kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.cpp 2010-05-21 09:47:01.417153488 +0200 +diff -up kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.cpp.policykit-workaround kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.cpp +--- kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.cpp.policykit-workaround 2010-04-22 10:04:55.000000000 +0200 ++++ kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.cpp 2010-05-21 22:07:08.043211300 +0200 @@ -17,6 +17,8 @@ */ @@ -10,9 +10,9 @@ diff -up kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.cpp.policykit #include "halstorageaccess.h" #include "halfstabhandling.h" -@@ -160,9 +162,19 @@ void StorageAccess::slotPropertyChanged( - void StorageAccess::slotDBusReply(const QDBusMessage &/*reply*/) +@@ -201,11 +203,21 @@ void StorageAccess::slotDBusError(const { + // TODO: Better error reporting here if (m_setupInProgress) { + if (error.name() == "org.freedesktop.Hal.Device.PermissionDeniedByPolicy") { + if (callPrivilegedMount()) @@ -20,7 +20,9 @@ diff -up kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.cpp.policykit + // if we fail to run kdesu, fall through and emit the original PermissionDeniedByPolicy error + } m_setupInProgress = false; - m_device->broadcastActionDone("setupDone", Solid::NoError, QVariant(), m_device->udi()); + m_device->broadcastActionDone("setupDone", Solid::UnauthorizedOperation, + QString(error.name()+": "+error.message()), + m_device->udi()); } else if (m_teardownInProgress) { + if (error.name() == "org.freedesktop.Hal.Device.PermissionDeniedByPolicy") { + if (callPrivilegedUnmount()) @@ -28,8 +30,8 @@ diff -up kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.cpp.policykit + // if we fail to run kdesu, fall through and emit the original PermissionDeniedByPolicy error + } m_teardownInProgress = false; - m_device->broadcastActionDone("teardownDone", Solid::NoError, QVariant(), m_device->udi()); - + m_device->broadcastActionDone("teardownDone", Solid::UnauthorizedOperation, + QString(error.name()+": "+error.message()), @@ -347,8 +359,9 @@ bool StorageAccess::callHalVolumeMount() #else QString uid="uid="; @@ -102,9 +104,9 @@ diff -up kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.cpp.policykit bool StorageAccess::callHalVolumeUnmount() { QDBusConnection c = QDBusConnection::systemBus(); -diff -up kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.h.policykit kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.h ---- kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.h.policykit 2010-04-22 10:04:55.000000000 +0200 -+++ kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.h 2010-05-21 09:38:58.231091367 +0200 +diff -up kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.h.policykit-workaround kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.h +--- kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.h.policykit-workaround 2010-04-22 10:04:55.000000000 +0200 ++++ kdelibs-4.4.80/solid/solid/backends/hal/halstorageaccess.h 2010-05-21 22:03:25.933210697 +0200 @@ -78,6 +78,9 @@ private: bool callSystemMount(); bool callSystemUnmount();