diff --git a/CMakeLists.txt b/CMakeLists.txt
index b4981ae2b..e866486a3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -306,10 +306,6 @@ optional_component(AUDIOCD ON "Devices: Audio CD support"
DEPENDS "libcdio" CDIO_FOUND
)
-optional_component(DEVICEKIT ON "Devices: DeviceKit backend"
- DEPENDS "D-Bus support" DBUS_FOUND
-)
-
optional_component(UDISKS2 ON "Devices: UDisks2 backend"
DEPENDS "D-Bus support" DBUS_FOUND
)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7bccc9547..813922ae4 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -604,10 +604,6 @@ if(UNIX AND HAVE_DBUS)
SOURCES core/mpris.cpp core/mpris2.cpp core/dbusscreensaver.cpp
HEADERS core/mpris.h core/mpris2.h
)
- optional_source(HAVE_DEVICEKIT
- SOURCES device/devicekitlister.cpp
- HEADERS device/devicekitlister.h
- )
optional_source(HAVE_UDISKS2
SOURCES device/udisks2lister.cpp
HEADERS device/udisks2lister.h
@@ -667,20 +663,6 @@ if(UNIX AND HAVE_DBUS)
list(APPEND HEADERS ${CMAKE_CURRENT_BINARY_DIR}/dbus/avahientrygroup.h)
list(APPEND SOURCES ${CMAKE_CURRENT_BINARY_DIR}/dbus/avahientrygroup.cpp)
- # DeviceKit DBUS interfaces
- if(HAVE_DEVICEKIT)
- set_source_files_properties(dbus/org.freedesktop.UDisks.xml
- PROPERTIES NO_NAMESPACE dbus/udisks)
- set_source_files_properties(dbus/org.freedesktop.UDisks.Device.xml
- PROPERTIES NO_NAMESPACE dbus/udisksdevice)
- qt5_add_dbus_interface(SOURCES
- dbus/org.freedesktop.UDisks.xml
- dbus/udisks)
- qt5_add_dbus_interface(SOURCES
- dbus/org.freedesktop.UDisks.Device.xml
- dbus/udisksdevice)
- endif(HAVE_DEVICEKIT)
-
if(HAVE_UDISKS2)
set_source_files_properties(dbus/org.freedesktop.DBus.ObjectManager.xml
PROPERTIES NO_NAMESPACE dbus/objectmanager INCLUDE dbus/metatypes.h)
diff --git a/src/config.h.in b/src/config.h.in
index 10fe79246..a474395cd 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -30,7 +30,6 @@
#cmakedefine HAVE_X11
#cmakedefine HAVE_UDISKS2
#cmakedefine HAVE_ALSA
-#cmakedefine HAVE_DEVICEKIT
#cmakedefine HAVE_IMOBILEDEVICE
#cmakedefine HAVE_AUDIOCD
#cmakedefine HAVE_LIBGPOD
diff --git a/src/dbus/org.freedesktop.UDisks.Device.xml b/src/dbus/org.freedesktop.UDisks.Device.xml
deleted file mode 100644
index 99d1c459f..000000000
--- a/src/dbus/org.freedesktop.UDisks.Device.xml
+++ /dev/null
@@ -1,2850 +0,0 @@
-
-
-
-
-
-
- This interface provides information about a block device on
- a UNIX-like system. In addition to just providing
- information, methods can be invoked to perform operations on
- the block device. Objects implementing this interface have
- object paths prefixed with /devices/
- followed by a sanitized representation of the base name of
- their native path. As the D-Bus specification greatly limits
- what characters can be used in object paths, this doesn't
- necessarily map one to one with the native basename; for
- example the native
- path /sys/devices/virtual/block/dm-0 will
- be represented as /devices/dm_0.
-
-
- Most methods on this interface take an array of strings
- for options that can affect what the method does. Some of
- these options are literal strings (such
- as noatime) while some are encoded in the
- form of a key/value pair (such
- as label=).
-
-
- A general note about properties: the set of values
- returned can be expected to grow in the future as both
- hardware and operating system capabilities evolve. Care
- has been taken to namespace values so applications can
- properly fall back (see e.g.
- DriveMediaCompatibility)
- and export both general and specific properties (such as
- IdUsage
- vs.
- IdType).
- In general an empty string in a property means not
- set. Since the empty string is not a valid object path we
- use the "/" to mean "not set" for object paths.
-
-
-
-
-
-
-
-
-
-
-
-
- Cancels a job in progress.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.cancel-job-others
- To cancel a job initiated by another user
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the operation failed
-
-
-
-
-
-
-
-
-
-
- The scheme of the partition table to create.
-
-
-
- No options are currently supported.
-
-
-
-
-
- Creates a new partition table. The following partition table schemes are supported:
-
-
- none
- To zero out existing partition tables signatures.
-
-
- mbr
-
- Use the
- Master Boot Record
- partitioning scheme.
-
-
-
- gpt
-
- Use the
- GUID Partition Table
- scheme.
-
-
-
- apm
-
- Use the
- Apple Partition Map
- partitioning scheme.
-
-
-
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.change
- If the operation is on a
- non-system-internal
- device
-
-
- org.freedesktop.udisks.change-system-internal
- If the operation is on a
- system-internal
- device
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device or a partition on it are busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- No options are currently supported.
-
-
-
-
-
- Deletes a partition, removing it from the enclosing partition table.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.change
- If the operation is on a
- non-system-internal
- device
-
-
- org.freedesktop.udisks.change-system-internal
- If the operation is on a
- system-internal
- device
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device is busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- Where on the device to create the partition.
-
-
- Size of the partitition to create.
-
-
-
- The type of the partition to create. Valid types depends
- on the partitioning scheme used:
-
-
- mbr
-
- For the
- Master Boot Record
- partitioning scheme, the
- given type must be a string representation of an
- integer (both decimal and hexadecimal encodings are
- accepted) between 0 and 255 both inclusive.
-
-
-
- gpt
-
- Any valid GUID string.
-
-
-
- apm
-
- Any valid type for
- Apple Partition Map
- for example Apple_Unix_SVR2.
-
-
-
-
-
-
-
- The label to use for the partition. Leave blank if the
- partition table scheme is mbr.
-
-
-
-
- Flags to use for the partition. Valid flags depends on the
- partitioning scheme used:
-
-
- mbr
-
- Only the flag boot is valid.
-
-
-
- gpt
-
- Only the flag required is valid.
-
-
-
- apm
-
- The flags
- allocated,
- in_use,
- boot,
- allow_read,
- allow_write,
- boot_code_is_pic
- are valid.
-
-
-
-
-
-
- Currently unused.
-
-
-
- The file system to create in new partition. Leave
- blank to skip creating a file system. See the
- FilesystemCreate() method
- for details.
-
-
-
-
- Options to use for file system creation. See the
- FilesystemCreate() method
- for details.
-
-
-
- The object path of the newly added partition.
-
-
-
-
-
- Create a new partition and, optionally, create a file
- system on it. The partition won't necessarily be created
- at the exact location requested due to disk geometry
- constraints.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.change
- If the operation is on a
- non-system-internal
- device
-
-
- org.freedesktop.udisks.change-system-internal
- If the operation is on a
- system-internal
- device
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device is busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
-
- The type of the partition to create. See the type parameter of the
- PartitionCreate() method
- for details on valid types.
-
-
-
-
- The label to use for the partition. See the label parameter of the
- PartitionCreate() method
- for details on valid labels.
-
-
-
-
- Flags to use for the partition. See the flags parameter of the
- PartitionCreate() method
- for details on valid flags
-
-
-
-
-
-
- Modifies meta data for a partition, such as type, label and flags.
- TODO: Consider allowing changing offset and
- size. Or maybe that should be a separate method.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.change
- If the operation is on a
- non-system-internal
- device
-
-
- org.freedesktop.udisks.change-system-internal
- If the operation is on a
- system-internal
- device
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the enclosing partition table device is busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
-
- The type of file system to
- create. Pass empty to not create a file
- system and just clear the areas of the device known to host
- file system signatures. Use @TODO@ to get a list of file systems that can
- be created.
-
-
-
-
- To set the label on the file system use
- the label=NAME option. Labels may not be
- supported for all file systems and the allowed length of a
- label may vary (see @TODO@). To create the file system on
- an LUKS encrypted block device, pass
- the luks_encrypt= option with the value
- set to the passphrase to use. For file systems with the
- concept of owners (e.g.
- ext3), the options take_ownership_uid= and
- take_ownership_gid= are supported and can be used to set the
- initial owner of the created file system.
-
-
-
-
-
-
- Create a file system on a device. If
- the luks_encrypt= option is passed then an
- LUKS encrypted block device will be created, then unlocked and
- the file system will be created on the corresponding
- cleartext device.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.change
- If the operation is on a
- non-system-internal
- device
-
-
- org.freedesktop.udisks.change-system-internal
- If the operation is on a
- system-internal
- device
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device is busy
- if the operation failed
- if the job was cancelled
- if mkfs for this type is not available
-
-
-
-
-
-
-
-
-
-
- New label for file system.
-
-
-
-
-
-
- Changes the file system label. See the options parameter of
- FilesystemCreate()
- method for details of what valid labels are valid.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.change
- If the operation is on a
- non-system-internal
- device
-
-
- org.freedesktop.udisks.change-system-internal
- If the operation is on a
- system-internal
- device
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device is busy and changing the label requires an unmounted file system
- if the operation failed
- if the job was cancelled
- if the label changing tool for this file system type is not available
-
-
-
-
-
-
-
-
-
- File system type to use.
-
-
-
- Mount Options. Valid mount options include mount options accepted by the native mount program.
- The option auth_no_user_interaction
can be used to avoid user interaction (e.g. authentication dialogs) when checking whether the caller is authorized.
-
-
- Where the device was mounted.
-
-
-
-
-
- Mount the device. If the device is referenced in the
- system-wide /etc/fstab file, the given
- parameters are all ignored and the device will be
- attempted to be mounted as the calling user.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.filesystem-mount
- If the operation is on a
- non-system-internal
- device
-
-
- org.freedesktop.udisks.filesystem-mount-system-internal
- If the operation is on a
- system-internal
- device
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device is busy
- if the operation failed
- if the job was cancelled
- if an invalid or malformed mount option was given
- if the kernel driver for this file system type is not available
-
-
-
-
-
-
-
-
-
- Unmount options. Valid options currently include only 'force'.
-
-
-
-
-
- Unmount the device. If the device is referenced in the
- system-wide /etc/fstab file (both at
- mount time and when this method is invoked), the device
- will be attempted to be unmounted as the calling user.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.filesystem-unmount-others
- To unmount a device mounted by another user
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device is busy
- if the operation failed
- if the job was cancelled
- if an invalid or malformed unmount option was given
-
-
-
-
-
-
-
-
-
- Currently unused.
-
-
-
- Returns TRUE if the file system is clean, FALSE if there are errors on the file system.
-
-
-
-
-
-
- Perform a non-interactive file system check.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.filesystem-check
- To check a file system on a
- non-system-internal
- device.
-
-
- org.freedesktop.udisks.filesystem-check-system-internal
- To check a file system on a
- system-internal
- device.
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device is mounted and the file system doesn't support online file system checking. See TODO for how to determine if a file system supports online fsck
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
-
-
- An array of triples (pid, uid, command line for the process
- image) for processes currently having open files on the given mounted file system.
- Note that this operation is not run as a job.
-
-
-
-
-
-
- List open files on a mounted file system.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.filesystem-lsof
- To check a file system on a
- non-system-internal
- device.
-
-
- org.freedesktop.udisks.filesystem-lsof-system-internal
- To check a file system on a
- system-internal
- device.
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device is mounted and the file system doesn't support online file system checking. See TODO for how to determine if a file system supports online fsck
- if the operation failed
-
-
-
-
-
-
-
-
-
- Passphrase for unlocking the cleartext data.
-
-
- Currently unused.
-
-
- The cleartext device created.
-
-
-
-
-
- Sets up a cleartext device using the given device as backing store.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.luks-unlock
- To unlock LUKS encrypted devices
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device is busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- Currently unused.
-
-
-
-
-
- Tears down the cleartext device set up using
- e.g. the LuksUnlock()
- method.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.luks-lock-others
- To lock an encrypted LUKS device unlocked by another user
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device is busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- The current passphrase.
-
-
- The new passphrase.
-
-
-
-
-
- Change the passphrase used to unlock a LUKS encrypted device.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.change
- If the operation is on a
- non-system-internal
- device
-
-
- org.freedesktop.udisks.change-system-internal
- If the operation is on a
- system-internal
- device
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device is busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- Object path of the component to add
-
-
- Currently unused.
-
-
-
-
-
- Adds a component to a Linux md RAID array. Existing data
- on the given component will be erased.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-md
-
- Needed to configured Linux md Software RAID devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- component to add is busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- Object paths of the components to use for growing the array
-
-
- Currently unused.
-
-
-
-
-
- Grows the Linux md RAID array with the given components.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-md
-
- Needed to configured Linux md Software RAID devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- component to add is busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- The component to remove from the array.
-
-
- No options are currently supported.
-
-
-
-
-
- Removes a component from a Linux md RAID array. The component
- will be removed and then the signatures on the component will be
- scrubbed.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-md
-
- Needed to configured Linux md Software RAID devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- component to add is busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- Currently unused.
-
-
-
-
-
- Stops a Linux md RAID array.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-md
-
- Needed to configured Linux md Software RAID devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- Currently unused.
-
-
-
-
-
- Stops a Linux LVM2 Logical Volume.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-lvm2
-
- Needed to configured Linux LVM2.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
-
- Use the repair option to fix any problems encountered.
-
-
-
-
-
- Number of mismatched sectors/pages found (or fixed if the repair option is used).
-
-
-
-
-
-
- Checks a Linux md RAID array and returns the number of
- sectors/page with errors found/fixed. This can only be done if the
- property
- LinuxMdSyncAction
- is idle
.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-md
-
- Needed to configured Linux md Software RAID devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- Inhibit options. Currently no options are recognized.
-
-
-
-
- A cookie that can be used in the
- DriveUninhibitPolling() method
- to stop inhibiting polling of the device.
-
-
-
-
-
-
- Inhibits the daemon from polling the device for media changes.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.inhibit-polling
- To inhibit polling
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the operation failed
-
-
-
-
-
-
-
-
-
-
-
- A cookie obtained from the
- DriveInhibitPolling() method.
-
-
-
-
-
-
- Uninhibits daemon from polling the device for media changes.
-
-
-
- if the given cookie is malformed
-
-
-
-
-
-
-
-
-
-
-
-
-
- Polls the drive for media. This is typically only useful when the
- DeviceIsMediaChangeDetected property
- is FALSE.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.inhibit-polling
- To inhibit polling
-
-
-
-
- if the operation failed
-
-
-
-
-
-
-
-
-
- Eject options. Currently no options are recognized.
-
-
-
-
-
- Ejects media from the device.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.drive-eject
- To eject media from a device
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device or a dependent device (e.g. partition or cleartext luks device) is busy (e.g. mounted)
- if the operation failed
- if the job was cancelled
- if an invalid or malformed option was given
-
-
-
-
-
-
-
-
-
- Detach options. Currently no options are recognized.
-
-
-
-
-
- Detachs the device by e.g. powering down the physical port
- it is connected to. Note that not all devices or ports are
- capable of this. Check the
- DriveCanDetach
- property before attempting to invoke this method.
-
-
- Note that the physical port a drive belongs to may be
- located inside the physical casing - for example, some
- netbooks provide a SD card drive connect through USB. As
- such, users of this method should be careful – don't
- automatically invoke this method if the user presses
- e.g. an Eject button in the UI. Instead, provide e.g. a
- "Safely Remove Drive" option.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.drive-detach
- To detach a device
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the device or a dependent device (e.g. partition or cleartext luks device) is busy (e.g. mounted)
- if the operation failed
- if the job was cancelled
- if an invalid or malformed option was given
-
-
-
-
-
-
-
-
-
-
- Number of seconds before the drive should be spun down.
-
-
-
-
-
- Options related to setting spindown timeout. Currently no options are recognized.
-
-
-
-
-
- A cookie that can be used in the
- DriveUnsetSpindownTimeout() method
- to unset the spindown timeout of the device.
-
-
-
-
-
-
- Configures spindown timeout for the drive.
- Check the
- DriveCanSpindown
- property before attempting to invoke this method.
- Caution should be exercised when using this method, see
- the SPINNING DOWN DISKS section in the
- udisks(1) man page before using it.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.drive-set-spindown
- To set spindown timeouts
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the operation failed
- if an invalid or malformed option was given
-
-
-
-
-
-
-
-
-
-
-
- A cookie obtained from the
- DriveSetSpindownTimeout() method.
-
-
-
-
-
-
- Unsets spindown timeout for the drive.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.drive-set-spindown
- To set spindown timeouts
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the operation failed
-
-
-
-
-
-
-
-
-
-
- The option nowakeup can be passed to
- avoid spinning up the disk if it's in a low-power mode.
- The option simulate= can be used to pass a path to
- a blob with libatasmart data to use instead of reading it from the disk.
- The simulate= option can only be used by the super user.
-
-
-
-
-
- Refreshes the
- ATA SMART
- data for the given drive. Note that this operation is not run as a job.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.drive-ata-smart-refresh
- Needed to refresh ATA SMART data
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- If the disk is sleeping and the nowakeup option was passed
- if the operation failed
-
-
-
-
-
-
-
-
-
-
-
- The name of the test to run; supported values are 'short'
- (usually less than ten minutes), 'extended' (usually tens
- of minutes) and 'conveyance' (usually a few minutes).
-
-
-
- Currently unused.
-
-
-
-
-
- Runs a ATA SMART self test on the drive.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.drive-ata-smart-selftest
- Needed to run ATA SMART self tests
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- If TRUE, write performance will be benchmarked in addition
- to read performance. Note that benchmarking write performance
- will scribble zeros in various parts of the drive and can
- only be used on a drive where the contents are completely
- unrecognized (e.g. no partition table and device). Use
- this option with caution.
-
-
-
- Currently unused.
-
-
-
-
- An array of pairs where the first element is the offset
- and the second element is the measured read transfer rate
- (in bytes/sec) at the given offset.
-
-
-
-
-
- An array of pairs where the first element is the offset
- and the second element is the measured read transfer rate
- (in bytes/sec) at the given offset.
- This is an empty array unless write benchmarking has been
- requested.
-
-
-
-
-
- An array of pairs where the first element is the offset
- and the second element the amount of time (in seconds) it
- took to seek to the position.
-
-
-
-
-
-
- Benchmarks the drive.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.change
- Needed to run benchmarks
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
-
- Something on the device changed. Changes in job state wont
- trigger this signal; see the JobChanged() signal.
-
-
-
-
-
-
-
-
-
- Whether a job is currently in progress.
-
-
- Whether the job is cancellable.
-
-
- The identifier of the job.
-
-
- The UNIX user id of the user who initiated the job.
-
-
- Percentage completed of the job (between 0 and 100, negative if unknown).
-
-
-
-
-
- Emitted when a job on a device changes. Clients should
- listen to this signal to avoid polling the daemon for job
- state.
-
-
-
-
-
-
-
-
-
- OS specific native path of the device. On Linux this is the sysfs path, for example /sys/devices/pci0000:00/0000:00:1f.2/host2/target2:0:1/2:0:1:0/block/sda.
-
-
-
-
- The point in time (seconds since the Epoch Jan 1, 1970 0:00 UTC) when the device
- was detected by the daemon.
-
-
-
-
- The point in time (seconds since the Epoch Jan 1, 1970 0:00 UTC) when the
- media currently in the device was detected by the daemon or 0 if the
- device has no media.
-
-
-
-
- Major for the device or -1 if not set.
-
-
-
-
- Major for the device or -1 if not set.
-
-
-
-
- UNIX special device file for device. Example: /dev/sda.
-
-
-
-
- Either the value of the
- DeviceFile
- property, otherwise the preferred device file (typically a symlink to the value of the
- DeviceFile
- property) to present in user interface.
- Example: /dev/mapper/mpathb or
- /dev/vg_phobos/lv_root.
-
-
-
-
- Symlinks to UNIX special device file that are stable and uniquely identifies the device.
- Example: /dev/disk/by-id/scsi-SATA_ST910021AS_3MH05AVA,
- /dev/disk/by-id/ata-ST910021AS_3MH05AVA.
-
-
-
-
- Symlinks to UNIX special device file that uniquely identifies the port/partition the device
- is plugged into. Example: /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:1:0
-
-
-
-
- TRUE if the device is considered system internal. Typically, system internal devices
- include non-removable internal hard disks and other drives that are not easily added/removed
- by a local console user. The heuristic typically used is that only devices on removable media
- and devices connected via Firewire, USB, eSATA and SDIO are considered external.
-
-
-
-
- TRUE if the device is a partition. See the properties starting with partition- for details.
-
-
-
-
- TRUE if the device contains a partition table. See partition- properties for details.
-
-
-
-
- TRUE if the device contains removable media.
-
-
-
-
- TRUE if media is available in the device.
-
-
-
-
- TRUE if media changes are detected.
-
-
-
-
- TRUE if media changes are detected through the host
- polling the device, e.g. waking up every two seconds to
- revalidate the media. This typically keeps the device in a
- high power state and uses cycles on the CPU. As an
- example, SATA AN capable optical drives does not need
- polling.
-
-
-
-
- TRUE if it is possible to inhibit media detection on the device (to avoid keeping the device in a high power state and waking up the host).
-
-
-
-
- TRUE if media detection is inhibited (to avoid keeping the device in a high power state and waking up the host).
-
-
-
-
- TRUE if the device read-only.
-
-
-
-
- TRUE if the device is a drive.
- See the drive- properties for details.
-
-
-
-
- TRUE if the device is an optical drive and an optical disc is inserted.
- See the optical-disc- properties for details.
-
-
-
-
- TRUE if the device is mounted.
-
-
-
-
- A list of paths in the root namespace where the root of the device is mounted.
- This property is only valid if
- DeviceIsMounted
- is TRUE.
-
-
-
-
- The UNIX user id of the user who mounted the device. Set to 0 if
- not mounted by udisks.
- This property is only valid if
- DeviceIsMounted
- is TRUE.
-
-
-
-
- TRUE if device is an LUKS encrypted device. See Lucks properties for details.
-
-
-
-
- TRUE if device is a cleartext device backed by a LUKS encrypted device. See LucksCleartext properties for details.
-
-
-
-
- TRUE if the device is a Linux md RAID component. See LinuxMdComponent properties for details.
-
-
-
-
- TRUE if the device is a Linux md RAID array. See LinuxMd properties for details.
-
-
-
-
- TRUE if the device is a Linux LVM2 logical volume. See LinuxLvm2LV properties for details.
-
-
-
-
- TRUE if the device is a Linux LVM2 physical. See LinuxLvm2PV properties for details.
-
-
-
-
- TRUE if the device is a component (e.g. active path) of a Linux dm-multipath device.
-
-
-
-
- TRUE if the device is a Linux dm-multipath device.
-
-
-
-
- TRUE if the device is a Linux loop device.
-
-
-
-
- The size of the device in bytes.
-
-
-
-
- The block size of the device in bytes.
-
-
-
-
- A hint if the device should be hidden from the user interface.
-
-
-
-
- A hint if the device (or e.g. the multi-disk device that the device is
- part of) shouldn't be automatically mounted / assembled.
-
-
-
-
- The name to use when presenting the device to an end user.
-
-
-
-
- The icon to use when presenting the device to an end user. If set, must be a name
- following the freedesktop.org icon theme specification.
-
-
-
-
-
- The job properties specify if a job initiated via the
- udisks daemon is currently in progress.
-
-
-
-
- This property is used to identify the job and maps 1-1
- with the names of the method calls on this interface,
- e.g. 'FilesystemCreate' and so on.
-
-
-
-
- The UNIX user id of the user who initiated the job.
-
-
-
-
- Whether the job can be cancelled
- using JobCancel() method.
-
-
-
-
- Percentage completed of the job (between 0 and 100, negative if unknown).
-
-
-
-
-
- A result of probing for signatures on the block device;
- known values are:
-
-
- filesystem
- A mountable file system was detected
-
-
- crypto
- Encrypted data (e.g. LUKS) was detected
-
-
- partitiontable
- A partition table was detected
-
-
- raid
- Used for RAID and LVM components
-
-
- other
- A non-standard signature was detected
-
-
- If blank, no known signature was detected. This doesn't
- necessarily mean the device contains no structured data;
- it only means that no signature known to the probing code
- was detected.
-
-
-
-
- This property contains more information about the result
- of probing the block device. It's value depends of the
- value the
- IdUsage
- property:
-
-
- filesystem
- The mountable file system that was detected (e.g. ext3, vfat)
-
-
- crypto
- Known values include crypto_LUKS
-
-
- partitiontable
-
- Known values include
- mbr (for the
- Master Boot Record
- scheme),
- gpt (for the
- GUID Partition Table
- scheme),
- apm (for the
- Apple Partition Map
- scheme).
-
-
-
- raid
-
- Known values include
- LVM1_member (for Linux LVM1 components),
- LVM2_member (for Linux LVM2 components),
- linux_raid_member (for Linux md (Software RAID) components)
-
-
-
- other
-
- Known values include
- swap (for swap space),
- suspend (data used when resuming from STD)
-
-
-
-
-
-
-
- The version of the
- detected file system (or other identified data structure) identified by the
- IdUsage
- and
- IdType
- properties.
-
-
-
-
- The UUID (universally unique identifier) of the
- detected file system (or other identified data structure) identified by the
- IdUsage
- and
- IdType
- properties.
-
-
-
-
- The user-visible label of the
- detected file system (or other identified data structure) identified by the
- IdUsage
- and
- IdType
- properties.
-
-
-
-
-
- The cleartext device that is using the LUKS device.
- This property is only valid if
- DeviceIsLuks
- is TRUE.
-
-
-
-
-
- The encrypted LUKS device backing a crypto cleartext device.
- This property is only valid if
- DeviceIsLuksCleartext
- is TRUE.
-
-
-
-
- The UNIX user id of the user who unlocked the LUKS device. Set to 0 if
- not unlocked by udisks.
- This property is only valid if
- DeviceIsLuksCleartext
- is TRUE.
-
-
-
-
-
- The object path of the partition table the partition is part of.
- This property is only valid if
- DeviceIsPartition
- is TRUE.
-
-
-
-
- The scheme of the partition table this partition is part of.
- See the scheme parameter of the
- PartitionTableCreate() method
- for details on known partitioning schemes.
- This property is only valid if
- DeviceIsPartition
- is TRUE.
-
-
-
-
- The type of the partition.
- See the type parameter of the
- PartitionCreate() method
- for details on known partitioning types.
- This property is only valid if
- DeviceIsPartition
- is TRUE.
-
-
-
-
- The label of the partition.
- See the label parameter of the
- PartitionCreate() method
- for details on partition labels.
- This property is only valid if
- DeviceIsPartition
- is TRUE.
-
-
-
-
- The UUID of the partition.
- See the uuid parameter of the
- PartitionCreate() method
- for details on partition UUID's.
- This property is only valid if
- DeviceIsPartition
- is TRUE.
-
-
-
-
- Partition flags.
- See the flags parameter of the
- PartitionCreate() method
- for details on partition flags.
- This property is only valid if
- DeviceIsPartition
- is TRUE.
-
-
-
-
- Number of the partition. Typically partition numbers start at 1 and are identical
- to the numbers used by the kernel. Note that partitions may not be sequentially
- numbered.
- This property is only valid if
- DeviceIsPartition
- is TRUE.
-
-
-
-
- Offset in bytes where the partition is located on the enclosing partition table device (see
- PartitionSlave).
- This property is only valid if
- DeviceIsPartition
- is TRUE.
-
-
-
-
- Size of the partition in bytes.
- This property is only valid if
- DeviceIsPartition
- is TRUE.
-
-
-
-
-
- The amount of bytes the beginning of the partition is offset
- from the disk's natural alignment.
- This property is only valid if
- DeviceIsPartition
- is TRUE.
-
-
-
-
-
- The scheme of the partition table.
- See the scheme parameter of the
- PartitionTableCreate() method
- for details on known partitioning schemes.
- This property is only valid if
- DeviceIsPartitionTable
- is TRUE.
-
-
-
-
- Number of partitions in the partition table.
- This property is only valid if
- DeviceIsPartitionTable
- is TRUE.
-
-
-
-
-
- Name of the vendor of the drive, for example MATSHITA or BELKIN.
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- Name of the model of the drive, for example ST910021AS or USB 2 HS-CF.
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- Revision of the drive, for example 3.07 or 1.95.
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- The serial number of the drive or blank if unknown.
- Examples: 3MH05AVA, A0000001B900.
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- The World Wide Name
- in hex (without a leading "0x") or blank if the drive has no WWN.
- Example: 50014ee0016eb572.
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- The rotational rate of the disk (e.g. 4200, 5400, 5900, 7200, 10000, 15000) in rounds
- per minute or 0 if unknown.
- This property is only valid if
- DeviceIsDrive
- is TRUE and
- DriveIsRotational
- is TRUE.
-
-
-
-
- Whether the write cache is enabled, known values include "enabled" and "disabled" and
- the blank string if unknown.
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- The interface through which the drive is connected. Known values include:
-
-
-
- virtual
- Device is a composite device e.g. Software RAID or similar
-
-
- ata
- Connected via ATA
-
-
- ata_serial
- Connected via Serial ATA
-
-
- ata_serial_esata
- Connected via eSATA
-
-
- ata_parallel
- Connected via Parallel ATA
-
-
- scsi
- Connected via SCSI
-
-
- usb
- Connected via the Universal Serial Bus
-
-
- firewire
- Connected via Firewire
-
-
- sdio
- Connected via SDIO
-
-
- platform
- Part of the platform, e.g. PC floppy drive
-
-
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- The nominal speed of the connection interface in bits per
- second. If unknown this property is set to 0.
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- An array of media types that can be used in the
- drive. This property is sometimes set using quirk files if
- the hardware isn't capable of precisely reporting it.
- Known values include:
-
-
- flash
- Flash Card
-
-
- flash_cf
- CompactFlash
-
-
- flash_ms
- MemoryStick
-
-
- flash_sm
- SmartMedia
-
-
- flash_sd
- Secure Digital
-
-
- flash_sdhc
- Secure Digital High-Capacity
-
-
- flash_mmc
- MultiMediaCard
-
-
- floppy
- Floppy Disk
-
-
- floppy_zip
- Zip Disk
-
-
- floppy_jaz
- Jaz Disk
-
-
- optical
- Optical Disc
-
-
- optical_cd
- Compact Disc
-
-
- optical_cd_r
- Compact Disc Recordable
-
-
- optical_cd_rw
- Compact Disc Rewritable
-
-
- optical_dvd
- Digital Versatile Disc
-
-
- optical_dvd_r
- DVD-R
-
-
- optical_dvd_rw
- DVD-RW
-
-
- optical_dvd_ram
- DVD-RAM
-
-
- optical_dvd_plus_r
- DVD+R
-
-
- optical_dvd_plus_rw
- DVD+RW
-
-
- optical_dvd_plus_r_dl
- DVD+R Dual Layer
-
-
- optical_dvd_plus_rw_dl
- DVD+RW Dual Layer
-
-
- optical_bd
- Bluray Disc
-
-
- optical_bd_r
- BluRay Recordable
-
-
- optical_bd_re
- BluRay Rewritable
-
-
- optical_hddvd
- HD DVD
-
-
- optical_hddvd_r
- HD DVD Recordable
-
-
- optical_hddvd_rw
- HD DVD Rewritable
-
-
- optical_mo
- Magneto Optical
-
-
- optical_mrw
- Can read Mount Rainer media
-
-
- optical_mrw_w
- Can write Mount Rainer media
-
-
-
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- The type of media currently in the drive (blank if no media is available). Known
- values include the ones listed for the
- DriveMediaCompatibility
- property.
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- TRUE only if the media can be physically ejected by issuing a command
- from the host to the drive (e.g. optical and Zip drives).
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- TRUE only if the drive is capable of being detached by
- e.g. powering down the port it is connected to.
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- TRUE only if the drive is capable of being put into
- a standby mode (typically powering down the spindle motor).
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- TRUE if the disk uses rotational media, such as a hard disk.
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- The object of the storage adapter for the drive or "/" if no adapter exists.
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- The object paths of the ports for the drive or empty if no ports exist.
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
- An array of object paths for devices with similar serial number and/or WWN.
- Typically all drives with similar serial number and/or WWN
- are configured as a multipath device (for example via the
- Linux device-mapper target cf.
- DeviceIsLinuxDmmp and
- DeviceIsLinuxDmmpComponent)
- but in some cases the OS needs manual configuration.
- Presentation-level software can (and should) display a
- warning when this property is non-empty and the device
- isn't a multipath component or multipath device e.g. when both
- DeviceIsLinuxDmmpComponent) and
- DeviceIsLinuxDmmp)
- is FALSE.
- This property is only valid if
- DeviceIsDrive
- is TRUE.
-
-
-
-
-
-
-
- TRUE only if the disc is appendable.
- This property is only valid if
- DeviceIsOpticalDisc
- is TRUE.
-
-
-
-
- TRUE only if the disc is appendable.
- This property is only valid if
- DeviceIsOpticalDisc
- is TRUE.
-
-
-
-
- TRUE only if the disc is appendable.
- This property is only valid if
- DeviceIsOpticalDisc
- is TRUE.
-
-
-
-
- Number of tracks on the disc.
- This property is only valid if
- DeviceIsOpticalDisc
- is TRUE.
-
-
-
-
- Number of audio tracks on the disc.
- This property is only valid if
- DeviceIsOpticalDisc
- is TRUE.
-
-
-
-
- Number of sessions on the disc.
- This property is only valid if
- DeviceIsOpticalDisc
- is TRUE.
-
-
-
-
-
-
-
- TRUE if the disk is capable of reporting SMART data, FALSE otherwise.
-
-
-
-
- The point in time (seconds since the Epoch Jan 1, 1970
- 0:00 UTC) when ATA SMART data was collected.
- This property is only valid if
- DriveAtaSmartTimeCollected
- is greater than zero.
-
-
-
-
- The overall assessment for the disk. Is one of the following strings
- GOOD
,
- BAD_ATTRIBUTES_IN_THE_PAST
(At least one pre-fail attribute is exceeded its threshold in the past),
- BAD_SECTOR
(At least one bad sector),
- BAD_ATTRIBUTE_NOW
(At least one pre-fail attribute is exceeding its threshold now),
- BAD_SECTOR_MANY
(Many bad sectors)),
- BAD_STATUS
(Smart Self Assessment negative)
- or empty if some error occured trying to determine the result.
- This property is only valid if
- DriveAtaSmartTimeCollected
- is greater than zero.
-
-
-
-
- A blob containing the ATA SMART data. This blob can be used with libatasmart to get
- more information.
- This property is only valid if
- DriveAtaSmartTimeCollected
- is greater than zero.
-
-
-
-
-
-
-
- The RAID level of the array the component is part of. Known values include
-
-
- linear
- The array is Just A Bunch of Disks
-
-
- raid0
- RAID-0
-
-
- raid1
- RAID-1
-
-
- raid4
- RAID-4
-
-
- raid5
- RAID-5
-
-
- raid6
- RAID-6
-
-
- raid10
- RAID-10
-
-
- This property is only valid if
- DeviceIsLinuxMdComponent
- is TRUE.
-
-
-
-
- The zero-based position of the component or -1 if not part of a running array.
- This property is only valid if
- DeviceIsLinuxMdComponent
- is TRUE.
-
-
-
-
- The number of component devices in the array the component is part of.
- This property is only valid if
- DeviceIsLinuxMdComponent
- is TRUE.
-
-
-
-
- The UUID of the array the component is part of.
- This property is only valid if
- DeviceIsLinuxMdComponent
- is TRUE.
-
-
-
-
- The name of the array the component is part of. Blank if the array
- doesn't have a name (e.g. pre-1.0 meta data).
- This property is only valid if
- DeviceIsLinuxMdComponent
- is TRUE.
-
-
-
-
- The home host of the array the component is part of, e.g. where it was created. Blank if the array
- has pre-1.0 meta data.
- This property is only valid if
- DeviceIsLinuxMdComponent
- is TRUE.
-
-
-
-
- The version of superblock of the component.
- This property is only valid if
- DeviceIsLinuxMdComponent
- is TRUE.
-
-
-
-
- The holder of the component or "/" if the component isn't claimed by any array.
- This property is only valid if
- DeviceIsLinuxMdComponent
- is TRUE.
-
-
-
-
- The state of the component (contents of md/dev-XXX/state file).
- This property is only valid if
- DeviceIsLinuxMdComponent
- is TRUE and
- DeviceIsLinuxMdComponentHolder
- is non-empty.
-
-
-
-
-
- The state of the array (contents of the md/array_state file).
- This property is only valid if
- DeviceIsLinuxMd
- is TRUE.
-
-
-
-
- The RAID level of the array. For known values see the
- LinuxMdComponentLevel
- property.
- This property is only valid if
- DeviceIsLinuxMd
- is TRUE.
-
-
-
-
- The UUID of the array.
- This property is only valid if
- DeviceIsLinuxMd
- is TRUE.
-
-
-
-
- The home host of the array, e.g. where if was created. Blank if the array
- has pre-1.0 meta data.
- DeviceIsLinuxMd
- is TRUE.
-
-
-
-
- The name of the array. Blank if the array
- doesn't have a name (e.g. pre-1.0 meta data).
- DeviceIsLinuxMd
- is TRUE.
-
-
-
-
- Number of component devices in the array.
- This property is only valid if
- DeviceIsLinuxMd
- is TRUE.
-
-
-
-
- Metadata version used in the components.
- This property is only valid if
- DeviceIsLinuxMd
- is TRUE.
-
-
-
-
- An array of object paths for components currently part of the array.
- This property is only valid if
- DeviceIsLinuxMd
- is TRUE.
-
-
-
-
- TRUE only if the array is running in degraded mode.
- This property is only valid if
- DeviceIsLinuxMd
- is TRUE.
-
-
-
-
- The operation currently pending on the array. Known values
- include
-
-
- idle
- No operation is pending
-
-
- reshape
- A reshape is in progress
-
-
- resync
- Redudancy is being calculated
-
-
- repair
- A repair operation is in progress
-
-
- recover
- A hot spare is being built to replace a failed/missing device
-
-
- This property is only valid if
- DeviceIsLinuxMd
- is TRUE.
-
-
-
-
- The progress of the current sync operation.
- This property is only valid if
- DeviceIsLinuxMd
- is TRUE and the value of the property
- LinuxMdSyncAction
- is not idle.
-
-
-
-
- The speed of the sync operation in bytes per second.
- This property is only valid if
- DeviceIsLinuxMd
- is TRUE and the value of the property
- LinuxMdSyncAction
- is not idle.
-
-
-
-
-
-
-
-
-
-
- The UUID of the PV.
- This property is only valid if
- DeviceIsLinuxLvm2PV
- is TRUE.
-
-
-
-
- The number of metadata areas on the PV.
- This property is only valid if
- DeviceIsLinuxLvm2PV
- is TRUE.
-
-
-
-
-
-
- The name of the volume group (that this physical volume belongs to).
- This property is only valid if
- DeviceIsLinuxLvm2PV
- is TRUE.
-
-
-
-
- The UUID of the volume group (that this physical volume belongs to).
- This property is only valid if
- DeviceIsLinuxLvm2PV
- is TRUE.
-
-
-
-
- The size of the volume group (that this physical volume belongs to) in bytes.
- This property is only valid if
- DeviceIsLinuxLvm2PV
- is TRUE.
-
-
-
-
- The unallocated size of the volume group (that this physical volume belongs to) in bytes.
- This property is only valid if
- DeviceIsLinuxLvm2PV
- is TRUE.
-
-
-
-
- The sequence number for the volume group (that this physical volume belongs to).
- This property is only valid if
- DeviceIsLinuxLvm2PV
- is TRUE.
-
-
-
-
- The extent size for the volume group (that this physical volume belongs to) in bytes.
- This property is only valid if
- DeviceIsLinuxLvm2PV
- is TRUE.
-
-
-
-
- The physical volumes that belongs to the volume group (that this physical volume belongs to).
- Each element is a semicolon separated list of key/value pairs. The only known key/value
- type as this point is uuid for the UUID of the physical volume.
- This property is only valid if
- DeviceIsLinuxLvm2PV
- is TRUE.
-
-
-
-
- The logical volumes that belongs to the volume group (that this physical volume belongs to).
- Each element is a semicolon separated list of key/value pairs. The only known key/value
- types as this point are
- uuid (for the UUID of the logical volume),
- name (for the name of the logical volume),
- size (for the size of the logical volume) and
- active (whether the logical volume is active).
- This property is only valid if
- DeviceIsLinuxLvm2PV
- is TRUE.
-
-
-
-
-
-
-
-
-
-
-
- The name of the logical volume.
- This property is only valid if
- DeviceIsLinuxLvm2LV
- is TRUE.
-
-
-
-
- The UUID of the logical volume.
- This property is only valid if
- DeviceIsLinuxLvm2LV
- is TRUE.
-
-
-
-
- The name of volume group the logical volume belongs to.
- This property is only valid if
- DeviceIsLinuxLvm2LV
- is TRUE.
-
-
-
-
- The UUID of the volume group the logical volume belongs to.
- This property is only valid if
- DeviceIsLinuxLvm2LV
- is TRUE.
-
-
-
-
-
-
-
-
-
- The object path of the multi-path device the component is currently part of.
- This property is only valid if
- DeviceIsLinuxDmmpComponent
- is TRUE.
-
-
-
-
-
-
-
-
-
- The symbolic name for the multipath device, e.g. mpathb.
- This property is only valid if
- DeviceIsLinuxDmmp
- is TRUE.
-
-
-
-
- The object paths of currently active component devices, e.g. paths.
- This property is only valid if
- DeviceIsLinuxDmmp
- is TRUE.
-
-
-
-
- The parameters/configuration for the multipath device.
- This property is only valid if
- DeviceIsLinuxDmmp
- is TRUE.
-
-
-
-
-
- The file backing the loop device.
- This property is only valid if
- DeviceIsLinuxLoop
- is TRUE.
-
-
-
-
-
-
diff --git a/src/dbus/org.freedesktop.UDisks.xml b/src/dbus/org.freedesktop.UDisks.xml
deleted file mode 100644
index f046d64bf..000000000
--- a/src/dbus/org.freedesktop.UDisks.xml
+++ /dev/null
@@ -1,1156 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- An array of object paths for storage adapters.
-
-
-
-
-
- Enumerate all storage adapters on the system.
-
-
-
-
-
-
-
-
-
-
- An array of object paths for storage expanders.
-
-
-
-
-
- Enumerate all storage expanders on the system.
-
-
-
-
-
-
-
-
-
-
- An array of object paths for ports.
-
-
-
-
-
- Enumerate all storage ports on the system.
-
-
-
-
-
-
-
-
-
-
- An array of object paths for devices.
-
-
-
-
-
- Enumerate all disk devices on the system.
-
-
-
-
-
-
-
-
-
-
- An array device file names.
-
-
-
-
-
- Enumerate all device files (including symlinks) for disk devices on the system.
-
-
-
-
-
-
-
-
-
-
- UNIX special device file
-
-
- Object path of device
-
-
-
-
-
- Finds a device by device path.
-
-
-
-
-
-
-
-
-
-
- Device major
-
-
- Device minor
-
-
- Object path of device
-
-
-
-
-
- Finds a device by major:minor.
-
-
-
-
-
-
-
-
-
-
- Inhibit options. Currently no options are recognized.
-
-
-
-
- A cookie that can be used in the
- DriveUninhibitAllPolling() method
- to stop inhibiting polling of all devices.
-
-
-
-
-
-
- Inhibits the daemon from polling devices for media changes.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.inhibit-polling
- To inhibit polling
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the operation failed
-
-
-
-
-
-
-
-
-
-
-
- A cookie obtained from the
- DriveInhibitAllPolling() method.
-
-
-
-
-
-
- Uninhibits daemon from polling devices for media changes.
-
-
-
- if the given cookie is malformed
-
-
-
-
-
-
-
-
-
-
- Number of seconds before drives should be spun down.
-
-
-
-
-
- Options related to setting spindown timeouts. Currently no options are recognized.
-
-
-
-
-
- A cookie that can be used in the
- DriveUnsetAllSpindownTimeouts() method
- to unset the spindown timeout for drives.
-
-
-
-
-
-
- Configures spindown timeout for all drives capable of being spun down.
- Caution should be exercised when using this method, see
- the SPINNING DOWN DISKS section in the
- udisks(1) man page before using it.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.drive-set-spindown
- To set spindown timeouts
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the operation failed
- if an invalid or malformed option was given
-
-
-
-
-
-
-
-
-
-
-
- A cookie obtained from the
- DriveSetSpindownTimeout() method.
-
-
-
-
-
-
- Unsets spindown timeout for the drive.
-
-
-
- The caller will need one of the following PolicyKit authorizations:
-
-
- org.freedesktop.udisks.drive-set-spindown
- To set spindown timeouts
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if the operation failed
-
-
-
-
-
-
-
-
-
-
- The UUID of the volume group to start.
-
-
- Options for starting the VG. Currently no options are supported.
-
-
-
-
-
- Starts all logical volumes in Linux LVM2 Volume Group.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-lvm2
-
- Needed to configured Linux LVM2 devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if one of the given components are busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- The UUID of the volume group to stop.
-
-
- Options for stopping the VG. Currently no options are supported.
-
-
-
-
-
- Stops all logical volumes in Linux LVM2 Volume Group.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-lvm2
-
- Needed to configured Linux LVM2 devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if one of the given components are busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- The UUID of the volume group to set the name for.
-
-
- The new name for the volume group.
-
-
-
-
-
- Sets the name for a volume group.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-lvm2
-
- Needed to configured Linux LVM2 devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if one of the given components are busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- The UUID of the volume group to add a physical volume to.
-
-
- The objcet path of the device to use as a physical volume.
-
-
- Currently unused.
-
-
-
-
-
- Adds a Physical volume to a Linux LVM2 Volume Group. Existing data
- on the given device to use for a physical volume will be erased.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-lvm2
-
- Needed to configured Linux LVM2 devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if one of the given components are busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- The UUID of the volume group to remove the physical volume from.
-
-
- The UUID of the physical volume to remove from the VG.
-
-
- Currently unused.
-
-
-
-
-
- Removes a Physical volume from a Linux LVM2 Volume Group.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-lvm2
-
- Needed to configured Linux LVM2 devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if one of the given components are busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- The UUID of the volume group for the logical volume.
-
-
- The UUID of the logical volume to set the name for.
-
-
- The new name for the logical volume.
-
-
-
-
-
- Sets the name for a logical volume.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-lvm2
-
- Needed to configured Linux LVM2 devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if one of the given components are busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- The UUID of the volume group of the logical volume to start belongs to.
-
-
- The UUID of the logical volume to start.
-
-
- Options for starting the logical volume. Currently no options are supported.
-
-
-
-
-
- Starts a LVM2 logical volume.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-lvm2
-
- Needed to configured Linux LVM2 devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if one of the given components are busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- The UUID of the volume group of the logical volume to start belongs to.
-
-
- The UUID of the logical volume to remove.
-
-
- Options used for the removal of the logical volume. Currently no options are supported.
-
-
-
-
-
- Removes a LVM2 logical volume.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-lvm2
-
- Needed to configured Linux LVM2 devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if one of the given components are busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- The UUID of the volume group to create a logical volume in.
-
-
- The name for the logical volume.
-
-
- The size of the logical volume, in bytes.
-
-
- Number of stripes to use.
-
-
- The stripe size to use or 0 if @num_stripes is 0. This must be a power of two.
-
-
- Number of mirrors to use.
-
-
- Options used when creating the logical volume. Currently no options are supported.
-
-
-
- The file system to create in new logical filesystem. Leave
- blank to skip creating a file system. See the
- Device.FilesystemCreate() method
- for details.
-
-
-
-
- Options to use for file system creation. See the
- Device.FilesystemCreate() method
- for details.
-
-
-
- The object path of the newly added logical volume.
-
-
-
-
-
- Creates a new LVM2 logical volume.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-lvm2
-
- Needed to configured Linux LVM2 devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if one of the given components are busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- The object paths of the components of the array to start.
-
-
- Options for starting the array. Currently no options are supported.
-
-
-
- The object path of the assembled array device.
-
-
-
-
-
- Starts an Linux md RAID array. The array will be assembled
- and started in degraded mode if an insufficient number of
- components are given.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-md
-
- Needed to configured Linux md Software RAID devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if one of the given components are busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
- The object paths of the components to use for the array.
-
-
- RAID level.
-
-
- Stripe Size in bytes, or 0 to use the default stripe size.
-
-
- Name of the array.
-
-
- Options for creating the array. Currently no options are supported.
-
-
-
- The object path of the created array device.
-
-
-
-
-
- Creates a Linux md RAID array. The array will be created and
- assembled.
-
-
-
- The caller will need the following PolicyKit authorization:
-
-
- org.freedesktop.udisks.linux-md
-
- Needed to configured Linux md Software RAID devices.
-
-
-
-
-
- if the caller lacks the appropriate PolicyKit authorization
- if one of the given components are busy
- if the operation failed
- if the job was cancelled
-
-
-
-
-
-
-
-
-
-
- A cookie that can be used in the
- Uninhibit() method.
- to stop inhibiting the daemon.
-
-
-
-
-
-
- Inhibits clients from invoking methods on the daemon
- of the daemon that require authorization (all methods
- will return the org.freedesktop.PolicyKit.Error.Inhibited error)
- if the caller is not the super user.
- This is typically used by OS installers and other
- programs that expects full control of the system, specifically
- to avoid automounting devices.
-
-
-
- Only the super user can invoke this method.
-
-
- if the caller is not the super user
-
-
-
-
-
-
-
-
-
-
-
- A cookie obtained from the
- Inhibit() method.
-
-
-
-
-
-
- Uninhibits other clients from using the daemon.
-
-
-
- if the given cookie is malformed
-
-
-
-
-
-
-
-
-
- Object path of device that was added.
-
-
-
-
-
- Emitted when a device is added.
-
-
-
-
-
-
-
-
-
- Object path of device that was removed.
-
-
-
-
-
- Emitted when a device is removed.
-
-
-
-
-
-
-
-
-
- Object path of device that was changed.
-
-
-
-
-
- Emitted when a device changed.
-
-
-
-
-
-
-
-
-
- The object path of the device.
-
-
- Whether a job is currently in progress.
-
-
- Whether the job is cancellable.
-
-
- The identifier of the job.
-
-
- Number of tasks in the job.
-
-
- Current task number (zero-based offset).
-
-
- Task identifier for current task.
-
-
- Percentage completed of current task (between 0 and 100, negative if unknown).
-
-
-
-
-
- Emitted when a job on a device changes.
-
-
-
-
-
-
-
-
-
- Object path of adapter that was added.
-
-
-
-
-
- Emitted when an adapter is added.
-
-
-
-
-
-
- Object path of adapter that was removed.
-
-
-
-
-
- Emitted when an adapter is removed.
-
-
-
-
-
-
- Object path of adapter that was changed.
-
-
-
-
-
- Emitted when an adapter changed.
-
-
-
-
-
-
-
-
-
- Object path of expander that was added.
-
-
-
-
-
- Emitted when an expander is added.
-
-
-
-
-
-
- Object path of expander that was removed.
-
-
-
-
-
- Emitted when an expander is removed.
-
-
-
-
-
-
- Object path of expander that was changed.
-
-
-
-
-
- Emitted when an expander changed.
-
-
-
-
-
-
-
-
-
- Object path of port that was added.
-
-
-
-
-
- Emitted when a port is added.
-
-
-
-
-
-
- Object path of port that was removed.
-
-
-
-
-
- Emitted when a port is removed.
-
-
-
-
-
-
- Object path of port that was changed.
-
-
-
-
-
- Emitted when a port changed.
-
-
-
-
-
-
-
-
-
- The version of the running daemon.
-
-
-
-
-
- TRUE only if the daemon is inhibited.
-
-
-
-
-
- TRUE only if the daemon can create encrypted LUKS block devices, see the
- LuksUnlock() and
- LuksLock()
- methods for details.
-
-
-
-
-
-
-
-
- An array of file systems known to the daemon and what features are supported.
- Each element in the array contains the following members:
-
-
- id
-
- The name / identifier of the file system (such as ext3 or vfat),
- similar to the contents of the
- Device:IdType
- property.
-
-
-
- name
-
- A human readable name for the file system such as "Linux Ext3".
-
-
-
- supports_unix_owners
-
- Whether the file system supports the UNIX owners model (e.g. ext3 does, but vfat doesn't).
-
-
-
- can_mount
-
- Whether the file system can be mounted.
-
-
-
- can_create
-
- Whether the file system can be created on a device.
-
-
-
- max_label_len
-
- The maximum amount of bytes that the file system label can hold. Set to zero if the file
- system doesn't support labels.
-
-
-
- supports_label_rename
-
- Whether the label of the file system can be changed.
-
-
-
- supports_online_label_rename
-
- Whether the label can be changed while the file system is mounted.
-
-
-
- supports_fsck
-
- Whether the file system can be checked.
-
-
-
- supports_online_fsck
-
- Whether the file system can be checked while mounted.
-
-
-
- supports_resize_enlarge
-
- Whether the file system can be enlarged.
-
-
-
- supports_online_resize_enlarge
-
- Whether the file system can be enlarged while mounted.
-
-
-
- supports_resize_shrink
-
- Whether the file system can be shrunk.
-
-
-
- supports_online_resize_shrink
-
- Whether the file system can be shrunk while mounted.
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/device/deviceinfo.h b/src/device/deviceinfo.h
index ce851b378..681157fa7 100644
--- a/src/device/deviceinfo.h
+++ b/src/device/deviceinfo.h
@@ -78,7 +78,7 @@ class DeviceInfo : public SimpleTreeItem {
transcode_format_(Song::FileType_Unknown),
task_percentage_(-1) {}
- // A device can be discovered in different ways (devicekit, gio, etc.)
+ // A device can be discovered in different ways (udisks2, gio, etc.)
// Sometimes the same device is discovered more than once. In this case the device will have multiple "backends".
struct Backend {
Backend(DeviceLister *lister = nullptr, const QString &id = QString())
diff --git a/src/device/devicekitlister.cpp b/src/device/devicekitlister.cpp
deleted file mode 100644
index 89db1f7c1..000000000
--- a/src/device/devicekitlister.cpp
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Strawberry Music Player
- * This file was part of Clementine.
- * Copyright 2010, David Sansome
- *
- * Strawberry is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Strawberry is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Strawberry. If not, see .
- *
- */
-
-#include "config.h"
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "core/logging.h"
-#include "core/utilities.h"
-#include "devicekitlister.h"
-
-DeviceKitLister::DeviceKitLister() {}
-DeviceKitLister::~DeviceKitLister() {}
-
-QString DeviceKitLister::DeviceData::unique_id() const {
- return QString("DeviceKit/%1/%2/%3/%4").arg(drive_serial, drive_vendor, drive_model).arg(device_size);
-}
-
-bool DeviceKitLister::Init() {
-
- interface_.reset(new OrgFreedesktopUDisksInterface(OrgFreedesktopUDisksInterface::staticInterfaceName(), "/org/freedesktop/UDisks", QDBusConnection::systemBus()));
-
- // Get all the devices currently attached
- QDBusPendingReply > reply = interface_->EnumerateDevices();
- reply.waitForFinished();
-
- if (!reply.isValid()) {
- qLog(Warning) << "Error enumerating DeviceKit-disks devices:" << reply.error().name() << reply.error().message();
- interface_.reset();
- return false;
- }
-
- // Listen for changes
- connect(interface_.get(), SIGNAL(DeviceAdded(QDBusObjectPath)), SLOT(DBusDeviceAdded(QDBusObjectPath)));
- connect(interface_.get(), SIGNAL(DeviceRemoved(QDBusObjectPath)), SLOT(DBusDeviceRemoved(QDBusObjectPath)));
- connect(interface_.get(), SIGNAL(DeviceChanged(QDBusObjectPath)), SLOT(DBusDeviceChanged(QDBusObjectPath)));
-
- // Get information about each one
- QMap device_data;
- for (const QDBusObjectPath &path : reply.value()) {
- DeviceData data = ReadDeviceData(path);
- if (data.suitable) device_data[data.unique_id()] = data;
- }
-
- // Update the internal cache
- {
- QMutexLocker l(&mutex_);
- device_data_ = device_data;
- }
-
- // Notify about the changes
- for (const QString &id : device_data.keys()) {
- emit DeviceAdded(id);
- }
-
- return true;
-
-}
-
-QStringList DeviceKitLister::DeviceUniqueIDs() {
- QMutexLocker l(&mutex_);
- return device_data_.keys();
-}
-
-QVariantList DeviceKitLister::DeviceIcons(const QString &id) {
-
- QString path = LockAndGetDeviceInfo(id, &DeviceData::device_mount_paths)[0];
- return QVariantList()
- << GuessIconForPath(path)
- << GuessIconForModel(DeviceManufacturer(id), DeviceModel(id))
- << LockAndGetDeviceInfo(id, &DeviceData::device_presentation_icon_name);
-}
-
-QString DeviceKitLister::DeviceManufacturer(const QString &id) {
- return LockAndGetDeviceInfo(id, &DeviceData::drive_vendor);
-}
-
-QString DeviceKitLister::DeviceModel(const QString &id) {
- return LockAndGetDeviceInfo(id, &DeviceData::drive_model);
-}
-
-quint64 DeviceKitLister::DeviceCapacity(const QString &id) {
- return LockAndGetDeviceInfo(id, &DeviceData::device_size);
-}
-
-quint64 DeviceKitLister::DeviceFreeSpace(const QString &id) {
- return LockAndGetDeviceInfo(id, &DeviceData::free_space);
-}
-
-QVariantMap DeviceKitLister::DeviceHardwareInfo(const QString &id) {
-
- QVariantMap ret;
-
- QMutexLocker l(&mutex_);
- if (!device_data_.contains(id)) return ret;
- const DeviceData &data = device_data_[id];
-
- ret[QT_TR_NOOP("D-Bus path")] = data.dbus_path;
- ret[QT_TR_NOOP("Serial number")] = data.drive_serial;
- ret[QT_TR_NOOP("Mount points")] = data.device_mount_paths.join(", ");
- ret[QT_TR_NOOP("Device")] = data.device_file;
- return ret;
-
-}
-
-QString DeviceKitLister::MakeFriendlyName(const QString &id) {
-
- QMutexLocker l(&mutex_);
- if (!device_data_.contains(id)) return QString();
- const DeviceData &data = device_data_[id];
-
- if (!data.device_presentation_name.isEmpty())
- return data.device_presentation_name;
- if (!data.drive_model.isEmpty() && !data.drive_vendor.isEmpty())
- return data.drive_vendor + " " + data.drive_model;
- if (!data.drive_model.isEmpty()) return data.drive_model;
- return data.drive_serial;
-
-}
-
-DeviceKitLister::DeviceData DeviceKitLister::ReadDeviceData(const QDBusObjectPath &path) const {
-
- DeviceData ret;
-
- OrgFreedesktopUDisksDeviceInterface device(OrgFreedesktopUDisksInterface::staticInterfaceName(), path.path(), QDBusConnection::systemBus());
- if (!device.isValid()) {
- qLog(Warning) << "Error connecting to the device interface on" << path.path();
- return ret;
- }
-
- // Don't do anything with internal drives, hidden drives, or partition tables
- if (device.deviceIsSystemInternal() || device.devicePresentationHide() || device.deviceMountPaths().isEmpty() || device.deviceIsPartitionTable()) {
- return ret;
- }
-
- ret.suitable = true;
- ret.dbus_path = path.path();
- ret.drive_serial = device.driveSerial();
- ret.drive_model = device.driveModel();
- ret.drive_vendor = device.driveVendor();
- ret.device_file = device.deviceFile();
- ret.device_presentation_name = device.devicePresentationName();
- ret.device_presentation_icon_name = device.devicePresentationIconName();
- ret.device_size = device.deviceSize();
- ret.device_mount_paths = device.deviceMountPaths();
-
- // Get free space info
- if (!ret.device_mount_paths.isEmpty())
- ret.free_space = Utilities::FileSystemFreeSpace(ret.device_mount_paths[0]);
-
- return ret;
-
-}
-
-void DeviceKitLister::DBusDeviceAdded(const QDBusObjectPath &path) {
-
- DeviceData data = ReadDeviceData(path);
- if (!data.suitable) return;
-
- {
- QMutexLocker l(&mutex_);
- device_data_[data.unique_id()] = data;
- }
-
- emit DeviceAdded(data.unique_id());
-
-}
-
-void DeviceKitLister::DBusDeviceRemoved(const QDBusObjectPath &path) {
-
- QString id;
- {
- QMutexLocker l(&mutex_);
- id = FindUniqueIdByPath(path);
- if (id.isNull()) return;
-
- device_data_.remove(id);
- }
-
- emit DeviceRemoved(id);
-
-}
-
-void DeviceKitLister::DBusDeviceChanged(const QDBusObjectPath &path) {
-
- bool already_known = false;
- {
- QMutexLocker l(&mutex_);
- already_known = !FindUniqueIdByPath(path).isNull();
- }
-
- DeviceData data = ReadDeviceData(path);
-
- if (already_known && !data.suitable)
- DBusDeviceRemoved(path);
- else if (!already_known && data.suitable)
- DBusDeviceAdded(path);
- else if (already_known && data.suitable) {
- {
- QMutexLocker l(&mutex_);
- device_data_[data.unique_id()] = data;
- }
- emit DeviceChanged(data.unique_id());
- }
-
-}
-
-QString DeviceKitLister::FindUniqueIdByPath(const QDBusObjectPath &path) const {
-
- for (const DeviceData &data : device_data_) {
- if (data.dbus_path == path.path()) return data.unique_id();
- }
- return QString();
-
-}
-
-QList DeviceKitLister::MakeDeviceUrls(const QString &id) {
-
- QString mount_point = LockAndGetDeviceInfo(id, &DeviceData::device_mount_paths)[0];
-
- return QList() << MakeUrlFromLocalPath(mount_point);
-}
-
-void DeviceKitLister::UnmountDevice(const QString &id) {
-
- QString path = LockAndGetDeviceInfo(id, &DeviceData::dbus_path);
-
- OrgFreedesktopUDisksDeviceInterface device(OrgFreedesktopUDisksInterface::staticInterfaceName(), path, QDBusConnection::systemBus());
- if (!device.isValid()) {
- qLog(Warning) << "Error connecting to the device interface on" << path;
- return;
- }
-
- // Get the device's parent drive
- QString drive_path = device.partitionSlave().path();
- OrgFreedesktopUDisksDeviceInterface drive(OrgFreedesktopUDisksInterface::staticInterfaceName(), drive_path, QDBusConnection::systemBus());
- if (!drive.isValid()) {
- qLog(Warning) << "Error connecting to the drive interface on" << drive_path;
- return;
- }
-
- // Unmount the filesystem
- QDBusPendingReply<> reply = device.FilesystemUnmount(QStringList());
- reply.waitForFinished();
-
- // Eject the drive
- drive.DriveEject(QStringList());
- // Don't bother waiting for the eject to finish
-
-}
-
-void DeviceKitLister::UpdateDeviceFreeSpace(const QString &id) {
-
-{
- QMutexLocker l(&mutex_);
- if (!device_data_.contains(id)) return;
-
- DeviceData &data = device_data_[id];
- if (!data.device_mount_paths.isEmpty())
- data.free_space = Utilities::FileSystemFreeSpace(data.device_mount_paths[0]);
- }
-
- emit DeviceChanged(id);
-}
-
diff --git a/src/device/devicekitlister.h b/src/device/devicekitlister.h
deleted file mode 100644
index 4a25e1d22..000000000
--- a/src/device/devicekitlister.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Strawberry Music Player
- * This file was part of Clementine.
- * Copyright 2010, David Sansome
- *
- * Strawberry is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Strawberry is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Strawberry. If not, see .
- *
- */
-
-#ifndef DEVICEKITLISTER_H
-#define DEVICEKITLISTER_H
-
-#include "config.h"
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#ifdef HAVE_DBUS
-# include
-#endif
-#include
-#include
-
-#include "devicelister.h"
-
-class OrgFreedesktopUDisksInterface;
-class QDBusObjectPath;
-
-class DeviceKitLister : public DeviceLister {
- Q_OBJECT
-
- public:
- DeviceKitLister();
- ~DeviceKitLister();
-
- QStringList DeviceUniqueIDs();
- QVariantList DeviceIcons(const QString &id);
- QString DeviceManufacturer(const QString &id);
- QString DeviceModel(const QString &id);
- quint64 DeviceCapacity(const QString &id);
- quint64 DeviceFreeSpace(const QString &id);
- QVariantMap DeviceHardwareInfo(const QString &id);
-
- QString MakeFriendlyName(const QString &id);
- QList MakeDeviceUrls(const QString &id);
-
- void UnmountDevice(const QString &id);
-
- public slots:
- void UpdateDeviceFreeSpace(const QString &id);
-
- protected:
- bool Init();
-
- private slots:
- void DBusDeviceAdded(const QDBusObjectPath &path);
- void DBusDeviceRemoved(const QDBusObjectPath &path);
- void DBusDeviceChanged(const QDBusObjectPath &path);
-
- private:
- struct DeviceData {
- DeviceData() : suitable(false), device_size(0), free_space(0) {}
-
- QString unique_id() const;
-
- bool suitable;
- QString dbus_path;
- QString drive_serial;
- QString drive_model;
- QString drive_vendor;
- QString device_file;
- QString device_presentation_name;
- QString device_presentation_icon_name;
- QStringList device_mount_paths;
- quint64 device_size;
- quint64 free_space;
- };
-
- DeviceData ReadDeviceData(const QDBusObjectPath &path) const;
-
- // You MUST hold the mutex while calling this function
- QString FindUniqueIdByPath(const QDBusObjectPath &path) const;
-
- template
- T LockAndGetDeviceInfo(const QString &id, T DeviceData::*field);
-
- private:
- std::unique_ptr interface_;
-
- QMutex mutex_;
- QMap device_data_;
-};
-
-template
-T DeviceKitLister::LockAndGetDeviceInfo(const QString &id, T DeviceData::*field) {
- QMutexLocker l(&mutex_);
- if (!device_data_.contains(id)) return T();
-
- return device_data_[id].*field;
-}
-
-#endif // DEVICEKITLISTER_H
diff --git a/src/device/devicemanager.cpp b/src/device/devicemanager.cpp
index ee312f6e3..b23f12e0c 100644
--- a/src/device/devicemanager.cpp
+++ b/src/device/devicemanager.cpp
@@ -66,9 +66,6 @@
# include "cddadevice.h"
#endif
#ifdef HAVE_DBUS
-# ifdef HAVE_DEVICEKIT
-# include "devicekitlister.h"
-# endif
# ifdef HAVE_UDISKS2
# include "udisks2lister.h"
# endif
@@ -121,9 +118,6 @@ DeviceManager::DeviceManager(Application *app, QObject *parent)
#if defined(HAVE_AUDIOCD) && defined(HAVE_GSTREAMER) && !defined(Q_OS_MACOS)
AddLister(new CddaLister);
#endif
-#if defined(HAVE_DBUS) && defined(HAVE_DEVICEKIT)
- AddLister(new DeviceKitLister);
-#endif
#if defined(HAVE_DBUS) && defined(HAVE_UDISKS2)
AddLister(new Udisks2Lister);
#endif