
          Release Notes for Bacula 1.31

  Bacula code: Total files = 258 Total lines = 76,681 (*.h *.c *.in)

Major Changes this Release:
- Implemented a new job scheduling algorithm with priorities.
- The database format has changed from version 1.30a. Please see below.
- Support to save and restore all files on WinNT/2K/XP systems 
  including the permissions. Unfortunately files that are in use by another
  program cannot be saved -- complain to Microsoft about this.
- Support for Win95 systems (untested since I don't have Win95).
- Heartbeat every 20 minutes between daemons to prevent network
  timeouts. The heartbeat interval can be set.
- Volume names may now only contain letters, numbers, colon, period, dash,
  and underscore.
- Added readline to depkgs (removed from depkgs1) and fixed configuration if
  it is not installed in your system libraries.
- Implemented generalized tape label formats including counter variables 
  for automatic naming of Volumes.
- Multiple simultaneous jobs now work. However, I still don't
  using recommend it.
- Implemented tape block rejection, which means that restores with
  several incremental backups will run orders of magnitude faster.


Other Changes this Release:
- New Priority record in Jobs for setting job priorities.
- The name of Recycle Oldest Volume has now become Purge Oldest Volume.
- Implemented a Recycle Oldest Volume, which respects Retention periods.
- Implemented a Recycle Current Volume, which respects Retention periods.
- Restore checks block numbers to ensure that no block is lost.
- The new console var command allows testing variable expansion
  used in automatic tape name generation.
- The new console estimate command allows you to test FileSets
  to see how many files and bytes will be saved and optionally
  to have an "ls -l" style listing of the files.
- During a normal restore (replace = yes), any existing file is deleted
  and the restored file is then created. This corrects links and other
  wierd files that changed between the backup and the restore.
- Preliminary support for BSDi.
- Use smtp instead of mail to send the traceback message.
- Fixed a race condition in the "list" command while a backup is
  in progress.
- Improvements to gnome-console.
- Prune orphaned jobs (no files saved, no Volume used).
- Added non-fatal errors to Job reports and statistics from both
  the FD and SD for backups.
- Eliminate need for SubsysDirectory in each daemon -- please remove
  these records from your .conf files.
- Add a lot more "command line" options to console commands.
- More info in traceback (database type, ...).
- Better handling of errors with autochangers during restore.
- Better cancellation of jobs in Storage daemon (doesn't try
  to cleanup twice).
- Better cancellation of File daemon (except on Cygwin systems).
- SD error messages such as autochanger errors are now properly
  directed back to Console -- previously some were lost.
- A Storage daemon crash on FreeBSD systems (due to a different FreeBSD
  pthreads implementation) is fixed.
- Better Job termination report particularly for Verify and Restore jobs.
- Update Verify VolumeToCatalog to use new BSR records.
- Fixed list last 20 jobs in restore command (previously reported any 
  20 jobs).
- Gnome command line history works better.
- Better messages if a job is upgraded from Diff or Inc to Full.
- Replaced FileSet MD5 with date created -- more aestetic and readable.
- Fixed a FD crash on long directory names (Win32 specific).
- Added backup script to the examples directory. This allows one command
  to backup any client.  For Win32, the release now contains CygwinBackup.bat
  and Backup.bat, as well as backup. The bat files call the backup file.
  By placing an icon on your desktop, you can double click and backup
  your client.


Items to note:  !!!!!
- Recycle Oldest Volume has changed to be Purge Oldest Volume
  Please change your Director's .conf file.  Recycle Oldest Volume
  still works but respects retention periods.

- The default time interval is now days instead of seconds. Please
  check your .conf files!

- For MySQL users, you must have the thread safe client libraries 
  available.  If you build MySQL yourself, add the --enable-thread-safe-client
  option on the ./configure.  You will most likely need to do an ldconfig.
  Please see the installation documentation for building MySQL.
- Version 1.31 and 1.30 daemons/Director are not compatible. You must
  upgrade all or nothing.

- The format of the catalog database has changed, so you must either
  re-initialize your database (losing all the old info) with:

     ./drop_bacula_tables
     ./make_bacula_tables

  or you can use the appropriate script (you must choose the name according
  to which database you have) in the <bacula-source>/src/cats directory.

  BEFORE APPLYING THE ALTER SCRIPT PLEASE BACKUP YOUR DATABASE. 
  If you have previously upgraded to version 1.31, please do not run
  this procedure a second time.  Do one of the following only if you
  wish to keep your old tables (not doing the re-initialize documented
  above), and do this only after configuring an building the new Bacula,
  but before trying to run it:

  MySQL:
     cd working-directory (or where you want to backup the catalog)
     mysqladmin -f --opt bacula >bacula.sql
     cd <bacula-source>/src/cats
     ./alter_mysql_tables

  SQLite:
     cd working-directory
     echo '.dump' sqlite bacula.db >bacula.sql
     cd <bacula-source>/src/cats
     ./alter_sqlite_tables
      
  When you are sure that Bacula is running with your upgraded database,
  please delete the bacula.sql copy you made.
  
