Hello community,

here is the log from the commit of package kdebase3 for openSUSE:Factory 
checked in at 2012-07-18 17:23:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdebase3 (Old)
 and      /work/SRC/openSUSE:Factory/.kdebase3.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdebase3", Maintainer is "kde-maintain...@suse.de"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kdebase3/kdebase3.changes        2012-06-29 
13:24:03.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdebase3.new/kdebase3.changes   2012-07-18 
17:23:14.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Jul 17 02:19:08 UTC 2012 - an...@opensuse.org
+
+- unmount optical media upon physical eject when using udisks2 backend
+  thanks to Serghei Amelian
+
+-------------------------------------------------------------------

New:
----
  udisks2-unmount.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kdebase3.spec ++++++
--- /var/tmp/diff_new_pack.jcdJyn/_old  2012-07-18 17:23:19.000000000 +0200
+++ /var/tmp/diff_new_pack.jcdJyn/_new  2012-07-18 17:23:19.000000000 +0200
@@ -299,6 +299,7 @@
 Patch281:       udisks2-makefile.patch
 Patch282:       
gentoo-better-volumes-descriptions-492dbc40159c91a263f29ad77c94054b2d40bb25.patch
 Patch283:       
kdebase-udisks-loop-devices-916d1ea8da8cdabe604c6f9868d2559f2d73c062.patch
+Patch284:       udisks2-unmount.patch
 
 %description
 This package contains kdebase, one of the basic packages of the K
@@ -486,6 +487,7 @@
 %patch281 -p1
 %patch282 -p1
 %patch283 -p1
+%patch284 -p1
 %endif
 %patch252 -p1
 # causes hangs (bnc#158239)




++++++ udisks2-unmount.patch ++++++
>From 1ed5b7be04c8290f8b1b30295ffcb997afdc740f Mon Sep 17 00:00:00 2001
From: Serghei Amelian <serghei.amel...@gmail.com>
Date: Mon, 4 Jun 2012 23:55:01 +0300
Subject: [PATCH] [mediamanger/udisks2] unmount the filesystem if the media is
 removed

---
 kioslave/media/mediamanager/udisks2backend.cpp |   72 ++++++++++++++++--------
 1 file changed, 48 insertions(+), 24 deletions(-)

diff --git a/kioslave/media/mediamanager/udisks2backend.cpp 
b/kioslave/media/mediamanager/udisks2backend.cpp
index b66bea4..bb82f24 100644
--- a/kioslave/media/mediamanager/udisks2backend.cpp
+++ b/kioslave/media/mediamanager/udisks2backend.cpp
@@ -66,6 +66,9 @@ class Object : public QDBusProxy {
     Object(ObjectManager *objectManager, const QDBusObjectPath &objectPath, 
const QDBusConnection &dbusConnection);
     ~Object();
 
+    QString mount();
+    QString unmount(bool force);
+
     bool isEmpty() const { return m_interfaces.isEmpty(); }
 
     void addInterfaces(const QDBusDataMap<QString> &interfaces);
@@ -249,6 +252,47 @@ QDBusObjectPath Property::toObjectPath() const
 }
 
 
+QString Object::mount()
+{
+    QMap<QString, QDBusVariant> options;
+
+    QValueList<QDBusData> params;
+    params << QDBusData::fromStringKeyMap(QDBusDataMap<QString>(options));
+
+    QDBusError error;
+    QDBusData response;
+
+    if(!callMethod("org.freedesktop.UDisks2.Filesystem", "Mount", params, 
response, error))
+      return i18n("Unable to mount \"%1\".\nReason: 
%2").arg(m_device).arg(error.message());
+
+    return QString::null;
+}
+
+
+QString Object::unmount(bool force)
+{
+    QMap<QString, QDBusVariant> options;
+
+    if(force) {
+        QDBusVariant force;
+        force.value = QDBusData::fromBool(true);
+        force.signature = force.value.buildDBusSignature();
+        options["force"] = force;
+    }
+
+    QValueList<QDBusData> params;
+    params << QDBusData::fromStringKeyMap(QDBusDataMap<QString>(options));
+
+    QDBusError error;
+    QDBusData response;
+
+    if(!callMethod("org.freedesktop.UDisks2.Filesystem", "Unmount", params, 
response, error))
+      return i18n("Unable to unmount \"%1\".\nReason: 
%2").arg(m_device).arg(error.message());
+
+    return QString::null;
+}
+
+
 void Object::addInterfaces(const QDBusDataMap<QString> &interfaces)
 {
     for(QDBusDataMap<QString>::const_iterator it = interfaces.begin(); it != 
interfaces.end(); ++it) {
@@ -423,6 +467,8 @@ bool Object::checkMediaAvailability()
     // media is not available anymore
     else {
         m_objectManager->m_mediaList.removeMedium(path(), true);
+        if(m_mounted)
+            unmount(true);
     }
 
     m_mediaAvailable = mediaAvailable;
@@ -651,18 +697,7 @@ QString UDisks2Backend::mount(const QString &name)
     if(!obj)
         return i18n("No such udisks2 object in cache: %1").arg(name);
 
-    QMap<QString, QDBusVariant> options;
-
-    QValueList<QDBusData> params;
-    params << QDBusData::fromStringKeyMap(QDBusDataMap<QString>(options));
-
-    QDBusError error;
-    QDBusData response;
-
-    if(!obj->callMethod("org.freedesktop.UDisks2.Filesystem", "Mount", params, 
response, error))
-      return i18n("Unable to mount medium \"%1\".\nReason: 
%2").arg(medium->label()).arg(error.message());
-
-   return QString::null;
+   return obj->mount();
 }
 
 
@@ -676,16 +711,5 @@ QString UDisks2Backend::unmount(const QString &name)
     if(!obj)
         return i18n("No such udisks2 object in cache: %1").arg(name);
 
-    QMap<QString, QDBusVariant> options;
-
-    QValueList<QDBusData> params;
-    params << QDBusData::fromStringKeyMap(QDBusDataMap<QString>(options));
-
-    QDBusError error;
-    QDBusData response;
-
-    if(!obj->callMethod("org.freedesktop.UDisks2.Filesystem", "Unmount", 
params, response, error))
-      return i18n("Unable to unmount medium \"%1\".\nReason: 
%2").arg(medium->label()).arg(error.message());
-
-   return QString::null;
+   return obj->unmount(false);
 }
-- 
1.7.10



-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to