File: Changes

package info (click to toggle)
afbackup 3.3.6pl4-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 3,872 kB
  • ctags: 3,143
  • sloc: ansic: 44,316; tcl: 4,189; sh: 2,263; csh: 2,077; makefile: 566; sed: 93; perl: 80
file content (788 lines) | stat: -rw-r--r-- 36,418 bytes parent folder | download
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
2.1 - 2.1.pl1
	- minor bugfix in restore script


2.1.pl1 - 2.1.pl2
	- Bugfix in configuration programs.
	  Affects:    cartridge handling systems without a special
	              command to set the cartridge, that therefore
	              must be set to sequential mode.
	  Workaround: Comment out the line starting with Setcart-Command
	              in .../backup/server/lib/backup.conf

2.1.pl2 - 2.1.pl3
	- Fix of stupid bug produced while fast-hacking pl2

2.1 - 2.2
	- automatic tape labeling and consistency check
	- directories can selectively be excluded from backup
	- cleverer device access, two stage timeout: 1st stage
	  sends email to maintainer, 2nd stage exits
	- facilities for recovery from hard crash with lost
	  filename logfiles
	- reduced unnecessary tape movements

2.2 - 2.3
	- Maintain a lock file to prevent concurrent tape access of
	  different server processes
	- Optional compressing of the filename logfiles
	- Client side parameters RootDirectory and BackupHost can
	  be overridden with command line options of restore

2.3 - 2.4
	- Block and character device special files can be saved
	- Storing the file contents can be forced independently of
	  the file type (useful for saving raw partitions or so)
	- option -N for the client side program for saving only
	  files newer than a given one
	- small bug fixed concerning zero-length files

2.4 - 2.5
	- File contents (see 2.3 - 2.4) can be compressed
	- Sockets can be saved
	- full_backup, incr_backup and restore are now binaries
	- print_errors is a new command
	- Weird problem workarounded with I/O-Error on interrupted
	  backup
	- If filename logfiles should be compressed, no uncompressed
	  files ever appear
	- Directory path patterns can be supplied for excluding files
	  or directories
	- Support for a max of 16777215 cartridges with 2147483647
	  files on each (please consider configuring several backup
	  servers ;-) )
	- Restore can be called with glob-style filename patterns
	- For the client side a lockfile is maintained as well, so
	  several backup or restore programs can't be run simultaneuosly
	  on one client causing trouble on the logfiles

2.5 - 2.6
	- File contents can not only be specified with prefixes /../
	  or //../, but also by option -r or -R
	- Saving files can be limited to device/filesystem

2.6 - 2.6.1
	- New client- and serverside parameter EncryptionKeyFile
	  for the authentication mechanism
	- New clientside-parameter VarDirectory for varying files
	- Default-configuration files in /etc/buclient.conf and
	  /etc/buserver.conf

2.6.1 - 2.7
	- New clientside parameter CompressBackupedFiles for choosing
	  compression of files and filename logfiles separately
	- Clientside request-queue for asynchronous communication with
	  the server (hopefully much better performance)
	- New serverside command "label_tape" to manually write a label
	  to the tape currently in the drive
	- Default-configuration files can also be (Debian needs)
	  /etc/afbackup/client.conf and /etc/afbackup/server.conf
	- Bug (typo) fixed: Entry for locking file in the server
	  configuration file has been ignored
	- HOWTO-file is maintained now

2.7 - 2.7pl1
	- Better connection failure handling. Up to now with DAT data
	  on tape might be lost on a connection breakdown

2.7 - 2.8
	- Normal filesystems can be used for backups instead of tapes,
	  thus also removable media
	- A file with a special name can be placed in any directory
	  containing names or patterns of files and subdirectories to
	  be excluded from backup
	- Compression attempts can be avoided on already compressed
	  files by supplying appropriate filename patterns
	- Slight further speedup
	- Small bug fixed (sometimes a "Connection ... lost" occurs)

2.8 - 2.8plX
	- Bugfixes, more logging, more diagnostic messages, more
	  safety

2.8 - 2.8.1
	- Port number can be configured in the configuration file
	  of the client side

2.8.1 - 2.8.2
	- FreeBSD supported
	- Wrapper script for mt added: __mt (FreeBSD's mt does not
	  accept 0 as repeat count)
	- Non-GNU-make can be used (under Solaris it's a little
	  annoying) and is recognized automatically

2.8.2 - 2.8.2.pl1
	- Bug ignoring several -m or similar in file list fixed

2.8.2 - 2.9
	- Several sets of cartridges can be used on the server side
	- Verify is now possible
	- restore does not restore the same file several times
	  from different backups
	- memory leak fixed (a quite harmless one, quasi more a
	  theoretical one, no sole reason for an upgrade)
	- Documentation reviewed and lots added, e.g. an INTRO
	- An exit command can be configured, usable for reporting
	  successes and statistics to an administrator
	- Ordinary users can restore their own files and directories

2.9 - 2.9.pl1
	- With several cartridge sets configured reading over end of
	  tape of the last cartridge change to the first cartridge
	  of the same set and not to cartridge 1. This was a bug

2.9 - 2.10
	- Byte Sums are no longer of type "long int", now "double"
	  ("long long int" is a portability problem)
	- Buffering also on the server side. Especially read
	  operations (verify, restore) should be much faster now
	- Stale lockfiles do not cause another server process or
	  a highlevel client program to wait. This was a bug
	- Several kill-s to the server don't harm, no stale lockfile
	  is left over (of course not valid for a kill -9)
	- Errors are immediately printed before completion of client
	  programs. print_errors is not really necessary anymore,
	  anyway i consider it helpful for later diagnostics
	- No longer confusing message "Cannot find out number of
	  lines in ..."
	- No longer annoying message "/tmp/xxxxxx: No such file
	  or directory"
	- Safer tape handling (hopefully)
	- Strange AIX problem workarounded (EIO at end of media
	  instead of the documented ENXIO)
	- A modified-before- and -after-date may be supplied with
	  the restore program
	- Autodetecting inserted cartridge, if tape is labeled or
	  had already been used
	- Strange wish behaviour (too flat window) workarounded
	- Missing feature added: modification time is saved with
	  file contents i.e. e.g. raw devices

2.10 - 2.11
	- Second possibility to save backups in a filesystem
	  (without the need of symbolic links)
	- Output of XXXXXXconfig is piped through more for
	  convenient configuration from any terminal

2.11 - 2.11.1
	- libc-6 (i.e. glibc) - ready (see README: THANKS TO)

2.11.1 - 2.11.2
	- Insufficiency of the cartis script fixed: read the number
	  of cartridge sets from the server configuration file
	- (x)clientconfig and (x)serverconfig did not look for config
	  files in all intended places, documentation incomplete

2.11.2 - 2.11.3
	- Minor inconsistencies fixed. Utilities added (yet unused)

2.11.3 - 2.11.4
	- Security hole fixed

2.11.4 - 3.0
	- Debianized
	- Defaults changed somewhat
	- Uses autoconfig
	- full_backup, incr_backup, restore and verify can override
	  most of the config file settings by commandline options
	- New parameter: Device-probe interval
	- New parameter: Skip-files Command
	- Documentation reworked (including man-pages)
	- restore now takes -C instead of -R, -R is still recognized.
	  -C is now the changedir-option in conformance with the
	  other commands (and BTW tar)
	- label_tape has new -q option for reading the tape label
	- Emergency restore without any input information (-E)
	- Emergency restore or only the minimum restore info (-El)
	  or only tape scanning (restore -En)
	- Differential backup with option -a for incr_backup
	- Hopefully more speed by use of appropriate TCP-options
	- Option to use 128 Bit DES encryption for client-server
	  authentication (requires Eric Young's libdes)
	- cartready indicator file mechanism changed (other way round)
	- Logging of the remote host name, if authentication fails
	- Possibly conflicting program names prefixed with af
	- Bug fixed setting the wrong cartridge for a set, if one set
	  comprises of cartridge #1 only, what should be avoided anyway
	- Senseless settings of maximum number of bytes per tape file
	  caught and reset to reasonable value
	- Year 2039-ready i.e. any length time_t on any architecture
	- More appropriate filename handling on recursive extraction
	  of directories
	- Preferred serving of repeated requests from the same client
	  to avoid race conditions
	- Better locking algorithm for client start and server access
	- SunOS 4.XYZ supported platform
	- Symbolic links are allowed for all programs (full_backup, ...)
	- On remote start the output of the remote command is transferred
	  to the client side, also the exit status corresponds
	- Generally better diagnostics for remote start
	- Very stubborn problem on HP-UX-9 fixed, maybe the problem was
	  leading to problems also on other architectures
	- New parameter: InitProgram for the client side. StartupInfoProg
	  is now ran later, when backup succeeded
	- In serverside init and exit command %p is replaced with client's
	  peername

3.0 - 3.0.1
	- New flag -w for afclient to check server side streamer state
	- differential backup with incr_backup -a did not work yet (!)
	  (implementation was lost probably due to multiple development
	   locations and inconsistent code between them, sorry)

3.0.1 - 3.0.2
	- New flag -l for afclient to report the location of the server
	  side for each file (preparation for storage pools)
	- docs updated

3.0.2 - 3.0.3
	- restore -f was broken in 3.0.1 - 3.0.2

3.0.3 - 3.0.4
	- Server side rexec path had wrong default

3.0.4 - 3.0.5
	- Always use built-in fn_match instead of fnmatch

3.0.5 - 3.1
	- Several triples backup-host/backup-port/cartridge-set possible,
	  all handled transparently to the user
	- Server side lock bug fixed (caused minor requests like -q to
	  hang, had to interrupt with Ctrl-C, bug appeared in 3.0.3)
	- Also scripts (e.g. clientconfig) may be arbitrarily symlinked
	- Preinstalled config file has now empty encryption file - caused
	  confusing log message (" ... using compiled-in key")
	- Install script supports change of afbackup service name
	- Docs adapted
	- Tape label extended by a comment and a possible secondary label
	  number
	- Bug concerning SetCartridgeCommand fixed
	- Server side processing reworked for better throughput
	- Protocol extended for raw accesses
	- A lot of processing modularised
	- A maximum number of bytes per tape can be configured, also
	  varying for different tapes
	- Tapes can be duplicated (command copy_tape)
	- Duplication of tapes can be automated after performing a backup
	  (script autocptapes)
	- Backup levels of arbitrary (1..MAXINT) number (option -Q for
	  incr_backup)
	- Automatic switching from incremental to full backup for new
	  entries in DirsToBackup...
	- Verbose option -v for full_backup, incr_backup, ...
	- GUI frontend xafrestore for the afrestore utility, still inferior

3.1 - 3.1.1
	- Some strange csh versions had problems with xafrestore
	- Helper programs for fast command pipe startup (__piper) and
	  encryption (__descrpt) added (mainly for use in CompressProgram)

3.1.1 - 3.1.2
	- Bug fixed: erasetape command was not always called when
	  changing the cartridge

3.1.2 - 3.1.3
	- Compilation was broken on FreeBSD

3.1.3 - 3.1.4
	- Bug fixed: During save timestamps of filesystem entries were
	  changed, that symlinks pointed to

3.1.4 - 3.2
	- ACLs supported on Solaris2 and HPUX-10, if available
	- Also on Solaris >= 2.6 filesizes > 2GB supported
	- Multi stream server
	- Status file on server side, regularly updated during operation
	- Descending into directories is now done like find -depth
	- Hopefully even safer tape error handling
	- Service names allowed wherever port numbers were to be given
	- -v option for verify, restore and copy_tape
	- Tapes can be set read-only
	- Tapes are no longer overwritten, server keeps track, which
	  tapes are needed for all the clients
	- Admin must explicitly permit overwrite of needed tapes
	- Verify is much faster now
	- Bug fixed (tapeblocksize may now be > MaxBytesPerFile / 10)
	- Init Media command for preparing the media for access, e.g.
	  mounting a removble disk
	- More versatile Change-Cart-Command (see FAQ Q6)
	- Tape blocksize now written into the tape label
	- Filelist recovery also restores uid fields
	- Minimum restore info is no longer cumulative
	- Configuration programs can get config file as argument
	- label_tape now also labels "directory-tapes"

3.2 - 3.2.1
	- Compilation was broken with glibc and on FreeBSD, maybe others
	- Bug fixed: differential backups did not work correctly when
	  configuring several backup parts

3.2.1 - 3.2.1pl1
	- Bug fixed: Restore reported errors without real reason and
	  probably restored in wrong order, when compiled with -O...,
	  probably more side effects up to no working high-level
	  programs (full_backup, incr_backup, verify, ...)

3.2.1 - 3.2.2
	- A full backup split into pieces does no longer modify the
	  timestamp
	- Built-in compression
	- Faster (backward compatible) packing format
	- Bug fixed requiring unnecessary workaround for
	  afrestore -[eEf] on new installation
	- Bug fixed, restore -[eEf] now works together with -[RC]

3.2.2 - 3.2.3
	- Option -G for (full|incr)_backup and afclient to request a
	  new or reused cartridge
	- Completely any-shit-in-filenames-safe, e.g. newlines or non-
	  printable characters are allowed in filenames
	- Cartridge sets may consist of arbitrary cartridges, not only
	  consecutive ranges
	- Enhanced database saving capability through command output
	  saving / command input restoring feature
	- Security fix: Client configuration file must be owned by root,
	  so normal users can't supply their own ones

3.2.3 - 3.2.4
	- Client side ring buffer processing reworked, lots of unneeded
	  system calls removed -> hopefully better performance, fewer
	  problems on the Sun and other System-V like OSes
	- Bug fixed: files with special characters in name were sometimes
	  not found during restore with given filenames
	- Bug fixed: __descrpt had a problem when reading a pipe
	- Insufficiency fixed: client now tells server to not overwrite
	  tapes relevant on this server only (before lock on all servers)
	- Server ID introduced to be able to identify the same server
	  under different hostname/port-combinations (e.g. single-multi)
	- Server now tells about it's version, client evaluates this
	- New option -r for command label_tape to delete the overwritten
	  tape from the cartridge handling database
	- label_tape now updates the cartridge handling database properly
	- Better locking for the cartridge handling database files
	- Bug fixed: memory allocation in del_one_from_Uns32Ranges
	- Tape usage counter (file tape_uses)
	- New serverside callback command Tape-Full-Command
	- New helper program __numset
	- Helper script cartagehandler to automatically move cartridges
	  to other sets
	- Variable client-server-protocol
	- Throughput optimizer varying the client-server-protocol
	- Annoyance fixed: verify no longer tells  x is larger than x
	- Source reorganized: Utilities library can be used independently
	  from afbackup, especially in other projects
	- Bug fixed. When restoring relative to a directory, symlinks
	  pointing to absolute pathnames were not created correctly
	- Parts of restore reworked -> safer, faster: trying to put
	  together subsequent tape files for restore; output modified
	- Insufficiency fixed: -l and -n with -a allowed for afrestore
	- Trivial but terrible (whoooooaaaaahhh) memory leak fixed
	- Problem fixed with multi stream server when first/last client
	  fails to connect successfully (thanks also to Pjotr Klaban)
	- Bug fixed: The device access timeouts did not behave as
	  documented when configuring 0
	- Bug fixed: verify might have hung reading corrupt tape data
	- Usage check for client program fixed
	- Bug fixed: Documentation error on -R for restore stating a
	  directory would be created
	- Bug fixed: reread tape position file after waiting for write
	- File truncation during restore tracked down to misbehaving zlib
	- Default installation directory in Install script changed from
	  /usr/backup to /usr/local/afbackup
	- More appropriate position recording in file index -> faster
	  restore

3.2.4 - 3.2.5
	- All arguments passed to mserver and not recognized are passed on
	  to the server subprocess, thus -b possible in /etc/inetd.conf
	- Fixed bogus error message during restore, stating that errors
	  occurred, though there were none
	- Optional CRC32 checksumming on each file, especially, if not
	  compressed (zlib is required nonetheless)
	- Real compression factor is reported in statistics taking only
	  compressed files into account
	- More detailed error messages
	- Configurable server status file, optional append mode
	- More convenience replacements in configuration files
	- Timeout for logon to server
	- Restore of filecontents can be forced to relative path, too
	- Option -H removed from afrestore, -W should be used instead
	- Bug fixed: On Solaris or HP-UX the multi stream server might
	  segfault at startup with certain configurations
	- More logical error handling on client side: distinguish between
	  retryable and non-retryable errors
	- Cartridge set access can be restricted to certain clients
	- Bug fixed: Built-in authentication key stuff (no DES) was broken
	- Restoring with unlink: If a directory is restored and an entry
	  with that name exists, that is not a directory, it is unlinked
	- Minor bug fixed: raw tape access was broken through the multi
	  stream server (discouraged anyway) in 3.2.4
	- Workaround for stupid bug in the IRIX-6.5 Headers
	- On Sun and HP ask for and recommend using gcc
	- Documentation errors concerning filesystems as storage media
	  fixed

3.2.5 - 3.2.6
	- Fix for malloc problem on Digital Unix (and probably others (?))
	- Optional full append mode
	- Exit, if confirmation can't be read from TTY or on input timeout
	- Bug fixed: When switching to another cartridge set for backup
	  with a writing position on a tape, that has been set to read-only
	  mode in the meantime, an immediately following verify asks for
	  another tape first before requesting the correct one (this
	  problem has never been reported to me and only matters for verify,
	  not for restore or anything else, so i consider this a minor bug)
	- Documentation update: How afbackup compares to amanda
	- Two-column X-configuration programs
	- I18N/L10N (thanks a lot to "Lele Gaifax" for implementing it)
	- Option -n with -X for remote start will prefix the output lines
	  with the name of the remote host and a colon
	- Also negative timestamps possible (e.g. "supported" by Solaris)
	- Additional security checking for wrong SUID/SGID Flags
	- Multi stream server's client authentication timing reworked
	  (might timeout during connect due to long tape operations)
	- Option to refuse writing to tapes without valid labels
	- Option -m for restore to prevent existing files from overwriting

3.2.6 - 3.2.7
	- Compress/Uncompress program parameters renamed to Process/Unprocess
	  to stress their more general character
	- The unprocess programs for the indexes are written to files, so
	  the (un-)process programs can be safely changed at any time
	- Seperately configurable process and unprocess commands for the
	  index files
	- The restore option -C really will create the directory as stated
	  by earlier documentation
	- Serverside bug fixed: In very rare cases the tape file count
	  might become higher than reality. This makes, that full append
	  mode for this tape does not work any longer, when it is deselected
	  explicitly (cartis -i or clientside -G), No data is endangered to
	  be erased, overwritten or some other way lost
	- Optional variable append mode. Any tape of the right cartridge set
	  with space left is accepted for writing. No fix writing position
	- Some oddities in label_tape cleaned up, e.g. a cartridge will be
	  removed from the set of read-only tapes, when labeled
	- Bug fixed: (full|incr)_backup did not work with LANG != C or unset
	- One more time workaround for IRIX-6 header bug
	- When cartridges are removed on the server (using label_tape or
	  the server message ReuseTapes) the client updates his information
	  and prints a message at backup start time
	- More robust client connect mechanism
	- Multi stream server can be started as daemon (not using inetd)

3.2.7 - 3.2.7pl1
	- full_backup and incr_backup did not work with LANG != C

3.2.7 - 3.2.8
	- (3.2.8 is mainly a maintenance update)
	- Symlinks owned by root:root in a user's directory could not be
	  restored before. This works now, if there's no syscall lchown
	- Tapes can be labeled, while server is waiting (option -F)
	- Build machinery, especially autoconf, enhanced
	- No more sideeffects when installing the programs not in an own,
	  but a public directory
	- Debian source build tree fixed
	- Choice while running Install, whether chown of the serverside var
	  directory and all it's contents should be performed
	- Some texts were still not internationalized
	- More documentation
	- Workaround for remotely started daemons, that do not daemonize
	  properly
	- Most filedescriptors are closed on exec - cleaner implementation
	- Authentication stuff implemented more generally reusable (for gnep)
	- Problems with Tcl/Tk-strings on IRIX and Tk-4.0 fixed
	- Also on Linux filesizes > 2GB supported (if Linux does)
	- Server enhanced, so Solaris is now a tested server side platform
	  (must be >= Solaris-2.6)
	- Clientside logfile is only opened, when there is something to be
	  appended, and closed afterwards - cleaner implementation
	- The minimum restore info can be used in the clientside exit command
	- Client gives up connecting immediately on sure authentication error

3.2.8 - 3.2.8pl1
	- afclient -GQ did not produce correct output on first invocation,
	  what might break verify functionality (no data harmed)
	- afclient's -n option in combination with -X was not documented
	- Minimal restore info might not be found while tape scanning if
	  written by the multi stream server
	- afmserver did segfault, if tape blocksize was > 131076 bytes
	- afmserver made afserver ignore the -b flag (nobuffering)

3.2.8pl1 - 3.2.8pl2
	- If there was an entry for the parameter "LastCartridges:" in the
	  serverside configuration file (though this entry is an old
	  fashioned one, it's use is discouraged, changing to the new style
	  entry is described in the UPGRAGE file under 3.2.2 and the entry
	  is automatically converted by either serverconfig or xserverconfig)
	  AND the entry was empty AND there was no entry for the (new-style)
	  parameter CartridgeSets, THEN the server misbehaved in that it
	  requested cartridge n + 1, when cartridge n was full and there were
	  only n cartridges configured

3.2.8pl2 - 3.2.8pl4
	- make install.client might fail, if DES encryption is not built in

3.2.8pl4 - 3.2.8pl5
	- Bug fixed: server might segfault when writing is requested and
	  no tape with space is available

3.2.8 - 3.3
	- OpenBSD supported
	- Tape locations database
	- Media changer support (1 drive in a media changer per server)
	- New command cart_ctl
	- mtime is saved in index -> file selection/listing for restore
	  using the modification time is correct now, but: index bigger and
	  less compressable
	- Contents of progress text window of xrestore always visible now
	- Server can send mails to current users (%U) on clientside (%H)
	- Server is configurable to write messages to syslog
	- No longer strange server behaviour, if no logging is configured
	- Path replacements also on server side (%L, %B, %V)
	- afclient -v prints out software name and version
	- Bug fixed: Toplevel directories with a name consisting of only 1
	  character were only listed by restore, if the name was given exactly,
	  thus not immediately visible in xafrestore
	- Bug fixed: restoring a filesystem entry with ACLs and several
	  hardlinks produced format error and possibly segfault
	- Cleverer algorithm to select the tape files for emergency restore,
	  -E and -e options of afrestore can be given several times
	- Buggy function in libdes des_3cbc_encrypt only used on request

3.3 - 3.3pl1
	- Stray lines in afrestore -l output, thus also in xafrestore, fixed

3.3pl1 - 3.3pl2
	- copy_tape did not work any more with destination filesystem
	- if built-in compression was turned on and an external program was
	  configured to preprocess the saved files, under certain (in my
	  opinion rare) circumstances verify might stop processing due to
	  a condition similar to a race. Other functionalities e.g. backup
	  or restore were not affected

3.3 - 3.3.1
	- For the entries to save a command can be supplied starting with | 
	- Help dialog geometry adapts to the text length
	- With older minimum restore info the older index is restored, not a
	  new one created (like before). So also data can be restored, that
	  is in indexes, that have already been removed, cause they left the
	  range configured in the NumIndexesToStore parameter. Assumed is
	  of course, that the needed tapes have not been overwritten
	- Filename in minimum restore info is a temporary copy. The constant
	  name turned out to be disadvantadgous for the previous topic
	- New server message DeleteClient to free the tapes of a client
	- When cartridges are removed on the server (using label_tape or the
	  server message ReuseTapes) the clients also update the index files
	- Tested on Linux-2.4
	- The tape blocksize can be changed now without breaking access to
	  older tapes. This feature was a horror to implement and test. If
	  this was commercial software, i'm sure, this had never been done
	- Restore only the newest version of a file, if no timestamp is given,
	  not the same file several times
	- Client requests authentication from server, too, to make sure, it is
	  talking to an afserver, that is really knowing the key -> security
	- Option -T for copy_tape to specify the directory for temporary space
	- The clientside lockfile is now configurable
	- Flag -i for afrestore to ignore the case in filenames
	- Current index might have lost some contents when hitting Ctrl-C

3.3.1 - 3.3.2
	- Restore can be restricted to a supplied set of tapes
	- New command update_indexes to ask the servers for erased tapes
	  and to remove the appropriate entries from the indexes
	- Index cleanup from erased tape entries is now done before backup
	  when starting (full|incr)_backup, not afterwards
	- With afrestore and update_indexes, certain arguments are ignored
	  now, when started by normal users with SetUID root (security)
	- NumIndexesToStore = 0 was incorrectly handled as 1
	- Bug fixed: With certain configurations non-root restore was broken
	- Opening a tape device to test availability should be non-blocking,
	  so with an autochanger the server will never hang on an empty drive
	- The find function did not always work properly with flags FIND_DEPTH
	  and FIND_LOCAL_DEV set -> flag -m or .//. sometimes misbehaved
	- The tape label comment is kept when the tape is automatically labeled
	- The tape read and write positions were not reset when labeling a tape

3.3.2 - 3.3.3
	- Server multithreaded, if POSIX threads available (evtl. -> speed)
	- New utility xafserverstatus
	- Buffer behaviour enhanced for a little more speed on slow filesystems
	- Cleaner implementation of handling trailing pad bytes
	- label_tape on symlink pseudotapes in the filesystem was broken
	- copy_tape reworked, so beginning of read and write can be set to
	  a certain tape file number (option -F)
	- Client identifier in index header line
	- More reliable error detection on the target server during tape copy
	- For writing the correct secondary cartridge number (i.e. a clone)
	  is only accepted after error message and insisting by a maintainer
	- Beautification: verifying the latest backup does no longer complain
	  about a file, that is temporarily needed and saved, but was gone
	- The program changerready (hardlink to cartready) was not installed

3.3.3 - 3.3.3pl1
	- xafrestore did not work, when vardir was not set in config file

3.3.3pl1 - 3.3.3pl2
	- Subprocess exit status sometimes incorrectly evaluated (observed only
	  on Solaris, but maybe some rare confusions were caused by that, too)

3.3.3pl2 - 3.3.3pl3
	- cart_ctl -t should use the 'CartridgeInsertGracetime'
	- cart_ctl -t should not set the cartridge location to unknown, if
	  labeling fails

3.3.3pl3 - 3.3.3pl4
	- Build problems with disabled national language support fixed
	- Wrong newline in changer.conf.chio for FreeBSD removed

3.3.3pl4 - 3.3.3pl5
	- Bug fixed: The current tape blocksize must not change during online
	  server reconfiguration i.e. after a cartready command or similar
	- Bug fixed: Default lockfile was not set correctly after online
	  server reconfiguration

3.3.3 - 3.3.4
	- Option -e (eject) for cart_ctl
	- Faster cleanup on client interruption
	- Full installation support for use with xinetd
	- Option -F plus format string for afrestore to print in user-defined
	  format and possibly containing file attributes present in the index
	- Details display also available in xafrestore GUI
	- New tape position file format, needed for future handling of
	  boxes with several streamer devices
	- cartis is no longer a script, yet another link to label_tape
	- Even safer cleanup on client interruption
	- Option -l[a] for afverify to list available backups from the indexes
	- Cleverer memory allocation strategy for names of files to restore to
	  be able to hold more of them in memory
	- POSIX ACLs supported
	- OSF-1 (and derivatives) ACLs supported
	- ACLs supported on IRIX
	- When an index has moved to another client, it is no longer necessary
	  to supply the -W <clientid> option to afverify or afrestore, when
	  afrestore is used with files or filepatterns (i.e. not -aeEf)
	- Clientside process calling chain reworked -> faster startup, less
	  tape moving, easier handling of the minimum restore info, cleaner
	  implementation, cleaner error handling, but: if a backup fails, a
	  minimum restore info for this is nonetheless written to tape. But
	  the advangages outweigh this little oddity
	- print_errors removed. All errors go to the log and stderr, no longer
	  mixed into the index files
	- Emergency recovery with relocate now relocates also the var directory
	  and creates it, if not existing
	- Bug fixed: After an online server reconfiguration (e.g. following a
	  cartready command) with directory pseudotapes it might happen, that
	  the saving location of a few files was wrong in the index
	- Bug fixed: afrestore -a with -C stopped prematurely in some rare
	  cases, when there were incremantal backups with no saved files

3.3.4 - 3.3.4pl1
	- Bug fixed: Statistics output was wrong: wrong start and end tape
	  position reported. Sideeffect: Use of cartridge 0 (not valid)
	  reported and cartridge 0 protected from overwrite on the server.
	  Mainly confusing, but not a really bad bug

3.3.4pl1 - 3.3.4pl2
	- Weird problem fixed: The multi stream server failed to demultiplex
	  the data to clients when reading during interrupt check, but only
	  with many clients saved in parallel, only on linux and only when
	  compiled with -O2. Worked around it, but didn't really understand
	  the problem. Suspect a libc error in getpeername

3.3.4 - 3.3.5
	- When encountering files of type "door" (cf. Solaris), do not throw
	  warnings and do not back them up
	- Remove old index files optionally by age, not by number of existing
	- Optionally scan a maximum configured number of index files, possibly
	  by age
	- Use also builtin paths to locate configuration and other directories,
	  even with ORIG_DEFAULTS defined. Thus the full path is no longer
	  necessary in /etc/inetd.conf for argv[0] of the server entries
	- Use /dev/(u)random, if available, for random numbers
	- POSIX threads availability also recognized on Free-BSD and the like
	- Optionally check, if the user has the access permissions to restore
	  his own files, also in the case, that no relocation is done
	- cart_ctl -l filters by changer device, if option -d is given
	- Option to prefer cartridges available in a changer. Default is to
	  cycle through all tapes independently from their current location
	- Authentication key file can be configured individually for
	  clients or groups of clients e.g. by command filtering
	from a patch of Peter 'Rattacresh' Backes:
	- Added --disable-threads option to configure.in and a corresponding
	  question to Install.
	- Fixed some questionable syntax combinations in Install like backspace
	  at the end of a string literal, a double quote ended by a single one
	  and a strange method of checking for the exit code

3.3.5 - 3.3.5.1
	- Install included libintl with x_utils, if required

3.3.5 - 3.3.5.1pl1
	- Avoid bogus messages: 'Wrong tape X accepted in drive for -1' and
	  'Using cartridge N instead of the desired (N-1)'
	- Bug fixed: server might crash or overwrite tape 1 without checking
	  that the tape is free, after requesting to free tapes manually

3.3.5.1pl1 - 3.3.5.1pl2
	- Fix for 'Avoid bogus messages ...' in pl1 was bad

3.3.5.1pl2 - 3.3.5.1pl3
	- Memory allocation bug fixed in full_backup

3.3.5.1 - 3.3.6
	- Mostly RCSed
	- Modified implementation of excluding files and directories. Now
	  also toplevel subentries can be excluded writing ./whatever
	- In addition to the mtime also the ctime can be used to select files
	  for backup during incremental or level X backup. Then the atimes
	  will not be preserved during backup
	- Installation cleanup. The configuration files are now in choosable
	  configdir, what is by default .../etc. A serverside logdir and a
	  clientside confdir has been added. Upgrade will automatically move
	  the configuration files to the new place
	- Troubleshooting HowTo added
	- Fixed, that the client side might hang due to unexpected errors
	  on the server side during startup
	- Fixed: If the first thing done after a fresh installation was a
	  differential backup (?!?), the index count erroneously started with 0
	- Cosmetical bug fixed: In the afrestore output "Found N matches on X
	  servers, Y cartridges ..." X and Y were more phantasy than sth. real
	- Insufficiency fixed: When the backup device had changed, the writing
	  position was reported incorrectly at the first next client request
	- If backup is started with files and directories to backup as command
	  line arguments, don't save them in the save_entries file
	- Do not store the clientside information about crucial tapes, if
	  passing this info to the server fails (avoids confusing message)
	- When finding files with l-bit set (if supported by platform), try
	  to set read lock, then backup on success, otherwise throw warning
	- Backward compatibility with servers < version 3.2 was broken 
	- In/exclude filesystems in/from backup by type name
	- Flag -H for incr_backup to release previous backups with a lower
	  level or the previous differential backup in differential mode
	- full_backup and friends can run without a configuration file applying
	  defaults, what is not desirable in most cases except emergency i.e.
	  disaster recovery starting afrestore with option -E or -e ...
	- During disaster recovery, if an index file is directly restored from
	  backup thus colliding with the one created by afrestore, the former
	  one will be renamed and a warning issued, so a maintainer can choose,
	  which one to use further
	- Option -L for af(m)server to set a locale

3.3.6 - 3.3.6pl1:
	- Bug in the find algorithm fixed, that lead to segfault

3.3.6pl1 - 3.3.6pl2
	- Bug fixed: restore as normal user might segfault (thanks to Norbert
	  Eicker at the University of Wuppertal for analysing the problem)

3.3.6pl2 - 3.3.6pl3
	- Workaround for drand48 on SunOS-4 extended, cause it is even heavier
	  broken than assumed before
	- Bug (?) fixed: on Solaris-2 sometimes it seems impossible to find out
	  the filesystem type of a file (observed by 'customer', but not
	  reproducible on Solaris-8 systems available to AF)
	- Output of cart_ctl was wrong when requesting a manual move from a
	  location outside a changer to a drive

3.3.6pl3 - 3.3.6pl4
	- xafserverstatus did not work on new installations