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