update the udisks2 backend patch, fixing some bugs with storage drives
This commit is contained in:
parent
f3b60d6c33
commit
76ac32d95f
@ -1,118 +1,3 @@
|
|||||||
diff --git a/tier1/solid/src/solid/CMakeLists.txt b/tier1/solid/src/solid/CMakeLists.txt
|
|
||||||
index 5deadcf..40af6bc 100644
|
|
||||||
--- a/tier1/solid/src/solid/CMakeLists.txt
|
|
||||||
+++ b/tier1/solid/src/solid/CMakeLists.txt
|
|
||||||
@@ -32,7 +32,6 @@ configure_file(config-processor.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-proce
|
|
||||||
|
|
||||||
file(MAKE_DIRECTORY
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/backends/fakehw
|
|
||||||
- ${CMAKE_CURRENT_BINARY_DIR}/backends/hal
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/backends/udev
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/backends/wmi
|
|
||||||
)
|
|
||||||
@@ -198,33 +197,6 @@ if(NOT WIN32 AND NOT APPLE)
|
|
||||||
endif( UDEV_FOUND )
|
|
||||||
|
|
||||||
|
|
||||||
- message(STATUS "Building Solid HAL backend." )
|
|
||||||
- set(solid_LIB_SRCS ${solid_LIB_SRCS}
|
|
||||||
- backends/hal/halacadapter.cpp
|
|
||||||
- backends/hal/halaudiointerface.cpp
|
|
||||||
- backends/hal/halbattery.cpp
|
|
||||||
- backends/hal/halblock.cpp
|
|
||||||
- backends/hal/halbutton.cpp
|
|
||||||
- backends/hal/halcamera.cpp
|
|
||||||
- backends/hal/halcdrom.cpp
|
|
||||||
- backends/hal/haldeviceinterface.cpp
|
|
||||||
- backends/hal/haldvbinterface.cpp
|
|
||||||
- backends/hal/halfstabhandling.cpp
|
|
||||||
- backends/hal/halgenericinterface.cpp
|
|
||||||
- backends/hal/haldevice.cpp
|
|
||||||
- backends/hal/halmanager.cpp
|
|
||||||
- backends/hal/halnetworkinterface.cpp
|
|
||||||
- backends/hal/halserialinterface.cpp
|
|
||||||
- backends/hal/halopticaldisc.cpp
|
|
||||||
- backends/hal/halportablemediaplayer.cpp
|
|
||||||
- backends/hal/halprocessor.cpp
|
|
||||||
- backends/hal/halstorageaccess.cpp
|
|
||||||
- backends/hal/halstorage.cpp
|
|
||||||
- backends/hal/halvideo.cpp
|
|
||||||
- backends/hal/halvolume.cpp
|
|
||||||
- backends/hal/halsmartcardreader.cpp
|
|
||||||
- )
|
|
||||||
-
|
|
||||||
message(STATUS "Building Solid UPower backend." )
|
|
||||||
set(solid_LIB_SRCS ${solid_LIB_SRCS}
|
|
||||||
backends/upower/upowermanager.cpp
|
|
||||||
@@ -237,18 +209,19 @@ if(NOT WIN32 AND NOT APPLE)
|
|
||||||
|
|
||||||
# FIXME: this should work on more Unix systems
|
|
||||||
if (CMAKE_SYSTEM_NAME MATCHES Linux)
|
|
||||||
- message(STATUS "Building Solid UDisks backend." )
|
|
||||||
+ message(STATUS "Building Solid UDisks2 backend." )
|
|
||||||
set(solid_LIB_SRCS ${solid_LIB_SRCS}
|
|
||||||
- backends/udisks/udisksmanager.cpp
|
|
||||||
- backends/udisks/udisksdevice.cpp
|
|
||||||
- backends/udisks/udisksblock.cpp
|
|
||||||
- backends/udisks/udisksstoragevolume.cpp
|
|
||||||
- backends/udisks/udisksdeviceinterface.cpp
|
|
||||||
- backends/udisks/udisksopticaldisc.cpp
|
|
||||||
- backends/udisks/udisksopticaldrive.cpp
|
|
||||||
- backends/udisks/udisksstoragedrive.cpp
|
|
||||||
- backends/udisks/udisksstorageaccess.cpp
|
|
||||||
- backends/udisks/udisksgenericinterface.cpp
|
|
||||||
+ backends/udisks2/udisksmanager.cpp
|
|
||||||
+ backends/udisks2/udisksdevice.cpp
|
|
||||||
+ backends/udisks2/udisksblock.cpp
|
|
||||||
+ backends/udisks2/udisksstoragevolume.cpp
|
|
||||||
+ backends/udisks2/udisksdeviceinterface.cpp
|
|
||||||
+ backends/udisks2/udisksopticaldisc.cpp
|
|
||||||
+ backends/udisks2/udisksopticaldrive.cpp
|
|
||||||
+ backends/udisks2/udisksstoragedrive.cpp
|
|
||||||
+ backends/udisks2/udisksstorageaccess.cpp
|
|
||||||
+ backends/udisks2/udisksgenericinterface.cpp
|
|
||||||
+ backends/udisks2/dbus/manager.cpp
|
|
||||||
)
|
|
||||||
endif (CMAKE_SYSTEM_NAME MATCHES Linux)
|
|
||||||
|
|
||||||
diff --git a/tier1/solid/src/solid/managerbase.cpp b/tier1/solid/src/solid/managerbase.cpp
|
|
||||||
index e228b48..7a7cc7d 100644
|
|
||||||
--- a/tier1/solid/src/solid/managerbase.cpp
|
|
||||||
+++ b/tier1/solid/src/solid/managerbase.cpp
|
|
||||||
@@ -30,8 +30,7 @@
|
|
||||||
#if defined (Q_OS_MAC)
|
|
||||||
#include "backends/iokit/iokitmanager.h"
|
|
||||||
#elif defined (Q_OS_UNIX)
|
|
||||||
-#include "backends/hal/halmanager.h"
|
|
||||||
-#include "backends/udisks/udisksmanager.h"
|
|
||||||
+#include "backends/udisks2/udisksmanager.h"
|
|
||||||
#include "backends/upower/upowermanager.h"
|
|
||||||
|
|
||||||
#if defined (HUPNP_FOUND)
|
|
||||||
@@ -71,22 +70,13 @@ void Solid::ManagerBasePrivate::loadBackends()
|
|
||||||
# elif defined(Q_OS_WIN) && defined(HAVE_WBEM) && !defined(_WIN32_WCE)
|
|
||||||
m_backends << new Solid::Backends::Wmi::WmiManager(0);
|
|
||||||
|
|
||||||
-# elif defined(Q_OS_UNIX) && !defined(Q_OS_LINUX)
|
|
||||||
- m_backends << new Solid::Backends::Hal::HalManager(0);
|
|
||||||
-
|
|
||||||
# elif defined(Q_OS_LINUX)
|
|
||||||
- bool solidHalLegacyEnabled
|
|
||||||
- = QString::fromLocal8Bit(qgetenv("SOLID_HAL_LEGACY")).toInt()==1;
|
|
||||||
- if (solidHalLegacyEnabled) {
|
|
||||||
- m_backends << new Solid::Backends::Hal::HalManager(0);
|
|
||||||
- } else {
|
|
||||||
# if defined(UDEV_FOUND)
|
|
||||||
m_backends << new Solid::Backends::UDev::UDevManager(0);
|
|
||||||
# endif
|
|
||||||
- m_backends << new Solid::Backends::UDisks::UDisksManager(0)
|
|
||||||
+ m_backends << new Solid::Backends::UDisks2::Manager(0)
|
|
||||||
<< new Solid::Backends::UPower::UPowerManager(0)
|
|
||||||
<< new Solid::Backends::Fstab::FstabManager(0);
|
|
||||||
- }
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# if defined (HUPNP_FOUND)
|
|
||||||
diff --git a/tier1/solid/src/solid/backends/udisks2/dbus/manager.cpp b/tier1/solid/src/solid/backends/udisks2/dbus/manager.cpp
|
diff --git a/tier1/solid/src/solid/backends/udisks2/dbus/manager.cpp b/tier1/solid/src/solid/backends/udisks2/dbus/manager.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..7ea4aa8
|
index 0000000..7ea4aa8
|
||||||
@ -322,10 +207,10 @@ index 0000000..25a1dc0
|
|||||||
+#endif // SOLID_BACKENDS_UDISKS2_H
|
+#endif // SOLID_BACKENDS_UDISKS2_H
|
||||||
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksblock.cpp b/tier1/solid/src/solid/backends/udisks2/udisksblock.cpp
|
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksblock.cpp b/tier1/solid/src/solid/backends/udisks2/udisksblock.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..8a7a0b5
|
index 0000000..c27b1c4
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/tier1/solid/src/solid/backends/udisks2/udisksblock.cpp
|
+++ b/tier1/solid/src/solid/backends/udisks2/udisksblock.cpp
|
||||||
@@ -0,0 +1,52 @@
|
@@ -0,0 +1,84 @@
|
||||||
+/*
|
+/*
|
||||||
+ Copyright 2012 Lukáš Tinkl <ltinkl@redhat.com>
|
+ Copyright 2012 Lukáš Tinkl <ltinkl@redhat.com>
|
||||||
+
|
+
|
||||||
@ -349,15 +234,47 @@ index 0000000..8a7a0b5
|
|||||||
+#include <linux/kdev_t.h>
|
+#include <linux/kdev_t.h>
|
||||||
+
|
+
|
||||||
+#include <QFile>
|
+#include <QFile>
|
||||||
|
+#include <QtDBus/QDBusConnection>
|
||||||
|
+#include <QtDBus/QDBusPendingReply>
|
||||||
+
|
+
|
||||||
+#include "udisksblock.h"
|
+#include "udisksblock.h"
|
||||||
|
+#include "dbus/manager.h"
|
||||||
+
|
+
|
||||||
+using namespace Solid::Backends::UDisks2;
|
+using namespace Solid::Backends::UDisks2;
|
||||||
+
|
+
|
||||||
+Block::Block(Device *device)
|
+Block::Block(Device *dev)
|
||||||
+ : DeviceInterface(device)
|
+ : DeviceInterface(dev)
|
||||||
+{
|
+{
|
||||||
+ m_devNum = m_device->prop("DeviceNumber").toULongLong();
|
+ m_devNum = m_device->prop("DeviceNumber").toULongLong();
|
||||||
|
+ m_devFile = QFile::decodeName(m_device->prop("Device").toByteArray());
|
||||||
|
+
|
||||||
|
+ // we have a drive (non-block device for udisks), so let's find the corresponding (real) block device
|
||||||
|
+ if (m_devNum == 0 || m_devFile.isEmpty()) {
|
||||||
|
+ org::freedesktop::DBus::ObjectManager manager(UD2_DBUS_SERVICE, UD2_DBUS_PATH, QDBusConnection::systemBus());
|
||||||
|
+ QDBusPendingReply<DBUSManagerStruct> reply = manager.GetManagedObjects();
|
||||||
|
+ reply.waitForFinished();
|
||||||
|
+ if (!reply.isError()) { // enum devices
|
||||||
|
+ Q_FOREACH(const QDBusObjectPath &path, reply.value().keys()) {
|
||||||
|
+ const QString udi = path.path();
|
||||||
|
+
|
||||||
|
+ if (udi == UD2_DBUS_PATH_MANAGER || udi == UD2_UDI_DISKS_PREFIX || udi.startsWith(UD2_DBUS_PATH_JOBS))
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ Device device(udi);
|
||||||
|
+ if (device.drivePath() == dev->udi()) {
|
||||||
|
+ m_devNum = device.prop("DeviceNumber").toULongLong();
|
||||||
|
+ m_devFile = QFile::decodeName(device.prop("Device").toByteArray());
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ else // show error
|
||||||
|
+ {
|
||||||
|
+ qWarning() << "Failed enumerating UDisks2 objects:" << reply.error().name() << "\n" << reply.error().message();
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ qDebug() << "devnum:" << m_devNum << "dev file:" << m_devFile;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+Block::~Block()
|
+Block::~Block()
|
||||||
@ -366,7 +283,7 @@ index 0000000..8a7a0b5
|
|||||||
+
|
+
|
||||||
+QString Block::device() const
|
+QString Block::device() const
|
||||||
+{
|
+{
|
||||||
+ return QFile::decodeName(m_device->prop("Device").toByteArray());
|
+ return m_devFile;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+int Block::deviceMinor() const
|
+int Block::deviceMinor() const
|
||||||
@ -380,10 +297,10 @@ index 0000000..8a7a0b5
|
|||||||
+}
|
+}
|
||||||
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksblock.h b/tier1/solid/src/solid/backends/udisks2/udisksblock.h
|
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksblock.h b/tier1/solid/src/solid/backends/udisks2/udisksblock.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..804d712
|
index 0000000..19cb70a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/tier1/solid/src/solid/backends/udisks2/udisksblock.h
|
+++ b/tier1/solid/src/solid/backends/udisks2/udisksblock.h
|
||||||
@@ -0,0 +1,55 @@
|
@@ -0,0 +1,56 @@
|
||||||
+/*
|
+/*
|
||||||
+ Copyright 2012 Lukáš Tinkl <ltinkl@redhat.com>
|
+ Copyright 2012 Lukáš Tinkl <ltinkl@redhat.com>
|
||||||
+
|
+
|
||||||
@ -424,7 +341,7 @@ index 0000000..804d712
|
|||||||
+ Q_INTERFACES(Solid::Ifaces::Block)
|
+ Q_INTERFACES(Solid::Ifaces::Block)
|
||||||
+
|
+
|
||||||
+public:
|
+public:
|
||||||
+ Block(Device *device);
|
+ Block(Device *dev);
|
||||||
+ virtual ~Block();
|
+ virtual ~Block();
|
||||||
+
|
+
|
||||||
+ virtual QString device() const;
|
+ virtual QString device() const;
|
||||||
@ -432,6 +349,7 @@ index 0000000..804d712
|
|||||||
+ virtual int deviceMajor() const;
|
+ virtual int deviceMajor() const;
|
||||||
+private:
|
+private:
|
||||||
+ dev_t m_devNum;
|
+ dev_t m_devNum;
|
||||||
|
+ QString m_devFile;
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+}
|
+}
|
||||||
@ -441,10 +359,10 @@ index 0000000..804d712
|
|||||||
+#endif // UDISKS2BLOCK_H
|
+#endif // UDISKS2BLOCK_H
|
||||||
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksdevice.cpp b/tier1/solid/src/solid/backends/udisks2/udisksdevice.cpp
|
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksdevice.cpp b/tier1/solid/src/solid/backends/udisks2/udisksdevice.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..628c0b0
|
index 0000000..fb74fa2
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/tier1/solid/src/solid/backends/udisks2/udisksdevice.cpp
|
+++ b/tier1/solid/src/solid/backends/udisks2/udisksdevice.cpp
|
||||||
@@ -0,0 +1,906 @@
|
@@ -0,0 +1,910 @@
|
||||||
+/*
|
+/*
|
||||||
+ Copyright 2010 Michael Zanetti <mzanetti@kde.org>
|
+ Copyright 2010 Michael Zanetti <mzanetti@kde.org>
|
||||||
+ Copyright 2010-2012 Lukáš Tinkl <ltinkl@redhat.com>
|
+ Copyright 2010-2012 Lukáš Tinkl <ltinkl@redhat.com>
|
||||||
@ -803,8 +721,7 @@ index 0000000..628c0b0
|
|||||||
+ if (!volume_label.isEmpty())
|
+ if (!volume_label.isEmpty())
|
||||||
+ return volume_label;
|
+ return volume_label;
|
||||||
+
|
+
|
||||||
+ const QString drivePath = prop("Drive").value<QDBusObjectPath>().path();
|
+ UDisks2::Device storageDevice(drivePath());
|
||||||
+ UDisks2::Device storageDevice(drivePath);
|
|
||||||
+ const UDisks2::StorageDrive storageDrive(&storageDevice);
|
+ const UDisks2::StorageDrive storageDrive(&storageDevice);
|
||||||
+ Solid::StorageDrive::DriveType drive_type = storageDrive.driveType();
|
+ Solid::StorageDrive::DriveType drive_type = storageDrive.driveType();
|
||||||
+
|
+
|
||||||
@ -991,8 +908,7 @@ index 0000000..628c0b0
|
|||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ else if (isBlock()) {
|
+ else if (isBlock()) {
|
||||||
+ const QString drivePath = prop("Drive").value<QDBusObjectPath>().path();
|
+ Device drive(drivePath());
|
||||||
+ Device drive(drivePath);
|
|
||||||
+
|
+
|
||||||
+ // handle media
|
+ // handle media
|
||||||
+ const QString media = drive.prop("Media").toString();
|
+ const QString media = drive.prop("Media").toString();
|
||||||
@ -1143,7 +1059,7 @@ index 0000000..628c0b0
|
|||||||
+ if (iface.startsWith("org.freedesktop.DBus"))
|
+ if (iface.startsWith("org.freedesktop.DBus"))
|
||||||
+ continue;
|
+ continue;
|
||||||
+ QDBusMessage call = QDBusMessage::createMethodCall(UD2_DBUS_SERVICE, m_udi, DBUS_INTERFACE_PROPS, "GetAll");
|
+ QDBusMessage call = QDBusMessage::createMethodCall(UD2_DBUS_SERVICE, m_udi, DBUS_INTERFACE_PROPS, "GetAll");
|
||||||
+ call.setArguments(QList<QVariant>() << iface);
|
+ call << iface;
|
||||||
+ QDBusPendingReply<QVariantMap> reply = QDBusConnection::systemBus().asyncCall(call);
|
+ QDBusPendingReply<QVariantMap> reply = QDBusConnection::systemBus().asyncCall(call);
|
||||||
+ reply.waitForFinished();
|
+ reply.waitForFinished();
|
||||||
+
|
+
|
||||||
@ -1199,9 +1115,10 @@ index 0000000..628c0b0
|
|||||||
+ QMapIterator<QString, QVariant> i(changedProps);
|
+ QMapIterator<QString, QVariant> i(changedProps);
|
||||||
+ while (i.hasNext()) {
|
+ while (i.hasNext()) {
|
||||||
+ i.next();
|
+ i.next();
|
||||||
+ m_cache.insert(i.key(), i.value()); // replace the value
|
+ const QString key = i.key();
|
||||||
+ changeMap.insert(i.key(), Solid::GenericInterface::PropertyModified);
|
+ m_cache.insert(key, i.value()); // replace the value
|
||||||
+ qDebug() << "\t modified:" << i.key() << ":" << m_cache.value(i.key());
|
+ changeMap.insert(key, Solid::GenericInterface::PropertyModified);
|
||||||
|
+ qDebug() << "\t modified:" << key << ":" << m_cache.value(key);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ Q_EMIT propertyChanged(changeMap);
|
+ Q_EMIT propertyChanged(changeMap);
|
||||||
@ -1310,21 +1227,21 @@ index 0000000..628c0b0
|
|||||||
+
|
+
|
||||||
+bool Device::isOpticalDisc() const
|
+bool Device::isOpticalDisc() const
|
||||||
+{
|
+{
|
||||||
+ QString drivePath = prop("Drive").value<QDBusObjectPath>().path();
|
+ const QString drv = drivePath();
|
||||||
+ if (drivePath.isEmpty() || drivePath == "/")
|
+ if (drv.isEmpty() || drv == "/")
|
||||||
+ return false;
|
+ return false;
|
||||||
+
|
+
|
||||||
+ Device drive(drivePath);
|
+ Device drive(drv);
|
||||||
+ return drive.prop("Optical").toBool();
|
+ return drive.prop("Optical").toBool();
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+bool Device::mightBeOpticalDisc() const
|
+bool Device::mightBeOpticalDisc() const
|
||||||
+{
|
+{
|
||||||
+ QString drivePath = prop("Drive").value<QDBusObjectPath>().path();
|
+ const QString drv = drivePath();
|
||||||
+ if (drivePath.isEmpty() || drivePath == "/")
|
+ if (drv.isEmpty() || drv == "/")
|
||||||
+ return false;
|
+ return false;
|
||||||
+
|
+
|
||||||
+ Device drive(drivePath);
|
+ Device drive(drv);
|
||||||
+ return drive.isOpticalDrive();
|
+ return drive.isOpticalDrive();
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
@ -1351,12 +1268,17 @@ index 0000000..628c0b0
|
|||||||
+{
|
+{
|
||||||
+ return hasInterface(UD2_DBUS_INTERFACE_SWAP);
|
+ return hasInterface(UD2_DBUS_INTERFACE_SWAP);
|
||||||
+}
|
+}
|
||||||
|
+
|
||||||
|
+QString Device::drivePath() const
|
||||||
|
+{
|
||||||
|
+ return prop("Drive").value<QDBusObjectPath>().path();
|
||||||
|
+}
|
||||||
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksdevice.h b/tier1/solid/src/solid/backends/udisks2/udisksdevice.h
|
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksdevice.h b/tier1/solid/src/solid/backends/udisks2/udisksdevice.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..6f8056b
|
index 0000000..cf8e2f5
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/tier1/solid/src/solid/backends/udisks2/udisksdevice.h
|
+++ b/tier1/solid/src/solid/backends/udisks2/udisksdevice.h
|
||||||
@@ -0,0 +1,110 @@
|
@@ -0,0 +1,112 @@
|
||||||
+/*
|
+/*
|
||||||
+ Copyright 2010 Michael Zanetti <mzanetti@kde.org>
|
+ Copyright 2010 Michael Zanetti <mzanetti@kde.org>
|
||||||
+ Copyright 2010-2012 Lukáš Tinkl <ltinkl@redhat.com>
|
+ Copyright 2010-2012 Lukáš Tinkl <ltinkl@redhat.com>
|
||||||
@ -1439,6 +1361,8 @@ index 0000000..6f8056b
|
|||||||
+ bool isEncryptedCleartext() const;
|
+ bool isEncryptedCleartext() const;
|
||||||
+ bool isSwap() const;
|
+ bool isSwap() const;
|
||||||
+
|
+
|
||||||
|
+ QString drivePath() const;
|
||||||
|
+
|
||||||
+Q_SIGNALS:
|
+Q_SIGNALS:
|
||||||
+ void changed();
|
+ void changed();
|
||||||
+ void propertyChanged(const QMap<QString,int> &changes);
|
+ void propertyChanged(const QMap<QString,int> &changes);
|
||||||
@ -1784,10 +1708,10 @@ index 0000000..d225f32
|
|||||||
+#endif // SOLID_BACKENDS_UDISKS2_GENERICINTERFACE_H
|
+#endif // SOLID_BACKENDS_UDISKS2_GENERICINTERFACE_H
|
||||||
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksmanager.cpp b/tier1/solid/src/solid/backends/udisks2/udisksmanager.cpp
|
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksmanager.cpp b/tier1/solid/src/solid/backends/udisks2/udisksmanager.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..2e6f8c6
|
index 0000000..9af8ee2
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/tier1/solid/src/solid/backends/udisks2/udisksmanager.cpp
|
+++ b/tier1/solid/src/solid/backends/udisks2/udisksmanager.cpp
|
||||||
@@ -0,0 +1,294 @@
|
@@ -0,0 +1,227 @@
|
||||||
+/*
|
+/*
|
||||||
+ Copyright 2012 Lukáš Tinkl <ltinkl@redhat.com>
|
+ Copyright 2012 Lukáš Tinkl <ltinkl@redhat.com>
|
||||||
+
|
+
|
||||||
@ -1959,77 +1883,6 @@ index 0000000..2e6f8c6
|
|||||||
+ return UD2_UDI_DISKS_PREFIX;
|
+ return UD2_UDI_DISKS_PREFIX;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#if 0
|
|
||||||
+void Manager::slotDeviceAdded(const QDBusObjectPath &opath)
|
|
||||||
+{
|
|
||||||
+ const QString udi = opath.path();
|
|
||||||
+
|
|
||||||
+ if (!m_deviceCache.contains(udi)) {
|
|
||||||
+ m_deviceCache.append(udi);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ Device device(udi);
|
|
||||||
+ if (device.queryDeviceInterface(Solid::DeviceInterface::StorageDrive)
|
|
||||||
+ && !device.prop("DeviceIsMediaAvailable").toBool()
|
|
||||||
+ && !m_dirtyDevices.contains(udi))
|
|
||||||
+ m_dirtyDevices.append(udi);
|
|
||||||
+
|
|
||||||
+ Q_EMIT deviceAdded(udi);
|
|
||||||
+ slotDeviceChanged(opath); // case: hotswap event (optical drive with media inside)
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void Manager::slotDeviceRemoved(const QDBusObjectPath &opath)
|
|
||||||
+{
|
|
||||||
+ const QString udi = opath.path();
|
|
||||||
+
|
|
||||||
+ // case: hotswap event (optical drive with media inside)
|
|
||||||
+ if (m_knownDrivesWithMedia.contains(udi)) {
|
|
||||||
+ m_knownDrivesWithMedia.removeAll(udi);
|
|
||||||
+ m_deviceCache.removeAll(udi + ":media");
|
|
||||||
+ Q_EMIT deviceRemoved(udi + ":media");
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (m_dirtyDevices.contains(udi))
|
|
||||||
+ m_dirtyDevices.removeAll(udi);
|
|
||||||
+
|
|
||||||
+ Q_EMIT deviceRemoved(udi);
|
|
||||||
+ m_deviceCache.removeAll(udi);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void Manager::slotDeviceChanged(const QDBusObjectPath &opath)
|
|
||||||
+{
|
|
||||||
+ const QString udi = opath.path();
|
|
||||||
+ Device device(udi);
|
|
||||||
+
|
|
||||||
+ if (device.queryDeviceInterface(Solid::DeviceInterface::OpticalDrive))
|
|
||||||
+ {
|
|
||||||
+ if (!m_knownDrivesWithMedia.contains(udi) && device.prop("DeviceIsOpticalDisc").toBool())
|
|
||||||
+ {
|
|
||||||
+ m_knownDrivesWithMedia.append(udi);
|
|
||||||
+ if (!m_deviceCache.isEmpty()) {
|
|
||||||
+ m_deviceCache.append(udi + ":media");
|
|
||||||
+ }
|
|
||||||
+ Q_EMIT deviceAdded(udi + ":media");
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (m_knownDrivesWithMedia.contains(udi) && !device.prop("DeviceIsOpticalDisc").toBool())
|
|
||||||
+ {
|
|
||||||
+ m_knownDrivesWithMedia.removeAll(udi);
|
|
||||||
+ m_deviceCache.removeAll(udi + ":media");
|
|
||||||
+ Q_EMIT deviceRemoved(udi + ":media");
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (device.queryDeviceInterface(Solid::DeviceInterface::StorageDrive) && device.prop("MediaAvailable").toBool() && m_dirtyDevices.contains(udi))
|
|
||||||
+ {
|
|
||||||
+ qDebug() << "dirty device added:" << udi;
|
|
||||||
+ Q_EMIT deviceAdded(udi);
|
|
||||||
+ m_dirtyDevices.removeAll(udi);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+void Manager::slotInterfacesAdded(const QDBusObjectPath &object_path, const QVariantMapMap &interfaces_and_properties)
|
+void Manager::slotInterfacesAdded(const QDBusObjectPath &object_path, const QVariantMapMap &interfaces_and_properties)
|
||||||
+{
|
+{
|
||||||
+ const QString udi = object_path.path();
|
+ const QString udi = object_path.path();
|
||||||
@ -2060,6 +1913,10 @@ index 0000000..2e6f8c6
|
|||||||
+void Manager::slotMediaChanged(const QDBusMessage & msg)
|
+void Manager::slotMediaChanged(const QDBusMessage & msg)
|
||||||
+{
|
+{
|
||||||
+ const QVariantMap properties = qdbus_cast<QVariantMap>(msg.arguments().at(1));
|
+ const QVariantMap properties = qdbus_cast<QVariantMap>(msg.arguments().at(1));
|
||||||
|
+
|
||||||
|
+ if (!properties.contains("Size")) // react only on Size changes
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
+ const QString udi = msg.path();
|
+ const QString udi = msg.path();
|
||||||
+ qulonglong size = properties.value("Size").toULongLong();
|
+ qulonglong size = properties.value("Size").toULongLong();
|
||||||
+ qDebug() << "MEDIA CHANGED in" << udi << "; size is:" << size;
|
+ qDebug() << "MEDIA CHANGED in" << udi << "; size is:" << size;
|
||||||
@ -2159,10 +2016,10 @@ index 0000000..7cf0a72
|
|||||||
+#endif // UDISKS2MANAGER_H
|
+#endif // UDISKS2MANAGER_H
|
||||||
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksopticaldisc.cpp b/tier1/solid/src/solid/backends/udisks2/udisksopticaldisc.cpp
|
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksopticaldisc.cpp b/tier1/solid/src/solid/backends/udisks2/udisksopticaldisc.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..bceb277
|
index 0000000..478c930
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/tier1/solid/src/solid/backends/udisks2/udisksopticaldisc.cpp
|
+++ b/tier1/solid/src/solid/backends/udisks2/udisksopticaldisc.cpp
|
||||||
@@ -0,0 +1,274 @@
|
@@ -0,0 +1,277 @@
|
||||||
+/*
|
+/*
|
||||||
+ Copyright 2010 Michael Zanetti <mzanetti@kde.org>
|
+ Copyright 2010 Michael Zanetti <mzanetti@kde.org>
|
||||||
+ Copyright 2010 - 2012 Lukáš Tinkl <ltinkl@redhat.com>
|
+ Copyright 2010 - 2012 Lukáš Tinkl <ltinkl@redhat.com>
|
||||||
@ -2192,7 +2049,7 @@ index 0000000..bceb277
|
|||||||
+#include <QtCore/QFile>
|
+#include <QtCore/QFile>
|
||||||
+#include <QtDBus/QDBusConnection>
|
+#include <QtDBus/QDBusConnection>
|
||||||
+
|
+
|
||||||
+#include "../shared/udevqt.h"
|
+#include "../shared/udevqtclient.h"
|
||||||
+
|
+
|
||||||
+#include "udisks2.h"
|
+#include "udisks2.h"
|
||||||
+#include "udisksopticaldisc.h"
|
+#include "udisksopticaldisc.h"
|
||||||
@ -2330,11 +2187,13 @@ index 0000000..bceb277
|
|||||||
+
|
+
|
||||||
+using namespace Solid::Backends::UDisks2;
|
+using namespace Solid::Backends::UDisks2;
|
||||||
+
|
+
|
||||||
+OpticalDisc::OpticalDisc(Device *device)
|
+OpticalDisc::OpticalDisc(Device *dev)
|
||||||
+ : StorageVolume(device), m_needsReprobe(true), m_cachedContent(Solid::OpticalDisc::NoContent)
|
+ : StorageVolume(dev), m_needsReprobe(true), m_cachedContent(Solid::OpticalDisc::NoContent)
|
||||||
+{
|
+{
|
||||||
+ UdevQt::Client client(this);
|
+ UdevQt::Client client(this);
|
||||||
+ m_udevDevice = client.deviceByDeviceFile(QFile::decodeName(m_device->prop("Device").toByteArray()));
|
+ m_udevDevice = client.deviceByDeviceFile(device());
|
||||||
|
+ //qDebug() << "udev device:" << m_udevDevice.name() << "valid:" << m_udevDevice.isValid();
|
||||||
|
+ /*qDebug() << "\tProperties:" << */ m_udevDevice.deviceProperties(); // initialize the properties DB so that it doesn't crash further down, #298416
|
||||||
+
|
+
|
||||||
+ m_drive = new Device(m_device->prop("Drive").value<QDBusObjectPath>().path());
|
+ m_drive = new Device(m_device->prop("Drive").value<QDBusObjectPath>().path());
|
||||||
+ QDBusConnection::systemBus().connect(UD2_DBUS_SERVICE, m_drive->udi(), DBUS_INTERFACE_PROPS, "PropertiesChanged", this,
|
+ QDBusConnection::systemBus().connect(UD2_DBUS_SERVICE, m_drive->udi(), DBUS_INTERFACE_PROPS, "PropertiesChanged", this,
|
||||||
@ -2367,6 +2226,7 @@ index 0000000..bceb277
|
|||||||
+
|
+
|
||||||
+bool OpticalDisc::isAppendable() const
|
+bool OpticalDisc::isAppendable() const
|
||||||
+{
|
+{
|
||||||
|
+ //qDebug() << "appendable prop" << m_udevDevice.deviceProperty("ID_CDROM_MEDIA_STATE");
|
||||||
+ return m_udevDevice.deviceProperty("ID_CDROM_MEDIA_STATE").toString() == QLatin1String("appendable");
|
+ return m_udevDevice.deviceProperty("ID_CDROM_MEDIA_STATE").toString() == QLatin1String("appendable");
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
@ -2439,7 +2299,7 @@ index 0000000..bceb277
|
|||||||
+}
|
+}
|
||||||
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksopticaldisc.h b/tier1/solid/src/solid/backends/udisks2/udisksopticaldisc.h
|
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksopticaldisc.h b/tier1/solid/src/solid/backends/udisks2/udisksopticaldisc.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..1e2f030
|
index 0000000..5b80995
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/tier1/solid/src/solid/backends/udisks2/udisksopticaldisc.h
|
+++ b/tier1/solid/src/solid/backends/udisks2/udisksopticaldisc.h
|
||||||
@@ -0,0 +1,69 @@
|
@@ -0,0 +1,69 @@
|
||||||
@ -2469,7 +2329,7 @@ index 0000000..1e2f030
|
|||||||
+
|
+
|
||||||
+#include <solid/ifaces/opticaldisc.h>
|
+#include <solid/ifaces/opticaldisc.h>
|
||||||
+
|
+
|
||||||
+#include "../shared/udevqt.h"
|
+#include "../shared/udevqtdevice.h"
|
||||||
+
|
+
|
||||||
+#include "udisksstoragevolume.h"
|
+#include "udisksstoragevolume.h"
|
||||||
+#include "udisksdevice.h"
|
+#include "udisksdevice.h"
|
||||||
@ -2487,7 +2347,7 @@ index 0000000..1e2f030
|
|||||||
+ Q_INTERFACES(Solid::Ifaces::OpticalDisc)
|
+ Q_INTERFACES(Solid::Ifaces::OpticalDisc)
|
||||||
+
|
+
|
||||||
+public:
|
+public:
|
||||||
+ OpticalDisc(Device *device);
|
+ OpticalDisc(Device *dev);
|
||||||
+ virtual ~OpticalDisc();
|
+ virtual ~OpticalDisc();
|
||||||
+
|
+
|
||||||
+ virtual qulonglong capacity() const;
|
+ virtual qulonglong capacity() const;
|
||||||
@ -2795,7 +2655,7 @@ index 0000000..4c98ef5
|
|||||||
+#endif // UDISKS2OPTICALDRIVE_H
|
+#endif // UDISKS2OPTICALDRIVE_H
|
||||||
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksstorageaccess.cpp b/tier1/solid/src/solid/backends/udisks2/udisksstorageaccess.cpp
|
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksstorageaccess.cpp b/tier1/solid/src/solid/backends/udisks2/udisksstorageaccess.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..9239bcb
|
index 0000000..146c227
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/tier1/solid/src/solid/backends/udisks2/udisksstorageaccess.cpp
|
+++ b/tier1/solid/src/solid/backends/udisks2/udisksstorageaccess.cpp
|
||||||
@@ -0,0 +1,359 @@
|
@@ -0,0 +1,359 @@
|
||||||
@ -2859,7 +2719,7 @@ index 0000000..9239bcb
|
|||||||
+
|
+
|
||||||
+bool StorageAccess::isLuksDevice() const
|
+bool StorageAccess::isLuksDevice() const
|
||||||
+{
|
+{
|
||||||
+ return m_device->isEncryptedContainer(); // encrypted (and unlocked) device
|
+ return m_device->isEncryptedContainer(); // encrypted device
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+bool StorageAccess::isAccessible() const
|
+bool StorageAccess::isAccessible() const
|
||||||
@ -2957,7 +2817,7 @@ index 0000000..9239bcb
|
|||||||
+ if (m_setupInProgress)
|
+ if (m_setupInProgress)
|
||||||
+ {
|
+ {
|
||||||
+ if (isLuksDevice() && !isAccessible()) { // unlocked device, now mount it
|
+ if (isLuksDevice() && !isAccessible()) { // unlocked device, now mount it
|
||||||
+ if (reply.type() == QDBusMessage::ReplyMessage)
|
+ if (reply.type() == QDBusMessage::ReplyMessage) // we've got a response from Unlock
|
||||||
+ m_clearTextPath = reply.arguments().value(0).value<QDBusObjectPath>().path();
|
+ m_clearTextPath = reply.arguments().value(0).value<QDBusObjectPath>().path();
|
||||||
+ mount();
|
+ mount();
|
||||||
+ }
|
+ }
|
||||||
@ -3105,7 +2965,7 @@ index 0000000..9239bcb
|
|||||||
+
|
+
|
||||||
+ QString appId = QCoreApplication::applicationName();
|
+ QString appId = QCoreApplication::applicationName();
|
||||||
+
|
+
|
||||||
+ QDBusInterface soliduiserver("org.kde.kded", "/modules/soliduiserver", "org.kde.SolidUiServer");
|
+ QDBusInterface soliduiserver("org.kde.kded5", "/modules/soliduiserver", "org.kde.SolidUiServer");
|
||||||
+ QDBusReply<void> reply = soliduiserver.call("showPassphraseDialog", udi, returnService,
|
+ QDBusReply<void> reply = soliduiserver.call("showPassphraseDialog", udi, returnService,
|
||||||
+ m_lastReturnObject, wId, appId);
|
+ m_lastReturnObject, wId, appId);
|
||||||
+ m_passphraseRequested = reply.isValid();
|
+ m_passphraseRequested = reply.isValid();
|
||||||
@ -3136,7 +2996,7 @@ index 0000000..9239bcb
|
|||||||
+ QDBusConnection c = QDBusConnection::systemBus();
|
+ QDBusConnection c = QDBusConnection::systemBus();
|
||||||
+ QDBusMessage msg = QDBusMessage::createMethodCall(UD2_DBUS_SERVICE, m_device->udi(), UD2_DBUS_INTERFACE_ENCRYPTED, "Unlock");
|
+ QDBusMessage msg = QDBusMessage::createMethodCall(UD2_DBUS_SERVICE, m_device->udi(), UD2_DBUS_INTERFACE_ENCRYPTED, "Unlock");
|
||||||
+
|
+
|
||||||
+ msg << passphrase.toUtf8(); // QByteArray
|
+ msg << passphrase;
|
||||||
+ msg << QVariantMap(); // options, unused now
|
+ msg << QVariantMap(); // options, unused now
|
||||||
+
|
+
|
||||||
+ c.callWithCallback(msg, this,
|
+ c.callWithCallback(msg, this,
|
||||||
@ -3270,10 +3130,10 @@ index 0000000..36f2102
|
|||||||
+#endif // UDISKS2STORAGEACCESS_H
|
+#endif // UDISKS2STORAGEACCESS_H
|
||||||
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksstoragedrive.cpp b/tier1/solid/src/solid/backends/udisks2/udisksstoragedrive.cpp
|
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksstoragedrive.cpp b/tier1/solid/src/solid/backends/udisks2/udisksstoragedrive.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..3a62857
|
index 0000000..c79ac20
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/tier1/solid/src/solid/backends/udisks2/udisksstoragedrive.cpp
|
+++ b/tier1/solid/src/solid/backends/udisks2/udisksstoragedrive.cpp
|
||||||
@@ -0,0 +1,144 @@
|
@@ -0,0 +1,147 @@
|
||||||
+/*
|
+/*
|
||||||
+ Copyright 2010 Michael Zanetti <mzanetti@kde.org>
|
+ Copyright 2010 Michael Zanetti <mzanetti@kde.org>
|
||||||
+ Copyright 2010-2012 Lukáš Tinkl <ltinkl@redhat.com>
|
+ Copyright 2010-2012 Lukáš Tinkl <ltinkl@redhat.com>
|
||||||
@ -3297,18 +3157,19 @@ index 0000000..3a62857
|
|||||||
+
|
+
|
||||||
+#include "udisksstoragedrive.h"
|
+#include "udisksstoragedrive.h"
|
||||||
+
|
+
|
||||||
+#include "../shared/udevqt.h"
|
+#include "../shared/udevqtclient.h"
|
||||||
+
|
+
|
||||||
+#include <QtCore/QDebug>
|
+#include <QtCore/QDebug>
|
||||||
+#include <QtCore/QFile>
|
+#include <QtCore/QFile>
|
||||||
+
|
+
|
||||||
+using namespace Solid::Backends::UDisks2;
|
+using namespace Solid::Backends::UDisks2;
|
||||||
+
|
+
|
||||||
+StorageDrive::StorageDrive(Device *device)
|
+StorageDrive::StorageDrive(Device *dev)
|
||||||
+ : Block(device)
|
+ : Block(dev)
|
||||||
+{
|
+{
|
||||||
+ UdevQt::Client client(this);
|
+ UdevQt::Client client(this);
|
||||||
+ m_udevDevice = client.deviceByDeviceFile(QFile::decodeName(m_device->prop("Device").toByteArray()));
|
+ m_udevDevice = client.deviceByDeviceFile(device());
|
||||||
|
+ m_udevDevice.deviceProperties();
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+StorageDrive::~StorageDrive()
|
+StorageDrive::~StorageDrive()
|
||||||
@ -3386,6 +3247,8 @@ index 0000000..3a62857
|
|||||||
+ const QString bus = m_device->prop("ConnectionBus").toString();
|
+ const QString bus = m_device->prop("ConnectionBus").toString();
|
||||||
+ const QString udevBus = m_udevDevice.deviceProperty("ID_BUS").toString();
|
+ const QString udevBus = m_udevDevice.deviceProperty("ID_BUS").toString();
|
||||||
+
|
+
|
||||||
|
+ //qDebug() << "bus:" << bus << "udev bus:" << udevBus;
|
||||||
|
+
|
||||||
+ if (udevBus == "ata")
|
+ if (udevBus == "ata")
|
||||||
+ {
|
+ {
|
||||||
+ if (m_udevDevice.deviceProperty("ID_ATA_SATA").toInt() == 1) // serial ATA
|
+ if (m_udevDevice.deviceProperty("ID_ATA_SATA").toInt() == 1) // serial ATA
|
||||||
@ -3420,7 +3283,7 @@ index 0000000..3a62857
|
|||||||
+}
|
+}
|
||||||
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksstoragedrive.h b/tier1/solid/src/solid/backends/udisks2/udisksstoragedrive.h
|
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksstoragedrive.h b/tier1/solid/src/solid/backends/udisks2/udisksstoragedrive.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..97007b3
|
index 0000000..9c87a23
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/tier1/solid/src/solid/backends/udisks2/udisksstoragedrive.h
|
+++ b/tier1/solid/src/solid/backends/udisks2/udisksstoragedrive.h
|
||||||
@@ -0,0 +1,61 @@
|
@@ -0,0 +1,61 @@
|
||||||
@ -3450,7 +3313,7 @@ index 0000000..97007b3
|
|||||||
+
|
+
|
||||||
+#include <ifaces/storagedrive.h>
|
+#include <ifaces/storagedrive.h>
|
||||||
+
|
+
|
||||||
+#include "../shared/udevqt.h"
|
+#include "../shared/udevqtdevice.h"
|
||||||
+
|
+
|
||||||
+#include "udisksblock.h"
|
+#include "udisksblock.h"
|
||||||
+
|
+
|
||||||
@ -3467,7 +3330,7 @@ index 0000000..97007b3
|
|||||||
+ Q_INTERFACES(Solid::Ifaces::StorageDrive)
|
+ Q_INTERFACES(Solid::Ifaces::StorageDrive)
|
||||||
+
|
+
|
||||||
+public:
|
+public:
|
||||||
+ StorageDrive(Device *device);
|
+ StorageDrive(Device *dev);
|
||||||
+ virtual ~StorageDrive();
|
+ virtual ~StorageDrive();
|
||||||
+
|
+
|
||||||
+ virtual qulonglong size() const;
|
+ virtual qulonglong size() const;
|
||||||
@ -3659,3 +3522,141 @@ index 0000000..2ca04d2
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif // UDISKS2STORAGEVOLUME_H
|
+#endif // UDISKS2STORAGEVOLUME_H
|
||||||
|
diff --git a/tier1/solid/autotests/CMakeLists.txt b/tier1/solid/autotests/CMakeLists.txt
|
||||||
|
index 64bfdc0..180b04c 100644
|
||||||
|
--- a/tier1/solid/autotests/CMakeLists.txt
|
||||||
|
+++ b/tier1/solid/autotests/CMakeLists.txt
|
||||||
|
@@ -14,18 +14,6 @@ target_link_libraries(fakehardwaretest solid_static ${QT_QTCORE_LIBRARY} ${QT_QT
|
||||||
|
set_target_properties(fakehardwaretest PROPERTIES COMPILE_FLAGS -DTEST_DATA="\\"${CMAKE_CURRENT_SOURCE_DIR}/../src/solid/backends/fakehw/fakecomputer.xml\\"")
|
||||||
|
|
||||||
|
|
||||||
|
-########### halbasictest ###############
|
||||||
|
-
|
||||||
|
-if(NOT WIN32 AND NOT APPLE)
|
||||||
|
- set(halbasictest_SRCS halbasictest.cpp )
|
||||||
|
-
|
||||||
|
- add_executable(halbasictest ${halbasictest_SRCS})
|
||||||
|
-
|
||||||
|
- target_link_libraries(halbasictest solid_static ${KDEWIN_LIBRARIES} ${QT_QTCORE_LIBRARY} ${QT_QTDBUS_LIBRARY} ${QT_QTXML_LIBRARY} ${QT_QTTEST_LIBRARY} )
|
||||||
|
-
|
||||||
|
- ecm_mark_as_test(halbasictest)
|
||||||
|
-endif(NOT WIN32 AND NOT APPLE)
|
||||||
|
-
|
||||||
|
########### solidhwtest ###############
|
||||||
|
|
||||||
|
set(solidhwtest_SRCS
|
||||||
|
diff --git a/tier1/solid/src/solid/CMakeLists.txt b/tier1/solid/src/solid/CMakeLists.txt
|
||||||
|
index 0fabd2c..75bb642 100644
|
||||||
|
--- a/tier1/solid/src/solid/CMakeLists.txt
|
||||||
|
+++ b/tier1/solid/src/solid/CMakeLists.txt
|
||||||
|
@@ -29,7 +29,6 @@ configure_file(config-processor.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-proce
|
||||||
|
|
||||||
|
file(MAKE_DIRECTORY
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/backends/fakehw
|
||||||
|
- ${CMAKE_CURRENT_BINARY_DIR}/backends/hal
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/backends/udev
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/backends/wmi
|
||||||
|
)
|
||||||
|
@@ -205,33 +204,6 @@ if(NOT WIN32 AND NOT APPLE)
|
||||||
|
endif( UDEV_FOUND )
|
||||||
|
|
||||||
|
|
||||||
|
- message(STATUS "Building Solid HAL backend." )
|
||||||
|
- set(solid_LIB_SRCS ${solid_LIB_SRCS}
|
||||||
|
- backends/hal/halacadapter.cpp
|
||||||
|
- backends/hal/halaudiointerface.cpp
|
||||||
|
- backends/hal/halbattery.cpp
|
||||||
|
- backends/hal/halblock.cpp
|
||||||
|
- backends/hal/halbutton.cpp
|
||||||
|
- backends/hal/halcamera.cpp
|
||||||
|
- backends/hal/halcdrom.cpp
|
||||||
|
- backends/hal/haldeviceinterface.cpp
|
||||||
|
- backends/hal/haldvbinterface.cpp
|
||||||
|
- backends/hal/halfstabhandling.cpp
|
||||||
|
- backends/hal/halgenericinterface.cpp
|
||||||
|
- backends/hal/haldevice.cpp
|
||||||
|
- backends/hal/halmanager.cpp
|
||||||
|
- backends/hal/halnetworkinterface.cpp
|
||||||
|
- backends/hal/halserialinterface.cpp
|
||||||
|
- backends/hal/halopticaldisc.cpp
|
||||||
|
- backends/hal/halportablemediaplayer.cpp
|
||||||
|
- backends/hal/halprocessor.cpp
|
||||||
|
- backends/hal/halstorageaccess.cpp
|
||||||
|
- backends/hal/halstorage.cpp
|
||||||
|
- backends/hal/halvideo.cpp
|
||||||
|
- backends/hal/halvolume.cpp
|
||||||
|
- backends/hal/halsmartcardreader.cpp
|
||||||
|
- )
|
||||||
|
-
|
||||||
|
message(STATUS "Building Solid UPower backend." )
|
||||||
|
set(solid_LIB_SRCS ${solid_LIB_SRCS}
|
||||||
|
backends/upower/upowermanager.cpp
|
||||||
|
@@ -244,18 +216,19 @@ if(NOT WIN32 AND NOT APPLE)
|
||||||
|
|
||||||
|
# FIXME: this should work on more Unix systems
|
||||||
|
if (CMAKE_SYSTEM_NAME MATCHES Linux)
|
||||||
|
- message(STATUS "Building Solid UDisks backend." )
|
||||||
|
+ message(STATUS "Building Solid UDisks2 backend." )
|
||||||
|
set(solid_LIB_SRCS ${solid_LIB_SRCS}
|
||||||
|
- backends/udisks/udisksmanager.cpp
|
||||||
|
- backends/udisks/udisksdevice.cpp
|
||||||
|
- backends/udisks/udisksblock.cpp
|
||||||
|
- backends/udisks/udisksstoragevolume.cpp
|
||||||
|
- backends/udisks/udisksdeviceinterface.cpp
|
||||||
|
- backends/udisks/udisksopticaldisc.cpp
|
||||||
|
- backends/udisks/udisksopticaldrive.cpp
|
||||||
|
- backends/udisks/udisksstoragedrive.cpp
|
||||||
|
- backends/udisks/udisksstorageaccess.cpp
|
||||||
|
- backends/udisks/udisksgenericinterface.cpp
|
||||||
|
+ backends/udisks2/udisksmanager.cpp
|
||||||
|
+ backends/udisks2/udisksdevice.cpp
|
||||||
|
+ backends/udisks2/udisksblock.cpp
|
||||||
|
+ backends/udisks2/udisksstoragevolume.cpp
|
||||||
|
+ backends/udisks2/udisksdeviceinterface.cpp
|
||||||
|
+ backends/udisks2/udisksopticaldisc.cpp
|
||||||
|
+ backends/udisks2/udisksopticaldrive.cpp
|
||||||
|
+ backends/udisks2/udisksstoragedrive.cpp
|
||||||
|
+ backends/udisks2/udisksstorageaccess.cpp
|
||||||
|
+ backends/udisks2/udisksgenericinterface.cpp
|
||||||
|
+ backends/udisks2/dbus/manager.cpp
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
diff --git a/tier1/solid/src/solid/managerbase.cpp b/tier1/solid/src/solid/managerbase.cpp
|
||||||
|
index e228b48..7a7cc7d 100644
|
||||||
|
--- a/tier1/solid/src/solid/managerbase.cpp
|
||||||
|
+++ b/tier1/solid/src/solid/managerbase.cpp
|
||||||
|
@@ -30,8 +30,7 @@
|
||||||
|
#if defined (Q_OS_MAC)
|
||||||
|
#include "backends/iokit/iokitmanager.h"
|
||||||
|
#elif defined (Q_OS_UNIX)
|
||||||
|
-#include "backends/hal/halmanager.h"
|
||||||
|
-#include "backends/udisks/udisksmanager.h"
|
||||||
|
+#include "backends/udisks2/udisksmanager.h"
|
||||||
|
#include "backends/upower/upowermanager.h"
|
||||||
|
|
||||||
|
#if defined (HUPNP_FOUND)
|
||||||
|
@@ -71,22 +70,13 @@ void Solid::ManagerBasePrivate::loadBackends()
|
||||||
|
# elif defined(Q_OS_WIN) && defined(HAVE_WBEM) && !defined(_WIN32_WCE)
|
||||||
|
m_backends << new Solid::Backends::Wmi::WmiManager(0);
|
||||||
|
|
||||||
|
-# elif defined(Q_OS_UNIX) && !defined(Q_OS_LINUX)
|
||||||
|
- m_backends << new Solid::Backends::Hal::HalManager(0);
|
||||||
|
-
|
||||||
|
# elif defined(Q_OS_LINUX)
|
||||||
|
- bool solidHalLegacyEnabled
|
||||||
|
- = QString::fromLocal8Bit(qgetenv("SOLID_HAL_LEGACY")).toInt()==1;
|
||||||
|
- if (solidHalLegacyEnabled) {
|
||||||
|
- m_backends << new Solid::Backends::Hal::HalManager(0);
|
||||||
|
- } else {
|
||||||
|
# if defined(UDEV_FOUND)
|
||||||
|
m_backends << new Solid::Backends::UDev::UDevManager(0);
|
||||||
|
# endif
|
||||||
|
- m_backends << new Solid::Backends::UDisks::UDisksManager(0)
|
||||||
|
+ m_backends << new Solid::Backends::UDisks2::Manager(0)
|
||||||
|
<< new Solid::Backends::UPower::UPowerManager(0)
|
||||||
|
<< new Solid::Backends::Fstab::FstabManager(0);
|
||||||
|
- }
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if defined (HUPNP_FOUND)
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
Summary: KDE Libraries
|
Summary: KDE Libraries
|
||||||
Version: 4.8.3
|
Version: 4.8.3
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
|
|
||||||
Name: kdelibs
|
Name: kdelibs
|
||||||
Epoch: 6
|
Epoch: 6
|
||||||
@ -600,6 +600,9 @@ rm -rf %{buildroot}
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu May 24 2012 Lukas Tinkl <ltinkl@redhat.com> - 6:4.8.3-3
|
||||||
|
- update the udisks2 backend patch, fixing some bugs with storage drives
|
||||||
|
|
||||||
* Thu May 03 2012 Than Ngo <than@redhat.com> - 6:4.8.3-2
|
* Thu May 03 2012 Than Ngo <than@redhat.com> - 6:4.8.3-2
|
||||||
- add rhel/fedora condition
|
- add rhel/fedora condition
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user