2005-08-26  David Zeuthen  <davidz@redhat.com>

	* NEWS: Update for release 0.5.4

2005-08-26  David Zeuthen  <davidz@redhat.com>

	* Makefile.am: Add mkinstalldirs to EXTRA_DIST for now

	* tools/Makefile.am (EXTRA_DIST): Also dist $(sbin_SCRIPTS)

2005-08-26  Danny Kukawka <danny.kukawka@web.de>

	* configure.in: added sl_SI to ALL_LINGUAS 

	* hald/util.c: (hal_util_helper_invoke_with_pipes),
	(callout_failed): Added Patch from Kay Sievers <kay.sievers@vrfy.org>
	With This patch HAL skips failing callouts in the execution list 
	instead of waiting in the mainloop to be killed.

2005-08-25  Danny Kukawka <danny.kukawka@web.de>

	* hald/linux2/probing/probe-volume.c: (set_volume_id_values):
	Fixed to prevent set a empty info.product from the patch before.

2005-08-25  Danny Kukawka <danny.kukawka@web.de>

	* hald/linux2/probing/Makefile.am: Added glib to Makefile.
	* hald/linux2/probing/probe-volume.c: (strdup_valid_utf8),
	(set_volume_id_values): Fix to prevent sending invalid UTF8 
	strings from volumelabels to D-BUS. The invalid, non UTF8, 
	characters replaced now with '?'. 

2005-08-25  Danny Kukawka <danny.kukawka@web.de>

	* configure.in: Added Polish po file.

2005-08-24  Danny Kukawka <danny.kukawka@web.de>

	* hald/linux2/acpi.c: (battery_refresh): Little string fix from
	"Unknown ACPI Unit" to "unknown" for simpler checks.

2005-08-24  Danny Kukawka <danny.kukawka@web.de>

	* fdi/information/10freedesktop/10-usb-pda.fdi: Updated fdi file
	for Sony Clie SJ-22, Palm m130, Palm Tungsten T5 and Handspring
	Visor. Removed merge of info.product to serial device for Palm 
	devices since the strings from the device are more informatively.

2005-08-23  Kay Sievers  <kay.sievers@vrfy.org>

	Fix sloppy error handling in volume_id.

	* volume_id/util.c: (volume_id_get_buffer):
	* volume_id/volume_id.c: (volume_id_probe_all):
	* volume_id/volume_id.h:

2005-08-23  Danny Kukawka <danny.kukawka@web.de>  

	* doc/spec/hal-spec.xml.in: Updated spec for new keys from the
	VCD/SVCD/VideoDVD patch.

	* hald/linux2/probing/probe-volume.c: (advanced_disc_detect),
	(main): Added revised patch from Kevin Ottens <ervin@kde.org> to
	detect VCD/SVCD/VideoDVD.

2005-08-23  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/probing/probe-input.c (main): Proper debug output
	for input class probe helper. Patch from Pierre Ossman
	<drzeus@drzeus.cx>.

2005-08-23  David Zeuthen  <davidz@redhat.com>

	* libhal/Makefile.am, configure.in: Since gcc 3.4.4, 4.0.1 and
	4.1.0, some gcov symbols have been declared hidden, resulting in a
	link error when trying to link hald-probe-*. The problem is that
	libhal.so hasn't been linked with libgcov. Patch from Cornelia
	Huck <cohuck@de.ibm.com>.

2005-08-23  David Zeuthen  <davidz@redhat.com>

	* configure.in: Added Basque (eu) to ALL_LINGUAS

2005-08-23  Danny Kukawka <danny.kukawka@web.de>

	* hald/linux2/probing/probe-input.c: (check_abs): Fixed detection of
	input capability for joysticks (input.joystick).

2005-08-23  Danny Kukawka <danny.kukawka@web.de>

	* configure.in: Added Korean translation file to configure.

2005-08-22  David Zeuthen  <davidz@redhat.com>

	Patch from Cornelia Huck <cohuck@de.ibm.com> to change timeout from
	25 seconds to 250 seconds as a temporary workaround.

	* hald/hald.c (parent_wait_for_child): I'm running into some
	problems when trying to start the HAL daemon on large
	installations (like a S/390 LPAR with several thousands of
	devices). Device detection may take quite some time, more than the
	25 seconds specified as a timeout value for select() in
	hald/hald.c, and as a result, the daemon will abort.	

2005-08-22  Richard Hughes <richard@hughsie.com>

	* hald/linux2/acpi.c (battery_refresh, battery_refresh_poll): 
	Fix up the typos where we were not setting battery.charge_level.unit.
	Also fix the segfault reported by Martin Pitt where HAL would segfault
	where reporting_unit was NULL. I've protected the strcmp, and have
	changed the code to assume mWh so that the users of these BIOS's get
	some values set.
	I've changed battery_refresh_poll to use this scheme too, as users of
	broken BIOS's would currently get no updates (as it was handled with 
	"goto out") and with this they will.

	* hald/linux2/acpi.c (battery_refresh_poll): Fix the bug reported by 
	Paolo Borelli [http://bugzilla.gnome.org/show_bug.cgi?id=314182]
	by checking the battery.voltage.current, and if not valid, using
	battery.voltage.design, and if that's not valid, using 1 as a fallback.
	

2005-08-22  Richard Hughes <richard@hughsie.com>

	* hald/util.c (util_compute_time_remaining, 
	util_compute_percentage_charge): Add some more checks for broken BIOS's
	and add some more comments.

2005-08-22  Danny Kukawka <danny.kukawka@web.de>

	* hald/linux2/classdev.c: (net_add): Fix for more informative 
	info.product names for WLAN to differ between LAN and WLAN interfaces.

2005-08-22  Danny Kukawka <danny.kukawka@web.de>

	* fdi/information/10freedesktop/10-usb-pda.fdi: Added for all Palm 
	PDAs, not handled by special matches, also port 0 as hotsync port to be 
	sure that there is at least one correct port.

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

	As of Linux 2.6.14, the kernel will export a mmc_host class for
	MMC- devices. This patch teaches hal about this. Patch from Pierre
	Ossman <drzeus-list@drzeus.cx>.

	* hald/linux2/classdev.c (mmc_host_add): New function
	(mmc_host_compute_udi): New function

2005-08-21  Danny Kukawka <danny.kukawka@web.de>

	* packaging/suse/hal.spec: Added rpm spec-file for SUSE/openSUSE.

2005-08-21  Danny Kukawka <danny.kukawka@web.de>

	* hald/util.c: (util_compute_percentage_charge): Fix to return 100 for 
	computed percentage values > 100% instead of -1. This can happen on
	ACPI systems wich reports temporarily a higher 'remaining capacity' 
	then the 'last full capacity'.

2005-08-20  Danny Kukawka <danny.kukawka@web.de>

	* configure.in: Fix to get all current available translations.

2005-08-19  Richard Hughes <richard@hughsie.com>

	* hald/linux2/acpi.c (battery_refresh_poll): Remove checks for negative
	times and percentages.
	Also remove key if invalid data is returned.

	* hald/util.c (util_compute_time_remaining, 
	util_compute_percentage_charge): Add checks for negative times and 
	percentages - this lets up remove lots of checks for each subsystem.
	The keys will only be populated when the data is valid, as discussed:
	http://article.gmane.org/gmane.comp.freedesktop.hal/2944

	* hald/linux2/apm.c (battery_refresh): Add calculation of 
	the key "battery.charge_level.percentage" so that it matches acpi.
	Also remove key if invalid data is returned.

	* hald/linux2/pmu.c (battery_refresh): Make the calculation and logic of
	remaining_percentage and remaining_time match that of acpi and apm.
	Also remove key if invalid data is returned.

	* doc/spec/hal-spec.xml.in: Add description of the key
	battery.charge_level.percentage and explain why it's sometimes missing.
	Also modified description of battery.remaining_time explaining the
	different meanings while charging and discharging.

2005-08-19  Danny Kukawka <danny.kukawka@web.de>

	* tools/hal-system-power-hibernate, 
	  tools/hal-system-power-set-power-save, 
	  tools/hal-system-power-suspend: Add dectection of ALTLinux, SUSE, 
	Mandrake, Slackware, Debian and Gentoo and add support for powersave 
	for SUSE and ALTLinux (powersave will be included to next release ALT 
	Linux 3.0) to the scripts.

2005-08-18  David Zeuthen  <davidz@redhat.com>

	* fdi/information/10freedesktop/10-usb-music-players.fdi: From my
	point of view all of these devices should have the capability
	'portable_audio_player'. Those who are a disk drive with the extra
	feature of playing stuff should probably keep 'storage' as
	category. The rest should have 'portable_audio_player'. Patch from
	Pierre Ossman <drzeus-list@drzeus.cx>.

2005-08-18  David Zeuthen  <davidz@redhat.com>

	* fdi/information/10freedesktop/10-usb-music-players.fdi: Add
	identification for Rio Forge music player. Patch from Pierre
	Ossman <drzeus-list@drzeus.cx>.

2005-08-18  Danny Kukawka <danny.kukawka@web.de>

	* fdi/information/10freedesktop/10-usb-pda.fdi: fixed merge
	pda.*.hotsync_interface to copy correct property ('serial.device'
	instead of nonexistent 'serial_device')

2005-08-16  David Zeuthen  <davidz@redhat.com>

	First stab at system power management... Need to put this in the
	hal spec too..

	* hal.conf.in: Add security policy for Device.SystemPowerManagement
	and Device.Volume.Crypto interfaces - only allow the console user to
	invoke methods on these interfaces

	* fdi/policy/10osvendor/10-power-mgmt-policy.fdi: Add methods
	Suspend(int secondsBeforeWakeup), Hibernate() and
	SetPowerSave(bool shouldSavePower) to the
	org.freedesktop.Hal.Device.SystemPowerManagement interface

	* tools/Makefile.am (sbin_SCRIPTS): Add hal-system-power-*

	* tools/hal-system-power-hibernate: New file

	* tools/hal-system-power-suspend: New file

	* tools/hal-system-power-set-power-save: New file

2005-08-14  Richard Hughes <richard@hughsie.com>

	* .cvsignore, tools/.cvsignore: adds a few generated files to .cvsignore

	* hald/solaris/.cvsignore: New file, copy from hald/linux2/

2005-08-13  Kay Sievers  <kay.sievers@vrfy.org>

	Add missing files.

	* volume_id/ocfs2.c: (volume_id_probe_ocfs2):
	* volume_id/ocfs2.h:

2005-08-13  Kay Sievers  <kay.sievers@vrfy.org>

	Sync up volume_id with the udev version.

	* drive_id/drive_id.c: (drive_id_open_dev_t):
	* volume_id/Makefile.am:
	* volume_id/cramfs.c: (volume_id_probe_cramfs):
	* volume_id/cramfs.h:
	* volume_id/dasd.c:
	* volume_id/dasd.h:
	* volume_id/ext.c: (volume_id_probe_ext):
	* volume_id/ext.h:
	* volume_id/fat.c: (get_attr_volume_id), (volume_id_probe_vfat):
	* volume_id/fat.h:
	* volume_id/hfs.c: (volume_id_probe_hfs_hfsplus):
	* volume_id/hfs.h:
	* volume_id/highpoint.c: (volume_id_probe_highpoint_37x_raid),
	(volume_id_probe_highpoint_45x_raid):
	* volume_id/highpoint.h:
	* volume_id/hpfs.c: (volume_id_probe_hpfs):
	* volume_id/hpfs.h:
	* volume_id/iso9660.c: (volume_id_probe_iso9660):
	* volume_id/iso9660.h:
	* volume_id/isw_raid.c: (volume_id_probe_intel_software_raid):
	* volume_id/isw_raid.h:
	* volume_id/jfs.c: (volume_id_probe_jfs):
	* volume_id/jfs.h:
	* volume_id/linux_raid.c: (volume_id_probe_linux_raid):
	* volume_id/linux_raid.h:
	* volume_id/linux_swap.c: (volume_id_probe_linux_swap):
	* volume_id/linux_swap.h:
	* volume_id/lsi_raid.c: (volume_id_probe_lsi_mega_raid):
	* volume_id/lsi_raid.h:
	* volume_id/luks.c: (volume_id_probe_luks):
	* volume_id/luks.h:
	* volume_id/lvm.c: (volume_id_probe_lvm1), (volume_id_probe_lvm2):
	* volume_id/lvm.h:
	* volume_id/mac.c: (volume_id_probe_mac_partition_map):
	* volume_id/mac.h:
	* volume_id/minix.c: (volume_id_probe_minix):
	* volume_id/minix.h:
	* volume_id/msdos.c: (volume_id_probe_msdos_part_table):
	* volume_id/msdos.h:
	* volume_id/ntfs.c: (volume_id_probe_ntfs):
	* volume_id/ntfs.h:
	* volume_id/nvidia_raid.c: (volume_id_probe_nvidia_raid):
	* volume_id/nvidia_raid.h:
	* volume_id/promise_raid.c: (volume_id_probe_promise_fasttrack_raid):
	* volume_id/promise_raid.h:
	* volume_id/reiserfs.c: (volume_id_probe_reiserfs):
	* volume_id/reiserfs.h:
	* volume_id/romfs.c: (volume_id_probe_romfs):
	* volume_id/romfs.h:
	* volume_id/silicon_raid.c: (volume_id_probe_silicon_medley_raid):
	* volume_id/silicon_raid.h:
	* volume_id/sysv.c: (volume_id_probe_sysv):
	* volume_id/sysv.h:
	* volume_id/udf.c: (volume_id_probe_udf):
	* volume_id/udf.h:
	* volume_id/ufs.c: (volume_id_probe_ufs):
	* volume_id/ufs.h:
	* volume_id/util.c: (volume_id_set_unicode16),
	(volume_id_set_label_raw),
	(volume_id_set_label_string), (volume_id_set_label_unicode16),
	(volume_id_set_uuid), (volume_id_get_buffer):
	* volume_id/util.h:
	* volume_id/via_raid.c: (volume_id_probe_via_raid):
	* volume_id/via_raid.h:
	* volume_id/volume_id.c: (volume_id_probe_all),
	(volume_id_open_dev_t):
	* volume_id/volume_id.h:
	* volume_id/xfs.c: (volume_id_probe_xfs):
	* volume_id/xfs.h:

2005-08-11  Danny Kukawka <danny.kukawka@web.de>

	* hald/linux2/acpi.c, hald/linux2/addons/addon-acpi.c
	hald/linux2/addons/addon-pmu.c, hald/linux2/addons/addon-storage.c,
	hald/linux2/pmu.c: (battery_refresh): Fixed several compiler warnings 
	and removed unused variables.

2005-08-11  Danny Kukawka <danny.kukawka@web.de>

	* hald/linux2/acpi.c: (battery_refresh_poll): Fixed several battery keys 
	to be sure that hal not provides battery key with not up-to-date values,
	if the battery is full charged. Now we set all values which are in  
	/proc/acpi/battery/*/{info,state} already 'unknown' (e.g. 'present rate')
	to 0.

2005-08-11  Danny Kukawka <danny.kukawka@web.de>

	* hald/linux2/acpi.c: (battery_refresh_poll): Check now if computed 
	remaining percentage and remaining time values are valid. Now we only 
	add positive values.

	* hald/util.c: (util_compute_percentage_charge),
	(util_compute_time_remaining): Return -1 instead of 0 if an error occurs 
	to differentiate between an error and an empty battery. Return now -1 if 
	parameter chargeRate, chargeLevel or chargeLastFull are negative. Removed
	unneeded warning.

2005-08-11  Danny Kukawka <danny.kukawka@web.de>

	* hald/linux2/acpi.c: (battery_refresh): remove also 
	battery.charge_level.rate, battery.reporting.unit and 
	battery.remaining_time if the battery is removed. 

2005-08-11  Danny Kukawka <danny.kukawka@web.de>

	* hald/linux2/acpi.c: (battery_refresh_poll): Normalise 
	battery.reporting.last_full with voltage_current instead of 
	voltage_design because battery.charge_level.last_full is a changing and 
	not a static value like voltage_design, which is a "marketing assurance".  

2005-08-11  Danny Kukawka <danny.kukawka@web.de>

	* hald/linux2/acpi.c (acpi_poll_battery), (acpi_poll_acadap), 
	(acpi_poll): Splitted acpi_poll() into acpi_poll_battery() and 
	acpi_poll_acadapt(). 
	(battery_refresh):battery.present is now read 
	from /proc/acpi/battery/*/state instead of reading the information 
	from /proc/acpi/battery/*/info since reading from the info proc entry 
	takes very long on several systems. If a ACPI battery event occurs, 
	we now also gather the information for ac_adapter.present. This helps 
	to detect the AC online/offline state for machine which do not trigger 
	an ACPI event for AC online/offline but still report battery events 
	by an issuing ACPI event.
	(ac_adapter_refresh_poll), (battery_refresh_poll), 
	(battery_poll_infrequently), (ac_adapter_refresh), 
	(acpi_synthesize_hotplug_events): Status for battery.reporting.last_full 
	is now read by battery_poll_infrequently ().  This saves several 
	open/read calls to /proc/acpi/battery/*/{info,state} and enables 
	reuse of the information gathered (makes reopening of the {info,state} 
	proc entries unnecessary). battery_poll_infrequently () is invoked:
	every 60 minutes and once a AC adapter ACPI event occurs. This prevents
	open/read calls to /proc/acpi/battery/*/info more often then intended.

2005-08-10  David Zeuthen  <davidz@redhat.com>

	* libhal-storage/libhal-storage.c (libhal_volume_from_udi): Actually
	export the right volume.fsusage

2005-08-10  Danny Kukawka <danny.kukawka@web.de>

	* hald/linux2/blockdev.c: (blockdev_compute_udi): fix compute of 
	volume_label_* UDIs.

2005-08-09  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/physdev.c (ccw_add_tape_properties):
	tape.ccw.mediumstate should be ccw.tape.mediumstate, fix the typo.
	Patch from Cornelia Huck <cohuck@de.ibm.com>.

2005-08-06  Kay Sievers  <kay.sievers@vrfy.org>

	* configure.in:
	* hald/linux2/addons/addon-acpi.c: (main):
	Make the possible ACPI event sources configurable, cause binding
	the exclusive kernel socket instead of the proposed acpid socket
	may cause trouble.

2005-08-05  Danny Kukawka  <danny.kukawka@web.de>

	* doc/spec/hal-spec.xml.in: Added new namespace for OSS devices
	and updated ALSA namespace for new devices.

	* hald/linux2/classdev.c, hald/linux2/classdev.h (sound_add), 
	(sound_compute_udi): Added OSS devices and ALSA/OSS global devices. 
	OSS devices are only added if the kernel supports device links to the 
	related physical device. Adapted sound_compute_udi() to generate
	UDIs for the new devices. For the required kernel patch (going  
	upstream soon) see: 
	http://thread.gmane.org/gmane.comp.freedesktop.hal/2862

2005-08-02  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/acpi.c (acpi_poll): Fix a memory leak here

2005-08-02  David Zeuthen  <davidz@redhat.com>

	Patch from Richard Hughes <hughsient@gmail.com>.

	* hald/linux2/acpi.c (ac_adapter_refresh_poll): New function, just
	set the present key. This is quicker than setting the capability
	and category on every forced refresh.
	(ac_adapter_refresh): Use ac_adapter_refresh_poll and while we are
	here, add device_property_atomic_update_begin and
	device_property_atomic_update_end to make atomic.
	(acpi_poll): Add the ac_adapter updates to make sure we get the
	value of ac_adapter correct at least on every 30 second forced
	refresh. This fixes really broken ACPI BIOS's that don't emit acad
	or batt events.

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

	* hald/linux2/acpi.c (acpi_poll): Only poll if the battery is actually
	present. Patch from Danny Kukawka <danny.kukawka@web.de>.
	(battery_refresh_poll): Be a little bit more
	careful and don't segfault if battery.reporting_unit doesn't exist

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

	Patch from Danny Kukawka <danny.kukawka@web.de>.

	* libhal/libhal.c, hald/linux2/ids.c: This is a patch to fix usage
	of #NULL within the doxygen code documentation (replaced through 
	'NULL' since '#NULL' generates a warning).

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

	Patch from Richard Hughes <hughsient@gmail.com>. Reported by Ryan
	Lortie <desrt@desrt.ca>.
	
	* hald/linux2/acpi.c (battery_refresh_poll, battery_refresh):
	convert the current values from mAh to mWh (some laptops report in
	other than mWh) by multiplying by the current voltage. This gives
	us "energy" units that are not dependent on the current voltage of
	the battery. This fixes the
	bug (http://bugzilla.gnome.org/show_bug.cgi?id=309944) where the
	remaining time was being worked out with incorrect logic. The
	util_compute_time_remaining and util_compute_percentage_charge
	functions now take the sanitised values too. This patch introduces
	the new keys battery.reporting.* representing the raw values from
	ACPI. This will not change API for existing programs (as the old
	charge_level keys are just re-used for the sanitised values). A
	battery.charge_level.design key of "Unknown ACPI Unit" represents
	an unknown unit that may have to be calculated like mAh.

	* doc/spec/hal-spec.xml.in: Update spec with new keys

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

	* hald/device_store.c (hal_device_store_add): this is a patch to
	prevent adding a device with invalid UDI (doesn't start with
	"/org/freedesktop/Hal/devices/") to the 'global device
	list'. Without this patch it's possible to add a device with
	invalid UDI. If so, you can't see the device e.g. via lshal and
	get always a dbus error. Original patch from Danny Kukawka
	<danny.kukawka@web.de>; slightly tweaked.

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

	* hald/linux2/addons/addon-hid-ups.c: This one for UPS's (which
	are always measured in percent, so no division needed). I think
	that's all of the capability battery devices now. All I have to do
	is wait for the next release of HAL, and i can depend on that new
	version (but I'm guessing it'll be a long wait :-). Patch from
	Richard Hughes <richard@hughsie.com>.

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

	The FSF moved to a new address, so I updated all license headers
	and the COPYING file. Patch from Danny Kukawka <danny.kukawka@web.de>.

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

	Patch from Richard Hughes <richard@hughsie.com>.

	* hald/linux2/addons/addon-usb-csr.c: Change default polling to 30
	seconds as mice discharge *very* slowly and do not need to be polled
	once every 10 seconds.
	Add to addon-usb-csr the key battery.charge_level.percentage so we can
	provide a better interface to programs that use this data.
	Also reformat this file so that it matches the rest of the HAL source
	in style, and get rid of the spaces-for-tabs.

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

	Patch from Danny Kukawka <danny.kukawka@web.de>.

	* libhal-storage/libhal-storage.c,
	tools/device-manager/hal-device-manager.glade, tools/fstab-sync.c:
	this is a patch to fix typos of translatable strings. New
	translation files will follow due to end of August.
	
2005-07-29  David Zeuthen  <davidz@redhat.com>
	
	Patch from Richard Hughes <richard@hughsie.com>.

	* hald/linux2/pmu.c (battery_refresh): Call
	util_compute_percentage_charge so we can populate
	battery.charge_level.percentage.

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

	Patch from Richard Hughes <richard@hughsie.com>.
	
	* hald/util.c (util_compute_percentage_charge): New function used
	to calculate the percentage charge, initially for ACPI batteries,
	but could be used by all devices as contains lots of error checks.

	* hald/linux2/acpi.c (battery_refresh_poll): Call
	util_compute_percentage_charge so we can populate
	battery.charge_level.percentage

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

	* hald/linux2/blockdev.c: This is a patch to compute 'nicer' UDIs,
	/org/freedesktop/Hal/devices/volume_empty_%disc.type, for emtpy
	CD/DVD volumes/discs. Patch from Danny Kukawka
	<danny.kukawka@web.de>.

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

	* tools/hal-luks-remove.in: Unmount the cleartext volume, if mounted,
	before tearing down the dm-crypt mapping

	* hald/linux2/blockdev.c (hotplug_event_begin_remove_blockdev):
	Actually read the is_partition from the device since e.g.
	/sys/block/dm-0 probably is a partition

2005-07-26  W. Michael Petullo  <mike@flyn.org>

	* tools/hal_set_property.c: Add --strlist-pre, --strlist-post
	and --strlist-rem options to hal-set-property

	* tools/hal-luks-setup.in: Use --strlist-pre to add hal-luks-remove to
	a LUKS device's info.callouts.remove.

	* tools/hal-luks-remove.in: New script to tear down dm-crypt
	device.

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

	* drive_id/ata.c, drive_id/drive_id.c, drive_id/scsi.c,
	hald/device.c, hald/device_store.c, hald/linux2/apm.c,
	hald/linux2/osspec.c, hald/linux2/pcmcia_utils.c,
	hald/linux2/probing/probe-storage.c, tools/hal-device.c,
	volume_id/fat.c, volume_id/iso9660.c, volume_id/isw_raid.c,
	volume_id/lvm.c, volume_id/romfs.c, volume_id/volume_id.c: This is
	a patch (against CVS) to fix several compiler warnings with gcc
	3.x and 4.x. Please review. Patch from Danny Kukawka
	<danny.kukawka@web.de>.
	
2005-07-25  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/classdev.c (sound_add): Forgot to add alsa_.device_file

	* doc/spec/hal-spec.xml.in: Add docs for alsa.device_file

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

	* hald/linux2/probing/probe-hiddev.c,
	hald/linux2/probing/probe-input.c,
	hald/linux2/probing/probe-printer.c,
	hald/linux2/probing/probe-smbios.c,
	hald/linux2/probing/probe-storage.c,
	hald/linux2/probing/probe-volume.c: Here a little patch (against
	CVS) to fix several compiler warnings. Patch from Danny Kukawka
	<danny.kukawka@web.de>.

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

	* hald/linux2/probing/probe-volume.c (main): hal sets
	volume.disc.is_rewriteable for DVD+R and DVD+R DL
	wrong (TRUE). This patch (against CVS) fix this to
	volume.disc.is_rewriteable=FALSE for DVD+R/DVD+R DL. Patch from
	Danny Kukawka <danny.kukawka@web.de>.

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

	* libhal-storage/libhal-storage.c, libhal/libhal.c: Move the
	LIBHAL_CHECK_LIBHALCONTEXT down to after declerations so we
	don't depend on C99.

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

	* libhal-storage/libhal-storage.c, libhal/libhal.[ch]: Patch from
	Danny Kukawka <danny.kukawka@web.de>: here the new patch with a
	macro instead of always the same codeblock in so many funtions. 

2005-07-21  David Zeuthen  <davidz@redhat.com>
	
	* doc/spec/hal-spec.xml.in, hald/linux2/acpi.c (battery_refresh):
	Here is a patch for additional information about ACPI Batteries. I
	added the following new keys:

	battery.charge_level.capacity_state (poll)
	battery.charge_level.warning
	battery.charge_level.low
	battery.charge_level.granularity_1
	battery.charge_level.granularity_2
	battery.voltage.unit
	battery.voltage.design
	battery.voltage.current (poll)
	battery.alarm.unit
	battery.alarm.design

	Also attached a related patch for the spec. Patch from Danny
	Kukawka <danny.kukawka@web.de>.

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

	* libhal/libhal.c: This is a fix to prevent segmentation faults in
	libhal if a function called with parameter LibHalContext *ctx ==
	NULL/0. Patch from Danny Kukawka <danny.kukawka@web.de>.

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

	Patch from W. Michael Petullo <mike@flyn.org>.

	* configure.in: Add tools/hal-luks-setup to AC_OUTPUT

	* tools/hal-luks-setup.in: New file

	* fdi/policy/10osvendor/15-storage-luks.fdi: New file

	* hald/linux2/blockdev.c (blockdev_get_luks_uuid): Minor changes
	to give for informational debug
	
2005-07-15  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/addons/addon-hid-ups.c: Minor cleanup and fix for a
	compiler warning. Patch from Richard Hughes <hughsient@gmail.com>.

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

	* tools/device-manager/DeviceManager.py: Here is a patch to fix up
	hal-device-manager.  This will still run with older D-BUS's but
	you will need 0.35 to get all the fixes since there were some
	problems with the signal removal code.  I am working on getting
	0.35 out the door today. Patch from John (J5) Palmieri
	<johnp@redhat.com>.

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

	I added support for detection of DVD+R Dual-Layer write
	support (new key: storage.cdrom.dvdplusrdl). Here a fix for DVD+R
	DL media in libhal_volume_policy_compute_display_name(). Patches
	from Danny Kukawka <danny.kukawka@web.de>.

	* libhal-storage/libhal-storage.h: 

	* libhal-storage/libhal-storage.c (libhal_drive_policy_compute_display_name)
	(libhal_volume_policy_compute_display_name): 

	* hald/linux2/probing/probe-storage.c (main): 

	* hald/linux2/probing/linux_dvd_rw_utils.c (get_dvd_r_rw_profile): 

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

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

	Patch from Alvaro Lopez Ortega <alvaro@sun.com>

	* volume_id/util.h: include asm/types.h if we have it

	* configure.in: Fixup check for headers

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

	* hald/util.h: Add prototype for hal_util_helper_invoke_with_pipes

	* hald/util.c (hal_util_helper_invoke_with_pipes): New function (is
	based on hal_util_helper_invoke)
	(hal_util_helper_invoke): Use the with_pipes

	* hald/hald_dbus.c (hald_exec_method_cb): New function
	(hald_exec_method): New function
	(hald_dbus_filter_handle_methods): Check and handle methods on
	individual hal device objects

	* hald/device.h: Add prototype for hal_device_property_get_strlist_elem

	* hald/device.c (hal_device_property_get_strlist_elem): New function

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

	* configure.in: Post release version bump

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

	* configure.in: Bump version to 0.5.3

	* NEWS: Update for release 0.5.3

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

	* hald/Makefile.am: Disable our regression test for now since it's
	busted and we want 'make distcheck' to pass for the new release.

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

	* libhal/libhal.c (libhal_ctx_init): Make init fail if hald is
	actually not running

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

	* hald/linux2/acpi.c (battery_refresh_poll): When the battery is
	degrading a bit, and the last full battery info value is updated
	by ACPI, the new value is not reflected in HAL database. Reported
	by Paul Ionescu (i_p_a_u_l@yahoo.com); fix by Richard
	Hughes (richard@hughsie.com) (RH #162215).

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

	* hald/linux2/blockdev.c (hotplug_event_begin_add_blockdev): Cards
	on the MMC bus got an incorrect storage.drive_type. Patch from
	Pierre Ossman <drzeus@drzeus.cx>.

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

	Make it possible to create and remove HAL devices without kernel and
	sysfs support. Some legacy devices or userspace driven devices may be
	useful in HAL too, but need to be maintained by an application instead
	of the kernel itself. Patch from Steffen Winterfeldt <snwint@suse.de>.

	* tools/hal-device.c: New file

	* tools/Makefile.am: Add build rules for hal-device

	* libhal/libhal.[ch]: Remove the _agent prefix from the agent_manager 
	functions

	* hald/hald_dbus.h: Add prototypes for new functions

	* hald/hald_dbus.c (manager_new_device)
	(manager_remove_done, manager_remove)
	(manager_commit_done)
	(manager_commit_preprobing_done)
	(manager_commit_to_gdl): New functions
	(hald_dbus_filter_handle_methods): Add handlers for new D-BUS methods

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

	* tools/device-manager/DeviceManager.py:
	h-d-m raises:
		Traceback (most recent call last):
		File "/usr/share/hal/device-manager/DeviceManager.py", line 182, in
		DBusException: Trying to remove unkown rule:
		type='signal',interface='org.freedesktop.Hal.Device',sender=':1.1'...

	just make it useable again until we found the real reason.

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

	* hald/hald_dbus.c: (raise_error), (raise_no_such_device),
	(raise_no_such_property), (raise_property_type_error),
	(raise_syntax), (raise_device_not_locked),
	(raise_device_already_locked), (raise_permission_denied),
	(foreach_device_get_udi), (device_send_signal_condition),
	(local_server_message_handler):
	Unify the error handling into one common function.
	Thanks to Steffen Winterfeldt <snwint@suse.de>.

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

	* hald/linux2/coldplug.c: (hal_util_get_udevinfo_path),
	(hal_util_init_sysfs_to_dev_map), (coldplug_get_device_file),
	(coldplug_synthesize_events), (coldplug_synthesize_block_event),
	(coldplug_compute_visit_device):
	The next udev version will not store anything in its database if not
	neccessary. So udev does not need to write 600 pretty useless database
	files and HAL does not need to process the information that is already
	contained in the sysfs-path.

	The udevinfo-dump of the next udev version will only print devices which
	have a custom configuration. This changes HAL to look for the default
	device-node derived from the kernels devpath if udev has not specified
	anything else.

2005-07-02  Kay Sievers  <kay.sievers@vrfy.org>

	* configure.in:
	* hald/linux2/addons/addon-storage.c:
	* hald/linux2/probing/probe-pc-floppy.c:
	* hald/linux2/probing/probe-storage.c:
	* hald/linux2/probing/probe-volume.c:
	* tools/linux/add_selinux.c:
	Revert <sys/mount.h> include, as some popular systems
	still use ancient libc-kernel-headers.

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

	* configure.in:
	* doc/api/Makefile.am:
	* doc/conf/Makefile.am:
	* doc/spec/Makefile.am:
	Allow to configure the documentation target directory.

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

	* tools/device-manager/Device.py:
	* tools/device-manager/DeviceManager.py:
	* tools/device-manager/Representation.py:
	Make h-d-m tolerate expected device properties which are empty.

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

	* configure.in:
	* hald/linux2/addons/addon-storage.c:
	* hald/linux2/probing/probe-pc-floppy.c:
	* hald/linux2/probing/probe-storage.c:
	* hald/linux2/probing/probe-volume.c:
	* tools/linux/add_selinux.c:
	Switch <linux/fs.h> include to <sys/mount.h> to fix missing
	typedefs in the kernel headers on exotic architectures.

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

	* hald/linux2/addons/addon-storage.c: (force_unmount):
	Terminate execl() argument list.

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

	* po/es.po: Add spanish translation from Francisco Javier F. Serrador
	<serrador@hispafuentes.com>.

	* configure.in: Add es to ALL_LINGUAS

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

	* libhal-storage/libhal-storage.h: Add new LibHalVolumeDiscType field
	LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR_DL. Add new LibHalDriveBus field
	LIBHAL_DRIVE_BUS_CCW.

	* libhal-storage/libhal-storage.c (libhal_drive_from_udi): Set
	drive->bus to LIBHAL_DRIVE_BUS_CCW if appropriate
	(libhal_volume_from_udi): Fix a bug: it's dvd_plus_[r|rw] not
	dvd_plus[r|rw]. Add support for dvd_plus_r_dl.

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

	Patch-set from Cornelia Huck <cohuck@de.ibm.com>. I've been
	working on support for Linux on S/390 specific devices in HAL. The
	following patchset includes some non-s390 specific patches and
	support for the S/390 bus types.

	* doc/spec/hal-spec.xml.in: Document the properties of ccw,
	ccwgroup, iucv, and tape devices.

	* hald/linux2/classdev.c (tape_add, tape_compute_udi): This
	comprises support for both the generic tape class and the tape390
	class, as the two don't differ in anything but name.

	* hald/linux2/blockdev.c (hotplug_event_begin_add_blockdev): ccw
	devices need to be considered for block devices.

	* hald/linux2/physdev.c (iucv_add_netiucv_properties)
	(iucv_add, iucv_compute_udi): The iucv bus is for virtual devices
	under z/VM - currently only netiucv is implemented.

	* hald/linux2/physdev.c (ccwgroup_add_qeth_properties)
	(ccwgroup_add_ctc_properties, ccwgroup_add_lcs_properties)
	(ccwgroup_add_claw_properties, ccwgroup_add)
	(ccwgroup_compute_udi): The ccwgroup on S/390 contains devices
	consisting of grouped ccw devices - usually networking devices. As
	with the ccw bus, there are some common properties and lots of
	device specific ones.

	* hald/linux2/physdev.c (ccw_add_dasd_properties)
	(ccw_add_zfcp_properties, ccw_add_tape_properties)
	(ccw_add_3270_properties, ccw_add, ccw_compute_udi): The ccw bus
	on s390 contains all classic channel-attached devices. They all
	have a few common properties, but also driver-specific ones.

	* hald/linux2/osspec_linux.h: Export hal_util_get_driver_name ()

	* hald/linux2/osspec.c (hal_util_get_driver_name): New function
	(hal_util_set_driver): Refactor to use hal_util_get_driver_name

	* hald/linux2/classdev.c (net_add): Set MAC-address to zero's
	if we can't read it.
	(net_compute_udi): Use some other unique ID if MAC address is
	missing or set to all zero's.

	* hald/linux2/blockdev.c (blockdev_compute_udi): Generate a
	sensible name for block devices for which the model is an
	empty string.

	* hald/util.c: This patch adds a needed include for some
	interfaces, or gcc 4.0 will make incorrect assumptions on the
	format of some functions.

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

	* volume_id/util.h: Include stdint.h to get uint8_t and friends so
	we compile on Linux.

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

	* configure.in, volume_id/*.c: This patch check for some internal
	Linux kernel types and redefine it using the standard system
	types. It also removes the a private Linux kernel include. Patch
	from Alvaro Lopez Ortega <alvaro@sun.com>.

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

	Patch from Alvaro Lopez Ortega <alvaro@sun.com>.

	* volume_id/dasd.c: Use HAVE_SYS_IOCCOM_H to conditionally include
	sys/ioccom.h

	* configure.in: Check for sys/ioccom.h

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

	Patch from Alvaro Lopez Ortega <alvaro@sun.com> to add an empty
	Solaris backend to HAL.

	* hald/solaris/osspec.c: New file

	* hald/solaris/Makefile.am: New file

	* configure.in: Add checks for Solaris

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

	* configure.in: This little patch fixes the configure.in file in
	order to allow non-Linux machines to execute the whole configure
	script. Patch from Alvaro Lopez Ortega <alvaro@sun.com>.

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

	* .cvsignore: update this and add a bunch of other .cvsignore files.
	Patch from William Jon McCann <mccannwj@pha.jhu.edu>.

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

	* fdi/information/10freedesktop/10-usb-music-players.fdi: Patch from
	Mattias Eriksson <snaggen@acc.umu.se> to detect a bunch of iRiver
	music players (ported from 0.4.x to HEAD by me).

2005-06-15  William Jon McCann  <mccann@jhu.edu>

	* hald/linux2/probing/probe-volume.c (main): Add support for
	DVD+R DL media.  (fdo bug #3269)

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

	* hald/hald.c (usage): This diff contains a little fix for the
	description of --retain-privileges in "hald --help". Looks like
	only replaced --drop-privileges through --retain-privileges
	without to change the description. 
	Patch from Danny Kukawka <danny.kukawka@web.de>.

2005-05-28  Kjartan Maraas  <kmaraas@gnome.org>

	* hald/Makefile.am: Putting on the build sherrif hat and removing
	references to master_slave.[ch] to get the build going again.

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

	* hald/property.c (hal_property_new_string): Just assign an
	empty string to the property if the value argument is NULL.
	Patch from Martin Pitt <martin@piware.de> (Ubuntu bug #11060)

2005-05-23  Kjartan Maraas  <kmaraas@gnome.org>

	* configure.in: Add nb to ALL_LINGUAS.

2005-05-23  David Zeuthen  <davidz@redhat.com>

	* fdi/policy/10osvendor/10-storage-policy.fdi: Never ever use
	sync as it reduces performance and makes people believe that
	it wears out their drives (RH bug #157674)

	* examples/locking.py: Fixup this a little bit

	* tools/fstab-sync.8.in: Update the man page to reflect latest
	changes.

	* hald/hald_dbus.c (device_lock): Fix a doublefree when acquiring
	lock (RH bug #158474)

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

	* hald/linux2/probing/probe-storage.c (main): Here is a fix for
	the dvdram entry in hal (0.4.x and 0.5.x).  Currently the correct
	default key (storage.cdrom.dvdram = false) is created but if the
	device can write dvdram, hal add a new key named "storage.dvdram". 
	Patch from Danny Kukawka <danny.kukawka@web.de>.

2005-05-16  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/addons/addon-acpi.c (main): Whilst using CVS, I've
	found that ACPI ac_adapter events are not triggering a rescan of
	the ac_adapter object. 
	Patch from Richard Hughes <hughsient@gmail.com>

2005-05-13  David Zeuthen  <davidz@redhat.com>

	* tools/device-manager/DeviceManager.py:
	(DeviceManager.property_modified): Fix a port J5 missed when porting
	to the new D-BUS Python bindings (I just love weakly-typed languages)

2005-05-13  David Zeuthen  <davidz@redhat.com>

	* tools/hal_find_by_capability.c: New file

	* tools/hal_find_by_property.c: New file

	* tools/hal_get_property.c (usage): Don't claim we support we the
	--quiet option because we don't

	* tools/Makefile.am: Add build rules for hal-find-by-capability and
	hal-find-by-property.

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

	* configure.in: Bump version to 0.5.2

	* NEWS: Update for release 0.5.2

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

	* tools/Makefile.am (EXTRA_DIST): Also dist gen-libgphoto-hal-fdi

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

	* hald/linux2/addons/addon-usb-csr.c (property_cache_item_get): Bah,
	make this file actually compile again.

2005-05-11  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/addons/addon-usb-csr.c: Remove all extra new-lines as
	we don't nede them (from Richard Hughes <richard@hughsie.com>)

2005-05-11  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/pmu.c (battery_refresh): Also use the
	util_compute_time_remaining here

2005-05-11  David Zeuthen  <davidz@redhat.com>

	Patch from Richard Hughes <richard@hughsie.com>

	* hald/util.c (util_compute_time_remaining): New function
	used to calculate the time remaining for ACPI laptops as the
	information is not provided.

	* hald/linux2/acpi.c (battery_refresh_poll): Add code to
	refresh "battery.remaining_time" using the new function
	util_compute_time_remaining.

2005-05-11  David Zeuthen  <davidz@redhat.com>

	* libhal/libhal.[ch]: Patch from Rohan McGovern <rohan.pm@gmail.com>
	to fix up Doxygen documentation. Thanks!

2005-05-09  David Zeuthen  <davidz@redhat.com>

	* fdi/policy/10osvendor/10-storage-policy.fdi: Add the 'mmc' bus
	to whitelist of storage devices we don't mind mounting. Verified to
	work by Pierre Ossman <drzeus-list@drzeus.cx>.

2005-05-08  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/addons/addon-hid-ups.c (ups_get_static): Assume
	battery is present (from Richard Hughes <richard@hughsie.com>)

2005-05-08  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/addons/addon-pmu.c: New file (polls /dev/apm for
	lid button events)

	* hald/linux2/addons/Makefile.am (libexec_PROGRAMS): Also build
	hald-addon-pmu

	* hald/linux2/pmu.c (battery_refresh): Support battery.current
	(lid_button_refresh): New function
	(pmu_lid_compute_udi): New function
	(pmu_poll): New function
	(pmu_synthesize_hotplug_events): Add lid object and setup a timeout
	for polling

	* fdi/policy/10osvendor/10-power-mgmt-policy.fdi: Run the pmu addon
	to detect lid button events.

2005-05-02  David Zeuthen  <davidz@redhat.com>

	* tools/gen-libgphoto-hal-fdi: Generate HAL fdi file - script from 
	Pozsar Balazs <pozsy@uhulinux.hu>; slightly tweaked by me

2005-05-02  David Zeuthen  <davidz@redhat.com>

	* fdi/information/10freedesktop/Makefile.am: Add 10-camera-ptp.fdi.
	Also add 10-usb-pda.fdi that was forgotten

	* fdi/information/10freedesktop/10-camera-ptp.fdi: New file to detect
	PTP cameras

2005-05-02  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/addons/addon-storage.c (unmount_childs): Also unmount
	by mount point here

2005-04-29  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/blockdev.c (update_mount_point): Fix the TODO about
	using major:minor to check for whether something is mounted. Now
	it works with e.g. 'mount /dev/dvd /mnt/tmp' where /dev/dvd is
	a symlink to the real device and /mnt/tmp nor /dev/dvd is mentioned
	in the /etc/fstab file.
	(force_unmount): Use mount point, not device name (from Rohan
	McGovern <rohan.pm@gmail.com>).

2005-04-27  David Zeuthen  <davidz@redhat.com>

	* configure.in: Bump for release

	* NEWS: Update for release

2005-04-27  David Zeuthen  <davidz@redhat.com>

	* tools/device-manager/*.py: Patch from John (J5) Palmieri
	<johnp@redhat.com>: I am about to check in my changes to the dbus
	python bindings and roll a release.  Here is a patch to get Hal
	working with it.  

2005-04-27  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/addons/addon-usb-csr.c (main): Fix compilation error
	now that this piece of code actually compiles.

	* configure.in: Doh, check for libusb-config, not libusb-configxxx.
	Fix from Richard Hughes <hughsient@gmail.com>.

2005-04-27  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/osspec_linux.h: Remove prototype for the function
	hal_util_get_device_file().

	* hald/linux2/osspec.c (hal_util_get_udevinfo_path): Remove 
	(hal_util_get_device_file): Remove 

	* hald/linux2/coldplug.c (hal_util_get_udevinfo_path): Move from 
	osspec.c 
	(hal_util_get_sysfs_to_dev_map): New function
	(coldplug_synthesize_events): Get the sysfs->dev map in one go using
	'udevinfo -d' available in udev since at least version 057.

	* configure.in: Bump dbus requirement to 0.33 since the new dbus is
	out.

2005-04-27  David Zeuthen  <davidz@redhat.com>

	* libhal/libhal.c (libhal_device_set_property_helper): Don't leak the
	DBusMessage objects

	* hald/hald_dbus.c (sender_has_privileges): Don't leak the error and
	actually return FALSE if sender is unprivileged. Also fix up spelling.

2005-04-18  David Zeuthen  <davidz@redhat.com>

	* configure.in: Bump glib-2.0 requirement to 2.6.0; change dbus-1 and
	dbus-glib-1 to back 0.32 so it works with patched 0.32 tarballs. glib
	observation from Rohan <rohan.pm@gmail.com>.

2005-04-14  David Zeuthen  <davidz@redhat.com>

	Make hal handle APM nicely.

	* hald/linux2/apm.c (apm_poll): New function
	(battery_refresh): Hmm, APM reports -1 if battery is absent.
	s/system.ac_adapter/ac_adapter/ - Patch from Bill
	Nottingham <notting@redhat.com>
	(apm_synthesize_hotplug_events): Add time for APM polling

2005-04-13  David Zeuthen  <davidz@redhat.com>

	Some patches from Martin Pitt <martin@piware.de>.

	* tools/device-manager/Representation.py:
	(Representation.load_and_scale_icon): Use TRUE instead of gtk.TRUE
	since the latter is deprecated

	* hald/hald.c (main): Drop privileges a bit later so we have a
	chance to bind to the netlink socket

2005-04-11  David Zeuthen  <davidz@redhat.com>

	* configure.in: Add /var/lib/music to the search path for pci.ids.
	Patch from Murray Cumming <murrayc@murrayc.com>, fdo bug #2547.

2005-04-08  David Zeuthen  <davidz@redhat.com>

	Make all hal helpers use a direct connection to hald rather than
	going through the bus. This is for both performance and security
	reasons. Also, fix the reconnect issue and don't connect to the
	system message bus before probing is done.

	* configure.in: Require dbus 0.33; that, for now, means D-BUS CVS
	HEAD since it requires the patch in fd.o bug #2889 and D-BUS made
	a post-release version bump. I'll look into doing a D-BUS release
	soon.

	* libhal/libhal.h: Export prototype for libhal_ctx_init_direct()

	* libhal/libhal.c (libhal_ctx_init_direct): New convenience function
	for connecting directly to hald instead of going through the message
	bus (requires the address in the HALD_DIRECT_ADDR environment variable)

	* hald/util.c (hal_util_helper_invoke): Export the local hald dbus
	server address in HALD_DIRECT_ADDR

	* hald/hald_dbus.c (manager_send_signal_device_added): Handle the
	case where we're not connected to the system message bus
	(manager_send_signal_device_removed): -do-
	(manager_send_signal_new_capability): -do-
	(device_property_atomic_update_end): -do-
	(device_send_signal_property_modified): -do-
	(device_send_signal_condition): -do-
	(device_set_property): Always allow local interface
	(device_add_capability): -do-
	(device_remove_property): -do-
	(device_rescan): -do-
	(device_reprobe): -do-
	(device_emit_condition): -do-
	(hald_dbus_filter_handle_methods): New function
	(hald_dbus_filter_function): Move bulk of functionality to the new
	hald_dbus_filter_handle_methods() and pass local_interface==FALSE.
	Handle Disconnect from local libdbus properly and attempt to
	reconnect to the system message bus every so often (every 3 secs)
	(local_server_message_handler): New function
	(local_server_unregister_handler): New function
	(local_server_handle_connection): New function
	(hald_dbus_local_server_addr): New function
	(hald_dbus_local_server_init): New function

	* hald/hald.c (main): Register a local dbus server instead of
	connection to the system bus as startup
	(osspec_probe_done): Only connect to the system bus once probing
	is done

	* tools/fstab-sync.c (main): Use direct connection

	* hald/linux2/probing/probe-volume.c (main): Use direct connection

	* hald/linux2/probing/probe-storage.c (main): Use direct connection

	* hald/linux2/probing/probe-smbios.c (main): Use direct connection

	* hald/linux2/probing/probe-printer.c (main): Use direct connection

	* hald/linux2/probing/probe-hiddev.c (main): Use direct connection

	* hald/linux2/probing/probe-input.c (main): Use direct connection

	* hald/linux2/addons/addon-usb-csr.c (main): Use direct connection

	* hald/linux2/addons/addon-storage.c (main): Use direct connection

	* hald/linux2/addons/addon-hid-ups.c (main): Use direct connection

	* hald/linux2/addons/addon-acpi.c (main): Use direct connection

	* hald/linux2/probing/probe-pc-floppy.c (main): Remove all references
	to hal and dbus since this program just returns the result in the
	exit code

2005-04-06  Kay Sievers  <kay.sievers@vrfy.org>

	* hald/linux2/probing/probe-volume.c: (main): read volume label
	from last session of optical multisession disk.

2005-04-04  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/addons/Makefile.am (libexec_PROGRAMS): Only build
	hald-addon-usb-csr if we have libusb

	* configure.in: Check for libusb (since it appear not to build
	on s390/s390x if we don't have it)

2005-04-04  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/probing/probe-storage.c (main): storage.serial and
	storage.firmware_revision may return bogus data so don't quit
	if we fail when setting it (Red Hat bug #151762)

2005-04-04  David Zeuthen  <davidz@redhat.com>

	* fdi/information/10freedesktop/10-wireless-mice.fdi: Change 
	battery.type from 'keyboard_mouse' to just 'keyboard'.

2005-04-04  David Zeuthen  <davidz@redhat.com>

	* libhal-storage/libhal-storage.c: Fix for when gettext is
	not available. From Steve Grubb <sgrubb@redhat.com>.

2005-04-04  David Zeuthen  <davidz@redhat.com>
	
	* po/zh_TW.po: New file from chaoweilun@pcmail.com.tw

	* po/ChangeLog: Updated

	* configure.in: Added zh_TW to ALL_LINGUAS

2005-04-02  Richard hughes  <richard@hughsie.com>
	
	* hald/linux2/addons/addon-usb-csr: Fix a problem where
	the capability was being added before the charge_level key
	way set, causing programs watching for the "new capability"
	to not be able to query the key until it was restarted.
 
2005-03-30  David Zeuthen  <davidz@redhat.com>

	* fdi/information/10freedesktop/10-usb-pda.fdi: Match for info.
	capabilities instead of info.bus

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

	* fdi/information/10freedesktop/10-usb-pda.fdi: Update from
	Andrei Yurkevich <urruru@ru.ru>; slightly tweaked by me

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

	* fdi/information/10freedesktop/10-usb-pda.fdi: New file to
	match all PDA's - right now it only got a single entry

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

	* libhal/libhal.c (filter_func): Stupid bug; checked for ctx->
	device_new_capability, but should check for ctx->device_condition

	* hald/linux2/physdev.c (pci_add): Even more stupid bug; somehow
	the hal_util_set_driver were enclosed in an if statement, thus
	rendering the next statement conditional (the one that sets
	pci.product_id)

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

	Patch from Sergey Udaltsov <sergey.udaltsov@gmail.com>, slightly
	tweaked to be in line with the spec

	* hald/linux2/addons/addon-usb-csr.c: New file

	* fdi/information/10freedesktop/10-wireless-mice.fdi: New file

	* doc/spec/hal-spec.xml.in: Add keyboard_mouse as allowed value for
	battery.type

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

	* hald/linux2/physdev.c: Actuall change driver property to be uniform,
	e.g. put it in info.linux.driver

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

	* hald/linux2/probing/probe-storage.c (main): Add some extra debugging
	to help me with RH bug #151762

	* hald/linux2/physdev.c: Set <bustype>.linux.driver for all bus devices

	* hald/linux2/classdev.c (net_add): Don't set net.linux.driver, first
	of all because it doesn't make sense (drivers don't bind to class
	devices, they bind to physical devices), second because the Linux
	kernel moved around where the driver symlink is.

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

	* doc/TODO: Add a small item here

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

	Teach hal about Firewire devices; tested with both my iPod and
	my Powerbook in Target Disk Mode

	* tools/device-manager/Const.py.in: Collapse ieee1394_host
	and ieee1394_node into ieee1394

	* hald/linux2/physdev.c (ieee1394_add): New function
	(ieee1394_compute_udi): New function

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

	* hald/util.c (hal_util_grep_file): Remove some debug spewage

2005-03-17  Richard hughes  <richard@hughsie.com>

	* hald/linux2/apm.c (battery_refresh):
	Fix a typo, s/battery.charge_level/battery.charge_level.current
	so that matches ACPI (and HAL spec).

	* hald/linux2/addons/addon-hid-ups.c:
	Fix a typo, s/battery.is_charging/battery.rechargeable.is_charging
	so that matches ACPI (and HAL spec).

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

	* tools/linux/hal_hotplug.c: We need to look for the
	sysfs_mount_path only if we read the ifindex from a network
	interface. This safes us from parsing the proc file with every
	hotplug event. From Kay Sievers <kay.sievers@vrfy.org>.

2005-03-16  Kay Sievers  <kay.sievers@vrfy.org>

	Replace boolean action type of hotplug event with enum, cause
	hotplug actions are not limited to "add" and "remove" events. The
	kernel already emits "online", "offline" hotplug events for
	hotplugging cpu's.

	* hald/linux2/acpi.c: (acpi_synthesize),
	(acpi_generate_add_hotplug_event),
	(acpi_generate_remove_hotplug_event):

	* hald/linux2/apm.c: (apm_synthesize_hotplug_events),
	(apm_generate_add_hotplug_event),
	(apm_generate_remove_hotplug_event):

	* hald/linux2/blockdev.c:
	(generate_fakevolume_hotplug_event_add_for_storage_device),
	(blockdev_generate_add_hotplug_event),
	(blockdev_generate_remove_hotplug_event):

	* hald/linux2/classdev.c: (classdev_generate_add_hotplug_event),
	(classdev_generate_remove_hotplug_event):

	* hald/linux2/coldplug.c: (coldplug_synthesize_events),
	(coldplug_synthesize_block_event), (coldplug_compute_visit_device):

	* hald/linux2/hotplug.c: (hotplug_event_begin_sysfs),
	(hotplug_event_begin_acpi), (hotplug_event_begin_apm),
	(hotplug_event_begin_pmu):

	* hald/linux2/hotplug.h:

	* hald/linux2/osspec.c: (hald_helper_data):

	* hald/linux2/physdev.c: (physdev_generate_add_hotplug_event),
	(physdev_generate_remove_hotplug_event):

	* hald/linux2/pmu.c: (pmu_synthesize_hotplug_events),
	(pmu_generate_add_hotplug_event),
	(pmu_generate_remove_hotplug_event):

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

	* hald/util.c (hal_util_get_string_from_file): Yikes, variable i
	needs to be a gint rather than an guint otherwise our for-loop
	with i >= 0 will continue with i < 0 (only seen on x86_64 with
	gcc4)

	* hald/linux2/classdev.c (serial_add): Also make an unsigned int
	an int cf. above comment

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

	* fdi/information/10freedesktop/10-usb-card-readers.fdi: Add
	device-information for the builtin USB2 card reader in my HP Media
	Center x86_64 box

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

	* doc/TODO (CVSID): Add a few items

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

	Two patches from Kay Sievers Kay Sievers <kay.sievers@vrfy.org>

	* hald/linux2/physdev.c (usb_add): Such events should not happen, 
	but better recover from it. :) SEQNUM=0 ACTION=add DEVPATH=
	"/devices/pci0000:00/0000:00:1d.7" /usr/libexec/hal.hotplug usb

	* hald/linux2/hotplug.c (hotplug_event_begin_sysfs): While playing
	around with hotplug event replay from initramfs, it happens, that
	events are generated for devices HAL already knows from its
	coldplug run. This leads to a lot of funny double entries in the
	device store. :) We should prevent the device addition by hotplug
	events if we already have one with the same sysfs-devpath.

2005-03-12  W. Michael Petullo  <mike@flyn.org>

	* hald/linux2/blockdev.c: s/sesame/luks.

	* hald/linux2/coldplug.c: Ensure that device mapper devices are
	processed after all other block devices.

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

	* tools/linux/add_selinux.c (main): Check if selinux is enabled,
	cause we still get the removable context on kernels where SELinux
	is disabled

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

	* tools/hal_get_property.c (main): Make this work for strlists

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

	Bah, I still need to update the spec for all the new stuff; until
	then, here's some other new stuff - one very relevant use for this
	is that we can key off whether a system can ACPI S3 by e.g. looking
	at the new smbios.* properties on computer (so distros can maintain
	a whitelist) - another interesting one is system.formfactor that
	e.g. Nautilus can use to select the right icon for Computer

	* hald/linux2/probing/probe-smbios.c: New file; invoke dmidecode
	and extract useful properties

	* hald/linux2/probing/Makefile.am: Add build rules for new prober
	hald-probe-smbios

	* hald/linux2/osspec.c (computer_probing_helper_done): New function
	(computer_probing_pcbios_helper_done): New function
	(osspec_probe): Do the hald-probe-smbios if system supports ACPI or
	APM; add note to do something similar for PowerMac's etc.

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

	* hald/linux2/probing/probe-volume.c (main): Patch from Kay
	Sievers <kay.sievers@vrfy.org> I need the following to make linux
	raid volumes working again. I have a test disk here, that does not
	work with the new HAL.

2005-03-11  Kay Sievers  <kay.sievers@vrfy.org>

	Add all the ATA raid signatures which are supported in the dmraid
	library. volume_id will just recognize the raid signatures and set
	the usage to raid, to prevent raid members to show up as mountable
	volumes. Any detailed informatiuon about the raid set must be
	queried with the original lib.

	* volume_id/Makefile.am:

	* volume_id/highpoint.c: (volume_id_probe_highpoint_37x_raid),
	(volume_id_probe_highpoint_45x_raid):

	* volume_id/highpoint.h:

	* volume_id/isw_raid.c: (volume_id_probe_intel_software_raid):

	* volume_id/isw_raid.h:

	* volume_id/linux_raid.c: (volume_id_probe_linux_raid):

	* volume_id/logging.h:

	* volume_id/lsi_raid.c: (volume_id_probe_lsi_mega_raid):

	* volume_id/lsi_raid.h:

	* volume_id/ntfs.c: (volume_id_probe_ntfs):

	* volume_id/nvidia_raid.c: (volume_id_probe_nvidia_raid):

	* volume_id/nvidia_raid.h:

	* volume_id/promise_raid.c:
	(volume_id_probe_promise_fasttrack_raid):

	* volume_id/promise_raid.h:

	* volume_id/silicon_raid.c: (volume_id_probe_silicon_medley_raid):

	* volume_id/silicon_raid.h:

	* volume_id/via_raid.c: (volume_id_probe_via_raid):

	* volume_id/via_raid.h:

	* volume_id/volume_id.c: (volume_id_probe_all):

	* volume_id/volume_id.h: Version 42.

2005-03-11  Kay Sievers  <kay.sievers@vrfy.org>

	* volume_id/Makefile.am: add minix probing code

	* volume_id/luks.c: 

	* volume_id/minix.c: New file.

	* volume_id/minix.h: New file.

	* volume_id/util.c: (volume_id_set_unicode16),
	(volume_id_set_label_unicode16): Export unicode converter.

	* volume_id/util.h: Export unicode converter.

	* volume_id/volume_id.c: (volume_id_probe_all): Add minix.

	* volume_id/volume_id.h: Version 41.

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

	* hald/linux2/acpi.c (battery_refresh_poll): Also set property
	battery.charge_level.rate
	(acpi_poll): Make the update atomic
	
	* doc/spec/hal-spec.xml.in: Update for battery.charge_level.rate

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

	Bah, so it turns out that crappy BIOS'es and what-have-you gets really
	upset of hald, every five seconds, accessing the state file three
	times and the info file one time (in /proc/acpi/battery/BAT%d)

	https://www.redhat.com/archives/fedora-devel-list/2005-March/msg00704.html

	So, off to read the battstat applet source - fix this up so we
	only access a single file every 30 seconds; just like battstat applet.

	I really hate hardware.

	* hald/linux2/acpi.c (ACPI_POLL_INTERVAL): Only poll every 30 seconds
	(battery_refresh_poll): New function
	(battery_refresh): Call battery_refresh_poll
	(acpi_poll): Call battery_refresh_poll instead of acpi_rescan_device

	* hald/util.c (hal_util_grep_file): Fix this so the last read buffer
	is cached for reuse

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

	* hald/linux2/addons/addon-acpi.c (main): Handle /proc/acpi/event
	as a file, not a socket. Now we can run without acpid :-). Reported
	by Bill Nottingham.

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

	Release 0.5.0

	* NEWS: Update for release

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

	* hald/hald_test.c (main): Back out libhal testing code for now.
	(check_properties): We've changed the semantics of hal_device_
	property_strlist_add so change test suite accordingly
	
	* doc/TODO: Add note about extending test suite coverage

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

	* doc/TODO: Forgot one important TODO about finishing the
	volume_id library (pretty please Kay :-)

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

	* doc/TODO: Updated this to reflect reality

	* hald/linux2/pmu.c (battery_refresh): Pass reuse=FALSE
	(ac_adapter_refresh): Pass reuse=FALSE

	* hald/linux2/classdev.c (sound_add): pass reuse=FALSE

	* hald/linux2/acpi.c: Poll every five secs instead of every two secs
	as this actually is a very expensive operation - someone needs to
	optimize hald/util.c:hal_util_grep_file before we can change this -
	see the TODO in that function
	(battery_refresh): Use the hal_util_grep_discard_existing_data() since
	we are passing reuse=TRUE. Minimize amount of reads.
	(fan_refresh): Don't set processor.number here (!)

	* hald/util.c (hal_util_grep_discard_existing_data): New function to
	purge "reused" data
	(hal_util_grep_file): Take the reuse parameter
	(hal_util_grep_string_elem_from_file): Take and pass reuse param
	(hal_util_grep_int_elem_from_file): Take and pass reuse param
	(hal_util_set_string_elem_from_file): Take and pass reuse param
	(hal_util_set_int_elem_from_file): Take and pass reuse param
	(hal_util_set_bool_elem_from_file): Take and pass reuse param

	* hald/util.h: Fixup prototypes for functions above and add prototype
	for hal_util_grep_discard_existing_data

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

	* hald/linux2/acpi.c (ACPI_POLL_INTERVAL): Change this to every
	two secs instead of every ten secs

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

	* hald/linux2/blockdev.c (blockdev_get_luks_uuid): Only sleep
	the 0.5s if we are not initialising
	(hotplug_event_begin_add_blockdev): Don't leak the HalDevice object

2005-03-02  W. Michael Petullo  <mike@flyn.org>

	* hald/linux2/blockdev.c: Add ability to identify volumes in
	/dev/mapper as the counterpart to a LUKS+encrypted device.

2005-03-04  Kay Sievers  <kay.sievers@vrfy.org>

	* volume_id/luks.c: (volume_id_probe_luks): Remove unneeded stuff.

	* volume_id/volume_id.h: Version v37.

2005-03-02  W. Michael Petullo  <mike@flyn.org>

	* volume_id/luks.c: (volume_id_probe_luks) Use new 
	UUID_DCE_UNPARSED format for volume_id_set_uuid call.

	* volume_id/util.c: (volume_id_set_uuid) Add UUID_DCE_UNPARSED
	format.

	* volume_id/util.h: Add UUID_DCE_UNPARSED format.

	* volume_id/volume_id.c: Only #include "luks.h" once.

2005-03-03  David Zeuthen  <david@fubar.dk>

	* hald/linux2/classdev.c (serial_add): New function (note the TODO :-)
	(serial_compute_udi): New function

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

	* hald/linux2/acpi.c (battery_refresh): Remove .last_full, not .maximum

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

	* doc/spec/hal-spec.xml.in: Change this to remove the property
	battery.charge_level.maximum and introduce battery.charge_level.design
	and battery.charge_level.last_full instead

	* hald/linux2/addons/addon-hid-ups.c (ups_get_static): Update code
	to use new the new properties

	* hald/linux2/pmu.c (battery_refresh): Update code to use new the
	new properties

	* hald/linux2/apm.c (battery_refresh): Update code to use new the
	new properties

	* hald/linux2/acpi.c (battery_refresh): Update code to use new the
	new properties

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

	* hald/linux2/acpi.c (acpi_poll): New function
	(acpi_synthesize_hotplug_events): Setup timeout every ten seconds to
	poll batteries (since some ACPI implementations don't report back when
	the battery charge level changes)

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

	* hald/linux2/addons/addon-acpi.c (main): Do call Rescan() when we
	get a battery event

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

	* hald/linux2/acpi.c (processor_refresh): s/system.processor/processor/

2005-03-02  Richard Hughes  <richard@hughsie.com>

	* hald/linux2/acpi.c (processor_refresh, fan_refresh): New
	functions to handle additional ACPI devices.

	* hald/linux2/acpi.c (acpi_synthesize_hotplug_events): Added
	processor and fan handlers.
 
2005-03-02  David Zeuthen  <david@fubar.dk>

	* hald/linux2/classdev.c (sound_add): Rename alsa.id to alsa.card_id;
	add alsa.device_id; fixup info.product to be more useful

	* doc/spec/hal-spec.xml.in: Update for alsa.* properties

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

	* libhal/libhal.c (filter_func): Remove foo[012] messages

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

	* tools/device-manager/DeviceManager.py:
	(DeviceManager.remove_device_signal_recv): Do add PropertyModified
	though

2005-03-02  Richard Hughes  <richard@hughsie.com>

	* doc/spec/hal-spec.xml.in: Removed all the 'system.' 
	prefixes to the ACPI and PMU objects, they serve no purpose
	other to confuse people.

	* hald/linux2/acpi.c (ac_adapter_refresh, button_refresh):
	Removed 'system.' prefix.
 
	* hald/linux2/pmu.c (ac_adapter_refresh): Removed 
	'system.' prefix.
 
	* hald/util.c: Updated comment regarding 'system.'
 
2005-03-02  David Zeuthen  <davidz@redhat.com>

	* tools/device-manager/DeviceManager.py: Move some things around
	only to discover that D-BUS python bindings need fixing to actually
	push signals we subscribe to without giving the path...

	* tools/lshal.c (device_condition): Fix this function so it works
	after the DeviceCondition format changes earlier

	* libhal/libhal.h: Export prototype for libhal_device_emit_condition

	* libhal/libhal.c (libhal_device_emit_condition): New function

	* hald/linux2/addons/addon-storage.c (main): Fix that we should
	be verbose

	* hald/linux2/addons/addon-acpi.c (read_line): Rewrite this
	to not malloc all over the place
	(main): Try two places for ACPI events. Rework parsing of events
	and send out DeviceConditions where appropriate

	* hald/hald_dbus.c (device_emit_condition): New function
	(hald_dbus_filter_function): Handle EmitCondition

2005-03-01  Richard Hughes  <richard@hughsie.com>

	* hald/linux2/addons/addon-acpi.c (main): Call
	libhal_device_rescan for each ACPI event.

2005-02-28  Richard Hughes  <richard@hughsie.com>

	* doc/spec/hal-spec.xml.in: Added ALSA namespace

	* hald/linux2/classdev.c (sound_add, sound_compute_udi): New
	functions to handle ALSA devices.
 
	* ChangeLog: Updated my email address in this file.

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

	* hald/hald_dbus.c (foreach_device_by_capability): Fixup this
	function to work with the new D-BUS API
	(device_lock): Be consistent with new D-BUS naming, e.g. use
	info.locked.dbus_name instead of info.lock.dbus_service
	(device_unlock): -do-
	(service_deleted): Use NameOwnerChanged instead of NameLost as
	the latter only goes to the service who's lost the name
	(hald_dbus_filter_function): -do-
	(hald_dbus_init): Subscribe to NameOwnerChanged rather than
	NameLost

	* examples/locking.py: Fixup to use get_unique_name() instead of
	get_base_service()

2005-02-28  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/ids.c: Added TOS6200, TOS6202, TOS6207 entries from
	Richard Hughes <richard@hughsie.com> - he got them from
	http://homel.vsb.cz/~pop036/files/acpi_toshiba.c

2005-02-28  David Zeuthen  <davidz@redhat.com>

	* tools/linux/hal_hotplug.c (main): Use "hal.hotplug" instead of 
	"hal.hotplug2" for syslog. Don't write a message for every entry.

	* hald/linux2/probing/probe-volume.c (main): Only probe for fs on
	optical disc if there is indeed data on the disc

	* hald/linux2/probing/probe-storage.c (main): Fix up debug outputs;
	don't read fs on cdrom's, only check if there is a disc. Don't use
	O_NONBLOCK on non-cdrom's.

	* hald/linux2/classdev.c (add_classdev_probing_helper_done): Handle
	that HalDevice object is already unreffed

	* hald/linux2/blockdev.c (add_blockdev_probing_helper_done): Handle
	that HalDevice object is already unreffed
	(block_rescan_storage_done): -do-

	* hald/util.h (struct HalHelperData_s): Add already_issued_kill field

	* hald/util.c (hal_util_terminate_helper): Don't kill helpers twice
	and don't callback more than once
	(helper_child_timeout): Don't callback more than once
	(helper_device_object_finalized): Finalized; being called when
	a HalDevice object is finalized; use this as hint to terminate
	the helper
	(helper_child_exited): Remove the weak reference to the HalDevice
	object
	(hal_util_helper_invoke): Create a weak reference to the HalDevice
	object so we get a callback when it's finalized

	* hald/hald.c (main): Bah, put LIBEXECDIR at the end so we get
	the local helpers when running via run-hald.sh

2005-02-27  David Zeuthen  <davidz@redhat.com>

	More fun with valgrind :-)

	* hald/linux2/classdev.c: Fix a bunch of leaks by calling
	g_object_unref for HalDevice objects that goes away

	* hald/linux2/physdev.c: Fix a bunch of leaks by calling
	g_object_unref for HalDevice objects that goes away

	* hald/linux2/hotplug.c (hotplug_event_begin_sysfs): Don't
	leak parent_path

	* hald/linux2/coldplug.c (free_hash_sys_to_class_in_dev): New
	function; to free values of the sysfs_to_class_in_devices_map
	hashtable
	(coldplug_synthesize_events): Fix memory leaks

	* hald/linux2/blockdev.c: Fix a bunch of leaks by calling
	g_object_unref for HalDevice objects that goes away

	* hald/property.c (hal_property_set_string): Don't leak old value

	* hald/hald_dbus.c (sender_has_privileges): Fixup error handling
	(device_property_atomic_update_end): Fix memory leak

	* hald/hald.h: Add HALD_MEMLEAK_DBG but uncomment it by default

	* hald/hald.c (my_shutdown): New function, defined only if
	HALD_MEMLEAK_DBG is set; should prolly be invoked by handler
	registered with atexit(3); some day in the future
	(osspec_probe_done): Add appropriate timeout if HALD_MEMLEAK_DBG
	is et

	* hald/device.c (hal_device_finalize, hal_device_new): Recognize
	the HALD_MEMLEAK_DBG define and maintain dbg_hal_device_object_delta
	accordingly.
	(hal_device_set_udi): Don't leak old udi

	* hald/valgrind-hald.sh: New file - useful for finding memory
	leaks

2005-02-27  David Zeuthen  <davidz@redhat.com>

	Played around with Valgrind on this slow Sunday :-). Before this
	patch options 'valgrind --show-reachable=yes --leak-check=yes
	--tool=memcheck ./hald --daemon=no --retain-privileges' - remember
	to set up environment variables as in run-hald.sh. Some of the
	output:

	497664 bytes in 486 blocks are still reachable in loss record 33 of 35
	     at 0x1B908984: malloc (vg_replace_malloc.c:131)
             by 0x4DE983: (within /usr/lib/libexpat.so.0.5.0)
             by 0x4E1729: XML_ParserCreate_MM (in /usr/lib/libexpat.so.0.5.0)
             by 0x4E17C1: XML_ParserCreate (in /usr/lib/libexpat.so.0.5.0)

	1003104 bytes in 972 blocks are still reachable in loss record 34 of 35
             at 0x1B908984: malloc (vg_replace_malloc.c:131)
             by 0x4DD4A2: (within /usr/lib/libexpat.so.0.5.0)
             by 0x4DD5F1: (within /usr/lib/libexpat.so.0.5.0)
             by 0x4E0596: (within /usr/lib/libexpat.so.0.5.0)

	2115584 bytes in 486 blocks are still reachable in loss record 35 of 35
             at 0x1B908984: malloc (vg_replace_malloc.c:131)
             by 0x4DC64E: XML_GetBuffer (in /usr/lib/libexpat.so.0.5.0)
             by 0x4DC91E: XML_Parse (in /usr/lib/libexpat.so.0.5.0)
             by 0x805093E: scan_fdi_files (device_info.c:1282)

	LEAK SUMMARY:
	   definitely lost: 20034 bytes in 769 blocks.
	   possibly lost:   1057 bytes in 21 blocks.
	   still reachable: 5289701 bytes in 19813 blocks.
	   suppressed: 0 bytes in 0 blocks.

	plus some illegal memory access errors. After this patch

	130613 bytes in 1 blocks are still reachable in loss record 23 of 24
	   at 0x1B908984: malloc (vg_replace_malloc.c:131)
	   by 0x80610E2: ids_init (ids.c:514)
	   by 0x8056A15: osspec_init (osspec.c:337)
	   by 0x8051DF8: main (hald.c:591)

	322003 bytes in 1 blocks are still reachable in loss record 24 of 24
	   at 0x1B908984: malloc (vg_replace_malloc.c:131)
	   by 0x806101D: ids_init (ids.c:292)
	   by 0x8056A15: osspec_init (osspec.c:337)
	   by 0x8051DF8: main (hald.c:591)

	LEAK SUMMARY:
	   definitely lost: 20884 bytes in 774 blocks.
	   possibly lost:   800 bytes in 20 blocks.
	   still reachable: 643659 bytes in 4499 blocks.

	which gives us a net saving of approx 4.5MB. Sweet. (yes, this
	ChangeLog is somewhat a weblog for me these days)

	* hald/device_info.c (process_fdi_file): Fix up error handling;
	remember to free the XML_Parser context which fixes a 4.5MB memory
	leak on my system.

	* hald/linux2/coldplug.c (coldplug_synthesize_events): Free strings
	to seal a leak

	* hald/util.h: Export hal_util_hexdump prototype

	* hald/util.c (hal_util_grep_string_elem_from_file): Yikes, make
	this a static buffer since we're returning a pointer to this
	variable.
	(hal_util_hexdump): New convenience function

	* hald/hald_dbus.c (device_add_capability): Fixup this function to
	actually work now that info.capabilities is a strlist

	* hald/hald.c (parent_wait_for_child): Fix unneeded char buf[1].

2005-02-26  David Zeuthen  <davidz@redhat.com>

	* fdi/policy/10osvendor/10-storage-policy.fdi: Fix syntax error

2005-02-26  David Zeuthen  <davidz@redhat.com>

	* fdi/policy/10osvendor/10-storage-policy.fdi: Use mount point
	'ipod' for iPod's (works better with gtkpod :-). Apply patch from
	Daniel Serpell <daniel.serpell@aplik.cl> that I got via Sjoerd
	Simons <sjoerd@luon.net> : The FDI rule that detects USB ZIP drive
	and names the mountpoint is incorrectly write, so partitioned
	ZIP's are named generically. The attached patch fixes the
	test (lookup in the parent of the partition).

	* fdi/information/10freedesktop/10-usb-music-players.fdi: Rename
	portable_audio_player.database_type to p_a_p.type

2005-02-26  David Zeuthen  <davidz@redhat.com>

	* fdi/information/10freedesktop/Makefile.am (dist_fdi_DATA): Remember
	to dist new files

2005-02-26  David Zeuthen  <davidz@redhat.com>

	* libhal-storage/libhal-storage.h: Add new LibHalDriveType entries
	for ZIP, JAZ and FLASH_KEY - the latter represents a USB memory stick.

	* libhal-storage/libhal-storage.c (my_strvdup): New function
	(libhal_drive_from_udi): Fixup new detection of cameras and 
	musicplayers. Also handle storage.drive_type zip, jaz and flash_key
	and convert to LibHalDriveType as appropriate

	* libhal/libhal.h: Fixup type for LibHalDeviceCondition

	* libhal/libhal.c (filter_func): Fix up condition handling now that
	it's a name and details string rather than a whole DBusMessage trailing
	off. Fix up a bunch of free's due to new memory ownership semantics
	in the new D-BUS
	(libhal_device_query_capability): Handle this now that capabilities
	is a strlist

	* hald/device.c (hal_device_merge): info.capabilities is now a strlist
	(hal_device_add_capability): -do-
	(hal_device_has_capability): -do-
	(hal_device_property_strlist_add): Return whether element was actually
	added

	* fdi/information/10freedesktop/10-usb-zip-drives.fdi: New file

	* fdi/information/10freedesktop/10-usb-music-players.fdi: New file

	* fdi/information/10freedesktop/10-usb-card-readers.fdi: New file

2005-02-25  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/probing/probe-pc-floppy.c: New file; test for floppy
	drive

	* hald/linux2/probing/Makefile.am: Add build rules for hald-probe-
	pc-floppy

	* hald/linux2/blockdev.c (blockdev_callouts_preprobing_storage_done): 
	Do a special probe to see if the PC Floppy Drive is actually there -
	since many IDE laptops got the controller chip but not the drive.
	(hotplug_event_begin_add_blockdev): Learn how to spell; floppy not
	floopy :-/

2005-02-25  David Zeuthen  <davidz@redhat.com>

	Get IDE Zip drives and PC Style floppy drives to work.

	* hald/linux2/blockdev.c (add_blockdev_probing_helper_done): Add a
	note that helper_data may be NULL
	(blockdev_callouts_preprobing_storage_done): Don't probe non-
	partitioned media where we cannot check for media 
	(hotplug_event_begin_add_blockdev): Fix up for PC floppy drives. Fix
	stoopid bug where == 0 was missing for strcmp (media, "floppy). Doh

	* fdi/policy/10osvendor/10-storage-policy.fdi: Remove selinux
	mount options here because it is handled elsewhere now

2005-02-25  Kay Sievers  <kay.sievers@vrfy.org>

	* volume_id/logging.h: Move HAL specific logging to this file.

	* volume_id/luks.c: (volume_id_probe_luks): Remove unused stuff.

	* volume_id/luks.h: Fix typo and copyright.

	* volume_id/reiserfs.c: (volume_id_probe_reiserfs): Support reiser4.

	* volume_id/volume_id.c: Include luks.h.

	* volume_id/volume_id.h: Version 36. Remove HAL specific logging.

2005-02-25  David Zeuthen  <davidz@redhat.com>

	* hald/hald_dbus.c (hald_dbus_filter_function): Patch from Ray Strode
	<rstrode@redhat.com> to catch up with D-BUS changes

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

	* configure.in: Add back selinux detection; default to auto

	* tools/linux/add_selinux.c: New file, add selinux attributes the
	Right Way(tm) instead of hardcoding the context (RH bug 135765)

	* tools/linux/Makefile.am: If HAVE_SELINUX is set, add build rules
	for hald-add-selinux-mount-option

	* fdi/policy/10osvendor/20-storage-add-selinux.fdi: New file, invoke
	hald-add-selinux-mount-option (only used if HAVE_SELINUX is 1)

	* tools/linux/hal_hotplug_map.c: Removed (forgot to remove it earlier)

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

	* hald/hald.c (parent_wait_for_child): Fixup accidental message being
	printed

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

	Finally got around to implementing the bit that made the parent wait
	for device probing when daemonizing. Hope that it's right this time
	cause the last time it resulted in breaking peoples pkg updates :-):
	
	https://www.redhat.com/archives/fedora-test-list/2004-August/msg00785.html	

	* hald/linux2/osspec.c (hotplug_queue_now_empty): New function; call
	osspec_probe_done if we're initialising and don't do anything else

	* hald/linux2/hotplug.h: Export prototype for hotplug_queue_now_empty

	* hald/linux2/hotplug.c (hotplug_event_process_queue): Call the
	function hotplug_queue_now_empty when we are out of hotplug (or
	coldplug :-) events to process.

	* hald/hald.c (handle_sigchld): New function
	(parent_wait_for_child): New function
	(main): Wait for child to finish device probing when daemonizing

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

	* hald/linux2/osspec.c (osspec_shutdown): Remove this function

	* hald/dummy/osspec.c (computer_callouts_add_done): New function
	(osspec_probe): Fixup to use new di_search_and_merge stuff

	* hald/util.h: Export prototype for hal_util_kill_all_helpers

	* hald/util.c (helper_child_exited): Remove from running_helpers list
	(hal_util_helper_invoke): Add to running_helpers list
	(hal_util_kill_all_helpers): New function (uses running_helpers list)

	* hald/osspec.h: Don't export osspec_shutdown and osspec_shutdown_done

	* hald/haldaemon.in: No need to add @LIBEXECDIR@ to PATH now that
	hald does that itself

	* hald/hald.c (main): Add PACKAGE_LIBEXEC_DIR to out path. Fix a fd
	leak also (pointed out by Kay Sievers).
	(sigterm_iochn_data): Kill all pending helpers and exit

	* hald/device_info.c (di_search_and_merge): Fixup some stupid typos

	* hald/Makefile.am (INCLUDES): Include PACKAGE_LIBEXEC_DIR

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

	* fdi/README: Change so this fits better with current packaging
	policies; see this message and thread at
	http://lists.freedesktop.org/archives/hal/2005-February/002217.html

	* fdi/preprobe/*/Makefile.am, fdi/information/*/Makefile.am,
 	fdi/policy/*/Makefile.am: Fix up Makefile.am to install to the
	correct location. Also add 10-ide-drives.fdi to

	* fdi/preprobe/10osvendor/Makefile.am (dist_fdi_DATA): Add 
	10-ide-drives.fdi

	* hald/device_info.c (di_search_and_merge): Use new search
	logic as outlined in fdi/README

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

	* tools/Makefile.am: Don't install the 50-fstab-sync.hal symlink
	as we do callouts in a different way now!

	* hald/haldaemon.in: Until privilege separation is complete, run
	with --retain-privileges. Also export LIBEXECDIR as our addons
	and probers will be installed there

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

	Fix a few things to get 'make distcheck' to succeed.

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

	* tools/linux/hal_hotplug_map.c: Removed

	* tools/linux/Makefile.am: Remove build rules for hal-hotplug-map

	* hald/linux2/physdev.c: Callouts now take two userdata pointers
	(physdev_callouts_preprobing_done): New function
	(hotplug_event_begin_add_physdev): Run preprobing callouts
	just before real probing (flow continues in the above function)

	* hald/linux2/osspec.c: Callouts now take two userdata pointers

	* hald/linux2/classdev.c: Callouts now take two userdata pointers
	(classdev_callouts_preprobing_done): New function
	(hotplug_event_begin_add_classdev): Run preprobing callouts
	just before real probing (flow continues in the above function)

	* hald/linux2/blockdev.c: Callouts now take two userdata pointers
	(blockdev_callouts_preprobing_storage_done): New function
	(blockdev_callouts_preprobing_volume_done): New function
	(hotplug_event_begin_add_blockdev): Run preprobing callouts just
	before real probing (flow continues in the two above
	functions)

	* hald/linux2/apm.c: Callouts now take two userdata pointers

	* hald/linux2/acpi.c: Callouts now take two userdata pointers

	* hald/util.h: Fix up prototypes for callouts to take two userdata
	pointers. Add hal_util_callout_device_preprobe prototype.

	* hald/util.c: Change callouts to take two userdata pointers
	(hal_util_callout_device_preprobe): New function

	* hald/hald.c (main): Don't call hald_read_conf_file() as this
	is now gone.

	* hald/device_info.h (di_search_and_merge): Tweak prototype for
	di_search_and_merge to take a DeviceInfoType parameter

	* hald/device_info.c (di_search_and_merge): Lookup new environment
	variables

	* hald/run-hald.sh: Use new environment variables for specifying
	fdi file location

	* hald/debug-hald.sh: Use new environment variables for specifying
	fdi file location

	* hald/Makefile.am: Don't link with libselinux and don't install
	callout directories
	(hald_test_SOURCES): Remove hald_conf.[ch]
	(hald_SOURCES): Remove hald_conf.[ch].

	* configure.in: Add notes about how to tweak the hal tarball for a
	particular distribution or OS. Rework the details a bit. Remove the
	hotplug_map rules. Remove selinux bits (for now). Rework what fdi
	file directory Makefile's to generate.

	* hald/hald.conf: Removed

	* hald/hald_conf.[ch]: Removed

	* fdi/Makefile.am (SUBDIRS): Specificy new subdirs

	* fdi/preprobe: New

	* fdi/preprobe/Makefile.am: New

	* fdi/preprobe/10osvendor: New

	* fdi/preprobe/10osvendor/10-ide-drives.fdi: New

	* fdi/preprobe/10osvendor/Makefile.am: New

	* fdi/preprobe/20thirdparty: New

	* fdi/preprobe/20thirdparty/Makefile.am: New

	* fdi/preprobe/30user: New

	* fdi/preprobe/30user/Makefile.am: New

	* fdi/information: New

	* fdi/information/Makefile.am: New

	* fdi/information/10freedesktop: New

	* fdi/information/10freedesktop/Makefile.am: New

	* fdi/information/20thirdparty: New

	* fdi/information/20thirdparty/Makefile.am: New

	* fdi/information/30user: New

	* fdi/information/30user/Makefile.am: New

	* fdi/policy: New

	* fdi/policy/Makefile.am: New

	* fdi/policy/10osvendor: New

	* fdi/policy/10osvendor/10-storage-policy.fdi: New

	* fdi/policy/10osvendor/10-power-mgmt-policy.fdi: New

	* fdi/policy/10osvendor/90-fstab-sync.fdi: New

	* fdi/policy/10osvendor/Makefile.am: New

	* fdi/policy/20thirdparty: New

	* fdi/policy/20thirdparty/Makefile.am: New

	* fdi/policy/30user: New

	* fdi/policy/30user/Makefile.am: New

	* fdi/README: New file to describe the new directory structure

2005-02-23  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/blockdev.c (force_unmount): Change to use new prototype
	for device_send_signal_condition

	* hald/hald_dbus.h: Adjust prototype for device_send_signal_condition

	* hald/hald_dbus.c (device_send_signal_condition): Change a Condition
	to not take an arbitrary message byt just a (name, details) tupple

	* hald/debug-hald.sh: Add some helpful instructions

2005-02-23  David Zeuthen  <davidz@redhat.com>

	* libhal/libhal.c (libhal_ctx_init): Add a small fix here wrt.
	error handling

2005-02-22  David Zeuthen  <davidz@redhat.com>

	* fdi/README: New file describing the various uses of device
	information files.

2005-02-22  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/osspec.c: Use kernel events layer instead of D_NOTIFY
	on /etc/mtab. Yay!

	* hald/linux2/blockdev.c (update_mount_point): Use /proc/mounts as
	we're now using the kernel events layer to get mount/umount signals
	rather than waiting for /etc/mtab to be changed. Otherwise we've
	would have a race with mount(1). Add some usable debug information.
	(blockdev_mount_status_changed): Renamed from blockdev_mtab_changed.

	* hald/hald_dbus.c (device_send_signal_property_modified): Yikes,
	append to the right iterator; fixes segfault

2005-02-22  David Zeuthen  <davidz@redhat.com>

	* libhal/libhal.c: Patch from John (J5) Palmieri
	<johnp@redhat.com>. Most libhal methods now require an additional
	DBusError pointer to be passed into the method.  Sometimes errors
	are expected in a world where device can be added or removed at
	any moment.  These errors can be handled based on the return value
	of the method and do not need the extra verbosity that the dbus
	errors provide.  Attached is a patch which allows a NULL value to
	be passed to all methods which read HAL keys indicating that a
	dbus error is not needed thereby freeing the programmer from
	having to initialize and free dbus error objects when they are not
	needed.

2005-02-22  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/classdev.c (usbclass_add): Also set 
	printer.physical_device

2005-02-22  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/probing/probe-printer.c: New file

	* hald/linux2/probing/Makefile.am: Add build rules for 
	hald-probe-printer

	* hald/linux2/classdev.c (usbclass_add, usbclass_get_prober)
	(usbclass_compute_udi): Add support for USB printers

2005-02-22  David Zeuthen  <davidz@redhat.com>

	* tools/device-manager/DeviceManager.py:
	(DeviceManager.device_changed): Make this work again after the D-BUS
	updates

2005-02-22  David Zeuthen  <davidz@redhat.com>

	* hald/hald_dbus.c (device_property_atomic_update_end): Send changes
	as an array to ensure that PropertyModified signal always has two 
	parameters
	(device_send_signal_property_modified): -do-

	* libhal/libhal.c (filter_func): Fix up to receive PropertyModified
	in the new format	

2005-02-22  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/osspec.c (osspec_init): Small fix for the kobject_uevent
	stuff

	* hald/hald_dbus.c (manager_find_device_by_capability): Patch from
	John (J5) Palmieri <johnp@redhat.com> Attached is a simple patch
	to fix the signature of the array container we are opening.

2005-02-16  Kay Sievers  <kay.sievers@vrfy.org>

	Update volume_id to version 34. Add support for hpfs, cramfs and romfs.
	some trivial cleanups.

	* volume_id/Makefile.am:

	* volume_id/cramfs.c: (volume_id_probe_cramfs):

	* volume_id/cramfs.h:

	* volume_id/dasd.c: (volume_id_probe_dasd):

	* volume_id/dasd.h:

	* volume_id/ext.c: (volume_id_probe_ext):

	* volume_id/fat.c: (volume_id_probe_vfat):

	* volume_id/hfs.c: (volume_id_probe_hfs_hfsplus):

	* volume_id/highpoint.c: (volume_id_probe_highpoint_ataraid):

	* volume_id/hpfs.c: (volume_id_probe_hpfs):

	* volume_id/hpfs.h:

	* volume_id/iso9660.c: (volume_id_probe_iso9660):

	* volume_id/jfs.c: (volume_id_probe_jfs):

	* volume_id/linux_raid.c: (volume_id_probe_linux_raid):

	* volume_id/linux_swap.c: (volume_id_probe_linux_swap):

	* volume_id/lvm.c: (volume_id_probe_lvm1), (volume_id_probe_lvm2):

	* volume_id/mac.c: (volume_id_probe_mac_partition_map):

	* volume_id/msdos.c: (volume_id_probe_msdos_part_table):

	* volume_id/ntfs.c: (volume_id_probe_ntfs):

	* volume_id/reiserfs.c: (volume_id_probe_reiserfs):

	* volume_id/romfs.c: (volume_id_probe_romfs):

	* volume_id/romfs.h:

	* volume_id/sysv.c: (volume_id_probe_sysv):

	* volume_id/sysv.h:

	* volume_id/udf.c: (volume_id_probe_udf):

	* volume_id/ufs.c: (volume_id_probe_ufs):

	* volume_id/util.h:

	* volume_id/volume_id.c: (volume_id_probe_all):

	* volume_id/volume_id.h:

	* volume_id/xfs.c: (volume_id_probe_xfs):


2005-02-16  David Zeuthen  <davidz@redhat.com>

	* volume_id/luks.[ch]: New files (forgot to commit before) 

	* hald/linux2/probing/shared.h: Redefine logging a bit

	* hald/linux2/probing/probe-volume.c: Use new shared.h logging;
	implement volume_id_log and drive_id_log functions

	* hald/linux2/probing/probe-storage.c: Use new shared.h logging;
	implement volume_id_log and drive_id_log functions

	* hald/linux2/addons/addon-storage.c: Use new shared.h logging

	* drive_id/logging.h: Use drive_id_log function

	* drive_id/drive_id.h (drive_id_log): Add drive_id_log prototype

2005-02-16  David Zeuthen  <davidz@redhat.com>

	Fix up more sloppy errors incuded from patches that I should
	have reviewed more carefully :-/

	* libhal-storage/libhal-storage.c: Match against
	LIBHAL_PROPERTY_TYPE_*, not DBUS_TYPE_*
	(libhal_drive_policy_default_use_managed_keyword):
	(libhal_drive_policy_default_get_mount_root):
	(libhal_drive_policy_default_use_managed_keyword):
	(libhal_drive_policy_default_get_managed_keyword_primary):
	(libhal_drive_policy_default_get_managed_keyword_secondary):
	(libhal_drive_policy_get_mount_options):
	(libhal_volume_policy_get_mount_options): Yikes, Yikes, rename
	"/org/freedesktop/LibHal" back to "/org/freedesktop/Hal"

	* libhal/libhal.c (libhal_property_fill_value_from_variant): p->type
	wasn't being assigned :-/. Also, DBUS_TYPE_BOOLEAN wasn't handled.

	* hald/hald_test_libhal.c (check_libhal): Fix this test

2005-02-16  David Zeuthen  <davidz@redhat.com>

	Patch from W. Michael Petullo <mike@flyn.org>. Attached you should
	find a patch that begins to add LUKS support to hald. This should
	eventually provide an easy means to mount encrypted filesystems.
	Currently, hald only detects that a disk contains a LUKS header
	and sets some relevant parameters.

	* volume_id/volume_id.h: Add VOLUME_ID_CRYPTO to volume_id_usage enum

	* volume_id/util.c (usage_to_string): Add LUKS string

	* volume_id/volume_id.c (volume_id_probe_all): Also test for LUKS magic

	* volume_id/Makefile.am (libvolume_id_la_SOURCES): Include luks.[ch]

	* hald/linux2/probing/probe-volume.c (set_volume_id_values): Supprt
	the VOLUME_ID_CRYPTO type

2005-02-16  David Zeuthen  <davidz@redhat.com>

	Patch from John (J5) Palmieri <johnp@redhat.com>.

	* libhal-storage/libhal-storage.[ch]: Rename all functions, symbols
	and defines from hal_storage to libhal_storage.

	* tools/fstab-sync.c: Update for changes in libhal-storage

2005-02-16  David Zeuthen  <davidz@redhat.com>

	* tools/device-manager/DeviceManager.py:
	(DeviceManager.update_tab_advanced): Make this work for string lists

	* tools/lshal.c (main): Various cleanups

	* libhal/libhal.c (libhal_property_fill_value_from_variant): Make
	this one static. Make sure to recurse into string array otherwise
	it won't work at all
	(libhal_get_string_array_from_iter): Make this static. Take
	num_elems pointer
	(libhal_property_set_get_num_elems): New function
	(libhal_get_all_devices): Pass num_devices to
	libhal_get_string_array_from_iter
	(libhal_ctx_shutdown): Remove match and filter function
	(libhal_ctx_free): Implement this one; free our context

	* libhal/libhal.h: Add prototype for libhal_property_set_get_num_elems

	* hald/hald_test_libhal.c (check_libhal): Add tests for the property
	set functions as they were failing (see changes above)

	* hald/Makefile.am (hald_test_SOURCES): Remove callout.[ch] as they
	are now gone

2005-02-14  David Zeuthen  <davidz@redhat.com>

	* configure.in: Require dbus >= 0.30

2005-02-11  John (J5) Palmieri  <johnp@redhat.com>

	* hald/device.c, hald/device_info.c, hald/property.c, hald/property.h,
        tools/hal_set_property.c, tools/hal_get_property.c: 
        s/HAL_PROPERTY_TYPE_NIL/HAL_PROPERTY_TYPE_INVALID

	* hald/hald_dbus.c: ported to new dbus-0.30 API
	(foreach_property_append): implemented real string lists 
        and got rid of the \tval\tval\tval\t hack

	* libhal/libhal.c: ported to new dbus-0.30 API
        s/HAL_PROPERTY_TYPE_NIL/HAL_PROPERTY_TYPE_INVALID
	(libhal_get_string_array_from_iter): new helper function to create
        string arrays from dbus arrays
	(libhal_property_fill_value_from_variant): new helper function
        that fills in properties from variants.  Used when getting
        a hash of properties from hald
        
	* libhal/libhal.h: s/HAL_PROPERTY_TYPE_NIL/HAL_PROPERTY_TYPE_INVALID
        HAL_PROPERTY_TYPE_INVALID = DBUS_TYPE_INVALID

	* hald/hald_test_libhal.c: ported to new dbus-0.30 API
        Added success messages and more detailed failed messages

	* hald/util.c (hal_util_compute_udi): Change all illegal characters
	to underscores '_'

	* tools/device-manager/DeviceManager.py
	(DeviceManager::__init__, add_device_signal_recv): 
	change add_signal_receiver calls to add expand_args=False parameter.
	(DeviceManager::device_changed, gdl_changed): changed handlers
	to conform with the new way we call signal handlers

2005-02-11  David Zeuthen  <davidz@redhat.com>

	* Makefile.am (SUBDIRS): Rearrange order so volume_id and drive_id
	is built before anything else.

2005-02-11  David Zeuthen  <davidz@redhat.com>

	With this path, all storage devices should be working just as
	well as on the 0.4.x branch. 

	In fact, since we're doing things in separate processes hald now
	nicely handles my very troublesome USB 6in1 card reader. There's
	other improvements too; we handle media with non-partitioned file
	systems _a lot nicer_, especially those on PCMCIA card
	readers (driven by ide-cs) since we now have logic to discard
	hotplug rem/add for those partitions.

	Rock on.

	* libhal/libhal.h: Add prototypes for libhal_device_rescan()
	and libhal_device_reprobe()

	* libhal/libhal.c (libhal_device_rescan): New function
	(libhal_device_reprobe): New function

	* hald/linux2/probing/probe-volume.c (main): Be able to probe for
	volumes on main block devices. Retrieve optical disc properties
	if applicable.

	* hald/linux2/probing/probe-storage.c (is_mounted): New function
	(main): Add a new option --only-check-for-media which is used on
	Rescan() of a storage device. Check for fs on main block device or
	a disc in the optical drive. Return code 2 if that is the case.

	* hald/linux2/addons/addon-storage.c (force_unmount): New function
	(unmount_childs): New function
	(is_mounted): New function
	(main): Do lazy unmount, if necessary, when media goes away. Handle
	polling on optical drives.

	* hald/linux2/hotplug.h: Add prototype for hotplug_event_reposted()
	and hotplug_event_enqueue_at_front().

	* hald/linux2/hotplug.c (hotplug_event_reposted): New function;
	like event_end but without deleting the hotplug event (useful
	for reordering events)
	(hotplug_event_enqueue_at_front): New function; to insert events
	at the front of the queue

	* hald/linux2/blockdev.c:
	(generate_fakevolume_hotplug_event_add_for_storage_device): New
	function (and what a nice long name :-/)
	(add_blockdev_probing_helper_done): Check result from hald-probe-
	storage and add a new fakevolume add event if one was detected.
	(hotplug_event_begin_add_blockdev): Handle fakevolume add events.
	Add some more debug spewage when things fail.
	(force_unmount): New function
	(hotplug_event_begin_remove_blockdev): Handle fakevolume remove
	events; reorder queue to process non-handled volume before
	the storage device. Nice.
	(block_rescan_storage_done): New function
	(blockdev_rescan_device): Actually do something here; a Rescan()
	method call on a storage device will induce searching a filesystem
	on the main block device

	* hald/hald.c (main): Add new master_slave code but comment it out
	for now

	* fdi/20freedesktop/lexar-media-cf-reader.fdi: Fix up

	* fdi/20freedesktop/6in1-card-reader.fdi: Fix up to use new way
	of figuring vendor_id/product_id etc.

2005-02-10  David Zeuthen  <davidz@redhat.com>

	* configure.in: From Richard Hughes <richard@hughsie.com> I've
	also attached a patch that adds libexec to configure.in

2005-02-10  David Zeuthen  <davidz@redhat.com>

	* volume_id/fat.c (volume_id_probe_vfat): Must have been a typo by Kay,
	changed from VOLUME_ID_DISKLABEL to VOLUME_ID_FILESYSTEM.

	* tools/fstab-sync.c (remove_udi): Remember to init the DBusError since
	some operations may fail.
	(main): Look at $HALD_ACTION for add, remove instead of first 
	positional parameter $1.

	* hald/linux2/probing/probe-volume.c: New file

	* hald/linux2/probing/probe-storage.c: New file

	* hald/linux2/probing/linux_dvd_rw_utils.[ch]: New files (imported
	from hal-0.4.x)

	* hald/linux2/probing/Makefile.am: Add rules for hald-probe-storage
	and hald-probe-volume

	* hald/linux2/addons/addon-storage.c: New file

	* hald/linux2/addons/Makefile.am: Add rules for hald-addon-storage

	* hald/linux2/osspec.c (sigio_handler): New function
	(sigio_iochn_data): New function
	(osspec_init): Set up signal handler for SIGIO and the neccesary
	pipes to handle it safely. Set up directory watcher for /etc and
	invoke blockdev_mtab_changed whenever that happens

	* hald/linux2/hotplug.c (hotplug_rescan_device): Call blockdev_*
	if appropriate

	* hald/linux2/blockdev.h: Add some new prototype for interacting
	with hotplug.c (much like what physdev.h and classdev.h)
	exported. Also add the prototype for a new function
	blockdev_mtab_changed.

	* hald/linux2/blockdev.c: Actually put some code here (the previous
	code was just boiler plate).

	* hald/util.h (struct HalHelperData_s): Add boolean already_issued_
	callback

	* hald/util.c (hal_util_get_string_from_file): Truncate whitespace
	from string read
	(hal_util_terminate_helper): Don't remove the child watcher source,
	but set a flag that we already did the callback and helper_child_exited
	will reap the child (including removing sources). This helps reap the
	zombies I've been seeing.
	(helper_child_timeout): -do-
	(helper_child_exited): Only do callback if we haven't already done
	so.

	* hald/debug-hald.sh: Another nice script for running gdb on hald;
	just run this script and invoke the run command from the gdb console.

	* hald/run-hald.sh: Also export ../tools so we can get fstab-sync
	going. Set HAL_FDI_SOURCE

	* hald/device_info.c (di_search_and_merge): Respect the env
	var HAL_FDI_SOURCE which is useful for development as hald will
	read you local .fdi files

	* fdi/90defaultpolicy/storage-policy.fdi: Temporarily add
	fstab-sync add/rem callouts (mental note: move to other file
	soon); also add the media detection addon

	* fdi/90defaultpolicy/power-mgmt-policy.fdi: New file

	* fdi/90defaultpolicy/Makefile.am (fdi90defaultpolicydir): Add
	power-mgmt-policy.fdi

2005-02-08  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/osspec.c (get_hal_proc_path): Return hal_proc_path,
	not hal_sysfs_path. 

2005-02-08  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/osspec.c: 
	(hal_util_get_udevinfo_path):
	(hal_util_get_device_file):
	(hal_util_set_driver):
	(hal_util_find_closest_ancestor): Moved to here from ../util.c
	(get_hal_sysfs_path): New function
	(get_hal_proc_path): New function
	
	* hald/linux2/osspec_linux.h: New file; export the functions
	mentioned above

2005-02-08  David Zeuthen  <davidz@redhat.com>

	Patch from Sjoerd Simons <sjoerd@luon.net>. 
	
	Since i seem to be in an extreme mood anyway, attached it is a
	patch that will make hal always drop permissions to non-root. Also
	it removes keeping the net admin capability as it's not being used
	anymore.

	I think it's the right way to do things. There should be no reason
	to run hald as root ever and forcing it from the start of the
	development cycle is a good way of ensuring that :)

	It would also be nice to have the addons that need to start out as
	root (like the ups one) drop permission as soon as possible (one
	can never be too sure)... Probably a utility function would be
	nice for that, but i don't know where to place it (as the addons
	and probers live in different dirs)

	Slightly mangled by myself to remove libcap dep and introduce
	the --retain-privileges option.

	* configure.in: Don't require libcap

	* hald/Makefile.am (hald_LDADD): Don't link with libcap

	* hald/run-hald.sh: Use new --retain-privileges option since this
	is the development runscript

	* hald/hald.c (usage): Remove option --drop-privileges and introduce
	new option --retain-privileges
	(drop_privileges): Just drop to uid/gid of specified haldaemon user
	and group. Don't use libcap anymore.
	(main): Enforce new --retain-privileges option since it's useful for
	development

2005-02-08  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/osspec.c: Do not care about link detection, NM and other
	tools are going to do this on their own now.
	(link_detection_handle_message): Remove
	(netlink_socket_data): Remove
	(osspec_init): Don't listen to the netlink socket

	* hald/linux2/classdev.c (net_add): Do not care about link detection

2005-02-08  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/physdev.c (physdev_remove): Don't remove device yet.
	(physdev_callouts_add_done): New function
	(physdev_callouts_remove_done): New function
	(hotplug_event_begin_add_physdev): Do add callouts
	(hotplug_event_begin_remove_physdev): Do remove callouts

	* hald/linux2/classdev.c (classdev_remove): Don't remove device yet.
	(classdev_callouts_add_done): New function
	(classdev_callouts_remove_done): New function
	(add_classdev_after_probing): Do add callouts
	(hotplug_event_begin_remove_classdev): Do remove callouts

	* hald/linux2/acpi.c (acpi_callouts_remove_done): Yikes, don't remove
	from TDL since it's not there.

2005-02-08  David Zeuthen  <davidz@redhat.com>

	* hald/run-hald.sh: Update to include a few more paths

	* hald/linux2/addons/Makefile.am: Add build rules for hald-addon-acpi

	* hald/linux2/addons/addon-acpi.c: New file

	* hald/linux2/pmu.c (pmu_synthesize_hotplug_events): Also look for
	computer in the TDL

	* hald/linux2/osspec.c (computer_callouts_add_done): New function
	(osspec_probe): Run callouts for computer

	* hald/linux2/classdev.c (add_classdev_probing_helper_done): Fix up
	for the new helper

	* hald/linux2/apm.c (apm_synthesize_hotplug_events): Also look for
	computer in the TDL

	* hald/linux2/acpi.c (acpi_synthesize_hotplug_events): Also look for
	computer in the TDL
	(acpi_generic_remove): Don't remove the device
	(acpi_callouts_add_done): New function
	(acpi_callouts_remove_done): New function
	(hotplug_event_begin_add_acpi): Run add callouts
	(hotplug_event_begin_remove_acpi): Run remove callouts

	* hald/property.c (hal_property_to_string): Add code for string lists

	* hald/hald.c (addon_terminated): New function
	(gdl_store_changed): Run addons
	(gdl_property_changed): Don't run property.d callouts
	(gdl_capability_added): Don't run capability.d callouts

	* hald/util.h: Move from hald/linux2 since this is generic.
	Export the HalHelperData structure when doing
	hal_util_helper invoke. Add prototypes for hal_util_terminate_
	helper, hal_util_dup_strv_from_g_slist,
	hal_util_callout_device_add, hal_util_callout_device_remove.

	* hald/util.c: Move from hald/linux2 since this is generic.
	(hal_util_terminate_helper): New function
	(hal_util_helper_invoke): Renamed from helper_invoke. Accept
	command line parameters (through g_shell_parse_argv). Accept a
	strv of extra environement to set. Introduce that timeout==0 means
	no timeout.  Return the HalHelperData structure
	(hal_util_dup_strv_from_g_slist): New convenience function; create
	a new NULL-terminated string vector from a GSList of strings.
	(callout_terminated): New function
	(callout_do_next): New function
	(hal_callout_device): New function
	(hal_util_callout_device_add): New function
	(hal_util_callout_device_remove): New function

	* hald/linux2/util.[ch]: Remove

	* hald/callout.[ch]: Remove since this functionality is now in util.[ch]

	* hald/Makefile.am: Add util.[ch]

	* hald/linux2/Makefile.am: Remove util.[ch]

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

	* drive_id/*: Add new drive_id library from Kay

	* volume_id/*: Add new volume_id library from Kay

	* Makefile.am: Add drive_id and volume_id to SUBDIRS

	* configure.in: Add drive_id and volume_id to AC_OUTPUT

2005-02-04  David Zeuthen  <davidz@redhat.com>

	* doc/spec/hal-spec.xml.in: Added docs for battery.remaining_time

	* hald/linux2/classdev.c (input_get_prober): New function
	(usbclass_add): New function
	(usbclass_get_prober): New function
	(usbclass_compute_udi): New function
	(add_classdev_probing_helper_done): Check if post_probing is NULL
	(hotplug_event_begin_add_classdev): Use function to get prober since
	e.g. class usb covers multiple devices, e.g. hiddev, printers etc.

	* hald/linux2/probing/probe-hiddev.c: New file; probe for application
	pages a HIDDEV supports and add to hiddev.application_pages strlist

	* hald/linux2/addons/addon-hid-ups.c: Detect UPS's on USB HID
	interfaces and create plus maintain battery.* properties.

	* hald/linux2/addons/Makefile.am: New file

	* hald/linux2/Makefile.am (SUBDIRS): Add addons directory

	* configure.in: Add hald2/linux2/addons/Makefile.am to AC_OUTPUT

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

	* hald/device_info.c (handle_match): Handle contains and
	contains_ncase for strlist properties. Also allow <merge key="foo"
	type="strlist> blah</merge> to create a new strlist; possibly
	destroy an existing strlist with the single elem 'blah'.
	(handle_append_prepend): Renamed from handle_append since it also
	covers prepend now and supports strlist's.
	(handle_remove): New function to cover <remove key="foobar"
	type="strlist">blah</remove> (removes element 'blah' from strlist
	'foobar') and <remove key="foobar"/> to completely remove a
	property.
	(start): Support <prepend> on both strings and strlists. Support
	<remove>
	(end): Support the new directives.

	Here is an example of the new directives; I'm pasting it here
	so it's handy when the spec needs to be updated. Oh, and for
	when I get around to adding test cases for this :-)

	<append key="bat0" type="string">foo0</append>
	<merge key="baz0" type="strlist">foz0</merge>
	<append key="bar0" type="strlist">foo0</append>
	<append key="bar0" type="strlist">foo1</append>
	<append key="bar0" type="strlist">foo2</append>
	<append key="bar0" type="strlist">foo3</append>

	<prepend key="dat0" type="string">foo0</prepend>
	<merge key="daz0" type="strlist">foz0</merge>
	<prepend key="dar0" type="strlist">foo0</prepend>
	<prepend key="dar0" type="strlist">foo1</prepend>
	<prepend key="dar0" type="strlist">foo2</prepend>
	<prepend key="dar0" type="strlist">foo3</prepend>

	<remove key="t1" type="strlist">val1</remove>
	<remove key="t2"/>
	<remove key="t3"/>

2005-02-02  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/pmu.[ch]: New files

	* hald/linux2/util.h: Add prototypes for
	hal_util_grep_string_elem_from_file and
	hal_util_grep_int_elem_from_file.

	* hald/linux2/util.c (hal_util_grep_file): Allow file to be NULL
	or empty and handle it correctly
	(hal_util_grep_string_elem_from_file): New function
	(hal_util_grep_int_elem_from_file): New function
	(hal_util_set_string_elem_from_file): Simplify by using
	hal_util_grep_string_elem_from_file
	(hal_util_set_int_elem_from_file): Simplify by using
	hal_util_grep_string_elem_from_file

	* hald/linux2/osspec.c (osspec_probe): Refine algorithm for selecting
	power management system since PMU based systems may simultaneously
	support APM as well.

	* hald/linux2/hotplug.h: Add PMU hotplug event

	* hald/linux2/hotplug.c (hotplug_event_begin_pmu): New function
	(hotplug_event_begin): Handle PMU
	(hotplug_rescan_device): Handle PMU
	(hotplug_reprobe_generate_remove_events): Handle PMU
	(hotplug_reprobe_generate_add_events): Handle PMU

	* hald/linux2/classdev.c (hotplug_event_begin_add_classdev): Only
	set linux.device_file if there really is a device file

	* hald/linux2/acpi.c (battery_refresh): Use maximum instead of
	maximum_specified

	* hald/linux2/Makefile.am: Add pmu.[ch]

2005-02-02  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/apm.[ch]: New files

	* hald/linux2/util.c (helper_invoke): Remember to initialize the
	error object to NULL

	* hald/linux2/osspec.c (osspec_probe): Only try APM if ACPI fails

	* hald/linux2/hotplug.c (hotplug_event_begin_apm): New function
	(hotplug_event_begin): Handle APM
	(hotplug_rescan_device): Handle APM
	(hotplug_reprobe_generate_remove_events): Handle APM
	(hotplug_reprobe_generate_add_events): Handle APM

	* hald/linux2/acpi.c (acpi_synthesize): Remember to set error to
	NULL and don't leak the error object
	(acpi_generate_remove_hotplug_event): Make this function return
	a boolean to say whether ACPI capabilities were detected

	* doc/spec/hal-spec.xml.in: Update the spec a bit more on battery.*

2005-02-02  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/probing/probe-input.c (main): Fix up error handling
	here so Reprobe() on the root, /org/freedesktop/Hal/devices/computer,
	actually works; here's some python to do that

	#!/usr/bin/python

	import dbus

	bus = dbus.Bus (dbus.Bus.TYPE_SYSTEM)
	hal_service = bus.get_service ('org.freedesktop.Hal')
	d = hal_service.get_object ('/org/freedesktop/Hal/devices/computer', 
	                            'org.freedesktop.Hal.Device')
	d.Reprobe()

2005-02-02  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/osspec.c: Adjust for changes in hotplug.h.
	(osspec_device_rescan): New function
	(osspec_device_reprobe): New function

	* hald/linux2/hotplug.h: Extend HotplugEvent struct to also be used
	for coldplugging/fake hotplugging (via Reprobe()) of ACPI devices.
	Add prototypes for hotplug_reprobe_tree() and hotplug_rescan_device().

	* hald/linux2/hotplug.c: Adjust to changes in hotplug.h
	(hotplug_event_begin_sysfs): New function; what used to be the
	function hotplug_event_begin().
	(hotplug_event_begin_acpi): New function
	(hotplug_event_begin): Now a simple dispatcher according to hotplug
	type; e.g. sysfs or acpi
	(hotplug_rescan_device): New function
	(hotplug_reprobe_generate_remove_events): New function
	(hotplug_reprobe_generate_add_events): New function
	(hotplug_reprobe_tree): New function

	* hald/linux2/coldplug.c: Adjust to changes in hotplug.h

	* hald/linux2/classdev.h: Add prototypes for classdev_generate_
	[add|remove]_hotplug_event() and classdev_rescan_device().

	* hald/linux2/classdev.c (hotplug_event_begin_add_classdev): Add
	some properties so we can reconstruct the hotplug event
	(classdev_rescan_device): New function
	(classdev_generate_add_hotplug_event): New function
	(classdev_generate_remove_hotplug_event): New function

	* hald/linux2/acpi.[ch]: Yikes, rewrite must of this to conform to
	the hotplug model so we can do Rescan() and Reprobe()

	* hald/osspec.h: Add prototypes for osspec_device_[rescan|reprobe]

	* hald/hald_test_libhal.c (send_tests_done): New function
	(check_libhal): Add some more tests and report back

	* hald/hald_test.c (check_properties): Fixup wrong failure reports
	(server_message_handler): Add new methods on the org.freedesktop.Hal.
	Tests interfaces to signal that a test is done
	(wait_for_external_test): New function; pretty ugly but it works
	for now. As noted: Patches are Welcome(tm)
	(main): Enable libhal tests

	* hald/hald_dbus.c (device_rescan): New function
	(device_reprobe): New function
	(hald_dbus_filter_function): Add checks for Rescan() and Reprobe()
	methods on the org.freedesktop.Hal.Device interface

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

	* hald/linux2/probing/probe-input.c (main): Fix a bug here where
	we checked for the wrong return value of libhal_ctx_init.

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

	Patch from Pierre Ossman <drzeus-list@drzeus.cx>. Basic MMC bus
	support. Reads out all the information currently available. I also
	need to add a mapping between vendor id:s an names, but I don't
	currently have a list to base it upon.

	* hald/linux2/physdev.c (mmc_add): New function
	(mmc_compute_udi): New function

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

	Patch from Pierre Ossman <drzeus-list@drzeus.cx>.

	* hald/linux2/util.c (hal_util_get_string_from_file): New function
	(hal_util_set_string_from_file): Use the new function mentioned above

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

	This is largely based on this patch

	 http://lists.freedesktop.org/archives/hal/2005-January/002002.html

	from Richard Hughes <richard@hughsie.com> but much mangled by
	myself

	* hald/linux2/util.c (hal_util_get_parent_path): Renamed from
	hal_util_get_parent_sysfs_path.
	(hal_util_grep_file): New function
	(hal_util_set_string_elem_from_file): New function
	(hal_util_set_int_elem_from_file): New function
	(hal_util_set_bool_elem_from_file): New function

	* hald/linux2/util.h: Add new prototypes

	* hald/linux2/osspec.c (osspec_probe): Call acpi_probe.

	* hald/linux2/acpi.[ch]: New files

	* hald/linux2/Makefile.am (libhald_linux2_la_SOURCES): Add acpi.[ch]

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

	* configure.in: Prebump to 0.5.0 - but we're not doing a release yet!
	Add libtool versioning since libhal and libhal-storage are going
	to break API and ABI backwards compatibility.

	* hald/hald_test.c: Add the beginnings of a test suite

	* hald/hald_test_libhal.c: -do-

	* hald/Makefile.am: Add build rules for test suite

	* tools/linux/hal_hotplug_map.c: Update to use new libhal API.

	* tools/lshal.c: Update to use new libhal API.

	* tools/hal_set_property.c: Update to use new libhal API.

	* tools/hal_get_property.c: Update to use new libhal API.

	* tools/fstab-sync.c: Update to use new libhal API.

	* libhal-storage/libhal-storage.c: Update to use new libhal API.
	This library will also go through a renaming/cleanup before 0.5.0.

	* libhal-storage/Makefile.am: Use library versioning

	* libhal/libhal.[ch]: Prefix all function names and other identifiers
	with libhal instead of hal. Add code for string lists. Change the
	way libhal is initialized to be a multistep process. Use HAL_PROPERTY_
	TYPE_* instead of DBUS_TYPE_*. Make all functions using IPC take
	a DBusError argument for better error handling. Notable changes
	(libhal_device_get_all_properties): Teach this function about 
	string lists
	(libhal_psi_get_strlist): New function
	(hal_initialize): Removed
	(hal_shutdown): Removed
	(libhal_device_get_property_strlist): New function
	(libhal_device_property_strlist_append): New function
	(libhal_device_property_strlist_prepend): New function
	(libhal_device_property_strlist_remove_index): New function
	(libhal_device_property_strlist_remove): New function
	(libhal_ctx_new): New function
	(libhal_ctx_set_cache): New function
	(libhal_ctx_set_dbus_connection): New function
	(libhal_ctx_init): New function
	(libhal_ctx_shutdown): New function
	(libhal_ctx_free): New function
	(libhal_ctx_set_device_added): New function
	(libhal_ctx_set_device_removed): New function
	(libhal_ctx_set_device_new_capability): New function
	(libhal_ctx_set_device_lost_capability): New function
	(libhal_ctx_set_device_property_modified): New function
	(libhal_ctx_set_device_condition): New function

	* libhal/Makefile.am: Use library versioning

	* hald/linux2/probing/probe-input.c: Port to new libhal API

	* hald/property.h: Rename property types to HAL_PROPERTY_TYPE_*.
	Add prototypes for new string list properties.

	* hald/property.c: Rename property types to HAL_PROPERTY_TYPE_*.
	(hal_property_free): Teach this function about string lists.
	(hal_property_new_strlist): New function
	(hal_property_get_strlist): New function
	(hal_property_strlist_append): New function
	(hal_property_strlist_prepend): New function
	(hal_property_strlist_remove_elem): New function
	(hal_property_strlist_add): New function
	(hal_property_strlist_remove): New function

	* hald/hald_dbus.c: Rename property types to HAL_PROPERTY_TYPE_*.
	Add new ugly code to handle string lists with the current D-BUS.
	(device_string_list_append_prepend): New function
	(hald_dbus_filter_function): Rename from filter_function. Add
	handlers for new D-BUS methods. Export this function 

	* hald/hald.[ch]: Rip out persistent property code.

	* hald/device_info.c: Rename property types to HAL_PROPERTY_TYPE_*.

	* hald/device.c: Rename to property to HAL_PROPERTY_TYPE_*. Rip out
	persistent property code.
	(hal_device_property_get_as_string): Add code for strlist type
	(hal_device_property_get_strlist): New function
	(hal_device_property_strlist_append): New function
	(hal_device_property_strlist_prepend): New function
	(hal_device_property_strlist_remove_elem): New function
	(hal_device_property_strlist_add): New function
	(hal_device_property_strlist_remove): New function

	* hald/device.h: Add new strlist prototypes

	* pstore.[ch]: Remove for now as persistent properties needs to be
	reworked

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

	* hald/linux2/osspec.c (link_detection_handle_message): New function.
	(netlink_socket_data): New function
	(osspec_init): Listen to netlink socket

	* hald/linux2/hotplug.c (fixup_net_device_for_renaming): New function.
	For coping with net interfaces being renamed before hald can handle
	them (For testing, put in the line g_spawn_command_line_sync 
	("/path/to/ifrename", NULL, NULL, NULL, NULL); in the top of hotplug_
	event_begin().
	(hotplug_event_begin): Call fixup_net_device_for_renaming()

	* hald/linux2/classdev.c (net_add): Be a bit more defensive
	about errors; export the net.80203.can_detect_link property

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

	* hald/linux2/osspec.c (osspec_probe): Add HAL_INFO's around
	coldplug event synthesization so we can see how long it takes.

	* hald/linux2/coldplug.c: Undefine HAL_COLDPLUG_VERBOSE by default
	to reduce log spamming.

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

	Merge the changes applied to the hal-0_4-stable-branch yesterday

	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-23  David Zeuthen  <davidz@redhat.com>

	* hald/linux2/util.h: Add prototypes for hal_util_set_driver () and
	hal_util_path_ascend ().

	* hald/linux2/util.c (hal_util_set_driver): New function
	(hal_util_path_ascend): New function

	* hald/linux2/physdev.c: Set both linux.sysfs_path and 
	linux.sysfs_path_device. The former is the real sysfs path for both
	class and bus devices while the latter always is a location in 
	/sys/devices; incidently the latter may not always exists. The former
	is used for remove events while the latter is used for determing
	child/parent relationships.
	(scsi_add): New function
	(scsi_compute_udi): New function

	* hald/linux2/ids.c (ids_find_pnp): Use strcasecmp instead of strcmp

	* hald/linux2/hotplug.c (hotplug_event_begin): Cope with the fact
	that there may be holes in /sys/devices; e.g. look at the
	target0:0:0:0 stuff. So, for a class device ascend all the way up
	until we find a hal device object that can be our parent.

	* hald/linux2/coldplug.c: Euwh, too much simplification here; we
	need to insert class devs between bus devs in the coldplug queue
	as e.g. scsi_host is a class dev but sits between bus devs.

	* hald/linux2/classdev.h: Make hotplug_event_begin_add_classdev take
	the sysfs path of the corresponding device in /sys/devices (which
	may not be a physical device, e.g. class scsi_host)

	* hald/linux2/classdev.c (net_add): New function
	(net_compute_udi): New function
	(scsi_host_add): New function
	(scsi_host_compute_udi): New function

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

	* tools/device-manager/Const.py.in: Add pnp and serio to BUS_NAMES

	* hald/linux2/physdev.c: Refactor this file a bit and add support
	for the following bus devices: ide, pnp, serio, pcmcia

	* hald/linux2/ids.h (ids_find_pnp): Add prototype

	* hald/linux2/ids.c (ids_find_pnp): New function; just use
	a hardcoded array and do a slow O(n) search (might want to
	optimize this later)

	* hald/linux2/classdev.c (add_classdev_after_probing): Compute
	UDI may fail; remember to clean up

	* hald/linux2/Makefile.am: Add pcmcia_utils.[ch] as we'll need
	them until sysfs got the right properties

	* hald/linux2/pcmcia_utils.[ch]: New files; imported from old
	backend

	* hald/linux2/pcmcia_cs.h: Ditto

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

	Some more refactoring... You want to redo 'make install' to
	get h-d-m working after this...

	* hald/linux2/classdev.c:
	(input_add): Don't set info.bus as it doesn't really make sense
	since it is a class device
	(input_post_probing): New function
	(input_compute_udi): New function
	(bluetooth_add): New function
	(bluetooth_compute_udi): New function
	(add_classdev_after_probing): New function
	(add_classdev_probing_helper_done): New function
	(hotplug_event_begin_add_classdev): Create and use a framework
	where we don't have to think about asynchronous issues per
	logical device class.
	(hotplug_event_begin_remove_classdev): -do-
	(input_helper_done): Deleted due to new framework

	* tools/device-manager/DeviceManager.py: Do not assume that
	info.bus is available

	* tools/device-manager/Representation.py: Do not assume that
	info.bus is available

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

	* hald/run-hald.sh: New file; used to run hald from the development
	directory. Sets up the appropriate path for external probing
	programs.

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

	* configure.in (AC_OUTPUT): Don't generate hald/linux/Makefile as
	Makefile.am is now gone

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

	* tools/linux/Makefile.am: Remove hal.dev build rules

	* tools/linux/hal_dev.c: Remove

	* configure.in: Set linux2 as the default backend

	* hald/linux: Remove all files here as they will get reimplemented
	in hald/linux2

	* hald/linux2: Add a bunch of new files

	* hald/linux2/probing: Add some new files

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

	Merge some more changes from the stable branch (except those
	in hald/linux and doc/spec)

	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-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-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  <davidz@redhat.com>

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

	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>

	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

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

	* doc/spec/hal-spec.xml.in: Patch from Richard Hughes
	<richard@hughsie.com>. Move properties into right section;
	add some linux.* properties.

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

	* doc/spec/hal-spec.xml.in: Patch from Richard Hughes
	<richard@hughsie.com>. This is a patch for HAL CVS HEAD that
	provides all the system.* namespaces. I have not included the
	PMU/ACPI specific parts yet as we are still debating about how to
	include pmu.* and acpi.* in the most efficient way.

2005-01-07  Joe Shaw  <joeshaw@novell.com>

	* configure.in: Check for popt when building fstab-sync and error
	out if it's not found.

	* tools/Makefile.am: Build fstab-sync conditionally based on
	whether --enable-fstab-sync is passed in.

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

	* fdi/20freedesktop/Makefile.am: Add the two new .fdi files to _DATA

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

	* fdi/20freedesktop/usb-pda-serial.fdi: New file

	* fdi/20freedesktop/usb-pda-devices.fdi: New file

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

	* hald/linux/volume_id/volume_id.c (sesame_parse): Support really long
	lines
	(probe_crypto_sesame): Read 1024 bytes instead of only 0x100

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

	* hald/linux/volume_id/volume_id.c (sesame_skip_to_next_nonempty_line):
	New function
	(sesame_parse): New function
	(sesame_got_kv_pair): New function
	(probe_crypto_sesame): New function
	(volume_id_probe): Probe for sesame crypto metadata
	(volume_id_close): Free key/value pairs

	* hald/linux/volume_id/volume_id.h: Add the VOLUME_ID_CRYPTO usage type
	and VOLUME_ID_CRYPTO_SESAME filesystem type. Add the volume_id_kv_pair 
	structure

	* hald/linux/osspec.c (compute_coldplug_list): Also process other block
	devices

	* hald/linux/block_class_device.c (set_volume_id_values): Allow crypto
	and get properties from volume_id
	(block_class_visit): Add some code to figure out if /dev/dm-0 is really
	the cleartext device from a device backed by us.

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

	* hald/dummy/Makefile.am: New file

	* hald/dummy/osspec.c: New file

	* hald/linux/Makefile.am: New file

	* hald/Makefile.am: Use new $(HALD_BACKEND) variable

	* configure.in: Add --with-backend; default to linux

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

	Merged all changes from the stable branch so HEAD is on par.

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 Müller <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 Jérôme 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 Jérôme 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 Høgsberg
	<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 Høgsberg <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 Høgsberg <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
