From Fedora Project Wiki
Line 36: Line 36:
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. Also, in order to peacefully coexist with DeviceKit-disks, hal will need to undergo disk-ectomy. Components which depend directly on the disk functionality in hal, such as gvfs, Solid and thunar-volman, have to be ported to DeviceKit-disks.
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. Also, in order to peacefully coexist with DeviceKit-disks, hal will need to undergo disk-ectomy. Components which depend directly on the disk functionality in hal, such as gvfs, Solid and thunar-volman, have to be ported to DeviceKit-disks.


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, here is a list of all packages in Fedora that depend on hal, libhal.so.1 or libhal-storage.so.1.


anaconda,
* anaconda - will be ported when and if the installer team thinks that is a good idea
bluez-gnome,
* bluez-gnome - only uses libhal to get the formfactor, should be fine
brasero,
* brasero - uses libhal to interact with drives, needs porting
cheese,
* cheese - uses libhal to find webcams, should be fine
concordance,
* concordance - only requires hal to install fdi files, should be fine
conexusmm,
* conexusmm - uses libhal to find serial ports, should be fine
control-center,
* control-center - uses libhal to find sound devices, should be fine
emelfm2,
* emelfm2
evolution,
* evolution
evolution-conduits,
* evolution-conduits
exo,
* exo
gdm,
* gdm
gimp,
* gimp
gnomad2,
* gnomad2
gnome-device-manager,
* gnome-device-manager
gnome-keyring,
* gnome-keyring
gnome-mount,
* gnome-mount
gnome-pilot,
* gnome-pilot
gnome-power-manager,
* gnome-power-manager
gnome-python2-nautilus-cd-burner,
* gnome-python2-nautilus-cd-burner
gnome-utils,
* gnome-utils
gnome-vfs2,
* gnome-vfs2
gnome-volume-manager,
* gnome-volume-manager
gparted,
* gparted
gstreamer-plugins-good,
* gstreamer-plugins-good
gtkpod,
* gtkpod
gvfs,
* gvfs - needs porting
gxine,
* gxine
hal-cups-utils,
* hal-cups-utils
halevt,
* halevt
hplip,
* hplip
k3b,
* k3b
kdebase3,
* kdebase3
knetworkmanager,
* knetworkmanager
kpowersave,
* kpowersave
libipoddevice,
* libipoddevice
libmtp,
* libmtp
libsynce,
* libsynce
nautilus-cd-burner,
* nautilus-cd-burner
NetworkManager,
* NetworkManager
NetworkManager-gnome,
* NetworkManager-gnome
nut,
* nut
odccm,
* odccm
oxine,
* oxine
pcmanfm,
* pcmanfm
pmount,
* pmount
pm-utils,
* pm-utils
pulseaudio,
* pulseaudio
python-minihallib,
* python-minihallib
rhpxl,
* rhpxl
rhythmbox,
* rhythmbox
sane-backends,
* sane-backends
smartmontools-config,
* smartmontools-config
sound-juicer,
* sound-juicer
synaptics,
* synaptics
synce-hal,
* synce-hal
thinkfinger,
* thinkfinger
Thunar,
* Thunar
thunar-volman,
* thunar-volman
totem-pl-parser,
* totem-pl-parser
tracker,
* tracker
xfce4-volstatus-icon,
* xfce4-volstatus-icon
xorg-x11-server.
* xorg-x11-server
 
A lot of these are probably fine and need no porting at all.


== Test Plan ==
== Test Plan ==

Revision as of 00:54, 11 July 2008

DeviceKit

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.

Apart from DeviceKit itself, there is DeviceKit-disks, which is a system service to keep track of block devices, and gnome-disk-utility, which is a graphical frontend for DeviceKit-disks.

Furthermore, there will be a nautilus extension to format disks.

Owner

  • Name: DavidZeuthen

Current status

  • Targeted release: Fedora 10
  • Last updated: 2008-07-10
  • Percentage of completion: 50%

DeviceKit is still not in rawhide, since there are still some device-mapper prerequisites missing. The current goal is to have it in rawhide by F10 alpha.

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 unreleased versions of a number of components, such as kernel, udev, mdadm, lvm. These will have to appear in rawhide first. Also, in order to peacefully coexist with DeviceKit-disks, hal will need to undergo disk-ectomy. Components which depend directly on the disk functionality in hal, such as gvfs, Solid and thunar-volman, have to be ported to DeviceKit-disks.

For completeness, here is a list of all packages in Fedora that depend on hal, libhal.so.1 or libhal-storage.so.1.

  • 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, should be fine
  • brasero - uses libhal to interact with drives, needs porting
  • cheese - uses libhal to find webcams, should be fine
  • concordance - only requires hal to install fdi files, should be fine
  • conexusmm - uses libhal to find serial ports, should be fine
  • control-center - uses libhal to find sound devices, should be fine
  • emelfm2
  • evolution
  • evolution-conduits
  • exo
  • gdm
  • gimp
  • gnomad2
  • gnome-device-manager
  • gnome-keyring
  • gnome-mount
  • gnome-pilot
  • gnome-power-manager
  • gnome-python2-nautilus-cd-burner
  • gnome-utils
  • gnome-vfs2
  • gnome-volume-manager
  • gparted
  • gstreamer-plugins-good
  • gtkpod
  • gvfs - needs porting
  • gxine
  • hal-cups-utils
  • halevt
  • hplip
  • k3b
  • kdebase3
  • knetworkmanager
  • kpowersave
  • libipoddevice
  • libmtp
  • libsynce
  • nautilus-cd-burner
  • NetworkManager
  • NetworkManager-gnome
  • nut
  • odccm
  • oxine
  • pcmanfm
  • pmount
  • pm-utils
  • pulseaudio
  • python-minihallib
  • rhpxl
  • rhythmbox
  • sane-backends
  • smartmontools-config
  • sound-juicer
  • synaptics
  • synce-hal
  • thinkfinger
  • Thunar
  • thunar-volman
  • totem-pl-parser
  • tracker
  • xfce4-volstatus-icon
  • xorg-x11-server

Test Plan

  1. Use gnome-disk-utility to create, modify and delete partitions and file systems on various media, such as usb sticks, cds, removable hard disks, etc.
  2. Use gnome-disk-utility to encrypt partitions and to change passwords for existing encrypted partitions.
  3. Verify that gnome-disk-utility correctly reports smart data from disks which support it.
  4. Test the raid support
  5. Test the lvm support
  6. Test that desktop applications like nautilus and the gedit (file chooser) see volumes and mounts
  7. Similar for other desktop environments, if they are ported to DeviceKit

User Experience

There is a new menu item that brings up gnome-disc-utility.

The nautilus context menu offers to format discs/usb sticks and other devices.

gnome-disc-utility is a graphical interface for all disc-related tasks, from partitioning and file system creation to encryption, raid and lvm.

Dependencies

hal needs to be built without disc support.

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.

Solid's (KDE's) disk management also needs to be ported to DeviceKit-disks.

Contingency Plan

Don't add the new packages to F10, undo the hal-disk-ectomy, rebuild gvfs against hal instead of DeviceKit-disks.

Documentation

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

Release Notes

Should not be necessary.

It might be a good idea to mention the encryption support where the release notes talk about encryption.

Comments and Discussion

See Talk:Features/DeviceKit