]> git.sur5r.net Git - bacula/docs/commitdiff
Update ReleaseNotes and ChangeLog
authorKern Sibbald <kern@sibbald.com>
Mon, 31 Oct 2005 08:53:37 +0000 (08:53 +0000)
committerKern Sibbald <kern@sibbald.com>
Mon, 31 Oct 2005 08:53:37 +0000 (08:53 +0000)
docs/techlogs/2005/CL-1.38.0 [new file with mode: 0644]
docs/techlogs/2005/RN-1.38.0 [new file with mode: 0644]
docs/techlogs/2005/kes-1.37 [new file with mode: 0644]
docs/techlogs/2005/nb-1.37 [new file with mode: 0644]
docs/techlogs/kes-1.37 [deleted file]
docs/techlogs/nb-1.37 [deleted file]

diff --git a/docs/techlogs/2005/CL-1.38.0 b/docs/techlogs/2005/CL-1.38.0
new file mode 100644 (file)
index 0000000..653ad4c
--- /dev/null
@@ -0,0 +1,1574 @@
+
+Released as 1.38.0 28Oct05:
+
+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.
+
+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 HaaÂ¥kansson <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"
diff --git a/docs/techlogs/2005/RN-1.38.0 b/docs/techlogs/2005/RN-1.38.0
new file mode 100644 (file)
index 0000000..e77a71f
--- /dev/null
@@ -0,0 +1,202 @@
+
+          Release Notes for Bacula 1.38.0
+
+  Bacula code: Total files = 420 Total lines = 138,440 (*.h *.c *.in)
+  20,440 additional lines of code since version 1.36.3
+
+Major Changes:
+- 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!!!
+- 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.
+- 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).
+
+
+Other Items:
+- 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.
diff --git a/docs/techlogs/2005/kes-1.37 b/docs/techlogs/2005/kes-1.37
new file mode 100644 (file)
index 0000000..6a7697f
--- /dev/null
@@ -0,0 +1,1408 @@
+              Technical notes on version 1.37  
+                        Kern Sibbald
+
+General:
+
+Changes to 1.37.42:
+26Oct05
+- Return HARDEOF status from bnet_recv() if bsock NULL rather 
+  than aborting.
+- 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.
+  "Tom Boyda" <tboyda@daou.com>
+- 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.
+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 release 22Aug05:
+20Aug05
+- Landon's fix for NLS detection
+- Eliminate incorrect compiler warning on FreeBSD. 
+- Move Win32 errno message build into berrno constructor.
+- Minor Win32 build tweaks
+19Aug05
+- A number of minor build 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.
+
+Changes to 1.32.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.
+
+Changes to 1.37.30 released 16 July 05:
+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.
+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:
+- Remove (cd gnome-console; make clean) from src/Makefile.in
+- 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 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 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
+- Make option 2 of restore work better (list last 20
+  locations for a file).
+- Make SD re-open a device with the right permissions if
+  it was previously opened with something different.  This
+  should allow reading read-only Volumes under all circumstances.
+- Implement restore of a single directory.
+- 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:
+18Apr05
+- Make Bacula build without Python
+- Drop Status table in drop_ scripts -- bug 283.
+17Apr05
+- First cut of new Python implementation.
+- Doc updates
+- Correct SuSE autostart installation directory name --
+  supplied by a user.
+- Fix director crash if Name directive not supplied
+  in a Job.
+- More cleanup of changing %u to %s for DB IDs.
+- Replace dev_can_write(dev) with dev->can_write().
+11Apr05
+- Make fsr_dev() a method dev->fsr()
+- Remove Created new FileSet message as it always comes out in
+  the daemon messages.
+- eliminate dev_is_tape() in favor of method dev->is_tape()
+- Turn on disk seeking during restore for Disk Volumes. This
+  required some changes to bscan -- they seem a bit suspect as
+  they are not symmetrical for tape/files.
+- Remove some of the recursion in stored/parse_bsr.c
+- Move rescue out to a new Bacula project.
+08Apr05
+- Update of web site to replace old released doc with LaTeX 
+  version.
+- Replace logo in doc with new bat logo.
+- Make a good number of updates to the manual.
+- Implement Python scripting using a Python object.
+  This makes interfacing with Bacula cleaner (object
+  oriented).
+- Add Phil's Status table to the database -- used
+  for getting a text description of the status     
+  codes.
+- Modify FileSet so that an empty Options (no
+  pattern matching) with an exclude will exclude
+  all files.                       
+- Modify FileSet so that no top level included File
+  item can be excluded by a matching pattern.
+- Suppress Created new FileSet record in daemon output.
+- Implement Python in FD.
+- Turn off old bfile reader code -- to be replaced
+  by Python.
+05Apr05
+- Remove more recursion in src/dird/bsr.c as pointed out
+  by Peter.
+04Apr05
+- Increase the index width of Filename and Path entries
+  to 255 chars -- suggestion of Meno Abels.
+- Change remaining VARCHARS to TINYBLOBs.
+- Remove recursion from is_volume_selected() following
+  bug report from Peter.
+- Implement mostly correct handling of use_storage in the
+  SD with full lists, ...
+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 HÃ¥kansson <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.
diff --git a/docs/techlogs/2005/nb-1.37 b/docs/techlogs/2005/nb-1.37
new file mode 100644 (file)
index 0000000..b9bcce6
--- /dev/null
@@ -0,0 +1,93 @@
+              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"
diff --git a/docs/techlogs/kes-1.37 b/docs/techlogs/kes-1.37
deleted file mode 100644 (file)
index 2109045..0000000
+++ /dev/null
@@ -1,1326 +0,0 @@
-              Technical notes on version 1.37  
-                        Kern Sibbald
-
-General:
-
-Changes to 1.37.36:
-20Aug05
-- Landon's fix for NLS detection
-- Eliminate incorrect compiler warning on FreeBSD. 
-- Move Win32 errno message build into berrno constructor.
-- Minor Win32 build tweaks
-19Aug05
-- A number of minor build 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.
-
-Changes to 1.32.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.
-
-Changes to 1.37.30 released 16 July 05:
-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.
-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:
-- Remove (cd gnome-console; make clean) from src/Makefile.in
-- 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 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 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
-- Make option 2 of restore work better (list last 20
-  locations for a file).
-- Make SD re-open a device with the right permissions if
-  it was previously opened with something different.  This
-  should allow reading read-only Volumes under all circumstances.
-- Implement restore of a single directory.
-- 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:
-18Apr05
-- Make Bacula build without Python
-- Drop Status table in drop_ scripts -- bug 283.
-17Apr05
-- First cut of new Python implementation.
-- Doc updates
-- Correct SuSE autostart installation directory name --
-  supplied by a user.
-- Fix director crash if Name directive not supplied
-  in a Job.
-- More cleanup of changing %u to %s for DB IDs.
-- Replace dev_can_write(dev) with dev->can_write().
-11Apr05
-- Make fsr_dev() a method dev->fsr()
-- Remove Created new FileSet message as it always comes out in
-  the daemon messages.
-- eliminate dev_is_tape() in favor of method dev->is_tape()
-- Turn on disk seeking during restore for Disk Volumes. This
-  required some changes to bscan -- they seem a bit suspect as
-  they are not symmetrical for tape/files.
-- Remove some of the recursion in stored/parse_bsr.c
-- Move rescue out to a new Bacula project.
-08Apr05
-- Update of web site to replace old released doc with LaTeX 
-  version.
-- Replace logo in doc with new bat logo.
-- Make a good number of updates to the manual.
-- Implement Python scripting using a Python object.
-  This makes interfacing with Bacula cleaner (object
-  oriented).
-- Add Phil's Status table to the database -- used
-  for getting a text description of the status     
-  codes.
-- Modify FileSet so that an empty Options (no
-  pattern matching) with an exclude will exclude
-  all files.                       
-- Modify FileSet so that no top level included File
-  item can be excluded by a matching pattern.
-- Suppress Created new FileSet record in daemon output.
-- Implement Python in FD.
-- Turn off old bfile reader code -- to be replaced
-  by Python.
-05Apr05
-- Remove more recursion in src/dird/bsr.c as pointed out
-  by Peter.
-04Apr05
-- Increase the index width of Filename and Path entries
-  to 255 chars -- suggestion of Meno Abels.
-- Change remaining VARCHARS to TINYBLOBs.
-- Remove recursion from is_volume_selected() following
-  bug report from Peter.
-- Implement mostly correct handling of use_storage in the
-  SD with full lists, ...
-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 HÃ¥kansson <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.
-
-Version 1.36.1 Released 26Nov04:
-24Nov04
-- Take Dan's fix to the fix_postgresql_tables (thanks Dan)
-- Increase Maximum Concurrent Jobs to 20 in SD and FD!
-- Fix improper handling of autochanger Volumes that are not
-  marked InChanger. Bug 170.
-22Nov04
-- Update authentication failure message to indicate possible
-  problem with Maximum Concurrent Jobs. Add to doc too.
-- Commit PostgreSQL BIGINT fix -- apparently some people didn't
-  get it.
-- Do not use a slot unless it is InChanger in the autochanger
-  code, otherwise autochanger gets upset not finding the Volume.
-  Bug 170 (need fix above too).
-21Nov04
-- Make authentication timeout compile time configurable.
-  The value is set in src/baconfig.h
-- Fix removing items from watchdog queue, which apparently
-  screwed up if there was more than one item.
-- Rework mediaformat part of manual to separate out old
-  tape format for easier reading.
-- Add a lot of debug code to the authentication code.
-- Add seconds to the start/end times printed in the job report.
-19Nov04
-- Fix mutex deadlock in dequeue of messages.
-- Add debug code to FD authorization.
-18Nov04
-- Increase authentication timeouts to 10 minutes.  
-15Nov04
-- Fix cancel bug in FD on /lib/tls with zero pid in 
-  pthread_kill.
-- Add date/time to all messages.
-- Make Qmsg use time message was queued rather than time
-  printed.
-- Indent job output two spaces.
-13Nov04
-- Fix web page links for new manual.
-- Grant postgresql permission to cdimages.
-- Correct crash after "list nextvol" "list media" bug 160
-12Nov04
-- Fix scripts/Makefile.in missing ;\  -- thanks Martin
-- A bit of work on btape to keep if from going into infinite
-  loops when things do not work well, and to print a bit
-  better info.
-11Nov04
-- JobDefs Storage resource completely overrode anything
-  specified in Job resource -- bug 159 -- fixed.
-- Fix syntax of renaming postgresql per Dan.
-- Add working_directory to be /tmp for wx_console.
-10Nov04
-- Allow both a JobId and a filename or list of files to be
-  specified on a restore command line.
-- Save old mtx-changer before installing new one: bug 156
-- Fix errors in CDROM file pointed out by Scott.
-09Nov04
-- Fix exepath when Bacula executed without path.
-- Move test for socket libraries for Solaris in configure.in
-  before tcp wrapper tests so that linking works.
-- Add "make copy-static-fd" to makefile in CDROM file to
-  copy existing static fd to CDROM rather than building it.
-08Nov04
-- More doc updates
-- Fix ps command for OpenBSD
-- Rework the creation of indexes for SQL -- fall back
-  to the old code, but document what can be added.
-06Nov04
-- Add new Daemon message handler in default DIR conf.
-05Nov04
-- Fix Seg Fault with -D100 in bpipe.c.    
-- Fix Seg Fault in run specifying a JobId.
-- Make mail from daemon with a Messages Resource use
-  the MailCommand with editing rather than the default
-  sendmail.
-- Replace Jmsg in dispatch_message() with Qmsg.
-- Make edit_job_codes handle NULL jcr.
-04Nov04
-- Add M_ALERT class and put tape alerts into it.
-- Fix Verify count vs found by not double counting files
-  that are split across files/Volumes.
-30Oct04
-- Fix count returned from write_bsr_file() to handle multiple
-  volumes. This fixes most cases of the Verify VolumeToCatalog.
-- Cleanup a bit the make clean for the rescue cdrom and remove
-  unneeded files from the CVS.
-28Oct04
-- Fixed acquiring a tape so that it does not block all acquires
-  when operator intervention is needed.
-- Platform build script updates from Scott
-- Doc updates
-- Add patch to force Linux LD_ASSUME_KERNEL to avoid using the
-  new /lib/tls. This is done in the startup scripts.
-- Modify mtx-changer so that it checks for ONLINE while
-  waiting.
-- Modify make_postgresql_tables.in so that EndBlock is stored
-  as a bigint. Prevents job failures when a disk volume is
-  larger than 2GB.
-24Oct04
-- Add grep ONLINE to wait_for_drive() in mtx-changer.in
-- More doc.
-- Rebuild Scott's new configure
diff --git a/docs/techlogs/nb-1.37 b/docs/techlogs/nb-1.37
deleted file mode 100644 (file)
index c9715de..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-              Technical notes on version 1.37  
-                      Nicolas Boichat
-
-General:
-
-Changes to 1.37.*:
-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"