]> git.sur5r.net Git - bacula/bacula/commitdiff
kes Make a first cut at a ReleaseNotes and ChangeLog for a
authorKern Sibbald <kern@sibbald.com>
Mon, 31 Jul 2006 17:36:56 +0000 (17:36 +0000)
committerKern Sibbald <kern@sibbald.com>
Mon, 31 Jul 2006 17:36:56 +0000 (17:36 +0000)
     beta release.
kes  Make make clean decend into the src/win32 directory.
kes  Fix some #ifdefing so that Solaris and FreeBSD compile
     sys/stat.h was turned off.
kes  Use suffix editing for new transfer rate messages.
kes  Attempt to come up with a workaround which seems to be an OS
     bug where write() returns EBUSY.  IMO this should not happen.
     It triggered in truncatebug test. The workaround retries using
     a 100 ms wait.
kes  Eliminate a strerror() call in a class method that failed with
     older C++ compilers.
kes  Use rm -rf rather than rmdir to delete the src/win32/release
     directory during make clean.

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@3213 91ce42f0-d328-0410-95d8-f526ca767f89

13 files changed:
bacula/ChangeLog
bacula/Makefile.in
bacula/ReleaseNotes
bacula/kernstodo
bacula/kes-1.39
bacula/src/bacula.h
bacula/src/count-lines
bacula/src/stored/append.c
bacula/src/stored/block.c
bacula/src/stored/btape.c
bacula/src/stored/dev.c
bacula/src/stored/spool.c
bacula/src/version.h

index aabffb0f0c247b211f2e07f31b9477cf6f88f457..3f30f214e96b3d6a1a8d0be03dbe80cafd87d105 100644 (file)
+              Technical notes on version 1.39  
+                        Kern Sibbald
 
-Release 1.38.11 (28Jun06) released 28JunO6
-28Jun06
-- Add test for IRIX64 as OS
-- Fix scheduler hang during clock shift (due to missing unlock())
-- Minor tweaks to bregex.c
-- Fix to block.c to correctly check for DVD number of parts.
-- Fix to dev.c to permit DVD seeking in spool file.  Corrects
-  label rewriting problems.
-- Clarify license for techlogs (GPL). I consider them "part" of
-  the source code of Bacula.
-- Use FDL license for developer's manual, French translation, German
-  translation, bimagemgr manuals (same as the main manual), and
-  the web site.
-
-Release 1.38.10 (08Jun06) released 12JunO6
-08Jun06
-- Modify setting ACLs to suppress error message if the file is a
-  symbolic link since the file linked to may not yet be created,
-  and symbolic links really should not have attributes ...
-06Jun06
-- Complete implementation of acl.c error message during restore.
-  During backups, errors getting acls are silently ignored, as was
-  previously the case.
+General:
+30Jul06
+kes  Make bscan ignore ACL streams.
+kes  Update projects files with new Feature Requests.
+kes  Generate current English and French manuals and upload
+     them to the site.
+kes  Update the home page to include the new British/French flags to
+     switch between translations. Work done by Alexandre Baron.
+kes  Make disk-changer script print an error message if the changer
+     directory is not defined.
+kes  Create a generic DB routine for getting an int (32/64 bit) from
+     the DB.
+kes  Add more migration code.
+kes  Add a few more files to .cvsignore here and there.
+kes  Minor fixes for SD write rate and despooling rate.
+kes  Turn off new test code in src/console.c
+
+Version 1.39.18
+29Jul06
+- Incremented the version number to signify that all of Robert's code
+  for Win32 that was in the branch is now integrated into the HEAD,
+  and that Eric has submitted code that we hope will provide limited
+  backward compatibility with 1.38 file daemons (more testing to be
+  done).
+- I rationalized a few of the names of the variables (mainly jcr names)
+  that are used during migration as keeping three different jcrs at the
+  same time clear in one's head is not easy.
+
+Version 1.39.17
+28Jul06
+- Tweak new runscript feature to work with 1.38.x FDs. 
+- Correct crypto.c to fix segfault when restoring an encrypted stream 
+  on fd which don't use rsa keys.
+- Add yes/no english keywords on localised yes/no questions.
+27Jul06
+- Several important commits from Robert Nelson for code cleanup and
+  Win32 build.
+- Modify console.c so that when conio is enabled, it converts \n to
+  \n\r before outputting to the console.  Hopefully this will fix
+  the problems with expect in Perl that Eric saw.
+24Jul06
+- Change cats/sql.c to elimate %-*s format, which I think is turned
+  off in bsnprintf.
+- Add Comment field to llist of a volume.
+- Allow true/false in some yes/no questions.
+- Implement update volume enable=(on|off|true|false|archived|0|1|2)
+- Remove a few /n's when scanning commands from another daemon. This
+  permits adding additional fields later.
+- Modify dbcheck to handle ctl-d and to delete Log table entries.
+- Update README.mingw
+22Jul06
+- Tweak authentication to work with 1.38.x FDs. 
+- Tweak catalog make scripts.
+- Fix catalog upgrade scripts so that they work.
+- Correct despooling debug code to eliminate race condition.
+19Jul06
+- Add additional fields as specified by Arno to LocationLog.
+- Add comment field to the Media record.
+- Add Time field to the Log record.
+- Correct migration SQL (thanks to Bill Moran) so that it
+  runs with PostgreSQL also.
+- Add spooling/despooling info in status output of SD.
+17Jul06
+- Spend a lot of time integrating mkcdrec with the rescue disk.
+- Add VOLMGMT message class for volume management messages (none yet).
+- Add CATALOG as a destination.  It goes into the LOG table.
+- Implement the Log table in the DB.
+- Implement the Location Log table in the DB (for user use).
+- At Eric's request add a run_scripts() just after blast_data in
+  src/filed/job.c
+10Jul06
+- Add Enabled column to Location, correct some typos in DB schemas.
+- Correct bug I introduced into RunScripts enum.
+- Add log table to Catalog
+- Purge original job migrated if the migration terminates normally.
+- Cleanup purging of files/jobs so that it is done only in a 
+  single subroutine.
+- Add new VOLMGMT message class.
+- Add Catalog message destination (user conf code remains to be written).
+09Jul06
+- Modify read_record and friends to properly deal with migration      
+  needs.
+- Update debug code in read_record.    
+08Jul06
+  ======================= Warning ==========================
+  Separate read and write storage in Jobs in the Director. This
+  is a major rewrite of some of the low level code and hence has
+  a high probability of introducing bugs.
+  ==========================================================
+
+- Move the job init code up to *before* the job is put into
+  the job queue (resource allocation queue). This permits the
+  job to establish whether it will read or write or do both.
+- Add name() methods to all the resource classes.
+- Implement separate read and write storage resource 
+  allocation/deallocation in jobq.c
+
+  ======================= Warning ==========================
+  Implemented new method of getting the default Storage from the Media
+  record rather than from the MediaType for restore.  As a fall
+  back, if no Storage is defined, use the MediaType.  This
+  eliminates most all prompts if there are multiple MediaTypes
+  used. This is an important and fundamental change.
+  ==========================================================
+
+- Add more detail (Storage, Device) to list of volumes printed
+  for restore.
+- More code in migrate. In particular start multiple jobs if
+  migrating a volume.
+- Probably overkill, but ensure that the bsr is unique even within a 
+  job in FD and SD.
+- Rework bsys.c drop() so that it now should work as expected.
+- Update a bunch of old copyrights -- particularly in .h files.
+- Remove src/lib/bshm.c/h
+05Jul06
+- Migration fixes
+04Jul06
+  ======================= Warning ==========================
+     All hash codes in the database are now kept in world
+     compatible base64 format (no = filling). This means that
+     all FileSets will be updated and if you are running
+     verify jobs, you must do an InitCatalog.
+     Authentication uses the new algorithm, but should be
+     backward compatible with 1.38.x
+  ===========================================================
+
+- Modify the authentication routines so that the 1.39.15 Director
+  always runs with the compatible binary to base64 code (same as
+  the rest of the world).  It will however detect if an SD or
+  FD is running the old code and if that is the case, will use
+  the old algorithm for authentication.  However, all consoles must
+  use the compatible algorithm, and all data entered into the database
+  (all hash signatures, MD5, SHA1, ..., and all FileSet hashes) will
+  use the compatible algorithm.
+- Rename the cram_md5 routine names to be slightly more appropriate
+  to what they are doing (challenge and respond).
+- Robert committed his #ifdef and header cleanup.
+30Jun06
+- Fix a complier warning in files/backup.c
+- Cleanup NOT NULL vs DEFALT 0 in database creation.
+- Tweak btape.
+- Robert committed his low impact changes.
+- I removed a size_t from the jcr.h definition.
+- Update the tape regression scripts (still to be tested).
+- Add gcc and gcc-c++ requires to srm as suggested by a user.
+- Require done or quit to exit from in memory tree restore.
+26Jun06
+- Write install/uninstall of new manpages. There are now a
+  pile of man pages. Some of which need a lot of work.
+
+  ======================= Warning ==========================
+     The --mandir ./configure option now points to the top level
+     man directory.  The man files will be installed under
+     mandir/man8 and mandir/man1 as appropriate.
+  ==========================================================
+
+- Add complete text of GPL to LICENSE.
+- Implement job report that indicates where Storage and Pool
+  came from -- with overrides and Pool storage and NextPool,
+  it is all very complicated.
+- Create a few common subroutines for backup.c and migrate.c
+- Eliminate warning messages from tray-monitor.c
+25Jun06
+- Apply fix for scheduler for missing unlock_jobs().
+- Clean out autoconf caches before rebuilding configure
+- Fix the FreeBSD pthreads lib define updated by Dan.
+- Add missing semicolon in src/console/console.c
+- Add Robert's enhanced version of build-win32-cross-tools
+  as well as his patch file.
+- Note, the new gcc options are likely to break building of
+  wx-console or the tray-monitor ...
+24Jun06
+- Implement Robert's suggestion to suppress printing compile lines.
+- Detect GCC correctly (I hope)
+- If using GCC (actually g++) add the following compiler flags
+  -fno-strict-aliasing -fno-exceptions -fno-rtti
+
+  ===================== Warning =============================
+  Turn on new bsnprintf() code.  This could cause print output
+  to look different.
+  ===========================================================
+
+- Fix crypto when not using openssl. I previously overlooked this.
+- Eliminate crypto type punning problems by eliminating void * and
+  using uint8_t * instead.
+- Harden authentication failure in FD by single threading errors
+  and forcing a 6 second wait.
+
+  ===================== Warning =============================
+       Removed  "Accept Any Volume" directive.
+  ===========================================================
+
+- Major cleanup and simplification of regress using shell functions
+  (more tests to be converted to new format)   
+- Add detection of 64 bit Irix as indicated by user.
+- Increment catalog database id from 9 to 10.
+- Add a few of the new database fields to the various C++
+  structures.
+- Implement code to fill in the most important new fields (e.g.
+  Media Enable).
+- Ensure that most of the new fields are in create/get/insert/update.
+  More work to be done.
+22Jun06
+- Update some very old licenses in src/cats.
+- Modify the database format for handling Migration jobs:
+   Add PriorJobId, RealEndTime to Job table
+   Delete MAC table
+   Remove Stripe from JobMedia record (not used, wasting space)
+   Add ScratchPoolId, RecyclePoolId, Enabled to Media record
+   Add Cost to Location table.
+- Delete mac_record subroutines.
+- Add new table values to create/update/get routines as appropriate.
+- Update the update_tables and make_tables scripts.
+- Make a first cut in using a union where multiple pointers (actually
+  pointers to pointers) are stored.
+- Make some changes to base64.c suggested by Robert and others and add
+  a small amount of documentation.
+- Add some changes suggested by Peter for Solaris (bregex...)
+- Make runscript.h always built because it needs to be pulled into
+  more places.  In particular its RES was left out of a union.
+- Renumber the enum{} list in runscript.h to avoid starting from zero.
+  This makes it slightly easier to detect uninitialized variables.
+14Jun06
+- Remove xpg4 lib from FreeBSD build as it is no longer needed and
+  sometimes creates install problems.
+- Change a couple of %T in strftime to %H:%M:%S as seen in Robert
+  Nelson's code.  More to do.
+- Convert a few store_bit to store_bool in filed_conf.c.    
+- DVD tweak to block.c as supplied by Uwe Muessel.
 04Jun06
 - Modify configure.in to check for typeof().
-- Better detection of postgresql installation if pg_conf works.
-- Fix RescheduleTimes = 0 bug (should not reschedule).
-- Down port from 1.39: fixes for reload, autochanger error messages,
-  scheduler fixes for reload and day light savings change, 
+- In findlib/attribs.c use typeof instead of templates if possible.
 01Jun06
 - Implement partial error messages for src/filed/acl.c
 - Fix return code to fail when doing update barcodes and
   Pool resource is not found. This previously caused Volumes
   to be labeled as cleaning tapes.
-- Small updates to projects file.
+- Small updates to projects.
+27May06
+- Add Eric Bollengier patch for new RunScript directive. It breaks
+  compatibility between dird and fd.
 26May06
 - Prevent DVD code from rewriting label if the device cannot be
   opened read/write.
 - Used __GNUC__ to detect GNU g++ as suggested by John Goerzen to
   fix Debian build bug.
 - Fix Dir/SD run race in migrate.c, verify.c, and restore.c
+- Integrate manpages contributed by Jose Luis.
 - Update projects file.
+- Add manpages Makefile.in to configure.in
+- Remove installation of bacula.8 in scripts directory.
 24May06
+- Implement patch submitted by cesarb in bug #606 to implement O_NOATIME
+  support.
+    O_NOATIME is a open() flag which makes it possible to read a file without
+    updating the inode atime (and also without the inode ctime update which
+    happens if you try to set the atime back to its previous value). It also
+    prevents a race condition when two programs are reading the same file, but
+    only one does not want to change the atime. It's most useful for backup
+    programs and file integrity checkers (and bacula can fit on both
+    categories).
+
+    Recent versions of the Linux kernel and glibc have support for it (the
+    glibc support being mostly copying the O_NOATIME definition to
+    bits/fcntl.h). If there's no support for it on the kernel, trying to use
+    it does nothing (since the kernel ignores unknown flags).
+
+    If the kernel has support for it, trying to use it either works, fails
+    silently (mostly in remote filesystems), or returns errno=EPERM (if you
+    are not either the owner of the file or root). A simple way to prevent the
+    failure is to open the file without the flag and set it later with
+    fcntl(F_SETFL), ignoring any EPERM errors.
 - Applied patch posted by Jaime Ventura to bug #570 to correct failure
   of restarted jobs to complete (due to a destroyed pthreads conditional
   variable used by the message thread).
@@ -58,6 +289,8 @@ Release 1.38.10 (08Jun06) released 12JunO6
   of incorrect MarkedId.
 - Apply patch from adioso bug #616 to correct text in manual (replace
   Director with File daemon).
+- Rework a few of the zlib changes so that they build properly.
+
 21May06
 - Move DIR "run" command to SD before starting the message thread
   as suggested by Cristopher Hull to avoid a race deadlock from
@@ -65,20 +298,33 @@ Release 1.38.10 (08Jun06) released 12JunO6
 - Modify LICENSE to correct some problems pointed out by Debian.
 05May06
 - Correct EOF with no \n lex.c problem.
+- Tweak compat.h compat.cpp and merge with apcupsd
 - Add additional INFO messages if autochanger cannot be used.
-- Add Eric Bollengier's lex error handler fix, which corrects most
-  of the reload problems.
 
-Release 1.38.9 (02May06)
 02May06
-- Added code to strip backslashes from Windows filenames during
-  a restore.
-- Corrected Win32 License to use the correct LICENSE file.
-- Corrected the buffer count and bytes reported in the heap 
-  statistics.
-26Apr06
-- Implement an NT_() macro to indicate that text should NOT
-  be translated.
+- Simplify Win32 Makefile
+- Correct count of buffers/bytes used by smartall.c
+- Updated compat.h after porting apcupsd to MinGW.
+01May06
+- Work on getting wx-console building on MinGW. wxWidgets now builds
+  started adding Makefile ...
+- Moved MinGW library objects to src/win32/lib to reduce clutter.
+30Apr06
+- Reloading a bad configuration file doesn't kill director any more.
+  Thanks to fix from Eric Bollengier.
+29Apr06
+- Fix problem of accents with new Win32 code.
+- Integrate Howard's VSS patch. Tweak it a bit. VSS now
+  works in the MinGW build with the exception that there
+  is a problem with accented characters -- i.e. there is
+  some mapping problem with wide characters.
+- The code no longer compiles with Microsoft VC++.
+28Apr06
+- Start implementing Christopher's St.Bernard code.
+- Add Christopher's mods for opening files.
+- Strip \r \n from Win32 error messages (Christopher)
+- Add more info about Win32 system if unknown (Christopher)
+- Use bstrn(cpy, cat) routines to avoid overrun in compat.cpp
 - Fix a number of incorrect strings marked for translation, when
   they should not be (e.g. commands).
 - Fix StartTime bug reported for ClientRunBeforeJob and RunBeforeJob
@@ -96,10 +342,20 @@ Release 1.38.9 (02May06)
 - Remove lib/regex.c (replaced by bregex.c).
 - Delete src/win32/License.txt
 - Modify installer to install LICENSE
+26Apr06
+- Fix bug in build-win32-cross-tools script reported by Howard
+- Implement cross compiled bconsole
 25Apr06
+- Fix barcode test, eliminate BOOL (doesn't exist on Linux).
+- Write first cut of README.mingw32
 - Add back ua_label barcode fix from Rufolf Cejka.
+- Integrate the majority of the Mingw cross-tools submission
+  made by Howard Thomson. Everything compiles, with zlib, openssl,
+  and VSS turned off. Linking needs a pthreads library ...
 23Apr06
 - Add 'Dir Status' button to the gnome console.
+- More work on migration.
+- Restore non-compatible base64 coding to permit compatibility.
 - Display heap stats in Storage daemon without debug level.
 22Apr06
 - Integrate most of the MinGW changes -- more to do.
@@ -119,17 +375,66 @@ Release 1.38.9 (02May06)
   command in restore. This gives the user a better idea of what
   the newest file really is. This fixes bug #574. The fix
   was suggested by the user.
+- Implement a compatible version of base64. This permits external
+  programs to duplicate Bacula's base64 algorithm using standard
+  routines. This fixes bugs #296, and 565. Patch submitted by   
+  author of bug #565.  
+  ================= Note ========================
+  Previous Signatures stored in the database are no longer
+  compatible with this. The main downside is for Verify jobs,
+  and doing an InitCatalog run will fix the problem. Also, the
+  authentication between the deamons is changed, so all daemons
+  must be simultaneously upgraded.
+  ==============================================
+  If you don't like this fix, set:
+    const bool compatible = true;
+  to
+    const bool compatible = false;
+  in src/lib/base64.c
+20Apr06
+- Ensure that DB signature is never NULL.
+- Ensure that DB table names are not translated.
+- Fix scheduler to handle time skew (eg daylight savings).
+- Fix scheduler to use lock_jobs() to avoid most problems
+  with reload. Window is now milliseconds.
+19Apr06
+- Apply patch from Christopher Hull
+  - Allow multiple connections to database with different
+    parameters.
+  - Invalidate the scheduler when doing a reload. Fixes seg
+    fault, but still 60 second window.
+  - Additional info in Reschedule message.
+  - Use set_jcr_job_status() everywhere to prevent loss of
+    cancel, error.
+  - Display peer IP in FD if error from connecting DIR.
+  - Don't increment file count for DIRBEGIN.
+  - Replace illegal characters in Win32 filename by _.
+  - Add SE_CREATE_PERMANENT_NAME privilege in Win32.
+  - Hash hard link filenames rather than linked list.
+  - Fix for security failure in chdir on Win32.
+  - Add CreateDirectoryA/W win32 API entry points.
+- Add /silent option to Win32 FD for Install/Remove service.
+- Always print Heap statistics in FD.
 18Apr06
 - Remove the -f option from the chown in Makefile.in for more
   portability.
 - Change setting the group in Makefile.in to use chgrp for
   more portability.
+- Implement a write_store and read_store to replace
+  dirstore in reserve.c
 - Implement a Bacula read/write lock for Python rather
   than using the Python lock to avoid recursive problems.
 - Correct the uninstall directory names in filed/Makefile.in
   as reported by a user.
-
-Release 1.38.8 (14Apr06)               
+17Apr06
+- Correct some problems with database creation (new tables).
+- Replace a bunch of old 0x%x by %p.
+- Get first cut of Migration with Job selection working.
+16Apr06
+- Change store_bit() to store_bool() for the Spooling in 
+  dird_conf.c -- bug reported by Robert Nelson.
+15Apr06
+- Correct Makefile bug found by Dan Langille.
 14Apr06
 - Correct Makefile for Solaris /bin/sh
 - Correct mtx-changer.in for Solaris /bin/sh
@@ -142,10 +447,18 @@ Release 1.38.8 (14Apr06)
   Python regexp program.  
 - Use the new bregex.c to implement Regex expressions on Win32.
 11Apr06
+- More work on migration.
+- Implement wild program in tools directory for testing
+  wild-cards. Almost identical to the regex program.
+- Up port VSS single thread locking code.
+- Replace N_(..) by NT_(...) to inhibit translation of
+  commands.
 - Modify Makefile to change the permissions on Working Directory
   to 770 if the directory is created.
 - Do not fail the Makefile if changing the permissions or 
   owner/group on WorkingDir fails.
+- Remove early selection of Scratch Volumes in the recycling
+  algorithm.
 - Correct the old recycling algorithm so that Scratch Volumes
   are selected when looking for a Volume in the changer.
 - Correct a typo in the Verify SQL reported by Joe Park.
@@ -155,25 +468,22 @@ Release 1.38.8 (14Apr06)
 - Remove the code added to 1.38.6 and 1.38.7 that pulls a
   scratch volume in an Autochanger early in the 'recycling'
   algorithm.  
+09Apr06
+- Make weof() and clrerror() methods of class DEVICE.
 08Apr06
 - Tweak license to include Microsoft restrictions.
 - Move mysql.reconnect to after real_connect().  Thanks to
   Frank Sweetser for the patch.
 - Disallow a backslash in a File = directive (Windows junk)
-  unless the string is quoted.
+  unless the string is quoted.                     
 - Apply Eric's patch to ua_label.c so that daemon protocol
   is not translated.
-
-Release 1.38.7 (06Apr06) released 07Apr06 
+- Add NT_ definition for strings that should not be translated.
+- Apply NT_() to ua_label.c
 - 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.
@@ -198,7 +508,6 @@ Release 1.38.6 (28Mar06) released 29Mar06
   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.
 21Mar06
 - Initialize jcr mutex before first use. Thanks to Thorsten for
   tracking this down for me !!!! as it broke the Win32 build.
@@ -209,21 +518,16 @@ Release 1.38.6 (28Mar06) released 29Mar06
 - 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
+- Implement regex matching in migrate.c
 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.
@@ -240,22 +544,33 @@ Release 1.38.6 beta5
 - 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.
+- More details in implementing David's migration syntax proposal.
+- Save and restore dcr when swapping drives so that if we have
+  a write dcr it is not lost.
 - 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.
 
-Beta4 attached to a bug report but not distributed.
+08Mar06
+- Remove old code from findlib/create_file.c
+- Rename mac.c migrate.c
+- Add user friendly display of VolBytes in job report.
+- Rename target... to previous... to make it a bit easier to
+  understand.
+- Add selection type and selection pattern to Migration (idea
+  given by David Boyes). 
+
 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.
+  and rates with suffexes from John Kodis <kodis at comcast.net>.
 - Add Priority and JobLevel as Python settable items.
 - Use TEMPORARY table creation where the table is created by
   Bacula.
@@ -263,64 +578,139 @@ Beta4 attached to a bug report but not distributed.
 - Add ACL checking for the dot commands.
 - Fix restore of writable FIFOs.
 - Fix a bug in bpipe where the string was freed too early.
-
+27Feb06
+- Modify the Python class examples to inherit object -- new way
+  of defining classes. Patch from Felix Schwarz.
+- Implement jobuid to replace old usage of job in keywords as
+  suggested by Eric Bollengier.
+- Apply patch for enhancing wait from Eric Bollengier. On can now:
+   wait  (wait for all jobs to stop)
+   wait jobid=nn
+   wait jobuid=unique id
+   wait job=job-name
+- Implement write variables for Python to set Priority (anytime), and
+  Job Level, only during JobInit event.
 26Feb06
-- Fix bug reported by Arno listing blocks with bls
+- Fix the block listing bug pointed out by Arno.
 - Update the po files at Eric's request.
-
-Release 1.38.6-beta2 25Feb06
-25Feb06
-- Add sql_use_result() define.
-
-Release 1.38.6 beta1 24Feb06
 24Feb06
-- Don't open default catalog if not in ACL.
+- Fix Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to 
+  accept time qualifiers.
+- Make catalog respect ACL.
+- Add recycle count to Media record.
+
+Changes to 1.39.6-beta1 24Feb04
+23Feb06
+- Add Rudolf Cejka's new rc-chio-changer.
+- Implement pulling Volume from Scratch Pool if the
+  Volume is in the autochanger.
+- Implement additional command arguments for update Volume.
+
+Changes to 1.39.5 
 22Feb06
-- 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.
-
-Release 1.38.5 released 19Jan06:
-19Jan06
-- Apply label barcodes fix supplied by Rudolf Cejka.
-18Jan06
-- 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.
-
-Release 1.38.4 14Jan06 released 17 Jan 06:
+- Back port changes to 1.38.5
+- Fix recycle SQL for StorageId.
+- Fix misplaced quote in mtx-changer script.
+20Feb06
+- Note. Your database must be updated, or you must create 
+  a new database. I have not yet incremented the database level.
+- Add Location table. 
+- Add LocationId, DeviceId, and MediaTypeId to Media record.
+18Feb06
+- Implement create/get mac record in database for adding extended
+  Migration data to the job record.
+- Add new MAC table to update/make database scripts.
+- Return Storage name used when getting VolumeNames for a job.
+- Change bsr file keyword Storage to Device, which is more accurate.
+- Ensure that Mac records are pruned/purged.
+- Tweak SD tools to deal with changing media type.
+- Integrate more dev.c subroutines as methods (e.g. strerror, bsr, ...)
+- Pass pointer to dcr pointer to acquire_device_for_read() so
+  that the subroutine can switch devices, and hence dcrs.
+- Modify the multiple MediaType read code to re-use the same
+  dcr when switching devices. This makes the code much more
+  robust.
+- Integrate patch from Karl Hakimian that reads JobIds, FileIndexes
+  from a table for restore.
+- Add Storage name to VolParams, but it really should be Device.
+14Feb06
+- Add disk-changer to scripts directory + configure/Makefile
+- Eliminate PoolId from jcr -- it is in jcr->jr.PoolId
+- Implement store_bit scanner to replace store_yesno.  Mostly done.
+- Implement new store_bool that stores in a bool. 
+- Add true/false to yes/no conf directives.
+- Make first cut at changing appropriate store_yesno to store_bool.
+- Complete implementation of Pool storage devices.
+- Move starting clones to job.c
+- Move create_restore_bootstrap_file() to job.c
+- Make copy_storage() more general to be able to handle
+  Pool storage.
+- Cleanup a lot of migration code for manual running, including
+  using Pool storage.
+- Move getting a scratch Volume into a subroutine.
+- Make all places a Volume that is added to a pool to 
+  respect max vols.
+- Fix bug in autochanger recycle code (improper edit 64 bit).
+- Fix segfault in restore command when no value specified.
+- Start adding code to handle multiple MediaTypes in restore.
+- Eliminate race condition in getting Volume name for
+  two drive autochanger.
+- More debug code in autochanger.
+- Add storage keyword to bootstrap file, add parsing.
+- Move slot in bsr file into Volume record as there will be
+  a different slot for each Volume.
+- Create reserve.h
+07Feb06
+- Implement Pool storage overrides.
+06Feb06
+- Implement first cut of Migration.
+- Implement mysql_use_result() from patch by Karl Hakimian.
+  This reduces significantly the memory consumption during
+  the restore tree building, and hence runs faster too.
+- Implement StorageId patch supplied by user (reggie) in bug
+  #536.  This should permit Bacula to work correctly with two
+  autochangers.
+- Implement Job listing variations suggested by a user.
+- Move updating bootstrap code in backup.c to subroutine
+  update_bootstrap_file().
+- Add new job status elapsed time and bytes written user
+  friendly job report output patch sent by John Kodis
+  <kodis at comcast.ne>.
+- Implement a storage list in Pools.
+- Separate out setup_job() code from run_job().
+- Get migration working -- lots of changes in mac.c in both
+  DIR and SD.
+- Apply patch from user (Eric Bollengier I think) that fixes a  
+  DIR crash when no arguments are supplied to a dot command.
+- Fix typo (strcpy->strcmp) in ua_prune.c as reported by Martin.
+- Fix command arg name->volume in label command of gnome-console.
+- Fix SD acquire.c to release correct DCR by explicitly testing
+  on the dcr address rather than trying to devine if it is a read
+  or write dcr.  This failed in error conditions when the device was
+  not fully setup.
+30Jan06
+- Apply user supplied patch for more readable rate output
+  in job report.
+- Continue implementing migration.
+- Implement support for removable filesystems in SD.
+- Ensure that btraceback scripts can be read by anyone.
+- Replace dvd-freespace and dvd-writepart by dvd-handler.
+- Correct bug where canceling restore before the FD contacts
+  the SD causes the drive to be left in read mode.
+- Move ofline_or_rewind into DEVICE::close().
+- Eliminate close_device.
+- Convert several dev subroutines to methods (e.g. bsf,
+  eod, ...)
+- Eliminate force_close_device().
+- Implement Device Type directive in Device resource that
+  can have values File, Tape, Fifo, DVD, or Prog.
+- Add has_cap() method to Device.
+Changes to 1.39.4
+17Jan06
+- Add patch from bug #527 to allow RedHat user to specify
+  options/user/group for starting each daemon in      
+  /etc/sysconf/bacula.
 16Jan06
 - Add two new queries to query.sql provided by Arno. One
   list volumes known to the Storage device, and the other
@@ -332,6 +722,8 @@ Release 1.38.4 14Jan06 released 17 Jan 06:
 - Correct bug counting sized (for display only) in smartall.c
 - Print FD mempool stats if debug > 0 rather than 5.
 12Jan06
+- Make db_lock() mutex error fail the job rather than abort
+  Bacula.  Canceling the job caused the mutex to fail.
 - 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
@@ -353,7 +745,6 @@ Release 1.38.4 14Jan06 released 17 Jan 06:
 - During 'update slots' clear all InChanger flags where the
   StorageId is zero (old Media records).
 
-
 Beta release 1.38.4:
 09Jan06
 - Fix autochanger code to strip leading spaces from returned
@@ -375,24 +766,21 @@ Beta release 1.38.4:
   routines.  This should prevent a jcr from being freed
   from under the walk routines.
 
-Release 1.38.3 05Jan06:
+
+Changes to 1.39.3:
 04Jan06
+- Start implementing Verify list output.
 - Move the suitable_drive flag to a better place to prevent
   premature termination of the reservation if all drives
   are busy -- should fix Arno's diff/inc pool failures.
 26Dec05
 - Add mutex to single thread VSS code in Win32.
-
-Beta release 23Dec05:
 22Dec05
-- Add OPENSSL_INC to console dependencies, lib dependencies, and
-  wx-console dependencies in Makefile.in
-- Add OPENSSL INC/LIB to gnome2_console Makefile.in.
 - 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
+- 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
@@ -408,28 +796,22 @@ Beta release 23Dec05:
 21Dec05
 - Modify gui on command to set only GUI mode and not batch.
 - Modify .messages command to always print messages regardless
-  of the mode.                
+  of the mode.
 - If GUI mode is on, suppress automatic printing of 
   You have messages. 
 - Delete old bnet packet code.
 - Ignore new BNET_START_SELECT and BNET_END_SELECT signals in
-  wx-console.
+  wx-console. -- not implemented because bconsole must be updated.
 - Modify restore command in wx-console to set gui on and to use
   only .messages instead of messages.  Hopefully this fixes bug
   #514.
-Beta release 20Dec05:
-20Dec05
 - Fix seg fault in exit of acquire when canceling a job --
   reported by Wolfgang Denk
-19Dec05
-- Implement load balancing code.
-- Pull a few files from 1.39 where we can maintain compatibility.
-- 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.
+- Pull in latest reservation system changes from 1.38
+- Make .messages command always print messages regardless
+  of the automessages flag.
 17Dec05
-- Remove quotes from Version table name -- it breaks things.
-- Fix seg fault if user labels a drive directly bug #513
+- Fix seg fault if user labels a drive directory bug #513
 - Remove quotes around Version as it breaks things.
 16Dec05
 - Merge in Aleksandar Milivojevic's mods to the spec file.
@@ -438,7 +820,7 @@ Beta release 20Dec05:
 14Dec05
 - Correct reservation system to do a last ditch try
   for any mounted volume, then anyone anywhere.
-- Add quotes around table Version because of 
+- Add quotes around table Version because of
   error in MySQL 4.1.15 -- bug report submitted.
 - Correct some minor problems with btape in the fill
   command.
@@ -455,22 +837,32 @@ Beta release 20Dec05:
 - 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 120 seconds of wait.
+- Make wait_for_device() always return after 60 seconds of wait.
+
+Changes to 1.39.2:
+13Dec05
+- Add stubs for non-crypto build.
 12Dec05
 - Use localhost if no network configured
 11Dec05
 - Eliminated duplicate MaxVolBytes in cat update -- bug 509.
 - Remove debug print.
 - Add bail_out in error during state file reading.
+10Dec05
+- Merge changes made to 1.38.3 into HEAD
+- Add stubs for pygtk-console code
+- Create Makefile.in for pygtk-console code
 09Dec05
 - Merge updates into 1.38 branch
 - Update specs to include mysql4 define.
+- Fix when attributes are sent, must be after binit().
 - Stop read_record() if status not ok in second loop.
 - 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.
 08Dec05
+- Fix Win32 built to work with new crypto code.
 - Apply patch supplied by user (slightly modified) to fix
   correct detection of holes in block devices and FIFOs. 
   Bug # 506.
@@ -482,6 +874,9 @@ Beta release 20Dec05:
   Christian Masopust.
 - Remove warning message about multiple saves of hardlinked files
   from find_one.c as it can generate too many warning messages.
+- Modify most restore error messages to be queued so that they
+  appear at the end of the job rather than mixted with the restore
+  listing where they could be "lost".
 06Dec05
 - Reset timeout values before select() per patch from 
   Frank Sweetser for problems with non-blocking sockets.
@@ -495,30 +890,36 @@ Beta release 20Dec05:
 - Set new Pool defaults in Vol when moved from Scratch Pool.
 - Remove argument from create_bacula_database for SQLite as it
   caused an error.
-- Add back next_vol index code so that two drive autochangers can get
+- Add back index code so that two drive autochangers can get
   a second tape.
 - Change a bunch of debug levels to aid debugging autochangers.
 - Fix reservation so that mutexes are properly applied.
 - Rework reservation algorithm so that two drives can be used
   at the same time.
 04Dec05
+- Landon merged his data encription changes into the HEAD
 - 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'
+  "list nextvol days=xx"
   or
-  'status dir days=xx'
+  "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.
+Changes to 1.39.1:
 03Dec05
 - 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.
 29Nov05
+- Add Migrate, Copy, Archive Job types (some where there)
 - Correct some more editing of JobId's (for 64 bit compatibility).
 - Ensure that StorageId is stored in Media record when ever possible.
 - Add Migration Job to Job.
+- Add Migration Time, Migration High Bytes, Migration Low Bytes
+  Next Pool to Pool resource.
+- Add more code to mac.c (migration archive copy).
 - Change Start Storage daemon job to require read and write storage
   pointers.
 - Pass read storage data to SD as well as write storage data.
@@ -528,10 +929,13 @@ Beta release 20Dec05:
 - Separate read/write DCR in SD.  Add jcr->read_dcr.
 - Cleanup how find_device() works.
 - Add read output to Status in SD.
+Changes to 1.39.0:
+23Nov05
+- Add red-black btree routines
 21Nov05
-- Remove abs() in bfile.c so that it compiles on Solaris. Bug #491.
-
-Changes to 1.38.2: 22 November 2005
+- Remove abs() in bfile.c so that it compiles on Solaris. 
+  Bug #491.
+20Nov05
 - 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
@@ -541,9 +945,7 @@ Changes to 1.38.2: 22 November 2005
 - 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: 15 November 2005
+14Nov05
 - Apply SunOS patch for ACLs submitted by David Duchscher.                  
 - Make sure to set storage before trying to set drive.
 - Add bacula_mail_summary.sh to examples directory. It makes
@@ -551,1623 +953,23 @@ Changes to 1.38.1: 15 November 2005
   by Adrew J. Millar.
 - Make sure when we do a mount to unblock the device even
   if the drive could not be opened.  
-- Merge Scott's new spec files.
-- Add doc on setting up Win32 environment variable supplied
-  by Kees van den Broek.               
-- Turn off API debug output unless debug set to avoid confusing
-  the user.
-- Add Solaris ACL detection in configure.in as supplied by
-  Attila Fulop. 
-- Implement 'autochanger drives' protocol so that Dir knows
-  how many drives an autochanger has.
-- Do not request drive number in label, ... if only one drive.
-- Turn off debug code.
-- Fix update slots to clear slot number of every slot before
-  setting it.  This fixes (I believe) bug #471
-- Make unmount unload the autochanger slot.
-- Modify open() on mount to be read-only and non-blocking,      
-  otherwise the mount can block for a long time.
-- Make a few error message numbers unique.
-- Make a few error messages more correct.
-- Apply patch from Thorsten to fix Win98 stat() command.
-- Remove delete of CVS from all makefiles.
+13Nov05
+- Remove the USE_WIN32STREAMEXTRACTION #defines (always on)
+  and correct a few minor problems to make it build on Linux.
+10Nov05
+- Remove delete of CVS from all Makefiles
 - Fix seg fault when clicking on Add button in wx-console
   restore panel.  Bug #470.
 - Fix copyright date and URL typo -- bug #468.
 - Change autostart install for FreeBSD to look for rc.conf  
   rather than rc.local as suggested fix for bug #466.
-- Apply patch supplied by Eric Bollinger to fix PostgreSQL    
+- Apply patch supplied by Eric Bollengier to fix PostgreSQL    
   grant on status. Bug #465
-- Apply patch supplied by Eric Bollinger to fix PostgreSQL
+- Apply patch supplied by Eric Bollengier to fix PostgreSQL
   update script. Bug #464
-- Fix off by one for last Slot of autochanger for label.
-- Update release date.
-- Tweak an authentication error message in dir.
-- Fix autoloader so that mutex is set and released around
-  each run_program().  There was a missing set.
-- Remove an unnecessary drive release in autochanger.
-- Modify configure.in to add execute option to sqlite3 catalog  
-  scripts.
-- Create update_xxx_table_8_to_9 scripts for updatedb
-- Fix wrong variable in bpipe.c debug output reported by user.
-- Fix improper placement of encode_and_send_attributes() in
-  FD backup.c causing first file of non-portable Win32 backup
-  to have wrong stream. Reported by Thorsten.
-- 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.
-
-Released 1.38.0 (28Oct05): 31 October 2005
-
-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.
+- Tweak #ifdefing a bit in new Win32 stream code.
+- Fix #ifdeffing for FD_NO_SEND_TEST.
+- Add documentation of performance #defines
 
-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.
-
-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.
-
-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.
-
-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.
-
-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.
-
-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.
-
-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.
-
-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.
-
-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.
-
-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.
-
-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
-
-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.
-
-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.
-
-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.
-
-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.
-
-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 Haakansson <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.
-
-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.
-
-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.
-
-
-              Technical notes on version 1.37  
-                      Nicolas Boichat
-
-General:
-
-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'
+Release 1.38.11 (28Jun06) released 28JunO6
index 80fceeae4ceba13c90b7fc40e7fa054f8f271e58..a6dc267e96d183e7ba32b10b24a389c1875acdd6 100755 (executable)
@@ -189,7 +189,7 @@ Makefiles:
         chmod 755 make_catalog_backup delete_catalog_backup)
 
 clean:
-       @for I in ${all_subdirs}; \
+       @for I in ${all_subdirs} src/win32; \
          do (cd $$I; echo "==>Entering directory `pwd`"; ${MAKE} $@ || exit 1); done
        @(cd platforms; echo "==>Entering directory `pwd`"; ${MAKE} $@ || exit 1)
        @$(RMF) *~ 1 2 3 core core.* config.guess console.log console.sum
index e839a661b3bba5a50e20a5cebc67f58d432cf650..c4f398b287b4c01166a8883d66d4c82edefc41db 100644 (file)
 
-          Release Notes for Bacula 1.38.11
-
-  Bacula code: Total files = 423 Total lines = 139,479 (*.h *.c *.in)
-
-Warning for version 1.38.8 and greater:
-- The Windows FD no longer automatically folds the case
-  in wild-card comparions. To get the same behavior as before,
-  you must explicitly use "Ignore Case = yes" in your FileSet.
-- Backslashes are no longer permitted in File directives
-  (typical error for Windows users), unless the string is
-  enclosed in double quotes, in which case, the backslashes
-  must be doubled.   
-
-Major Changes for 1.38.11 
-- Add test for IRIX64 as OS
-- Fix scheduler hang during clock shift (due to missing unlock())
-- Minor tweaks to bregex.c
-- Fix to block.c to correctly check for DVD number of parts.
-- Fix to dev.c to permit DVD seeking in spool file.  Corrects
-  label rewriting problems.
-- Clarify license for techlogs (GPL). I consider them "part" of
-  the source code of Bacula.
-- Use FDL license for developer's manual, French translation, German
-  translation, bimagemgr manuals (same as the main manual), and
-  the web site.
-
-New features for 1.38.11:
-- None
-
-====================================================================
-
-Major Changes for 1.38.10:
-- This is a primarily a bug fix release, with the following bugs being
-  resolved #570, 609, 611, 613, 614, 617 as well as other bugs not
-  reported in the bugs database. See below for details.
-- The bconsole "reload" command should now work properly in virtually
-  all situations thanks to the efforts of a number of people (Eric,
-  Christopher, and myself).
-- There is an untested fix to eliminate the scheduling problems (either
-  no job run or the same job run twice) during sudden clock shifts (daylight
-  savings time change).
-- The manual has been released under the GNU Free Documentation License (FDL).
-  The major difference is that this removes the prior restriction on
-  commercial reproduction of the manual.
-- Fixed a race condition (thanks to Christopher) on dual processor machines
-  that caused jobs to block when starting with the SD.
-
-New features for 1.38.10:
-- None
-
-Fixes for 1.38.10:
-08Jun06
-- Modify setting ACLs to suppress error message if the file is a
-  symbolic link since the file linked to may not yet be created,
-  and symbolic links really should not have attributes ...
-06Jun06
-- Complete implementation of acl.c error message during restore.
-  During backups, errors getting acls are silently ignored, as was
-  previously the case.
-04Jun06
-- Modify configure.in to check for typeof().
-- Better detection of postgresql installation if pg_conf works.
-- Fix RescheduleTimes = 0 bug (should not reschedule).
-- Down port from 1.39: fixes for reload, autochanger error messages,
-  scheduler fixes for reload and day light savings change, 
-01Jun06
-- Implement partial error messages for src/filed/acl.c
-- Fix return code to fail when doing update barcodes and
-  Pool resource is not found. This previously caused Volumes
-  to be labeled as cleaning tapes.
-- Small updates to projects file.
-26May06
-- Prevent DVD code from rewriting label if the device cannot be
-  opened read/write.
-- Fix Dir/SD run race in migrate.c, verify.c, and restore.c
-- Update projects file.
-24May06
-- Applied patch posted by Jaime Ventura to bug #570 to correct failure
-  of restarted jobs to complete (due to a destroyed pthreads conditional
-  variable used by the message thread).
-- Fixed bug #619 where Bacula would not restart jobs with MaxRestartTimes
-  set to zero. 
-- Apply patch from John Goerzen bug #611 to fix bad manual links in the code.
-- Apply patch from Rudolf Cejka bug #614 to removed trailing
-  colons in query.sql file.
-- Apply patch from Rudolf Cejka bug #613 to correct prunning of files
-  not to create orphans.
-- Apply patch from Rudolf Cejka bug #617 to use mtime instead of ctime
-  in restore long listing.
-- Apply patch from Rudolf Cejka bug #609 to use MarkId in verify.c instead
-  of incorrect MarkedId.
-- Apply patch from adioso bug #616 to correct text in manual (replace
-  Director with File daemon).
-21May06
-- Move DIR "run" command to SD before starting the message thread
-  as suggested by Cristopher Hull to avoid a race deadlock from
-  two threads using the bsock structure.
-- Modify LICENSE to correct some problems pointed out by Debian.
-05May06
-- Correct EOF with no \n lex.c problem.
-- Add additional INFO messages if autochanger cannot be used.
-- Add Eric Bollengier's lex error handler fix, which corrects most
-  of the reload problems.
-
-
-New features for 1.38.9:
-- A "Dir Status" button in the Gnome console.
-    
-Fixes:
-This is mainly a bug fix release containing a collection of
-  minor fixes for 1.38.8.
-- Added code to strip backslashes from Windows filenames during
-  a restore.
-- Corrected Win32 License to use the correct LICENSE file.
-- Corrected the buffer count and bytes reported in the heap
-  statistics.
-- Fix a number of incorrect strings marked for translation, when
-  they should not be (e.g. commands).
-- Fix StartTime bug reported for ClientRunBeforeJob and RunBeforeJob
-  Patches supplied by user in bugs #608 and #599.
-- Use most recent of st_ctime and st_mtime in restore tree DIR
-  listing. This fixes some problems with Win32 printing incorrect
-  values.
-- Correct the clock shift comm time calculation between the DIR
-  and the FD. It was added rather than subtracted.
-- Strip all backslashes in filenames to be restored on Win32
-  machines -- the names should all be in Unix format, and if
-  there are any backslashes it is most likely due to an improper
-  FileSet definition, and the files will not otherwise be
-  restorable.
-- Delete src/win32/License.txt
-- Modify installer to install LICENSE
-- Add back ua_label barcode fix from Rufolf Cejka.
-- Add 'Dir Status' button to the gnome console.
-- Display heap stats in Storage daemon without debug level.
-- Implement using pg_config for finding PostgreSQL files.
-  Fixes bug #600. Patch supplied by user.
-- Remove -t option from mktemp in mtx_changer.in and use
-  working directory. Fixes bug #578.
-- Update job start time after the any run before job so that
-  files created by the script are only backed up once. Fixes
-  bug #599.
-- Strip trailing newline only from filenames entered in
-  the restore command when reading a file. This permits
-  the user to enter filenames with trailing spaces. Fixes
-  bug #549. The user supplied a patch that I modified slightly.
-- Use the most recent time (st_mtime, st_ctime) in the dir
-  command in restore. This gives the user a better idea of what
-  the newest file really is. This fixes bug #574. The fix
-  was suggested by the user.
-- Remove the -f option from the chown in Makefile.in for more
-  portability.
-- Change setting the group in Makefile.in to use chgrp for
-  more portability.
-- Implement a Bacula read/write lock for Python rather
-  than using the Python lock to avoid recursive problems.
-- Correct the uninstall directory names in filed/Makefile.in
-  as reported by a user.
-
-
-New features for 1.38.8:
-- Regex, RegexFile, and RegexDir are now implemented in the
-  Win32 FD.  However, this is new experimental code that is
-  largely untested. It may not work, it may cause memory 
-  leaks, or it may even crash the FD. Please test carefully
-  before using.
-- On Linux/Unix systems there are two new programs, bregex
-  and bwild that allow you to test regular expressions and
-  wild-cards. These programs are installed with the other   
-  binaries. They are not available on Win32 systems.
-
-Fixes: 
-- See below.
-
-New Features from pre-1.38.8 releases:
-- 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.
-   
-
-Minor bug fixes:
-- See below:
-
-Release 1.38.8 (14Apr06)               
-14Apr06
-- Correct Makefile for Solaris /bin/sh
-- Correct mtx-changer.in for Solaris /bin/sh
-- Abort if a conf resource does not have a Name =
-12Apr06
-- Change the name of the regex program to bregex.
-- Add the bwild program to the tools directory. It is similar
-  to the bregex program.
-- Implement create bregex.h and bregex.c in src/lib from the
-  Python regexp program.  
-- Use the new bregex.c to implement Regex expressions on Win32.
-11Apr06
-- Modify Makefile to change the permissions on Working Directory
-  to 770 if the directory is created.
-- Do not fail the Makefile if changing the permissions or 
-  owner/group on WorkingDir fails.
-- Correct the old recycling algorithm so that Scratch Volumes
-  are selected when looking for a Volume in the changer.
-- Correct a typo in the Verify SQL reported by Joe Park.
-10Apr06
-- Remove automatic case folding on Windows FDs. You must
-  explictly use the 'Ignore Case = yes' option.
-- Remove the code added to 1.38.6 and 1.38.7 that pulls a
-  scratch volume in an Autochanger early in the 'recycling'
-  algorithm.  
-08Apr06
-- Tweak license to include Microsoft restrictions.
-- Move mysql.reconnect to after real_connect().  Thanks to
-  Frank Sweetser for the patch.
-- Disallow a backslash in a File = directive (Windows junk)
-  unless the string is quoted.
-- Apply Eric's patch to ua_label.c so that daemon protocol
-  is not translated.
-
-Release 1.38.7 (06Apr06) released 07Apr06
-06Apr06
-- 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
+          Release Notes for Bacula 1.39.18
+
+  Bacula code: Total files = 448 Total lines = 150,330 (*.h *.c *.in)
+
+Warning for version 1.39.18 and greater:
+- If you have an old pre 1.39.18 database, you must upgrade it using
+  the upgrade_bacula_tables script. 
+- You *should* be able to use 1.38.x FDs with version 1.39.18 Director
+  and SD providing you do not use any of the new features (runscript,   
+  data encryption). However, we do not recommend this, nor guarantee
+  that it works.
+- The restore command no longer uses the MediaType as the primary method
+  of finding a suitable Storage device. Normally it will select the last
+  device used to write a Volume. If no storage device is defined, it
+  will use the old algorithm which selects the first Storage resource  
+  with the correct MediaType.
+- The MD5/SHA1 hash codes kept in the database are now kept in a binary
+  format compatible with the rest of the world.  This means that all
+  FileSets will be updated, and if you are running verify jobs, you *must*
+  do an InitCatalog.  Also, authentication uses the new algorithm by
+  default, but *should* accept connections from older components (FD) using
+  the old non-compatible algorithm.
+- The --mandir ./configure option now points to the top level man
+  directory.  The man files will be installed under mandir/man8 and
+  mandir/man1 as appropriate.
+- The "Accept Any Volume" directive has been removed. It was never
+  implemented. Bacula will always accept any valid tape that is in   
+  the drive for appending.
+
+
+New features for 1.39.18:
+- Bacula and bextract can now extract non-portable Win32 data to
+  any client (including Unix/Linux clients). Of course, in doing so,
+  the Microsoft specific permissions and ACLs will be lost.  Thanks
+  to Thorsten Engel for this code.
+- The 260 character limitation in Win32 paths is now eliminated thanks
+  to Thorsted Engel.
+- The examples directory has a new bacula_mail_summary.sh file that
+  creates a single email summary of any number of jobs. Submitted by
+  Andrew J. Millar.
+- SunOS ACLs should now work thanks to a patch from David Duchscher.
+- The database Id records should be 32/64 bit independent now. 64 bits
+  can be enabled by changing one define, but this has never been tested.
+- 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.  This patch was probably back ported to 1.38.x
+- Data encryption done in the Client is now supported due to code
+  submitted by Landon Fuller.
+- Add nagios plugin to the examples directory. Submitted by
+  Christian Masopust.
+- Modify most restore error messages to be queued so that they
+  appear at the end of the job rather than mixted with the restore
+  listing where they could be "lost".
+- Apply patch supplied by user (slightly modified) to fix
+  correct detection of holes in block devices and FIFOs.
+  Bug # 506.
+- Added a report.pl program to the examples directory from Jonas Bjorklund.
+- 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.
+- 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, ...).
+- Implement new code for changing userid and group at startup. This
+  should get Bacula into the correct groups.
+- Implement support for removable filesystems.
+- Transfer rates are now presented in a more readable format thanks
+  to a user submission.
+- SD is now aware of what volumes are mounted. More information is printed
+  in the Status report.
+- The Pool Maximum Volumes directive is now respected in all places.
+- A Storage device can now be specified in a Pool resource. It will override
+  all other Storage specifications.
+- Most but not all directives accept true/false in place of yes/no.
+- Integrate patch from Karl Hakimian that reads JobIds, FileIndexes
+  from a database table for restore.
+- There are a number of new tables. Some such as the Location table are
+  designed for user use in doing Volume Management software.
+- Fix Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to
+  accept time qualifiers.
+- Implement jobuid to replace old usage of job in keywords as
+  suggested by Eric Bollengier.
+- Apply patch for enhancing wait from Eric Bollengier. On can now:
+   wait  (wait for all jobs to stop)
+   wait jobid=nn
+   wait jobuid=unique id
+   wait job=job-name
+- Implement write variables for Python to set Priority (anytime), and
+  Job Level, only during JobInit event.
+- 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 the SD to use multiple drives during a backup/restore (only
+  one at a time). This is not well tested.
+- Integrate addition of line count limitation to bsmtp -l from
+  Sebastian Stark <stark at tuebingen.mpg.de>
 - 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.
-
-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.
-
-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.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.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:
-
-       ./upgrade_bacula_tables
-
-  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.
-
-
-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.
+- Remove automatic case folding on Windows FDs. You must
+  explictly use the 'Ignore Case = yes' option.
+- Implement wild program in tools directory for testing
+  wild-cards. Almost identical to the regex program.
+- Use the new bregex.c to implement Regex expressions on Win32.
+- Apply patch from Christopher Hull
+  - Allow multiple connections to database with different
+    parameters.
+  - Invalidate the scheduler when doing a reload. Fixes seg
+    fault, but still 60 second window.
+  - Additional info in Reschedule message.
+  - Use set_jcr_job_status() everywhere to prevent loss of
+    cancel, error.
+  - Display peer IP in FD if error from connecting DIR.
+  - Don't increment file count for DIRBEGIN.
+  - Replace illegal characters in Win32 filename by _.
+  - Add SE_CREATE_PERMANENT_NAME privilege in Win32.
+  - Hash hard link filenames rather than linked list.
+  - Fix for security failure in chdir on Win32.
+  - Add CreateDirectoryA/W win32 API entry points.
+- Add /silent option to Win32 FD for Install/Remove service.
+  programs to duplicate Bacula's base64 algorithm using standard
+  routines. This fixes bugs #296, and 565. Patch submitted by
+  author of bug #565.
+- Switch the Win32 build from using Microsoft C++ to using mingw32
+  cross-compiling. The inital work was done by Howard Thomson,
+  then tweaked by me.
+- Robert Nelson then totally reworked the cross-compiling code so that it
+  not only cross-compiles, but also compiles on Visual Studio, and at the
+  same time, he added all the current Unix features to the FD, such as
+  selection on drives, encryption support, building *all* the tools, ...
+  Finally, he also ported the Directory and the Storage daemon to Win32.
+- Fixes to reloading the Dir conf file from Eric Bollengier and Christopher
+  Hull.
+- Modify LICENSE to correct some problems pointed out by Debian.
+ Implement patch submitted by cesarb in bug #606 to implement O_NOATIME
+  support.
+    O_NOATIME is a open() flag which makes it possible to read a file without
+    updating the inode atime (and also without the inode ctime update which
+    happens if you try to set the atime back to its previous value). It also
+    prevents a race condition when two programs are reading the same file, but
+    only one does not want to change the atime. It's most useful for backup
+    programs and file integrity checkers (and bacula can fit on both
+    categories).
+
+    Recent versions of the Linux kernel and glibc have support for it (the
+    glibc support being mostly copying the O_NOATIME definition to
+    bits/fcntl.h). If there's no support for it on the kernel, trying to use
+    it does nothing (since the kernel ignores unknown flags).
+
+    If the kernel has support for it, trying to use it either works, fails
+    silently (mostly in remote filesystems), or returns errno=EPERM (if you
+    are not either the owner of the file or root). A simple way to prevent the
+    failure is to open the file without the flag and set it later with
+    fcntl(F_SETFL), ignoring any EPERM errors.
+- Implement a pile of new man pages contributed by Jose Tallon.
+- Implement a number of user supplied patches for DVD writing.
+- Add Eric Bollengier patch for new RunScript directive.
+- Modify the database format for handling Migration jobs:
+   Add PriorJobId, RealEndTime to Job table
+   Delete MAC table
+   Remove Stripe from JobMedia record (not used, wasting space)
+   Add ScratchPoolId, RecyclePoolId, Enabled to Media record
+   Add Cost to Location table.
+   Enabled to Media table and Location table.
+- Security: harden authentication failure in FD by single threading errors
+  and forcing a 6 second wait.
+- If using GCC (actually g++) add the following compiler flags
+  -fno-strict-aliasing -fno-exceptions -fno-rtti
+- Turn on new bsnprintf() code.  This could cause print output
+  to look different.
+- Implement job report that indicates where Storage and Pool
+  came from -- with overrides and Pool storage and NextPool,
+  it is all very complicated.
+- Add more detail (Storage, Device) to list of volumes printed
+  for restore.
+- Add new VOLMGMT message class. No messages are yet sent with this 
+  class.
+- Add Catalog message destination in Messages resource that puts the
+  job report in the Log database table.
+- Spend a lot of time integrating mkcdrec with the rescue disk.
+- Add spooling/despooling info in status output of SD.
+- Add Comment field to llist of a volume.
+- Allow true/false in some yes/no questions.
+- Implement update volume enable=(on|off|true|false|archived|0|1|2)
index 4926a8fdb72baa0966b78b6323141481ada3ca60..9379461ad5c0997d9fb0cc351a6a2e6d45eec97c 100644 (file)
@@ -28,6 +28,7 @@ Document:
 Priority:
 
 For 1.39:
+- Possibly turn on St. Bernard code.
 - Fix bextract to restore ACLs, or better yet, use common
   routines.
 - Do we migrate appendable Volumes?
index 03b251768d318c2c4618de3b5e29bb2f529dba98..a5aaeb7dbcd3416a0be245837ef36d337fc51572 100644 (file)
@@ -2,6 +2,21 @@
                         Kern Sibbald
 
 General:
+31Jul06
+kes  Make a first cut at a ReleaseNotes and ChangeLog for a 
+     beta release.
+kes  Make make clean decend into the src/win32 directory.
+kes  Fix some #ifdefing so that Solaris and FreeBSD compile 
+     sys/stat.h was turned off.
+kes  Use suffix editing for new transfer rate messages.
+kes  Attempt to come up with a workaround which seems to be an OS
+     bug where write() returns EBUSY.  IMO this should not happen.
+     It triggered in truncatebug test. The workaround retries using
+     a 100 ms wait.
+kes  Eliminate a strerror() call in a class method that failed with
+     older C++ compilers.
+kes  Use rm -rf rather than rmdir to delete the src/win32/release
+     directory during make clean.
 30Jul06
 kes  Make bscan ignore ACL streams.
 kes  Update projects files with new Feature Requests.
@@ -480,7 +495,6 @@ Version 1.39.17
   is not translated.
 - Add NT_ definition for strings that should not be translated.
 - Apply NT_() to ua_label.c
-
 - Remove timed wait for VSS on Win2K3 as it is not yet
   implemented.
 - Correct bacula.in script to reference bacula-ctl-xx in the
@@ -802,7 +816,7 @@ Changes to 1.39.3:
   You have messages. 
 - Delete old bnet packet code.
 - Ignore new BNET_START_SELECT and BNET_END_SELECT signals in
-  wx-console.
+  wx-console. -- not implemented because bconsole must be updated.
 - Modify restore command in wx-console to set gui on and to use
   only .messages instead of messages.  Hopefully this fixes bug
   #514.
index 60a219fee66d2f82743cb9e6c4e6ccce7cfee85b..9d49a63aee03a7597498450d7d1a4a16d8e4de8e 100644 (file)
 #endif
 #if defined(HAVE_WIN32) & !defined(HAVE_MINGW)
 #include <winsock2.h>
-#else
-//#include <sys/stat.h>
-#endif
+#endif 
+#if !defined(HAVE_WIN32) & !defined(HAVE_MINGW)
+#include <sys/stat.h>
+#endif 
 #include <sys/time.h>
 #if HAVE_SYS_WAIT_H
 #include <sys/wait.h>
index 577cd61e9210fde022034e95200196e1ff4bcfb0..cde79ce7ac14a37c0d65b066b42e89bc66568aa9 100755 (executable)
@@ -1,9 +1,11 @@
 #!/bin/sh
 rm -f 1
 touch 1
-for i in . console gnome-console gnome2-console cats dird filed filed/win32 \
+for i in . console gnome2-console cats dird filed tray-monitor \
      win32 win32/compat findlib lib wx-console stored tools \
-     win32/wx-console win32/console win32/baculafd tray-monitor; do
+     win32/wx-console win32/console win32/baculafd win32/filed \
+     win32/dird win32/libwin32 win32/stored win32/stored/baculasd \
+     tray-monitor; do
   ls -1 $i/*.c $i/*.cpp $i/*.h $i/*.in 2>/dev/null >>1
 done
 cat 1 | $HOME/bin/lines
index 6168acc8bb6aec2b22f28e20433c1a56bd0497ac..d972e76d5cd482092d4db517b9a76e276d549fe1 100644 (file)
@@ -259,7 +259,7 @@ bool do_append_data(JCR *jcr)
 
    Jmsg(dcr->jcr, M_INFO, 0, _("Job write elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n"),
          job_elapsed / 3600, job_elapsed % 3600 / 60, job_elapsed % 60,
-         edit_uint64_with_commas(jcr->JobBytes / job_elapsed, ec));
+         edit_uint64_with_suffix(jcr->JobBytes / job_elapsed, ec));
 
    /* Create Job status for end of session label */
    set_jcr_job_status(jcr, ok?JS_Terminated:JS_ErrorTerminated);
index e0907d54da2db7e1c15d222695247c808579ff5f..75a86fd8be840873842fb529a672c89fc9734d30 100644 (file)
@@ -509,13 +509,20 @@ bool write_block_to_dev(DCR *dcr)
 #endif
 
    /*
-    * Do write here
+    * Do write here, make a somewhat feeble attempt to recover from 
+    *  I/O errors, or from the OS telling us it is busy.
     */ 
-   if (dev->is_tape()) {
-      stat = tape_write(dev->fd, block->buf, (size_t)wlen);
-   } else {
-      stat = write(dev->fd, block->buf, (size_t)wlen);
-   }
+   int retry = 0;
+   do {
+      if (dev->is_tape()) {
+         stat = tape_write(dev->fd, block->buf, (size_t)wlen);
+      } else {
+         stat = write(dev->fd, block->buf, (size_t)wlen);
+      }
+      if (retry > 10) {
+         bmicrosleep(0, 100000);    /* pause a bit if lots of errors */
+      }
+   } while (stat == -1 && (errno == EBUSY || errno == EIO) && retry++ < 30);
 
 #ifdef DEBUG_BLOCK_ZEROING
    if (bp[0] == 0 && bp[1] == 0 && bp[2] == 0 && block->buf[12] == 0) {
index 21ea77ede6b9fbf6578b96278a30997d48fc8843..b4adea4eed4fd4644b7e3839b1043d0f77c31176 100644 (file)
@@ -2099,6 +2099,7 @@ static void do_unfill()
    file_index = 0;
    if (last_block) {
       free_block(last_block);
+      last_block = NULL;
    }
    last_block_num = last_block_num1;
    last_file = last_file1;
index 3ccde2b2c3f318db60d49bf87864f0b6c8cf0ee6..0643ff3b4e7c0a0f6ba658066e5c6e3f9eb3848b 100644 (file)
@@ -1712,10 +1712,11 @@ void DEVICE::clrerror(int func)
 /* Typically on FreeBSD */
 #ifdef MTIOCERRSTAT
 {
+  berrno be;
    /* Read and clear SCSI error status */
    union mterrstat mt_errstat;
    Dmsg2(200, "Doing MTIOCERRSTAT errno=%d ERR=%s\n", dev_errno,
-      strerror(dev_errno));
+      be.strerror(dev_errno));
    tape_ioctl(fd, MTIOCERRSTAT, (char *)&mt_errstat);
 }
 #endif
index e91967bef556738d0366609d5de839424372a208..25f8a8a9def904d973518dffaefed7d2783c7391 100644 (file)
@@ -279,7 +279,7 @@ static bool despool_data(DCR *dcr, bool commit)
 
    Jmsg(dcr->jcr, M_INFO, 0, _("Despooling elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n"),
          despool_elapsed / 3600, despool_elapsed % 3600 / 60, despool_elapsed % 60,
-         edit_uint64_with_commas(jcr->dcr->job_spool_size / despool_elapsed, ec1));
+         edit_uint64_with_suffix(jcr->dcr->job_spool_size / despool_elapsed, ec1));
 
    dcr->block = block;                /* reset block */
 
index 9c9d33c45903733a3b5a67e5fbaa09e6a69bd993..20acb2777acd0f295e45385a5048ae98877587ad 100644 (file)
@@ -4,8 +4,8 @@
 
 #undef  VERSION
 #define VERSION "1.39.18"
-#define BDATE   "30 July 2006"
-#define LSMDATE "30Jul06"
+#define BDATE   "31 July 2006"
+#define LSMDATE "31Jul06"
 
 /* Debug flags */
 #undef  DEBUG