hal: Branch 'master'

David Zeuthen david at kemper.freedesktop.org
Thu Jul 27 17:13:52 PDT 2006


 ChangeLog                                        |12277 -----------------------
 examples/light_sensors_and_keyboard_backlight.py |   88 
 tools/hal-storage-cleanup-all-mountpoints.c      |  180 
 tools/hal-storage-cleanup-mountpoint.c           |  192 
 tools/hal-storage-eject.c                        |  303 
 tools/hal-storage-shared.c                       |  481 
 tools/hal-storage-shared.h                       |   54 
 tools/hal-storage-unmount.c                      |  191 
 tools/hal-system-storage-cleanup-mountpoint      |   21 
 tools/hal-system-storage-cleanup-mountpoints     |   16 
 tools/hal-system-storage-eject                   |   45 
 tools/hal-system-storage-unmount                 |   67 
 12 files changed, 1489 insertions(+), 12426 deletions(-)

New commits:
diff-tree e5ede9d62de02de7566ff212bee7ff389bd08270 (from b4dbcf24501618c3350c017252a462ecb7fd1bc0)
Author: David Zeuthen <davidz at zelda.fubar.dk>
Date:   Thu Jul 27 20:09:38 2006 -0400

    git stuff, mount/umount/eject all in C, .hal-mtab usage, light_sensor
    and keyboard_backlight additions including example.
    
    Remove ChangeLog and add rules to Makefile.am (from cairo) to generate
    the ChangeLog file from git history.
    
    Add support for light_sensor and keyboard_backlight on my Macbook
    Pro. Add an examply python script to examples/ to show how it's done.
    
    Move Unmount, Eject and related stuff to C. Start using the file
    /media/.hal-mtab instead of .created-by-hal to specify if HAL created
    the mount point. Also list tons of metadata such as uid, session id
    (still unused). Fixes the bug where the unprivileged hald couldn't
    look into /media/foobar/ for the .created-by-hal file. So now doing
    'umount /dev/sda1' on a volume mounted by HAL, makes hald remove the
    mount point as one would expect.

diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index d3dec01..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,12277 +0,0 @@
-2006-07-27  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/Makefile.am: fixed building of hal-spec.html
-
-	* doc/spec/hal-spec.html: submitted html to fix invalid chars
-
-2006-07-26  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald-runner/runner.c: (hash_kill_udi): fixed compiler warning 
-	about incompatible pointer types
-
-	* hald/linux2/hotplug.c: include ctype.h to fix compiler warning
-
-2006-07-24  Danny Kukawka  <danny.kukawka at web.de>
-
-	Fixed build hal-spec.html to avoid invalid chars in the html page and 
-	closed fd.o bug #6986:
-
-	* configure.in: replaced check for xmlto with old check for 
-	docbook2html and additional check for xmllint
-
-	* doc/spec/Makefile.am: added xmllint to resolve xinclude for docbook,
-	readded docbook2html command 
-
-2006-07-20  Danny Kukawka  <danny.kukawka at web.de>
-
-	* configure.in: fix configure and remove no longer available 
-	volume_id/Makefile from AC_OUTPUT (fd.o bug #7541)
-
-2006-07-19  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi: Added
-	slightly adopted patch from Bob Copeland <me at bobcopeland.com> to 
-	add Rio Karma to list of USB mp3 players and close fd.o bug #7379 
-
-2006-07-19  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi:
-	Patch from <chris.hollenbeck at gmail.com> to fix fd.o bug #7029 and 
-	correct audio_folders and playlist_path for iAudio X5 .
-
-2006-07-14  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* tools/hal-device.c: (main):
-	* tools/lshal.c: (main):
-	Replace dbus_connection_disconnect() with dbus_connection_close()
-	(D-BUS api rename)
-
-2006-07-14  Richard Hughes  <richard at hughsie.com>
-
-	* fdi/policy/10osvendor/10-laptop-panel-mgmt-policy.fdi:
-	As found in http://bugzilla.gnome.org/show_bug.cgi?id=345257 the hal
-	property "laptop_panel.brightness_in_hardware" is found the root
-	computer object, not on the actual laptop_panel object which is
-	obviously wrong. Patch fixes the issue for Crispin Flowerday.
-
-2006-07-11  Danny Kukawka  <danny.kukawka at web.de>
-
-	Added checks if vbetool is available and executable in /usr/sbin/,
-	added check if /var/run/{vbemode,vbestate} is available, if needed.
-
-	* tools/linux/hal-system-video-resume-linux:
-	* tools/linux/hal-system-video-suspend-linux: 
-
-2006-07-11  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* agents/Makefile.am:
-	* agents/linux/Makefile.am:
-	* agents/linux/usb/Makefile.am:
-	* agents/linux/usb/usb_agent.c:
-	* agents/linux26/Makefile.am:
-	* agents/linux26/sysfs/Makefile.am:
-	* agents/linux26/sysfs/hal_block.c:
-	* agents/linux26/sysfs/hal_block.h:
-	* agents/linux26/sysfs/hal_ide.c:
-	* agents/linux26/sysfs/hal_ide.h:
-	* agents/linux26/sysfs/hal_input.c:
-	* agents/linux26/sysfs/hal_input.h:
-	* agents/linux26/sysfs/hal_monitor.c:
-	* agents/linux26/sysfs/hal_monitor.h:
-	* agents/linux26/sysfs/hal_net.c:
-	* agents/linux26/sysfs/hal_net.h:
-	* agents/linux26/sysfs/hal_pci.c:
-	* agents/linux26/sysfs/hal_pci.h:
-	* agents/linux26/sysfs/hal_scsi.c:
-	* agents/linux26/sysfs/hal_scsi.h:
-	* agents/linux26/sysfs/hal_usb.c:
-	* agents/linux26/sysfs/hal_usb.h:
-	* agents/linux26/sysfs/libsysfs/Makefile.am:
-	* agents/linux26/sysfs/libsysfs/dlist.c:
-	* agents/linux26/sysfs/libsysfs/dlist.h:
-	* agents/linux26/sysfs/libsysfs/libsysfs.h:
-	* agents/linux26/sysfs/libsysfs/sysfs.h:
-	* agents/linux26/sysfs/libsysfs/sysfs_bus.c:
-	* agents/linux26/sysfs/libsysfs/sysfs_class.c:
-	* agents/linux26/sysfs/libsysfs/sysfs_device.c:
-	* agents/linux26/sysfs/libsysfs/sysfs_dir.c:
-	* agents/linux26/sysfs/libsysfs/sysfs_driver.c:
-	* agents/linux26/sysfs/libsysfs/sysfs_utils.c:
-	* agents/linux26/sysfs/main.c:
-	* agents/linux26/sysfs/main.h:
-	Remove dead code.
-
-2006-07-11  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/util.h:
-	Increase HAL_PATH_MAX from 256 to 512.
-
-2006-07-11  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* Makefile.am:
-	* volume_id/.cvsignore:
-	* volume_id/Makefile.am:
-	* volume_id/cramfs.c:
-	* volume_id/ext.c:
-	* volume_id/fat.c:
-	* volume_id/hfs.c:
-	* volume_id/highpoint.c:
-	* volume_id/hpfs.c:
-	* volume_id/iso9660.c:
-	* volume_id/isw_raid.c:
-	* volume_id/jfs.c:
-	* volume_id/linux_raid.c:
-	* volume_id/linux_swap.c:
-	* volume_id/logging.h:
-	* volume_id/lsi_raid.c:
-	* volume_id/luks.c:
-	* volume_id/lvm.c:
-	* volume_id/mac.c:
-	* volume_id/minix.c:
-	* volume_id/msdos.c:
-	* volume_id/ntfs.c:
-	* volume_id/nvidia_raid.c:
-	* volume_id/ocfs.c:
-	* volume_id/promise_raid.c:
-	* volume_id/reiserfs.c:
-	* volume_id/romfs.c:
-	* volume_id/silicon_raid.c:
-	* volume_id/squashfs.c:
-	* volume_id/sysv.c:
-	* volume_id/udf.c:
-	* volume_id/ufs.c:
-	* volume_id/util.c:
-	* volume_id/util.h:
-	* volume_id/via_raid.c:
-	* volume_id/volume_id.c:
-	* volume_id/volume_id.h:
-	* volume_id/vxfs.c:
-	Remove internal copy of libvolume_id.
-
-2006-07-11  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/probing/probe-storage.c: (main):
-	If HAL finds already created partitions, it will not longer probe
-	for a filesystem on the disk. This should work with kernel 2.6.17.
-
-2006-07-11  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* configure.in:
-	* hald/linux2/probing/Makefile.am:
-	* hald/linux2/probing/probe-storage.c: (vid_log), (main):
-	* hald/linux2/probing/probe-volume.c: (vid_log),
-	(probe_msdos_part_table), (set_volume_id_values), (main):
-	Depend on external shared version of libvolume_id.
-
-2006-07-11  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/hotplug.c: (hotplug_event_begin_sysfs): Prepare for
-	new class devices showing up in /sys/devices instead of /sys/class.
-
-2006-07-10  Danny Kukawka  <danny.kukawka at web.de>
-
-	* libhal-storage/libhal-storage.c: (libhal_volume_from_udi),
-	(libhal_volume_get_size), (libhal_volume_get_disc_capacity):
-	Fixed libhal_volume_get_size to return volume.size if available
-	instead of compute the value from volume.block_size and 
-	volume.num_blocks which can be wrong values. Added slightly
-	adopted patch from Wouter Paesen <wouter at kangaroot.net> to get 
-	disc_capacity of a volume via lib (fd.o bug #6496)
-	* libhal-storage/libhal-storage.h: fd.o bug #6496
-
-2006-07-10  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/probing/probe-volume.c: (main): set volume.block_size
-	for blank CD/DVD to 0 to avoid stange values for volume size if 
-	volume.block_size and volume.num_blocks.
-
-2006-07-03  Danny Kukawka  <danny.kukawka at web.de>
-
-	* libhal-storage/libhal-storage.c: (libhal_drive_free),
-	(libhal_volume_free): set pointer adress to NULL after free()
-
-	* libhal/libhal.c: (libhal_free_string_array),
-	(libhal_free_string): Fixed some memory leaks.
-
-2006-06-20  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-storage-mount.c (bailout_if_in_fstab): Handle LABEL=
-	and UUID= in this function.
-	(handle_mount): Also allow uid= on iso9660 and udf like we do for
-	vfat.
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: Ignore EFI
-	firmware partition.
-
-	* tools/hal-system-storage-cleanup-mountpoints: Fix OS-specific
-	script invocation
-
-2006-06-14  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Check properly for libpci. Patch from Frederic
-	Peters <fpeters at 0d.be>.
-
-2006-06-09  Richard Hughes  <richard at hughsie.com>
-
-	* hald/linux2/addons/.cvsignore:
-	* privileges/.cvsignore:
-	* tools/.cvsignore:
-	* tools/freebsd/.cvsignore:
-	Update these with the new files to keep cvs diff happy.
-
-2006-06-09  Richard Hughes  <richard at hughsie.com>
-
-	* tools/hal-system-video-resume:
-	* tools/hal-system-video-suspend:
-	* tools/linux/hal-system-video-resume-linux:
-	* tools/linux/hal-system-video-suspend-linux:
-	Add the video adapter suspend and resume functionality so we can just
-	drop in one fdi file and get the adapter to do the correct thing.
-
-2006-06-08  David Zeuthen  <davidz at redhat.com>
-
-	Adds code so addons can claim interfaces and handle the methods on
-	them in the addon daemon code. The example here is setting the LCD
-	backlight on a Macbook Pro. Actual code for setting the backlight
-	is based on code from Nicolas Boichat found on the mactel-linux
-	mailing list.
-
-	* hald/linux2/addons/addon-macbookpro-backlight.c: New file.
-
-	* tools/hal-system-power-set-power-save: Bugfix so the right
-	backend script is invoked.
-
-	* libhal/libhal.h: Add prototype for libhal_device_claim_interface().
-
-	* libhal/libhal.c (libhal_device_claim_interface): New function.
-
-	* hald/linux2/addons/Makefile.am: Add rules for
-	hald-addon-macbookpro-backlight. 
-
-	* hald/hald_dbus.c (device_emit_condition): Only allow helpers,
-	e.g.  only messages from direct connections.
-	(device_claim_interface): New function to handle the
-	ClaimInterface() method
-	(do_introspect): Include introspection XML for ClaimInterface()
-	and the introspection XML returned by ClaimInterface()
-	invocations.
-	(reply_from_fwd_message): New function
-	(hald_dbus_filter_handle_methods): Handle ClaimInterface() and
-	forward messages to the claimed interfaces on the appropriate
-	objects.
-	(local_server_message_handler): Forward signals from helpers onto
-	the system message bus and DTRT when a helper disconnects.
-
-	* hald/device_info.c (handle_spawn): New function. One can now do
-	a <spawn udi="foo"> to spawn a child device. See the fdi file below
-	for usage.
-	(start, spawned_device_callouts_add_done, end):  Handle spawning
-	device objects in response to <spawn>.
-
-	* fdi/policy/10osvendor/10-laptop-panel-mgmt-policy.fdi: Add rules
-	for matching the Macbook Pro in order to spawn a new device object
-	with an addon for handing methods on the org.fd.H.D.LaptopPanel
-	interface.
-
-	* hal.conf.in: Allow some interfaces to also emit signals.
-
-	* configure.in: Check for libpci so we can use it as an optional
-	dependency. 
-
-2006-06-06  David Zeuthen  <davidz at redhat.com>
-
-	Add introspection support to hald.
-
-	* hald/hald_dbus.c:
-	(do_introspect): New function
-	(hald_dbus_filter_handle_methods): Handle method "Introspect" on
-	interface "org.freedesktop.DBus.Introspectable"
-
-	* fdi/policy/10osvendor/10-laptop-panel-mgmt-policy.fdi,
-	  fdi/policy/10osvendor/10-power-mgmt-policy.fdi,
-	  fdi/policy/10osvendor/15-storage-luks.fdi,
-	  fdi/policy/10osvendor/20-storage-methods.fdi: Add new property
-	  *.method_argnames to describe each argument for a method; it's
-	  just a space delimited list.
-
-2006-06-06  Richard Hughes  <richard at hughsie.com>
-
-	* doc/spec/Makefile.am:
-	* doc/spec/config.xsl:
-	* doc/spec/docbook.css:
-	This adds a css style file to the generated html file. It makes the
-	tables much prettier and smart. The old tables make my eyes bleed.
-
-	* doc/spec/hal-spec.html:
-	Regenerate this file.
-
-2006-06-06  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/blockdev.c (hotplug_event_begin_add_blockdev): Set
-	capability volume.disc as required by the spec. Patch from Kevin
-	Ottens <ervin at kde.org>.	
-
-2006-06-05  David Zeuthen  <davidz at redhat.com>
-
-	* tools/Makefile.am: Be explicit about DIST_SUBDIRS as otherwise
-	'make distcheck' breaks.
-
-	* configure.in: Disable building docbook by default as it
-	currently breaks 'make distcheck'.
-
-	* doc/spec/Makefile.am: Also dist other XML files
-
-2006-06-05  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in, tools/Makefile.am: Patch from Joe Marcus Clarke
-	<marcus at freebsd.org> and Danny Kukawka <danny.kukawka at web.de> to
-	only install the backend we're building for.
-
-2006-06-05  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald_dbus.c:
-	(hald_exec_method): Export a new environment variable with the
-	unique name for callers system bus connection called
-	HAL_METHOD_INVOKED_BY_SYSTEMBUS_CONNECTION_NAME
-
-	* policy/*: Move these to privileges instead
-
-	* privileges/*: Moved from policy/txt/*
-	
-	* Makefile.am: Fix up subdirs
-
-	* configure.in: Adjust for new dirs and remove comment about
-	libhal-policy. Require PolicyKit >= 0.2 (which is polkit CVS).
-	Don't read weird options from the polkit pc file.
-
-	* tools/*: Update to new PolicyKit API and DTRT so things work
-	using hald/run-hald.sh
-
-2006-06-05  Sjoerd Simons <sjoerd at luon.net>
-
-	* configure.in: Added Catalan translation to ALL_LINGUAS 
-
-2006-05-31  Richard Hughes  <richard at hughsie.com>
-
-	* hal.conf.in:
-	Only allow org.freedesktop.Hal.Device.VideoAdapterPM to be used by root.
-
-2006-05-31  Richard Hughes  <richard at hughsie.com>
-
-	* doc/spec/hal-spec-properties.xml:
-	* doc/spec/hal-spec.html:
-	Add the video_adapter_pm namespace key descriptions for video power
-	management control.
-
-2006-05-25  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/classdev.c: (net_add): removed net.interface_up 
-	property because we never refresh the value, since this info is gone
-	into NetworkMananger and removed from HAL (see fd.o bug #6233).
-	* doc/spec/hal-spec-properties.xml: changed net.interface_up to not
-	mandatory
-
-2006-05-23  Richard Hughes <richard at hughsie.com>
-
-	* tools/linux/hal-system-power-suspend-linux:
-	* tools/freebsd/hal-system-power-suspend-freebsd:
-	Re-add --print-reply to dbus-send else the Rescan does not work.
-	This fixes numerous recent bugs where the lid value is not correct on
-	resume. This must have been changed incorrectly in the last few weeks.
-
-2006-05-21  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/osspec.c: (computer_probing_pcbios_helper_done): Fixed 
-	mapping of system.formfactor from smbios.chassis.type. Added a check 
-	if the key is already set to avoid overwrite values e.g. set in the 
-	ACPI/APM/PMU code. 
-	Added check for exit_type to skip mapping if execution of the smbios
-	prober failed.
-	(osspec_probe): Removed set default value for system.formfactor for
-	all cases and readded to case if !should_decode_dmi is set.
-
-2006-05-19  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/blockdev.c (blockdev_refresh_mount_state): Don't
-	stat autofs mounts. Patch from John (J5) Palmieri
-	<johnp at redhat.com>.
-
-2006-05-18  Danny Kukawka  <danny.kukawka at web.de>
-
-	Added check for bash syntax in scipts to the new backend dirs.
-	
-	* tools/freebsd/Makefile.am:
-	* tools/linux/Makefile.am:
-
-2006-05-17  Danny Kukawka  <danny.kukawka at web.de>
-
-	Fixed path to the helper of the related backends, added several
-	messages as e.g. UnknownError if backend not found (William Jon 
-	McCann <mccann at jhu.edu>) and if a needed environment variable is
-	not set. Capture result of command polkit-is-privileged (William i
-	Jon McCann <mccann at jhu.edu>)
-
-	* hald/hald_runner.c: (hald_runner_start_runner): added 
-	PACKAGE_BIN_DIR to PATH
-	* tools/hal-luks-remove:
-	* tools/hal-luks-remove.in:
-	* tools/hal-luks-setup:
-	* tools/hal-luks-teardown:
-	* tools/hal-system-lcd-get-brightness:
-	* tools/hal-system-lcd-set-brightness:
-	* tools/hal-system-power-hibernate:
-	* tools/hal-system-power-reboot:
-	* tools/hal-system-power-set-power-save:
-	* tools/hal-system-power-shutdown:
-	* tools/hal-system-power-suspend:
-	* tools/hal-system-storage-cleanup-mountpoint:
-	* tools/hal-system-storage-cleanup-mountpoints:
-	* tools/hal-system-storage-eject: 
-	* tools/hal-system-storage-unmount: export MOUNT_POINT for the
-	backend script William Jon McCann <mccann at jhu.edu>
-	* tools/linux/hal-system-storage-eject-linux: added result of failed
-	eject to error message (<mccann at jhu.edu>), added GIVEN_EJECTOPTIONS 
-	to the eject command
-	* tools/linux/hal-system-storage-unmount-linux:
-
-2006-05-14  Joe Marcus Clarke <marcus at freebsd.org>
-
-	* tools/linux/hal-luks-remove-linux.in:
-	* tools/linux/hal-luks-remove.in-linux: (removed): Rename
-	hal-luks-remove.in-linux to hal-luks-remove-linux.in to preserve
-	the .in extension.
-
-2006-05-14  Joe Marcus Clarke <marcus at freebsd.org>
-
-	* tools/linux/Makefile.am: Remove a script which is only found
-	in the OS-independent section.  Spotted by Richard Hughes.
-
-2006-05-14  Richard Hughes  <richard at hughsie.com>
-
-	* configure.in:
-	* doc/spec/Makefile.am:
-	Change the docbook2html check in the configure script to check for
-	xmlto. Also change s/DOCBOOK/XMLTO/ in the Makefile.
-
-2006-05-14  Joe Marcus Clarke <marcus at freebsd.org>
-
-	* tools/freebsd/Makefile.am:
-	* tools/linux/Makefile.am: Add scripts to EXTRA_DIST
-
-2006-05-14  Richard Hughes  <richard at hughsie.com>
-
-	* doc/spec/hal-spec-properties.xml:
-	* fdi/policy/10osvendor/10-laptop-panel-mgmt-policy.fdi:
-	On some laptops, the brightness control is all done in hardware
-	but the hardware also synthesizes keypresses when the brightness is
-	changed.
-	If laptop_panel.brightness_in_hardware is set true, then any
-	power manager software should not attempt to set any new values on
-	brightness keypress, as it may cause the panel to flash uncontrollably.
-	This patch sets the aforementioned key for the IBM ThinkPad X31.
-
-2006-05-14  Joe Marcus Clarke <marcus at freebsd.org>
-
-	* hald/hald_runner.c: (add_basic_env)
-	* configure.in:
-	* tools/Makefile.am:
-	* tools/freebsd/Makefile.am:
-	* tools/freebsd/hal-system-lcd-get-brightness-freebsd:
-	* tools/freebsd/hal-system-lcd-set-brightness-freebsd:
-	* tools/freebsd/hal-system-power-reboot-freebsd:
-	* tools/freebsd/hal-system-power-set-power-save-freebsd:
-	* tools/freebsd/hal-system-power-shutdown-freebsd:
-	* tools/freebsd/hal-system-power-suspend-freebsd:
-	* tools/freebsd/hal-system-storage-cleanup-mountpoints-freebsd:
-	* tools/freebsd/hal-system-storage-eject-freebsd:
-	* tools/freebsd/hal-system-storage-unmount-freebsd:
-	* tools/hal-luks-remove:
-	* tools/hal-luks-remove.in:
-	* tools/hal-luks-setup:
-	* tools/hal-luks-teardown:
-	* tools/hal-storage-mount.c: (fstab_open, fstab_next, fstab_close,
-	  mtab_open, mtab_next, mtab_close, map_fstype): New functions
-	  (bailout_if_in_fstab, bailout_if_mounted, handle_mount):
-	* tools/hal-system-lcd-get-brightness:
-	* tools/hal-system-lcd-set-brightness:
-	* tools/hal-system-power-hibernate:
-	* tools/hal-system-power-pmu.c: (pmac_sleep, pmac_get_lcd_brightness,
-	  pmac_get_lcd_brightness, pmac_set_lcd_brightness):
-	* tools/hal-system-power-reboot:
-	* tools/hal-system-power-set-power-save:
-	* tools/hal-system-power-shutdown:
-	* tools/hal-system-power-suspend:
-	* tools/hal-system-storage-cleanup-mountpoint:
-	* tools/hal-system-storage-cleanup-mountpoints:
-	* tools/hal-system-storage-eject:
-	* tools/hal-system-storage-unmount:
-	* tools/linux/Makefile.am:
-	* tools/linux/hal-luks-remove-linux:
-	* tools/linux/hal-luks-remove.in-linux:
-	* tools/linux/hal-luks-setup-linux:
-	* tools/linux/hal-luks-teardown-linux:
-	* tools/linux/hal-system-lcd-get-brightness-linux:
-	* tools/linux/hal-system-lcd-set-brightness-linux:
-	* tools/linux/hal-system-power-hibernate-linux:
-	* tools/linux/hal-system-power-reboot-linux:
-	* tools/linux/hal-system-power-set-power-save-linux:
-	* tools/linux/hal-system-power-shutdown-linux:
-	* tools/linux/hal-system-power-suspend-linux:
-	* tools/linux/hal-system-storage-cleanup-mountpoints-linux:
-	* tools/linux/hal-system-storage-eject-linux:
-	* tools/linux/hal-system-storage-unmount-linux: Split out the
-	tools scripts into an OS-independent wrapper, and an OS-dependent
-	backend.  The backend selection with be based on the utsname.sysname
-	value.  Also, add FreeBSD support to hal-storage-mount.c (code
-	from Jean-Yves Lefort <jylefort at FreeBSD.org>).
-
-2006-05-12  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/probing/probe-volume.c: (strdup_valid_utf8):
-	removed (again) unneeded code and validate the returned string 
-	directly.
-
-2006-05-12  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-volume.c (strdup_valid_utf8): In
-	Ubuntu we got several bug reports about device label gibberish,
-	for example: https://launchpad.net/bugs/27897. This happens if the
-	label is either truly bogus, or in a non-UTF-8 compatible
-	encoding. The blunt solution would be to just ignore any non-UTF-8
-	labels, but since it might be preferable to retain labels which
-	are only 'lightly' damaged (maybe one Umlaut in an otherwise valid
-	string), I wrote a small patch to ignore invalid labels if they
-	contain more than 20% illegal characters. Patch from Martin Pitt
-	<martin at piware.de>.
-
-2006-05-12  Danny Kukawka  <danny.kukawka at web.de>
-
-	cleanup: s/;;/;/
-
-	* hald/hald_dbus.c: (hald_exec_method_enqueue),
-	(hald_exec_method_process_queue):
-	* tools/hal-device.c: (process_property):
-	* volume_id/reiserfs.c: (volume_id_probe_reiserfs):
-
-2006-05-10  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/probing/probe-input.c: (check_abs), (check_key),
-	(check_rel): replaced fprintf () with dbg ()
-
-2006-05-10  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/probing/probe-volume.c: (strdup_valid_utf8):
-	removed unneeded code and validate the returned string directly.
-
-	* hald/util.c: (hal_util_strdup_valid_utf8): validate the returned 
-	string and not the original, which we duplicated for return. 
-
-2006-05-09  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi:
-	Added new mp3-player from fd.o bug #6646
-
-2006-05-09  Danny Kukawka  <danny.kukawka at web.de>
-
-	Added support for --use-syslog option to prober and addons. This 
-	should allow easy logging complete hal debug information to syslog 
-	if hald run in daemon mode:
-
-	* hald/hald_runner.c: (add_basic_env): added HALD_USE_SYSLOG to env
-	* hald/linux2/probing/shared.h: added support for HALD_USE_SYSLOG
-	
-	Replaced in prober and addons old debug code with support for 
-	--use-syslog instead of log to sterr. 
-
-	* hald/linux2/addons/addon-acpi.c: (main):
-	* hald/linux2/addons/addon-hid-ups.c: (ups_get_string), (main):
-	* hald/linux2/addons/addon-pmu.c: (main):
-	* hald/linux2/addons/addon-storage.c: (main):
-	* hald/linux2/addons/addon-usb-csr.c: (main):
-	* hald/linux2/probing/probe-input.c: (main):
-	* hald/linux2/probing/probe-pc-floppy.c: (main):
-	* hald/linux2/probing/probe-printer.c: (main):
-	* hald/linux2/probing/probe-serial.c: (main):
-	* hald/linux2/probing/probe-smbios.c: (main): also fixed set debug
-	option before use dbg() the first time
-	* hald/linux2/probing/probe-storage.c: (main): replaced printf with
-	dbg() and removed some needless debug lines.
-	* hald/linux2/probing/probe-volume.c: (main):
-
-2006-05-09  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/probing/probe-smbios.c: fixed problem with parse 
-	information from output of dmidecode where the search string is 
-	shorter than 7 chars: replaced in strbegin() 'sizeof(char *) -1'
-	(which returns the size of the pointer) with 'strlen(char *)' which
-	returns the size of the string.
-
-2006-05-09  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/hal-spec.xml.in: added property for DVD+RW DL to spec
-	* hald/linux2/probing/linux_dvd_rw_utils.c, 
-	  hald/linux2/probing/linux_dvd_rw_utils.h: (get_dvd_r_rw_profile):
-	reworked detection of device capabilities to get correct DVD-RW info
-	and added DVD+RW DL detection.
-	* hald/linux2/probing/probe-storage.c: (main): fixed mapping of
-	return value of get_dvd_r_rw_profile() related to changes
-	* libhal-storage/libhal-storage.c:
-	(libhal_drive_policy_compute_display_name),
-	(libhal_drive_from_udi): 
-	* libhal-storage/libhal-storage.h: added property DVD+RW DL
-
-2006-05-09  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/blockdev.c: (blockdev_refresh_mount_state): Skip stat
-	nfs mounts. This should solve blocked hald (and failing aplications
-	which use hal) if there are nfs share mounts with 'stale nfs handle'.
-
-2006-05-09  Danny Kukawka  <danny.kukawka at web.de>
-
-	Moved hal scripts to $(libdir)/hal/scripts instead of 
-	$(datadir)/hal/scripts to be more in compliance with FHS related 
-	to fd.o bug #5655
-
-	* hald/Makefile.am:
-	* tools/Makefile.am:
-
-2006-05-09  Richard Hughes  <richard at hughsie.com>
-
-	* doc/spec/hal-spec-properties.xml:
-	Rework a patch from Joe Marcus Clarke <marcus at FreeBSD.org> to fix a
-	typo in an oss keyname.
-
-2006-05-09  Richard Hughes  <richard at hughsie.com>
-
-	* doc/spec/hal-spec-properties.xml:
-	Add org.freedesktop.Hal.Device.LaptopPanel.GetBrightness and 
-	org.freedesktop.Hal.Device.LaptopPanel.SetBrightness descriptions
-	to the spec file.
-
-2006-05-09  Richard Hughes  <richard at hughsie.com>
-
-	* doc/spec/Makefile.am:
-	* doc/spec/hal-spec.html:
-	* doc/spec/hal-spec.xml.in:
-	* doc/spec/hal-spec-introduction.xml:
-	* doc/spec/hal-spec-fdi-files.xml:
-	* doc/spec/hal-spec-properties.xml:
-	* doc/spec/hal-spec-examples.xml:
-	Split up the spec file into more managable lumps using XInclude, and
-	change to using xmlto to convert the docbook xml to html as
-	docbook2html cannot handle the XInclude stuff as it's not valid docbook.
-	This is the first of many cleanup patches to the spec, so expect the
-	filenames to (maybe) change, or for files to be split even further.
-
-2006-05-08  Richard Hughes  <richard at hughsie.com>
-
-	* doc/spec/hal-spec.xml.in:
-	* hald/linux2/osspec.c: (set_suspend_hibernate_keys):
-	Depreciate the keys power_management.can_suspend_to_ram and
-	power_management.can_suspend_to_disk in favour of
-	power_management.can_suspend and power_management.can_hibernate so it's
-	all consistent between the method names and the can_* keys.
-	We'll remove the former keys in a year or so, but leave them now for
-	compatability.
-
-2006-05-08  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-input.c: This patch fixes endian-ness
-	issues with the input device support of hal, and thus makes the
-	special buttons on a big-endian machine show up through hal. Patch
-	from Johannes Berg <johannes at sipsolutions.net>.
-	
-2006-05-04  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Joe Marcus Clarke <marcus at freebsd.org>. Move sockets to
-	/var/run/hald and create this directoy on 'make install'
-
-	* configure.in:
-	* hald/Makefile.am:
-	* hald/hald_dbus.c: (hald_dbus_local_server_init):
-	* hald/hald_runner.c:
-
-2006-05-01  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/osspec.c: (set_suspend_hibernate_keys):
-	getline() expects size_t; fix alignment warning
-
-2006-04-28  Artem Kachitchkine <artem.kachitchkin at sun.com>
-
-	* tools/hal_set_property.c: (main): --remove confuses return values.
-
-2006-04-28  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-storage-mount.c (handle_mount): Update to new
-	PolicyKit API.
-
-2006-04-27  Richard Hughes  <richard at hughsie.com>
-
-	Patch from Bastien Nocera <hadess at hadess.net>:
-
-	* hald/linux2/acpi.c: (acpi_synthesize_sonypi_display):
-	Check that we don't support brightness change through ACPI
-	with the presence of /proc/acpi/sony/brightness for type3 VAIOs.
-
-2006-04-27  Richard Hughes  <richard at hughsie.com>
-
-	Patch from Bastien Nocera <hadess at hadess.net>:
-
-	* tools/hal-system-lcd-get-brightness:
-	* tools/hal-system-lcd-set-brightness:
-	Commit a patch to check whether we have the userspace tool spicctrl
-	as well. Could cause a few problems otherwise.
-
-2006-04-26  Richard Hughes  <richard at hughsie.com>
-
-	Patch from Bastien Nocera <hadess at hadess.net>:
-
-	* hald/linux2/acpi.c: (laptop_panel_refresh),
-	(acpi_synthesize_sonypi_display), (acpi_synthesize_hotplug_events):
-	Create an LCD Panel object of type sonypi, necessary for getting the
-	methods supported for panasonic notebooks.
-	Fixes https://bugs.freedesktop.org/show_bug.cgi?id=6729
-
-	* tools/hal-system-lcd-get-brightness:
-	* tools/hal-system-lcd-set-brightness:
-	Support the sonypi brightness type.
-
-2006-04-26  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Gabriel Burt <gabriel.burt at gmail.com>.
-
-	After some further consideration, I think the
-	portable_audio_player.filepath_format property should be removed
-	and a new property, folder_depth, should be created.  The main
-	point of the filepath_format property was to convey whether the
-	device only supported a limited file hierarchy, but it ended up
-	conveying much more than that - specifying exactly what directory
-	structure the music files should go in, when that's really not
-	appropriate (since the hardware doesn't care except in the
-	hierarchy depth case).  The folder to write files out to can be
-	taken from the first entry in the audio_folders property.  This
-	change will allow the application to choose the appropriate
-	directory structure (/podcasts/NPR/****, /Artist/Album/00 - Title,
-	etc). I've attached a patch that make this change in the
-	hal-spec.xml.in as well as another patch that adds some of these
-	new properties for a few audio devices.
-		
-	* doc/spec/hal-spec.xml.in: Update spec
-	
-	* fdi/information/10freedesktop/10-usb-music-players.fdi: Update
-	to reflect new spec
-
-2006-04-24  Richard Hughes <richard at hughsie.com>
-
-	* fdi/information/10freedesktop/10-wireless-mice.fdi: Update the patch
-	from http://bugs.freedesktop.org/show_bug.cgi?id=6397 as we are trying
-	to detect wired mice here as well. Also add the proper product names,
-	giving a nicer name in hal-device-manager.
-
-2006-04-24  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Add "COMMANDSET:" to the printer query parsing.
-	* hald/linux2/probing/probe-printer.c: (main):
-
-2006-04-24  Richard Hughes <richard at hughsie.com>
-
-	* tools/hal-system-power-hibernate, tools/hal-system-power-suspend:
-	Add --print-reply to dbus-send else the Rescan does not work.
-	This should fix a whole load of bugs related to ACPI values on resume.
-
-2006-04-17  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Read name of cpu from /proc/cpuinfo. Some day we will
-	have this in sysfs, but it's not ready for now.
-	Thanks for the patch to:
-	  Jim Krehl <jimmyk at novell.com>
-
-	* hald/linux2/acpi.c: (get_processor_model_name),
-	(processor_refresh):
-
-2006-04-17  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Add printer command set returned by 1284 query.
-	"Each key will have at least one value, and may have more than one
-         value. The minimum necessary keys (case-sensitive) are MANUFACTURER,
-         COMMAND SET, and MODEL. (These keys may be abbreviated as MFG, CMD,
-         and MDL respectively.) Each implementation will supply these three
-         keys and possibly additional ones as well"
-	http://www.longrange.net/ParallelPort/1284d12.pdf
-
-	* doc/spec/hal-spec.xml.in:
-	* hald/linux2/probing/probe-printer.c: (main):
-
-2006-04-16  Richard Hughes <richard at hughsie.com>
-
-	* fdi/information/10freedesktop/10-wireless-mice.fdi: Added new
-	Logitech csr mice, mainly from Bastien Nocera for fd.o 6397.
-	Also added Coordless Click! which has also been tested working.
-
-2006-04-12  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi: Applied 
-	slightly adopted patches from fd.o bugs 6317, 6462, 6464, 6561.
-	Reorganized the listed devices ordered my the vendor id and removed
-	double vendor matches.
-
-2006-03-30  Richard Hughes <richard at hughsie.com>
-
-	* tools/hal-system-power-hibernate, tools/hal-system-power-suspend:
-	Refresh device types button, battery and ac_adapter on resume, as
-	a suspend or hibernate can do funny things to ACPI.
-	This fixes a common problem where HAL forgets the value of the lid
-	button when it is resuming and may fix other related problems also.
-
-2006-03-26  David Zeuthen  <davidz at redhat.com>
-
-	Fix for RH bug #185557
-
-	* hald/linux2/blockdev.c (hotplug_event_begin_add_blockdev): Introduce
-	"pcmcia" as a value storage.bus and mark devices of this bus as being
-	hotpluggable
-
-	* fdi/information/10freedesktop/10-usb-card-readers.fdi: When 
-	storage.bus="pcmcia" mark all drives with "FLASH" in the model
-	string as having drive_type="compact_flash"
-
-2006-03-26  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-system-power-hibernate, 
-	  tools/hal-system-power-suspend,
-	  tools/hal-system-power-reboot,
-	  tools/hal-system-power-shutdown,
-	  tools/hal-system-storage-eject,
-	  tools/hal-system-storage-unmount: s/--policy/--privilege/ and
-	s/--uid/--user/
-
-2006-03-14  David Zeuthen  <davidz at redhat.com>
-
-	* policy/txt/*: Use new suffix .privilege instead of .policy and
-	prefix privilege files with "hal-".
-	
-	* tools/hal-storage-mount.c: (invalid_mount_option),
-	(permission_denied_privilege), (handle_mount), (main): Update to
-	new libpolkit from PolicyKit CVS HEAD. Also read the environment
-	variable $HAL_METHOD_INVOKED_BY_PID which is yet to be exported
-	by hald and hald-runner
-	
-	* tools/hal-system-*: Use new hal- prefix for the privilege name
-
-2006-03-13  Danny Kukawka  <danny.kukawka at web.de>
-
-	* configure.in: Added Khmer translation to ALL_LINGUAS 
-
-2006-03-13  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi:
-	applied slightly adopted patch and added new device from fd.o bugs:
-	6169, 6228
-
-2006-03-10  Richard Hughes <richard at hughsie.com>
-
-	Patch from Paolo Borelli <pborelli at katamail.com>.
-
-	* tools/hal-system-lcd-set-brightness: Sony laptops have a brightness
-	range from 1..8 not 0..7 and so we need to add 1 before we echo this
-	brightness value to /proc/acpi/sony/brightness. Fixes g-p-m not setting
-	the screen to full brightness when set to 100%.
-
-2006-03-10  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Christian Neumair <chris at gnome-de.org>.
-
-	* hald/linux2/blockdev.c (hotplug_event_begin_add_blockdev): Set
-	FALSE for volume.is_mounted_read_only
-
-	* libhal-storage/libhal-storage.c (libhal_drive_from_udi): Extract
-	volume.is_mounted_read_only
-	(libhal_volume_is_mounted_read_only): New function
-
-	* libhal-storage/libhal-storage.h: Export prototype for
-	libhal_volume_is_mounted_read_only()
-
-	* hald/linux2/blockdev.c (blockdev_refresh_mount_state): Set
-	volume.is_mounted_read_only
-
-	* doc/spec/hal-spec.xml.in: Document volume.is_mounted_read_only
-
-2006-03-09  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/apm.c: (battery_refresh): fixed remaining_time 
-	property, remove the key if battery is charging because apm don't know
-	remaining time on changing. The key is not mandatory, do the same
-	as on ACPI if value is unknown.
-
-2006-03-08  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi:
-	applied patches and added new devices from fd.o bugs: 6101, 6139, 
-	6173, 6175  
-
-2006-03-08  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Add squashfs detection.
-
-	* volume_id/Makefile.am:
-	* volume_id/volume_id.c: (volume_id_probe_filesystem):
-	* volume_id/volume_id.h:
-	* volume_id/squashfs.c:
-
-2006-03-08  David Zeuthen  <davidz at redhat.com>
-
-	* doc/spec/hal-spec.xml.in: Patch from Gabriel Burt
-	<gabriel.burt at gmail.com>. Add some useful keys for
-	portable_audio_player.
-
-2006-03-07  David Zeuthen  <davidz at redhat.com>
-
-	* doc/api/Makefile.am, doc/api/hal-docs.xml: Remove libhal-policy bits
-
-2006-03-07  David Zeuthen  <davidz at redhat.com>
-
-	Move libhal-policy to a dedicated package PolicyKit (available in
-	HAL CVS).
-
-	* configure.in: Require PolicyKit (available in hal CVS) and don't
-	build libhal-policy. Extract some useful POLKIT variables for
-	user, group and txtsrc for PolicyKit
-
-	* Makefile.am: Don't build libhal-policy or hal-policy.pc
-
-	* policy/txt/Makefile.am: Use new POLKIT_TXTSRC variable on where
-	to install policy
-
-	* tools/Makefile.am: Don't build hal-policy-is-privileged as it is
-	obsoleted by PolicyKit's polkit-is-privileged
-
-	* tools/hal-storage-mount.c: Use new libpolkit instead of
-	libhal-policy
-
-	* tools/hal-system-power-hibernate,
-	tools/hal-system-power-suspend, tools/hal-system-power-reboot,
-	tools/hal-system-power-shutdown: Use polkit-is-privileged instead
-	of hal-policy-is-privileged
-
-	* libhal-policy/libhal-policy.c, libhal-policy/libhal-policy.h,
-	libhal-policy/libhal-policy-test.c, libhal-policy/Makefile.am,
-	tools/hal-policy-is-privileged.c, tools/hal-system-storage-mount:
-	Remove these files.
-
-2006-03-07  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/information/10freedesktop/10-wireless-mice.fdi: Add entry for
-	my wireless mouse+keyboard combo
-
-2006-03-07  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi:
-	Added several USB mp3 player to fdi file:
-	- added patch from Gabriel Burt <gabriel.burt at gmail.com> for 17 new
-	  devices
-	- applied patches and added new devices from fd.o bugs: 6095, 6102,
-	  6107, 6130, 6135, 6140, 6148, 6155, 6156, 6160 
-
-2006-03-06  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-storage-mount.c: New file
-
-	* tools/Makefile.am: Add rules for hal-storage-mount
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: Use new C program
-	hal-storage-mount instead of hal-system-storage-mount (shell
-	script). Don't require ignored firmware partitions to be internal,
-	otherwise 'bootstrap' would show up when attaching my Powerbook G4
-	in target disk mode. Allow a bunch of uid= options for other file
-	systems than vfat as storage-[fixed|removable]-mount-change-uid
-	policies will refuse to mount.
-
-2006-03-06  Sjoerd Simons <sjoerd at luon.net>
-
-	* hald/linux2/addons/addon-keyboard.c:  Also recognize mute,
-	volume up/down buttons, switchvideo mode button and keyboard illumination
-	toggle/down/up buttons.
-
-2006-03-04  Artem Kachitchkine  <artem.kachitchkin at sun.com>
-
-	* libhal-policy/Makefile.am: use AM_CFLAGS instead of CFLAGS
-
-2006-03-04  Artem Kachitchkine  <artem.kachitchkin at sun.com>
-
-	* configure.in: check for getgrouplist() and use the local version
-	if not provided by the system.
-
-	* hald/hald_dbus.c: (hald_exec_method_free_mi),
-	(hald_exec_method_do_invocation), (hald_exec_method): stdin is
-	a macro in Solaris, can't use to name struct members.
-
-	* hald/logger.h: if using Sun compiler, define __FUNCTION__
-	through __func__.
-
-	* libhal-policy/Makefile.am: posix thread flags required on Solaris
-	for getgrgid_r() to have 5 arguments (otherwise it has 4).
-
-	* libhal-policy/libhal-policy.c: (afp_process_elem),
-	(libhal_policy_util_uid_to_name), (libhal_policy_element_set_uid),
-	(libhal_policy_element_set_gid), (libhal_policy_element_get_uid),
-	(libhal_policy_element_get_gid), (libhal_policy_element_dump):
-	anonymous unions are not supported in C99, fixed LibHalPolicyElement.
-	(getgrouplist): check for getgrouplist() and use the local version
-	if not provided by the system.
-
-	* tools/lshal.c: if using Sun compiler, define __FUNCTION__
-	through __func__.
-
-2006-03-03  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/classdev.c: (serial_get_prober): fixed to be sure that 
-	the prober is only called for ttyS* devices. Only this devices 
-	support TIOCGSERIAL, other tty devices like ttyACM* or ttyUSB* not.
-
-2006-03-03  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/hal-spec.xml.in: fixed spec for portable_audio_player 
-	namespace properties which not use string but strlist 
-
-2006-03-03  Richard Hughes <richard at hughsie.com>
-
-	* doc/spec/hal-spec.xml.in: Ammend the spec as now button.has_state
-	and button.type are not mandatory.
-
-2006-03-03  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/addons/.cvsignore: Append hald-addon-acpi-buttons-toshiba
-
-	* .cvsignore: Append hal-policy.pc
-
-	* tools/.cvsignore: Append hal-policy-is-privileged
-
-	* libhal-policy/.cvsignore, policy/.cvsignore, policy/txt/.cvsignore:
-	Add this file, copied from libhal-storage.
-
-2006-03-03  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/addons/addon-acpi-buttons-toshiba.c,
-	hald/linux2/addons/Makefile.am: Build hald-addon-acpi-buttons-toshiba.
-	When the acpi->input patches get sent to the kernel, and HAL has a
-	dependency on this new kernel version, this addon can probably be
-	removed. Seeing as this may be years away, adding the addon is a good
-	thing to do as it makes the Fn keys on Toshiba work.
-
-	* fdi/policy/10osvendor/10-toshiba-buttons.fdi,
-	fdi/policy/10osvendor/Makefile.am: Launch the toshiba acpi addon for
-	toshiba laptops only.
-
-2006-03-03  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/addons/addon-keyboard.c: Convert the key names to include
-	a central dash between words, e.g. converting "brightnessdown" and
-	"ejectcdto" to "brightness-down" and "eject-cd" to conform to the new
-	standard for key names. I think the only thing this breaks is g-p-m.
-
-2006-03-01  Richard Hughes <richard at hughsie.com>
-
-	* Makefile.am, policy/txt/Makefile.am: Fix build by including the new
-	policy directory in the tarball, and by shipping the files as part of
-	the dist.
-
-2006-02-26  David Zeuthen  <davidz at redhat.com>
-
-	Use new policy framework to enforce policy. Always throw the same
-	exception org.freedesktop.Hal.Device.PermissionDeniedByPolicy as
-	callers can use that to identify that policy prevented the user
-	from invoking this method.
-
-	* tools/hal-system-storage-mount: 
-
-	* tools/hal-system-storage-umount: 
-
-	* tools/hal-system-storage-eject: 
-
-	* tools/hal-system-power-suspend: 
-
-	* tools/hal-system-power-hibernate: 
-
-	* tools/hal-system-power-reboot: 
-
-	* tools/hal-system-power-poweroff: 
-
-2006-02-26  David Zeuthen  <davidz at redhat.com>
-
-	* policy/txt/power-hibernate.policy (Allow),
-	* policy/txt/power-poweroff.policy (Allow),
-	* policy/txt/power-suspend.policy (Allow),
-	* policy/txt/storage-removable-mount.policy (Allow),
-	* policy/txt/storage-removable-mount-change-uid.policy (Allow):
-	Ugh, replace uid:all with uid:__all__ as the former was malformed
-
-	* tools/hal-policy-is-privileged.c: Add verbose operation
-
-	* tools/Makefile.am (bin_PROGRAMS): Ugh, forgot backslash when
-	adding hal-policy-is-privileged
-
-2006-02-26  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Generate policy/Makefile and policy/txt/Makefile
-
-	* policy/Makefile.am: New file
-
-	* policy/txt/Makefile.am: Install policy files to /etc/hal/policy
-
-	* policy/txt/*.policy: Policy files
-
-2006-02-26  David Zeuthen  <davidz at redhat.com>
-
-	* tools/Makefile.am: Add build rules for hal-policy-is-privileged
-
-	* tools/hal-policy-is-privileged.c: New file, used to query policy
-
-2006-02-26  David Zeuthen  <davidz at redhat.com>
-
-	* NEWS: Write requirements for HAL 0.5.8 (and CVS HEAD)
-
-2006-02-25  David Zeuthen  <davidz at redhat.com>
-
-	* doc/api/tmpl: New directory
-
-	* doc/api/tmpl/*.sgml: Templates
-
-2006-02-25  David Zeuthen  <davidz at redhat.com>
-
-	* libhal/libhal.h: Add back typedefs for LibHalPropertySetIterator
-	and LibHalContext as they were accidently removed in last commit.
-
-2006-02-25  David Zeuthen  <davidz at redhat.com>
-
-	* gtk-doc.make: New file
-
-2006-02-25  David Zeuthen  <davidz at redhat.com>
-
-	* libhal/libhal.[ch]: Convert doc comments from Doxygen to gtk-doc
-
-	* libhal-storage/libhal-storage.[ch]: Convert doc comments from
-	Doxygen to gtk-doc (not completely done)
-
-	* doc/api/hal-docs.xml: New file
-
-	* doc/api/Doxyfile.in: Remove
-
-	* doc/api/Makefile.am: Use gtk-doc instead of Doxygen
-
-	* configure.in: Various cleanups; use gtk-doc instead of Doxygen
-
-	* autogen.sh: Pass --enable-gtk-doc to configure.
-
-	* acinclude.m4: Add GTK_DOC_CHECK, from cairo, thanks.
-
-2006-02-25  David Zeuthen  <davidz at redhat.com>
-
-	* hal-policy.pc.in: New file
-
-	* libhal-policy/libhal-policy-test.c: New file
-
-	* libhal-policy/libhal-policy.[ch]: New files
-
-	* libhal-policy/Makefile.am: New file
-
-	* hald/Makefile.am: Uncomment hald-test as this is currently
-	somewhat broken
-
-	* doc/api/Doxyfile.in: Add libhal-policy to INPUT
-
-	* configure.in: Add stuff of libhal-policy
-
-	* Makefile.am: Add libhal-policy to SUBDIRS and hal-policy.pc to
-	pkgconfig_DATA and hal-policy.pc.in to EXTRA_DIST
-
-2006-02-24  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-system-power-set-power-save: Fix for
-	/usr/sbin/pm-powersave for Fedora pm-utils 0.10-1
-
-2006-02-24  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Post-release version bump to 0.5.8
-
-	* NEWS: Fix small typo in 0.5.7 release notes
-
-====== HAL 0.5.7 released ======
-
-2006-02-24  David Zeuthen  <davidz at redhat.com>
-
-	* NEWS: Update for 0.5.7
-
-2006-02-23  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Sjoerd Simons <sjoerd at luon.net>.  It adds a save PATH
-	to the enviroment by default (hald should never ever specify need
-	to add a path to the enviroment send to the runner, so we're not
-	overriding anything...).
-
-	* hald-runner/utils.h:
-
-	* hald-runner/utils.c (get_string_array): 
-
-	* hald-runner/main.c (parse_first_part): 
-
-2006-02-23  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-luks-setup.in: Actually remove this file
-	
-2006-02-23  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/blockdev.c (hotplug_event_begin_add_blockdev): Add
-	some useful debugging on errors
-
-	* tools/hal-luks-setup: Sleep three seconds on error to avoid
-	attacks for cracking the password
-
-2006-02-23  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/probing/probe-input.c: Add the bustype for ADB keyboards
-	so that the keyboard addon is lauched for my iBook clamshell.
-	This means that the power button now emits ButtonPressed conditions
-	and the machine thus works with gnome-power-manager.
-
-2006-02-22  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>,
-	slightly tweaked by myself.
-
-	* libhal-storage/libhal-storage.[ch]: Teach libhal-storage about
-	Blu-ray and HD DVD.
-
-2006-02-22  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-pmu.c (main): Attached patch makes the
-	addon-pmu work in blocking mode (thus open /dev/adb
-	blocking). I've been running a little daemon on my system for some
-	years that also does this without any problems, so it should be
-	fine and makes the code somewhat nice imho. I've also removed some
-	old dead code, don't think there is much use in keeping it around
-	right? Patch from Sjoerd Simons <sjoerd at luon.net>.
-
-2006-02-22  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>. Add
-	Blu-ray and HD DVD to storage.cdrom and volume.disc.type per the
-	latest MMC-5 draft. See Table 87 - Profile List in
-	http://www.t10.org/drafts.htm#mmc5 . Probe-volume should do the
-	right thing, but probe-storage needs fixing (noted in FIXME
-	comment).
-
-	* doc/spec/hal-spec.xml.in: 
-
-	* hald/linux2/probing/probe-volume.c (main): 
-
-	* hald/linux2/probing/probe-storage.c (main): 
-
-2006-02-22  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Martin Pitt <martin at piware.de>.
-
-	* hald/linux2/probing/shared.h (drop_privileges): Take an
-	additional parameter "keep_auxgroups"
-
-	* hald/linux2/addons/addon-storage.c (main): Add some comment that
-	we *could* drop privileges provided we were in the right group
-
-	* hald/linux2/addons/addon-pmu.c (main): Drop privileges
-
-	* hald/linux2/addons/addon-keyboard.c (main): Pass right parameter
-	to drop_privileges
-
-	* hald/linux2/addons/addon-acpi.c (main): Drop privileges
-
-2006-02-22  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: Allow fmask and
-	dmask for vfat
-
-2006-02-22  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.h: Export prototypes for
-	libhal_volume_crypto_get_clear_volume_udi and
-	libhal_volume_crypto_get_backing_volume_udi
-
-	* libhal-storage/libhal-storage.c:
-	(libhal_volume_crypto_get_clear_volume_udi): New function
-	(libhal_volume_crypto_get_backing_volume_udi): New function
-
-	* ChangeLog: fix my commit entry for 2006-02-19 - missed changes to
-	hald/hald_runner.c
-
-2006-02-21  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Sync volume_id with udev version.
-
-2006-02-19  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald_dbus.c (hald_exec_method_free_mi): New function
-	(hald_exec_method_do_invocation): Throw the exception
-	org.freedesktop.Hal.NoSuchDevice if the device went away while we
-	were in a queue. Move freeing of the MethodInvocation structure
-	into a separate function and require callers to call this. Return
-	FALSE if the device wasn't there.
-	(hald_exec_method_enqueue): Free the method invocation
-	(hald_exec_method_process_queue): Handle when device wasn't there
-	and process the next element instead
-	(local_server_message_handler): Comment out some debug information
-
-	* hald/hald_runner.c (hald_runner_run_method): Ref the hal device
-	object as it may disappear while the method is executing
-	(call_notify): Unref the hal device object when done
-	
-2006-02-18  David Zeuthen  <davidz at redhat.com>
-
-	While surprise removal of hotpluggable fixed disks with crypted
-	volumes worked fine, it didn't work so well for crypted volumes on
-	removable media. This patch should fix it.
-
-	* hald/linux2/addons/addon-storage.c (unmount_cleartext_devices):
-	New function
-	(unmount_childs): If device is a crypto device, unmount all
-	cleartext devices and tear down the crypt link.
-
-2006-02-18  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/acpi.c (laptop_panel_refresh,
-	acpi_synthesize_hotplug_events): add handler for omnibook displays.
-
-	* tools/hal-system-lcd-get-brightness,
-	tools/hal-system-lcd-set-brightness: Add omnibook support.
-
-	* hald/linux2/acpi.c (acpi_synthesize_display): don't prepend the
-	acpi/ here as the new omnibook isn't under /proc/acpi.
-	See http://bugzilla.gnome.org/show_bug.cgi?id=331458 for details.
-
-2006-02-18  Richard Hughes <richard at hughsie.com>
-
-	* tools/Makefile.am: Move hal-system-power-pmu from bin to libexec
-	as it's only meant to be called by hal, not a user.
-
-	* tools/hal-system-lcd-get-brightness,
-	tools/hal-system-lcd-set-brightness: Change the path of 
-	hal-system-power-pmu as libexec is now in our path and we are not
-	installed in scripts anymore.
-
-	* tools/hal-system-power-suspend: Add the sleep command for
-	hal-system-power-pmu so that suspend works on ppc hardware.
-
-2006-02-18  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.c (libhal_drive_free)
-	(libhal_volume_free): Remeber to free structures; reported by
-	Brendan Creane <bcreane at yahoo.com>.
-
-2006-02-18  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald.c (drop_privileges): Don't initgroups as we don't need
-	privileges for now. Patch from Martin Pitt <martin at piware.de>.
-
-2006-02-15  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.c (libhal_volume_from_udi): Forgot
-	to set uuid, fsversion so libhal_volume_get_uuid(),
-	get_fsversion() would always return NULL.
-
-2006-02-14  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-system-storage-mount: Refuse to mount a volume if it's
-	already listed in /etc/fstab - includes checking symlinks. Patch
-	from Ludwig Nussel <ludwig.nussel at suse.de>.
-
-2006-02-14  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald_dbus.c (hald_exec_method_do_invocation)
-	(hald_exec_method_enqueue, hald_exec_method_process_queue)
-	(hald_exec_method_cb, hald_exec_method): To avoid a race of
-	several processes invoking methods at the same time we now
-	maintain a queue of method calls per-device. One very real example
-	of this is gnome-mount when setting up crypto devices; after
-	Crypto.Setup() gnome-mount waits for the cleartext block device
-	and attempts to mount it; meanwhile g-v-m sees the cleartext block
-	device too and attempts to mount too. Since mounting is a
-	relatively slow operation both methods are executed at the same
-	time and we end up with two mounts. This patch fixes this problem.
-
-2006-02-13  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-luks-teardown: Remove hal-luks-remove on
-	info.callouts.remove on successful teardown
-
-	* tools/hal-luks-setup: Throw SetupPasswordError instead of just
-	SetupError when cryptsetup is failing - used to ask for password
-	again if the one from e.g. the keyring didn't work.
-
-	* hald/hald_dbus.c (device_string_list_remove): New function
-	(hald_dbus_filter_handle_methods): Handle StringListRemove
-
-2006-02-13  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/osspec.c: (computer_probing_pcbios_helper_done):
-	fix mapping system.formfactor from smbios
-
-2006-02-13  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: Revert patch from
-	Danny that adds mounts options for ntfs
-
-	* tools/hal-system-storage-mount: Also allow comma "," as a valid
-	character in a mount point
-
-2006-02-13  Danny Kukawka  <danny.kukawka at web.de>
-
-	Fixed problems with usage of dbus_error within a for-block. Need 
-	to be sure that the error is empty and initialised for each usage. 
-	If not we get potentially error messages from dbus. :
-
-	* hald/linux2/addons/addon-acpi.c: (main_loop): 
-	* tools/lshal.c: (dump_devices):
-
-2006-02-13  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-luks-setup: Refuse to setup the device if it's already
-	setup once
-
-2006-02-13  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Don't generate tools/hal-luks-remove.in,
-	tools/hal-luks-setup.in
-
-	* fdi/policy/10osvendor/15-storage-luks.fdi: Also export Teardown
-	method
-
-	* tools/hal-luks-remove.in, tools/hal-luks-setup.in: Remove, just
-	use hardcoded paths
-
-	* tools/hal-luks-teardown: New file for tearing down the mapping
-
-	* tools/hal-luks-remove: Use cryptsetup rather than luks-setup,
-	add to CVS
-
-	* tools/hal-luks-setup: Use cryptsetup rather than luks-setup,
-	add to CVS
-
-	* tools/Makefile.am (script_SCRIPTS): Add hal-luks-teardown
-
-2006-02-12  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-volume.c (strdup_valid_utf8): Fixup
-	this function as it didn't work at all. Replace invalid characters
-	with '_' instead of '?' as the latter is not allowed as a
-	mountpoint. 
-
-2006-02-12  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-system-storage-mount: Use [:alnum:] and [:space:]
-	instead of a-zA-Z0-9 so we support mount points like "foobar der
-	æøå サイトの". Set LANG to en_US.UTF-8 to get bash to do this.
-	Also allow - in GIVEN_MOUNTOPTIONS (Reported by Jeffrey Stedfast
-	<fejj at novell.com>) in order to get iocharset= to work.
-
-	* tools/hal-system-storage-cleanup-mountpoints: Make this work for
-	mountpoints with spaces in them
-
-	* hald/linux2/blockdev.c (blockdev_refresh_mount_state): Also
-	remove info.hal_mount properties.
-	(blockdev_generate_add_hotplug_event): For Reprobe, pass the
-	model, vendor, serial and firmware rev.
-
-2006-02-12  David Zeuthen  <davidz at redhat.com>
-
-	* tools/Makefile.am (script_SCRIPTS): Add
-	tools/hal-system-storage-cleanup-mountpoint
-
-	* tools/hal-system-storage-cleanup-mountpoint: New file
-
-	* hald/linux2/blockdev.c (blockdev_refresh_mount_state)
-	(cleanup_mountpoint_cb): Clean up mount point if we can see it was
-	created by hal
-
-2006-02-12  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-system-storage-unmount: Attempt to use volume.mount_point
-	if we cannot find info.hal_mount.created_mount_point
-
-	* libhal/libhal.h: Export prototype for new function
-	libhal_ctx_get_dbus_connection()
-
-	* libhal/libhal.c (libhal_ctx_get_dbus_connection): New function
-
-	* hald/linux2/addons/addon-storage.c (force_unmount): Use a the
-	Unmount() hal method to lazy unmount
-
-	* hald/linux2/osspec.c (hald_udev_data): Ugh ugh ugh.. clear
-	buffer before receiving data from udev.. we didn't use to do this
-	and we got all sorts of weird side-effects since we'd for instance
-	pick up DEVNAME='/dev/sdb' and _then_ DEVNAME='/dev/sda1' for
-	/sys/block/sdb.. This was because this data was left in the buffer
-	from the old run. It now appears to work..
-
-	* hald/linux2/blockdev.c (force_unmount_cb): New function, pass
-	end_token to hal_util_callout_device_remove()
-	(force_unmount): Use the Unmount method call to lazy unmount, thus
-	making sure we don't block
-	(hotplug_event_begin_remove_blockdev): Pass end_token to force_unmount
-	and let that function invoke hal_util_callout_device_remove()
-
-	* hald/hald_dbus.c (hald_exec_method_cb, hald_exec_method): Make
-	this work for helpers using a direct connection to hald
-	(hald_dbus_filter_handle_methods): Pass local_interface to
-	hald_exec_method
-
-	* hald/valgrind-hald.sh, /debug-hald.sh: Update to use 'pwd' just
-	like run-hald.sh was updated
-
-2006-02-09  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-system-storage-eject: only allow the user who mounted
-	the volume to unmount it (also allow uid 0). Use properties stored
-	on hal to figure out mount location.
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: Don't advertise flush
-	as a valid option as it is not upstream (SUSE guys: you need to patch
-	hal yourself until this is in an upstream kernel version that a hal
-	release can depend on)
-
-2006-02-09  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-system-storage-mount: Allow passing file system type
-	for non-pollable drives. This is needed to mount Zip disks as
-	e.g. 'mount /dev/hdd4 /media/foo' fails but 'mount -t vfat
-	/dev/hdd4 /media/foo' works.
-
-2006-02-09  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-system-storage-unmount: Use new property on the hal
-	device object to figure out where hal mounted the device. This
-	also ensures we only unmount stuff that we mounted ourselves
-	... where we = the hal mount/unmount methods. Also only allow the
-	user who mounted the volume to unmount it (also allow uid 0).
-
-	* tools/hal-system-storage-mount: Allow mounting of drives we
-	don't poll. Export mount point and what uid mounted it as
-	properties on the hal device object
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: Fix up detection
-	of blank and audio discs for the purpose of adding Eject methods.
-	Export Mount, Unmount and Eject methods on drives we don't poll.
-	Give some leeway with what mount options we support.
-
-2006-02-09  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: Ugh, make sure to
-	launch hald-addon-storage if appropriate
-
-2006-02-09  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/blockdev.c
-	(blockdev_callouts_preprobing_storage_done): Fix lockup for ATAPI
-	Zip drives as we pass end_token to the function
-	add_blockdev_probing_helper_done() in the wrong position.
-
-2006-02-09  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-keyboard.c: Add KEY_POWER -> "power"
-
-2006-02-09  David Zeuthen  <davidz at redhat.com>
-
-	* hald-runner/runner.c (run_request_run): Print out some useful
-	debug information
-
-	* hald/linux2/addons/addon-keyboard.c (main): Don't set button.type
-	or button.has_state as these are merged from the fdi file.
-
-	* hald/run-hald.sh: Use absolute paths in HALD_RUNNER_PATH and PATH
-	cuz otherwise helpers won't get invoked...
-
-	* fdi/policy/10osvendor/Makefile.am: Add 10-keyboard-policy.fdi
-
-	* fdi/policy/10osvendor/10-keyboard-policy.fdi: Forgot to add file.
-	Also from Matthew Garrett <mjg59 at srcf.ucam.org>. Tweak file to 
-	merge button.type and button.has_state instead of setting
-
-2006-02-08  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Matthew Garrett <mjg59 at srcf.ucam.org>.
-
-	Two patches attached: 1) Changes the ACPI addon to report the type
-	of button pressed as well as the fact that a button has been
-	pressed. 2) Adds a keyboard addon. The included fdi file will bind
-	it to anything that has type input.keyboard. It adds the
-	capability "button" to the keyboard devices, and on any keypress
-	checks the key against a table. If the key is found there, a
-	ButtonPressed event is generated with the name of the key in the
-	details field (one exception - KEY_SUSPEND is given the name
-	"hibernate").
-
-	There's a couple of extra features that could be added (export a
-	list of the available keys, for instance - not very helpful on
-	PS/2, but useful on USB), but could these be applied as is for
-	now?
-
-	* hald/linux2/probing/shared.h: Move drop_privileges here so other
-	code can use it too.
-
-	* hald/linux2/addons/Makefile.am: Add build rules for
-	hald-addon-keybaord
-
-	* hald/linux2/addons/addon-acpi.c: Also send button.type as part
-	of the event
-
-	* hald/linux2/addons/addon-keyboard.c: New file. Also set
-	button.type to "" and button.has_state to FALSE
-
-2006-02-07  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-input.c (main): The attached patch
-	lets hal listen for input devices that are of type BUS_HOST. These
-	are pieces of built-in hardware, so won't be hotpluggable. Patch
-	from Matthew Garrett <mjg59 at srcf.ucam.org>.
-
-2006-02-07  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald.c (main): Hald doesn't handle the case that PATH is
-	not set (getenv returns NULL).  Fixed in attached patch. From
-	Sjoerd Simons <sjoerd at luon.net>.
-
-2006-02-04  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi: added 
-	slightly tweaked patch from fd.o bug #5652 (from Jonathan Matthew
-	<jonathan at kaolin.hn.org>)
-
-2006-02-03  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: adde allowed option
-	for ntfs filesystem (uid=,umask=,dmask=) to prevent files owned only
-	by root and also only readable by root. 
-
-2006-02-03  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi: added 
-	Samsung YP-U1 (patch from Andrew Smith <andrew.smith at neworbit.org>)
-
-2006-02-02  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/physdev.c: (pseudo_add), (pseudo_compute_udi):
-	Add "pseudo" bus to make it possible to use:
-	  modprobe scsi_debug num_tgts=5 add_host=5 num_parts=2
-
-2006-01-29  Richard Hughes <richard at hughsie.com>
-
-	* doc/spec/hal-spec.xml.in,
-	hald/linux2/acpi.c (laptop_panel_refresh),
-	hald/linux/pmu.c (laptop_panel_refresh),
-	tools/hal-system-lcd-get-brightness,
-	tools/hal-system-lcd-set-brightness:
-	Rename acpi_method to access_method and 
-	HAL_PROP_LAPTOP_PANEL_ACPI_METHOD->HAL_PROP_LAPTOP_PANEL_ACCESS_METHOD
-	for the laptop_panel device.
-	This is required as the access method can now be "pmu" which is
-	nothing to do with acpi. I'm not aware of this being used anywhere
-	outside of HAL, so we should be okay changing the key name.
-
-2006-01-29  David Zeuthen  <davidz at redhat.com>
-
-	* tools/linux/Makefile.am: Also dist 90-hal.rules
-
-2006-01-29  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/pmu.c: Add the methods laptop_panel_refresh() and
-	pmu_laptop_panel_compute_udi so we can generate a laptop_panel
-	object.
-
-	* hald/linux2/pmu.c (pmu_synthesize_hotplug_events): Tidy up the
-	hotplug code into a new function pmu_synthesize_item() that
-	synthesizes a specific PMU object.
-	Also add the laptop_panel if we have batteries (i.e. a laptop).
-
-	* tools/hal-system-power-pmu.c: This is a new source file to allow
-	us to issue ioctl's from methods invoked by HAL.
-	Its arguments are: setlcd, getlcd, backlightoff, sleep and help.
-
-	* tools/Makefile.am, tools/.cvsignore: Add the source file
-	hal-system-power-pmu to be built.
-
-	* tools/hal-system-lcd-get-brightness,
-	tools/hal-system-lcd-set-brightness: Use the new functionality
-	providied by hal-system-power-pmu for ppc and ppc64 computers.
-	Also remove the check for HAL_PROP_LINUX_ACPI_PATH as pmu does not
-	require or provide this.
-
-2006-01-29  Richard Hughes <richard at hughsie.com>
-
-	* hald-runner/runner.c (run_request_run): Use r->argv[0] rather than
-	r->argv so the cwd works.
-
-2006-01-28  Jürg Billeter  <j at bitron.ch>
-
-	* hald/linux2/classdev.c (sound_compute_udi): Remove card number from
-	alsa and oss udi as it may not be persistent across reboots.
-
-2006-01-28  David Zeuthen  <davidz at redhat.com>
-
-	* hald-runner/runner.c (run_request_run): Set working directory
-	to where the program exists.
-
-2006-01-27  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/addons/addon-storage.c: (main): Switch EjectButton
-	event detection to SG_IO interface. This should solve problems with
-	some SCSI drives and be the better interface anyway. For details see:
-		https://bugzilla.novell.com/show_bug.cgi?id=145147
-
-2006-01-26  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* tools/hal-system-storage-mount: Don't allow mountpoints to start
-	with a "." like "/media/." Thanks Coolo!
-
-2006-01-26  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: Allow data= mount
-	option for ext3 filesystems.
-	* tools/hal-system-storage-mount: Allow "." in mount point
-	directories.
-
-2006-01-24  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/osspec.c: (hald_udev_data): Increase udev event buffer
-	size, cause some MODALIAS strings are getting too large and the kernel
-	uevent buffer size is going to be increased.
-
-2006-01-24  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: For providing eject
-	on audio discs, also match on the cdrom drive instead of a cd_rom
-	disc. Also put Eject on blank discs.
-
-2006-01-23  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* tools/hal-system-storage-mount: Remove bogus "break" statement.
-
-2006-01-23  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Adopt hald-runner to usual HAL coding style.
-
-	* hald-runner/main.c: (parse_first_part), (handle_run),
-	(handle_start), (handle_kill), (filter), (main):
-	* hald-runner/runner.c: (del_run_data), (new_run_request),
-	(del_run_request), (send_reply), (remove_from_hash_table),
-	(run_exited), (run_timedout), (find_program), (run_request_run),
-	(kill_rd), (do_kill_udi), (run_kill_udi), (hash_kill_udi),
-	(run_kill_all), (run_init):
-	* hald-runner/runner.h:
-	* hald-runner/utils.c: (get_string_array),
-	(get_string_array_from_fd), (free_string_array):
-
-2006-01-23  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Remove drive_id and use the udev provided data for block device
-	serial numbers and vendor/product information.
-
-	* Makefile.am:
-	* configure.in:
-	* drive_id/Makefile.am:
-	* drive_id/ata.c:
-	* drive_id/ata.h:
-	* drive_id/drive_id.c:
-	* drive_id/drive_id.h:
-	* drive_id/logging.h:
-	* drive_id/scsi.c:
-	* drive_id/scsi.h:
-	* drive_id/util.c:
-	* drive_id/util.h:
-	* hald/linux2/blockdev.c: (add_blockdev_probing_helper_done),
-	(blockdev_callouts_preprobing_storage_done),
-	(blockdev_callouts_preprobing_volume_done),
-	(hotplug_event_begin_add_blockdev):
-	* hald/linux2/coldplug.c: (hal_util_get_udevinfo_path),
-	(hal_util_init_sysfs_to_udev_map), (coldplug_get_hotplug_event),
-	(coldplug_synthesize_events), (coldplug_synthesize_block_event),
-	(coldplug_compute_visit_device):
-	* hald/linux2/hotplug.c: (fixup_net_device_for_renaming),
-	(hotplug_event_begin_sysfs):
-	* hald/linux2/hotplug.h:
-	* hald/linux2/osspec.c: (hald_udev_data), (osspec_init):
-	* hald/linux2/probing/Makefile.am:
-	* hald/linux2/probing/probe-storage.c: (main):
-	* hald/linux2/probing/probe-volume.c: (volume_id_log),
-	(strdup_valid_utf8), (set_volume_id_values):
-	* hald/util.c: (hal_util_strdup_valid_utf8):
-	* hald/util.h:
-
-2006-01-22  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-system-storage-mount: Also remove code expecting
-	the now removed attempt at managing privileges
-
-2006-01-22  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/policy/10osvendor/Makefile.am (dist_fdi_DATA): Remove
-	10-security-policy.fdi
-
-	* fdi/policy/10osvendor/10-security-policy.fdi: Remove this file
-	as this approach to managing privileges wasn't so good after all
-	
-2006-01-21  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: Add HP_RECOVERY to
-	list of volumes to ignore
-
-2006-01-21  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Remove selinux detection as it is not used anywhere
-
-2006-01-21  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Remove options for pcmcia as we now rely on sysfs on
-	Linux	
-
-	* hald/linux2/Makefile.am (libhald_linux2_la_SOURCES): Remove
-	pcmcia_cs.h and pcmcia.utils.[ch]
-
-	* hald/linux2/pcmcia_cs.h, hald/linux2/pcmcia_utils.[ch]: Removed
-
-	* hald/linux2/physdev.c (pcmcia_add): Read properties from sysfs
-	instead of relying on e.g. /var/pcmcia/stab
-
-2006-01-21  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Remove hotplug helper and depend on udev passing events over
-	a socket.
-
-	* configure.in:
-	* hald/linux2/osspec.c: (osspec_init):
-	* tools/linux/.cvsignore:
-	* tools/linux/90-hal.rules:
-	* tools/linux/Makefile.am:
-	* tools/linux/hal_hotplug.c:
-
-2006-01-21  David Zeuthen  <davidz at redhat.com>
-
-	* hald/property.c (hal_property_to_string): Ugh, make this work on
-	empty strlists otherwise we return corrupt data and may crash the
-	runner via D-BUS since we pass non-UTF-8 over D-BUS.
-
-	* hald/hald_runner.c (hald_runner_start_runner): Print pid of runner
-	and make space for passing DBUS_VERBOSE=1 in the environment (right
-	now commented out)
-
-2006-01-21  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/policy/10osvendor/Makefile.am (dist_fdi_DATA): Rip out
-	10-storage-policy.fdi
-
-	* fdi/policy/10osvendor/10-storage-policy.fdi: Remove
-
-2006-01-21  David Zeuthen  <davidz at redhat.com>
-
-	Remove fstab-sync.
-
-	* tools/fstab-sync.c: Remove
-
-	* tools/fstab-sync.8.in: Remove
-	
-	* tools/Makefile.am: Remove fstab-sync build rules
-
-	* tools/linux/add_selinux.c: Remove
-
-	* tools/linux/Makefile.am: Remove build rules for 
-	hald-add-selinux-mount-option
-
-	* fdi/policy/10osvendor/Makefile.am: Remove fstab-sync build rules
-
-	* fdi/policy/10osvendor/90-fstab-sync.fdi: Remove
-
-	* fdi/policy/10osvendor/20-storage-add-selinux.fdi: Remove
-
-2006-01-21  David Zeuthen  <davidz at redhat.com>
-
-	* hald-runner/runner.c (find_program): Simply use glib convience
-	g_find_program_in_path() on the basename of the desired helper since
-	our allowed paths are now in $PATH
-
-	* hald-runner/main.c (main): Print out allowed paths
-
-	* hald/linux2/blockdev.c (add_blockdev_probing_helper_done): Fix up
-	indenting
-
-	* hald/hald_runner.h: Modify prototype of hald_runner_start_runner to
-	not take the path to the runner
-
-	* hald/hald_runner.c (hald_runner_start_runner): Use the flag
-	G_SPAWN_SEARCH_PATH to search for hald-runner. Export HALD_RUNNER_PATH
-	as PATH for the runner. Always include standard locations, e.g.
-	$(libexecdir) and $(datadir)/hal/scripts.
-
-	* hald/hald_dbus.c (hald_exec_method_cb): Check if there really
-	was an error
-
-	* hald/hald.c (usage): Remove usage for --with-runner
-	(main): Remove --with-runner option; just search $PATH for it
-
-	* hald/run-hald.sh, hald/debug-hald.sh, hald/valgrind-hald.sh: 
-	Set $HALD_RUNNER_PATH and modify $PATH to include local hald-runner
-
-	* tools/hal-system-storage-mount: Read and enforce security policy
-	as specified in fdi/policy/10osvendor/10-security-policy.fdi
-
-	* fdi/policy/10osvendor/Makefile.am (dist_fdi_DATA): 
-	Add 10-security-policy.fdi
-
-	* fdi/policy/10osvendor/10-security-policy.fdi: New file
-
-2006-01-21  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald_dbus.c (hald_exec_method_cb): Don't free errors as the
-	caller owns the value
-
-	* hald/hald_runner.c (call_notify): Don't copy value on error
-
-2006-01-21  David Zeuthen  <davidz at redhat.com>
-
-	* hald-runner/runner.c: Search $PATH before searching allowed dirs;
-	this is needed to make e.g. run-hald.sh work - note that passing
-	"/bin/sh /path/to/evil/program" will _not_ work as we don't do
-	shell-ish stuff. Also, don't force working dir to be "/" for
-	same reasons.	
-
-	* hald/property.h: Export hal_property_strlist_clear
-
-	* hald/property.c (hal_property_strlist_clear): New function
-
-	* hald/hald_runner.c (hald_runner_start_runner): Pass $PATH to runner
-	(call_notify): Copy value on error as e.g. hald_exec_method_cb frees it
-
-	* hald/hald_dbus.c (hald_exec_method_cb): Fix up indenting
-
-	* hald/device_info.c (handle_clear): New function
-	(start): Check for new fdi tag "clear"
-
-	* hald/device.h: Export hal_device_property_strlist_clear
-
-	* hald/device.c (hal_device_property_strlist_clear): New function
-
-2006-01-20  David Zeuthen  <davidz at redhat.com>
-
-	* doc/spec/hal-spec.xml.in: Add docs for volume.disc.capacity
-
-2006-01-20  William Jon McCann  <mccann at jhu.edu>
-
-	* hald/linux2/probing/probe-volume.c (main):
-	* hald/linux2/probing/linux_dvd_rw_utils.c (get_disc_capacity_cd)
-	(get_disc_capacity_cdr, get_disc_capacity_dvdr_from_type)
-	(get_disc_capacity_for_type): Add probing for disc capacity.
-
-	Fixes fd.o bug #2233
-
-2006-01-20  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald_dbus.c (device_query_capability): Yesterday while unit
-	testing my HAL wrapper I noticed that calling QueryCapability make
-	hald to quit. I looked at hald code and found the issues, you'll
-	find a patch attached that makes QueryCapability to work correctly
-	again. Basically it wasn't able to retrieve the capability
-	list (string vs string list) and the requested capability was
-	free'd when it shouldn't. Patch from Kevin Ottens <ervin at kde.org>.
-
-2006-01-20  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: Add Eject method
-	for audio CD's. Patch from John Palmieri <johnp at redhat.com>.
-
-2006-01-20  David Zeuthen  <davidz at redhat.com>
-
-	Great patch from Sjoerd Simons <sjoerd at luon.net>: As most people
-	probably know by now, various people don't really like that hal
-	running as root. We'd much rather see only a small process running
-	as root and the main hal process running unpriviledged. Which is
-	exactly what this patch does :)
-
-	How does it work? Just before drops it's root privs. a small
-	program is startup which will remain running as root and does the
-	real execution of the addons/probes/callouts on hals
-	behalf. Communication between hald and hald-runner is done via a
-	p2p dbus connection. Resulting in a process tree like this:
-
-	  hal       /usr/sbin/hald
-	  root      \_ /usr/lib/hal/hald-runner
-	  root          \_ /usr/lib/hal/hald-addon-acpi
-	  root          \_ /usr/lib/hal/hald-addon-storage
-	  root          \_ /usr/lib/hal/hald-addon-storage
-
-	The patch consists out of two parts. First the implementation of
-	hald-runner, which is about 700 lines of code. And then a part
-	transforming the hald code from the current spawning code in utils
-	to an interface that can talk to the runner.
-
-	* AUTHORS: Add Sjoerd Simons <sjoerd at luon.net>. Revise my own
-	email address.
-
-	* configure.in (AC_OUTPUT): Add hald-runner
-
-	* Makefile.am (SUBDIRS): Add hald-runner
-
-	* hald/Makefile.am (hald_SOURCES): add hald_runner.[ch]
-
-	* hald-runner/utils.c, hald-runner/utils.h, hald-runner/runner.c,
-	hald-runner/runner.h, hald-runner/main.c, hald-runner/Makefile.am,
-	hald/linux2/osspec.c, hald/linux2/classdev.c,
-	hald/linux2/blockdev.c, hald/util.[ch], hald/hald_dbus.c,
-	hald/hald.c, hald/hald_runner.[ch]: New and changed files with
-	slight changes. See the descriptive text above and discussion at
-	http://lists.freedesktop.org/archives/hal/2006-January/004327.html
-	for details. 
-	Changed function hald_runner_start_runner() in hald/hald_runner.c
-	to print out runner path and improve error handling when runner
-	is not found. Also removed dbus_server_unref (server) in 
-	handle_connection() in same file.
-
-	* hald/haldaemon.in: Remove --retain-privileges as this is no longer
-	needed
-
-	* hald/run-hald.sh, hald/debug-hald.sh, hald/valgrind-hald.sh:
-	Remove --retain-privileges and use --with-runner pointing to
-	../hald-runner/hald-runner
-
-2006-01-20  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi:
-	* tools/hal-system-storage-mount: kill subfs
-
-2006-01-20  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: Add "flush"
-	as a valid option for FAT.
-
-2006-01-20  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/device_info.c: (resolve_udiprop_path), (handle_match):
-	* hald/linux2/blockdev.c: (hotplug_event_begin_add_blockdev):
-	* hald/linux2/physdev.c: (scsi_add): Add scsi.type, scsi.vendor,
-	scsi.model for the scsi device and merge these properties to the
-	storage device instead of using the "device" link in sysfs.
-
-2006-01-18  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-pmu.c (main): Use a direct connection to
-	the bus; sleep between writing and reading as otherwise we may get
-	EAGAIN. Handle EAGAIN by just trying again later.
-
-2006-01-17  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Post-release version bump to 0.5.7
-
-	* tools/hal-system-storage-eject: Ugh, fix speling error UnknowFailure
-	to UnknownFailure in exception
-
-====== HAL 0.5.6 released ======
-
-2006-01-16  David Zeuthen  <davidz at redhat.com>
-
-	* NEWS: Update for 0.5.6
-
-2006-01-16  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/probing/probe-storage.c: (main): relaced usage of
-	strtok with g_strsplit_set.
-
-2006-01-16  Danny Kukawka  <danny.kukawka at web.de>
-
-	* tools/hal-system-power-hibernate, tools/hal-system-power-suspend:
-	Changed call of powersave fom call binary to call powersave dbus 
-	interface to be able to differ between root and normal user (patch
-	from Holger Macht <hmacht at suse.de>) if HAL run as root.
-
-2006-01-16  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/hal-spec.xml.in: added storage.cdrom.write_speeds to spec 
-
-	* hald/linux2/probing/probe-storage.c, 
-	hald/linux2/probing/linux_dvd_rw_utils.h, 
-	hald/linux2/probing/linux_dvd_rw_utils.c: (int_compare),
-	(get_write_speeds), (get_read_write_speed): added slightly adopted patch
-	from Ryan Lortie <desrt at desrt.ca> (changed from comma-separated string 
-	to strlist) to add list of write speeds supported by a CD/DVD Burner.
-
-2006-01-15  David Zeuthen  <davidz at redhat.com>
-
-	* doc/spec/hal-spec.xml.in: Add docs for volume.ignore
-
-2006-01-15  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-system-storage-mount: Respect volume.ignore and refuse to
-	mount if set to TRUE
-
-	* libhal-storage/libhal-storage.h: Export libhal_volume_should_ignore
-	as a public method (API addition, no breakage)
-
-	* libhal-storage/libhal-storage.c (libhal_volume_should_ignore): New
-	function.
-	(libhal_volume_from_udi): Set vol->ignore_volume from property
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: Introduce volume.ignore
-	as a way for vendors and admins to signify a volume should be ignored.
-
-	* fdi/information/10freedesktop/10-usb-card-readers.fdi: Add an entry
-	for my Firewire card reader (yes, it works perfectly on my PB 12" G4
-	running Fedora Rawhide - it's fast too.. vroom vroom). 
-
-2006-01-15  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.c (libhal_volume_from_udi): Auch,
-	volume.fsusage may be an empty string and our string extraction
-	macro then yields NULL. Hence vol->fsusage is never set and just
-	left as a 0 from the memset meaning _USAGE_MOUNTABLE_FILESYSTEM.
-	Thus, gnome-vfs thinks the volume is mountable and displays it.
-	Fix this by initializing vol->fsuage to _USAGE_UNKNOWN.
-
-2006-01-13  Danny Kukawka  <danny.kukawka at web.de>
-
-	Fixed fd.o bug #5137 with slightly adopted and split off patch 
-	from James Henstridge <james at jamesh.id.au>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi: added 
-	Sony PSP to usb music players.
-
-	* fdi/policy/10osvendor/10-storage-policy.fdi: added 
-	desired_mount_point for Sony PSP.
-
-
-2006-01-13  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi:
-	revert my patch from 2005-08-31 and added property info.category 
-	back
-
-	* fdi/policy/10osvendor/10-storage-policy.fdi: added by John (J5) 
-	Palmieri proposed fix and changed match from info.category to
-	info.capabilities. 
-
-2006-01-13  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/classdev.c: (usbraw_compute_udi), (video4linux_add),
-	(video4linux_compute_udi), (dvb_add), (dvb_compute_udi): Add device
-	objects for video and dvb devices, to have a way for applications to
-	find the associated device nodes. Meaningful properties need to be
-	added by someone who knows about this device class.
-
-	* tools/device-manager/Representation.py: Add match to show icon
-	in hal-device-manager.
-
-2006-01-13  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/classdev.c: (usbraw_add), (usbraw_compute_udi): Add
-	"usbraw" device object, that contains the name of the device node
-	to catch for libusb access.
-
-2006-01-13  Danny Kukawka  <danny.kukawka at web.de>
-
-	* configure.in: added uk.po to configure
-
-2006-01-12  Danny Kukawka  <danny.kukawka at web.de>
-
-	Fixed compiler warnings if compile with flag warn_unused_result.
-	
-	* hald/device_info.c: (process_fdi_file):
-	* hald/hald.c: (handle_sigterm), (main), (osspec_probe_done):
-	* hald/hald_dbus.c: (hald_exec_method):
-	* hald/linux2/osspec.c: (set_suspend_hibernate_keys):
-	* hald/linux2/probing/probe-smbios.c: (main):
-	* tools/linux/hal_hotplug.c: (main):
-
-2006-01-11  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Don't trust any user input, replace all suspicious chars with '_'.
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: add
-	volume.unmount.valid_options
-	* tools/hal-system-storage-eject:
-	* tools/hal-system-storage-mount:
-	* tools/hal-system-storage-unmount: allow "lazy" to be passed
-
-2006-01-11  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-hid-ups.c: Also add battery.reporting.*
-	properties
-
-2006-01-10  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-system-storage-mount: Fix a potential security hole where
-	the user could pass e.g. umask=`/bin/evil` and thus execute /bin/evil
-	with root priviliges. Also require /bin/bash instead of just /bin/sh.
-	Reported by Kay Sievers <kay.sievers at vrfy.org>.
-
-2006-01-08  Richard Hughes <richard at hughsie.com>
-
-	* hal.conf.in: Add a fallback for the root user for distros that do
-	not have working at_console support. Also refactor these a little to
-	make updating easier, and to stop the multiple matches overhead.
-	We use user="0" because some paranoid system administrators rename 
-	the user for uid 0 and make a dummy user named root.
-
-2006-01-09  Danny Kukawka  <danny.kukawka at web.de>
-
-	* libhal-storage/libhal-storage.c: (libhal_drive_find_all_volumes):
-	added slightly adopted patch from Chris Spiegel <l at happyjack.org> 
-	to fix fd.o bug #5279 (added NULL termination of array).
-
-2006-01-09  Danny Kukawka  <danny.kukawka at web.de>
-
-	* tools/lshal.c: (dump_children): removed unneeded code, (main):
-	added more informative error message if connection to hald fails.
-
-2006-01-08  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi: Populate the new
-	property volume.mount.valid_options
-
-	* tools/hal-system-storage-mount: Don't add any options at all (we
-	used to add e.g. quiet,shortname=winnt,uid=$UID for vfat and others)
-	as this is now the responsibility of the client (e.g. gnome-mount).
-
-	Use the white-list from the new property volume.mount.valid_options
-	and perform special handling for the entry "uid=".
-
-	* tools/hal-system-storage-eject: Also attempt to remove directory
-	on eject
-
-2006-01-04  Aaron Bockover  <aaron at aaronbock.net>
-
-	* hald/hald_dbus.c (hald_exec_method): move uid_export to root scope
-	in function to avoid corruption
-
-	* tools/hal-system-storage-mount: remove .created-by-hal before
-	removing mount directory in case where mount fails
-
-2006-01-06  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/hal-spec.xml.in: fixed type of volume.policy.mount_option
-	from string to bool as in the code/existing fdi-files.
-
-2006-01-06  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-cd-dvd-burner.fdi:
-	Added missdetected TEAC CD-R55S to list of broken CD/DVD burner,
-	from: http://lists.freedesktop.org/archives/hal/2005-November/003925.html
-
-2006-01-06  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/hal-spec.xml.in: fixed two voltage related properties
-	in the spec
-
-	* hald/linux2/acpi.c: (battery_refresh_poll): added already in the
-	spec defined and in the code removed (but never set) property key 
-	for battery.charge_level.capacity_state
-
-2006-01-06  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/blockdev.c: (hotplug_event_begin_add_blockdev):
-	Set 'storage.drive_type' to 'disk' for new TYPE_RBC devices 
-	(e.g. FireWire Disks) from kernel >= 2.6.14
-
-2006-01-06  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Add "at_console" restrictions for storage methods.
-
-	* hal.conf.in:
-
-2006-01-05  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Add scsi_generic devices.
-
-	* hald/linux2/classdev.c: (scsi_generic_add),
-	(scsi_generic_compute_udi):
-
-2005-12-21  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Move callout one level up.
-
-	* tools/Makefile.am:
-	* tools/callouts/hal-system-storage-cleanup-mountpoints:
-	* tools/hal-system-storage-cleanup-mountpoints:
-
-2005-12-20  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Remove HAL created mountpoints on HAL startup.
-
-	* fdi/policy/10osvendor/20-storage-methods.fdi:
-	* tools/Makefile.am:
-	* tools/callouts/hal-system-storage-cleanup-mountpoints:
-
-2005-12-20  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Switch extended attributes use to .created-by-hal file to
-	mark created mountpoints for removal on unmount.
-	* tools/hal-system-storage-mount:
-	* tools/hal-system-storage-unmount:
-
-2005-12-18  Danny Kukawka  <danny.kukawka at web.de>
-
-	* tools/Makefile.am: added simple check of scripts for correct bash 
-	syntax to 'make distcheck'
-
-2005-12-17  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Detailed return values from method invocations.
-	* tools/hal-system-storage-eject:
-	* tools/hal-system-storage-mount:
-	* tools/hal-system-storage-unmount:
-
-2005-12-14  David Zeuthen  <david at fubar.dk>
-
-	Remove the dry-run boolean option. Need a better way to figure out
-	what mount options are available.
-
-	* tools/hal-system-storage-mount : 
-	* fdi/policy/10osvendor/20-storage-methods.fdi: 
-
-2005-12-13  David Zeuthen  <david at fubar.dk>
-
-	Add a boolean parameter to Mount for dry-run.
-
-	* tools/hal-system-storage-mount : 
-	* fdi/policy/10osvendor/20-storage-methods.fdi: 
-
-2005-12-14  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Add HAL_METHOD_INVOKED_BY_UID to the method call environment 
-	and use it to mount FAT, NTFS and hfs volumes to make them available
-	to the user who invoked the method.
-	* hald/hald_dbus.c: (hald_exec_method):
-	* tools/hal-system-storage-mount:
-
-2005-12-13  Danny Kukawka  <danny.kukawka at web.de>
-
-	* tools/hal-system-power-reboot,
-	tools/hal-system-power-shutdown: Fixed broken scripts and changed 
-	error messages.
-
-2005-12-12  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/Makefile.am,
-	  fdi/policy/10osvendor/Makefile.am,
-	  fdi/preprobe/10osvendor/Makefile.am: fixed validate fdi files for
-	correct XML in target check to fix broken 'make distcheck'
-
-2005-12-12  Richard Hughes <richard at hughsie.com>
-
-	* tools/hal-system-power-shutdown, tools/hal-system-power-reboot,
-	tools/Makefile.am: As discussed, add the Shutdown() and Reboot()
-	methods so that different distros can add the particular command
-	in one central place, rather than in lots of patches to other programs.
-
-	* fdi/policy/10osvendor/10-power-mgmt-policy.fdi:
-	Add Shutdown() and Reboot() methods to HAL.
-
-2005-12-12  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* tools/hal-system-storage-mount: Fix fallback to default mount
-	point which failed if the volume label was not valid.
-
-2005-12-12  David Zeuthen  <david at fubar.dk>
-
-	Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>.
-
-	* fdi/fdi.dtd: I tried to validate fdi files using fdi.dtd and got
-	a whole lot of errors. Looks like DTD is out of date. This patch
-	updates the DTD and adds fdi validation to 'make check'. I'm not
-	an XML expert, please review carefully.
-
-	* fdi/preprobe/10osvendor/Makefile.am,
-	fdi/policy/10osvendor/Makefile.am,
-	fdi/information/10freedesktop/Makefile.am: Add xmllint to the
-	check target
-
-2005-12-11  Ryan Lortie  <desrt at desrt.ca>
-
-	* hald/linux2/acpi.c (battery_refresh_poll):  Force 'rate' to be zero
-	in the case that the battery is neither charging nor discharging.
-	This workaround is required for some buggy ACPI implementations.
-
-2005-12-09  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/classdev.c: (hotplug_event_begin_add_classdev): Update
-	the driver property if we add a class device. A module load or manual
-	driver bind did not update "info.linux.driver" of the parent device
-	and NetworkManager depends on that property.
-
-2005-12-09  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Add methods to storage objects to request:
-	  Mount(string:mountpointname string:fstype stringlist:mountoptions)
-	  Unmount()
-	  Eject()
-
-	* fdi/policy/10osvendor/Makefile.am:
-	* fdi/policy/10osvendor/20-storage-methods.fdi:
-	* tools/Makefile.am:
-	* tools/hal-system-storage-eject:
-	* tools/hal-system-storage-mount:
-	* tools/hal-system-storage-unmount:
-
-2005-12-08  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/hald_dbus.c: (hald_exec_method):
-	Correct error path.
-
-2005-12-08  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/hald_dbus.c: (hald_exec_method): Allow stringlists
-	to be passed to method calls. Signature "sas" will expect:
-	Method(string: array:string:abc,xyz)
-
-2005-12-08  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Kernel 2.6.15 will have a poll()'able /proc/mounts file, which
-	tells us about mount tree changes. Kernel 2.6.16 will no longer
-	have any netlink event regarding block devices mount/claim.
-	We watch only /proc/mounts from now, remove all netlink listening
-	and depend on kernel version 2.6.15.
-
-	With every mount event, we update all known devices now, to the
-	current state found in /proc/mounts. The device name in /proc/mounts
-	is ignored, but the dev_t of the underlying block device is
-	looked up to find the hal device. That way, /dev/root and rootdev
-	will also be recognized and the current mount state becomes visible.
-
-	* hald/linux2/blockdev.c: (blockdev_refresh_mount_state),
-	(add_blockdev_probing_helper_done):
-	* hald/linux2/blockdev.h:
-	* hald/linux2/classdev.c:
-	* hald/linux2/osspec.c: (hald_helper_data),
-	(mount_tree_changed_event), (osspec_init):
-
-2005-12-05  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/osspec.c (set_suspend_hibernate_keys):
-	Software Suspend 2 enabled kernels don't have "disk" in
-	/sys/power/state, but still they can still hibernate.
-	Some older versions have a /proc/software_suspend config directory
-	but new versions switched to the /proc/suspend2 config directory.
-	Add the detection for these to set the correct value for the 
-	power_management.can_hibernate key.
-
-2005-12-02  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/acpi.c, hald/linux2/apm.c, hald/linux2/pmu.c:
-	Now we have can_suspend and can_hibernate we should remove the
-	power_management.is_enabled key as .type and .can_* convey the
-	information better.
-
-2005-12-02  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/osspec.c, doc/spec/hal-spec.xml.in:
-	Add the new keys power_management.can_suspend and 
-	power_management.can_hibernate using a new function
-	set_suspend_hibernate_keys ().
-	Also document these, as well as power_management.type in the 
-	xml specification.
-
-2005-12-01  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/acpi.c: Small patch to fix a problem with refreshing
-	battery values. When the ac_adapter is removed, the 
-	battery_poll_infrequently() method is called which updates last_full.
-	The other states the battery may be in are also going to change at that
-	instance (for example going from charged to discharging) and so we
-	should be updating those too.
-
-2005-11-29  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/policy/10osvendor/10-storage-policy.fdi: changed
-	mount point for dvd recorder.
-
-2005-11-29  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/Makefile.am, hald/hald.c: (main): Added PATH to the with
-	hal distributed scripts to the hald environment PATH.
-
-	* tools/Makefile.am: moved scripts to $(datadir)/hal/scripts to
-	remove them from PATH of the root user, because they should only
-	be called by hald and not by a user (at least because of 
-	missing environment variable , normaly set by hald)
-
-2005-11-29  Danny Kukawka  <danny.kukawka at web.de>
-
-	* tools/hal-luks-remove.in, tools/hal-luks-setup.in,
-	  tools/hal-system-lcd-get-brightness, 
-	  tools/hal-system-lcd-set-brightness, 
-	  tools/hal-system-power-set-power-save, 
-	  tools/hal-system-power-suspend: Added checks for needed 
-	environment variables to prevent call them from commandline if a
-	variable is missing. Fixed error messages. 
-
-2005-11-29  Danny Kukawka  <danny.kukawka at web.de>
-
-	* tools/device-manager/Makefile.am: removed hal-device-manager from
-	 $(datadir)/hal/device-manager to prevent unneeded double install.
-
-2005-11-29  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/util.c: (util_compute_time_remaining): added calculated 
-	chargeRate to hash table and use if nothing changed between events
-	to prevent remove battery.remaining_time.
-
-2005-11-28  Richard Hughes <richard at hughsie.com>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi:
-	Add a patch from Davide Ferrari <vide80 at gmail.com> which adds the
-	Samsung Yepp YP-ST5. It is a portable device capable of playing
-	MPEG1/2/2.5 Layer3, WMA, ASF and Ogg/Vorbis.
-
-2005-11-21  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-card-readers.fdi: Added 
-	Sony Ericsson mobile phones with Memory Stick (Pro Duo). 
-	Remove unneeded multiple checks for storage.bus == usb.
-
-2005-11-21  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/hal-spec.html: generated for 0.5.5.1 spec
-
-	* tools/device-manager/Makefile.am: fix for make distcheck
-
-2005-11-21  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* volume_id/fat.c: (volume_id_probe_vfat): fix recognition of weird
-	FAT volumes.
-	* volume_id/volume_id.h: Version 55
-
-2005-11-21  Richard Hughes <richard at hughsie.com>
-
-	* fdi/information/10freedesktop/10-usb-card-readers.fdi:
-	Add patch from Pozsar Balazs to match another common theme for
-	USB card readers.
-
-2005-11-15  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/osspec.c: (hald_udev_data), (hald_helper_data),
-	(osspec_init): Listen to socket: /org/freedesktop/hal/udev_event
-	Udev will pass all data over this socket to HAL, if the following
-	rule is given:
-	  RUN+="socket:/org/freedesktop/hal/udev_event"
-
-	The HAL hotplug helper /usr/sbin/hal.hotplug is no longer needed
-	and should be replaced by the direct udev connection which will
-	no longer fork a process for every event.
-
-	This is the preparation to reuse the persistent data udev collects
-	from the hardware, instead of querying it a second time with HAL.
-	If we reach this, drive_id/* and the hotplug helper will be removed
-	from HAL.
-
-2005-11-15  Kay Sievers  <kay.sievers at vrfy.org>
-
-	libvolume_id: sync with udev version and prepare
-	for a possible future external dependency.
-
-	* hald/linux2/probing/probe-volume.c: (advanced_disc_detect): Switch
-	to glib function instead of the volume_id private ones.
-
-	* volume_id/Makefile.am: Merge individual headers into the main
-	public header.
-	* volume_id/cramfs.c:
-	* volume_id/cramfs.h:
-	* volume_id/ext.c:
-	* volume_id/ext.h:
-	* volume_id/fat.c:
-	* volume_id/fat.h:
-	* volume_id/hfs.c:
-	* volume_id/hfs.h:
-	* volume_id/highpoint.c:
-	* volume_id/highpoint.h:
-	* volume_id/hpfs.c:
-	* volume_id/hpfs.h:
-	* volume_id/iso9660.c:
-	* volume_id/iso9660.h:
-	* volume_id/isw_raid.c:
-	* volume_id/isw_raid.h:
-	* volume_id/jfs.c:
-	* volume_id/jfs.h:
-	* volume_id/linux_raid.c:
-	* volume_id/linux_raid.h:
-	* volume_id/linux_swap.c:
-	* volume_id/linux_swap.h:
-	* volume_id/lsi_raid.c:
-	* volume_id/lsi_raid.h:
-	* volume_id/luks.c:
-	* volume_id/luks.h:
-	* volume_id/lvm.c:
-	* volume_id/lvm.h:
-	* volume_id/mac.c:
-	* volume_id/mac.h:
-	* volume_id/minix.c:
-	* volume_id/minix.h:
-	* volume_id/msdos.c:
-	* volume_id/msdos.h:
-	* volume_id/ntfs.c:
-	* volume_id/ntfs.h:
-	* volume_id/nvidia_raid.c:
-	* volume_id/nvidia_raid.h:
-	* volume_id/ocfs.c:
-	* volume_id/ocfs.h:
-	* volume_id/promise_raid.c:
-	* volume_id/promise_raid.h:
-	* volume_id/reiserfs.c:
-	* volume_id/reiserfs.h:
-	* volume_id/romfs.c:
-	* volume_id/romfs.h:
-	* volume_id/silicon_raid.c:
-	* volume_id/silicon_raid.h:
-	* volume_id/sysv.c:
-	* volume_id/sysv.h:
-	* volume_id/udf.c:
-	* volume_id/udf.h:
-	* volume_id/ufs.c:
-	* volume_id/ufs.h:
-	* volume_id/util.h:
-	* volume_id/via_raid.c:
-	* volume_id/via_raid.h:
-	* volume_id/volume_id.c:
-	* volume_id/volume_id.h:
-	* volume_id/vxfs.c:
-	* volume_id/vxfs.h:
-	* volume_id/xfs.c:
-	* volume_id/xfs.h:
-
-2005-11-14  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Bump version to 0.5.6
-
-2005-11-14  David Zeuthen  <davidz at redhat.com>
-
-	* NEWS: Update for 0.5.5.1
-
-	* configure.in: Update to 0.5.5.1
-
-2005-11-14  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/util.c: (util_compute_time_remaining): fixed multiple 'devision
-	by zero' bugs which could happen, if calculate the 'remaining time'  
-	based on time and nothing is changed on battery. 
-
-2005-11-14  David Zeuthen  <davidz at redhat.com>
-
-	* NEWS: Update for 0.5.5
-
-	* configure.in: Update to 0.5.5
-
-2005-11-10  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/probing/Makefile.am: updated for glib 
-
-	* hald/linux2/probing/probe-storage.c: (strdup_valid_utf8), (main):
-	Fix to prevent sending invalid UTF8 strings from storage serials to D-BUS
-	which prevent adding the whole storage divice to the device store. The 
-	invalid, non UTF8, characters replaced now with '?' and the serial only 
-	added if there is at least one valid character left in the string. 
-
-	* hald/util.c: (util_compute_time_remaining): fixed compiler warning
-
-2005-11-09  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/addons/addon-acpi.c: (acpi_get_event_fp_kernel),
-	(acpi_get_event_fp_acpid), (main): fix problems with addon if acpid socket
-	is not available if HAL starts. In this case retry to connect until we get 
-	the socket. Also added the proc kernel eventinterface to the loop to prevent
-	problems on resume from suspend. This should prevent restart the whole HAL
-	if lost acpid or proc event source.
-
-	* tools/lshal.c: (dump_devices), (usage), (main): added new option -s|--short
-	for short output, changed short option for show to -u, added new status line 
-	to --monitor mode, allowed combine --monitor with --long|short|tree, added 
-	restrict check for incorrect command options (e.g. 'lshal --'), set --long
-	as default if called lshal without option.
-
-2005-11-09  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/hal-spec.xml.in: added battery.remaining_time.calculate_per_time
-
-	* hald/linux2/acpi.c: (battery_refresh_poll): added check for new property
-	battery.remaining_time.calculate_per_time for util_compute_time_remaining()
-
-	* hald/linux2/pmu.c: (battery_refresh): added check for new property
-	battery.remaining_time.calculate_per_time for util_compute_time_remaining()
-
-	* hald/util.c (util_compute_time_remaining), hald/util.h: added slightly 
-	adopted and extended patch from Søren Hansen <sh at linux2go.dk> to fix 
-	calculation for machines which does not report current rate. This calculate 
-	the chargRate from time and chargeLevel.
-	Added a new parameter to enable/disable the new calculation.  
-
-2005-11-09  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-cd-dvd-burner.fdi, 
-	  fdi/information/10freedesktop/Makefile.am: added new fdi-file to fix  
-	wrong detected capabilities for burn CD/DVD on some devices (fd.o bug #3036). 
-
-2005-11-09  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/osspec.c: (netlink_detection_data_ready): fixed compiler 
-	warning
-
-	* hald/linux2/probing/probe-volume.c: (main): fixed compiler warning
-
-	* tools/device-manager/hal-device-manager.in: fixed bug from last fix, 
-	removed '+' from inserted lines.
-
-2005-11-08  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/coldplug.c: (coldplug_synthesize_events): fixed typo from 
-	fd.o bug #2115
-	
-	* doc/spec/hal-spec.xml.in: fixed fd.o bug #4644 and fixed typo in spec
-
-	* tools/device-manager/DeviceManager.py,
-	  tools/device-manager/hal-device-manager.glade: slightly adopted fix from
-	fd.o bug #3954 from Benjamin Berg <benjamin at sipsolutions.net> to make
-	all fields in hal-device-manager selectable to copy the content
-
-	* tools/device-manager/hal-device-manager.in: fixed fd.o bug #2121 with 
-	patch from #4266 (Young-Ho, Cha, <ganadist at chollian.net>) to enable 
-	translation for hal-device-manager
-	
-	* tools/hal_set_property.c: (usage): fixed fd.o bug #2850, removed option
-	from the help text.
-
-2005-11-08  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/apm.c: (battery_refresh): fixed fd.o-Bug #4871 with slightly
-	adopted patch from Shun-ichi Tahara <jado at flowernet.gr.jp> 
-
-2005-11-07  Richard Hughes <richard at hughsie.com>
-
-	* tools/lshal.c: Commit a rewrite of lshal by 
-	Pierre Ossman <drzeus at drzeus.cx>. Minor updates by me to make all
-	program output go to stdout rather than stderr, and to not dump devices
-	if we have specified we want to monitor.
-
-2005-11-03  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/hal-spec.xml.in: updated net and net.80203 namespace
-
-2005-11-03  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/probing/probe-volume.c: (main): Comment out multisession
-	query to determine the starting block of an optical media. It fails on
-	some drives with broken firmware.
-
-2005-11-02  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/hal-spec.xml.in: updated spec for serial and system namespace
-	and little updates for different properties
-
-2005-11-02  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/osspec.c: (computer_probing_pcbios_helper_done): changed
-	compute system.product to prevent adding "Not Specified" from 
-	smbios.system.version to the property.
-
-	* hald/util.c: fixed code documentation
-
-2005-11-02  David Zeuthen  <david at fubar.dk>
-
-	* COPYING: Update to Academic Free License 2.1. Also fix all C source
-	and header files.
-
-2005-11-02  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/hal-spec.xml.in: fixed some bugs in the xml spec code and removed
-	<note> tag to prevent not included pic in the html version.
-
-2005-11-02  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/coldplug.c: (coldplug_synthesize_events): Prepare for 2.6.15.
-	Check if we find a symlink instead of a class device pointing to a device
-	below a class device. This kernel sysfs layout will change again in the future,
-	for now resolve the link to the "real" device path, like real hotplug events
-	devpath would have.
-
-2005-11-01  Danny Kukawka  <danny.kukawka at web.de>
-
-	* libhal-storage/libhal-storage.c: fixed code documentation to remove
-	warnings from doxygen
-
-2005-11-01  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/conf/Makefile.am: added new fdi-files to Makefile
-
-	* doc/conf/match-USB-camera.fdi, doc/conf/match-USB-mp3-player.fdi, 
-	  doc/conf/match-cardreader.fdi: added and updated fdi-files from 
-	older HAL version to fix rebuild hal spec from distributed package
-
-	* doc/spec/hal-spec.xml.in: fixed problem with rebuild spec from the
-	distributed package and missing included fdi-files.
-
-2005-11-01  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/hal-spec.xml.in: added strlist property and updated part
-	about fdi-files depending on the current sourcecode
-
-2005-11-01  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/hal-arch.dia, doc/spec/hal-arch.png: updated picture for
-	callout description
-
-	* doc/spec/hal-spec.xml.in: Updated section about callouts to current
-	HAL version	
-
-2005-11-01  Richard Hughes <richard at hughsie.com>
-
-	* fdi/information/10freedesktop/10-usb-card-readers.fdi:
-	Add yet another common naming theme for a generic card reader, 
-	apparently with a Realtek chip. Vendor ID = 0xbda, Device ID = 0x103
-	Patch from Jerome Lodewyck <lodewyck at clipper.ens.fr>, many thanks.
-
-2005-10-31  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/osspec.c (netlink_detection_data_ready): Look at all
-	netlink messages, not just the first one. 
-	Patch from Jon Nettleton <jon.nettleton at gmail.com>.
-
-2005-10-26  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/hald.c: (usage), (main): added --version command line option
-	to print the PACKAGE_VERSION of HAL.
-
-2005-10-26  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/blockdev.c: (update_mount_point): Added, to workaround 
-	kernel problem with announce mounted device in /proc/mounts before 
-	send netlink event (currently reported for gentoo kernel, see: 
-	http://lists.freedesktop.org/archives/hal/2005-October/003634.html),
-	one retry after 0.3 seconds to check /proc/mounts. 
-	This is specially for voluntary preemption kernel.
-
-2005-10-26  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/hald.c: (usage), (main); hald/hald.h : Added new command 
-	line option '--use-syslog' to write debug messages to syslog 
-	instead of stderr. With this option HAL writes debug messages also 
-	if run as daemon. 
-	Removed useless call of logger_init (). Moved first debug message 
-	to reduce unneeded double check of opt_become_daemon.
-
-	* hald/logger.c: (logger_enable_syslog), (logger_disable_syslog),
-	(logger_emit); hald/logger.h: Added write to syslog instead of
-	stderr. Remove empty and useless function logger_init ().
-
-2005-10-26  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/addons/addon-storage.c: (main): Emit "EjectPressed" event
-	for an optical drive, when it has a media inserted and the tray button is
-	pressed.
-
-2005-10-25  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/acpi.c: (acpi_synthesize): Check if there is a battery
-	bay and/or a LID button to verify if the machine is a latop. If so 
-	change the key system.formfactor to 'laptop' (to workaround missing/
-	unknown information from smbios).
-	Fixed typo in code documentation.
-
-	* hald/linux2/apm.c: (battery_refresh),
-	(apm_synthesize_hotplug_events), (apm_generic_compute_udi): Fixed keys
-	if the battery is removed. Changed check for battery and added more 
-	criterions to be sure that we add only known values. Also fixed the 
-	udi of APM devices, now the udi contains the name of the devicetype. 
-
-	* hald/linux2/osspec.c: (computer_probing_pcbios_helper_done):
-	Fixed creation of key system.formfactor from smbios information to be
-	sure never overwrite already set key (e.g. from APM/ACPI/PMU).
-
-2005-10-25  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/linux2/ids.c: updated list of PNP IDs and added some comments.
-
-2005-10-24  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* volume_id/vxfs.c: (volume_id_probe_vxfs):
-	* volume_id/vxfs.h: Add missing files from volume_id 52.
-
-2005-10-24  Danny Kukawka  <danny.kukawka at web.de>
-
-	* configure.in: added info about libusb support for addon-usb-csr
-	to display whether the addon is compiled or not.
-
-2005-10-23  Kay Sievers  <kay.sievers at vrfy.org>
-
-	volume_id version 52:
-
-	* volume_id/Makefile.am: add ocfs1 and vxfs
-
-	* volume_id/ext.c: (volume_id_probe_ext): Check for
-	valid block size, cause the signature is only 2 bytes long.
-	Also detect ext3 external journals and fsversion for ext fs's.
-
-	* volume_id/fat.c: (volume_id_probe_vfat): Detect invalid
-	formatted FAT32 volumes. mkdosfs can create fs layouts which
-	no sane formatting program would do.
-
-	* volume_id/ocfs.c: (volume_id_probe_ocfs1),
-	(volume_id_probe_ocfs2): Add ocfs1 and correct wrong probing
-	for ocfs2.
-
-	* volume_id/reiserfs.c: (volume_id_probe_reiserfs): Match
-	fs names with the kernel module names.
-
-	* volume_id/util.c: (volume_id_get_buffer): Use ssize to
-	catch returned error.
-
-	* volume_id/volume_id.c: (volume_id_probe_all): Probe for
-	ocfs1 and vxfs.
-
-	* volume_id/volume_id.h: Version 52.
-
-2005-10-21  Danny Kukawka  <danny.kukawka at web.de>
-
-	* fdi/preprobe/10osvendor/10-ide-drives.fdi: removed no longer
-	needed blacklist entry for 'HL-DT-STCD-RW/DVD-ROM GCC-4240N'.
-	This work fine at least with kernel 2.6.13 (tested with SUSE).
-
-2005-10-21  Danny Kukawka  <danny.kukawka at web.de>
-
-	* hald/util.c: (callout_failed): This patch fix possible segfault if
-	the callout of a non-existing addon from key info.addons fails.
-
-2005-10-21  Danny Kukawka  <danny.kukawka at web.de>
-
-	* configure.in: added Hellenic translation to ALL_LINGUAS 
-
-2005-10-15  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/acpi.c: Whitespace cleanups and doxygen markup
-	additions. No code changes.
-
-2005-10-11  Ryan Lortie  <desrt at desrt.ca>
-
-	* hald/linux2/addons/addon-acpi.c: Cleanup existing code to avoid
-	  reinventing the fgets() wheel.  Also deal gracefully with acpid
-	  restarts (we used to exit in this case).
-
-2005-10-10  Richard Hughes <richard at hughsie.com>
-
-	* tools/fstab-sync.c: Add a patch by Pascal Terjan 
-	<pterjan at mandriva.com> to fix fstab parsing:
-	According to fstab manpage, fields 5 and 6 are optional (and 
-	treated as 0 if they are not present).
-	However, if you have a fstab with one (or both) field missing and
-	some whitespaces at the end of the line, fstab-sync will fail to
-	parse the file.
-	The patch has been in Mandrake Cooker since September, 6 with no
-	ill effects.
-
-2005-10-10  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/probing/probe-smbios.c: the smbios prober now works with
-	the new version of dmidecode (found in latest Ubuntu and Fedora Core 
-	Rawhide) that has a different output than the older format.
-	I've also cleaned up the file substantially.
-
-2005-09-28  Richard Hughes <richard at hughsie.com>
-
-	* tools/hal-system-power-hibernate, 
-	tools/hal-system-power-set-power-save,
-	tools/hal-system-power-suspend: Use sensible fallbacks as discussed:
-	http://article.gmane.org/gmane.comp.freedesktop.hal/3239
-
-2005-09-28  Richard Hughes <richard at hughsie.com>
-
-	* doc/spec/hal-spec.xml.in: Apply patch from 
-	Pierre Ossman <drzeus-list at drzeus.cx> to add documentation for the
-	new mmc.* properties and the platform.* descriptions for 
-	"platform bus" support.
-
-	* hald/linux2/probing/probe-serial.c: New file to probe serial ports
-	to see if they actually exist. Drivers such as 8250 are considered
-	legacy and very enumeration-unfriendly, and just create up to 32
-	devices that don't actually exist.
-	Patch from Pierre Ossman <drzeus-list at drzeus.cx>
-
-	* hald/linux2/probing/Makefile.am: Add the probe-serial prober.
-
-	* hald/linux2/probing/.cvsignore: Add hald-probe-serial.
-
-	* hald/linux2/blockdev.c (hotplug_event_begin_add_blockdev): There was
-	some debate about the interpretation of the kernel's removable
-	attribute. The result is that removable means that the device stays
-	but the media disappears. Because of this MMC needs to set the
-	hotpluggable attribute to be handled correctly.
-	Patch from Pierre Ossman <drzeus-list at drzeus.cx>
-
-	* hald/linux2/physdev.c (platform_add): New function, to add support
-	to devices connected to the platform bus.
-	These kind of devices are commonly, incorrectly, called legacy devices.
-	Patch from Pierre Ossman <drzeus-list at drzeus.cx>
-
-	* hald/linux2/blockdev.c (hotplug_event_begin_add_blockdev): 
-	Properly enumerate a flopy drive connected to the platform bus.
-	Patch from Pierre Ossman <drzeus-list at drzeus.cx>
-
-2005-09-27  Richard Hughes <richard at hughsie.com>
-
-	* Apply patch from Martin Pitt <martin at piware.de> to fix the build on
-	AMD64 by replacing kernel-style datatypes (like _u8 and __s16) with
-	their appropriate standard datatype (uint8_t and int16_t).
-	Also change to use <stdint.h> instead of <sys/types.h> for maximum 
-	portability.
-
-	* agents/linux26/sysfs/hal_monitor.c:
-	* agents/linux26/sysfs/libsysfs/libsysfs.h:
-	* configure.in:
-	* drive_id/ata.c:
-	* drive_id/drive_id.c:
-	* drive_id/scsi.c:
-	* drive_id/util.c:
-	* hald/hald.c:
-	* hald/hald_dbus.c:
-	* hald/hald_test.c:
-	* hald/hald_test_libhal.c:
-	* hald/linux2/addons/addon-acpi.c:
-	* hald/linux2/addons/addon-hid-ups.c:
-	* hald/linux2/addons/addon-pmu.c:
-	* hald/linux2/addons/addon-storage.c:
-	* hald/linux2/blockdev.c:
-	* hald/linux2/classdev.c:
-	* hald/linux2/coldplug.c:
-	* hald/linux2/hotplug.c:
-	* hald/linux2/ids.c:
-	* hald/linux2/osspec.c:
-	* hald/linux2/pcmcia_cs.h:
-	* hald/linux2/pcmcia_utils.h:
-	* hald/linux2/physdev.c:
-	* hald/linux2/probing/linux_dvd_rw_utils.c:
-	* hald/linux2/probing/probe-hiddev.c:
-	* hald/linux2/probing/probe-input.c:
-	* hald/linux2/probing/probe-pc-floppy.c:
-	* hald/linux2/probing/probe-printer.c:
-	* hald/linux2/probing/probe-smbios.c:
-	* hald/linux2/probing/probe-storage.c:
-	* hald/linux2/probing/probe-volume.c:
-	* hald/util.c:
-	* tools/fstab-sync.c:
-	* tools/linux/add_selinux.c:
-	* tools/linux/hal_hotplug.c:
-	* volume_id/mac.c:
-	* volume_id/ocfs2.c:
-	* volume_id/reiserfs.c:
-	* volume_id/sysv.c:
-
-2005-09-26  Richard Hughes <richard at hughsie.com>
-
-	* tools/hal-system-lcd-{get|set}-brightness: use the raw values in the
-	SetBrightness and GetBrightness methods, as some laptops have an odd
-	number of steps that cannot be easily expressed in percent.
-
-2005-09-20  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/pmu.c (pmu_synthesize_hotplug_events): Set the key
-	system.formfactor to "laptop" if we have a battery bay.
-
-2005-09-13  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-system-power-hibernate: Actually make this script work
-
-2005-09-12  Richard Hughes <richard at hughsie.com>
-
-	* tools/hal-system-power-hibernate: Add suspend2 functionality for
-	mandrake, gentoo, slackware and debian, but don't add for redhat, 
-	fedora, suse or altlinux as they have alternative distro tools to do
-	this. I have not done this for all distros as suspend2 is not upstream
-	and some users may not want to use suspend2 functionality.
-
-2005-09-12  Ryan Lortie  <desrt at desrt.ca>
-
-	* hald/linux2/acpi.c: Some more workarounds for buggy ACPI
-	  implementations.  Clamp current capacity to never exceed last full
-	  capacity (to prevent >100% readings).  Make sure the voltage that we
-	  use to calculate current and last full capacity never exceeds design
-	  voltage.  Add a check to battery_refresh to ensure design voltage is
-	  not unknown (and use 1mV if it is).  Variable rename to indicate
-	  that the quantities that we're dealing with are arbitrary
-	  'normalised' units that might not be mWh (often µWh).
-
-2005-09-03  Richard Hughes <richard at hughsie.com>
-
-	* tools/hal-system-lcd-set-brightness,
-	tools/hal-system-lcd-get-brightness: New files needed for the
-	SetBrightness and GetBrightness support.
-
-	* tools/Makefile.am: Add hal-system-lcd-set-brightness and
-	hal-system-lcd-get-brightness.
-
-	* fdi/policy/10osvendor/10-laptop-panel-mgmt-policy.fdi: New file, add
-	the SetBrightness and GetBrightness methods to the LaptopPanel object.
-
-	To test, use:
-	dbus-send --system --print-reply --dest=org.freedesktop.Hal \
-	/org/freedesktop/Hal/devices/acpi_toshiba \
-	org.freedesktop.Hal.Device.LaptopPanel.SetBrightness \
-	int32:20
-
-	dbus-send --system --print-reply --dest=org.freedesktop.Hal \
-	/org/freedesktop/Hal/devices/acpi_toshiba \
-	org.freedesktop.Hal.Device.LaptopPanel.GetBrightness
-
-	* hal.conf.in: Set so that org.freedesktop.Hal.Device.LaptopPanel can
-	only be accessed from just the console user. This is tested to work.
-
-	* hald/linux2/acpi.c (acpi_synthesize_item): New function, factor the 
-	code out from acpi_synthesize.
-
-	* hald/linux2/acpi.c (acpi_synthesize_hotplug_events, 
-	laptop_panel_refresh): Add detection for the module toshiba, asus,
-	ibm, sony and panasonic, and add the laptop_panel for these ACPI 
-	extensions.
-
-	* doc/spec/hal-spec.xml.in: Document laptop_panel.num_levels and 
-	laptop_panel.acpi_method.
-
-	* doc/TODO: Add the note about dbus return types for scripts.
-
-2005-09-01  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald_dbus.c (hald_exec_method_cb): Fix up a bug where the
-	script for a method call returns garbage and we pass that to
-	dbus_message_new_error which then fails.
-
-2005-09-01  Danny Kukawka <danny.kukawka at web.de>
-
-	* fdi/policy/10osvendor/Makefile.am: Added 15-storage-luks.fdi to
-	Makefile. 
-
-2005-08-31  Danny Kukawka <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi:
-	Removed merge of not useful key info.category=portable_audio_player.
-	This merge breakes the storage policy and prevent mount of USB storage
-	players. See bug: https://bugzilla.novell.com/show_bug.cgi?id=113966
-
-2005-08-31  Richard Hughes <richard at hughsie.com>
-
-	* configure.in: Display in summery if we are building in acpid support.
-
-2005-08-30  David Zeuthen  <davidz at redhat.com>
-
-	* doc/spec/hal-spec.xml.in: s/mediumstate/medium_state/. Yes, I'll
-	learn to type someday. Patch from Cornelia Huck <cohuck at de.ibm.com>.
-
-2005-08-29  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/physdev.c (ccwgroup_add_lcs_properties): The
-	following fix is needed to get a correct ccwgroup.lcs.portnumber
-	property, since the underlying portno sysfs attribute is decimal,
-	not binary. Patch from Cornelia Huck <cohuck at de.ibm.com>.
-
-2005-08-26  David Zeuthen  <davidz at redhat.com>
-
-	* NEWS: Update for release 0.5.4
-
-2005-08-26  David Zeuthen  <davidz at redhat.com>
-
-	* Makefile.am: Add mkinstalldirs to EXTRA_DIST for now
-
-	* tools/Makefile.am (EXTRA_DIST): Also dist $(sbin_SCRIPTS)
-
-2005-08-26  Danny Kukawka <danny.kukawka at web.de>
-
-	* configure.in: added sl_SI to ALL_LINGUAS 
-
-	* hald/util.c: (hal_util_helper_invoke_with_pipes),
-	(callout_failed): Added Patch from Kay Sievers <kay.sievers at vrfy.org>
-	With This patch HAL skips failing callouts in the execution list 
-	instead of waiting in the mainloop to be killed.
-
-2005-08-25  Danny Kukawka <danny.kukawka at web.de>
-
-	* hald/linux2/probing/probe-volume.c: (set_volume_id_values):
-	Fixed to prevent set a empty info.product from the patch before.
-
-2005-08-25  Danny Kukawka <danny.kukawka at web.de>
-
-	* hald/linux2/probing/Makefile.am: Added glib to Makefile.
-	* hald/linux2/probing/probe-volume.c: (strdup_valid_utf8),
-	(set_volume_id_values): Fix to prevent sending invalid UTF8 
-	strings from volumelabels to D-BUS. The invalid, non UTF8, 
-	characters replaced now with '?'. 
-
-2005-08-25  Danny Kukawka <danny.kukawka at web.de>
-
-	* configure.in: Added Polish po file.
-
-2005-08-24  Danny Kukawka <danny.kukawka at web.de>
-
-	* hald/linux2/acpi.c: (battery_refresh): Little string fix from
-	"Unknown ACPI Unit" to "unknown" for simpler checks.
-
-2005-08-24  Danny Kukawka <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-pda.fdi: Updated fdi file
-	for Sony Clie SJ-22, Palm m130, Palm Tungsten T5 and Handspring
-	Visor. Removed merge of info.product to serial device for Palm 
-	devices since the strings from the device are more informatively.
-
-2005-08-23  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Fix sloppy error handling in volume_id.
-
-	* volume_id/util.c: (volume_id_get_buffer):
-	* volume_id/volume_id.c: (volume_id_probe_all):
-	* volume_id/volume_id.h:
-
-2005-08-23  Danny Kukawka <danny.kukawka at web.de>  
-
-	* doc/spec/hal-spec.xml.in: Updated spec for new keys from the
-	VCD/SVCD/VideoDVD patch.
-
-	* hald/linux2/probing/probe-volume.c: (advanced_disc_detect),
-	(main): Added revised patch from Kevin Ottens <ervin at kde.org> to
-	detect VCD/SVCD/VideoDVD.
-
-2005-08-23  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-input.c (main): Proper debug output
-	for input class probe helper. Patch from Pierre Ossman
-	<drzeus at drzeus.cx>.
-
-2005-08-23  David Zeuthen  <davidz at redhat.com>
-
-	* libhal/Makefile.am, configure.in: Since gcc 3.4.4, 4.0.1 and
-	4.1.0, some gcov symbols have been declared hidden, resulting in a
-	link error when trying to link hald-probe-*. The problem is that
-	libhal.so hasn't been linked with libgcov. Patch from Cornelia
-	Huck <cohuck at de.ibm.com>.
-
-2005-08-23  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Added Basque (eu) to ALL_LINGUAS
-
-2005-08-23  Danny Kukawka <danny.kukawka at web.de>
-
-	* hald/linux2/probing/probe-input.c: (check_abs): Fixed detection of
-	input capability for joysticks (input.joystick).
-
-2005-08-23  Danny Kukawka <danny.kukawka at web.de>
-
-	* configure.in: Added Korean translation file to configure.
-
-2005-08-22  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Cornelia Huck <cohuck at de.ibm.com> to change timeout from
-	25 seconds to 250 seconds as a temporary workaround.
-
-	* hald/hald.c (parent_wait_for_child): I'm running into some
-	problems when trying to start the HAL daemon on large
-	installations (like a S/390 LPAR with several thousands of
-	devices). Device detection may take quite some time, more than the
-	25 seconds specified as a timeout value for select() in
-	hald/hald.c, and as a result, the daemon will abort.	
-
-2005-08-22  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/acpi.c (battery_refresh, battery_refresh_poll): 
-	Fix up the typos where we were not setting battery.charge_level.unit.
-	Also fix the segfault reported by Martin Pitt where HAL would segfault
-	where reporting_unit was NULL. I've protected the strcmp, and have
-	changed the code to assume mWh so that the users of these BIOS's get
-	some values set.
-	I've changed battery_refresh_poll to use this scheme too, as users of
-	broken BIOS's would currently get no updates (as it was handled with 
-	"goto out") and with this they will.
-
-	* hald/linux2/acpi.c (battery_refresh_poll): Fix the bug reported by 
-	Paolo Borelli [http://bugzilla.gnome.org/show_bug.cgi?id=314182]
-	by checking the battery.voltage.current, and if not valid, using
-	battery.voltage.design, and if that's not valid, using 1 as a fallback.
-	
-
-2005-08-22  Richard Hughes <richard at hughsie.com>
-
-	* hald/util.c (util_compute_time_remaining, 
-	util_compute_percentage_charge): Add some more checks for broken BIOS's
-	and add some more comments.
-
-2005-08-22  Danny Kukawka <danny.kukawka at web.de>
-
-	* hald/linux2/classdev.c: (net_add): Fix for more informative 
-	info.product names for WLAN to differ between LAN and WLAN interfaces.
-
-2005-08-22  Danny Kukawka <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-pda.fdi: Added for all Palm 
-	PDAs, not handled by special matches, also port 0 as hotsync port to be 
-	sure that there is at least one correct port.
-
-2005-08-21  David Zeuthen  <davidz at redhat.com>
-
-	As of Linux 2.6.14, the kernel will export a mmc_host class for
-	MMC- devices. This patch teaches hal about this. Patch from Pierre
-	Ossman <drzeus-list at drzeus.cx>.
-
-	* hald/linux2/classdev.c (mmc_host_add): New function
-	(mmc_host_compute_udi): New function
-
-2005-08-21  Danny Kukawka <danny.kukawka at web.de>
-
-	* packaging/suse/hal.spec: Added rpm spec-file for SUSE/openSUSE.
-
-2005-08-21  Danny Kukawka <danny.kukawka at web.de>
-
-	* hald/util.c: (util_compute_percentage_charge): Fix to return 100 for 
-	computed percentage values > 100% instead of -1. This can happen on
-	ACPI systems wich reports temporarily a higher 'remaining capacity' 
-	then the 'last full capacity'.
-
-2005-08-20  Danny Kukawka <danny.kukawka at web.de>
-
-	* configure.in: Fix to get all current available translations.
-
-2005-08-19  Richard Hughes <richard at hughsie.com>
-
-	* hald/linux2/acpi.c (battery_refresh_poll): Remove checks for negative
-	times and percentages.
-	Also remove key if invalid data is returned.
-
-	* hald/util.c (util_compute_time_remaining, 
-	util_compute_percentage_charge): Add checks for negative times and 
-	percentages - this lets up remove lots of checks for each subsystem.
-	The keys will only be populated when the data is valid, as discussed:
-	http://article.gmane.org/gmane.comp.freedesktop.hal/2944
-
-	* hald/linux2/apm.c (battery_refresh): Add calculation of 
-	the key "battery.charge_level.percentage" so that it matches acpi.
-	Also remove key if invalid data is returned.
-
-	* hald/linux2/pmu.c (battery_refresh): Make the calculation and logic of
-	remaining_percentage and remaining_time match that of acpi and apm.
-	Also remove key if invalid data is returned.
-
-	* doc/spec/hal-spec.xml.in: Add description of the key
-	battery.charge_level.percentage and explain why it's sometimes missing.
-	Also modified description of battery.remaining_time explaining the
-	different meanings while charging and discharging.
-
-2005-08-19  Danny Kukawka <danny.kukawka at web.de>
-
-	* tools/hal-system-power-hibernate, 
-	  tools/hal-system-power-set-power-save, 
-	  tools/hal-system-power-suspend: Add dectection of ALTLinux, SUSE, 
-	Mandrake, Slackware, Debian and Gentoo and add support for powersave 
-	for SUSE and ALTLinux (powersave will be included to next release ALT 
-	Linux 3.0) to the scripts.
-
-2005-08-18  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi: From my
-	point of view all of these devices should have the capability
-	'portable_audio_player'. Those who are a disk drive with the extra
-	feature of playing stuff should probably keep 'storage' as
-	category. The rest should have 'portable_audio_player'. Patch from
-	Pierre Ossman <drzeus-list at drzeus.cx>.
-
-2005-08-18  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi: Add
-	identification for Rio Forge music player. Patch from Pierre
-	Ossman <drzeus-list at drzeus.cx>.
-
-2005-08-18  Danny Kukawka <danny.kukawka at web.de>
-
-	* fdi/information/10freedesktop/10-usb-pda.fdi: fixed merge
-	pda.*.hotsync_interface to copy correct property ('serial.device'
-	instead of nonexistent 'serial_device')
-
-2005-08-16  David Zeuthen  <davidz at redhat.com>
-
-	First stab at system power management... Need to put this in the
-	hal spec too..
-
-	* hal.conf.in: Add security policy for Device.SystemPowerManagement
-	and Device.Volume.Crypto interfaces - only allow the console user to
-	invoke methods on these interfaces
-
-	* fdi/policy/10osvendor/10-power-mgmt-policy.fdi: Add methods
-	Suspend(int secondsBeforeWakeup), Hibernate() and
-	SetPowerSave(bool shouldSavePower) to the
-	org.freedesktop.Hal.Device.SystemPowerManagement interface
-
-	* tools/Makefile.am (sbin_SCRIPTS): Add hal-system-power-*
-
-	* tools/hal-system-power-hibernate: New file
-
-	* tools/hal-system-power-suspend: New file
-
-	* tools/hal-system-power-set-power-save: New file
-
-2005-08-14  Richard Hughes <richard at hughsie.com>
-
-	* .cvsignore, tools/.cvsignore: adds a few generated files to .cvsignore
-
-	* hald/solaris/.cvsignore: New file, copy from hald/linux2/
-
-2005-08-13  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Add missing files.
-
-	* volume_id/ocfs2.c: (volume_id_probe_ocfs2):
-	* volume_id/ocfs2.h:
-
-2005-08-13  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Sync up volume_id with the udev version.
-
-	* drive_id/drive_id.c: (drive_id_open_dev_t):
-	* volume_id/Makefile.am:
-	* volume_id/cramfs.c: (volume_id_probe_cramfs):
-	* volume_id/cramfs.h:
-	* volume_id/dasd.c:
-	* volume_id/dasd.h:
-	* volume_id/ext.c: (volume_id_probe_ext):
-	* volume_id/ext.h:
-	* volume_id/fat.c: (get_attr_volume_id), (volume_id_probe_vfat):
-	* volume_id/fat.h:
-	* volume_id/hfs.c: (volume_id_probe_hfs_hfsplus):
-	* volume_id/hfs.h:
-	* volume_id/highpoint.c: (volume_id_probe_highpoint_37x_raid),
-	(volume_id_probe_highpoint_45x_raid):
-	* volume_id/highpoint.h:
-	* volume_id/hpfs.c: (volume_id_probe_hpfs):
-	* volume_id/hpfs.h:
-	* volume_id/iso9660.c: (volume_id_probe_iso9660):
-	* volume_id/iso9660.h:
-	* volume_id/isw_raid.c: (volume_id_probe_intel_software_raid):
-	* volume_id/isw_raid.h:
-	* volume_id/jfs.c: (volume_id_probe_jfs):
-	* volume_id/jfs.h:
-	* volume_id/linux_raid.c: (volume_id_probe_linux_raid):
-	* volume_id/linux_raid.h:
-	* volume_id/linux_swap.c: (volume_id_probe_linux_swap):
-	* volume_id/linux_swap.h:
-	* volume_id/lsi_raid.c: (volume_id_probe_lsi_mega_raid):
-	* volume_id/lsi_raid.h:
-	* volume_id/luks.c: (volume_id_probe_luks):
-	* volume_id/luks.h:
-	* volume_id/lvm.c: (volume_id_probe_lvm1), (volume_id_probe_lvm2):
-	* volume_id/lvm.h:
-	* volume_id/mac.c: (volume_id_probe_mac_partition_map):
-	* volume_id/mac.h:
-	* volume_id/minix.c: (volume_id_probe_minix):
-	* volume_id/minix.h:
-	* volume_id/msdos.c: (volume_id_probe_msdos_part_table):
-	* volume_id/msdos.h:
-	* volume_id/ntfs.c: (volume_id_probe_ntfs):
-	* volume_id/ntfs.h:
-	* volume_id/nvidia_raid.c: (volume_id_probe_nvidia_raid):
-	* volume_id/nvidia_raid.h:
-	* volume_id/promise_raid.c: (volume_id_probe_promise_fasttrack_raid):
-	* volume_id/promise_raid.h:
-	* volume_id/reiserfs.c: (volume_id_probe_reiserfs):
-	* volume_id/reiserfs.h:
-	* volume_id/romfs.c: (volume_id_probe_romfs):
-	* volume_id/romfs.h:
-	* volume_id/silicon_raid.c: (volume_id_probe_silicon_medley_raid):
-	* volume_id/silicon_raid.h:
-	* volume_id/sysv.c: (volume_id_probe_sysv):
-	* volume_id/sysv.h:
-	* volume_id/udf.c: (volume_id_probe_udf):
-	* volume_id/udf.h:
-	* volume_id/ufs.c: (volume_id_probe_ufs):
-	* volume_id/ufs.h:
-	* volume_id/util.c: (volume_id_set_unicode16),
-	(volume_id_set_label_raw),
-	(volume_id_set_label_string), (volume_id_set_label_unicode16),
-	(volume_id_set_uuid), (volume_id_get_buffer):
-	* volume_id/util.h:
-	* volume_id/via_raid.c: (volume_id_probe_via_raid):
-	* volume_id/via_raid.h:
-	* volume_id/volume_id.c: (volume_id_probe_all),
-	(volume_id_open_dev_t):
-	* volume_id/volume_id.h:
-	* volume_id/xfs.c: (volume_id_probe_xfs):
-	* volume_id/xfs.h:
-
-2005-08-11  Danny Kukawka <danny.kukawka at web.de>
-
-	* hald/linux2/acpi.c, hald/linux2/addons/addon-acpi.c
-	hald/linux2/addons/addon-pmu.c, hald/linux2/addons/addon-storage.c,
-	hald/linux2/pmu.c: (battery_refresh): Fixed several compiler warnings 
-	and removed unused variables.
-
-2005-08-11  Danny Kukawka <danny.kukawka at web.de>
-
-	* hald/linux2/acpi.c: (battery_refresh_poll): Fixed several battery keys 
-	to be sure that hal not provides battery key with not up-to-date values,
-	if the battery is full charged. Now we set all values which are in  
-	/proc/acpi/battery/*/{info,state} already 'unknown' (e.g. 'present rate')
-	to 0.
-
-2005-08-11  Danny Kukawka <danny.kukawka at web.de>
-
-	* hald/linux2/acpi.c: (battery_refresh_poll): Check now if computed 
-	remaining percentage and remaining time values are valid. Now we only 
-	add positive values.
-
-	* hald/util.c: (util_compute_percentage_charge),
-	(util_compute_time_remaining): Return -1 instead of 0 if an error occurs 
-	to differentiate between an error and an empty battery. Return now -1 if 
-	parameter chargeRate, chargeLevel or chargeLastFull are negative. Removed
-	unneeded warning.
-
-2005-08-11  Danny Kukawka <danny.kukawka at web.de>
-
-	* hald/linux2/acpi.c: (battery_refresh): remove also 
-	battery.charge_level.rate, battery.reporting.unit and 
-	battery.remaining_time if the battery is removed. 
-
-2005-08-11  Danny Kukawka <danny.kukawka at web.de>
-
-	* hald/linux2/acpi.c: (battery_refresh_poll): Normalise 
-	battery.reporting.last_full with voltage_current instead of 
-	voltage_design because battery.charge_level.last_full is a changing and 
-	not a static value like voltage_design, which is a "marketing assurance".  
-
-2005-08-11  Danny Kukawka <danny.kukawka at web.de>
-
-	* hald/linux2/acpi.c (acpi_poll_battery), (acpi_poll_acadap), 
-	(acpi_poll): Splitted acpi_poll() into acpi_poll_battery() and 
-	acpi_poll_acadapt(). 
-	(battery_refresh):battery.present is now read 
-	from /proc/acpi/battery/*/state instead of reading the information 
-	from /proc/acpi/battery/*/info since reading from the info proc entry 
-	takes very long on several systems. If a ACPI battery event occurs, 
-	we now also gather the information for ac_adapter.present. This helps 
-	to detect the AC online/offline state for machine which do not trigger 
-	an ACPI event for AC online/offline but still report battery events 
-	by an issuing ACPI event.
-	(ac_adapter_refresh_poll), (battery_refresh_poll), 
-	(battery_poll_infrequently), (ac_adapter_refresh), 
-	(acpi_synthesize_hotplug_events): Status for battery.reporting.last_full 
-	is now read by battery_poll_infrequently ().  This saves several 
-	open/read calls to /proc/acpi/battery/*/{info,state} and enables 
-	reuse of the information gathered (makes reopening of the {info,state} 
-	proc entries unnecessary). battery_poll_infrequently () is invoked:
-	every 60 minutes and once a AC adapter ACPI event occurs. This prevents
-	open/read calls to /proc/acpi/battery/*/info more often then intended.
-
-2005-08-10  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.c (libhal_volume_from_udi): Actually
-	export the right volume.fsusage
-
-2005-08-10  Danny Kukawka <danny.kukawka at web.de>
-
-	* hald/linux2/blockdev.c: (blockdev_compute_udi): fix compute of 
-	volume_label_* UDIs.
-
-2005-08-09  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/physdev.c (ccw_add_tape_properties):
-	tape.ccw.mediumstate should be ccw.tape.mediumstate, fix the typo.
-	Patch from Cornelia Huck <cohuck at de.ibm.com>.
-
-2005-08-06  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* configure.in:
-	* hald/linux2/addons/addon-acpi.c: (main):
-	Make the possible ACPI event sources configurable, cause binding
-	the exclusive kernel socket instead of the proposed acpid socket
-	may cause trouble.
-
-2005-08-05  Danny Kukawka  <danny.kukawka at web.de>
-
-	* doc/spec/hal-spec.xml.in: Added new namespace for OSS devices
-	and updated ALSA namespace for new devices.
-
-	* hald/linux2/classdev.c, hald/linux2/classdev.h (sound_add), 
-	(sound_compute_udi): Added OSS devices and ALSA/OSS global devices. 
-	OSS devices are only added if the kernel supports device links to the 
-	related physical device. Adapted sound_compute_udi() to generate
-	UDIs for the new devices. For the required kernel patch (going  
-	upstream soon) see: 
-	http://thread.gmane.org/gmane.comp.freedesktop.hal/2862
-
-2005-08-02  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/acpi.c (acpi_poll): Fix a memory leak here
-
-2005-08-02  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Richard Hughes <hughsient at gmail.com>.
-
-	* hald/linux2/acpi.c (ac_adapter_refresh_poll): New function, just
-	set the present key. This is quicker than setting the capability
-	and category on every forced refresh.
-	(ac_adapter_refresh): Use ac_adapter_refresh_poll and while we are
-	here, add device_property_atomic_update_begin and
-	device_property_atomic_update_end to make atomic.
-	(acpi_poll): Add the ac_adapter updates to make sure we get the
-	value of ac_adapter correct at least on every 30 second forced
-	refresh. This fixes really broken ACPI BIOS's that don't emit acad
-	or batt events.
-
-2005-08-01  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/acpi.c (acpi_poll): Only poll if the battery is actually
-	present. Patch from Danny Kukawka <danny.kukawka at web.de>.
-	(battery_refresh_poll): Be a little bit more
-	careful and don't segfault if battery.reporting_unit doesn't exist
-
-2005-08-01  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Danny Kukawka <danny.kukawka at web.de>.
-
-	* libhal/libhal.c, hald/linux2/ids.c: This is a patch to fix usage
-	of #NULL within the doxygen code documentation (replaced through 
-	'NULL' since '#NULL' generates a warning).
-
-2005-08-01  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Richard Hughes <hughsient at gmail.com>. Reported by Ryan
-	Lortie <desrt at desrt.ca>.
-	
-	* hald/linux2/acpi.c (battery_refresh_poll, battery_refresh):
-	convert the current values from mAh to mWh (some laptops report in
-	other than mWh) by multiplying by the current voltage. This gives
-	us "energy" units that are not dependent on the current voltage of
-	the battery. This fixes the
-	bug (http://bugzilla.gnome.org/show_bug.cgi?id=309944) where the
-	remaining time was being worked out with incorrect logic. The
-	util_compute_time_remaining and util_compute_percentage_charge
-	functions now take the sanitised values too. This patch introduces
-	the new keys battery.reporting.* representing the raw values from
-	ACPI. This will not change API for existing programs (as the old
-	charge_level keys are just re-used for the sanitised values). A
-	battery.charge_level.design key of "Unknown ACPI Unit" represents
-	an unknown unit that may have to be calculated like mAh.
-
-	* doc/spec/hal-spec.xml.in: Update spec with new keys
-
-2005-07-31  David Zeuthen  <davidz at redhat.com>
-
-	* hald/device_store.c (hal_device_store_add): this is a patch to
-	prevent adding a device with invalid UDI (doesn't start with
-	"/org/freedesktop/Hal/devices/") to the 'global device
-	list'. Without this patch it's possible to add a device with
-	invalid UDI. If so, you can't see the device e.g. via lshal and
-	get always a dbus error. Original patch from Danny Kukawka
-	<danny.kukawka at web.de>; slightly tweaked.
-
-2005-07-29  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-hid-ups.c: This one for UPS's (which
-	are always measured in percent, so no division needed). I think
-	that's all of the capability battery devices now. All I have to do
-	is wait for the next release of HAL, and i can depend on that new
-	version (but I'm guessing it'll be a long wait :-). Patch from
-	Richard Hughes <richard at hughsie.com>.
-
-2005-07-29  David Zeuthen  <davidz at redhat.com>
-
-	The FSF moved to a new address, so I updated all license headers
-	and the COPYING file. Patch from Danny Kukawka <danny.kukawka at web.de>.
-
-2005-07-29  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Richard Hughes <richard at hughsie.com>.
-
-	* hald/linux2/addons/addon-usb-csr.c: Change default polling to 30
-	seconds as mice discharge *very* slowly and do not need to be polled
-	once every 10 seconds.
-	Add to addon-usb-csr the key battery.charge_level.percentage so we can
-	provide a better interface to programs that use this data.
-	Also reformat this file so that it matches the rest of the HAL source
-	in style, and get rid of the spaces-for-tabs.
-
-2005-07-29  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Danny Kukawka <danny.kukawka at web.de>.
-
-	* libhal-storage/libhal-storage.c,
-	tools/device-manager/hal-device-manager.glade, tools/fstab-sync.c:
-	this is a patch to fix typos of translatable strings. New
-	translation files will follow due to end of August.
-	
-2005-07-29  David Zeuthen  <davidz at redhat.com>
-	
-	Patch from Richard Hughes <richard at hughsie.com>.
-
-	* hald/linux2/pmu.c (battery_refresh): Call
-	util_compute_percentage_charge so we can populate
-	battery.charge_level.percentage.
-
-2005-07-27  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Richard Hughes <richard at hughsie.com>.
-	
-	* hald/util.c (util_compute_percentage_charge): New function used
-	to calculate the percentage charge, initially for ACPI batteries,
-	but could be used by all devices as contains lots of error checks.
-
-	* hald/linux2/acpi.c (battery_refresh_poll): Call
-	util_compute_percentage_charge so we can populate
-	battery.charge_level.percentage
-
-2005-07-27  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/blockdev.c: This is a patch to compute 'nicer' UDIs,
-	/org/freedesktop/Hal/devices/volume_empty_%disc.type, for emtpy
-	CD/DVD volumes/discs. Patch from Danny Kukawka
-	<danny.kukawka at web.de>.
-
-2005-07-27  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal-luks-remove.in: Unmount the cleartext volume, if mounted,
-	before tearing down the dm-crypt mapping
-
-	* hald/linux2/blockdev.c (hotplug_event_begin_remove_blockdev):
-	Actually read the is_partition from the device since e.g.
-	/sys/block/dm-0 probably is a partition
-
-2005-07-26  W. Michael Petullo  <mike at flyn.org>
-
-	* tools/hal_set_property.c: Add --strlist-pre, --strlist-post
-	and --strlist-rem options to hal-set-property
-
-	* tools/hal-luks-setup.in: Use --strlist-pre to add hal-luks-remove to
-	a LUKS device's info.callouts.remove.
-
-	* tools/hal-luks-remove.in: New script to tear down dm-crypt
-	device.
-
-2005-07-26  David Zeuthen  <davidz at redhat.com>
-
-	* drive_id/ata.c, drive_id/drive_id.c, drive_id/scsi.c,
-	hald/device.c, hald/device_store.c, hald/linux2/apm.c,
-	hald/linux2/osspec.c, hald/linux2/pcmcia_utils.c,
-	hald/linux2/probing/probe-storage.c, tools/hal-device.c,
-	volume_id/fat.c, volume_id/iso9660.c, volume_id/isw_raid.c,
-	volume_id/lvm.c, volume_id/romfs.c, volume_id/volume_id.c: This is
-	a patch (against CVS) to fix several compiler warnings with gcc
-	3.x and 4.x. Please review. Patch from Danny Kukawka
-	<danny.kukawka at web.de>.
-	
-2005-07-25  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/classdev.c (sound_add): Forgot to add alsa_.device_file
-
-	* doc/spec/hal-spec.xml.in: Add docs for alsa.device_file
-
-2005-07-22  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-hiddev.c,
-	hald/linux2/probing/probe-input.c,
-	hald/linux2/probing/probe-printer.c,
-	hald/linux2/probing/probe-smbios.c,
-	hald/linux2/probing/probe-storage.c,
-	hald/linux2/probing/probe-volume.c: Here a little patch (against
-	CVS) to fix several compiler warnings. Patch from Danny Kukawka
-	<danny.kukawka at web.de>.
-
-2005-07-22  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-volume.c (main): hal sets
-	volume.disc.is_rewriteable for DVD+R and DVD+R DL
-	wrong (TRUE). This patch (against CVS) fix this to
-	volume.disc.is_rewriteable=FALSE for DVD+R/DVD+R DL. Patch from
-	Danny Kukawka <danny.kukawka at web.de>.
-
-2005-07-21  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.c, libhal/libhal.c: Move the
-	LIBHAL_CHECK_LIBHALCONTEXT down to after declerations so we
-	don't depend on C99.
-
-2005-07-21  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.c, libhal/libhal.[ch]: Patch from
-	Danny Kukawka <danny.kukawka at web.de>: here the new patch with a
-	macro instead of always the same codeblock in so many funtions. 
-
-2005-07-21  David Zeuthen  <davidz at redhat.com>
-	
-	* doc/spec/hal-spec.xml.in, hald/linux2/acpi.c (battery_refresh):
-	Here is a patch for additional information about ACPI Batteries. I
-	added the following new keys:
-
-	battery.charge_level.capacity_state (poll)
-	battery.charge_level.warning
-	battery.charge_level.low
-	battery.charge_level.granularity_1
-	battery.charge_level.granularity_2
-	battery.voltage.unit
-	battery.voltage.design
-	battery.voltage.current (poll)
-	battery.alarm.unit
-	battery.alarm.design
-
-	Also attached a related patch for the spec. Patch from Danny
-	Kukawka <danny.kukawka at web.de>.
-
-2005-07-21  David Zeuthen  <davidz at redhat.com>
-
-	* libhal/libhal.c: This is a fix to prevent segmentation faults in
-	libhal if a function called with parameter LibHalContext *ctx ==
-	NULL/0. Patch from Danny Kukawka <danny.kukawka at web.de>.
-
-2005-07-20  David Zeuthen  <davidz at redhat.com>
-
-	Patch from W. Michael Petullo <mike at flyn.org>.
-
-	* configure.in: Add tools/hal-luks-setup to AC_OUTPUT
-
-	* tools/hal-luks-setup.in: New file
-
-	* fdi/policy/10osvendor/15-storage-luks.fdi: New file
-
-	* hald/linux2/blockdev.c (blockdev_get_luks_uuid): Minor changes
-	to give for informational debug
-	
-2005-07-15  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-hid-ups.c: Minor cleanup and fix for a
-	compiler warning. Patch from Richard Hughes <hughsient at gmail.com>.
-
-2005-07-15  David Zeuthen  <davidz at redhat.com>
-
-	* tools/device-manager/DeviceManager.py: Here is a patch to fix up
-	hal-device-manager.  This will still run with older D-BUS's but
-	you will need 0.35 to get all the fixes since there were some
-	problems with the signal removal code.  I am working on getting
-	0.35 out the door today. Patch from John (J5) Palmieri
-	<johnp at redhat.com>.
-
-2005-07-15  David Zeuthen  <davidz at redhat.com>
-
-	I added support for detection of DVD+R Dual-Layer write
-	support (new key: storage.cdrom.dvdplusrdl). Here a fix for DVD+R
-	DL media in libhal_volume_policy_compute_display_name(). Patches
-	from Danny Kukawka <danny.kukawka at web.de>.
-
-	* libhal-storage/libhal-storage.h: 
-
-	* libhal-storage/libhal-storage.c (libhal_drive_policy_compute_display_name)
-	(libhal_volume_policy_compute_display_name): 
-
-	* hald/linux2/probing/probe-storage.c (main): 
-
-	* hald/linux2/probing/linux_dvd_rw_utils.c (get_dvd_r_rw_profile): 
-
-	* doc/spec/hal-spec.xml.in: 
-
-2005-07-15  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Alvaro Lopez Ortega <alvaro at sun.com>
-
-	* volume_id/util.h: include asm/types.h if we have it
-
-	* configure.in: Fixup check for headers
-
-2005-07-12  David Zeuthen  <davidz at redhat.com>
-
-	* hald/util.h: Add prototype for hal_util_helper_invoke_with_pipes
-
-	* hald/util.c (hal_util_helper_invoke_with_pipes): New function (is
-	based on hal_util_helper_invoke)
-	(hal_util_helper_invoke): Use the with_pipes
-
-	* hald/hald_dbus.c (hald_exec_method_cb): New function
-	(hald_exec_method): New function
-	(hald_dbus_filter_handle_methods): Check and handle methods on
-	individual hal device objects
-
-	* hald/device.h: Add prototype for hal_device_property_get_strlist_elem
-
-	* hald/device.c (hal_device_property_get_strlist_elem): New function
-
-2005-07-12  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Post release version bump
-
-2005-07-12  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Bump version to 0.5.3
-
-	* NEWS: Update for release 0.5.3
-
-2005-07-12  David Zeuthen  <davidz at redhat.com>
-
-	* hald/Makefile.am: Disable our regression test for now since it's
-	busted and we want 'make distcheck' to pass for the new release.
-
-2005-07-12  David Zeuthen  <davidz at redhat.com>
-
-	* libhal/libhal.c (libhal_ctx_init): Make init fail if hald is
-	actually not running
-
-2005-07-11  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/acpi.c (battery_refresh_poll): When the battery is
-	degrading a bit, and the last full battery info value is updated
-	by ACPI, the new value is not reflected in HAL database. Reported
-	by Paul Ionescu (i_p_a_u_l at yahoo.com); fix by Richard
-	Hughes (richard at hughsie.com) (RH #162215).
-
-2005-07-11  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/blockdev.c (hotplug_event_begin_add_blockdev): Cards
-	on the MMC bus got an incorrect storage.drive_type. Patch from
-	Pierre Ossman <drzeus at drzeus.cx>.
-
-2005-07-08  David Zeuthen  <davidz at redhat.com>
-
-	Make it possible to create and remove HAL devices without kernel and
-	sysfs support. Some legacy devices or userspace driven devices may be
-	useful in HAL too, but need to be maintained by an application instead
-	of the kernel itself. Patch from Steffen Winterfeldt <snwint at suse.de>.
-
-	* tools/hal-device.c: New file
-
-	* tools/Makefile.am: Add build rules for hal-device
-
-	* libhal/libhal.[ch]: Remove the _agent prefix from the agent_manager 
-	functions
-
-	* hald/hald_dbus.h: Add prototypes for new functions
-
-	* hald/hald_dbus.c (manager_new_device)
-	(manager_remove_done, manager_remove)
-	(manager_commit_done)
-	(manager_commit_preprobing_done)
-	(manager_commit_to_gdl): New functions
-	(hald_dbus_filter_handle_methods): Add handlers for new D-BUS methods
-
-2005-07-07  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* tools/device-manager/DeviceManager.py:
-	h-d-m raises:
-		Traceback (most recent call last):
-		File "/usr/share/hal/device-manager/DeviceManager.py", line 182, in
-		DBusException: Trying to remove unkown rule:
-		type='signal',interface='org.freedesktop.Hal.Device',sender=':1.1'...
-
-	just make it useable again until we found the real reason.
-
-2005-07-07  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/hald_dbus.c: (raise_error), (raise_no_such_device),
-	(raise_no_such_property), (raise_property_type_error),
-	(raise_syntax), (raise_device_not_locked),
-	(raise_device_already_locked), (raise_permission_denied),
-	(foreach_device_get_udi), (device_send_signal_condition),
-	(local_server_message_handler):
-	Unify the error handling into one common function.
-	Thanks to Steffen Winterfeldt <snwint at suse.de>.
-
-2005-07-07  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/coldplug.c: (hal_util_get_udevinfo_path),
-	(hal_util_init_sysfs_to_dev_map), (coldplug_get_device_file),
-	(coldplug_synthesize_events), (coldplug_synthesize_block_event),
-	(coldplug_compute_visit_device):
-	The next udev version will not store anything in its database if not
-	neccessary. So udev does not need to write 600 pretty useless database
-	files and HAL does not need to process the information that is already
-	contained in the sysfs-path.
-
-	The udevinfo-dump of the next udev version will only print devices which
-	have a custom configuration. This changes HAL to look for the default
-	device-node derived from the kernels devpath if udev has not specified
-	anything else.
-
-2005-07-02  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* configure.in:
-	* hald/linux2/addons/addon-storage.c:
-	* hald/linux2/probing/probe-pc-floppy.c:
-	* hald/linux2/probing/probe-storage.c:
-	* hald/linux2/probing/probe-volume.c:
-	* tools/linux/add_selinux.c:
-	Revert <sys/mount.h> include, as some popular systems
-	still use ancient libc-kernel-headers.
-
-2005-07-01  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* configure.in:
-	* doc/api/Makefile.am:
-	* doc/conf/Makefile.am:
-	* doc/spec/Makefile.am:
-	Allow to configure the documentation target directory.
-
-2005-07-01  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* tools/device-manager/Device.py:
-	* tools/device-manager/DeviceManager.py:
-	* tools/device-manager/Representation.py:
-	Make h-d-m tolerate expected device properties which are empty.
-
-2005-07-01  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* configure.in:
-	* hald/linux2/addons/addon-storage.c:
-	* hald/linux2/probing/probe-pc-floppy.c:
-	* hald/linux2/probing/probe-storage.c:
-	* hald/linux2/probing/probe-volume.c:
-	* tools/linux/add_selinux.c:
-	Switch <linux/fs.h> include to <sys/mount.h> to fix missing
-	typedefs in the kernel headers on exotic architectures.
-
-2005-07-01  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/addons/addon-storage.c: (force_unmount):
-	Terminate execl() argument list.
-
-2005-06-29  David Zeuthen  <davidz at redhat.com>
-
-	* po/es.po: Add spanish translation from Francisco Javier F. Serrador
-	<serrador at hispafuentes.com>.
-
-	* configure.in: Add es to ALL_LINGUAS
-
-2005-06-28  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.h: Add new LibHalVolumeDiscType field
-	LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR_DL. Add new LibHalDriveBus field
-	LIBHAL_DRIVE_BUS_CCW.
-
-	* libhal-storage/libhal-storage.c (libhal_drive_from_udi): Set
-	drive->bus to LIBHAL_DRIVE_BUS_CCW if appropriate
-	(libhal_volume_from_udi): Fix a bug: it's dvd_plus_[r|rw] not
-	dvd_plus[r|rw]. Add support for dvd_plus_r_dl.
-
-2005-06-27  David Zeuthen  <davidz at redhat.com>
-
-	Patch-set from Cornelia Huck <cohuck at de.ibm.com>. I've been
-	working on support for Linux on S/390 specific devices in HAL. The
-	following patchset includes some non-s390 specific patches and
-	support for the S/390 bus types.
-
-	* doc/spec/hal-spec.xml.in: Document the properties of ccw,
-	ccwgroup, iucv, and tape devices.
-
-	* hald/linux2/classdev.c (tape_add, tape_compute_udi): This
-	comprises support for both the generic tape class and the tape390
-	class, as the two don't differ in anything but name.
-
-	* hald/linux2/blockdev.c (hotplug_event_begin_add_blockdev): ccw
-	devices need to be considered for block devices.
-
-	* hald/linux2/physdev.c (iucv_add_netiucv_properties)
-	(iucv_add, iucv_compute_udi): The iucv bus is for virtual devices
-	under z/VM - currently only netiucv is implemented.
-
-	* hald/linux2/physdev.c (ccwgroup_add_qeth_properties)
-	(ccwgroup_add_ctc_properties, ccwgroup_add_lcs_properties)
-	(ccwgroup_add_claw_properties, ccwgroup_add)
-	(ccwgroup_compute_udi): The ccwgroup on S/390 contains devices
-	consisting of grouped ccw devices - usually networking devices. As
-	with the ccw bus, there are some common properties and lots of
-	device specific ones.
-
-	* hald/linux2/physdev.c (ccw_add_dasd_properties)
-	(ccw_add_zfcp_properties, ccw_add_tape_properties)
-	(ccw_add_3270_properties, ccw_add, ccw_compute_udi): The ccw bus
-	on s390 contains all classic channel-attached devices. They all
-	have a few common properties, but also driver-specific ones.
-
-	* hald/linux2/osspec_linux.h: Export hal_util_get_driver_name ()
-
-	* hald/linux2/osspec.c (hal_util_get_driver_name): New function
-	(hal_util_set_driver): Refactor to use hal_util_get_driver_name
-
-	* hald/linux2/classdev.c (net_add): Set MAC-address to zero's
-	if we can't read it.
-	(net_compute_udi): Use some other unique ID if MAC address is
-	missing or set to all zero's.
-
-	* hald/linux2/blockdev.c (blockdev_compute_udi): Generate a
-	sensible name for block devices for which the model is an
-	empty string.
-
-	* hald/util.c: This patch adds a needed include for some
-	interfaces, or gcc 4.0 will make incorrect assumptions on the
-	format of some functions.
-
-2005-06-27  David Zeuthen  <davidz at redhat.com>
-
-	* volume_id/util.h: Include stdint.h to get uint8_t and friends so
-	we compile on Linux.
-
-2005-06-27  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in, volume_id/*.c: This patch check for some internal
-	Linux kernel types and redefine it using the standard system
-	types. It also removes the a private Linux kernel include. Patch
-	from Alvaro Lopez Ortega <alvaro at sun.com>.
-
-2005-06-27  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Alvaro Lopez Ortega <alvaro at sun.com>.
-
-	* volume_id/dasd.c: Use HAVE_SYS_IOCCOM_H to conditionally include
-	sys/ioccom.h
-
-	* configure.in: Check for sys/ioccom.h
-
-2005-06-23  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Alvaro Lopez Ortega <alvaro at sun.com> to add an empty
-	Solaris backend to HAL.
-
-	* hald/solaris/osspec.c: New file
-
-	* hald/solaris/Makefile.am: New file
-
-	* configure.in: Add checks for Solaris
-
-2005-06-21  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: This little patch fixes the configure.in file in
-	order to allow non-Linux machines to execute the whole configure
-	script. Patch from Alvaro Lopez Ortega <alvaro at sun.com>.
-
-2005-06-21  David Zeuthen  <davidz at redhat.com>
-
-	* .cvsignore: update this and add a bunch of other .cvsignore files.
-	Patch from William Jon McCann <mccannwj at pha.jhu.edu>.
-
-2005-06-21  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi: Patch from
-	Mattias Eriksson <snaggen at acc.umu.se> to detect a bunch of iRiver
-	music players (ported from 0.4.x to HEAD by me).
-
-2005-06-15  William Jon McCann  <mccann at jhu.edu>
-
-	* hald/linux2/probing/probe-volume.c (main): Add support for
-	DVD+R DL media.  (fdo bug #3269)
-
-2005-06-10  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald.c (usage): This diff contains a little fix for the
-	description of --retain-privileges in "hald --help". Looks like
-	only replaced --drop-privileges through --retain-privileges
-	without to change the description. 
-	Patch from Danny Kukawka <danny.kukawka at web.de>.
-
-2005-05-28  Kjartan Maraas  <kmaraas at gnome.org>
-
-	* hald/Makefile.am: Putting on the build sherrif hat and removing
-	references to master_slave.[ch] to get the build going again.
-
-2005-05-24  David Zeuthen  <davidz at redhat.com>
-
-	* hald/property.c (hal_property_new_string): Just assign an
-	empty string to the property if the value argument is NULL.
-	Patch from Martin Pitt <martin at piware.de> (Ubuntu bug #11060)
-
-2005-05-23  Kjartan Maraas  <kmaraas at gnome.org>
-
-	* configure.in: Add nb to ALL_LINGUAS.
-
-2005-05-23  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/policy/10osvendor/10-storage-policy.fdi: Never ever use
-	sync as it reduces performance and makes people believe that
-	it wears out their drives (RH bug #157674)
-
-	* examples/locking.py: Fixup this a little bit
-
-	* tools/fstab-sync.8.in: Update the man page to reflect latest
-	changes.
-
-	* hald/hald_dbus.c (device_lock): Fix a doublefree when acquiring
-	lock (RH bug #158474)
-
-2005-05-20  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-storage.c (main): Here is a fix for
-	the dvdram entry in hal (0.4.x and 0.5.x).  Currently the correct
-	default key (storage.cdrom.dvdram = false) is created but if the
-	device can write dvdram, hal add a new key named "storage.dvdram". 
-	Patch from Danny Kukawka <danny.kukawka at web.de>.
-
-2005-05-16  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-acpi.c (main): Whilst using CVS, I've
-	found that ACPI ac_adapter events are not triggering a rescan of
-	the ac_adapter object. 
-	Patch from Richard Hughes <hughsient at gmail.com>
-
-2005-05-13  David Zeuthen  <davidz at redhat.com>
-
-	* tools/device-manager/DeviceManager.py:
-	(DeviceManager.property_modified): Fix a port J5 missed when porting
-	to the new D-BUS Python bindings (I just love weakly-typed languages)
-
-2005-05-13  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal_find_by_capability.c: New file
-
-	* tools/hal_find_by_property.c: New file
-
-	* tools/hal_get_property.c (usage): Don't claim we support we the
-	--quiet option because we don't
-
-	* tools/Makefile.am: Add build rules for hal-find-by-capability and
-	hal-find-by-property.
-
-2005-05-12  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Bump version to 0.5.2
-
-	* NEWS: Update for release 0.5.2
-
-2005-05-12  David Zeuthen  <davidz at redhat.com>
-
-	* tools/Makefile.am (EXTRA_DIST): Also dist gen-libgphoto-hal-fdi
-
-2005-05-12  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-usb-csr.c (property_cache_item_get): Bah,
-	make this file actually compile again.
-
-2005-05-11  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-usb-csr.c: Remove all extra new-lines as
-	we don't nede them (from Richard Hughes <richard at hughsie.com>)
-
-2005-05-11  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/pmu.c (battery_refresh): Also use the
-	util_compute_time_remaining here
-
-2005-05-11  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Richard Hughes <richard at hughsie.com>
-
-	* hald/util.c (util_compute_time_remaining): New function
-	used to calculate the time remaining for ACPI laptops as the
-	information is not provided.
-
-	* hald/linux2/acpi.c (battery_refresh_poll): Add code to
-	refresh "battery.remaining_time" using the new function
-	util_compute_time_remaining.
-
-2005-05-11  David Zeuthen  <davidz at redhat.com>
-
-	* libhal/libhal.[ch]: Patch from Rohan McGovern <rohan.pm at gmail.com>
-	to fix up Doxygen documentation. Thanks!
-
-2005-05-09  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/policy/10osvendor/10-storage-policy.fdi: Add the 'mmc' bus
-	to whitelist of storage devices we don't mind mounting. Verified to
-	work by Pierre Ossman <drzeus-list at drzeus.cx>.
-
-2005-05-08  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-hid-ups.c (ups_get_static): Assume
-	battery is present (from Richard Hughes <richard at hughsie.com>)
-
-2005-05-08  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-pmu.c: New file (polls /dev/apm for
-	lid button events)
-
-	* hald/linux2/addons/Makefile.am (libexec_PROGRAMS): Also build
-	hald-addon-pmu
-
-	* hald/linux2/pmu.c (battery_refresh): Support battery.current
-	(lid_button_refresh): New function
-	(pmu_lid_compute_udi): New function
-	(pmu_poll): New function
-	(pmu_synthesize_hotplug_events): Add lid object and setup a timeout
-	for polling
-
-	* fdi/policy/10osvendor/10-power-mgmt-policy.fdi: Run the pmu addon
-	to detect lid button events.
-
-2005-05-02  David Zeuthen  <davidz at redhat.com>
-
-	* tools/gen-libgphoto-hal-fdi: Generate HAL fdi file - script from 
-	Pozsar Balazs <pozsy at uhulinux.hu>; slightly tweaked by me
-
-2005-05-02  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/information/10freedesktop/Makefile.am: Add 10-camera-ptp.fdi.
-	Also add 10-usb-pda.fdi that was forgotten
-
-	* fdi/information/10freedesktop/10-camera-ptp.fdi: New file to detect
-	PTP cameras
-
-2005-05-02  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-storage.c (unmount_childs): Also unmount
-	by mount point here
-
-2005-04-29  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/blockdev.c (update_mount_point): Fix the TODO about
-	using major:minor to check for whether something is mounted. Now
-	it works with e.g. 'mount /dev/dvd /mnt/tmp' where /dev/dvd is
-	a symlink to the real device and /mnt/tmp nor /dev/dvd is mentioned
-	in the /etc/fstab file.
-	(force_unmount): Use mount point, not device name (from Rohan
-	McGovern <rohan.pm at gmail.com>).
-
-2005-04-27  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Bump for release
-
-	* NEWS: Update for release
-
-2005-04-27  David Zeuthen  <davidz at redhat.com>
-
-	* tools/device-manager/*.py: Patch from John (J5) Palmieri
-	<johnp at redhat.com>: I am about to check in my changes to the dbus
-	python bindings and roll a release.  Here is a patch to get Hal
-	working with it.  
-
-2005-04-27  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-usb-csr.c (main): Fix compilation error
-	now that this piece of code actually compiles.
-
-	* configure.in: Doh, check for libusb-config, not libusb-configxxx.
-	Fix from Richard Hughes <hughsient at gmail.com>.
-
-2005-04-27  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/osspec_linux.h: Remove prototype for the function
-	hal_util_get_device_file().
-
-	* hald/linux2/osspec.c (hal_util_get_udevinfo_path): Remove 
-	(hal_util_get_device_file): Remove 
-
-	* hald/linux2/coldplug.c (hal_util_get_udevinfo_path): Move from 
-	osspec.c 
-	(hal_util_get_sysfs_to_dev_map): New function
-	(coldplug_synthesize_events): Get the sysfs->dev map in one go using
-	'udevinfo -d' available in udev since at least version 057.
-
-	* configure.in: Bump dbus requirement to 0.33 since the new dbus is
-	out.
-
-2005-04-27  David Zeuthen  <davidz at redhat.com>
-
-	* libhal/libhal.c (libhal_device_set_property_helper): Don't leak the
-	DBusMessage objects
-
-	* hald/hald_dbus.c (sender_has_privileges): Don't leak the error and
-	actually return FALSE if sender is unprivileged. Also fix up spelling.
-
-2005-04-18  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Bump glib-2.0 requirement to 2.6.0; change dbus-1 and
-	dbus-glib-1 to back 0.32 so it works with patched 0.32 tarballs. glib
-	observation from Rohan <rohan.pm at gmail.com>.
-
-2005-04-14  David Zeuthen  <davidz at redhat.com>
-
-	Make hal handle APM nicely.
-
-	* hald/linux2/apm.c (apm_poll): New function
-	(battery_refresh): Hmm, APM reports -1 if battery is absent.
-	s/system.ac_adapter/ac_adapter/ - Patch from Bill
-	Nottingham <notting at redhat.com>
-	(apm_synthesize_hotplug_events): Add time for APM polling
-
-2005-04-13  David Zeuthen  <davidz at redhat.com>
-
-	Some patches from Martin Pitt <martin at piware.de>.
-
-	* tools/device-manager/Representation.py:
-	(Representation.load_and_scale_icon): Use TRUE instead of gtk.TRUE
-	since the latter is deprecated
-
-	* hald/hald.c (main): Drop privileges a bit later so we have a
-	chance to bind to the netlink socket
-
-2005-04-11  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Add /var/lib/music to the search path for pci.ids.
-	Patch from Murray Cumming <murrayc at murrayc.com>, fdo bug #2547.
-
-2005-04-08  David Zeuthen  <davidz at redhat.com>
-
-	Make all hal helpers use a direct connection to hald rather than
-	going through the bus. This is for both performance and security
-	reasons. Also, fix the reconnect issue and don't connect to the
-	system message bus before probing is done.
-
-	* configure.in: Require dbus 0.33; that, for now, means D-BUS CVS
-	HEAD since it requires the patch in fd.o bug #2889 and D-BUS made
-	a post-release version bump. I'll look into doing a D-BUS release
-	soon.
-
-	* libhal/libhal.h: Export prototype for libhal_ctx_init_direct()
-
-	* libhal/libhal.c (libhal_ctx_init_direct): New convenience function
-	for connecting directly to hald instead of going through the message
-	bus (requires the address in the HALD_DIRECT_ADDR environment variable)
-
-	* hald/util.c (hal_util_helper_invoke): Export the local hald dbus
-	server address in HALD_DIRECT_ADDR
-
-	* hald/hald_dbus.c (manager_send_signal_device_added): Handle the
-	case where we're not connected to the system message bus
-	(manager_send_signal_device_removed): -do-
-	(manager_send_signal_new_capability): -do-
-	(device_property_atomic_update_end): -do-
-	(device_send_signal_property_modified): -do-
-	(device_send_signal_condition): -do-
-	(device_set_property): Always allow local interface
-	(device_add_capability): -do-
-	(device_remove_property): -do-
-	(device_rescan): -do-
-	(device_reprobe): -do-
-	(device_emit_condition): -do-
-	(hald_dbus_filter_handle_methods): New function
-	(hald_dbus_filter_function): Move bulk of functionality to the new
-	hald_dbus_filter_handle_methods() and pass local_interface==FALSE.
-	Handle Disconnect from local libdbus properly and attempt to
-	reconnect to the system message bus every so often (every 3 secs)
-	(local_server_message_handler): New function
-	(local_server_unregister_handler): New function
-	(local_server_handle_connection): New function
-	(hald_dbus_local_server_addr): New function
-	(hald_dbus_local_server_init): New function
-
-	* hald/hald.c (main): Register a local dbus server instead of
-	connection to the system bus as startup
-	(osspec_probe_done): Only connect to the system bus once probing
-	is done
-
-	* tools/fstab-sync.c (main): Use direct connection
-
-	* hald/linux2/probing/probe-volume.c (main): Use direct connection
-
-	* hald/linux2/probing/probe-storage.c (main): Use direct connection
-
-	* hald/linux2/probing/probe-smbios.c (main): Use direct connection
-
-	* hald/linux2/probing/probe-printer.c (main): Use direct connection
-
-	* hald/linux2/probing/probe-hiddev.c (main): Use direct connection
-
-	* hald/linux2/probing/probe-input.c (main): Use direct connection
-
-	* hald/linux2/addons/addon-usb-csr.c (main): Use direct connection
-
-	* hald/linux2/addons/addon-storage.c (main): Use direct connection
-
-	* hald/linux2/addons/addon-hid-ups.c (main): Use direct connection
-
-	* hald/linux2/addons/addon-acpi.c (main): Use direct connection
-
-	* hald/linux2/probing/probe-pc-floppy.c (main): Remove all references
-	to hal and dbus since this program just returns the result in the
-	exit code
-
-2005-04-06  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux2/probing/probe-volume.c: (main): read volume label
-	from last session of optical multisession disk.
-
-2005-04-04  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/Makefile.am (libexec_PROGRAMS): Only build
-	hald-addon-usb-csr if we have libusb
-
-	* configure.in: Check for libusb (since it appear not to build
-	on s390/s390x if we don't have it)
-
-2005-04-04  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-storage.c (main): storage.serial and
-	storage.firmware_revision may return bogus data so don't quit
-	if we fail when setting it (Red Hat bug #151762)
-
-2005-04-04  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/information/10freedesktop/10-wireless-mice.fdi: Change 
-	battery.type from 'keyboard_mouse' to just 'keyboard'.
-
-2005-04-04  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.c: Fix for when gettext is
-	not available. From Steve Grubb <sgrubb at redhat.com>.
-
-2005-04-04  David Zeuthen  <davidz at redhat.com>
-	
-	* po/zh_TW.po: New file from chaoweilun at pcmail.com.tw
-
-	* po/ChangeLog: Updated
-
-	* configure.in: Added zh_TW to ALL_LINGUAS
-
-2005-04-02  Richard hughes  <richard at hughsie.com>
-	
-	* hald/linux2/addons/addon-usb-csr: Fix a problem where
-	the capability was being added before the charge_level key
-	way set, causing programs watching for the "new capability"
-	to not be able to query the key until it was restarted.
-
-2005-03-30  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/information/10freedesktop/10-usb-pda.fdi: Match for info.
-	capabilities instead of info.bus
-
-2005-03-30  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/information/10freedesktop/10-usb-pda.fdi: Update from
-	Andrei Yurkevich <urruru at ru.ru>; slightly tweaked by me
-
-2005-03-29  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/information/10freedesktop/10-usb-pda.fdi: New file to
-	match all PDA's - right now it only got a single entry
-
-2005-03-24  David Zeuthen  <davidz at redhat.com>
-
-	* libhal/libhal.c (filter_func): Stupid bug; checked for ctx->
-	device_new_capability, but should check for ctx->device_condition
-
-	* hald/linux2/physdev.c (pci_add): Even more stupid bug; somehow
-	the hal_util_set_driver were enclosed in an if statement, thus
-	rendering the next statement conditional (the one that sets
-	pci.product_id)
-
-2005-03-23  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Sergey Udaltsov <sergey.udaltsov at gmail.com>, slightly
-	tweaked to be in line with the spec
-
-	* hald/linux2/addons/addon-usb-csr.c: New file
-
-	* fdi/information/10freedesktop/10-wireless-mice.fdi: New file
-
-	* doc/spec/hal-spec.xml.in: Add keyboard_mouse as allowed value for
-	battery.type
-
-2005-03-22  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/physdev.c: Actuall change driver property to be uniform,
-	e.g. put it in info.linux.driver
-
-2005-03-22  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-storage.c (main): Add some extra debugging
-	to help me with RH bug #151762
-
-	* hald/linux2/physdev.c: Set <bustype>.linux.driver for all bus devices
-
-	* hald/linux2/classdev.c (net_add): Don't set net.linux.driver, first
-	of all because it doesn't make sense (drivers don't bind to class
-	devices, they bind to physical devices), second because the Linux
-	kernel moved around where the driver symlink is.
-
-2005-03-21  David Zeuthen  <davidz at redhat.com>
-
-	* doc/TODO: Add a small item here
-
-2005-03-20  David Zeuthen  <davidz at redhat.com>
-
-	Teach hal about Firewire devices; tested with both my iPod and
-	my Powerbook in Target Disk Mode
-
-	* tools/device-manager/Const.py.in: Collapse ieee1394_host
-	and ieee1394_node into ieee1394
-
-	* hald/linux2/physdev.c (ieee1394_add): New function
-	(ieee1394_compute_udi): New function
-
-2005-03-17  David Zeuthen  <davidz at redhat.com>
-
-	* hald/util.c (hal_util_grep_file): Remove some debug spewage
-
-2005-03-17  Richard hughes  <richard at hughsie.com>
-
-	* hald/linux2/apm.c (battery_refresh):
-	Fix a typo, s/battery.charge_level/battery.charge_level.current
-	so that matches ACPI (and HAL spec).
-
-	* hald/linux2/addons/addon-hid-ups.c:
-	Fix a typo, s/battery.is_charging/battery.rechargeable.is_charging
-	so that matches ACPI (and HAL spec).
-
-2005-03-17  David Zeuthen  <davidz at redhat.com>
-
-	* tools/linux/hal_hotplug.c: We need to look for the
-	sysfs_mount_path only if we read the ifindex from a network
-	interface. This safes us from parsing the proc file with every
-	hotplug event. From Kay Sievers <kay.sievers at vrfy.org>.
-
-2005-03-16  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Replace boolean action type of hotplug event with enum, cause
-	hotplug actions are not limited to "add" and "remove" events. The
-	kernel already emits "online", "offline" hotplug events for
-	hotplugging cpu's.
-
-	* hald/linux2/acpi.c: (acpi_synthesize),
-	(acpi_generate_add_hotplug_event),
-	(acpi_generate_remove_hotplug_event):
-
-	* hald/linux2/apm.c: (apm_synthesize_hotplug_events),
-	(apm_generate_add_hotplug_event),
-	(apm_generate_remove_hotplug_event):
-
-	* hald/linux2/blockdev.c:
-	(generate_fakevolume_hotplug_event_add_for_storage_device),
-	(blockdev_generate_add_hotplug_event),
-	(blockdev_generate_remove_hotplug_event):
-
-	* hald/linux2/classdev.c: (classdev_generate_add_hotplug_event),
-	(classdev_generate_remove_hotplug_event):
-
-	* hald/linux2/coldplug.c: (coldplug_synthesize_events),
-	(coldplug_synthesize_block_event), (coldplug_compute_visit_device):
-
-	* hald/linux2/hotplug.c: (hotplug_event_begin_sysfs),
-	(hotplug_event_begin_acpi), (hotplug_event_begin_apm),
-	(hotplug_event_begin_pmu):
-
-	* hald/linux2/hotplug.h:
-
-	* hald/linux2/osspec.c: (hald_helper_data):
-
-	* hald/linux2/physdev.c: (physdev_generate_add_hotplug_event),
-	(physdev_generate_remove_hotplug_event):
-
-	* hald/linux2/pmu.c: (pmu_synthesize_hotplug_events),
-	(pmu_generate_add_hotplug_event),
-	(pmu_generate_remove_hotplug_event):
-
-2005-03-15  David Zeuthen  <davidz at redhat.com>
-
-	* hald/util.c (hal_util_get_string_from_file): Yikes, variable i
-	needs to be a gint rather than an guint otherwise our for-loop
-	with i >= 0 will continue with i < 0 (only seen on x86_64 with
-	gcc4)
-
-	* hald/linux2/classdev.c (serial_add): Also make an unsigned int
-	an int cf. above comment
-
-2005-03-15  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/information/10freedesktop/10-usb-card-readers.fdi: Add
-	device-information for the builtin USB2 card reader in my HP Media
-	Center x86_64 box
-
-2005-03-15  David Zeuthen  <davidz at redhat.com>
-
-	* doc/TODO (CVSID): Add a few items
-
-2005-03-15  David Zeuthen  <davidz at redhat.com>
-
-	Two patches from Kay Sievers Kay Sievers <kay.sievers at vrfy.org>
-
-	* hald/linux2/physdev.c (usb_add): Such events should not happen, 
-	but better recover from it. :) SEQNUM=0 ACTION=add DEVPATH=
-	"/devices/pci0000:00/0000:00:1d.7" /usr/libexec/hal.hotplug usb
-
-	* hald/linux2/hotplug.c (hotplug_event_begin_sysfs): While playing
-	around with hotplug event replay from initramfs, it happens, that
-	events are generated for devices HAL already knows from its
-	coldplug run. This leads to a lot of funny double entries in the
-	device store. :) We should prevent the device addition by hotplug
-	events if we already have one with the same sysfs-devpath.
-
-2005-03-12  W. Michael Petullo  <mike at flyn.org>
-
-	* hald/linux2/blockdev.c: s/sesame/luks.
-
-	* hald/linux2/coldplug.c: Ensure that device mapper devices are
-	processed after all other block devices.
-
-2005-03-13  David Zeuthen  <davidz at redhat.com>
-
-	* tools/linux/add_selinux.c (main): Check if selinux is enabled,
-	cause we still get the removable context on kernels where SELinux
-	is disabled
-
-2005-03-12  David Zeuthen  <davidz at redhat.com>
-
-	* tools/hal_get_property.c (main): Make this work for strlists
-
-2005-03-12  David Zeuthen  <davidz at redhat.com>
-
-	Bah, I still need to update the spec for all the new stuff; until
-	then, here's some other new stuff - one very relevant use for this
-	is that we can key off whether a system can ACPI S3 by e.g. looking
-	at the new smbios.* properties on computer (so distros can maintain
-	a whitelist) - another interesting one is system.formfactor that
-	e.g. Nautilus can use to select the right icon for Computer
-
-	* hald/linux2/probing/probe-smbios.c: New file; invoke dmidecode
-	and extract useful properties
-
-	* hald/linux2/probing/Makefile.am: Add build rules for new prober
-	hald-probe-smbios
-
-	* hald/linux2/osspec.c (computer_probing_helper_done): New function
-	(computer_probing_pcbios_helper_done): New function
-	(osspec_probe): Do the hald-probe-smbios if system supports ACPI or
-	APM; add note to do something similar for PowerMac's etc.
-
-2005-03-11  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-volume.c (main): Patch from Kay
-	Sievers <kay.sievers at vrfy.org> I need the following to make linux
-	raid volumes working again. I have a test disk here, that does not
-	work with the new HAL.
-
-2005-03-11  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Add all the ATA raid signatures which are supported in the dmraid
-	library. volume_id will just recognize the raid signatures and set
-	the usage to raid, to prevent raid members to show up as mountable
-	volumes. Any detailed informatiuon about the raid set must be
-	queried with the original lib.
-
-	* volume_id/Makefile.am:
-
-	* volume_id/highpoint.c: (volume_id_probe_highpoint_37x_raid),
-	(volume_id_probe_highpoint_45x_raid):
-
-	* volume_id/highpoint.h:
-
-	* volume_id/isw_raid.c: (volume_id_probe_intel_software_raid):
-
-	* volume_id/isw_raid.h:
-
-	* volume_id/linux_raid.c: (volume_id_probe_linux_raid):
-
-	* volume_id/logging.h:
-
-	* volume_id/lsi_raid.c: (volume_id_probe_lsi_mega_raid):
-
-	* volume_id/lsi_raid.h:
-
-	* volume_id/ntfs.c: (volume_id_probe_ntfs):
-
-	* volume_id/nvidia_raid.c: (volume_id_probe_nvidia_raid):
-
-	* volume_id/nvidia_raid.h:
-
-	* volume_id/promise_raid.c:
-	(volume_id_probe_promise_fasttrack_raid):
-
-	* volume_id/promise_raid.h:
-
-	* volume_id/silicon_raid.c: (volume_id_probe_silicon_medley_raid):
-
-	* volume_id/silicon_raid.h:
-
-	* volume_id/via_raid.c: (volume_id_probe_via_raid):
-
-	* volume_id/via_raid.h:
-
-	* volume_id/volume_id.c: (volume_id_probe_all):
-
-	* volume_id/volume_id.h: Version 42.
-
-2005-03-11  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* volume_id/Makefile.am: add minix probing code
-
-	* volume_id/luks.c: 
-
-	* volume_id/minix.c: New file.
-
-	* volume_id/minix.h: New file.
-
-	* volume_id/util.c: (volume_id_set_unicode16),
-	(volume_id_set_label_unicode16): Export unicode converter.
-
-	* volume_id/util.h: Export unicode converter.
-
-	* volume_id/volume_id.c: (volume_id_probe_all): Add minix.
-
-	* volume_id/volume_id.h: Version 41.
-
-2005-03-10  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/acpi.c (battery_refresh_poll): Also set property
-	battery.charge_level.rate
-	(acpi_poll): Make the update atomic
-	
-	* doc/spec/hal-spec.xml.in: Update for battery.charge_level.rate
-
-2005-03-10  David Zeuthen  <davidz at redhat.com>
-
-	Bah, so it turns out that crappy BIOS'es and what-have-you gets really
-	upset of hald, every five seconds, accessing the state file three
-	times and the info file one time (in /proc/acpi/battery/BAT%d)
-
-	https://www.redhat.com/archives/fedora-devel-list/2005-March/msg00704.html
-
-	So, off to read the battstat applet source - fix this up so we
-	only access a single file every 30 seconds; just like battstat applet.
-
-	I really hate hardware.
-
-	* hald/linux2/acpi.c (ACPI_POLL_INTERVAL): Only poll every 30 seconds
-	(battery_refresh_poll): New function
-	(battery_refresh): Call battery_refresh_poll
-	(acpi_poll): Call battery_refresh_poll instead of acpi_rescan_device
-
-	* hald/util.c (hal_util_grep_file): Fix this so the last read buffer
-	is cached for reuse
-
-2005-03-09  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-acpi.c (main): Handle /proc/acpi/event
-	as a file, not a socket. Now we can run without acpid :-). Reported
-	by Bill Nottingham.
-
-2005-03-07  David Zeuthen  <davidz at redhat.com>
-
-	Release 0.5.0
-
-	* NEWS: Update for release
-
-2005-03-07  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald_test.c (main): Back out libhal testing code for now.
-	(check_properties): We've changed the semantics of hal_device_
-	property_strlist_add so change test suite accordingly
-	
-	* doc/TODO: Add note about extending test suite coverage
-
-2005-03-07  David Zeuthen  <davidz at redhat.com>
-
-	* doc/TODO: Forgot one important TODO about finishing the
-	volume_id library (pretty please Kay :-)
-
-2005-03-07  David Zeuthen  <davidz at redhat.com>
-
-	* doc/TODO: Updated this to reflect reality
-
-	* hald/linux2/pmu.c (battery_refresh): Pass reuse=FALSE
-	(ac_adapter_refresh): Pass reuse=FALSE
-
-	* hald/linux2/classdev.c (sound_add): pass reuse=FALSE
-
-	* hald/linux2/acpi.c: Poll every five secs instead of every two secs
-	as this actually is a very expensive operation - someone needs to
-	optimize hald/util.c:hal_util_grep_file before we can change this -
-	see the TODO in that function
-	(battery_refresh): Use the hal_util_grep_discard_existing_data() since
-	we are passing reuse=TRUE. Minimize amount of reads.
-	(fan_refresh): Don't set processor.number here (!)
-
-	* hald/util.c (hal_util_grep_discard_existing_data): New function to
-	purge "reused" data
-	(hal_util_grep_file): Take the reuse parameter
-	(hal_util_grep_string_elem_from_file): Take and pass reuse param
-	(hal_util_grep_int_elem_from_file): Take and pass reuse param
-	(hal_util_set_string_elem_from_file): Take and pass reuse param
-	(hal_util_set_int_elem_from_file): Take and pass reuse param
-	(hal_util_set_bool_elem_from_file): Take and pass reuse param
-
-	* hald/util.h: Fixup prototypes for functions above and add prototype
-	for hal_util_grep_discard_existing_data
-
-2005-03-04  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/acpi.c (ACPI_POLL_INTERVAL): Change this to every
-	two secs instead of every ten secs
-
-2005-03-04  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/blockdev.c (blockdev_get_luks_uuid): Only sleep
-	the 0.5s if we are not initialising
-	(hotplug_event_begin_add_blockdev): Don't leak the HalDevice object
-
-2005-03-02  W. Michael Petullo  <mike at flyn.org>
-
-	* hald/linux2/blockdev.c: Add ability to identify volumes in
-	/dev/mapper as the counterpart to a LUKS+encrypted device.
-
-2005-03-04  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* volume_id/luks.c: (volume_id_probe_luks): Remove unneeded stuff.
-
-	* volume_id/volume_id.h: Version v37.
-
-2005-03-02  W. Michael Petullo  <mike at flyn.org>
-
-	* volume_id/luks.c: (volume_id_probe_luks) Use new 
-	UUID_DCE_UNPARSED format for volume_id_set_uuid call.
-
-	* volume_id/util.c: (volume_id_set_uuid) Add UUID_DCE_UNPARSED
-	format.
-
-	* volume_id/util.h: Add UUID_DCE_UNPARSED format.
-
-	* volume_id/volume_id.c: Only #include "luks.h" once.
-
-2005-03-03  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux2/classdev.c (serial_add): New function (note the TODO :-)
-	(serial_compute_udi): New function
-
-2005-03-02  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/acpi.c (battery_refresh): Remove .last_full, not .maximum
-
-2005-03-02  David Zeuthen  <davidz at redhat.com>
-
-	* doc/spec/hal-spec.xml.in: Change this to remove the property
-	battery.charge_level.maximum and introduce battery.charge_level.design
-	and battery.charge_level.last_full instead
-
-	* hald/linux2/addons/addon-hid-ups.c (ups_get_static): Update code
-	to use new the new properties
-
-	* hald/linux2/pmu.c (battery_refresh): Update code to use new the
-	new properties
-
-	* hald/linux2/apm.c (battery_refresh): Update code to use new the
-	new properties
-
-	* hald/linux2/acpi.c (battery_refresh): Update code to use new the
-	new properties
-
-2005-03-02  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/acpi.c (acpi_poll): New function
-	(acpi_synthesize_hotplug_events): Setup timeout every ten seconds to
-	poll batteries (since some ACPI implementations don't report back when
-	the battery charge level changes)
-
-2005-03-02  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/addons/addon-acpi.c (main): Do call Rescan() when we
-	get a battery event
-
-2005-03-02  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/acpi.c (processor_refresh): s/system.processor/processor/
-
-2005-03-02  Richard Hughes  <richard at hughsie.com>
-
-	* hald/linux2/acpi.c (processor_refresh, fan_refresh): New
-	functions to handle additional ACPI devices.
-
-	* hald/linux2/acpi.c (acpi_synthesize_hotplug_events): Added
-	processor and fan handlers.
-
-2005-03-02  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux2/classdev.c (sound_add): Rename alsa.id to alsa.card_id;
-	add alsa.device_id; fixup info.product to be more useful
-
-	* doc/spec/hal-spec.xml.in: Update for alsa.* properties
-
-2005-03-02  David Zeuthen  <davidz at redhat.com>
-
-	* libhal/libhal.c (filter_func): Remove foo[012] messages
-
-2005-03-02  David Zeuthen  <davidz at redhat.com>
-
-	* tools/device-manager/DeviceManager.py:
-	(DeviceManager.remove_device_signal_recv): Do add PropertyModified
-	though
-
-2005-03-02  Richard Hughes  <richard at hughsie.com>
-
-	* doc/spec/hal-spec.xml.in: Removed all the 'system.' 
-	prefixes to the ACPI and PMU objects, they serve no purpose
-	other to confuse people.
-
-	* hald/linux2/acpi.c (ac_adapter_refresh, button_refresh):
-	Removed 'system.' prefix.
-
-	* hald/linux2/pmu.c (ac_adapter_refresh): Removed 
-	'system.' prefix.
-
-	* hald/util.c: Updated comment regarding 'system.'
-
-2005-03-02  David Zeuthen  <davidz at redhat.com>
-
-	* tools/device-manager/DeviceManager.py: Move some things around
-	only to discover that D-BUS python bindings need fixing to actually
-	push signals we subscribe to without giving the path...
-
-	* tools/lshal.c (device_condition): Fix this function so it works
-	after the DeviceCondition format changes earlier
-
-	* libhal/libhal.h: Export prototype for libhal_device_emit_condition
-
-	* libhal/libhal.c (libhal_device_emit_condition): New function
-
-	* hald/linux2/addons/addon-storage.c (main): Fix that we should
-	be verbose
-
-	* hald/linux2/addons/addon-acpi.c (read_line): Rewrite this
-	to not malloc all over the place
-	(main): Try two places for ACPI events. Rework parsing of events
-	and send out DeviceConditions where appropriate
-
-	* hald/hald_dbus.c (device_emit_condition): New function
-	(hald_dbus_filter_function): Handle EmitCondition
-
-2005-03-01  Richard Hughes  <richard at hughsie.com>
-
-	* hald/linux2/addons/addon-acpi.c (main): Call
-	libhal_device_rescan for each ACPI event.
-
-2005-02-28  Richard Hughes  <richard at hughsie.com>
-
-	* doc/spec/hal-spec.xml.in: Added ALSA namespace
-
-	* hald/linux2/classdev.c (sound_add, sound_compute_udi): New
-	functions to handle ALSA devices.
- 
-	* ChangeLog: Updated my email address in this file.
-
-2005-03-01  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald_dbus.c (foreach_device_by_capability): Fixup this
-	function to work with the new D-BUS API
-	(device_lock): Be consistent with new D-BUS naming, e.g. use
-	info.locked.dbus_name instead of info.lock.dbus_service
-	(device_unlock): -do-
-	(service_deleted): Use NameOwnerChanged instead of NameLost as
-	the latter only goes to the service who's lost the name
-	(hald_dbus_filter_function): -do-
-	(hald_dbus_init): Subscribe to NameOwnerChanged rather than
-	NameLost
-
-	* examples/locking.py: Fixup to use get_unique_name() instead of
-	get_base_service()
-
-2005-02-28  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/ids.c: Added TOS6200, TOS6202, TOS6207 entries from
-	Richard Hughes <richard at hughsie.com> - he got them from
-	http://homel.vsb.cz/~pop036/files/acpi_toshiba.c
-
-2005-02-28  David Zeuthen  <davidz at redhat.com>
-
-	* tools/linux/hal_hotplug.c (main): Use "hal.hotplug" instead of 
-	"hal.hotplug2" for syslog. Don't write a message for every entry.
-
-	* hald/linux2/probing/probe-volume.c (main): Only probe for fs on
-	optical disc if there is indeed data on the disc
-
-	* hald/linux2/probing/probe-storage.c (main): Fix up debug outputs;
-	don't read fs on cdrom's, only check if there is a disc. Don't use
-	O_NONBLOCK on non-cdrom's.
-
-	* hald/linux2/classdev.c (add_classdev_probing_helper_done): Handle
-	that HalDevice object is already unreffed
-
-	* hald/linux2/blockdev.c (add_blockdev_probing_helper_done): Handle
-	that HalDevice object is already unreffed
-	(block_rescan_storage_done): -do-
-
-	* hald/util.h (struct HalHelperData_s): Add already_issued_kill field
-
-	* hald/util.c (hal_util_terminate_helper): Don't kill helpers twice
-	and don't callback more than once
-	(helper_child_timeout): Don't callback more than once
-	(helper_device_object_finalized): Finalized; being called when
-	a HalDevice object is finalized; use this as hint to terminate
-	the helper
-	(helper_child_exited): Remove the weak reference to the HalDevice
-	object
-	(hal_util_helper_invoke): Create a weak reference to the HalDevice
-	object so we get a callback when it's finalized
-
-	* hald/hald.c (main): Bah, put LIBEXECDIR at the end so we get
-	the local helpers when running via run-hald.sh
-
-2005-02-27  David Zeuthen  <davidz at redhat.com>
-
-	More fun with valgrind :-)
-
-	* hald/linux2/classdev.c: Fix a bunch of leaks by calling
-	g_object_unref for HalDevice objects that goes away
-
-	* hald/linux2/physdev.c: Fix a bunch of leaks by calling
-	g_object_unref for HalDevice objects that goes away
-
-	* hald/linux2/hotplug.c (hotplug_event_begin_sysfs): Don't
-	leak parent_path
-
-	* hald/linux2/coldplug.c (free_hash_sys_to_class_in_dev): New
-	function; to free values of the sysfs_to_class_in_devices_map
-	hashtable
-	(coldplug_synthesize_events): Fix memory leaks
-
-	* hald/linux2/blockdev.c: Fix a bunch of leaks by calling
-	g_object_unref for HalDevice objects that goes away
-
-	* hald/property.c (hal_property_set_string): Don't leak old value
-
-	* hald/hald_dbus.c (sender_has_privileges): Fixup error handling
-	(device_property_atomic_update_end): Fix memory leak
-
-	* hald/hald.h: Add HALD_MEMLEAK_DBG but uncomment it by default
-
-	* hald/hald.c (my_shutdown): New function, defined only if
-	HALD_MEMLEAK_DBG is set; should prolly be invoked by handler
-	registered with atexit(3); some day in the future
-	(osspec_probe_done): Add appropriate timeout if HALD_MEMLEAK_DBG
-	is et
-
-	* hald/device.c (hal_device_finalize, hal_device_new): Recognize
-	the HALD_MEMLEAK_DBG define and maintain dbg_hal_device_object_delta
-	accordingly.
-	(hal_device_set_udi): Don't leak old udi
-
-	* hald/valgrind-hald.sh: New file - useful for finding memory
-	leaks
-
-2005-02-27  David Zeuthen  <davidz at redhat.com>
-
-	Played around with Valgrind on this slow Sunday :-). Before this
-	patch options 'valgrind --show-reachable=yes --leak-check=yes
-	--tool=memcheck ./hald --daemon=no --retain-privileges' - remember
-	to set up environment variables as in run-hald.sh. Some of the
-	output:
-
-	497664 bytes in 486 blocks are still reachable in loss record 33 of 35
-	     at 0x1B908984: malloc (vg_replace_malloc.c:131)
-	     by 0x4DE983: (within /usr/lib/libexpat.so.0.5.0)
-	     by 0x4E1729: XML_ParserCreate_MM (in /usr/lib/libexpat.so.0.5.0)
-	     by 0x4E17C1: XML_ParserCreate (in /usr/lib/libexpat.so.0.5.0)
-
-	1003104 bytes in 972 blocks are still reachable in loss record 34 of 35
-	     at 0x1B908984: malloc (vg_replace_malloc.c:131)
-	     by 0x4DD4A2: (within /usr/lib/libexpat.so.0.5.0)
-	     by 0x4DD5F1: (within /usr/lib/libexpat.so.0.5.0)
-	     by 0x4E0596: (within /usr/lib/libexpat.so.0.5.0)
-
-	2115584 bytes in 486 blocks are still reachable in loss record 35 of 35
-	     at 0x1B908984: malloc (vg_replace_malloc.c:131)
-	     by 0x4DC64E: XML_GetBuffer (in /usr/lib/libexpat.so.0.5.0)
-	     by 0x4DC91E: XML_Parse (in /usr/lib/libexpat.so.0.5.0)
-	     by 0x805093E: scan_fdi_files (device_info.c:1282)
-
-	LEAK SUMMARY:
-	   definitely lost: 20034 bytes in 769 blocks.
-	   possibly lost:   1057 bytes in 21 blocks.
-	   still reachable: 5289701 bytes in 19813 blocks.
-	   suppressed: 0 bytes in 0 blocks.
-
-	plus some illegal memory access errors. After this patch
-
-	130613 bytes in 1 blocks are still reachable in loss record 23 of 24
-	   at 0x1B908984: malloc (vg_replace_malloc.c:131)
-	   by 0x80610E2: ids_init (ids.c:514)
-	   by 0x8056A15: osspec_init (osspec.c:337)
-	   by 0x8051DF8: main (hald.c:591)
-
-	322003 bytes in 1 blocks are still reachable in loss record 24 of 24
-	   at 0x1B908984: malloc (vg_replace_malloc.c:131)
-	   by 0x806101D: ids_init (ids.c:292)
-	   by 0x8056A15: osspec_init (osspec.c:337)
-	   by 0x8051DF8: main (hald.c:591)
-
-	LEAK SUMMARY:
-	   definitely lost: 20884 bytes in 774 blocks.
-	   possibly lost:   800 bytes in 20 blocks.
-	   still reachable: 643659 bytes in 4499 blocks.
-
-	which gives us a net saving of approx 4.5MB. Sweet. (yes, this
-	ChangeLog is somewhat a weblog for me these days)
-
-	* hald/device_info.c (process_fdi_file): Fix up error handling;
-	remember to free the XML_Parser context which fixes a 4.5MB memory
-	leak on my system.
-
-	* hald/linux2/coldplug.c (coldplug_synthesize_events): Free strings
-	to seal a leak
-
-	* hald/util.h: Export hal_util_hexdump prototype
-
-	* hald/util.c (hal_util_grep_string_elem_from_file): Yikes, make
-	this a static buffer since we're returning a pointer to this
-	variable.
-	(hal_util_hexdump): New convenience function
-
-	* hald/hald_dbus.c (device_add_capability): Fixup this function to
-	actually work now that info.capabilities is a strlist
-
-	* hald/hald.c (parent_wait_for_child): Fix unneeded char buf[1].
-
-2005-02-26  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/policy/10osvendor/10-storage-policy.fdi: Fix syntax error
-
-2005-02-26  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/policy/10osvendor/10-storage-policy.fdi: Use mount point
-	'ipod' for iPod's (works better with gtkpod :-). Apply patch from
-	Daniel Serpell <daniel.serpell at aplik.cl> that I got via Sjoerd
-	Simons <sjoerd at luon.net> : The FDI rule that detects USB ZIP drive
-	and names the mountpoint is incorrectly write, so partitioned
-	ZIP's are named generically. The attached patch fixes the
-	test (lookup in the parent of the partition).
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi: Rename
-	portable_audio_player.database_type to p_a_p.type
-
-2005-02-26  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/information/10freedesktop/Makefile.am (dist_fdi_DATA): Remember
-	to dist new files
-
-2005-02-26  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.h: Add new LibHalDriveType entries
-	for ZIP, JAZ and FLASH_KEY - the latter represents a USB memory stick.
-
-	* libhal-storage/libhal-storage.c (my_strvdup): New function
-	(libhal_drive_from_udi): Fixup new detection of cameras and 
-	musicplayers. Also handle storage.drive_type zip, jaz and flash_key
-	and convert to LibHalDriveType as appropriate
-
-	* libhal/libhal.h: Fixup type for LibHalDeviceCondition
-
-	* libhal/libhal.c (filter_func): Fix up condition handling now that
-	it's a name and details string rather than a whole DBusMessage trailing
-	off. Fix up a bunch of free's due to new memory ownership semantics
-	in the new D-BUS
-	(libhal_device_query_capability): Handle this now that capabilities
-	is a strlist
-
-	* hald/device.c (hal_device_merge): info.capabilities is now a strlist
-	(hal_device_add_capability): -do-
-	(hal_device_has_capability): -do-
-	(hal_device_property_strlist_add): Return whether element was actually
-	added
-
-	* fdi/information/10freedesktop/10-usb-zip-drives.fdi: New file
-
-	* fdi/information/10freedesktop/10-usb-music-players.fdi: New file
-
-	* fdi/information/10freedesktop/10-usb-card-readers.fdi: New file
-
-2005-02-25  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-pc-floppy.c: New file; test for floppy
-	drive
-
-	* hald/linux2/probing/Makefile.am: Add build rules for hald-probe-
-	pc-floppy
-
-	* hald/linux2/blockdev.c (blockdev_callouts_preprobing_storage_done): 
-	Do a special probe to see if the PC Floppy Drive is actually there -
-	since many IDE laptops got the controller chip but not the drive.
-	(hotplug_event_begin_add_blockdev): Learn how to spell; floppy not
-	floopy :-/
-
-2005-02-25  David Zeuthen  <davidz at redhat.com>
-
-	Get IDE Zip drives and PC Style floppy drives to work.
-
-	* hald/linux2/blockdev.c (add_blockdev_probing_helper_done): Add a
-	note that helper_data may be NULL
-	(blockdev_callouts_preprobing_storage_done): Don't probe non-
-	partitioned media where we cannot check for media 
-	(hotplug_event_begin_add_blockdev): Fix up for PC floppy drives. Fix
-	stoopid bug where == 0 was missing for strcmp (media, "floppy). Doh
-
-	* fdi/policy/10osvendor/10-storage-policy.fdi: Remove selinux
-	mount options here because it is handled elsewhere now
-
-2005-02-25  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* volume_id/logging.h: Move HAL specific logging to this file.
-
-	* volume_id/luks.c: (volume_id_probe_luks): Remove unused stuff.
-
-	* volume_id/luks.h: Fix typo and copyright.
-
-	* volume_id/reiserfs.c: (volume_id_probe_reiserfs): Support reiser4.
-
-	* volume_id/volume_id.c: Include luks.h.
-
-	* volume_id/volume_id.h: Version 36. Remove HAL specific logging.
-
-2005-02-25  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald_dbus.c (hald_dbus_filter_function): Patch from Ray Strode
-	<rstrode at redhat.com> to catch up with D-BUS changes
-
-2005-02-24  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Add back selinux detection; default to auto
-
-	* tools/linux/add_selinux.c: New file, add selinux attributes the
-	Right Way(tm) instead of hardcoding the context (RH bug 135765)
-
-	* tools/linux/Makefile.am: If HAVE_SELINUX is set, add build rules
-	for hald-add-selinux-mount-option
-
-	* fdi/policy/10osvendor/20-storage-add-selinux.fdi: New file, invoke
-	hald-add-selinux-mount-option (only used if HAVE_SELINUX is 1)
-
-	* tools/linux/hal_hotplug_map.c: Removed (forgot to remove it earlier)
-
-2005-02-24  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald.c (parent_wait_for_child): Fixup accidental message being
-	printed
-
-2005-02-24  David Zeuthen  <davidz at redhat.com>
-
-	Finally got around to implementing the bit that made the parent wait
-	for device probing when daemonizing. Hope that it's right this time
-	cause the last time it resulted in breaking peoples pkg updates :-):
-	
-	https://www.redhat.com/archives/fedora-test-list/2004-August/msg00785.html	
-
-	* hald/linux2/osspec.c (hotplug_queue_now_empty): New function; call
-	osspec_probe_done if we're initialising and don't do anything else
-
-	* hald/linux2/hotplug.h: Export prototype for hotplug_queue_now_empty
-
-	* hald/linux2/hotplug.c (hotplug_event_process_queue): Call the
-	function hotplug_queue_now_empty when we are out of hotplug (or
-	coldplug :-) events to process.
-
-	* hald/hald.c (handle_sigchld): New function
-	(parent_wait_for_child): New function
-	(main): Wait for child to finish device probing when daemonizing
-
-2005-02-24  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/osspec.c (osspec_shutdown): Remove this function
-
-	* hald/dummy/osspec.c (computer_callouts_add_done): New function
-	(osspec_probe): Fixup to use new di_search_and_merge stuff
-
-	* hald/util.h: Export prototype for hal_util_kill_all_helpers
-
-	* hald/util.c (helper_child_exited): Remove from running_helpers list
-	(hal_util_helper_invoke): Add to running_helpers list
-	(hal_util_kill_all_helpers): New function (uses running_helpers list)
-
-	* hald/osspec.h: Don't export osspec_shutdown and osspec_shutdown_done
-
-	* hald/haldaemon.in: No need to add @LIBEXECDIR@ to PATH now that
-	hald does that itself
-
-	* hald/hald.c (main): Add PACKAGE_LIBEXEC_DIR to out path. Fix a fd
-	leak also (pointed out by Kay Sievers).
-	(sigterm_iochn_data): Kill all pending helpers and exit
-
-	* hald/device_info.c (di_search_and_merge): Fixup some stupid typos
-
-	* hald/Makefile.am (INCLUDES): Include PACKAGE_LIBEXEC_DIR
-
-2005-02-24  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/README: Change so this fits better with current packaging
-	policies; see this message and thread at
-	http://lists.freedesktop.org/archives/hal/2005-February/002217.html
-
-	* fdi/preprobe/*/Makefile.am, fdi/information/*/Makefile.am,
- 	fdi/policy/*/Makefile.am: Fix up Makefile.am to install to the
-	correct location. Also add 10-ide-drives.fdi to
-
-	* fdi/preprobe/10osvendor/Makefile.am (dist_fdi_DATA): Add 
-	10-ide-drives.fdi
-
-	* hald/device_info.c (di_search_and_merge): Use new search
-	logic as outlined in fdi/README
-
-2005-02-24  David Zeuthen  <davidz at redhat.com>
-
-	* tools/Makefile.am: Don't install the 50-fstab-sync.hal symlink
-	as we do callouts in a different way now!
-
-	* hald/haldaemon.in: Until privilege separation is complete, run
-	with --retain-privileges. Also export LIBEXECDIR as our addons
-	and probers will be installed there
-
-2005-02-24  David Zeuthen  <davidz at redhat.com>
-
-	Fix a few things to get 'make distcheck' to succeed.
-
-2005-02-24  David Zeuthen  <davidz at redhat.com>
-
-	* tools/linux/hal_hotplug_map.c: Removed
-
-	* tools/linux/Makefile.am: Remove build rules for hal-hotplug-map
-
-	* hald/linux2/physdev.c: Callouts now take two userdata pointers
-	(physdev_callouts_preprobing_done): New function
-	(hotplug_event_begin_add_physdev): Run preprobing callouts
-	just before real probing (flow continues in the above function)
-
-	* hald/linux2/osspec.c: Callouts now take two userdata pointers
-
-	* hald/linux2/classdev.c: Callouts now take two userdata pointers
-	(classdev_callouts_preprobing_done): New function
-	(hotplug_event_begin_add_classdev): Run preprobing callouts
-	just before real probing (flow continues in the above function)
-
-	* hald/linux2/blockdev.c: Callouts now take two userdata pointers
-	(blockdev_callouts_preprobing_storage_done): New function
-	(blockdev_callouts_preprobing_volume_done): New function
-	(hotplug_event_begin_add_blockdev): Run preprobing callouts just
-	before real probing (flow continues in the two above
-	functions)
-
-	* hald/linux2/apm.c: Callouts now take two userdata pointers
-
-	* hald/linux2/acpi.c: Callouts now take two userdata pointers
-
-	* hald/util.h: Fix up prototypes for callouts to take two userdata
-	pointers. Add hal_util_callout_device_preprobe prototype.
-
-	* hald/util.c: Change callouts to take two userdata pointers
-	(hal_util_callout_device_preprobe): New function
-
-	* hald/hald.c (main): Don't call hald_read_conf_file() as this
-	is now gone.
-
-	* hald/device_info.h (di_search_and_merge): Tweak prototype for
-	di_search_and_merge to take a DeviceInfoType parameter
-
-	* hald/device_info.c (di_search_and_merge): Lookup new environment
-	variables
-
-	* hald/run-hald.sh: Use new environment variables for specifying
-	fdi file location
-
-	* hald/debug-hald.sh: Use new environment variables for specifying
-	fdi file location
-
-	* hald/Makefile.am: Don't link with libselinux and don't install
-	callout directories
-	(hald_test_SOURCES): Remove hald_conf.[ch]
-	(hald_SOURCES): Remove hald_conf.[ch].
-
-	* configure.in: Add notes about how to tweak the hal tarball for a
-	particular distribution or OS. Rework the details a bit. Remove the
-	hotplug_map rules. Remove selinux bits (for now). Rework what fdi
-	file directory Makefile's to generate.
-
-	* hald/hald.conf: Removed
-
-	* hald/hald_conf.[ch]: Removed
-
-	* fdi/Makefile.am (SUBDIRS): Specificy new subdirs
-
-	* fdi/preprobe: New
-
-	* fdi/preprobe/Makefile.am: New
-
-	* fdi/preprobe/10osvendor: New
-
-	* fdi/preprobe/10osvendor/10-ide-drives.fdi: New
-
-	* fdi/preprobe/10osvendor/Makefile.am: New
-
-	* fdi/preprobe/20thirdparty: New
-
-	* fdi/preprobe/20thirdparty/Makefile.am: New
-
-	* fdi/preprobe/30user: New
-
-	* fdi/preprobe/30user/Makefile.am: New
-
-	* fdi/information: New
-
-	* fdi/information/Makefile.am: New
-
-	* fdi/information/10freedesktop: New
-
-	* fdi/information/10freedesktop/Makefile.am: New
-
-	* fdi/information/20thirdparty: New
-
-	* fdi/information/20thirdparty/Makefile.am: New
-
-	* fdi/information/30user: New
-
-	* fdi/information/30user/Makefile.am: New
-
-	* fdi/policy: New
-
-	* fdi/policy/Makefile.am: New
-
-	* fdi/policy/10osvendor: New
-
-	* fdi/policy/10osvendor/10-storage-policy.fdi: New
-
-	* fdi/policy/10osvendor/10-power-mgmt-policy.fdi: New
-
-	* fdi/policy/10osvendor/90-fstab-sync.fdi: New
-
-	* fdi/policy/10osvendor/Makefile.am: New
-
-	* fdi/policy/20thirdparty: New
-
-	* fdi/policy/20thirdparty/Makefile.am: New
-
-	* fdi/policy/30user: New
-
-	* fdi/policy/30user/Makefile.am: New
-
-	* fdi/README: New file to describe the new directory structure
-
-2005-02-23  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/blockdev.c (force_unmount): Change to use new prototype
-	for device_send_signal_condition
-
-	* hald/hald_dbus.h: Adjust prototype for device_send_signal_condition
-
-	* hald/hald_dbus.c (device_send_signal_condition): Change a Condition
-	to not take an arbitrary message byt just a (name, details) tupple
-
-	* hald/debug-hald.sh: Add some helpful instructions
-
-2005-02-23  David Zeuthen  <davidz at redhat.com>
-
-	* libhal/libhal.c (libhal_ctx_init): Add a small fix here wrt.
-	error handling
-
-2005-02-22  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/README: New file describing the various uses of device
-	information files.
-
-2005-02-22  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/osspec.c: Use kernel events layer instead of D_NOTIFY
-	on /etc/mtab. Yay!
-
-	* hald/linux2/blockdev.c (update_mount_point): Use /proc/mounts as
-	we're now using the kernel events layer to get mount/umount signals
-	rather than waiting for /etc/mtab to be changed. Otherwise we've
-	would have a race with mount(1). Add some usable debug information.
-	(blockdev_mount_status_changed): Renamed from blockdev_mtab_changed.
-
-	* hald/hald_dbus.c (device_send_signal_property_modified): Yikes,
-	append to the right iterator; fixes segfault
-
-2005-02-22  David Zeuthen  <davidz at redhat.com>
-
-	* libhal/libhal.c: Patch from John (J5) Palmieri
-	<johnp at redhat.com>. Most libhal methods now require an additional
-	DBusError pointer to be passed into the method.  Sometimes errors
-	are expected in a world where device can be added or removed at
-	any moment.  These errors can be handled based on the return value
-	of the method and do not need the extra verbosity that the dbus
-	errors provide.  Attached is a patch which allows a NULL value to
-	be passed to all methods which read HAL keys indicating that a
-	dbus error is not needed thereby freeing the programmer from
-	having to initialize and free dbus error objects when they are not
-	needed.
-
-2005-02-22  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/classdev.c (usbclass_add): Also set 
-	printer.physical_device
-
-2005-02-22  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-printer.c: New file
-
-	* hald/linux2/probing/Makefile.am: Add build rules for 
-	hald-probe-printer
-
-	* hald/linux2/classdev.c (usbclass_add, usbclass_get_prober)
-	(usbclass_compute_udi): Add support for USB printers
-
-2005-02-22  David Zeuthen  <davidz at redhat.com>
-
-	* tools/device-manager/DeviceManager.py:
-	(DeviceManager.device_changed): Make this work again after the D-BUS
-	updates
-
-2005-02-22  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald_dbus.c (device_property_atomic_update_end): Send changes
-	as an array to ensure that PropertyModified signal always has two 
-	parameters
-	(device_send_signal_property_modified): -do-
-
-	* libhal/libhal.c (filter_func): Fix up to receive PropertyModified
-	in the new format	
-
-2005-02-22  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/osspec.c (osspec_init): Small fix for the kobject_uevent
-	stuff
-
-	* hald/hald_dbus.c (manager_find_device_by_capability): Patch from
-	John (J5) Palmieri <johnp at redhat.com> Attached is a simple patch
-	to fix the signature of the array container we are opening.
-
-2005-02-16  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Update volume_id to version 34. Add support for hpfs, cramfs and romfs.
-	some trivial cleanups.
-
-	* volume_id/Makefile.am:
-
-	* volume_id/cramfs.c: (volume_id_probe_cramfs):
-
-	* volume_id/cramfs.h:
-
-	* volume_id/dasd.c: (volume_id_probe_dasd):
-
-	* volume_id/dasd.h:
-
-	* volume_id/ext.c: (volume_id_probe_ext):
-
-	* volume_id/fat.c: (volume_id_probe_vfat):
-
-	* volume_id/hfs.c: (volume_id_probe_hfs_hfsplus):
-
-	* volume_id/highpoint.c: (volume_id_probe_highpoint_ataraid):
-
-	* volume_id/hpfs.c: (volume_id_probe_hpfs):
-
-	* volume_id/hpfs.h:
-
-	* volume_id/iso9660.c: (volume_id_probe_iso9660):
-
-	* volume_id/jfs.c: (volume_id_probe_jfs):
-
-	* volume_id/linux_raid.c: (volume_id_probe_linux_raid):
-
-	* volume_id/linux_swap.c: (volume_id_probe_linux_swap):
-
-	* volume_id/lvm.c: (volume_id_probe_lvm1), (volume_id_probe_lvm2):
-
-	* volume_id/mac.c: (volume_id_probe_mac_partition_map):
-
-	* volume_id/msdos.c: (volume_id_probe_msdos_part_table):
-
-	* volume_id/ntfs.c: (volume_id_probe_ntfs):
-
-	* volume_id/reiserfs.c: (volume_id_probe_reiserfs):
-
-	* volume_id/romfs.c: (volume_id_probe_romfs):
-
-	* volume_id/romfs.h:
-
-	* volume_id/sysv.c: (volume_id_probe_sysv):
-
-	* volume_id/sysv.h:
-
-	* volume_id/udf.c: (volume_id_probe_udf):
-
-	* volume_id/ufs.c: (volume_id_probe_ufs):
-
-	* volume_id/util.h:
-
-	* volume_id/volume_id.c: (volume_id_probe_all):
-
-	* volume_id/volume_id.h:
-
-	* volume_id/xfs.c: (volume_id_probe_xfs):
-
-
-2005-02-16  David Zeuthen  <davidz at redhat.com>
-
-	* volume_id/luks.[ch]: New files (forgot to commit before) 
-
-	* hald/linux2/probing/shared.h: Redefine logging a bit
-
-	* hald/linux2/probing/probe-volume.c: Use new shared.h logging;
-	implement volume_id_log and drive_id_log functions
-
-	* hald/linux2/probing/probe-storage.c: Use new shared.h logging;
-	implement volume_id_log and drive_id_log functions
-
-	* hald/linux2/addons/addon-storage.c: Use new shared.h logging
-
-	* drive_id/logging.h: Use drive_id_log function
-
-	* drive_id/drive_id.h (drive_id_log): Add drive_id_log prototype
-
-2005-02-16  David Zeuthen  <davidz at redhat.com>
-
-	Fix up more sloppy errors incuded from patches that I should
-	have reviewed more carefully :-/
-
-	* libhal-storage/libhal-storage.c: Match against
-	LIBHAL_PROPERTY_TYPE_*, not DBUS_TYPE_*
-	(libhal_drive_policy_default_use_managed_keyword):
-	(libhal_drive_policy_default_get_mount_root):
-	(libhal_drive_policy_default_use_managed_keyword):
-	(libhal_drive_policy_default_get_managed_keyword_primary):
-	(libhal_drive_policy_default_get_managed_keyword_secondary):
-	(libhal_drive_policy_get_mount_options):
-	(libhal_volume_policy_get_mount_options): Yikes, Yikes, rename
-	"/org/freedesktop/LibHal" back to "/org/freedesktop/Hal"
-
-	* libhal/libhal.c (libhal_property_fill_value_from_variant): p->type
-	wasn't being assigned :-/. Also, DBUS_TYPE_BOOLEAN wasn't handled.
-
-	* hald/hald_test_libhal.c (check_libhal): Fix this test
-
-2005-02-16  David Zeuthen  <davidz at redhat.com>
-
-	Patch from W. Michael Petullo <mike at flyn.org>. Attached you should
-	find a patch that begins to add LUKS support to hald. This should
-	eventually provide an easy means to mount encrypted filesystems.
-	Currently, hald only detects that a disk contains a LUKS header
-	and sets some relevant parameters.
-
-	* volume_id/volume_id.h: Add VOLUME_ID_CRYPTO to volume_id_usage enum
-
-	* volume_id/util.c (usage_to_string): Add LUKS string
-
-	* volume_id/volume_id.c (volume_id_probe_all): Also test for LUKS magic
-
-	* volume_id/Makefile.am (libvolume_id_la_SOURCES): Include luks.[ch]
-
-	* hald/linux2/probing/probe-volume.c (set_volume_id_values): Supprt
-	the VOLUME_ID_CRYPTO type
-
-2005-02-16  David Zeuthen  <davidz at redhat.com>
-
-	Patch from John (J5) Palmieri <johnp at redhat.com>.
-
-	* libhal-storage/libhal-storage.[ch]: Rename all functions, symbols
-	and defines from hal_storage to libhal_storage.
-
-	* tools/fstab-sync.c: Update for changes in libhal-storage
-
-2005-02-16  David Zeuthen  <davidz at redhat.com>
-
-	* tools/device-manager/DeviceManager.py:
-	(DeviceManager.update_tab_advanced): Make this work for string lists
-
-	* tools/lshal.c (main): Various cleanups
-
-	* libhal/libhal.c (libhal_property_fill_value_from_variant): Make
-	this one static. Make sure to recurse into string array otherwise
-	it won't work at all
-	(libhal_get_string_array_from_iter): Make this static. Take
-	num_elems pointer
-	(libhal_property_set_get_num_elems): New function
-	(libhal_get_all_devices): Pass num_devices to
-	libhal_get_string_array_from_iter
-	(libhal_ctx_shutdown): Remove match and filter function
-	(libhal_ctx_free): Implement this one; free our context
-
-	* libhal/libhal.h: Add prototype for libhal_property_set_get_num_elems
-
-	* hald/hald_test_libhal.c (check_libhal): Add tests for the property
-	set functions as they were failing (see changes above)
-
-	* hald/Makefile.am (hald_test_SOURCES): Remove callout.[ch] as they
-	are now gone
-
-2005-02-14  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Require dbus >= 0.30
-
-2005-02-11  John (J5) Palmieri  <johnp at redhat.com>
-
-	* hald/device.c, hald/device_info.c, hald/property.c, hald/property.h,
-	tools/hal_set_property.c, tools/hal_get_property.c: 
-	s/HAL_PROPERTY_TYPE_NIL/HAL_PROPERTY_TYPE_INVALID
-
-	* hald/hald_dbus.c: ported to new dbus-0.30 API
-	(foreach_property_append): implemented real string lists 
-	and got rid of the \tval\tval\tval\t hack
-
-	* libhal/libhal.c: ported to new dbus-0.30 API
-	s/HAL_PROPERTY_TYPE_NIL/HAL_PROPERTY_TYPE_INVALID
-	(libhal_get_string_array_from_iter): new helper function to create
-	string arrays from dbus arrays
-	(libhal_property_fill_value_from_variant): new helper function
-	that fills in properties from variants.  Used when getting
-	a hash of properties from hald
-
-	* libhal/libhal.h: s/HAL_PROPERTY_TYPE_NIL/HAL_PROPERTY_TYPE_INVALID
-	HAL_PROPERTY_TYPE_INVALID = DBUS_TYPE_INVALID
-
-	* hald/hald_test_libhal.c: ported to new dbus-0.30 API
-	Added success messages and more detailed failed messages
-
-	* hald/util.c (hal_util_compute_udi): Change all illegal characters
-	to underscores '_'
-
-	* tools/device-manager/DeviceManager.py
-	(DeviceManager::__init__, add_device_signal_recv): 
-	change add_signal_receiver calls to add expand_args=False parameter.
-	(DeviceManager::device_changed, gdl_changed): changed handlers
-	to conform with the new way we call signal handlers
-
-2005-02-11  David Zeuthen  <davidz at redhat.com>
-
-	* Makefile.am (SUBDIRS): Rearrange order so volume_id and drive_id
-	is built before anything else.
-
-2005-02-11  David Zeuthen  <davidz at redhat.com>
-
-	With this path, all storage devices should be working just as
-	well as on the 0.4.x branch. 
-
-	In fact, since we're doing things in separate processes hald now
-	nicely handles my very troublesome USB 6in1 card reader. There's
-	other improvements too; we handle media with non-partitioned file
-	systems _a lot nicer_, especially those on PCMCIA card
-	readers (driven by ide-cs) since we now have logic to discard
-	hotplug rem/add for those partitions.
-
-	Rock on.
-
-	* libhal/libhal.h: Add prototypes for libhal_device_rescan()
-	and libhal_device_reprobe()
-
-	* libhal/libhal.c (libhal_device_rescan): New function
-	(libhal_device_reprobe): New function
-
-	* hald/linux2/probing/probe-volume.c (main): Be able to probe for
-	volumes on main block devices. Retrieve optical disc properties
-	if applicable.
-
-	* hald/linux2/probing/probe-storage.c (is_mounted): New function
-	(main): Add a new option --only-check-for-media which is used on
-	Rescan() of a storage device. Check for fs on main block device or
-	a disc in the optical drive. Return code 2 if that is the case.
-
-	* hald/linux2/addons/addon-storage.c (force_unmount): New function
-	(unmount_childs): New function
-	(is_mounted): New function
-	(main): Do lazy unmount, if necessary, when media goes away. Handle
-	polling on optical drives.
-
-	* hald/linux2/hotplug.h: Add prototype for hotplug_event_reposted()
-	and hotplug_event_enqueue_at_front().
-
-	* hald/linux2/hotplug.c (hotplug_event_reposted): New function;
-	like event_end but without deleting the hotplug event (useful
-	for reordering events)
-	(hotplug_event_enqueue_at_front): New function; to insert events
-	at the front of the queue
-
-	* hald/linux2/blockdev.c:
-	(generate_fakevolume_hotplug_event_add_for_storage_device): New
-	function (and what a nice long name :-/)
-	(add_blockdev_probing_helper_done): Check result from hald-probe-
-	storage and add a new fakevolume add event if one was detected.
-	(hotplug_event_begin_add_blockdev): Handle fakevolume add events.
-	Add some more debug spewage when things fail.
-	(force_unmount): New function
-	(hotplug_event_begin_remove_blockdev): Handle fakevolume remove
-	events; reorder queue to process non-handled volume before
-	the storage device. Nice.
-	(block_rescan_storage_done): New function
-	(blockdev_rescan_device): Actually do something here; a Rescan()
-	method call on a storage device will induce searching a filesystem
-	on the main block device
-
-	* hald/hald.c (main): Add new master_slave code but comment it out
-	for now
-
-	* fdi/20freedesktop/lexar-media-cf-reader.fdi: Fix up
-
-	* fdi/20freedesktop/6in1-card-reader.fdi: Fix up to use new way
-	of figuring vendor_id/product_id etc.
-
-2005-02-10  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: From Richard Hughes <richard at hughsie.com> I've
-	also attached a patch that adds libexec to configure.in
-
-2005-02-10  David Zeuthen  <davidz at redhat.com>
-
-	* volume_id/fat.c (volume_id_probe_vfat): Must have been a typo by Kay,
-	changed from VOLUME_ID_DISKLABEL to VOLUME_ID_FILESYSTEM.
-
-	* tools/fstab-sync.c (remove_udi): Remember to init the DBusError since
-	some operations may fail.
-	(main): Look at $HALD_ACTION for add, remove instead of first 
-	positional parameter $1.
-
-	* hald/linux2/probing/probe-volume.c: New file
-
-	* hald/linux2/probing/probe-storage.c: New file
-
-	* hald/linux2/probing/linux_dvd_rw_utils.[ch]: New files (imported
-	from hal-0.4.x)
-
-	* hald/linux2/probing/Makefile.am: Add rules for hald-probe-storage
-	and hald-probe-volume
-
-	* hald/linux2/addons/addon-storage.c: New file
-
-	* hald/linux2/addons/Makefile.am: Add rules for hald-addon-storage
-
-	* hald/linux2/osspec.c (sigio_handler): New function
-	(sigio_iochn_data): New function
-	(osspec_init): Set up signal handler for SIGIO and the neccesary
-	pipes to handle it safely. Set up directory watcher for /etc and
-	invoke blockdev_mtab_changed whenever that happens
-
-	* hald/linux2/hotplug.c (hotplug_rescan_device): Call blockdev_*
-	if appropriate
-
-	* hald/linux2/blockdev.h: Add some new prototype for interacting
-	with hotplug.c (much like what physdev.h and classdev.h)
-	exported. Also add the prototype for a new function
-	blockdev_mtab_changed.
-
-	* hald/linux2/blockdev.c: Actually put some code here (the previous
-	code was just boiler plate).
-
-	* hald/util.h (struct HalHelperData_s): Add boolean already_issued_
-	callback
-
-	* hald/util.c (hal_util_get_string_from_file): Truncate whitespace
-	from string read
-	(hal_util_terminate_helper): Don't remove the child watcher source,
-	but set a flag that we already did the callback and helper_child_exited
-	will reap the child (including removing sources). This helps reap the
-	zombies I've been seeing.
-	(helper_child_timeout): -do-
-	(helper_child_exited): Only do callback if we haven't already done
-	so.
-
-	* hald/debug-hald.sh: Another nice script for running gdb on hald;
-	just run this script and invoke the run command from the gdb console.
-
-	* hald/run-hald.sh: Also export ../tools so we can get fstab-sync
-	going. Set HAL_FDI_SOURCE
-
-	* hald/device_info.c (di_search_and_merge): Respect the env
-	var HAL_FDI_SOURCE which is useful for development as hald will
-	read you local .fdi files
-
-	* fdi/90defaultpolicy/storage-policy.fdi: Temporarily add
-	fstab-sync add/rem callouts (mental note: move to other file
-	soon); also add the media detection addon
-
-	* fdi/90defaultpolicy/power-mgmt-policy.fdi: New file
-
-	* fdi/90defaultpolicy/Makefile.am (fdi90defaultpolicydir): Add
-	power-mgmt-policy.fdi
-
-2005-02-08  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/osspec.c (get_hal_proc_path): Return hal_proc_path,
-	not hal_sysfs_path. 
-
-2005-02-08  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/osspec.c: 
-	(hal_util_get_udevinfo_path):
-	(hal_util_get_device_file):
-	(hal_util_set_driver):
-	(hal_util_find_closest_ancestor): Moved to here from ../util.c
-	(get_hal_sysfs_path): New function
-	(get_hal_proc_path): New function
-	
-	* hald/linux2/osspec_linux.h: New file; export the functions
-	mentioned above
-
-2005-02-08  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Sjoerd Simons <sjoerd at luon.net>. 
-	
-	Since i seem to be in an extreme mood anyway, attached it is a
-	patch that will make hal always drop permissions to non-root. Also
-	it removes keeping the net admin capability as it's not being used
-	anymore.
-
-	I think it's the right way to do things. There should be no reason
-	to run hald as root ever and forcing it from the start of the
-	development cycle is a good way of ensuring that :)
-
-	It would also be nice to have the addons that need to start out as
-	root (like the ups one) drop permission as soon as possible (one
-	can never be too sure)... Probably a utility function would be
-	nice for that, but i don't know where to place it (as the addons
-	and probers live in different dirs)
-
-	Slightly mangled by myself to remove libcap dep and introduce
-	the --retain-privileges option.
-
-	* configure.in: Don't require libcap
-
-	* hald/Makefile.am (hald_LDADD): Don't link with libcap
-
-	* hald/run-hald.sh: Use new --retain-privileges option since this
-	is the development runscript
-
-	* hald/hald.c (usage): Remove option --drop-privileges and introduce
-	new option --retain-privileges
-	(drop_privileges): Just drop to uid/gid of specified haldaemon user
-	and group. Don't use libcap anymore.
-	(main): Enforce new --retain-privileges option since it's useful for
-	development
-
-2005-02-08  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/osspec.c: Do not care about link detection, NM and other
-	tools are going to do this on their own now.
-	(link_detection_handle_message): Remove
-	(netlink_socket_data): Remove
-	(osspec_init): Don't listen to the netlink socket
-
-	* hald/linux2/classdev.c (net_add): Do not care about link detection
-
-2005-02-08  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/physdev.c (physdev_remove): Don't remove device yet.
-	(physdev_callouts_add_done): New function
-	(physdev_callouts_remove_done): New function
-	(hotplug_event_begin_add_physdev): Do add callouts
-	(hotplug_event_begin_remove_physdev): Do remove callouts
-
-	* hald/linux2/classdev.c (classdev_remove): Don't remove device yet.
-	(classdev_callouts_add_done): New function
-	(classdev_callouts_remove_done): New function
-	(add_classdev_after_probing): Do add callouts
-	(hotplug_event_begin_remove_classdev): Do remove callouts
-
-	* hald/linux2/acpi.c (acpi_callouts_remove_done): Yikes, don't remove
-	from TDL since it's not there.
-
-2005-02-08  David Zeuthen  <davidz at redhat.com>
-
-	* hald/run-hald.sh: Update to include a few more paths
-
-	* hald/linux2/addons/Makefile.am: Add build rules for hald-addon-acpi
-
-	* hald/linux2/addons/addon-acpi.c: New file
-
-	* hald/linux2/pmu.c (pmu_synthesize_hotplug_events): Also look for
-	computer in the TDL
-
-	* hald/linux2/osspec.c (computer_callouts_add_done): New function
-	(osspec_probe): Run callouts for computer
-
-	* hald/linux2/classdev.c (add_classdev_probing_helper_done): Fix up
-	for the new helper
-
-	* hald/linux2/apm.c (apm_synthesize_hotplug_events): Also look for
-	computer in the TDL
-
-	* hald/linux2/acpi.c (acpi_synthesize_hotplug_events): Also look for
-	computer in the TDL
-	(acpi_generic_remove): Don't remove the device
-	(acpi_callouts_add_done): New function
-	(acpi_callouts_remove_done): New function
-	(hotplug_event_begin_add_acpi): Run add callouts
-	(hotplug_event_begin_remove_acpi): Run remove callouts
-
-	* hald/property.c (hal_property_to_string): Add code for string lists
-
-	* hald/hald.c (addon_terminated): New function
-	(gdl_store_changed): Run addons
-	(gdl_property_changed): Don't run property.d callouts
-	(gdl_capability_added): Don't run capability.d callouts
-
-	* hald/util.h: Move from hald/linux2 since this is generic.
-	Export the HalHelperData structure when doing
-	hal_util_helper invoke. Add prototypes for hal_util_terminate_
-	helper, hal_util_dup_strv_from_g_slist,
-	hal_util_callout_device_add, hal_util_callout_device_remove.
-
-	* hald/util.c: Move from hald/linux2 since this is generic.
-	(hal_util_terminate_helper): New function
-	(hal_util_helper_invoke): Renamed from helper_invoke. Accept
-	command line parameters (through g_shell_parse_argv). Accept a
-	strv of extra environement to set. Introduce that timeout==0 means
-	no timeout.  Return the HalHelperData structure
-	(hal_util_dup_strv_from_g_slist): New convenience function; create
-	a new NULL-terminated string vector from a GSList of strings.
-	(callout_terminated): New function
-	(callout_do_next): New function
-	(hal_callout_device): New function
-	(hal_util_callout_device_add): New function
-	(hal_util_callout_device_remove): New function
-
-	* hald/linux2/util.[ch]: Remove
-
-	* hald/callout.[ch]: Remove since this functionality is now in util.[ch]
-
-	* hald/Makefile.am: Add util.[ch]
-
-	* hald/linux2/Makefile.am: Remove util.[ch]
-
-2005-02-07  David Zeuthen  <davidz at redhat.com>
-
-	* drive_id/*: Add new drive_id library from Kay
-
-	* volume_id/*: Add new volume_id library from Kay
-
-	* Makefile.am: Add drive_id and volume_id to SUBDIRS
-
-	* configure.in: Add drive_id and volume_id to AC_OUTPUT
-
-2005-02-04  David Zeuthen  <davidz at redhat.com>
-
-	* doc/spec/hal-spec.xml.in: Added docs for battery.remaining_time
-
-	* hald/linux2/classdev.c (input_get_prober): New function
-	(usbclass_add): New function
-	(usbclass_get_prober): New function
-	(usbclass_compute_udi): New function
-	(add_classdev_probing_helper_done): Check if post_probing is NULL
-	(hotplug_event_begin_add_classdev): Use function to get prober since
-	e.g. class usb covers multiple devices, e.g. hiddev, printers etc.
-
-	* hald/linux2/probing/probe-hiddev.c: New file; probe for application
-	pages a HIDDEV supports and add to hiddev.application_pages strlist
-
-	* hald/linux2/addons/addon-hid-ups.c: Detect UPS's on USB HID
-	interfaces and create plus maintain battery.* properties.
-
-	* hald/linux2/addons/Makefile.am: New file
-
-	* hald/linux2/Makefile.am (SUBDIRS): Add addons directory
-
-	* configure.in: Add hald2/linux2/addons/Makefile.am to AC_OUTPUT
-
-2005-02-03  David Zeuthen  <davidz at redhat.com>
-
-	* hald/device_info.c (handle_match): Handle contains and
-	contains_ncase for strlist properties. Also allow <merge key="foo"
-	type="strlist> blah</merge> to create a new strlist; possibly
-	destroy an existing strlist with the single elem 'blah'.
-	(handle_append_prepend): Renamed from handle_append since it also
-	covers prepend now and supports strlist's.
-	(handle_remove): New function to cover <remove key="foobar"
-	type="strlist">blah</remove> (removes element 'blah' from strlist
-	'foobar') and <remove key="foobar"/> to completely remove a
-	property.
-	(start): Support <prepend> on both strings and strlists. Support
-	<remove>
-	(end): Support the new directives.
-
-	Here is an example of the new directives; I'm pasting it here
-	so it's handy when the spec needs to be updated. Oh, and for
-	when I get around to adding test cases for this :-)
-
-	<append key="bat0" type="string">foo0</append>
-	<merge key="baz0" type="strlist">foz0</merge>
-	<append key="bar0" type="strlist">foo0</append>
-	<append key="bar0" type="strlist">foo1</append>
-	<append key="bar0" type="strlist">foo2</append>
-	<append key="bar0" type="strlist">foo3</append>
-
-	<prepend key="dat0" type="string">foo0</prepend>
-	<merge key="daz0" type="strlist">foz0</merge>
-	<prepend key="dar0" type="strlist">foo0</prepend>
-	<prepend key="dar0" type="strlist">foo1</prepend>
-	<prepend key="dar0" type="strlist">foo2</prepend>
-	<prepend key="dar0" type="strlist">foo3</prepend>
-
-	<remove key="t1" type="strlist">val1</remove>
-	<remove key="t2"/>
-	<remove key="t3"/>
-
-2005-02-02  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/pmu.[ch]: New files
-
-	* hald/linux2/util.h: Add prototypes for
-	hal_util_grep_string_elem_from_file and
-	hal_util_grep_int_elem_from_file.
-
-	* hald/linux2/util.c (hal_util_grep_file): Allow file to be NULL
-	or empty and handle it correctly
-	(hal_util_grep_string_elem_from_file): New function
-	(hal_util_grep_int_elem_from_file): New function
-	(hal_util_set_string_elem_from_file): Simplify by using
-	hal_util_grep_string_elem_from_file
-	(hal_util_set_int_elem_from_file): Simplify by using
-	hal_util_grep_string_elem_from_file
-
-	* hald/linux2/osspec.c (osspec_probe): Refine algorithm for selecting
-	power management system since PMU based systems may simultaneously
-	support APM as well.
-
-	* hald/linux2/hotplug.h: Add PMU hotplug event
-
-	* hald/linux2/hotplug.c (hotplug_event_begin_pmu): New function
-	(hotplug_event_begin): Handle PMU
-	(hotplug_rescan_device): Handle PMU
-	(hotplug_reprobe_generate_remove_events): Handle PMU
-	(hotplug_reprobe_generate_add_events): Handle PMU
-
-	* hald/linux2/classdev.c (hotplug_event_begin_add_classdev): Only
-	set linux.device_file if there really is a device file
-
-	* hald/linux2/acpi.c (battery_refresh): Use maximum instead of
-	maximum_specified
-
-	* hald/linux2/Makefile.am: Add pmu.[ch]
-
-2005-02-02  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/apm.[ch]: New files
-
-	* hald/linux2/util.c (helper_invoke): Remember to initialize the
-	error object to NULL
-
-	* hald/linux2/osspec.c (osspec_probe): Only try APM if ACPI fails
-
-	* hald/linux2/hotplug.c (hotplug_event_begin_apm): New function
-	(hotplug_event_begin): Handle APM
-	(hotplug_rescan_device): Handle APM
-	(hotplug_reprobe_generate_remove_events): Handle APM
-	(hotplug_reprobe_generate_add_events): Handle APM
-
-	* hald/linux2/acpi.c (acpi_synthesize): Remember to set error to
-	NULL and don't leak the error object
-	(acpi_generate_remove_hotplug_event): Make this function return
-	a boolean to say whether ACPI capabilities were detected
-
-	* doc/spec/hal-spec.xml.in: Update the spec a bit more on battery.*
-
-2005-02-02  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-input.c (main): Fix up error handling
-	here so Reprobe() on the root, /org/freedesktop/Hal/devices/computer,
-	actually works; here's some python to do that
-
-	#!/usr/bin/python
-
-	import dbus
-
-	bus = dbus.Bus (dbus.Bus.TYPE_SYSTEM)
-	hal_service = bus.get_service ('org.freedesktop.Hal')
-	d = hal_service.get_object ('/org/freedesktop/Hal/devices/computer', 
-	                            'org.freedesktop.Hal.Device')
-	d.Reprobe()
-
-2005-02-02  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/osspec.c: Adjust for changes in hotplug.h.
-	(osspec_device_rescan): New function
-	(osspec_device_reprobe): New function
-
-	* hald/linux2/hotplug.h: Extend HotplugEvent struct to also be used
-	for coldplugging/fake hotplugging (via Reprobe()) of ACPI devices.
-	Add prototypes for hotplug_reprobe_tree() and hotplug_rescan_device().
-
-	* hald/linux2/hotplug.c: Adjust to changes in hotplug.h
-	(hotplug_event_begin_sysfs): New function; what used to be the
-	function hotplug_event_begin().
-	(hotplug_event_begin_acpi): New function
-	(hotplug_event_begin): Now a simple dispatcher according to hotplug
-	type; e.g. sysfs or acpi
-	(hotplug_rescan_device): New function
-	(hotplug_reprobe_generate_remove_events): New function
-	(hotplug_reprobe_generate_add_events): New function
-	(hotplug_reprobe_tree): New function
-
-	* hald/linux2/coldplug.c: Adjust to changes in hotplug.h
-
-	* hald/linux2/classdev.h: Add prototypes for classdev_generate_
-	[add|remove]_hotplug_event() and classdev_rescan_device().
-
-	* hald/linux2/classdev.c (hotplug_event_begin_add_classdev): Add
-	some properties so we can reconstruct the hotplug event
-	(classdev_rescan_device): New function
-	(classdev_generate_add_hotplug_event): New function
-	(classdev_generate_remove_hotplug_event): New function
-
-	* hald/linux2/acpi.[ch]: Yikes, rewrite must of this to conform to
-	the hotplug model so we can do Rescan() and Reprobe()
-
-	* hald/osspec.h: Add prototypes for osspec_device_[rescan|reprobe]
-
-	* hald/hald_test_libhal.c (send_tests_done): New function
-	(check_libhal): Add some more tests and report back
-
-	* hald/hald_test.c (check_properties): Fixup wrong failure reports
-	(server_message_handler): Add new methods on the org.freedesktop.Hal.
-	Tests interfaces to signal that a test is done
-	(wait_for_external_test): New function; pretty ugly but it works
-	for now. As noted: Patches are Welcome(tm)
-	(main): Enable libhal tests
-
-	* hald/hald_dbus.c (device_rescan): New function
-	(device_reprobe): New function
-	(hald_dbus_filter_function): Add checks for Rescan() and Reprobe()
-	methods on the org.freedesktop.Hal.Device interface
-
-2005-02-01  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/probing/probe-input.c (main): Fix a bug here where
-	we checked for the wrong return value of libhal_ctx_init.
-
-2005-02-01  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Pierre Ossman <drzeus-list at drzeus.cx>. Basic MMC bus
-	support. Reads out all the information currently available. I also
-	need to add a mapping between vendor id:s an names, but I don't
-	currently have a list to base it upon.
-
-	* hald/linux2/physdev.c (mmc_add): New function
-	(mmc_compute_udi): New function
-
-2005-02-01  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Pierre Ossman <drzeus-list at drzeus.cx>.
-
-	* hald/linux2/util.c (hal_util_get_string_from_file): New function
-	(hal_util_set_string_from_file): Use the new function mentioned above
-
-2005-02-01  David Zeuthen  <davidz at redhat.com>
-
-	This is largely based on this patch
-
-	 http://lists.freedesktop.org/archives/hal/2005-January/002002.html
-
-	from Richard Hughes <richard at hughsie.com> but much mangled by
-	myself
-
-	* hald/linux2/util.c (hal_util_get_parent_path): Renamed from
-	hal_util_get_parent_sysfs_path.
-	(hal_util_grep_file): New function
-	(hal_util_set_string_elem_from_file): New function
-	(hal_util_set_int_elem_from_file): New function
-	(hal_util_set_bool_elem_from_file): New function
-
-	* hald/linux2/util.h: Add new prototypes
-
-	* hald/linux2/osspec.c (osspec_probe): Call acpi_probe.
-
-	* hald/linux2/acpi.[ch]: New files
-
-	* hald/linux2/Makefile.am (libhald_linux2_la_SOURCES): Add acpi.[ch]
-
-2005-01-31  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Prebump to 0.5.0 - but we're not doing a release yet!
-	Add libtool versioning since libhal and libhal-storage are going
-	to break API and ABI backwards compatibility.
-
-	* hald/hald_test.c: Add the beginnings of a test suite
-
-	* hald/hald_test_libhal.c: -do-
-
-	* hald/Makefile.am: Add build rules for test suite
-
-	* tools/linux/hal_hotplug_map.c: Update to use new libhal API.
-
-	* tools/lshal.c: Update to use new libhal API.
-
-	* tools/hal_set_property.c: Update to use new libhal API.
-
-	* tools/hal_get_property.c: Update to use new libhal API.
-
-	* tools/fstab-sync.c: Update to use new libhal API.
-
-	* libhal-storage/libhal-storage.c: Update to use new libhal API.
-	This library will also go through a renaming/cleanup before 0.5.0.
-
-	* libhal-storage/Makefile.am: Use library versioning
-
-	* libhal/libhal.[ch]: Prefix all function names and other identifiers
-	with libhal instead of hal. Add code for string lists. Change the
-	way libhal is initialized to be a multistep process. Use HAL_PROPERTY_
-	TYPE_* instead of DBUS_TYPE_*. Make all functions using IPC take
-	a DBusError argument for better error handling. Notable changes
-	(libhal_device_get_all_properties): Teach this function about 
-	string lists
-	(libhal_psi_get_strlist): New function
-	(hal_initialize): Removed
-	(hal_shutdown): Removed
-	(libhal_device_get_property_strlist): New function
-	(libhal_device_property_strlist_append): New function
-	(libhal_device_property_strlist_prepend): New function
-	(libhal_device_property_strlist_remove_index): New function
-	(libhal_device_property_strlist_remove): New function
-	(libhal_ctx_new): New function
-	(libhal_ctx_set_cache): New function
-	(libhal_ctx_set_dbus_connection): New function
-	(libhal_ctx_init): New function
-	(libhal_ctx_shutdown): New function
-	(libhal_ctx_free): New function
-	(libhal_ctx_set_device_added): New function
-	(libhal_ctx_set_device_removed): New function
-	(libhal_ctx_set_device_new_capability): New function
-	(libhal_ctx_set_device_lost_capability): New function
-	(libhal_ctx_set_device_property_modified): New function
-	(libhal_ctx_set_device_condition): New function
-
-	* libhal/Makefile.am: Use library versioning
-
-	* hald/linux2/probing/probe-input.c: Port to new libhal API
-
-	* hald/property.h: Rename property types to HAL_PROPERTY_TYPE_*.
-	Add prototypes for new string list properties.
-
-	* hald/property.c: Rename property types to HAL_PROPERTY_TYPE_*.
-	(hal_property_free): Teach this function about string lists.
-	(hal_property_new_strlist): New function
-	(hal_property_get_strlist): New function
-	(hal_property_strlist_append): New function
-	(hal_property_strlist_prepend): New function
-	(hal_property_strlist_remove_elem): New function
-	(hal_property_strlist_add): New function
-	(hal_property_strlist_remove): New function
-
-	* hald/hald_dbus.c: Rename property types to HAL_PROPERTY_TYPE_*.
-	Add new ugly code to handle string lists with the current D-BUS.
-	(device_string_list_append_prepend): New function
-	(hald_dbus_filter_function): Rename from filter_function. Add
-	handlers for new D-BUS methods. Export this function 
-
-	* hald/hald.[ch]: Rip out persistent property code.
-
-	* hald/device_info.c: Rename property types to HAL_PROPERTY_TYPE_*.
-
-	* hald/device.c: Rename to property to HAL_PROPERTY_TYPE_*. Rip out
-	persistent property code.
-	(hal_device_property_get_as_string): Add code for strlist type
-	(hal_device_property_get_strlist): New function
-	(hal_device_property_strlist_append): New function
-	(hal_device_property_strlist_prepend): New function
-	(hal_device_property_strlist_remove_elem): New function
-	(hal_device_property_strlist_add): New function
-	(hal_device_property_strlist_remove): New function
-
-	* hald/device.h: Add new strlist prototypes
-
-	* pstore.[ch]: Remove for now as persistent properties needs to be
-	reworked
-
-2005-01-26  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/osspec.c (link_detection_handle_message): New function.
-	(netlink_socket_data): New function
-	(osspec_init): Listen to netlink socket
-
-	* hald/linux2/hotplug.c (fixup_net_device_for_renaming): New function.
-	For coping with net interfaces being renamed before hald can handle
-	them (For testing, put in the line g_spawn_command_line_sync 
-	("/path/to/ifrename", NULL, NULL, NULL, NULL); in the top of hotplug_
-	event_begin().
-	(hotplug_event_begin): Call fixup_net_device_for_renaming()
-
-	* hald/linux2/classdev.c (net_add): Be a bit more defensive
-	about errors; export the net.80203.can_detect_link property
-
-2005-01-25  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/osspec.c (osspec_probe): Add HAL_INFO's around
-	coldplug event synthesization so we can see how long it takes.
-
-	* hald/linux2/coldplug.c: Undefine HAL_COLDPLUG_VERBOSE by default
-	to reduce log spamming.
-
-2005-01-25  David Zeuthen  <davidz at redhat.com>
-
-	Merge the changes applied to the hal-0_4-stable-branch yesterday
-
-	2005-01-24  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.c (mopts_collect): Remove debugging
-	fprintf's
-
-	2005-01-24  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.c (mopts_collect): Also remove
-	mount options if something is set to FALSE (based on patch from
-	Sebastian Dransfeld <sebastid at stud.ntnu.no>; also fix a pretty bad
-	bug where the computation of is_imply_opt were totally wrong.
-	(hal_volume_policy_get_mount_options),
-	(hal_drive_policy_get_mount_options): Collect imply options in the
-	correct order now that mopts_collect is fixed : -do-
-
-2005-01-23  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux2/util.h: Add prototypes for hal_util_set_driver () and
-	hal_util_path_ascend ().
-
-	* hald/linux2/util.c (hal_util_set_driver): New function
-	(hal_util_path_ascend): New function
-
-	* hald/linux2/physdev.c: Set both linux.sysfs_path and 
-	linux.sysfs_path_device. The former is the real sysfs path for both
-	class and bus devices while the latter always is a location in 
-	/sys/devices; incidently the latter may not always exists. The former
-	is used for remove events while the latter is used for determing
-	child/parent relationships.
-	(scsi_add): New function
-	(scsi_compute_udi): New function
-
-	* hald/linux2/ids.c (ids_find_pnp): Use strcasecmp instead of strcmp
-
-	* hald/linux2/hotplug.c (hotplug_event_begin): Cope with the fact
-	that there may be holes in /sys/devices; e.g. look at the
-	target0:0:0:0 stuff. So, for a class device ascend all the way up
-	until we find a hal device object that can be our parent.
-
-	* hald/linux2/coldplug.c: Euwh, too much simplification here; we
-	need to insert class devs between bus devs in the coldplug queue
-	as e.g. scsi_host is a class dev but sits between bus devs.
-
-	* hald/linux2/classdev.h: Make hotplug_event_begin_add_classdev take
-	the sysfs path of the corresponding device in /sys/devices (which
-	may not be a physical device, e.g. class scsi_host)
-
-	* hald/linux2/classdev.c (net_add): New function
-	(net_compute_udi): New function
-	(scsi_host_add): New function
-	(scsi_host_compute_udi): New function
-
-2005-01-22  David Zeuthen  <davidz at redhat.com>
-
-	* tools/device-manager/Const.py.in: Add pnp and serio to BUS_NAMES
-
-	* hald/linux2/physdev.c: Refactor this file a bit and add support
-	for the following bus devices: ide, pnp, serio, pcmcia
-
-	* hald/linux2/ids.h (ids_find_pnp): Add prototype
-
-	* hald/linux2/ids.c (ids_find_pnp): New function; just use
-	a hardcoded array and do a slow O(n) search (might want to
-	optimize this later)
-
-	* hald/linux2/classdev.c (add_classdev_after_probing): Compute
-	UDI may fail; remember to clean up
-
-	* hald/linux2/Makefile.am: Add pcmcia_utils.[ch] as we'll need
-	them until sysfs got the right properties
-
-	* hald/linux2/pcmcia_utils.[ch]: New files; imported from old
-	backend
-
-	* hald/linux2/pcmcia_cs.h: Ditto
-
-2005-01-19  David Zeuthen  <davidz at redhat.com>
-
-	Some more refactoring... You want to redo 'make install' to
-	get h-d-m working after this...
-
-	* hald/linux2/classdev.c:
-	(input_add): Don't set info.bus as it doesn't really make sense
-	since it is a class device
-	(input_post_probing): New function
-	(input_compute_udi): New function
-	(bluetooth_add): New function
-	(bluetooth_compute_udi): New function
-	(add_classdev_after_probing): New function
-	(add_classdev_probing_helper_done): New function
-	(hotplug_event_begin_add_classdev): Create and use a framework
-	where we don't have to think about asynchronous issues per
-	logical device class.
-	(hotplug_event_begin_remove_classdev): -do-
-	(input_helper_done): Deleted due to new framework
-
-	* tools/device-manager/DeviceManager.py: Do not assume that
-	info.bus is available
-
-	* tools/device-manager/Representation.py: Do not assume that
-	info.bus is available
-
-2005-01-18  David Zeuthen  <davidz at redhat.com>
-
-	* hald/run-hald.sh: New file; used to run hald from the development
-	directory. Sets up the appropriate path for external probing
-	programs.
-
-2005-01-18  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in (AC_OUTPUT): Don't generate hald/linux/Makefile as
-	Makefile.am is now gone
-
-2005-01-18  David Zeuthen  <davidz at redhat.com>
-
-	* tools/linux/Makefile.am: Remove hal.dev build rules
-
-	* tools/linux/hal_dev.c: Remove
-
-	* configure.in: Set linux2 as the default backend
-
-	* hald/linux: Remove all files here as they will get reimplemented
-	in hald/linux2
-
-	* hald/linux2: Add a bunch of new files
-
-	* hald/linux2/probing: Add some new files
-
-2005-01-18  David Zeuthen  <davidz at redhat.com>
-
-	Merge some more changes from the stable branch (except those
-	in hald/linux and doc/spec)
-
-	2005-01-12  David Zeuthen  <davidz at redhat.com>
-
-	* hald/callout.c (callout_timeout_handler): Be tough and kill
-	the misbehaving child the hard way - suggestion from Joe Shaw.
-
-	2005-01-12  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux/osspec.c (HOTPLUG_TIMEOUT): Increase to 25 seconds
-	to better cope with callouts timeout of 10 seconds
-
-	* hald/callout.c (iochn_data): Cope with callouts terminating
-	and free timeout handler
-	(callout_timeout_handler): New function; kill callouts if they
-	time out
-	(process_next_callout): Setup timeout for callouts - set to
-	ten seconds
-
-	2005-01-11  David Zeuthen  <davidz at redhat.com>
-
-	* hald/callout.c: Simplify a lot more by demanding that callouts
-	are run sequentially - which they are anyway since everything is
-	serialized. Make a mental note to review and stress test this in
-	the morning.
-
-	2005-01-11  David Zeuthen  <davidz at redhat.com>
-
-	* hald/callout.c: Fix some craziness adding an idle handler for
-	detecting when callouts complete - fixes bug on my new AMD64
-	system with device add/remove prior to completion of callouts -
-	one visible effect was that fstab-sync was crashing since it
-	couldn't retrieve the block.device device as the device was
-	removed prior to the completion of the callout
-
-	2005-01-07  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/20freedesktop/ide-drives.fdi: Also check IDE floppies for whether
-	they are Zip drives
-
-	2005-01-07  Joe Shaw  <joeshaw at novell.com>
-
-	* configure.in: Check for popt when building fstab-sync and error
-	out if it's not found.
-
-	* tools/Makefile.am: Build fstab-sync conditionally based on
-	whether --enable-fstab-sync is passed in.
-
-	2005-01-06  David Zeuthen  <davidz at redhat.com>
-
-	* libhal/libhal.c (hal_device_query_capability): Patch from Tim
-	Müller <t.i.m at zen.co.uk>. The attached patch fixes a small memory
-	leak in libhal's hal_device_query_capability().
-
-	2005-01-03  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Added it to ALL_LINGUAS
-
-	* po/it.po: Italien translation from Pier Luigi Fiorini
-	<pierluigi.fiorini at mockup.org>
-
-	2004-12-15  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/20freedesktop/usb-zip-drives.fdi: Only match on actual
-	harddisks to avoid wrong detection of e.g. "Iomega ZipCD 650 USB CDRW"
-	drives (Red Hat bug #143834)
-
-	* fdi/20freedesktop/ide-drives.fdi: ditto
-
-2005-01-17  David Zeuthen  <davidz at redhat.com>
-
-	* doc/spec/hal-spec.xml.in: Patch from Richard Hughes
-	<richard at hughsie.com>. Move properties into right section;
-	add some linux.* properties.
-
-2005-01-17  David Zeuthen  <davidz at redhat.com>
-
-	* doc/spec/hal-spec.xml.in: Patch from Richard Hughes
-	<richard at hughsie.com>. This is a patch for HAL CVS HEAD that
-	provides all the system.* namespaces. I have not included the
-	PMU/ACPI specific parts yet as we are still debating about how to
-	include pmu.* and acpi.* in the most efficient way.
-
-2005-01-07  Joe Shaw  <joeshaw at novell.com>
-
-	* configure.in: Check for popt when building fstab-sync and error
-	out if it's not found.
-
-	* tools/Makefile.am: Build fstab-sync conditionally based on
-	whether --enable-fstab-sync is passed in.
-
-2004-12-16  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/20freedesktop/Makefile.am: Add the two new .fdi files to _DATA
-
-2004-12-16  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/20freedesktop/usb-pda-serial.fdi: New file
-
-	* fdi/20freedesktop/usb-pda-devices.fdi: New file
-
-2004-12-16  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux/volume_id/volume_id.c (sesame_parse): Support really long
-	lines
-	(probe_crypto_sesame): Read 1024 bytes instead of only 0x100
-
-2004-12-16  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux/volume_id/volume_id.c (sesame_skip_to_next_nonempty_line):
-	New function
-	(sesame_parse): New function
-	(sesame_got_kv_pair): New function
-	(probe_crypto_sesame): New function
-	(volume_id_probe): Probe for sesame crypto metadata
-	(volume_id_close): Free key/value pairs
-
-	* hald/linux/volume_id/volume_id.h: Add the VOLUME_ID_CRYPTO usage type
-	and VOLUME_ID_CRYPTO_SESAME filesystem type. Add the volume_id_kv_pair 
-	structure
-
-	* hald/linux/osspec.c (compute_coldplug_list): Also process other block
-	devices
-
-	* hald/linux/block_class_device.c (set_volume_id_values): Allow crypto
-	and get properties from volume_id
-	(block_class_visit): Add some code to figure out if /dev/dm-0 is really
-	the cleartext device from a device backed by us.
-
-2004-12-15  David Zeuthen  <davidz at redhat.com>
-
-	* hald/dummy/Makefile.am: New file
-
-	* hald/dummy/osspec.c: New file
-
-	* hald/linux/Makefile.am: New file
-
-	* hald/Makefile.am: Use new $(HALD_BACKEND) variable
-
-	* configure.in: Add --with-backend; default to linux
-
-2004-12-13  David Zeuthen  <davidz at redhat.com>
-
-	Merged all changes from the stable branch so HEAD is on par.
-
-2004-12-10  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux/net_class_device.c (mii_get_link): Close the fd for link
-	detection before getting the rate	
-
-2004-12-08  David Zeuthen  <davidz at redhat.com>
-
-	* tools/fstab-sync.c (fs_table_line_is_mounted): Patch from Sjoerd
-	Simons <sjoerd at luon.net>.  Running fclose on some random memory
-	will crash the program. Fixed in attached patch.
-
-2004-12-08  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux/block_class_device.c (detect_media): Patch from
-	Martin Pitt <martin at piware.de>.
-	Media change detection for CD-ROMs does not work on some broken
-	CD-ROM devices. There are some devices where the
-	CDROM_DRIVE_STATUS ioctl returns CDS_DISK_OK even when the tray is
-	open. This has the consequence that the event of inserting a CD is
-	not recognized by hal.
-	If the CD-ROM reports CDS_DISK_OK, then CDROM_MEDIA_CHANGED should
-	be checked twice. If it returns two different values, then there
-	really was a media change and got_media can be set to true. OTOH,
-	if both CDROM_MEDIA_CHANGED events return the same value, then the
-	tray is still open and we must not assume that there is already a
-	CD in the drive.
-	Second, for deciding the value of storage.cdrom.support_media_changed
-	hald should not use the CDROM_MEDIA_CHANGED ioctl() (which returns
-	the current state), but the CDC_MEDIA_CHANGED capability.
-
-2004-12-08  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux/block_class_device.c (block_class_pre_process): Only
-	poll IDE if they are CD-ROM drives and use a better criteria for 
-	finding out whether this is the case
-
-2004-12-08  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald_dbus.c (device_query_capability): Fix crasher; reported by
-	leon breedt <bitserf at gmail.com>.
-
-2004-12-06  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/20freedesktop/ide-drives.fdi: Fix <device> to be </device> so
-	we don't get errors evaluating the file. From Martin Pitt 
-	<martin at piware.de> and also RH bug #141771.
-
-2004-12-01  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Bump to 0.4.2
-
-2004-11-30  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/20freedesktop/ide-drives.fdi: Add blacklist for certain slave
-	IDE drives on Dell Laptops - stopgap solution for now (RH Bug #138148)
-
-	* fdi/20freedesktop/usb-zip-drives.fdi: Fix a syntax error
-
-	* hald/linux/osspec.c (compute_coldplug_visit_device): Don't spew
-	too much debug now that we ascent into the tree down to the leafs
-
-	* libhal-storage/libhal-storage.c (hal_drive_from_udi): Comment out
-	types for ZIP and JAZ drives since that will require ABI changes
-
-	* libhal-storage/libhal-storage.h: -do-
-
-2004-11-30  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux/osspec.c (compute_coldplug_visit_device): Descent down
-	the to leafs of the /sys/devices tree but dont follow symlinks - done
-	such that we can process sysfs trees with holes in them (cf. SCSI
-	midlayer changes for kernel 2.6.10)
-
-	* hald/linux/common.h: Remove prototypes for get_parent_sysfs_path()
-	and add find_closest_ancestor(), find_computer()
-
-	* hald/linux/common.c (find_closest_ancestor): New function - such
-	that we can process sysfs trees with holes in them (cf. SCSI
-	midlayer changes for kernel 2.6.10)
-	(get_parent_sysfs_path): Make this static
-	(find_computer): New function
-
-	* hald/linux/class_device.c (class_device_visit): Use new function
-	find_closest_ancestor() instead of get_parent_sysfs_path
-
-	* hald/linux/bus_device.c (bus_device_visit): Use new function
-	find_closest_ancestor() instead of get_parent_sysfs_path
-
-	* hald/linux/block_class_device.c (block_class_visit): Use new
-	function find_closest_ancestor() instead of get_parent_sysfs_path
-
-2004-11-22  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux/volume_id/volume_id.c (volume_id_probe): Add some
-	logging of what size we call volume_id_probe with
-
-	* hald/linux/block_class_device.c (force_unmount): Only attempt to
-	'umount -l' if some hal policy piece are performing policy on the
-	device
-
-2004-11-22  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.c (hal_drive_from_udi): Detect Zip
-	and Jaz drives
-	(hal_drive_policy_compute_display_name): Fix an ugly bug where
-	CD-ROM drives were being named "CD-R" instead of "CD-ROM"
-
-	* libhal-storage/libhal-storage.h: Add enums for Zip and Jaz drives
-
-	* hald/linux/platform_bus_device.c (platform_device_in_gdl): New
-	function. Actually check the /etc/mtab for whether the floppy is
-	mounted
-
-	* hald/linux/common.h: Add prototype for 
-	etc_mtab_process_all_block_devices
-
-	* hald/linux/block_class_device.c (block_class_visit): Never add
-	child real childs (e.g. /dev/hdd4) if storage.no_partitions_hint is
-	set (for IDE Zip Drives)
-	(detect_media): Actually set child to what we find in the TDL
-	(mtab_handle_storage): Match on device file before attempting to
-	match on major/minor
-	(mtab_handle_volume): -do-
-
-	* hald/device_info.c (handle_match): Add the contains and 
-	contains_ncase matching operators.
-
-	* fdi/90defaultpolicy/storage-policy.fdi: Add some policy pieces for
-	IDE Zip, Jaz and USB Zip drives
-
-	* fdi/20freedesktop/usb-zip-drives.fdi: New file to identify USB
-	Zip Drives
-
-	* fdi/20freedesktop/ide-drives.fdi: New file to identify strange IDE
-	drives such as Zip and Jaz drives; note that rewriting the device
-	file from e.g. /dev/hdd to /dev/hdd4  is actually sane enough to
-	do given the abstraction that hal exports :-)
-
-2004-11-16  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/90defaultpolicy/storage-policy.fdi: Remove the "ro" option for
-	optical drives as it prevents mounting rw DVD-RAM media (RH bug #139600)
-
-	* hald/linux/volume_id/volume_id.h (VOLUME_ID_PARTITIONS_MAX): Increase
-	to 256 (RH bug #139227)
-
-	* hald/linux/volume_id/volume_id.c (probe_msdos_part_table): Fix a
-	typo ("to many partitions" -> "too many partitions"
-	(volume_id_probe): Do not probe for msdos_part_table since that doesn't
-	make sense (../block_class_device.c does that instead)
-
-2004-11-08  David Zeuthen  <davidz at redhat.com>
-
-	* tools/device-manager/hal-device-manager.glade: Patch from Sjoerd
-	Simons <sjoerd at luon.net>.  Attached patch improves h-d-m's glade
-	file a little. Note the difference in the ``Device type'' label
-	between the following two screenshots:
-	http://luon.net/~sjoerd/hal/hdm-before.png
-	http://luon.net/~sjoerd/hal/hdm-after.png
-
-2004-11-08  David Zeuthen  <davidz at redhat.com>
-
-	* tools/device-manager/DeviceManager.py: 
-	Patch from Bryan Clark <bclark at redhat.com>: I've noticed that the
-	category and capabilities labels on the Device tab of
-	hal-device-manager never changes beyond "Unknown".
-
-2004-11-01  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Bump to 0.4.1
-
-	* doc/spec/Makefile.am: Take FIGURE_FILES and EXTRA_DIST outside the
-	conditional DOCBOOK_DOCS_ENABLED so 'make distcheck' passes
-
-2004-11-01  David Zeuthen  <davidz at redhat.com>
-
-	* tools/device-manager/hal-device-manager.in: New file; append
-	path to where we install so we don't need a symlink to /usr/share.
-	Fixes issue with SELinux strict policy (RH Bug #134845)
-
-	* tools/device-manager/hal-device-manager: Delete this one as it is
-	now generated by configure
-
-2004-10-29  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/90defaultpolicy/storage-policy.fdi: Allow SCSI optical drives
-	and correct typo in 'sync' (was 'async').
-	
-2004-10-29  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux/pcmcia_utils.c (pcmcia_socket_open): Refine socket
-	location order to work better with SELinux. From Dan Walsh
-	<dwalsh at redhat.com>
-
-2004-10-27  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Tim Müller <t.i.m at zen.co.uk>
-
-	* configure.in: Require libcap development packages by checking for
-	sys/capability.h
-
-2004-10-26  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/90defaultpolicy/storage-policy.fdi: Change default policy
-	such that non-hotpluggable fixed disks are not added to the
-	/etc/fstab file because a) ATARAID detection in hal is
-	incomplete (e.g. RAID members from ATARAID controllers might be
-	added to /etc/fstab); and b) default install wont corrupt
-	multiboot systems on fixed drives (RH bug 137072)
-	
-2004-10-26  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Dan Williams <dcbw at redhat.com> to add support for 
-	integration with cardmgr.
-
-	* configure.in: Add --enable-pcmcia-support and --with-stab-file
-	options
-	
-	* hald/Makefile.am: Conditionally include linux/pcmcia_utils.c
-	linux/pcmcia_utils.h linux/pcmcia_cs.h
-
-	* hald/linux/net_class_device.c
-	(net_class_pre_process): Check driver link and set net.linux.driver
-	properties (me); add appropriate PCMCIA properties if applicable
-	(net_class_accept): Only accept network devices with device links as
-	well as PCMCIA devices
-	(net_class_compute_udi): Fix a typo (me)
-	
-	* hald/linux/osspec.c
-	(compute_coldplug_list): Accept network devices without device link
-	
-	* hald/linux/pcmcia_cs.h: New file
-
-	* hald/linux/pcmcia_utils.c: New file
-	
-	* hald/linux/pcmcia_utils.h: New file
-
-2004-10-25  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/90defaultpolicy/storage-policy.fdi: Allow fstype 'auto' for 
-	optical drives instead of 'iso9660,udf'
-
-2004-10-25  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux/volume_id/volume_id.c (volume_id_probe): Move probe_ntfs
-	to the bottom as some ext3 partition was wrongly identified as a NTFS
-	partition
-
-2004-10-25  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux/osspec.c (hotplug_timeout_handler): Fixup timeout handling
-	to rebasing to lowest seqnum in queue instead of just taking the
-	next one
-
-2004-10-25  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c: (probe_highpoint_ataraid),
-	(volume_id_probe), (volume_id_open_node): Add recognition for
-	highpoint ataraid volumes.
-
-2004-10-21  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux/net_class_device.c (net_class_pre_process): Just see if
-	there is a 'wireless' directory in sysfs; don't let the libsysfs copy
-	try to open files cause that might fail on orinoco+hermes (RH bug
-	136591). Reported by Dan Williams <dcbw at redhat.com>
-
-2004-10-19  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Added pt to ALL_LINGUAS
-
-	* po/pt.po: Portuguese translations from Pedro Morais <morais at kde.org>
-
-2004-10-19  David Zeuthen  <davidz at redhat.com>
-
-	Make PCMCIA card readers work by ignoring hotplug add and remove
-	on IDE partitions. Need to remove this code once the kernel is sane
-	again. For background (and some kernel hacker attitude :-) please see
-	https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=130232
-
-	* hald/linux/block_class_device.c:
-	(block_class_accept): Ignore block devices we already have added
-	(volume_remove_from_gdl_sleep): New function
-	(volume_set_size): Do a first estimate by assuming block size is 512
-	(block_class_pre_process): Set fstype to 'auto' and fsuage to 
-	'filesystem'
-	(block_class_removed): Don't remove if partition from IDE device.
-	Automatically remove volumes from a top-level block device if 
-	they indeed are not removed (which is the case for IDE hotplug)
-	
-	* hald/linux/class_device.c:
-	(class_device_removed): Return whether it should be removed
-	
-	* hald/linux/class_device.h: Changed return type from void to bool
-	for class_device_removed method
-	
-	* hald/linux/osspec.c:
-	(rem_device): Respect the return value of class_device_removed function
-
-2004-10-18  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Added ru and hu to ALL_LINGUAS
-
-	* po/ru.po: Russian translations from Leonid Kanter (leon at bcl.bz)
-
-	* po/hu.po: Hungarian translations Laszlo Dvornik <dvornik at gnome.hu>
-
-2004-10-18  David Zeuthen  <davidz at redhat.com>
-
-	* tools/fstab-sync.8.in: Fixup some typos and clarify how .fdi files
-	are processed
-
-2004-10-18  David Zeuthen  <davidz at redhat.com>
-
-	* tools/fstab-sync.c (main): Fix crasher when no options are given
-
-2004-10-18  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/90defaultpolicy/storage-policy.fdi: Allows allow legacy floppy
-	drives to be mounted by matching storage.bus=platform
-
-2004-10-18  David Zeuthen  <davidz at redhat.com>
-
-	* libhal-storage/libhal-storage.c:
-	(mopts_collect): New convenience function
-	(hal_drive_policy_get_mount_options): Ensure that 'pamconsole', 'user',
-	'users' and 'console' before any other option as an intricate detail 
-	of the mount program require that e.g. exec is after each of these
-	as they imply e.g. noexec.
-	(hal_volume_policy_get_mount_options): -do-
-
-2004-10-18  David Zeuthen  <davidz at redhat.com>
-
-	* hald/hald.c (main): Do openlog() so we can log to the syslog
-	
-	* hald/linux/hald_helper.h: Add a timestamp field
-	
-	* hald/linux/osspec.c:
-	(osspec_timer_handler): Call hotplug_timeout_handler
-	(hotplug_timeout_handler): New function
-	(hald_helper_hotplug_process_queue): Set last timestamp and add
-	 uncommented test code for dropping every 16th hotplug event
-	(hald_helper_first_hotplug_event): Update last timestamp
-	
-	* tools/linux/hal_dev.c (main): Set timestamp
-	
-	* tools/linux/hal_hotplug.c (main): Set timestamp
-
-2004-10-15  David Zeuthen  <davidz at redhat.com>
-
-	* tools/fstab-sync.c (add_udi): Use the name of the special device
-	file instead of 'foo' when writing to the syslog
-
-2004-10-15  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/90defaultpolicy/storage-policy.fdi: Never use filesystem UUDI
-	for mount points in the default policy (/me badly flamed) - change
-	fallback to <bustype>disk.
-
-2004-10-15  David Zeuthen  <davidz at redhat.com>
-
-	* hald/linux/block_class_device.c (detect_media): Fixup reuse
-	of file descriptors since we want O_NONBLOCK for polling and we
-	don't want to reuse that for probing the media (see below(
-	
-	* hald/linux/volume_id/volume_id.c (volume_id_open_node): Never
-	use O_NONBLOCK since new kernel semantics can and will return
-	EAGAIN aka EWOULDBLOCK (see RH bug 135886).
-
-2004-10-14  David Zeuthen  <davidz at redhat.com>
-
-	* tools/fstab-sync.c (main): clean wasn't being called on hald startup
-	because of missing defines due to the removal of fstab-sync options.
-
-2004-10-14  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Bump to version 0.4.0 - Hurray
-
-2004-10-14  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/90defaultpolicy/storage-policy.fdi: Use pamconsole option 
-	instead of user.
-
-2004-10-14  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Remove a bunch of fstab-sync options (all but the
-	--enable-fstab-sync) that is now taken from the root computer device
-	object, e.g. defined in fdi/90defaultpolicy/storage-policy.fdi file.
-
-2004-10-14  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Martin Pitt <martin at piware.de>.
-	
-	* hald/linux/pci_bus_device.c (pci_device_pre_process): Fixup crash
-	on intel pro 2200 wireless because of unchecked pointer. Reported by
-	Mitch <Mitch at 0Bits.COM>.
-
-2004-10-14  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Sjoerd Simons <sjoerd at luon.net>.
-
-	* hald/Makefile.am: Add -lm to hald_LDADD so it actually compiles
-	on my debian system :)
-
-2004-10-14  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Sjoerd Simons <sjoerd at luon.net>.
-
-	* tools/lshal.c: include <dbus/dbus-glib-lowlevel.h> so the
-	compiler doesn't complain about dbus_connection_setup_with_g_main
-	not being declared.
-
-2004-10-14  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Sjoerd Simons <sjoerd at luon.net>.
-
-	* hald/hald_dbus.c: When hal is running with dropped priv's the
-	callouts are currently too. So allow hal's euid. And fix a compile
-	warning too.
-
-2004-10-14  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Sjoerd Simons <sjoerd at luon.net>.
-
-	* hald/linux/usb_bus_device.c (usb_ids_load): The usb id database
-	read functions never close the file descriptors. bad.  Fixed in
-	attached patch. 
-
-2004-10-14  David Zeuthen  <davidz at redhat.com>
-
-	Patch from Steve Grubb (linux_4ever at yahoo.com).
-
-	* hald/linux/net_class_device.c (link_detection_data_ready): The
-	hal daemon does not check the sender's PID for netlink packets.
-	Netlink packets can be sent by any user with local access to the
-	system. Kernel originating packets have a PID of 0, while user
-	space originating packets are > 0. Without checking this, users
-	may send messages to hald that cause daemons using dbus to take
-	inappropriate actions.
-
-2004-10-14  David Zeuthen  <davidz at redhat.com>
-
-	* configure.in: Add fstab-sync.8 to AC_OUTPUT
-	
-	* doc/conf/storage-non-fixed.fdi: New file, example
-
-	* doc/conf/storage-skip-all.fdi: New file, example
-
-	* doc/conf/Makefile.am: Dist and install two new .fdi files
-
-	* fdi/90defaultpolicy/storage-policy.fdi: Fix a typo in a comment
-
-	* hald/device_info.c:
-	(my_alphasort): New function 
-	(scan_fdi_files): Use my_alphasort to sort in the right order. Process
-	all .fdi files instead of bailing out on the first match.
-
-	* hald/linux/osspec.c:
-	(get_selinux_removable_context): New function, copied over from 
-	tools/fstab-sync.c (not currently used)
-	(osspec_probe): Use get_selinux_removable_context (not currently used)
-
-	* libhal-storage/libhal-storage.c:
-	(hal_drive_policy_get_mount_options): Check if mount_option property
-	is actually FALSE.
-	(hal_volume_policy_get_mount_options): Same
-
-	* libhal/libhal.c:
-	(hal_free_property_set): Check if object to free is NULL and just
-	return. Allows hal_free_property_set (NULL).
-
-	* tools/Makefile.am: Add rules for building fstab-sync.8 man page
-
-	* tools/fstab-sync.8.in: New file
-
-	* tools/fstab-sync.c: Much rewritten to use libhal-storage and the new
-	policy properties. See diff for details.
-
-2004-10-13  David Zeuthen  <davidz at redhat.com>
-
-	* doc/spec/hal-spec.xml.in: Add docs for is_ascii attribute on the
-	match directive.
-	
-	* fdi/90defaultpolicy/storage-policy.fdi: Don't add volume policy
-	if the drive has the no_partitions_hint set to TRUE. Require label
-	to be ASCII if using the label as a mount point. Use whitelist of
-	msdos partition types if volume stems from a drive with a msdos
-	partition table.
-	
-	* hald/device_info.c (handle_match): Add the is_ascii match check.
-	
-	* libhal-storage/libhal-storage.c:
-	(hal_drive_free): Free newly added fields
-	(hal_volume_free): Free newly added fields
-	(hal_drive_from_udi): Add should_mount, mount_filesystem, 	
-	desired_mount_point properties
-	(hal_volume_from_udi): Add should_mount, mount_filesystem, 	
-	desired_mount_point properties
-	(hal_drive_policy_default_get_mount_root): New function
-	(hal_drive_policy_default_use_managed_keyword): New function
-	(hal_drive_policy_default_get_managed_keyword_primary): New function
-	(hal_drive_policy_default_get_managed_keyword_secondary): New function
-	(hal_drive_policy_is_mountable): New function
-	(hal_drive_policy_get_desired_mount_point): New function
-	(hal_drive_policy_get_mount_options): New function
-	(hal_drive_policy_get_mount_fs): New function
-	(hal_volume_policy_is_mountable): New function
-	(hal_volume_policy_get_desired_mount_point): New function
-	(hal_volume_policy_get_mount_options): New function
-	(hal_volume_policy_get_mount_fs): New function
-	(hal_drive_no_partitions_hint): New function
-
-	* libhal-storage/libhal-storage.h: Add prototypes for new functions
-
-2004-10-13  David Zeuthen  <davidz at redhat.com>
-
-	* fdi/20freedesktop/sony_dsc.fdi: New file, to match krh's camera
-	that is USB Mass Storage based.
-
-	* fdi/20freedesktop/canon-digital-ixus-v.fdi: Removed
-
-	* fdi/20freedesktop/Makefile.am (dist_fdi20freedesktop_DATA): 
-	add sony, remove canon.
-
-	* doc/spec/hal-spec.xml.in: Add a bunch of documentation to match
-	the new .fdi parser and the policy stuff for storage devices
-	
-	* hald/device_info.c (handle_match): Remove debug output
-	
-	* hald/hald_dbus.c (device_remove_property): Require superuser
-
-2004-10-12  David Zeuthen  <davidz at redhat.com>
-
-	First part of big patch to use .fdi files for policy properties.
-
-	* configure.in: Add a bunch of new configure.in variables
-
-	* doc/Makefile.am: Add conf directory
-
-	* doc/conf/Makefile.am: New file
-
-	* doc/conf/storage-policy-examples.fdi: New file
-
-	* fdi/30osvendor/Makefile.am: New file
-
-	* fdi/40oem/Makefile.am: New file
-
-	* fdi/50user/Makefile.am: New file
-
-	* fdi/90defaultpolicy/Makefile.am: New File
-
-	* fdi/90defaultpolicy/storage-policy.fdi: New file
-
-	* fdi/95userpolicy/Makefile.am: New file
-
-	* fdi/Makefile.am: Added new subdirs
-
-	* hald/Makefile.am: Link with libselinux if selinux is enabled
-
-	* hald/device.c: 
-	(hal_device_property_get_as_string): New function
-	(hal_device_copy_property): New function
-
-	* hald/device.h: Add prototypes for two new functions
-
-	* hald/device_info.c:
-	(resolve_udiprop_path): New function 
-	(match_compare_property): New function
-	(handle_match): Allow property names to contain UDI dirct and indirect
-	references. Add support for 'exists', 'empty', 'is_absolute_path', 
-	'compare_lt', 'compare_le', 'compare_gt', 'compare_ge'
-	(handle_merge): Add support for 'copy_property'
-	(handle_append): New function
-	(start): Support new 'append' operation (like merge)
-	(end): Also support MERGE_TYPE_COPY_PROPERTY. Fixup compare bug in 
-	match_depth_first_fail that made several matches on the same level
-	impossible.
-	(process_fdi_file): Init match_depth_first_fail to -1
-
-	* hald/linux/osspec.c (osspec_probe): Add selinux support to
-	root computer device object.
-
-2004-10-08  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/platform_bus_device.c (platform_device_accept): Check that
-	the floppy drive actually exists. Code snippet from Bill Nottingham
-	<notting at redhat.com>, see Red Hat bug 133777.
-
-2004-10-08  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/pci_bus_device.c (pci_ids_load): The {pci, usb} id
-	database read functions never close the file descriptors.  bad.
-	Fixed in attached patch. Patch from Sjoerd Simons <sjoerd at luon.net>.
-
-2004-10-08  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: look for BLKGETSIZE64 to be provided. From
-	Jonathan Blandford  <jrb at gnome.org>
-
-2004-10-08  David Zeuthen  <david at fubar.dk>
-
-	* libhal-storage/libhal-storage.h (LIBHAL_STORAGE_H): Only use one
-	underscore, not two. Reported by Jérôme Lodewyck
-	<lodewyck at clipper.ens.fr>.
-
-2004-10-07  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/osspec.c (hald_helper_hotplug_process_queue): Have a
-	list of hotplug events received during the sleep of the first hotplug
-	event and process that in order
-	(hotplug_sem_down): Typo in debug output
-	(hald_helper_first_hotplug_event): Determine last_hotplug_seqnum by
-	looking at list of hotplug events received during the sleep of the
-	first hotplug event
-	(hald_helper_msg_compare): New function
-	(hald_helper_data): Insert, into a sorted list, hotplug events received 
-	when sleeping on the first hotplug event
-	(FIRST_HOTPLUG_SLEEP): New constant instead of hardcoding 2500 ms
-
-2004-10-06  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/osspec.c (hald_helper_data): New handling of hotplug
-	events with SEQNUM < LAST_SEQNUM. Idea from Sjoerd Simons 
-	<sjoerd at luon.net>.
-
-2004-10-06  David Zeuthen  <david at fubar.dk>
-
-	Patch from Martin Pitt <martin.pitt at canonical.com>.
-
-	* hald/linux/osspec.c (add_device): Check whether given_sysfs_path
-	is NULL and immediately return in this case; previously, this
-	parameter was copied and compared without checking, which caused a
-	segfault.
-
-	* hald/hald.c (drop_privileges): Do not exit hald if capabilities
-	cannot be installed (which happens on kernels which do not support
-	capabilities), since only few features actually depend on
-	additional capabilities (currently only the "link" detection of
-	MII ethernet cards)
-
-2004-10-02  David Zeuthen  <david at fubar.dk>
-
-	* libhal/libhal.c (hal_initialize): Don't set is_shutdown when we're
-	just initialized.
-	(hal_get_all_devices): Set num_devices to 0 even if we fail. Patch
-	from Colin Walters <walters at redhat.com>
-
-2004-09-29  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/volume_id/volume_id.c (volume_id_probe): Probe for msdos
-	partition table before any other fs'es with the signature in the first
-	block. Patch from Martin Pitt <martin at piware.de>.
-
-2004-09-29  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (detect_disc): Do a CDROM_DRIVE_STATUS
-	before CDROM_DISC_STATUS
-
-	* tools/fstab-sync.c (fs_table_line_is_generated): Use secondary
-	managed keyword if applicable
-	(fs_table_add_volume): Use access keyword only if applicable
-	(volume_new): Also set is_removable
-	(fs_table_add_volume): Only add removable selinux context for
-	hotpluggable drives and drives with removable media
-
-	* configure.in: Add fstab-sync secondary keyword which is useful for
-	migration from e.g. kudzu to managed - fstab-sync will only delete
-	fstab lines with the secondary keyword but never write them. Needs
-	to be enabled with --enable-mnt-noop-sec.
-	Also add fstab-sync access keyword which defaults to 'user' but
-	can be replaced by 'console' - this is useful for specifying the
-	extra mount option for how to give access. Now the access keyword
-	needs to be enabled with --enable-mnt-access.
-
-	For (my own) reference, this is the parameters used to bootstrap
-	when building for Red Hat distros
-
-	./autogen.sh --enable-mnt-noop --enable-fstab-sync --enable-hotplug-map 
-	--with-mnt-noop=managed --enable-mnt-noop-sec --with-mnt-noop-sec=kudzu 
-	--enable-mnt-access --with-mnt-access=console --with-init-scripts=redhat 
-	--with-pid-file=/var/run/haldaemon.pid --enable-selinux
-
-	note: the util-linux package must be patched with the patch in RH bug
-	133941 in order for --with-mnt-access=console to work; should hit 
-	Rawhide soon.
-
-2004-09-29  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (block_class_pre_process): Check for
-	USB floppy drive by looking at interface class instead
-
-2004-09-27  David Zeuthen  <david at fubar.dk>
-
-	* libhal/libhal.c (hal_shutdown): Remember to init error var
-
-	* tools/fstab-sync.c (add_udi): Add a whitelist so if a volume stems
-	from a msdos style partition table we require that type to be in the
-	whitelist; initially includes various FAT formats, NTFS and Linux.
-	(volume_new): Fix a bug in size computation
-
-	* libhal-storage/libhal-storage.h: Add prototype for
-	hal_volume_get_msdos_part_table_type
-
-	* libhal-storage/libhal-storage.c:
-	(hal_volume_get_msdos_part_table_type): New function
-
-	* hald/linux/block_class_device.c (block_class_pre_process): 
-	Rename x86_type to msdos_part_table_type
-
-	* hald/haldaemon.in: Fixup URL
-
-2004-09-27  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Added nl to ALL_LINGUAS
-
-	* po/nl.po: Dutch translations from Reinout van 
-	Schouwen <reinout at cs.vu.nl>
-
-2004-09-27  David Zeuthen  <david at fubar.dk>
-
-	* libhal/libhal.c (hal_shutdown): Make libhal compile since an
-	error variable was errornously deleted before committing it
-
-2004-09-27  David Zeuthen  <david at fubar.dk>
-
-	Patch from Sjoerd Simons <sjoerd at luon.net>.
-
-	* tools/linux/hal_hotplug_map.c: 
-	Since a few days debians libgphoto2 also ships the an usb
-	usermap. Attaches patch makes hal work with this :)
-
-2004-09-27  David Zeuthen  <david at fubar.dk>
-
-	* libhal/libhal.c:
-	(struct LibHalContext_s): add is_shutdown field
-	(filter_func): if ctx->is_shutdown is TRUE don't process the message.
-	Return NOT_YET_HANDLED instead of HANDLED on all messages as several
-	libhal contexts may want to process them.
-	(hal_initialize): Set ctx->is_shutdown to FALSE
-	(hal_shutdown): Remove the matching rule on the Manager object and
-	set is_shutdown to TRUE. Don't fix the leak on the DBusConnection
-	because leaking it means that the application will terminate. Hence
-	introduce a leak of the LibHalContext since shutdown is async. Add
-	a few TODO comments about that this needs fixing (probably needs
-	dbus_bus_get_dedicated).
-
-	* hald/hald_dbus.c (sender_has_superuser_privileges): New function
-	(device_set_property): Require superuser
-	(device_add_capability): Require superuser
-
-	* hald/linux/block_class_device.c (block_class_pre_process): Add checks
-	for SATA disks - code snippet from Alan Cox <alan at redhat.com>
-
-2004-09-27  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c: (probe_vfat): Fix
-	typo in FAT uuid conversion.
-
-2004-09-26  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c: (probe_vfat): Fix
-	end of directory marker recognition.
-
-2004-09-25  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Added fr to ALL_LINGUAS
-
-	* po/fr.op: Added french translations from Jérôme Lodewyck 
-	<lodewyck at clipper.ens.fr>
-
-	* libhal-storage/libhal-storage.h: Add prototypes for new functions
-	hal_drive_(requires_eject|get_dedication_icon_(drive|volume)).
-
-	* libhal-storage/libhal-storage.c (hal_storage_policy_lookup_icon): 
-	Remove printf debug statement.
-	(hal_drive_get_dedicated_icon_drive): New function
-	(hal_drive_get_dedicated_icon_volume): New function
-	(hal_drive_from_udi): Read storage.icon.* and storage.requires_eject
-	(hal_drive_requires_eject): New function
-
-	* hald/linux/block_class_device.c (block_class_pre_process): Add
-	and set boolean property storage.requires_eject; right now we
-	only add it for optical drives. Interestingly enough, my iPod Mini
-	requires to be ejected as well (see RH bug #132195 for some
-	discussion). 
-
-	* doc/spec/hal-spec.xml.in: Add docs for storage.requires_eject, 
-	storage.icon.drive and storage.icon.volume
-
-2004-09-24  David Zeuthen  <david at fubar.dk>
-
-	* libhal-storage/libhal-storage.c :
-	(hal_volume_policy_should_be_visible): s/moint/mount/ so the code
-	actually compiles :-/
-	
-2004-09-24  David Zeuthen  <david at fubar.dk>
-	
-	* libhal-storage/libhal-storage.h: Add and hal_drive_find_all_volumes
-	and change hal_volume_policy_should_be_visible
-
-	* libhal-storage/libhal-storage.c: Delete some uncommented code
-	(hal_volume_policy_should_be_visible): Accept a new parameter called
-	target_mount_point since we need to evaluate policy on unmounted 
-	volumes and want to blacklist them in advance. Add documentation.
-	(hal_drive_find_all_volumes): New function to find all volumes
-	belonging to a drive
-
-2004-09-24  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c: (probe_lvm2),
-	(volume_id_probe): probe for all raid types first, cause
-	probes for real filesystems may just be successful on raid
-	members
-
-2004-09-24  David Zeuthen  <david at fubar.dk>
-
-	* po/ChangeLog: New file
-
-2004-09-24  David Zeuthen  <david at fubar.dk>
-
-	* Makefile.am: Ensure that 'make distcheck' passes
-	(DISTCLEANFILES): Add intltool-(extract|merge|update)
-	(EXTRA_DIST): Add intltool-(extract|merge|update).in
-
-2004-09-23  David Zeuthen  <david at fubar.dk>
-
-	* po/POTFILES.in: New file
-
-	* libhal-storage/libhal-storage.h: New file
-
-	* libhal-storage/libhal-storage.c: New file
-
-	* libhal/libhal.c: Add dgettext support
-	(hal_initialize): Bind to translation domain (but only once)
-
-	* doc/api/Makefile.am (htmldocdir): Rename to api from libhal
-
-	* Doxyfile.in: Add libhal-storage
-
-	* configure.in: Add checks for i18n tools. Add hal-storage.pc,
-	libhal-storage/Makefile and po/Makefile.in to AC_OUTPUT
-
-	* autogen.sh: Add checks for i18n tools
-
-	* hal-storage.pc.in: New file
-
-	* Makefile.am: Add libhal-storage and po to SUBDIRS. Add hal-storage.pc
-
-2004-09-23  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/block_class_device.c: (block_class_pre_process): fix
-	matching of volume_id partition index to block device partition index
-
-2004-09-21  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/block_class_device.c: (block_class_accept):
-	skip legacy floppies here, until we get proper sysfs links to the
-	platform device and switch over to merge floppies into that device.
-	Legacy floppies handled until that in platform_bus_device.c
-
-	I'm working on fixing the kernel sysfs /device-links and with such
-	a link hald probes legacy floppies with block_class_device.c which
-	we don't want right now cause it can block the whole process.
-
-2004-09-21  David Zeuthen  <david at fubar.dk>
-
-	Patch from Martin Pitt <martin.pitt at canonical.com>
-	
-	* hald/linux/linux_dvd_rw_utils.c (get_read_write_speed): Several
-	Ubuntu users reported that hal does not start up properly. I
-	debugged this and found out that hald/linux/linux_dvd_rw_utils.c
-	contains an unchecked buffer access which causes a segfault.  The
-	attached patch fixes that; it might not be the most correct
-	solution, but it works. The error is still present in 0.2.98; I
-	made the fix in 0.2.92, but the patch should still apply.
-
-2004-09-21  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (block_class_pre_process): Set
-	has_removable_media for USB floppies in case the removable file in
-	sysfs is gone
-
-2004-09-20  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Add support for usb-serial devices:
-
-	* hald/Makefile.am: add serial_class_device.c,
-	usb_serial_bus_device.c
-
-	* hald/linux/osspec.c: (hald_helper_data): plug serial_class_handler,
-	usb_serial_bus_handler into the device processing
-
-	* hald/linux/serial_class_device.c: (serial_class_device_accept),
-	(serial_class_pre_process): new file to support serial ports
-
-	* hald/linux/usb_serial_bus_device.c:
-	(usb_serial_device_compute_udi), (usb_serial_device_pre_process):
-	support for bus devices from the usb-serial subsystem
-
-	* tools/device-manager/Const.py.in: add the new busses
-
-	* tools/device-manager/Makefile.am: add the new icon
-
-	* tools/device-manager/Representation.py: support the new serial
-	port icon
-
-	* tools/device-manager/hal-serial-port.png: picture of serial port
-
-
-2004-09-20  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/Makefile.am: add new logging glue file for
-	drive_id/
-
-	* hald/linux/drive_id/drive_id.c: remove own dbg()
-	implementation and map to the HAL logger
-
-	* hald/linux/drive_id/drive_id.h: next version number
-
-	* hald/linux/drive_id/drive_id_logging.h: map to
-	the HAL logging function
-
-	* hald/linux/volume_id/volume_id.h: next version number
-
-2004-09-20  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Bump version to 0.2.98
-
-2004-09-20  David Zeuthen  <david at fubar.dk>
-
-	* doc/spec/hal-spec.xml.in: Add docs for volume.size
-
-	* hald/linux/block_class_device.c (volume_set_size): Use the 
-	BLKSIZEGET64 ioctl to get the size in bytes and populate volume.size
-	(block_class_pre_process): Use volume.size when doing volume_id
-
-2004-09-20  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (block_class_pre_process): 
-	Catch up with changes made in volume_id described below
-
-	* hald/linux/volume_id/volume_id.h: Remove partition_number
-	as it's redundant. Rename partition_msdosparttable_type to
-	partition_type_raw
-
-	* hald/linux/volume_id/volume_id.c (probe_msdos_part_table): 
-	Don't set partition_number as it's gone
-
-2004-09-20  David Zeuthen  <david at fubar.dk>
-
-	* doc/spec/hal-spec.xml.in: Add docs for volume.is_partition,
-	volume.partition.number and volume.partition.x86_type
-	
-	* hald/linux/block_class_device.c:
-	(set_volume_id_values): Add some more debug
-	(detect_media): Set volume.is_partition to FALSE
-	(block_class_pre_process): Set the new volume.is_partition,
-	volume.partition.number and volume.partition.x86_type properties
-
-	* hald/linux/volume_id/volume_id.c (probe_msdos_part_table): Set
-	partition_number and partition_msdosparttable_type
-	
-	* hald/linux/volume_id/volume_id.h: Add partition_number and
-	partition_msdosparttable_type members
-
-2004-09-20  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c: (probe_vfat): Trivial fix
-	for debug output, the last iteration of the loop should end
-	with 0 not -1
-
-2004-09-19  David Zeuthen  <david at fubar.dk>
-
-	* doc/spec/hal-spec.xml.in: Add section about policy agents and
-	media insertion into drives that another application is holding
-	a lock on.
-
-2004-09-19  David Zeuthen  <david at fubar.dk>
-
-	* hald/hald_dbus.c (agent_device_matches): Removed
-	(agent_merge_properties): Removed
-	(agent_manager_remove): Removed
-	(agent_manager_commit_to_gdl): Removed
-	(agent_manager_new_device): Removed
-	(filter_function): Removed all the AgentManager methods
-	(raise_udi_in_use): Removed
-
-	* doc/spec/hal-spec.xml.in: Add docs for info.locked. Remove section
-	about HAL agents as they are now gone. Fixed up renaming of scsi_device
-	to scsi.
-
-	* doc/spec/hal-arch.dia: Remove HAL Agents
-
-	* doc/spec/hal-linux26.dia: Update diagram since we now use a local
-	socket from hal.hotplug and hal.dev helpers.
-
-	* examples/locking.py: New file; shows how to use locking
-
-2004-09-19  David Zeuthen  <david at fubar.dk>
-
-	Patch from Sjoerd Simons <sjoerd at luon.net>.
-
-	* hald/linux/usb_bus_device.c (usb_proc_parse): usb_proc_parse()
-	parses /proc/bus/usb/devices but never closes the FILE struct,
-	which obviously leads to a fd leak. Fixed in attached patch.
-
-2004-09-19  David Zeuthen  <david at fubar.dk>
-
-	Patch from Alexander Larsson <alexl at redhat.com>. It seems that
-	some models of cd-rw drives doesn't seem to support the GET
-	CONFIGURATION command. At least mine returns sense 5h. However, to
-	automatically support cdrom blanking, nautilus-cd-burner needs to
-	correctly know if the medium is rewritable. Thus the attached
-	patch uses the READ DISC INFORMATION command to get that
-	information.
-
-	* hald/linux/block_class_device.c (detect_disc): Use disc_is_rewriteable
-
-	* hald/linux/linux_dvd_rw_utils.c (disc_is_rewritable): New function
-
-	* hald/linux/linux_dvd_rw_utils.h: Add prototype for new function
-
-2004-09-19  David Zeuthen  <david at fubar.dk>
-
-	* hald/hald_dbus.c: Include dbus-glib-lowlevel.h instead of dbus-glib.h
-	(filter_function): Remove some debug output
-
-	* configure.in: Check for selinux_removable_context_path in 
-	libselinux
-
-	* tools/fstab-sync.c:
-	(get_removable_context):
-	(fs_table_add_volume):
-	(add_udi):
-	(remove_udi):
-	(clean): 
-	Patch from Dan Walsh <dwalsh at redhat.com> to add fscontext to
-	/etc/fstab for SELinux. Also removes patch that restored context
-	for /etc/fstab since this is not needed.
-
-2004-09-17  Joe Shaw  <joeshaw at novell.com>
-
-	* doc/TODO: Remove the device locking section, it's done now. Woo!
-
-	* doc/spec/hal-spec.xml.in: Add the Lock and Unlock methods to the
-	spec.
-
-	* hald/hald_dbus.c (raise_device_not_locked,
-	raise_device_already_locked): New errors for the locking methods.
-	(device_query_capability): Change the parsing to split up caps on
-	spaces rather than doing a substring match.
-	(device_lock): Implements the Lock dbus method, which grabs an
-	advisory lock on a device.
-	(device_unlock): Implements the Unlock dbus method.
-	(service_deleted): Callback which releases locks when the locking
-	service quits.
-	(filter_function): Add a ServiceDeleted handler, check for Lock
-	and Unlock methods.
-	(hald_dbus_init): Add a match for the ServiceDeleted signal so we
-	can see when things disconnect from the bus.
-
-	* libhal/libhal.c (hal_device_lock): Added.  Takes an advisory
-	lock for a device.
-	(hal_device_unlock): Releases the lock.
-
-2004-09-17  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c: (probe_vfat):
-	Fix endless loop for FAT32 volumes where the root directory
-	cluster chain is not terminated. Follow a maximum of 100 clusters
-	now and stop searching if we find a directory-end entry.
-
-2004-09-17  David Zeuthen  <david at fubar.dk>
-
-	Patch from Steve Grubb <linux_4ever at yahoo.com>.
-
-	* configure.in: Add HALD_PID_FILE to config.h
-
-	* hald/hald.c:
-	(delete_pid): New function
-	(main): Write pidfile. Set atexit to delete_pid.
-
-	* hald/haldaemon.in: Don't write pidfile
-
-2004-09-16  David Zeuthen  <david at fubar.dk>
-
-	Revisit networking. Basically a) split ethernet and wireless into
-	net.80203 and net.80211 properties; b) support renaming of
-	devices; c) use uint64 datatype; d) add property for whether an
-	interface is up and track this; and e) general cleanups when
-	properties are available and not
-
-	* doc/spec/hal-spec.xml.in: Update spec with changes made. Also
-	add uint64 property type
-
-	* hald/device_store.c (hal_device_store_match_key_value_int): New 
-	function
-	
-	* hald/device_store.h: Add prototype for function
-	hal_device_store_match_key_value_int
-	
-	* hald/linux/hald_helper.h: Add net_ifindex member
-	
-	* hald/linux/net_class_device.c:
-	(mii_get_rate): Rename net.ethernet.rate to net.80203.rate and make
-	the type uint64 
-	(mii_get_link): Rename net.ethernet.link to net.80203.link
-	(set_device_link_status): Remove function
-	(link_detection_handle_message): Also listen for interface up/down
-	messages on the netlink socket; maintains net.interface_up. Also
-	handle renaming messages. Remove net.80203.* properties if the
-	interface is down. Remove net.80203.rate if net.80203.link is FALSE.
-	Only check rate for net.80203 devices (fixes crasher for my new
-	Atheros card; remember?)
-	(net_class_pre_process): Rename from net.ethernet to net.80203 and
-	also have separate net.80211 namespace. Add net.interface_up and
-	net.linux.ifindex properties. Set net.{80203,80211}.mac_address
-	as a uint64 rather than net.ethernet.{mac_addr,mac_addr_upper24,
-	mac_addr_lower24}.
-	(net_class_accept): Small reorg of code
-	(net_class_post_merge): Always start listening to netlink socket
-	
-	* hald/linux/osspec.c:
-	(process_coldplug_list): Use NULL for hotplug_msg when invoking
-	add_device
-	(recover_net_device): New function
-	(add_device): Use net_ifindex and recover net device to handle
-	renaming of networking devices by udev and/or initscripts. Now
-	optionally uses the hotplug msg which may be NULL.
-	(rem_device): Optionally use the hotplug msg which may be NULL.
-	(hald_helper_hotplug): Pass on hotplug msg
-	(hald_helper_device_name): Pass on hotplug msg
-	(hald_helper_hotplug_process_queue): Pass on hotplug msg
-	(hald_helper_data): Pass on hotplug msg
-	
-	* tools/linux/hal_hotplug.c:
-	(wait_for_sysfs_info): Wait for ifindex for net devices and
-	extract the value
-	(main): pass on net_ifindex value to hotplug msg
-
-2004-09-15  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c: (probe_hfs_hfsplus):
-	Copy over extents array for later examination. Fixes the
-	label reading of a 40 GB hfsplus volume that I found on
-	my neighbours desk.
-
-2004-09-15  David Zeuthen  <david at fubar.dk>
-
-	* hald/hald_dbus.c (foreach_device_match_get_udi_tdl): New function
-	(manager_find_device_string_match): Also return devices in the TDL
-	that has a non-temporary UDI
-
-2004-09-14  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c: (set_uuid): Swicht from
-	length parameter to the type of uuid to be able to use the
-	same format for the uuid string, the native platform uses.
-	(probe_hfs_hfsplus): Switch the uper and lower part of the number to
-	match the number OS X prints with hfs.util.
-	(probe_linux_raid), (probe_ext), (probe_reiserfs), (probe_xfs),
-	(probe_jfs), (probe_vfat),(probe_hfs_hfsplus), (probe_ntfs): Set uuid
-	by type instead of length
-
-
-2004-09-14  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Patch from: Sjoerd Simons <sjoerd at luon.net>
-
-	* hald/linux/multimedia_class_device.c:
-	Debian does have the v4l2 stuff in the kernel headers. So just
-	copying causes the compile to fail on my system. Luckily it
-	defines HAVE_V4L2, so we can check for that.
-
-2004-09-14  Kay Sievers  <kay.sievers at vrfy.org>
-
-	Change Hotplug handling to better match the kernel. The next kernel
-	version will have a u64 hotplug sequence number starting at 1.
-	We can't be sure, that an ACTION != "add" is everytime a "remove" event,
-	change that to pass the action string around instead of the flag.
-
-	* hald/linux/hald_helper.h:
-	* hald/linux/osspec.c:
-	* tools/linux/hal_dev.c:
-	* tools/linux/hal_hotplug.c:
-	Change the hal_message structure to carry the u64 sequence number
-	and the ACTION as a string. Change message type to an enum. Rename
-	devnode to devname to match the udev name.
-	Use the u64 sequence number and change the logic not to rely on
-	negative numbers. The first sequence number will never be 0 in the
-	kernel, so we use it if we don't get one from udev.
-
-2004-09-14  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (cdrom_get_properties): Also set
-	storage.cdrom.dvdrw to FALSE. Add note about we should be giving 
-	the SCSI ioctl stuff some love soon.
-
-	* hald/linux/volume_id/volume_id.c (probe_vfat): Don't le16_to_cpu
-	for vs->sectors_per_cluster - it's a 8-bit quantity. Fixes bug with
-	one of my FAT32 volume labels
-
-2004-09-13  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/multimedia_class_device.c:
-	(multimedia_class_device_accept), (multimedia_class_pre_process):
-	New file for initial support of video4linux devices. It's just
-	a starting point and we need more input from users of v4l
-	devices. For a simple webcam it currently looks like this:
-	   multimedia.device = '/udev/video0'  (string)
-	   info.category = 'multimedia'  (string)
-	   multimedia.video.can_capture = true  (bool)
-	   multimedia.audio.has_audio = false  (bool)
-	   multimedia.tuner.has_tuner = false  (bool)
-	   multimedia.linux.version = 'v4l'  (string)
-	   info.udi = '/org/freedesktop/Hal/devices/usb_device_5a9_a511_100_-1_noserial'  (string)
-
-	* hald/linux/osspec.c:  Add the new multimedia_class_handler to
-	probe for video device properties on device discovery
-
-	* tools/device-manager/Representation.py: Change "video" to
-	"multimedia" to have a nice icon for the screenshots :)
-
-2004-09-13  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c: (probe_hfs_hfsplus): Add
-	  support for hfsplus with the physical location of the root node
-	  specified by a higher extent as the first one. This fixes
-	  the label reading on David's big hfsplus volume - I always
-	  expected that the volume was broken :)
-	  Also add initial support for hfs anf hfsplus uuid's.
-
-2004-09-12  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (block_class_in_gdl): Force the
-	initial poll if we support media_check_enabled; should fix some
-	issues with the IBM USB Memory Stick that shockingly report
-	/sys/block/<drive>/removable set to 0.
-
-2004-09-12  David Zeuthen  <david at fubar.dk>
-
-	* hal.conf.in: Fixup this file as it was broken. Reported by 
-	Kay Sievers <kay.sievers at vrfy.org>.
-
-2004-09-12  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c: (probe_vfat): Patch from
-	  Sjoerd Simons <sjoerd at luon.net> to fix vfat label reading
-	  on big endian systems
-
-2004-09-07  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/osspec.c (hald_helper_hotplug_process_queue): Check
-	for duplicate events and ignore them
-
-2004-09-07  David Zeuthen  <david at fubar.dk>
-
-	Patch from Sjoerd Simons <sjoerd at luon.net>
-
-	* configure.in: 
-	* hald/Makefile.am: 
-	All binaries generated by hal currently have -lexpat in their
-	LDFLAGS. Which by itself is not a problem, except that libtool
-	puts it as a library dependency in libhal.la. Which is ofcourse
-	unnecessary. Attached patch fixes this by using the expat link
-	option only for the hald binary.  No screenshot for this one
-	though :)
-
-2004-09-03  David Zeuthen  <david at fubar.dk>
-
-	Patch from Martin Pitt <martin at piware.de>.
-
-	* hal.conf.in: Drop AgentManager interface. Allow both HAL_USER
-	and root to own the org.freedesktop.Hal service.
-	
-	* hald/Makefile.am: Link with libcap
-	
-	* hald/hald.c: (usage), (drop_privileges), (main):
-	add option --drop-privileges which causes hald not to run as root,
-	but as @HAL_USER@ in @HAL_GROUP@ and all additional groups set in
-	/etc/group, and keeping the necessary capabilities to do its
-	job. This does _not_ change the default behaviour, if the option
-	is not specified, hald runs as root, as before.
-
-2004-09-03  David Zeuthen  <david at fubar.dk>
-
-	Patch from Martin Pitt <martin at piware.de>.
-
-	* hald/linux/block_class_device.c: (cdrom_get_properties),
-	(detect_media):
-	* hald/linux/input_class_device.c: (input_class_pre_process):
-	* hald/linux/printer_class_device.c: (printer_class_pre_process):
-	Intercept unchecked ioctl calls and log failures.
-
-2004-09-02  Joe Shaw  <joeshaw at novell.com>
-
-	* hald/device.c (hal_device_property_get_bool): Aiee!  If the
-	property is not found, we want to return FALSE instead of -1.
-
-	* hald/property.c (hal_property_get_bool): Return FALSE if the
-	type isn't boolean in the assertion, not -1.
-
-	* hald/linux/common.c (rename_and_merge): Fix some broken logic
-	which only worked because it was depending on -1 being returned
-	from boolean functions.  If I understand its original intent
-	correctly, it should still work.  (Of course, info.not_available
-	is never set to TRUE programmatically, so unless it's set in FDI
-	files it never actually comes up)
-
-	* doc/TODO: Update the "Computer" HalDevice item, remove a 
-	duplicate item.
-
-2004-09-01  David Zeuthen  <david at fubar.dk>
-
-	Patch from Jon Lech Johansen <jon at nanocrew.net>. Add support for
-	properties of 64-bit unsigned integers. Right now this is not used
-	as the D-BUS python bindings needs a patch.
-
-	* hald/device.c: (hal_device_merge_with_rewrite),
-	(hal_device_merge), (hal_device_matches),
-	(hal_device_property_get_uint64), (hal_device_property_set_uint64),
-	(hal_device_print):
-	* hald/device.h:
-	* hald/device_info.c: (handle_match), (handle_merge), (end):
-	* hald/hald_dbus.c: (foreach_property_append),
-	(device_get_property), (device_set_property):
-	* hald/linux/common.c: (parse_hex_uint64):
-	* hald/linux/common.h:
-	* hald/linux/ieee1394_node_class_device.c:
-	(ieee1394_node_class_pre_process):
-	* hald/linux/net_class_device.c: (net_class_pre_process):
-	* hald/property.c: (hal_property_new_uint64),
-	(hal_property_get_uint64), (hal_property_to_string),
-	(hal_property_set_uint64):
-	* hald/property.h:
-	* hald/pstore.c: (hal_pstore_save_property),
-	(hal_pstore_load_property):
-	* libhal/libhal.c: (hal_device_get_all_properties),
-	(hal_psi_get_uint64), (hal_device_get_property_uint64),
-	(hal_device_set_property_helper), (hal_device_set_property_string),
-	(hal_device_set_property_int), (hal_device_set_property_uint64),
-	(hal_device_set_property_double), (hal_device_set_property_bool),
-	(hal_device_remove_property), (hal_device_print):
-	* libhal/libhal.h:
-	* tools/device-manager/DeviceManager.py:
-	* tools/hal_get_property.c: (main):
-	* tools/hal_set_property.c: (usage), (main):
-	* tools/lshal.c: (dump_devices), (print_property):
-
-2004-09-01  David Zeuthen  <david at fubar.dk>
-
-	* tools/fstab-sync.c (fs_table_line_is_mounted): New function
-	(fs_table_remove_generated_entries): Don't remove generated entries
-	that are in use (e.g device mounted at path). Fixes problem with
-	restarting the hal daemon with devices mounted (e.g. on package
-	upgrade etc.)
-
-	* hald/callout.c (process_callouts): Print full path of callout
-
-2004-09-01  David Zeuthen  <david at fubar.dk>
-
-	This was a fun debugging session that led to this fix :-)
-	Basically when building optimized binaries (like for the Fedora
-	RPMS) an interesting sideeffect showed up: gobject signal handlers
-	are run in arbritrary order. This means that we were processing
-	hotplug events for sda%d before sda was added; which resulted in
-	the unavailability of the kids because they couldn't find their
-	parent.  Now we look at the device store to infer when to process
-	the next event. Which is more correct and actually makes hal
-	work. This *never* once showed up when not building without
-	--build=i686-redhat-linux-gnu --host=i686-redhat-linux-gnu
-	--target=i386-redhat-linux-gnu. Oh well.
-
-	* hald/linux/osspec.c (process_coldplug_list_on_gdl_store_add): 
-	Renamed from _callouts_done_for_device
-	(process_coldplug_list): Wait for device to be added to GDL instead
-	of relying on callouts to complete (device obj may not have been added
-	to GDL just because the callouts complete)
-	(reenable_hotplug_on_gdl_store_add): Renamed from reeanble_hotplug_proc
-	(reenable_hotplug_on_gdl_store_remove): New function
-	(hald_helper_hotplug): Rather look at the GDL for additions and
-	removals than looking at whether callouts complete
-
-2004-08-31  David Zeuthen  <david at fubar.dk>
-
-	* tools/linux/hal_hotplug.c: Don't wait for 'removable' file - it just
-	isn't available for non-top-level block devices (duh)
-
-2004-08-31  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c: 
-	(detect_media): Don't poll on drives with storage.removable set to FALSE
-	(block_class_pre_process): Use the /sys/block/<drive>/removable file
-	
-	* tools/device-manager/DeviceManager.py: Don't print out Conditions;
-	should give us more headroom until D-BUS is fixed wrt. rules maximum
-	and subscription of signals in the python bindings
-	
-	* tools/linux/hal_hotplug.c: Wait for 'removable' file for 'block'
-	system events
-
-2004-08-31  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* tools/linux/hal_hotplug.c: (wait_for_sysfs_info): Fix timout
-	calculation and don't wait for usb-files if we are called for a
-	usb class, just wait for a dev file
-
-2004-08-31  David Zeuthen  <david at fubar.dk>
-
-	* tools/fstab-sync.c (clean): Call restore_selinux_context if we
-	have selinux
-
-2004-08-31  David Zeuthen  <david at fubar.dk>
-
-	* hald/Makefile.am (hald_SOURCES): Also add volume_id_logging.h so
-	distribution tarballs work
-
-2004-08-30  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c: (probe_linux_raid): Skip very
-	very small volumes, caus our end of volume calculation is wrong in
-	that case.
-
-	* hald/linux/volume_id/volume_id_logging.h: Add a new file
-	to wrap the HAL logging facility into volume_id
-
-2004-08-30  David Zeuthen  <david at fubar.dk>
-
-	* tools/linux/Makefile.am (uninstall-local): Get the uninstall rules
-	right for 10-hal.dev and 20-hal.hotplug 
-
-2004-08-30  David Zeuthen  <david at fubar.dk>
-
-	* tools/fstab-sync.c: (open_temp_fstab_file), (add_udi),
-	(remove_udi), (clean): Go back to creating the temporary
-	file in /etc. Add note about using /tmp (giving up atomicity)
-	if /etc is in general readonly
-
-2004-08-30  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Add SELinux checks
-	
-	* tools/Makefile.am: Build fstab-sync with selinux support if applicable
-	
-	* tools/fstab-sync.c: 
-	(restore_selinux_context): New functions
-	(add_udi): Use restore_selinux_context
-	(remove_udi): Use restore_selinux_context
-	
-	* tools/linux/Makefile.am: Install hal.hotplug and hal.dev symlinks
-	prefixed with 20- respectively 10-.
-
-2004-08-29  David Zeuthen  <david at fubar.dk>
-
-	* tools/linux/Makefile.am (install-data-local): Use 20-hal.hotplug for
-	hotplug helper and 10-hal.dev for dev.d helper. Suggested by Kay
-	Sievers <kay.sievers at vrfy.org>.
-
-2004-08-29  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (detect_media): Set volume.fsusage
-	to empty string by default
-	(block_class_pre_process): Also set volume.fsusage to empty string by
-	default. Set storage.drive_type to disk by default (should now work
-	the the ub kernel driver instead of usb-storage)
-
-	* hald/hald.c (main): Print out version
-
-	* tools/linux/hal_dev.c (main): Put in option for more debug
-
-2004-08-28  David Zeuthen  <david at fubar.dk>
-
-	* tools/linux/hal_hotplug.c: Add some more files to wait for
-	(wait_for_sysfs_info): Only wait 10 secs (should be enough; we're
-	waiting for the kernel)
-
-2004-08-28  David Zeuthen  <david at fubar.dk>
-	
-	* hald/linux/block_class_device.c: 
-	(block_class_visit): Fail if parent isn't already there (this and
-	other things should close RH Bug #131154)
-
-	* hald/linux/bus_device.c: 
-	(bus_device_visit): Fail if parent isn't already there
-
-	* hald/linux/class_device.c:
-	(class_device_visit): Fail if parent isn't already there; return
-	NULL if we merge onto parent. Leave TODO about how to deal with
-	this (other devices will be processed while we merge; probably
-	not a big deal since we don't yet have callouts)
-	(class_device_final): Add a TODO about running callouts when merge
-	is complete
-
-	* hald/linux/osspec.c:
-	(process_coldplug_list_callouts_done_for_device): Also discon. cancelled
-	(process_coldplug_list_device_cancelled): Also discon. done_for_device
-	(process_coldplug_list): Pass coldplug_list as param to cancelled
-	(reenable_hotplug_proc_on_device_cancel): Also disconnect _proc
-	(reenable_hotplug_proc): Also disconnect _cancel
-
-2004-08-28  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/block_class_device.c:
-	(get_first_valid_partition), (detect_media): Fix leftover from
-	volume_id name change, which broke no_partitions media.
-	Clarify comments only a few lines apart, to not claim the direct
-	opposite
-
-2004-08-27  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c:
-	(probe_lvm1), (probe_lvm2): Add detection of LVM physical drives
-	(probe_linux_raid): add version number of raid
-
-	* hald/linux/volume_id/volume_id.h: We are at version 021 now.
-	It started as a replacement of the FAT label reading code in HAL.
-	I _never_ expected that we seek over the whole disk now to search
-	for raid signatures and support nearly every filesystem I've ever
-	had a formatting tool for :)
-
-2004-08-27  David Zeuthen  <david at fubar.dk>
-
-	* AUTHORS: Add Kay Sievers <kay.sievers at vrfy.org> cause he rocks.
-	Sort the list in alphabetical order of surname (I'm just soo
-	political correct :-)
-
-	* fdi/20freedesktop/canon-digital-ixus-v.fdi: Merge onto usb_device
-	since we really don't know what interface to target
-
-	* hald/linux/hald_helper.h: Change comment about seqnum
-
-	* hald/linux/libsysfs/sysfs_dir.c (sysfs_open_link): Patch from
-	Steve Grubb <linux4_ever at yahoo.com> to fix leak on error condition.
-
-	* hald/linux/osspec.c: 
-	(add_computer_callouts_done): Move from TDL to GDL
-	(osspec_probe): Add to TDL; callouts may need it (seen by Kristof
-	Vansant <de_lupus at pandora.be>
-	(hald_helper_device_node): Print out seqnum
-	(hald_helper_data): Pass seqnum
-
-	* hald/logger.h: Ignore ENABLE_VERBOSE_MODE; always compile all
-	logging statements in (should take the heat of some bugreports)
-
-	* tools/linux/hal_dev.c (main): Pass seqnum if available; otherwise
-	pass -1.
-
-2004-08-26  Joe Shaw  <joeshaw at novell.com>
-
-	* configure.in: Don't check for a C++ compiler... we don't have
-	any C++ code.
-
-	* doc/spec/hal-spec.xml.in: Add a section about kernel properties.
-
-	* hald/linux/osspec.c (osspec_probe): Get kernel info from uname()
-	and add the properties to the Computer device.
-
-2004-08-26  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* doc/spec/hal-spec.xml.in: Add description of "volume.fsusage"
-
-	* hald/linux/block_class_device.c:
-	(set_volume_id_values): Use "volume.fsusage" instead of "is_filesystem"
-	and "is_part_of_raid"
-	(detect_media), (block_class_pre_process): Set missing defaults and
-	remove "is_filesystem"
-
-	* hald/linux/volume_id/volume_id.c: (probe_linux_raid),
-	(probe_msdos_part_table), (probe_ext), (probe_reiserfs),
-	(probe_xfs), (probe_jfs), (probe_vfat), (probe_udf),
-	(probe_iso9660), (probe_ufs), (probe_mac_partition_map),
-	(probe_hfs_hfsplus), (probe_ntfs), (probe_swap): Switch naming
-	form "format" and "type" to "type" and "usage" to match the
-	names we use in HAL now. 
-
-	* tools/fstab-sync.c: (udi_is_volume_or_nonpartition_drive):
-	Switch from "is_filesystem" to "volume.fsusage" to determine
-	if the volume is mountable
-
-2004-08-25  David Zeuthen  <david at fubar.dk>
-
-	* tools/linux/hal_hotplug_map.c (main): Match usb_device rather
-	than usb since we don't want to merge onto interfaces.
-
-2004-08-25  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Add option for new callout hal-hotplug-map
-	
-	* hald/device.[ch]: Add the "cancelled" signal and hal_device_cancel
-	method
-
-	* hald/hald.c (main): Avoid daemonization for now; will make hald
-	hang if anything fails up-until device probing (RH bug 130849)
-
-	* hald/linux/class_device.c (class_device_got_device_file):
-	Cancel the device if don't get the device file
-
-	* hald/linux/common.h: Increase timeout to 60 secs. Make note
-	about we really need the SEQNUM support in udev
-
-	* hald/linux/osspec.c: 
-	(process_coldplug_list_device_cancelled): New function
-	(process_coldplug_list): Add support for cancelling
-	(reenable_hotplug_proc_on_device_cancel): New function
-	(hald_helper_hotplug): Add support for cancelling
-	(hotplug_sem_up): Add some helpful debug
-	(hotplug_sem_down): Add some helpful debug
-	(hald_helper_data): Add some helpful debug
-
-	* tools/Makefile.am: Also remove callout on uninstall
-
-	* tools/fstab-sync.c:
-	(fs_table_remove_volume): Only require device_file not complete Volume
-	object
-	(remove_udi): Don't require storage device to be present (fixes some
-	problems when unplugging unpartitioned media as we don't get hotplug
-	event and things are thus not serialised)
-
-	* tools/linux/Makefile.am: Build and, optionally, install 
-	hal-hotplug-map callout
-
-	* tools/linux/hal_hotplug_map.c: New program; a tad Red Hat specific
-	wrt. file locations; patches are welcome. The single purpose of
-	this callout is to detect gphoto2 supported cameras and libsane
-	supported scanners using usermap files in /etc/hotplug.
-
-2004-08-25  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/block_class_device.c:
-	(set_volume_id_values), (get_first_valid_partition),
-	(volume_set_size), (detect_media), (block_class_pre_process): Add
-	"volume.is_part_of_raid" and pass the size of the volume down to
-	volume_id to be able to look for a raid superblock at the end of
-	the device.
-	* hald/linux/volume_id/volume_id.c:
-	(probe_linux_raid) : Add linux_raid detection with reading of the
-	raid set uuid
-	(probe_msdos_part_table): follow extended partiton while probing
-	(vfat_search_label_in_dir), (probe_vfat): Support reding of labels
-	stored in the directory of FAT32 and read the whole root directory
-	instead of only the first cluster
-	(probe_mac_partition_map): return UNUSED and PARTITIONTABLE types
-	for know Apple partitions
-	(volume_id_probe): Add raid detection, if volume_id is called with
-	the size of the volume.
-
-2004-08-23  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (detect_media):
-	(block_class_pre_process): Set volume.is_filesystem to FALSE by default
-
-2004-08-23  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/osspec.c (osspec_probe): Add info.udi to computer
-	(process_shutdown_list_callouts_done_for_device): New function
-	(process_shutdown_list): New function
-	(shutdown_add_recursively_to_list): New function
-	(osspec_shutdown): Completely rewrite the shutdown code
-
-	* hald/haldaemon.in: Add 'sleep 3' when restarting the hal daemon
-	to get a chance for the shutdown callouts to run
-
-2004-08-23  David Zeuthen  <david at fubar.dk>
-
-	* tools/Makefile.am (install-data-local): Install the fstab-sync
-	if applicable.
-
-	* configure.in: Add the --enable-fstab-sync option to automatically
-	install a 50-fstab-sync.hal symlink to fstab-sync.
-
-2004-08-23  David Zeuthen  <david at fubar.dk>
-
-	* hald/hald.c (main): Setup a pipe and make parent wait until client
-	writes to it.
-	(osspec_probe_done): Write to the parent to make it exit
-
-2004-08-23  David Zeuthen  <david at fubar.dk>
-
-	* hald/hald.c (main): Move daemonazation back to beginning (fixes
-	fdo bug #1165) for now
-
-2004-08-23  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (force_unmount): Don't clear the 
-	volume.* properties
-
-	* hald/linux/osspec.c (rem_device): Call the removed method on the
-	ClassDeviceHandler
-
-	* tools/fstab-sync.c:
-	(fs_table_add_volume): Only use fstype auto for optical and floppy
-	drives; ignore the rest if fstype cannot be probled (fixes *some*
-	issues with RAID partitions getting added to fstab)
-	(volume_determine_mount_point): Complete rewrite; this was broken
-	for ieee1394 drives. Also check if the directory is available
-	in /media or whatever the root is
-	(fs_table_remove_generated_entries): Also remove directory in
-	/media. Fixed a bug where only every other line was removed.
-
-2004-08-23  David Zeuthen  <david at fubar.dk>
-
-	* tools/fstab-sync.c (fs_table_has_volume): Properly resolve symlinks
-	that aren't fully qualified
-
-2004-08-23  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c:
-	(probe_msdos_part_table),
-	(volume_id_probe): Patch from Sjoerd Simons <sjoerd at luon.net>
-	to move msdos partition table probing to the end of the list.
-	He found a ext3 with msdos signature on the first block.
-	Also add a check if all partitions are empty, so  we do not
-	recognize it as a msdos partition table.
-
-2004-08-22  David Zeuthen  <david at fubar.dk>
-
-	* hald/callout.c: Only invoke callouts if they have the .hal extension.
-	Export HALD_VERBOSE if the hald instance is started with verbose.
-	Add HALD_STARTUP resp. HALD_SHUTDOWN only if the callout is in response
-	to hald starting up/shutting down.
-
-	* hald/hald.c: Add an verbose option. Use the HALD_VERBOSE environment
-	variable. Postpone daemonization until we are done probing.
-
-	* hald/hald.h: Move hald_is_[verbose|initialising|is_shutting_down] here
-
-	* hald/linux/bus_device.c: 
-	(bus_device_visit): We can now always assume we got a parent
-
-	* hald/linux/class_device.c: 
-	(class_device_visit): We can now always assume we got a parent
-
-	* hald/linux/common.h:
-
-	* hald/linux/drive_id/drive_id.c:
-
-	* hald/linux/osspec.c: Complete rewrite of probing code; now we
-	construct a list of ''coldplug events'' and feed them to the
-	two new functions add_device() and rem_device(); this unifies 
-	a few codepaths and it's much faster, cleaner and just yummier. 
-	Also ensure that callouts are run sequentially.
-
-	* hald/logger.c: 
-	(logger_enable),
-	(logger_disable): New functions 
-	(logger_emit): Print time and don't print function name
-
-	* hald/logger.h: Add logger_[enable|disable].
-
-	* tools/fstab-sync.c:
-	(open_temp_fstab_file): Use /tmp for the temporary file
-	(fs_table_has_volume): Remove debug spew
-	(add_udi): Log a message to the syslog on success
-	(remove_udi): Log a message to the syslog on success
-	(clean): Log a message to the syslog on success
-	(main): Use HALD_VERBOSE. When invoked for the ''computer'' device
-	object on hald startup, automatically clean the fstab (but only if
-	using a managed keyword). Don't remove entries on hald
-	shutdown. In line with the osspec.c changes (sequential callouts)
-	we now get a fully sanitized /etc/fstab at hald startup, Yay!
-
-	* tools/linux/hal_dev.c: (main): Less syslog spamming
-
-	* tools/linux/hal_hotplug.c: 
-	(wait_for_sysfs_info): Less syslog spamming
-	(main): Less syslog spamming
-
-2004-08-20  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c: (probe_reiserfs),
-	(probe_swap): Export format_version for reiser and swap
-
-2004-08-19  David Zeuthen  <david at fubar.dk>
-
-	* tools/fstab-sync.c: Lot's of changes: remove old locking code;
-	fix security issue (remove dev,suid) with the given mount options 
-	(RH bug #130290); Use a, pretty lame perhaps, heuristic to add 
-	noatime,sync for hotpluggable volumes smaller than 1GB. Check device 
-	mentioned in /etc/fstab for symlink and if found, update the 
-	block.device property in HAL if applicable; Use macros for mount
-	root and noop keyword (see configure.in changes).	
-
-	* hald/linux/block_class_device.c (volume_set_size): New function
-	(detect_media): Call volume_set_size
-	(block_class_pre_process): Call volume_set_size
-
-	* doc/spec/hal-spec.xml.in: Add documentation for volume.block_size
-	and volume.num_blocks.
-
-	* configure.in: Add gobject>=2.2.2 to PKG_CHECK_MODULES. Patch from 
-	Steve Grubb <linux_4ever at yahoo.com>. Added some configuration options
-	for fstab-sync.
-	
-2004-08-19 Kay Sievers <kay.sievers at vrfy.org>
-
-	* hald/linux/block_class_device.c: Add volume.fsversion to the
-	volume if avalable. Currently FAT12, FAT16, FAT32, and the
-	NTFS version unmber is supported.
-
-	* hald/linux/volume_id/volume_id.[ch]: bump to version 013
-	o remove msdos probe type (handled by vfat now)
-	o introduce format_version to return the filesystem version
-	  if available. We can provide vfat(FAT32) or NTFS(3.1) now.
-	o no longer trust the version string in the fat superblock,
-	  it's not correct to do this. The type of FAT is _only_ de-
-	  termined by the count of clusters.
-	o vfat's "NO NAME" is a empty label now
-	o support for FAT labels stored in the directory instead of the
-	  superblock (XP does this). volume_id ignores the label in the
-	  superblock if you have a label in the directory.
-
-2004-08-17  David Zeuthen  <david at fubar.dk>
-
-	* tools/fstab-sync.c (volume_new): Use vfat instead of msdos
-
-	* hald/linux/volume_id/volume_id.c (probe_msdos): Revert ugly hack
-
-2004-08-17  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Patch from Tim Gerla <tim at gerla.net>. It looks
-	like the configure script for hal doesn't properly handle
-	--with-pid-file as an argument, because of the glitch illustrated
-	by the patch I've attached.
-
-	* hald/linux/volume_id/volume_id.c (probe_msdos): Introduce a
-	hack where this is set to vfat instead.
-
-	* hald/linux/hald_helper.h (HALD_HELPER_SOCKET_PATH): Don't use
-	the local prefix, always use /var, cause otherwise it's difficult
-	when developing on hal and using a local prefix (we want to use
-	the installed hal.dev, hal.hotplug from a package)
-
-	* hald/linux/volume_id/volume_id.[ch]: Patch from Kay Sievers
-	<kay.sievers at vrfy.org>. Long weekend with a few rain showers, so
-	here is a update to volume_id :). We finally get the same uuid for
-	a ntfs volume on Windows and with HAL. Also msdos extended
-	partitons are handled now.
-
-2004-08-16  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Bump to 0.2.97
-
-2004-08-16  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Add the --enable-fstab-op to specify whether we
-	want to use a keyword (currently kudzu) when adding entries
-	to the fstab. Default is off
-
-	* hald/linux/block_class_device.c:
-	(block_class_visit): Only return the HalDevice if the parent exists
-	(detect_media): Print out debug statement when we forcibly probe
-	for media
-	(block_class_pre_process): Detect the ide-cs driver by looking at
-	the sysfs path (!) and set the media_check_enable to FALSE.  Only
-	do volume_id and drive_id probing if storage.media_check_enabled
-	is TRUE. Sets the volume.fstype to 'vfat,msdos,auto' in this case.
-	Fixes issues with the ide-cs driver
-	(block_class_in_gdl): Add a comment about how we could defer
-	the check for non-partitioned media via a timeout
-	(deferred_check_for_non_partition_media): The function to check
-	for media; not currently used
-	(mtab_handle_storage): Use detect_media() to add the new child
-	when a non-partition volume we didn't know about was mounted
-	(mtab_handle_volume): Remove non partitioned media on drives
-	that can't be polled when it's unmounted.
-	
-	* hald/linux/bus_device.c:
-	(bus_device_visit): Only return the HalDevice if the parent exists
-
-	* hald/linux/class_device.c:
-	(class_device_visit): Only return the HalDevice if the parent exists
-	(class_device_got_parent_device): Print out the sysfs path instead
-	of the HAL UDI
-	
-	* hald/linux/ide_bus_device.c:
-	(ide_device_accept): New function; currently the same as the super
-	class but useful for testing
-	
-	* hald/linux/ide_host_bus_device.c:
-	(ide_host_device_accept): Don't pickup toplevel ide_host objects
-	cause they're not hotplugged anyway (thus no way to remove them)
-	
-	* tools/fstab-sync.c: 
-	(volume_new): Also check if the volume.fstype is empty
-
-2004-08-15  David Zeuthen  <david at fubar.dk>
-
-	Sends messages from hotplug and device naming helpers via a local
-	socket. Reorder the hotplug events we receive in hald according to
-	SEQNUM and use a semaphor pattern to ensure that we don't process
-	a hotplug event before the device created in effect to the
-	previous event is completely processed (e.g.  add/remove callouts
-	have run).
-
-	* hald/Makefile.am: Remove scsi_host_class_device.c and add
-	scsi_bus_device.c, hald_helper.h.
-
-	* hald/device_info.c: 
-	(handle_match): Comment out debug
-	(scan_fdi_files): Comment out debug
-
-	* hald/linux/block_class_device.c: 
-	(block_class_visit): Return the HalDevice* object
-	(block_class_pre_process): Use 'scsi' instead of 'scsi_device'
-	(block_class_compute_udi): -do-
-	(mtab_handle_volume): Comment out debug
-	(etc_mtab_process_all_block_devices): Comment out debug
-
-	* hald/linux/bus_device.c:
-	(bus_device_visit): Return the HalDevice* object
-
-	* hald/linux/bus_device.h: Make the visit method return the HalDevice
-	object for tracking purposes
-
-	* hald/linux/class_device.c: 
-	(class_device_visit): Return the HalDevice* object
-	(class_device_got_sysdevice): Comment out debug
-
-	* hald/linux/class_device.h: Make the visit method return the HalDevice
-	object for tracking purposes
-
-	* hald/linux/common.c:
-	(rename_and_merge): Comment out debug
-	(class_device_get_device_file): Make debug statement more specific
-
-	* hald/linux/net_class_device.c:
-	(net_class_compute_udi): Comment out debug
-	(net_class_udev_event): New function to ignore the udev event (duh)
-
-	* hald/linux/osspec.c: Remove the ClassDeviceHandler scsi_device_
-	class_device in favour of the BusDeviceHandler scsi_bus_device
-	(visit_class_device): Return the HalDevice* object
-	(visit_device): Return the HalDevice* object
-	(osspec_init): Listen for datagrams on a local socket from hal.dev
-	and hal.hotplug
-	(remove_device): Return the HalDevice* object
-	(remove_class_device): Return the HalDevice* object
-	(handle_hotplug): Removed
-	(handle_device_event): Removed
-	(osspec_filter_function): Is empty now. We got our information via
-	a local socket now
-	(reenable_hotplug_proc): New function
-	(hald_helper_hotplug): New function
-	(hald_helper_device_node): New function
-	(hald_helper_hotplug_process_queue): New function
-	(hotplug_sem_up): New function 
-	(hotplug_sem_down): New function
-	(hald_helper_first_hotplug_event): New function
-	(hald_helper_data): New function
-
-	* hald/linux/hald_helper.h: New file
-	
-	* hald/linux/scsi_bus_device.c: New file
-
-	* hald/linux/scsi_device_class_device.c: Removed
-
-	* hald/linux/scsi_generic_class_device.c:
-	(scsi_generic_get_device_file_target): New function. Merge the
-	device file information to scsi.generic_device instead
-
-	* tools/device-manager/Const.py.in: s/scsi_device/scsi/
-
-	* tools/linux/Makefile.am: Don't link with D-BUS
-
-	* tools/linux/hal_dev.c:
-	(get_sysfs_mnt_path): Removed
-	(main): Send the message via a local socket instead
-
-	* tools/linux/hal_hotplug.c:
-	(main): Send the message via a local socket instead
-
-2004-08-13  David Zeuthen  <david at fubar.dk>
-
-	* tools/fstab-sync.c: All debug statements now prints the pid
-	(volume_determine_device_type): Aiih. Due to hal not removing all
-	children devices before parent devices and the fact that we use
-	properties on a parent device when removing a volume we end up
-	with a problem. Thing is, we don't need this info when removing
-	fstab entries so simple fix is to call hal_device_exists() for the
-	UDI.
-	(volume_new): Typo, volume.fs_type should be volume.fstype
-	(add_udi): Print out debug when an entry was added
-	(remove_udi): Print out debug when an entry was removed
-	(clean):
-	(main): Use flock(2) to lock the /etc/fstab file. Also bail out
-	when there are no info.capabilities and we were invoked by hald.
-	Store PID in the global variable pid.
-
-	* doc/TODO: Added TODO about removing childs before their parent
-
-2004-08-12  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Bump to 0.2.96
-
-	* doc/spec/hal-spec.xml.in: Include example-manager.py instead of
-	examply-manager.py. Sigh.
-
-	* doc/spec/example-manager.py: New file
-
-	* doc/spec/examply-manager.py: Removed
-
-2004-08-12  David Zeuthen  <david at fubar.dk>
-
-	* doc/spec/hal-spec.xml.in: Rewrite block.no_partitions spec.
-	Add storage.[serial|firmware_version] which was forgotton.
-	
-	* hald/linux/block_class_device.c (detect_media): Set to
-	value of storage.no_partitions_hint to honor the new spec when
-	creating a volume for media with no partition tables.
-	
-	* tools/fstab-sync.c: Remove DeviceType datatype; document entries
-	in Volume datatype.
-	(udi_is_volume_or_nonpartition_drive): Renamed from udi_is_volume
-	(compute_cdrom_name): New function
-	(volume_determine_device_type): Rewrite
-	(volume_new): Call udi_is_volume_or_nonpartition_drive. Always use
-	"auto" as target filesystem if not known
-	(fs_table_has_volume): Remove debug printfs
-	(fs_table_add_volume): Use hal properties to determine mount flags
-	(add_udi): Don't process volumes spawned from media w/o partitions
-	(remove_udi): Don't process volumes spawned from media w/o partitions
-	(main): Also handle capability 'storage'
-
-2004-08-12  David Zeuthen  <david at fubar.dk>
-
-	* tools/fstab-sync.c (udi_is_volume): Simplify this a bit given
-	that cap volume always implies cap block
-	(main): Check the HAL_INFO_PROP_INFO_CAPABILITIES which is set
-	when invoked from hald to exit if it's not a volume
-
-2004-08-12  David Zeuthen  <david at fubar.dk>
-
-	* tools/fstab-sync.c: Set emacs mode to GNU, include mntent.h
-	(volume_new): Add label field
-	(volume_free): Destroy label field
-	(fs_table_has_volume): Renamed from fs_table_has_block_device,
-	handle LABEL= entries in fstab by looking at the volume and
-	looking up /etc/mtab
-	(fs_table_add_volume): Invoke fs_table_has_volume instead
-	of fs_table_has_block_device
-
-2004-08-11  David Zeuthen  <david at fubar.dk>
-
-	* doc/spec/hal-spec.xml.in: Add docs for block.have_scanned,
-	volume.is_filesystem, Device Conditions on volume device
-	objects (now with new names), 'unknown' value for
-	volume.disc.type, 'platform' value for storage.bus, rename
-	storage.automount_enabled to storage.automount_enabled_hint. Add
-	property storage.no_partitions_hint
-
-	* hald/hald.conf:
-	* hald/hald_conf.[ch]:
-	Rename storage.automount_enabled to storage.automount_enabled_hint
-	and remove storage.cdrom_eject_check_enabled.
-
-	* hald/linux/common.[ch]:
-	Remove find_and_set_virtual_device()
-
-	* hald/linux/platform_bus_device.c: (platform_device_pre_process):
-	Set the correct properties for floppy drives
-
-	* hald/property.c (hal_property_get_bool): Return FALSE instead of
-	-1 if property not found.
-
-	* hald/linux/block_class_device.c: (set_volume_id_values),
-	(get_child_device_gdl), (get_child_device_tdl),
-	(block_class_visit), (cdrom_get_properties), (force_unmount),
-	(force_unmount_of_all_childs), (get_first_valid_partition),
-	(detect_disc), (detect_media), (block_class_pre_process),
-	(mtab_handle_storage), (mtab_handle_volume):
-	Unified codepaths for handling optical discs and other removable
-	storage. Handle media with no partition table much nicer
-	
-	* hald/linux/volume_id/volume_id.c: (set_label_string),
-	(set_label_unicode16), (set_uuid), (get_buffer),
-	(probe_msdos_part_table), (probe_ext), (probe_reiser), (probe_xfs),
-	(probe_jfs), (probe_vfat), (probe_msdos), (probe_udf),
-	(probe_iso9660), (probe_ufs), (probe_mac_partition_map),
-	(probe_hfs_hfsplus), (probe_ntfs), (probe_swap), (volume_id_probe),
-	(volume_id_close):
-	* hald/linux/volume_id/volume_id.h:
-	Add support for parsing partition tables from Kay Sievers 
-	<kay.sievers at vrfy.org>. Change 'reiser' to 'reiserfs' because
-	the that's the name on Linux.
-	
-2004-08-11  Ray Strode  <rstrode at redhat.com>
-
-	* tools/fstab-sync.c: don't require callout wrapper shell
-	script.
-
-2004-08-09  David Zeuthen  <david at fubar.dk>	
-
-	* doc/spec/hal-spec.xml.in: Added some text about how storage_lun%d.*
-	and storage.* properties are merged from the physical device object
-	backing the block devices. Included .fdi example with 6in1 reader
-	to further clarify this.
-
-	* doc/spec/hal/hal-devices1.png: 
-	* doc/spec/hal/hal-fdi-example1.png:
-	Updated to show full device tree now that info.virtual is gone.
-
-	* doc/spec/hal/hal-fdi-example2.png: New file
-
-	* doc/spec/hal/hal-fdi-example3.png: New file
-
-2004-08-08  David Zeuthen  <david at fubar.dk>
-
-	* doc/TODO: Remove the TODO entry about support for multiple USB
-	interfaces since this is now done
-
-	* hald/linux/usbif_bus_device.c (compute_name_from_if): New function
-
-	* hald/linux/usb_bus_device.c: Rename all usb.* properties to
-	usb_device.*
-
-	* hald/linux/usbif_bus_device.c: Rename all usbif.* properties to
-	usb.*. Merge usb_device.* properties from parent device. Essentially
-	an USB interface is now like an USB device was except that it
-	exports properties usb.interface.* to describe the USB interface
-
-	* tools/device-manager/Const.py.in: 
-	* tools/device-manager/Representation.py: 
-	Handle the s/usb/usb_device/ and s/usbif/usb/ renamings
-
-	* doc/spec/hal-spec.xml.in: Apply a patch from Kay with spelling/
-	language/grammar improvements. Also update to reflect the USB
-	renaming.
-
-	* hald/linux/usbif_bus_device.c (usbif_device_pre_process): 
-	* hald/linux/scsi_host_class_device.c (scsi_host_class_pre_process): 
-	* hald/linux/scsi_device_class_device.c 
-	(scsi_device_class_pre_process): 
-	* hald/linux/macio_bus_device.c (macio_device_pre_process): 
-	* hald/linux/ieee1394_node_class_device.c 
-	(ieee1394_node_class_pre_process): 
-	* hald/linux/ieee1394_host_class_device.c 
-	(ieee1394_host_class_pre_process): 
-	* hald/linux/ide_host_bus_device.c (ide_host_device_pre_process): 
-	* hald/linux/ide_bus_device.c (ide_device_pre_process): 
-	* hald/linux/block_class_device.c (block_class_pre_process): 
-	Don't set the info.virtual property
-
-2004-08-06  David Zeuthen  <david at fubar.dk>
-
-	* fdi/20freedesktop/canon-digital-ixus-v.fdi: Updated to match spec
-
-	* fdi/20freedesktop/jetflash-mp3-player.fdi: Updated to match spec
-
-	* doc/spec/hal-spec.xml.in: Work in progress
-
-	* hald/linux/pcmcia_socket_class_device.c 
-	(pcmcia_socket_class_pre_process): Add property pcmcia_socket.number
-
-2004-08-04  David Zeuthen  <david at fubar.dk>
-
-	* doc/spec/hal-spec.xml.in: Work in progress
-
-2004-08-04  David Zeuthen  <david at fubar.dk>
-
-	Patch from Dan Williams <dcbw at redhat.com>
-	
-	* libhal/libhal.c (filter_func): fix small memory leaks when
-	LibHalFunctions are missing
-
-2004-08-04  David Zeuthen  <david at fubar.dk>
-
-	* doc/spec/hal-spec.xml.in: Work in progress
-
-2004-08-03  David Zeuthen  <david at fubar.dk>
-
-	* doc/spec/hal-spec.xml.in: Work in progress
-
-2004-08-03  David Zeuthen  <david at fubar.dk>
-
-	* doc/spec/examply-manager.py: New file
-
-	* doc/spec/hal-spec.xml.in: Work in progress
-
-2004-08-02  David Zeuthen  <david at fubar.dk>
-
-	* tools/device-manager/DeviceManager.py (DeviceManager.gdl_changed): 
-	Upgrade to latest D-BUS python API
-
-2004-08-02  David Zeuthen  <david at fubar.dk>
-
-	* libhal/libhal.c (filter_func): Only return RESULT_HANDLED if we
-	really handle the message. Otherwise return RESULT_NOT_YET_HANDLED.
-	Bug identified by Dan Williams <dcbw at redhat.com>. 
-
-2004-08-02  David Zeuthen  <david at fubar.dk>
-
-	Patch from Dan Williams <dcbw at redhat.com>
-
-	* hald/linux/ieee1394_class_device.c:
-	* hald/linux/ieee1394_host_class_device.c:
-	* hald/linux/ieee1394_node_class_device.c:
-	Gets rid of warnings and potential bugs due to default function return
-	type of 'int'.
-
-2004-08-02  David Zeuthen  <david at fubar.dk>
-
-	* doc/spec/Makefile.am (FIGURE_FILES): Add hal-linux26.png
-
-	* doc/spec/hal-spec.xml.in: Work-in-progress commit
-
-	* doc/spec/hal-linux26.dia:
-	* doc/spec/hal-linux26.png: New files
-
-2004-08-02  David Zeuthen  <david at fubar.dk>
-
-	* doc/spec/Makefile.am (FIGURE_FILES): Remove hal-devices-virtual1.png
-
-	* doc/spec/hal-spec.xml.in: Work-in-progress commit
-
-	* doc/spec/hal-arch.dia:
-	* doc/spec/hal-arch.png:
-	* doc/spec/hal-devices1.png: Updated
-
-	* doc/spec/hal-devices-virtual1.png: Removed
-
-2004-08-02  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>
-	
-	* hald/linux/block_class_device.c: (detect_fs),
-	(block_class_pre_process):
-	* hald/linux/drive_id/drive_id.c: (drive_id_probe):
-	* hald/linux/drive_id/drive_id.h:
-	* hald/linux/volume_id/volume_id.c: (probe_ext), (probe_reiser),
-	(probe_xfs), (probe_jfs), (probe_vfat), (probe_msdos), (probe_udf),
-	(probe_iso9660), (probe_ufs), (probe_hfs_hfsplus), (probe_ntfs),
-	(probe_swap), (volume_id_probe), (volume_id_open_node):
-	* hald/linux/volume_id/volume_id.h:	
-	Attached is a trivial cleanup of the enum names, cause 'ALL' is
-	not a very good name in a global namespace. I've prepended the
-	libname to all names.
-
-2004-08-01  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (block_class_compute_udi):
-	If model and serial numbers are not available (for USB or IEEE1394
-	devices), use the UDI for storage.physical_device and append the
-	SCSI LUN and prepend block_ to attain uniqueness.
-	
-	* hald/linux/scsi_device_class_device.c:
-	(scsi_device_class_pre_process): Add capability 'scsi_device'
-	
-	* hald/linux/scsi_host_class_device.c:
-	(scsi_host_class_pre_process): Add capability 'scsi_host'
-
-2004-08-01  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>
-
-	* hald/Makefile.am:
-	* hald/linux/block_class_device.c: (block_class_pre_process),
-	(block_class_compute_udi):
-	* hald/linux/drive_id/drive_id.c: (dump), (set_str), (scsi_inq),
-	(probe_scsi), (probe_ata), (drive_id_probe), (drive_id_open_fd),
-	(drive_id_open_node), (drive_id_open_dev_t), (drive_id_close):
-	* hald/linux/drive_id/drive_id.h:
-	Here is the code, that reads the serial number of a drive,
-	directly connected to an ATA or SCSI bus. HAL probes for the
-	values and adds: storage.serial, storage.firmware_version,
-	storage.revision if available.
-	Note: This will only work on native interfaces. For devices behind
-	USB, it's not possible to get any of these values. There are some
-	bridges out there, which are capable to set the USB-values itself,
-	to the values from a ATA Inquiry, but unfortunally, most of the
-	bridges out there, don't do it.  "USB storage compliance" mandates
-	a unique serial number, but most of the vendors seems not to care
-	about it.
-	I changed the compute_udi for block devices. If we get a serial
-	number or a uuid we use it to compute the udi.
-
-2004-07-30  Joe Shaw  <joeshaw at novell.com>
-
-	Patch from Dan Williams <dcbw at redhat.com>
-
-	* hald/linux/net_class_device.c (link_detection_handle_message):
-	Fix a point arithmetic bug which caused link status changes to be
-	missed.  Also fixes a compiler warning.
-
-2004-07-30  Joe Shaw  <joeshaw at novell.com>
-
-	* tools/device-manager/Representation.py (get_icon): Use get()
-	rather than indexing for "info.property" so that we can fall
-	back and not throw an exception if a device doesn't have it
-	set (as virtual devices often don't).
-
-2004-07-30  Joe Shaw  <joeshaw at novell.com>
-
-	* hald/hald.c (main): Update for the change to hald_dbus_init():
-	don't get a DBusConnection from there, exit() if it fails.  Also
-	update for the change to osspec_init(): don't pass in any
-	arguments.
-
-	* hald/hald_dbus.c (hald_dbus_init): Don't exit() anywhere here;
-	instead return FALSE.  Tell dbus not to exit if we're disconnected
-	from the bus.  Return TRUE on success, not a DBusConnection.
-	(filter_function): Listen for the "Disconnected" signal on the
-	"Local" dbus interface and if so, unref the connection and try to
-	reconnect to the system bus every 3 seconds.
-	(reinit_dbus): Try to reconnect to the system bus.
-
-	* hald/osspec.h: Change osspec_init() to not take any parameters;
-	the only backend (the Linux 2.6 one) wasn't using it.
-
-	* hald/linux/osspec.c (osspec_init): Take void instead of a
-	DBusConnection.
-
-2004-07-30  Joe Shaw  <joeshaw at novell.com>
-
-	* hald/property.c (hal_property_new_string,
-	hal_property_set_string): Validate incoming strings as UTF-8 and
-	replace invalid sequences with '?'
-
-2004-07-29  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c (probe_hfs_hfsplus):
-	here we search for the first 'Apple_HFS' type partition. Please
-	have a look with your multi-multi-multi-partition DVD :)
-
-2004-07-29  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/volume_id/volume_id.c: Include <config.h> to take
-	advantage of AC_SYS_LARGEFILE
-
-2004-07-29  David Zeuthen  <david at fubar.dk>
-
-	* libhal/libhal.[ch]: s/namespace/property_namespace/ to not break
-	using libhal from C++. Pointed out by Simone Gotti 
-	<simone.gotti at email.it>
-
-2004-07-29  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>
-
-	* configure.in:
-	* doc/spec/hal-spec.html:
-	* doc/spec/hal-spec.xml.in:
-	* hald/linux/block_class_device.c:
-	* hald/linux/volume_id/volume_id.c: (get_buffer),
-	(probe_hfs_hfsplus), (probe_ntfs), (volume_id_probe):
-	* hald/linux/volume_id/volume_id.h:
-	Here is support for recognition of hfs and hfsplus filesystems on
-	a main block device, like a CD. Only the first partition is
-	returned with the probe.
-
-2004-07-27  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (detect_media): A mounted
-	disc wasn't detected; this is now 'fixed'. Spotted by Sjoerd Simons.
-	(is_mounted): New function to determine if a filesystem on a 
-	device file is mounted
-
-2004-07-23  Joe Shaw  <joeshaw at novell.com>
-
-	* Makefile.am: Also dist HACKING.
-	
-2004-07-22  David Zeuthen  <david at fubar.dk>
-
-	* packaging/fedora/hal.spec (Version): Bump to 0.2.95
-
-	* configure.in: Bump to 0.2.95
-
-2004-07-22  David Zeuthen  <david at fubar.dk>
-
-	* tools/linux/hal_hotplug.c (main): Apply the same hack we did to
-	hal_dev.c some time ago; improves hotplugging speed; suggestion by
-	Sjoerd Simons.
-
-	* hald/linux/block_class_device.c (block_class_visit): Fixed a nasty
-	bug where .udev.sysfs_path were set before other key properties. This
-	resulted in lack of information in handle_udev_node_created_found_device
-	that was invoked as soon as .udev.sysfs_path were set. Obviously
-	this situation was only applicable when we got the DeviceEvent before
-	the HotplugEvent. udev is indeed fast.
-
-	* hald/linux/class_device.c (class_device_visit): -do-
-
-2004-07-22  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>
-
-	* tools/device-manager/hal-computer.png: New file
-	
-	* tools/device-manager/Representation.py: Use hal-computer.png
-
-	* tools/device-manager/Makefile.am (dist_devicemanager_DATA): Add
-	hal-computer.png
-
-2004-07-22  David Zeuthen  <david at fubar.dk>
-
-	* libhal/libhal.[ch]: Fixup documentation so doxygen no longer
-	complains
-
-2004-07-22  David Zeuthen  <david at fubar.dk>
-
-	Documentation love, part 1. Added the spec to the source tree because
-	we want closer sync between code and spec. Also generate doxygen
-	docs, but only for libhal.
-
-	* Makefile.am: No longer reference Doxyfile
-
-	* configure.in: Add a new option --enable-docbook-docs
-
-	* doc/Makefile.am: Add spec to SUBDIRS
-
-	* doc/api/Doxyfile.in: New file
-
-	* doc/api/Makefile.am: New file
-
-	* Doxyfile: Removed
-
-	* Doxyfile.in: Removed
-
-	* doc/spec/Makefile.am: New file
-
-	* doc/spec/hal-arch.dia: New file
-
-	* doc/spec/hal-arch.png: New file
-
-	* doc/spec/hal-devices-virtual1.png: New file
-
-	* doc/spec/hal-devices1.png: New file
-
-	* doc/spec/hal-fdi-example1.png: New file
-
-	* doc/spec/hal-sequence-diagram.dia: New file
-
-	* doc/spec/hal-sequence-diagram.png: New file
-
-	* doc/spec/hal-spec.html: New file
-
-	* doc/spec/hal-spec.xml.in: New file
-
-	* doc/spec/hal-volume-to-device.png: New file
-
-2004-07-21  Joe Shaw  <joeshaw at novell.com>
-
-	* hald/linux/bus_device.c (bus_device_move_from_tdl_to_gdl): If
-	the info.parent property is not set, then set it to the computer
-	device's UDI.
-
-	* hald/linux/class_device.c (class_device_move_from_tdl_to_gdl):
-	Ditto.
-
-	* hald/linux/common.c (device_move_from_tdl_to_gdl): Remove this,
-	it's dead code.
-
-	* hald/linux/osspec.c (osspec_probe): Rename "fakeroot" to "root",
-	rename its product from "City of Lost Devices" to "Computer",
-	change its UDI to "computer" from "fakeroot", and make it
-	non-virtual.
-
-	* hald/linux/platform_bus_device.c (platform_device_pre_process):
-	Change "fakeroot" to "computer".
-	
-2004-07-21  Joe Shaw  <joeshaw at novell.com>
-
-	* tools/fstab-sync.c: #include "libhal/libhal.h" to fix the build
-	for me.
-
-2004-07-21  David Zeuthen  <david at fubar.dk>
-
-	Commit of first stab at callouts for shutdown; needs some more work.
-	Now to update the spec
-
-	* hald/device_info.c: (scan_fdi_files): Remove some noisy debug
-
-	* hald/hald.c: 
-	(handle_sigterm): New function
-	(sigterm_iochn_data):  New function
-	(main): Handle SIGTERM, setup GIOChannel for safe handling of POSIX
-	signal
-
-	* hald/linux/block_class_device.c: 
-	(detect_media): Comment out noisy EBUSY debug
-
-	* hald/linux/osspec.c: 
-	(visit_class_device): Removed unused dir variable
-	(shutdown_callouts_finished): New function
-	(do_shutdown_callouts): New function
-	(osspec_shutdown): New function
-
-	* hald/osspec.h: Add prototype for osspec_shutdown()
-
-2004-07-21  David Zeuthen  <david at fubar.dk>
-
-	* doc/TODO: changed key="udi:<X>/<Y>" to 'udi="<X>" key="Y"' after
-	suggestion by David Malcolm
-
-2004-07-21  David Zeuthen  <david at fubar.dk>
-
-	* doc/TODO: Added the TODO 'Rescan() method on HalDevice'.
-	Added the TODO 'Privilege Management'.
-	Put some more info on 'Locking of devices' and 'Power Management',
-	namely that HAL export generic methods on HalDevice.
-
-2004-07-21  David Zeuthen  <david at fubar.dk>
-
-	* doc/TODO: Removed 'CD burning' TODO, since this is now fixed.
-	Added entry on .fdi files. Add entry on handling SIGTERM in a
-	nice way.
-
-2004-07-20  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c:
-	(detect_media): use O_EXCL for optical drive media detection, much
-	safer since O_EXCL is actually in mainline. Removes possible burning
-	problems (that is, if only cdrecord open(2)'s the device using O_EXCL;
-	bug filed against fedora-devel, hopefully it will bubble upstream)
-
-2004-07-20  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/class_device.c: (class_device_accept),
-	(class_device_visit):
-	* hald/linux/common.c: (drivers_collect):
-	* hald/linux/ieee1394_class_device.c: (ieee1394_class_pre_process):
-	* hald/linux/ieee1394_host_class_device.c:
-	(ieee1394_host_class_pre_process):
-	* hald/linux/ieee1394_node_class_device.c:
-	(ieee1394_node_class_pre_process):
-	* hald/linux/osspec.c: (visit_class_device):
-	* hald/linux/volume_id/volume_id.c:
-	More updates to libsysfs 1.1; from Joe Shaw's earlier patch
-
-2004-07-18  David Zeuthen  <david at fubar.dk>
-
-	* doc/TODO: Added a few items, 'UTF8 support' and 'Dependencies,
-	Robustness'
-
-2004-07-18  David Zeuthen  <david at fubar.dk>
-
-	* doc/TODO: updated; changed the 
-	http://freedesktop.org/Software/HalTODO
-	page on fd.o Wiki to point to doc/TODO on HEAD.
-
-2004-07-18  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>
-
-	* hald/linux/libsysfs/*.[ch]: 
-	(visit_device), (osspec_probe): Update to libsysfs 1.1
-
-	* hald/linux/bus_device.c: (bus_device_got_parent):
-	* hald/linux/class_device.c: (class_device_final):
-	* hald/linux/osspec.c: (visit_class_device), (visit_class),
-	Adjust to use libsysfs 1.1
-
-2004-07-15  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Bump version to 0.2.94
-
-	* packaging/fedora/hal.spec (Version): Bump to 0.2.94
-
-2004-07-15  David Zeuthen  <david at fubar.dk>
-
-	Patch from Sjoerd Simons <sjoerd at luon.net>
-
-	* hald/linux/block_class_device.c (block_class_pre_process): It
-	seems there was some code missing for the detection of the
-	physical device for scsi devices. Attached patch fixes
-	this. Causing the new gnome-vfs patch to work properly on my
-	workstation :)
-
-2004-07-15  David Zeuthen  <david at fubar.dk>
-
-	Patch from Ray Strode <rstrode at redhat.com>
-
-	* tools/Makefile.am: Add rules for building fstab-sync
-
-	* tools/fstab-sync.c: New file
-
-2004-07-14  David Zeuthen  <david at fubar.dk>
-
-	Patch from Sjoerd Simons <sjoerd at luon.net>
-
-	* tools/device-manager/DeviceManager.py:
-	* tools/device-manager/LibGladeApplication.py:
-	* tools/device-manager/hal-device-manager:
-	Attached patch makes hal-device-manager shows the error about hald
-	not running in a gtk messagedialog instead of on the
-	console. Which ensures that when running it from the menu you see
-	more then just a flash if hald isn't running :) Also it changes
-	some deprecated functions to use their non-deprecated counterparts
-
-2004-07-11  David Zeuthen  <david at fubar.dk>
-
-	* tools/hal_get_property.c, tools/hal_set_property.c: Make the
-	command line interface a bit nicer.  Patch from Martin Waitz
-	<tali at admingilde.org>
-
-2004-07-10  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>.
-
-	* hald/linux/volume_id/volume_id.[ch]: Update to discover hfs
-	wrapped hfs+ partitions, mac_partition_maps and udf
-
-2004-07-08  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/platform_bus_device.c (platform_device_pre_process): 
-	Introduce the x86 legacy floppy into THE CITY OF LOST DEVICES both
-	info.parent- and storage.device-wise
-
-2004-07-08  David Zeuthen  <david at fubar.dk>
-
-	Some more fixes caught by extensive testing
-
-	* hald/linux/block_class_device.c (mtab_handle_storage): Consolidate
-	three if statements into one. Also search TDL for child. Don't remove
-	child if called second time.
-	(mtab_handle_volume): Don't check volumes added by mtab_handle_storage
-	e.g. volumes we detect on mount only
-
-2004-07-07  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (detect_media, mtab_handle_storage): 
-	Use class_device_move_from_tdl_to_gdl() instead of device_move_from_
-	tdl_to_gdl() so we get the in_gdl callback when callouts complete
-	that will detect media and process the mtab to update mount status
-
-	* hald/linux/class_device.h: Add class_device_move_from_tdl_to_gdl()
-	prototype
-
-	* hald/linux/class_device.c (class_device_move_from_tdl_to_gdl): 
-	Promote to project wide scope
-
-2004-07-06  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (detect_media): Fix media detection
-	that was broken when introducing support for floppy drives twelwe
-	days ago :-/
-
-2004-07-06  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/volume_id/volume_id.c: Remove #define DEBUG
-
-2004-07-06  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/bus_device.c (bus_device_move_from_tdl_to_gdl): Removed
-	the wrong handler so on remove this was called and the device was
-	added to the GDL again. Resulting in the device was never removed.
-
-	* hald/linux/class_device.c (class_device_move_from_tdl_to_gdl): 
-	Same as above
-
-2004-07-06  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (block_class_pre_process): Disable
-	media_check+automount and set block.no_partitions to TRUE for
-	floppy drives - Now my LS120 drive in my Dell laptop works fine
-	with HAL.
-
-2004-07-06  David Zeuthen  <david at fubar.dk>
-
-	* packaging/fedora/hal.spec (Version): Bump to 0.2.93
-
-	* configure.in: Bump to 0.2.93
-
-2004-07-06  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>. Better msdos
-	detection for floppy disks
-
-2004-07-05  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/volume_id/volume_id.c (volume_id_probe): Comment
-	out get_buffer, it's quite time consuming on floppies and Kay
-	says OK. Move probe_vfat() and probe_msdos() to the top.
-
-2004-07-05  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>. Add hfs support
-
-2004-07-05  David Zeuthen  <david at fubar.dk>
-	
-	* hald/linux/input_class_device.c (input_class_accept): Make this
-	static (remove warning)
-
-	* hald/linux/osspec.c (osspec_init): Remove error variable (remove
-	warning)
-	(visit_bus): Comment out this function because it is not currently
-	used (remove warning)
-
-	* hald/linux/block_class_device.c (block_class_in_gdl): New function
-	(block_class_pre_process): Move check for media and mtab to the new
-	block_class_in_gdl method
-
-2004-07-05  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/ieee1394_host_class_device.c: Add class_device_in_gdl
-	method
-
-	* hald/linux/ieee1394_node_class_device.c: Add class_device_in_gdl
-	method
-
-	* hald/linux/ieee1394_class_device.c: Add class_device_in_gdl method
-
-	* hald/linux/pcmcia_socket_class_device.c: Add class_device_in_gdl
-	method
-
-	* hald/linux/block_class_device.c: Add class_device_in_gdl method
-
-	* hald/linux/scsi_device_class_device.c: Add class_device_in_gdl method
-
-	* hald/linux/scsi_host_class_device.c: Add class_device_in_gdl method
-
-	* hald/linux/scsi_generic_class_device.c: Add class_device_in_gdl
-	method
-
-	* hald/linux/printer_class_device.c: Add class_device_in_gdl method
-
-	* hald/linux/net_class_device.c: Add class_device_in_gdl method
-
-	* hald/linux/input_class_device.c: Add class_device_in_gdl method
-
-	* hald/linux/class_device.c (class_device_in_gdl): New function
-	(class_device_move_from_tdl_to_gdl): New function, specialised version
-	of device_move_from_tdl_to_gdl that calls in_gdl method
-	(class_device_final): Call class_device_move_from_tdl_to_gdl instead
-	and create a ClassAsyncData variable to carry data around
-
-	* hald/linux/class_device.h: Add in_gdl method to ClassDeviceHandler
-	and prototype for default method class_device_in_gdl ().
-
-	* hald/linux/pci_bus_device.c: Add bus_device_in_gdl method
-
-	* hald/linux/usb_bus_device.c: Add bus_device_in_gdl method
-
-	* hald/linux/usbif_bus_device.c: Add bus_device_in_gdl method
-
-	* hald/linux/ide_host_bus_device.c: Add bus_device_in_gdl method
-
-	* hald/linux/ide_bus_device.c: Add bus_device_in_gdl method
-
-	* hald/linux/macio_bus_device.c: Add bus_device_in_gdl method
-
-	* hald/linux/platform_bus_device.c: Add bus_device_in_gdl method
-
-	* hald/linux/bus_device.c (bus_device_in_gdl): New function
-	(bus_device_move_from_tdl_to_gdl): New function, specialised version
-	of device_move_from_tdl_to_gdl that calls in_gdl method
-	(bus_device_got_parent): Call bus_device_move_from_tdl_to_gdl instead
-	and carry on the BusAsyncData bad variable; conditionally free it
-	on failure though.
-
-	* hald/linux/bus_device.h: Add in_gdl method to BusDeviceHandler
-	and prototype for default method bus_device_in_gdl ().
-
-2004-07-05  David Zeuthen  <david at fubar.dk>
-
-	* tools/linux/hal_dev.c (main): Disable logging. Also fork(2) a
-	new process and make parent exit to temporarily fix that udevstart
-	takes a few minutes to run
-
-2004-07-04  David Zeuthen  <david at fubar.dk>
-
-	* tools/linux/hal_hotplug.c: 'product' file is also not guaranteed
-	to exist for USB devices
-
-2004-07-04  David Zeuthen  <david at fubar.dk>
-
-	* tools/linux/hal_hotplug.c: Don't wait for 'manufacturer' file for
-	USB devices since it's not guaranteed to exist. 
-	Observed by Eric Butler <eric at extremeboredom.net>	
-
-2004-07-04  David Zeuthen  <david at fubar.dk>
-
-	* hald/device_info.c (scan_fdi_files): Use glib to determine
-	the file type since d_type in struct dirent can be DT_UNKNOWN
-	Observed by Eric Butler <eric at extremeboredom.net>
-	
-2004-07-04  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/net_class_device.c (set_device_link_status):
-	(net_class_pre_process): Don't check for link on wireless devices
-
-2004-06-28  Joe Shaw  <joeshaw at novell.com>
-
-	* linux/volume_id/volume_id.c (set_label_unicode16): Change
-	condition to not wrap around on very short (or empty) labels.
-
-2004-06-26  David Zeuthen  <david at fubar.dk>
-
-	* fdi/20freedesktop/Makefile.am (dist_fdi20freedesktop_DATA): 
-	Install jetflash-mp3-player.fdi
-
-	* fdi/20freedesktop/jetflash-mp3-player.fdi: New file
-
-2004-06-24  David Zeuthen  <david at fubar.dk>
-
-	Add floppy support to HAL - tested with x86 legacy floppies and
-	an USB floppy drive.
-
-	* tools/device-manager/Const.py.in (BUS_NAMES): Add platform bus
-
-	* hald/linux/common.h: Add read_single_line_grep prototype
-
-	* hald/linux/common.c (read_single_line_grep): New function
-
-	* hald/linux/block_class_device.c (detect_media): Add the
-	force_poll parameter to poll on devices with media detection
-	explicitly disabled.  Introduce support for non-optical drives
-	with block.no_partitions set to TRUE. Remember to clear linux.*
-	properties for discs and volumes from block.no_partitions as hot
-	unplugging such drives will cause the top-level block device to
-	stay as the child is found instead when searching on
-	linux.sysfs_path
-	(block_class_pre_process): Introduce a nasty hack to read
-	/proc/scsi/usb-storage/<scsi-hostnumber> to determine if we're
-	a floppy drive and thus should set block.no_partitions to TRUE
-	(foreach_block_device): Rename to mtab_foreach_device, split into
-	mtab_handle_volume and mtab_handle_storage
-	(mtab_handle_volume): New function, handle normal partition based
-	volumes in /etc/mtab
-	(mtab_handle_storage): New function, handle block.no_partitions
-	volumes in /etc/mtab
-	(block_class_removed): Make sure to remove the HAL-made child
-	if block.no_partitions is TRUE
-
-	* hald/linux/block_class_device.c (disc_remove_from_gdl): Rename
-	to volume_remove_from_gdl
-
-	* hald/linux/platform_bus_device.c: New file
-
-	* hald/Makefile.am (hald_SOURCES): Add platform_bus_device.c
-
-2004-06-23  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>
-
-	* libhal/libhal.c (filter_func): Use DBUS_HANDLER_RESULT_HANDLED
-	instead of NOT_YET_HANDLED
-
-	* hald/hald.dbus.c: Use DBUS_HANDLER_RESULT_HANDLED
-	instead of NOT_YET_HANDLED
-
-	* hald/linux/osspec.c: Use DBUS_HANDLER_RESULT_HANDLED
-	instead of NOT_YET_HANDLED
-
-2004-06-23  Joe Shaw  <joeshaw at novell.com>
-
-	Patch from Sjoerd Simons <sjoerd at luon.net>
-
-	* hald/pstore.c: #define HOST_NAME_MAX to 256 if it's undefined as
-	per the gethostname manpage.
-
-2004-06-20  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c (get_buffer): s/lseek/lseek64/
-
-2004-06-20  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (foreach_block_device): Don't
-	clear volume.mount_point when learning that the device is
-	unmounted.  Seen by Kay Sievers <kay.sievers at vrfy.org>
-
-2004-06-20  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.[ch] : Extract volume label from
-	NTFS disks
-
-2004-06-20  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>
-
-	* hald/linux/osspec.c (osspec_init): Remove support for listening
-	to udev as this is now handled by the HAL dev.d callout.
-
-2004-06-20  David Zeuthen  <david at fubar.dk>
-
-	* hald/Makefile.am (install-data-local): Create
-	$(LOCALSTATEDIR)/lib/hal
-
-	* hald/linux/common.c (rename_and_merge): Check
-	persistent_device_list configuration value
-
-	* hald/device.c (hal_device_property_set_attribute) 
-	(hal_device_property_set_string, hal_device_property_set_bool) 
-	(hal_device_property_set_double, hal_device_property_remove): 
-	Check persistent_device_list configuration value
-
-	* hald/hald.c (main): Check persistent_device_list configuration
-	value
-
-	* hald/hald.conf: Add persistent_device_list tag, set to false
-	as default
-
-	* hald/hald_conf.h: Add persistent_device_list member
-
-	* hald/hald_conf.c (hald_conf): Add persistent_device_list member
-	(end): Check for persistent_device_list tag
-
-	* hald/property.h: Rename property_attribute to PropertyAttribute
-
-2004-06-20  David Zeuthen  <david at fubar.dk>
-
-	Patch from Kay Sievers <kay.sievers at vrfy.org>
-
-	* hald/pstore.[ch]: New files
-
-	* hald/linux/common.c (rename_and_merge): Load a device from disk
-
-	* hald/property.h: Add property_attribute enum and 
-	hal_property_get_attribute(), hal_property_set_attribute()
-
-	* hald/property.c: Add readonly, persistence, callout bools to
-	HalProperty
-	(hal_property_set_attribute): New function
-	(hal_property_get_attribute): New function
-
-	* hald/hald_dbus.c (device_set_property): Set property to persistent
-
-	* hald/hald.h: Add hald_get_pstore_sys
-
-	* hald/hald.c (hald_get_pstore_sys): New function
-	(main): Load persistent store
-
-	* hald/device.h: Add hal_device_property_set_attribute()
-
-	* hald/device.c (hal_device_property_set_string):
-	(hal_device_property_set_int, hal_device_property_set_bool)
-	(hal_device_property_set_double): Save property to disk if the
-	PERSISTENCE attribute is set
-	(hal_device_property_remove): Delete property from disk if the
-	PERSISTENCE attribyte is set
-	(hal_device_property_set_attribute): New function
-
-	* hald/Makefile.am (INCLUDES): Add PACKAGE_LOCALSTATEDIR
-	(hald_SOURCES): add pstore.[ch]
-
-2004-06-11  Joe Shaw  <joeshaw at novell.com>
-
-	Patch from Dan Williams (dcbw at redhat.com).
-
-	* hald/linux/net_class_device.c (link_detection_init): Make
-	netlink_fd static and only set up a watch on it once, since we get
-	notifications for all interfaces through this one socket.
-	(link_detection_handle_message): Get the link status and
-	interface, and iterate over all the devices.
-	(set_device_link_status): New function.  First checks for
-	"net.interface" and if it matches the interface passed in, set the
-	link status property.
-
-2004-06-09  Joe Shaw  <joeshaw at novell.com>
-
-	* hald/linux/block_class_device.c (detect_media): Set info.product
-	to volume.label if it's set.
-	(block_class_pre_process): Set info.product to volume.label if
-	it's set, otherwise try to append the fstype to "Volume".
-
-2004-06-09  Joe Shaw  <joeshaw at novell.com>
-
-	Fix some refcounting issues
-
-	* hald/linux/block_class_device.c: Unref the device after we add
-	it to the TDL.
-	(disc_add_to_gdl): Removed; it's functionally equivalent to
-	device_move_from_tdl_to_gdl() in common.c.
-	(disc_remove_from_gdl): Disconnect the signal handlers before
-	removing from the TDL (and thus finalizing).
-	(detect_media): Unref the child after adding it to the TDL.
-	Replace signal handler for "callouts_finished".
-
-	* hald/linux/bus_device.c (bus_device_visit): Unref device after
-	adding it to the TDL.
-	(bus_device_got_parent): Don't unref after removing from the TDL.
-
-	* hald/linux/class_device.c (class_device_visit): Unref device
-	after adding it to TDL.
-	(class_device_got_parent_device, class_device_got_sysdevice,
-	class_device_got_device_file, class_device_final): Don't unref
-	after removing from the TDL.
-
-	* hald/linux/osspec.c (osspec_probe): Unref the fakeroot device
-	after adding it to GDL.
-
-2004-06-07  Joe Shaw  <joeshaw at novell.com>
-
-	* doc/TODO: Add an item about capability matching in FDI files.
-
-	* fdi/20freedesktop/Makefile.am: Add lucent-pcmcia-wireless.fdi
-
-	* fdi/20freedesktop/lucent-pcmcia-wireless.fdi: Added.  Matches
-	Lucent WaveLAN cards and sets info.bus to pcmcia and a sane vendor
-	and product.
-
-	* tools/device-manager/Const.py.in: Add PCMCIA as a bus type.
-
-2004-06-07  Joe Shaw  <joeshaw at novell.com>
-
-	* configure.in: Remove the iwlib dependency.
-
-	* hald/linux/net_class_device.c: Remove the wireless properties.
-	This stuff is better suited to a library like iwlib
-	(net_class_pre_process): But still check for the existence of the
-	"wireless" directory and set the net.ethernet.80211 capability if
-	it's there.
-
-	* hald/hald_conf.c: Remove deprecated use of a label at the end of
-	a function and just return instead of goto'ing there.
-
-2004-06-07  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Bump to 0.2.92
-
-	* packaging/fedora/hal.spec: Install the symlink in
-	/etc/dev.d/default/hal.dev. Patch from Kristian Høgsberg
-	<krh at bitplanet.net>. Bump version to 0.2.92
-
-2004-06-06  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (block_class_visit): Add the
-	block.no_partitions boolean property and set it to FALSE by
-	default. If this is TRUE it means that media for this toplevel
-	block device will appear as children but there can be at maximum
-	one child and the block.device will be the same. This applies to
-	floppy and cdrom media. This property have been introduced such
-	that a callout can update the fstab in advance of media insertion
-	on e.g. floppy drives and optical drives.
-	(block_class_pre_process): Set block.no_partitions to TRUE for
-	optical drives.
-
-	* tools/callouts/fstab-update.sh: When block.no_partitions is TRUE
-	create entry only for top-level block device.
-
-2004-06-05  David Zeuthen  <david at fubar.dk>
-
-	* packaging/fedora/hal.spec: Add hald.conf to %files. Patch from
-	Kristian Høgsberg <krh at bitplanet.net>
-
-	* ChangeLog: Fixup the danish character ø in Kristians last name
-	since we want to use ISO-8859-1 in ChangeLog :-)
-
-2004-06-04  Joe Shaw  <joeshaw at novell.com>
-
-	Patch from Kristian Høgsberg <krh at bitplanet.net>
-
-	* hald/linux/input_class_device.c (input_class_accept): New
-	function.  Accepts devices with no sysdevice but which begin with
-	"event".  For built-in, non-sysfs input devices like PS/2 mice.
-	(input_class_pre_process): Set the major and minor numbers as
-	properties.  If there is no sysdevice, do an ioctl() on the device
-	to try to get identifying info about it and set it in
-	info.product.
-	(input_class_compute_udi): Added.  Computes the UDI for devices
-	that don't get merged onto parents.
-	(input_class_handler): Use input-specific functions for the accept
-	and compute_udi functions.
-
-2004-06-03  Joe Shaw  <joeshaw at novell.com>
-
-	* hald/linux/printer_class_device.c (printer_class_device_accept):
-	Reject class devices that have no sysdevice.
-
-2004-06-01  David Zeuthen  <david at fubar.dk>
-
-	* hald/hald.conf: New file, policy for hal daemon
-
-	* hald/Makefile.am: Install hald.conf into $sysconfdir/hal
-
-	* hald/hald_conf.c (hald_read_conf_file): New function
-	(cdata): New function
-	(end): New function
-	(start): New function
-	(parsing_abort): New function
-
-	* hald/hald.c (main): Call hald_read_conf_file to read the 
-	configuration file
-
-	* hald/hald_conf.h (hald_read_conf_file): Added hald_read_conf_file
-	prototype
-
-	* hald/linux/block_class_device.c (block_class_pre_process): add
-	storage.cdrom capability if device is a cdrom
-
-2004-06-01  David Zeuthen  <david at fubar.dk>
-
-	* hald/hald_conf.[ch]: New files, vendor and user specific
-	configuration of the HAL daemon
-
-	* hald/Makefile.am (hald_SOURCES): Add hald_conf.[ch]
-
-	* hald/linux/block_class_device.c (block_class_pre_process): Set
-	storage.media_check_enabled and storage.automount_enabled to
-	default value from HaldConf. Forgot to set volume.is_mounted to
-	FALSE when building the device. NOTE: when media_check_enabled is
-	set to FALSE use touch /dev/sda (or whatever) to force a poll for
-	media. So, now to write a /etc/hal/hald.conf configuration file
-	parser :-)
-	(cdrom_check): Set storage.cdrom.eject_check_enabled to default
-	value from HaldConf
-	(detect_media): Disable continous printing of error when no medium
-	is in storage device. Respect the storage.media_check_enabled and
-	storage.cdrom.eject_check_enabled properties
-
-	* hald/hald.c (main): Remove opt_run_as
-
-2004-05-31  David Zeuthen  <david at fubar.dk>
-
-	* AUTHORS: Added Joe Shaw
-
-	* hald/linux/block_class_device.c (detect_media): Add code for 
-	checking whether the eject button is pressed on an optical drive.
-	If detected the condition 'EjectPressed' is emitted on the disc
-	HalDevice with a single string representing the device file.
-	Also remove BAR and FOO debug statements from earlier development
-	sessions. Yay.
-
-2004-05-28  Joe Shaw  <joeshaw at novell.com>
-
-	* hald/linux/net_class_device.c (rehash_wireless): Forgot to change
-	a couple of references of "net.ethernet.80211" to
-	"net.ethernet.is_80211", so properties wouldn't get updated.
-
-2004-05-27  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/volume_id/volume_id.c (volume_id_open_node): While
-	debugging the file descriptor leak that stops cdroms being
-	ejected, I noticed a theoretical file descriptor when the box runs
-	out of memory. Patch from Crispin Flowerday <gnome at flowerday.cx>
-
-	* hald/linux/block_class_device.c (block_class_accept): Added this
-	since 2nd level block devices, e.g. sda1, doesn't have sysdevices
-	and the generic class_device_accept was changed to required this.
-
-2004-05-26  Joe Shaw  <joeshaw at novell.com>
-
-	* hald/linux/net_class_device.c (parse_scanning_token): We're
-	likely to get multiple SIOCGIWFREQ tokens.  If it's lower than
-	1000, then it's the channel and not the frequency.  Ugh.
-
-2004-05-26  Joe Shaw  <joeshaw at novell.com>
-
-	* configure.in: Add --enable-iwlib, and check for it so we can
-	build the wireless functionality.
-
-	* hald/linux/net_class_device.c: Add wireless network support.
-	Adds a bunch of properties for the current state of things, as
-	well as scanning for networks.
-	(open_wireless_sysfs_subdir): Open the sysfs "wireless" path and
-	read in a bunch of properties.
-	(get_wireless_properties): Use the iwlib API to extract a bunch of
-	additional properties, like the protocol, frequency, crypto key,
-	ESSID, mode (ad-hoc, managed, etc), access point mac address.
-	Also start scanning for other available access points.
-	(read_scanning_results, parse_scanning_token, aps_to_properties):
-	helper functions to read in the scanning data and expose as
-	properties the list of networks (not access points!) available.
-	(net_class_pre_process): Call get_wireless_properties().
-	(net_class_tick): Added.  Gets wireless properties every 5 ticks.
-	(net_class_handler): Call net_class_tick() instead of
-	class_device_tick().
-
-2004-05-25  Joe Shaw  <joeshaw at novell.com>
-
-	* hald/Makefile.am: Add the ieee1394 class devices.
-
-	* hald/linux/block_class_device.c: Replace use of locally defined
-	AsyncInfo with ClassAsyncData.
-
-	* hald/linux/bus_device.c: Replace use of locally defined
-	AsyncInfo with BusAsyncData.
-
-	* hald/linux/class_device.c: Replace use of locally defined
-	AsyncInfo with ClassAsyncData.
-	(class_device_accept): Check here if the class device has a
-	sysdevice and reject it if it doesn't.
-	(class_device_visit): Don't check for it here.  If it is NULL, set
-	merge_or_add to FALSE so that we don't try to merge it onto a fake
-	device.  If the sysdevice is NULL, set the parent sysfs path to
-	"(none)", which will match our fake parent device.
-	(class_device_final): Take a third argument for merge_or_add and
-	check it instead of the ClassDeviceHandler's default behavior.
-
-	* hald/linux/ieee1394_class_device.c,
-	hald/linux/ieee1394_host_class_device.c,
-	hald/linux/ieee1394_node_class_device.c: New IEEE1394 class device
-	implementation.  Seems to even work somewhat on some small subset
-	of the world's computers.
-
-	* hald/linux/net_class_device.c (net_class_pre_process): If there
-	is an address, set the net.address property to it, regardless of
-	what type of net device it is.
-	(net_class_accept): Added.  Allows us to have net class devices
-	without an associated sysdevice.  Only allow it if it's an
-	ethernet device for now.
-	(net_class_compute_udi): Added.  Needed in situations where the
-	class device has no sysdevice, we need to generate a UDI since we
-	aren't merging onto a parent device.
-
-	* hald/linux/osspec.c: Reenable the ieee1394 class device
-	handlers.
-	(osspec_probe): Create a fake root device to be the parent for all
-	of our sysdevice-less devices.  It's a virtual device, has the UDI
-	"/org/freedesktop/Hal/devices/fakeroot", and the sysfs path device
-	of "(none)".
-
-	* tools/device-manager/Const.py.in (BUS_NAMES): Add "unknown" to
-	the list of known bus names.
-	
-2004-05-25  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Bump to 0.2.91
-
-	* packaging/fedora/hal.spec: Bump to 0.2.91
-
-2004-05-25  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (read_etc_mtab): hal doesn't
-	close the filedescriptor when it /etc/mtab wasn't changed of the
-	fstat failed. Also when closing a file stream opened with fdopen,
-	the original fd is also closed (the fdopen function doesn't dup
-	the fd). So the close after fclose is wrong. Patch from Sjoerd
-	Simons <sjoerd at luon.net>.
-	(detect_fs): When fs detection fails the volume_id struct wasn't
-	closed, causing a mem and fd leak. And as a side effect, causing
-	me to be unable to open my cd writer with the eject button when
-	there was a blank cd inside :). Patch from Sjoerd Simons
-	<sjoerd at luon.net>.
-
-2004-05-18  Joe Shaw  <joeshaw at novell.com>
-
-	* tools/callouts/fstab-update.sh: Use /media as long as it's there
-	and /mnt doesn't exist.  Otherwise fallback to /mnt.  Should
-	happily work on all distros.  Patch from Sjoerd Simons
-	<sjoerd at luon.net>.
-
-2004-05-17  Joe Shaw  <joeshaw at novell.com>
-
-	* tools/callouts/fstab-update.sh: Guard against the script being
-	killed mid-execution by doing all the updates in a copy and then
-	moving it over later on add.  Patch from Martin Waitz
-	<tali at admingilde.org>.
-
-2004-05-15  Owen Fraser-Green  <owen at discobabe.net>
-
-	* packaging/fedora/hal.spec: bump version to 0.2.90, D-BUS version
-	bump, PreReq change to include useradd and include hal.dev. Also
-	changed ${foo} variables to %{foo}.
-	
-2004-05-13  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c 
-	(detect_media): Move disc properties into volume.disc.* namespace and
-	only set them for optical discs. Use disc_is_appendable() to set 
-	volume.disc.is_appendable. Specifically, the following properties
-	are now available for discs (e.g. iff volume.is_disc is TRUE)
-
-	volume.disc.has_audio      - TRUE iff the disc got audio tracks
-	volume.disc.has_data       - TRUE iff the disc got data tracks
-	volume.disc.is_appendable  - TRUE iff further data can be written
-	volume.disc.is_blank       - TRUE iff the data is blank 
-	volume.disc.is_rewriteable - TRUE iff the disc can be reformatted
-	volume.disc.type           - type of disc, can assume "cd_rom", "cd_r",
-	                             "cd_rw", "dvd_rom", dvd_r", "dvd_rw",
-	                             "dvd_ram", "dvd_plus_r", "dvd_plus_rw"
-
-	(block_class_pre_process): Don't set volume.disc_type, but set the
-	boolean property volume.is_disc.
-
-	* hald/linux/linux_dvd_rw_utils.c (disc_is_appendable): new function
-
-2004-05-09  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_dvd_rw_utils.h: 
-	s/get_dvd_media_type/get_disc_type/
-
-	* hald/linux/linux_dvd_rw_utils.c (get_dvd_media_type):
-	s/get_dvd_media_type/get_disc_type/
-
-2004-05-13  Joe Shaw  <joe at ximian.com>
-
-	* hald/linux/block_class_device.c (detect_media): Connect to the
-	"callouts_finished" signal and call the callouts rather than
-	removing the volume from the GDL here.  Patch from Sjoerd Simons
-	<sjoerd at luon.net>
-
-	* hald/linux/net_class_device.c (mdio_read): Make the result an
-	out parameter and return 0 on success and -1 on failure.
-	(mii_get_rate): Check the result of mdio_read().  Put the check
-	for whether it's 10mbit in an else-if.
-	(mii_get_link): Check the result of mdio_read().  Based on a patch
-	from Sjoerd Simons <sjoerd at luon.net>
-
-2004-05-08  Joe Shaw  <joe at ximian.com>
-
-	* tools/callouts/fstab-update.sh: Improve the locking loop.
-
-2004-05-07  Joe Shaw  <joe at ximian.com>
-
-	* NEWS: Update the udev requirements.  Patch rom Kay Sievers
-	<kay.sievers at vrfy.org>
-
-	* doc/TODO: Add an item about clean daemon shutdown.
-
-	* tools/callouts/fstab-update.sh: Add locking on the fstab so
-	things don't race for it.  Timeout after 10 seconds.  Also be
-	overly cautious about when we remove the block device from the
-	fstab and check to make sure that the resulting fstab exists and
-	is larger than 0 bytes in size.
-
-2004-05-05  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_dvd_rw_utils.c (get_dvd_media_type): new function
-
-	* hald/linux/block_class_device.c: rename some properties and ensure
-	that all properties for a namespace is always available with default
-	values - it's easiest to look at the diff to see what's changed; one
-	highlight is the introduction of the volume.* namespace.
-	(detect_media): use new utility in linux_dvd_rw_utils.c to get the
-	disc type for DVD's.
-
-	* tools/callouts/fstab-update.sh: property names changed
-
-	* fdi/20freedesktop/lexar-media-cf-reader.fdi: propertys name changed
-
-	* fdi/20freedesktop/6in1-card-reader.fdi: property names changed
-
-2004-05-05  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.c (probe_udf): fix for big-endian
-
-2004-05-04  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/volume_id/volume_id.c (probe_jfs): test for js == NULL
-
-	* hald/linux/block_class_device.c (detect_media): call detect_fs
-	when adding a disc. Also route the child through the TDL and test
-	the TDL so we don't add more than one child now that we've got a
-	delay thanks to callouts.
-	(add_to_gdl): rename to disc_add_to_gdl, since we use it only for
-	optical discs
-
-2004-05-04  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/linux/volume_id/volume_id.[ch] : support reading of iso9660
-	and udf labels
-
-2004-05-04  David Zeuthen  <david at fubar.dk>
-
-	* libhal/libhal.c (hal_ctx_set_user_data): new function
-	(hal_ctx_get_user_data): new function
-
-2004-05-01  Owen Fraser-Green  <owen at discobabe.net>
-
-	* hald/hald_dbus.c (manager_find_device_string_match): Set
-	info.value
-
-2004-05-01  David Zeuthen  <david at fubar.dk>
-
-	* libhal/libhal.h: fix that the extern "C" linkage stuff was
-	accidently commented out
-
-2004-05-01  David Zeuthen  <david at fubar.dk>
-
-	* hald/callout.c (iochn_data): remember to remove element from 
-	active_callouts list
-
-	* hald/linux/class_device.c (class_device_detection_done): remove
-
-2004-05-01  David Zeuthen  <david at fubar.dk>
-
-	* hald/Makefile.am (install-data-local): create /etc/hal/property.d
-
-	* tools/callouts/fstab-update.sh: s/msdos/vfat/ if applicable
-
-	* hald/logger.h: include stdio.h, stdlib.h since DIE macro uses this
-
-	* doc/TODO: removed a TODO-note :-)
-
-	* hald/callout.c (wait_for_callout): removed
-	(handle_sigchld): new function
-	(iochn_data): new function
-	(process_callouts): install signal handler and setup GIOChannel
-	stuff; don't install timeout for waiting for child
-
-	* hald/linux/class_device.c (class_device_detection_done): removed
-
-	* hald/linux/bus_device.c (bus_device_detection_done): removed
-
-2004-04-30  Joe Shaw  <joe at ximian.com>
-
-	* hald/linux/block_class_device.c (block_class_pre_process):
-	Process the mtab here, so that our fstype and mount_point
-	properties are set.
-
-	* hald/linux/bus_device.h, hald/linux/class_device.h: Remove the
-	detection_done function.  It's not really useful with all the
-	asynchronicity.
-	
-	* hald/linux/*_bus_device.c, hald/linux/*_class_device.c: Remove
-	the detection_done functions.
-
-	* hald/hald_dbus.c (foreach_device_by_capability): Make sure caps
-	is not NULL before comparing strings.
-
-2004-04-30  David Zeuthen  <david at fubar.dk>
-
-	* doc/TODO: update TODO note about fs detection
-
-2004-04-30  Kay Sievers  <kay.sievers at vrfy.org>
-
-	* hald/Makefile.am (hald_SOURCES): add volume_id/volume_id.[ch]
-
-	* hald/linux/block_class_device.c (detect_fs): use utility in new 
-	subdirectory volume_id
-
-	* hald/linux/volume_id/volume_id.[ch]: new files
-
-2004-04-27  Joe Shaw  <joe at ximian.com>
-
-	* doc/TODO: Remove a now completed TODO item.
-
-	* hald/hald.c (gdl_store_changed): Don't call hal_callout_device()
-	in the removed case.
-
-	* hald/linux/osspec.c (remove_callouts_finished): Actually remove
-	the device from the GDL in this callback.
-	(remove_device, remove_class_device): Connect to the
-	callouts_finished signal and call device callouts instead of
-	removing it from the GDL here.
-
-2004-04-26  Joe Shaw  <joe at ximian.com>
-
-	* hald/callout.c (hal_callout_device): We still need to emit the
-	callouts_finished signal even if we have no callouts.  Whoops.
-
-	* hald/bus_device.c (bus_device_got_parent): We don't need to ref
-	the device being added, since it's no longer unconditionally being
-	unreffed immediately afterward.
-
-	* hald/class_device.c (class_device_final): Ditto.
-
-	* hald/common.c (device_move_from_tdl_to_gdl): Remove the ref note
-	in the comment, and call g_object_ref() at the top of the
-	function.
-
-2004-04-26  David Zeuthen  <david at fubar.dk>
-
-	* doc/TODO: Added note about waiting for callouts to complete before
-	removing a device and waiting for children to disappear before a
-	device is removed
-
-2004-04-26  David Zeuthen  <david at fubar.dk>
-
-	* hald/device.c (hal_device_print): Print out to stderr instead of
-	stdout.
-
-	* hald/device_store.c (hal_device_store_print): Print out the
-	contents of a HalDeviceStore.
-
-	* hald/linux/common.c (rename_and_merge): Check to see if the UDI
-	exists in the TDL and try again if it is.
-
-2004-04-26  Joe Shaw  <joe at ximian.com>
-
-	* hald/callout.c: Make pending callouts a hash table of lists, so
-	we can execute all the callouts for the devices in order.
-	(add_pending_callout, pop_pending_callout): New convenience
-	functions.
-	(wait_for_callout): If this is the last callout for a device, fire
-	off the callouts_finished signal on the device.
-	(hal_callout_device, hal_callout_capability,
-	hal_callout_property): Use the new convenience functions, call
-	process_callouts() in an idle function.
-
-	* hald/device.c: Add a "callouts_finished" signal.
-
-	* hald/hald.c (gdl_store_changed): Don't call hal_callout_device()
-	here anymore... we call it in the backend before we get added to
-	the GDL.
-
-	* hald/hald_dbus.c (manager_device_exists,
-	device_get_all_properties, device_get_property,
-	device_get_property_type, device_set_property,
-	device_add_capability, device_remove_property,
-	device_property_exists, device_query_capability,
-	agent_merge_properties, agent_device_matches): Search the TDL for
-	the provided UDI if it's not found in the GDL.
-
-	* hald/linux/block_class_device.c (detect_media): Instead of
-	adding the device to the GDL immediately, connect to the
-	callouts_finished signal and add the device then.  Call
-	hal_callout_device() here, though.
-
-	* hald/linux/bus_device.c (bus_device_got_parent): Ditto.
-
-	* hald/linux/class_device.c (class_device_final): Ditto.
-
-	* hald/linux/common.c (device_move_from_tdl_to_gdl): Remove the
-	device from the TDL and add it to the GDL.  Remove the signal
-	handler and unref the device.  Used as a callback from
-	bus_device.c and class_device.c.
-
-2004-04-26  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/macio_bus_device.c: new file because with the recent
-	change in how probing is handled, my CD-ROM wasn't added until 30
-	seconds late into the process as the macio glue wasn't handled
-
-	* hald/Makefile.am (hald_SOURCES): add linux/macio_bus_device.c
-
-	* hald/linux/osspec.c: add macio_bus_handler to bus_device_handlers
-
-	* tools/device-manager/Const.py.in (BUS_NAMES): Add macio mapping
-
-2004-04-25  David Zeuthen  <david at fubar.dk>
-
-	* doc/TODO: Add our notes about current issues with the Linux 2.6
-	kernel
-
-	* hald/linux/usbif_bus_device.c (usbif_device_accept): remove 
-	is_probing
-
-	* hald/linux/usb_bus_device.c (usb_device_accept): remove is_probing
-
-	* hald/linux/printer_class_device.c (printer_class_device_accept): 
-	remove is_probing
-
-	* hald/linux/osspec.c (visit_class_device): optionally take and use
-	a ClassDeviceHandler object
-	(visit_class): -do-
-	(visit_device): optionally take and use a BusDeviceHandler object
-	(visit_bus): new function; not currently used
-	(osspec_probe): add a comment about migration to visit_bus once the
-	kernel is ready; slight changes
-
-	* hald/linux/net_class_device.c (net_class_pre_process): set category
-	and capabilities
-
-	* hald/linux/ide_host_bus_device.c (ide_host_device_accept): remove
-	is_probing
-
-	* hald/linux/common.c (got_parent): new function
-
-	* hald/linux/class_device.h: change prototypes by removing is_probing
-	parameter
-
-	* hald/linux/class_device.c don't pass is_probing; use 
-	hald_is_initialising global instead
-
-	* hald/linux/bus_device.h: change prototypes by removing is_probing
-	parameter
-
-	* hald/linux/bus_device.c: don't pass is_probing; use the global
-	hald_is_initialising instead. Don't try to find parent if the sysfs
-	path indicates that there is no parent.
-
-	* hald/linux/block_class_device.c : don't pass is_probing; use 
-	hald_is_initialising global
-
-2004-04-22  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/usb_bus_device.c (usb_add_caps_from_class): don't set
-	capabilities from device class since this is very misleading.
-	In fact, capabilities should only stem from kernel- or userspace-
-	drivers. We retain the right to set the usbhub capability as no
-	kernel driver is bound to this class of devices. Yet.. who knows?
-	In either case, a GUI device browsers can always inspect the info.bus
-	and consult the appropriate stuff, e.g. the usb.device_class, 
-	_sub_class and _protocol deal for usb devices, to select an appropriate
-	icon.
-
-	* hald/linux/pci_bus_device.c (pci_add_caps_from_class): removed for
-	same reasons as above
-	(pci_device_pre_process): don't call pci_add_caps_from_class
-
-	* tools/device-manager/Representation.py:
-	s/bridge.cardbus/pcmcia_socket/
-
-	* hald/linux/osspec.c: add pcmcia_socket_class_handler
-
-	* hald/linux/pcmcia_socket_class_device.c: new file; very simple just
-	tag a busdevice with the capability pcmcia_socket
-
-	* hald/linux/class_device.c (class_device_final): log an informative
-	message when we merge onto a device
-
-2004-04-22  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/class_device.c (class_device_got_sysdevice): Instead
-	of refusing to merge onto a socalled virtual device (which is really
-	a HAL term, and thus quite crackful), just special-case the fact
-	that we don't want to merge onto a usb interface but we prefer to
-	merge onto the usb device. Which is sane and quite nice. 
-	This makes the scsi_device receive the scsi_generic class stuff and
-	thus the scsi_generic.device_file=sg0 property. Which is also sane
-	and quite nice (think SCSI multi-lun devices).
-
-	* hald/linux/osspec.c (remove_class_device): Make a more concise
-	statement in the log message about the fact that removal of class
-	devices is not yet implemented; add @todo tag so this is not
-	forgotten
-
-	* doc/TODO: Add note about removal of class devices
-
-2004-04-21  Joe Shaw  <joe at ximian.com>
-
-	* doc/TODO: Add a couple of callout-related items.
-
-	* hald/callout.c (process_callouts): Reallocate the envp here with
-	enough space for all of the properties, since properties were
-	probably added since we initially measured the space.
-	(hal_callout_device, hal_callout_capability,
-	hal_callout_property): Reenable these.  Don't bother counting the
-	number of properties here, it doesn't matter.  Instead allocate
-	just enough space for our special env vars and let
-	process_callouts() deal with the rest.
-
-2004-04-21  David Zeuthen  <david at fubar.dk>
-
-	* hald/callout.c
-	(hal_callout_property): callouts seem to be a bit broken right 
-	now (segfaults my box etc.), so disable them. Hopefully this is
-	fixed soon!
-	(hal_callout_capability): -do-
-	(hal_callout_device): -do
-
-	* hald/linux/usbif_bus_device.c (usbif_device_compute_udi): Don't
-	print details about the device
-
-	* hald/linux/usb_bus_device.c (usb_proc_parse): Comment out noisy
-	print statements
-
-	* hald/linux/osspec.c 
-	(handle_udev_node_created_found_device): 
-	(visit_class_device): clean up logging statements
-	(visit_device): -do-
-	(remove_device): comment out noisy logging statements
-	(remove_class_device): -do-
-	(handle_hotplug): -do-
-
-
-	* hald/linux/class_device.c 
-	(class_device_got_device_file): comment out noisy logging statement
-	(class_device_accept): -do-
-
-	* hald/linux/common.c 
-	(rename_and_merge): comment out noisy logging statements
-	(class_device_get_device_file): -do-
-
-	* hald/hald.c (gdl_store_changed): don't print device, just print
-	the UDI
-
-2004-04-21  Robert Love  <rml at ximian.com>
-
-	* hald/callout.c: add property modified callout;
-	  change the action parameter to a tri-state and add appropriate enum
-	* hald/callout.h: add prototype for hal_property_callout
-	* hald/hald.c: invoke hal_property_callout on property modification
-
-2004-04-20  David Zeuthen  <david at fubar.dk>
-
-	* doc/TODO (CVSID): Updated
-
-2004-04-20  Robert Love  <rml at ximian.com>
-
-	* hald/callout.c: hal_property_get_as_string is now to_string, fix
-	leak.
-	* hald/device.c: add hal_device_property_to_string
-	* hald/device.h: add prototype for hal_device_property_to_string
-	* hald/property.c: rename hal_property_get_as_string to to_string
-	* hald/property.h: ditto for the prototype
-
-2004-04-20  Joe Shaw  <joe at ximian.com>
-
-	* hald/callout.c (Callout): Add the HalDevice to the structure, we
-	need it for getting the properties.  Add the starting index for
-	the envp.
-	(add_property_to_env): Deal with Callout structs instead of
-	ForeachPropInfo.
-	(process_callouts): Add the properties to the environment here, at
-	callout time, instead of up front, since callouts may have changed
-	properties, and we want later callouts to have the most up-to-date
-	info.
-	(process_callouts): Change the idle to a timeout.  This is a
-	copout.
-
-2004-04-20  Joe Shaw  <joe at ximian.com>
-
-	* hald/callout.c: Rework this some to make the callouts
-	asynchronous and tied in with the main loop, so that callouts can
-	either link against libhal or use hal-{get|set}-property without
-	deadlocking.
-
-2004-04-19  Robert Love  <rml at ximian.com>
-
-	* hald/callout.c (hal_callout_capability): add properties to 
-	environment and set working directory correctly
-
-2004-04-15  Joe Shaw  <joe at ximian.com>
-
-	* hald/device.c (hal_device_async_wait_property): Ref the device
-	when we create the AsyncInfo.  This should fix the glib warnings
-	about signals.
-	(destroy_async_match_info): Unref it when we're finished.
-
-2004-04-14  Joe Shaw  <joe at ximian.com>
-
-	* hald/Makefile.am: Build the new scsi_generic class handler.
-
-	* hald/linux/osspec.c: Add scsi_generic_class_handler.  Also add a
-	comment about how the order of the class_device_handlers array is
-	important, particularly when probing at startup.
-
-	* hald/linux/scsi_generic_class_device.c: Added.  The actual
-	handler.  The dumbest and most straightforward backend yet.
-
-	* tools/linux/hal_hotplug.c: Add file_list_scsi_generic.
-	(wait_for_sysfs_info): And add it here...
-
-2004-04-12  Joe Shaw  <joe at ximian.com>
-
-	* tools/device-manager/DeviceManager.py: Wrap the gnome.ui import
-	in a try statement and desensitize the About menu item if it
-	fails.  This is to work around a broken python-gnome package on
-	SUSE 9.0.
-
-2004-04-12  Joe Shaw  <joe at ximian.com>
-
-	* hald/Makefile.am: Build the new net class device.
-
-	* hald/linux/*.c: Change "post_process" to "pre_process", since
-	we're actually doing all of this before our HalDevice merges into
-	a superior one or gets added to the GDL.
-
-	* hald/linux/class_device.h (ClassDeviceHandler): Add a new
-	handler, "post_merge", which is called after we merge devices in
-	class_device_final().
-
-	* hald/linux/class_device.c (class_device_final): Call our new
-	post_merge function after we've merged devices.
-
-	* hald/linux/net_class_device.c: Add back in network class device
-	support.  Uses MII registers to get the initial link state and
-	uses netlink sockets to update it in real-time.
-
-	* hald/linux/osspec.c: Add net_class_handler.
-
-2004-04-12  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (block_class_post_process): 
-	s/hotplugable/hotpluggable/
-
-2004-04-12  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (block_class_post_process): 
-	Introduce storage.physical_device to point to the physical device
-	backing this storage device
-
-2004-04-12  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (block_class_post_process): Merge
-	storage.* and storage_lun%d.* properties from physical device (eg.
-	usb, ieee1394, ide) onto storage device
-
-	* hald/device.c (hal_device_merge_with_rewrite): new function
-
-	* hald/device.h: add prototype for hal_device_merge_with_rewrite
-
-	* fdi/20freedesktop/lexar-media-cf-reader.fdi: new file
-
-	* fdi/20freedesktop/6in1-card-reader.fdi: new file
-
-	* fdi/20freedesktop/Makefile.am: add fdi files for my two card reader
-	devices
-
-2004-04-12  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (detect_fs_fat): make data an
-	unsigned char array
-	(block_class_post_process): Always choose the block.storage_device
-	to be the top-level block device. Walk up the device chain to set
-	storage.bus to [ide|ieee1394|usb] as appropriate.
-
-2004-04-11  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/osspec.c 
-	(visit_class_device): Don't die if sysfs path is invalid
-	(visit_device): Don't die if sysfs path is invalid
-
-2004-04-11  David Zeuthen  <david at fubar.dk>
-
-	* tools/callouts/fstab-update.sh: Yuck, append a nondigit to 
-	MOUNTPOINT otherwise the removal of disk-8-1 (sda1) will also remove
-	disk-8-17 (sdb1)
-
-2004-04-11  David Zeuthen  <david at fubar.dk>
-
-	* tools/callouts/fstab-update.sh: Use HAL_PROP_BLOCK_FSTYPE if
-	available
-
-	* hald/linux/block_class_device.c (block_class_post_process): Move
-	check for storage.is_hotplugable
-	(block_class_post_process): Call detect_fs() to detect volume name
-	(detect_fs_fat): new function, sets block.fstype to vfat and 
-	block.volume_label for volumes with FAT filesystems
-	(detect_fs): new function
-
-2004-04-10  David Zeuthen  <david at fubar.dk>
-
-	* libhal/libhal.[ch]: Added LibHalContext object so a stack of 
-	libraries and applications can simultaneously use libhal
-
-	* libhal/libhal.h : Added LibHalLostCapability
-
-	* libhal/libhal.c (hal_device_get_all_properties): Fixed a bug where
-	the last property was missing
-
-	* tools/hal_get_property.c: update to new libhal API
-
-	* tools/hal_set_property.c: Update to new libhal API
-
-	* tools/lshal.c: Update to new libhal API
-	                     
-2004-04-10  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (block_class_post_process): 
-	Revert to setting the storage backing device to the top-level
-	block device
-
-2004-04-10  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/class_device.h: add got_udi() method
-
-	* hald/linux/class_device.c (class_device_final): move add/merge of
-	class device to a single function
-
-	* hald/linux/bus_device.h: add got_udi() method
-
-	* hald/linux/bus_device.c (bus_device_got_parent): call got_udi()
-	before adding
-	(bus_device_got_udi): new function
-
-	* hald/linux/block_class_device.c (block_class_got_udi): new function
-	(block_class_post_process): set block.storage_device to the physical
-	device, e.g. USB etc., backing the block device; simplify a bit
-
-2004-04-08  Joe Shaw  <joe at ximian.com>
-
-	* hald/linux/printer_class_device.c (printer_class_device_accept):
-	Added.  Only accept class devices which have a name of "lpN".
-	(printer_class_post_process): Get a description from the IEEE-1284
-	output and put it in printer.description.
-	(printer_class_handler): Set the accept function to be
-	printer_class_device_accept(), and change the sysfs class name
-	from "printer" back to "usb".
-
-	* tools/callouts/fstab-update.sh: Add some introductory text to
-	the top of it, including a big warning.  Create the mountpoint
-	with mkdir -p instead of each individual directory.
-
-2004-04-08  David Zeuthen  <david at fubar.dk>
-
-	* tools/callouts/fstab-update.sh: Callout script for fstab management
-
-2004-04-08  David Zeuthen  <david at fubar.dk>
-	
-	* hald/linux/osspec.c (remove_device): new function
-	(remove_class_device): new function
-	(handle_hotplug): simplify
-
-2004-04-07  David Zeuthen  <david at fubar.dk>
-
-	* tools/linux/hal_dev.c: New file for sending device event
-
-	* tools/linux/Makefile.am: Build and install hal.dev
-
-	* hald/linux/class_device.h: Add accept method to ClassDeviceHandler
-
-	* hald/Makefile.am (install-data-local): Create /etc/hal/device.d and
-	/etc/hal/capability.d
-
-	* hald/linux/osspec.c (handle_device_event): new function
-	(handle_udev_node_created): removed function
-	(osspec_filter_function): Handle events from hal.dev so we don't
-	need to rely on udev having built-in dbus support
-
-	* configure.in: Bump version to 0.2.90
-
-2004-04-05  Joe Shaw  <joe at ximian.com>
-
-	* hald/linux/printer_class_device.c: Added.  New printer class.
-
-	* hald/linux/Makefile.am: Build linux/printer_class_device.c
-
-	* hald/linux/osspec.c: Add the printer class handler.
-
-2004-04-03  David Zeuthen  <david at fubar.dk>
-
-	* hald/main.c : Removed file
-
-	* hald/linux/: Remove files from old backend
-
-2004-04-03  David Zeuthen  <david at fubar.dk>
-
-	Merge hal-gobject-branch back to HEAD
-
-2004-04-03  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/bus_device.c: Various cleanups
-
-	* hald/linux/class_device.c: Various cleanups
-
-	* hald/linux/block_class_device.c: Various cleanups
-
-	* hald/device.c (hal_device_async_wait_property): New method
-
-2004-04-02  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/osspec.c (handle_hotplug): Actually remove class devices
-	that populate the tree
-	(handle_udev_node_created): Search in Temporary Device List instead of
-	the Global Device List - quite important difference :-)
-
-	* hald/linux/common.c (rename_and_merge): remove from tdl
-
-	* hald/linux/class_device.c (class_device_visit): add to tdl
-	(class_device_got_parent_device): remove from tdl
-	(class_device_got_sysdevice): remove from tdl
-	(class_device_got_device_file): remove from tdl
-
-	* hald/linux/bus_device.c (bus_device_visit): Asynchronously find
-	the parent device instead of synchronously
-	(bus_device_got_parent): New format
-
-	* hald/linux/block_class_device.c (block_class_visit): add to tdl
-	(detect_media): Add the patch from rml for storage.cdrom.media_type
-	(block_class_removed): new function
-
-	* hald/hald.c (hald_get_tdl): New function to get temporary device
-	list
-
-2004-04-01  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/common.c (rename_and_merge): Fixed a subtle error where
-	multiple instances of the same device couldn't appear in the device
-	list
-
-2004-03-29  Robert Love  <rml at ximian.com>
-
-	* tools/linux/hal_hotplug.c: add a "strcat_len()" macro and use it
-	
-2004-03-29  Robert Love  <rml at ximian.com>
-
-	* tools/linux/hal_hotplug.c: sysfs_mnt_path should be a "char []"
-	  not a "char * []", also use PATH_MAX instead of 255, and finally
-	  use "const char" as appropriate
-
-2004-03-30  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/block_class_device.c (detect_media): media detection 
-	on CD-ROM's from the patch from Robert (storage.cdrom.media_type)
-	(block_class_tick): Comment out noisy debug statement when polling
-
-2004-03-30  David Zeuthen  <david at fubar.dk>
-
-	* hald/main.c (device_get_all_properties): Comment out noise trace
-	call
-
-	* hald/device_store.c 
-	(ds_device_merge, ds_add_capability): Signal capability added even
-	though target device already had the capability. Fixes problem with
-	monitoring ethernet devices.
-
-2004-03-28  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_class_block.c (visit_class_device_block): Remove
-	block.[size|start|block_size] properties
-
-2004-03-26  Robert Love  <rml at ximian.com>
-
-	* hald/linux/linux_class_block.c (media_detect_timer_handler): Comment
-	out noise debug statement
-
-2004-03-25  Robert Love  <rml at ximian.com>
-
-	* hald/linux/linux_class_block.c (detect_media): add support for
-	"storage.cdrom.media_type"
-
-2004-03-14  Martin Waitz  <tali at admingilde.org>
-
-	* hald/linux/linux_usb.c (usb_proc_parse): Just ignore if we can't
-	open /proc/bus/usb/devices
-
-	* hald/linux/usb_bus_device.c (usb_proc_parse): Just ignore if we
-	can't open /proc/bus/usb/devices
-
-	* tools/device-manager/DeviceManager.py: Print out nice error if hald
-	is not running
-
-2004-03-14  David Zeuthen  <david at fubar.dk>
-
-	* doc/TODO: Updated TODO file
-
-2004-03-14  David Zeuthen  <david at fubar.dk>
-
-	Added first stab of rewrite of linux specific parts - the new
-	code is a lot more object oriented and thus more compact; it's
-	currently disabled until it's more tested; you have to manually
-	enable by editing hald/Makefile.am
-
-	* hald/Makefile.am (hald_SOURCES): Add new linux specific parts;
-	currently disabled
-	
-	* hald/device_store.h: add ds_device_async_wait_for_property()
-
-	* hald/device_store.c (DSDeviceAsyncFindStruct): Add device member
-	used in for wait_for_property
-	(async_find_check_new_addition): add wait_for_property check
-	(ds_device_async_wait_for_property): new function
-
-	* osspec.c : new file
-	* common.[ch] : new files
-	* bus_device.[ch] : new files
-	* usb_bus_device.c : new file
-	* usbif_bus_device.c : new file
-	* pci_bus_device.c : new file
-	* ide_bus_device.c : new file
-	* ide_host_bus_device.c : new file
-	* class_device.[ch] : new files
-	* input_class_device.c : new file
-	* block_class_device.c : new file
-	* scsi_host_class_device.c : new file
-	* scsi_device_class_device.c : new file
-
-2004-03-05  Sjoerd Simons  <sjoerd at air.luon.net>
-
-	* hald/linux/linux_class_v4l.c (visit_class_device_v4l): Remove
-	invalid free of a static string
-
-	* hald/linux/linux_common.c (udevinfo_path): Add /usr/bin/udevinfo
-	as candidate for location of udevinfo
-
-2004-03-03  David Zeuthen  <david at fubar.dk>
-
-	Major reformatting patch - seems that everyone is following
-	another coding style than me so I chose the GNOME coding guidelines,
-	indent -kr -i8 -pcs -lps -psl, and did some manual reformatting
-
-2004-03-01  Joe Shaw  <joe at ximian.com>
-
-	* configure.in: SUSE puts pci.ids in /usr/share, so add that to
-	the list of directories to check.
-
-	* tools/Makefile.am: Use @PACKAGE_LIBS@ and @DBUS_LIBS@ instead of
-	referencing the libs directly.  This allows us to have dbus and/or
-	glib in a prefix.
-
-2004-03-01  David Zeuthen  <david at fubar.dk>
-
-	Preliminary support for waiting for sysfs information to appear - 
-	not complete but it's a start...
-
-	* tools/linux/hal_hotplug.c 
-	(get_sysfs_mnt_path): new function
-	(main): call wait_for_sysfs_info() on hotplug add
-	(wait_for_sysfs_info): new function
-
-2004-03-01  Sjoerd Simons  <sjoerd at air.luon.net>
-
-	* hald/linux/linux_common.c (udevinfo_path): new function
-
-	* hald/linux/linux_common.h: add udevinfo_path prototype
-
-	* hald/linux/linux_class_v4l.c (visit_class_device_v4l): use 
-	udevinfo_path() to get path to udevinfo
-
-	* hald/linux/linux_class_block.c 
-	(visit_class_device_block_got_parent): use udevinfo_path() to get
-	path to udevinfo. Add support for SCSI tape detection. Set correct
-	storage.media on SCSI CD-ROM and disk detection
-
-2004-02-29  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_usb.c (visit_device_usb): New way to check if 
-	device is an interface
-
-2004-02-27  Joe Shaw  <joe at ximian.com>
-
-	* hald/linux/linux_class_block.c
-	(visit_class_device_block_got_parent): Handle block devices which
-	have a "scsi_device" as its parent class.  Use sysfs to get
-	vendor, product, and SCSI device type, which get mapped to HAL
-	capabilities.
-
-	* hald/linux/linux_usb.c (usb_proc_parse): Fallback to
-	/proc/bus/usb/devices_please-use-sysfs-instead.  Yeah, yeah.
-
-2004-01-20  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_osspec.c (visit_device): disable ieee1394
-	(osspec_init): disable ieee1394
-	(osspec_probe): disable ieee1394
-	(handle_hotplug): disable ieee1394
-
-2004-01-19  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: bump version to 0.2.6
-
-	* packaging/fedora/hal.spec (Version): bump to 0.2.6
-
-	* hald/linux/linux_class_v4l.c (get_udev_root): removed
-	(linux_class_v4l_init): don't call get_udev_root()
-	(visit_class_device_v4l): use new options in udev-013
-
-	* hald/linux/linux_class_block.c (get_udev_root): removed
-	(linux_class_block_init): don't call get_udev_root()
-	(visit_class_device_block_got_parent): use new options in udev-013
-
-2004-01-19  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_common.c (drivers_collect): Don't call DIE() if 
-	we cannot open the /sys/bus/<busname>/drivers directory - just
-	ignore this error with HAL_WARNING()
-
-2004-01-18  David Zeuthen  <david at fubar.dk>
-
-	* hald/device_store.c (ds_device_merge): treat info.properties in
-	a special way such that capabilities entries are actually merged
-
-	* hald/linux/linux_class_v4l.c (visit_class_device_v4l): Replaced
-	parent with sysdevice, since that is what we really search for;
-	split properties onto v4l.[vbi,video,radio]
-	(visit_class_device_v4l_got_parent): renamed to _got_sysdevice. Merge
-	information onto sysdevice instead of creating a new device
-
-2004-01-18  Bastien Nocera  <hadess at hadess.net>
-
-	* hald/linux/linux_dvd_rw_utils.c (get_read_write_speed): fixed bug
-	where the two write_speed assignments was swapped
-
-	* doc/TODO: remove note about ide-scsi and ide-cd
-
-2004-01-17  David Zeuthen  <david at fubar.dk>
-
-	* doc/TODO: some shuffling around, added note about that
-	hald/linux/linux_dvd_rw_utils.c is ide-scsi centric
-
-2004-01-17  Bastien Nocera  <hadess at hadess.net>
-
-	* hald/linux/linux_dvd_rw_utils.c (pull_page2a_from_fd): new function
-	(get_read_write_speed): new function
-
-	* hald/linux/linux_dvd_rw_utils.h: add get_read_write_speed() prototype
-
-	* hald/linux/linux_class_block.c 
-	(linux_class_block_check_if_ready_to_add): call get_read_write_speed
-	for optical drives
-
-2004-01-17  David Zeuthen  <david at fubar.dk>
-
-	* hald/device_store.c (ds_query_capability): use strtok_r instead
-	of strstr as it didn't really work (example: will return true if
-	called with 'cdrom' and caps were 'cdrom.cdr block'.
-	(ds_add_capability): only announce new capability if we actually
-	added it
-
-2004-01-17  Joe Shaw  <joe at ximian.com>
-
-	* hald/Makefile.am (hald_SOURCES): add linux_ieee1394.[ch]
-
-	* hald/linux/linux_ieee1394.[ch]: new files
-
-	* hald/linux/linux_osspec.c (visit_device): visit IEEE1394 devices
-	(osspec_probe): handle IEEE1394 devices
-	(handle_hotplug): handle IEEE1394 devices
-
-2004-01-17  Matthew Mastracci  <matt at acclaro.com>
-	
-	* tools/device-manager/Const.py.in (BUS_NAMES): add video4linux,
-	fix I2C capitalization         
-
-	* hald/linux/linux_osspec.c (visit_class_device): add support
-	for video4linux, minor I2C fixes
-	(visit_class_device): add support for video4linux
-	(visit_class_device): use class device path for I2C
-	(handle_hotplug): hotplug support for video4linux
-
-	* hald/Makefile.am (hald_SOURCES): Add linux_class_video4linux.[ch]
-
-	* hald/linux/linux_class_video4linux.[ch]: new files
-	
-2004-01-17  Bastien Nocera  <hadess at hadess.net>
-
-	* hald/Makefile.am (hald_SOURCES): Add linux_dvd_rw_utils.[ch]
-
-	* hald/linux/linux_class_block.c 
-	(linux_class_block_check_if_ready_to_add): Check for DVD writer
-	capabilities	
-
-	* hal.pc.in: Fixup up so applications only need to include libhal and
-	not dbus
-
-	* hald/linux/linux_dvd_rw_utils.[ch]: new files
-
-2004-01-17  Robert Love  <rml at ximian.com>
-
-	* libhal/libhal.h: Change protototype of foo() to foo(void) to avoid
-	warnings when compiling -Wstrict-prototypes
-
-2004-01-16  David Zeuthen  <david at fubar.dk>
-
-	* packaging/fedora/hal.spec (Version): bump version to 0.2.5
-
-	* configure.in: bump version to 0.2.5
-
-	* tools/linux/hal_hotplug.c (main): sleep 1000ms instead of 500ms
-	before sending signal - we really need to update to latest libsysfs
-	in hald to avoid the race - this is soo ugly
-
-	* hald/main.c (property_atomic_update_end): fix possible memory
-	violation
-
-	* hald/linux/linux_osspec.c (handle_hotplug): call 
-	linux_class_block_removed() just before destroying the HalDevice obj
-
-	* hald/linux/linux_class_block.c (linux_class_block_removed): new
-	function
-
-	* hald/linux/linux_class_block.h: add prototype for 
-	linux_class_block_removed()
-
-	* hald/device_store.c 
-	(ds_device_find_multiple_by_key_value_string): new funtion
-
-	* hald/device_store.h: add prototype for
-	ds_device_find_multiple_by_key_value_string()
-
-	* hald/linux/linux_class_block.c (sigio_handler): Make this signal
-	handler *a lot* safer by only setting a flag a timer can pick up
-	(detect_media): properly handle situation when user removes media
-	where partitions are mounted on
-	(media_detect_timer_handler): check sigio_etc_changed
-	(force_unmount_of_all_childs): newfunction
-	(force_unmount): new function
-	(linux_class_block_removed): new function
-
-2004-01-14  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_class_block.c (detect_media): Doh, leaked a
-	filedescriptor which is big trouble. Fixed
-
-2004-01-13  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Bump version number to 0.2.4
-
-	* packaging/fedora/hal.spec (Release): Bump version number to 0.2.4
-
-	* tools/device-manager/hal-device-manager: Remove requirement for 
-	pygtk 2.0 since it broke some systems
-
-2004-01-13  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_class_block.c 
-	(linux_class_block_check_if_ready_to_add): ioctl rc>=0 is also success
-	(detect_media): rewrite most of this function
-	(visit_class_device_block_got_parent): Rename 
-	storage.has_removable_media to storage.support_removable_media. Set
-	it for all devices - only properly detected for IDE CD-ROM drives
-	currently.
-	(linux_class_block_check_if_ready_to_add): Move storage.* properties
-	to visit_class_device_block_got_parent()
-
-2004-01-13  David Zeuthen  <david at fubar.dk>
-	
-	* configure.in: Bump version number to 0.2.3
-
-	* tools/device-manager/DeviceManager.py 
-	(DeviceManager.device_changed): Add support for Condition signal
-
-	* tools/lshal.c (device_condition): new function
-	(main): add device_condition to LibHalFunctions variable
-
-	* libhal/libhal.c (filter_func): Process DeviceCondition
-
-	* libhal/libhal.h (LibHalFunctions_s): Add device_condition
-	and type LibHalDeviceCondition
-
-	* hald/linux/linux_class_net.c (link_detection_process): Emit 
-	NetLinkEvent(bool got_link) condition
-
-	* hald/linux/linux_class_block.c 
-	(etc_mtab_process_all_block_devices): emit BlockMount(string device,
-	string mount_point, string fstype) and BlockUnmount(string device)
-	events
-
-	* hald/hald.h: added emit_condition()
-
-	* hald/main.c (emit_condition): new function
-
-2004-01-13  Matthew Mastracci  <matt at aclaro.com>
-
-	* tools/device-manager/Const.py.in (BUS_NAMES): add i2c_adapter
-
-	* hald/linux/linux_osspec.c (visit_class_device): add support for
-	i2c-adapter
-	(visit_device): add support for i2c and i2c-adapter
-	(handle_hotplug): hotplug support for i2c and i2c-adapter
-
-	* hald/Makefile.am (hald_SOURCES): Add linux_class_i2c_adapter.[ch]
-
-	* hald/linux/linux_class_i2c_adapter.[ch]: new files
-
-2004-01-12  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_class_block.c 
-	(linux_class_block_check_if_ready_to_add): Check whether optical
-	drive supports media changed signals
-	(etc_mtab_process_all_block_devices): Only merge information from
-	/etc/mtab if block.is_volume==TRUE
-	(detect_media): New function
-	(media_detect_timer_handler): New function
-	(linux_class_block_detection_done): Setup 2 sec timer for media
-	detection
-
-2004-01-10  David Zeuthen  <david at fubar.dk>
-
-	* tools/device-manager/hal-device-manager: add requirement for
-	pygtk version 2.0
-
-2004-01-10  David Zeuthen  <david at fubar.dk>
-
-	* tools/device-manager/Const.py.in (BUS_NAMES): Add support for i2c
-	devices
-
-	* hald/linux/linux_i2c.[ch]: New files by Matthew Mastracci; slight
-	modifications by me
-
-	* hald/linux/linux_osspec.c (visit_device): Call visit_device_i2c()
-
-	* hald/Makefile.am (hald_SOURCES): Add linux_i2c.[ch]
-
-2004-01-08  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_class_scsi.c
-	(visit_class_device_scsi_host): Set scsi_host.host
-	(visit_class_device_scsi_device): Set scsi_device.[host,bus,target,lun]
-	(scsi_host_compute_udi): Simplify UDI computation using only
-	scsi_host.host. This also makes it correct for multi-lun devices
-	(scsi_device_compute_udi): Simplify UDI computation using the tupple
-	{host, bus, target, lun}. This also makes it work with multi-lun
-	devices
-
-	* hald/linux/linux_class_block.c 
-	(linux_class_block_check_if_ready_to_add): Add O_NONBLOCK so
-	optical drive capability query works without a disc mounted.
-	Add capabilities (e.g. storage.cdr) as always present properties
-	as well. A bit redundant, but it makes is more easy obvious that
-	some devices might support this property.
-	Populate block.storage_device to point the device with the
-	storage.* properties
-	
-2004-01-05  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_osspec.c (handle_hotplug): add some more debug
-
-	* hald/linux/linux_class_block.c 
-	(visit_class_device_block_got_parent): add some more debug
-
-2004-01-04  David Zeuthen  <david at fubar.dk>
-
-	* tools/linux/hal_hotplug.c: Don't include dbus-glib
-
-2004-01-04  Joe Shaw  <joe at ximian.com>
-
-	* hald/main.c (PendingUpdate_s): Remove the "const" from the
-	"key" field, since it's supposed to be freed.
-
-	* hald/linux/linux_class_block.c: #include <glib.h>.
-	(visit_class_device_block_got_parent): The path should be declared
-	const.  g_spawn_sync() was missing a NULL GError argument.
-	(etc_mtab_process_all_block_devices): existing_block_device should
-	be declared const.
-	(get_udev_root): g_spawn_sync() needs a GError argument.
-
-	* hald/linux/linux_class_net.c: Add #include "../hald.h".
-	(visit_class_device_net): Wrap the check for ARPHRD_IEEE1394 in an
-	#ifdef, since my machine doesn't seem to define it.
-
-	* hald/linux/linux_common.c: #define _GNU_SOURCE since we're using
-	strndup().
-
-2004-01-04  Joe Shaw  <joe at ximian.com>
-
-	* configure.in: Do a separate check for dbus alone, so that we can
-	link libhal to it and not the glib libs.  This fixes things for
-	a dbus installed into a separate prefix.
-
-	* libhal/Makefile.am: Use the DBUS_CFLAGS for the INCLUDES and
-	DBUS_LIBS for the libhal_la_LIBADD.
-
-	* tools/linux/Makefile.am: Ditto for hal_hotplug
-
-2004-01-04  Anders Carlsson  <andersca at gnome.org>
-
-	* tools/device-manager/DeviceManager.py:
-	Add a couple of code paths for setting vendor.
-	
-	* tools/device-manager/hal-device-manager.glade:
-	Fixup to use GtkTable instead of GtkFixed.
-	
-2004-01-04  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_class_block.c 
-	(linux_class_block_check_if_ready_to_add): moved cdrom cap check to
-	here. Renamed capabilities from cdrom.* to storage.*
-	(visit_class_device_block_got_parent): moved cdrom cap away from here
-	since on hotplugging we are not sure to have block.device.
-
-2004-01-04  Anders Carlsson  <andersca at gnome.org>
-
-	* hald/linux/linux_class_block.c:
-	(visit_class_device_block_got_parent):
-	Add support for cdrom capabilities.
-	
-2004-01-04  David Zeuthen  <david at fubar.dk>
-
-	* fdi/Makefile.am: install fdi.rng
-
-	* fdi/fdi.rng: new file (thanks to Dave Malcolm)
-
-2004-01-03  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_class_block.c 
-	(visit_class_device_block_got_parent): Invoke udev on hald boot time
-	to get device file names
-	(etc_mtab_process_all_block_devices): Be careful not to overwrite
-	existing block.device when looking at /etc/mtab
-	(get_udev_root): new function
-	(linux_class_block_init): find udev root using '/sbin/udev -r'
-
-2004-01-02  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: bump version to 0.2.2
-
-	* hald/linux/linux_class_net.c (link_detection_process): Group
-	net.ethernet.link and net.ethernet.rate as an atomic update
-
-	* fdi/Makefile.am: install fdi.dtd to $(datadir)/hal/fdi
-
-	* fdi/fdi.dtd: new file (thanks to Dave Malcolm)
-
-	* hald/device_store.c (ds_device_find_by_key_value_string): set
-	that we can choose whether to search the GDL or not
-	(ds_device_async_find_by_key_value_string): set that we can choose
-	whether to search the GDL or not
-	(ds_device_merge): Do all the merge as an atomic operation
-
-	* hald/linux/linux_osspec.c
-	(handle_udev_node_created_found_device): Call
-	linux_class_block_check_if_ready_to_add()
-	(handle_udev_node_created): search for device not in GDL
-
-	* hald/linux/linux_common.c (rename_and_merge): renamed from
-	rename_and_maybe_add. News is that you need to call ds_gdl_add()
-	explicitly
-
-	* hald/linux/linux_*.c: call rename_and_merge() instead. Explicitly
-	call ds_gdl_add()
-
-	* hald/linux/linux_class_block.c 
-	(etc_mtab_process_all_block_devices): make sure we always set required
-	properties; set all properties in a single transaction	
-	(read_etc_mtab): add force parameter
-	(etc_mtab_process_all_block_devices): add force parameter
-	(visit_class_device_block_got_parent): reload /etc/mtab on every
-	hotplug. Call linux_class_block_check_if_ready_to_add() instead of
-	ds_gdl_add()
-	(linux_class_block_check_if_ready_to_add): new function
-	
-	* libhal/libhal.c (filter_func): Added PropertyModified, removed
-	Property[Changed, Added, Removed]
-
-	* libhal/libhal.h (LibHalFunctions_s): Added PropertyModified, removed
-	Property[Changed, Added, Removed]
-	
-	* tools/device-manager/DeviceManager.py 
-	(DeviceManager.device_changed): Listen for PropertyModified instead.
-	Print out payload on stdout for debugging purposes
-
-	* tools/lshal.c (property_modified): new function
-	(property_added): removed
-	(property_removed): removed
-	(property_changed): removed
-	
-	* hald/main.c (hald_atomic_update_begin): new function
-	(hald_atomic_update_end): new function
-	(property_changed): add support for atomic updates
-	(main): Run as root, we require this to sniff mii registres
-
-	* hal.conf.in: Run as root, we require this to sniff mii registres
-
-	* hald/hald.h: new file
-
-2003-12-30  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Change default user to from hal to haldaemon since
-	people may already use login called hal or hald (I know of both).
-	Bump version number to 0.2.1
-	
-	* packaging/fedora/hal.spec: new file
-
-	* hald/main.c (main): Use HAL_USER macro instead of the hardcoded hal
-
-	* hal.conf.in: group policy segfaults dbus-daemon-1 on 0.20, but works
-	in CVS; Now changed so only root can use the AgentManager interface
-
-2003-12-29  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: add --with-init-scripts and --with-pid-file. Now
-	configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
-	works like a charm on Fedora Core 1.
-
-	* hald/Makefile.am: handle initscripts fun
-
-	* hald/haldaemon.in: new file
-	
-2003-12-29  David Zeuthen  <david at fubar.dk>
-
-	* Makefile.am: add hal.conf.in to EXTRA_DIST to so make distcheck
-	passes
-
-	* configure.in: add --with-hal-user and --with-hal-group, defaults
-	to hal:hal. Autogenerate hal.conf
-
-	* hal.conf.in: new file
-
-	* hal.conf: remove, since it is now autogenerated
-
-	* hald/Makefile.am: Add $(sysconfig) dir
-
-	* hald/main.c (usage): new function
-	(main): Add commandline parsing, daemonizing and run-as-user
-	
-	* hald/linux/linux_usb.c (visit_device_usb_got_parent): fix a stupid
-	bug where proc info wasn't reloaded
-	(usb_proc_parse): Set cur info to NULL on subsequent calls to make
-	it work
-
-2003-12-23  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: add autogeneration doc/Makefile, examples/Makefile and
-	examples/volumed/Makefile
-
-	* Makefile.am: add doc and examples to SUBDIRS
-
-	* examples/Makefile.am: new file
-
-	* examples/volumed/Makefile.am: new file
-
-	* doc/Makefile.am: new file
-
-	* doc/TODO: updated
-
-	* HACKING: updated
-
-	* NEWS: updated, since 0.2 is ready for distribution
-
-2003-12-23  David Zeuthen  <david at fubar.dk>
-	
-	* doc/TODO: updated
-
-2003-12-23  David Zeuthen  <david at fubar.dk>
-
-	* configure.in: Drop DEVICEMANAGER_DIR. This allows us to do make
-	install even in maintainer mode, but changes to datafiles (glade
-	and png's) needs to be installed every time unless Const.py is
-	directly edited. Add autogeneration of fdi/Makefile and 
-	fdi/10generic/Makefile and fdi/20freedesktop/Makefile.
-
-	* hald/device_info.c (handle_match): Fix check for merge of the
-	other non-string types (bool, int, double)
-	(end): Merge non-string types
-
-	* hald/linux/linux_class_block.c 
-	(visit_class_device_block_got_parent): rename various properties
-	to match the spec.
-
-	* hald/linux/linux_class_input.c (process_input_proc_info): rename 
-	various properties to match the spec.
-
-	* hald/linux/linux_common.c (rename_and_maybe_add): Implement
-	merging with persistent unplugged devices; search for .fdi files
-
-	* hald/linux/linux_osspec.c (handle_hotplug): Don't destroy
-	persistent devices on remove; rather mark the unplugged, 
-	info.not_available set to true, and remove some key properties in
-	info and linux namespace.
-
-	* hald/linux/linux_usb.c (usb_add_caps_from_class): Renamed capability
-	from storage to storage_controller to match spec.. Hmm.. not sure..
-
-	* tools/device-manager/Const.py.in: Use @DATADIR@ and path instead
-	of @DEVICEMANAGER_DIR@
-
-	* tools/device-manager/Representation.py: Add support for capability
-	camera and fixup how the storage icon is selected to reflect the new
-	spec
-
-	* fdi/Makefile.am: new file
-
-	* fdi/10generic/Makefile.am: new file
-	
-	* fdi/10generic/usb-classes.fdi: removed
-
-	* fdi/20freedesktop/Makefile.am: new file
-	
-	* fdi/20freedesktop/ibm-usb-hub-keyboard.fdi: removed
-
-	* fdi/20freedesktop/lexar-cf-card-reader.fdi: removed
-
-	* fdi/20freedesktop/canon-digital-ixus-v.fdi: new file
-	
-2003-12-22  David Zeuthen  <david at fubar.dk>
-
-	* libhal/libhal.c (hal_free_string): rename from hal_free_utf8 as
-	this name makes more sense and we don't yet support utf8 strings
-	(hal_device_get_all_properties): fix memory leak of dbus strings in
-	multiple places. Note: we have to audit hald as well :-/
-	(filter_func): fix dbus string memory leakages
-	(hal_initialize): add use_cache to preserve API compatilibility when
-	we actually get around to implement caching in libhal
-	(hal_get_all_devices): add check for oom
-	(hal_device_get_property_type): fix dbus string memory leakages
-
-	* libhal/libhal.h: change hal_initialize() prototype. Change name
-	of hal_free_utf8() to hal_free_string()
-
-	* tools/Makefile.am: rename hal_[s|g]et_property program to 
-	hal-[s|g]et-property.
-
-	* tools/hal_get_property.c (main): call hal_initialize with correct
-	number of arguments. Fix string leakage bug.
-
-	* tools/hal_set_property.c (main): call hal_initialize with correct
-	number of arguments
-
-	* tools/lshal.c (dump_devices): Call hal_free_string_array() instead
-	of dbus_free_string_array()
-	(print_property): fix string leakage
-	(main): call hal_initialize with correct number of arguments
-	
-2003-12-22  David Zeuthen  <david at fubar.dk>
-
-	* acinclude.m4: borrow AS_AC_EXPAND from gstreamer (Martin Waitz)
-
-	* configure.in: use AS_AC_EXPAND and define $(LN_S) and request
-	generation of tools/device-manager/Const.py (Martin Waitz)
-
-	* hald/Makefile.am: add $(top_srcdir) to pass make distcheck (Martin
-	Waitz)
-
-	* tools/Makefile.am: add $(top_srcdir) to pass make distcheck, and
-	use direct path to libhal (Martin Waitz)
-
-	* tools/device-manager/Const.py.in: use autoconf vars (Martin Waitz)
-
-	* tools/device-manager/Makefile.am: simplify by removing manual
-	variable replacement and by using dist_ and nodist_ prefixes. Use
-	$(LN_S) to link (Martin Waitz)
-
-	* tools/linux/Makefile.am: Fix symlinking (Martin Waitz)
-	
-2003-12-22  David Zeuthen  <david at fubar.dk>
-
-	* tools/device-manager/*: Some changes due to the big rename patch
-	
-	* hald/*.c: The big property rename change patch
-	s/Bus/info.bus/
-	s/Capabilities/info.capabilities/
-	s/Category/info.category/
-	s/Product/info.product/
-	s/Vendor/info.vendor/
-	s/Linux.sysfs_path/linux.sysfs_path/
-	s/Linux.sysfs_path_device/linux.sysfs_path_device/
-	s/Linux.sysfs_bus_id/linux.sysfs_bus_id/
-	s/Parent/info.parent/
-	s/PhysicalDevice/info.physical_device/
-	info.udi NEW
-	s/pci.Product/pci.product/
-	s/pci.Vendor/pci.vendor/
-	s/pci.ProductSubSystem/pci.subsys_product/
-	s/pci.VendorSubSystem/pci.subsys_vendor/
-	s/pci.deviceClass/pci.device_class/
-	s/pci.deviceSubClass/pci.device_subclass/
-	s/pci.deviceProtocol/pci.device_protocol/
-	s/pci.idProduct/pci.product_id/
-	s/pci.idVendor/pci.vendor_id/
-	s/pci.idProductSubSystem/pci.subsys_product_id/
-	s/pci.idVendorSubSystem/pci.subsys_vendor_id/
-	s/usb.Product/usb.product/
-	s/usb.Vendor/usb.vendor/
-	s/usb.bDeviceClass/usb.device_class/
-	s/usb.bDeviceSubClass/usb.device_subclass/
-	s/usb.bDeviceProtocol/usb.device_protocol/
-	s/usb.bMaxPower/usb.max_power/
-	s/usb.bcdDevice/usb.device_revision_bcd/
-	s/usb.bcdSpeed/usb.speed_bcd/
-	s/usb.bcdVersion/usb.version_bcd/
-	s/usb.busNumber/usb.bus_number/
-	s/usb.canWakeUp/usb.can_wake_up/
-	s/usb.configurationValue/usb.configuration_value/
-	s/usb.idProduct/usb.product_id/
-	s/usb.idVendor/usb.vendor_id/
-	s/usb.levelNumber/usb.level_number/
-	s/usb.numConfigurations/usb.num_configurations/
-	s/usb.numInterfaces/usb.num_interfaces/
-	s/usb.numPorts/usb.num_ports/
-	s/usb.selfPowered/usb.is_self_powered/
-	s/usb.serial/usb.serial/
-	s/usbif.bInterfaceClass/usbif.interface_class/
-	s/usbif.bInterfaceSubClass/usbif.interface_subclass/
-	s/usbif.bInterfaceProtocol/usbif.interface_protocol/
-	s/usbif.deviceIdProduct/usbif.device_product_id/
-	s/usbif.deviceIdVendor/usbif.device_vendor_id/
-	s/ide.channel/ide.channel/
-	s/ide.channel/ide.sub_channel/
-	s/ide_host.number/ide_host.number/
-	s/block.device/block.device/
-	s/block.fileSystem/block.fstype/
-	s/block.isMounted/block.is_mounted/
-	s/block.isVolume/block.is_volume/
-	s/block.major/block.major/
-	s/block.minor/block.minor/
-	s/block.mountPoint/block.mount_point/
-	s/block.size/block.size/
-	s/block.start/block.start/
-	s/block.model/block.model/
-	s/block.media/block.media/
-	s/block.removableMedia/block.has_removable_media/
-	block.block_size NEW
-	s/net.ethernet.macAddr/net.ethernet.mac_addr/
-	s/net.ethernet.macAddrLower24/net.ethernet.mac_addr_lower24/
-	s/net.ethernet.macAddrUpper24/net.ethernet.mac_addr_upper24/
-	s/net.arpProtoHwId/net.arp_proto_hw_id/
-	
-2003-12-22  David Zeuthen  <david at fubar.dk>
-
-	* hald/linux/linux_usb.c (usb_proc_parse): Allow multiple invocations,
-	specifically one on every hotplug :-)
-	(visit_device_usb_got_parent): Call usb_proc_parse, so we get up-to-
-	date information from proc
-	
-2003-12-22  David Zeuthen  <david at fubar.dk>
-
-	* hald/device_store.c (async_find_check_new_addition): fixed a 
-	quite subtle bug where multiple finds for the same device were
-	out there. I just love bloody callbacks :-/
-
-2003-12-21  David Zeuthen  <david at fubar.dk>
-
-	* examples/volumed/volumed.py: be less verbose
-
-	* hald/linux/linux_osspec (osspec_init): Add match for udev signals
-	(osspec_hotplug): renamed to handle_hotplug since old name didn't make
-	any sense
-	(handle_udev_node_created): new function
-	(handle_udev_node_created_found_device): new function
-	(osspec_filter_function): add check for udev signals
-
-	* tools/linux/hal_hotplug.c (main): sleep a while so the kernel has
-	time to populate sysfs (hmmm)
-	
-2003-12-21  David Zeuthen  <david at fubar.dk>
-
-	* Doxyfile.in: add tools directory
-
-	* hald/device_store.c: fixup doxygen grouping
-
-	* hald/device_store.h: fixup doxygen grouping
-
-	* hald/logger.c: Don't print out trace priority logging statements
-
-	* hald/linux/linux_class_block.c: Add mount point detection by
-	monitoring /etc and looking at /etc/mtab. Several new functions.
-
-	* hald/linux/linux_class_input.c 
-	(linux_class_input_handle_hotplug_add): new function
-
-	* hald/linux/linux*.[ch]: Add _detection_done() method that is called
-	when device detection (on startup of the HAL daemon) is done
-
-	* hald/linux/linux_osspec.c (osspec_init): Call _detection_done
-	(ospec_hotplug): Handle input being hotplugged
-
-	* tools/hal_get_property.c: added doxygen comments
-
-	* tools/hal_set_property.c: added doxygen comments
-
-	* tools/lshal.c: added doxygen comments
-	
-2003-12-21  David Zeuthen  <david at fubar.dk>
-
-	* hald/device_store.c (ds_device_destroy): Only call gdl_changed_cb's
-	if the device being destructed is in the GDL
-
-	* hald/main.c (raise_wrong_state): removed
-	(device_enable): removed
-	(device_disable): removed
-	(filter_function): remove call to device_enable() and device_disable()
-	(gdl_changed): fix really silly bug where added and removed signals
-	were switched
-
-	* hald/linux/linux_common.c (rename_and_maybe_add): since we don't
-	know anything about states, disable functionality for unplugged
-	persistent devices
-
-	* hald/linux/linux_usb.c (visit_device_usb): fixed segfault bug
-	where kernel didn't gave neither vendor nor product name (thanks
-	to testing on my powerbook that now finally runs 2.6.0, Yay!)
-
-	* libhal/libhal.c (hal_device_disable): removed
-	(hal_device_enable): removed
-	(filter_func): don't handle all DeviceBooting etc. signals. Splitted
-	PropertyChanged into PropertyChanged, PropertyAdded, PropertyRemoved
-	callbacks
-	(hal_device_property_watch_all): new function
-	(hal_device_add_property_watch): new function
-	(hal_device_remove_property_watch): new function
-
-	* libhal/libhal.h: Removed all common constants since they were all
-	state contstants. Removed LibHalDeviceBooting etc. typedefs. Added
-	typedefs for PropertyAdded, PropertyRemoved callbacks. Changed type
-	of LibHalFunctions. Added property for property_watch functions.
-
-	* tools/Makefile.am: Added rules to buils lshal, hal_get_property
-	and hal_set_property programs
-
-	* tools/lshal.c: new file
-
-	* tools/hal_get_property.c: new file
-
-	* tools/hal_set_property.c: new file
-
-	* tools/device-manager/DeviceManager.py: Don't reference State
-	property as it is not available anymore
-
-	* tools/linux/Makefile.am: Make sure hal.hotplug links statically,
-	otherwise libdbus-1.so cannot be found unless installed in /usr/lib
-
-	* tools/linux/hal_hotplug.c: Include unistd.h to shut up the compiler
-	
-2003-12-20  David Zeuthen  <david at fubar.dk>
-
-	* Doxyfile.in: Remove agents/linux26/sysfs, Add hald/linux and 
-	tools/linux. Change RECURSIVE to NO.
-
-	* configure.in: Add AM_PATH_PYTHON. Add --with-hwdata option and 
-	search for places normally placed at RedHat and Debian. Require
-	version 0.20 of D-BUS (Martin Waitz).
-	Make USE_MAINTAINER_MODE an AM_CONDITIONAL. Don't check for libpci.
-	Default D-BUS system.d directory to our own prefix. Add --with-hotplug
-	option to specify the hotplug.d directory. Default to /etc/hotplug.d.
-	Add tools/device-manager/Makefile. Print out HWDATA_DIR, 
-	LINUX_HOTPLUG_DIR.
-
-	* hald: All source files, s/LOG_/HAL_/. Fixup Doxygen documentation
-
-	* hald/logger.c: new file
-	
-	* hald/logger.h: change logging macros
-
-	* hald/Makefile.am: add logger.c to SOURCES
-
-	* hald/linux/linux_class_input.c (process_input_proc_info): 
-	Use EV_SYN if EV_RST is not defined
-
-	* tools/Makefile.am: add device-manager to SUBDIRS
-
-	* tools/device-manager/Makefile.am: new file; generates Const.py
-	with correct version and paths. Installs into the python program and
-	data into $(datadir)/hal/device-manager. Links from $(bindir) to the
-	installation location.
-
-	* tools/device-manager/Const.py.in: new file
-
-	* tools/device-manager/Const.py: Removed from CVS; now autogenerated
-	from Const.py.in
-
-	* tools/device-manager/Representation.py: Prefix with Const.DATADIR
-	when loading png files
-
-	* tools/device-manager/DeviceManager.py: Prefix with Const.DATADIR
-	when loading glade file
-
-	* tools/linux/Makefile.am: Move hal.hotplug to libexec from bin.
-	Create symlink in /etc/hotplug.d on install.
-	
-2003-12-15  David Zeuthen  <david at fubar.dk>
-
-	* hald/device_store.c (ds_init): Don't require callback functions
-	(ds_add_cb_newcap): new function
-	(ds_add_cb_property_changed): new function
-	(ds_add_cb_gdl_changed): new function
-	(ds_device_destroy): call all registered callbacks
-	(ds_gdl_add): call all registered callbacks
-	(ds_property_set_string): call all registered callbacks
-	(ds_property_set_int): call all registered callbacks
-	(ds_property_set_bool): call all registered callbacks
-	(ds_property_set_double): call all registered callbacks
-	(ds_property_remove): call all registered callbacks
-	(ds_device_merge): call new capability on target for all capabilities
-	on source
-	(ds_add_capability): call all registered callbacks
-	(ds_query_capability): new function
-
-	* hald/device_store.h: Add new prototypes
-
-	* hald/main.c (main): Register callbacks we used to give to ds_init()
-
-	* hald/linux/linux_class_net (visit_class_device_net): Fixed bug where
-	the net.ethernet capability was set on "Experimental Ethernet" instead
-	on "Ethernet"
-	(mdio_read): new function
-	(link_detection_process): new function
-	(link_detection_timer_handler): new function
-	(link_detection_add): new function
-	(link_detection_remove): new function
-	(new_capability): new function
-	(gdl_changed): new function
-	(linux_class_net_init): Register callbacks for new_capability and 
-	gdl_changed. Add timer for checking link status every second 
-	
-2003-12-14  David Zeuthen  <david at fubar.dk>
-
-	* doc/TODO: New file! Contains a high-level TODO list as a complement
-	to the @todo's embedded in the source code.
-
-	* hald/device_store.c (xstrdup): new function
-	(ds_init): Require a callback to when the GDL changes
-	(async_find_timeout_fn): new function
-	(async_find_check_new_addition): new function
-	(ds_device_async_find_by_key_value_string): new function
-	(ds_device_find_by_key_value_string): new function
-	(ds_device_new): use xstrdup
-	(ds_gdl_add): check for pending async finds; notify about GDL change
-	(ds_device_set_udi): use xstrdup
-	(ds_property_set_string): use xstrdup
-	(ds_property_set_int): use xstrdup
-	(ds_property_set_bool): use xstrdup
-	(ds_property_set_double): use xstrdup
-	(ds_add_capability): new function
-
-	* hald/device_store.h: Add prototypes and required datatypes for
-	public functions added in device_store.c
-
-	* hald/main.c (gdl_changed): new function
-	(main): Call OS specific elements; see hald/linux
-
-	* hald/linux: New directory holding files for device probing and
-	hotplug handling on Linux 2.6.  All the logic from
-	agents/linux26/sysfs is ported over to use the local HAL interface
-	in hald. 
-	It's a major change, but I'm sure it's worth it. It's
-	simply more efficient having a single daemon and, more
-	importantly, it's easier to manage. The monitoring code still
-	needs to be ported over.
-	This is the last major change before 0.2 is released.
-	
-	* hald/Makefile.am: Add sources from linux and linux/libsysfs
-
-	* hald/osspec.h: new file
-
-	* tools/linux/hal_hotplug.c: New simple program for translating a
-	hotplug event into a D-BUS messages
-	
-	* hal.conf: Add interface for listening to D-BUS messages originating
-	from Linux Hotplug
-
-	* Makefile.am: Apply patch from Martin Waitz for smarter installation
-	of D-BUS policy file. Remove reference to agents; add tools to SUBDIRS
-	
-	* configure.in: Remove all agents; add Makefile generation for tools
-	and tools/linux
-	
-2003-12-14  Anders Carlsson  <andersca at gnome.org>
-
-	* configure.in: Fix config message
-
-2003-12-08  David Zeuthen  <david at fubar.dk>
-
-	* agents/linux26/sysfs/hal_monitor.c:
-	(etc_mtab_process_all_block_devices): s/volume./block./
-	(udev_filter_func): new function for filtering D-BUS messages from udev
-	(setup_udev_listener): setup filter for udev messages
-	(hal_monitor_enter): Listen to D-BUS messages
-
-	* agents/linux26/sysfs/main.c:
-	(hal_sysfs_probe): Use global sysfs path
-	(device_hotplug_add): Use global sysfs path
-	(device_hotplug_remove): Use global sysfs path
-	(drivers_collect): Use global sysfs path
-	(mainloop_integration): Save D-BUS connection object for later use
-	(main): Get sysfs mount path once and for all
-
-	* agents/linux26/sysfs/main.h: Add dbus_connection and sysfs_mount_path
-	as extern variables
-
-	* hald/main.c:
-	(device_query_capability): new function
-	(filter_function): add check for Device.QueryCapability
-
-	* libhal/libhal.c: Minor formatting stuff
-
-	* examples/volumed/volumed.py: Crude example of volume manager now
-	that we got udev integration in place. It doesn't really mount anything
-	but prints out when it should mount. You'll need a very recent udev
-	from BitKeeper with D-BUS enabled (got the patch accepted today)
-
-	
-2003-12-06  David Zeuthen  <david at fubar.dk>
-
-	* tools/device-manager/hal-device-manager.glade: Forgot to add file
-	
-2003-12-06  David Zeuthen  <david at fubar.dk>
-
-	* agents/linux26/sysfs/hal_monitor.c (ethmon_mdio_read): new function
-	(ethmon_process): new function
-	(ethmon_timeout): new function
-	(ethmon_add): new function
-	(ethmon_remove): new function
-	(ethernet_process_all_devices): new function
-	(device_added): new function
-	(device_new_capability): new function
-	(device_removed): new function
-	(hal_monitor_enter): Initiate monitoring of link status on ethernet
-	devices
-
-	* agents/linux26/sysfs/hal_net.c (visit_class_device_net): Shuffle
-	the code around so the capability is not set before the properties
-	under the capability namespace
-
-	* agents/linux26/sysfs/main.c: Add device_new_capability in 
-	hal_functions variable
-
-	* agents/linux26/sysfs/main.c: Add device_new_capability so it is
-	visible in other translation units
-
-	* hald/main.c (manager_send_signal_new_capability): new function
-	(device_add_capability): new function
-
-	* libhal/libhal.c (hal_free_string_array): Fixed critical bug
-	(hal_device_add_capability): Use new method on hal daemon instead
-	of local modification
-	(filter_func): Fix bug such that signals DeviceAdded and DeviceRemoved
-	are intercepted on the Manager interface. Add check for NewCapability
-	signal.
-	(main): More precise match rule for intercepting signals
-
-	* libhal/libhal.h: Add NewCapability callback
-
-	* tools/device-manager/DeviceManager.py: Fix a stupid bug where
-	we tried to call a get_current_focus_udi() method that is no more
-
-	
-2003-12-03  David Zeuthen  <david at fubar.dk>
-
-	* agents/linux26/sysfs/hal_net.c (visit_class_device_net): Change
-	mac address to be split into two 24-bit sizes. s/ethernet/net.ethernet/
-
-	* libhal/libhal.c (hal_find_all_devices): Put trailing NULL in result
-	(hal_manager_find_device_string_match): Put trailing NULL in result
-	(hal_find_device_by_capability): Put trailing NULL in result
-
-	* tools/device-manager/hal-device-manager/Representation.y: 
-	Simplify icon selection code
-	
-2003-12-03  David Zeuthen  <david at fubar.dk>
-
-	* tools/device-manager: new directory with tools/hal-device-manager
-	split into many files
-
-	* agents/linux26/sysfs/hal_block.c (visit_device_block): Set
-	Capability and Category properties
-
-	* agents/linux26/sysfs/hal_input.c (get_input_proc_cur_info_obj): new
-	function
-	(process_input_proc_info): Set Capability and Category properties
-
-	* agents/linux26/sysfs/hal_monitor.c
-	(etc_mtab_process_all_block_devices): Set some properties under
-	the volume namespace
-
-	* agents/linux26/sysfs/hal_net.c (visit_class_device_net): Set
-	Capability and Category properties; set MAC address under
-	namespace ethernet for Ethernet net devices
-
-	* agents/linux26/sysfs/hal_pci.c (visit_device_pci): Set
-	Capability and Category properties
-	(pci_add_caps_from_class): new function
-
-	* agents/linux26/sysfs/hal_usb.c (visit_device_usb_interface): Set
-	Capability and Category properties
-	(usb_add_caps_from_class): new function
-
-	* hald/main.c (manager_find_device_by_capability): new function
-	(filter_function): Add call
-
-	* libhal/libhal.c (hal_get_all_devices): Convert from d-bus string
-	array.
-	(hal_manager_find_device_string_match): Convert from d-bus string
-	array.
-	(hal_device_add_capability): new function
-	(hal_device_query_capability): new function
-	(hal_find_device_by_capability): new function
-
-	* libhal/libhal.h: Add prototypes
-
-
-2003-12-01  David Zeuthen  <david at fubar.dk>
-
-	* agents/linux26/sysfs/hal_monitor.c: new file, the /etc/mtab 
-	monitoring code is still a bit cheesy (especially the sleep(1) :-)
-	Someone with more linux-skills will hopefully rewrite it some day!
-
-	* agents/linux26/sysfs/hal_monitor.h: new file
-
-	* agents/linux26/sysfs/hal_usb.c (visit_device_usb): Fixed potential
-	bug for whitespace-strip loop
-
-	* agents/linux26/sysfs/main.c (hal_sysfs_probe): Call 
-	etc_mtab_process_all_block_devices() to inspect /etc/mtab and set
-	correct information for the block devices that is already mounted
-	(main): Add new option --monitor to start in monitoring mode. Right
-	now only /etc/mtab is monitored but network link detection is planned.
-
-	* tools/hal-device-manager: Don't rebuild entire tree if properties
-	on a device is changing but just get the changes from hald and change
-	the internal representation. Helps performance a lot.
-
-
-2003-11-30  David Zeuthen  <david at fubar.dk>
-
-	* agents/linux26/sysfs/hal_net.c: new file
-
-	* agents/linux26/sysfs/hal_net.h: new file
-
-	* agents/linux26/sysfs/hal_input.c: new file
-
-	* agents/linux26/sysfs/hal_input.h: new file
-
-	* agents/linux26/sysfs/Makefile.am: Add net and input to filelist
-
-	* agents/linux26/sysfs/hal_pci.c (visit_device_pci): Set driver
-	property.
-	(hal_pci_init): Collect drivers
-
-	* agents/linux26/sysfs/hal_usb.c (visit_device_usb): Set driver
-	property. Compute and set linux.kernel_devname; the name that
-	the kernel uses to uniquely identify the device
-	(visit_device_usb_interface): Set driver property
-	(hal_usb_init): Collect drivers
-
-	* agents/linux26/sysfs/main.c (find_num): Gracefully handle errors
-	(find_udi_from_sysfs_path): allow max_time_to_try to be zero
-	(find_udi_by_key_value): new function
-	(visit_class_device): support for net class devices
-	(hal_sysfs_probe): support for net class devices
-	(device_hotplug_add): support for input and net class 
-	(device_hotplug_remove): support for input and net class devices
-	(drivers_add_entry): new function
-	(drivers_lookup): new function
-	(drivers_collect): new function
-	(main): support for input and net class devices
-
-	* agents/linux26/sysfs/main.h: Add new prototypes
-
-	* tools/hal-device-manager: Fix a bug that slowed down the app
-	when the devices are changing. Many other changes
-
-	* tools/hal-device-manager.glade: Add menu and gnome-app
-
-	* tools/fdo-logo.png: new (binary) file
-
-
-2003-11-27  David Zeuthen  <david at fubar.dk>
-
-	* libhal/libhal.c (hal_initialized): Fixed stupied error that prevented
-	libhal from compiling
-	
-2003-11-27  David Zeuthen  <david at fubar.dk>
-
-	* agents/linux26/sysfs/hal-sysfs-agent.c: Removed; splitted into
-	multiple files; added scsi, ide and block probing + hotplugging;
-	many many changes..
-
-	* agents/linux26/sysfs/main.c: new file
-
-	* agents/linux26/sysfs/main.h: new file
-
-	* agents/linux26/sysfs/hal_usb.c: new file
-
-	* agents/linux26/sysfs/hal_usb.h: new file
-
-	* agents/linux26/sysfs/hal_pci.c: new file
-
-	* agents/linux26/sysfs/hal_pci.h: new file
-
-	* agents/linux26/sysfs/hal_ide.c: new file
-
-	* agents/linux26/sysfs/hal_ide.h: new file
-
-	* agents/linux26/sysfs/hal_scsi.c: new file
-
-	* agents/linux26/sysfs/hal_scsi.h: new file
-
-	* agents/linux26/sysfs/hal_block.c: new file
-
-	* agents/linux26/sysfs/hal_block.h: new file
-
-	* agents/linux26/sysfs/Makefile.am: Changed to reference new files
-
-	* fdi/10generic/generic-hid-mouse.fdi: remove
-
-	* fdi/10generic/generic-usb-hub.fdi: remove
-
-	* fdi/10generic/usb-classes.fdi: new file
-
-	* hald/device_info.c: Add support for bool in fdi-files
-
-	* libhal/libhal.c: Allow caller to pass NULL in libhal_init()
-	
-	* tools/hal-device-manager: Don't show (most) virtual devices
-	
-2003-11-23  David Zeuthen  <david at fubar.dk>
-
-	* agents/linux26/sysfs/hal-sysfs-agent.c: USB interfaces now have
-	their own device which has the USB device as the parent
-	(usbif_compute_udi): new function
-	(visit_device_usb_interface): create a new independent device for
-	the interface
-
-	* tools/hal-device-manager: Add support for bus usbif
-	
-2003-11-23  David Zeuthen  <david at fubar.dk>
-
-	* agents/linux26/sysfs/hal-sysfs-agent.c:
-	(usb_compute_udi): Make the device configuration entry part of the
-	device udi; use serial number, if available.
-	(find_usb_device_from_interface_sysfs_path): new function
-	(visit_device_usb_interface): Bugfix in white-space stripping
-	(visit_device): Make visit of children optional
-	(device_hotplug_add): Don't visit children when adding devices; handle
-	interfaces seperately. Consequently the interfaces appear later.
-	Added syslog calls.
-	NOTE: Need to wait for enabling an USB device until all interfaces are
-	collected.
-	(device_hotplug_remove): Added syslog calls
-	(main): Moved hotplug call after getopt switch, and handle all sorts
-	of events.
-
-	* tools/hal-device-manager: Call update_device_list() whenever a
-	property changes; this is quite ineffective and should be changed
-	later.
-	
-	
-2003-11-22  David Zeuthen  <david at fubar.dk>
-
-	* COPYING: Updated to mention some source files may be LGPL also
-
-	* Doxyfile: Updated to use doxygen 1.3.4
-
-	* Doxyfile.in: Updated to use doxygen 1.3.4
-
-	* configure.in: Don't build agents/linux/usb/Makefile; we've
-	dropped 2.4 support. Build agents/linux26/sysfs/libsysfs/Makefile
-
-	* agents/Makefile.am: Don't build in agents/linux
-
-	* agents/linux26/sysfs/Makefile.am : Build in libsysfs
-
-	* agents/linux26/sysfs/hal-sysfs-agent.c: Now using sysfsutils 0.3
-	(bus_support_append_device): removed
-	(bus_support_find_bus): removed
-	(visit_device_usb_interface): Don't require device UDI to be
-	given; find it self
-	(visit_device_usb): Don't manually visit USB interfaces
-	(visit_device): Change to recursively visit children in device
-	hierachy
-	(visit_device_tree): removed
-	(visit_root_device): removed
-	(bus_support_collect): removed; not neccesary with sysfsutils 0.3
-	since we can get the bus from there
-
-	* agents/linux26/sysfs/libsysfs: New directory for holding local
-	copy of sysfsutils 0.3.
-
-	* agents/linux26/sysfs/libsysfs/Makefile.am : new file
-
-	* agents/linux26/sysfs/libsysfs/dlist.c : new file
-	
-	* agents/linux26/sysfs/libsysfs/dlist.h : new file
-	
-	* agents/linux26/sysfs/libsysfs/libsysfs.h : new file
-	
-	* agents/linux26/sysfs/libsysfs/sysfs.h : new file
-	
-	* agents/linux26/sysfs/libsysfs/sysfs_bus.c : new file
-	
-	* agents/linux26/sysfs/libsysfs/sysfs_class.c : new file
-	
-	* agents/linux26/sysfs/libsysfs/sysfs_device.c : new file
-	
-	* agents/linux26/sysfs/libsysfs/sysfs_dir.c : new file
-	
-	* agents/linux26/sysfs/libsysfs/sysfs_driver.c : new file
-	
-	* agents/linux26/sysfs/libsysfs/sysfs_utils.c : new file
-	
-	* agents/linux26/sysfs/libsysfs/ : new file
-	
-
-2003-11-22  David Zeuthen  <david at fubar.dk>
-
-	* agents/linux26/sysfs/hal-sysfs-agent.c: Implementing parsing of
-	/proc/bus/usb/devices to merge information currently not present
-	in sysfs. Quite a pain, but it seems to work... Still need some
-	cleanup though	
-	(find_num): new function
-	(find_double): new function
-	(find_bcd2): new function
-	(find_string): new function
-	(usb_proc_find_virtual_hub): new function
-	(usb_proc_find_virtual_hub_child): new function
-	(usb_proc_find_on_hub): new function
-	(usb_proc_handle_topology): new function
-	(usb_proc_handle_device_info): new function
-	(usb_proc_device_done): new function
-	(usb_proc_parse_line): new function
-	(usb_proc_parse): new function
-	(visitor_usb_device): Locate and merge properties from /proc
-	(main): Parse USB stuff from /proc/bus/usb/devices
-
-	* tools/hal-device-manager: Add USB version
-
-	* tools/hal-device-manager.glade: Add USB version
-	
-	
-2003-11-18  David Zeuthen  <david at fubar.dk>
-
-	* agents/linux26/sysfs/hal-sysfs-agent.c: Use usb.ids if
-	available.
-	(find_parent_udi_from_sysfs_path): Sleep if parent device not
-	found on hotplug; Fixes the issue of hotplugging a hub with many
-	devices attached to it
-	(visit_device_usb): Fix segfault when stripping whitespace off empty
-	string. Provide guess for Vendor, Product properties
-	(visit_device_pci): Provide guess for Vendor, Product properties
-
-	* hald/main.c (manager_get_all_devices): Only return devices in the GDL
-	(manager_find_device_string_match): Only match on devices in the GDL
-
-	* libhal/libhal.c: Various documentation clarifications
-
-	* tools/hal-device-manager: Use icons and Vendor, Product properties.
-	Added "Advanced" tab page for showing all properties in a list.
-
-	* tools/hal-device-manager.glade: Added "Advanced" tab page for
-	showing all properties in a list.
-
-	* tools/bus-usb.png: new (binary) file 
-
-	* tools/bus-pci.png: new (binary) file
-
-	* tools/lshal.py: Sort properties
-
-	
-2003-11-16  David Zeuthen  <david at fubar.dk>
-
-	* agents/linux26 : new directory; for Linux 2.6 agents
-
-	* agents/linux26/Makefile.am: new file
-
-	* agents/linux26/sysfs/hal-sysfs-agent.c: new file; inspects sysfs
-	on Linux 2.6 and adds USB, PCI devices found there. Currently works
-	with both --probe and in hotplug situations. Block devices are planned
-	real soon now.
-
-	* agents/linux26/sysfs/Makefile.am: new file
-	
-	* tools/hal-device-manager: Added support for PCI devices
-
-	* tools/hal-device-manager.glade: Added PCI page in device_notebook
-	
-	* libhal/libhal.h: Added hal_manager_find_device_string_match()
-	
-	* libhal/libhal.c (hal_manager_find_device_string_match): new function
-	
-	* hald/main.c (manager_find_device_string_match): new function
-	
-	* configure.in: add agents/linux26/Makefile, agents/linux26/Makefile
-	
-	* Doxyfile.in: add agents/linux26/sysfs
-
-	* Doxyfile: add agents/linux26/sysfs
-
-
-2003-11-15  David Zeuthen  <david at fubar.dk>
-
-	* agents/linux/usb/usb_agent.c (usb_compute_parents): Remove calls
-	to free(); we are causing segfaults because of we are interferring
-	with D-BUS memory management
-	(usb_compute_parent): Remove calls to free(); same reason
-	(usb_probe): Call usb_compute_parents()
-	(usb_hotplug): Remove calls to free(); same as above; compute parents
-	for all USB devices every time a single device is added/removed
-	(main): Sleep for one second before handling hotplug event to allow
-	the kernel to update /proc/bus/usb/devices
-
-	* hald/device_info.h: new file
-
-	* hald/device_info.c: new file
-
-	* hald/Makefile.am: add device_info.[ch]
-
-	* hald/device_store.h: Change signature of
-	HalDevicePropertyChangeCallback with an added parameter to allow
-	the callback handler to see if a device have been added
-
-	* hald/device_store.c: Change to new signature of property_change_cb
-
-	* hald/logger.h: Don't print LOG_TRACE()
-
-	* hald/main.c (device_enable): Call di_search_and_merge() to handle
-	  .fdi files 
-	(agent_manager_commit_to_gdl): Call ds_gdl_add()
-	(filter_func): Don't log entry on every method invocation
-	(property_changed): Implement
-
-	* tools/hal-device-manager: Use Product, Vendor, Category properties to
-	display information, if available. Handle property changed; reloads
-	device tree when a Parent property changes. Subscribe to signals
-	org.freedesktop.Hal.Device interface to catch property changes
-
-	* tools/lshal.py: Listen to property changes on device objects
-
-	* fdi: new directory
-
-	* fdi/10generic: new directory
-
-	* fdi/20freedesktop: new directory
-
-	* fdi/10generic/generic-usb-hub.fdi: new file
-	
-	* fdi/10generic/generic-hid-mouse.fdi: new file
-
-	* fdi/20freedesktop/ibm-usb-hub-keyboard.fdi: new file
-
-	* fdi/20freedesktop/lexar-cf-card-reader.fdi: new file
-
-	
-2003-11-11  David Zeuthen  <david at fubar.dk>
-
-	* Doxyfile: new file, added so we can generate doxygen documentation
-	without having to run autogen.sh
-	
-2003-11-11  David Zeuthen  <david at fubar.dk>
-
-	* tools/hal-device-manager: new file, GUI device manager using PyGTK
-
-	* tools/hal-device-manager.glade: new file
-
-	* agents/linux/usb/Makefile.am: rename program to hal-usb-agent.hotplug
-	so it works with the linux-hotplug event multiplexor
-
-	* agents/linux/usb/usb_agent.c (usb_hotplug): implement
-	(handle_device_info2): drop usb.revisionProduct; use usb.bcdDevice
-	instead
-	(handle_config_desc): set usb.config.%d.isActive property
-	(usb_compute_parent): new function
-	(usb_rename_and_maybe_add): new function
-	(usb_hotplug_get_minimal): new function
-
-	* hald/main.c (manager_send_signal_device_added): new function
-	(manager_send_signal_device_removed): new function
-	(agent_manager_commit_to_gdl): send out signal using above function
-	(agent_manager_remove): send out signal using above function
-	(test): removed
-
-	* libhal/libhal.c (hal_device_print): new function
-
-	* libhal/libhal.h: add prototype for hal_device_print()
-
-	* tools/lshal.py: print device types, reprint device list when
-	receiving D-BUS signals from the HAL daemon
-	
-
-2003-11-09  David Zeuthen  <david at fubar.dk>
-
-	* agents/linux/usb/usb_agent.c (usage): Fixed typo from --remove to
-	--probe. Cosmetic
-	(usb_device_set_parent): New function
-	(usb_compute_parents): New function
-	(usb_probe): Set Parent for devices after probe and filtering/renaming
-
-	* hald/device_store.h: ds_device_destroy now returns void
-
-	* hald/device_store.c (ds_device_destroy): now return void
-
-	* libhal/libhal.c: Tidied up error reporting to be  __FILE__ __LINE__
-
-	* COPYING: New file
-	
-2003-11-08  David Zeuthen  <david at fubar.dk>
-
-	* HACKING: Fixed typo
-	
-2003-11-06  David Zeuthen  <david at fubar.dk>
-
-	* hal.conf: Changed to work with D-BUS head
-	
-2003-11-05  David Zeuthen  <david at fubar.dk>
-
-	* Initial module creation; moved HAL 0.1 out of the way
diff --git a/examples/light_sensors_and_keyboard_backlight.py b/examples/light_sensors_and_keyboard_backlight.py
new file mode 100755
index 0000000..1c402b4
--- /dev/null
+++ b/examples/light_sensors_and_keyboard_backlight.py
@@ -0,0 +1,88 @@
+#!/usr/bin/python
+#
+# Simple program to set the keyboard backlight according to how much
+# light is around. This is a very rough example, real production code
+# needs to poll much less often and probably fade the backlight from
+# 3-4 predefined values instead of jumping around like crazy.
+#
+# Copyright (C) 2006 David Zeuthen <david at fubar.dk>.
+#
+# This program 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 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+
+import dbus
+import sys
+import time
+import os
+
+bus = dbus.Bus(dbus.Bus.TYPE_SYSTEM)
+manager = dbus.Interface(bus.get_object('org.freedesktop.Hal', \
+                                        '/org/freedesktop/Hal/Manager'), \
+                         'org.freedesktop.Hal.Manager')
+light_sensor_udis = manager.FindDeviceByCapability('light_sensor')
+keyboard_backlight_udis = manager.FindDeviceByCapability('keyboard_backlight')
+
+if len(light_sensor_udis) < 1 or len(keyboard_backlight_udis) < 1:
+    print 'Light sensors:       ', light_sensor_udis
+    print 'Keyboard backlights: ', keyboard_backlight_udis
+    print ''
+    print 'This program needs at least one light_sensor and one keyboard_backlight.'
+    sys.exit(1)
+
+light_sensor_num_sensors = dbus.Interface(bus.get_object('org.freedesktop.Hal', \
+                                                         light_sensor_udis[0]), \
+                                          'org.freedesktop.Hal.Device').GetProperty('light_sensor.num_sensors')
+
+keyboard_backlight_num_levels = dbus.Interface(bus.get_object('org.freedesktop.Hal',       \
+                                                              keyboard_backlight_udis[0]), \
+                                             'org.freedesktop.Hal.Device').GetProperty('keyboard_backlight.num_levels')
+
+light_sensor = dbus.Interface(bus.get_object('org.freedesktop.Hal', \
+                                             light_sensor_udis[0]), \
+                              'org.freedesktop.Hal.Device.LightSensor')
+
+keyboard_backlight = dbus.Interface(bus.get_object('org.freedesktop.Hal',       \
+                                                   keyboard_backlight_udis[0]), \
+                                    'org.freedesktop.Hal.Device.KeyboardBacklight')
+
+
+clamp = 0.35
+
+last_val_set = -1;
+
+while 1:
+    try:
+        levels = light_sensor.GetBrightness()
+        sum = 0
+        for l in levels:
+            sum += l
+        val = float(sum / light_sensor_num_sensors) / keyboard_backlight_num_levels
+        if (val > clamp):
+            val_to_set = 0
+        else:
+            val_to_set = (clamp - val) / clamp * (keyboard_backlight_num_levels - 1)
+            if (val_to_set < 0):
+                val_to_set = 0
+            elif val_to_set >= keyboard_backlight_num_levels:
+                val_to_set = keyboard_backlight_num_levels - 1
+            
+        if val_to_set != last_val_set:
+            last_val_set = val_to_set
+            keyboard_backlight.SetBrightness(val_to_set)
+            print 'val_to_set is ', val_to_set
+
+        time.sleep(0.1)
+    except Exception, exception:
+        print exception
diff --git a/tools/hal-storage-cleanup-all-mountpoints.c b/tools/hal-storage-cleanup-all-mountpoints.c
new file mode 100644
index 0000000..aa8d657
--- /dev/null
+++ b/tools/hal-storage-cleanup-all-mountpoints.c
@@ -0,0 +1,180 @@
+/***************************************************************************
+ * CVSID: $Id: hal-storage-mount.c,v 1.7 2006/06/21 00:44:03 david Exp $
+ *
+ * hal-storage-cleanup-all-mountpoints.c : Cleanup all mount points in
+ * /media/.hal-mtab that is currently unused
+ *
+ * Copyright (C) 2006 David Zeuthen, <david at fubar.dk>
+ *
+ * This program 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ **************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib.h>
+#include <glib/gstdio.h>
+
+#include "hal-storage-shared.h"
+
+/*#define DEBUG*/
+#define DEBUG
+
+static void
+usage (void)
+{
+	fprintf (stderr, "This program should only be started by hald.\n");
+	exit (1);
+}
+
+static void
+do_cleanup (void)
+{
+	int i, j;
+	FILE *hal_mtab_orig;
+	int hal_mtab_orig_len;
+	int num_read;
+	char *hal_mtab_buf;
+	char **lines;
+	FILE *hal_mtab_new;
+
+	hal_mtab_orig = fopen ("/media/.hal-mtab", "r");
+	if (hal_mtab_orig == NULL) {
+		unknown_error ("Cannot open /media/.hal-mtab");
+	}
+	if (fseek (hal_mtab_orig, 0L, SEEK_END) != 0) {
+		unknown_error ("Cannot seek to end of /media/.hal-mtab");
+	}
+	hal_mtab_orig_len = ftell (hal_mtab_orig);
+	if (hal_mtab_orig_len < 0) {
+		unknown_error ("Cannot determine size of /media/.hal-mtab");
+	}
+	rewind (hal_mtab_orig);
+	hal_mtab_buf = g_new0 (char, hal_mtab_orig_len + 1);
+	num_read = fread (hal_mtab_buf, 1, hal_mtab_orig_len, hal_mtab_orig);
+	if (num_read != hal_mtab_orig_len) {
+		unknown_error ("Cannot read from /media/.hal-mtab");
+	}
+	fclose (hal_mtab_orig);
+
+#ifdef DEBUG
+	printf ("hal_mtab = '%s'\n", hal_mtab_buf);
+#endif
+
+	lines = g_strsplit (hal_mtab_buf, "\n", 0);
+	g_free (hal_mtab_buf);
+
+	/* find the entry we're going to unmount */
+	for (i = 0; lines[i] != NULL; i++) {
+		char **line_elements;
+
+#ifdef DEBUG
+		printf (" line = '%s'\n", lines[i]);
+#endif
+
+		if ((lines[i])[0] == '#')
+			continue;
+
+		line_elements = g_strsplit (lines[i], "\t", 6);
+		if (g_strv_length (line_elements) == 6) {
+			char *mount_point;
+
+#ifdef DEBUG
+			printf ("  devfile     = '%s'\n", line_elements[0]);
+			printf ("  uid         = '%s'\n", line_elements[1]);
+			printf ("  session id  = '%s'\n", line_elements[2]);
+			printf ("  fs          = '%s'\n", line_elements[3]);
+			printf ("  options     = '%s'\n", line_elements[4]);
+			printf ("  mount_point = '%s'\n", line_elements[5]);
+#endif
+
+			/* just try to rmdir the entry; if it's non-empty or something is mounted on it,
+			 * this will fail 
+			 */
+			mount_point = line_elements[5];
+			
+			/* remove directory */
+			if (g_rmdir (mount_point) == 0) {
+				char *line_to_free;
+
+				printf ("Removed mount_point '%s'", mount_point);
+
+				line_to_free = lines[i];
+				for (j = i; lines[j] != NULL; j++) {
+					lines[j] = lines[j+1];
+				}
+				lines[j] = NULL;
+				g_free (line_to_free);
+
+				/* we've moved the lines one back, so make sure we don't advance to next line */
+				i--;
+			}
+		}
+
+		g_strfreev (line_elements);
+	}
+
+	/* create new .hal-mtab~ file without the entries we've removed */
+	hal_mtab_new = fopen ("/media/.hal-mtab~", "w");
+	if (hal_mtab_new == NULL) {
+		unknown_error ("Cannot create /media/.hal-mtab~");
+	}
+	for (i = 0; lines[i] != NULL; i++) {
+		if (strlen (lines[i]) > 0) {
+			char anewl[2] = "\n\0";
+			if (fwrite (lines[i], 1, strlen (lines[i]), hal_mtab_new) != strlen (lines[i])) {
+				unknown_error ("Cannot write to /media/.hal-mtab~");
+			}
+			if (fwrite (anewl, 1, 1, hal_mtab_new) != 1) {
+				unknown_error ("Cannot write to /media/.hal-mtab~");
+			}
+		}
+	}
+	fclose (hal_mtab_new);
+
+	g_strfreev (lines);
+
+	/* set new .hal-mtab file */
+	if (rename ("/media/.hal-mtab~", "/media/.hal-mtab") != 0) {
+		unlink ("/media/.hal-mtab~");
+		unknown_error ("Cannot rename /media/.hal-mtab~ to /media/.hal-mtab");
+	}
+}
+
+int
+main (int argc, char *argv[])
+{
+	if (!lock_hal_mtab ()) {
+		unknown_error ("Cannot obtain lock on /media/.hal-mtab");
+	}
+
+	if (getenv ("HAL_PROP_INFO_UDI") == NULL)
+		usage ();
+
+#ifdef DEBUG
+	printf ("in hal-storage-cleanup-all-mountpoints\n");
+#endif
+	do_cleanup ();
+
+
+	unlock_hal_mtab ();
+	return 0;
+}
diff --git a/tools/hal-storage-cleanup-mountpoint.c b/tools/hal-storage-cleanup-mountpoint.c
new file mode 100644
index 0000000..f4973a8
--- /dev/null
+++ b/tools/hal-storage-cleanup-mountpoint.c
@@ -0,0 +1,192 @@
+/***************************************************************************
+ * CVSID: $Id: hal-storage-mount.c,v 1.7 2006/06/21 00:44:03 david Exp $
+ *
+ * hal-storage-cleanup-mountpoint.c : Cleanup mount point when hald detects
+ * that an unmount not done through Unmount()
+ *
+ * Copyright (C) 2006 David Zeuthen, <david at fubar.dk>
+ *
+ * This program 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ **************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib.h>
+#include <glib/gstdio.h>
+
+#include "hal-storage-shared.h"
+
+/*#define DEBUG*/
+#define DEBUG
+
+static void
+usage (void)
+{
+	fprintf (stderr, "This program should only be started by hald.\n");
+	exit (1);
+}
+
+static void
+do_cleanup (const char *mount_point)
+{
+	int i, j;
+	FILE *hal_mtab_orig;
+	int hal_mtab_orig_len;
+	int num_read;
+	char *hal_mtab_buf;
+	char **lines;
+	FILE *hal_mtab_new;
+	gboolean found;
+
+	hal_mtab_orig = fopen ("/media/.hal-mtab", "r");
+	if (hal_mtab_orig == NULL) {
+		unknown_error ("Cannot open /media/.hal-mtab");
+	}
+	if (fseek (hal_mtab_orig, 0L, SEEK_END) != 0) {
+		unknown_error ("Cannot seek to end of /media/.hal-mtab");
+	}
+	hal_mtab_orig_len = ftell (hal_mtab_orig);
+	if (hal_mtab_orig_len < 0) {
+		unknown_error ("Cannot determine size of /media/.hal-mtab");
+	}
+	rewind (hal_mtab_orig);
+	hal_mtab_buf = g_new0 (char, hal_mtab_orig_len + 1);
+	num_read = fread (hal_mtab_buf, 1, hal_mtab_orig_len, hal_mtab_orig);
+	if (num_read != hal_mtab_orig_len) {
+		unknown_error ("Cannot read from /media/.hal-mtab");
+	}
+	fclose (hal_mtab_orig);
+
+#ifdef DEBUG
+	printf ("hal_mtab = '%s'\n", hal_mtab_buf);
+#endif
+
+	lines = g_strsplit (hal_mtab_buf, "\n", 0);
+	g_free (hal_mtab_buf);
+
+	/* find the entry we're going to unmount */
+	found = FALSE;
+	for (i = 0; lines[i] != NULL && !found; i++) {
+		char **line_elements;
+
+#ifdef DEBUG
+		printf (" line = '%s'\n", lines[i]);
+#endif
+
+		if ((lines[i])[0] == '#')
+			continue;
+
+		line_elements = g_strsplit (lines[i], "\t", 6);
+		if (g_strv_length (line_elements) == 6) {
+
+#ifdef DEBUG
+			printf ("  devfile     = '%s'\n", line_elements[0]);
+			printf ("  uid         = '%s'\n", line_elements[1]);
+			printf ("  session id  = '%s'\n", line_elements[2]);
+			printf ("  fs          = '%s'\n", line_elements[3]);
+			printf ("  options     = '%s'\n", line_elements[4]);
+			printf ("  mount_point = '%s'\n", line_elements[5]);
+#endif
+
+			if (strcmp (line_elements[5], mount_point) == 0) {
+				char *line_to_free;
+
+				found = TRUE;
+
+				line_to_free = lines[i];
+				for (j = i; lines[j] != NULL; j++) {
+					lines[j] = lines[j+1];
+				}
+				lines[j] = NULL;
+				g_free (line_to_free);
+			}
+		}
+
+		g_strfreev (line_elements);
+	}
+
+	if (!found) {
+		unknown_error ("mount point is not /media/.hal-mtab");
+	}
+
+#ifdef DEBUG
+	printf ("Found entry for mount point '%s' in /media/.hal-mtab", mount_point);
+#endif
+
+	/* create new .hal-mtab~ file without the entry we're going to unmount */
+	hal_mtab_new = fopen ("/media/.hal-mtab~", "w");
+	if (hal_mtab_new == NULL) {
+		unknown_error ("Cannot create /media/.hal-mtab~");
+	}
+	for (i = 0; lines[i] != NULL; i++) {
+		if (i > 0) {
+			char anewl[2] = "\n\0";
+			if (fwrite (anewl, 1, 1, hal_mtab_new) != 1) {
+				unknown_error ("Cannot write to /media/.hal-mtab~");
+			}
+		}
+
+		if (fwrite (lines[i], 1, strlen (lines[i]), hal_mtab_new) != strlen (lines[i])) {
+			unknown_error ("Cannot write to /media/.hal-mtab~");
+		}
+
+	}
+	fclose (hal_mtab_new);
+
+	g_strfreev (lines);
+
+	/* remove directory */
+	if (g_rmdir (mount_point) != 0) {
+		unlink ("/media/.hal-mtab~");
+		unknown_error ("Cannot remove directory");
+	}
+
+	/* set new .hal-mtab file */
+	if (rename ("/media/.hal-mtab~", "/media/.hal-mtab") != 0) {
+		unlink ("/media/.hal-mtab~");
+		unknown_error ("Cannot rename /media/.hal-mtab~ to /media/.hal-mtab");
+	}
+
+}
+
+int
+main (int argc, char *argv[])
+{
+	char *mount_point;
+
+	if (!lock_hal_mtab ()) {
+		unknown_error ("Cannot obtain lock on /media/.hal-mtab");
+	}
+
+	mount_point = getenv ("HALD_CLEANUP");
+	if (mount_point == NULL)
+		usage ();
+
+#ifdef DEBUG
+	printf ("in hal-storage-cleanup-mountpoint for mount point '%s'\n", mount_point);
+#endif
+	do_cleanup (mount_point);
+
+
+	unlock_hal_mtab ();
+	return 0;
+}
diff --git a/tools/hal-storage-eject.c b/tools/hal-storage-eject.c
new file mode 100644
index 0000000..e7163d6
--- /dev/null
+++ b/tools/hal-storage-eject.c
@@ -0,0 +1,303 @@
+/***************************************************************************
+ * CVSID: $Id: hal-storage-mount.c,v 1.7 2006/06/21 00:44:03 david Exp $
+ *
+ * hal-storage-mount.c : Mount wrapper
+ *
+ * Copyright (C) 2006 David Zeuthen, <david at fubar.dk>
+ *
+ * This program 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ **************************************************************************/
+
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib.h>
+#include <glib/gstdio.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <libhal/libhal.h>
+#include <libhal-storage/libhal-storage.h>
+#include <libpolkit.h>
+
+#include "hal-storage-shared.h"
+
+static void
+usage (void)
+{
+	fprintf (stderr, "This program should only be started by hald.\n");
+	exit (1);
+}
+
+
+static void
+invalid_eject_option (const char *option, const char *uid)
+{
+	fprintf (stderr, "org.freedesktop.Hal.Device.Volume.InvalidEjectOption\n");
+	fprintf (stderr, "The option '%s' is not allowed for uid=%s\n", option, uid);
+	exit (1);
+}
+
+#ifdef __FreeBSD__
+#error Need FreeBSD specific changes here
+#endif
+
+#define EJECT "/usr/bin/eject"
+
+static void
+handle_eject (LibHalContext *hal_ctx, LibPolKitContext *pol_ctx, const char *udi,
+	      LibHalDrive *drive, const char *device, 
+	      const char *invoked_by_uid, const char *invoked_by_syscon_name)
+{
+	GError *err = NULL;
+	char *sout = NULL;
+	char *serr = NULL;
+	int exit_status;
+	char *args[10];
+	int na;
+
+	/* TODO: should we require privileges here? */
+
+#ifdef DEBUG
+	printf ("device                           = %s\n", device);
+	printf ("invoked by uid                   = %s\n", invoked_by_uid);
+	printf ("invoked by system bus connection = %s\n", invoked_by_syscon_name);
+#endif
+
+	/* construct arguments to EJECT (e.g. /usr/bin/eject) */
+	na = 0;
+	args[na++] = EJECT;
+	args[na++] = (char *) device;
+	args[na++] = NULL;
+
+#ifdef DEBUG
+	printf ("will eject %s\n", device);
+#endif
+
+	/* invoke /bin/umount */
+	if (!g_spawn_sync ("/",
+			   args,
+			   NULL,
+			   0,
+			   NULL,
+			   NULL,
+			   &sout,
+			   &serr,
+			   &exit_status,
+			   &err)) {
+		printf ("Cannot execute %s\n", EJECT);
+		unknown_error ("Cannot spawn " EJECT);
+	}
+
+	/* check if eject was succesful */
+	if (exit_status != 0) {
+		printf ("%s error %d, stdout='%s', stderr='%s'\n", EJECT, exit_status, sout, serr);
+
+		unknown_error (serr);
+	}
+
+	/* eject was succesful... */
+
+#ifdef DEBUG
+	printf ("done ejecting\n");
+#endif
+
+	g_free (sout);
+	g_free (serr);
+}
+
+
+int
+main (int argc, char *argv[])
+{
+	char *udi;
+	char *device;
+	LibHalVolume *volume;
+	DBusError error;
+	LibHalContext *hal_ctx = NULL;
+	DBusConnection *system_bus = NULL;
+	LibPolKitContext *pol_ctx = NULL;
+	char *invoked_by_uid;
+	char *invoked_by_syscon_name;
+	char **volume_udis;
+	int num_volumes;
+	int i;
+	char eject_options[1024];
+	char **given_options;
+	const char *end;
+
+	device = getenv ("HAL_PROP_BLOCK_DEVICE");
+	if (device == NULL)
+		usage ();
+
+	udi = getenv ("HAL_PROP_INFO_UDI");
+	if (udi == NULL)
+		usage ();
+
+	invoked_by_uid = getenv ("HAL_METHOD_INVOKED_BY_UID");
+
+	invoked_by_syscon_name = getenv ("HAL_METHOD_INVOKED_BY_SYSTEMBUS_CONNECTION_NAME");
+
+	dbus_error_init (&error);
+	if ((hal_ctx = libhal_ctx_init_direct (&error)) == NULL) {
+		printf ("Cannot connect to hald\n");
+		usage ();
+	}
+
+	dbus_error_init (&error);
+	system_bus = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
+	if (system_bus == NULL) {
+		printf ("Cannot connect to the system bus\n");
+		usage ();
+	}
+	pol_ctx = libpolkit_new_context (system_bus);
+	if (pol_ctx == NULL) {
+		printf ("Cannot get libpolkit context\n");
+		unknown_error ("Cannot get libpolkit context");
+	}
+
+	/* read from stdin */
+	fgets (eject_options, sizeof (eject_options), stdin);
+	if (strlen (eject_options) > 0)
+		eject_options [strlen (eject_options) - 1] = '\0';
+	/* validate that input from stdin is UTF-8 */
+	if (!g_utf8_validate (eject_options, -1, &end))
+		unknown_error ("Error validating eject_options as UTF-8");
+#ifdef DEBUG
+	printf ("eject_options  = '%s'\n", eject_options);
+#endif
+
+	/* delete any trailing whitespace options from splitting the string */
+	given_options = g_strsplit (eject_options, "\t", 0);
+	for (i = g_strv_length (given_options) - 1; i >= 0; --i) {
+		if (strlen (given_options[i]) > 0)
+			break;
+		given_options[i] = NULL;
+	}
+
+	/* check eject options */
+	for (i = 0; given_options[i] != NULL; i++) {
+		char *given = given_options[i];
+
+		/* none supported right now */
+
+		invalid_eject_option (given, invoked_by_uid);
+	}
+	g_strfreev (given_options);
+
+
+	volume = libhal_volume_from_udi (hal_ctx, udi);
+	if (volume == NULL) {
+		LibHalDrive *drive;
+
+#ifdef DEBUG
+		printf ("eject called on drive %s\n", udi);
+#endif
+
+		drive = libhal_drive_from_udi (hal_ctx, udi);
+		if (drive == NULL) {
+			usage ();
+		} else {
+
+			/* TODO: should try to unmount? */
+
+			/* attempt the eject */
+			handle_eject (hal_ctx, pol_ctx, 
+				      libhal_drive_get_udi (drive),
+				      drive,
+				      libhal_drive_get_device_file (drive),
+				      invoked_by_uid, 
+				      invoked_by_syscon_name);
+		}
+
+	} else {
+		const char *drive_udi;
+		LibHalDrive *drive;
+
+		/* first, unmount all volumes */
+
+		drive_udi = libhal_volume_get_storage_device_udi (volume);
+		
+		if (drive_udi == NULL)
+			unknown_error ("Cannot get drive_udi from volume");
+		drive = libhal_drive_from_udi (hal_ctx, drive_udi);
+		if (drive == NULL)
+			unknown_error ("Cannot get drive from hal");
+
+
+		volume_udis = libhal_drive_find_all_volumes (hal_ctx, drive, &num_volumes);
+		if (volume_udis == NULL)
+			unknown_error ("Cannot get all enclosed volumes");
+		for (i = 0; i < num_volumes; i++) {
+			char *volume_udi;
+			LibHalVolume *volume_to_unmount;
+
+			volume_udi = volume_udis[i];
+			
+#ifdef DEBUG
+			printf ("processing drive's volume %s (%d of %d)\n", volume_udi, i + 1, num_volumes);
+#endif
+			volume_to_unmount = libhal_volume_from_udi (hal_ctx, volume_udi);
+			if (volume_to_unmount == NULL) {
+				unknown_error ("Cannot get volume object");
+			}
+
+			if (libhal_volume_is_mounted (volume_to_unmount)) {
+#ifdef DEBUG
+				printf (" unmounting\n");
+#endif
+				/* only lock around unmount call because hald's /proc/mounts handler
+				 * will also want to lock the /media/.hal-mtab-lock file for peeking
+				 */
+				if (!lock_hal_mtab ()) {
+					unknown_error ("Cannot obtain lock on /media/.hal-mtab");
+				}
+				handle_unmount (hal_ctx, pol_ctx, udi, volume_to_unmount, drive, 
+						libhal_volume_get_device_file (volume_to_unmount), 
+						invoked_by_uid, invoked_by_syscon_name,
+						FALSE, FALSE); /* use neither lazy nor force */
+				unlock_hal_mtab ();
+			} else {
+#ifdef DEBUG
+				printf (" not mounted\n");
+#endif
+			}
+
+			libhal_volume_free (volume_to_unmount);
+
+		}
+		libhal_free_string_array (volume_udis);
+
+		/* now attempt the eject */
+		handle_eject (hal_ctx, pol_ctx, 
+			      libhal_drive_get_udi (drive),
+			      drive,
+			      libhal_drive_get_device_file (drive),
+			      invoked_by_uid, 
+			      invoked_by_syscon_name);
+
+	}
+
+
+	return 0;
+}
+
+
diff --git a/tools/hal-storage-shared.c b/tools/hal-storage-shared.c
new file mode 100644
index 0000000..c49c106
--- /dev/null
+++ b/tools/hal-storage-shared.c
@@ -0,0 +1,481 @@
+/***************************************************************************
+ * CVSID: $Id: hal-storage-mount.c,v 1.7 2006/06/21 00:44:03 david Exp $
+ *
+ * hal-storage-mount.c : Mount wrapper
+ *
+ * Copyright (C) 2006 David Zeuthen, <david at fubar.dk>
+ *
+ * This program 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ **************************************************************************/
+
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib.h>
+#include <glib/gstdio.h>
+#ifdef __FreeBSD__
+#include <fstab.h>
+#include <sys/param.h>
+#include <sys/ucred.h>
+#include <sys/mount.h>
+#include <limits.h>
+#include <pwd.h>
+#else
+#include <mntent.h>
+#endif
+#include <sys/types.h>
+#include <unistd.h>
+#include <sys/file.h>
+#include <errno.h>
+#include <syslog.h>
+
+#include "hal-storage-shared.h"
+
+#ifdef __FreeBSD__
+struct mtab_handle
+{
+  struct statfs	*mounts;
+  int		n_mounts;
+  int		iter;
+};
+#endif
+
+
+gboolean
+mtab_open (gpointer *handle)
+{
+#ifdef __FreeBSD__
+	struct mtab_handle *mtab;
+
+	mtab = g_new0 (struct mtab_handle, 1);
+	mtab->n_mounts = getmntinfo (&mtab->mounts, MNT_NOWAIT);
+	if (mtab->n_mounts == 0) {
+		g_free (mtab);
+		return FALSE;
+	}
+
+	*handle = mtab;
+	return TRUE;
+#else
+	*handle = fopen ("/proc/mounts", "r");
+	return *handle != NULL;
+#endif
+}
+
+char *
+mtab_next (gpointer handle)
+{
+#ifdef __FreeBSD__
+	struct mtab_handle *mtab = handle;
+
+	if (mtab->iter < mtab->n_mounts)
+		return mtab->mounts[mtab->iter++].f_mntfromname;
+	else
+		return NULL;
+#else
+	struct mntent *mnt;
+
+	mnt = getmntent (handle);
+
+	return mnt ? mnt->mnt_fsname : NULL;
+#endif
+}
+
+void
+mtab_close (gpointer handle)
+{
+#ifdef __FreeBSD__
+	g_free (handle);
+#else
+	fclose (handle);
+#endif
+}
+
+
+
+gboolean
+fstab_open (gpointer *handle)
+{
+#ifdef __FreeBSD__
+	return setfsent () == 1;
+#else
+	*handle = fopen ("/etc/fstab", "r");
+	return *handle != NULL;
+#endif
+}
+
+char *
+fstab_next (gpointer handle, char **mount_point)
+{
+#ifdef __FreeBSD__
+	struct fstab *fstab;
+
+	fstab = getfsent ();
+
+	/* TODO: fill out mount_point */
+	if (mount_point != NULL && fstab != NULL) {
+		*mount_point = fstab->fs_file;
+	}
+
+	return fstab ? fstab->fs_spec : NULL;
+#else
+	struct mntent *mnt;
+
+	mnt = getmntent (handle);
+
+	if (mount_point != NULL && mnt != NULL) {
+		*mount_point = mnt->mnt_dir;
+	}
+
+	return mnt ? mnt->mnt_fsname : NULL;
+#endif
+}
+
+void
+fstab_close (gpointer handle)
+{
+#ifdef __FreeBSD__
+	endfsent ();
+#else
+	fclose (handle);
+#endif
+}
+
+#ifdef __FreeBSD__
+#define UMOUNT		"/sbin/umount"
+#else
+#define UMOUNT		"/bin/umount"
+#endif
+
+void
+unknown_error (const char *detail)
+{
+	fprintf (stderr, "org.freedesktop.Hal.Device.Volume.UnknownFailure\n");
+	fprintf (stderr, "%s\n", detail);
+	exit (1);
+}
+
+
+static void
+device_busy (const char *detail)
+{
+	fprintf (stderr, "org.freedesktop.Hal.Device.Volume.Busy\n");
+	fprintf (stderr, "%s\n", detail);
+	exit (1);
+}
+
+
+static void
+not_mounted (const char *detail)
+{
+	fprintf (stderr, "org.freedesktop.Hal.Device.Volume.NotMounted\n");
+	fprintf (stderr, "%s\n", detail);
+	exit (1);
+}
+
+
+static void
+not_mounted_by_hal (const char *detail)
+{
+	fprintf (stderr, "org.freedesktop.Hal.Device.Volume.NotMountedByHal\n");
+	fprintf (stderr, "%s\n", detail);
+	exit (1);
+}
+
+static void
+permission_denied_privilege (const char *privilege, const char *uid)
+{
+	fprintf (stderr, "org.freedesktop.Hal.Device.PermissionDeniedByPolicy\n");
+	fprintf (stderr, "%s refused uid %s\n", privilege, uid);
+	exit (1);
+}
+
+static void
+permission_denied_volume_ignore (const char *device)
+{
+	fprintf (stderr, "org.freedesktop.Hal.Device.Volume.PermissionDenied\n");
+	fprintf (stderr, "Device has %s volume.ignore set to TRUE. Refusing to mount.\n", device);
+	exit (1);
+}
+
+void
+handle_unmount (LibHalContext *hal_ctx, LibPolKitContext *pol_ctx, const char *udi,
+		LibHalVolume *volume, LibHalDrive *drive, const char *device, 
+		const char *invoked_by_uid, const char *invoked_by_syscon_name,
+		gboolean option_lazy, gboolean option_force)
+{
+	int i, j;
+	DBusError error;
+	GError *err = NULL;
+	char *sout = NULL;
+	char *serr = NULL;
+	int exit_status;
+	char *args[10];
+	int na;
+	FILE *hal_mtab_orig;
+	int hal_mtab_orig_len;
+	int num_read;
+	char *hal_mtab_buf;
+	char **lines;
+	char *mount_point_to_unmount;
+	gboolean mounted_by_other_uid;
+	FILE *hal_mtab_new;
+
+#ifdef DEBUG
+	printf ("device                           = %s\n", device);
+	printf ("invoked by uid                   = %s\n", invoked_by_uid);
+	printf ("invoked by system bus connection = %s\n", invoked_by_syscon_name);
+#endif
+
+	if (volume != NULL) {
+		dbus_error_init (&error);
+		if (libhal_device_get_property_bool (hal_ctx, udi, "volume.ignore", &error) || 
+		    dbus_error_is_set (&error)) {
+			permission_denied_volume_ignore (device);
+		}
+
+		if (!libhal_volume_is_mounted (volume)) {
+			not_mounted ("According to HAL, the volume is not mounted");
+		}
+	}
+
+
+	/* check hal's mtab file to verify the device to unmount is actually mounted by hal */
+	hal_mtab_orig = fopen ("/media/.hal-mtab", "r");
+	if (hal_mtab_orig == NULL) {
+		unknown_error ("Cannot open /media/.hal-mtab");
+	}
+	if (fseek (hal_mtab_orig, 0L, SEEK_END) != 0) {
+		unknown_error ("Cannot seek to end of /media/.hal-mtab");
+	}
+	hal_mtab_orig_len = ftell (hal_mtab_orig);
+	if (hal_mtab_orig_len < 0) {
+		unknown_error ("Cannot determine size of /media/.hal-mtab");
+	}
+	rewind (hal_mtab_orig);
+	hal_mtab_buf = g_new0 (char, hal_mtab_orig_len + 1);
+	num_read = fread (hal_mtab_buf, 1, hal_mtab_orig_len, hal_mtab_orig);
+	if (num_read != hal_mtab_orig_len) {
+		unknown_error ("Cannot read from /media/.hal-mtab");
+	}
+	fclose (hal_mtab_orig);
+
+#ifdef DEBUG
+	printf ("hal_mtab = '%s'\n", hal_mtab_buf);
+#endif
+
+	lines = g_strsplit (hal_mtab_buf, "\n", 0);
+	g_free (hal_mtab_buf);
+
+	mount_point_to_unmount = NULL;
+	mounted_by_other_uid = TRUE;
+
+	/* find the entry we're going to unmount */
+	for (i = 0; lines[i] != NULL; i++) {
+		char **line_elements;
+
+#ifdef DEBUG
+		printf (" line = '%s'\n", lines[i]);
+#endif
+
+		if ((lines[i])[0] == '#')
+			continue;
+
+		line_elements = g_strsplit (lines[i], "\t", 6);
+		if (g_strv_length (line_elements) == 6) {
+
+#ifdef DEBUG
+			printf ("  devfile     = '%s'\n", line_elements[0]);
+			printf ("  uid         = '%s'\n", line_elements[1]);
+			printf ("  session id  = '%s'\n", line_elements[2]);
+			printf ("  fs          = '%s'\n", line_elements[3]);
+			printf ("  options     = '%s'\n", line_elements[4]);
+			printf ("  mount_point = '%s'\n", line_elements[5]);
+#endif
+
+			if (strcmp (line_elements[0], device) == 0) {
+				char *line_to_free;
+
+				if (strcmp (line_elements[1], invoked_by_uid) == 0)
+					mounted_by_other_uid = FALSE;
+
+				mount_point_to_unmount = g_strdup (line_elements[5]);
+
+				line_to_free = lines[i];
+
+				for (j = i; lines[j] != NULL; j++) {
+					lines[j] = lines[j+1];
+				}
+				lines[j] = NULL;
+
+				g_free (line_to_free);
+
+				g_strfreev (line_elements);
+				goto line_found;
+
+			}
+
+		}
+
+		g_strfreev (line_elements);
+	}
+line_found:
+
+	if (mount_point_to_unmount == NULL) {
+		not_mounted_by_hal ("Device to unmount is not in /media/.hal-mtab so it is not mounted by HAL");
+	}
+
+	/* bail out, unless if we got the "hal-storage-can-unmount-volumes-mounted-by-others" privilege only
+	 * if mounted_by_other_uid==TRUE 
+	 *
+	 * We allow uid 0 to actually ensure that Unmount(options=["lazy"], "/dev/blah") works from addon-storage.
+	 */
+	if ((strcmp (invoked_by_uid, "0") != 0) && mounted_by_other_uid) {
+		/* TODO: actually check for privilege "hal-storage-can-unmount-volumes-mounted-by-others" */
+		permission_denied_privilege ("hal-storage-can-unmount-volumes-mounted-by-others", invoked_by_uid);
+	}
+
+	/* create new .hal-mtab~ file without the entry we're going to unmount */
+	hal_mtab_new = fopen ("/media/.hal-mtab~", "w");
+	if (hal_mtab_new == NULL) {
+		unknown_error ("Cannot create /media/.hal-mtab~");
+	}
+	for (i = 0; lines[i] != NULL; i++) {
+		if (i > 0) {
+			char anewl[2] = "\n\0";
+			if (fwrite (anewl, 1, 1, hal_mtab_new) != 1) {
+				unknown_error ("Cannot write to /media/.hal-mtab~");
+			}
+		}
+
+		if (fwrite (lines[i], 1, strlen (lines[i]), hal_mtab_new) != strlen (lines[i])) {
+			unknown_error ("Cannot write to /media/.hal-mtab~");
+		}
+
+	}
+	fclose (hal_mtab_new);
+
+	g_strfreev (lines);
+
+	/* construct arguments to /bin/umount */
+	na = 0;
+	args[na++] = UMOUNT;
+	if (option_lazy)
+		args[na++] = "-l";
+	if (option_force)
+		args[na++] = "-f";
+	args[na++] = (char *) device;
+	args[na++] = NULL;
+
+#ifdef DEBUG
+	printf ("will umount %s (mounted at '%s'), mounted_by_other_uid=%d\n", 
+		device, mount_point_to_unmount, mounted_by_other_uid);
+#endif
+
+	/* invoke /bin/umount */
+	if (!g_spawn_sync ("/",
+			   args,
+			   NULL,
+			   0,
+			   NULL,
+			   NULL,
+			   &sout,
+			   &serr,
+			   &exit_status,
+			   &err)) {
+		printf ("Cannot execute %s\n", UMOUNT);
+		unlink ("/media/.hal-mtab~");
+		unknown_error ("Cannot spawn " UMOUNT);
+	}
+
+	/* check if unmount was succesful */
+	if (exit_status != 0) {
+		printf ("%s error %d, stdout='%s', stderr='%s'\n", UMOUNT, exit_status, sout, serr);
+
+		if (strstr (serr, "device is busy") != NULL) {
+			unlink ("/media/.hal-mtab~");
+			device_busy (serr);
+		} else {
+			unlink ("/media/.hal-mtab~");
+			unknown_error (serr);
+		}
+	}
+
+	/* unmount was succesful, remove directory we created in Mount() */
+	if (g_rmdir (mount_point_to_unmount) != 0) {
+		unlink ("/media/.hal-mtab~");
+		unknown_error ("Cannot remove directory");
+	}
+
+	/* set new .hal-mtab file */
+	if (rename ("/media/.hal-mtab~", "/media/.hal-mtab") != 0) {
+		unlink ("/media/.hal-mtab~");
+		unknown_error ("Cannot rename /media/.hal-mtab~ to /media/.hal-mtab");
+	}
+
+#ifdef DEBUG
+	printf ("done unmounting\n");
+#endif
+	openlog ("hald", 0, LOG_DAEMON);
+	syslog (LOG_INFO, "unmounted %s from '%s' on behalf of uid %s", device, mount_point_to_unmount, invoked_by_uid);
+	closelog ();
+
+	g_free (sout);
+	g_free (serr);
+	g_free (mount_point_to_unmount);
+}
+
+static int lock_mtab_fd = -1;
+
+gboolean
+lock_hal_mtab (void)
+{
+	if (lock_mtab_fd >= 0)
+		return TRUE;
+
+	printf ("%d: XYA attempting to get lock on /media/.hal-mtab-lock\n", getpid ());
+
+	lock_mtab_fd = open ("/media/.hal-mtab-lock", O_CREAT);
+
+	if (lock_mtab_fd < 0)
+		return FALSE;
+
+tryagain:
+	if (flock (lock_mtab_fd, LOCK_EX) != 0) {
+		if (errno == EINTR)
+			goto tryagain;
+		return FALSE;
+	}
+
+	printf ("%d: XYA got lock on /media/.hal-mtab-lock\n", getpid ());
+
+
+	return TRUE;
+}
+
+void 
+unlock_hal_mtab (void)
+{
+	flock (lock_mtab_fd, LOCK_UN);
+	close (lock_mtab_fd);
+	lock_mtab_fd = -1;
+	printf ("%d: XYA released lock on /media/.hal-mtab-lock\n", getpid ());
+}
diff --git a/tools/hal-storage-shared.h b/tools/hal-storage-shared.h
new file mode 100644
index 0000000..b952251
--- /dev/null
+++ b/tools/hal-storage-shared.h
@@ -0,0 +1,54 @@
+/***************************************************************************
+ * CVSID: $Id: hal-storage-mount.c,v 1.7 2006/06/21 00:44:03 david Exp $
+ *
+ * hal-storage-mount.c : Mount wrapper
+ *
+ * Copyright (C) 2006 David Zeuthen, <david at fubar.dk>
+ *
+ * This program 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ **************************************************************************/
+
+#ifndef HAL_STORAGE_SHARED_H
+#define HAL_STORAGE_SHARED_H
+
+#include <libhal/libhal.h>
+#include <libhal-storage/libhal-storage.h>
+#include <libpolkit.h>
+
+/*#define DEBUG*/
+#define DEBUG
+
+gboolean mtab_open (gpointer *handle);
+char *mtab_next (gpointer handle);
+void mtab_close (gpointer handle);
+
+gboolean fstab_open (gpointer *handle);
+char *fstab_next (gpointer handle, char **mount_point);
+void fstab_close (gpointer handle);
+
+gboolean lock_hal_mtab (void);
+void unlock_hal_mtab (void);
+
+void unknown_error (const char *detail);
+
+void handle_unmount (LibHalContext *hal_ctx, LibPolKitContext *pol_ctx, const char *udi,
+		     LibHalVolume *volume, LibHalDrive *drive, const char *device, 
+		     const char *invoked_by_uid, const char *invoked_by_syscon_name,
+		     gboolean option_lazy, gboolean option_force);
+
+
+#endif /* HAL_STORAGE_SHARED_H */
+
diff --git a/tools/hal-storage-unmount.c b/tools/hal-storage-unmount.c
new file mode 100644
index 0000000..5af680a
--- /dev/null
+++ b/tools/hal-storage-unmount.c
@@ -0,0 +1,191 @@
+/***************************************************************************
+ * CVSID: $Id$
+ *
+ * hal-storage-unmount.c : Unmount wrapper
+ *
+ * Copyright (C) 2006 David Zeuthen, <david at fubar.dk>
+ *
+ * This program 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ **************************************************************************/
+
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib.h>
+#include <glib/gstdio.h>
+#ifdef __FreeBSD__
+#include <fstab.h>
+#include <sys/param.h>
+#include <sys/ucred.h>
+#include <sys/mount.h>
+#include <limits.h>
+#include <pwd.h>
+#else
+#include <mntent.h>
+#endif
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <libhal/libhal.h>
+#include <libhal-storage/libhal-storage.h>
+#include <libpolkit.h>
+
+#include "hal-storage-shared.h"
+
+
+static void
+usage (void)
+{
+	fprintf (stderr, "This program should only be started by hald.\n");
+	exit (1);
+}
+
+static void
+invalid_unmount_option (const char *option, const char *uid)
+{
+	fprintf (stderr, "org.freedesktop.Hal.Device.Volume.InvalidUnmountOption\n");
+	fprintf (stderr, "The option '%s' is not allowed for uid=%s\n", option, uid);
+	exit (1);
+}
+
+int
+main (int argc, char *argv[])
+{
+	char *udi;
+	char *device;
+	LibHalVolume *volume;
+	DBusError error;
+	LibHalContext *hal_ctx = NULL;
+	DBusConnection *system_bus = NULL;
+	LibPolKitContext *pol_ctx = NULL;
+	char *invoked_by_uid;
+	char *invoked_by_syscon_name;
+	int i;
+	char unmount_options[1024];
+	char **given_options;
+	gboolean use_lazy;
+	gboolean use_force;
+	const char *end;
+
+	if (!lock_hal_mtab ()) {
+		unknown_error ("Cannot obtain lock on /media/.hal-mtab");
+	}
+
+	device = getenv ("HAL_PROP_BLOCK_DEVICE");
+	if (device == NULL)
+		usage ();
+
+	udi = getenv ("HAL_PROP_INFO_UDI");
+	if (udi == NULL)
+		usage ();
+
+	invoked_by_uid = getenv ("HAL_METHOD_INVOKED_BY_UID");
+
+	invoked_by_syscon_name = getenv ("HAL_METHOD_INVOKED_BY_SYSTEMBUS_CONNECTION_NAME");
+
+	dbus_error_init (&error);
+	if ((hal_ctx = libhal_ctx_init_direct (&error)) == NULL) {
+		printf ("Cannot connect to hald\n");
+		usage ();
+	}
+
+	dbus_error_init (&error);
+	system_bus = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
+	if (system_bus == NULL) {
+		printf ("Cannot connect to the system bus\n");
+		usage ();
+	}
+	pol_ctx = libpolkit_new_context (system_bus);
+	if (pol_ctx == NULL) {
+		printf ("Cannot get libpolkit context\n");
+		unknown_error ("Cannot get libpolkit context");
+	}
+
+	/* read from stdin */
+	fgets (unmount_options, sizeof (unmount_options), stdin);
+	if (strlen (unmount_options) > 0)
+		unmount_options [strlen (unmount_options) - 1] = '\0';
+	/* validate that input from stdin is UTF-8 */
+	if (!g_utf8_validate (unmount_options, -1, &end))
+		unknown_error ("Error validating unmount_options as UTF-8");
+#ifdef DEBUG
+	printf ("unmount_options  = '%s'\n", unmount_options);
+#endif
+
+	/* delete any trailing whitespace options from splitting the string */
+	given_options = g_strsplit (unmount_options, "\t", 0);
+	for (i = g_strv_length (given_options) - 1; i >= 0; --i) {
+		if (strlen (given_options[i]) > 0)
+			break;
+		given_options[i] = NULL;
+	}
+	
+	use_lazy = FALSE;
+	use_force = FALSE;
+
+	/* check unmount options */
+	for (i = 0; given_options[i] != NULL; i++) {
+		char *given = given_options[i];
+
+		if (strcmp (given, "lazy") == 0) {
+			use_lazy = TRUE;
+		} else if (strcmp (given, "force") == 0) {
+			use_force = TRUE;
+		} else {
+			invalid_unmount_option (given, invoked_by_uid);
+		}
+	}
+	g_strfreev (given_options);
+
+
+	volume = libhal_volume_from_udi (hal_ctx, udi);
+	if (volume == NULL) {
+		LibHalDrive *drive;
+
+		drive = libhal_drive_from_udi (hal_ctx, udi);
+		if (drive == NULL) {
+			usage ();
+		} else {
+			handle_unmount (hal_ctx, pol_ctx, udi, NULL, drive, device, invoked_by_uid, 
+					invoked_by_syscon_name, use_lazy, use_force);
+		}
+
+	} else {
+		const char *drive_udi;
+		LibHalDrive *drive;
+
+		drive_udi = libhal_volume_get_storage_device_udi (volume);
+		
+		if (drive_udi == NULL)
+			unknown_error ("Cannot get drive_udi from volume");
+		drive = libhal_drive_from_udi (hal_ctx, drive_udi);
+		if (drive == NULL)
+			unknown_error ("Cannot get drive from hal");
+
+		handle_unmount (hal_ctx, pol_ctx, udi, volume, drive, device, invoked_by_uid, 
+				invoked_by_syscon_name, use_lazy, use_force);
+
+	}
+
+	unlock_hal_mtab ();
+
+	return 0;
+}
diff --git a/tools/hal-system-storage-cleanup-mountpoint b/tools/hal-system-storage-cleanup-mountpoint
deleted file mode 100755
index 00cd118..0000000
--- a/tools/hal-system-storage-cleanup-mountpoint
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-# Copyright (C) 2006, David Zeuthen <davidz at redhat.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2.
-
-if [ -z "$HALD_CLEANUP" ]; then
-    echo "org.freedesktop.Hal.Device.UnknownError" >&2
-    echo Specify directory to clean up with the environment variable HALD_CLEANUP
-    exit 1
-fi
-
-# check if we created it
-if [ ! -e "$HALD_CLEANUP/.created-by-hal" ]; then
-    exit 1
-fi
-
-rm -f "$HALD_CLEANUP/.created-by-hal"
-rmdir "$HALD_CLEANUP" 2>/dev/null || true
-
diff --git a/tools/hal-system-storage-cleanup-mountpoints b/tools/hal-system-storage-cleanup-mountpoints
deleted file mode 100755
index fae1e82..0000000
--- a/tools/hal-system-storage-cleanup-mountpoints
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-# Copyright (C) 2005, Kay Sievers <kay.sievers at vrfy.org>
-# Copyright (C) 2006, David Zeuthen <davidz at redhat.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2.
-
-
-if [ -n "$HALD_UNAME_S" -a -x ./$HALD_UNAME_S/hal-system-storage-cleanup-mountpoints-$HALD_UNAME_S ]; then
-    exec ./$HALD_UNAME_S/hal-system-storage-cleanup-mountpoints-$HALD_UNAME_S $@
-else
-    echo "org.freedesktop.Hal.Device.UnknownError" >&2
-    echo "No back-end for your operating system" >&2
-    exit 1
-fi
diff --git a/tools/hal-system-storage-eject b/tools/hal-system-storage-eject
deleted file mode 100755
index 4f9c376..0000000
--- a/tools/hal-system-storage-eject
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-
-# Copyright (C) 2005, Kay Sievers <kay.sievers at vrfy.org>
-# Copyright (C) 2006, David Zeuthen <david at fubar.dk>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2.
-#
-# Check for environment variables
-if [ -z "$HAL_PROP_BLOCK_DEVICE" ] || [ -z "$HAL_PROP_INFO_UDI" ] ; then
-    echo "org.freedesktop.Hal.Device.UnknownError" >&2
-    echo "Missing or empty environment variable(s)." >&2
-    echo "This script should be started by hald." >&2
-    exit 1
-fi
-
-if [ "$HAL_METHOD_INVOKED_BY_UID" != "0" ]; then
-    if [ -n "$HAL_PROP_INFO_HAL_MOUNT_CREATED_MOUNT_POINT" ]; then
-	if [ "$HAL_METHOD_INVOKED_BY_UID" != "$HAL_PROP_INFO_HAL_MOUNT_MOUNTED_BY_UID" ]; then
-	    echo "org.freedesktop.Hal.Device.Volume.PermissionDenied" >&2
-	    echo "Volume mounted by uid $HAL_PROP_INFO_HAL_MOUNT_MOUNTED_BY_UID cannot be ejected by uid $HAL_METHOD_INVOKED_BY_UID." >&2
-	    exit 1
-	fi
-    fi
-fi
-
-# TODO: need to select storage-[fixed|removable][-change-uid]
-#POLICY=hal-storage-fixed-mount
-#if [ "$HAL_METHOD_INVOKED_BY_UID" != "0" ] ; then
-#    RESULT=$(polkit-is-privileged --privilege $POLICY --user $HAL_METHOD_INVOKED_BY_UID 2>&1)
-#    IS_PRIVILEGED=$?
-#    if [ "$IS_PRIVILEGED" != "0" ] ; then
-#	echo org.freedesktop.Hal.Device.PermissionDeniedByPolicy >&2
-#	echo $POLICY refused uid $HAL_METHOD_INVOKED_BY_UID >&2
-#	exit 1
-#    fi
-#fi
-
-if [ -n "$HALD_UNAME_S" -a -x ./$HALD_UNAME_S/hal-system-storage-eject-$HALD_UNAME_S ]; then
-    exec ./$HALD_UNAME_S/hal-system-storage-eject-$HALD_UNAME_S $@
-else
-    echo "org.freedesktop.Hal.Device.UnknownError" >&2
-    echo "No back-end for your operating system" >&2
-    exit 1
-fi
diff --git a/tools/hal-system-storage-unmount b/tools/hal-system-storage-unmount
deleted file mode 100755
index 7bd4985..0000000
--- a/tools/hal-system-storage-unmount
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/sh
-
-# Copyright (C) 2005, Kay Sievers <kay.sievers at vrfy.org>
-# Copyright (C) 2006, David Zeuthen <david at fubar.dk>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2.
-
-# Check for environment variables
-if [ -z "$HAL_PROP_BLOCK_DEVICE" ] || [ -z "$HAL_PROP_INFO_UDI" ] ; then
-    echo "org.freedesktop.Hal.Device.UnknownError" >&2
-    echo "Missing or empty environment variable(s)." >&2
-    echo "This script should be started by hald." >&2
-    exit 1
-fi
-
-MOUNT_POINT="$HAL_PROP_INFO_HAL_MOUNT_CREATED_MOUNT_POINT"
-if [ -z "$MOUNT_POINT" ]; then
-    MOUNT_POINT="$HAL_PROP_VOLUME_MOUNT_POINT"
-    if [ -z "$MOUNT_POINT" ]; then
-	echo "org.freedesktop.Hal.Device.Volume.NotMounted" >&2
-	echo "Cannot figure out where device is mounted." >&2
-	exit 1
-    fi
-fi
-
-if [ "$HAL_PROP_STORAGE_MEDIA_CHECK_ENABLED" != "false" ]; then
-    if [ "$HAL_PROP_VOLUME_IS_MOUNTED" != "true" ]; then
-	echo "org.freedesktop.Hal.Device.Volume.NotMounted" >&2
-	echo "Device is not mounted." >&2
-	exit 1
-    fi
-fi
-
-if [ "$HAL_METHOD_INVOKED_BY_UID" != "0" ]; then
-    if [ "$HAL_METHOD_INVOKED_BY_UID" != "$HAL_PROP_INFO_HAL_MOUNT_MOUNTED_BY_UID" ]; then
-	UID_MOUNTED="$HAL_PROP_INFO_HAL_MOUNT_MOUNTED_BY_UID"
-	if [ -z "$UID_MOUNTED" ]; then
-	    UID_MOUNTED="UNKNOWN"
-	fi
-	echo "org.freedesktop.Hal.Device.Volume.PermissionDenied" >&2
-	echo "Volume mounted by uid $UID_MOUNTED cannot be unmounted by uid $HAL_METHOD_INVOKED_BY_UID." >&2
-	exit 1
-    fi
-fi
-
-# TODO: need to select storage-[fixed|removable][-change-uid]
-#POLICY=hal-storage-fixed-mount
-#if [ "$HAL_METHOD_INVOKED_BY_UID" != "0" ] ; then
-#    RESULT=$(polkit-is-privileged --privilege $POLICY --user $HAL_METHOD_INVOKED_BY_UID 2>&1)
-#    IS_PRIVILEGED=$?
-#    if [ "$IS_PRIVILEGED" != "0" ] ; then
-#	echo org.freedesktop.Hal.Device.PermissionDeniedByPolicy >&2
-#	echo $POLICY refused uid $HAL_METHOD_INVOKED_BY_UID >&2
-#	exit 1
-#    fi
-#fi
-
-export MOUNT_POINT
-
-if [ -n "$HALD_UNAME_S" -a -x ./$HALD_UNAME_S/hal-system-storage-unmount-$HALD_UNAME_S ]; then
-    exec ./$HALD_UNAME_S/hal-system-storage-unmount-$HALD_UNAME_S $@
-else
-    echo "org.freedesktop.Hal.Device.UnknownError" >&2
-    echo "No back-end for your operating system" >&2
-    exit 1
-fi



More information about the hal-commit mailing list