
CVSID:$Id: TODO,v 1.44 2005-09-03 15:57:53 hughsient Exp $
 
This document is the TODO list for the HAL project. Feel free to
add/remove entries if you get an idea or implement one of these. If
you want to work on one of these you might want to send a patch that
updates this file to reflect it.

Ongoing items that always need work
-----------------------------------
 - Valgrind once in a while to fix memory leaks / memory corruption

 - Keeping the spec in sync with the code

 - Extend test suite coverage


Small items
-----------

 - Fix GtkDeprecationWarning: gtk.TRUE is deprecated, use True instead
   icon = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, gtk.TRUE, 8, 16, 16)
   - even better; get rid of h-d-m when something  better is available

 - Fix doxygen documentation for exported libraries, e.g. libhal and 
   libhal-storage

 - Figure out how to fix configure.in so we can build the spec in build
   systems that are firewalled off the Internet (e.g. replace the URL
   http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
   with a local path on the system from the installed Docbook packages)

 - Fix storage policy properties now that we have string lists

 - Make the helpers (probers, addons) use a direct connection to hald
   instead of routing it through the system message bus

 - Method calls should have a method to return string, bool int etc.
   Perhaps use dbus-send style, 
   e.g. int32:<number>' or 'string:the_string' or 'bool:true'

Medium items
------------

 - Make probers/helpers/addons use a point-to-point connection to hald

 - Support more kind of class/bus devices
   - Bluetooth devices that is connected should appear in sysfs as a
     bus device so the device link from e.g. input or tty abstraction
     should point to the bus device in sysfs

Big items
---------

 - Finish volume_id so it's safe to use on IDE drives; e.g. make it detect
   various IDE RAID signatures

 - Port server code to new glib/gobject D-BUS bindings when they're cooked
   and ready
   - We get introspection for free
   - GNOME projects etc. would use D-BUS glib bindings instead of libhal

 - Method invocations - have some way to specify that that a hal device
   object exports the org.freedesktop.Hal.Device.Foo.Bar interface -
   suggest to use a property info.interfaces (strlist) with what interfaces
   is supported and set info.interface.Foo.Bar.methodXYZ='/path/to/methodXYZ'
   for all methods on the Foo.Bar interface.
   - Need to define the interfaces and their meaning in the spec

 - Persistent properties, e.g. the ability for someone using libhal to
   say libhal_device_property_set_persistent (udi, "some.property.name") -
   should be a privileged operation

 - Persistent device objects

 - Move all privilege checking to D-BUS configuration files - the one shipped
   with hal wouldn't allow much but distributors are free to change this as
   the like (for Fedora we would rely on SELinux probably, Debian would perhaps
   rely on the plugdev group)

 - Privilege separation - discussed here 
   http://lists.freedesktop.org/archives/hal/2005-February/002163.html
