2005-01-24  David Zeuthen  <davidz@redhat.com>

	* NEWS: Update for 0.4.7

	* configure.in: Bump to 0.4.7

2005-01-24  David Zeuthen  <davidz@redhat.com>

	* libhal-storage/libhal-storage.c (mopts_collect): Remove debugging
	fprintf's

2005-01-24  David Zeuthen  <davidz@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@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-24  David Zeuthen  <davidz@redhat.com>

	* tools/device-manager/Const.py.in: hdm throws a nice exception
	when info.bus == "ieee1394", can be easily solved by adding it to
	BUS_NAMES. Done in attached patch. From Sjoerd Simons
	<sjoerd@luon.net>.

2005-01-24  David Zeuthen  <davidz@redhat.com>

	* hald/linux/usb_bus_device.c (usb_device_pre_process): cur->len
	may be zero so don't look at sysfs attributes in that case. From
	Antti Andreimann <antti.andreimann@mail.ee>; RH bug 145921.

	* hald/linux/ieee1394_host_class_device.c:
	(ieee1394_host_class_pre_process): Same fix

	* hald/linux/ieee1394_node_class_device.c:
	(ieee1394_node_class_pre_process): Same fix

	* hald/linux/ieee1394_class_device.c:
	(ieee1394_class_pre_process): Same fix

	* hald/linux/usbif_bus_device.c (usbif_device_pre_process): Same fix

	* hald/linux/pci_bus_device.c (pci_device_pre_process): Same fix

2005-01-21  David Zeuthen  <davidz@redhat.com>

	* hald/linux/usb_bus_device.c (usb_device_pre_process): Interface
	class is in hexadecimal, not decimal. Reported by Paul Ionescu
	<i_p_a_u_l@yahoo.com>.

2005-01-21  David Zeuthen  <davidz@redhat.com>

	* tools/fstab-sync.c (remove_udi): Check for return value to
	avoid dereferencing a NULL pointer

	* hald/linux/block_class_device.c (block_class_pre_process): Only
	do drive_id real SCSI since doing an INQUIRY on USB devices may
	crash the device if the transfer length is not exactly 36 bytes.

	* hald/linux/libsysfs/sysfs.h: Remove the #define DEBUG symbol
	again

	* hald/Makefile.am (hald_SOURCES): Add linux/pcmcia_bus_device.c

	* hald/linux/pcmcia_bus_device.c: New file

	* hald/linux/osspec.c: Add support for 16-bit PCMCIA in sysfs;
	without this hald won't work for 16-bit PCMCIA cards and a 
	kernel with sysfs support for those.

2005-01-20  David Zeuthen  <davidz@redhat.com>

	* NEWS: Update for 0.4.6

	* configure.in: Bump to 0.4.6

2005-01-20  David Zeuthen  <davidz@redhat.com>

	* hald/linux/libsysfs/sysfs_dir.c (sysfs_close_attribute): Add
	stopgap fix to not free unallocated memory. This is a *workaround*
	to not make hald crash on some PPC hardware. Reported by Joseph
	E. Sacco, Ph.D. <joseph_sacco@comcast.net> who helped test this.

	* fdi/90defaultpolicy/storage-policy.fdi: Add mount option 
	iocharset=utf8 for vfat volumes

2005-01-20  David Zeuthen  <davidz@redhat.com>

	* hald/linux/libsysfs: Update libsysfs to upstream version 1.2.0

2005-01-17  David Zeuthen  <davidz@redhat.com>

	* hald/linux/net_class_device.c (mii_get_rate): Add debug statements
	to see if we enter this function
	(mii_get_link): Add debug statements to see if we enter
	(link_detection_handle_message): Assume link is always 100Mbps
	if built with --enable-sysfs-carrier.
	(net_class_pre_process): If built with --enable-sysfs-carrier
	use sysfs file to check link and assume 100Mbps for speed if
	there is a link

	* configure.in: Add new --enable-sysfs-carrier option for using
	the carrier file in sysfs to determine whether there is link for
	networking devices. Right now this will always set the speed to
	100Mbps until there is a link (until the Linux kernel exports
	this in sysfs also). Requires Linux 2.6.10 or later. Disabled
	by default; hald now only uses mii registers if this is disabled.

2005-01-17  Kay Sievers  <kay.sievers@vrfy.org>

	* hald/linux/volume_id/volume_id.c: (probe_vfat): Thanks to
	Schupp Roderich for fixing a off-by-one error and the suggestion
	to skip FAT long names while searching for the label.

2005-01-17  Kay Sievers  <kay.sievers@vrfy.org>

	* hald/linux/volume_id/volume_id.c: (probe_vfat): Skip NTFS
	signed volumes. Accept directory volume label entry only if the
	entry has no cluster associated.

2005-01-12  David Zeuthen  <davidz@redhat.com>

	* NEWS: Update for 0.4.5

	* configure.in: Bump to 0.4.5

2005-01-12  David Zeuthen  <davidz@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@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-12  Kay Sievers  <kay.sievers@vrfy.org>

	* hald/linux/volume_id/volume_id.c: (probe_iso9660): Patch from
	Leon Breedt <bitserf@gmail.com> which fixes a bug with the recently
	added joliet descriptor reading. Bug discovery and initial fix from
	foser <foser@gentoo.org>.
	* hald/linux/volume_id/volume_id.h: Next version.

2005-01-11  David Zeuthen  <davidz@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@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-10  Kay Sievers  <kay.sievers@vrfy.org>

	* hald/linux/volume_id/volume_id.c:
	(get_buffer): Fail if the requested size can not be read.
	(probe_vfat): Fix volume label attribute recognition.
	(probe_iso9660): Switch bool to int.
	(probe_swap): Add label/uuid support. My swap has now a name. :)

	* hald/linux/volume_id/volume_id.h: Bump version.

2005-01-07  David Zeuthen  <davidz@redhat.com>

	* fdi/20freedesktop/ide-drives.fdi: Also check IDE floppies for whether
	they are Zip drives

2005-01-07  Joe Shaw  <joeshaw@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  <david@fubar.dk>

	* configure.in: Bump to 0.4.4

	* NEWS: Update with list changes between releases

2005-01-06  David Zeuthen  <davidz@redhat.com>

	* hald/linux/volume_id/volume_id.c (probe_iso9660): Patch from
	Leon Breedt <bitserf@gmail.com>. Signed off by Kay Sievers
	<kay.sievers@vrfy.org>. It seems Joliet stores the volume label in
	something called a Supplementary Volume Descriptor (located some
	where after the Primary Volume Descriptor). This has largely the
	same format as a PVD, and the volume_id field of this descriptor
	contains the UTF-16 (Big Endian) encoded volume ID. I've created a
	patch that uses this instead if present, and it works for me. As
	in, the names in lshal and hal-device-manager are correctly
	displayed.

2005-01-06  David Zeuthen  <davidz@redhat.com>

	* hald/linux/osspec.c (add_device): Patch from Sjoerd Simons
	<sjoerd@luon.net>. Hal doesn't handle the case that
	recover_net_device fails, causing a nice segv. Fixed in attached
	patch.

2005-01-06  David Zeuthen  <davidz@redhat.com>

	* libhal/libhal.c (hal_device_query_capability): Patch from Tim
	Mller <t.i.m@zen.co.uk>. The attached patch fixes a small memory
	leak in libhal's hal_device_query_capability().

2005-01-06  David Zeuthen  <davidz@redhat.com>

	* hald/linux/net_class_device.c (net_class_pre_process): Add some
	fairly ugly code for checking in /proc/net/wireless whether an
	interface is wireless since the 2.6.10 kernel appears not put the
	wireless/ directory in sysfs anymore. Sigh.

	* hald/linux/block_class_device.c (block_class_pre_process): Allow
	probing of drive_id and for fstype on IDE devices that doesn't
	use removable media

2005-01-03  David Zeuthen  <davidz@redhat.com>

	* configure.in: Bump to 0.4.3

2005-01-03  David Zeuthen  <davidz@redhat.com>

	* configure.in: Added it to ALL_LINGUAS

	* po/it.po: Italien translation from Pier Luigi Fiorini
	<pierluigi.fiorini@mockup.org>
	
2005-01-03  David Zeuthen  <davidz@redhat.com>

	* hald/linux/net_class_device.c (mii_get_link, mii_get_rate): Allocate
	the struct ifreq on the stack and reserve plenty of space; to work
	around a crasher with the sk98lin driver. RH #142183

2005-01-03  David Zeuthen  <davidz@redhat.com>

	* hald/linux/block_class_device.c (detect_media): hald contains a
	file descriptor leak that makes normal users unable to eject audio
	CDs and other CDs/DVDs that does not contain normal filesystems.
	Problem identified and fixed by Peter sterlund, originally posted
	on LKML.

2004-12-31  David Zeuthen  <davidz@redhat.com>

	* hald/linux/block_class_device.c (etc_mtab_process_line): Several
	characters in mountpoints in /etc/mtab are encoded in octal form
	(space, tab, newline etc). Current hal uses that directly which
	confuses several other tools in the stack. Attached patch puts it
	back in plain text again. Patch from Sjoerd Simons <sjoerd@luon.net>.


2004-12-15  David Zeuthen  <davidz@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

2004-12-10  David Zeuthen  <davidz@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@redhat.com>

	* tools/fstab-sync.c (fs_table_line_is_mounted): Patch from Sjoerd
	Simons <sjoerd@luon.net>.  Running fclose on some random memory
	will crash the program. Fixed in attached patch.

2004-12-08  David Zeuthen  <davidz@redhat.com>

	* hald/linux/block_class_device.c (detect_media): Patch from
	Martin Pitt <martin@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@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@redhat.com>

	* hald/hald_dbus.c (device_query_capability): Fix crasher; reported by
	leon breedt <bitserf@gmail.com>.

2004-12-06  David Zeuthen  <davidz@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@piware.de> and also RH bug #141771.

2004-12-01  David Zeuthen  <davidz@redhat.com>

	* configure.in: Bump to 0.4.2

2004-11-30  David Zeuthen  <davidz@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@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@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@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@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@redhat.com>

	* tools/device-manager/hal-device-manager.glade: Patch from Sjoerd
	Simons <sjoerd@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@redhat.com>

	* tools/device-manager/DeviceManager.py: 
	Patch from Bryan Clark <bclark@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@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@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@redhat.com>

	* fdi/90defaultpolicy/storage-policy.fdi: Allow SCSI optical drives
	and correct typo in 'sync' (was 'async').
	
2004-10-29  David Zeuthen  <davidz@redhat.com>

	* hald/linux/pcmcia_utils.c (pcmcia_socket_open): Refine socket
	location order to work better with SELinux. From Dan Walsh
	<dwalsh@redhat.com>

2004-10-27  David Zeuthen  <davidz@redhat.com>

	Patch from Tim Mller <t.i.m@zen.co.uk>

	* configure.in: Require libcap development packages by checking for
	sys/capability.h

2004-10-26  David Zeuthen  <davidz@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@redhat.com>

	Patch from Dan Williams <dcbw@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@redhat.com>

	* fdi/90defaultpolicy/storage-policy.fdi: Allow fstype 'auto' for 
	optical drives instead of 'iso9660,udf'

2004-10-25  David Zeuthen  <davidz@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@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@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@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@redhat.com>

2004-10-19  David Zeuthen  <davidz@redhat.com>

	* configure.in: Added pt to ALL_LINGUAS

	* po/pt.po: Portuguese translations from Pedro Morais <morais@kde.org>

2004-10-19  David Zeuthen  <davidz@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@redhat.com>

	* configure.in: Added ru and hu to ALL_LINGUAS

	* po/ru.po: Russian translations from Leonid Kanter (leon@bcl.bz)

	* po/hu.po: Hungarian translations Laszlo Dvornik <dvornik@gnome.hu>

2004-10-18  David Zeuthen  <davidz@redhat.com>

	* tools/fstab-sync.8.in: Fixup some typos and clarify how .fdi files
	are processed

2004-10-18  David Zeuthen  <davidz@redhat.com>

	* tools/fstab-sync.c (main): Fix crasher when no options are given

2004-10-18  David Zeuthen  <davidz@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@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@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@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@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@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@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@redhat.com>

	* configure.in: Bump to version 0.4.0 - Hurray

2004-10-14  David Zeuthen  <davidz@redhat.com>

	* fdi/90defaultpolicy/storage-policy.fdi: Use pamconsole option 
	instead of user.

2004-10-14  David Zeuthen  <davidz@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@redhat.com>

	Patch from Martin Pitt <martin@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@0Bits.COM>.

2004-10-14  David Zeuthen  <davidz@redhat.com>

	Patch from Sjoerd Simons <sjoerd@luon.net>.

	* hald/Makefile.am: Add -lm to hald_LDADD so it actually compiles
	on my debian system :)

2004-10-14  David Zeuthen  <davidz@redhat.com>

	Patch from Sjoerd Simons <sjoerd@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@redhat.com>

	Patch from Sjoerd Simons <sjoerd@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@redhat.com>

	Patch from Sjoerd Simons <sjoerd@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@redhat.com>

	Patch from Steve Grubb (linux_4ever@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@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@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@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@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@fubar.dk>

	* hald/linux/platform_bus_device.c (platform_device_accept): Check that
	the floppy drive actually exists. Code snippet from Bill Nottingham
	<notting@redhat.com>, see Red Hat bug 133777.

2004-10-08  David Zeuthen  <david@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@luon.net>.

2004-10-08  David Zeuthen  <david@fubar.dk>

	* configure.in: look for BLKGETSIZE64 to be provided. From
	Jonathan Blandford  <jrb@gnome.org>

2004-10-08  David Zeuthen  <david@fubar.dk>

	* libhal-storage/libhal-storage.h (LIBHAL_STORAGE_H): Only use one
	underscore, not two. Reported by Jrme Lodewyck
	<lodewyck@clipper.ens.fr>.

2004-10-07  David Zeuthen  <david@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@fubar.dk>

	* hald/linux/osspec.c (hald_helper_data): New handling of hotplug
	events with SEQNUM < LAST_SEQNUM. Idea from Sjoerd Simons 
	<sjoerd@luon.net>.

2004-10-06  David Zeuthen  <david@fubar.dk>

	Patch from Martin Pitt <martin.pitt@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@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@redhat.com>

2004-09-29  David Zeuthen  <david@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@piware.de>.

2004-09-29  David Zeuthen  <david@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@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@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@fubar.dk>

	* configure.in: Added nl to ALL_LINGUAS

	* po/nl.po: Dutch translations from Reinout van 
	Schouwen <reinout@cs.vu.nl>

2004-09-27  David Zeuthen  <david@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@fubar.dk>

	Patch from Sjoerd Simons <sjoerd@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@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@redhat.com>

2004-09-27  Kay Sievers  <kay.sievers@vrfy.org>

	* hald/linux/volume_id/volume_id.c: (probe_vfat): Fix
	typo in FAT uuid conversion.

2004-09-26  Kay Sievers  <kay.sievers@vrfy.org>

	* hald/linux/volume_id/volume_id.c: (probe_vfat): Fix
	end of directory marker recognition.

2004-09-25  David Zeuthen  <david@fubar.dk>

	* configure.in: Added fr to ALL_LINGUAS

	* po/fr.op: Added french translations from Jrme Lodewyck 
	<lodewyck@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@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@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@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@fubar.dk>

	* po/ChangeLog: New file

2004-09-24  David Zeuthen  <david@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@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@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@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@fubar.dk>

	Patch from Martin Pitt <martin.pitt@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@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@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@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@fubar.dk>

	* configure.in: Bump version to 0.2.98

2004-09-20  David Zeuthen  <david@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@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@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@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@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@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@fubar.dk>

	Patch from Sjoerd Simons <sjoerd@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@fubar.dk>

	Patch from Alexander Larsson <alexl@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@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@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@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@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@fubar.dk>

	Patch from Steve Grubb <linux_4ever@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@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@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@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@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@vrfy.org>

	Patch from: Sjoerd Simons <sjoerd@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@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@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@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@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@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@fubar.dk>

	* hal.conf.in: Fixup this file as it was broken. Reported by 
	Kay Sievers <kay.sievers@vrfy.org>.

2004-09-12  Kay Sievers  <kay.sievers@vrfy.org>

	* hald/linux/volume_id/volume_id.c: (probe_vfat): Patch from
	  Sjoerd Simons <sjoerd@luon.net> to fix vfat label reading
	  on big endian systems

2004-09-07  David Zeuthen  <david@fubar.dk>

	* hald/linux/osspec.c (hald_helper_hotplug_process_queue): Check
	for duplicate events and ignore them

2004-09-07  David Zeuthen  <david@fubar.dk>

	Patch from Sjoerd Simons <sjoerd@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@fubar.dk>

	Patch from Martin Pitt <martin@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@fubar.dk>

	Patch from Martin Pitt <martin@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@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@fubar.dk>

	Patch from Jon Lech Johansen <jon@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@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@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@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@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@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@fubar.dk>

	* tools/fstab-sync.c (clean): Call restore_selinux_context if we
	have selinux

2004-08-31  David Zeuthen  <david@fubar.dk>

	* hald/Makefile.am (hald_SOURCES): Also add volume_id_logging.h so
	distribution tarballs work

2004-08-30  Kay Sievers  <kay.sievers@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@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@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@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@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@vrfy.org>.

2004-08-29  David Zeuthen  <david@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@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@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@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@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@fubar.dk>

	* AUTHORS: Add Kay Sievers <kay.sievers@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@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@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@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@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@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@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@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@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@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@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@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@fubar.dk>

	* hald/hald.c (main): Move daemonazation back to beginning (fixes
	fdo bug #1165) for now

2004-08-23  David Zeuthen  <david@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@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@vrfy.org>

	* hald/linux/volume_id/volume_id.c:
	(probe_msdos_part_table),
	(volume_id_probe): Patch from Sjoerd Simons <sjoerd@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@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@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@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@yahoo.com>. Added some configuration options
	for fstab-sync.
	
2004-08-19 Kay Sievers <kay.sievers@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@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@fubar.dk>

	* configure.in: Patch from Tim Gerla <tim@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@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@fubar.dk>

	* configure.in: Bump to 0.2.97

2004-08-16  David Zeuthen  <david@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@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@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@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@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@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@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@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@vrfy.org>. Change 'reiser' to 'reiserfs' because
	the that's the name on Linux.
	
2004-08-11  Ray Strode  <rstrode@redhat.com>

	* tools/fstab-sync.c: don't require callout wrapper shell
	script.

2004-08-09  David Zeuthen  <david@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@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@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@fubar.dk>

	* doc/spec/hal-spec.xml.in: Work in progress

2004-08-04  David Zeuthen  <david@fubar.dk>

	Patch from Dan Williams <dcbw@redhat.com>
	
	* libhal/libhal.c (filter_func): fix small memory leaks when
	LibHalFunctions are missing

2004-08-04  David Zeuthen  <david@fubar.dk>

	* doc/spec/hal-spec.xml.in: Work in progress

2004-08-03  David Zeuthen  <david@fubar.dk>

	* doc/spec/hal-spec.xml.in: Work in progress

2004-08-03  David Zeuthen  <david@fubar.dk>

	* doc/spec/examply-manager.py: New file

	* doc/spec/hal-spec.xml.in: Work in progress

2004-08-02  David Zeuthen  <david@fubar.dk>

	* tools/device-manager/DeviceManager.py (DeviceManager.gdl_changed): 
	Upgrade to latest D-BUS python API

2004-08-02  David Zeuthen  <david@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@redhat.com>. 

2004-08-02  David Zeuthen  <david@fubar.dk>

	Patch from Dan Williams <dcbw@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@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@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@fubar.dk>

	Patch from Kay Sievers <kay.sievers@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@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@fubar.dk>

	Patch from Kay Sievers <kay.sievers@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@novell.com>

	Patch from Dan Williams <dcbw@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@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@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@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@fubar.dk>

	Patch from Kay Sievers <kay.sievers@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@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@fubar.dk>

	* libhal/libhal.[ch]: s/namespace/property_namespace/ to not break
	using libhal from C++. Pointed out by Simone Gotti 
	<simone.gotti@email.it>

2004-07-29  David Zeuthen  <david@fubar.dk>

	Patch from Kay Sievers <kay.sievers@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@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@novell.com>

	* Makefile.am: Also dist HACKING.
	
2004-07-22  David Zeuthen  <david@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@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@fubar.dk>

	Patch from Kay Sievers <kay.sievers@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@fubar.dk>

	* libhal/libhal.[ch]: Fixup documentation so doxygen no longer
	complains

2004-07-22  David Zeuthen  <david@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@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@novell.com>

	* tools/fstab-sync.c: #include "libhal/libhal.h" to fix the build
	for me.

2004-07-21  David Zeuthen  <david@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@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@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@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@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@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@fubar.dk>

	* doc/TODO: Added a few items, 'UTF8 support' and 'Dependencies,
	Robustness'

2004-07-18  David Zeuthen  <david@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@fubar.dk>

	Patch from Kay Sievers <kay.sievers@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@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@fubar.dk>

	Patch from Sjoerd Simons <sjoerd@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@fubar.dk>

	Patch from Ray Strode <rstrode@redhat.com>

	* tools/Makefile.am: Add rules for building fstab-sync

	* tools/fstab-sync.c: New file

2004-07-14  David Zeuthen  <david@fubar.dk>

	Patch from Sjoerd Simons <sjoerd@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@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@admingilde.org>

2004-07-10  David Zeuthen  <david@fubar.dk>

	Patch from Kay Sievers <kay.sievers@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@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@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@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@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@fubar.dk>

	* hald/linux/volume_id/volume_id.c: Remove #define DEBUG

2004-07-06  David Zeuthen  <david@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@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@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@fubar.dk>

	Patch from Kay Sievers <kay.sievers@vrfy.org>. Better msdos
	detection for floppy disks

2004-07-05  David Zeuthen  <david@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@fubar.dk>

	Patch from Kay Sievers <kay.sievers@vrfy.org>. Add hfs support

2004-07-05  David Zeuthen  <david@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@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@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@fubar.dk>

	* tools/linux/hal_hotplug.c: 'product' file is also not guaranteed
	to exist for USB devices

2004-07-04  David Zeuthen  <david@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@extremeboredom.net>	

2004-07-04  David Zeuthen  <david@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@extremeboredom.net>
	
2004-07-04  David Zeuthen  <david@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@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@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@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@fubar.dk>

	Patch from Kay Sievers <kay.sievers@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@novell.com>

	Patch from Sjoerd Simons <sjoerd@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@fubar.dk>

	Patch from Kay Sievers <kay.sievers@vrfy.org>

	* hald/linux/volume_id/volume_id.c (get_buffer): s/lseek/lseek64/

2004-06-20  David Zeuthen  <david@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@vrfy.org>

2004-06-20  David Zeuthen  <david@fubar.dk>

	Patch from Kay Sievers <kay.sievers@vrfy.org>

	* hald/linux/volume_id/volume_id.[ch] : Extract volume label from
	NTFS disks

2004-06-20  David Zeuthen  <david@fubar.dk>

	Patch from Kay Sievers <kay.sievers@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@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@fubar.dk>

	Patch from Kay Sievers <kay.sievers@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@novell.com>

	Patch from Dan Williams (dcbw@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@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@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@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@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@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 Hgsberg
	<krh@bitplanet.net>. Bump version to 0.2.92

2004-06-06  David Zeuthen  <david@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@fubar.dk>

	* packaging/fedora/hal.spec: Add hald.conf to %files. Patch from
	Kristian Hgsberg <krh@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@novell.com>

	Patch from Kristian Hgsberg <krh@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@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@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@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@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@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@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@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@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@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@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@fubar.dk>

	* configure.in: Bump to 0.2.91

	* packaging/fedora/hal.spec: Bump to 0.2.91

2004-05-25  David Zeuthen  <david@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@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@luon.net>.

2004-05-18  Joe Shaw  <joeshaw@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@luon.net>.

2004-05-17  Joe Shaw  <joeshaw@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@admingilde.org>.

2004-05-15  Owen Fraser-Green  <owen@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@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@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@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@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@luon.net>

2004-05-08  Joe Shaw  <joe@ximian.com>

	* tools/callouts/fstab-update.sh: Improve the locking loop.

2004-05-07  Joe Shaw  <joe@ximian.com>

	* NEWS: Update the udev requirements.  Patch rom Kay Sievers
	<kay.sievers@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@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@vrfy.org>

	* hald/linux/volume_id/volume_id.c (probe_udf): fix for big-endian

2004-05-04  David Zeuthen  <david@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@vrfy.org>

	* hald/linux/volume_id/volume_id.[ch] : support reading of iso9660
	and udf labels

2004-05-04  David Zeuthen  <david@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@discobabe.net>

	* hald/hald_dbus.c (manager_find_device_string_match): Set
	info.value

2004-05-01  David Zeuthen  <david@fubar.dk>

	* libhal/libhal.h: fix that the extern "C" linkage stuff was
	accidently commented out

2004-05-01  David Zeuthen  <david@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@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@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@fubar.dk>

	* doc/TODO: update TODO note about fs detection

2004-04-30  Kay Sievers  <kay.sievers@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@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@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@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@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@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@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@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@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@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@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@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@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@fubar.dk>

	* doc/TODO (CVSID): Updated

2004-04-20  Robert Love  <rml@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@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@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@ximian.com>

	* hald/callout.c (hal_callout_capability): add properties to 
	environment and set working directory correctly

2004-04-15  Joe Shaw  <joe@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@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@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@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@fubar.dk>

	* hald/linux/block_class_device.c (block_class_post_process): 
	s/hotplugable/hotpluggable/

2004-04-12  David Zeuthen  <david@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@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@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@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@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@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@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@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@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@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@fubar.dk>

	* tools/callouts/fstab-update.sh: Callout script for fstab management

2004-04-08  David Zeuthen  <david@fubar.dk>
	
	* hald/linux/osspec.c (remove_device): new function
	(remove_class_device): new function
	(handle_hotplug): simplify

2004-04-07  David Zeuthen  <david@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@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@fubar.dk>

	* hald/main.c : Removed file

	* hald/linux/: Remove files from old backend

2004-04-03  David Zeuthen  <david@fubar.dk>

	Merge hal-gobject-branch back to HEAD

2004-04-03  David Zeuthen  <david@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@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@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@ximian.com>

	* tools/linux/hal_hotplug.c: add a "strcat_len()" macro and use it
	
2004-03-29  Robert Love  <rml@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@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@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@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@ximian.com>

	* hald/linux/linux_class_block.c (media_detect_timer_handler): Comment
	out noise debug statement

2004-03-25  Robert Love  <rml@ximian.com>

	* hald/linux/linux_class_block.c (detect_media): add support for
	"storage.cdrom.media_type"

2004-03-14  Martin Waitz  <tali@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@fubar.dk>

	* doc/TODO: Updated TODO file

2004-03-14  David Zeuthen  <david@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@fubar.dk>

	* tools/device-manager/hal-device-manager: add requirement for
	pygtk version 2.0

2004-01-10  David Zeuthen  <david@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@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@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@fubar.dk>

	* tools/linux/hal_hotplug.c: Don't include dbus-glib

2004-01-04  Joe Shaw  <joe@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@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@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@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@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@fubar.dk>

	* fdi/Makefile.am: install fdi.rng

	* fdi/fdi.rng: new file (thanks to Dave Malcolm)

2004-01-03  David Zeuthen  <david@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@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@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@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@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@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@fubar.dk>
	
	* doc/TODO: updated

2003-12-23  David Zeuthen  <david@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@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@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@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@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@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@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@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@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@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@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@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@gnome.org>

	* configure.in: Fix config message

2003-12-08  David Zeuthen  <david@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@fubar.dk>

	* tools/device-manager/hal-device-manager.glade: Forgot to add file
	
2003-12-06  David Zeuthen  <david@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@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@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@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@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@fubar.dk>

	* libhal/libhal.c (hal_initialized): Fixed stupied error that prevented
	libhal from compiling
	
2003-11-27  David Zeuthen  <david@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@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@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@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@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@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@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@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@fubar.dk>

	* Doxyfile: new file, added so we can generate doxygen documentation
	without having to run autogen.sh
	
2003-11-11  David Zeuthen  <david@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@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@fubar.dk>

	* HACKING: Fixed typo
	
2003-11-06  David Zeuthen  <david@fubar.dk>

	* hal.conf: Changed to work with D-BUS head
	
2003-11-05  David Zeuthen  <david@fubar.dk>

	* Initial module creation; moved HAL 0.1 out of the way
