]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/ChangeLog
Changed ACL_OTHER into ACL_OTHER_OBJ as IRIX doesn't seem to have ACL_OTHER. Fixes...
[bacula/bacula] / bacula / ChangeLog
index 7d3e623f07696948170733f355f41e68377fb30c..3da8eca08b5032e51ef29b4bb588f63cc9525b9b 100644 (file)
-2002-mm-dd Version 1.28 (not yet released)
+              Technical notes on version 2.5.x
 
 General:
-- 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:
-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.
-- Fixed lseek() relative negative seek that prevented writing multiple
-  jobs to a File volume.
-- Implemented BB02 tape format -- currently turned off for writing.
-
-Changes submitted this submission:
-- Updated README
-- Implemented new BB02 tape format, which moves the VolSessionId and
-  VolSessionTime from the record headers into the Block header.  It
-  is currently turned off.
-- Implemented new btime time/date format on the tape. This is currently
-  turned off.
-- Added JobStatus to EOS tape label. This is currently turned off.
-- Changed start_block, ... to StartBlock in JCR for uniformity.
-- Print a message telling which tables were dropped/made with  
-  ./drop_bacula_tables.
-- Return JobType and JobLevel in db_get_job_record().
-- Implemented get_current_btime(), which returns btime_t.
-- Bump debug message max size to 2000 bytes.
-- Add btime_t serial/unserial routines.
-- Rework all tape label routines to integrate btime and other
-  label format changes (currently turned off -- for writing).
-- Fix lseek() to always be positive -- block.c
-- Consolidate record, block, and label major #defines in block.h.
-- Major implementation of bscan. Some more minor tweaking will be
-  necessary.  E.g. add multiple records for multiple simultaneous
-  Jobs.
-- Cleanup lseek() to always use off_t as second argument.
-- Add new "created" tape label (EOT_LABEL). This generates a callback
-  to the read_records() routine when the final end of all tapes is
-  reached allowing proper termination and updating of the media records.
-
-General: From kes25Sep02
-- Added means to bind servers to specific address.
-- Documentation
-
-Changes submitted this submission:
-- Added DirAddress, FDAddress, and SDAddress records to the corresponding
-  resources that allow the server to bind to a specific address 
-  rather than any address.  This security improvement was suggested by
-  a user -- thank you.
-- Eliminated deprecated "Address" record from all sample Storage resources.
-- Made quite a lot of improvements to the bscan program. Much more
-  to do. Aside from details, it is able to recreate a database
-  from which you can do a restore.
-- The s option is not accepted on all versions of ar, so replaced it
-  by an explicit ranlib call.
-- Fixed a bug that caused the Director to crash if you rudely bring
-  down the console program in the middle of an SQL command.
-- Fixed a bug (missing break) that caused scheduled Admin jobs to
-  be listed as "Unknown type".
-- Removed old code from Storage daemon that used a separate FD port.
-
-General:  From kes14Sep02
-- Better key generation on non OpenSSL systems.
-- 64 bit file address support if available.
-- Implement autochanger for reading
-- Lots of cleanup of tape reading code.
-- Automatically create all Pool resources when Bacula starts.
-- Implement bscan.c
-- Implement autochanger use via the Console commands "add" and "label"
-- Begin implementation of a regression script 
-- Write bootstrap after ever job
-
-Changes submitted this submission:
-- After noticing that the non OpenSSL random key generator was
-  not good on Solaris, John wrote a very nice randpass generator.
-- Integrated John's makeSessionKey for generating the FD->SD
-  authorization.
-- Statically link tools (doesn't work on Solaris).
-- Document how to debug Bacula (new chapter in the manual)
-- Remove unneeded printing of error message in sql_get.c
-- Free SD description config record (previous oversight)
-- Bash spaces when sending Director names, and unbash them when 
-  received.
-- Ensure no divide by zero in rate computation in backup.c
-- Implement WriteBootstrap in backup.c
-- Allow tape reading to request volume information for any
-  volume.
-- Create all Pool resources at startup.
-- Show only Backup jobs in Restore listing of last 20 Jobs.
-- Handle 64 bit stat packets in restore.
-- Don't do shell expansion on store_dir in config if string 
-  starts with |.  This is used for piping the program for the
-  WriteBootstrap.
-- Ignore SIGHUP -- DéjàGnu was triggering this. 
-- Implement autochanger for reading, many changes to 
-  acquire_device_for_read()
-- Implement callback for reading Volume. Implement in bextract,
-  bls, and bscan.
-- Implement bscan
-- Add count to bsr.
-- 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
-  CVS output when scanning directories and finding Makefiles
-  and such which are not part of the CVS tree.
-
-  Changes submitted this submission:
-- Cleaned up a lot of the error messages in Verify, including
-  indenting.
-- Had to remove some of the "automatic" error message printing
-  in the DB because they are in fact things that come up 
-  for Verify but not really errors.
-
-
-  2002-08-30 Version 1.25 (30Aug02) Beta
-  From kes30Aug02
-- Fixed a bug where only the first file was restored if
-  it is hard linked. The other links were lost.
-- In some cases of restoring to alternate directories, softlinks
-  were not properly restored.
-
-  From kes28Aug02
-  General:
-- Bacula backups now run up to 12 times faster than version 1.24
-- Bacula can run multiple simultaneous Jobs.
-- Had to turn off TRANSACTIONS in SQLite because it doesn't work
-  with multiple simultaneous jobs (I'm working on this).
-- Added a better Job printout for Restore Jobs.
-- Added a save/restore Rate to backup and restore jobs. This
-  does not yet subtract out operator wait time so it will be
-  underestimated it the Job waits on the tape (mount/label).
-- Fixed a major bug caused by free()ing a buffer twice in
-  the Restore code. This made the SD more or less useless after
-  any restore Job. Arrggg!
-- DIR - SD protocol changed, both must be updated at the same time.
-- DIR - FD protocol changed in upward compatible way. Upgrade of   
-  FD not required, but recommended.
-
-  Changes submitted this submission:
-- Added bell to "make" when errors are detected.
-- Changed default compile option from -g to -g -O2
-- Additional documentation as usual -- much based on questions or
-  feedback from users. Thanks.
-- Fixed example config files to use new syntax and to have a 
-  Restore Job.
-- Define ETIME to ETIMEOUT for Irix
-- Added JCR filed to DB structure permitting direct printing error
-  messages from within the Database subroutines.
-  Some error messages may be printed twice as a consequence.
-  When I see them or someone reports them, I will remove the double.
-- Added JCR to the bsock structure. This allows direct printing
-  of network errors from within the network code.
-- Made most "trivial" debug messages have level 100 or greater. This
-  allows for easier debugging of new code using the range below 100.
-- Began replacing all Emsg() with Jmsg() using a NULL as the JCR in    
-  Jmsg() is the same as Emsg().
-- Fixed several crashes in the Director because of malformed config files.
-- Added SpoolAttributes to Job resource.
-- Pass CatalogFiles to SD. If set to no, the attributes are dropped 
-  within the SD rather than being sent to the DIR.
-- Cleaned up a number of information/error messages in user interface.
-  This includes eliminating the "pretty please" response in favor of
-  "yes/no" to delete volumes and pools.
-- Cleaned up quite a number of uninitialized variables reported when going
-  to -O2, most were harmless, but a couple could cause problems.
-- The cd command in restore was not working correctly (it didn't allow some
-  legal cds).
-- Fixed a segmentation violation in the directory tree handling code in 
-  the restore command.
-- Handle a few error conditions in the restore command better.
-- Permit "Where" to be set to nul in modification of a run command.
-- Clarified the error message for Verify if an InitCatalog has not previously
-  been done -- thanks Chuck.
-- Add MaximumConcurrentJobs to FD.
-- Added code to mem_pool to die if a buffer is released twice.
-- Lots of work done on SD for multiple simultaneous jobs. Split device.c
-  into device.c, mount.c and acquire.c
-- Started writing new lock code for SD, but may back it out -- needs more
-  thought. Current code works, but is too complicated. Maybe can simplify it.
-- Cleaned up the SD tools code quite a bit. Added bootstrap to all tools.
-- Ensure that tape session labels are not split across two blocks. This makes
-  reading them back much easier.
-- Fixed another restore bug concerning tape labels on multi-volume saves.
-
-=============================================================================
-2002-08-14 Version 1.24
-  From kes12Aug02
-- Made a new tools directory.
-- Moved smtp into the tools directory.
-- Created a dbcheck program in the tools directory that
-  checks for certain database errors and if requested fixes them.
-- Put the database link flags on DB_LIBS so that it now only is
-  on binaries that actually need it.
-- Document dbcheck and testfind programs.
-- Move testfind to tools directory.
-- Check for FileSet after getting Client name in Restore command.
-  Modify all necessary SQL commands to accept FileSetId.
-- Add a db_get_fileset_record in cats directory.
-- Correct list last 20 files concatenation to be MySQL 
-  dependent. They aren't SQL standard. Use SQL standard || for
-  other SQL programs.
-- Modify dir command in file selection to produce a long form
-  listing of the file/directory name.
-- Add platforms/irix/*.in files to CVS
-- Make Console command scanner accept quoted value fields.
-- If after selecting Client to restore, there are multiple
-  FileSets, ask user to select one.
-- After obtaining JobIds for restore, ensure that there is only
-  one MediaType, and select a Storage resource to be used.
-
-  From kes11Aug02
-- Made restore actually work.
-- Made console and gconsole be configured (requested by Chuck)
-- Updated kernstodo
-- changed fs in Job record to fileset for clarity
-- The console run command was not properly picking up the command
-  line arguments.  Fixed!
-- Changed add/remove/rm to mark/unmark
-- Volume keyword VolumeName was wrong, changed to Volume (in restore bsr).
-- Pass jcr to parse_bsr, and if non-NULL, it will output error messages
-  to Job stream rather than Emsg.
-- Modified lexical scanner to include caller context so that jcr can
-  be stored in lex context allowing error messages to be properly 
-  routed.
-- Renamed the Job message chain to be jcr_msgs. This eliminated the      
-  previous confusion with the default value, now named jcr->messages.
-- Implemented multi-volume bsr records.    
-- Implemented pm_strcat() and pm_strcpy() to cat/add to memory pool
-  buffers in same way as strcat/strcpy, but expanding buffer.
-- Modified db_get_volume_names to handle arbitrarily long Volume list.
-
-  From kes07Aug02
-- If the Console program terminated during the printing of messages,
-  the message file was left locked. This was corrected by using the
-  new read-write lock code.  
-- Implemented Pw() and Vw() for obtaining and releasing a write lock
-  using the rwl_xxx routines.
-- Deleted some old pthread_mutex code from mysql.c
-- In making the Irix port, I previously corrected the base64 routine so 
-  they were not sensitive to the machine definition of char. This made
-  them incompatible with previous versions invalidating MD5 signatures
-  which are in base64 format. I have now corrected this, making the
-  routines compatible with the previous version but also insensitive
-  to the default definition of char.
-- Removed some unnecessary NPRT() usage in signal.c (pointed out by
-  the Irix compiler).
-- Add back BNET_NONO for compatibility with older File daemons.
-- Implement runing a restore Job in the restore command.
-- Make installation of query.sql unconditional. To prevent you own file
-  from being overwritten, give it a different name.
-- Made parse_command_args() in ua take command from ua->cmd, this
-  simplifies it and allows usage in other places -- e.g. building
-  arguments for created run command in restore.
-- Cleaned the naming of s_full_ctx to be s_jobids.
-- Write the bsr created in restore to "working-directory"/restore.bsr
-- Fix bugs in command line scanner in run command -- also some misplaced
-  breaks!
-- Eliminate static cmd in ua_server.c
-- Eliminate segmentation fault when using the Run command in the
-  Console -- forgot to init_msgs().
-
-  From kes06Aug02
-- Did a good amount of documentation.
-- Added sql_cmds.c to CVS, forgot, pointed out by Chuck.
-- Added new platforms/irix directory to CVS
-- Turn off transaction debug code in sql.c
-- Reworked the scheduler so that it handles the same Job starting
-  twice in the same hour. Previously it took one or the other.
-- Tightened up the "slop" in the timings that I programmed to ensure
-  that the same job isn't run twice or that no job was missed.
-- Increase the sleep time.
-- Used job_type_to_str() in status so that Admin jobs are correctly reported.
-- Add internationalization message chars to a number of routines
-  in util.c
-- Make the watchdog timer clear the mutex when it exits.
-- Some tweaks to the Restore command. It needs fixing when a Job spans
-  two or more volumes.
-
-  From kes05Aug02
-- Initial cut at adding Irix File daemon support.
-- Lots of work on the restore command.
-- Take a stab at eliminating the "broken pipe message"
-  when the console program prematurely terminates.
-- Reimplemented transactions for SQLite by keeping
-  them all in the same thread.
-- quit in the Console program now waits for Bacula to
-  quit. To immediately quit, you must enter .quit
-- Eliminated BNET_EOF -- this COULD have some negative consequences
-  on interdaemon communications.
-- Define Job termination status for Admin jobs.
-- Write new bstrncpy() function that guarantees that strcpy is
-  properly terminated.
-- Fixed command input in ua_input.c to accept quoted items as a
-  single field. 
-
-  From kes01Aug02
-- The changes that added indexes to the SQLite database were
-  lost -- thanks to Chuck for pointing this out. Redone.
-- Fixed a problem quoting strings in SQLite. This showed up
-  as database errors with files containing ' or " in the filename.
-- Implemente restore command -- still in progress.
-- Added indexes to all fields in SQLite that exist in MySQL.
-- Moved unused immortal files from src/lib to src/immortal.
-  This will permit splitting depkgs.
-- Started work on adding embedded MySQL. Cannot get the tables
-  to work for the moment. Please don't try to use this option.
-- Convert to using single quotes for enclosing all strings.
-- Implement correct quoting algorithm for SQLite strings.
-  Is dequoting needed?
-- Started centralizing SQL statments in the Director in sql_cmds.c
-- Changed a number of M_ABORTs to M_ERROR_TERM so that program terminates
-  but does not produce a dump.
-- Allow wild-card matches in bsr for Client name, and Job.
-- Change OflineOnUnmount=no as default.
-- Fixed improper printing of filenames containing a space in bls.c
-  Thanks to Carlos for reporting this.
-
-===========================================================================
-2002-07-26 Release 1.23a
-- Fix segmentation fault is FD status.
-- Turn off TRANSACTIONs for SQLite.                        
-
-===========================================================================
-2002-07-23 Release 1.23
-  From kes22Jul02
-- Updated Bacula to handle some minor differences in MySQL 4.0.2
-  (still works with older MySQLs).
-- Updated MySQL documentation to correct some minor errors.
-- Added kernstodo to CVS
-- Fixed create_mysql_database, which I recently accidently broke.
-- Disallow zero length volume names in Console program.
-- Create alter_mysql_tables and alter_sqlite_tables for conversion
-  from 1.22 table format to 1.23 table format.
-
-  From kes20Jul02
-- Investigation of SQLite performace problems reported by Chuck.
-- Updated ChangeLog
-- Updated README
-- made root@localhost the default email address because many smtp
-  servers reject root but accept root@localhost
-- Added an autochangers chapter to the manual.
-- Documented most of the new features in 1.23
-- Modified the SQLite interface code to start a transaction at the
-  beginning of a job and commit it at the end of the job. It
-  also commits it after 10000 changes. Hopefully this will
-  improve performance.
-- Set the default cache pages from 2000 to 10000 for SQLite (i.e.
-  about 15Megs of memory) hoping to improve performance.
-- Terminate last filename referenced in FD prior to copy to
-  avoid race problem with multiple threads and no locking.
-- Enhanced the status output to include the JobType                
-- Print an error message if the email program terminates in error.
-- If your machine has an MTUNLOCK, do it before doing an OFFLINE to
-  ensure that the door is unlocked.
-- Added code to stored/append.c to spool attributes. This is in
-  a testing stage and must be explicitly enabled.
-- Added a no_attributes variable to stored/append.c that prevents
-  the attributes from being sent to the Director. As yet, no way
-  to turn it on.
-- Modified SQLite code so that after 10000 updates any transaction
-  is committed, then restarted. This keeps it from using too much
-  memory.
-- Set the default cache size to 10000 pages (previously 2000).
-- Fixed a segmentation fault on Sun due to no default value for
-  the JobStatus.
-- Added the same indexes to SQLite that I exist in MySQL. This
-  VASTLY reduces CPU usage for lots of inserts.
-- Added spooling to bnet_send().
-
-  From kes18Jul02
-- The following two changes were prompted by questions/suggestions
-  from A Morgan.
-- If you have "AlwaysOpen = no" in your SD Device
-  resource, Bacula will free() the drive when it
-  is finished with the Job.
-- If you have "Offline On Unmount = yes", in your
-  SD Device resource, Bacula will offline (or eject)
-  the tape prior to freeing it.
-- Added Maximum Open Wait to allow open() to wait if drive is busy.
-- Added RunBeforeJob and RunAfterJob records to Job records.
-  This permits running an external program with the following editing
-  codes:
-    %% = %
-    %c = Client's name
-    %d = Director's name
-    %i = JobId
-    %e = Job Exit
-    %j = Job
-    %l = Job Level
-    %n = Job name
-    %t = Job type
-
-  From kes17Jul02
-- Added autochanger support to devices.c
-- Allow user to change Slot in the Volume record.
-- Implemented code in lib to run an external program
-  (tape changer)
-- Implemented a changer script for mtx.
-- Currently the changer commands used are:  
-    loaded -- returns number of slot loaded or 0
-    load   -- loads a specified slot
-    unload -- unloads the device (returns casette to slot)
-- Other changer commands defined but not yet used:
-    list   -- returns list of slots containing a cassette
-    slots  -- returns total number of slots 
-- Implemented ChangerCommand, specified in the SD Device
-  resource, permits editing of:
-      %% = %
-      %a = archive device name
-      %c = changer device name
-      %f = Client's name
-      %j = Job name
-      %o = command
-      %s = Slot base 0
-      %S = Slot base 1
-      %v = Volume name
-- Implemented MaximumChangerWait default 120 seconds. It is 
-  specified in the SD Device resource.
-
-  From kes15Jul02
-- Moved techlogs from main directory to be subdirectory of doc
-- Added code for strerror_r, and detection of gethostbyname_r().
-- The protocol between the Director and the SD has changed.
-- Major rework of SD tape mounting to prepare for Changer commands.
-- Separated Update Media record and Create JobMedia record. These
-  are done from the SD by calling the Director. Need separate Create
-  JobMedia so that when a Job spans a volume, all other Jobs writing
-  the same volume will also have JobMedia records created.
-- Added message to user indicating selection aborted if he enters .
-  to a Console selection request.
-- Create a jobstatus_to_ascii() routine for use in status commands.
-  This makes a single routine from three separate pieces of code.
-  Updated the code to properly handle more (all) termination statuses.
-- Tried to fix the gnome-console to handle history a bit better. There
-  are still some problems with focus not being properly set to the edit
-  box after history replacement.
-- Removed the shutdown() from bnet_close() hoping to fix Console termination
-  errors that are occassionally seen -- no luck.
-- Moved add_str() to lib/util and renamed it add_str_to_pool_mem() so that
-  it can be used to edit Job termination codes and Changer command codes.
-- Reworked how the SD mounts tapes (in device.c) so that control passes through
-  only a single routine. The logic is much simpler than previously, and now
-  adding AutoChanger code is straight forward.
-- Made SD tape mounting much more fault tolerant -- more cases retry instead
-  of terminating the Job.
-- Wrote code to edit_device_codes() for Changer commands. Not yet fully     
-  implemented.
-- Added a ChangerDevice directive to the Device resource. Still need to add
-  ChangerCommand.
-
-  From kes07Jul02
-- This documents what I did while on vacation. 
-- A fair amount of documentation.
-- Implemented Verify Volume to Catalog (needs renaming)
-- Modified the database to include new MarkId field as
-  well as Counters. Database level is incremented from 1 to  2.
-- Added first cut of managing autochangers by implementing Slot in DB.
-- Fixed a good number of M_ERROR messages to be M_FATAL where appropriate.
-  Also converted a number of Emsg() to Jmsg() permitting better Job error
-  messages.
-- First cut at implementing a general packet passing mechanism for bsock
-  to replace printf and sscanf for passing data.     
-- Made make_xxx_tables and drop_xxx_tables and create_xxx_database
-  for bdb as well as sqlite. With this each database has the
-  same set of scripts (with the exception that MySQL has grant_privileges).
-- Modified Makefile to only install the database scripts for the
-  database that you are using.
-- Updated the pdf script to include all the html files.
-- Did quite a lot of documentation.
-- Made Bacula compile correctly with DEBUG turned off.
-- Implemented Pmsg() macros that permit using the debug print
-  routines even with DEBUG off.
-- Updated job_cancelled() macro to handle JS_FatalError.
-- Changed db_find_last_full_verify() to db_find_last_jobid(). This
-  permits working with Verify Volume to Catalog.
-- Removed TRANSACTION code from incrementing NextId for SQLite. 
-- Implemented quick and dirty (not fully functional code) so that
-  console program does not die if ctl-Z is entered. 
-- Cleaned up backup.c a bit adding a bail_out goto to ensure proper
-  handling of errors with minimum code.
-- Added passing Slot back and forth to Storage daemon with Volume info.
-- Implemented Slot in Media record in DB.
-- Implemented first cut of Counter resource in dird_conf.c. A counter
-  resource is part of the Pool resource.
-- Implemented necessary database record. However, the resource doesn't
-  yet create a DB record.
-- Implemented onefs (One File System) and recurse options on Include
-  resource.
-- Implemented autopruning of Verify and Restore Jobs.
-- Did a better job of calculating thread_concurrency() for Sun systems.
-  This permits better multi-threading allowing all the threads to run
-  at the same time.
-- Implemented a wait_for_storage_daemon_termination(), which is used by
-  backup and verify volume.
-- Clarified a number of UA prompts, and add feedback where certain commands
-  completed but printed nothing. (More work to be done here).
-- Added a pile of new code to implement Verify Volume to Catalog. It is sort
-  of a hybrid of "restore" and "verify" in that it actually reads the tape,
-  then compares it to the catalog.  Need Verify Volume to Client.
-- Added a good number of checks for job_cancelled() this should permit
-  quicker and more reliable cancelling of jobs.
-- Fixed one bug in restore where I used ofile instead of lname, which means
-  that if the lname was too long, the memory was not properly reallocated.
-- Cleaned up find_one.c in findlib quite a bit.
-- Link smtp static so that it works even if the libraries are messed up.
-- If mail host is not found, retry with local host in smtp.
-- Added slot and stream to the bootstrap record processing.
-- Do offline on tape cartrige for unmount command. This can be turned off
-  by the user in the config file. OffLineOnUnmount in Device resource.
-- Implemented AutoChanger = yes/no in Device resource.
-
-===========================================================================
-2002-07-07 Release 1.22
-- All the basic Restore code to handle the boostrap file is
-  now implemented with the exception of the Console Restore command.
-- Retained compatibility with previous Restore providing no 
-  bootstrap file is specified. However, the old code (JobId based)
-  will go away in a future release.
-- Fixed a number of segmentation faults in the Console program due
-  to printing of NULL pointers -- thanks to Chuck and his Sun for
-  finding and reporting them -- mostly in ua_output.c.
-
-  From kes25Jun02
-- Null pointers now are printed as *None* if NPRT() is used.
-- At the request of Phil, all resources are now chained in in the
-  order they appear in the config file.
-- Implement Bootstrap record in the Director's config file, which
-  allows you to specify a predefined bootstrap file for Restore Jobs.
-- Allow Bootstrap on the Restore record. This is deprecated.
-- Implemented code to pass the Bootstrap file, if defined, to the
-  File daemon, then from the File daemon to the Storage daemon.
-- Added ability to set Bootstrap file in the Console when running a Restore.
-- Allow scan_error() routine to be passed to lex_open_file(). This permits
-  using lex in the Storage daemon without worrying that it will ABORT on
-  a syntax error.  More work is needed to direct the error messages correctly.
-- Improved error messages a bit when config syntax errors are found.
-- Tested and corrected some errors in match_bsr.c
-- Removed askdir.c from bls and bextract by defining dummy entry points.
-- bextract now has bootstrap pretty well integrated.
-- Changed bextract ABORTs into FATAL and exit(1) or ERROR_TERMINATE.
-  More user friendly.
-- Eliminated at least one lld and replaced it by edit_uint64() 
-- Eliminated a few more _PROTO()s.
-- Corrected a problem with the SQL for in query.sql for 
-  Listing Volumes to Restore All Files
-
-  From kes22Jun02
-- Additional documentation.
-- Reduce the time the jcr mutex is locked in lib/jcr.c
-- More null pointer printing fixes in lib/parse_conf.c (debug output only).
-- Added daemon filename to Kaboom message so I know what daemon died.
-- Fix big bad bug introduced in watchdog.c last update that caused
-  a segmentation violation (forgot to check for NULL pointer).
-- Add a bit more info to bad returns from Stored when starting
-  a job fails.
-
-  From kes21Jun02
-- Fixed scan_to_eol
-- Fixed backup scanning forgot one T_STRING -> T_UNQUOTED_STRING
-- changed all rwlock_t to brwlock_t to avoid conflicts with
-  Solaris library.
-- Added NPRT() macro to allow printing of NULL pointers, which
-  segment fault on Solaris.
-- Cast printing of pid_t to int for Solaris compiler.
-
-  From kes20Jun02
-- Added expect argment to lex_get_token().
-- Added tree.c and tree.h to lib directory.
-
-  From kes19Jun02
-- Improvements to the bootstrap compiler
-- Implemented first cut of bootstrap code in the Storage daemon
-- Modified the authentication code to be more explicit during 
-  failures.
-- Added a few more debug message numbers with more arguments (Dmsg10, ...)
-- Added more and more precise error messages when authentication fails.
-- Implemented new "expect" codes in the lexical scanner that allows
-  the caller to specify what he wants.                   
-- Added integer, positive integer, 64 bit integer, and integer ranges,
-  and name scanning to lex.
-- Implemented new lex code in parse_conf.c, this reduces significantly
-  the code.
-- Hopefully fixed a watchdog race bug that caused the watchdog to time
-  out a line after 1 hour rather than 6 days.
-
-  From kes15Jun02
-- Implemented a Bootstrap file parser and matcher.
-- Implemented first cut of bootstrap code in bextract  
-- Started clarifying different termination codes.
-- Added M_ERROR_TERM to immediately terminate the daemon -- no dump.
-  Also changed a few termination codes as appropriate.
-- Fixed create_jobmedia_record() to include all the fields such as
-  StartFile/EndFile, StartBlock/EndBlock.
-- Print user friendly message when query mode ends.
-- Fixed ls style print routines (bextract, bls, restore) to check
-  buffer size, to print the link if any, and to used edit_uint64()
-  instead of %lld.
-- Moved scan_to_eol() and s_err() to lex.c to avoid dragging in 
-  parse_conf.c for new bsr scanning code.
-- New files: bsr.h, parse_bsr.c and match_bsr.c. parse_bsr.c parses
-  a Bootstrap file, and match_bsr.c matches a bsr against a tape.
-- use strcasecmp() in several places instead of lcase().
-- Add first cut of bootstrap to bextract.
-- Added File Size limit -- writes EOF after limit exeeded.
-
-===========================================================================
-2002-06-12 Release 1.21
-- Fixed several problems with filenames being truncated if
-  they contain spaces. Thanks to the user that reported this.
-- N.B. To get the new queries, after the "make" and 
-  "make install" you must explicitly replace the
-  existing query.sql by query.sql.new.  query.sql is a
-  user configuration file, so it is not overwritten.
-- Added GZIP compression of Included files.  
-- Added additional fields to tape SOS record permitting better
-  recovery with no database.
-- Be sure to remove any !terminate statements you may have
-  in your config files.
-- MUST UPDATE ALL DAEMONS due to protocol change to handle new
-  tape format.
-
-  From kes11Jun02:
-- Updated examples directory with my most recent config files.
-- Modified the M_TERM meaning to mean that Bacula has
-  terminated in error without producing a dump. Previously,
-  it meant that Bacula terminate (with or without error).
-  You should remove any !terminate from your messages
-  resources.
-- Changed the order of the libraries in the link so that
-  tcp wrappers link properly. Thanks Phil for reporting this.
-- A user reported that filenames containing spaces were truncated
-  in bextract. This was indeed the case. They were also truncated
-  in Restore as well as in Verify. They are, hopefully, all fixed
-  now.
-- Made a few error conditions in Verify non-fatal.
-- Modified the Console "query" command to permit multiple SQL
-  statements per command. 
-- Implemented three new "query" options: 
-    List last 10 Full Backups for a Client
-    List Volumes used by selected JobId
-    List Volumes to Restore All Files
-  To use them, simply type "query" to the Console program, and
-  select the one you want.
-- Modified bextract to default to extracting all files (i.e. /).
-- Cleaned up the code in bextract a bit.
-
-  From kes03Jun02:
-- Improve Verify command to include files examined.
-- Eliminate fcntl() locking of the console file and replaced
-  it with a pthreads mutex.
-- Note Director - SD protocol is changed to handle new tape
-  information (Fileset, JobType, JobLevel).
-- Create config.out that contains a summary of ./configure
-  to see what you previously configured: "cat config.out"
-- Implemented GZIP compression.  Added addition syntax to
-  Include { } resource to permit setting of any GZIP compression
-  level:
-     compression=GZIP
-     compression=GZIP1
-     ...
-     compression=GZIP9
-
-  Level 1 is minimum compression and level 9 is maximum. Using just
-  GZIP gives the default (level 6).
-- Enhanced the tape format to include the unique Job name, FileSetName,
-  JobType, and JobLevel in the Start/End of Session records. The code
-  detects that tape level difference and acts accordingly. You can 
-  add data in the new format to old tapes.
-- Fixed an incorrect display message in the prune command.
-- Began implementation of Verify Volume and Verify Data.
-- Cleaned up File daemon restore.c a bit ensuring that termination 
-  cleanup is done and all possible Emsgs are converted to Jmsgs.
-- Modify bls.c to use common setup routines. This reduced the big
-  code duplication that creeped in when I added different listing
-  options. Also, changing tapes is now handled uniformily in a subroutine.
-
-===========================================================================
-2002-05-27 Release 1.20
-- Started documenting Catalog Pruning and Recycling.
-  Added catmaintenance.html and recycling.html
-- Fixed the query command bug.
-- Implemented PID files to prevent two copies of Bacula
-  from running at the same time. Be sure you --with-pid-dir
-  points to a working directory.
-- Modified ASSERT() to cause a segmentation violation. This
-  permits a core dump.
-- Worked on gnome-console. It paints better, it tells you if it
-  is ready to accept a command or processing one, and it is
-  almost entirely GTK+ (rather than GNOME, I'm removing GNOME
-  a bit at a time).
-- Limit to 100 the number of tape labeling errors in a single Job.
-- Add some additional ASSERT()s to the database routines. I don't
-  like ASSERTs but they do catch bugs.
-- Tested and debugged recycling of Volumes.  Needed to change
-  the Director-SD protocol slightly.
-- Removed the experimental SIGHUP in the Director as it is a
-  potential source of errors.
-- Added Level, Pool, Messages, and Storage keyword/value scanning
-  to the Schedule Run record.
-- Improved printing of Schedule resources with "show schedules"
-- Do not autoprune Jobs/Files if the Job errs.
-- Updated newvol() to pass back the updated Media record.   
-- Fixed the "update pool" command, which was broken during a much
-  earlier code reorganization.
-- Improved a few of the pruning messages.
-- Removed readline inclusions from gnome-console (hang over from console).
-- Make Jmsg use daemon message handler if no message handler is defined.
-  This is always the case in the SD and FD.
-- Started removing __PROTO(). With C++ prototypes are manditory, so why
-  keep around legacy code.
-- Added a good deal of message internationalization -- more to be done.
-- Move cached Path into mdb structure and use POOLMEM.
-- Fix verify bug introduced last update causing incorrect diffs 
-  by turning off autopruning.
-- Started adding code to distinguish Errors from Fatal Errors.
-- Errors are now counted in message.c for a Job.
-- More POOLMEM cleanups.
-- Implemented Automatic pruning.
-- Implemented Automatic recycling of Volumes.
-- Added PruneJobs/Files/Volumes=yes or no to Job resource. If set,
-  it forces the specified pruning.
-- Modified rwlock to accept multiple nested write lock
-  requests.
-- Modified the cats directory to use the new rwlock mechanism
-  in place of P() and V(). 
-- Defined db_lock(mdb) and db_unlock(mdb). They are in effect
-  transaction locks. 
-- Add CVS Id's to most files.
-- Made first cut at AutoPrune
-- Added new autoprune file that is called at the end of
-  each Job. It then decides when and what to prune and
-  calls the UA prune routines.
-- Modified Run (in Schedule resource) to permit overrides of
-  Level, Pool, Storage, and Messages. (not tested).
-- Added more POOLMEM in place of char.
-- Implemented daemon pid files. This prevents multiple 
-  daemons from running simultaneously. You can run multiple
-  daemons if they listen on different ports.
-- Documented the Schedule resource a bit better.
-- Began gently adding a POOLMEM type (perviously void).
-  For the moment it is a #define to char, but long term
-  it should be its own typedef.
-- Corrected a bit of spacing on the status bar of gnome-console
-- Added Admin and Archive Job types.
-- Implemented multiple Messages resources. Each daemon has
-  its own message resource, which defaults if not defined.
-  Jobs may now have different message handlers.
-- Cleaned up a bit of duplicate code in backup, verify, and
-  restore by creating appropriate subroutines in job.c
-- Added Type, Client, FileSet, and Level resource record
-  definitions to the Director. These can be used in place
-  of the Backup = ..., Verify = ..., ... commands.  This needs
-  documenting.
-- Corrected an incorrect message in the prune code and added
-  the number of Files pruned in the message.
-- Corrected several paint problems with gnome-console.
-- Added a bit of printout in signal handler during traceback.
-- Cleaned up most of sm_check() to be turned on/off by define
-  in version.h
-
-===========================================================================
-2002-05-10 Release 1.19
-- Allow the user to select a new period for pruning.
-- Lots of additions to the manual -- prune and purge
-  commands documented.
-- Applied Phil's configure.in fix for --prefix, ...
-- Fixed bug found by Phil (patch supplied) in updating
-  MD5 signatures (revert to 32 bit FileId, move "static"
-  variables into JCR) (catreq.c fd-cmds.c).
-- Reverted to using INTEGER for FileId in make_sql_tables
-  due to a bug in MySQL.
-- Change editing code to %d for FileId.
-- Remove sqlite in make distclean in cats directory.
-- Remove console.conf in console during make distclean.
-- Remove gnome-console.conf during make distclean.
-- Remove bacula-dir.conf during make distclean.
-- Set default level when using Console if none specified.
-  Bug reported by Phil.
-- A simple . command from Console is ignored.   
-- Change program named from filed to bacual-fd in winmain.cpp
-- Change default config file for Win32 in winmain.cpp
-- Free namebuf on early return from find_one.c. Bug reported by Phil.
-- Modify testfind.c to dump orphaned buffers.
-- Removed terabytes from parse_conf.c because of problems with
-  older gcc compilers.
-- Turn off gnome options in gnome-console by constructing empty argv.
-- Fixes to Verify when only MD5 differs.
-- Insert 0 for MD5 as default rather than space.
-- Allow .messages "transparent" command while reading input
-  in UserAgent server.
-- In dird/verify.c ensure that correct filename is printed if only
-  the MD5 differs. Minor reindenting caused large diff.
-- Delete unused code from backup.c
-- In filed/verify.c ensure that same algorithm as backup.c is used
-  to pass back MD5 signatures -- especially for directories and files
-  that cannot be read. Change dummy filename from X to *MD5-id*.
-  This dummy value should never be printed.
-- Make gnome-console poll Director every 5 seconds for output.
-  This means that queued up messages are displayed at reasonable
-  intervals. Delete some unused code hanging around from the tty
-  console program.
-- Begin implementation of prune commands.
-- Add command line history to gnome-console. Not yet saved across sessions.
-- Fixed some broken URLs in the manual.
-- Added JobId type.
-- Wrote first cut of "prune files" and "prune jobs".
-- Added command line history to gnome-console 2500 lines max.
-- Widened store_time() and associated variables to 64 bits using
-  new btime_t definition.
-- Removed GNOME about box and replaced it with 
-  a somewhat crude Gtk+ about box in the gnome-console.
-- Widened StartDay in the Job DB record to be 64 bits.
-- Changed edit_uint_ to edit_uint64_ everywhere. Much more
-  descriptive of what is done.
-- Removed most llds and replaced them with %s and edit_uint64.
-  This makes the code a bit easier to read for beginners.
-- Added a btime_t typedef which is 64 bits wide.
-- Added most of the code needed to do Purge and Prune of
-  database. Not yet tested. Please do not use.
-- Additional config options for Console.
-- Started adding code for Automatic Recycling of Volumes.
-- Allow arbitrary length filenames in Verify code.
-- Fix incorrect filename in Verify code.
-- Significant enhancement to number scanning in config parser.
-- Requires initializing MySQL tables, or applying cats/alter.sql
-  to modify Media table.
-- Modified Makefile to printer a much more visible
-  message if the make ends in error.
-- Added the Purge value to the VolStatus in the Media table.
-  This value is set if the Volume is purged.
-- Enhanced the db_delete_media_record() routine to delete
-  all associated records in the database.
-- Modified Console to always write to the variable "output"       
-  rather than stdout. This will permit directing output to a file.
-- Enhanced the Console configuration file to have a Console 
-  resource. This will allow us to add an rcfile and history file.
-- Modified Find_next_vol in catreq.c to search for "Recycle"
-  volumes if there are none marked Append. Also made Get_Vol_info
-  return the VolStatus to the Storage daemon.
-- Allow upper/lower case match on job level names.
-- Added another warning message to the Console "delete media" command.
-- Corrected a number of FileId types from uint64_t to FileId_t in
-  ua_retention.c.
-- In ua server close database before freeing JCR (because pointer is
-  kept in ua and jcr structures).
-- parse all numbers as doubles. Do lots of checking for valid number
-  formats. Allow numbers in scientific form (e.g. 1.5e+10).
-- Remove terabyte modifier as it doesn't work in some compilers.
-- Fix bug in handling some modifiers.
-- Added all necessary code for Recycle to Storage daemon. A Volume
-  marked Recycle will now be overwritten.
-- Filled out the prune command a bit and did some testing.
-- Make console accept redirected input.
-- Altered the Table definitions to include Recycle,
-  FileRetention, JobRetention, and AutoPrune.
-- Widened StartDay to 64 bits.
-- Use JobId_t in more places. 
-- Added the new table fields to the database record definitions.
-- Changed Recycle from string to a binary quantity.
-- Added a Version table with a VersionId to detect.
-  future changes in the database. This should prevent
-  a Bacula from working with a database that is not in sync.
-- Modify Console to accept input from a file. This will permit
-  the .read command and allow reading a .rc file.
-- Added new retention and recycle variables to the Director's configuration.
-- The UA subroutines or commands can now be called from core
-  code because the output routines detect the absence of a 
-  UA socket and direct output to the Job.
-- Added a verbose flage to the ua packet to permit reduction of
-  output while running a UA command (prune) from a Job.
-- Did a fair amount of work on the prune command. Prune Volume now works.
-- Purge Volume now works.
-- Made last changes for integrating prune and purge commands.
-- Add -ltermcap to CONS_LIBS when readline is configured.
-  More work to be done to search for termcap.
-- Added cats/drop_sqlite_tables.in, which will delete the SQLite database.
-- Got CWEB working so that we can compile filesys.w and immortal.w
-- Modified depkgs to include cweb.             
-- Note, CWEB is not yet used by the core Bacula code.
-- Made cats/alter.sql, which alters an old database to bring it
-  up to the new format. This only works with MySQL since SQLite does
-  not have the ALTER SQL command.
-- Changed the old StartDay field in the db to be JobTDate, which is
-  the latest time/date in widened Unix time format that the Job ran.
-  This value is used when doing pruning.
-- Added code in cats/sql.c to verify that the database internal version
-  corresponds to the db version compiled in Bacula. It is set to 1 currently.
-- Lots of changes to cats to bring the SQL up to date with the new 
-  retention period changes.
-- Added Console command code to permit changing a Volume's retention period.
-- Removed old code that used date_encode() and replaced it with widened
-  Unix time().
-- Started modifying Message resource scanner so that we can have multiple
-  message resources. Much more work to be done.
-- Moved scanning for time into new library routine string_to_btime().
-
-===========================================================================
-2002-04-22 Release 1.18
-- Applied Phil's configure.in fix for --prefix, ...
-- Fixed bug found by Phil (patch supplied) in updating
-  MD5 signatures (revert to 32 bit FileId, move "static"
-  variables into JCR) (catreq.c fd-cmds.c).
-- Reverted to using INTEGER for FileId in make_sql_tables
-  due to a bug in MySQL.
-- Change editing code to %d for FileId.
-- Remove sqlite in make distclean in cats directory.
-- Remove console.conf in console during make distclean
-- Remove gnome-console.conf during make distclean
-- Remove bacula-dir.conf during make distclean
-- Set default level when using Console if none specified.
-  Bug reported by Phil.
-- A simple . command from Console is ignored.   
-- Change program named from filed to bacual-fd in winmain.cpp
-- Change default config file for Win32 in winmain.cpp
-- Free namebuf on early return from find_one.c. Bug reported by
-  Phil.
-- Modify testfind.c to dump orphaned buffers.
-- Removed terabytes from parse_conf.c because of problems with
-  older gcc compilers.
-- Turn off gnome options in gnome-console by constructing empty
-  argv.
-
-===========================================================================
-2002-04-18 Release 1.17 Kern Sibbald
-- Ensure that platforms Makefiles are called for clean  
-  and distclean.
-- Hide a lot of Makefile messages with @
-- Applied Phil's configure.in patch. Thanks.
-- Doc updates, many to clarify points brought up by Phil.
-- Applied Phil's make_mysql_tables.in patch. Thanks.
-- Made authenticate.c in dird test bnet_send status.
-- Make label a bit more friendly with extra info message.
-- Add level 200 to debug info in run command.
-- Remove old code from findlib/testfind.c so that it compiles.
-- Add two minute max wait to cram-md5 authentication. Hopefully,
-  this will catch non-responding WinNT daemons.
-- Allow time and size modifiers to be upper or lower case.
-- Turn off old CYGWIN patch for pthread_cond_timedwait() bug that
-  now causes File daemon hangs on WinNT.
-- Fix mount messages for restore. Previous updates to save
-  broke the restore code.
-- By default write fixed block sizes rather than variable block
-  sizes.  My Sony DAT simply does not work (reread failures) with
-  variable block sizes.
-- Data split across tapes was not being correctly restored
-  (at least on DAT tapes). 
-- Implement MaximumBlockSize and MinumBlockSize statements in
-  Storage daemon so user can specify variable block sizes if
-  desired.
-- Return error if block checksum error on read (previously 
-  ignored).
-- Fixed some error messages in bls, and in some cases exit(1)
-  rather than ABORT. There remain ABORTs to be examined.
-- Made a local copy of tcpd.h and corrected the function 
-  prototype problem for C++.
-
-===========================================================================
-2002-04-14 First public release 1.16 Kern Sibbald
- - Many intervening changes/updates.
-
-2001-09-29 Release 1.0 Kern Sibbald
- - Fixes to problems found at John's
-   installation.
- - See techlogs/kes25Sep01 for details
-
-2001-09-25 Release 1.0 Kern Sibbald
- - Helped John install at his site.
-   He is backing up one Linux machine and
-   one Win2000 machine.
-
-2001-mm-dd Many releases
- - Released internally.
-  
-2000-04-09 Release 0.4 Kern Sibbald
- - Added a lot of Director configuration code. In      
-   part (a small part), the Director now uses the
-   bacula.conf file to know what to do. There still
-   remains a lot to do.
- - The file search code is now integrated into the
-   MySQL database routines, and Bacula is now hooked
-   into the MySQL database (if so configured). Thus
-   all the database records are being created, though
-   there still remains some work in getting all the
-   details into the records (such as the Storage 
-   coordinates).
- - I've defined how Volume pools work (see manual).
- - I've defined error message handling though no code
-   is yet written.
- - The following resources and records are implemented
-   in the Director configuration file (bacula.conf):
-    
-   Director
-     Name (passed to Storage daemon)
-   Client
-     Name, Address, Port
-     Password (not yet used)
-   Storage    
-     Name, Address, Port, Password, MediaType
-   Job
-     Name    
-     Type (not yet used)
-     Backup (only one permitted) 
-       Client, FileSet
-     Storage
-     Schedule, Messages, Pool (not used)
-   FileSet
-     Name  
-     Include (options ignored)
-     Exclude (no options)
-   Schedule (not used)
-     Name
-   Messages (not used)
-     Name       
-     Debug, syslog, mail, append (not used)
-   Catalog
-     Name
-     Address, Port, Password (not used)
-   Pool (not used)
-     Name
-     PoolType, MediaType (not used)
-
- - Added Storage configuration routines.
-   Director
-     Name, password (verified against those sent by Director)
-   Storage
-     Name, Address, Port (address, port must correspond to Director's values)
-     Password, MediaType
-   Device
-     Name, MediaType (must correspond to those sent by Director)
-     Archive Device (defines device name)
-
-
-2000-03-10 Release 0.3 Kern Sibbald
- - Implemented new base64 encoding for attributes.
-   This eliminates some of the error messages in the
-   sprintfs on the Solaris due to different stat() sizes.
- - Implemented  the first cut of the file search routines for
-   the File daemon.  The exclusion lists work including wild
-   cards.   There is a lot of work to be done, but the basic
-   structure is now in place (wild cards do not yet work for
-   the include).
- - Completed writing the memory pool code.  Now I must
-   implement it in the daemons.
- - Modified the bacula start/stop script so that it has a
-   better chance of working on SGI and Solaris.
- - The catalog code has not been converted to the new file
-   search code.
-
-2000-03-06 Release 0.2 Kern Sibbald
- - Integrated John's fixes.
- - Made Makefiles self configuring when Makefile.in is changed.
- - Added a runit script in the top level that runs bacula
- - Added a "bacula" script in the top level directory that
-   starts and stops the File daemon and the Storage daemon.
-
-2000-03-03 Release 0.1 Kern Sibbald
- - Basic Director, File, and Storage daemons.
-   Standalone Catalog services using MySQL
-
-2000-01-22 Kern Sibbald
-   * Setup basic file structure with ./configure
+Release Version 3.0.1:
+29Apr09
+kes  Fix bug #1282 Setting job.Priority in python crashes director by
+     checking if string addr is NULL.  Not tested.
+kes  Fix bug #1281 allow all on restore command line to restore
+     pruned JobIds without prompting.
+28Apr09
+dirk Correct bat Select dialog. Fixes bug #1276.
+kes  Check for job_canceled() in fd_plugin code.
+kes  Update Win32 table creation to have new DB version 11 format
+kes  Remove illegal Options in Exclude of default Win32/64 bacula-dir.conf
+27Apr09
+ebl  Fix bug #1274 where a migration job can be canceled like the
+     original job by the MaxRunTime directive.
+mvw  Added fix for bug #1275 where acl or xattr data is saved for
+     virtual filenames generated by filed plugins.
+26Apr09
+ebl  Remove "Reposition" message when restoring
+kes  Fix platform scripts not to clean configured files during
+     'make clean' use 'make distclean' to clean everything. Fixes
+     bug #1272.
+kes  Update projects file
+21Apr09
+ebl  Tweak version string to display versionid field at the end
+     and keep fields order.
+16Apr09
+kes  Add additional mysql connection debug code submitted by:
+     Chandranshu <chandranshu@gmail.com>
+14Apr09
+kes  Fix bug #1246 Sometimes access denied with VSS enabled. UCS
+     conversion cache was not properly flushed at the end of a Job.
+kes  Fix bug #1268 Full Max Run Time cancels jobs (when Max Run Time = 0).
+11Apr09
+kes  Modify insertion of read Volumes in SD to be done before the
+     drive reservation. This ensures that a Volume to be read will not
+     be reserved for writing. Significant enhancement.
+
+
+Release Version 3.0.0:
+05Apr09
+kes  Fix Win32 make clean to clean correctly 
+kes  Cleanup Win installer dialog messages a bit ...
+04Apr09
+kes  Separate object/binaries in Win32 and Win64 builds. More to be done.
+kes  Add bconsole to Win64 installer.
+03Apr09
+kes  Implement more automatic build of Win64 client. Note, there are still
+     lots of warning messages, but it seems to build a correct binary.
+02Apr09
+kes  Enhance Job messages from SD when the FD->SD protocol is incorrect
+     and the SD hangs up. Previously this looked like a comm error.
+mvw  Fixed problem in xattr and acl code trying to send empty acl or xattr
+     streams.
+mvw  Fix for bug #1261 where we send out a null stream when a file only an
+     acl and xattr support is also turned on.
+mvw  Added some warnings to configure when using libtool and static in
+     one configure.
+30Mar09
+ebl  Fix small memory leak in fileregexp bsr code
+29Mar09
+kes  Correct bacula32.def entry point as specified by James.
+kes  Add code to FD plugin driver to make a copy of the plugin
+     filename to be saved to avoid save_file from zaping it.
+28Mar09
+kes  Directly mark all files saved by plugin as being seen for Accurate.
+kes  Add checks on the plugin version and the plugin license. Currently
+     only implemented for FD plugins.
+kes  Add installation of /usr/share/doc/bacula
+kes  Modify plugin checkFile to return bRC_Seen to cause file
+     to remain.  Previously was true/false.
+27Mar09
+kes  Implement installation of bat help files
+     The help files are installed in the htmldoc dir and can be set
+     by --htmldoc=xxx on the ./configure. Default is:
+     /usr/share/doc/bacula/html
+kes  Update projects file
+kes  Apply patch from  Pasi Karkkainen <pasik@iki.fi> that adds
+     Previous Job name to migrate job report.
+26Mar09
+kes  Apply bacula-autoconf-db-m4.patch from Kjetil Torgrim Homme 
+     <kjetilho@linpro.no> that doesn't *require* the static libraries
+     for the SQL database engine. Fixes a build problem if the static
+     libraries are not loaded.
+25Mar09
+ebl  Update Makefiles to compile win64 using make WIN64=yes
+kes  Disable plugin options in ua_run.c
+kes  Added the following to provide solutions to the plugin/Accurate
+     problem -- bug #1236 Cannot restore incremental backups with 
+     the Exchange plugin.
+     - New Bacula read-only variable bVarAccurate -- returns accurate flag
+     - New Bacula write-only variable bVarFileSeen -- marks a file as seen
+     - New plugin entry point -- checkFile that is called at the end
+       of an Accurate job and allows the plugin to mark a file as seen.
+24Mar09
+kes  Temporarly turn off comm timers because it causes bat to seg fault.
+     Must research making SIGUSR2 work with bat and Qt.
+24Mar09
+ebl  Use MTIMEONLY fileset option in accurate check
+23Mar09
+ebl  Tweak code to compile win64 version with mingw
+21Mar09
+Kes  Attempt to correct timing problems with starting bat and obtaining
+     lists. Maintain in_command counter to know when a list is coming.
+20Mar09
+kes  Convert seconds.seq separator into seconds_seq so that Bacula
+     editing of the Job name from the full Job name works. This fixes
+     bug #1255 'variable %n changed'.
+kes  Second half of proposed fix for bug #1227 that does not
+     mark virtual volumes for unloading.
+kes  Proposed fix for bug #1227 Job and labeling new tape.
+
+Beta Release 2.5.42-b2
+16Mar09
+kes  Increase timeout for unmounting DVD as suggested by reporter
+     of bug #1250.
+15Mar09
+jh   Fix by James Harper to print error code when attempting to
+     restore two databases (only one is permitted). This responds
+     to bug #1234.
+kes  Apply the nodump patch supplied by Frank Kardel that fixes
+     the NODUMP flag problem. This fixes bug #1221
+kes  Add more output if a user attempts to clone a job but does not
+     uniquely specify the Job name.  This responds to bug #1248 which
+     was not a bug, but improves user feedback.
+14Mar09
+kes  Fix problems with bug #1247 and 64 bit time_t OSes by not 
+     editing (printf) time_t values.
+12Mar09
+kes  Install bacula (start/stop script) in sbindir in addition to
+     scripts dir.
+ebl  Tweak configure to remove bash specific code
+ebl  Remove TCABD reference
+11Mar09
+ebl  Free lock manager in when btape exits
+09Mar09
+kes  Apply patch from bug #1224, which fixes waiting on max Storage
+     jobs during migration.  Submitted by Alexandre Simon.
+kes  On 03Mar08 (a year ago) applied patch from bug #1059 (kardel)
+     to implement the NODUMP flag on FreeBSD.
+07Mar09
+kes  When deleting a Volume by MediaId require the Id to be
+     prefixed by a * to avoid confusing with an integer volume
+     name.
+kes  Prevent bls from printing binary data when a plugin stream
+     encountered. This fixes bug #1238
+kes  Prepare to add JS_Warnings termination status.
+kes  Attempt to resolve bwx-console Win32 crash. Not likely to
+     work.
+06Mar09
+kes  Move src/win32/dll to src/win32/lib, which is much more logical.
+kes  Fix the Win32 build.
+kes  Fix broken casting in src/compat/print.cpp.
+kes  Eliminate jcr Errors and always use jcr JobErrors.  This should
+     ensure that SD and FD errors are correctly reported.  Also add
+     JobErrors to SD returned values. This should fix bug #1242.
+28Feb09
+mvw  Implemented xattr support for Solaris 9 and above and extensible
+     attributes for OpenSolaris.
+mvw  Added some limits to the xattr code so that we don't blow up the
+     filed on big xattrs.
+mvw  Fixed some comments which changed due to xattrs being implemented.
+mvw  Changed xattr support checking in configure to test first for
+     generic solutions and when not found for specific OS functions.
+25Feb09
+mvw  Don't try to copy empty jobs (e.g. with jobbytes == 0)
+     which gives Unable to get Job Volume Parameters errors.
+     Which leads to copying the same job over and over again.
+21Feb09
+kes  Ensure that src/qt-console/.libs is cleaned properly
+20Feb09
+mvw  Use acl_data_len instead of seperate var for length
+     of acl stream.
+ebl  Add database update scripts to updatedb dir
+19Feb09
+ebl  Fix #1226 about bconsole segfault when using readline()
+18Feb09
+kes  Apply Eric's next-beta.patch that enables 64 bit FileIds and
+     adds new columns to the catalog.
+kes  Ensure that libtool directory always cleaned + reduce 
+     unnecessary output during make clean.
+15Feb09
+ebl  Check postgresql database encoding that should be SQL_ASCII
+     and print a warning if it's something else.
+08Feb09
+kes  Free name item in guid_to_name.c when already in list.
+kes  Add more info to error message in ua_tree.c
+05Feb09
+kes  Make re-read last block fatal if block numbers differ by
+     more than one.
+30Jan09
+ebl  Try to disable _FORTIFY_SOURCE by default
+29Jan09
+ebl  Tweak compat.h for new mingw
+28Jan09
+ebl  Add new ScratchPool directive to Pool. Thanks to Graham
+ebl  Turn on db_get_file_list() single SQL because the failure
+     was due to a full FS. And the accurate test fails with the
+     other code.
+27Jan09
+ebl  Fix a bug that doesn't update RecyclePool all the time 
+     during the first startup.
+25Jan09
+kes  Turn off db_get_file_list() giant SQL because if fails on
+     my production machine.
+kes  Fix bat.pro.in so that bat is properly installed rather
+     than just copied.
+24Jan09
+kes  Modify search for .conf file so that if one is given on
+     the command line, it will be used, otherwise it will use
+     the SYSCONF directory.  It will no longer look in the current
+     directory unless explicitly requested on the command line.
+     This fixes bug #1189.
+kes  Fail a job that references a plugin if no Plugin Directory is
+     defined.
+22Jan09
+kes  Fix bug #1211 crash during reload with bad dird.conf file.
+21Jan09
+ebl  Add detection of intptr_t and uintptr_t to configure process
+20Jan09
+ebl  Change some cast to use intptr_t instead of long
+18Jan09
+kes  Apply acl_solaris_update.patch submitted by Marco (thanks).
+kes  Remove configure check for resolv.h -- it is apparently not needed
+     and causes build warnings on FreeBSD.
+kes  Ensure that the installer and newinstaller Makefiles are called
+     during a make clean.
+12Jan09
+kes  Apply Eric's fix for suppressing extended attributes error messages
+     when dealing with deleted files.
+11Jan09
+kes  Add src/win32/newinstaller -- single file installer
+kes  Attempt to explicitly call gmake when needed, or if not found
+     skip the calls.  This should fix the FreeBSD regression/build.
+10Jan09
+kes  Fix bat.pro.in so that bat will install.
+09Jan09
+kes  Add more debug output to VSS init.
+kes  Attempt to correct win32 debug in berrno.
+09Jan09
+kes  Fix bug reported by Dan where make fails in clean of src/win32. 
+07Jan09
+kes  Fix bug #1212, SD is unable to recycle purged volumes. fstat()
+     was broken.
+06Jan09
+ebl  Despool attributes directly from the director if attribute
+     spool file is present
+Beta Release 2.5.28-b1
+05Jan09
+kes  Fix bat install broken by $DESTDIR change.
+02Jan09
+kes  Fix annoying compiler warnings in console/conio.c
+kes  Fix win32 build (depended whether or not ./configure was run).
+28Dec08
+kes  Apply fix suggested by Bruno Friedmann to configure.in to
+     find python2.5
+26Dec08
+kes  Turn on Eric's match_bsr tape block checking code.
+kes  Correct values used for tape block numbers in record.c.
+23Dec08
+ebl  Fix a problem with PoolUncopiedJobs option which was broken
+     by the new JT_JOB_COPY type.
+kes  Fix bug #1206 -- Error: sql_update.c:194, which was probably
+     caused by the user modifying the Bacula DB schema.
+kes  Remove rogue line of C code.
+kes  Fix bug #1208
+
+Beta Release 2.5.28-b1
+02Jan09
+kes  Fix annoying compiler warnings in console/conio.c
+kes  Fix win32 build (depended whether or not ./configure was run).
+28Dec08
+kes  Apply fix suggested by Bruno Friedmann to configure.in to
+     find python2.5
+26Dec08
+kes  Turn on Eric's match_bsr tape block checking code.
+kes  Correct values used for tape block numbers in record.c.
+23Dec08
+ebl  Fix a problem with PoolUncopiedJobs option which was broken
+     by the new JT_JOB_COPY type.
+kes  Fix bug #1206 -- Error: sql_update.c:194, which was probably
+     caused by the user modifying the Bacula DB schema.
+kes  Remove rogue line of C code.
+kes  Fix bug #1208
+
+Beta Release Version 2.5.26
+20Dec08
+kes  Correct typo in Win32 Makefile editing
+kes  Correct typos in debug output.
+kes  Improved error detection in creating bsrs.
+kes  Add debug code to Win32 restore
+19Dec08
+kes  Fix Win32 build.
+ebl  Cleanup director VolParam struct
+18Dec08
+ebl  Replace File:Block in BSR by Address to fix #1190
+16Dec08
+kes  Correct missing return in Darwin code.
+15Dec08
+ebl  Copy joblog after a Copy job
+14Dec08
+kes  Tweak block.c read to more closely simulate write for computing
+     block addresses and turn on disk block testing.
+kes  Implement a crude 'list joblog' mostly for debugging.
+13Dec08
+kes  Fix Migration bug #1206 sql error with NULL FileSetId when no jobs
+     to migrate.
+kes  Fix Migration JobLog bug #1171. Get the JobIds correct.
+12Dec08
+ebl  Fix segfault in bscan when using debug mode
+11Dec08
+kes  Fix configure to do minimum Win32 configure so that make clean
+     works.
+kes  Tweak modify FD header to use %ld instead of %d.
+kes  Remove hand scanning of FD header in SD and use Bacula's
+     sscanf, which is now OS independent.
+kes  Define new object (file/dir) begin and end Volume label records 
+     in SD.
+kes  Use new method of defining XATTR #defines to avoid need for having
+     them in config.h.in
+10Dec08
+ebl  Rename all STREAM_ACL_..._T into STREAM_ACL_..
+09Dec08
+ebl  Add a new lock manager that can detect deadlock situation
+     This new option is activated with a --enable-lockmgr configure
+     option.
+ebl  Add new Director->MaxConsoleConnections directive
+03Dec08
+ebl  Fix bacula-sd hanging after tape gets full + unload 
+02Dec08
+ebl  Remove extra db_lock() in get_prune_list_for_volume()
+ebl  Apply 2.4.3-prune-deadlock.patch that fixes a problem when
+     using Catalog as message backend.
+01Dec08
+kes  Apply Marco's Darwin xattr patches.
+28Nov08
+kes  Fix Win32 build.
+26Nov08
+kes  Apply Marco's Extended attribute support patch.
+kes  Update projects file
+25Nov08
+kes  More changes to ensure that during thread switches the jcr
+     is removed from the TSD.
+kes  Ensure that consoles attach jcr to thread, and that only the
+     thread attached is removed from the TSD.
+24Nov08
+kes  Move definition of FileId_t to bc_types and define it once in the jcr.
+22Nov08
+kes  Remove all time_t from arguments in favor of utime_t, which is
+     machine independent.
+kes  Add more debug to match_bsr.c and use %u for unsigned debug editing.
+20Nov08
+ebl  Apply patch for bug #1182  about Recycle flag
+     that is not updated after a pool change.
+kes  Since the user has been warned, allow console purge command 
+     to purge volumes that are in use.
+kes  Fix Win32 build to add new sd_plugins.c
+ebl  Apply patch from bug #1175 that reset the Slot and the Inchanger
+     flag in db_make_inchanger_unique().
+ebl  Remove a Emsg() after recieving a Fatal signal that can lock
+     the catalog.
+19Nov08
+kes  Apply patch from bug #1187. It prints an error message if the
+     Maximum Block Size in the SD is too big.  
+kes  Increase Maximum Block Size to 2,000,000 bytes.
+kes  Use doubly linked bsr list so that consumed bsrs may be
+     removed.  Removing not yet implemented.
+18Nov08
+kes  Implement a fix that very likely fixes the undesired volume
+     purge reported by Graham Keeling.
+kes  Implement bsr block level checking for disk files. However,
+     it does not work correctly in accurate tests, and all the
+     migration and copy tests, so it is turned off.
+ebl  Make SD plugins work.
+14Nov08
+ebl  Apply Riccardo's patch to compile bacula+mysql on mandriva
+13Nov08
+ebl  Add more variables accessible through the director plugin
+     interface.
+12Nov08
+ebl  Do work on plugins
+     - fix compilation of the director plugins
+     - add plugin list to status dir output
+     - add director plugin dump after a fatal signal
+ebl  Apply Riccardo's patch that fix some win32 compilation errors 
+     and a bug with bat version browser.
+11Nov08
+ebl  Add Plugin debug after a fatal signal.
+ebl  Add db and rwlock debug after a fatal signal.
+10Nov08
+ebl  Fix maxwaittime to fit documentation, this time is now counted
+     from the job start and group all wait periods.
+ebl  Add tips for postgresql to improve performance when having
+     multiple batch insert at the same time.
+09Nov08
+ebl  Remove extra debug for db lock.
+07Nov08
+kes  Apply Riccardo's second patch that cleans up the #include
+     file order + a few Win32 particularities to make bat work
+     on Win32.
+ebl  Add allow_transactions flag to mysql db backend.
+kes  Apply win32-fixes patch from Riccardo that makes the Win32
+     bat more stable and faster (but still slow).
+06Nov08
+kes  Fix bug with job name duplication if more than 60 jobs created
+     during a minute.
+kes  Correct some bugs of cleanup in SD if the FD connection fails.
+ebl  Add code to get more information after a fatal signal.
+05Nov08
+ebl  Apply Bastian's patch that add spooldata=yes|no option
+     to run command.
+04Nov08
+ebl  Fix bash shell to sh shell in database creation script
+02Nov08
+kes  Fix orphaned jobs (possible deadlock) while pruning.
+kes  Use jcr stored in bsock rather than searching in getmsg.c.
+     This results in about a 5% speed improvement with four
+     concurrent jobs.
+kes  Implement win32_chmod that uses wide characters, if possible,
+     to get and set the file attributes.
+29Oct08
+kes  Apply pane freezing during updates patch from Riccardo Ghetta.
+kes  Rework next_vol and autoprune a bit due to failure in
+     recycle-test.  prune_volumes() now returns no status,
+     but should prune at least one Volume, if possible.
+kes  Modify check_if_volume_valid_or_recyclable to reject a
+     volume with Recycle set off.
+kes  Modify prune_volumes() to continue if volume Recycle is off
+     or if the volume has expired. Add more debug.
+28Oct08
+kes  Fix bug #1046 VolumeToCatalog incorrectly reports mounted 
+     filesystems as missing on the Volume.
+kes  Rewrite the set_jcr_job_status() code to include job status
+     priorities so that more important status changes occur but
+     lower priority status changes will not overwrite something
+     more serious.  This could possibly cause reporting incorrect status
+     reporting in some cases.  More testing is needed to ensure
+     I have the right priorities. This vastly simplifies the previous
+     contorted logic.
+     Verify Diff status should now be correctly reported, whereas it
+     was previously lost.
+kes  Reduce some debug output.
+kes  Apply Joao's patch to SQLite tables to make chars work.
+27Oct08
+ebl  Fix #1175 About update slots that don't reset InChanger flag when 
+     slot is empty.
+ebl  Fix #1173 where prune_volume() returns a volume from the scratch.
+25Oct08
+kes  Remove jobq.c constraint that read and write SD must be
+     different. This may lead to more deadlocks in the SD,
+     but they should be resolved there.
+kes  Ensure that job report is always printed even if job is failed
+     in the director.
+kes  Don't print job report twice for failed VBackup jobs.
+24Oct08
+kes  Fix editing of retention time difference to use 64 bit
+     int instead of 64 bit unsigned. This should permit very
+     long retention periods.
+kes  Implement code to prohibit a write job from appending to  a 
+     Volume that will be used for a read operation.  This is
+     new code and could possibly cause some conflicts.
+23Oct08
+kes  Integrate James Harper's Exchange Win32 plugin patch.
+kes  Apply patch from Marco van Wieringen that implements the new
+     Solaris libsec interface for ACLs so that Bacula can save and
+     restore both the new ACLs and old ACLs.
+kes  Marco's patch also corrects the file dependency generation code
+     so that it works properly both with shared libraries and static
+     libraries.
+kes  Marco's patch also includes a small cleanup of the cats Makefile
+     to remove some references to non-existent files.
+22Oct08
+kes  Modify win32 Makefiles to use full paths in most cases.
+     In particular add MAINDIR environment variable that points
+     to the main Bacula source directory.
+21Oct08
+kes  Add read volume list code to SD -- not yet used.
+kes  Add James' binutils patch
+kes  Split volume management code out of src/stored/reserve.c into
+     a new file vol_mgr.c 
+kes  Modify configure to do an automatic make clean.  This ensures
+     that any changes to ./configure options are handled correctly.
+
+Beta Release Version 2.5.16
+19Oct08
+kes  Add Makefile dependency when using LIBTOOL_LINK so that any
+     change in ./configure options will be accounted for.
+18Oct08
+kes  Fix typo in the ACL patch that I overlooked.
+kes  Apply Marco's libtool include patch.
+17Oct08
+kes  Apply Bastian Friedrich's ACL patch to eliminate ACL
+     errors during restore.
+kes  Minor cleanup of create_restore_volume_list() code.
+kes  Fix typo in console Makefile.in
+16Oct08
+ebl  Fix #1110 about RunScript that can't execute a script with
+     Unicode caracters in the path.
+15Oct08
+kes  Apply tray-monitor patch from Bastian Friedrich to make it
+     work with the new FD.
+14Oct08
+kes  Apply cleanup patch from Marco
+kes  Apply patch from  Marco van Wieringen <mvw@planets.elm.net>
+     that implements libtool to create shared objects out of
+     the Bacula libraries.
+kes  Fix tray-monitor so it will speak to new FD.
+ebl  Fix bug with ansi label when volume name length < 6
+ebl  Fix segfault in debug level > 50 with btape.
+ebl  Remove warning message in btape when command is empty.
+kes  Fix Win32 build to pull in new BACULA define.
+13Oct08
+kes  Change IncludeDir to Exclude Dir Containing.
+kes  Implement code to prohibit ExcludeDirContaining in an
+     Exclude section (same for Plugin and Options).  A bit
+     of a kludge with RES_ITEM2 ...
+ebl  Add field to command list to restrict Runscript console
+     command.
+ebl  Use a separate JCR when running Console command with Runscript.
+ebl  Permit to mark version as Beta in some ouputs
+11Oct08
+kes  Add plugin types in jcr.h to reduce need to cast.
+kes  Do better checking of plugin return values.
+kes  Free plugin context after calling pluginFree() as
+     requested by James.
+kes  Allow plugin to call JobMessage with NULL context.
+kes  Do not add plugin to global list if loadPlugin returns error.
+kes  Rework plugin.h a bit to reduce dependence on Bacula.
+10Oct08
+kes  Move generation of bsr file for Virtual Backup to run section
+     so that it is generated just before actually running.
+     Suggested by Graham Keeling.
+09Oct08
+kes  Add malloc and free Bacula entry points for plugins. Increment
+     FD plugin interface version. Create a bacula plugin context 
+     structure to keep track of whether or not the plugin is disabled.
+kes  Apply FileIndex fix for plugin name stream suggested by James.
+kes  List plugins in FD status report when debug > 0.
+08Oct08
+ebl  Add a new VerId variable that is printed in version command.
+kes  Fix migration SQL not to migrate a job that has not terminated.
+     This is a partial fix to bug #1164.
+kes  Sort JobIds returned from db_accurate_get_jobids() to fix Virtual
+     backup start time bug reported by Graham Keeling.
+08Oct08
+ebl  Fix possible bug in cancel_job() with job that are not
+     yet created.
+07Oct08
+kes  Fix bat build for Win32.
+06Oct08
+kes  Copy plugin link field into ffpkt.
+05Oct08
+kes  Integrate patch from Kjetil Torgrim Homme <kjetilho@linpro.no>
+     It provides FileRegex in bsr files and code to collect regex
+     from the user during restore, an Allow Mixed Priorities feature,
+     and documentation for the above.
+ebl  Remove db berkeley from configure process
+kes  Do dirty check on hostname (Linux only) and if not resolvable
+     use localhost as default.
+kes  Increase vtape max block to 20GB.
+04Oct08
+kes  Refactor restore code to create a close_previous_stream(). This
+     This may destabilize the source.
+kes  Implement planned startRestoreFile() plugin call.
+ebl  Remove missing Loaded information from status slots storage command.
+ebl  Fix Console command problem that cancels the job
+kes  Add more plugin restore debug code.
+03Oct08
+kes  Fix plugin_bwrite - plugin-blseek mixup pointed out by James.
+kes  Rewrite plugin restore interface a bit to correspond to how Bacula
+     creates and writes to the restored file.
+kes  Add some DebugMessage() calls to the bpipe-fd.c program.
+30Sep08
+kes  Apply Marco van Wieringen's set of patches, cleans up Migration/Copy
+     Implement 'Pool Uncopied Jobs', allow Solaris Compiler to build
+     Bat; allow add and delete in place of mark and unmark.
+kes  Another attempt to fix the endRestoreFile plugin bug noted below.
+29Sep08
+kes  Apply dbi driver patch from Joao.
+kes  Correct a bug in passing the context to the endRestoreFile() plugin command.
+     Bastien Friedrich reported the bug.
+kes  Create plugin instance only when FD job starts.
+kes  Add new FD plugin event: bEventCancelCommand when
+     a cancel command is issued to the FD.
+28Sep08
+kes  Add cmd_plugin flag to jcr so we can globally know if a 
+     command plugin is running.
+kes  If command plugin running, do not attempt (for the moment)
+     to get Win32 extended attributes.
+kes  Ensure that proper Win32 flags are set in bfile packet
+     if plugin_bopen() works on Win32.
+kes  Remove generated src/plugins/fd/Makefile
+27Sep08
+kes  Implement build and install of bpipe-fd.so plugin.
+kes  Rework the interface that passes packets to the plugin
+     so that the packet is started and ended by the packet size.
+     This allows the driver to do a sanity check.
+26Sep08
+kes  Rework the pluginIO Bacula internal code to enable   
+     proper handling of Win32 error codes from GetLastError.
+kes  Apply Joao's patch to regress startover_libdbi.
+25Sep08
+ebl  Add -B option to dbcheck to get catalog information
+kes  Fix Win32 build to include new library function.
+kes  Remove some old reader/writer code.
+kes  Implement ./configure --with-plugindir=xxx
+ebl  Fix the mysql bug in the new accurate code
+kes  Improve plugin debug. Create plugin test.
+kes  Set main thread specific data to INVALID because it
+     has no jcr. This allows debug output to work correctly.
+kes  Add src/plugins/fd/Makefile to ./configure process.
+kes  Make first cut attempt to correct SQL that computes the current
+     Pool usage.  This is to fix bug #1159.
+kes  Do a bunch of plugin cleanups for Win32 and more careful checking
+     of PluginDirectory and whether or not a plugin was found.
+24Sep08
+kes  This code should fix the race condition that leads to a Director
+     crash at job end time when the job list is updated. This was reported
+     in bug #1162.
+kes  Add more plugin documentation and fix include of config.h for
+     Win32 build (I hope).
+22Sep08
+ebl  Revert to htable instead of rblist
+ebl  Cleanup accurate code (remove tcdbm parts) and use red/black
+     tree instead of htable.
+ebl  Use a dedicate DB link to compute and send the accurate list
+     file to the client.
+21Sep08
+kes  Fix compile errors in filed/fd_plugin.c.
+20Sep08
+kes  Remove all double quotes from SQLite creating script and
+     replace by single quotes as suggested by John Huttley.
+18Sep08
+kes  Apply dbcheck patch from Yuri Timofeev <tim4dev@gmail.com>.
+     It significantly improves the performance of dbcheck for
+     MySQL.
+kes  Fix bad debug code call in src/filed/accurate.c
+17Sep08
+kes  Change two Jmsgs in accurate to Dmsg to reduce unnecessary
+     output. Perhaps we really need to implement M_SAVED.
+16Sep08
+kes  Fix bug #1156 FD crash during processing of Accurate data.
+kes  Tweaks to htable code to improved debugging and make names
+     a bit more meaningful.
+15Sep08
+ebl  Remove time_t from update_stats()
+14Sep08
+kes  Modify the license of the example plugin program to allow
+     it to be used by anyone for making a Bacula plugin.
+kes  Make apply_rp_codes() in bpipe-fd.c be static.
+13Sep08
+kes  Remove Encryption and Accurate lines in vbackup output -- not used.
+kes  Fix subtle bug in vbackup by not changing DEV_RECORD packet.
+kes  Add host name to items printed during dump.
+kes  Make Check File Changes default on.
+11Sep08
+kes  Set the default FD timeout to 3 minutes (previously 30).
+kes  Apply Bastian Friedrich's weird spelling correction patch.
+10Sep08
+kes  Always print Verify hash differences. Rename variable to make the
+     code slightly more readable.
+09Sep08
+kes  Correct tests for MaxFullInterval as reported by
+     Ulrich Leodolter <ulrich.leodolter@obvsg.at>..
+kes  Fix MaxDiffInterval code as well.
+kes  Enable Win32 plugin load code in lib.
+kes  Make Verify code that computes disk checksums use the same
+     algorithm as backup when dealing with sparse files.
+kes  Attempt to run VSS on any systems newer than Vista -- should
+     make it work on Windows Server 2008.
+ebl  Change the new statistic implementation. Remove the UseStatistic
+     directive and add a 'update stats [days=...]' command. You can
+     now decide when copy job records from Job table to JobStat.
+     Statistics are much more accurate with this.
+08Sep08
+kes  Fix SQL case problem that may cause the failure of DiskToCatalog
+     in bug #1149.
+kes  First cut adding SD plugins.
+03Sep08
+kes  Add Slot if it is non-zero to writing bsr file after a
+     backup.
+kes  Change a number of bnet_fsend() into class method calls.
+kes  Begin audit of diff of 2.4 branch to trunk code.
+01Sep08
+ebl  Fix the mysql creation script that double-created an 
+     index of the same field on the Media table.
+     Add an index to on VolumeName to the Media table for mysql.
+30Aug08
+kes  Another try at fixing Vbackup. It looks much better this time.
+     Disable file index sanity check in FD with value stored in
+     attributes record because with Vbackup the File Index gets
+     changed, but not the attributes record.
+     Enhance some debug code.
+     Fix handling of re-indexing records that are copied in Vbackup.
+29Aug08
+kes  Made level_to_str() know about Virtual backup.
+kes  Set correct Virtual backup write pool.
+kes  Fix compile warning in new dbcheck port code.
+kes  Fix migration code broken by previous virtual backup fix.
+28Aug08
+kes  Fix problem of Virtual backup not writing a sequential FileIndex.
+kes  Reset Virtual backup time/date to the value from the last backup.
+kes  Ensure that storage name is passed to SD on read.
+kes  Correct a problem with Level and Virtual backup, rework how
+     bsrs are printed in debug to use standard routine.
+kes  Apply patch from Chris in bug #1133 that provides alternate db port
+     support for dbcheck.
+ebl  Remove catalog dependency from bcopy tool.
+ebl  Modify catalog scripts to have an easier packaging integration,
+     using default variables.
+     Make difference between SQLite3 and SQLite in db_get_type()
+27Aug08
+kes  Apply most of changes in a patch from:
+      Michael Stapelberg <michael+bacula@stapelberg.de>
+      that allow the Bacula FD to compile on IRIX 6.5.
+26Aug08
+kes  Apply patch from Bastian Friedrich that accepts a yes on a
+     delete volume command line.
+kes  Attempt to fix bug #1128 InChanger flag cleared during Migration
+     job when reading from one autochanger and writing to another.
+kes  Minor tweaks (copyright dates convert to use method instead of bnet).
+21Aug08
+kes  Fix NULL Volume error when reading (or Migration or VBackup) must switch
+     drives when no tape is mounted.
+18Aug08
+kes  Add additional info to some SD messages.
+kes  Add fix supplied by Martin Simmons for turning off EOL character
+     in new console multi-command code.
+14Aug08
+kes  Fix a Verify InitCatalog problem where in certain cases
+     a garbage filename may be entered in the verification database.  This 
+     fixes bug #1143.
+13Aug08
+kes  Add VSS 64 bit dll entry point in src/win32/filed/vss_generic.cpp
+     sent in by Riyas Yoosuf.
+12Aug08 
+kes  Fix seg fault in Dir during estimate command with no level value
+     given. This fixes bug #1140.
+08Aug08
+kes  Add message to migration job when the target job is already migrated.
+     This closes bug #1129.
+30Jul08
+kes  Fix Win32 build.
+kes  Raise some restore debug levels.
+kes  Replace off_t by boffset_t where ever I found it.
+28Jul08
+kes  Define a machine dependent ioctl request type for use with 
+     vtape_ioctl().
+26Jul08
+kes  When a migration job actually runs, re-check the Job record
+     and skip if the job is already migrated. This should
+     significantly reduce the problems with bug #1129.
+24Jul08
+kes  Set MALLOC_CHECK_=0 in environment before starting Bacula to
+     turn off glibc checks that prevent getting good dumps.
+kes  Implement console 'wait mount' command. Doesn't yet work.
+kes  Implement timeout=nn on console 'wait mount timeout=nn' command.
+kes  Break the do_swapping into do_unload, do_swapping, and
+     do_load.  It is much more logical that way.
+kes  Implement a set_dcr_from_vol subroutine in acquire.c for
+     reading volumes. This allows the dcr to be refreshed after being
+     zapped when the wrong volume is mounted.
+     This should fix bug #1126 -- During multiple tape restore, bacula 
+     does not ask for physical tape change, but rereads same tape
+23Jul08
+kes  Apply patch submitted for bug #1107 with a small modification.
+     This fixes a bug where bcopy copied too many records.
+kes  Make some tweaks to bsmtp based on patch submitted in bug #1124.
+     This fixes bug #1124.
+kes  Make the default bat restore Pool be Any. This fixes bug #1118.
+22Jul08
+kes  Remove debug statement that crashes the SD at the end of
+     a tape during restore. Fixes bug #1125.
+21Jul08
+kes  Implement Win32 bat changes made to Branch-2.4
+20Jul08
+kes  Tweak separator command in console to start disabled and
+     allow defining no separator character.  Also make code a
+     bit more fault tolerant.
+kes  Make btraceback write the traceback to the working directory
+     before attempting to mail it.
+kes  Add a RFC to Projects.
+18Jul08
+kes  Attempt to implement a kludge to make Qt work with bat
+     on Win32.
+kes  Setup rstorage correctly. Virtual backups are working.
+17Jul08
+kes  Move setting JobLevel and JobType into a method, which should
+     allow completing Virtual Backups.
+kes  Fix verify jobs to work again.
+16Jul08
+kes  Virtual Backup tweaks -- it is close to working.
+15Jul08
+kes  Ensure that SD tried to mount a volume not in an autochanger
+     at least once before asking for operator intervention.
+kes  Make SD aware of Virtual Backup jobs.
+kes  Add VirtualFull for bat.
+kes  Changes to get read storage correct for Virtual Backup.
+14Jul08 
+kes  Remove old code from label.c
+kes  Split display_display_info() out of write_bsr_file()
+kes  do_vbackup_init() working -- i.e. bootstrap file built.
+kes  Change Bacula trademark owner from John Walker to Kern Sibbald
+kes  First non-working cut of vbackup
+kes  Correct FD heartbeat code to use volatile variable accessed by
+     two threads.
+kes  Zero thread id with memset if on Win32 in case it is a struct.
+kes  If cannot create JobMedia record, continue to try to write eof
+     and clean up in block.c
+12Jul08
+kes  Add code to interface OpenSSL to new Win32 pthreads code which
+     used a structure for thread_t.
+09Jul08
+ebl  tweak bat for win32 compilation
+08Jul08
+ebl  Remove tokyo cabinet from the source
+ebl  Update configure/autoconf to support berkeley DB
+ebl  Add a sort to db_get_file_list() to improve bsr construction time.
+07Jul08
+kes  Add a mtx-changer.conf file that is not overwritten during
+     an upgrade. It fully configures the mtx-changer script.
+kes  Clear in-use bit on vol when unused while swapping.
+06Jul08
+kes  Remove sleep at end of ./bacula
+kes  Clear hash packet for hardlinked files correctly. This corrects
+     a long standing bug where hardlinked files selected individually
+     would occasionally not be restored.
+05Jul08
+kes  Apply Eric's patch to ensure that autoprune does not return
+     a Volume not in the autochanger unless requested to do so.
+kes  Correct bat restore display of multiple drives. This fixes    
+     bug #1117.
+kes  Do find_a_volume() each time an unload is done. This
+     fixes the failure of maxvol2-test.
+04Jul08
+kes  Add some SD debug code.
+kes  Do find_a_volume() each time an unload is done.
+kes  Apply Joao's DBI patch that adds easier configuration of DBI drivers,
+     and adds --with-db-port to ./configure.
+kes  Use Qmsg() in job.c watchdog callback.
+03Jul08
+kes  Release main control rwlock if ABORTing.
+kes  Make watchdog connect timeout queue messages rather than sending
+     directly to avoid lock conflicts with the real thread.
+kes  Add const char in dbd.c to avoid compiler warnings.
+kes  Fix python compiler string warning. Note, IMO the GNU C++ 
+     compiler guys have made a *very* bad change to their compiler.
+     They now force all strings to be 'const' unless you explicitly
+     cast them, which is extremely ugly and ruins nice code as well
+     as creates a lot of useless work.
+02Jul08
+kes  Fix mtx-changer to detect both versions of Ubuntu (Debian)
+     mt. This fixes bug #1116.
+kes  Add const in python files to reduce compiler warnings.
+     This may have to be backed out because of later compiler
+     strict checking.
+kes  Fix failure of 2drive-concurrent-test. Always read label;
+     clear_unload() only after drive is defined in acquire_for_read().
+27Jun08
+kes  Generally clean up the manual tape loading code. The main
+     conceptual change is that when a volume is marked to be unloaded,
+     its volume name is retained, and it is only marked as unloaded
+     when either the autoloader says it is unloaded or another tape
+     is read on that drive.                                     
+25Jun08
+kes  Add debug code and refactor subroutine in stored/mount.c
+kes  Fix format problem in bscan output reported in bug #1105.
+ebl  Fix get_next_volume_for_append logic with autochanger
+      - use pruned volumes if found
+      - don't reset the inchanger flag after getting a recycled volume
+        or a scratch one
+     Fix recycle_oldest_purged_volume to take InChanger flag in account
+23Jun08
+ebl  Add mmap/unmmap implementation for tokyodbm under win32
+22Jun08
+kes  Make first step toward eliminating globals from config
+     scanning. Also should be a workaround for FORTIFY_SOURCE
+     GNU C bug -- fixes bug #1042.
+21Jun08
+kes  Apply duplicate job tests to restarted jobs.
+kes  Copy more data when restarting a job so that run
+     overrides are kept. This should fix bug #1094.
+20Jun08
+kes  More word alignment cleanup.
+kes  Fix bug where SD did not ask operator if the device could not
+     be opened. Reported by Eric.
+19Jun08
+kes  Add dbuser to DIR conf file (replaces user).
+kes  Add --with-db-password to ./configure
+kes  Fix regress to handle db_password.
+ebl  Add new 'status storage slots' that list autochanger
+     content.
+ebl  Update vtape driver to compile only under Linux.
+ebl  Fix a bug when restoring with a wrong mediatype.
+18Jun08
+kes  Eliminate ints from conf files and structures to avoid
+     word alignment problems
+17Jun08
+kes  Fix bug reported by Scott Barninger where the bacula script
+     refers to scripts in the wrong directory. Needed to meet the
+     requirements of recent FHS location changes.
+ebl  Disable vtape for FreeBSD.
+15Jun08
+ebl  Modify disk-changer to check if slot contains something before
+     loading it.
+14Jun08
+ebl  Fix vtape on win32 and debian.
+ebl  Fix autoselect patch (cause segfault).
+13Jun08
+ebl  Fix autoselect option broken for a while. Fix #1089. Need some
+     work with StorageId to be able to use a particular drive in a 
+     autochanger.
+09Jun08
+ebl  Rename vtape to vtape.
+ebl  Update vtape driver.
+08Jun08
+ebl  Modify vtape driver to avoid sparse file.
+kes  Add make clean of qt-source directory during ./configure
+kes  Store last block number written to tape in DEVICE and
+     use it for testing for correct last block on EOT.
+
+28Dec08
+Release Version 2.4.4
+27Oct08
+Release Version 2.4.3
+26Jul08
+Release Version 2.4.2
+07Jul08
+Release Version 2.4.1
+04Jun08
+Release Version 2.4.0
+25Jan08
+Release Version 2.2.8