]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/ChangeLog
This commit was manufactured by cvs2svn to create tag
[bacula/bacula] / bacula / ChangeLog
index 638ccc19bdc8e197af369407b3cadd2f76c5a6ea..64176fd1e4fea51298a1e2c0b5f2af0708f885cb 100644 (file)
 
-2002-xx-xx Version 1.26 (04Oct02)
+Patched 1.32f-2
+
+2004-01-12 Version 1.32f-2 06Jan04 Release
+- This release has two patches applied:
+   1.32f-1-weekofmonth.patch
+   1.32f-2-eom-nextvol.patch
+- Fix an incorrect calcualtion of the week of the month reported
+  by Volker Sauer -- patch 1.
+- Fix bug reported by Phil (could not duplicate here) where at the end
+  of a Volume, Bacula wanted a new Volume and got into a loop requesting
+  it, then gave up -- Patch 2.
+- Modify selection of next Volume to select most currently appended Volume,
+  or if none oldest recycled Volume (problem reported by Lars) -- Patch 2.
+- Added new spec file from Scott.
+
+2003-12-31 Version 1.32f 31Dec03 Release
+- Note, this change affects only the Win32 FD.
+- Fixed Win32 FD crash due to missing argument in status command. It
+  always crashed if there was a job that had previously run.  Thanks to
+  Christopher Hull for finding and diagnosing this problem.
+
+2003-12-24 Version 1.32e 26Dec03 Release
+26Dec03
+- Fixed static configuration of gnome console reported by Alan Brown.
+24Dec03
+- Made restore use the base FileSet name instead of modifications of the FileSet.
+- Fix "restore" to always look at storage keyword and to use get_storage_resource()
+- Fix seg fault in restore if no client found/specified.
+- Made JobBytes print in 14 columns instead of 12 in status reports.
+- Install static-gnome-console if built.
+- Set max changer wait from 2 mins to 5 to avoid timout while tapes load.
+23Dec03
+- Added additional error messages to smtp. 
+21Dec03
+- Back ported the following items from 1.33:
+- Added suse platform directory and configure code. Must be tweaked for
+  SuSe.
+- Added debian platform directory.
+- Fixed fd.in (thanks Dan) to configure subsystem directory.
+- Back ported fix to Week of Month from 1.33
+- Back ported new Week of Year code from 1.33
+- Add JobId to Running jobs and Terminated Jobs status list.
+- Fixed "Phil's" bug where after doing a restore from a tape, if the next
+  operation was an append to the same tape, the number of files on the
+  tape and in the catalog got out of sync.
+- Fixed bug in Terminated Jobs status list that repeated the same job.
+
+2003-12-09 Version 1.32e 08Dec03 Release
+24Nov03
+- Sort FileSet selection list by CreateTime.
+- Add "lsmark", and "estimate" to tree routines.
+- Doing a mark or unmark now prints how many entries were changed.
+- Add command argument parsing to btape.c
+- Enhance EOT to print file:block on message.
+- Add repeat counts on btape bsf, fsf, bsr, fsr, and weof commands.
+- Enhance btape's fill command to be much clearer and more reliable.
+- Add state file to btape so that unfill command can be done any time
+  after a fill command.
+- Use reposition_dev() to position for read back of last block.
+22Nov03
+- Cleaned up the btape "fill" command to compare the last block written
+  and read rather than just printing them.
+21Nov03
+- Implement btape test for autochanger.
+- Implement btape test for Fast Forward Space File.
+- Moved up to cygwin 1.5.5-1
+20Nov03
+- Ensure that Volumes are selected from oldest LastWritten data/time.
+- A couple of bug fixes ensuring the proper ordering of volumes.
+19Nov03
+- Return oldest LastWritten for find_next_volume.
+- Enhance SD status if debug_level > 1 to show details of dev status.
+18Nov03
+- Create update_bacula_tables, ... scripts and modify configure and Makefiles
+  Not used in 1.32e
+- Eliminate is_num() and use is_an_integer().
+- Start daemons at level 90 rather than 20 so that MySQL will already
+  be started.
+15Nov03
+- In the bacula start/stop script, ordered the stop: FD SD Dir to
+  give the SD the best chances of updating the catalog before dying.
+- Fixed the signal handler to pass the signal to the exit_handler() 
+  previously it passed 1.
+- Modified SD so that on normal shutdown, it walks through all jcrs and
+  cancels them so that the Volume status will be updated in the catalog.
+- Found and fixed a bug where ST_LABEL was not set in append mode
+  (when a different tape was accepted other than the original one
+  proposed by the DIR.
+12Nov03
+- Change getdomainname() prototype for Darwin.
+- Add gethost_strerror() to create correct error message for
+  gethostbyname().
+- After doing a kill() of a stalled connection in watchdog, turn off
+  the timer to prevent an infinite loop.
+- Allow Bacula to rewrite the label on a disk volume.
+11Nov03
+- Add L_NONE for Admin and Restore jobs and update level_to_str()
+- Fix segfault from double free of RestoreBootstrap in job.c
+10Nov03
+- Check if volume has expired when doing an update media for the SD
+07Nov03
+- Fix bug reported by Lars where an incorrect Volume name was printed
+  by the "status dir" command.
+06Nov03
+- Pretty up a few error messages printed by smtp.
+- Make btime_t int64_t so that one can do arithmetic.
+- Implement since as utime (64 bit UTC). 
+- Compute clock diff between Dir and FD, and adjust since time.
+- Apply SQL fix from Nic Bellamy (thanks).
+- Apply John's zlib #ifdefing fix.
+05Nov03
+- Add Dan's with-sd-user, ... to configure.in.
+- Add Dan's userid and group modifications to bacula.in
+- Lots of documentation updates.
+- Make console print "Enter a period to cancel a command" when starting.
+- Fix the "list nextvol" command so that it doesn't try to close the
+  database twice, giving a segfault.
+- Make dir_ask_sysop_to_mount_next_volume() return immediately if a slot is
+  specified.
+- Correct some of the messages in testfind.c (pointed out by Dan -- thanks).
+- Alias fd to client, sd to storage.
+- Changed order of Console commands so that short commands such as q (quit) 
+  are more logical.
+
+2003-11-03 Version 1.32d 02Nov03 Release
+02Nov03
+- Mainly a bug fix release.
+- Do a clean of both Gnome directories.
+- Require that FileSet id match when finding an Incremental
+  previous job. This was already the case for a Full.
+- Print message if no status returned from FD.
+- Correct "Do not forget to mount the drive" message. Test was
+  backward.
+- "status dir" stopped scanning the run records on the first
+  one that matched giving an incomplete listing.
+- Edit commas in Bytes on "estimate" command output.
+
+2003-10-30 Version 1.32c 30Oct03 Release
+29Oct03
+- Add %v to job edit codes. It edits in the VolumeName(s).
+- Add code to ensure that fds 0,1, and 2 are defined by dup'ing them
+  to /dev/null if necessary.  Mostly for Windows that does not have them.
+- Error check dir_create_jobmedia_record() 2 places in acquire.c
+26Oct03
+- More doc fixes.
+- Make message buffer longer for a status message that was    
+  truncated.        
+- Put termination on varargs calls in gnome2-console.
+- Scroll only if text sent and not for status update.
+- Add all possible Status codes the jobstatus_to_ascii()
+25Oct03
+- Add new spec file and cats patch from Scott.
+- Optimize tree.c a bit -- turn off debug code, keep node fname
+  length for fast rejection, add some statistics, allocate
+  in 100K and 1Meg chunks, use bool, uint16_t and uint8_t to
+  reduce node packet size.
+24Oct03
+- Eliminate ua_retention.c that was not used.
+- Improve error message when closing brace missing in conf file.
+- More doc updates.
+- Eliminate Don't forget to mount if it is a disk file.
+- Fix Gnome2 scrolling and blank screen problems.
+- Eliminate multiple JobIds in restore selection list.
+- Fix non-portable varargs code in var.c
+- Make doc fixes/changes suggested by Dan Languille
+23Oct03
+- Document new features.
+- Implement mod of Verify Job at the run prompt.
+- Correct SQL table definitions so that MySQL and SQLite
+  have all the values in the same position.
+- Correct a typo in configure.in when configuring GNOME.
+- In doing a "status dir" make it loop over all the run
+  commands in the Schedule rather than doing on the first one.
+- Close all unused file descriptors in bpipe.c otherwise if
+  a daemon is started, it will keep our TCP/IP port open.
+22Oct03
+- Print block read error (checksum, I/O, BB01, ...) once then
+  the number found at the end of the reading.
+- Implement RunAfterFailedJob
+- Change db_find_job_start_time() to require a Full save before
+  running an Incremental or Differential job.
+- Remove has_volume_expired from code that updates vol info
+21Oct03
+- Implement "delete job"
+20Oct03
+- More documentation, add Marc Brueckner's tips to manual.
+- Tweak gnome2-console scroll window.
+- Turn off some debug info.
+18Oct03
+- Modify Verify to accept VerifyJob = xx, where the last backup job
+  of job xxx will be verified.
+- Add changing the Pool name for a Volume to "update volume"
+- Write most of the code for Verify Disk to Catalog.
+- Recreate the src/gnome2-console directory.
+- Change all the text handling code to the Gnome 2.0 way.
+- Correct the way verify filenames are returned to the Director so
+  that directories are in canonical form (i.e. trailing /).
+- Handle casting bug in glade-2 by sed'ing support.c in gnome2-console.
+
+2003-10-15 Version 1.32b 14Oct03 Release
+14Oct03
+- Modify configure so that if threaded MySQL client library
+  is not present, Bacula will link with the non-threaded 
+  version.
+- Updates to the Web pages and to the manual.
+- Remove trademark symbol from title. Phil pointed out that it
+  does not display correctly in a title.
+11Oct03
+- Implement restore by file before date. 
+- Change restore arguments a bit so that you can feed it
+  multiple jobid= specifications or multiple file= specifications.
+- Pass restore with run option on to run_cmd.
+- Make run-cmd not prompt if it has a "run" on the command line.
+10Oct03
+- When pruning, select only old orphanned jobs to delete so that
+  the current job is not pruned too.
+09Oct03
+- Corrected return status for bsf_dev and bsr_dev in block.c and btape.c
+- dev.c used incorrect ruturn status for bsf_dev in the BSF at EOM
+  code. This caused all appends on FreeBSD to fail.
+- Turn on fast block rejection code.
+08Oct03
+- Optimize file index searches by adding a count to the bootstrap.
+- Write single files/blocks to bootstrap without the second part.
+- Add current Volume status to the cannot use this Volume message.
+- Zero the rx->bsr in ua_restore when freeing so it doesn't get
+  freed twice.
+- Lots of testing on the restore
+- I noticed that SD and FD bootstrap files were not always
+  deleted, so delete them as soon as possible.
+- Restore by file (or by selecting files) created some
+  horrible looking bsr files that defeated the forward
+  spacing code, so fix write_findex to work right.
+- Add zlib_strerror() routine in filed/restore in case
+  of zlib errors.
+- In filed/restore.c make sure all error returns cleanup
+  and close the open file descriptor.
+- Make sure to set *non* over filename in attr packet
+  after file is found, so error messages that print the
+  filename don't print an old, incorrect name.
+- Allow bclose() to be called after closing the file.
+- Fix a number of unclear help messages, ... reported by
+  Phil in btape.
+- Retweak stored/read_record.c so that it does forward
+  spacing at the beginning of every tape, not just the
+  first one.
+- Print repositioning message if verbose is set.
+
+2003-10-01 Version 1.32a 03Oct03 Release
+04Oct03
+- Combine the code in ua_output and ua_status that searches
+  the run records.
+03Oct03
+- Fixed "list nextvol" to search for the correct pool in the
+  Schedule Run records.
+- Correct an error in is_block_zero. It found a false
+  match if the first 1016 bytes of a 32K buffer and     
+  the last 248 bytes are zero.  Broke the sparse option.
+01Oct03
+- More documentation.
+- Test if multiple mail addresses works. Yes.
+- Add debug Jmsg() to trigger if the file I/O packet is
+  not closed in the FD, i.e file descriptor leaks.
+- When error occurs reading label in mount.c, start from
+  the very top so that the retry count is in effect.
+- Zap the mode in soft links in testls.c for regression
+  testing.
+
+2003-10-01 Version 1.32 30Sep03 Release
+28Sep03
+- Enhance manual faq, regression ...
+- Make FreeBSD read sizes always be a multiple of 512. Needed
+  to read raw disks.
+- Make FreeBSD accept block AND character devices for raw
+  disk reads.  On FreeBSD there are no block devices.
+27Sep03
+- Fix printing of EndTime on job report after rescheduling.
+- Fix jobq.c error returns to clean up before returning.
+- Make Cleaning tape aware of "unlabeled" volumes.
+- If a job is rescheduled, ensure that old job is
+  removed from SD's jcr queue -- i.e. it is still waiting
+  for FD connection.
+- Test rescheduling code.
+- Change ./configure to detect Cygwin enviornments.
+
+2003-09-26 Version 1.32 26Sep03 Beta
+- Add regression and GUI-interface chapters to the manual.
+- Fix "label" of a volume that is already in the catalog,
+  but not yet labeled.
+- Correct the test for spooling attributes which was backward.
+  This caused the creation of a spool file in the working
+  directory for every job run.
+- Print to the job output stream when block checksum errors
+  occur, but continue processing. If more than one occurs,
+  print number at end of job.
+- Remove a few unneeded tests from configure.in
+- Modify configure to use -pthread on FreeBSD 4.8,
+  but nothing on FreeBSD 5.1
+- Clarify that bmicrosleep() takes sec and microsecs
+- Apply Franc Carter's code to specify a DB host in 
+  bscan.
+- Fix sanity login length test in stored/dircmd.c
+- remove old code fro stored/job.c
+- Lots of work on regress so that it works on FreeBSD
+  and Solaris.
+- Make the default gnome-console wider (console.c)
+- Add \r to the items that terminate a token.
+
+2003-09-20 Version 1.32 20Sep03 Beta
+- Replace a number strcpy() calls with bstrncpy().
+- Added code to ensure that the names for each resource
+  type are unique. Two resources of different types can
+  have the same name.
+- More documentation
+- Added new full length modifiers for time intervals.
+  Compatible with previous method EXCEPT a modifier is now
+  manditory.
+- Completely restructured recycling. It should work now, but
+  in any case, the logic is much cleaner. A lot of new
+  code in next_vol.c
+- Added a few pthread_xx_destroy() for items inited.
+- Nic Bellamy pointed out that it wasn't necessary to do 
+  destroy() of static initialized pthread variables -- fixed
+  watchdog.
+- update VolStatus asked for the media and volume twice.
+- Changed a few more strcpy() to bstrncpy().
+- Made VolBytes=1 as indicator that the Volume is labeled.
+- Modified creation of Media record to include VolBytes,
+  same for sql_update - also set LabelDate if VolBytes = 1.
+- Copy any statically linked programs to install directory.
+- Change relabel flag to label in Update_media protocol Dir<->SD.
+- Change a few strcpy to bstrncpy ...
+- Update Media record after an automatic tape label.  
+- Added more debug code to bnet_server and bnet.c to attempt to
+  track down Alex's SD segfault (BSOCK==0)
+- Add additional debug cod for authentication errors in cram-md5.     
+- Implement "list nextvol job=xx" and add Volume to Dir status.
+- Retry waitpid if interrupted -- needed for FreeBSD!
+- Move lex.c debug level to 900
+- Add new aliases SDAddress, ...
+- Final changes for variable expansion
+- Possible fix to Alex's SD crashes
+- Correct incrementing counters not in catalog -- reported by
+  Chris Allen.
+- Correct memory leak in core var.c code -- reported by 
+  Chris Allen.
+- Make documentation of variable substitution a bit clearer.
+- Apply Nic Bellamy's patch to dbcheck.c to fix SQL to work
+  on both MySQL and SQLite.
+- Finally fixed the .messages that was sent during prompts
+  in the console with no readline.
+- Implement new Include/Exclude semantics.
+- Fix a good number of segfaults reported by Chris Allen in
+  the variable expansion code. 
+- Print warning message if a job is blocked by user unmount.
+- Fix additional variable expansion problem reported by Chris Allen.
+- Fix pathconf() error status bug that caused a segfault on
+  a FreeBSD system -- reported by Gernot Hueber.
+- Make sure the console sends ".messages" only when at the
+  command line prompt.
+- Apply a patch from Nic Bellamy that corrects a file descriptor
+  leak in the Storage deamon when a job is canceled. (Thanks)
+- Implement < and | in File daemon.
+- Implement ClientRunBeforeJob and ClientRunAfterJob.
+- Corrected BSRatEOF to be BSFatEOF in btape --
+  reported by Lars Koller.
+- Documented BSFatEof
+- Eliminated save_level in FD replaced by JobLevel.
+- Increased MAX_RES_ITEMS from 35 to 50 to handle
+  new ClientRunBeforeJob ...
+- Add line number in error message for restore from file.
+- Correct editing of jobids (misplaced comma).
+- Implement restore files.
+- Quickie patch to allow Purged Volumes to be mounted.   
+  Must review algorithm.
+- Eliminate a duplicated query from query.sql
+- Restructure ua_restore.c so that I can add restore files.
+- Correct positioning problem at beginning of a second volume 
+  introduced with the new forward spacing code.
+- Eliminated a sprintf() in the tree routines.
+- Doc updates
+- Added HOST_OS, DISTNAME, and DISTVER to the status output.
+- Eliminated a few stray Dmsgn(000, messages making them either
+  debug_level 100, or Pmsg().
+- Made the default "Maximum File Size" 1Gbyte in SD.
+- Cache path in tree.c to reduce calls to make_tree_path 
+- Documentation updates
+- Implement forward space file and block when reading a bsr.
+- Fixed a bug in db_find_next_volume() where the VolStatus was
+  not being returned.
+- Rework some of the query.sql records that were incomplete.
+- Fixed an ambigous SQL statement in restore.
+- Fix proper sorting order in restore display last 20 jobs.
+- Remove duplicate JobId's in feeding the directory tree.
+- Fix an orphaned ua buffer due to a return that should have been 
+  break so that cleanup code executed.
+- Changed some strcats and sprintfs int bstrncat() ... to prevent
+  possible buffer overflows.
+- Fix max file size code on tape so that after writing EOF, 
+  an appropriate jobmedia record is created.
+- Fix error messages in dev.c, which were copied into lots of
+  different subroutines without updating the text.
+- Add reposition_dev(), and make more of the return statuses of
+  dev routine standard.
+- Eliminate old semaphore and workq code. Keep only new jobq code.
+- Try to get a better default size for the gnome-console
+- Add code to avoid race conditions in starting/stoping the
+  heartbeat thread.
+- Correct potential race condition in heartbeat_stop().
+- Correct segmentation fault in mysql.c if no password given.
+- make pm_strcat and pm_strcpy return the string length
+- Use Phil's code to get the unadorned job name.
+- Move the MTIOCERRSTAT from just after a write() failure to
+  after writing the EOF marks on FreeBSD systems.
+- Enhance packet too big error in bnet.c and add some
+  ASSERTs in the send code.
+- Set heartbeat interval to zero by default.
+- Add Recycle to list of Update Volume parameters.
+- Use bget_dirmsg() wherever possible in Director.
+- Split next_volume code from catreq.c to next_vol.c
+- Consolidate editing job codes into a single routine.
+- Add Job resource name
+- Remove check for Win32 attributes in bls.  It doesn't
+  need to read them, only print ls -l.
+- Add SDConnectTimeout in FD.
+- Add Scott's perlgui directory
+- Upgrade from RH7.3 to RH9.  New autoconf.
+- Eliminate gnome2-console directory.
+- Correct English in status command.
+- Eliminate old shell expansion code and use BPIPE to call shell      
+  with echo command.
+- Documentation as usual.
+- Add a new bacula.spec for Mandrake
+- Add ownership to alist items. Default the list owns the items.
+- Make record_cb return a status (preparation for internal use).
+- Remove all clearing of remainder in read_record.c -- not necessary
+- Write a tapetest program for FreeBSD end of tape testing.
+- Modify read.c in Bacula to use read_record.c
+- Implement multiple records in read_record.c. One for each session that
+  is open.  Free the record with the EOS_LABEL is found (or at the
+  end of the scan).
+
+2003-08-02 Version 1.31a 02Aug03 Released
+- Yifang Dai reported a case where he stress tested Bacula and
+  backed up to four volumes, but only two were selected for the
+  restore. This is because I forgot that the selection could
+  span a volume entirely.
+- Added a missing CLIENT_FOUND_ROWS to the second attempt to open
+  the MySQL database -- this prevents UPDATE errors if nothing
+  actually changed.
+- Applied corrections to the manual supplied by Bob Collins.  Many thanks!
+
+2003-07-30 Version 1.31 Beta 30Jul03
+- Integrated Robert Mathews improved description of Priorities into
+  the manual.
+- Chased down the "The data is not valid" bug on WinMe/98/95.
+- Found an orphaned buffer in the set_attributs part of WinMe/98/95.
+- Add sleep(1) to console when it gets a SIGTSTP signal 
+  to prevent it from using 100% of the CPU.
+- Improve description of Priorities.
+- Add a bit more documentation to jobq.c
+- Complete hash table routine htable.c htable.h
+- Change M_INFO to M_ERROR in attribs.c for Windows errors.
+
+2003-07-23 Version 1.31 Beta 22Jul03
+- Apply a patch from Nic Bellamy that clarifies the error messages 
+  during recycling volumes.
+- Documentation.
+- Clear VolCatInfo in askdir.c so that readbytes is zeroed.
+- Add SD statistics to backup report.
+- Removed old workq code.
+- Fixed rescheduling after error.
+- Fixed delayed starts which were not working.
+- Added priority to values that can change when starting
+  a job.
+- Complete implementation of new job scheduler. jobq.h jobq.c
+  This code is turned off unless specifically enabled in src/version.h
+- Integrate code from Nic Bellamy to check for recycled volume in
+  mount.c in SD.
+- Fix a couple of bugs in dlist.c
+- Begin implementation of new job scheduler.
+- Take serial.h provided by David Craigon, which corrects differences in 
+  prototypes between serial.h and serial.c.
+- Make db_get_media_ids() return Media Ids only for the current pool.
+- Add new jobq.h and jobq.c drived from workq.
+- Add JobPriority to jcr, and Priority to Job resource as well as
+  to the run line in a Schedule.
+- Remove unused pool record from autoprune.c.
+- Implement Nic Bellamy's RecycleCurrentVolume.     
+- Implement RecycleOldestVolume.
+- Begin adding new JOB_QUEUE code to the Director.
+- Create a single routine recycle_volume().
+- Retry accept(), bind() and socket() if EINTR occurs.
+- Implement insert_before(), insert_after(), and empty() for dlist class.
+  Also require offset to be given by giving item and link address.
+- Make error some messages in smtp.c a bit more explicit.
+
+2003-07-12 Version 1.31 Beta 14Jul03
+- Marc Brueckner reported a crash during restore (a missing tree->)
+- Moved host.h.in file from filed to src.
+- Update btraceback to include host os, distname, distver in output.
+- Split list (in lib) into alist and dlist both with .h and .c.
+- Update home page to include Project status page.
+
+2003-07-12 Version 1.31 Beta 10Jul03
+- Manual updates.
+- Clean up some unused variables detected by the IRIX compiler.
+- Test two directories on Win32 -- caused a crash. I forgot
+  to NULL the uid cache pointer after releasing it.
+- Use bstrncpy() instead of strcpy() in find_files.
+- Clear a few linked lists in the temp directory packed in find_one.c
+- Eliminate an unnecessary variable in attr.c
+- Clear the cache pointer after release in idcache.c
+- Implement a new C++ doubly linked list class.
+
+2003-07-08 Version 1.31 Beta 08Jul03
+- Update document for Win32 stuff.
+- Ensure VolStatus value for update is permitted.
+- Fix cached_path so that it is local to the jcr, otherwise, there
+  are problems from job to job.
+- Fixed idcache.c which was not thread safe and didn't release memory,
+  and didn't always edit the userid correctly.
+- Correct missing pool memory allocation in update voluseduration.
+- Release mutex in pool_mem.c before triggering ASSERT.
+- Lock database while recycling.
+- Fix a bug in editing since where I forgot to update to the new size.  
+- Implement all the command line update arguments.
+- Modify label to use volume=xxx for the new volume and oldvolume=yyy
+  if doing a relable.
+- Added yes to run command line arguments.
+- Clear errno in editing a string to utime.
+- In restore print only volumes that will actually be used.
+- Fix bextract -- add appropriate breaks in new case code.
+- Add a new test -- bsr-opt-test for testing bsr optimization. As usual,
+  it pointed out a bug where the directory tree handling code destroyed
+  the restore arg list.
+- Many updates to the manual.
+- Pass prefix links flag to FD.
+- Sort list of commands for Console
+- Set default FD and SD concurrent jobs to 10.
+- Rework the find next volume code in catreq.c to correct some minor
+  but subtle logic errors and to eliminate a goto.
+- Did spell check on manual.
+- Removed bindtextdomain() as it conflicted with RH8.0 headers
+- Fixed parse_args to pass address of POOLMEM struct.
+- Constrain FileIndexes written to BSR to be within range of Volume.
+- Suppress writing volumes to BSR if they are not actually referenced.
+- Make FOPTS use alist for match and base entries.
+- Pass prefix_links to SD.
+- Add command line interface to most items in "update volume=xxx"
+- Add command line interface to restore "jobid", "current", "before", "all".
+- Add command line "yes" to run command to supress prompt.
+- In new alist code, free only if allocated.
+- Overload [] with get() code for alist.
+- Fixed the code that wrote FirstIndex and LastIndex to the database. It
+  was not correct at the end of a volume (basically included indexes in
+  the second volume).
+- Fixed bscan to work with the new code and to properly build JobMedia
+  records.
+- Added code to the read end of block.c to properly track Volume bytes,
+  blocks, and files. I thought this was not necessary, but it is critical
+  for bscan to work correctly.
+- Modified read_record to properly track First/LastIndex -- needed by
+  bscan.
+- Eliminated some old Volume write code.
+- Changed RecycleOldestVolume to PurgeOldestVolume
+- Added what I hope are the "final" touches for Win32 stuff.  There
+  are still a lot of annoying little problems.
+- Added the "portable=yes/no" option to Include. If set, it disables
+  use of BackupRead/Write for Win32, so in principle, the data should
+  be portable.
+- Pulled in more recent config.sub and config.guess from /usr/share/libtool
+- Replaced the system fgets() by a Bacula version that ignores
+  interrupts (i.e. signals).  This truncated output from child processes.
+- Make file_index int32_t everywhere.
+- Moved LinkFI into ATTR structure.  Also integrated data_stream there too.
+- Moved code that sets the stream for writing into create_file.
+- Removed a signal(SIG_IGN, SIGCHLD) from dird.c that prevented getting
+  the status of child processes.  This allowed removing the FreeBSD 
+  kludge to bpipe.c -- the status is now obtained correctly.
+- Hand scan the stream header that arrives in append.c to avoid machine
+  dependencies of sscanf().
+- Implemented code to put Data stream in Attributes record. 
+- Check if data stream is supported, if not, ignore.
+- Fix crash when multiple Includes are given (missing parens).
+- Clear WroteVol in askdir.c when JobMedia record is created.
+- Implement simple array list class for use in Bacula.  New files
+  are lib/list.c lib/list.h. Probably will not use until version 1.32.
+
+2003-06-24 Version 1.31 Beta 22Jun03
+- Change Purging Oldest Volume message to Recycling Oldest Volume.
+- Limit results from find_oldest_volume to one.
+- Fix possible buffer overrun in the restore tree handling routines.
+- Fixed a crash in VerifyToVolume because I moved the close_db()
+  down into the free_ua_context() and should not have done so.
+- At a "var" command in the Console that does variable expansion and
+  prints it.
+- Implement first cut of estimate command.
+- Change find_next_volume() for oldest to use LastWritten instead of
+  FirstWritten -- also add Append to volumes slected.
+- Do normal recycling before checking for RecycleOldestVolume.
+- Implemented block rejection on read. This should make restores run
+  much faster. Next release will have block positioning -- even faster.
+- Very preliminary support for Gnome-2.0.  Text does not yet work.
+- Correct buffer corruption in find_one.c with long directory names (Win32).
+- Make setting owner on directories M_ERROR rather than M_WARNING.
+- Fix printing of JobId in run listing for restore job.
+- Reduce heartbeat read check interval to every 10 seconds on Cygwin because
+  there is no working pthread_kill().
+- I finally designed a test for multiple simultaneous jobs,
+  and sure enough it broke when the jobs are split over multiple
+  volumes.  Now fixed and working!
+- Eliminated a few "duplicate" error messages by testing for canceled.
+- Add ASSERT for device use count going negative.
+- Fix BlockNumber checking in stored/read.c (got first one wrong).
+- If socket is timed out, do a shutdown(fd,2) instead of close().
+- Fixed return status from SD to FD by setting JobStatus in append_end() 
+- Add arrays to Environment variables. Elements separated by |.
+- Implement Reschedule On Error, Reschedule Interval, Reschedule Times.
+- Add a new pool PM_NAME -- gets a name length buffer.
+- Implement fast cancel of FD blocked on writing to SD by using
+  pthread_cancel(). Turned off on Cygwin due to bug.
+- Add code to handle EAGAIN in writing (probably not necessary). Use
+  select().
+- Eliminate size_t from pool control buffers.
+- Complete Counter resource.
+- Complete LabelFormat (except for WrapCounter) plus counter
+  inrementation.
+- This needs a database change to eliminate PoolId from counters.
+- Made a more compact format for the document index.
+- Add Phil's checkhost to examples directory (thanks Phil).
+- Implement generalized LabelFormat (documentation to come).
+- Implement Counter resource.
+- Cleanup examples/kernsconfig
+- Implement restore to a specific date.
+- Fixed a but in automatic labeling (and use durations expiring) analysed
+  and reported by Rob Proffitt (thanks!).
+- Cleaned up a few Cygwin compile problems.
+- Made a 10Jun03 release (it is in production here)
+- Finally took the big plunge and fixed restoration of links and other
+  files that have been changed between the backup and restore. Basically
+  if the file exists, it is deleted, then re-created.
+- Purge only Volumes marked Append, Full, Used, or Error.
+- Allow pruning of volumes marked Append, in addition to Full and Used.
+
+
+2003-06-10 Version 1.31 Beta 10Jun03
+- Eliminated all plain email addresses and replaced them with " at " in
+  place of @ to reduce havesting by spammers.  Doc + Web Site.
+- Started working on making POOLMEM a struct rather than a char. Lots of
+  work to do.
+- Fixed bscan to handle -V option.
+- Fixed bscan to handle two File volumes.
+- Corrected a misplaced comma it get_fileset() in cats pointed out by bscan.
+- Added two Volume bscan test to regression scripts -- write two volumes,
+  purge and delete everything, bscan the tapes, and do a restore. It works!
+- Reorganized the backup/restore code to move the attribute information into
+  an ATTR packet, which is passed in place of tons of arguments.  Moved some
+  code into lib/attr.c and lib/attr.h.  Then eliminated all the duplicate
+  attribute code.
+- Moved FT_ types into baconfig.h.
+- Defined FT_ types to use only 16 bits. The upper half of the word is
+  reserved for adding optional fields in the attributes packet.
+- Moved jcr->where into common part of jcr and have it deleted in lib/jcr.c
+- Put all attribute reading code on switch() with cases instead of a big
+  if (restore.c, bls.c, bextract.c, bscan.c, ...)
+- set_attributes() now takes ATTR packet, and thus has much fewer args.
+- moved print_ls_output() into lib/attr.c  
+- implemented is_stream_supported().
+- create_file() now takes ATTR packet so has many fewer args.
+- add mtime_only code.
+- Rewrote bnet.c read and write routines to quit if bsock->terminated is
+  set.  This will allow setting non-blocking writes and then receiving
+  a termination message and terminating the Job immediately rather than
+  waiting 2 hours for the line to timeout.
+- Put catalog db name in some error messages.
+- Code for restore is now much cleaner, with much of it in lib/attr.c,
+  and it is now common for all readers.
+- Add first cut of proper support for Win32 Backup code.
+- Fix bug in restore Win95/98/Me.
+- Pass mtime_only flag to FD. Needs config record.
+
+2003-06-04 Version 1.31 Beta 04Jun03
+- Fix block.c to check errno only in case of return status -1 as 
+  suggested by Justin Gibbs (FreeBSD).
+- Implemented qfill command in btape for quick testing write/read of a tape.
+- Discovered that FreeBSD pthreads re-use the same thread id, which causes
+  the SD to fail when a user leaves a device unmounted (old pid is reused
+  and lock_device() thinks the same thread is calling again leading to
+  inconsistent state). Set id to zero after blocking the device during
+  unmount.
+- A lot of clean up, moving subroutines around for TermCode.
+- Free ua->prompt when Job terminates.
+- Add AutoPrune and Recycle to values copied from Pool resource
+  into Pool record on create/updated.
+- Implemented bsr for Verify VolumeToCatalog. 
+- Improved the Verify Job report using SD and FD term codes.
+- Split tree handling routines from ua_restore.c to ua_tree.c
+- Split bsr routines from ua_restore.c to bsr.c and bsr.h 
+- Fixed clash between FD and SD returned job values. Report now contains
+  values from FD.  Maybe I should change? or give both.
+- Attempt to fix negative use_count for dev packet in SD by adding
+  a couple of open_dev().   This may be cause of Dan's crash.
+- Clear no_wait_id when device is unblocked. This may be cause of Dan's crash.
+- Eliminate old "new lock code".
+- Add configure of mtx-changer for mtx path.
+- Always rewind tape before releasing it (for FreeBSD).
+- StartBlock was one too large for second volume.
+- Fixed restore to display status from both SD and FD.
+- Unified return status message for backup and restore.
+- Corrected segmentation fault reported by Dan when doing "label barcodes"
+  on a File.
+- Corrected a segmentation fault when attempting to send a JobMedia record
+  to the Console -- reported by Dan.
+- Added MySQL documentation for using the threaded libraries.
+- Added new columns and tables to Catalog database.
+- Wrote alter scripts and tested them (thanks to Dan for the help) on
+  MySQL and SQLite.
+- Started using enums where ever possible when passing flags to 
+  subroutines. This helps make the source much more readable.
+- Corrected a bug where a vertical database listing was being used in
+  the query command.
+- Added new argument to parse_args() to prevent command arg overflow.
+- Renamed ua_db_query.c ua_query.c.
+- Split scan.c out of lib/util.c
+- Perhaps I have *finally* fixed the command line history in gnome-console.
+- Added support for smartalloc for any global new or delete command
+  by overloading the global operators.
+- Made the default time with no qualifier day rather than seconds.
+- Fixed a bug in the store_size() routine that improperly converted from
+  double to uint32_t.
+- Started using "bool" where possible.
+- Zap SD session key once it is used.
+- Added *lots* more checking for strcpy -- bstrncpy(), ... 
+- Added CreateTime field to FileSet record and print it to distinguish
+  FileSets. 
+- Print an information message when a new FileSet is created.
+- Include the FileSet date/time in the Job report.
+- Indicate if a Job is upgraded in the Job report and from what previous level.
+- Incremented the database version.
+- Ensure that any DB error message is printed if the start_time of a previous
+  save is not found.
+- Free orphaned buffer in ua_restore.c in case of database error.
+- Implement enum for response DISPLAY_ERROR and NO_DISPLAY
+- Implement enum for create_pool (POOL_OP_CREATE, POOL_OP_UPDATE).
+- Make sure FileSets printed in restore are in order.
+- Add a number of bstrncat, and other protected string operations.
+- Clean up old structs in dird_conf.h
+- Remove all Slot invalidation code.
+- Add Automatic choice message to all do_prompt() calls.
+- Eliminate JobId from restore if not used.
+- Clean up a few error messages.
+- Make fill/unfill commands work correctly in btape.
+- Enhance btape fill and unfill commands.
+- Implement real Pmsg() code so that negative levels work in Dmsg()
+- Implement block number check -- had to turn it off because it doesn't
+  work.  Need to verify that it is the correct block and that block
+  numbers are properly written.
+- Moved readline from depkgs1 to depkgs.
+- Reworked the configure code to handle readline correctly. This was broken
+  mostly due to the fact that the readline routines are nested down one
+  directory.  Also, I missed one header file that was needed (possibly added
+  in a later version).
+- Put correct include on the dependencies make for Console readline.
+- Remove JobMediaId from VOL_PARAMS (no longer needed).
+- Sort VOL_PARAMS by JobMediaId using SQL in cats.
+- Add jcr as argument to block.c read_block... routines so that error
+  messages are immediately displayed.
+- Make bsr_dev() edit an error message if it is turned off and return 0.
+- Add checking for the BlockNumber in the read routines -- lots of
+  false matches are found -- much check writing end.
+- Now sort bsr volumes by JobMediaId -- produces better results.
+- It turns out that under certain circumstances, when doing a restore, the
+  Volumes will not be written to the BSR in the correct order.  I don't
+  know exactly why, but many thanks to Dan Langille for reporting this.
+  The solution is to sort the Vol_Params within each bsr (done), and to
+  sort the bsr chain (not yet implemented). Note, the bsr chain should
+  always be in order unless the user explicitly specifies the JobIds in
+  a different order.          
+- Began implementing C++ structs rather than typedef structs as in C.
+- Added volatile to a lot of variables that are used in two threads at
+  the same time. This should prevent improper optimization.   
+- Fixed a missing space in the "run job=xxx where=" the where was
+  glued to the end of the previous stuff (bootstrap filename). 
+- I *finally* found the cause of the mysterious failure of shell expansion.
+  It was due to the read() getting interrupted!  That's what opening up
+  SIGCHLD will do!
+- Remove unused default tape drive names.
+- Create a new status.c file in stored and split the status code out of dircmd.c
+
+2003-05-22 Version 1.31 Beta 22May03
+- I discovered that C++ permits "prototyping" structures e.g. struct A; is
+  a valid statement. This permitted me to eliminate all the void *jcr, in
+  favor of JCR *jcr, which pointed out a number of bugs in block.c.
+- Change lib/bmisc.c to bsys.c (system routines).
+- Add set_working_directory() to lib/util.c
+- Remove some unneeded setjcr_job_status() since Jmsg(jcr, M_FATAL,...)
+  already sets it.  
+- Do not increment jcr->Errors for Fatal errors -- they represent non-fatal
+  errors.
+- Fix a few more places in FD where Errors was not incremented.
+- Print unexpected (or incorrect) termination message returned from FD.
+- Use switch() instead of giant if statement in verify_vol.c
+- Protect overrun from do_shell_expansion() by passing max length.
+
+2003-05-20 Version 1.31 Beta 20May03
+- Add mandrake to platforms
+- Suppress error messages if no bytes written to tape.
+- Suck up bootstrap file even on error so that Dir sees our error message.
+- Pretty much finish off the Win32 backup code.
+- Add DESTDIR code to autostart for creating non-root rpms
+- Echo input read from a script in Console.
+- Clarify error message for VerifyToCatalog
+- Add error counts in restore for M_NOTSAVED.
+- Adapt bfile.c to handle both Win95 files as well as WinXP files.
+- Add MTIOCERRSTAT for FreeBSD (clear error status).
+- Correct double jobmedia record when cancel at EOM reported by Phil.
+- Correct possible write at beginning of tape during cancel at EOM
+  as reported by Phil.
+- Document in detail how Incremental and Differential jobs work.
+- Add non-fatal error count on backup and restore Job reports.
+- Remove a couple uses of lld -- now prefer to edit and use %s.
+- Fix directory could not be accessed on Win32.
+- Improve message indicating that last Full backup not found. 
+- Fix free() too early in directory traversal code.
+- Prune Jobs with no JobFiles or that have JobStatus!='T'
+- Add a few more command line scans for prune/purge.
+- Restrict valid characters in a Volume name, and document it.
+- Make new Win32 save/restore work. Still a bit more to do.
+- Use reentrant version of mysqlclient library.
+- Use more machine independent way of finding gcc version.
+- Fix race condition in sql_list where messages edited before locking.
+- Lots of testing saving/restoring 6GB files.
+- Add where to restore where=/tmp
+- Complete implementation of Win32 streams in FD. Must test. Also,
+  must implement new streams in SD.
+- Make termination of daemons more "error" tolerant.  
+- Make default "duration" days rather than seconds if there is no modifier.
+- Install bcopy.
+- Add detection of available Win API's so that a single binary will
+  work on all Windows systems.  Reference those APIs through a pointer.
+- Remove use_win_backup_api and enable it in bfile.c if system supports it.
+- Modify dev.c so that it works if MTEOM is not defined (BSDI).
+- Change MT_xxx to BMT_xxx to prevent conflicts with BSDI.
+- Detect strtoll() in configure.
+- Implement replacement for strtoll() for BSDI.
+- Add platform files for BSDI.
+- Use Jmsg() instead of Jmsg1() in acquire because File:line prefixed in dev.c
+- Use Jmsg() in write_block_to_dev() so that no messages are lost.
+- Rework autochanger code in restore to handle case of cassette not in magazine.
+- Implement Windows BackupRead/Write(). I now have permissions right!!!!
+- Additions to the manual (Purging, Autopruning).
+- Add doc to code in autoprune.
+- Begin adding Level = Base.
+- Make Jmsg recognize console and direct messages directly back to it.
+- Hopefully fix mess in mount.c when a tape expires.  
+- Fix restore bug recently introduced due to Unix backwards status convention.
+- New bacula.spec from Scott
+- Add globals for database name and version and print them in traceback.
+- Eliminate SubSysDirectory in each daemon conf file.
+- Implement get_yesno() and get_pint() in UA.
+- Make Jmsg aware of console. Messages now sent directly to Console.
+- Created a single bacula.spec.in for by the MySQL and SQLite builds.
+- Added proper configuration to console.in and gconsole.in
+- Start adding textdomain() code for translating.
+- A number of minor code cleanups.
+- Rework shell expansion just a bit.
+- Add rewind() when releasing a tape before acquiring the next one.
+- Implement addition of Description in Service entry for Win32.
+- Update manual to eliminate unclear autochanger points as mentioned
+  by Dan Langille.
+- Implement DESTDIR everywhere.
+- Rework spec files for 1.31 and combine the main spec and the client
+  only spec making a client package. At the same time, rename the packages
+  so it is a bit clearer to the user. Also fix the build to work
+  as non-root (scriptdir was not prefixed with $RPM_BUILD_ROOT).
+- Correct Auto Changers and all other forms to Autochangers in the
+  manual.
+- John reported needing to do two "mount" requests, and indeed that
+  was the case. It turns out that pthread_cond_timedwait() does not
+  always return zero when awaken by a pthread_cond_signal().
+- Include RunBeforeJob and RunAfterJob output in job output report.
+- Implement a "real" Admin job that prints a mini-job report.
+- Clean up a few error messages in findlib and filed.
+- Recent changes to gnome-console caused initial output to be
+  lost -- now fixed.
+- The Win32 version crashed after each job. After hours, it turns out
+  that when running with LocalSystem privilege (and not as a user), when
+  Cygwin does pthread_kill(id, SIGUSR2), it gets a memory fault.
+- Moved stored/fdmsg.c to lib/bget_msg.c, and moved SD messages to
+  stored.c.  So now bget_msg() can be used by both the SD and FD.
+- Changed Director's bget_msg() to be called bget_dirmsg() to avoid
+  any possible confusion.
+- Implemented bget_msg() in general everywhere in the FD except for
+  job.c where the Dir and FD are communicating.
+- Implemented a Director only heartbeat in the FD for the cases where
+  there is either no connection to the SD or the FD is already reading
+  from the SD.  start_dir_heartbeat() ...
+- Add heartbeat to restore and verify volume.
+- Add "Heartbeat Interval" to Storage resource, which sets interval the
+  SD sends heartbeats to the FD and DIR, 0 disables heartbeats.
+- Add "Heartbeat Interval" to FileDaemon resource, which sets the interval
+  the FD sends heartbeats to the DIR, 0 disables heartbeats. 
+- Added heartbeat from FD to Dir every HB_TIME rather than forwarding
+  SD heartbeats.
+- First cut label dialog.
+- Turn on new semaphore code for simultaneous Jobs.
+- Fix cancel trying to release semaphore's not acquired.
+- Implement get_pint() and get_yesno() for UA.
+- Implement find_arg_with_value() for UA.
+- All command line "slot" to be specified for label command.
+- Rework heartbeat code in FD to correctly terminate.
+- Fix btraceback to use smtp and to eliminate double //
+- Fix "storage" command to include ssl for verify and restores.
+- Add Heartbeat code when SD is waiting on a tape -- heartbeat every 20 mins
+  to keep stateful firewalls from timing out the connections.
+- Fix src/stored/Makefile.in typo causing problems in statically linking
+  btape.  Thanks to Lutz for reporting this.
+- Create an is_client_alive script for checking if a client is alive.
+  Using this script prevents generating error messages.
+- Added corrections and updates to manual provided by Phil -- thanks.
+- Added RequireSSL to each program/daemon configuration.
+- Added EnableSSL to each correspondent for each program.
+- Added the Console resource to the Director (need to
+  implement individual Console authorization).
+
+2003-04-28 Version 1.30 released
+- Fix command history for gnome-console (must malloc).
+- Add two cancel points in acquire_resources(). The job will not
+  be immediately terminated in all cases.
+- The new AutoMount code broke File archives -- fixed.
+- Correct watchdog mutex race introduced yesterday.
+- Add JobLevel to Admin run started by UA.
+- Add -v to daemon startup scripts
+- Implement bmicrosleep(sec, msec);
+- Implement When for "run" command.
+- Remove unsigned from socklen_t definition in hopes it will work better
+  with older systems.
+- Remove code that attempts to set PID dir and SUBSYS dir if they
+  do not exist because it set them to sbindir!
+- Modify mount to initially attempt to read the volume if Bacula
+  wants a tape, none is mounted, and "Automatic Mount = yes" is set.
+- Prohibit setting --sbindir and --with-subsys-dir the same.
+- Fix missing argument that cause Kaboom in update slots.
+- Fix orphaned bsock when UA gets error contacting FD or SD
+- Nearly full implementation of Win Backup API, but it does not
+  work due to lack of permission! Arggg!
+- Implemented restoring directory permissions as they should be.
+- Implemented reasonable regression script.  It found a number of
+  restore errors.
+- Implemented the following @ commands in the console that work directly
+  in the console rather than in the Director.
+    input - read input from a file
+    output - write output to file
+    tee    - tee output to file and terminal
+    time   - print current time
+    version - print current version
+    exit    - quit
+    quit    - quit
+- Implemented new bfile io routines that will permit implementation of
+  Windows native APIs for reading/writing files.
+- By default always update hard links with the prefix, but do
+  not update soft links.  It seems inconsistent, but it is what
+  cp does.
+- Implement wait command in Console that waits until no jobs are running. 
+- Fixed the < code in Include/Excludes, which forgot to skip over the <.
+- Do NOT attempt to chmod() a soft link as it will change the file behind
+  the link!
+- OOPS! Lutz ran into a problem. In attempting to prevent string overflows,
+  I used bstrncpy() on a variable that was malloc'ed thus truncating 
+  Volume names!  Arrrggggg!
+- Lots of documentation of new features.
+- Rework Volume name scanning in console, made much more logical
+  and corrected a bug (confusion in calling sequence).
+- Cleaned up a few error messages in cats adding more info.
+- Add the IP address to error messages due to bad connects to servers.
+- Implement default File output in config files so user can start
+  saving right away without a tape drive.
+- Protect inet_ntoa() with mutex in case it is not thread safe.
+- Eliminate termcap from use in gnome console.
+- Remove unused SD maximum volume files and maximum volume jobs. They
+  are implemented in the Director.
+- Make the default for Incremental and Differential saves to compare
+  against both st_mtime and st_ctime rather than just st_mtime.
+  This includes files moved or copied.
+  Thanks to Matthias Wamser for bringing this fix to our attention.
+- On Win32 clients, make a pass through the include/exclude patterns
+  and change any back slashes to foward slashes. Prevents creating
+  unusable directory names containing both conventions.
+- Move ls -l output on restored files to M_RESTORED class.
+- Make gnome-console compile correctly on RH8.0
+- label barcodes now works.
+- Implemented "update slots".
+- Tweak btape "test" to always print suggestion for re-read last block.
+- Implemented "Cleaning Prefix"
+- Update alter_mysql_tables.in
+- More work on barcodes.
+- Zap VolHdr in SD when attempting to label a tape that is not
+  there.  Prevents false tape names the next label command.
+- First cut of bar code reading is implemented. It doesn't do
+  anything but return the list to the Director.
+- Implemented relabel command that relabels "Purged" Volumes.
+- Check exit code in RunBeforeJob and err the job if it is non-zero.
+- Remove old testsuite -- too complicated
+- Print length when Authorization fails because of bad length.
+- Fix problem of NumVols in Pool getting reset on startup.
+- Implement full listing of DB records by listing them vertically
+  instead of horizontally.
+- Make changes to mysql scripts as suggested by Lutz Kittler
+- Fixed code to write Uname to Client record.
+- Fixed a problem (in btape) where Pmsg() was not printing.
+- Moved re-read last block test to last in "test" command of btape.
+- Lots of new documentation.
+- Fixed newvol.c to handle retrying 10 times if the volume name already exists.
+- Removed int_least16_t from sha1.h because it does not exist on some systems.
+- Release job in SD if canceled and waiting on a mount (better cancellation).
+- Prompt for Client in restore if not specified.
+- Print "Selection is empty!" if no selection list found.
+- Add new spec files and bacula.desktop from Scott.
+- Update client every time a job is run.
+- Add verbose option to daemons for printing more user error info.
+- Test if console works with readline 4.3 (yes, it is OK).
+- Release new depkgs
+- Release new winbacula.
+- Add Uname info to Client DB record.
+- Improve error messages and make them more consistent when a non-existent
+  Device is requested.
+- Separated the -mwindows option so that only Windows programs
+  are built with it (bacula-fd, ...) the tty tools such as console
+  dbcheck, smtp, testfind, ... are now able to be run in a standard
+  Windows DOS box.
+- Add | and < options to Exclude the same as in Include.  
+- Add typed in input to the text window in the gnome-console.
+- Change function that gets the entry text (previously had orphaned buffer).
+- Fix multiple Director problem in gnome-console (thanks to Lutz Kittler).
+- Thanks to Renato, I was able to test Bacula on a FreeBSD tape drive.
+  There are a number of significant differences: 1. reading less than
+  the number of bytes in a record returns an I/O error.  2. ioctl(MTEOM)
+  looses the file position. 3. Reading two two EOF marks (or ioctl(MTEOM))
+  leave you positioned after the second EOF, so you must backspace file
+  to be able to append.
+- Added BSF at EOM = yes/no to Device resource to allow proper positioning
+  at the end of a FreeBSD tape.
+- Made btape "test" do much better testing of error conditions (i.e.
+  it now ensures that the append went well). It will automatically
+  detect problems and apply fixes and then retry the test, if it
+  finally succeeds, it clearly says what directives need changing.
+- Add Scott Barninger's rpm changes to the build environment
+- Add changes to mtx-changer so users can add eject and sleep for
+  certain autochangers.
+- Implemented FreeBSD chflags (user defined flags).
+- Turn restore errors during setting of owner and modes into
+  warning messages -- for restoring files as non-root.
+- Fix how prefixes are handled in restoring soft links.
+- Modified btape "test" command to do only those things that
+  Bacula actually does. There is much more explanation, ...
+- Update manual.
+- Finally had to back up to gcc version 2 from version 3 to avoid version
+  3 nightmares.   
+- Final cygwin tweaks.
+- Move start time to *after* the resource locks are acquired.
+- Unable to duplicate Phil's disabling of Bacula with nmap, but
+  did make the authentication code a bit more conservative for
+  dealing with bad input.
+- Added code to the query command to escape all strings input
+  before substitution and sending to the SQL engine.
+- Escape user entered filenames for restore command.              
+- Cleaned up the waiting code a bit -- using broadcast instead
+  of signal and counting the waiters.
+- Implement new pthreads semaphore code.
+- #define new semaphore code rather than workq on USE_SEMAPHORE.
+- Lots of improvements to the document to address recent support requests.
+- Implement cycle through a set of tapes suggested by Eugeny
+  Fisher with the "RecycleOldestVolume=yes" record in the
+  Pool resource.  Basically this record causes Bacula to purge
+  to oldest tape when no more tapes are found.
+- Correct a number of small incorrect interactions between limit
+  variables during recycling.
+- Corrected a bug in db_create_media_record() where VolMaxFiles and
+  VolMaxJobs was not written to the database.
+- When the Director starts, the Pool record is updated in the
+  database with the current contents of the Pool resource.
+- Corrected bnet_connect() to immediately stop (rather than looping
+  for the timeout period) if there is a fatal error (socket, or
+  hostname to ip).
+- Reworked "purge" code to make purging Volumes easier.
+- Made "list volumes" list the volumes in all pools -- also
+  "list volumes pool=Default" does not produce and error message.
+- List Pool record after doing "update pool".
+- Remove pid file code from Win32 -- not really necessary.
+- Make bnet handle null jcr during cancel rather than crash.
+- Add CygwinInstall.bat and CygwinUnInstall.bat
+- Add db_lock() around newvol.c code to prevent race condition if multiple
+  callers want a new Volume name.
+- Lots of cleanup to Win32 code, with additional error messages.
+- Make Bacula work on Win95 (test for GetAttributesEx).
+- Add better error messages when end of media is reached or volume
+  capacity execed.
+- Turned off signal catching in readline(), necessary to keep console
+  from crashing on ctl-Z with RedHat 8.0.  Thanks to David Craigon for
+  testing this.
+- Make the 3rd and hopefully final change to the Finclude structures.
+  This new version permits multiple sets of options (more code to be
+  written) to be applied against the same set of files. Thus one can
+  have options that with match of *.gz and a different set of options
+  for *.c, ...
+- Integrated GNOME Console font resource code supplied by Phil Stracchino.
+- Check for job_cancelled() in bnet_connect() code to stop wait loop if
+  client not available.
+- Fix early end of file scanning conf file in lex.c, which previously
+  caused ABORT -- now reports error.  This could happen with an unterminated
+  string for example.
+- Move Maximum File Size code before write and detect error on writing EOF.
+- Additional fix for Solaris 2.6 and a bdb.c fix submitted by Armin Buehler.
+- Added detection for Solaris 2.6, which uses older setsockopt() calls.
+- Defined sockopt_val_t for setsockopt() calls.
+- Added fixes sent by Bevan Anderson that fix multiple connects to FD
+  (I zap keys for security, so must put back dummy key).  Also a fix
+  to the Internal database that wrote garbage after the filename in
+  the database.
+- Back out the __SVR4 changes.
+- Add automatic configuration of socklen_t
+- Attempt to fix problems reported by Lutz with multiple simultaneous
+  open file Volumes (experimental code). Serialized acquire. This may
+  fix the problem, but more thought and testing is necessary.
+- Add table of "supported" autochanger models.
+- Add Solaris 2.6 (__SRV4) changes sent by Peter Schmitz.
+- Correct tape selection code in SD (|| => &&). Thanks to Chuck Hemker
+  for the patch.
+- Eliminate FileOptions. Implement new Finclude and Fexclude that
+  have file options contained in it.  New structure must be transmitted
+  to FD.
+- Split Include/Exclude into new inc_conf.c file.
+- Cleanup new Include/Exclude and FileOptions.  Structures in Director
+  now correct.  Must transmit FileOptions to FD.
+- WARNING:  With the adddress and port code in the Catalog you MUST
+  remove old address= and dport= records!!!!!
+- Added code to remove cancelled jobs from the workq -- needs testing.
+- Added first cut AIX from output James MacLean sent me.
+- Second cut of FileOptions.
+- First cut of parsing FileOptions and Counters.
+- Added address:port for MySQL as well as socket for local access.
+- Fixed job.c in filed to properly handle excluded files. Apparently
+  I changed the daemon protocol but forgot to update the code.
+- Enhance testfind to handle include and exclude files
+- Fix getdomainname() prototype for Darwin
+- Added new -u and -g options for specifying userid and groupid to
+  use when running, so that Bacula can reduce its privileges.
+- When Bacula was hanging due to an NFS volume being down, I 
+  fixed a few places in the File daemon where is should have immediately
+  terminated the connection instead of waiting for the Director to do so.
+- Added first cut support for Darwin.
+- Temporarily comment out the O_NOFOLLOW to avoid possible subtle problems.
+- Implemented O_NOFOLLOW in creating files in create_file.c to prevent
+  creating a file at the end of a symbolic link.
+- Use chown() if lchown() does not exist (e.g. Darwin).
+- Always close stdin on startup to avoid having /dev/console attached.
+- Change all DATE occurrences to BDATE because it is used by Cygwin headers.
+- Add printing of Volume names in SD status output.
+- Display all open devices in device chain in SD status output.
+- All changing Pool in console run command.
+- Thanks to Eric Bollengier for pointing out that the run_program()
+  return status was not correctly generated. Now fixed (I hope).
+- Corrected crash in Internal Database getting Volumes.
+- Flush all daemon messages at the end of every job.
+- Fix Install.bat script so that Bacula restarts after reboot on WinNT/2K systems.
+- Minor changes in the gnome-console directory.
+- Integrated in my old Tcl/Tk code into src/tconsole and moved it up
+  from C to C++.  Pretty crude, but it is a beginning.
+- Close syslog() %n exploit in message.c
+- Edit space before each line in gconsole.
+- Added INCEXE structure so we can have FileOptions.
+- Added support for multiple simultaneous open file volumes.
+- Fix hard linked files so that the one saved is always restored.
+- Add * to restore "dir" listing to indicate marked files.
+- Add ability to make md5sum and sha1sum in lib directory.
+- Work a bit more on the new daemon protocol.
+- Use unmask of 022 or more restive
+- Create File volumes with 0640 permissions
+- Added support for SHA1 signature. Need to modify DB to have type.
+- Document SHA1.
+- Work a bit on getting proper child status from bpipe calls.
+- Added Ludwig's mtx-changer to the examples/devices directory.
+- Added a Warning not to use the Internal Database when it is initialized.
+- Compiled and tested SHA1, and added it to the library.
+- Added code to print the "load slot" status after autoloading.
+
+=============================================================================
+2003-01-24 Version 1.29 released
+23Jan03
+- Tightened up permissions on all .conf files to be 640 so they are not
+  world readable.
+22Jan03
+- Added prefixlinks=yes/no Job record to specify applying the Where
+  prefix to absolute soft links.  Code is not yet passed to FD, because
+  FD would then be incompatible with version 1.28.
+- Added skeleton of installation for Gentoo release for Patrick Naubert.
+- Add timer on open() for reading or writing a FIFO file.
+- Put btraceback and btraceback.gdb in sysbin dir (a bit of polution,
+  but at least dumps will work).
+20Jan03
+- Added "append" all messages to a log to default bacula-dir.conf
+- Added WriteBootstrap to default bacula-dir.conf
+- Made smartall.c print "Out of memory" if malloc() fails.
+- Added pthread btimer routines.
+- Added timer to FIFO open statement
+- George was still having problems with VolUseDuration failing.
+  On looking into it, one line of code subtracting 1900 was
+  mysteriously missing from the source -- bizarre.
+18Jan03
+- Yesterday's version corrects all the problems I was
+  previously having, and my production jobs are now completing
+  properly.
+- Added a #define dev_cap() to test the capabilities bits. I just
+  makes the code a bit shorter and a bit simpler.
+- Added phase 1 support for an output fifo device. The big 
+  difference here is that it is a STREAM device, which means that
+  Bacula will only write to it and not read. Thus, Bacula assumes
+  that the correct "Volume" is mounted and will construct a valid
+  label (without needing the Volume to be prelabeled), and write
+  to the device.
+- Added phase 1 support for input from fifo device (suppress re-read,
+  add empty buffer flag).
+17Jan03
+- Improve printout of dbcheck with # files/path fixing.
+- Zap SD authorization code after use.
+- Added <> back to smtp (think about this some)
+- Doc
+16Jan03
+- Massive change to add jcr as the first argument to nearly
+  every db_ call. This is because I was storing the jcr in the
+  db structure, which will not work because everyone shares
+  exactly the same structure.
+- More cleanups of error termination status in filed.
+- Found another bug in message.c where %s was missing in JmsgN. A lot
+  of cleanup in message.c
+- Found places where filename listing was made (restore, verify
+  vol) where the buffer could possibly overrun.
+- Chain include files on the end of the list so that the
+  order will be correct.
+- Rewrote mtx-changer to output one slot per line terminated by
+  a colon followed by an optional Volume Tag for the "list" command.
+  Preparation for handling Volume Tags.
+- My production crash remains elusive. Adding debug code or running
+  under the debugger eliminates the problem. I found a case in
+  message.c where I was extending the message string by two 
+  characters to send it to the console. VERY BAD. Rewritten.
+- Started implementing fifo and program handlers (i.e. streams)
+  in the Storage daemon. Lots to do.
+- Added a trace capability where trace statements are written
+  to a file. Tmsg(). Hopefully this won't be used much.
+- Running lots of "production" saved by scheduling a few minutes
+  after the current time -- slow process ...
+15Jan03
+- Removed <> on From and To in smtp.c as suggested by James MacLean.
+- Added code to suppress spurious error messages during cancel,
+  but I was unable to eliminate all errors -- to be worked
+  on later.
+- Up size of print buffer from 2000 to 5000.
+- My production run failed again. I'm beginnig to suspect 
+  hardware problems because running by hand or under the
+  debugger always works -- we will see.
+- Added Update Volume VolFiles to reset correct tape files 
+  a bit dangerous.
+- Use the mysql_escape_string() rather than internal version.
+14Jan03
+- Cleanup handling of JobStatus by creating a subroutine.
+- Fix a number of minor things with JobStatus.
+- Print FD and SD JobStatus on backup report.
+- Add JCR to findlib -- so now FD stops normally when cancelled.
+- My production Director segment faulted during the second Job.
+  I haven't been able to track it down. After rebuilding, all
+  jobs finished correctly.
+- In investigating the duplicated Paths, I found that there
+  were 10,552 of them -- only Path records. After checking the
+  code, I do not see the reason, but I've enhanced the code to
+  print the full path name.
+- I made a few improvements to tools/dbcheck. Mostly it provides
+  a bit more feedback with verbose mode on when eliminating
+  duplicate filenames or paths.
+13Jan03
+- During four simultaneous backups, the File daemon started
+  detecting buffer corruptions. It turns out to be due to the
+  fact that the smartall.c routines were not thread safe. They
+  are now.
+- Based on input from James MacLean and team, I eliminated a number
+  of places where printf could be recursively called by using "%s".
+- It turns out that because of an error of my understanding of
+  mysql_escape_string(), the last argument was taken as the length
+  of the string to be escaped rather than the maximum length.  I've
+  now corrected all my code -- Thanks James.
+12Jan03
+- George Motter reported problems with UseDurations, and it seems 
+  that there were a number of inconsistencies and problems with
+  FirstWritten and LastWritten.  Hopefully for the most part they
+  are now corrected.  Also fixed LabelDate if done through Console.
+- Try to chase down reasons why there would be buffer overruns.
+  Added P & V around referencing last_fname for status.
+  Rewrote find_one.c with MEMPOOL, but not yet tested enough
+  to commit.
+10Jan03
+- Give extra margin to converting filenames from Unix to Windows
+  in attribs.c of findlib -- dumb cygwin API doesn't provide for
+  a length.
+- Added file:line traceback to size_of_pool_memory, check... and 
+  realloc  in an attept to get closer to the memory overrun reported
+  by James MacLean.
+09Jan03
+- Made yet another fix to quoted string -- paths!  Thanks to
+  Scott Medlock for reporting this.
+- Made | and < work.
+- Implemented FIFO reading/writing. To do so, simply explicitly mention
+  the fifo file (named pipe) in the Include AND add the new option
+  readfifo=yes
+08Jan03
+- Started implementing | and < on Include names.
+- Changed source to . in cats directory as requested by Andrew Kokarev.
+
+=============================================================================
+2003-01-05 Version 1.28b released
+- Corrected a typo of working_directory in bacula-dir.conf
+  reported by James MacLean.
+- Fixed the fact that path and filenames in some cases were not
+  being quoted before going into the database. Many thanks to
+  James MacLean for reporting this.
+
+=============================================================================
+2003-01-05 Version 1.28a released
+- Corrected a missing quote in bacula-dir.conf reported by James MacLean
+
+=============================================================================
+2003-01-05 Version 1.28 released
+General:
+- Implemented Bare Metal Recovery for Linux and manual procedures for Solaris
+- Now using only a single technotes file kes-1.28 and will add to
+  it as the development goes on.
+- Wrote a general purpose bi-directional pipe command. This replaces
+  previous use of pipes as well as the run_program previously used.
+- Make BSRs stop if no more matches are possible.
+- Allow unliminted number of devices in Storage daemon.
+- Allow connections to Storage daemon before all devices are initialized.
+- Better documentation (and btape test command) on using fixed block
+  tape drivers.
+
+Changes submitted this submission:
+04Jan03
+- Add cygreadline5.dll to Win32 release -- needed for console
+03Jan03
+- Add scripts make_catalog_backup and delete_catalog_backup that makes and
+  deletes an ASCII copy of the catalog for backup. An example of how
+  to use it is in the <bacula-src/src/dird/bacula-dir.conf file.
+- Made a nicer column oriented listing of scheduled jobs for "status dir".
+02Jan03
+- Added backup/restore of raw partitions.
+- Corrected restoration of files in root directory (problem with
+  splitting path from file).
+01Jan03
+- Finally decided to cleanup handling of splitting path and filenames
+  in the cats directory. Now the code is in one place sql.c and it
+  is done using Pool memory, so there are no length restrictions.
+31Dec02
+- Add start of Solaris bare metal recovery
+- Add Site Visit usage statistics to Web page
+- Got Bacula listed on www.backupcentral.com
+30Dec02
+- Retest bare metal recovery on Linux 2 times with verify
+- Cleanup printout of verify differences using proper casting to
+  handle shorts and long longs.
+29Dec02
+- Added --enable-client-only to ./configure
+- Modified --enable-static-sd to work better and documented it.
+- Fixed Restore options (never,ifnewer, ...). They now work.
+- Moved the stored.c Resource lock into the allocation thread so
+  that the same thread sets/clears it. This created a problem on
+  FreeBSD.
+28Dec02
+- Added more rescue documentation.
+- Did a spell check of the Bacula doc.
+- Modified bscan to use the working directory as specified in the
+  configuration file as the default.
+25Dec02
+- Fixed an important bug reported by George Motter that caused only
+  the last option on an Include record to be used (all previous options
+  were lost).
+24Dec02
+- Chase down some inconsistencies in creating Media records from
+  the Pool defaults, and in updating/creating the Pool from the
+  resource. Also fixed the cats DB routines to include all
+  fileds (VolUseDuration was missing for example).
+21Dec02
+- Added building static versions of daemon static-bacula-dir, ...
+- Fine tuned the rescue (bare metal) code including support for grub.
+- Added skeleton freebsd rescue
+- Corrected SQL syntax error in autoprune code (JobType => Type).
+- Added error messages for SQL errors in autopruning.
+19Dec02
+- Documented Bare Metal Recovery
+- Create new "rescue" directory containg the Bare Metal Recovery code.
+- Fiddle with SQL a bit for pruning as apparently the last InitCatalog
+  was pruned after the expiration date eventhough it was the ONLY copy!
+  I'm not sure this is fixed yet.
+18Dec02
+- Allow Director to pass a NUL where string to FD (fix in FD).
+- Fix installation mv of query.sql.
+- Make sure btraceback.gdb is not wiped on "make distclean"
+- Corrected a bug in mod of replace options pointed out by Dave Anderson.
+16Dec02
+- Started adding FileOptions ...
+- Fixed  and incorrect print out of the number of files restored (Jarif).
+- Finally fixed EndBlock (and file address for Files) in catalog!
+- Added hostname to tape header as always planned.
+- Removed Level code (will not implement unless strong demand exists).
+- Tweaked bscan to print number of errors ignored before first SOS.
+- Enhanced btape "fill" to permit using one tape and to dump last
+  block before writing and upon read back.
+- Make fsf_dev() return 0 on fail and 1 on success.
+- Use new db_get_job_volume_parameters() to enhance Write Bootstrap to
+  contain more info (start/end file/block, file indexes).
+- Added --enable-static-fd, sd, and dir to configuration to enable making
+  static versions of the daemons.
+13Dec02
+- The btape test program was indicating errors on Adrian's machine
+  using the ATAPI (ide-scsi) tape drive. It turns out that this
+  is a fixed block driver as a consequence, Bacula must be setup
+  to write fixed blocks. btape was not always using the fixed
+  blocks defined in the Bacula config, so that has been updated.
+  It now works fine. A lot of tips added to the Bacula test command 
+  to help guide the user.
+- Documentation of the above significantly improved in the manual.
+12Dec02
+- Added code in watchdog to permit setting and clearing child timers. If
+  the timer expires, the child process is killed.
+- Modified restore to handle differential jobs.
+- Added a new test to the btape "test" command
+09Dec02
+- More documentation of new features (week position in scheduler, bsr).
+- Re-read last block written on full tape to verify it.
+- Fix segmentation fault with btape fill command due to missing FileSet MD5.
+07Dec02
+- Created better SQL input editing routines str_to_int64 and str_to_uint64()
+- Pull Client from database in Console restore command.
+- Create a Unique list of Volumes to be mounted (previously had repeats).
+- Made many of the SQL searches better by using the ClientId rather than the name 
+  in the restore Console command.
+- Modified reading of a tape to include the VolFile info. Once the
+  tape is past the specified file, reading stops.  The BSR now includes
+  both the VolFile and VolBlock. Currently VolBlock is not used.  
+- Handle multiple volumes better by creating a real volume list with all
+  parameters in it.
+- Display "At prompt waiting for input" in gnome console when at subcommand   
+  prompt.
+- Broke ascii to internal and internal to string editing routines out into
+  new lib/edit.c file.
+02Dec02
+- Added a readme and an afs-bacula script to the examples directory
+  that permits Bacula to backup an AFS filesystem. Thanks to
+  Lucas Mingarro for the submission.
+- Added A Sun-desktop autoloader script and Device definition to the
+  examples/devices subdirectory.  Thanks to Lucas Mingarro for the
+  submission.
+- If the WriteBootStrap fails, the job will now be marked in error.
+- Added a week position to the scheduler syntax that allows you to
+  specify 1st, 2nd, 3rd, 4th, or 4th, or first, ... fifth as a week
+  position specification in front of a day. So if you say
+
+    1st sun ...
+
+  the scheduler will start only on the first sunday of the month.  The
+  day specification can also be a day range e.g. sun-fri.
+  This code is untested.
+- Implemented bpipe.h and bpipe.c in src/lib, which defines a bi-directional
+  pipe.  This allows executing other programs and sending them information
+  as well as getting info from them.   
+- Replaced the previous pipe usage with bpipes in RunBeforeJob and   
+  RunAfterJob.
+- The mail program now uses bpipes rather than pipes, which means that any
+  error output will appear in the job output (truly bi-directional).
+- Modified BSR to handle counts and to stop when no more matches are possible.
+  This is untested.
+- Improved error messages in smtp.
+
+=============================================================================
+2002-12-12 Version 1.27d
+- This is a minor update that fixes a segmentation fault in btape
+  as well as reduces non-important error messages in bscan.
+
+2002-11-29 Version 1.27c
+- Yet another silly error duplicating a column name in the SQLite
+  make tables.  No code change, just a make file.
+
+2002-11-29 Version 1.27b
+- Set DB version to 5 in DB make files.
+
+2002-11-28 Version 1.27a
+- Use g++ instead of gcc for testfind in tools 
+
+2002-11-27 Version 1.27 (26Nov02) released 28 November 2002
+
+General: from kes25Nov02
+- Mostly Cygwin changes
+
+Changes submitted this submission:
+- Updated bdb_find.c to have new calling sequence for db_find_job_start_time
+- dird/catreq.c edit in Volume name in error messages to SD
+- attribs.c switch to using the cygwin API to convert from POSIX paths
+  to Win32 paths. This now permits Win32 path specifications in Include
+  statements (all combinations not yet tested).  It also avoids the large
+  number of errors seen by Lutz if a Win32 path is specified in the Dir.
+- Update testfind help and remove set_attribsEx debug code.      
+- Build testfind as default.
+- Turn off debug message in stored/askdir.c
+
+General: from kes21Nov02
+- Another change in the database. You MUST either re-initialize
+  your database or use the appropriate ./alter_xxx_tables in
+  the src/cats directory.
+
+Changes submitted this submission:
+- Additional documentation.
+- Added MaxVolFiles to the database (not yet implemented in code).
+- Increased the database version from 3 to 4.
+- Change VolMaxBytes to MaxVolBytes, which is much more descriptive.
+- Compressed unnecessary spaces out of a lot of SQL statements.
+- Changed many %d to %u where unsigned integers are used.
+- Added the Bacula version and build date to each backup output.
+  This will help knowing what version of Bacula was used.
+- Implemented VolUseDuration MaxVolBytes, MaxVolFiles, and MaxVolJobs
+  based on maximums set in the Volume (Media) record rather than in the
+  resource. This means the values can be individually set on a Volume basis.
+- Allow commas separating Include options (this was a subtle bug).
+- Added maximum string length argments to a number of subroutines to
+  prevent buffer overflows. Most notably was do_prompt().
+- Replaced MANY occurrences of strcpy() with bstrncpy(), which guarantees
+  both that the length is not exceeded and that the string is properly terminated.
+  This has a risk of a certain destabilization -- as does the changes to
+  the SQL noted above.
+- In cram-md5 routine use my_name if gethostname() returns an error.
+- Increase timeout from 2 minutes to 3 minutes in authorization code.
+- Check the full string including \n in authorization.
+- Throw away any response longer than MAXSTRING.
+- Added a number of additional error checks on subroutine return statuses.
+- Replaced as many lld's with edit_uint64 as I could find.
+22Nov02:
+- Added MaxVolBytes to Pool record - had forgotten it. Updated DB version.
+23Nov02
+- Update manual to document new Pool/Volume attributes
+- Correct make_sqlite_tables (typo, plus missing value in Pool)
+- Fix bizarre behavior in gnome-console and console when auth fails.
+- Add Pool attribute query
+- Add a few more error messages in askdir.c
+- More strcpy() conversions to bstrncpy().
+
+General: from kes18Nov02
+- Did a number of cleanups of string copying to limit the length
+  and prevent buffer overflows.
+
+Changes submitted this submission:
+- Added a mutex arount the gethostbyname() so that multiple simultaneous
+  jobs get the correct address.
+- Added the MaxVolJobs to the Media alter tables script for MySQL (forgot it).
+- Changed arg to db_find_job_start_time to be POOLMEM for returning the string.
+- Add the new VolUseDuration and MaxVolJobs to all the db_ routines.
+- Use bstrncpy() in most places in the db_ routines to prevent a bad 
+  database from crashing Bacula (self protection).
+
+General: from kes13Nov02
+- You MUST either re-initialize your databases or use the 
+    ./alter_mysql_tables
+  or  
+    ./alter_sqlite_tables
+  in the <bacula-src>/src/cats directory to modify your database tables.
+- Major improvements to dbcheck including an interactive mode.
+
+Changes submitted this submission:
+- Implemented VolumeUseDuration and MaximumVolumeJobs which control
+  when a tape can be marked Used.
+- New tape status "Used" means it was used and cannot be used any more.
+- Defined utime_t which is 64 bit epoch time in seconds.  btime_t is
+  64 bit epoch time in microseconds.
+- Created alter_xxx_tables to add new columns (VolUseDuration, MaxVolJobs) to
+  database. Incremented db version.
+- Changed a few subroutine names concerning dates to be more descriptive.
+- Fixed several places where the last filename was not stored in JCR in
+  FD verify_vol.c and restore.c
+- Major update to dbcheck.  Unfortunately I used subselects, which work
+  perfectly fine in SQLite, but not at all in MySQL.  I must now rework
+  it for MySQL. What a pain!
+- Removed "Database found" from configure output. It was no longer used or valid.
+- Corrected doc --working-dir => --with-working-dir  Thanks to Tuck for 
+  reporting this.
+- Added the database name to the error message for mismatched DB version.
+- Commented out GMP and CWEB from configure as they are not currently used.
+
+General: from kes09Nov02
+- Converted the manual over to a new format written in wml. This
+  gives navigation buttons on the top and bottom of each page
+  as well as a standard page size.
+- Updated the main Web site, providing a menu bar to the left
+  and much better organization and presentation of the information.
+- Added code to recognize a Volume written with a larger block
+  size than specified. The code automatically adjusts. 
+
+Changes submitted this submission:
+- Created a new scripts directory and moved most of the scripts
+  previously in the main directory there. This cleans things up
+  quite a bit.
+- Moved the randpass stuff into autoconf.
+- ensure that the generic make_bacula_tables and drop_bacula_tables
+  are installed.
+- Added code to filed to allow it to be run from inetd.  Just add the
+  -i option.  I have not tested it.
+
+General: from kes30Oct02
+- Alex found a problem with GZIP compression -- fixed.
+- bacula stript fixes.
+- Segment fault in Director fixed.
+- Added openbsd to platforms
+
+Changes submitted this submission:
+- GZIP compression was broken for large files due to a variable that
+  is changed during the compression. This was relatively easy to fix.
+  However, there were a number of fixes required to make GZIP and SPARSE
+  files work together. Found one more place in bextract where SPARSE_GZIP
+  testing was missing.
+- During testing of the above, I ran into the restore problem of multiple
+  FileSet records. Fixed by including the FileSetId and the MD5 on the
+  selection string, then always using the FileSetId. It is a bit
+  confusing for the user, but ...
+- Francis found a problem with bacula.in (fixed - thanks)
+- I found another problem with bacula.in, so now it REALLY should work
+  on most systems.
+- Added the Replace options code for restores. Not tested.
+- Fixed an ugly stack overrun bug in reading the config file
+  that has been in for a long time.  I found this in testing on FreeBSD
+  where the Director seg faulted.
+
+General: from kes29Oct02
+- Major change to the bnet communications routines.
+
+Changes submitted this submission:
+- Modified the bacula script to use pid files, so this script should
+  now work on more platforms.  Updated devel_bacula as well.
+- Added the full GNU hostname on the configuration print output.
+- Added gettimeofday() to configure, and tweaked a few variables for
+  OpenBSD.
+- Added a chapter to the manual on Porting Bacula to other platforms.
+- Documented in Tips how to use the WriteBootstrap record.
+- Modified bc_types.h to error if 64 bit types are not found.
+- Pass replace option for restore to the FD (no code to use it yet).
+- Modify the FD to pass back the GNU OS string as well as the DISTNAME
+  and DISTVER. This needs to be put in the Client record in the catalog.
+- Major reworking of the bnet routines to eliminate the zero length which
+  previously indicated a signal. This risks to create some subtle communications
+  bugs.  The changes now permit blank lines to be sent from the user to the
+  Director.
+- Found and corrected a few more places where the Win32 attributes were not
+  being recognized.
+- Permit spaces in the Where string (restore) by bashing/unbashing them.
+- Handle quotes correctly in the Console program (actually Dir ua code).
+  Previously they were not handled in the middle of a string.
+- Corrected two error message (error reading file), which previously stated
+  it was a network error.
+- Reworked the files in the binary Windows release. Removed unused programs 
+  and added a README with the copyright as suggested by John. Also added
+  console.exe to the release.
+- Found and corrected an autoloader mount problem where the wrong tape
+  was specified.  Previously it looped, then gave up.  Now it correctly
+  detects the volume is not correct and zaps the Slot in the catalog.
+
+General: from kes23Oct02
+- I have mainly worked on getting all the details of a Restore
+  to work correctly (new tape format, support for Win32 
+  attributes, ...)
+- Trademarked name Bacula.
+- Implement Bacula tape format 11 (1.0 Immortal). This format
+  will be maintained forever.
+- Accept Any Volume is yes by default. This modifies Bacula's behavior
+  when writing tapes.
+
+Changes submitted this submission:
+- Corrected a bug on FreeBSD where CFLAGS would get a "yes". I was
+  unable to reproduce this, but a user confirmed the correction.
+  It was a problem with detection of largefile support, which FreeBSD 
+  has by default.
+- Added a new "license" chapter in the manual. Re-licensed a number of
+  library routines (bnet.c, hmac.c md5.c, cram-md5, ...) with LGPL so that they
+  can be used in proprietary software to access Bacula if so desired.
+- Move Director's AutoChanger doc to correct location (in Storage      
+  resource). 
+- Document why trademark (to protect compatibility).
+- Implement and turned on Bacula tape format 11 (also BB02). This
+  format moves the VolSessionId and VolSessionTime from each record 
+  header into the Block header. This is MUCH more efficient when reading
+  records as now whole blocks can be skipped.   
+  Also added JobStatus in End Of Session record, and added MD5 for
+  FileSet, which is necessary to insure uniqueness.
+- Implement a new Bacula time format for btime_t. It is Epoch time
+  in microseconds (i.e. base 1 Jan 1970 in microseconds).
+  This replaces previous floating point times.
+- Added Win32 extended attributes. In doing so, I moved all attribute
+  handling from src/lib into src/findlib.  Added new streams for 
+  Win32 attributes and for GZIP Win32 attributes.
+- Modified "Accept Any Volume" so that it really permits any volume
+  in the pool to be mounted.  
+- Removed "Mount Anonymous Volumes" from Storage daemon config.
+- Implemented sparse files. You must add "sparse=yes" on the include line
+  for it to be enabled.
+- Print "None" in backup summary rather than 0.0% if there is no compression
+  enabled.
+- Improved error checking in daemon connection/authentication code to prevent
+  garbage data from harming a Bacula daemon.
+- All daemon tools MUST have a config file.
+- Completely strip drive specification on Win32 if a Where prefix is specified.
+- Corrected DB info for writing to files. Now the File Address is stored
+  in File-Block variables in the catalog.
+- All Storage daemon tools now use common code for acquiring/reading
+  Volumes.
+- If a device is unmounted, report it even if the device is not open. This
+  will help inform users who have BLOCKED Bacula by unmounting a drive.
+
+
+=============================================================================
+2002-10-12 Version 1.26 (10Oct02)
+General: from kes10Oct02
+- Changed Job name conventions to avoid : which is an illegal
+  character on Windows.
+
+Changes submitted this submission:
+- Added check for inet_pton to configure.in. If it does not
+  exist (e.g. Windows) use inet_aton
+- Documentation on GZIP.
+- Another restore doc example.
+- Documented btape fill command.
+- Set default restore directory from /tmp to /tmp/bacula-restores
+- Add additional no find error messages to sql_get.c
+- Creating a bootstrap file on Windows failed because the Job name
+  contained colons which are illegal on Windows. Replaced the
+  colons with periods.  This corrects the Windows restore problem.
+- Print number of files to be restored in "restore" command.
+- On Windows systems, if there is a prefix, completely eliminate
+  any drive: at the beginning of a path.
+- Minor corrections to the tree routines to handle Windows
+  files such as c:/ better. Previously it insisted on /c:/, which
+  would then not be found in the catalog for a "dir" command.
+- Modified cd command in restore to try /c: if c: fails.
+- Add a new S_ISWIN32 bit to the st_mode word so that low level
+  routines that create files do not print error messages.
+- More work must be done to restore all Windows files correctly.
+  Currently the following bits are not handled:
+    Archive
+    Hidden
+    System 
+  Also, all the dates are not properly restored.
+
+General: from kes09Oct02
+- More documentation.
+- Implemented new fill command in btape that permits filling
+  a tape and then reading it back to ensure that it works
+  with Bacula.
+
+Changes submitted this submission:
+- Added ReadBytes to JCR, which contains Job bytes read by
+  FD, JobBytes contains compressed output of FD.
+- Modified FD to pass back JobStatus, ReadBytes, JobBytes, ...
+  for backup jobs.  This is upward compatible.
+- Modified backup termination status report to contain the
+  compression ratio 100 * (1 - compressed-bytes/uncompressed-bytes)
+  This will always be zero if no software compression was
+  done, or if you are using a version 1.25 or older FD.
+- Pickup Job termination status of FD in backup, so now
+  the termination status represents the state of all three
+  daemons.
+- Implemented new fill command in btape that permits filling
+  a tape and then reading it back to ensure that it works
+  with Bacula.
+
 General: From kes06Oct02
 - Implemented first major cut of bscan -- program to scan a tape
   and recreate a Bacula catalog.
@@ -97,11 +1872,12 @@ Changes submitted this submission:
 - Fix Volume in bsr.
 - Move autochanger code to new subroutine in mount.c
 
-
+=============================================================================
 2002-09-05 Version 1.25a (05Sep02) Released
 - Fix unitialized stack variable in bextract so it
   will always read the currently mounted tape.
 
+=============================================================================
 2002-09-04 Version 1.25 (01Sep02) Released
   General:
 - Added .cvsignore files in each directory to cut down on the
@@ -963,8 +2739,7 @@ Changes submitted this submission:
  - Many intervening changes/updates.
 
 2001-09-29 Release 1.0 Kern Sibbald
- - Fixes to problems found at John's
-   installation.
+ - Fixes to problems found at John's installation.
  - See techlogs/kes25Sep01 for details
 
 2001-09-25 Release 1.0 Kern Sibbald