summaryrefslogtreecommitdiff
path: root/ChangeLog
blob: 05e83193e3acffbf1278824b1f387dde6056928d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
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