From Fedora Project Wiki
(accepted by fesco 2008-11-19)
 
(48 intermediate revisions by 6 users not shown)
Line 5: Line 5:
== Summary ==
== Summary ==


DeviceKit is a simple system service that a) can enumerate devices; b) emits signals when devices are added removed; c) provides a way to merge device information / quirks onto devices. It is designed to partially replace hal and overcome some of the design limitiations of hal.
'''DeviceKit''' is a simple system service that a) can enumerate devices; b) emits signals when devices are added or removed; c) provides a way to merge device information / quirks onto devices. It is designed to partially replace hal and overcome some of the design limitiations of hal. DeviceKit functionality is provided in the form of dbus services on the system bus.


Apart from DeviceKit itself, there is DeviceKit-disks, which is a system service to keep track of block devices, and palimpsest, which is a graphical frontend for DeviceKit-disks. There is also a DeviceKit-power, which will
Apart from DeviceKit itself, there is '''DeviceKit-disks''', which is a system service to keep track of block devices. The functionality offered by DeviceKit-disks is a superset of what hal provides for block devices.
take over the power management-related parts of hal.


Furthermore, there will be a nautilus extension to format disks.
There is also '''DeviceKit-power''', which takes over the power-management-related parts of hal and the more complex functionality of gnome-power-manager. As a consequence, gnome-power-manager itself becomes much simpler.
 
The new '''udev-extra''' module will provide udev rules that are needed to make the DeviceKit architecture work.
Functionality that was provided via .fdi files in hal will eventually be moved to udev rules, and setting acls on devices will also be done here at some point.
 
DeviceKit-disks comes with a graphical frontend called '''palimpsest''' (the package name is '''gnome-disk-utility'''). Furthermore, there's a nautilus extension to format disks ('''nautilus-gdu'''), accessible from context menu.


== Owner ==
== Owner ==
Line 17: Line 21:
== Current status ==
== Current status ==
* Targeted release: [[Releases/11|  Fedora 11]]  
* Targeted release: [[Releases/11|  Fedora 11]]  
* Last updated: 2008-11-10
* Last updated: 2009-03-06
* Percentage of completion: 55%
* Percentage of completion: 100%
 
DeviceKit, DeviceKit-disks, DeviceKit-power and gnome-disk-utility (i.e. palimpsest) packages have been built in rawhide.
 
gnome-power-manager 2.25 in rawhide uses DeviceKit-power instead of hal.


DeviceKit, DeviceKit-disks, DeviceKit-power and gnome-disk-utility packages have been built
The port of gvfs to DeviceKit-disks is in rawhide.
in rawhide.
 
udev-extras is hosted on [http://git.kernel.org/?p=linux/hotplug/udev-extras.git;a=summary kernel.org]
and has been packaged for rawhide.
 
The nautilus extension for disk formatting is being worked on [http://fedorapeople.org/gitweb?p=tbzatek/public_git/nautilus-gdu.git;a=summary here]. It is called nautilus-gdu. It is available in rawhide.
 
Still todo:
* remove the properties page from gnome-mount
* add a status icon for smart warnings, critical raid events and delayed write warnings
* bug fixes


== Detailed Description ==
== Detailed Description ==
Line 28: Line 45:


There is a dedicated [http://lists.freedesktop.org/mailman/listinfo/devkit-devel devkit-devel] mailing list now.
There is a dedicated [http://lists.freedesktop.org/mailman/listinfo/devkit-devel devkit-devel] mailing list now.
Here are some screenshots of palimpsest in action:
* The main window [[Image:Palimpsest1.png]]
* SMART details [[Image:Palimpsest2.png]]
* PolicyKit integration [[Image:Palimpsest3.png]]


== Benefit to Fedora ==
== Benefit to Fedora ==
Line 41: Line 53:
== Scope ==
== Scope ==


DeviceKit depends on bug fixes and enhancements in unreleased versions of a number of components, such as kernel, udev, mdadm, lvm. These will have to appear in rawhide first.  
DeviceKit depends on bug fixes and enhancements in the following components: kernel, udev, mdadm, and lvm. These will have to appear in rawhide first.  


Also, in order to peacefully coexist with DeviceKit-disks, at a very minimum
Also, in order to peacefully coexist with DeviceKit-disks, at a very minimum
Line 48: Line 60:
be turned off when all important users have been ported over to the equivalent DeviceKit api.
be turned off when all important users have been ported over to the equivalent DeviceKit api.
   
   
Core components that we want to have ported for F10 include gvfs, gnome-mount,
The core components that we plan to port for F11 are: gvfs, gnome-mount, nautilus and gnome-power-manager.
and nautilus.


For completeness, here is a list of all packages in Fedora that depend on hal, libhal.so.1 or libhal-storage.so.1.  
For completeness, [[Features/DeviceKit/HalDependencies]] is a list of ''all'' packages in Fedora that depend on hal, libhal.so.1 or libhal-storage.so.1. Except where noted, we don't expect to port these to DeviceKit for F11.
 
* anaconda - will be ported when and if the installer team thinks that is a good idea
* bluez-gnome - only uses libhal to get the formfactor
* brasero - uses libhal to interact with drives
* cheese - uses libhal to find webcams
* concordance - only requires hal to install fdi files, should be fine
* conexusmm - uses libhal to find serial ports
* control-center - uses libhal to find sound devices
* emelfm2 - uses libhal to find storage devices
* evolution - ipod plugin uses libhal to find ipod devices
* exo - uses libhal to find storage devices
* gdm - should be fine
* gimp - uses libhal to find input devices
* gnomad2 - uses libhal to find portable audio players
* gnome-device-manager - needs porting
* gnome-keyring - uses libhal to monitor removable storage devices
* gnome-mount - needs porting
* gnome-pilot - uses libhal to find usb devices
* gnome-power-manager - needs porting to DeviceKit-power
* gnome-utils - uses libhal to find floppy device
* gnome-vfs2 - needs porting
* gnome-volume-manager - uses libhal to handle volumes
* gparted - only requires hal to install fdi files, should be fine
* gstreamer-plugins-good - uses libhal to find audio devices
* gtkpod - uses libhal to find storage devices
* gvfs - needs porting
* gxine - uses libhal to find block devices
* hal-cups-utils - uses libhal to find printers
* halevt - needs porting
* hplip - requires hal to install fdi files, should be fine
* k3b - uses libhal to find cdrom devices
* kdebase3
* knetworkmanager
* kpowersave - should be ported to DeviceKit-power
* libipoddevice - uses libhal to find ipod devices
* libmtp - requires hal to install fdi files, should be fine
* libsynce - uses libhal to find pda devices
* nautilus-cd-burner - uses hal to interact with drives
* NetworkManager - uses libhal to find network devices
* nut - needs porting to DeviceKit-power
* odccm - uses libhal to find pda devices
* oxine - uses libhal to monitor volumes and drives
* pcmanfm - uses libhal to find volumes and drives
* pmount - uses hal to mount and unmount devices
* pm-utils - requires hal to install fdi files, should be fine
* pulseaudio - uses libhal to find audio devices
* python-minihallib - python wrapper around hal api
* rhpxl - uses hal to find mice and video cards
* rhythmbox - uses libhal to find remote audio players
* sane-backends - only requires hal to install an fdi file, should be fine
* synaptics - only requires hal to install an fdi file, should be fine
* synce-hal
* thinkfinger - requires hal to install some fdi files, should be fine
* Thunar - uses libhal to monitor volumes and drives
* thunar-volman - uses libhal to monitor removable devices
* totem-pl-parser - uses libhal to find audio cds
* tracker - only uses libhal to track ac/battery status, should be ported to DK-power
* xfce4-volstatus-icon - uses libhal to monitor volumes and drives
* xorg-x11-server - uses libhal to find input devices


== How To Test ==
== How To Test ==
 
# yum install gnome-disk-utility. This will pull in DeviceKit-disks and DeviceKit via dependencies.
# Use palimpsest (the graphical frontend) to create, modify and delete partitions and file systems on various media, such as usb sticks, cds, removable hard disks, etc.
# Use palimpsest (the graphical frontend) to create, modify and delete partitions and file systems on various media, such as usb sticks, cds, removable hard disks, etc.
# Use palimpsest to encrypt partitions and to change passwords for existing encrypted partitions.
# Use palimpsest to encrypt partitions and to change passwords for existing encrypted partitions.
# Use nautilus-gdu to format removable media with various file system types.
# Verify that palimpsest correctly reports smart data from disks which support it.
# Verify that palimpsest correctly reports smart data from disks which support it.
# Test the raid support
# Test the raid support
# Test the lvm support
# Test that desktop applications like nautilus and the gedit's file chooser see volumes and mounts
# Test that desktop applications like nautilus and the gedit (file chooser) see volumes and mounts
# Check that gnome-power-manager provides the same functionality it had in previous releases
# Similar for other desktop environments and applications, if they are ported to DeviceKit
# Similar for other desktop environments and applications, if they are ported to DeviceKit


Line 128: Line 81:
The nautilus context menu offers to format discs/usb sticks and other devices.
The nautilus context menu offers to format discs/usb sticks and other devices.
palimpsest is a graphical interface for all disc-related tasks, from partitioning and file system creation to encryption, raid and lvm.
palimpsest is a graphical interface for all disc-related tasks, from partitioning and file system creation to encryption, raid and lvm.
Here are some screenshots of palimpsest and nautilus-gdu in action:
* The main window
[[Image:Palimpsest1.png]]
* SMART details
[[Image:Palimpsest2.png]]
* PolicyKit integration
[[Image:Palimpsest3.png]]
* The nautilus-gdu dialog
[[Image:nautilus-gdu.png]]


== Dependencies ==
== Dependencies ==


* DeviceKit review: <strike>https://bugzilla.redhat.com/show_bug.cgi?id=456032</strike>
* DeviceKit review: https://bugzilla.redhat.com/show_bug.cgi?id=456032 (Done)
* DeviceKit-disks review: <strike>https://bugzilla.redhat.com/show_bug.cgi?id=456033</strike>
* DeviceKit-disks review: https://bugzilla.redhat.com/show_bug.cgi?id=456033 (Done)
* gnome-disk-utility review: <strike>https://bugzilla.redhat.com/show_bug.cgi?id=456034</strike>
* gnome-disk-utility review: https://bugzilla.redhat.com/show_bug.cgi?id=456034 (Done)
* DeviceKit-power review: <strike>https://bugzilla.redhat.com/show_bug.cgi?id=460912</strike>
* DeviceKit-power review: https://bugzilla.redhat.com/show_bug.cgi?id=460912 (Done)
* udev >= 0.130
* udev-extras review: https://bugzilla.redhat.com/show_bug.cgi?id=480754 (Done)
* hal needs to be built with DeviceKit-disks support.  
* nautilus-gdu review: https://bugzilla.redhat.com/show_bug.cgi?id=483277 (Done)
* gvfs needs to be built against DeviceKit-disks, and the volume monitor in gvfs must be moved out of process to make it a singleton.
* udev >= 0.139
* gnome-mount and nautilus must be ported to DeviceKit-disks.
* mdadm >= 2.6.5
* A nautilus extension for formatting must be written.
* device-mapper
* parted
* smartmontools
* util-linux-ng
* sqlite3
* PolicyKit >= 0.9
* dbus-glib >= 0.75
* dbus >= 1.1.20
* a nautilus extension for formatting must be written (Done)
* gvfs needs to be ported to DeviceKit-disks (Done)
* gnome-mount and nautilus must be ported to DeviceKit-disks
* hal needs to be patched to remove block device handling


== Contingency Plan ==
== Contingency Plan ==
Line 155: Line 129:
== Release Notes ==
== Release Notes ==


Fedora 11 features DeviceKit, which is a simpler, modular replacement for hal. hal itself is still around, since applications rely on it. DeviceKit also comes with a graphical disk management application called palimpsest that allows to handle partitioning, file system creation, encryption, raid, lvm, etc.
Fedora 11 features DeviceKit, which is a simpler, modular replacement for hal. hal itself is still around, since applications rely on it. DeviceKit also comes with a graphical disk management application called palimpsest that uses the DeviceKit-disks subsystem of DeviceKit to handle partitioning, file system creation, encryption, raid, lvm, etc. gnome-power-manager has been ported to use the DeviceKit-power subsystem of DeviceKit instead of hal.


== Comments and Discussion ==
== Comments and Discussion ==
Line 164: Line 138:


[[Category:FeatureAcceptedF11]]
[[Category:FeatureAcceptedF11]]
[[Category:Features with incomplete scope]]

Latest revision as of 15:11, 29 March 2010

DeviceKit

Summary

DeviceKit is a simple system service that a) can enumerate devices; b) emits signals when devices are added or removed; c) provides a way to merge device information / quirks onto devices. It is designed to partially replace hal and overcome some of the design limitiations of hal. DeviceKit functionality is provided in the form of dbus services on the system bus.

Apart from DeviceKit itself, there is DeviceKit-disks, which is a system service to keep track of block devices. The functionality offered by DeviceKit-disks is a superset of what hal provides for block devices.

There is also DeviceKit-power, which takes over the power-management-related parts of hal and the more complex functionality of gnome-power-manager. As a consequence, gnome-power-manager itself becomes much simpler.

The new udev-extra module will provide udev rules that are needed to make the DeviceKit architecture work. Functionality that was provided via .fdi files in hal will eventually be moved to udev rules, and setting acls on devices will also be done here at some point.

DeviceKit-disks comes with a graphical frontend called palimpsest (the package name is gnome-disk-utility). Furthermore, there's a nautilus extension to format disks (nautilus-gdu), accessible from context menu.

Owner

Current status

  • Targeted release: Fedora 11
  • Last updated: 2009-03-06
  • Percentage of completion: 100%

DeviceKit, DeviceKit-disks, DeviceKit-power and gnome-disk-utility (i.e. palimpsest) packages have been built in rawhide.

gnome-power-manager 2.25 in rawhide uses DeviceKit-power instead of hal.

The port of gvfs to DeviceKit-disks is in rawhide.

udev-extras is hosted on kernel.org and has been packaged for rawhide.

The nautilus extension for disk formatting is being worked on here. It is called nautilus-gdu. It is available in rawhide.

Still todo:

  • remove the properties page from gnome-mount
  • add a status icon for smart warnings, critical raid events and delayed write warnings
  • bug fixes

Detailed Description

David has written an extensive explanation of the DeviceKit architecture, and the motivation for rewriting hal. Read all about it here

There is a dedicated devkit-devel mailing list now.

Benefit to Fedora

Fedora gains a comprehensive graphical disk management tool which provides functionality that so far was almost exclusively available in the partitioning screen of anaconda. The tools integrate nicely into the desktop (by e.g. providing a "Format disk..." menuitem in the nautilus context menu where appropriate).

Scope

DeviceKit depends on bug fixes and enhancements in the following components: kernel, udev, mdadm, and lvm. These will have to appear in rawhide first.

Also, in order to peacefully coexist with DeviceKit-disks, at a very minimum hal needs to talk to DeviceKit-disks about locking and mounting/unmounting. Medium term, hal functionality such as disk and power-management support will be turned off when all important users have been ported over to the equivalent DeviceKit api.

The core components that we plan to port for F11 are: gvfs, gnome-mount, nautilus and gnome-power-manager.

For completeness, Features/DeviceKit/HalDependencies is a list of all packages in Fedora that depend on hal, libhal.so.1 or libhal-storage.so.1. Except where noted, we don't expect to port these to DeviceKit for F11.

How To Test

  1. yum install gnome-disk-utility. This will pull in DeviceKit-disks and DeviceKit via dependencies.
  2. Use palimpsest (the graphical frontend) to create, modify and delete partitions and file systems on various media, such as usb sticks, cds, removable hard disks, etc.
  3. Use palimpsest to encrypt partitions and to change passwords for existing encrypted partitions.
  4. Use nautilus-gdu to format removable media with various file system types.
  5. Verify that palimpsest correctly reports smart data from disks which support it.
  6. Test the raid support
  7. Test that desktop applications like nautilus and the gedit's file chooser see volumes and mounts
  8. Check that gnome-power-manager provides the same functionality it had in previous releases
  9. Similar for other desktop environments and applications, if they are ported to DeviceKit

User Experience

There is a new menu item that brings up palimpsest: Applications → System Tools → Palimpsest Disk Utility

The nautilus context menu offers to format discs/usb sticks and other devices. palimpsest is a graphical interface for all disc-related tasks, from partitioning and file system creation to encryption, raid and lvm.

Here are some screenshots of palimpsest and nautilus-gdu in action:

  • The main window

  • SMART details

  • PolicyKit integration

  • The nautilus-gdu dialog

Dependencies

Contingency Plan

DeviceKit-disks and DeviceKit-power can coexist with the disk and power management parts of hal. If the porting of applications is not complete by F11, we don't strip the functionality out of hal in F11.

Documentation

API docs are here: http://hal.freedesktop.org/docs/DeviceKit/ http://hal.freedesktop.org/docs/DeviceKit-disks/ http://hal.freedesktop.org/docs/DeviceKit-power/

End user documentation will take some time to write, and can't really be started before the tools are publicly available.

Release Notes

Fedora 11 features DeviceKit, which is a simpler, modular replacement for hal. hal itself is still around, since applications rely on it. DeviceKit also comes with a graphical disk management application called palimpsest that uses the DeviceKit-disks subsystem of DeviceKit to handle partitioning, file system creation, encryption, raid, lvm, etc. gnome-power-manager has been ported to use the DeviceKit-power subsystem of DeviceKit instead of hal.

Comments and Discussion

See Talk:Features/DeviceKit