summaryrefslogtreecommitdiff
path: root/archiver/ChangeLog
blob: 2417530372cd10f7051b011220b2ea9e49504d02 (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
2002-02-27  Kjartan Maraas  <kmaraas@gnome.org>

	* config-archiver.c: s/PACKAGE/GETTEXT_PACKAGE/g
	* config-manager.c: Same here.
	
2001-10-18  Bradford Hovinen  <hovinen@ximian.com>

	* bonobo-config-archiver.c (get_listener_oafiid): Update listener name

2001-10-13  Bradford Hovinen  <hovinen@ximian.com>

	* bonobo-config-archiver.c (real_sync): Try to resolve a listener
	to make sure that something is listening when we issue the sync
	event (disabled for now)
	(get_listener_oafiid): Implement (disabled for now)

2001-10-05  Shaun Merrigan  <shaun.merrigan@sun.com>

	* archiver-client.c (location_client_load_rollback_data):
	Only use tm_gmtoffm if __USE_BSD is defined.

2001-09-28  Bradford Hovinen  <hovinen@ximian.com>

	* config-log.c (parse_line): Only set tm_gmtoff and tm_zone fields
	if __USE_BSD is defined

	* util.c (parse_date): Ditto

	* bonobo-config-archiver.c (bonobo_config_archiver_new): Store the
	listener id in the archiver_db structure
	(bonobo_config_archiver_destroy): Remove the event source
	listener; destroy the XML cache
	(new_rollback_cb): Don't reload everything if we initiated the
	sync ourselves
	(real_sync): Mark that we are currently up to date

2001-09-22  Bradford Hovinen  <hovinen@ximian.com>

	* bonobo-config-archiver.c (notify_listeners): Abort if the object
	is already destroyed

2001-09-07  Bradford Hovinen  <hovinen@ximian.com>

	* archiver-client.c (location_client_store_xml): Make backend_id
	const

	* util.c (parse_date): Set the time zone
	(parse_date): Initialize tm_isdst

	* archiver-client.c (location_client_store_xml): Call
	ConfigArchiver_Location_storageComplete when done
	(location_client_store_xml): Don't try to save the XML file if
	there was an error getting the storage filename

	* location.c (location_storage_complete): Implement
	(impl_ConfigArchiver_Location_storageComplete): Implement

	* config-log.c (config_log_get_backend_id_for_id): Make return
	value const

2001-09-04  Bradford Hovinen  <hovinen@ximian.com>

	* location.c (location_get_storage_filename): Notify listeners
	that new rollback data is available

	* bonobo-config-archiver.c (new_rollback_cb): Implement
	(bonobo_config_archiver_new): Connect above to event source

	* location.c (location_store): 
	(location_init): Construct an event source and add its interface

	* Makefile.am (INCLUDES): Remove -DDEFAULTS_DIR

2001-09-03  Bradford Hovinen  <hovinen@ximian.com>

	* bonobo-config-archiver.c (bonobo_config_archiver_new): Accept
	complete moniker as an argument; do the parsing here

	* archiver-client.c (location_client_load_rollback_data): Adjust
	time from mktime according to time zone information

	* bonobo-moniker-archiver.c (is_leap_year): 
	(mod_date_by_str): Implement
	(parse_name): Use correct math for computing offsets

	* bonobo-config-archiver.c (bonobo_config_archiver_new): Don't
	print an error message if the parent moniker is bad
	(bonobo_config_archiver_new): Remove debugging messages

	* archiver-client.c (location_client_load_rollback_data): Make
	date and backend_id const

	* bonobo-moniker-archiver.c (archiverdb_resolve): Determine date
	from moniker and pass to bonobo_config_archiver_new

	* bonobo-config-archiver.c (bonobo_config_archiver_new): Accept
	date structure as argument

2001-08-29  Bradford Hovinen  <hovinen@ximian.com>

	* archive.c (foreach_build_list_cb): Don't unref the location if
	it is deleted
	(load_all_locations): Check if the location is marked deleted and
	throw it away if so

	* location.c (location_new): Don't unref parent location

2001-08-28  Bradford Hovinen  <hovinen@ximian.com>

	* archive.c (foreach_build_list_cb): Unref the location given if
	we are not going to use it

2001-08-27  Bradford Hovinen  <hovinen@ximian.com>

	* archive.c (foreach_build_list_cb): Don't add the location to the
	list if it is marked deleted
	(impl_ConfigArchiver_Archive_createLocation): Do
	CORBA_Object_duplicate rather than bonobo_object_dup_ref

	* location.c (location_is_deleted): Implement

2001-08-23  Bradford Hovinen  <hovinen@ximian.com>

	* config-log.c (do_unload): Make sure we don't try to do this if
	we are marked deleted
	(config_log_delete): Call do_unload to eliminate memory leaks

	* location.c (location_delete): Set the deleted flag

	* config-log.c (dump_log): Don't try to dump the log if we are
	deleted

	* location.c (save_metadata): Don't try to save metadata if we are
	deleted

2001-08-22  Hans Petter Jansson  <hpj@ximian.com>

	* archiver-client.h: Fixed include path, libxml -> gnome-xml. It's
	consistent with the includes in archiver-client.c, and it stops
	the build breaking here.

2001-08-21  Bradford Hovinen  <hovinen@ximian.com>

	* archive.c (archive_get_current_location_id): Use
	archive_create_location rather than location_new
	(archive_get_current_location_id): Unref the location once we have
	created it

	* archiver-client.c (location_client_load_rollback_data): Don't
	try to parse the XML file if there was an exception

	* bonobo-config-archiver.c (bonobo_config_archiver_new): Make sure
	to release_unref location and archive if aborting
	(bonobo_config_archiver_new): Reinitialize exception structure
	after we have succeeded

	* location.c (location_get_rollback_filename): Recurse on parent
	location if parent_chain is set to TRUE

	* archive.c (impl_ConfigArchiver_Archive_getLocation): Set the
	LocationNotFound exception if the location returned was NULL

	* location.c (impl_ConfigArchiver_Location_getRollbackFilename): Don't try 

	* archive.c (impl_ConfigArchiver_Archive_getLocation): Don't try
	to CORBA_Object_duplicate the result if it is NULL
	(archive_get_location): Don't try to cast the result of
	location_open before we know whether it is non-NULL
	(impl_ConfigArchiver_Archive_createLocation): Call
	bonobo_object_from_servant on parent_ref->servant

	* location.c (location_destroy): Remove debugging message; make
	remaining debugging message more enlightening

	* archive.c (archive_get_child_locations): Rename from
	archive_foreach_child_location; rewrite to return a GList of child
	locations
	(impl_ConfigArchiver_Archive_getChildLocations): Use
	archive_get_child_locations
	(archive_destroy): Remove debugging message

	* bonobo-moniker-archiver.c (archive_resolve): Remove debugging
	messages

	* archive.c (archive_get_location): Remove debugging messages

	* config-log.c (dump_log): Remove debugging messages

	* archive.c (archive_foreach_child_location): Build a list first
	and then traverse it to avoid screwing up the tree traversal

2001-08-20  Richard Hestilow  <hestilow@ximian.com>

	* Makefile.am: Add dependency on CORBA_SOURCE to archiver-client.c.
	(clean-local): Add CORBA_SOURCE to files to be removed.
	
2001-08-17  Bradford Hovinen  <hovinen@ximian.com>

	* all: Added CORBA interface for the archiver
	* config-archiver.c: Ported to new CORBA interface

2001-08-20  Bradford Hovinen  <hovinen@ximian.com>

	* location.c (load_metadata_file): Support placing the location's
	label in the metadata file

2001-08-03  Bradford Hovinen  <hovinen@ximian.com>

	* config-log.c (load_log_entry): Return NULL if fgets returns NULL
	(dump_log): If both first_old and log_data are NULL, go ahead and
	dump the file, since nothing has been loaded yet
	(config_log_garbage_collect): Don't bother dumping the log file or
	reloading
	(load_log_entry): Return NULL if file_stream is NULL

2001-08-02  Bradford Hovinen  <hovinen@ximian.com>

	* config-log.c (config_log_garbage_collect): Implement
	(dump_log): Don't dump the old file if first_old is NULL

	* main.c (main): Support --garbage_collect

	* location.c (location_garbage_collect): 
	(garbage_collect_cb): Implement

2001-07-31  Bradford Hovinen  <hovinen@ximian.com>

	* config-log.c: Remove socket-based synchronization system
	entirely. Switch to using standard FILE streams for interfacing
	with the configuration log

	* archive.c (archive_get_current_location_id): Re-enable caching
	mechanism

	* bonobo-config-archiver.c (pb_get_fn): Use
	location_get_config_log rather than config_log_open; don't destroy
	the log
	(bonobo_config_archiver_new): Eliminate unref mechanism; it is not
	needed

2001-07-30  Bradford Hovinen  <hovinen@ximian.com>

	* archive.c (archive_set_current_location_id): Use
	capplet-archive/config/current/location for current location to
	avoid conflicting with control-center
	(archive_get_current_location_id): Always retrieve the location id
	from gnome_config

	* config-log.c (socket_data_cb): Close the socket if we couldn't
	load the log entry
	(config_log_destroy):
	(config_log_open): Disable socket sync system
	(config_log_write_entry): Make sure to write log when socket_owner
	not set

	* location.c (location_get_config_log): Implement

2001-07-27  Bradford Hovinen  <hovinen@ximian.com>

	* bonobo-config-archiver.c (bonobo_config_archiver_destroy): Don't
	unref the event source or the property bag

	* RELEASE : 1.5.2

2001-07-24  Richard Hestilow  <hestilow@ximian.com>

	* bonobo-config-archiver.c (pb_set_fn): Do sanity checking on
	the rollback ID we get.

2001-07-24  Richard Hestilow  <hestilow@ximian.com>

	* config-log.c (parse_line): Ok, bad fix. Move that to the archiver.

	* bonobo-config-archiver.c (pb_set_fn): Moved here.
	(bonobo_config_archiver_new): Don't aggregate against an EventSource,
	since the PropertyBag already has one and everything will get confused.
	Just use the one the bag has.
	(bonobo_config_archiver_destroy): Don't unref the event source, we
	don't own it any more.	

2001-07-24  Richard Hestilow  <hestilow@ximian.com>

	* config-log.c (parse_line): Fix date parsing to work with DST.

	* bonobo-config-archiver.[ch]: Export a PropertyBag interface that
	has the last_modified date as a read-only property. 

2001-07-24  Bradford Hovinen  <hovinen@ximian.com>

	* bonobo-config-archiver.c (real_sync): Notify listeners with a sync event
	(real_sync): Use correct pointer type when passing to notify_listeners

2001-07-20  Chema Celorio  <chema@celorio.com>

	* RELEASE : 1.5.0

2001-07-17  Bradford Hovinen  <hovinen@ximian.com>

	* bonobo-config-archiver.c (bonobo_config_archiver_new): Add
	mechanism for quitting once the moniker is no longer in use
	(bonobo_config_archiver_new): Make archive a static variable
	(bonobo_config_archiver_new): Explicitly destroy archive when
	program quits
	(timeout_cb): Remove

	* config-log.c (slave_apprise_data): Remove

	* archive.c (archive_unregister_location): 
	(archive_get_location): strdup the string to remove compiler warnings

	* location.c (location_store): Use return value
	(location_store_full_snapshot): Use return value

2001-07-12  Bradford Hovinen  <hovinen@ximian.com>

	* archive.c (archive_destroy): Clear appropriate global archive pointer
	(archive_get_current_location_id): Logic fix.

2001-07-12  Chema Celorio  <chema@celorio.com>

	* Makefile.am (INCLUDES): update to the new location for the xst backends

2001-07-12  Bradford Hovinen  <hovinen@ximian.com>

	* archive.c (archive_get_current_location_id): Only try to store a
	full snapshot if we are in a global archive

	* bonobo-config-archiver.c (bonobo_config_archiver_new): Store
	real_name in archiver_db
	(bonobo_config_archiver_destroy): Use archiver_db->real_name with
	bonobo_url_register

2001-07-10  Bradford Hovinen  <hovinen@ximian.com>

	* default-user.xml: Add sound-properties

	* bonobo-moniker-archiver.c (archiver_resolve): Don't accept
	PropertyBag interface

2001-07-09  Bradford Hovinen  <hovinen@ximian.com>

	* bonobo-config-archiver.c (bonobo_config_archiver_new): Use
	bonobo_object_unref rather than gtk_object_destroy

	* bonobo-moniker-archiver.c (archiver_resolve): Allow PropertyBag
	interface as well
	(parse_name): Set *location to NULL when there is no location

	* archive.c (archive_load): Use .gnome/capplet-archive rather than
	.gnome/control-center
	(archive_set_current_location): Removed unused variables

	* bonobo-config-archiver.c (bonobo_config_archiver_new): Try to
	load the defaults file if no rollback data can be found

2001-07-05  Bradford Hovinen  <hovinen@ximian.com>

	* bonobo-config-archiver.[ch]: Use bonobo-conf rather than
	bonobo-config for include path

	* bonobo-moniker-archiver.c (archiver_resolve): Update call to
	Bonobo_ConfigDatabase_addDatabase

	* bonobo-config-archiver.h: Fix include directories

	* Makefile.am (INCLUDES): Update to use pkg-config standards; add
	BONOBO_CFLAGS
	Include configuration moniker-related material
	(SUBDIRS): Remove
	(bin_PROGRAMS): Added ximian-archiver

2001-07-02  Tambet Ingo  <tambet@ximian.com>

	* default-global.xml: Added display-conf backend.

2001-06-22  Bradford Hovinen  <hovinen@ximian.com>

	* archive.c (archive_get_current_location): Return NULL if the
	location id is NULL
	(archive_get_current_location_id): Return NULL if storing the
	snapshot results in an error

	* location.c (location_store): Add return values for error
	conditions; remove g_warning's and g_critical's
	(location_store_full_snapshot): Folded in store_snapshot_cb; don't
	call location_foreach_backend
	(location_store_full_snapshot): Return error condition; 0 on
	success, -1 if any backend failed

2001-06-21  Bradford Hovinen  <hovinen@ximian.com>

	* location.c (location_do_rollback): Wait for child process to
	terminate
	(run_backend_proc): Take an extra argument -- where to store the
	PID of the child process

	* archive.c (archive_set_current_location): Use
	location_get_changed_backends

	* location.c (location_get_changed_backends): 
	(location_does_backend_change): Implement
	(create_backends_list): 
	(merge_backend_lists): Moved from archive.c

	* config-log.c (dump_log): Don't call close on fd
	(dump_log): Use g_critical on error conditions rather than g_warning

2001-06-20  Bradford Hovinen  <hovinen@ximian.com>

	* config-log.c (slave_data_cb): Dump the log after loading it from
	the slave
	(dump_log): Set first_old to the beginning of the list after the dump
	(do_load): Don't call do_unload
	(socket_data_cb): Check for hang up first
	(do_load): Don't call reset_filenames
	(slave_data_cb): 
	(config_log_write_entry): Call io_buffer_destroy

	* archive.c, Makefile.am: Replace all instances of ximian-config
	with ximian-setup-tools

	* config-log.c (slave_new): Don't apprise slave of new data
	(config_log_write_entry): Dump log after every write

2001-06-19  Bradford Hovinen  <hovinen@ximian.com>

	* archive.c (archive_set_current_location): Free the location path
	as we walk down it.
	(create_backends_list): Implement
	(merge_backend_lists): Implement
	(archive_set_current_location): Call above functions
	(create_backends_list): Get rid of dummy first element
	(archive_set_current_location): Don't use backends->next when
	calling rollback_backends_to

	* location.c (run_backend_proc): Remember to close the writing end
	(location_store): Change g_error to g_critical
	(run_backend_proc): Don't getenv PATH
	(run_backend_proc): Make sure to close other end of pipe in child
	process

2001-06-18  Bradford Hovinen  <hovinen@ximian.com>

	* location.c (location_store): Use GString API

	* config-log.c (slave_data_cb): Don't use == to test IO conditions

2001-06-01  Bradford Hovinen  <hovinen@ximian.com>

	* location.c (run_backend_proc): Don't free path string after
	setting the path

2001-05-26  Chema Celorio  <chema@celorio.com>

	* Makefile.am (ximian_archiverConf.sh): create x_aConf.sh from
	the XIMIAN_ARCHIVER_FOO_CONF varialbes

2001-05-24  Arturo Espinosa Aldama  <arturo@ximian.com>

	* 0.5 RELEASE

2001-05-24  Chema Celorio  <chema@celorio.com>

	* Makefile.am (libximian_archiver_la_SOURCES): add config-
	manger-dialog so that distcheck would pass
	(SUBDIRS): add the . dir because the capplet depends on
	the archiver and we need to build the archiver first
	(libximian_archiver_la_SOURCES): add location-list &
	create-location-dialog
	(ximian_archiverConf.sh): change to XIMIAN_ARVHIER_FOO

2001-05-24  Bradford Hovinen  <hovinen@ximian.com>

	* Makefile.am (SUBDIRS): Added location-manager-capplet

2001-05-22  JP Rosevear  <jpr@ximian.com>

	* config-log.c (bind_socket): use AF_UNIX for the family

	* location.c (run_backend_proc): use putenv() rather than setenv()
	for solaris

	* config-log.c: define the SUN_LEN macro for those systems not
	having it
	(connect_socket): use the more portable domain type, PF_LOCAL
	seems to map to PF_UNIX on linux anyhow

2001-05-12  Chema Celorio  <chema@celorio.com>

	* location.c (location_store_xml): add a carriage return after the
	warning message

2001-05-09  Arturo Espinosa Aldama  <arturo@ximian.com>

	* 0.4 RELEASE

2001-05-05  Bradford Hovinen  <hovinen@ximian.com>

	* Makefile.am (ximian_archiverConf.sh): Add sed expression to
	replace @VERSION@

2001-05-04  Bradford Hovinen  <hovinen@ximian.com>

	* cluster-location.c (cluster_location_do_rollback): Implement

	* location.c (location_do_rollback): Rename from do_rollback; make
	into virtual method
	(location_rollback_backend_to): 
	(location_rollback_backend_by): 
	(location_rollback_id): Update to call virtual method

	* Makefile.am (libximian_archiver_la_SOURCES): 
	(include_HEADERS): Add cluster.[ch], cluster-location.[ch]

2001-05-03  Bradford Hovinen  <hovinen@ximian.com>

	* cluster.[ch]: New class

	* cluster.c (cluster_new): 
	(cluster_load): Implement

	* archive.c (archive_set_arg): Add argument ARG_IS_GLOBAL
	(archive_class_init): Make ARG_PREFIX construct-only
	(archive_construct): Implement
	(do_load): Remove
	(archive_load): Use archive_construct; pass is_global as an
	argument to the object constructor

	* location.c (location_store_xml): Support STORE_DEFAULT
	(store_snapshot_cb): Use STORE_DEFAULT rather than STORE_MASK_PREVIOUS

	* location.h (_StoreType): Add STORE_DEFAULT

	* config-log.c (config_log_get_rollback_id_by_steps): Return the
	current id if the node represents default data

	* main.c (do_add_location): Cast correctly, fixing compiler
	warning

	* config-log.c (config_log_write_entry): Add parameter
	is_default_data; call get_beginning_of_time rather than
	get_current_date iff is_default_data is TRUE
	(get_beginning_of_time): Implement
	(has_nondefaults): Implement. Return TRUE iff the config log
	contains regular (non-default) entries

2001-04-26  Arturo Espinosa  <arturo@ximian.com>

	* location.c: changed g_critical to g_error. If a newer
	version of glib is to be required, change configure.in then.
	* util.h: Set a flag to disable the DEBUG_MSG macro, which
	messes with the frontend<->backend talking.
	
2001-04-24  Bradford Hovinen  <hovinen@ximian.com>

	* location.c (location_store): Use read rather than fread
	(location_add_backend): 
	(location_remove_backend): Save metadata immediately

2001-04-23  Bradford Hovinen  <hovinen@ximian.com>

	* location.c (location_store): Block SIGPIPE
	(location_store): Fix off-by-one bug

	* archive.c (archive_get_current_location_id): Store a full
	snapshot of the system after the default location is created

	* location.c (run_backend_proc): Added parameter do_get to allow
	control of whether pipe is opened to read or write
	(store_snapshot_cb): Implement. Invokes the given backend with
	--get and stores the XML data
	(location_store_full_snapshot): Implement. Stores a complete
	snapshot with all backend data
	(subtract_xml_node): Assume all nodes are the same
	(location_store): Add string termination character
	(location_store): Only store data if any data were actually read

2001-04-22  Bradford Hovinen  <hovinen@ximian.com>

	* config-log.c (config_log_iterate): Use the correct data pointer
	to pass to the callback

	* location.c (location_new): Save the metadata for the newly
	created location right away

	* util.h: Defined DEBUG_MSG macro for debugging messages

	* archive.c (archive_unregister_location): Don't remove the
	location from the tree if the object is marked destroyed

2001-04-21  Bradford Hovinen  <hovinen@ximian.com>

	* archive.c (archive_destroy): Return if the archive was already
	destroyed

	* location.c (location_delete): Unregister the location before
	destroying it

	* config-log.c (config_log_delete): Set deleted flag
	(config_log_destroy): Only dump the log if the log is not marked
	deleted

	* location.c (location_delete): Check return value of rmdir

	* config-log.c (io_buffer_destroy): Call g_io_channel_close to
	close the GIOChannel
	(disconnect_socket): Force the removal of the source id from the
	main loop
	(config_log_destroy): Disconnect the socket after unloading, not
	before

	* location.c (location_delete): Remember to have a NULL at the end
	of arguments to g_strconcat ()

2001-04-20  Bradford Hovinen  <hovinen@ximian.com>

	* config-log.c: Added InputBuffer, removed get_line
	(struct _Slave):
	(struct _ConfigLogPrivate ): Replaced GIOChannel * and FILE * with
	InputBuffer *'s
	(input_buffer_new): Implement. Constructs a new input buffer
	(input_buffer_destroy): Implement. Destroys an input buffer and
	closes the file descriptor
	(input_buffer_cycle): Implement (borrowed from GDict). Reads
	additional data from the input file
	(input_buffer_read_line): Implement (borrowed from GDict). Reads a
	line from the input file and returns a pointer to it
	(input_buffer_write): Implement. Write the indicated string out to
	the channel

2001-04-15  Bradford Hovinen  <hovinen@ximian.com>

	* config-log.c (config_log_set_arg): Create semaphore for
	auto-reloading
	(do_load): Removed locking code
	(load_log_entry): Support prepending log entries to the beginning
	of the log; free entry->date if parsing was unsuccessful
	(config_log_reset_filenames): Unlink socket filename if not owner
	(config_log_reset_filenames): Rebind socket when filename is reset
	(connect_socket): Implement. Creates or connects to the socket
	associated with the config log
	(check_socket_filename): Implement. Checks to see if the filename
	associated with the socket is in use.
	(bind_socket): Implement. Binds the socket to the filename.
	(socket_connect_cb): Implement. Callback issued when a master gets
	a new connection.
	(socket_data_cb): Implement. Callback issued when a slave gets
	data from the master.
	(slave_new): Implement. Creates a new slave structure
	(slave_destroy): Implement. Destroys a slave structure
	(slave_data_cb): Implement. Callback issued when data comes in
	from a slave
	(slave_broadcast_data): Implement. Broadcast the first log entry
	to all the slaves except the given one
	(disconnect_socket): Implement. Disconnects the socket
	(config_log_open): Call connect_socket
	(do_unload): Don't dump the log unless currently the socket owner
	(config_log_write_entry): Broadcast data to slaves or write data
	to socket, depending on whether currently the socket owner

2001-04-14  Bradford Hovinen  <hovinen@ximian.com>

	* config-log.c (do_unload): Add a parameter write_log to tell
	whether to write out the log when unloading
	(config_log_finalize): Implement

	* config-log.[ch]: Put all data fields in ConfigLogPrivate
	structure

2001-04-11  Bradford Hovinen  <hovinen@ximian.com>

	* location.c (run_backend_proc): Make sure to search location of
	XST backends

	* Makefile.am (INCLUDES): Added XST_BACKEND_LOCATION

	* archive.c (archive_set_current_location_id): Don't use different
	prefixes for per-user and global locations; we are assuming here
	that the only person using this globally will be root anyway
	(archive_get_current_location_id): Ditto

	* Makefile.am (INCLUDES): Replace obsolete hcm directory names
	with ximian-config

2001-02-20  Bradford Hovinen  <hovinen@ximian.com>

	* location.c (compare_xml_nodes): Use attr->val rather than
	attr->node

2001-02-19  Bradford Hovinen  <hovinen@ximian.com>

	* location.c (location_foreach_backend): Update to use BackendNote
	(do_rollback): Don't do rollback if the doc is NULL
	(location_store_xml): Return if this location does not contain the
	backend specified
	(location_store_xml): Use fprintf rather than g_warning
	(subtract_xml_node): 
	(merge_xml_nodes): Update child node while iterating

	* config-log.c (config_log_get_rollback_ids_for_date): Remove

	* location.c (location_set_arg): ref inherited object

	* main.c (main): Don't check if the location is default; don't
	create default location if non-existant
	(main): Signal error if the user is adding a location and did not
	specify a name
	(main): Use fprintf to signal the error that a location could not
	be opened
	(main): Signal error and exit when archive cannot be opened,
	rather than using g_error
	(do_add_location): Check for NULL location_id
	(do_add_location): Create default location if it does not exist
	and it is specified as the parent

	* archive.c (archive_get_current_location_id): Create the default
	location if it does not exist

	* backend-list.c (backend_list_contains): Use strcmp and iterate
	through the list

	* location.c (location_contains): Read whether the backend is in
	the master list if this location is toplevel

2001-02-18  Bradford Hovinen  <hovinen@ximian.com>

	* main.c (do_add_backend): Support ContainmentType specification
	(do_store): Support StoreType specification
	(struct store_options): Add set of options to support
	compare_parent, mask_previous, options
	(struct add_remove_backend_options): Add option for partial
	containment when adding backend

	* location.c (subtract_xml_node):
	(merge_xml_nodes):
	(compare_xml_nodes):
	(merge_xml_docs):
	(subtract_xml_doc): Implement. XML node compare/merging operations
	(location_store): Rewrite to call location_store_xml
	(location_store_xml): Include support for diffing with
	configuration data from parent config
	(location_dump_rollback_data): Rewrite to use
	location_load_rollback_data
	(dump_xml_data): Remove
	(do_rollback): Rewrite to use xmlDocDump; pass xmlDocPtr rather
	than id number
	(location_rollback_id): Add node merging support
	(location_rollback_backend_by):
	(location_rollback_backend_to): Rewrite to use
	location_load_rollback_data
	(location_rollback_backends_to): Rewrite to iterate through
	backend list and call location_rollback_backend_to for each
	element
	(location_rollback_all_to): Ditto

2001-02-14  Bradford Hovinen  <hovinen@ximian.com>

	* location.h (_ContainmentType): Introduce. Specifies the type of
	containment (full, partial, none), of a backend in a location

	* location.c: Added struct BackendNote; have backend list include
	type of containment as well as backend id
	(location_contains): Use find_note
	(find_note): Implement. Finds a note for the given backend id in
	the backend list
	(backend_note_new):
	(backend_note_destroy): Implement. Convenience functions for
	creating and destroying backend notes
	(load_metadata_file):
	(write_metadata_file): Read/write type of backend containment
	(full or partial)
	(location_add_backend): Pass parameter telling whether containment
	is partial

2001-01-25  Bradford Hovinen  <hovinen@ximian.com>

	* config-log.c (get_current_date): Use local time rather than
	Greenwich Mean Time

	* location.c (location_store_xml): Implement; copy from
	location_store
	(location_store): Free filename after use

	* archive.c (archive_load): Free prefix only if not global

	* location.c (location_rollback_all_to): Increment array

	* util.c (parse_date): Normalize values

2001-01-24  Bradford Hovinen  <hovinen@ximian.com>

	* config-log.c (do_load): Disabled locking for now

	* archiver-spec: Added fine-grained location management description

2001-01-15  Bradford Hovinen  <hovinen@ximian.com>

	* Makefile.am: Added rule for ximian_archiverConf.sh; add
	installation target for Conf.sh

2001-01-13  Bradford Hovinen  <hovinen@ximian.com>

	* Makefile.am: Replaced occurrences of helix with ximian
	Removed references to ximian_config_manager

2000-12-22  Bradford Hovinen  <hovinen@helixcode.com>

	* archive.c (foreach_cb):
	(archive_foreach_child_location): Use auxillary structure to pass
	data to traversal callback
	(archive_get_location): 
	(archive_register_location): strdup() location ids
	(free_location_cb): free() key

2000-12-20  Bradford Hovinen  <hovinen@helixcode.com>

	* location.c (location_get_parent): Implement

	* archive.c (load_all_locations): Implement
	(foreach_cb): 
	(archive_foreach_child_location): Implement

2000-12-19  Bradford Hovinen  <hovinen@helixcode.com>

	* Makefile.am (bin_PROGRAMS): Changed name of archiver to
	helix-archiver
	(lib_LIBRARIES): Added libhelix_archiver.a
	(helix_archiver_SOURCES): Moved archiver core to
	libhelix_archiver_a_SOURCES
	(helix_archiver_LDADD): Added libhelix_archiver.a
	(INCLUDES): Changed XML_CFLAGS to GNOME_XML_CFLAGS
	(include_HEADERS): Create and include headers for
	libhelix_archiver.a
	(includedir): Set includedire to include/helix-archiver

2000-12-18  Bradford Hovinen  <hovinen@helixcode.com>

	* main.c (do_rollback): Support rolling back by steps

	* location.c (location_rollback_backend_by): Implement
	(location_dump_rollback_data): Support passing steps as well as
	date

	* config-log.c (config_log_get_rollback_id_by_steps): Implement

	* location.c (write_metadata_file): Don't support writing out the
	master list any more
	(save_metadata): Ditto
	(load_metadata_file): Get backends list from BackendList object
	(rather than finding it out oneself) if location is toplevel
	(do_create): Ditto
	(get_backends_cb): Implement
	(location_add_backend): Add return values for error conditions

2000-10-15  Bradford Hovinen  <hovinen@helixcode.com>

	* location.c (location_rollback_backends_to): Free id_array when done

	* config-log.c (config_log_reset_filenames): Implement

	* archive.c (archive_set_current_location_id): Move gnome_config_
 	code from set_current_location

	* location.c (location_set_id): Implement

	* main.c (do_rename_location): Implement

	* archive.c (free_location_cb): Don't free locid
	(archive_get_location):
	(archive_register_location): Don't strdup the location id
	(archive_set_current_location_id): Implement

	* main.c: Add options for renaming locations and specifying that
 	backends should be added to or removed from the master list

	* location.c (run_backend_proc): Close all descriptors other than
	0, 1, 2
	(location_set_id): Implement
	(location_set_arg): Free previous locid if exists

	* archive.c (add_location_cb): Implement
	(archive_set_current_location): Add location change algorithm

	* location.c (location_find_path_from_common_parent): Implement
	(location_foreach_backend): Implement

	* archive.c (archive_set_current_location): Set
	archive->current_location_id

	* main.c (do_add_location): Check parent_str for NULL before
	loading location
	(do_change_location): Implement
	(main): Support changing location

	* archive.c (archive_register_location): Implement

	* location.c (do_create):
	(do_load): Use archive_get_prefix
	(do_create): Load global location metadata if this location does
	not inherit from anything
	(location_get_id): Implement

	* archive.c (archive_get_prefix): Implement

	* location.c (location_get_path): Implement
	(load_metadata_file): Use archive_is_global
	(location_set_arg): Set label when setting locid

	* location.[ch]: Make all data members private

	* main.c (main): Get current location name properly, create
	location iff location id is "default"; bail out with error otherwise
	(do_remove_location): 
	(do_add_location): Implement

	* config-log.c: Include ctype.h to fix implicit declarations

	* location.c (location_rollback_backends_to): Property initialize i
	(location_contains): Fix precondition checks
	(do_create): Remove unused variables

	* archive.c (archive_get_location): Make a copy of locid before
	working with it 
	(do_load): Fix precondition checks

	* location.c (location_open):
	(location_new): Make locid const

	* archive.c (archive_get_location): Make locid const

	* location.c (data_delete_cb): 
	(location_delete): Implement

	* config-log.c (config_log_iterate): Implement
	(config_log_destroy): Make private, pass GtkObject
	(config_log_delete): Implement

2000-10-14  Bradford Hovinen  <hovinen@helixcode.com>

	* location.c (location_close): Add precondition checks

	* archive.c (archive_destroy): Make private; pass GtkObject

	* location.c (location_add_backend): 
	(location_remove_backend): Add precondition checks
	(location_destroy): Make private
	(location_destroy): Pass GtkObject pointer rather than Location
	pointer; this cleans up assignment in _class_init 

	* archive.c (archive_get_current_location_id): Implement
	(archive_get_current_location): Implement

2000-09-03  Bradford Hovinen  <hovinen@helixcode.com>

	* location.c (location_new): Set is_new
	(save_metadata): Don't write file unless necessary
	(save_metadata): 
	(write_metadata_file): Split out file writing into
	write_metadata_file; write default data file as necessary
	(location_add_backend): 
	(location_remove_backend): Implement

	* main.c: Add command line arguments for adding/removing locations 
	and backends; move backend id argument into global options

	* location.c (do_load): 
	(load_metadata_file): Split out file parsing logic into
	load_metadata_file; call load_metadata_file on default file to get 
	contains list if current location doesn't inherit anything
	(load_metadata_file): g_strdup backend string
	(load_metadata_file): Warn if top-level location has contains clauses
	(location_store): Check if the location contains the given backend
	and try the location it inherits if it doesn't

	* archive.c (archive_load): Set is_global in archive object

	* Makefile.am (Locationmeta{dir|_DATA}): Added commands to install
	data files
	(INCLUDES): Added define for LOCATION_DIR

2000-09-03  Bradford Hovinen  <hovinen@helixcode.com>

	* location.c (save_metadata): Write attributes when saving