              Technical notes on version 1.27 23Oct02  
                     23 October 2002
                       Kern Sibbald

General:
- I have mainly worked on getting all the details of a Restore
  to work correctly (new tape format, support for Win32 
  attributes, ...)
- Trademarked name Bacula.
- Implement Bacula tape format 11 (1.0 Immortal). This format
  will be maintained forever.
- Accept Any Volume is yes by default. This modifies Bacula's behavior
  when writing tapes.
- Fixed Win32 file size bug reported by Johanes Kalbus.

Changes submitted this submission:
- Corrected a bug on FreeBSD where CFLAGS would get a "yes". I was
  unable to reproduce this, but a user confirmed the correction.
  It was a problem with detection of largefile support, which FreeBSD 
  has by default.
- Added a new "license" chapter in the manual. Re-licensed a number of
  library routines (bnet.c, hmac.c md5.c, cram-md5, ...) with LGPL so that they
  can be used in proprietary software to access Bacula if so desired.
- Move Director's AutoChanger doc to correct location (in Storage      
  resource). 
- Document why trademark (to protect compatibility).
- Implement and turned on Bacula tape format 11 (also BB02). This
  format moves the VolSessionId and VolSessionTime from each record 
  header into the Block header. This is MUCH more efficient when reading
  records as now whole blocks can be skipped.   
  Also added JobStatus in End Of Session record, and added MD5 for
  FileSet, which is necessary to insure uniqueness.
- Implement a new Bacula time format for btime_t. It is Epoch time
  in microseconds (i.e. base 1 Jan 1970 in microseconds).
  This replaces previous floating point times.
- Added Win32 extended attributes. In doing so, I moved all attribute
  handling from src/lib into src/findlib.  Added new streams for 
  Win32 attributes and for GZIP Win32 attributes.
- Modified "Accept Any Volume" so that it really permits any volume
  in the pool to be mounted.  
- Removed "Mount Anonymous Volumes" from Storage daemon config.
- Implemented sparse files. You must add "sparse=yes" on the include line
  for it to be enabled.
- Print "None" in backup summary rather than 0.0% if there is no compression
  enabled.
- Improved error checking in daemon connection/authentication code to prevent
  garbage data from harming a Bacula daemon.
- All daemon tools MUST have a config file.
- Completely strip drive specification on Win32 if a Where prefix is specified.
- Corrected DB info for writing to files. Now the File Address is stored
  in File-Block variables in the catalog.
- All Storage daemon tools now use common code for acquiring/reading
  Volumes.
- If a device is unmounted, report it even if the device is not open. This
  will help inform users who have BLOCKED Bacula by unmounting a drive.
- Fixed a major bug found by Johanes Kalbus where I forgot the O_BINARY
  option when creating a file on Windows for restoration.  On some
  systems this caused binary files to be corrupted, and the file
  size would in general change.
