David Zeuthen [Tue, 15 Sep 2009 15:27:47 +0000 (11:27 -0400)]
Also be paranoid about the UUID containing '/' characters
This can't really happen (for known filesystems) so this "fix" is
really only for people playing along at home. See
http://bugs.freedesktop.org/show_bug.cgi?id=23235
for more details.
David Zeuthen [Sun, 23 Aug 2009 18:12:49 +0000 (14:12 -0400)]
Rework ATA SMART handling
Basically make everything a lot simpler. Also don't store blobs in a
database. For now at least - we might want to add that feature back at
some point.
David Zeuthen [Mon, 17 Aug 2009 20:48:09 +0000 (16:48 -0400)]
Bug 22914 – Require password to eject a CD or DVD mounted by the same user
Apparently this got messed up in the port to polkit1.
David Zeuthen [Mon, 17 Aug 2009 18:10:02 +0000 (14:10 -0400)]
Post-release version bump to 007
David Zeuthen [Mon, 17 Aug 2009 17:50:56 +0000 (13:50 -0400)]
Update NEWS for release
David Zeuthen [Mon, 17 Aug 2009 17:02:29 +0000 (13:02 -0400)]
Bug 23235 – Cannot mount disc with / (slash) in label
David Zeuthen [Mon, 17 Aug 2009 15:55:01 +0000 (11:55 -0400)]
Make FilesystemMount() accept an 'auth_no_user_interaction' option
This allows automounters to request that no user interaction should ever
take place. See
https://bugs.freedesktop.org/show_bug.cgi?id=22652
for discussion.
David Zeuthen [Mon, 17 Aug 2009 15:02:12 +0000 (11:02 -0400)]
Ignore loop and ram devices for now
David Zeuthen [Mon, 17 Aug 2009 14:50:36 +0000 (10:50 -0400)]
Add a new :device-presentation-nopolicy property
Desktops should read this property and avoid automounting etc. if it
is set to 1.
David Zeuthen [Fri, 14 Aug 2009 15:07:24 +0000 (11:07 -0400)]
Bug 23309 – Udev rules probe floppy drives when they shouldn't
David Zeuthen [Mon, 10 Aug 2009 17:05:06 +0000 (13:05 -0400)]
Fix up object path mapping
In particular this failed with AoE devices which has basenames of the
form "etherd!e0.1". Should work for everything now.
Martin Pitt [Fri, 10 Jul 2009 16:31:07 +0000 (18:31 +0200)]
Hide recovery, boot, and hidden partitions from desktops
Set DKD_PRESENTATION_HIDE for partitions which desktops should hide, such as
EFI, Apple bootstrap, or recovery partitions.
For recovery partitions is a direct port of the earlier hal fdis:
http://cgit.freedesktop.org/hal/tree/fdi/policy/10osvendor/20-storage-methods.fdi#n80
Apple boostrap, EFI, and hidden partitions now don't rely on labels any more,
but directly check partitioning schema (mbr, GUID) and types.
libgdu evaluates this and exports it as device-presentation-hide
property, which gvfs respects.
https://bugs.freedesktop.org/show_bug.cgi?id=22707
Signed-off-by: David Zeuthen <davidz@redhat.com>
David Zeuthen [Sun, 9 Aug 2009 22:07:53 +0000 (18:07 -0400)]
Require latest libatasmart
This version of libatasmart has a new ABI/API with new features. We
won't initially take advantage of these new features so just do a
simple port for now.
David Zeuthen [Sun, 9 Aug 2009 18:39:47 +0000 (14:39 -0400)]
Rely on the disk to spin itself down
In other words, instead of playing games with watching
/sys/block/sdX/stat files and sending a STANDBY IMMEDIATE command when
these haven't changed for a while, just use the STANDBY command itself
with the timeout value.
This avoids having to wake up the daemon every five seconds. In
addition, this change ensures that device specific minimums are
respected.
We didn't do this in the original commit because while testing the
feature, some of disks, notably ones from WD, appeared to not respect
the STANDBY command. However, when moved to another enclosure (the
disks was initially in a SATA PM enclosure, it got moved to a SAS
enclosure) things started working again. Also turns out the WD disk in
question has a device specific timeout of 10 minutes.
David Zeuthen [Sat, 8 Aug 2009 18:52:50 +0000 (14:52 -0400)]
Add LinuxMdCreate method
Also fix a bug in PartitionTableCreate so we don't return until the
partition table has actually been created.
David Zeuthen [Wed, 5 Aug 2009 16:00:10 +0000 (12:00 -0400)]
Add Device:drive-is-rotational property
This new property can be used to make a distinction between hard disks
and SSDs, see
http://people.freedesktop.org/~david/palimpsest-new-treeview.png
for an example.
David Zeuthen [Wed, 22 Jul 2009 14:53:54 +0000 (10:53 -0400)]
Fix up ATA SMART detection
Recent udev started using ata_id instead of scsi_id.
Also migrate from SYSFS to ATTR/ATTRS.
David Zeuthen [Wed, 8 Jul 2009 20:14:27 +0000 (16:14 -0400)]
Misc fixes for optical disc detection
David Zeuthen [Tue, 7 Jul 2009 18:34:44 +0000 (14:34 -0400)]
Move data files into a separate directory
David Zeuthen [Tue, 7 Jul 2009 01:24:50 +0000 (21:24 -0400)]
Move implementation of DrivePollMedia into a separate process
Much much better to do this from a helper process since some
devices/drivers may hang the process in state D (uninterruptible IO)
until the device was removed. This was the last place where we opened
the device from the daemon.
David Zeuthen [Tue, 7 Jul 2009 00:57:28 +0000 (20:57 -0400)]
Work around media detection problems
Seems that the kernel won't revalidate media unless O_NONBLOCK is
passed. This contradicts how things are supposed to work (O_NONBLOCK
is a hint to avoid testing things like media state), see
http://bugzilla.kernel.org/show_bug.cgi?id=13029 for more information.
So to be on the safe side, open the device both with and without
O_NONBLOCK.
David Zeuthen [Tue, 7 Jul 2009 00:44:03 +0000 (20:44 -0400)]
Add --poll-for-media option to devkit-disks(1)
David Zeuthen [Sat, 4 Jul 2009 22:31:24 +0000 (18:31 -0400)]
Pass size of buffer to avoid Z_BUF_ERROR when compressing ATA SMART blob
David Zeuthen [Sat, 4 Jul 2009 19:44:26 +0000 (15:44 -0400)]
Fix polling process title and turn off noisy debugging spew
David Zeuthen [Sat, 4 Jul 2009 19:41:47 +0000 (15:41 -0400)]
Fix segfault when starting a Linux MD array
David Zeuthen [Sun, 21 Jun 2009 23:07:20 +0000 (19:07 -0400)]
Add a way to spin down drives
David Zeuthen [Fri, 19 Jun 2009 23:12:59 +0000 (19:12 -0400)]
Post-release version bump to 006
David Zeuthen [Fri, 19 Jun 2009 23:10:15 +0000 (19:10 -0400)]
Update NEWS for release
Also includes news about the 004 release since that slipped in the
previous release...
David Zeuthen [Fri, 19 Jun 2009 22:55:20 +0000 (18:55 -0400)]
Use AM_SILENT_RULES if available
David Zeuthen [Fri, 19 Jun 2009 22:51:26 +0000 (18:51 -0400)]
Clean up build a bit
David Zeuthen [Fri, 19 Jun 2009 22:41:03 +0000 (18:41 -0400)]
Remove unused SMART test files
David Zeuthen [Fri, 19 Jun 2009 22:26:01 +0000 (18:26 -0400)]
Sort out dbus-glib registration mess
We sometimes segfaulted when stopping a RAID device. The problem here
was that we kept the exported D-Bus object around until it was
finalized (by using weak refs). This was problematic because several
change events were treated as add events but the state of the RAID
device was such that we didn't want to add the object anyway. So we
ended up unreffing the object. Which means that the job completion
func accessed a unreferenced object.
The solution here is to remove the object from our hashes as soon as
we want to remove it.
Since we don't have dbus_g_connection_unregister_g_object() just yet
(available in dbus-glib >= 0.81) we just keep the object on the
bus. If we later wants to add a new object but the old object is still
around we use an undocumented hack to unregister the object.
You will also need eggdbus >= 0.5, otherwise introspection won't work.
David Zeuthen [Thu, 18 Jun 2009 20:02:14 +0000 (16:02 -0400)]
Add API to check/repair Linux MD RAID arrays
David Zeuthen [Thu, 18 Jun 2009 17:16:57 +0000 (13:16 -0400)]
Use ID_CDROM_MEDIA to detect optical drives
This is available since udev 142 that we already depend on. This
change makes my USB stick from Sandisk "work" as "expected":
http://people.freedesktop.org/~david/thanks-sandisk.png
David Zeuthen [Thu, 18 Jun 2009 16:59:43 +0000 (12:59 -0400)]
Update udev rules
- depend on udev >= 142 since that will pull in /sbin/blkid
- avoid probing dm or md if it has been done already
- don't create symlinks for dm
David Zeuthen [Wed, 17 Jun 2009 19:32:02 +0000 (15:32 -0400)]
GIO modules, for the polkit action lookup module, need to be prefixed with lib
David Zeuthen [Tue, 16 Jun 2009 23:47:20 +0000 (19:47 -0400)]
Better handling of Floppy and Zip drives
Welcome to the 1980s
David Zeuthen [Tue, 16 Jun 2009 20:41:03 +0000 (16:41 -0400)]
Bug 22149 – Do not poll floppy drives
Avoid polling PC floppy drives since that makes a lot of
noise. DrivePollMedia() still works, e.g.
dbus-send --system --print-reply --dest=org.freedesktop.DeviceKit.Disks \
/org/freedesktop/DeviceKit/Disks/devices/fd0 \
org.freedesktop.DeviceKit.Disks.Device.DrivePollMedia
Note, though, that udev will not run /sbin/blkid on the device. So
desktops wanting to support this needs to ignore the fstype for floppy
drives and just attempt to mount it anyway.
David Zeuthen [Mon, 15 Jun 2009 19:51:54 +0000 (15:51 -0400)]
Fix bug when retrieving historical ATA SMART data
David Zeuthen [Mon, 15 Jun 2009 16:00:39 +0000 (12:00 -0400)]
Use gudev-1.0 instead of devkit-gobject
Can't believe how easy this port was...
David Zeuthen [Mon, 15 Jun 2009 15:30:07 +0000 (11:30 -0400)]
Remove :drive-requires-eject and read udev props for detached/ejectable
David Zeuthen [Sun, 14 Jun 2009 17:12:33 +0000 (13:12 -0400)]
Suspend USB device on DriveDetach() if it only has one interface
This is nice for turning the lights off...
David Zeuthen [Fri, 12 Jun 2009 15:44:43 +0000 (11:44 -0400)]
Don't insert NULL pointers in details
David Zeuthen [Tue, 9 Jun 2009 00:13:01 +0000 (20:13 -0400)]
Add a DriveDetach() method to properly power down USB hard disk enclosures
This work is inspired by this thread
http://thread.gmane.org/gmane.linux.hotplug.devel/14079
that is referencing this blog entry
http://elliotli.blogspot.com/2009/01/safely-remove-usb-hard-drive-in-linux.html
The only difference here is that instead of unbinding the usb driver
from the usb device, we unbind the usb-storage driver from the usb
interface in question. This is to better handle multi-function devices
(e.g. multiple USB interfaces).
Things like GVfs (ie. Nautilus) can use this new method to offer an
"Eject" option for USB enclosures that can invoke DriveDetach() on
this service. (In GVfs, such devices currently have no eject option
since they don't support removable media).
David Zeuthen [Mon, 8 Jun 2009 17:33:17 +0000 (13:33 -0400)]
The PolicyKit extensions dir has moved
David Zeuthen [Tue, 2 Jun 2009 19:55:22 +0000 (15:55 -0400)]
Add a pkg-config file
David Zeuthen [Tue, 26 May 2009 20:33:09 +0000 (16:33 -0400)]
Use PolkitDetails, not GHashTable to pass details to PolicyKit
David Zeuthen [Tue, 19 May 2009 21:43:25 +0000 (17:43 -0400)]
Only check for ATA SMART if the device reports non-removable media
David Zeuthen [Tue, 19 May 2009 16:09:57 +0000 (12:09 -0400)]
Catch up with latest polkit API changes
David Zeuthen [Wed, 13 May 2009 16:21:08 +0000 (12:21 -0400)]
Update to latest polkit API where PolkitAuthorizationResult is an object
David Zeuthen [Wed, 13 May 2009 15:00:53 +0000 (11:00 -0400)]
Update to latest PolicyKit API
David Zeuthen [Mon, 11 May 2009 21:14:37 +0000 (17:14 -0400)]
Remove unneeded code for PolicyKit
David Zeuthen [Mon, 11 May 2009 21:03:02 +0000 (17:03 -0400)]
Post-release version bump
David Zeuthen [Mon, 11 May 2009 20:27:15 +0000 (16:27 -0400)]
Port to polkit-1
David Zeuthen [Mon, 11 May 2009 20:26:35 +0000 (16:26 -0400)]
Move to using a capital letter for commit messages
David Zeuthen [Fri, 1 May 2009 21:54:12 +0000 (17:54 -0400)]
only consider Prefail attibutes when checking for bad attributes
David Zeuthen [Fri, 1 May 2009 20:02:18 +0000 (16:02 -0400)]
add :device-media-detection-time property
This property aids desktop automounters in determining they shouldn't
automount devices that are created as a result of
formatting/partitioning.
David Zeuthen [Wed, 29 Apr 2009 16:48:52 +0000 (12:48 -0400)]
add support for ext2
This is sometimes wanted for filesystems on flash devices.
David Zeuthen [Thu, 16 Apr 2009 17:04:33 +0000 (13:04 -0400)]
properly detect devices with vfat on the whole disk
See https://bugzilla.redhat.com/show_bug.cgi?id=495876
David Zeuthen [Wed, 15 Apr 2009 18:39:18 +0000 (14:39 -0400)]
allow the 'flush' mount option for vfat
David Zeuthen [Wed, 15 Apr 2009 16:56:02 +0000 (12:56 -0400)]
fix up some warnings
David Zeuthen [Wed, 15 Apr 2009 15:16:58 +0000 (11:16 -0400)]
add property device-detection-time
David Zeuthen [Wed, 15 Apr 2009 14:48:00 +0000 (10:48 -0400)]
document influential udev properties in the DeviceKit-disks man page
David Zeuthen [Wed, 15 Apr 2009 14:47:24 +0000 (10:47 -0400)]
add device-presentation-hide property
This is useful for a number of things
- hiding firmware/update partitions (similar to how volume.ignore is used
in HAL to hide e.g. HP_RECOVERY, RECOVERY etc. partitions)
- hiding unwanted things used in things like live cd environments, cf.
https://bugzilla.redhat.com/show_bug.cgi?id=495170
David Zeuthen [Sun, 12 Apr 2009 19:25:41 +0000 (15:25 -0400)]
be more careful when probing for ATA SMART
See https://bugzilla.redhat.com/show_bug.cgi?id=495286 for where we
trash a CD-RW medium when running off a live cd.
David Zeuthen [Sun, 12 Apr 2009 16:14:36 +0000 (12:14 -0400)]
rework how we detect whether a device is busy
Commit
c1447a2e8a0d83347330bbfd2810f98172e8b962 was a bit overeager
insofor that it made it impossible to create/delete/modify partitions
if other partitions on the same device are busy.
David Zeuthen [Sun, 12 Apr 2009 15:39:23 +0000 (11:39 -0400)]
add temporary workaround for btrfs
See
https://bugzilla.redhat.com/show_bug.cgi?id=495152#c31
http://article.gmane.org/gmane.comp.file-systems.btrfs/2851
for details.
David Zeuthen [Sun, 12 Apr 2009 15:38:32 +0000 (11:38 -0400)]
remove debug spew
David Zeuthen [Thu, 9 Apr 2009 17:58:19 +0000 (13:58 -0400)]
also check if partitions on a device is busy
This fixes a bug where it was possible to erase /dev/sdb while
/dev/sdb1 was mounted.
David Zeuthen [Thu, 9 Apr 2009 15:13:41 +0000 (11:13 -0400)]
use correct dmode for iso9660 mounts
Reported by yaneti@declera.com
https://bugzilla.redhat.com/show_bug.cgi?id=495018
David Zeuthen [Wed, 8 Apr 2009 18:35:24 +0000 (14:35 -0400)]
add command line options to devkit-disks for refreshing ATA SMART data
David Zeuthen [Wed, 8 Apr 2009 18:20:57 +0000 (14:20 -0400)]
fix some bugs in the man page
David Zeuthen [Wed, 8 Apr 2009 17:18:19 +0000 (13:18 -0400)]
change default mount options for vfat to utf8=1 and shortname=lower
See https://bugzilla.redhat.com/show_bug.cgi?id=489222 for details.
David Zeuthen [Wed, 8 Apr 2009 16:55:51 +0000 (12:55 -0400)]
fix a race where /etc/fstab mount points where sometimes removed
David Zeuthen [Mon, 6 Apr 2009 23:50:35 +0000 (19:50 -0400)]
bump version
Should have done this right after releasing 003 but meh.
David Zeuthen [Mon, 6 Apr 2009 23:47:22 +0000 (19:47 -0400)]
use /var/run/DeviceKit-disks, not /tmp as a temporary directory
https://bugzilla.redhat.com/show_bug.cgi?id=491744
David Zeuthen [Mon, 6 Apr 2009 23:27:23 +0000 (19:27 -0400)]
remove hack for working around broken USB card reader
This add was added since one of my card readers appear to be broken;
other devices are fine.
On closer investigation this looks like a kernel bug. Filed here for
now
http://bugzilla.kernel.org/show_bug.cgi?id=13029
If needed we can add code to do the equivalent of 'touch /dev/sdXXX'
in the poller on the first ENOMEDIUM for a device being polled. But
let's see what the kernel guys says before resorting to such hacks.
David Zeuthen [Mon, 6 Apr 2009 21:38:57 +0000 (17:38 -0400)]
remove debug spew from mount monitor
David Zeuthen [Mon, 6 Apr 2009 21:08:51 +0000 (17:08 -0400)]
fix grammar/spelling for ATA SMART output in devkit-disks(1)
David Zeuthen [Mon, 6 Apr 2009 19:11:52 +0000 (15:11 -0400)]
install udev rules into /lib/udev/rules.d not /etc/udev/rules.d
David Zeuthen [Mon, 6 Apr 2009 19:08:24 +0000 (15:08 -0400)]
change devkit-disks(1) to use device node paths instead of object paths
David Zeuthen [Mon, 6 Apr 2009 19:06:10 +0000 (15:06 -0400)]
also move umount.devkit over to use the correct object paths
David Zeuthen [Mon, 6 Apr 2009 18:36:35 +0000 (14:36 -0400)]
add FindDeviceByMajorMinor() to look up a device by dev_t
David Zeuthen [Mon, 6 Apr 2009 16:59:47 +0000 (12:59 -0400)]
prefix all D-Bus objects paths with /org/freedesktop/DeviceKit/Disks
David Zeuthen [Mon, 6 Apr 2009 15:59:52 +0000 (11:59 -0400)]
fix udev rules to keep udev from complaining
David Zeuthen [Mon, 6 Apr 2009 15:51:15 +0000 (11:51 -0400)]
rework some of the ATA SMART stuff, go back to using sqlite
David Zeuthen [Thu, 2 Apr 2009 21:26:34 +0000 (17:26 -0400)]
remove erase= option and the notion of tasks within jobs
Secure erase is a bit K-rad and we never really implemented anything
but 0 and 1 passes. If we want this feature back (and I think we do;
e.g. it is useful to scrub the disks before selling a computer) we
should add a dedicated SecureErase() method that (optionally) can take
advantage of things like the ATA Secure Erase command-set.
While it is cute that jobs consist of tasks it is not used anymore now
that erase= is gone. So remove it to simplify the code.
David Zeuthen [Thu, 2 Apr 2009 19:37:43 +0000 (15:37 -0400)]
remove a lot of unnecessary errors
For example it doesn't make sense to return this error
org.freedesktop.DeviceKit.Disks.Error.NotPartition
since the client is already able to check in advance if the given
object really is a partition. So trim the error list to only contain
errors that the client can't predict. This leaves us with
DEVKIT_DISKS_ERROR_FAILED,
DEVKIT_DISKS_ERROR_BUSY,
DEVKIT_DISKS_ERROR_CANCELLED,
DEVKIT_DISKS_ERROR_INHIBITED,
DEVKIT_DISKS_ERROR_INVALID_OPTION,
DEVKIT_DISKS_ERROR_NOT_SUPPORTED,
DEVKIT_DISKS_ERROR_ATA_SMART_WOULD_WAKEUP,
David Zeuthen [Thu, 2 Apr 2009 19:14:43 +0000 (15:14 -0400)]
remove device-is-busy property
This should never have been a property since
- we are not really ready to make that kind of guarantee; another
program may have the device open and then we're going to fail
with EBUSY and return a Busy D-Bus error
- it is computed on demand and that makes it difficult to determine
when it changes value and thus trigger a PropertyChanged event
Currently this property is not used by gnome-disk-utility. If it turns
out that we need something like this we can add a Device.IsBusy()
method.
David Zeuthen [Thu, 2 Apr 2009 18:37:57 +0000 (14:37 -0400)]
export device-major and device-minor properties
This makes it easier for clients wanting to fool around with
/proc/self/mountinfo themselves.
David Zeuthen [Thu, 2 Apr 2009 17:54:20 +0000 (13:54 -0400)]
use /proc/self/mountinfo and handle a device being mounted in multiple places
This is an effort to fix
https://bugzilla.redhat.com/show_bug.cgi?id=491924
Basically we have to somehow cope with a device being mounted in
multiple places. So we replace the property
String device-mount-path
with an array of mount paths
String device-mount-paths[]
We also try to make an effort to ensure that the shortest mount point
is shown before others. E.g. if you bind mount / on /foo then
device-mount-paths = ["/", "/foo"]
This means that desktop clients can just take the first mount path.
Also make a note that this is the mount point in the root
namespace. On systems clients running in other namespaces care has to
be taken; in this case the client probably needs to examine
/proc/self/mountinfo on his own to determine if a given block device
is mounted or not.
Also drop support for the 'remount' option; we might add it back later
but since we now support multiple mount points it makes everything a
bit weird.
David Zeuthen [Tue, 31 Mar 2009 20:54:33 +0000 (16:54 -0400)]
print the scheme of the main partition table, never the nested one
To avoid e.g. 'embr' for the scheme for logical partitions.
David Zeuthen [Tue, 31 Mar 2009 19:32:48 +0000 (15:32 -0400)]
rework partition table handling
David Zeuthen [Mon, 30 Mar 2009 22:23:01 +0000 (18:23 -0400)]
ensure a MS-DOS extended partition is busy if logical partitions are busy
David Zeuthen [Mon, 30 Mar 2009 21:15:08 +0000 (17:15 -0400)]
allow job-num-tasks to be 0 (meaning "unknown")
http://bugzilla.gnome.org/show_bug.cgi?id=575854
David Zeuthen [Mon, 30 Mar 2009 19:49:47 +0000 (15:49 -0400)]
if BLKRRPART fails with EBUSY, just try a few more times
See http://bugs.freedesktop.org/show_bug.cgi?id=20813 for details.
Matthias Clasen [Mon, 30 Mar 2009 03:08:24 +0000 (23:08 -0400)]
make umount work on mount points
Make umount-devkit support the traditional umount behaviour of
accepting either a device file or a mount path.
Signed-off-by: David Zeuthen <davidz@redhat.com>
Matthias Clasen [Sat, 28 Mar 2009 17:02:01 +0000 (13:02 -0400)]
fix typo in error name
https://bugs.freedesktop.org/show_bug.cgi?id=20889
Signed-off-by: David Zeuthen <davidz@redhat.com>
David Zeuthen [Mon, 23 Mar 2009 23:21:26 +0000 (19:21 -0400)]
forgot to add ATA SMART prober in last commit
David Zeuthen [Mon, 23 Mar 2009 23:14:24 +0000 (19:14 -0400)]
port to libatasmart