From c9f01f4bc478e410fbeef42d2ad8343ff96e7afa Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Sat, 13 Jul 2019 23:00:25 +0200 Subject: [PATCH] Remove old devicekit udisks backend --- CMakeLists.txt | 4 - src/CMakeLists.txt | 18 - src/config.h.in | 1 - src/dbus/org.freedesktop.UDisks.Device.xml | 2850 -------------------- src/dbus/org.freedesktop.UDisks.xml | 1156 -------- src/device/deviceinfo.h | 2 +- src/device/devicekitlister.cpp | 297 -- src/device/devicekitlister.h | 121 - src/device/devicemanager.cpp | 6 - 9 files changed, 1 insertion(+), 4454 deletions(-) delete mode 100644 src/dbus/org.freedesktop.UDisks.Device.xml delete mode 100644 src/dbus/org.freedesktop.UDisks.xml delete mode 100644 src/device/devicekitlister.cpp delete mode 100644 src/device/devicekitlister.h 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