Hello community,

here is the log from the commit of package kdebase3 for openSUSE:Factory 
checked in at 2012-06-25 12:32:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdebase3 (Old)
 and      /work/SRC/openSUSE:Factory/.kdebase3.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdebase3", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kdebase3/kdebase3.changes        2012-06-10 
21:51:28.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdebase3.new/kdebase3.changes   2012-06-25 
12:32:41.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Jun 13 21:44:33 UTC 2012 - [email protected]
+
+- support for loop devices in udisks2 backend
+
+-------------------------------------------------------------------

New:
----
  kdebase-udisks-loop-devices-916d1ea8da8cdabe604c6f9868d2559f2d73c062.patch

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

Other differences:
------------------
++++++ kdebase3.spec ++++++
--- /var/tmp/diff_new_pack.SfJQhz/_old  2012-06-25 12:32:49.000000000 +0200
+++ /var/tmp/diff_new_pack.SfJQhz/_new  2012-06-25 12:32:49.000000000 +0200
@@ -295,6 +295,7 @@
 Patch280:       kdebase-gentoo-27cc062c6b172fd6e93addb510269b360cb7eb8d.patch
 Patch281:       udisks2-makefile.patch
 Patch282:       
gentoo-better-volumes-descriptions-492dbc40159c91a263f29ad77c94054b2d40bb25.patch
+Patch283:       
kdebase-udisks-loop-devices-916d1ea8da8cdabe604c6f9868d2559f2d73c062.patch
 
 %description
 This package contains kdebase, one of the basic packages of the K
@@ -480,6 +481,7 @@
 %patch280 -p1
 %patch281 -p1
 %patch282 -p1
+%patch283 -p1
 %endif
 %patch252 -p1
 # causes hangs (bnc#158239)
@@ -696,6 +698,7 @@
 LDAP="--with-ldap"
 X_SERVER=/usr/bin/X RUN_KAPPFINDER=no \
 export LIBS="$LIBS -ldbus-1-qt3"
+
 ./configure \
   $configkde \
   $PARANOIA \




++++++ 
kdebase-udisks-loop-devices-916d1ea8da8cdabe604c6f9868d2559f2d73c062.patch 
++++++
>From 916d1ea8da8cdabe604c6f9868d2559f2d73c062 Mon Sep 17 00:00:00 2001
From: Serghei Amelian <[email protected]>
Date: Thu, 14 Jun 2012 00:05:34 +0300
Subject: [PATCH] [kioslave/media] added support for loop devices to udisks2
 backend

---
 kioslave/media/mediamanager/udisks2backend.cpp |   43 ++++++++++++++++++++++--
 1 file changed, 40 insertions(+), 3 deletions(-)

diff --git a/kioslave/media/mediamanager/udisks2backend.cpp 
b/kioslave/media/mediamanager/udisks2backend.cpp
index bb82f24..06fd6b2 100644
--- a/kioslave/media/mediamanager/udisks2backend.cpp
+++ b/kioslave/media/mediamanager/udisks2backend.cpp
@@ -77,6 +77,7 @@ class Object : public QDBusProxy {
     bool callMethod(const QString &interface, const QString &method, const 
QValueList<QDBusData> &params, QDBusData &response, QDBusError &error);
 
 private:
+    Medium *createLoopMedium();
     Medium *createMountableMedium();
     Medium *createBlankOrAudioMedium();
     bool checkMediaAvailability();
@@ -89,6 +90,9 @@ class Object : public QDBusProxy {
 
     bool m_mediaAvailable;
 
+    // loop interface
+    bool m_loop;
+
     // drive interface
     bool m_optical;
     bool m_opticalBlank;
@@ -236,6 +240,7 @@ QDBusObjectPath Property::toObjectPath() const
     setPath(objectPath);
 
     m_mediaAvailable = false;
+    m_loop = false;
     m_optical = false;
     m_opticalBlank = false;
     m_opticalAudio = false;
@@ -346,6 +351,34 @@ bool Object::callMethod(const QString &interface, const 
QString &method, const Q
 }
 
 
+Medium *Object::createLoopMedium()
+{
+    QString name = (m_label.isEmpty() ? QString(m_device).section('/', -1, -1) 
: m_label);
+    QString label = m_label;
+
+    QString mimeType;
+    QString iconName;
+
+    mimeType = ("iso9660" == m_fsType ? "media/cdrom" : "media/hdd");
+
+    if(label.isEmpty())
+        label = i18n("Loop Device");
+
+    mimeType += (m_mounted ? "_mounted" : "_unmounted");
+
+    if(m_label.isEmpty())
+        label = QString("%1 %2 
(%3)").arg(qHumanReadableSize(m_size)).arg(label).arg(name);
+
+    Medium *medium = new Medium(path(), name);
+    medium->setLabel(label);
+    medium->mountableState(m_device, m_mountPoint, m_fsType, m_mounted);
+    medium->setMimeType(mimeType);
+    medium->setIconName(iconName);
+
+    return medium;
+}
+
+
 Medium *Object::createMountableMedium()
 {
     Object *drive =  m_objectManager->m_objects.find(m_drive);
@@ -460,7 +493,7 @@ bool Object::checkMediaAvailability()
 
     // media become available
     if(mediaAvailable) {
-        Medium *medium = (m_mountable && m_filesystem ? 
createMountableMedium() : createBlankOrAudioMedium());
+        Medium *medium = (m_mountable && m_filesystem ? (m_loop ? 
createLoopMedium() : createMountableMedium()) : createBlankOrAudioMedium());
         m_objectManager->m_mediaList.addMedium(medium, 
m_objectManager->allowNotification);
     }
 
@@ -504,8 +537,12 @@ void Object::propertiesChanged(const QString &interface, 
const QDBusDataMap<QStr
         else if("org.freedesktop.UDisks2.Block" == interface) {
             if("IdUsage" == propertyName)
                 m_mountable = ("filesystem" == propertyValue.toString());
-            else if("Drive" == propertyName)
+            else if("Drive" == propertyName) {
                 m_drive = propertyValue.toObjectPath();
+                // if the block device haven't a drive,
+                // we assume that is a loop device
+                m_loop = ("/" == m_drive);
+            }
             else if("PreferredDevice" == propertyName)
                 m_device = propertyValue.toString();
             else if("IdLabel" == propertyName) {
@@ -536,7 +573,7 @@ void Object::propertiesChanged(const QString &interface, 
const QDBusDataMap<QStr
         return;
 
     if(mediumNeedUpdate) {
-        Medium *medium = (m_mountable && m_filesystem ? 
createMountableMedium() : createBlankOrAudioMedium());
+        Medium *medium = (m_mountable && m_filesystem ? (m_loop ? 
createLoopMedium() : createMountableMedium()) : createBlankOrAudioMedium());
         m_objectManager->m_mediaList.changeMediumState(*medium, false);
         delete medium;
     }
-- 
1.7.10



-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to