]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/ReleaseNotes
This commit was manufactured by cvs2svn to create tag
[bacula/bacula] / bacula / ReleaseNotes
index 5a024f2a11613b3798346c36de6c4e4b821721a5..09a0a9ca778fd5cba242a17aaacd47bf20b46ff8 100644 (file)
 
-          Release Notes for Bacula 1.35.5
+          Release Notes for Bacula 1.38.7
 
-  Bacula code: Total files = 395 Total lines = 115,062 (*.h *.c *.in)
+  Bacula code: Total files = 419 Total lines = 137,078 (*.h *.c *.in)
+      20,440 additional lines of code since version 1.36.3
 
+!!!! Important !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+  In Bacula version 1.38.5 and prior, there was apparently a
+  compiler bug that caused the Storage daemon to seg fault.
+  I have applied a workaround in version 1.38.6 and greater that
+  seems to work.  If you experience problems, follow the instructions
+  below.
 
-Changes for 1.35.5
-Major Changes:
-- Tray monitor program
-- Bacula Rescue CDROM     
-- Lots of improvements in the Rescue scripts -- better 
-  network detection, better mounting code, ...
-- General bug fixes/stabilization
-- French translation of manual by Ludovic Strappazon well    
-  underway.
-- UTF-8 is supported in conio (some minor cleanup is needed).
-- Improved conf scanning code allowing FileSet components to
-  be put on a single line (previously everything had to be on
-  a different line).
-- Win32 files restored to an alternate directory will have the
-  colon following the drive letter turned into a / e.g. c: 
-  becomes c/. Previously the c: was stripped. This applies only
-  to files written to an alternate directory (i.e. using a where=).
+  If you are compiling for a 64 bit machine, you need to ensure
+  that the code is compiled with the -O0 (- oh zero) option otherwise
+  the SD will crash on most all operations -- apparently due to
+  a compiler bug in gcc's 64 bit code generation.
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-New Directives:
-- Added "Ignore FileSet Changes = yes"
-- Added "Block positioning = yes/no" in Device resource in SD.
-- Added "Multiple connections = yes/no" in Catalog record for
-  allowing multiple simultaneous connections to the database.
-  This is a major performance improvement for PostgreSQL.
+New features:
+- For autochanger get Scratch tape if in autochanger if
+  no appendable Volumes are available.
+- New virtual disk autochanger.  See scripts/disk-changer for
+  documentation.
+- New optional Device resource directive in SD.  'Device Type =',
+  which may have types: File, DVD, Tape, or FIFO.  This can
+  be useful for writing DVDs on FreeBSD where Bacula cannot
+  correctly detect the DVD.
+- Faster restore tree building and uses less memory.
+- The command line keyword job (or jobname) now refers to the
+  name of the job specified in the Job resource; jobid refers
+  as before to the non-unique numeric jobid; and ujobid refers
+  to the unique job identification that Bacula creates for each
+  job.  
+- The job report for Backups has a few more user friendly ways
+  of displaying the information.
+- The wait command can now be made to wait for jobids.
+- New command line keywords are permitted in update volume. They
+  are Inchanger=yes/no, slot=nn.      
+- Add two new console commands: enable job=<job-name> and 
+  disable job=<job-name>. When a job is disabled, it will not
+  be started by the scheduler.  If you disable a job and restart
+  Bacula or reload the .conf file, the job will be re-enabled.
+- Add a new Job resource directive "enable = yes|no".
+- There is a new program named regex in the tools directory that
+  allows you to try regular expressions on your system.
+Major bug fixes:
+- Fix race condition in multiple-drive autochangers where
+  both drives want the same Volume.
+- Do not allow opening default catalog for restricted console
+  if it is not in ACL.
+- Writable FIFOs now work for restore.
+- ACLs are now checked in all dot commands.
+- Multiple drive autochangers and multiple different autochangers
+  should now work correctly (no race conditions for Volume names, 
+  update slots use correct StorageId).
+- Fix bug where drive was always reserved if a restore job failed
+  while in the reservation process.
+   
 
-Items to note!!!
-- As of 1.35.5 you MUST do a database update.
-- All daemons should be compatible with 1.34 with the exception
-  of the new FileSet features such as regular expressions.
-- Regular expressions are not implemented in the Win32 FD.
+Minor bug fixes:
+- See below:
+
+Release 1.38.6-1 (05Apr06) released 
+- Remove timed wait for VSS on Win2K3 as it is not yet
+  implemented.
+- Correct bacula.in script to reference bacula-ctl-xx in the
+  sysconfig directory rather than the bin directory.
+
+Release 1.38.6 (28Mar06) released 29Mar06
+28Mar06
+- Back port from 1.39 fixes to lib/jcr.c to use foreach_jcr() 
+  and new jcr chain locking.
+26Mar06
+- Fix a long standing bug in the bacula start/stop scripts.
+- Attempt to add the new bacula-ctl-* files to the rpm.
+- Switch to using typeof() for list traversing to avoid
+  as many FC5 g++ compiler warnings as possible.
+25Mar06
+- Split the bacula start/start script into four files:
+   bacula         -- starts and stops calling other scripts
+   bacula-ctl-dir -- starts/stops the director
+   bacula-ctl-fd  -- starts/stops the File daemon
+   bacula-ctl-sd  -- starts/stops the Storage daemon
+- Create datestyle fix for PostgreSQL. Fixes bug #574.
+- Correct editing of JobId from int to int64 in fd_cmds.c
+- Eliminate FileSet name race with bash_spaces() and multiple
+  threads by bashing in a local.
+- Fix error return from 'use storage' to print a correct error
+  message rather than nothing.
+- Correct false re-read last block error message when two jobs 
+  are simultaneously writing at the end of a tape.
+- Simplify exit conditions in the reserve.c code to avoid  
+  possible non-release of reservation_lock().
+- Suffle lock order in reserve to avoid deadlock between
+  reservation lock and device mutex.
+- Add Thorsten's VSS timeout code to 1.38 branch.
+- Initialize jcr mutex before first use. Thanks to Thorsten for
+  tracking this down for me !!!! as it broke the Win32 build.
+- Integrate addition of line count limitation to bsmtp -l from
+  Sebastian Stark <stark at tuebingen.mpg.de>
+- Implement regex test program in tools directory.
+- Attempt to fix time problem with bsmtp with foreign langs.
+- Add strip_trailing_newline() submitted by user.
+
+Release 1.38.6 beta6 16Mar06
+- Fix bug #537 to allow arbitrary time to mount a volume for
+  restore, if polling is turned on.     
+- Disallow multiple storage specifications for a job. Should fix Arno's
+  problem.
+- Add back a missing store of poolid in jr.poolid.    
+- If dir_user or dir-group is specified in ./configure apply it to
+  the working-dir. Fixes bug #533.
+- If rescheduling a job cancel the previous incarnation with the SD.
+  Fixes bugs #566 and 557.
+- Fix bug #567 do_message() definition type conflict.
+
+Release 1.38.6 beta5 14Mar06
+- Add more jcr methods and make mutex and use_count private.
+- Create lock/unlock methods for jcr.
+- Fix PostgreSQL bug doing sql_data_seeek() by explicitly reading
+  records to get to seek position.
+- Integrate patch from bug #561 to correct conio.c signal definitions.
+- Fix Rescheduling failed Jobs. Ensure that SD message thread 
+  terminates correctly by doing pthread_kill(). Do not destroy
+  SD cond wait variable between executions of the job. Use local
+  mutex for cond variable to avoid blocking jcr chain. Fix poor 
+  use of jcr use count in jobq.c for restarted jobs.
+- Fix obsolete usage of foreach_dlist() to use foreach_jcr() in
+  lib/jcr.c -- prevents locking the jcr chaing.
+- Apply patch from bug #564, which corrects listing volumes with
+  multiple autochangers. Apply same fix to next volume list.
+- Fix bug #562 where restore bootstrap file is not unique.
+- Use new routine lock_reservations() to lock the reservations
+  system, and call it while looking for a volume in askdir.c.
+  This could possibly fix bug #543.
+- Stop SD command loop if job is canceled.
+
+Release 1.38.6 beta3 4Mar06
+04Mar06
+- The po files should now be current.
+- Fix new sql_use_result() code to properly release the
+  buffers in all cases.
+- Convert to using new Python class definitons with (object).
+- Use the keyword ujobid to mean the unique job id; job or jobname
+  to mean the Job name given on the Name directive, and jobid to
+  be the numeric (non-unique) job id.
+- Allow listing by any of the above.
+- Add the user friendly job report code for reporting job elapsed time
+  and rates with suffexes.
+- Add Priority and JobLevel as Python settable items.
+- Use TEMPORARY table creation where the table is created by
+  Bacula.
+- Add new code submitted by Eric for waiting on specific jobid.
+- Add ACL checking for the dot commands.
+- Fix restore of writable FIFOs.
+- Fix a bug in bpipe where the string was freed too early.
+
+26Feb06
+- Fix bug reported by Arno listing blocks with bls
+- Update the po files at Eric's request.
+
+Release 1.38.6-beta2 25Feb06
+25Feb06
+- Add sql_use_result() define.
 
-Other Items:
-- See below
+Changes to 1.38.6-beta1
+- Don't open default catalog if not in ACL.
+- Add virtual disk autochanger code.
+- Add user supplied bug fix to make two autochangers work
+  correctly using StorageId with InChanger checks.
+- Correct new/old_jcr confusion in copy_storage().
+- Remove & from Job during scan in msgchan.c -- probably
+  trashed the stack.
+- When getting the next Volume if no Volume in Append mode   
+  exists and we are dealing with an Autochanger, search
+  for a Scratch Volume.  
+- Check for missing value in dot commands -- bug fix.
+- Fix bug in update barcodes command line scanning.
+- Make sure Pool Max Vols is respected.
+- Check that user supplied a value before referencing
+  it in restore -- pointed out by Karl Hakimian. 
+- Add Karl Hakimian's table insert code.
+- Don't ask user to select a specific Volume when
+  updating all volumes in a Pool.
+- Remove reservation if set for read when removing dcr.
+- Lock code that requests next appendable volume so that
+  two jobs to get the same Volume at the same time.
+- Add new Device Type = xxx code. Values are file, tape,
+  dvd, and fifo.
+- Preserve certain modes (ST_LABEL|ST_APPEND|ST_READ) across
+  a re-open to change read/write permission on a device.
+- Correct a misplaced double quote in certain autochanger  
+  scripts.
+- Make make_catalog_backup.in a bit more portable.
+- Implement Karl Hakimian's sql_use_result(), which speeds
+  up restore tree building and reduces the memory load.
+- Correct a number of minor bugs in getting a Volume from  
+  the Scratch Pool.
+- Implement additional command line options for update Volume.
+- Don't require user to enter a Volume name when updating
+  all Volumes in a pool.
 
-Changes to 1.35.5:
-22Sep04
-- Incremented the release number because this version requires
-  an update to the database.
-  Use:
-    cd src/cats
-    ./update_bacula_tables  
-  to update an existing database.
-- Implemented EndFile and EndBlock in the Media record. This will
-  allow Bacula to know exactly when to stop reading a tape if the
-  stupid tape driver does not give a logical end of tape indication 
-  and Bacula writes to the end of the tape getting an I/O error.
-- Added new routines to update the database, and there are
-  new database creation routines to add the two new Media columns.
-- The Media record is updated each time a JobMedia record is created.
-  This keeps the Media record up to date.
-- Undid the code to use automatic type converions to char * in
-  POOL_MEM. This is due to the ugly consequences of essentially
-  destroying the class type nature of the class.
-- Removed all the old mp_char() #define code.
+Release 1.38.5 released 19Jan06:
+- Apply label barcodes fix supplied by Rudolf Cejka.
+- Modify standard rpm installation to set SD group to disk
+  so that SD will by default have access to tape drives.
+- Allow users to specify user/group and start options
+  for each daemon in /etc/sysconf/bacula file.
 
-Changes to 1.35.4:
-22Sep04
-- Add additional doc.
-- Implement automatic POOL_MEM type conversion to char *. Thanks
-  to Martin Simmons for the suggestion.
-- Remove some unneeded function overloading -- need removed by
-  automatic type conversion.
-21Sep04
-- Correct segfault in message.c with debug=200 (new code).
-- Fix bug 109 verify with no options prints garbage.
-- Add ioctl(MTIOCGET) call to clrerror_dev() in dev.c. As reported
-  by Frank Kardel, this should clear error conditions on NetBSD.
-20Sep04
-- Modify the rescue script to create mount_drives with
-  the order specified by Philip Nash (mkdir, mount).
-- Tweak install chapter of French manual to add new paragraph
-  from English.
-- Tweak restore tree message to be a bit clearer.
-- Modify watchdog to wakeup after 60 seconds, or wakeup if
-  there is work to do.
-- Modify watchdog stop routine to "ping" watchdog so that it
-  stops immediately rather than after sleep time.
-- Fix btape to use new dcr blocks rather than its own.
-- Fix butil.c to correctly handle Volume names for the
-  utility routines (broke when updating to dcrs).
-11-19Sep04 (vacation)
-- Implement multiple Storage specifications in the Job resource
-  (AND) each containing multiple specifications (OR). Not yet functional.
-  Note, this needs more work as most things now use
-  job->storage[0]->first() rather than looping through devices.
-- Implement "Multiple connections = yes/no" in Catalog record for
-  allowing multiple simultaneous connections to the database.
-- Add new mac.c (Migrate, Archive, Copy) to dird -- not yet implemented.
-- Implement a new POOL_MEM class that automatically allocates
-  and deallocates a pool buffer.
-- Overload a number of utility routines to permit using both
-  POOLMEM and POOL_MEM.
-- Start converting to using POOL_MEM.
-- There were a number of Bacula console ACL checks missing in
-  ua_run.c. It allowed users to run jobs they really should not.
-- Correct a number of dates on the Copyright.
-- Overload pm_strcpy() and pm_strcat() to handle new POOL_MEM
-  class.
-- Overload bash/unbash_spaces to handle new POOL_MEM class.
-- Make a *MASSIVE* pass through the Storage daemon eliminating
-  all use of jcr->VolumeName and jcr->VolCatInfo in favor of
-  dcr->...  
-- Eliminate all all redundant arguments from calling sequences
-  in SD. This poses a number of problems due to the old way blocks
-  and records were allocated and released all the time. They are
-  now contained in the dcr. The problem is that old habits die hard
-  and there are still places where everything is not right.
-- Implement "Block positioning = yes/no" in Device resource in SD.
+Changes to 1.38.4 released 17Jan06:
+- The main changes are to the Director and the Storage daemon,
+  thus there is no need to update your File daemons. Just the
+  same, I do recommend running with the release 1.38.3 Win32
+  FD or later.
+- Add two new queries to query.sql provided by Arno. One
+  list volumes known to the Storage device, and the other
+  lists volumes possibly needing replacement (error, ...).
+- Add periodic (every 24 hours) garbage collection of memory 
+  pool by releasing free buffers.
+- Correct bug counting sized (for display only) in smartall.c
+- Print FD mempool stats if debug > 0 rather than 5.
+- Correct bug in alist.c that re-allocated the list if the
+  number of items goes to zero.
+- Move the reservation system thread locking to the top level
+  so that one job at a time tries all possible drives before
+  waiting.
+- Implement a reservation 'fail' message queue that is built         
+  and destroyed on each pass through the reservation system.
+  These messages are displayed in a 'Jobs waiting to reserve
+  a drive' list during a 'status storage='.  Note, multiple
+  messages will generally print for each JobId because they
+  represent the different problems with either the same drive
+  or different drives.  If this output proves too confusing
+  of voluminous, I will display it only when debug level 1
+  or greater is enabled in the SD.
+- Add enable/disable job=<job-name>.  This command prevents
+  the specified job from being scheduled. Even when disabled,
+  the job can be manually started from the console.
+- During 'update slots' clear all InChanger flags where the
+  StorageId is zero (old Media records).
+- Fix autochanger code to strip leading spaces from returned
+  slots number. Remove bc from chio-changer.
+- Back port a bit of 1.39 crypto code to reduce diffs.
+- Fix first call to autochanger that missed close()ing the
+  drive. Put close() just before each run_program().  Fixes
+  Arno's changer bug.
+- Add PoolId to Job record when updating it at job start time.
+- Pull in more code from 1.39 so that there are fewer file
+  differences (the new ua_dotcmds.c, base64.h, crypto.h
+  hmac.c jcr.c (dird and lib) lib.h md5.h parse_conf.c
+  util.c. Aside from ua_dotcmds.c these are mostly crypto
+  upgrades.
+- Implement new method of walking the jcr chain. The
+  incr/dec of the use_count is done within the walking
+  routines.  This should prevent a jcr from being freed
+  from under the walk routines.
 
-Changes to 1.35.3:
-09Sep04
-- Add "Multiple Connections = yes/no" in catalog record. Only
-  the variable is implemented, no code yet.
-- Close *all* FD unless debug on. 
-08Sep04
-- Add first cut of UTF-8 support to conio. It "seems" to be working
-  pretty well. Moving by words will definitely not work though.
-- Improve detection and setting of gateway in the 
-  network_start script.
-07Sep04
-- Modify scan code so that in most places scanning will
-  continue across the end of a line.
-05Sep04
-- Begin major phase of 1.35 documentation.
-- All outstanding bugs are fixed.
-- Implement changes and improvements to rescue scripts as
-  proposed by Gaurav.
-05Sep04
-- Add correction to Phil's previous patch.
-- Send all queued messages in SD and FD prior to closing down    
-  the job.
-- Send queued messages in Jobs before terminating the job 
-  so that the messages print before the job report.
-- Add a destructor so that the Console ACLs are properly
-  freed.
-04Sep04
-- Implement isolinux boot disk.
-- Integrate Phil Stracchino's code (thanks for Matt's help).
-  It permits lists and ranges of jobids on the delete as in:
-  delete job jobid=1,3,5,11-16
-03Sep04
-- Apply Mike Acar's suggestion when looking for the next volume
-  to check purged volumes for recycling before doing a purge.
-- Make some improvements to CDROM disk.
-- Take another crack at ignoring drive open() errors during
-  polling.
-02Sep04
-- Add eliminate orphaned job records; eliminate admin records,
-  and eliminate restore records to dbcheck.
-- replace sprintf by bsnprintf() in dbcheck.
-- Added scan target to makefile in rescue cd to print scsi
-  devices.
-- Added argument to berrno::strerror() to pass errno.
-- Cleaned up a few more old strerror() calls and eliminated a
-  few of the now unnecessary set_errno() calls.
-- Fixed a bug in the polling code that prevented more than 100
-  label reads (insanity check disabled if polling).
-- Ignore bad return from open_device() if polling.
-- Short circuit code if fatal error return from read_label() in
-  mount.c
-01Sep04
-- Add index file to JobId field of File records for PostgreSQL.
-- Correct several bugs in the job queue scheduler concerning   
-  rescheduled jobs: 1. The SD status was not cleared causing a
-  wrong status to be displayed by Dir after rescheduling. 2. All
-  rescheduled jobs became zombies because the jcr use_count was
-  not decremented properly.
-- Make the Catalog resource required in Client records.
-- Order the listing of where a file is (item 2 on the restore
-  menu) by StartTime.
-- Clarify when a filename only and a full path + filename must
-  be entered in items 2 and 8 of the restore menu.
-- Fix logic error in resolution of names on IPv4 systems.
 
-Changes to 1.35.2 released 01Sep04:
-30Aug04
-- Inhibit printing of FileSet for a restore as it is misleading.
-- Cleaned up a number of minor scripting problems with the CDROM
-  creation.
-- Fixed a race condition causing a Director crash on termination,
-  if a large number of SIGHUPs were sent during a multiple concurrent
-  set of backups.
-28Aug04
-- Completed integration of Rescue CD scripts with Bacula source.
-28Aug04
-- Added Ignore FileSet Changes = yes
-- Added more error checking to the spooling code.
-24Aug04
-- Applied a patch from Peter Eriksson that removes a dynamic stack
-  allocation (replaced by alloca) and fixes some const problems.
-- Fixed a free() of a static variable in the new IP code bnet.c
-- Got the new Bacula Rescue CDROM booting.
-- Replaced a dynamic template by a simple store when using the
-  native C compiler.
-- Reworked some of the block.c error handling.
-- Changed a Dmsgx(000, to Dmsgx(100 in dev.c that was dumping
-  debug output on a user.
-- Integrated patch from 1.34.6 block.c to 1.35
-17Aug04
-- Fix conio.c problem on Solaris.
-- Add debug code to lock_jcr_chain().
-- Lock jcr chain around less code.
-- Implement call by reference for Mmsg() and pm_strxxx() to
-  simplify calls.
-- New IP address specification is used as follows:
-    [sdaddresses|diraddresses|fdaddresses] = { [[ip|ipv4|ipv6] = { 
-           [[addr|port] = [^ ]+[\n;]+] }] }
+Changes to 1.38.3 released 05Jan06:
+- This is mainly a bug release fix. In addition, the multiple drive
+  reservation algorithm has been rewritten.
+- In addition, the method of handling waiting for tapes to be
+  mounted and the mount messages has been modified.
+  (the above two items are a potential source of problems).
+- Simplify code in askdir.c that waits for creating an appendable
+  volume so that it can handle multiple returns from the wait code.
+- Modify the wait code to permit multiple returns.
+- Return a zero when 'autochanger drives' is called and
+  it is not an autochanger.
+- Make rewind_dev() a method taking a DCR as an argument.
+  This permits closing and reopening the drive if the
+  rewind fails as happens if the drive was loaded while the
+  file descriptor was open. This refreshes the file descriptor.
+- Remove the ST_OPENED flag and always rely on fd < 0 for knowing
+  if the device is open or not.  This should eliminate
+  Arnos problem.
+- Return error if reserve cannot find at least one suitable device.
+- Make wait_for_sysop() return correct state information.
+- Fix Win32 state file problem. write was not using compat
+  code. This should fix bug #500.
+- Modify gui on command to set only GUI mode and not batch.
+- Modify .messages command to always print messages regardless
+  of the mode.                
+- If GUI mode is on, suppress automatic printing of 
+  You have messages. 
+- Modify restore command in wx-console to set gui on and to use
+  only .messages instead of messages.  Hopefully this fixes bug
+  #514.
+- Implement load balancing code with multiple drive autochangers.
+- Rewrite reservation algorithm again. Rename variables to be
+  more logical, add HEARTBEAT with Director, allow cancel of
+  jobs stuck in reservation, add last resourt any_drive.
+- Fix seg fault if user labels a drive directly bug #513
+- Remove quotes around Version as it breaks things.
+- Merge in Aleksandar Milivojevic's mods to the spec file.
+- Apply sparse code fix for raw drives and fifos. Bug 506
+- Thorsten fixed Unicode cd problem with wx-console bug 505.
+- Correct reservation system to do a last ditch try
+  for any mounted volume, then anyone anywhere.
+- Updates to ssh-tunnel from Joshua Kugler.
+- Added a report.pl program from Jonas Bjorklund.            
+- Simplify the O_NONBLOCK open() code for tape drives,
+  and always open nonblocking.
+- Do not wait for open() if EIO returned (shouldn't happen).
+- Eliminate 3 argument to tape open().
+- Correct the slot # edited in the 3995 Bad autochanger unload
+  message.
+- With -S on bscan (show progress) do not divide by zero.
+- Make cancel pthread_cond_signal() pthread_cond_broadcast().
+- When dcr is freed, also broadcast dev->wait_next_vol signal.
+- Remove unused code in wait_for_device.  
+- Make wait_for_device() always return after 60 seconds of wait.
+- Use localhost if no network configured
+- Eliminated duplicate MaxVolBytes in cat update -- bug 509.
+- Update specs to include mysql4 define.
+- Return rec->FileIndex in dcr->VolLastIndex for normal
+  and partial records in read_record().  This allows bscan
+  to get FileIndex at EOT correct.
+- Fix butil.c to correctly set dcr -- fixes seg fault in bls.
+- Apply patch supplied by user (slightly modified) to fix
+  correct detection of holes in block devices and FIFOs. 
+  Bug # 506.
+- Apply patch supplied by user (slightly modified) 
+  to fix SD hang with multiple pools and bad client
+  IP. Fixes bug # 508.
+- Add nagios plugin to the examples directory. Submitted by
+  Christian Masopust.
+- Remove warning message about multiple saves of hardlinked files
+  from find_one.c as it can generate too many warning messages.
+- Reset timeout values before select() per patch from 
+  Frank Sweetser for problems with non-blocking sockets.
+- Unlink the state file if either reading or writing it gets
+  errors.  Hopefully this will fix Win32 exit problems.
+- Get next volume from Scratch pool before creating a volume.
+- Set new Pool defaults in Vol when moved from Scratch Pool.
+- Remove argument from create_bacula_database for SQLite as it
+  caused an error.
+- Fix reservation so that mutexes are properly applied.
+- Rework reservation algorithm so that two drives can be used
+  at the same time.
+- Apply days keyword patch from Alexander.Bergolth at wu-wien.ac.at 
+  If this patch is applied, the number of days can be specified with
+  'list nextvol days=xx'
+  or
+  'status dir days=xx'
+  My use case is to be able to preview the next scheduled job (and the 
+  next tape to be used) on fridays if there are no scheduled jobs during 
+  the weekend.
+- Fix font code in gnome2 console user patch. Fixes bug #501.
+- Fix malformatted bnet error message that caused seg fault
+  fixes bug 502
+- Applied user patch to improve README.vc8 in src/win32.
+- Ensure that StorageId is stored in Media record when ever possible.
+- Remove old code from winservice.cpp
+- Break on error in scan.
+- Fix typo in signal.c
+- Separate read/write DCR in SD.  Add jcr->read_dcr.
+- Cleanup how find_device() works.
+- Remove abs() in bfile.c so that it compiles on Solaris. Bug #491.
+
+Changes to 1.38.2:
+- Fix crash in tray-monitor when daemon disconnects. Bug #479.
+- Fix bnet-server bug found on OpenBSD. Bug #486
+- Fix cancel failure bug. Bug #481
+- Fix failure when Pool name has spaces. Bug #487   
+- Fix SD crash in autochanger code. Mutex failure. Bug #488
+- Fix a couple of free()s in src/filed/acl.c
+- Fix memory overrun in bfile.c in building OS X resource
+  fork filename. Bug #489 
+- Add Pool name to SD status output.
+- Add Python install dir for Solaris to configure. Bug #492
+
+Changes to 1.38.1:
+- Corrected ACL for Solaris (David Duchscher and Attila Fulop).
+- Add bacula_mail_summary.sh to examples directory. It makes
+  a single email summary of any number of jobs. Submitted
+  by Adrew J. Millar.
+- Unmount command now unloads autochanger.
+- Fix hang in FD (Martin Simmons)
+- Fix Win98 stat() problem in FD (Thorsten Engel)
+- Fix update slots which did not clear missing tapes.
+- Fix autostart install for FreeBSD (user reported)
+- Fix several problems with PostgreSQL scripts (Eric Bollinger)
+- Critical: allow restore of the first file of non-portable Win32 backup.
+- Important: with muliple concurrent jobs the autochanger could get
+  confused because of a missing mutex.
+- Fix accessing last slot in label and update slots.       
+- Modify configure.in to add execute option to sqlite3 catalog  
+  scripts.
+- Create update_xxx_table_8_to_9 scripts for updatedb
+- Move the -lcrypt for PostgreSQL after the PostgreSQL libs in
+  autoconf/bacula-macros/db.m4 as suggested by user.  Fixes bug #457.
+- Remove @STATIC_CONS@ from tray-monitor Makefile as suggested
+  by user. Fixes bug #456.
+- AMD64 users see compiler bug warning below!!!!!!!!!
+
+Major Changes in 1.38:
+- Fixed out of order Volumes in restore.
+- Improved algorithm for reserving drives in multiple drive
+  autochangers. Autochange users MUST use the new Autochanger
+  resource in the Storage daemon.
+- There is a new database format that is not compatible
+  with previous databases. You must upgrade if converting
+  from 1.36.x. No changes from version 1.37.30.
+- The Director, Storage daemon, and File daemons are
+  Deamons are not compatible with prior versions. 
+  All FDs must be upgraded at the same time.
+- Support for ANSI/IBM labels.
+- Faster database inserts due to combining the MD5/SHA1 into
+  the attributes record, eliminating one INSERT/file backed up.
+- Python Event support has been added. See below for
+  configuration and details. The implementation is somewhat minimal,
+  so the functionality is not complete. The Python interface
+  has not been extensively tested, so please consider it BETA.
+- DVD writing support, using parts, and some new directives in
+  the Device resource of the Storage configuration file thanks
+  to Nicolas Boichat. Please note that this code is still 
+  BETA and should be carefully tested before using in
+  production.
+- Seven new options keywords in a FileSet resource:
+  ignorecase, fstype, hfsplussupport, wilddir, wildfile, regexdir,
+  and regexfile thanks to Pruben Guldberg). See below for details.
+- Restore of all files for a Job or set of jobs even if the file
+  records have been removed from the catalog.
+- Restore of a directory (non-recursive, i.e. only one level).
+- Support for TLS (ssl) between all the daemon connections thanks
+  to Landon Fuller.                         
+- Any Volume in the Pool named Scratch may be reassigned to any
+  other Pool when a new Volume is needed.
+- You may clone a Job and thus write (almost) the same data
+  to multiple Volumes simultaneously (see below). Actually, 
+  any Job may start any other Job with this mechanism, so it
+  also be used to group jobs.
+- Unicode filename support for Win32 (thanks to Thorsten Engel)
+- Volume Shadow Copy support for Win32 thus the capability to
+  backup exclusively opened files (thanks to Thorsten Engel).
+  A VSS enabled Win32 FD is available.  You must explicitly
+  turn on VSS with 'Enable VSS = yes' in your FileSet resource.
+- New manual format with an index (thanks to Karl Cunningham).
+- New Web site format (thanks to Michael Scherer).
+- SQLite3 support.
+- Web-bacula, previously a separate project by Juan Luis Frances,
+  is now included in the Bacula GUI release. This is a management
+  level tool for reporting the state of Bacula jobs.
+- The code is now Internationalized so that it can be localized
+  in native languages.  Thanks to Nicolas Boichat.
+
+New Directives:
+- New Job directive 'Prefer Mounted Volumes = yes|no' causes the
+  SD to select either an Autochanger or a drive with a valid 
+  Volume already mounted in preference. If none is available,
+  it will select the first available drive.
+- New Run directive in Job resource of DIR. It permits
+  cloning of jobs.  To clone a copy of the current job, use
+     Run = 'job-name level=%l since=\'%s\''
+  Note, job-name is normally the same name as the job that
+  is running but there is no restriction on what you put. If you
+  want to start the job by hand and use job overrides such as       
+  storage=xxx, realize that the job will be started with the
+  default storage values not the overrides.  The level=%l guarantees
+  that the chosen level of the job is the same, and the since=... 
+  ensures that the job uses *exactly* the same time/date for incremental
+  and differential jobs. The since=... is ignored when level=Full.
+  A cloned job will not start additional clones, so it is not possible
+  to recurse.
+- New Options keywords in a FileSet directive (backported to 1.36.3):
+  - WildDir xxx
+    Will do a wild card match against directories (files will not
+    be matched).
+  - WildFile xxx
+    Will do a wild card match against files (directories will not
+    be matched).
+  - RegexDir xxx
+    Will do a regular expression match against directories (files
+    will not be matched).
+  - RegexFile xxx
+    Will do a regular expression match against files( directories
+    will not be matched).
+  - IgnoreCase = yes | no
+    Will ignore case in wild card and regular expression matches.
+    This is handy for Windows where filename case is not significant.
+  - FsType = string
+    where string is a filesystem type: ext2, jfs, ntfs, proc,
+    reiserfs, xfs, usbdevfs, sysfs, smbfs, iso9660.  For ext3
+    systems, use ext2.  You may have multiple fstype directives
+    and thus permit multiple filesystem types.  If the type
+    specified on the fstype directive does not match the
+    filesystem for a particular directive, that directory will
+    not be backed up.  This directive can be used to prevent
+    backing up non-local filesystems.
+  - HFS Plus Support = yes | no 
+    If set, Mac OS X resource forks will be saved and restored.
+- Label Type = ANSI | IBM | Bacula   
+  Implemented in Director Pool resource and in SD Device resource.
+  If it is specified in the SD Device resource, it will take
+  precedence over the value passed from the Director to the SD.
+- Check Labels = yes | no
+  Implemented in the SD Device resource. If you intend to read
+  ANSI or IBM labels, this *must* be set. Even if the volume
+  is not ANSI labeled, you can set this to yes, and Bacula will
+  check the label type.
+- Scripts Directory = <directory> name.  Defines the directory from 
+  which Bacula scripts will be called for events. In fact, Bacula
+  appends this name to the standard Python list of search directories,
+  so the script could also be in any of the Python system directories.
+- In FileSet, you can exclude backing up of hardlinks (if you have
+  a lot, it can be very expensive), by using:
+    HardLinks = no
+  in the Options section. Patch supplied by David R Bosso. Thanks.
+- MaximumPartSize = bytes (SD, Device resource)
+  Defines the maximum part size.
+- Requires Mount = Yes/No (SD, Device resource)
+  Defines if the device require to be mounted to be read, and if it
+  must be written in a special way. If it set, the following directives 
+  must be defined in the same Device resource:
+  + Mount Point = directory
+    Directory where the device must be mounted. 
+  + Mount Command = name-string
+    Command that must be executed to mount the device. Before the command
+    is executed, %a is replaced with the Archive Device, and %m with the 
+    Mount Point.
+  + Unmount Command = name-string
+    Command that must be executed to unmount the device. Before the 
+    command is executed, %a is replaced with the Archive Device, and 
+    %m with the Mount Point.
+  + Write Part Command = name-string
+    Command that must be executed to write a part to the device. Before
+    the command is executed, %a is replaced with the Archive Device, %m 
+    with the Mount Point, %n with the current part number (0-based), 
+    and %v with the current part filename.
+  + Free Space Command = name-string
+    Command that must be executed to check how much free space is left 
+    on the device. Before the command is executed, %a is replaced with 
+    the Archive Device, %m with the Mount Point, %n with the current part
+    number (0-based), and %v with the current part filename.
+- Write Part After Job = Yes/No (DIR, Job Resource, and Schedule Resource)
+  If this directive is set to yes (default no), a new part file will be
+  created after the job is finished.
+- A pile of new Directives to support TLS. Please see the TLS chapter
+  of the manual.
+
+New Commands:
+- 'python restart' restarts the Python interpreter. Rather brutal, make
+   sure no Python scripts are running. This permits you to change
+   a Python script and get Bacula to use the new script.
+
+New configure options:
+- --with-libintl-prefix for defining alternate locations for
+  the NLS internationalization libraries. Not normally required.
+- --datadir  for defining where the language files will be installed
+  required only if you do not want the default /usr/share.
+
+Items to note!!!
+- The Storage daemon now keeps track of what tapes it is using
+  (was not the case in 1.36.x). This means that you must be much
+  more careful when removing tapes and putting up a new one. In
+  general, you should always do a 'unmount' prior to removing a
+  tape, and a 'mount' after putting a new one into the drive.
+- If you use an Autochanger, you MUST update your SD conf file
+  to use the new Autochanger resource.  Otherwise, certain commands
+  such as 'update slots' may not work.
+- You must add --with-python=[DIR] to the configure command line
+  if you want Python support.  Python 2.2, 2.3 and 2.4 should be 
+  automatically detected if in the standard place.
+- When linking with --with-python, there are a few warnings that
+  can be ignored.
+- You must either create a new catalog database or upgrade your
+  old database. After installation, run from your scripts
+  directory:
 
-  so it could look for example like this:
-     SDaddresses  = { ip = {
-            addr = 1.2.3.4; port = 1205; }
-        ipv4 = {
-            addr = 1.2.3.4; port = http; }
-        ipv6 = {
-            addr = 1.2.3.4;
-            port = 1205;
-        }
-        ip = {
-            addr = 1.2.3.4
-            port = 1205
-        }
-        ip = {
-            addr = 1.2.3.4
-        }
-        ip = {
-            addr = 2001:220:222::2
-        }
-        ip = {
-            addr = bluedot.thun.net
-        }
-     }
-  as a consequence, you can now specify multiple IP addresses and
-  ports to be used. In the case of a server, it will listen on
-  all those that you specify. In the case of connecting to the server,
-  Bacula will attempt connecting to one at a time until it succeeds.
-  And, in a few other special cases, Bacula will use only the first
-  address specified.
+       ./upgrade_bacula_tables
 
-  The default port numbers are still the same and the services and hosts 
-  are also resolved by name. So now  you could use the real names for the 
-  port numbers.
+  You can also find this script in the <bacula-source>/src/cats
+  directory.
+- The Director, Storage daemon, and File daemons are
+  Deamons are not compatible with  prior versions. 
+  All FDs must be upgraded at the same time.
+- You must add --with-openssl to the configure command line if
+  you want TLS communications encryption support.
+- Disk seeking during restores does not yet work correctly in
+  all cases, so it is turned off.
+- Note, with gcc (GCC) 4.0.1 20050727 (Red Hat 4.0.1-5) on an
+  AMD64 CPU running 64 bit CentOS4, there is a compiler bug that
+  generates bad code that causes Bacula to segment fault.
+  Typically you will see this in the Storage daemon first.  The
+  solution is to compile Bacula ensuring that no optimization is
+  turned on (normally it is -O2).
+  This same compiler bug has been reported and confirmed with
+  gcc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux) running on
+  an AMD64 CPU.  This for the moment, I would recommend that all
+  users of GCC 4.0.1 or greater turn off all optimization when
+  compiling.
 
-Release 1.35.1 16 August 2004:
-- Added Tape Alert feature (see Alert Command).
-- New IPv6 code (untested)
-- New way of specifying Addresses and Ports -- permits having
-  server listen on multiple ports.
-- Regular expressions in Options directive.
-- Reader/writer programs in Options (not yet fully implemented,
-  please do not use).
-- Fixed specification of bind address on Win32 (thanks to     
-  Martin Simmons).
-- Update all Volumes from Pool record.
-- Update License to terminate rights of anyone suing a GPL licensor.
-- Improved error messages for Win32 and when running external
-  programs (e.g. RunBeforeJob).
-- Implement reload of conf file in Directory on SIGHUP.
-- Building restore tree is much faster on large filesets
-  due to binary insert.
-- Alert Command in Device resource of Storage Daemon.
-- New IP address and port directives.
-- reader = xxx, writer = yyy in Options within FileSet of
-  Director's conf file.
-- regex = xxx in Options within FileSet of Director's
-  conf file.
-- New command options: update AllFromPool updates all
-  Volumes with Pool defaults.
-- .backups client=xxx (for GUI programs).
-- A duration specification may have any number of integer/modificator
-  specifications. E.g.:
-  1 week 2 days 3 hours 10 mins
-  1 month 2 days 30 sec
-- Print error message if Alert Command fails in bpipe_open().
-- Doc Alert command.
-- Eliminate unnecessary class in findlib/attribs.c
-- Add necessary empty files to new tray-monitor directory.
-- Implement Class with template in findlib/attribs.c to do casting
-  of uint64_t into stat packet types to avoid compiler warnings.
-  Thanks to Meno for this idea.
-- Make some modifications to satisfy VC++.
-- Apply Martin Simmons' second patch to compat.cpp to fix the line
-  I previously missed.
-- Apply Meno's fix to bnet that corrects use of ipaddr after free_addresses,
-  back out my kludges, and it works.
-- Modified configure.in to by default add -Wall.
-- Found some problems with printing IP addresses -- will notify Meno.
-- Added printing Pool to Job report.
-- Fixed several places where dlists were not being released 
-  (term_job_server, ...)
-- Started implementing New() for dlists. Spent a lot of time,
-  but could not get it to work.
-- Fixed a mutex deadlock between the job queue scheduler and the
-  watchdog.
-- Made add_address() static.
-- Added bsnprintf to address_conf.c
-- Apply Marin Simmons patch to inet_aton() in compat.
-- Build on Win32 -- required a few changes because of new IP code.
-- Implement program reader code in Dir and FD -- not tested, and
-  a few corrections for writer code are needed in FD.
-- Rework SQL for pruning. Add Admin pruning. Prune failed
-  jobs in Verify and Restore.
-- Don't put commas in listing produced in restore so that users
-  can cut and past JobIds without having commas in the way.
-- Change size_t to socklen_t in filed.c -- reindent a bit.
-- Remove addr_list->size from buf size definition in bnet.c
-- Create a Developer's document.
-- Add prompt for Update volume from pool and update all 
-  Volumes from pool.
-- Implement user friendly time duration input editing.
-- Add buf len argument to edit_utime().
-- Added eliminate orphaned Client records to dbcheck.
-- Implement Alert Command in SD Device conf. 
-- Fix updating a Volume from the pool record -- it never changed
-  anything.
-- Implement updating all Volumes from pool record.
-- Add patch by Denis Shaposhnikov that fixes excludes of directories
-  in new style FileSets.
-- Merge Meno's IPv6-1 code.
-- Update License to terminate rights of anyone suing a GPL licensor.
-- Add Pruning doc sent by Bryce Denney
-- Correct inconsistencies in restore command doc pointed out by user.
-- Don't edit commas in SQL intergers if they are not stricly integer.
-- Update all pools in all DBs when starting the Director.
-- Implement final cut of berrno and update Win32 code.
-- Update copyright to include a termination clause. Add copyright to
-  binaries.
-- Implement .backups client=xxx for Nicolas.
-- Make first cut at implementing berrno class to handle Unix, Win32
-  and bpipe errors. Bpipe still needs to be implemented.
-  This fixes (not yet tested) the Win32 errno problems in the compat lib.
-- Fix btape compile problem reported by Martin Simmons -- thanks.
-- Add ./configure detection of sys/tape.h
-- Apply two fixes to recent changes to dev.c submitted by
-  Martin Simmons.
-- Add checks in btape for correct size of off_t, and correct editing
-  of 32 and 64 bit values.
-- Move supported OS/hardware into a chapter by itself.
-- Fix bscan, which did not handle walking dcr list.
-- Remove old attach_jcr_to_device() code.
-- Fix config from Andy Wettstein's patch to use bitypes.h and detect
-  uint32_t, ... definitions.
-- Fix a few compiler warnings because of casting pointers to int and
-  vise versa.
-- Do some minor cosmetics to query.sql. nothing changed.
-- Don't call stop_thread_timer() in backup.c if timer not started.
-- Fix bug with out of order JobIds on restore.
-- Make watchdog examine queues once every 10 seconds instead of once
-  a second.
-- Add more bools to dev.c
-- Fix walking attached DCRs in bscan.c
-- Doc updates
-- Start work on rescue files. Integrated RAID changes. 
-- Print a message when query.sql moved to query.sql.old during install.
-- Move setting of FreeBSD chflags() to after utime() to avoid error
-  messages is immutable bit is set.
-- Turn off heartbeat in FD when -s is given so that we can 
-  debug without a flood of signals.
-- Close and reopen the device during an append test in
-  btape. This better tests appending as if Bacula stops/restarts.
-- Remove old attach/detach_jcr_to_device() code
-- Add new attached_dcrs code.
-- Remove unnecessary subroutine for bsnprintf.
-- Replace sprintf() by home-grown code in edit_uint64 ...
-- Begin implementation of dev->attached_dcrs. 
-- Remove scripts/fd.in from configure.in
-- Add printing of JobId when a Job is started from the console.
-- Remove fd/fd.in from scripts directory.
-- Fix a number of bugs in dbcheck concerning the -c option
-  (i.e. with a config file).
-- Made RH start scripts use -u and -g options.
-- Many more DCR changes.
-- Add job message indicating that the job has been rescheduled
-  and when.
-- Fix job end time so that it is always updated. Previously it
-  was not updated when a job was rescheduled.
-- Correct SQL for restoring job by path/name. It could sometimes
-  pickup the wrong JobId -- submitted by a user.
-- Add a number of "%s" in editing database errors -- security issue.
-- Ensure that the NumVols is incremented and decremented in the
-  pool record when Volumes are created or deleted.
-- Cleanup error handling when labeling a tape. If vol was read-only,
-  the device would still be marked as having found a label.
-- Put ftCreationTime into st_ctime of stat packet. Hopefully
-  this will fix the problem of noticing files have been moved
-  into the save path after a Full save.
-- Fix bug in "status dir" where not all entries are listed.
-- Cleanup some improper result printing in configure.
-- Optimize a couple of insertions in binary_insert of dlists.
 
-Release 1.35.0 08 July 2004:
-- Apply Christopher Hull's const patch for PostgreSQL
-- Add code to block.c to detect if block header is destroyed.
-- Add debug code for memset checking for zeroing 1900-3000 bytes
-  which is what happened to the block headers.
-- If block header is destroyed, read the next block. Probably
-  should return with new status similar to the SHORT block 
-  return.
-- Add more debug info to bls for bad blocks.
-- More implementation of DCRs.
-- Eliminate argument passing in SD by using dcr.
-- More int->bool conversions.
-- Add file:block to a number of read/write error messages.
-- More int -> bool conversions.
-- Modify the SD piece by piece to use DCRs everywhere.
-- Cleanup some printout for query command. 
-- Fix typo in cats/mysql.c
-- Work on cleaning up tape driver a bit (use bools, better calling
-  sequences).
-- Attempt to fix multi-Volume disk backup. Needs to be tested.
-- Add Regular expressions to FileSet options.
-- Correct configure.in to use ${MAKE} for doing the dependencies.
-- Make MySQL and PostgreSQL try for 30 seconds to connect before
-  giving up.  
-- Correct Gnome 1.4 Makefile to build without cats library.
-- Correct a crash reported (with patch) by Jonathan Soong 
-  when attempting to backup an ACL on a symlinked file.
-- Fixed an off by one bug in the new resources pointer code.      
-  res_head array was one too small.
-- Added Errors to last_job list. This allows detecting jobs
-  that terminated in a warning.
-- Implement setting the Win32 icon to yellow instead of red
-  when the job terminated OK but with warnings.
-- Fix the Win32 makefile and VC project file. The links were
-  not including the Win32 dlls.      
-- Delete some old Win32 code that was turned off.
-- Eliminate a few more Win32 compiler warnings.
-- Reduce the output produced by NIS (Win32 install builder).
-- Simplify some of the #ifdefing in compat.h
-- Rewrite spooling error handling when I/O error occurs. It is
-  a bit tricky, requiring to truncate the file so that a despooling
-  will work correctly. Needs to be tested.
-- Make better subroutines for setting up for a new job.
-- Start putting all DB ids on #defines (going to 64 bits).
-- Fix gnome-console Makefile.in to work again.
-- All "level=Incremental/Decremental" to the estimate command. This
-  required some re-arrangement of subroutines at a fairly low level.
-- Apply Piotr Jaworski's patch (patch-r-status.diff) to update the
-  catalog status when a backup job starts running.
-- Add (char*) cast to readline call in console.c for old readlines.
-- Copy Makefile.in from gnome2-console to gnome-console (to eliminate
-  need for cats library).
-- Modify spooling code to handle write error (e.g. spooling disk full)
-  more gracefully. Previously despooling would fail.
-- Reduce casting in smartall.c a bit and add counters for 
-  bytes, max_bytes, buffers and max_buffers.
-- Fixed reload algorithm to stack both job end callback and the
-  table id.
-- Fixed the orphaned buffer after reload (job_end_push had to be
-  destroyed.
-- Destroy cond var (jcr->term_wait) only if initialized.
-- Sort the Scheduled Jobs list by start-time, priority.
-- Implement resources on a pointer.
-- Fix Gnome console crash on up/down arrow with no history.
-- Finish first cut of SIGHUP code. To make really work need res
-  on a single pointer rather than in fixed memory.
-- Fix a number of places in query.sql where multiple JobIds are
-  printed (due to JobMedia records).
-- Add new query: List jobs on Volume given Volume name.   
-- Correct socket close on Win32 in bnet.c (in addition to compat.cpp).
-  Caused fd leak in Win32 for each connection.
-- Remove vol labeled test in askdir update_volume_info so that non-labeled
-  Volume in catalog can be marked in error.
-- Close socket in SD when connection rejected. Caused fd leaks.
-- Initialize job_start_wait cond variable after every new_jcr() otherwise
-  NetBSD gets error in library when trying to delete it without being inited.
-- Fix typo (9 instead of 0) return status in write_new_volume_label.
-- Fix mount.c to call routine that correctly marks a volume in error.
-- Move code to rewrite volume label to subroutine -- a bit cleaner.
-- Finish implementation and testing of new restore tree code.
-- Implement feedback while tree is loading.
-- Eliminate printing INFO message in UpdateDB (cats) -- it generates
-  "false" error messages.
-- Eliminate some GTK error messages when running the Gnome2 console.
-- Begin restructuring tree.c for inclusion of the binary_insert()
-  routine.         
-- Apply Peter Eriksson's lib file order changes in linking for IRIX.
-- Abort configure if Internal is  selected as the database.
-- Add testimonials to the Web page
-- Add the bugs list to the Web page "lists".
-- Clarify the English in SuSE and Slackware when SD not running.
-- Applied another extern "C" patch from Peter Eriksson.
-- Fixed a bunch of VC warning messages.
-- Applied the patches sent by Andreas Jellinghaus: build Gnome and  
-  wx-console in client-only build if configured; add ./configure option
-  to permit setting of sbin modes -- default is 0745 as before; remove
-  cats library from Gnome console build; remove old version from Gnome
-  About box. Thanks Andreas.
-- Applied Peter Eriksson's const changes to the source code. Thanks Peter.
-- Implemented a binary_insert() method for dlists -- intended to be used
-  in the restore tree routines.
-- Turned on my bsscanf() code, which replaces sscanf() by my routines, which
-  are a subset of sscanf() used by Bacula, but which have known 32/64 bit
-  behavior rather than vendor dependent !@#$%*.
+Other Items Fixed:
+- Security fixes for temp files created in mtx-changer, during
+  ./configure, and during making of Rescue disk.
+- A new script, dvd-handler, in the scripts directory,
+  which is designed to be used as parameters to Write Part Command and
+  Free Space Command. They need the dvd+rw-tools to be installed
+  (http://fy.chalmers.se/~appro/linux/DVD+RW/) AND, the growisofs
+  program must be patched using the 
+  <bacula-source>/patches/dvd+rw-tools-5.21.4.10.8.bacula.patch
+  You must have Python installed to run the scripts.
+- Part files support: File volumes can now be split into multiple
+  files, called 'parts'.
+- For the details of the Python scripting support, please see the new
+  Python Scripting chapter in the manual.
+- The default user/group for the Director and Storage daemon installed
+  by rpms is bacula/bacula, thus you may need to add additional permissions
+  to your database, or modify the permissions of the tape drive.  If
+  all else fails, change to using user=root.  However, it is more secure
+  to use user=bacula.