]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/ChangeLog
ebl fix segfault with debug mode
[bacula/bacula] / bacula / ChangeLog
index 653ad4c67419abf35b6d035d3bc73b6a49b47f4d..fb904ed42f18c426aa10f7fa41adcc85ddcd8da8 100644 (file)
+              Technical notes on version 2.5.x
 
-Released as 1.38.0 28Oct05:
-
-Changes to 1.37.42:
-26Oct05
-- Don't overwrite pthreadVCE.dll or msvcr71.dll during Win32 
-  install.
-- Update README.win32 instructions.
-25Oct05 
-- Make db_get_job_record() return Name so that the ACL
-  can be checked.  Fixes bug #446
-22Oct05
-- Insure that all the SD tools init the Autochanger
-  resources.
-
-Changes to 1.37.41:
-22Oct05
-- Print error message if no Changer Command found.
-- Apply fix from Martin Simmons to clear structure before
-  using it in IPADDR -- fixes a bind() bug on AIX.
-14Oct05
-- Add NetBSD fstype patch from Geert Hendrickx <ghen@telenet.be>
-- Update num_parts only when writing to DVD.
-13Oct05
-- Fix error conditions in bpipe.c DVD routine (terminate buffer).
-- Use a bigger buffer 32K as suggested by Arno in bpipe.c.
-- Increase dvd mount timeout with patch from Arno.
-- Modify DVD code so that it keeps a state flag that indicates
-  when the freespace variable is valid. freespace_errno, now has
-  either 0 or an errno. There are no negative errnos.
-- Create is_freespace_ok() to test state flag. Also, set_freespace_ok()
-  and clear_freespace_ok(). Modify code to use them.  This
-  simplifies a bit the logic of the freespace code.
-- Edit 64bit debug values correctly in dvd.c
-- Fix %e variable to check num_parts rather than part.
-- Use static buffer instead of static buffers for FI_to_ascii()
-  and stream_to_ascii() debug routines in SD. This is to prevent
-  possible race conditions between two threads (possibly Phil's
-  unmount problem).
-12Oct05
-- Add a .dir command that separates arguments with commas. It
-  is intended to be used in the tree routines to get a 
-  machine readable output for GUIs like wx-console.
-- Make configure set dvd-handler to have execute permission.
-- Install dvd-handler as is done for other dvd-xxx scripts.
-- In block.c call dvd_write_part() to write last part rather
-  than dvd_open_next_part().
-- Prefix some DVD subroutines with dvd_
-11Oct05
-- Add extra debug to Update media error for VolFiles decrease
-  error.
-- Do not update dev->file on set_ateof() for non-tape.
-10Oct05
-- Mark DVD volume in error if part cannot be written.
-- If a DVD is mounted, unmount it before asking operator
-  to mount an different one.
-- Add Arno's dvd-handler script to the scripts directory and
-  integrate with configure.  It replaces both existing scripts.
-- Make default schedule start at 23:10
-- Implement gui release in Makefile. It creates two .tar.gz
-  bacula-web and bimagemgr.
-08Oct05
-- Add README plus tar release to gui project.
-- Manual documentation
-- Tweak bacula.man doc
-- Add PRAGMA synchronous = NORMAL; to SQLite3 tables. This
-  speeds up SQLite3 so it is only about 10% slower than version
-  2.xx.  Thanks to Russell Howe for this tip.
-- Add msvcr71.dll to pebuilder .inf file as it is needed by
-  Bacula FD.  Thanks to Brandon for passing this fix to Scott.
-05Oct05
-- Add VolumePurged method to Python JobEvents class.  Fixes
-  bug #428 (I think).
-- Add JobId index to File table for MySQL.
-- Correct tray-monitor crash of bacula-dir. qstatus_cmd()  
-  code referenced the wrong pointer. Fixes bug #438.
-- Add bacualnovss.mak file from Martin.
-- Remove Pool from restore string in wbrestorepanel.cpp. Patch
-  from user for bug #433.
-- Correct code in wbrestorpanel.cpp with misplaced parens. Patch
-  from user for bug #431
-- Correct printing filenames/date/times in wbrestorepanel.cpp due to bad
-  column alignment. Patch from user for bug #432.
-
-Changes to 1.37.40:
-01Oct05
-- Add fix to compat.h supplied by Martin Simmons that permits
-  building the Win32 FD without VSS.
-29Sep05
-- Bring cats/bdb_x.c routines up to version 1.37 (return values
-  are different).
-28Sep05
-- Integrate libwrap patch from Szechuan Death. They should
-  also fix bug 423.
-- Clean up patches directory for next release.
-- Add PS variable in bacula.in script as recommended by a user.
-- Correct mtx-changer.in so it only creates a temp file when
-  actually needed.
-- Add patch supplied by user in a bug report to fix gnome2
-  console buttons.
-- Add patch from Peter Eriksson <peter@ifm.liu.se> to correct
-  NLS error in tray-monitor.c
-26Sep05
-- Add code to catalog_update to detect NULL db pointer.
-- Remove char *msg argument from catalog_request and   
-  catalog_update().
-24Sep05
-- Fix mode change open in btape.c
-- Use nonblocking opens on Linux only.
-- Move set_blocking code for tapes into method to
-  simplify main line code.
-- Cleanup the code for ensuring we advance tape on fsf.
-  This should fix IBM problems -- patch from Adam Thorton
-  was very helpful.
-- Remove test for BMT_EOD in fixup_device... this eliminates
-  need for status_dev() routine.
-- Before doing label ensure device is in read-write mode.
-
-Changes to 1.37.39:
-20Sep05
-- Tweak daemon.c berrno, copyright.
-19Sep05
-- Fix handling of temp file in mtx_changer.in, reported as
-  a security bug, but it is not really.  Bug #422
-- Fix security problem of handling temp file in randpass.
-  Bug #422.
-- During label/relabel, add new_volume to VOLRES list in SD.
-18Sep05
-- Apply Landon's patch for the TLS ANS1 API change.
-- Remove old code.
-- Make single exit path in first_open_device().
-17Sep05
-- Make new_volume walk through all Vols looking for dev 
-  to release.
-16Sep05
-- Make "quit" command in console always allowed.
-- Remove the storage list between each console command to
-  keep Dir from remembering a previously selected SD.
-- Add code to reservation VOLRES subroutines to try to ensure
-  we don't end up with two Volumes on the same drive.
-- Simplify the mutex code in VOLRES a bit to reduce the chance
-  of error.
-15Sep05
-- Apply Nicolas' dvd-freespace.in patch.
-- Make sure SQL table names are not translated.
-- Eliminate incorrect message saying barcodes not
-  found in "label barcodes" -- fixes bug report.
-
-Changes to 1.37.38:
-07Sep05
-- Add ability to have passwords on backup of catalog as
-  alternate 3rd argument. Submitted by Andrew Ford
-  <A.Ford@ford-mason.co.uk>
-- Turn off TapeAlert by default if user enables a Device
-  and add a note to install mtx.
-04Sep05
-- Fix out of order volumes during restore.
-
-Changes to 1.37.37:
-30Aug05
-- Final tweaks to build Win32.
-- Enable debug code in ua_label.c
-- Remove devices from the Volume list even if no
-  Volume is in drive.  Hopefully this fixes Arno's problem
-  of multiple volumes listed in the same drive.
-28Aug05
-- Apply Landon's patch for TLS default values.
-- Correct LOCALEDIR problem in build of Win32
-- Correct ssize_t problem in build of Win32
-- Add code to llprint pools and volumes to debug next item.
-- From bug report, fix resetting Pool defaults in Volume. It
-  was a typo "Max" was missing in several places.
-- Don't allow translation of database Volume Status values.
-
-Changes to 1.37.37 released 26 Aug 05
-24Aug05
-- Ensure that the drive is closed before calling the
-  mtx-changer script so that the script can access the drive.
-- Add drive name to reserved Volume list printout in SD.
-23Aug05
-- Fix bug in acquire.c that incorrectly reported volume
-  busy.
-- Add additional debug code and messages in reserve.c
-- Eliminate unwanted warning message in reserve.c
-
-Changes to 1.37.36 released 22 Aug 05
-20Aug05
-- Landon's fix for NLS detection
-- Eliminate incorrect compiler warning on FreeBSD. 
-- Move Win32 errno message build into berrno constructor.
-- Minor Win32 tweaks
-19Aug05
-- A number of minor Win32 fixes.
-- Remove a PostQuitMessage() as suggested by Thorsten so that
-  BartPE restore can work correctly.
-- Fix for create JobMedia so that VolIndex remains valid even
-  during a delete Job or pruning -- bug 402.
-- Minor tweak for Win32 build.
-18Aug05
-- Win32 fix -- remove debug O_NONBLOCK code.
-- Fix bug 399 -- make_catalog_backup does not work for sqlite3
-- Implement unloading a volume in a different drive if it
-  is needed in the current drive.
-- Implement search for unused autochanger drive.
-- Implement search for exact Volume in reservation before
-  other searches.
-- Fix picking up drive in Dir so that it is not done in
-  the status command.
-- Eliminate double check on "loaded" for autochanger.
-17Aug05
-- Start coding better reservation algorithm
-- Always look for slot for label command.
-- Add more debug code for autochangers.
-- Apply fix from Stephan Leemburg <sleemburg@jvc.nl> for
-  improper scanning of schedule resource:
-  Run = Level=Full Pool=Catalog daily at 1:20
-- Apply patch from Chris Lee <labmonkey42@gmail.com> for 
-  adding --enable-build-dird --enable-build-stored.
-- Tweak datadir definition in configure.in
-16Aug05
-- Fix bug that missed drive=nn specification.
-- Eliminate nonblocking kludge in heartbeat of FD as
-  it caused high CPU usage.
-- Pickup loaded slot when doing open() of tape drive.
-- Make autochanger reservation code go through full list
-  first pass until exact match found.
-15Aug05
-- Fix how FileSet is saved in job record to correct continual  
-  Full save.
-- Make datadir print on config.out listing.
-- Move get FileSet record up in backup init to eliminate continual
-  Full save seen by Peter Sjoberg.
-- Add VolumeName to read-only Python variables.
-- Add VolumePurged event for Python.
-- Suppress /dev/ Filesystem change prohibited INFO messages.
-- Do not delete FT_RAW files before restore (allows FIFOs
-  to be used for restore).
-13Aug05
-- Add drive specification to mount, unmount, release, label,
-  and relabel for Autochangers.  Note Dir<->SD protocol has
-  changed.
-
-Changes to 1.37.35:
-12Aug05
-- Disable parts of NLS as the configure does not work here.
-- In job backup init (backup.c) define definitive Job level and
-  since time, *then* apply Job Pool override selection if any.  
-11Aug05
-- Modified bconsole script so that it is improperly
-  installed, it will refuse to execute.  This avoids
-  recursive call loops.
-
-Changes to 1.37.34:
-06Aug05
-- Apply David's ACL fix to src/filed/acl.c
-05Aug05
-- Apply patches sent by David Duchscher <kreios@gmail.com> for
-  making ACLs work on MacOS X and FreeBSD.
-04Aug05
-- Apply patch in bug#397 that improved configure
-  - find readline under $with_readline/include/readline
-  - no libutil under Solaris
-  - no need for -ldl under Solaris 
-- Make reservation system single threaded during the
-  search to avoid two threads competing for the same
-  resource.
-- Correct a return code in find_suitable_device_for_job()
-  Possibly cause of "busy writing to another volume".
-03Aug05
-- Modify open() for tape so nonblocking really works.  
-- Use fcntl() to reset blocking status rather than close()
-  and reopen the drive.
-- Make sure dev->open() is always called so that any change
-  in read/write permissions will occur.
-- Open drives initially in daemon in read-only mode.
-- Ensure that each time the VolHdr.VolumeName is zapped
-  or changed that free_volume() is called on the old name.
-
-Changes to 1.37.33:
-03Aug05
-- Require 5 arguments to mtx-changer except list and slots
-- Turn -EPIPE status returns from bpipe to ETIME
-- Include Slot in SD status output 
-- Do not term_dev() during initialization in SD if the device
-  could not be opened.  In the case of a tape drive, there may
-  be no tape in the drive.
-
-Changes to 1.37.32:
-02Aug05
-- Correct PostgreSQL database scripts as suggested by a user.
-- Add additional info to FATAL message generated when a device
-  is busy writing to another volume.
-- Suppress an inappropriate NULL Volume name message after a cancel.
-- Correct a warning message in reserve.c
-29Jul05
-- Apply user's patch to make mutiple modifiers for times
-  work correctly.
-- Make read_dev_volume_label() handle ANSI/IBM labels
-  correctly -- ie space over any label at the beginning
-  of the tape.
-28Jul05
-- Make ANSI/IBM writing of HDR1/2 labels ignore any
-  errors if at end of tape.
-- Apply Martin's patch to improve Python detection in
-  configure.in
-- Temporarily turn off disk seeking until I find the
-  cause of the problem.
-27Jul05
-- Add OSF1 patch supplied by user.
-- Use number of files selected from write_bsr() only
-  if it is not defined.
-- Explicitly seek to end of file when getting size for
-  restore test.
-- Correctly set EndBlock position in JobMedia record
-  for files.
-- Remove unnecessary set StartBlock in bscan. Caused bscan
-  regression error.
-26Jul05
-- Modify mtx-changer to wait a maximum of 300 seconds.
-- Do restart of failed jobs only for Backups job types.
-- A number of DVD updates from Nicolas.
-24Jul05
-- Turn off old service helper code in Win32.
-- Correct Messages bug found by Phil in stored.
-23Jul05
-- Complete (almost) documentation of 1.38.
-- Add error messages for error conditions with VSS.
-- Fix additional problems with VSS backup that I introduced.
-Changes to 1.37.31:
-22Jul05
-- Correct compiler complaints in wx-console and tray-monitor.
-- Correct VSS problems recognizing c:
-- Add VSS before job status
-- Fix output of status from being one big line.
-- Change cd xx; make to cd xx && make as suggested by Phil.
-- Cleanup projects file
-- Remove unnecessary casting of FF_PKT in filed.
-- Apply Thorsten's bugfix for vss_generic.cpp
-- Add check for df path for dvd_freespace
-- Use df to get space used on DVD.
-- Change sense of flag indicating erase DVD or not before writing.
-- Fix bpipe so that it never modifies the result pointer.
-- Replace more dev_name by print_name().
-- Rewrite edit_device_codes_dev() so it does not overwrite the
-  supplied buffer.
-- Update printing of labels (for bls) so that critical information
-  is printed (Job name and timestamp).
-- Cleanup old spool files when starting the SD.
-- Modify vss.cpp to allow C: as a path name.  Otherwise VSS
-  doesn't work when only a drive name is given.
-- Modify vss.c to eliminate double / in filenames.
-- Update doc -- particularly the restore chapter.
-18Jul05
-- Make all files in working directory have .xxx at end.
-- Work on DVD writing.
-- Fix keepatime bug (bugs database).
-- Move Python variables from Job to Bacula. They are
-  DirName, Version, ConfigFile, and WorkingDir
-- Fix delete of bootstrap to only occur on Bacula created
-  filenames.
-- Allow cancelling a Job name that is not active. It is
-  sent to the daemons.
-17Jul05
-- Fix name space pollution by OpenSSL 0.9.8 reported by
-  Matthias Kurz -- applied his patch.
-- Fix bpipe.c so that it does not modify results pointer.
-  ***FIXME*** calling sequence should be changed.
-- Remove some remaining references to dev_name.
-- Fix calls to mount_dev() and unmount_dev() to
-  correspond to returned value (bool instead of int).
-- Try without success to make DVD writing work.
-== Nicolas
-15Aug05
- - Convert dvd-writepart to Python.
- - Increase delay from 3 seconds to 5 seconds between SIGTERM and SIGKILL when
-   killing external programs.
-13Aug05
- - Add gettext macros in autoconf/gettext-macros.
- - Modify how localedir is set in configure.in.
- - Remove setlocale check (useless).
-10Aug05
- - Mark translatable strings in all source files.
-08Aug05
- - Create French and Italian translation files (fr.po, it.po).
- - Add support for translation in configure and Makefiles.
- - Update autoconf/aclocal.m4 so it is automatically created with aclocal
-   (Note: autoconf/gnome-macros is not used anymore, it may be removed).
-30Jul05
- - Fix src/lib/bpipe.c:run_program and run_program_full_output to detect if the watchdog
-   killed the program, and return an error if it is the case.
-26Apr05
- - Modify parse_config to get a LEX_ERROR_HANDLER as a parameter 
- - lex_open_file now returns NULL if the file can't be opened. All calling functions have
-   been adapted.
- - Remove set_exit_on_error function
-07Apr05
- - Fix "unknown device type" problem with DVD devices.
- - Fix crash when there is no media in the DVD drive.
-09Jan05
- - Update the documentation and ReleaseNotes.
-05Jan05
- - Add FreeSpaceCommand in Device (SD configuration file) and implement it.
- - Some modifications (again) on how guessed volume names are handled (now it should work).
- - Part files on the hard disk are removed if they are empty.
-04Jan05
- - Major fixes on how guessed volume names are handled.
- - Minor fix in src/stored/append.c.
- - Replace, when possible, POOLMEM by POOL_MEM in the new code of src/stored/dev.c.
- - New script, scripts/dvd-freespace, which gets the free space available on a writable DVD.
-03Jan05
- - Add WritePartAfterJob directive in Job resource (Director)
- - Add WritePartAfterJob directive in Schedule Resource (Director)
- - Implement these new directives
-02Jan05
- - New function, open_guess_name_dev in src/stored/dev.c, which tries to guess the volume
-   name of a mounted device, so the label can be read.  
- - New script, scripts/dvd-writepart, which write parts to DVD+/-R(W).
- - Removed WriteFirstPartCommand directive in Device (SD configuration file).
- - Use readdir_r instead of readdir (src/stored/dev.c:open_guess_name_dev).
-01Jan05
- - Add RequiresMount, MountPoint, MountCommand, UnmountCommand directives in Device (SD configuration file).
- - Implement these directives (volumes can now be restored from a manually written DVD). 
- - Add WriteFirstPartCommand, WritePartCommand directives in Device (SD configuration file).
- - Implement these directives (DVD writing now works).
- - New function run_program_full_output in src/lib/bpipe.c.
- - Lots of bugfixes and cleanups in the new code.
-29Dec04
- - Add VolParts field in Media table
- - Add MaximumPartSize directive in Device (SD configuration file)
- - File Volumes can now be splitted in multiple files ("parts")
- - Fix SQL error in sql_list while doing "llist jobmedia"
-
-Changes to 1.37.30 released 16 July 2005:
-14Jul05
-- Fix "dir" command scanning field misalignment in
-  wx-console.
-- Switch to using the wxWidgets Unicode library.
-- Include msvcr71.dll in distribution.
-- Add VSS to status line in Win32 FD if enabled.
-- Get VSS build scripts working with Thorsten's help.
-- Unlink the bootstrap file after sending it to
-  the FD.
-- Remove sending include/exclude lists to the FD during
-  a restore -- deprecated code.
-- Cleanup the bootstrap files in the FD.
-
-Changes to 1.37.29:
-14Jul05
-- Remove old commented out code from configure.in
-- Add baculavssfd.mak file for building VSS version of
-  Win32 FD.
-- Correct date (year) in vss.cpp and vss_generic.cpp
-13Jul05
-- I finally found and squashed the elusive SD crash.        
-  I needed to initialize the used volume list before
-  firing off the device initialization thread.
-Changes to 1.37.28:
-11Jul05
-- Make sure that bpipe results are zapped even on
-  error return.
-- Lots of documentation.
-- Do not prune volume marked as append when needing a
-  new Volume.
-- Print a warning message in SD if a non-used Volume
-  is specified and autolabel not turned on.
-- Correct a bug in chksum.c concerning SHA1 signatures 
-  (an * should have been & when checking for a bit flag).
-- Print File:Block for all label records in label.c -- concerns
-  primarily bls when doing Job listings (-j).
-- Correct is_volume_in_use() to return false if testing
-  on the same device where the Volume is already mounted.
-- Define a init_done flag in the SD that is set when the
-  devices are initialized and make users connecting wait.
-  This prevents useless connect failure warning messages.
-- Do additional device locking in ask_op_to_mount_volume()
-  to prevent race conditions with a user labeling a Volume
-  or autolabeling.
-09Jul05
-- Add a test for error return from bnet_wait... in heartbeat.c
-  in FD to avoid CPU loop.
-- Implement TLS in gnome console and wx-console.
-
-Changes to 1.37.28:
-08Jul05
-- Correct a NULL pointer reference in the mount command.
-- Correct typo in Copyright
-- Add detection of EOM for IBM drives (i.e. errno == ENOSPC)
-07Jul05
-- Remove temp file created in mtx-changer script.
-- Make fsf_dev() into a class method.
-06Jul05
-- Modify mtx-changer.in script to return slot:barcode for
-  Volumes that are loaded in the drives.
-- Correct some more places where dev->is_blocked() needs
-  to be checked in dircmd.c in SD.
-- Update doc.
-05Jul05
-- Add code to ensure that reserved but unused volumes
-  are freed. 
-- Correct how Volumes are mounted and handled so that the SD
-  does not get stuck if multiple volumes are used (recycling,
-  relabling, ...)
-- Correct bug where you could relabel a volume while it
-  was being acquired -- created chaos.
-04Jul05
-- Correct seg fault caused by open() calling sequence change.
-03Jul05
-- Add new rc-chio-changer script by Rudolf Cejka to 
-  examples/autochangers
-- Apply Rudolf's changes to bacula.in
-- Expand the space from 8 to 10 characters in editing
-  file sizes for restore and dir of catalog, otherwise
-  GB sizes are truncated -- fixes bug report.
-- Modify wx-console to know about 10 character widths.
-- Allow decending into top level directory if "recurse=no"
-  is set.  Fixes a bug report.
-- Install pthreadVCE.dll when installing console or wx-console
-  on Win32 systems. Fixes bug report.
-02Jul05
-- Tweak dvd-writepart script to prevent door from opening/closing
-  so much.
-- Remove GROUP BY in several PostgreSQL commands to prevent error.
-  Resolves bug report.
-- Ensure that < as first character of filename list is not treated
-  as a directory for restore.
-- Add debug to heartbeat in FD as it seems to go into an
-  infinite loop from time to time during SD failure in DVD writing.
-- Add more debug code to dvd writing.
-- Attempt not to destroy existing fs on DVD. 
-30Jun05
-- Detect device mounted for DVD and suppress be sure to 
-  mount message after label.
-- Set Cleaning tape status to "Cleaning" and force no
-  MediaType.
-- Get DVD writing working with new standard Bacula open()
-  code.
-- Rename get_filename() to make more sense.
-- Detect "is already mounted on" on mount command so to avoid
-  error if device is already mounted.
-- Eliminated guess_name() code. It may be necessary to
-  add it back later.
-- Eliminate seg fault from printing invalid results.
-- Make dvd_write_part() bool.
-
-29Jun05
-- Attempt to fix DVD writing by eliminating a number of the 
-  DVD subroutines to simplify.
-- Modify DEVICE::open() to take dcr as first argument. This
-  will permit providing more info to DVD opening.
-- Fix scanning for time/size items which in some cases
-  ate the next line.
-- Eliminate read_dvd_volume_label().  New code (not yet written)
-  *must* open dvd appropriately before calling 
-  read_dev_volume_label.
-- Modify open_first_part() open_next_part() to take DCR as 
-  argument.
-- Make label command from console work on DVDs.
-- Make mount command from console work on DVDs.
-  Unmount does not work yet.
-
-Changes to 1.37.27:
-27Jun05
-- Add Database vendor to CatalogRes tuple for Python.
-- Update doc
-- Implement DoesVolumeExist(Vol) for Python.
-- Prevent python command from seg faulting if no arg given.
-
-Changes to 1.37.26:
-26Jun05
-- Add set_mode method in DEVICE.
-- Correct set_mode method in DEVICE
-- Add more DVD debug info 
-23Jun05
-- Check for incorrect duration and size modifiers in conf files.
-22Jun05:
-- Make Version a tuple (version, build-date)
-- Add CatalogRes tuple (DBName, Address, User, Password,
-    Socket, Port)
-- Add Version, ConfigFile, and WorkingDir as Python attributes
-  in the Director.
-- Implement code (principally for Win32) that on failure to
-  create a file, it will cd into the directory and attempt
-  to create the file using a relative path. This avoids creating
-  files with paths which fail on Win32.
-- Fix parsing of times and sizes with decimal numbers.
-- Make free_volume_list() in SD work if vol list is not
-  initialized (./bacula-sd -t).
-21Jun05:
-- Add debug error printout when open() fails.
-- If open() of DVD fails in mount.c, return false.
-- Split open() code for DVD into separate subroutine in dev.c
-
-Changes to 1.37.25 released on 20 Jun 05:
-20Jun05:
-- Fix bug where Storage daemon gets confused about what
-  tape is mounted. (one line of code was inadvertently 
-  deleted).
-
-Changes to 1.37.24:
-18Jun05
-- DVD writing/reading seems to be mostly working.
-- Set execute bits on dvd-freespace and dvd-writepart
-- Make dvd-freespace use existing dummy file.
-- Modify dvd-freespace to pickup size from Track Size:
-16Jun05
-- Add Date, Job, level to updates to .bsr file in 
-  dird/backup.c
-- Add debug info to dvd-freespace.in
-- Fix hard coded bacula.sql in make_catalog_backup reported
-  by a user.
-- Make sure a verify volume to catalog never reports an error
-  if there are zero files to verify.
-- Remove confusing debug info in filed/backup.c on network
-  error.
-- Make sure output from console is not sent to system log.
-- Convert open_dev() into a class method.
-- Change VolHdr.VolName to VolHdr.VolumeName.
-- Add a flag in the device state word to indicate that
-  we found Media in the drive (DVD). 
-- Make mount_dev() and unmount_dev() return bool.
-
-Changes from Nicolas Boichat:
-26Apr05
- - Modify parse_config to get a LEX_ERROR_HANDLER as a parameter 
- - lex_open_file now returns NULL if the file can't be opened. All calling functions have
-   been adapted.
- - Remove set_exit_on_error function
-07Apr05
- - Fix "unknown device type" problem with DVD devices.
- - Fix crash when there is no media in the DVD drive.
-09Jan05
- - Update the documentation and ReleaseNotes.
-05Jan05
- - Add FreeSpaceCommand in Device (SD configuration file) and implement it.
- - Some modifications (again) on how guessed volume names are handled (now it should work).
- - Part files on the hard disk are removed if they are empty.
-04Jan05
- - Major fixes on how guessed volume names are handled.
- - Minor fix in src/stored/append.c.
- - Replace, when possible, POOLMEM by POOL_MEM in the new code of src/stored/dev.c.
- - New script, scripts/dvd-freespace, which gets the free space available on a writable DVD.
-03Jan05
- - Add WritePartAfterJob directive in Job resource (Director)
- - Add WritePartAfterJob directive in Schedule Resource (Director)
- - Implement these new directives
-02Jan05
- - New function, open_guess_name_dev in src/stored/dev.c, which tries to guess the volume
-   name of a mounted device, so the label can be read.  
- - New script, scripts/dvd-writepart, which write parts to DVD+/-R(W).
- - Removed WriteFirstPartCommand directive in Device (SD configuration file).
- - Use readdir_r instead of readdir (src/stored/dev.c:open_guess_name_dev).
-01Jan05
- - Add RequiresMount, MountPoint, MountCommand, UnmountCommand directives in Device (SD configuration file).
- - Implement these directives (volumes can now be restored from a manually written DVD). 
- - Add WriteFirstPartCommand, WritePartCommand directives in Device (SD configuration file).
- - Implement these directives (DVD writing now works).
- - New function run_program_full_output in src/lib/bpipe.c.
- - Lots of bugfixes and cleanups in the new code.
-29Dec04
- - Add VolParts field in Media table
- - Add MaximumPartSize directive in Device (SD configuration file)
- - File Volumes can now be splitted in multiple files ("parts")
- - Fix SQL error in sql_list while doing "llist jobmedia"
-
-Changes to 1.37.23:
-- Renamed to make unique version for open_next_part()
-  changes.
-
-Changes to 1.37.23:
-- Renamed to make unique version for open_next_part()
-  changes.
+General:
+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.
 
-Changes to 1.37.22:
-14Jun05
-- Fix the same state variable problem in open_next_part().
-- C++ify the SD code a bit more.
-13Jun05
-- Add more debug code and clarify debug code for DVDs.
-- Do not save and restore state in open_first_part() 
-  since state should be properly set after open_dev().
-- Make default mandir /usr/share/man
-- Install Bacula man page.
-- Implement passing of FileSet Enable VSS to FD.
-- Move main body of reserve drive code into subroutine
-  so that it can be called multiple times.
-12Jun05
-- Eliminate getpass() for Win32 builds in console as the
-  function does not exist.
-10Jun05
-- Correct some reservation problems in SD when no devices
-  are available.
-- Start removing #ifdef HAVE_TLS by sneaky tricks.
-- Begin implementation of TLS in wx-console
-- Remove ignoring SIGCHLD from console.
-- Rework the dlist binary search routines for implemenation
-  of the Volume reservation code -- make it more general.
-- Strip double slashes // from Win32 filenames in an attempt
-  to resolve restore problems on some systems.
-- Fix a minor bugs in the trace code that caused the first
-  line output to be lost.
-- Implement a good first cut at adding Volume reservation code
-  to the storage daemon (in file reserve.c).
-- Remove old unused code from the tree.c routines.
+Release Version 2.4.0:
+04Jun08
+kes  Fix Win32 build.
+03Jun08
+kes  Make sure to clear JS_WaitMedia when operator mounts a Volume.
+     This fixes bug #1095.
+31May08
+kes  Add create_postgresql_database.sql to Win32 installer. Should 
+     fix problem reported by Juilio Monteiro.
+kes  Get correct slot when auto unloading a device. This fixes bug
+     #1086.
+30May08
+kes  Fix multiple media restore.
+kes  Make DEVICE Slot private and access it via a method.
+     Allows better control over when it is set and cleared.
+kes  Fix possible seg fault if SQL error.
+28May08
+kes  Add Martin's fixes to argument scanning for the estimate   
+     command. This fixes bug #1093.
+kes  Add debug code to SD.
+kes  Fix renaming a Volume, which used the wrong Volume name.
+26May08
+kes  If operator has rewind tape, print warning, release tape and
+     try once more. If tape is positioned somewhere, something went
+     wrong, so mark the tape in error and try once more. Previously
+     this error was fatal, now it produces an error message.
+kes  Ensure correct volume name displayed during restore
+kes  Ensure that Volume is mounted for restore.
+25May08
+kes  Fix a few more Coverity reported problems.
+24May08
+kes  Apply Allan Black's status dir job count patch.
+ebl  Add information about IMPORT/EXPORT slots in mtx-script.
+kes  Enhance a couple of SD debug messages.
+kes  Tweak unload flag setting and ensure it is set during swap.
+23May08
+ebl  Fix #1091 about bad output in estimate command.
+21May08
+kes  Modify autochanger locking to attempt to avoid race
+     conditions. 
+kes  Make sure device not busy before doing label command.
+kes  Display open() errors except when polling. Previously too
+     many were suppressed.  This should fix bug #1070.
+kes  Fix Win32 reparse points. Bacula will not recurse into any
+     reparse point directory, including mount points, unless the
+     directory is explicitly mentioned at the top level (same as
+     with Unix).  A file that is linked to another file will be
+     backed up -- much as Unix does for hardlinked files.
+     This fixes bug #1041.
+20May08
+kes  Remove double quotes from ChangeLog and ReleaseNotes
+kes  Remove StorageId test when pruning and recycling (Eric's changes).
+kes  Remove old form of locking when getting volumes -- causes deadlock.
+kes  Change bat dirstat layoutWidget to dirstatlayoutWidget to make
+     the name unique and to eliminate compile time error.
+kes  Add accurate.o to Win32 FD Makefile
+19May08
+kes  Fix cats dll build on Win32 after db_update_job_end_record
+     calling sequence change.
+ebl  Switch to tokyo dbm instead of htable in accurate code
+ebl  Include tokyo dbm to bacula source tree
+17May08
+kes  Fix buffer overruns detected by Coverity.
+13May08
+kes  Tweak joblog display.
+12May08
+kes  Implement --without-qwt
+kes  Fix layout of restore tree dialog
+kes  Add configure bat QWT libraries, so that bat can be built
+     with or without the QWT libaries.
+11May08
+ebl  Add dummy tape driver for regression tests.
+kes  Make sure we unload the right slot when swapping.
+10May08
+kes  Add debug times, reduce size of two-pool-changer test 
+08May08
+ebl  Tweak autoconf scripts for vtape
+07May08
+kes  Improve SD reserve debug code.
+kes  Testing an improvement to free up volumes no longer in use.
+03May08
+kes  Rework SD acquire for read to handle autochanger Volume
+     swapping.
+kes  Implement regression that explicitly tests swapping a Volume
+     from one drive to another.
+kes  Enhance disk-changer to detect most error conditions.
+kes  Fix SD code so that it properly swaps a Volume between drives.
+     This fixes bug #1083.
+02May08
+kes  Apply libdbi patch from Joao Freitas for regress and for 
+     Bacula trunk. Regress now works with libdbi. Nice.
+kes  Apply .nobackup patch from bug #1077 submitted by 
+     Edwin Groothuis.
+kes  Apply Bastian Friedrich's patch that adds %p to edit the pool
+     name into jobs cloned via the run directive.
+01May08
+kes  Prevent a Volume that is being swapped from being freed from
+     the volume list. This will most likely fix, at least partially,
+     bug #1083.
+kes  Fix strippath so that it does not get a buffer overrun and crash FD.
+     This fixes bug #1078.
+kes  Remove 50 millisec wait in SD that broke debugger.
+ebl  Add MaxRunSchedTime option that specifies the maximum allowed time 
+     that a job may run, counted from when the job was scheduled.
+ebl  Fix MaxWaitTime option that specifies the maximum allowed time that 
+     a job may block waiting for a resource, counted from when the job starts
+ebl  Rename (add) Max(Incr|Diff|Full)WaitTime to Max(Incr|Diff|Full)RunTime
+kes  Apply patch from bug #1076 by Tullio Andreatta <t.andreatta@troppoavanti.it>
+     that implements multiple commands per line in the console when using 
+     readline. Modify the default to use a semicolon as the command separator.  
+28Apr08
+ebl  Fix SQL query in migration code.
+ebl  Make accurate mode with hash disk pass regression tests
+27Apr08
+ebl  Implement first cut of accurate backup with hash disk.
+19Apr08
+kes  Force unload of volume when wrong volume mounted in SD.
+17Apr08
+kes  Fix bat seg fault at termination.
+kes  Add Bacula generated version to bat about box.
+16Apr08
+kes  Experiment with allowing multiple read jobs.
+kes  Move final volume swapping code to DCR method and
+     call it from acquire_for_read().
+kes  When wrong volume is mounted during read, unload_autochanger.
+15Apr08
+kes  Integrate the libdbi changes from Joao Henrique Freitas
+14Apr08
+kes  Stop searching for Volumes in SD askdir if DIR returns the
+     same volume name twice in a row.
+kes  Close bat console windows first to eliminate error message
+     from the notifier.
+13Apr08
+kes  Tweak the swap Volume from one drive to another code so that
+     it now seems to work.
+kes  Resolve several problems with recycling that broke the new
+     code (these problems are in 2.2.9 as well).
+kes  Remove the volume lock when calling the sysop code.   
+kes  Don't mark a reserved volume with no writers as unused otherwise
+     jobs fail.
+12Apr08
+kes  Rework class structures for VOLRES, DCR, and DEVICE to make
+     the method names a bit more logical, and for more logically
+     handling the responsibilities.
+11Apr08
+kes  Remove redundant code in terminating the scheduler that just
+     causes a seg fault in many cases.
+kes  Cleanup releasing a volume and make it a DCR method.
+kes  Improve algorithm for detecting pre-reserved volume and
+     swapping volumes.
+10Apr08
+kes  Tweak volume swapping code so it works.
+kes  Correct name overloading in mount.c
+kes  Replace released flag in VOLRES with reserved and add access
+     methods for the VOLRES class.
+kes  Prevent volume from being released while being swapped.
+kes  Apply Bastian Friedrich's edit codes patch for the bpipe-fd
+     plugin that add %w (where) and %r (replace flag) editing to
+     the plugin line.
+kes  Apply Bastial Friedrich's edit pool=%p patch for run clone
+     jobs.
+kes  Refactor parts of stored/mount.c
+09Apr08
+ebl  Add sanity checks for VolWriteTime and VolReadTime
+ebl  Take care of bad clock changes while computing VolWriteTime
+     and VolReadTime. This should fix or limit #1066
+kes  Correct error string numbers in dird/catreq.c
+kes  Restructure reserving, acquiring, and mounting volumes. Calls to
+     autochanger are deferred for mount.c -- simplifes the code.
+08Apr08
+kes  Do not prune any running job. It just fails the job.
+kes  Lock the volumes when changing dev->reserved_device and marking
+     the volume unused otherwise the device can get reserved by
+     another job before the volume is released, thus blocking it.
+06Apr08
+kes  Correctly detect Ubuntu systems, and add ubuntu platform directory.
+kes  Fix bug #1063, reuse of freed ptr in list nextvol.
+kes  Release regex compile buffer in filed/job.c
+kes  Add proper type of const char in sql_create.c
+kes  Turn off debug in daemon termination routines
+kes  Move free_volume_list() before devices are freed in stored.c
+kes  Fix reference to uninitalized stack variables in bregex.c. 
+     This should correct bug #1067.
+04Apr08
+kes  Fix possible seg fault in SD when freeing a volume entry.
+03Apr08
+kes  Implement unload_dev() before swap device.
+ebl  Add statistics prunning with option and menu
+kes  Separate unload_dev() from unload_other_device() in autochanger.c
+02Apr08
+kes  Apply patch from bug #1069 that corrects spurious error messages
+     when ACLs enabled on SGI but no ACL exists.
+ebl  Fix small segfault in bacula-sd when debug level is 500
+kes  Modify run_program() and run_program_full_output() to use
+     call by reference for the results string. This corrects a long
+     standing problem where the address of the string may be changed
+     in the subroutine but not in the calling program.
+01Apr08
+kes  Re-enable code to remember last volume mounted on a non-tape
+     Autochanger.
+kes  Add patch supplied in bug #1068 that fixes a SD crash when using
+     a Virtual autochanger.
+kes  Generate correct JobMedia records during spooling/despooling when
+     running concurrent jobs.  Thanks to Tom Ivar Helbekkmo
+     <tih@hamartun.priv.no> for excellent analysis and testing.
+31Mar08
+kes  Tweak hash algorithm for htable using Martin Simmons idea
+     for doing a circular shift.
+kes  Remember what volume is in VTLs (previously turned off for
+     testing).
+kes  Analysis of JobMedia records by Tom Ivar Helbekkmo <tih@hamartun.priv.no>
+     pointed out some problems in creating JobMedia records during
+     spooling with concurrent jobs. Fix the problem by updating the
+     start file position before despooling and generate a jobmedia
+     record at the end of despooling.
+28Mar08
+kes  Fix handling of JobMedia records during spooling and when a
+     Volume is changed without actually writing data to the Volume.
+27Mar08
+kes  Rework certain SD locking based on gdb tracebacks of deadlocks
+     sent by Eric. This code now uses only the volume_lock() rather
+     than the reservations lock when at EOM and acquiring a new
+     volume. 
+kes  Ensure only one exit point in several subroutines.
+26Mar08
+kes  Implement bsock code to permit locking. Use the new code in Verify
+     in the FD to prevent the heartbeat thread from disrupting the Verify
+     data sent to the Dir.
+kes  Modify SD locking to eliminate locking the reservations system from
+     outside the system. Use the volume lock when getting media data
+     and reserving a new volume at end of media.   
+kes  Add Eric's volume_unused() fix to stored.c so that Volumes found
+     when SD starts are not locked into place.
+24Mar08
+kes  Fix error compiling runscript code on 64 bit machines.
+kes  Tweak Win32 mount point code.
+kes  Fix a couple of bugs in the accurate code (bad sscanf, buffer not
+     cleared giving bad file estimate).
+kes  Implement BIG_MALLOC in htable code. Runs 2.5 times faster for
+     5 Million entries.
+22Mar08
+kes  Keep Schedule run lists in order as suggested by
+     Bastian Friedrich.
+21Mar08
+kes  Implement autostart scripts for Debian.
+ebl  Implement upgrade catalog scripts.
+20Mar08
+ebl  Apply jobstat patch for long term statistics. Have to implement
+     purge stats command and upgrade scripts.
+kes  Fix mtx-changer.in for broken Debian mt program.
+19Mar08
+kes  Fix large number of JobMedia records reported by Eric Bollengier.
+18Mar08
+kes  Apply doc fix from bug #1062.
+kes  Resolve crash and improper restore wx-console Win32 restore
+     GUI. Fixes bug #1065.                   
+kes  Update Win32 wxWidgets to latest version.
+kes  Attempt to do correct handling of Win32 mount points. Should
+     fix bug #1046.
+kes  Fix Win32 FD backup/restore memory leak due to improper termination
+     of BackupRead/Write. This fixes bug# 1038.
+16Mar08
+ebl  Reduce memory usage for accurate backup, working only with ctime
+     and mtime. (not all Lstat field) 
+     About 40MB for my Linux system (400.000 files)
+14Mar08
+kes  Add dcr->reserved_volume flag that allows us to release a volume
+     even if it is not vol->released.  This allows maxvol2 to work when
+     Volumes expire and we are already writing to the device (i.e. a
+     volume is pulled out from under us by another job terminating after
+     we reserve the drive).
+13Mar08
+ebl  Permit multiple command/console per runscript definition.
+     RunScript { command = /bin/true ; command = /bin/false ... }
+ebl  Add RunsWhen = AfterVSS to runscript. You can execute a command
+     (restart an application) just after the VSS snapshot on windows.
+kes  Don't zap dcr values during release_volume() as they might
+     have the next Volume to be mounted.
+kes  Fix AIX prototype.
+12Mar08
+kes  Second cut of drive switching during backup.
+11Mar08
+kes  Fix Win32 build.
+kes  Update Win32 version of wxWidgets to most recent version.
+kes  Tweak Copy job details.
+kes  Rework dir_find_next_appendable_volume to make a bit more effort
+     to find a suitable volume before giving up.
+10Mar08
+kes  Make ask_sysop_to_create... to return if waken from wait.
+     This helps get out of blocked conditions.
+kes  Experimental implementation of switch_device in reservations. 
+kes  Implement FD version to allow easier protocol changes.
+kes  Add Plugin Options string -- not yet passed to FD.
+kes  Implement PluginOptions ACL.
+09Mar08
+kes  Attempt to correct problems with restores with autochangers and
+     use counts going negative 
+kes  Rework SD status command and implement API for bat. Implements
+     header, runing waitreservation, devices, volumes, spooling,
+     and terminated status keywords.
+     .status storage=xxx <keyword>
+kes  Clarify TLS error message by adding double quotes around name.
+kes  Simplify SD/FD status code by putting api flag in STATUS_PKT
+kes  Pass jcr to tls routines so debug messages can be handled better.
+kes  Rework jobq resource allocation code, and possibly fix a bug
+     that caused reference counts to get out of sync.
+08Mar08
+kes  Rename fd/dir plugin to use Bacula standard underscore.
+kes  Plugin work -- bring dir up to fd level.
+kes  Start implementation of VTL code
+kes  Fix Win32 build after adding new cats subroutine.
+06Mar08
+kes  First cut at Duplicate Job implementation.
+05Mar08
+kes  Fix bugs in MaxFullInterval and Implement MaxDiffInterval.
+kes  Start PluginOptions string, and refactor a bit of ua_run.c
+ebl  Apply Allan patch that permit to reset recyclepool. 
+04Mar08
+kes  Test patch -- possible fix or improvement for bug #1053
+kes  Refactor FD and SD status commands to permit new API code in
+     SD, and to fix Win32 build.
+kes  Win32 build is now working.
+03Mar08
+kes  Implement 'MaxFullInterval' and start 'MaxDiffInterval' based on
+     some ideas in patch from Scott Bailey.
+kes  Begin implementation of duplicate Job control.
+kes  Fix some of Win32 build after recent additions.
+kes  Apply patch from Frank Kardel that implements 'honor no dump flag',
+     which causes the FD to detect whether or not the OS has the 
+     honor no dump bit (*BSD systems), and if so, to skip backing up
+     any file with this bit set.  The feature is enabled by setting
+     'honor no dump flag = yes' in the Options section of a FileSet.
+28Feb08
+kes  Correct po warning message with datarootdir
+kes  Implement more code in dird.c to put configuration parsing in
+     a class rather than use globals.
+kes  Restructure SD status command for implementation of bat API
+     interface.
+27Feb08
+kes  Suppress incorrect 'Will not descend from x into y' messages.
+kes  Eliminate FORTIFY_CODE=2 bug, and make first cut at removing 
+     daemon globals used by parser.              
+kes  Apply Joao's patch to separate DB_TYPE and DB_PROG in configure.
+26Feb08
+kes  Fix free of plugin_list when none exists.
+25Feb08
+ebl  Apply accurate project patch.
+24Feb08
+ebl  Fix a segfault when using strip_path option. (Use of pm_strcpy
+     on non-mempool object) 
+kes  First cut of converting FD .status to work with bat API.
+     New form is:
+     .status client=XXX header
+     .status client=XXX running
+     .status client=XXX terminated
+kes  Implement first cut of Copy Job.
+kes  Implement Catalog in Pool resource. It overrides catalog specified
+     in the Client resource.
+22Feb08
+kes  Apply patch (with some difficulties) from Joao Henrique Freitas 
+     <joaohf@gmail.com>, which adds support for libdbi as a Bacula
+     database driver.
+kes  Add patch from Martin Schmid scm@apsag.com that checks to see if
+     ftruncate() actually works. In the case of some (cheap) NAS devices,
+     it does not, and so recycling NAS Volumes does not work. The code
+     simply unlink()s the file, then recreates it.  This fixes bug #1011.
+21Feb08
+kes  First incomplete cut of big malloc blocks for htable.
+kes  Tweak plugin code.
+17Feb08
+kes  Plugin debug code + tweak a couple bat dialog layouts
+14Feb08
+kes  Fix creating first JobMedia record during Migration to include
+     proper index. This caused slow restores of migrated jobs.
+kes  Temp fix to plugin name file_index.
+kes  Bacula backed up and restored a MySQL database.
+13Feb08
+kes  Implement plugin restore.
+kes  Implement parsing of db_driver to give db_type index.
+10Feb08
+kes  First cut of plugin restore code.
+kes  Fix bug #1047, which had a heap overrun when stripping certain paths,
+     and do not strip paths on symbolic links.
+kes  Set catalog backup database and user name from values specified on
+     the ./configure line.
+ebl  Fix #1031 about wrong pool source information in job report.
+09Feb08
+kes  Fix Win32 build.
+kes  Remove a redundant jcr argument to find_files, match_files, and
+     find_one_file.
+kes  Implement '.status dir header|scheduled|running|terminated' that
+     prints the requested status section. With the exception of the
+     header, the other reports have fields separated by tabs (\t).
+08Feb08
+kes  Apply patch from Peter Much <pmc@citylink.dinoex.sub.org> that fixes
+     a resource embedded run command to find a since time if no explicit
+     since time was supplied on the command line.
+kes  Apply state-file.patch sent by Allan Black <Allan.Black@btconnect.com>
+     that updates the state file at job termination time in addition to
+     when the daemon terminates.
+05Feb08
+kes  First version where a plugin did a backup.
+     bpipe-fd.so created a backup file, wrote a test
+     string to it, and Bacua could restore this fabricated file.
+02Feb08
+kes  Implement DB Driver = string for the DBI driver.
+kes  Remove all old bdb_xxx.c code.  Add dummy routines to bdb.c
+kes  First cut of code for loading Win32 plugin dlls. Implement
+     dlopen, dlsym, dlclose, and dlerror in src/win32/compat/compat.cpp
+     and implement a dlfcn.h file based on opengroup's definitions of
+     the functions.
+01Feb08
+kes  First cut plugin directives.
+30Jan08
+kes  Apply patch from bug #1049 to prevent stripping the path on a
+     symlink.
+kes  Attempt to fix bug #1047 where stripping a path corrupts the
+     heap. Waiting for feedback.
+kes  Correct the Mount message not to suggest labeling a new tape
+     when doing a restore.  Submitted by email by John Stoffel.
+kes  Attempt to work around gcc FORTIFY_SOURCE bug that crashes the 
+     FD by using casting. Reported in bug #1042.
+28Jan08
+kes  A bit of crypto cleanup.  More later.
 
-Changes to 1.37.21:
-06Jun05
-- Fix compile problems on Win32
-- Start writing Volume reservation list (already exists, but
-  is not really very good).
-- Implement attribute caching to put Signature into database     
-  at the same time as the file attributes thus eliminating a
-  number of database accesses.
-- Correct a reservation problem.
-- Implement full Dir Storage use.
-- Reduce a bit of TLS #ifdeffing.
+Release Version 2.2.8
+25Jan08
+kes  Apply patch from Martin to correct bug #1040, bscan sets existing
+     ClientId to zero.
+kes  Fixed important spelling error in doc -- bug #1045.
+23Jan08
+ebl  Fix bextract to be able to extract non-portable Win32 data to 
+     Unix/Linux clients
+kes  Move initialization of read/write res lock earlier in the code.
+     This fixes the crash with a null conf file. This fixes bug
+     #1030.
+kes  Redefine CURES in lib/parse_conf to be URES and move it all
+     into lib/parse_conf.c -- this responds to bug #1042, but does
+     not fix it. The fix is not to compile with FORTIFY_SOURCE.
+kes  Backport to 2.2.8 fix de-referencing a NULL pointer in the scanner from
+     the trunk SVN. I don't think this was reported as a bug.
+17Jan08
+ebl  Fix a bug during tape initialization with MTSETDRVBUFFER.
+12Jan08
+kes  Fix Win32 build with new .def files and DLL_IMP_EXP ...
+10Jan08
+kes  Add DataDespooling and DataCommitting status (committing is
+     the last despooling).
+kes  Finish implementation of new reservations code noted below.
+08Jan08
+kes  Fix bsnprintf for float point numbers. I broke recently when
+     parameterizing some variables. This fixes bug #1036.
+kes  Undo recent reservations changes ... will apply them later
+     when they work better.
+06Jan08
+ebl  Fixes #1034 which cause mysql to hang the connection after 8h
+ebl  Change default statistics target of filename.name and path.path
+     fields for PostgreSQL. This speeds lookup by indexes. Thanks
+     to Marc Cousin.
+kes  A few more tweaks to new reservation code. Make sure to clear
+     vol released flag when retaking volume. When reading label and
+     label is bad mark volume unused. When recycling, mark volume
+     unused so it can be renamed.
+05Jan08
+kes  Fix reserve_volume() so it doesn't release a volume in use
+     (i.e. a volume entry not marked released). This should be
+     the last part needed to fix bug #1018.
+03Jan08
+kes  Move Heartbeat documentation from Job to Director resource.
+     This fixes bug #1033.
+02Jan08
+kes  Fix existing switch drive SD code to call autochanger to release
+     any old volume. This must be done to keep the autochanger from
+     releasing subsequently newly reserved volumes in doing a close().
+     This should fix bug #1018.
+kes  Fail if attempting to get console input in batch mode. This
+     should help fail RunScript console commands that are incomplete.
+kes  First cut implementing switch_drive() in SD (not actually called).
+31Dec07
+kes  Implement first cut running console commands in a RunScript.
+29Dec07
+ebl  Fixes bug #1028 where 'Selection Type' option was not usable 
+     with JobDefs.
+ebl  Fixes bug #897 and bug #1005 where bacula doesn't display runscript
+     output in error.
 
-Changes to 1.37.20:
-04Jun05
-- Minor changes
-01Jun05
-- Add more documentation to mtx-changer.in
-- Correct link to manual in authenticate.c in various
-  directories.
-- Create a new src/stored/reserve.c file where the 
-  Use Storage command is processed and drives are
-  reserved.
-- Modify src/stored/autochanger.c to keep track of each
-  Slot that is loaded for each device.
-- Ensure that changer_command and changer_name are picked
-  up from Autochanger resource if not specified, and if
-  neither is specified, err.
-30May05
-- Fix bextract.c compile problem
-- Create bacula.man 
-- Make make distclean clean a bit better
-29May05
-- Remove old code in jcr.c
-- Make testls release jcr chain when terminating.
-27May05
-- Implement Maximum Job Spool Size (actually DCR based)
-26May05
-- Use light weight non-recursive locking on jcr chain.
-- Make JCR a class and implement inc_use_count() and
-  dec_use_count() methods that ensure that the jcr is
-  locked when inc/dec the use count.
-- Remove the global jcr lock when traversing the jcr
-  chain.   
-- Use dlist to implement the jcr chain rather than hand
-  crafted next and prev links.
-- Lock the jcr chain inside each function that modifies
-  the chain.
+Release Version 2.2.7
+24Dec07
+kes  Add new free_tls() entry point so that Win32 builds.
+kes  Fix compile warning in src/lib/util.c
+kes  Fix entry point for edit_job_codes() so that Win32 builds.
+kes  Fix seg fault Frank Sweetser reports in regression testing
+     on his systems. The problem was that the original author of
+     bsnprintf.c did not take into account the side effects of
+     using ++x in the argument to a #define.
+kes  Make SD protocol backward compatible with version 2.2.x.
+19Dec07
+ebl  Fixes bug #1015 where bacula failed to restore acl to a socket
+     because Bacula no longer restores sockets.
+ebl  Always use ignorecase fileset option on win32 FD.
+14Dec07
+kes  Apply patch from  Michael Stapelberg <michael@stapelberg.de>
+     that implements double quoting include names in conf files,
+     and also allows piping input by having the first character 
+     be a vertical bar (|). 
+kes  Apply patch from Bastian Friedrich <bastian.friedrich@collax.com>
+     that implement %f in RunScripts to pass the FileSet name.
+kes  Skip leading | when lex input comes from a pipe as suggested
+     by Michael Stapelberg <michael@stapelberg.de>.
+13Dec07
+kes  Apply patch for bsmtp Win32 daylight savings time fix supplied by
+     Nerijus Baliunas <nerijus@users.sourceforge.net>
+12Dec07
+kes  Implement Plugin Directory and plugin events.
+11Dec07
+kes  Implement a security enhancement: TLS authentication but no       
+     encryption. Enabled by setting 'TLS Authentication = yes'.
+     Note when this is on, TLS encryption is turned OFF!
+10Dec07
+kes  This patch corrects a problem where the maximum concurrent storage
+     jobs counter gets out of sync during restore jobs causing jobs to
+     'wait on max Storage jobs'.  This patch fixes bug #1009.
+03Dec07
+kes  This patch fixes bcopy so that it produces correct Volumes.
+     It fixes bug #1022.
+kes  This patch eliminates spurious output to the console during a VerifyVolume
+     job that contains encrypted data. It fixes bug #1024.
+02Dec07
+kes  This patch prevents the 'status dir' command from trying to use a scratch
+     volume and possibly moving it from one pool to another.  This patch fixes
+     bug #1019.
+01Dec07
+kes  Add new include to postgresql.c suggested by Marc Cousins so
+     that it compiles correctly with pgre version 8.3.
+30Nov07
+kes  Fix --archivedir addition to configure. Replace it with
+     --with-archivedir in configure.in  This fixes the regression       
+     test builds.
+kes  This patch fixes bug #1012 where the job is canceled because
+      of Max Run Time exceeded when the job has not yet started.
+29Nov07
+ebl  Apply Richard Mortimer patch that fixes #1016 when there are more than 
+     one 'part' to write.  Instead of each part being stored on disk, 
+     written to DVD, then deleted from disk, all parts are written to disk,
+     and only the last is written and deleted from disk.
+kes  This patch fixes the status command to include the formating string for
+     JS_AttrInsterting.  It fixes bug #1021.
+kes  This patch should fix the Mac OS X build problem on the latest
+     Darwin, where sys/types.h was not included correctly (apparently
+     due to a change in the Mac headers).  The solution was to explicitly
+     ensure that it is defined for the ./configure.
+     This patch also has a rebuild of configure that includes the Debian
+     qt4 patch to check for qmake-qt4. This patch fixes bug #1020.
+kes  This patch should ensure that queued messages to the console are
+     displayed as soon as possible.  It should fix bug 1007, but has been
+     reported not to work.
+14Nov07
+kes  This patch fixes the infinite loop when trying to increase the
+     maximum number of volumes in a Pool during the add command.
+     This patch fixes bug #1008. 
 
-Changes to 1.37.19:
-26May05
-- Fix compile problem of ua_restore.c on broken compilers.
-- Apply patch from bug 326 to permit bacula status by any user.
-- Fix bug 325 -- conversion of 12:30pm to 24hour time.
-25May05
-- Put Dmsg() on inside if() to avoid calling subroutine.
-- Make restore.bsr have unique name.
-- Allow user to define bsr filename on restore command line
-  with bootstrap=xxx.bsr
-- Add limit=nnn to "list jobs" command.
-- Remove old restore code that did not use .bsr file.
-- unlink automatically generated bsr file.
-- Cleanup heartbeat code so that duped fd is almost sure
-  to be released. Previously under certain conditions, the
-  memory was not released due to race conditions.
-- Shorten copyright.
-20May05
-- Unify the reserve_device() for a single device into one subroutine.
-18May05
-- Modify wait during use_device to happen only after all devices
-  have been examined rather than in the reserve_device code.  
-- Correct updating count of number of Volumes in a pool.
+Release Version 2.2.6
+09Nov07
+db   Remove extra data on estimate command in joblist for bat.
+04Nov07
+kes  Cleanup of code in SD that sets the LastWritten date. This doesn't 
+     really change anything, but is the beginning of doing it *right*.
+     To do it completely right the LastWritten date must be passed to
+     the SD, but it is not yet done.
+kes  Minor tweaks to some bat restore SQL.
+kes  This patch fixes bug #1003 where putting the message output from
+     a Verify job into the catalog results in a recursive loop.  The problem
+     seems to show up only with postgresql (to be verified).
+kes  Correct %x to %p in postgresql debug statement.
+02Nov07
+kes  Fix bug #942 where lots of emails where generated when the heartbeat
+     interval was low and Bacula wanted a different tape from the one in
+     the drive.
+25Oct07
+ebl  Add new SD despooling attributes and Dir inserting attributes 
+     job status codes in the catalog (Status table).
+24Oct07
+ebl  Use qmake-qt4 instead of qmake when available (debian system).
+22Oct07
+kes  Add a security warning to src/cats/make_catalog_backup.in indicating
+     that passing the password via the command line (arg 3) is insecure.
+     This responds to bug #990 (it doesn't fix it).
+19Oct07
+kes  Set default debug_level to zero. This corrects bugs #991 and #993. 
+kes  Fix a crash in bat when it cannot connect to the Director for example
+     if the Director is not running.
+kes  Remove redundant INDEX (JobId) from File table in the trunk.
+     This fixes bug #992.
+kes  Make explicit exception to GPL in LICENSE to permit linking
+     the Win32 FD with Microsoft VSS code.
+kes  Apply the Solaris package patch from 
+     Masopust, Christian <christian.masopust@siemens.com>
+kes  Apply the patch to optionally add a timestamp in the debug output
+     submitted by Mariusz Czulada <manieq@wp.eu>.
+18Oct07
+ebl  Use PQerrorMessage instead of PQresultErrorMessage in postgresql
+     backend (sql_strerror). Fixes bug #989
+16Oct07
+kes  Apply Michael Short's <mdshort@gmail.com> Win32 regress patch.
+     It applied with no problems.
+kes  Add PATH command to SunOS part of mtx-changer.in so that sed and
+     awk are on the path.  
+kes  Redirect stderror to stdin on mt status command in mtx-changer.in
+     since the status is returned on stderr on Solaris.              
+kes  Activate Close button on tray-monitor window. This fixes
+     bug #986.
+kes  Check for NULL item in parse_conf.c before calling it.  In the
+     case of Device, there is no item and this caused a seg fault when
+     Device appears in the conf file.
+kes  Add a #define __CONFIG_H when including config.h in bacula.h. This
+     avoids pulling in config.h multiple times in some new code.
+12Oct07
+kes  Fix spurious warning message printed when creating a volume with
+     a LabelFormat. This fixes bug #976.
 
-Changes to 1.37.18:
-16May05
-- Add more debug to SD for Autochangers + status output.
-- Add Scratch to PoolType in PostgreSQL make...tables and do not
-  permit NULL PoolTypes. Fix for bug 319 reported by Eric.
-- Update LICENSE.
-- Add quotes around filename in parse_config error message. Bug
-  reported by Eric.
-15May05
-- Change nested \include to \input so that sections are properly
-  included in the pdf manual -- update the Web site.
-- Set reconnect flag in MySQL packet to 1 to ensure that connection
-  is re-established.  MySQL 5 changed default to 0. Fixes bug report.
-- Fix Scratch pool handling as reported in a bug by Eric Bollengier
-  by applying his patch.
-- Remove delete job in favor of delete jobid.
-- Add = NULL to configfile definitions as reported by Eric in a bug
-  report.
-- Update winbacula.nsi.in to reflect new manual file structure.
-10May05
-- Correct a minor build problem with wx-console.
-- Add cancel() to Dir Python scripting.
-- Re-correct bug in parse-config error handling.
-- Reorganization of use_command in SD to permit
-  waiting and multiple drive autochanger support.
-09May05
-- Correct bug in parse_config error handling.
-- Where ever possible mark a volume in error or not   
-  InChanger in mount.c
-- Fix bug in changing tape pools after first backup. Reported
-  by Peter Sjoberg.
-- Enhance mtx-changer to use Working Directory as temp.
-- Remove all but initial setup locking of Res in SD.
-08May05
-- Add Client OS type to Job report.
-- Add version to manual 
-- Update the Web site to have a single page for
-  the documentation links.
+Release Version 2.2.5
+09Oct07
+kes  Add JobId in place of Job name in all the Jmsg() output.
+kes  Correct the APP_DESC for the Win32 storage service (remove an e).
+07Oct07
+kes  Make maxvol-test and new more strict maxvol2-test work. 
+kes  Print JobId in all Jmsg() job output.
+06Oct07
+kes  Add new SD despooling attributes and Dir inserting attributes 
+     job status codes.  This fixes bug 961.
+kes  Fix Win32 drive display in bat version browser. Fixes bug #962.
+05Oct07
+kes  Fix doc issue. This fixes bug #963.
+kes  Fix listing performance problems in bat. Pointed out by 
+     Chris Howells.
+kes  Remove old debug code.
+kes  Fix bat code that tests for Win32. This should fix bug #968
+kes  Query 5 list wrong Vol after migration. This fixes bug #960
+04Oct07
+ebl  Fix #969 where user can't change Replace option in restore menu.
+5ASep07
+kes  Save jcr in thread specific data (tsd) for each thread.
+kes  Make Dmsg() print JobId as -%u.
+kes  Make Jmsg, Emsg, and others automatically pickup the jobid
+     for the thread if it exists.
+kes  Remove old reservation debug jid code.
+kes  Remove get_jcr_from_tid() from OpenSSL and tls code.
+ebl  Add an option that permit to specify spool size in job
+     definition. (Applying patches/testing/spoolsize_per_job.patch).
+     You must upgrade SD and DIR at the same time.
+dvl  Add new configuration item --archivedir
+dvl  Adjust regression tests to use tmp not /tmp.  This will allow
+     multiple concurrent runs of the regression tests.
+28Sep07
+kes  Fix race condition that drops final block written to volume.
+     This happens in rare cases with multiple simultaneous jobs 
+     when the Volume fills.  This fixes bug #964.  May be related
+     to bug #935 and possibly #903.
+kes  Eliminate more strerror() and replace with bstrerror().
+kes  Remove BSD getopt and replace with unrestricted IBM version.
+kes  Fix Win32 build for changed calling sequences.
+kes  More tweaks to the mount volume routines to get everything
+     right. Changed variable name from find to have_vol, which is
+     much easier to understand.
+kes  Enhance btimer debug code.
+27Sep07 
+kes  Fix FD->SD authorization failure, which was due to spurious
+     wakeups from a pthread_cond_timedwait().  Simply check the
+     predicate before continuing.  This fixes bug #953.
+kes  Add const char where needed (more to do). Remove temp debug code.
+26Sep07
+kes  Setup SQLite busy handler before doing queries. Fixes bug #967.
+kes  Don't overwrite error message in check_tables_version.
+     Fixes bug #966.
+kes  Unlock batch insert tables with same calls used elsewhere.
+kes  Allow starting 59 jobs a second.
+kes  Make SD session key more random.
+kes  Add retry for SQLite opening db if it fails. Probably helps
+     for bug #967.
+kes  Suppress extra error messages during batch insert failure.
+     Fixes bug #966.
+kes  Add jcr to timer packets so if killed message can be sent to job.
+kes  Add JobId to all Dmsg() output.
+kes  Put some FD auth code on dbglvl rather than fixed.
+kes  Return insert attributes error message in db msg buffer to avoid
+     false error messages. Helps fix bug #966.
+kes  Separate batch init error messages. Probably helps fix bug #966.
+kes  Make SD code that contructs attribute insert check string lengths
+     more carefully.
+kes  If Dir gets an error during inserting attributes, cancel SD.  
+     This reduces unnecessary error messages.
+24Sep07 
+kes  Correct search boolean for getting Volume info
+ebl  Cleanup batch insert code. Probably fixes bug #965.
+kes  Back out one small change to the reservation system (reserving a volume).
+kes  Rework how a Volume is mounted. It is now much more intelligent and
+     will always attempt to use any mounted volume if possible and reduces
+     calls to the Director asking about volumes.
+23Sep07 
+kes  Turn off some code when batch insert not enabled.
+kes  Edit FD name in connect error messages.
+kes  Rework the reservation system to take into account that the Director
+     might give us a Volume that is different from the current one being
+     used, and to ensure that we don't exceed Maximum Volume Jobs.
+     This fixes (mostly) bug #947 '  Maximum Volume Jobs = 1 produces 
+     fatal error with multiple jobs running'
+kes  Add more debug code in reservation system.
+kes  Implement maxvol-test to check bug #947.
+22Sep07 
+kes  Add code to handle tray monitor separated from Win32 FD.
+kes  Fix display of Win32 tray monitor after reboot. Fixes bug #952.
+20Sep07
+kes  Add missed return in fixing verify bug -- trunk only.
+ebl  Fix a command parser issue causing a director segfault.
+kes  Fix ANSI tape labeling. Fix restoring ANSI labeled Volumes. 
+     This fixes bug #954.
+kes  Increase the max block size to 4MB fixes bug #957.
+kes  ERABT if user sets min block size > max block size.  Fixes bug #956.
+kes  Apply 2.2.4-poll-mount fix, that resolves bug #908 where a tape
+     is not properly mounted (recognized) during a poll.
+kes  Apply 2.2.4-verify patch that resolves bug #958.  A Verify catalog
+     Job that has differences reports Verify OK.
+ebl  Fixes #955 bug seg fault in Dir introduced  with regexwhere relocation.
+17Sep07
+ebl  Add an option to operate on all pools with update vol parameters.
+     This complete the project 20. Patch from Nigel Stepp.
+ebl  Add history support to bconsole when using readline.
+     Using Ctrl-D to exit doesn't update .bconsole_history
+kes  Modify new volume algorithm to use max MediaId for generating next
+     volume number rather than the count of Volumes. This should essentially
+     eliminate the failure rate if some volumes were deleted. Bug #921.
+kes  Begin implemention of Optimize Job Scheduling.
+kes  Implement restore callback that Dirk and I agreed on for bat 
+     restore. This fixes bug #928. Restore of backup of zero files fails.
+kes  Fix SQL Catalog logging which broke with new db_escape_string 
+     calling sequence.
 
-Changes to 1.37.18 release 08May05:
-08May05
-- Correct attribute definition compile error in 1.37.17
-- Correct inverted order of CreateTime and MD5 pointed out
-  by a user in a bug report in FileSet db routine causing
-  the MD5 to print in the output instead of the time/date.
+Release Version 2.2.4
+14Sep07
+kes  Fix bacula_cats.def for new db_escape_string().
+kes  Increase size of name string when FD making connection to SD.
+     May fix bug #953. FD->SD connection failure.
+13Sep07
+kes  Add code to help Dan debug 2drive-incremental-2disk test.
+kes  Add code to try to fix bug #908.
+kes  Add waits to multiple exit detection code to try to force pid
+     file to always be deleted.
+kes  Restore good dev.tar.gz to rescue set appropriate binary property.
+     This fixes bug #950.
+kes  Fix seg fault in error exit of acquire_for_read after unsuccessfully
+     trying to switch drives by checking for blocking before unblocking.
+     Fixes bug #906.
+kes  Cancel storage daemon in all cases where FD reports error. This
+     should fix virtually all cases of bug #920.
+kes  Fix db_escape_string() for MySQL which did not compile.
+12Sep07
+kes  Fix error message that was clobbered when Dir tells SD it does not
+     have write permission on Volume.  This should fix a minor point
+     in bug #942, but not the main problem.
+kes  Add code to cancel job in SD if FD connection fails. This should
+     fix bug #920.
+kes  Add code in FD exit to prevent loops and a crash on FreeBSD.
+dvl  Pass jcr and db into db_escape_string() to enable better escaping
+     of strings
+kes  Fix migration code to get correct Volume name with multiple volumes 
+     by skipping |.  Fixes bug #936.
+kes  Implement patch supplied by Landon to fix bug #944 where using
+     TLS with bconsole uses 99+% of the CPU.
+kes  Note, you need GTK >= 2.10 to be able to link the Tray Monitor
+     program.
+kes  Move patches into patches directory.
+11Sep07 
+ebl  Fix bug #946 about 'bacula-dir -t' which doesn't works
+     as expected.
+09Sep07 
+ebl  Using 'm' in bconsole will show messages like before,
+     and not memory usage.
+kes  Fix bug #935, and probably also bug #903 where files were not
+     restored. MediaId was not properly set in JobMedia record after
+     a Volume change.
+08Sep07
+kes  Suppress chown and chmod error messages if the FD is not running
+     as root.
+07Sep07
+kes  Apply Martin Simmons' patch that should turn off the new API usage
+     when batch insert is turned off allowing building on older
+     PostgreSQLs.
+kes  Add ./configure search in qwt-qt4 for qwt package
+05Sep07
+kes  Bacula is now free of 3rd party GPL copyrighted code!
+kes  Remove idcache.c 
+kes  Add guid_to_name.c/h which replace idcache.
+kes  Remove enh_fnmatch.c.  Make code that references it use fnmatch.c
+04Sep07
+ebl  Detect if new PosgreSQL batch insert API is present.
+kes  Correct incorrect mempool call causing Director crash. Occurs on
+     systems without va_copy().
+sb   Update spec files for 2.2.1 release
+03Sep07
+kes  Fix memory pool call in ua_output.c. bug #934.
+kes  Replace fnmatch.c and fnmatch.h by modified BSD versions.
+     Add test program to fnmatch.c
+02Sep07
+kes  Integrate patch to README.vc8 from 
+     Hederer Jean-Sébastien <hedererjs@asperience.fr, had to manually
+     edit it to get it into Unix patch format.
+kes  Implement mkpath.c to replace old FSF makepath.c
+01Sep07
+kes  Implement savecwd.h and savecwd.c. Remove FSF versions.
 
-Changes to 1.37.17:
-07May05
-- Implement cstrlen() in sql list routines.
-- Implement caching of attributes to add the        
-  signature so that only one DB call will be made
-  per file. Not yet turned on.
-- Fix Win32 build for TLS.
-- Optimize File pruning to eliminate one database call. 
-- Fix bug that prevented File pruning from working.
-- Implement a cstrlen() which returns the character
-  length of a UTF-8 string.
-06May05
-- Move test for MaxStartDelay as suggested by Peter.
-- Implement Python methods (I had to read the Python source
-  code).
-- Implement run() method in Director.
-- Add Priority and Scheduled time to Job report.
-- Add JobInit and JobRun events.
-- Add Priority as Python read/write attribute to Job.
-- Correct typo in bsmtp reported by Jo.
+Release Version 2.2.1
+30Aug07
+kes  Update POTFILES.in
+kes  Cleanup a few underquoted AC_DEFUNs in configure   
+kes  Apply patch from Martin Simmons that adds a test for va_copy to
+     ./configure
+29Aug07
+kes  Fix bug #921 by increasing the number of tries to create a new volume
+     from 11 to 100.
+kes  Rework bmsg in ua_output to use va_copy() so that bvsnprintf()
+     can be called multiple times.  Implement a version for machines
+     without va_copy() that gets a big buffer.
+25Aug07
+kes  Integrate more portable zone offset code into bsmtp.c
+     Submitted by Attila Fülöp.
+24Aug07
+kes  Fix bad SD->FD return status reported by 
+     (James Harper) <james.harper@bendigoit.com.au>
+ebl  Fix a bug in read_close_session which return random status
+     thanks to James Harper
+23Aug07
+kes  Fix (hopefully) bug #930 by doing a db_escape_string() on file  
+     and directory names during restore of single file/directories.
+kes  Add sanity checks to .sql command when string is empty. Hopefully
+     that will resolve Dirks Director crash.
+22Aug07 
+kes  Apply patch submitted by Martin Simmons that corrects a seg fault
+     in the bsmtp chat subroutine when debug is >= 10.
+21Aug07
+kes  Fix Director crash when running bat SQL queries.
+kes  Add David's notes on Item 8: Copy pools.
+18Aug07
+kes  Rework projects file to be current and ready for a vote.
+kes  Enhance lex scanner error message.
+17Aug07
+kes  Tweak LICENSE file to mention BSD code.
+kes  Fix bat.pro.in so that it includes the OpenSSL libraries only
+     if specified on the ./configure.
+kes  Add first (not yet tested) cut of bcomm to the qt-console directory.
+     This class is intended to allow us to open a second bsock to the
+     Director while in the restore subdialog.  
+16Aug07
+kes  Fix configure to create bat Makefile before creating dependencies.
+kes  Eliminate the egg files from the tray-monitor. Use gtk calls.
+kes  Add a tooltip to the tray monitor.
+dvl  Set the Director's PID file before dropping privs. This fixes
+     bug #923.
+15Aug07
+kes  Update AUTHORs file
+kes  Increase the default max concurrent jobs to 20 in FD and SD to
+     correspond with the default .conf files.
+kes  Rewrite the Win32 service routines.  This eliminates the 3 copies
+     some different, of the same file created by RN when porting the 
+     Win32 SD and Dir.
+kes  Rearrange some of the Win32 directories and the placement of the files
+     in them.
+kes  Set DEVELOPER flag in version.h
 
-Changes to 1.37.16 (07May05): released 07May05
-07May05
-- Implement cstrlen() in sql list routines.
-- Implement caching of attributes to add the        
-  signature so that only one DB call will be made
-  per file. Not yet turned on.
-- Fix Win32 build for TLS.
-- Optimize File pruning to eliminate one database call. 
-- Fix bug that prevented File pruning from working.
-- Implement a cstrlen() which returns the character
-  length of a UTF-8 string.
-06May05
-- Move test for MaxStartDelay as suggested by Peter.
-- Implement Python methods (I had to read the Python source
-  code).
-- Implement run() method in Director.
-- Add Priority and Scheduled time to Job report.
-- Add JobInit and JobRun events.
-- Add Priority as Python read/write attribute to Job.
-- Correct typo in bsmtp reported by Jo.
+========================================================================
+Release Version 2.2.0
+09Aug07
+kes  Apply a second doc patch from Marc.
+kes  Apply a doc patch from Marc Schiffbauer <marc@schiffbauer.net> that
+     improves the tips section that discusses how to setup multiple
+     simultaneous jobs.
+08Aug07
+kes  Update bat README file.
+kes  Apply patch from Allan Black <Allan.Black@btconnect.com> that     
+     corrects a typo in the Recycle status check in db_find_next_volume().
+     This will probably fix a number of annoying problems with multiple
+     Recycled volumes.
+kes  Modify most of dird/msgchan.c to use bsock class calls rather than
+     bnet calls -- no functionality change.
+07Aug07 
+kes  Modify the Verify output to specify if files are missing on    
+     the Volume(s) or disk.  Fixes confusion in bug #916.
+kes  When more than one Volume is read in a migration job, the last
+     Volume bytes reported are from the last read volume rather than
+     the last written volume. Fixed. This fixes bug #910.
+kes  Fix display of Recycle flag after update volume=foo recycle=yes.
+     It previously printed New Recyle flag is: no. This fixes bug
+     #917.
+06Aug07
+kes  Correct seg fault when switching tape drives during restore.
+kes  Commit uid_gid_name.c (replacement for idcache.c), but will not
+     be used until after 2.2.0 release.
+04Aug07
+kes  Remove fnmatch() in SD that permitted wild card specifications.
+     This fixes bug #914.
+31Jul07
+kes  Fix %g in filename returned by SQL for browse tree reported by
+     Dirk.
+kes  Fix configure so that it puts config.out in the cwd rather than
+     in src/qt-console
+kes  Attempt to fix the locking problem reported by Eric in bug #906.
+kes  Make berrno class to leave errno unchanged after constructor call.
+kes  Make bnet_server use the heap rather than the stack to allocate
+     its socket fd pointers to avoid a crash at termination. Problem
+     reported by Ryan Novosielski and bugs pointed out by Martin Simmons.
+30Jul07 
+kes  Create new depkgs and depkgs-qt separating the qwt out of depkgs
+     and putting it in depkgs-qt along with Qt4.3.
+29Jul07
+kes  Rework code in acquire.c that switches drives for reading when
+     the Media Type does not match. This should fix bug #906
+28Jul07
+ebl  Fix a director segfault during job setup #907
+kes  Correct seg fault in postgresql when first operation returns no
+     rows.  Fixes Dirks File browser problem seg fault with bat.
+25Jul07
+kes  Apply patch from Felix Schwarz <Felix.Schwarz@web.de> that allows
+     building wxconsole on Fedora 7 with wxWidgets 2.8 (it works with
+     2.6 as well).
+24Jul07 
+kes  Implement PopUp YES/NO dialog for bat.
+23Jul07
+ebl  Fix a compilation bug when using #define BACL_WANT_NUMERIC_IDS
+22Jul07
+kes  Correct RunScript to terminate job in FD on failure.
+kes  Change abort_on_error and AbortJobOnError to fail_on_error
+     and FailJobOnError in RunScripts.
+kes  Minor tweaks of code formating in RunScripts, principally to
+     avoid depassing 80 columns.
+21Jul07
+kes  Eliminate one #ifdef Win32 in bsmtp
+kes  Implement grow tool to grow a file for testing very large databases.
+kes  Add big-vol-test to test Bacula seeking with > 5GB.
+Release 2.1.28 beta
+19Jul07
+kes  Modify find_next_volume() to return all values in Media record.
+kes  Ensure that we keep Recycle Pool when moving Scratch volumes.
 
-Changes to 1.37.16 (03May05): released 05May05
-03May05
-- Make a few tls ifdef tweaks.
-- Fix create_file.c Win32 problem pointed out by
-  Peter Sjoberg.
-- Fix really ugly bstrncpy() but found by Thorsten.
-- Move winapi.h/c from findlib to lib for inclusion in 
-  multiple places.
-02May05
-- Thorsten Engel finished his work on Win32 Unicode. We
-  now have a single executable that runs on all Win32 machines.
-- Move job initialization code after job scheduling so that
-  Verify jobs check for the prior JobId after they are really
-  started rather than before.
-- Fix lib/fnmatch.c so that it does proper testing before folding.
-- More documentation -- at tls and ansi labels chapters.
-- Fix fileset_convert.pl to handle empty Exclude statements.
-- Turn regex back off in Win32
-01May05
-- Fix sign extension problem in lex.c that reads UTF-8 
-  with Chinese characters incorrectly.
+Release 2.1.28 beta
+18Jul07
+kes  Update Release notes 
+17Jul07
+ebl  fix a bug in get_scratch_volume() report by Andreas Helmcke
+     Warning, in previous beta version, all media get from scratch keep their
+     old retention.
+16Jul07
+kes  Tweaked Win32 installer to remove temp conf files at uninstall time.
+     This should fix bug #842. Made a note to look at removing the temp
+     files at the end of the install.
+kes  Add ability to mount and unmount a file device providing it is
+     marked as being removable and has the appropriate mount and unmount
+     commands defined in the Device resource. This fixes bug #830.
+kes  When applying a storage override, release all previous storage
+     definitions rather than just prepending the new storage.
+     This should prevent a good deal of confusion.
+14Jul07
+kes  Implement ./configure search for qwt libraries.
+13Jul07
+kes  Disable posting the WM_CLOSE message in KillRunningCopy of the 
+     Win32 FD.  This should fix bug #893.
+kes  Remove an unnecessary beep in Win32 init code.
+kes  Update copyright dates in Win32 executable about boxes.
+kes  Replace the FSF copyrighted getopt.c and getopt.h in the Win32
+     code with a BSD getopt.c and getopt.h.
+kes  Remove sched.h from the Win32 compat directory -- not used.
+kes  Remove the Exit menu item from the Win32 tray monitor. If you really
+     need to shut it down, do it through the services panel or the command
+     line.
+kes  Remove some inappropriate Bacula FSFE copyrights.
+ebl  Tweak status client=xxx to be more easy to parse (more like in 2.0.x)
+kes  Fix regress config non-portable test as pointed out by
+     Florian Heigl <florian.heigl@gmail.com>
+kes  Fix PSCMD for HP-UX in configure.in to have proper syntax.
+     as pointed out by Florian Heigl <florian.heigl@gmail.com>
+12Jul07
+kes  Fix missing rctx. prefixes on the Darwin code in src/filed/restore.c
+     Reported by Frank Sweetser.
 
-Changes to 1.37.14:
-30Apr05
-- Remove a few HAVE_TLS #ifdefs
-- Implement final Python style interface. More implemention to
-  be done, but the interface should change little if at all.
-28Apr05
-- Make default no tls support. You must add 
-  --with-openssl to get tls support.
-27Apr05
-- Update Web header to include google search in the search
-  box -- thanks to input from Michel Meyers.
-- Fix md5sum so that it builds with the new openssl stuff.
-- Take some enhancements to the md5sum test program proposed
-  by a user.
-26Apr05
-- Apply Tru64 patch supplied by Pascal Pederiva <freebsd@paped.com>
-- Apply Unicode fixes for Win32 from "Thorsten Engel" 
-  <thorsten.engel@matrix-computer.com>
-- More work on Python read feature in FD.
-22Apr05
-- Fix (hopefully) the ftello() overflow reported by Peter.
-- Landon Fuller committed his TLS patch.
-- Fixed two minor warnings in console.c with TLS turned off.
-- Updated the Makefile.in for wx-windows and tray-monitor
-  to handle TLS. I can only build the tray-monitor.
-- Fix bscan to open tape in read-only mode (actually fix
-  it so that it doesn't use the standard open routine).
-- Correct what appears to be an error in setting the
-  return value in dvd.c
-21Apr05
-- Get FD Python running -- design Python backup interface.
-- Fix seg fault in SD when referencing Alert Command.
-- More documentation.
-- Fix one more thing in Win32 build.
-20Apr05
-- Doc updates
-- Fix Win32 build
-- Put in production here
+Release 2.1.26 beta
+12Jul07
+kes  Fix client-only build.
+kes  Integrate client-only fixes for bsys (initgroups) and conio from
+     Sergey Svishchev <svs@ropnet.ru> for the AIX platform.
+kes  Make arguments to get_scratch_volume() in same order as other
+     such calls.
+kes  Rework the prune_volumes() subroutine so that after purging and
+     no volume found in desired pool, it will check for a scratch 
+     volume. This prevents recycling the whole scratch pool.
+kes  Add code to status storage to print boffset_t (largefile support).
+11Jul07
+kes  Move qwt (Graphics libarary for Qt4) to depkgs.
+kes  You now need a --with-qwt=<dir> to be able to build bat.
+kes  Update src/win32/cats/bacula_cats.def to include the new       
+     db_get_query_dbids() call on Win32.
+07Jul07
+kes  Correct a problem when selecting a scratch volume and moving
+     it to another pool that lost some columns.
+kes  Tweak some code in ua_update.c to use POOL_MEM instead of POOLMEM.
+kes  Enhance Autochanger error messages to include Volume and device name.
+kes  Rework prune_volumes() code to take account of InChanger flag,
+     and to handle recycling volumes going to the Scratch pool and
+     current pool because the RecyclePool directive.
+kes  Implement a better and more efficient db_get_query_dbids() to
+     handle creating and passing back a list of DBIds.
 
-Changes to 1.37.13:
-19Apr05
-- Fix SQLite and PostgreSQL table creation script syntax
-  problems.
-- Fix new Python code to work for Director.
-- Move lib/python.c to lib/pythonlib.c so that debug output
-  is easier to read (can distinguish lib from dird, ...).
-- Cleanup Python build so that Python is not dragged
-  into programs that don't use it.
+Release 2.1.24 beta
+03Jul07
+kes  Start work on new more efficient DBId subroutine. First use
+     will be for recycling volume to Scratch inchanger.
+kes  Increase number of JobIds in pruning from 1000 to 10000. 
+     This to be replaced by above routine.
+kes  Begin implementation of building Qt4 on Win32.
+kes  Correct typo in fix I added for bad TLS shutdown.
+kes  Pull 2.0.3 patches into patches directory.
+kes  Update Release notes.  Include qt-console in line count.
+kes  Update Projects file.
+30Jun07
+kes  Integrate patch from Sergey Svishchev <svs@ropnet.ru> that fixes 
+     bug in migration code where a job that spanned two volumes
+     was migrated twice.
+29Jun07
+kes  Implement new BST_DESPOOLING blocked state. Change from locking
+     during despooling in SD to blocking. This means that other threads
+     can work with the device structure, in particular the reservations
+     system while despooling.
+28Jun07
+kes  Fix return in reservation message queue that missed clearing
+     the jcr lock (implemented 26Jun07 below).
+kes  Rename a number of dev methods to make locking function names
+     a bit clearer.
+kes  Document locking in lock.c. Move lock structures to new file
+     lock.h.
+26Jun07
+kes  Move reservations message lock to lock jcr only this
+     fixes bug #861.
+kes  Move main SD locking code into lock.c (new file).
+kes  Update Win32 build to include lock.c
 
-Changes to 1.37.12:
-02Apr05
-- Reset NumVols in Pool record from database on every update
-  Pool.
-- Modify DB to support multiple simultaneous copies and
-  RAIT stiping.
-- Pass copy and stripe between DIR and SD and put into
-  the JobMedia DB record.
-- Update and test SQLite and MySQL datebase creation and
-  update scripts.
-- Implement version 9 of the DB.
-31Mar05
-- Convert more atoi to str_to_int64() for DB.
-- Implement filling in NumVols by querying DB rather
-  than trying to keep track of it.
-- Add storage name to string passed to in use storage=
-- Fix newVolume() so that the Python script is always
-  called.
-- Fix handling of pool,PoolId, and storage in ua_output.
-- Same fix in ua_status.c
-- Remove required locking of resources
-- Replace pthread_cond_signal() by pthread_cond_broadcast()
-  hoping to fix the /lib/tls hang problems (lost signal).
-- Move resource locking seaching from parse_conf.c to res.c
-  in src/lib.
-- Modify end of volume handling so that fixup_... does not
-  redo what block.c has already done -- writing Vol info to
-  DIR. This fixes a bug with bad numbers of files on a tape
-  when it filled as reported by Peter.
-- In release_device() do not update the DIR on the Volume
-  info if the the information was already written at the
-  end of the tape.
-28Mar05
-- NOTE!!!! This version has a new DIR <--> SD protocol. Both 
-  must be updated at the same time.
-- Begin implementation of passing all the Storage and Device
-  possibilities to the SD for examination during the reserve 
-  phase.
-- Modify the reserve and acquire code in the SD to make a 
-  job wait if the device is not available.
-- Implement New Volume Each Job in DIR and pass to SD, not yet
-  used.
-- Remove init/update of the Device resource in DIR
-- Remove passing PoolId to SD and back.
-26Mar05
-- Remove \a and -e from error echos in most Makefiles.
-- Add more debug code when there are errors on the tape 
-  to try to find Peter's tape problem.
-- Add wait.c (oops forgot previously).
-- Move all the reserve/acquire_device_for_read/append to have
-  only a DCR as the argument.
-- Rework the reserve_device_for_append() in stored to wait
-  if the drive is not available.  Note! This is a short
-  term solution.
-25Mar05
-- Comment out Multiple Connections in the document.
-- Move the P() and V() to subroutines so that they can be accessed
-  from class methods. The reference to strerror() caused problems.
-- Implement new DEVICE class methods block() and unblock() that
-  do what was previously done in 3 lines of code.
-- Implement wait_for_device(), which will wait for any device
-  to be released then return. This requires a new global mutex
-  and condition variable, and is implemented in src/stored/wait.c
-- Change the code in reserve_device_for_read(), which previously
-  failed the job to use the new device wait code.
-22Mar05
-- Apply reschedule patch to 1.37 code.
-- Add copyright to title page of manual so it is clear.
-- Create patch for rescheduling problem found by Ludovic. Storage
-  pointers were lost during rescheduling.
-- Attempt to fix 2.6 rescue disk -- failed!
-- Start working on adding a wait routine in the SD.
-- Cleanup some old invalid doc in watchdog.
-- Convert a number of references to dev->dev_name to dev->print_name().
-- Add new wait.c file to SD.
-- Add a few more methods to DEVICE in SD to cleanup code a
-  bit -- implement a few of the methods.
-18Mar05
-- Fix more print_name()s for printing device name.
-- Modify open_dev to try 10 times every 6 seconds to
-  open the device if it gets an I/O error (meaning no
-  volume mounted). This gives a bit of settling in time
-  for an autochanger and avoids spurious messages.
-- Change all yes/no to yes|no in the manual.
-- Fix win32 create_file.c typo.
-- Fix a typo in an error message.
-17Mar05
-- Detect if fseeko exists with autoconf. If so, use it 
-  and ftello.
-- Remove old bacula-*.conf from examples directory (out
-  of date).
-- Remove latex-fr index files from CVS.
-- Rewrite code that stops reading the tape so that the
-  tape is marked at EOT, then once the work is done,
-  the EOT flag is removed.
-- Flush output to file after every send in console.
-- Make setting VolFiles to smaller number fatal.
-- Disable Multiple Connections code.
-- Add patch from user for NetBSD statvsfs() fix to
-  fstype.c
-- Take more care with errors in acquire.c
-- Don't run through dvd code in append.c if bad status
-  returned.
-- Modify code so that an autochanger fault is fatal.
-- Use dev->print_name() in more places.
-- Implement dev->can_steal_lock() to simplify code.
-- Make btape re-read first 10000 records on fill command.
-- Check error return and fail job from fseeko and ftello
-  in spool.c.  Don't let a -1 slip in as size.
+Release 2.1.22 beta
+26Jun07
+kes  Dirk committed the qwt library code for drawing graphs in bat.
+kes  Tweak install of qwt so that it is integrated with ./configure.
+25Jun07
+kes  Fix HAVE_BATCH_INSERT to be HAVE_BATCH_FILE_INSERT, pointed
+     out by Eric (my typo).
+ebl  Fix configure.in to get batch mode enable
+kes  Return correct string from authenticate.cpp in bat when connecting
+     to Dir.
+kes  Apply patch suggested by Frank Sweetser to fix bug #888 --     
+     spurious line drops when using TLS.  
+kes  Do not file reparse points when restoring a file that already
+     exists -- Win32.
+24Jun07
+kes  Implement Windows reparse points -- similar to directories, but
+     we do not descend into it. This is a first cut. They seem to 
+     be backed up, but restore is not yet tested.
+kes  Remove restore_blocking in tls code when shutting a socket to leave
+     it in blocking mode. Hopefully this will fix the encryption bug  
+     reported by Frank Sweetser.
+kes  When opening a file for backup, tell the OS that we are going to
+     read it sequentially -- optimization.
+kes  Change variable names in authenticate_director() to not conflict
+     with member names in bat. Caused great confusion with compiler,
+     but no warnings.
+23Jun07
+kes  Queue openssl error messages in case of comm problem.
+kes  Do shutdown() call if socket terminated.
+kes  Remove some duplicated code in tls.c
+kes  Move more of the bsock member variables into private and access
+     them with methods.
+kes  Add Frank Sweetser's tls-test to the regression suite.
+22Jun07
+kes  Add Swedish sv.po file
+21Jun07
+kes  Don't print clock skew message in FD if less than 3 seconds diff.
+kes  Add a bit of VSS info to status client.
+kes  Implement a first cut of Vista VSS, using Win2003 code.
 
-Changes to 1.37.7:
-15Mar05
-- Apply NetBSD patch from kardel in bug 258.
-14Mar05
-- Add a second job and a second client to the default
-  bacula-dir.conf file.
-- Remove old style Include/Excludes.
-- Fix ANSI labels to put EOF1 and EOF2 after each file mark.
-- Add Python to SD and FD.
-12Mar05
-- Implement IBM labels
-- Implement EOF and EOV labels at the end of a volume.
-- Fix a rather ugly problem with the PoolId not getting
-  passed correctly. Now the DIR passes the Pool name and
-  Media Type to the SD, who passes them back when requesting
-  the next Volume. The DIR then looks up the correct PoolId.
-  This takes more time, but always works, AND allows wild
-  card Media Types (i.e. the SD can decide).
-- The DIR <==> SD protocol has changed.
+Release: 2.1.20 beta
+20Jun07
+kes  Fixed bug #886 (multidrive autochanger: SD doesn't use drive with
+     loaded tape but uses first drive).
+kes  Fixed bug #807 Restore encrypted backup failed on Windows 2003
+     This was indeed a Win32 issue.
+19Jun07 
+kes  Simplify search of autochanger for in-use Volume.  
+kes  Fix exit condition of check for in-use volume.  kes Remove
+     inappropriate my_postgresql_free_result() in db_close()
+     routine.
+kes  Fix bad return in FD when encryption signature not found.
+     Probably caused a crash.
+kes  Inhibit missing encryption signature error messages for 
+     file types where no signature computed.
+kes  Correct inverted check on autochanger in reservation system.
+kes  Tweak debug code in autochanger reservation.
+18Jun07
+kes  Add some additional locking in the cats directory in subroutines
+     that modify packet variables called from batch insert.
+kes  Rework how dcrs are allocated. new_dcr() can now be called
+     with an existing pointer, and it will simply clean it up.
+     This allows the reservation system to test various different
+     devices, and will permit easy device changes.
+kes  A bunch of changes all over to handle new new_dcr() calling
+     sequence.
+kes  Work more on the Volume management in the SD. Remember Volumes
+     for tape drives and for autochangers (even virtual disk changers).
+kes  When looking at the Volume list to reserve a drive, handle 
+     autochanger names correctly by interating through the changer 
+     devices.  Also call the Director to see if a Volume is suitable
+     for the current job.
+kes  Fix some bugs in bscan. Make sure all media records are written.
+     Make sure that valid JobMedia records are written for disk files.
+     Previously they were completely wrong.
+kes  Move source tar files for depkgs-mingw32 to www.bacula.org so
+     that the URLs don't change and so that the developers will all
+     work off the same copy. Rebuild from scrach.
+kes  Upgrade Win32 SQLite3 from 3.3.8 to 3.3.17.
 
-Changes to 1.37.6:
-11Mar05
-- Fix scanf of PoolId in catreq to handle 64 bit Ids.
-10Mar05
-- Add new ua_update.c file and move update_cmd there.
-- Modify "update slots" to obtain actual number of slots.
-- Tweak autochanger code to handle new slots request.
-- Modify autochanger code to lock/unlock around slots and
-  update slots code.
-09Mar05
-- Patch the FD so that it does not issue an error message if
-  it attempts to restore the permissions on a Win32 drive.
-- Edit "Resource-name" (physical-name) for the device name
-  everywhere in the SD.
-- Remove .linked.tex files in preparation for cutover to
-  using .tex in place of .wml.
-08Mar05
-- Copy latest config.sub and config.guess from autoconf.
-- Try new way of identifying drives with:
-   "resource-name" (physical-name)
-  More work need to a complete conversion.
-07Mar05
-- Rework some of the autochanger data so that the DIR has   
-  the number of drives.
-- Modify the way the Device info is returned so that it comes
-  back as a special message type and can be sent anytime the
-  Device status changes.
-- Copy the change name and changer command into the device
-  record if none is specified.
-- Require the change command and changer name to be specified in
-  and AutoChanger resource.
-- Force all the Media Type records of all devices in an Autochanger
-  to be the same.
-06Mar05
-- Add new "run" command to Job resource in DIR. This permits
-  cloning a job as many times as you want.
-- Pass PoolId to SD on Query request. It is now used in the
-  Find_media catalog request.
-- Reworked the Device resource in the DIR. Eliminated num_waiting
-  and use_count, but added max_writers, reserved, and PoolId.
-- This DIR is nolonger compatible with previous SDs.
-- Add since and cloned keywords to the Console run command
-  to support cloning.
-- Implemented store_alist_str() to allow multiple string items
-  to be specified in a .conf file.
-- Added %s (since time) to Job code editing.
-- Reworked reserving drives in the SD. It now does it much simpler
-  and correctly. 
-05Mar05
-- Integrate HP-UX patch from  Olivier Mehani <olivier.mehani@linbox.com>
-- Fix FD job.c to test correctly for no level.
+Release: 2.1.18 beta
+16Jun07
+kes  Fix seg fault in FD from incorrect digest size. 
+kes  Fix argument to non-OpenSSL crypto.c subroutine.      
 
-Changes to 1.37.4:
-04Mar05
-- Change Developers to Developer's Guide as requested by Michael.
-- Fix developers link in manual
-- Add additional dcr changes in SD to allow multiple dcrs.
-02Mar05
-- Fix a few problems with the MySQL table create in 1.37.
-- Delete the new tables in the table delete files.
-- Increase the number of items permitted in a conf table.
-- Make Director loop over alternative Devices specified in the
-  Storage resource until one is reserved by SD.
-- Fix storing of StorageId in Media records.
-- Add AutoSelect = yes|no in bacula-sd.conf
-- Add Autochanger support to Label command.
-- Do not autoselect devices with autoselect set false 
-01Mar05
-- Implement setting DIR Storage device to Autochanger
-  name. 
-- Select first available device in Autochanger.
-- Pass back actual device name used.
-- Allow Query of AutoChanger.
-- Modify Query to include name of AutoChanger if 
-  Device belongs to one.
-- Remove old Pool code in jobq.c
-- Add Autoselect flag to query and DEVICE class (still
-  need Directive).
-28Feb05
-- Lock autochanger script when running.
-- Mark Volume not InChanger if correct volume is not     
-  autoloaded.
-- Corrected some typos in the make_xxx_tables.in files.
-- Made preliminary split of pre-run and run code for each
-  job type. This will permit early opening of SD for reserving
-  drives.
-- Add offline and autochanger fields to Device Query record.
-- Correct pthread_mutex_init() for autochanger in SD.
-- Tweak Makefile for LaTeX manual, plus add nav buttons.
-26Feb05
-- Clean up drive reservation system. Add more sanity checks.
-- Implement a few more methods for the DEVICE class in SD.
-- Add latex directories to make clean
-- move DEV_BSIZE to B_DEV_BSIZE to avoid conflicts with
-  certain header files (FreeBSD).
-24Feb05
-- Fix an ASSERT that was triggering in stored/acquire.c
-  attempt to fix a bug report.
-23Feb05
-- Corrected SunOs to SunOS in btraceback (user submitted).
-- Applied patch from Roger HaaÂ¥kansson <hson@ludd.luth.se>
-  to warn the user of defective AWKs during ./configure.
-20Feb05
-- Add some changes submitted by a user for HP client build.
-  Not all changes accepted.
-- Rework code in filed/backup.c to ease #ifdefing and make
-  program flow more obvious.
-- Split DVD code out of dev.c into dvd.c
-- Tweak #ifdefing to add back all the performance measurement
-  #defines in version.h
-- Put most of MTIOCGET code in a subroutine to simplify the
-  mainline code.
-- Make clean remove old CVS files
-- Remove unnecessary image files from Latex directory
-- Implement remaining parts of Storage DB record and
-  its use in the Director.
-- Implement
-  FullMaxWaitTime, Differential Max Wait Time, and               
-  Incremental Max Wait time in Job resource.
-- Start work on SD Autochanger code.
-19Feb05
-- Add back JobId index for MySQL as default -- speeds up 
-  pruning.
-- Add more database fields and fix the update scripts to
-  include the new items.
-- Pass actual level to FD so that ClientRun editing can reflect
-  correct level -- ditto for job status. This makes the DIR
-  incompatible with older clients!
-- Move jobq.c acquire resources to static subroutine so that
-  the code logic becomes clearer. This is in preparation for
-  actually using the new Device resources.
-- Fix some lower case problems in sql_cmds.c reported by
-  Debian.
-- Correct a seg fault in the SD reported by a user. Occurred
-  only when a high debug level was set.
-- Modify init_dev() in dev.c to take JCR as first arg so that
-  proper error messages can be reported in next item.
-- Modify the query and use device SD commands to attempt to
-  open the device if it could not previously be opened.
-- Correct error message for Could not reserve device.
-- Correct some minor details with Autochanger resource in SD.
-18Feb05
-- Fix seg fault if debug level 900 set in SD.
-- Truncate Win32 child return code to 8 bits.
-- Remove some old lld's.
+Release: 2.1.16 beta
+16Jun07
+kes  Remove a few malloc()s from the encryption code.
+kes  Use the class calls to bsock in filed/backup.c and restore.c in
+     place of the old bnet_xxx code.
+kes  Implement code that does an on the fly calculation of the  
+     signing digest during restore of encrypted files.  It makes
+     a best guess at the algorithm, and if it is not correct, will
+     then revert to the old code which reads the file after it is
+     restored.
+kes  Implement at least one missing crypto stream in stream_to_ascii()
+kes  Apply patch from William <chowmeined@gmail.com> that fixes bug
+     #877 where a reload with bad syntax causes Dir to exit.
 
-Changes to 1.37.3:
-16Feb05
-- Make another attempt at fixing the ClientRunXXX return code 
-  bug on Win32 machines.
-- Apply ua_status patch from Carsten Paeth <calle@calle.in-berlin.de>
-  which enforces console ACLs in the status command for Jobs.
-15Feb05
-- Fix Media LabelDate and FirstWritten to be correctly set.
-- Fix deadlock in multiple simultaneous jobs.
-- Fix tape "truncation"/"number of files" after restore bug.
-10Feb05
-- Ensure that correct error messages are returned when
-  reading an ANSI label.
-09Feb05
-- Modified ANSI label code to preserve any ANSI label 
-  already found by skipping over it rather than rewriting
-  it.
-- Split the ANSI label code into ansi_label.c
-- Do not let user relabel an ANSI labeled tape.
-- Applied a patch for the console help command supplied
-  in a bug report. 
-- Added some new dev methods. Most notably was
-  set_eof(), which handles setting all the dev variables
-  when an EOF is just read. This is now used most everywhere
-  in the code.
-07Feb05
-- Added code to detect that no files were inserted into the 
-  tree for a restore. If a specific JobId was specified, the
-  user has the option of restoring everything.
-- More progress in implementing 64 bit DB Ids.
-- Modified the daemon start messages for RH.
-- Implement update scripts for all database types.
-- First cut at implementing restore directory (it will not
-  recurse).
-04Feb05
-- OK, I think ANSI labels work.
-- Added Label Type = ANSI|IBM|Bacula to Device resource in SD.
-  If this is set, it will force writing of the appropriate
-  label type.
-- Added Check Labels = yes|no to Device resource in SD. If this
-  is set, Bacula will check for ANSI labels and accept them,      
-  otherwise, ANSI labels will not be accepted when the tape
-  is first mounted.
-02Feb05
-- Second cut ANSI labels.
-01Feb05
-- Merge Preben's patch for ACLs and for Mac OS X resource forks.
-- Some doc updates.
-- Display more informative message when a device was not
-  found or could not be opened.
-- Add the sqlite3 database scripts. 
-- Add some patches for 1.36.1 (note, I have now prepared
-  a 1.36.2 with all the patches and some new features --
-  to be documented).
-- Some minor doc updates.
-- Add Arno's baculareport.pl script to the examples directory.
-29Jan05 -- after vacation
-- Add support for SQLite3 (it seems to run at 1/2 the speed
-  of SQLite2).  Use --with-sqlite3 instead of --with-sqlite
-  to get SQLite3.
-- Add target for running qemu to boot Rescue CDROM
-- Add code to support kernel 2.6 in Rescue CDROM -- does NOT yet
-  boot correctly.
-- Implement ANSI labels -- not yet tested.
-  This required changes to DB format. No upgrade script yet.
-  Note, more work needed to modify "update" command to handle
-  changing label types, also must restrict volume name lengths
-  to 6 characters.
-- Add new Device, Storage, and MediaType records to DB. No
-  upgrade script yet.
-- Add MediaType to bsr file record types. Not yet used in SD.
-- Permit multiple device specifications in Storage resource in 
-  Dir conf file.
-- Implement Device resources. Director requests Device resource
-  info from SD on startup. 
-- Note!!!! DIR->SD incompatible with previous versions.
-- Remove multiple Storage definitions in Job resource.  One can
-  still specify multiple Storage resources, but they all go into
-  a single alist, and imply sending data to each Storage daemon 
-  simultaneously.
-- Implement Device query command between DIR and SD.
-- Allow DIR to "reserve" a Device. It will then be acquired
-  when the FD connects to the SD.
-- Turn all DIR resources into classes, and implement a few class
-  methods -- more to come.
-- Turn DEVICE in SD into a class, and implement a number of inline
-  class methods -- more to come.
-- I had serious problems with ACL errors on my Laptop, and so had
-  to add the following patch:
-  @@ -181,7 +181,7 @@
-      }
-      /***** Do we really want to silently ignore errors from acl_get_file
-        and acl_to_text?  *****/
-  -   return -1;
-  +   return 0;
-   }
-- Added edit_int64()
-- Reworked and tested a bit the htable routines.
-- Major changes to SD acquire.c -- DIR can now reserve devices. Needs
-  lots of testing!!!!
-- Made a special state code for DVD -- this simplifies the logic
-  of the code, but I probably broke it. Testing needed!!!!
-- Add AutoChanger resource to SD, but not yet used.
+Cut: 2.1.14 beta (not released)
+14Jun07
+kes  Do not free a volume on a tape drive until another volume is
+     mounted and read, or the autochanger unloads the volume.
+     This should help the SD re-use volumes that are already mounted,
+     and should fix bug #886.
+kes  Apply patch from user brettedgar that allows gnome2-console include
+     the OpenSSL libraries, and hence work with SSL.  Fixes bug #885.
+kes  Apply patch from Lucien Weller that fixes day of week calculation
+     because of DST flag problem. Fixes bug #887.
+10Jun07
+kes  Move find_next_appendable_volume() to after acquiring a valid device
+     in reserve.c.  This fixes bug #864 -- confirmed by reporter.
+09Jun07
+kes  Unable to reproduce bug 872. However added additional testing for
+     integer.
+kes  Bug #874 resolved by documenting SQLite limitations.
+kes  Bug #882 resolved by documenting mtx-changer script for new drive code.
+kes  Bug #881 resolved by removing typo in mtx-changer script.
+kes  Made Frank Sweetser's wiki the official Bacula wiki with his
+     approval. Added a link to the wiki on the web page, and implemented
+     a backup from http://paramount.ind.wpi.edu                                          
+08Jun07
+kes  Fix update allfrompool to pass pool name.
+07Jun07
+kes  Convert to pure GPL v2 license.
+kes  Fix sscanf problems reported by Peter Buschman that caused
+     a bus error on Solaris.
+kes  Rework (simplify) the select prompt in bat.
+kes  Move get_jobid_from_tid() into lib and create a 
+     get_jcr_from_tid().
+kes  Use get_jcr_from_tid() to conver all tls Emsg() to Jmsg().  This
+     should definitely fix the problem of lost error messages in the
+     encryption code.
+kes  Remove over zellous addition of FSFE copyright in a few eggxxx files.
+kes  Eliminate tcpd.h from the project. Enclose the #include from the
+     library with extern C ...
+kes  Add print of signal name when a signal is trapped.
 
-Changes to 1.37.2:
-12Jan05
-- Integrate Preben 'Peppe' Guldberg <peppe@wielders.org>'s
-  acl patch. Fix case where configured but no ACL exists.
-  Rework calling arguments to be shorter and positioned
-  more typically in Bacula usage.
-11Jan05
-- Fix scripts/bacula.in to have awk on an environment variable
-  and add comments for Solaris users.
-- Turn off inet_aton in src/lib/address_conf.c for Win32
-- Add new files to win32 build and eliminate a compiler warning.
-- Add sample DVD Device resource to bacula-sd.conf
-08Jan05
-- Integrate Nicolas' patch for direct DVD support.        
-07Jan05
-- Fix fstype error returns.
-- Apply Preben's cleanup.patch which puts back much of the
-  cleanup code in src/filed/restore.c
-06Jan05
-- Apply all of Preben's patches, but revert to old backup.c
-  and old restore.c in filed. Also turn off code in new
-  acl.c because of errors.  The new code, when fully implemented
-  moves platform specific code into acl.c.
-  One of the patches also implements WildFile and WildDir -- thanks.
-01Jan05
-- Implement Python in the SD (no events yet though).
-- Fix some typos in the previous commit.
-30Dec04
-- Enhance CDROM boot to include some documentation at boot time.
-- NOTE!!!!! The CDROM will not boot 2.6 kernels because the
-    boot sequence has changed significantly. Updates to come
-    later.
-- Add memtest option to CDROM boot.
-- Include Nicolas' changes to fix llist JobMedia records.
-- Make sure that ClientRunBefore/After messages from the program
-  are terminated with a newline. Add strerror to output error
-  messages.
-- Return program exit status code in Win32.
-29Dec04
-- Add memtest86 to Bacula Rescue disk
-- Enhance Rescue disk startup screen
-24Dec04
-- Move some variables to eliminate Solaris 2.6 compiler warnings.
-- Fix the seg fault at the end of a job in the FD when using
-  old style include/excludes.
-22Dec04
-- Apply Preben's ACL patch.
-- Integrate Preben's restore patch.
-- Integrate Preben's verify teaks.
-- Fix doc/latex/Makefile to copy/remove .eps files when building
-  html and web outputs.
-21Dec04
-- Fix Bacula so that it does not exit if there is a syntax error
-  in its conf file during a reload command. Bug 182.
-- Apply fixes suggested for old Solaris networking.
-  Fixes bug 190.
-- Apply Preben 'Peppe' Guldberg <peppe@wielders.org>
-  three patches that clean up white space:
-  ws.patch.02.strings:
-    Breaks strings that span lines into concatenated strings. I am not sure
-    if you like this one. Other code works with concatenated strings, though.
-  ws.patch.03.trailing:
-    This removes trailing whitespace. No changes resulted from this for
-    my setup.
-  ws.patch.04.leading:
-    This replaces space runs at the start of line with tabs. No changes
-    again.
-- Fix overriding storage specification to be done
-  through a subroutine.
-- Fix autoconf so it runs with FC3. 
-- Add Python4.3 to configure search paths.
-- Always copy and delete storage definitions into jcr.
-- Check that VolumeName supplied by Python is valid. 
-  Return 0 if not.
-19Dec04
-- Fix undefined in non-Python build.
-- Update rescue disk to include mkinitrd
-- Fix umount_drives in rescue disk (only one arg to umount)
-- Ensure that if SD is manually set in Console, it is used.
-- Put generate_event on pointer and plug it in init. This
-  permits using it in /lib
-- Correct despooling size reported to be Job specific rather
-  than for the whole drive.
-18Dec04
-- Fix bug 207. jcr use count off by one when manually
-  scheduling jobs.
-- Remove FNMATCH test in configure.in and always use
-  the one in our library to get the FN_CASEFOLD GNU
-  extensions on all platforms.
-- While using the rescue CDROM after my computer would not
-  boot, I realized that it would be very useful to have
-  a umount_disks. So, it is not implemented, along with
-  updates to the READMEs and some minor tweaks.
-- Moved mounting the CDROM in the rescue boot from /cdrom
-  to /mnt/cdrom (more standard location).
-- Reboot in CDROM rescue should now work -- requires -d
-  option (no write) to work.
-- Hopefully fixed all the IPV6/4 problems and buffer
-  problems with networking in lib. Bugs 190 and 204.
-  Cleaned up a lot of #ifdefing problems by using routines
-  in address_conf.c
-17Dec04
-- Apply Preben 'Peppe' Guldberg <peppe@wielders.org>
-  alist fix patch.
-- Remove duplicate code from chksum.h (mentioned by Preben).
-13Dec04
-- Integrate Tim Oberfoell <oberfoell@web.de> patch to ACLs
-  to handle both the "standard" and "default" ACLs.
-12Dec04
-- Integrated Preben 'Peppe' Guldberg <peppe@wielders.org>
-  three cleanup patches (btest, verify, find).
-- Integrated Preben 'Peppe' Guldberg <peppe@wielders.org>
-  three cleanup patches (backup, chksum, and verify)
-09Dec04
-- Integrated Preben 'Peppe' Guldberg <peppe@wielders.org>
-  patch to avoid doing MTIOCGET on OSes that do not support
-  it such as OpenBSD.
-- Integrated Preben 'Peppe' Guldberg <peppe@wielders.org>
-  patch to add filesystem type matching to FileSets in the
-  Options resource.
-- Integrated Preben 'Peppe' Guldberg <peppe@wielders.org>
-  patch to add Mac OSX resource fork support (save/restore)
-  to Bacula -- HFS Plus support.
-- Add FileSet to client Job listing query.
-06Dec04
-- Integrated Preben 'Peppe' Guldberg <peppe@wielders.org>
-  patch to backup directories skipped (due to no file system
-  changes or no recursion), and to add a slash to the end
-  of the directory name during the match process.
-- Implement Jamie ffolliott <jamieff@inline.net>
-  patch to dird_conf.c that enables Multiple Connections and
-  fixes a typo in show. The rest of his patch awaits my suggested
-  changes.
-05Dec04 
-- Implement run command in Python
-04Dec04 
-- Implement conversion of the manual, and some minor
-  tweaks to the script tags.
-- Apply a patch supplied by Preben 'Peppe' Guldberg that implements
-  ignore case in wild cards and regexes.
-- Fix a truncated line in the above patch due to my cut and paste.
-03Dec04
-- Fix it so that the InChanger flag is only changed for Volumes
-  in the same Pool.
-- Add PIDOF configuration path and apply to bacula.in
-- Add user supplied patch to add inet_aton() of old Solaris
-  systems.
-- Require pools to match before allowing multiple simultaneous
-  accesses to same storage resource.
-- Add patch supplied by Martin to correct buffer overrun in
-  bsnprintf() with no library snprintf().
-02Dec04
-- Apply user supplied patch that implements No Hard Links.
-- Document Python interface
-- Add hardlink keyword patch supplied by David R Bosso <dbosso@lsit.ucsb.edu>
-01Dec04
-- Fix non-python prototypes in dummy routines.
-- Add python 2.3 to config search list (user submitted patch)
-- Add JobStatus to Python variables.
-28Nov04
-- Add "python restart" command in Console.
-- Make built-in variables table driven.
-- First cut of Python Events for Bacula. Director only.
-  StartJob, EndJob, NewVolume events.
+Release: 2.1.12 beta
+04Jun07
+kes  Fix a seg fault in the PostgreSQL driver dereferencing a NULL pointer.
+03Jun07
+kes  Implement SQLITE3_INIT_QUERY in version.h that can do an initial
+     query for SQLite3. Use it to set PRAGMA synchronous = OFF. This
+     makes SQLit3 run 30 times faster, though a bit less safe.
+kes  Implement --with-batch-insert in configure and detection of thread
+     safe libraries.  It is on by default, but turned off if no thread
+     safe library (e.g. SQLite 2) is available.
+02Jun07
+kes  Fix Bacula PostgreSQL buffer overruns.
+kes  Do better checking for NULL results returned from PostgreSQL;
+     implement retry for failed queries; clear results buffer after
+     failed query. Hopefully this will correct the PostgreSQL failures.
+01Jun07
+kes  Implement algorithm to handle only one appendable volume with
+     Prefer Mounted Volumes = no.
+kes  Fix a Bacula PostgreSQL bug dereferencing a NULL pointer      
+     returned from a query.
+kes  Make volume lock recursive.
+kes  Implement an additional volume reservation algorithm that
+     starts by considering all reserved volumes then uses the
+     old brute force algorithm of searching the resources to
+     find a suitable device.
+kes  Add new reservations debug code and refine the old code.
+kes  Update the win32/dll/bacula.defs file.
+29May07
+kes  Tweak reservations algorithm to permit a few more cases, i.e.
+     volume reserved, but on different drive, ...
+kes  Enhance SD status to include Pool and Media Type for drive in a
+     more readable format (a bit longer). 
+kes  Fix PostgreSQL double free.
+28May07
+kes  Minor refactoring of restore decryption code.
+kes  Add code to smartall.c to detect double free of a buffer.
+27May07
+kes  Add < > around %r in from field on mail command of bacula-dir.conf.in
+     so that bsmtp will create a correct email address (mailbox only).
+kes  Modify 'memory' command so that the buffers are listed as 'In use'
+     to avoid confusion with Orphaned buffers.
+kes  I reworked the OpenSSL include/lib flags to be handled in     
+     the standard Bacula way, which should fix bug #863 concerning
+     non-standard OpenSSL libraries.
+26May07
+kes  Implement Help Browser window for bat.
+kes  Fix reload bug that reset StorageId to zero.
+25May07
+kes  Fix TLS #ifdefing when TLS turned off.
+kes  Ensure that when labelling a tape with Slot=0 that InChanger
+     is not set.
+kes  Use DISTINCT to make MySQL and PostgreSQL uar_list_temp query        
+     the same.
+kes  Add StartTime to final uar_sel_jobid_temp query so that we can
+     add DISTINCT (required by PostgreSQL).
+kes  Implement BSOCK authenticate_director() method. Eventually will
+     authenicate all daemons.
+kes  Move several more functions into the BSOCK class.
+24May07
+kes  Add code to tell the OS that we no longer need a cached
+     file that we were reading. In findlib/bfile.c.  Also,
+     only cache files that we are reading. Thanks to
+     Tobias Oetiker <tobi@oetiker.ch> for the idea.
+kes  Tweak to bsmtp to eliminate compiler warnings on Win32.
+kes  Implement script to automatically generate cats and dll .def
+     files for Win32 dll.
+kes  Update README.mingw32 to include new .def file generation.
+kes  Correct typo in UTF-8 error message as reported by:
+     jhernandez <julianhernandez@gmail.com>
+kes  Add additional sm_check() code on debug level 1.
+kes  Set default debug level to 1.
+kes  Trap SIGABRT in attempt to get traceback.
+23May07
+kes  Reduce bat connect timeout from 30 to 15 seconds.
+kes  More restructuring and implementing BSOCK class in place of
+     old bnet.c code.
+kes  Remove a few unnecessary malloc() tests in crypto code.
+kes  Turn off crypto calls for > 128 bits in crypto.c if HAVE_SHA2
+     not defined. Bug reported by Allan Black <Allan.Black@btconnect.com>
+kes  Remove duplicate HAVE_CRYPTO definition in config.h.in
+22May07
+kes  Fix Verify InitCatalog mysql_escape_string() trashing memory.
+     Make buffer bigger.
+kes  Fix Verify InitCatalog. The attributes were not pointing to the
+     correct saved location.
+kes  Implement message callback so that GUI is sure to get all
+     daemon messages. Currently displayed in a dialog in bat.
+kes  Ignore SIGUSR2 (Bacula timer) in bat.
+kes  Apply regress patch from bug #859 to allow regress to work 
+     with Solaris compiler.
+21May07
+kes  Begin adding TLS support to bat.
+kes  Apply UTF-8/16 patch from Yves Orton <demerphq@gmail.com> to
+     clean up lex.c and make it more readable.
+20May07
+kes  Move more bnet functions into the BSOCK class.
+kes  Fix tray-monitor by not requiring a timer interval in bnet_connect()
+kes  Complete change of berrno strerror() method to bstrerror() 
 
+Release: 2.1.10 beta
+18May07
+kes  Cleanup incorrect email addresses in bsmtp.
+kes  Make bat display initial messages rather than discard them.
+16May07
+kes  First cut of adding .mod to the run command.    
+kes  Implement auto display of messages in bat.
+kes  Enhanced preferences to allow all Bacula output to be
+     displayed in bat.
+15May07
+kes  Try to make bsmtp date routines more generic.
+kes  Fixed bug #856 autochanger documentation.
+kes  Rework bsmtp date editing for Win32. This fixes bug #854.
+kes  Add new cats entry point so Win32 builds.
+14May07 
+kes  Attempt to fix bsmtp date editing on OSes without %z editing. 
+     Fixes bug #854.
+kes  Do better checking for the MySQL 64 bit libraries looking for both
+     .a and .so libraries.
+kes  Add a kludge for Ubuntu's non-standard locations for MySQL -- allow
+     /usr/include/mysql/mysql.h AND /usr/lib/... rather than /usr/lib/mysql/...
+kes  Require the thread safe version of MySQL during configure. Thanks
+     to Andre Noll for pointing this out.
+kes  Ensure that calls to find_jobids_from_mediaid_list() check count before
+     continuing in migration code.
+kes  Apply implementation of tray-monitor font derived from gnome-console
+     submitted by Andreas Piesk <a.piesk@gmx.net>
+13May07
+kes  Eliminate important memory loss in SQLite
+kes  Fixed the batch insert MySQL thread specific data that was not
+     being freed. See cats/mysql.c:db_thread_cleanup().
+kes  Fix restore before command.
+kes  Convert old hdr.name to name() in a few places.
+kes  Implement update jobid command.
+kes  Return all time_t dates in db_get_job_record()
+kes  Stop watchdog in SD earlier.
+kes  Put Pool just after Storage in please mount message.
+kes  Fix pointer usage bugs in Verify InitCatalog pointed out by
+     Eric.
+12May07
+kes  Update the po files.
+kes  Fix Verify InitCatalog by making it cache attributes.
+11May07
+kes  Change name bacula-bat to bat for man 1 page to correspond to
+     Makefile.
+kes  Check for client and store NULL pointers in status command.  This
+     fixes bug #845.
+kes  Fix non-ssl build so that it works (add JCR *jcr to crypto structures).
+kes  Fix sign extended editing of %p.
+kes  Clean out a little old #ifdefing in cats/mysql.c
+10May07
+kes  If time diff between DIR and FD is more than 600 seconds convert
+     INFO message to WARNING.
+kes  Implement heap size display in status for all daemons.
+kes  Attempt to fix MySQL db open memory loss (not successfull).
+kes  Don't set SIGKILL and SIGSTOP neither can be trapped.
+kes  Eliminate memory loss in MySQL (possibly other SQLs) during
+     Query. This looks like a MySQL but but by doing extra releases,
+     the memory goes away.  This should fix bug #847.
+09May07 
+kes  When backup fails, cancel SD before waiting for sd termination.
+kes  If SD is waiting for FD to connect during cancel, wake up the 
+     thread.
+kes  Fix fsf code so that errno is correctly reported.
+kes  Apply migration patch (with changes) from Sergey Svishchev <svs@ropnet.ru>
+08May07
+kes  Make lack of Pool directive in Job an ERROR_TERM rather than FATAL
+     so that Bacula doesn't later stumble into a seg fault.
+kes  Use the term Restore Client in the restore Job report.
+kes  Merge patch from Sergey Svishchev <svs@ropnet.ru> that preserves 
+     the original job's FileSetId.
+kes  Merge patch from Sergey Svishchev <svs@ropnet.ru> that implements
+     spooling in migration jobs.  Not yet tested.
+kes  Merge patch from Jorj Bauer <jorj@seas.upenn.edu> that implements
+     reading conf file from a pipe.  However, do it with open_bpipe()
+     rather than popen.  Not yet tested.
+07May07 
+kes  Fix an ugly bug where the VolCatBytes were getting updated
+     during a restore.
+kes  Implement bconsole memory command that prints current memory
+     usage, plus smartalloc dump.
+kes  Clarify some error messages in backup, admin, and migrate.
+kes  Shrink label dialog to smaller size.
+kes  Invert Cancel OK buttons on restore to be OK Cancel.
+kes  More strerror() to bstrerror() conversions.
+06May07 
+kes  Start implementing bstrerror() in place of strerror().
+kes  Stripping path -- seems to work.
+04May07
+kes  Prevent door and port files from being restored (mostly
+     Solaris stuff).
+kes  Free an unreleased buffer in compat code.
+kes  Change console Job name from *Console* to -Console- to eliminate
+     Win32 filename problems.  Put Win32 path separator when creating
+     Console file.  This fixes bug #846.
+kes  Change berrno::strerror() to berrno::bstrerror().  Not yet full
+     implemented.
+kes  Pass jcr to crypt_sign_decode because it creates a new SIGNATURE
+     structure.
+kes  Define b_errno_win32 on Linux to be zero so that it can be or'ed in
+     to force Win32 error message.
+03May07
+kes  First cut strip path. The data should be passed to the FD,
+     but nothing is done with it yet.
+kes  Enhance the digest and signature routines in the crypto
+     library to accept a JCR and to use it to print error messages
+     so that they will go in the Job report rather than the daemon's
+     messages.
+kes  Simplify some of the verify signature code.
+kes  Simplify a few of the alternative returns in the signature 
+     code.
+02May07
+ebl  Use only POSIX regex instead of GNU regex in breg.c for
+     File relocation. It fix broken freebsd compilation.
+kes  Convert all other Dir files to use new ua class message 
+     routines for bat.
+kes  Tentative fix for missing digest signature in bug 807.
+kes  Correct handle problem in new win32_ftruncate routine.
+kes  Convert ua_purge.c and ua_update.c to use new ua class
+     message routines for bat.
+29Apr07 
+kes  Correct incorrect installation of LICENSE in Win32 installer.
+kes  Display LICENSE at the beginning of the Win32 install.
+kes  Attempt to correct the need for the png files to be installed 
+     for bat.
+kes  Reapply my bat.conf install script in qt-console. I think I 
+     editted bat.pro instead of bat.pro.in and it was lost.
+kes  Apply CentOS patches someone sent me. Checks for /var/run/subsys,
+     the /var/lock/subsys for subsysdir.  Also corrects typos in the
+     doc.
+28Apr07
+kes  First cut update job.
+kes  Correct configure to include qmake of src/qt-console directory.
+26Apr07
+kes  Make restore job yes/mod/no print in one command so GUI works.
+kes  First cut implementing backup and restore client.
+kes  Correct editing in Verify output that caused a seg fault.
+25Apr07
+kes  Insure that bat.conf is not overwritten during installation.
+kes  Fix important bug in db_sql_query() in mysql.c.  It was introduced
+     while I was implementing migration in March 2006 !
+24Apr07
+ebl  Cleanup file relocation, using char *RegexWhere instead of
+     char *where + bool where_use_regexp
+kes  Update some manpages and add bat manpage.
+kes  Make a first cut at converting bacula.spec.in for bwx-console
+     and bgnome-console.
+kes  Apply patch from John Goerzen to add hostname as fourth argument
+     to make_catalog_backup script.
+kes  Fix typos I introduced into bsmtp.c
+kes  Make pm_strxxx() routines handle input of NULL pointer. This
+     is to protect from NULL pointers returned from SQL databases.
+kes  Correct typo in bacula-sd manpage as pointed out by John Goerzen.
+kes  Add more debug to FIFO code -- fix fifo regression test.
+23Apr07
+kes  Implement posix_fadvise in FD, and for reading spool files in SD.
+kes  Add thread timer to bnet_connect() to break from OS if wait time
+     expires.
+22Apr07
+kes  Update Win32 build to include new files, new symbols, and    
+     renamed files.
+kes  Implement socket level heartbeat (tcp_keepidle)
+ebl  Commit File relocation patch
+kes  Make bat have 'make install' target.
+kes  Warn during install if old gnome-console binary found.
+kes  Warn during install if old wx-console binary found.
+kes  Add -8 option to bsmtp command line to add content type utf-8. 
+     Fixes bug #809. (Character coding problem in bsmtp).
+kes  If < is found in target (from, to, cc) then do not enclose the
+     target in < >  in bsmtp. Fixes bug #772  (malformed address).
+kes  When printing certain items in dbcheck, stop after 300000.
+     Fixes bug #822. (dbcheck loops).
+kes  Incorrect status in Dir after waiting for mount with poll set.
+     Fixes bug #825.
+21Apr07 
+kes  Extend idea of Prefer Mounted Volumes to mean a volume about
+     to be mounted.
+kes  Print waiting to reserve a device every 5 mins.           
+20Apr07
+kes  Don't call close_part in label.c if tape and relabel.
+kes  Don't free volume if busy in close() -- should help with
+     bug 801.
+ebl  Fix #824 RunScript bug (After script could be execute twice)
+     Now, Before Script can use RunsOnSuccess and RunsOnFailure options
+     By default (like before) RunsOnSuccess=true and RunsOnFailure=false
+     Add a regression script to test RunScript
+19Apr07
+kes  Correct usage of MTIOCLRERR ioctl for clearing persistant errors
+     on Solaris.
+18Apr07
+kes  The bgnome-console (gnome-console) and bwx-console (wx-console) are
+     deprecated. No additional bugs will be fixed, and they will be dropped
+     in a future release (probably 2.4.0).
+kes  Change name of wx-console to bwx-console to make it more Bacula
+     unique.
+kes  Change the name of gnome-console to bgnome-console to make it
+     more Bacula unique.
+14Apr07
+kes  Some time in March, a Feature Request with patch from Jorj Bauer
+     <jorj@seas.upenn.edu> was committed by Landon (with my approval).
+     It implements:
+     The ability for the director to validate a Client (FD) CN against
+     an arbitrary set of patterns rather than the hostname, with
+     A new 'TLS Allowed CN' set of directives which are implemented
+     in the Client resource.  Then pattern matching is used in place
+     of hostname matching against the Certificate's CN. As an example, we
+     have certificates which (a) use a local CA, and (b) have a CN of the
+     form client_123.
+kes  Add new/changed entry points to Win32 build
+kes  Create unaccepted-projects for projects that are not accepted.
+kes  Simplify locking in the reservations system.
+kes  Add more debug code in reservations.
+kes  Make sure error condition on reserving a volume is handled correctly.
+kes  Correct handling of volume_in_use.
+kes  Correct handling of initializing a device.
+kes  Move handling of broadcasting releasing a device into release_device().
+kes  Correct attaching dcr to dev so that it is only done if device
+     is properly initiated.
+12Apr07
+kes  Locking debug level tweaks in SD.
+kes  Tweak new Volume code.
+11Apr07
+kes  Add exec external-command [wait-seconds] to bconsole. This
+     executes the external-command.  Note! normally external-command
+     should be enclosed in double quotes.
+kes  Turn the .die command on only if DEVELOPER is defined -- i.e.
+     it should normally be off in a production system.
+10Apr07
+kes  Implement die command for SD so that we can force it to dump.
+kes  Implement SD lock debug code.
+kes  Implement new algorithm for keeping Volume list in SD.  It
+     is now owned by the device.
+04Apr07
+kes  Implement new code for freeing in use volumes that should 
+     resolve if not all, some of the problems of multiple drive
+     tape conflicts described in bug 801.
+03Apr07
+kes  Fix gui/bacula-web/images files in svn.
+kes  Turn on FreeBSD/OpenBSD code to set EOT model on tape.
+02Apr07
+ebl  Fix a bug in batch mode (in string escape)
+kes  Correct migration prune SQL typo that crept in in a    
+     recent 2.1.x change.
+01Apr07
+kes  Move bnet_despool() into class in bsock.c
+kes  Modify job report to include director name and Build OS.
+kes  Move drop root privilege and check_catalog() before fork.
+kes  Add update database scripts (version 9 to 10) to updatedb directory.
+31Mar07
+ebl  Check size and age of each file after its backup to see if
+     it has changed during backup, if 'checkfilechanges' is set.
+     The FD will do an extra check (stat(2)) after
+     each file backup. mtime, ctime and size are compared with
+     'before backup' information. If time or size mismatch, an
+     error message will be generated. You must upgrade FD to use it.
+30Mar07
+kes  Make database name and user configurable
+     --with-db-name=xxx --with-db-user=xxx
+kes  Add back database type to message.c for debugging.
+29Mar07
+kes  Implement dir_sql() which issues an SQL query.
+kes  Modify bat medialist to use dir_sql() and do some minor C++
+     formatting as well as eliminating a number of pointers, simplifing
+     the code.
+28Mar07
+kes  Fix some of the mtx-changer grep commands for tape label readers.
+kes  Convert a number of bsendmsg into the appropriate send/warning/error
+     message class calls.
+kes  Suppress the using database message in the .sql command.
+kes  Correct an incorrect bnet_tls_client prototype -- patch from Martin.
+27Mar07
+kes  Add context menu for floating a window.
+kes  Some minor cleanup and name changes in qt-console
+kes  Add doing mt setblk 0 in Win32 mtx-changer.
+kes  Apply Martin's bug fix to move definition of ENODATA for 
+     FreeBSD to bsock.c
+ebl  Add a BUSY handler to sqlite to be able to use multi_db = 1 with
+     sqlite2 and sqlite3.
+26Mar07
+kes  More pruning cleanup.
+kes  Turn on wait_for_drive by default in mtx-changer.
+kes  Turn on Batch insert code by default as it now passes regression.
+kes  Add ./configure --enable-bat to enable building of Bat.   
+     No install yet though.
+25Mar07
+kes  Implement a new .sql command for bat.
+kes  Implement code to turn off pruning in obtaining the next volume.
+     Pruning is turned off for the status dir command, but turned on
+     for SD requests and for the list nextvolume command.
+24Mar07
+kes  Correct Qmsg() that was not updated correctly when committing a
+     previous change (probably the recent TLS patch).
+23Mar07
+kes  Write new subroutine is_volume_purged() that explicitly checks
+     if the Volume is purged, and if so marks it as such. This should
+     resolve problems reported about needing to mount twice to recycle
+     volumes.
+kes  Rewrite pruning algorithm to do more work in the SQL engine, and
+     to pass a list of JobIds to be deleted to SQL.  Also, minimize the
+     amount of duplicated code.     
+kes  Do volume pruning only for the Media Type desired (reduces pruning time
+     if multiple Media Types are in the same pool).
+kes  Implement more detailed info in the Job report for the Bacula version
+     and architecture.
+kes  Switch from POOLMEM to POOL_MEM (a real class) in ua_prune.c and
+     ua_purge.c.
+ebl  Add bbatch tool to bench database and insert mode.
+     Fix sql quote stuff in batch mode
+     Fix sql stuff for mysql
+22Mar07
+kes  Correct problems with am/pm scheduling. Fixes bug #808.
+kes  Implement new prunning code that prunes up to 1000 jobs at
+     the same time.  The same technique can be applied to a number
+     of other prune/purge subroutines.
+kes  Add an insanity check when starting a new tape job to ensure
+     that the tape position has not been changed. If so fail the
+     job.
+kes  Fix Win32 build for dlls to add the folllowing:
+     src/lib/bsock.c -- new file with new entry points
+     src/lib/dlist.c  -- new entry points
+     src/cats/sql_create.c -- new entry point
+     src/cats/sql_cmds.c -- new DATA item exported
+21Mar07
+ebl  batch mode cleanup bscan-test is ok now.
+kes  Implement SD code to check length of disk volume before appending.
+18Mar07
+kes  Correct return status on db_batch... routines.
+kes  Add call to db_write_batch_file_records() to migration code.
+ebl  Fix AfterJob timing
+kes  Move the checking of the database in initializion of the Director
+     to after we drop privileges.  This avoids the need for both root
+     and bacula access to the DB.
+kes  Correct a misplaced variable definition in src/filed/backup.c
+kes  Correct how the new batch insert db_create_attributes_record()
+     uses the arguments.  Caused a seg fault in bscan.
+kes  Implement lock() and unlock() methods in DEVICE class.
+     Implement block() and set_block(xx) methods in DEVICE class.
+kes  Modify bnet_connect() so that it uses time() to check for the
+     wait time expiring (on some OSes, some system calls may not
+     return immediately).
+kes  Modify Verify to obtain the previous JobId when it is actually
+     running rather than at schedule time (as it was in 1.38.x).     
+kes  Fix src/job.c to handle MaxWaitTime correctly.  This should
+     fix bug #802.
+kes  When checking pid in pid file, continue running if the pid is
+     the same as ours. This occurs on IRIX after a system crash.
+     Fixes bug #797.
+10Mar07
+kes  Extend new GUI API.
+kes  Make the ua structure a class, and implement send_msg(),
+     error_msg(), warning_msg(), and info_msg().
+08Mar07
+kes  Apply fix from for building wx-console on the Mac from
+     bug #798.
+kes  Implement new select mechanism for GUI programs.
+kes  Reorganize initialization of stackedWidgets in bat.
+07Mar07
+kes  Add updated nagios plugin supplied by Christian Masopust.
+05Mar07
+kes  More bat implementation.
+kes  File migrate bug with Pool Occupancy using mediaid instead
+     of jobids.  Fixes bug #795.
+kes  Fix orphaned buffers in filed backup and verify due to
+     crypto buffers not freed during errors.  Fixes bug #789.
+kes  Extend new GUI api code to tree commands.
+kes  Ensure that tree and dot commands check console ACLs.
+kes  Permit marking directory with trailing slash.
+kes  Allow 20 console connections (instead of only 10).
+04Mar07
+kes  Add smartctl call to bacula-sd.conf as an example of getting
+     tape alert info.
+02Mar07
+kes  Modify jobq.c to let simultaneous restore jobs run. This may 
+     cause them to fail if they cannot get a drive.
+kes  Add Client Connect Wait to Storage daemon to permit users to
+     modify the time the SD waits for a FD connection.
+29Feb07
+kes  Correct virtual changer check which was backwards. This caused
+     volumes to be unloaded into slots already occupied.
+28Feb07
+kes  Apply Command ACL filter to JobId list in restore command.
+kes  Correct typeo in var.c patch.
+27Feb07
+kes  Don't let Bacula prune File or Job records for the current Job.
+kes  Fix variable substitution pad + inc bug reported (with patch)
+     in bug #791.
+26Feb07
+kes  Correct SQLite log table index as reported by Luca Berra.
+24Feb07
+ebl  fix fifo stuff, bacula tries to rewind the fifo... Thanks to Andreas
+22Feb07
+kes  Begin implementing new comm signals for API.
+kes  Fix a few places in lib/message.c where the open fd may 
+     not be zeroed.
+kes  Continue implementing lib/bsock.c (real class).  Make jcr,
+     who, host, and port private. There are new methods to access
+     them for non-class use. This required touching a number of files.
+21Feb07
+kes  Add LANG=C to autoconf/randpass so it works with languages other
+     than English.  Fixes bug #788.
+20Feb07
+ebl  Revert ClientRunBeforeJob to old position as in 1.38.X.
+     This fixes bug #780
+     You will not be able to generate Include/Exclude list any more.
+     It will be fixed soon.
+     If you want to use this, you can apply
+     trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch
+19Feb07
+kes  Restore of sockets created false error messages because Bacula
+     no longer restores sockets, but the code was still trying to
+     set the attributes on a non-existent file. Reported by a user.
+ebl  finish RecyclePool feature
+     Media will takes Pool.RecyclePool
+     when moving from Scratch to a Pool or when user will do
+     update volume=xxx frompool
+     To use it, add RecyclePool = aPool to your Pool resource
+        Pool {
+                Name = Default
+                RecyclePool = Scratch
+                ...
+        }
+     TODO: update manual
+kes  Expand new BSOCK class adding signal() and new BNET signals.
+kes  Begin enhancing the dot commands adding a new API function
+     that returns more information and will make it easier
+     to interface to the Director from a program.
+18Feb07
+kes  Make DEVICE fd private. Its new name is m_fd, and can be
+     obtained with dev->fd() outside the class.  This is the
+     first of many DEVICE members to be made private.
+kes  Implement Michael Renner's idea on having a virtual disk
+     changer. I made some minor modifications (e.g. I did not
+     implement the Virtual Changer directive, but simply set
+     the Changer Command to an empty string.
+17Feb07
+kes  Implement a BSOCK send() method that writes the whole record
+     in a single write() request rather than in two.
+ebl  add update volume=xxx recyclepool=yyyy
+     volume takes recyclepool from pool when using update volume=xxx from pool
+16Feb07
+kes  Fix encryption deblocking bug, which caused some restored files
+     to be truncated. This fixes bug #763.
+kes  Add FD event sequence order prepared by Eric -- for RunScripts.
+kes  Fix 12am/pm bug as reported in bug #782 -- scheduler problem.
+13Feb07
+kes  Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1.
+ebl  Use btime_t instead of uint64_t in media patch.
+11Feb07
+kes  Optimize the use of the database a bit in the Status dir command.
+     Only open it when needed, ensure that if any previous database
+     was opened, it is closed.
+10Feb07
+kes  Correct VolCatBytes bug from media patch.
+kes  Apply patch from bug #612 by Rudolf Cejka to speedup pruning
+     in the case of orphaned records.
+kes  Modify dbcheck to handle orphaned JobMedia, Path, Filename,
+     and File records in 300K chunks to be more efficient. This
+     idea came from Juan Luis Frances (if I remember right).
+kes  Apply Eric's scratch patch that moves a purged Volume to
+     the RecyclePool.  Question: how is RecyclePool set? what
+     happens to the ScratchPool?
+kes  Apply Eric's media patch that collects read/write media
+     times as well as byte counts.  This patch requires a
+     simultaneous upgrade of the DIR and SD.  Note, there
+     should be some way to turn off timing. I'm not sure
+     times are in Bacula units.
+kes  Apply Eric's batch-insert patch.
+09Feb07
+kes  Update projects list.
+08Feb07
+kes  Implement Include/Exclude file lists in FD as dlists using
+     the new dlistString class. This permits efficiently having
+     large include/exclude lists and completes project Item 25.
+kes  Fix dird/ua_cmds.c so that a cancel command checks if the
+     console is authorized to cancel the job.  This fixes bug 
+     #767.
+kes  Modify SD so that the VolCatJobs medium record is updated
+     at the beginning of a Job rather than the end.  This
+     fixes bug #775 where exceeding MaxVolJobs caused jobs
+     to fail.
+kes  Added a mutex around getting and setting Volume information
+     so that multiple simultaneous jobs will single thread.
+07Feb07
+     Switch to using Subversion
+kes  Remove src/pygtk-console/ from configure
+06Feb07
+kes  Delete src/lib/btree.c from win32 build, then add rblist.c
+     plus the entrypoints.
+kes  Apply patch supplied that corrects debug print
+     in canceling jobs for max run time.  Supplied as
+     part of bug #621, which was previously fixed.
+05Feb07
+kes  Test on job_canceled() and sd_msg_thread_done inside
+     loop starting the message thread to avoid a race condition.
+     Fixes bug #771.
+kes  Remove rl_catch_signal from console.c as it conflicted
+     with the header definition. Fixes bug #765.
+ebl  Fixes bug #766 about RunsOnClient = Yes (case sensitive)
+04Feb07
+kes  Clarify some stored/acquire messages to indicate if the
+     problem is with read or append.
+02Feb07
+kes  Fix memory leak with storage ids in cats/sql_get.c
+kes  Terminate watchdog earlier to avoid reference to released
+     memory -- reported by Jason Austin.
+kes  Move closing the database from jobq.c to the director daemon
+     termination routine. This fixes memory leaks for shadow jobs
+     (i.e. migration jobs).
+kes  Free up the unique jobid chain items in migrate.c.  This fixes
+     a memory leak problem.
+kes  Convert some ugly looking for statements to use foreach_alist
+     in findlib/find.c.  This will facilitate converting the structures
+     to use dlist (for large include/exclude lists).
+kes  Fix a bug in the btree.c and btree.h routines, then rename them
+     rblist and add them to be built in src/lib.  Include some new
+     methods written by Rudolf Cejka that make the code more readable
+     (hides some of the ugly casting).
+kes  Add set_next() and set_prev() methods which make the code much more 
+     readable. Also add a new dlistString class that facilitates storing
+     strings in dlists.  To be used in the large include/exclude lists.
+kes  Make some trivial modifications to lib/tree.h that use rblist
+     rather than dlist for storing the tree links. This was suggested
+     by Rudolf Cejka.  The result of this is that the restore tree now
+     uses red-black binary trees rather than simple linked lists. This
+     should give rather dramatic speed improvements for directories
+     contining large numbers of directories/files (more than 10000).
+28Jan07 
+kes  Fix maxruntime bug #621.
+26Jan07
+ebl  Implement the include JobID in spool file name project.
+kes  Reorder projects file in order determined by Jan 2007 vote.
+kes  Implement item #12 on project list -- quick release of FD by
+     the SD.
+kes  Fix open of SQLite3 db where user does not have write permission
+     so that DIR does not crash. Fixes bug #761.
+25Jan07
+kes  Add back missing @ in Win32 Makefile.
+kes  Change 'Device not configured to autolabel' from INFO
+     to WARNING.
+kes  Fix jobq.c to restart failed jobs when Reschedule Times = 0 
+     which should restart an indefinite # of times.
+kes  Fix configure --help to print --with-mysql[=DIR]. Same for
+     other DIR specifications.
+23Jan07
+rn   Fix msvc build problems. Fix bacula.dll exports for msvc build.
+     Fix path quoting in SQLite scripts.
+     Fix problems with SHGetFolderPath.
+19Jan07
+kes  Create patches/2.0.1-restart.patch. Fixes bug #755.
+18Jan07
+kes  Fix Job restart on error bug that promotes an Inc to a Full
+     backup.  This should fix bug #755.
+kes  Add qt-console and first cut of code.
 
-              Technical notes on version 1.37  
-                      Nicolas Boichat
+Version 2.0.1
+12Jan07
+kes  Fix Bacula->Documentation link on Win32 to point to index.html
+     instead of bacula.html. Fixed bug #750.
+kes  Return JobId in db_get_job_record() when JobId==0. This should
+     fix bug #741.
+kes  Do not release source pointers when restarting a failed job.
+11Jan07
+kes  Add dynamic dll entry point for SHGetFolderPath to Win32 code.
+     This *should* fix bug #747.
+kes  Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix
+     bug #742.
+09Jan07
+kes  Modify USTORE constructor to set an empty store_source string, 
+     and don't copy the store_source string in a cancel.  Hopefully
+     this will fix Arno's seg fault, bug #744.
+kes  Add back code to disable conio in configure. Fixes bug #743.
+kes  Correct the Options scanner in the FD to correctly handle  
+     SHA1 option, which was eating the next option.  Reported by    
+     Sebastien Guilbaud.
+kes  Add code to indicate when the SD is spooling, spool wait, and 
+     despooling as requested by Alan Brown.
 
-General:
+Version 2.0.0 released: 4 January 2007
 
-Changes to 1.37.*:
-26Oct05
- - dvd.c: update VolParts when writing the last part.
-19Oct05
- - configure: add check for dd, remove check for df
- - block.c:do_dvd_size_checks: Check we are writing to a dvd before doing tests
-   (reported by David Raine on the list, "[Bacula-users] LTO drive - End Of Volume error").
- - Update bacula-sd.conf.in to use dvd-handler correctly.
- - dvd.c:dvd_write_part: Increase timeout when writing the first part (see the code for
-   more details).
-18Oct05
- - Modify .backups command to get a fileset parameter (fix bug #444).
-17Oct05
- - Fix bug when recycling DVD devices (append flag was removed).
- - Add tests for dvd+rw-format in configure script.
- - scripts/dvd-handler: Reformat DVD-RW when needed. This needs dvd+rw-format.
- - Add patch for dvd+rw-tools in patches dir (this should probably be elsewhere).
-16Oct05
- - Remove scripts/dvd-freespace and scripts/dvd-writepart, as they are now
-   merged into scripts/dvd-handler. Note: Documentation needs to be updated.
- - scripts/dvd-handler: "zero" brand-new DVD+/-RW to fix a problem with some
-   DVD-writers, thanks to Arno Lehmann for reporting this, and providing the
-   way to fix it.
- - new scripts/dvd-handler. Note: it also needs a patched version of dvd+rw-tools.
- - new scripts/dvd-freespace. Note: it needs a patched version of dvd+rw-tools.
- - dvd.c:dvd_write_part: Don't write empty part. (Fix 4GB crossing bug reported by Arno Lehmann)
-14Oct05
- - dvd.c:dvd_write_part: Use part_size and not max_part_size when setting write timeout.
- - dvd.c:do_mount_dev: When checking if the DVD is mounted, do not count ., .. and .keep (needed on Gentoo).
-15Aug05
- - Convert dvd-writepart to Python.
- - Increase delay from 3 seconds to 5 seconds between SIGTERM and SIGKILL when
-   killing external programs.
-13Aug05
- - Add gettext macros in autoconf/gettext-macros.
- - Modify how localedir is set in configure.in.
- - Remove setlocale check (useless).
-10Aug05
- - Mark translatable strings in all source files.
-08Aug05
- - Create French and Italian translation files (fr.po, it.po).
- - Add support for translation in configure and Makefiles.
- - Update autoconf/aclocal.m4 so it is automatically created with aclocal
-   (Note: autoconf/gnome-macros is not used anymore, it may be removed).
-30Jul05
- - Fix src/lib/bpipe.c:run_program and run_program_full_output to detect if the watchdog
-   killed the program, and return an error if it is the case.
-26Apr05
- - Modify parse_config to get a LEX_ERROR_HANDLER as a parameter 
- - lex_open_file now returns NULL if the file can't be opened. All calling functions have
-   been adapted.
- - Remove set_exit_on_error function
-07Apr05
- - Fix "unknown device type" problem with DVD devices.
- - Fix crash when there is no media in the DVD drive.
-09Jan05
- - Update the documentation and ReleaseNotes.
-05Jan05
- - Add FreeSpaceCommand in Device (SD configuration file) and implement it.
- - Some modifications (again) on how guessed volume names are handled (now it should work).
- - Part files on the hard disk are removed if they are empty.
-04Jan05
- - Major fixes on how guessed volume names are handled.
- - Minor fix in src/stored/append.c.
- - Replace, when possible, POOLMEM by POOL_MEM in the new code of src/stored/dev.c.
- - New script, scripts/dvd-freespace, which gets the free space available on a writable DVD.
-03Jan05
- - Add WritePartAfterJob directive in Job resource (Director)
- - Add WritePartAfterJob directive in Schedule Resource (Director)
- - Implement these new directives
-02Jan05
- - New function, open_guess_name_dev in src/stored/dev.c, which tries to guess the volume
-   name of a mounted device, so the label can be read.  
- - New script, scripts/dvd-writepart, which write parts to DVD+/-R(W).
- - Removed WriteFirstPartCommand directive in Device (SD configuration file).
- - Use readdir_r instead of readdir (src/stored/dev.c:open_guess_name_dev).
-01Jan05
- - Add RequiresMount, MountPoint, MountCommand, UnmountCommand directives in Device (SD configuration file).
- - Implement these directives (volumes can now be restored from a manually written DVD). 
- - Add WriteFirstPartCommand, WritePartCommand directives in Device (SD configuration file).
- - Implement these directives (DVD writing now works).
- - New function run_program_full_output in src/lib/bpipe.c.
- - Lots of bugfixes and cleanups in the new code.
-29Dec04
- - Add VolParts field in Media table
- - Add MaximumPartSize directive in Device (SD configuration file)
- - File Volumes can now be splitted in multiple files ("parts")
- - Fix SQL error in sql_list while doing "llist jobmedia"