Hello community, here is the log from the commit of package kdebase3 for openSUSE:12.2 checked in at 2012-07-18 17:23:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.2/kdebase3 (Old) and /work/SRC/openSUSE:12.2/.kdebase3.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdebase3", Maintainer is "kde-maintain...@suse.de" Changes: -------- --- /work/SRC/openSUSE:12.2/kdebase3/kdebase3.changes 2012-06-29 13:24:09.000000000 +0200 +++ /work/SRC/openSUSE:12.2/.kdebase3.new/kdebase3.changes 2012-07-18 17:23:21.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.nE3WGm/_old 2012-07-18 17:23:23.000000000 +0200 +++ /var/tmp/diff_new_pack.nE3WGm/_new 2012-07-18 17:23:23.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