
          Release Notes for Bacula 1.32f-5

  Bacula code: Total files = 262 Total lines = 80,571 (*.h *.c *.in)

2004-03-08 Version 1.32f-5 06Mar04 Release
- Don't allow a second hard link save of same file to be entered
  into the ua_tree.
- Add a fix to warn the user if he is backing up a hard linked file
  more than once.
- Attempt to fix a few casts from 64 bit pointers to integers so that
  the compiler doesn't complain.
- Fix var.c to compile on the Alpha. 
- Correct dlist routine. This fixes a subtle scheduling bug where
  Jobs would not be run when they should.
- Fix error handling in the wild-card expander.
- Implement trace command in console
- New bacula.spec.in file from Scott
- Add Scott's spec file to the platforms/suse directory
- Modify configure.in to make platforms/suse/bacula.spec
- Add a missing unlock in the jobq handler.
- Update to the latest 1.33 restore tree handler code.
- Fix bug where a soft linked file and a directory had the same name
  by treating the soft link as a directory and putting the entries under
  it. This fixes the bug reported by Alexander Mueller.
- Add a sleep to cancel so that the remove thread can run
  before releasing the jcr 
- Apply Jess Guardiani's second fix to list autochanger volumes without
  opening the drive (necessary on FreeBSD if no tape is in the drive).
- Reworked the command line handler in restore to walk through the
  arguments one at a time. This makes the file= entries work correctly.
  Also reworked the code that takes the MediaType and finds a 
  storage device.
- Add quit command to restore tree handler.
- Make restore tree handler remember if a hard link is present, and
  in doing a mark, only get database entry if there is a hard link.
  mark commands thus run at least 2 orders of magnitude faster.
- Add files=xxx field to run command submitted for restore.   
- Add yes to restore run command if either yes or run is command line
  argument.
- Make "yes" on command line argument skip prompt for modification of
  run job.
- Add markdir and unmarkdir -- both affect only the directory in
  question and do not do a recursive descent.
- Make tree command automatically mark all higher level directories to
  be restored when a directory or a file is selected.  Such directories
  are indicated by preceding the name with a + to indicate that only
  the directory entry is selected and not the whole directory tree.
- Modify a few tree commands to walk through all arguments rather than
  just taking the first one.

2004-01-27 Version 1.32f-4 26Jan04 Release
- Fix crash in restore if bad pool specified on command line and    
  the pool prompt is canceled.
- Remove some potentially bad ASSERTS in bnet.c
- Add Scott's cats/create_sqlite_database.in.patch file
- Add Scott's new spec file.

2004-01-12 Version 1.32f-3 12Jan04 Release
- Modify findlib/makepath.c to create all parent directories with full 
  permissions. This should solve the access problems on restoring files 
  on Win32 systems.
- Modify restore to report **** Restore Error **** if any error
  are found.  I.e.  a file could not be created.
- Change a few errors into warnings -- e.g.  if permissions could
  not be set, but the file is actually restored.

Release 1.32f-2:
- This release has two patches applied:
   1.32f-1-weekofmonth.patch
   1.32f-2-eom-nextvol.patch
- Fix an incorrect calcualtion of the week of the month reported
  by Volker Sauer -- patch 1.
- Fix bug reported by Phil (could not duplicate here) where at the end
  of a Volume, Bacula wanted a new Volume and got into a loop requesting
  it, then gave up -- Patch 2.
- Modify selection of next Volume to select most currently appended Volume,
  or if none oldest recycled Volume (problem reported by Lars) -- Patch 2.
- Added new spec file from Scott.

Changes since 1.32e:
- Note, this change affects only the Win32 FD.
- Fixed Win32 FD crash due to missing argument in status command. It
  always crashed if there was a job that had previously run.  Thanks to
  Christopher Hull for finding and diagnosing this problem.

Most Significant Changes since 1.32e-08Dec03
- Added additional error messages to smtp. 
- Added suse platform directory and configure code. Must be tweaked for
  SuSe.
- Added debian platform directory.
- Fixed fd.in (thanks Dan) to configure subsystem directory.
- Back ported fix to Week of Month from 1.33
- Add JobId to Running jobs and Terminated Jobs status list.
- Fixed "Phil's" bug where after doing a restore from a tape, if the next
  operation was an append to the same tape, the number of files on the
  tape and in the catalog got out of sync.
- Fixed bug in Terminated Jobs status list that repeated the same job.

Most Significant Changes since 1.32d
- All 1.32d patches applied.
- Fixed seg fault in restore of multiple simultaneous jobs to 
  a single Volume.
- Fixed thread race problem in multiple simultaneous jobs to
  a single Volume where the volume lable is not in the first 
  tape block, so the tape is not recognized.
- Enhance "fill" command of btape -- simpler output. Use -v to
  cause last block to be dumped after write and after re-read.
- Added an autochanger test to the btape "test" command. It is 
  automatically invoked if the autochanger is properly configured.  It
  is still a bit primitive but covers the essential of testing
  the mtx-changer script with your autochanger.
- Added forward space file test to btape "test" command.
- New version 1.5.5-1 Cygwin.
- Select the oldest LastWritten volume during recycling.
- Modify SD to update the catalog database when it is shutdown,
  even if the job is canceled.
- The console program will run all commands it finds in ~/.bconsolerc
  at startup.
- Add Dan Langille's changes to the bacula start/stop script that
  permit dropping root permissions just after startup.
- The "mark" command in the restore command now provides feedback 
  on how many files were marked.

Other Changes since 1.32d:
- Fixed getdomainname() prototype on Darwin.
- Fixed an SQL typo (missing space) in "list volumes jobid=xxx"
- Fixed crash with "list job"
- Fixed crash with ' entered as a filename to be restored (any
  name causing an SQL error would cause the crash).
- Fixed | syntax in FileSet Include.
- Corrected crash in restore in some weird cases where the bootstrap 
  file defined in the resource.
- Fixed a crash when storage daemon did not accept unknown Device.   
- Fixed a rare crash in list nextvol
- Fixed a compile error if zlib does not exist.
- Finally got the Gnome console running correctly under Gnome 2.x
- Print human readable message on error by gethostbyname().
- Fixed a time conversion problem in tape label.
- A number of enhancements to btape (more work to be done).
- Updates to Solaris system installation files.
- New bacula.spec.in from Scott Barninger -- including a rescue rpm.
- Slightly different listing and list sorting, more important fields 
  are first.
                  
                                                                                        
Items to note:  !!!!!
- All daemons should be compatible with all other 1.32x versions,       
  you can mix and match (hopefully).


Change in previous releases:
Most Significant Changes since 1.32c
- Mainly a bug fix release.
- Do a clean of both Gnome directories.
- Require that FileSet id match when finding an Incremental
  previous job. This was already the case for a Full.
- Print message if no status returned from FD.
- Correct "Do not forget to mount the drive" message. Test was
  backward.
- "status dir" stopped scanning the run records on the first
  one that matched giving an incomplete listing.
- Edit commas in Bytes on "estimate" command output.

Most Significant Changes since 1.32b
- Implemented a RunAfterFailedJob record in the Job resource.
- Implemented "delete job" command in the Console.
- Gnome 2.0 console compiles and works. 
- Implemented VerifyJob record in the Job resource
  that tells Verify which job to verify (JobId not required) 
- First cut Verify Disk to Catalog
- Fix "status dir" to examine all run commands in Schedule.
- Close unused file descriptors in bpipe.c
- There is now a patch for FreeBSD 4.8 pthreads that
  fixes the problems of data loss at the end of a tape.
  Please see:
  <bacula-source>/platforms/freebsd/pthreads-fix.txt
- Fixed (I think) the elusive Windows "packet too big" bug.
- Added %v to RunBefore/After editing codes. It edits in
  a list of Volumes used for the job (not tested).

Most Significant Changes since 1.32a:
- Improve forward space file/block during restore, many
  optimizations.
- Fix a Bacula bug that did not allow appending to a tape    
  on FreeBSD systems.
- Fix pruning so that it will not prune the current job.
- Modify configure to use non-threaded MySQL client lib if
  the threaded version is not present.
- Implement restore by file before date.
- When pruning don't prune the current job.

Major Changes 1.32a Release:
- Implemented forward space file/block whenever possible 
  during restore. Restoring a small number of files is now  
  much faster.
- There is a new option to restore that allows you   
  to restore files based on their Filename. You can
  also specify a file to read which contains the list.
- Added ClientRunBeforeJob and ClientRunAfterJob.
- Implemented Include | and < in File daemon.
- Automatic labeling of tape Volumes should work now.
- Recycling has been completely restructured and should work.
- Implemented full length time interval qualifiers (e.g
  "5n is now "5 min" or "5 minutes". A modifier is now required!
- Fixed gnome-console to compile with RH9 (Gnome 2.0)
- Implemented "list nextvol job=xxx", which displays the
  next volume to be used by job xxx. The Volume name to
  be used is also added to the "status dir" output.
- Lots of fixes with variable expansion and counter variables
- Implemented a new Include/Exclude syntax.
- While writing a tape, an end of file mark will be written
  every 1Gb. This makes restores faster. If you want to
  change this use "Maximum File Size" in the SD Device
  resource.


Other Changes 1.32a Release:
- Fixed sparse file bug.
- A warning message is sent when a job starts that will be
  blocked because the user did an "unmount".
- Block checksum errors if any are printed in the job report.
- Implemented a single routine to read_records. It also returns
  a different record packet for each session.  This means
  that multiple simultaneous jobs should work.
- Added SDConnectTimeout to FD.    
- Lots of doc enhancements
- Fixed a PurgeOldestVolume bug (VolStatus not returned)
- Don't crash if DB address record not specified.
- Return VolStatus on find_next_volume.
- Use alist for incexe name_list.
- Use bget_dirmsg() everywhere possible when talking to FD.
- Delete old semaphore job and workq job scheduling code.
- edit_run_codes in one place (/lib)  Add Job name
- Update query.sql to find current backups correctly.
- Correct ambiguous SQL statement for pruning.
- Set heartbeat interval to zero by default.
- Fix a possible race condition in stopping the 
  heartbeat thread.
- Eliminate gnome2-console directory. Everything is in gnome-console
- Enhanced "packet too big" message to indicate who sent it.
- Corrected console prompt problem in non-readline versions.
- Correct a number of variable expansion problems.
- Added a number of new regression tests.
- In an attempt to make configuration a bit less confusing, I've changed
  the name of a number of variables. The old ones still work, but will
  be phased out over time. FDAddress, FDPassword, SDAddress SDPassword,
  SDDeviceName, and DBPassword.
- A possible fix to the very intermittent SD crashes that Alex gets.
              


Items to note:  !!!!!
- Modifiers (sec, min, hour, day, ...) are now required on conf file
  time interval specifications.
- Duplicate names within the same conf resource are prohibited.
- If you have used a prior BETA version of 1.32, please do
  the following to cleanup any zero length spool files:

   cd <working-directory-as-in-Bacula-conf>
   rm -f *.spool.*

  Please be sure there are no spaces between the asterisks
  and the periods.
