+ Technical notes on version 3.0.x
-2004-06-xx Version 1.34.3 xxJun04 Release
-02Jun04
-- Print "Unimplemented" message if user does reload command in Console.
-- Add DISTINCT to Volumes for restore in query message (user supplied fix).
-- Fix crash in btape during read after fill -- important bug.
-- Turn config parse ABORTs into ERROR_TERM in Storage daemon.
-- Add dbcheck enhancements submitted by Mano Abels and
- Jose Luis Tallon.
-- Update autoconf files to latest version.
-01Jun04
-- Modify jobq scheduler to require exclusive use of the Storage device
- before starting it.
-31May04
-- Eliminate a few compiler warnings on Win32
-- Change Win32 to use btimers instead of timers.
-- Remove two returns in void subroutines in wxbconfigpanel.cpp
-30May04
-- Apply Christopher Hull's check for error return from open_bpipe()
- in filed/job.c
-- Be sure to clear *all* bits in hourly when an hour is given.
-- Apply a user fix to query.sql
-- Check status code returned from _open_osfhandle in compat
-28May04
-- Apply Peter Eriksson's bug fixes.
-- Add Alpha (tru64) submitted by Scott Bailey.
-- Update manual
-- Add new Autochanger to list supported
-- Cleanup src dir better after glade trashes it with junk
-- Make another attempt to get hourly, daily, ... keywords working
- intuitively and correctly.
-- Prevent seg fault when no job name specified on "status job"
-- Rename timers.h/.c in lib to prevent conflict on some machines
-- Trap NULL DCR in block.c
-- Add additional info to failed btape test pointing user to manual.
-- Undefine DCR, which is defined on some stupid systems.
-- Fix stored/dircmd.c not to quote Volume name on label query so that
- "update slots scan" works right (the quotes confused it).
-- Fix autochanger.c not to attempt to unload a slot if the prior loaded
- request returned -1.
-01May04
-- In testing for Mike Acar's problem. I *finally* found and nailed
- the mount command that did not release a waiting job. The return
- of a stolen lock forgot to broadcast.
-- In examining Mike Acar's problems, it appears that the Bacula
- block size is not always set to a multiple of 1024. I've modified
- block.c to do so.
-30Apr04
-- Add Excludes to new FileSet handling.
-- Fix bsmtp.c to correspond to RFC-2821 by removing extra spaces.
-29Apr04
-- Implement new style FileSets in both the Director and in the
- File daemon. No filters yet. Both old and new styles work.
-28Apr04
-- Apply the fixes Chris Hanson sent for mtx-changer and for detecting
- PostgreSQL on debian.
-- Rework File Options document
-- Re-begin work on File Options.
-- Add define for nl_langinfo in configure
-- Add additional tape drives sent by Jesse.
-27Apr04
-- Modify syslog in win32/compat to throw up a MessageBox().
-- Inhibit sending daemon messages to stdout if Win32 is set.
-- PostgreSQL performance updates from Volker Goetz
-- DB script updates suggested by Dan
-- Doc updates
-
-
-2004-04-26 Version 1.34.2 24Apr04 Release
-24Apr04
-- Get production build on Win32 of wx-console working -- mostly a problem
- of getting the paths right and installing and building wxWidgets.
-23Apr04
-- Make SD utility programs accept device name as well as archive device
- on command line.
-- Update docs
-22Apr04
-- Fix one off bug in StartBlock in bscan -- thanks to Gregory Brauer for
- reporting this.
-- Remove old debug code from Win32 FD.
-
-2004-04-20 Version 1.34.1 20Apr04 Release
-18Apr04
-- Found and fixed SD crash during restore.
-- Added FreeBSD Bare Metal Recovery documentation by Alex Torres
- Molina and others.
-- Added nice graphics produced by Aristedes Maniatis giving an
- overall view of Bacula.
-- Changed textdomain to be "bacula" in all progs.
-- Fixed a major race condition in the job scheduler when multiple
- simultaneous jobs is enabled. This occurred only when on job had
- blocked another because of resource usage. This caused a deadlock
- and CPU usage. Reported by Michel Meyers.
-- Changed the backup report to indicate "Backup OK -- with warnings
- if any warning messages were generated.
-- Change output of restore report to indicate:
- "Restore OK -- warning file count mismatch"
-- Make backup report say "Backup OK with warnings" if either FD or SD
- report any non-fatal errors.
-- Modify bscan to print some elementary statistics (#Jobs, #Files, ...)
- added to catalog.
-16Apr04
-- Modify bscan to print some elementary statistics (#Jobs, #Files, ...)
- added to catalog.
-15Apr04
-- Added --enable-wx-console and updated Makefile.in
-- Fix mtx-changer so that the calling sequence is compatible
- with the previous version (the new one required arguments that
- were not necessarily used).
-- Document how to use stunnel with Bacula.
-13Apr04
-- Fix crash in query command.
-- Remove schedule from the default restore job.
-- Fix data spooler to use min/max tape blocking factors.
-- Automatically turn of conio if library not found instead of bombing.
-- Cleaned up a lot of copyright dates.
-- Try to keep spool statistics from going negative.
-- Integrated wx-console code from Nicolas Boichat.
-09Apr04
-- Added new Pools chapter. Doc about using two disks.
-- Attempt to keep the spool file statistics size from going
- negative.
--8Apr04
-- Fix the Director's Scheduled Jobs: list to have a ===
- termination.
-- Fixed ./configure to disable readline rather than stop if
- readline.h is not found
-- Fixed a typo in the SQLite database update script as reported
- by Robert J. Clark - thanks.
-07Apr04
-- Removed src/win32/pthreads and src/win32/zlib from the source
- tree.
-- Created a new depkgs-win32 that has the pthreads and zlib source
- code.
-- Removed the JobDefs from the default Restore job as it has a
- schedule. Thanks to Matt Howard for this.
-
-
-2004-04-06 Version 1.34.0 06Apr04 Release
-06Apr04
-- Turn off SIGQUIT in console.
-05Apr04
-- A good number of document updates.
-- Fixed the order which multiple files are accepted for
- inclusion in the restore tree due to the fact that PostgreSQL
- returns files in a different order from their insertion.
-02Apr04
-- Fix autochanger test in btape. It used old editing routines.
-- Fix run_program to return 0 if program runs and no output.
-- Add more debug to run_program.
-- Make signal debug print signal string.
-01Apr04
-- Build console with client-only build.
-- Add better error messages to some of the db_xxx routines.
-- Apply Christopher Hull's patches for proper Win32 shutdown.
-- Eliminate True and False in favor of true and false.
-- Put correct thread id in jcr once the correct thread is running.
-- Zap head and tail pointers in dlist when everything is removed.
-- Rework sm_dump() so that it won't overrun a buffer when editing
- and error message.
-- Fix watchdog to properly remove entries while walking the
- dlist chain.
-- Fix termination of last_jobs list by removing broken code.
-31Mar04
-- Update dbcheck to fix Paths without a trailing slash and Filenames
- with a trailing slash.
-30Mar04
-- Add -p option to all SD programs including bacula-sd. It causes
- Bacula to proceed or forge on in case of I/O errors. It is unlikely
- this will help, and it is strongly recommended against running
- the daemon with this option in production.
-- Tweaked the Makefile not to create the gnome directories except
- when doing a gnome install.
-28Mar04
-- Implement Qmsg() queuing of messages to prevent recursion especially
- for bnet.c where recursion is fatal.
-- Add detection of ncurses if the termcap lib is not found.
-- Tweak winabout -- start cleanup.
-- Fix dlist again, when list is destroyed, be sure to null head and
- tail pointers.
-27Mar04
-- Make the default for restore to have nothing marked.
-- The "all" keyword on the restore command marks everything by
- default.
-- The "done" keyword on the restore command prevents user interaction
- with the tree routines -- used mainly for scripting (regression ...).
-- Correct a bug in the last_sibling code.
-- Add alphabetic sorting of siblings so the "dir" and "ls" commands
- during restore show files in alphabetic order.
-25Mar04
-- Based on Mike Acar's suggestions rework tree insert routines. Improve
- performance by using a last_sibling link for inserts.
-24Mar04
-- Apply corrected SQL to sql_get.c supplied by Dan Langille.
-- Implement "delete job jobid=xxx jobid=yyy ..."
-- Implement "purge volume=xxx volume=yyy ..."
-- Fix buffer overrun in query string substitution.
-22Mar04
-- Fix bad format %s instead of %d for editing new slot in update volume.
- Reported by Vadim Zotov.
-- Better error diagnostics in ./configure for detecting termcap library.
-20Mar04
-- Restore old sql.c split_path and file name since it seems to have
- broken the Verify stuff.
-19Mar04
-- Hunt down missing free_locked_jcr() in SD that caused zombies.
-- Modify status outputs to be more consistent for zombie checking.
-- Add tests to regression script for zombie jobs.
-- Set EIO in dev_errno for all error returns when bad data found. This
- fixes ERR=Success messages.
-- Make error messages all contain ERROR for easy regression testing.
-- Add sanity check in DIR for VolFiles becoming smaller.
-18Mar04
-- Second cut GTK+ restore GUI. Ready for testing but much more to do.
-- Phil reported an sql path length=0 message. This broke saves of
- / -- fixed in scan.c
-- Fixed seg fault in btape "test" due to missing allocation of dcr.
-- Tweaked some btape messages.
-- Sort Volume names in Job report according to the order they were
- written -- user request.
-17Mar04
-- First cut GTK+ restore GUI.
-- Applied bsmtp patch supplied by a user. Thanks.
-- Made a new split_path_and_filename() subroutine -- in lib/scan.c
-15Mar04
-- Fix "typos" in RedHat install-autostart Makefile.in
-13Mar04
-- Added two tar files that Phil sent for adding slackware support.
- Thanks Phil and Matt Howard.
-- Fix relabel command -- || should have been &&.
-- Correct once more the scheduling algorithm -- this time it should
- be much better.
-12Mar04
-- Implement simple spool statistics printed by "status sd".
-- Cleanup/add spool error messages.
-- On multiple ctl-c, exit from console quickly.
-- Implement code to select a different Volume in the SD if the
- current Volume is busy -- requested by Patrick Cole.
-- Change postgreSQL make tables to use bigint instead of integer
- for StartBlock and EndBlock because
- there is no unsigned integer in postgreSQL and these fields use 32 bits.
-- Implement multiple drive autochanger support -- prompted by email of
- Patrick Cole.
-11Mar04
-- Update version and date in Win32 build.
-- Fix bug in run_conf with month range zapping wday and wom.
-- Correct editing of port for PQsetdbLogin in postgresql.c as reported
- by J. Conroy, and do a second try.
-10Mar04
-- Integrate Phil's Makefile patch.
-- Add SpoolDirectory to SD Device resource.
-- Add MaximumJobSpoolSize to SD Device resource.
-- Add MaximumSpoolSize to SD Device resource.
-- Implement the above.
-- Make despooling lock the device so only it writes
- to the device during despooling.
-09Mar04
-- Data spooling now passes the regression tests.
-- Added "Files Expected" to the restore job report.
-- Implemented SpoolData = yes/no in the Job resource
-- Implemented SpoolData = yes/no in the Run overrides.
-- Note, you must have a 1.33.4-09Mar05 SD or later with the Director since
- the DIR->SD protocol has changed to support data spooling.
-- Remove the confusing "Which DBMS do you want to use (please select only one):"
- messages from ./configure.
-- Fix broken Jmsg with missing argument in find_one.c
-08Mar04
-- Second cut data spooling code.
-- Fix missing piece of yesterday's patch.
-07Mar04
-- Integrate patches supplied by Jason Conroy that fix Slot numbers
- getting lost.
-06Mar04
-- This version contains a *major* addition to the SD structures.
- Many variables have been moved out of the JCR into a new DCR
- (Device Context Record). This required quite a few changes, and
- introduced a bit of instability. In the end, after a few more
- rounds of changes, the DCR will replace virtually all arguments
- to the low level SD read/write routines. This change permits
- (with a bit more code) the SD to write to multiple devices at
- the same time for a single Job. It also facilitates adding the
- data spooling code.
-- Added a patch that fixed the port specification for postgresql.
-- Fixed findlib/find_one.c so that it will complain about backing
- up a hard linked file twice, which makes a restore impossible.
-- Tighten up permissions on pid file.
-- Attempt to avoid warnings when casting 64 bit pointers to an
- integer.
-- Added skeleton code for data spooling.
-- Make sure spooled attributes are discarded on error.
-03Mar04
-- Updated getdiskinfo in rescue/linux to handle the fact that the
- sfdisk -s option now includes info on partitions. Also, before
- creating the diskinfo files, clean out the old ones.
-02Mar04
-- Add debug and error output to jobq.c
-- Fix some minor errors in debug output of scheduler.c
-- Add "trace on/off" command and modify trace code in message.c
- to work off trace flag rather than #defines.
-01Mar04
-- If console is found during install warn user (new name is bconsole).
-- On install copy console.conf to bconsole.conf if it exists.
-- Make RunAfterJob error non-fatal.
-- Rework minor details in status output.
-- Attempt to define all values for "consoles" in JCR to avoid
- confusion.
-28Feb04
-- Use net start bacula to start Bacula on WinXP/NT/2K
- systems after installation.
-- Change a few strcpy()s to bstrncpy()s in signal.
-- Add "gui on/off" command to console to turn on gui mode,
- which will adapt Bacula better to batch or gui programs.
- Currently, it prevents commas from being inserted into
- numbers in the list command.
-- Tweak some of the Makefiles so that the install is done with
- the right program (nothing really changed).
-- Install logrotate in the "make autostart" of Bacula on RedHat.
-- Implement SIGHUP while jobs are running. It *seems* to work but is
- a bit fragile and still crashes if you push it. More work needed.
-- Applied Phil's GNOME 1.4 patch. Very clean. Thanks Phil.
-- Major updates to the native Win32 installer.
-27Feb04
-- Restructure free of conf resources to handle job_end_push()
- and SIGHUP. Lots of changes little substance.
-26Feb04
-- Add mtimeonly=yes/no and keepatime=yes/no to Include list
- 1.33 style.
-- Allow no modifier in time and size specifications.
-- Attempt to implement disk seeking. More work needed.
-- Implement more in win32 installer and test it.
-25Feb04
-- Implement kb, mb, and gb modifiers for size, which mean
- 1,000 bytes, 1,000,000, ... bytes.
-- Add Makefile to src/win32 to allow building the full
- release -- it calls nmake where appropriate.
-- Remove the rsi directory from win32 as suggested by Christopher
-- Add Michel Meyers' nsi file to win32 and integrate it with
- the build.
-24Feb04
-- Add the frigging _O_BINARY to the right variable. Win32 works!
-- Add debug code to state file. There is a problem with Win32 read
- returning one byte less than it should.
-- Implement a number of new functions for alist so that it has
- equivalent functionality to dlist. It will be used for
- job_end_push().
-- More work on state file.
-- Added a popup message box on Windows if Bacula Aborts.
-- Attempt to shutdown the FD server, but doesn't work on Windows. This
- would have given a cleaner shutdown, no problem.
-23Feb04
-- Update projects
-- Attempt to fix state file on Win32 -- no luck.
-- Add HPUX tweaks to configure.in
-- Update quickstart and install.wml of doc.
-- Eliminate extern int h_errno from bnet.c by including netdb.h
-- Eliminate NumJobs from last_job structure so that FD and SD
- correctly report what is in the state file.
-22Feb04
-- Implement daemon state file, and save/restore last_jobs list.
-- Fix time routines in win32 compat.cpp
-- Fix a bug of not checking the bpipe_open() status in do_shell_expansion().
-21Feb04
-- Add Volker's bacula script to the SuSE directory and convert it
- to bacula.in
-- Make LockRes() and UnlockRes() use read/write locks and have
- debug info to trace locking and unlocking.
-- Begin work of implementing SIGHUP. It is now enabled for
- the Director and works only if there are no jobs running,
- in addition, if the new conf file is incorrect, it will
- terminate Bacula. Much more work to be done. I've figured
- out a scheme to implement it with running jobs without
- adding individual semaphores or use counts.
-- Sort "list jobs" by StartTime rather than JobId, which can
- be random.
-16Feb04
-- Add a lot of "const" to char * arguments to keep the native
- Sun compiler happy.
-- Added first cut of message queuing to prevent recursion in
- low level routines. This code is not yet working.
-- Spent a *huge* amount of time looking at the tape driver
- code in the wake of several reports of tape labels getting
- trashed. The code looks fine.
-- Created a tape with an error (by writing a block at the
- beginning of a tape that had valid data), and found that
- Under Linux there is no way to read past an I/O error.
- I tried mt; I tried my own program (btape); and I tried
- using scsitape, which talks directly to the scsi driver.
- This is *VERY BAD* news.
-- I spent an *enormous* amount of time enhancing the btape
- test program as well as making the fill command work with
- both one and two tapes and the autochanger if configured.
- The multiple tape fill test is now quite comprehensive.
- It checks the last block on the first tape, the first block
- on the second tape, and the last block (11) on the second
- tape.
-- Teaked the tape driver for several functions to use the
- OS driver's notion of mt_file if there is an error.
-13Feb04
-- Add DB update scripts retrieved by Scott to a new updatedb
- directory at the top level.
-- Add -p option to bcopy to allow ignoring errors on input.
-- COALESCE(xx,0) does not work on PostgreSQL because the 0 is not a
- correct time. Replaced by adding LastWritten IS NULL to the sort
- line as was first suggested by JML.
-12Feb04
-- Use COALESCE(LastWritten, 0) in sql_find.c to get NULLs to sort last.
- See note above.
-- Add write/read and positioning test to btape "test" program.
-10Feb04
-- Fix bad printf of InChanger flag reported by Pascal Pederiva.
-- Fix bad indexing off stack in authenticate.c reported by
- Pascal Pederiva.
-09Feb04
-- Add \n to hosts.access reject message.
-- Implement security message class and make hosts.access message use
- that class.
-08Feb04
-- Fix check_memory bug in ua_query.c, which gives a bus error on Solaris.
- This affected only the query command.
-07Feb04
-- Added backup to cdwriter script to examples provided by Johan Decock.
-- Fixed a bug where ls really did lsmark (just invert command table
- entries).
-- Fix bug where a soft linked file and a directory had the same name
- by treating the soft link as a directory and putting the entries under
- it. This fixes the bug reported by Alexander Mueller.
-- Fix a deadlock situation in the new watchdog code where the
- watchdog locks its semaphore, and attempts to lock the jcr_chain,
- but another thread has locked the jcr_chain and wants to free a
- watchdog, which tries to lock the watchdog semaphore -- deadlock!
- Used read/write locks to solve the problem.
-- Improved the error messages when I/O errors or buffer id errors
- are detected, and prevent non-sense errors from being printed.
-- Fix some incorrect messages in restore if no name is supplied
- on the command line (e.g. pool= ).
-- Add the third digit to the release version number.
-04Feb04
-- Add -l option to bls that causes it to ignore tape label errors.
-03Feb04
-- Correct problems with jobs scheduled at a later time by hand.
- Missing unlock(), backward test on pthread_create status.
-- Fix setip crash reported by Alan Brown.
-- Create bacula.spec.in in SuSE directory from Scott.
-- Fix missing unlock() in ua_status on access denial.
-- Lots of little cleanups, improving jcr use_count debug printing.
-- Add EMSG to mem_pool utilization statistics.
-01Feb04
-- New bacula.spec.in file from Scott
-- Add Scott's spec file to the platforms/suse directory
-- Modify configure.in to make platforms/suse/bacula.spec
-- Do not allow a resource name to be specified twice.
-
-2004-01-30 Version 1.33-30Jan04 Release
-30Jan04
-- Apply Jess Guardiani's second fix to list autochanger volumes without
- opening the drive (necessary on FreeBSD if no tape is in the drive).
-- Added Postgresql configure search libraries recommended by Alan Brown.
-29Jan04
-- Reworked the command line handler in restore to walk through the
- arguments one at a time. This makes the file= entries work correctly.
- Also reworked the code that takes the MediaType and finds a
- storage device.
-26Jan04
-- I've noticed that the backups of Rufus, my development machine, can be
- "stuck" for about 12 hours, then suddenly they run. In running the
- debugger, I see that it was stuck on the select() statement waiting
- for the Hello. Why this happens I am not sure. I re-organized the code
- a bit because it didn't seem to be as robust as it could, but I cannot
- explain the problem.
-- As a consequence of the above, I have implemented a new bsock timer that
- can be started and stopped. This is based on Nic Bellamy's new watchdog
- code. The timer is set with start_bsock_timer(bsock, timeout); If the
- timeout expires, the bsock will be marked as timed_out and interrupted
- with a pthread_kill() on the current thread.
-- Added 5 minute bsock timers to all the opening Hello/authentication
- exchanges between the various daemons.
-24Jan04
-- New spec file from Scott.
-- New patch file from Scott for create_sqlite_database
-- Fix crash in run command if invalid pool specified on the command line
- and then the user cancels the Pool prompt.
-- Separate Console and ConsoleFont resources in gnome2 conf files.
-- Remove possibly bad ASSERTs from bnet.c
-- Remove open() of device in dircmd.c, which fails on FreeBSD with
- an autoloader -- thanks to Jesse Guardiani for this fix.
-20Jan04
-- Remove all "hostname -s" from configure except for RedHat. Use uname -n instead.
-- Implement SetIP command.
-- Implement Close On Poll in Device resource on SD.
-- Implement Full, Inc, and Diff Pools.
-- Implement Access control lists for Consoles.
-18Jan04
-- Define default working_dir as /var/bacula/working.
-- Implement setip console command to set new IP address for a Client.
-17Jan04
-- Implement maximum network buffer size directives.
-- Good first cut at access control lists for the console.
-- Optimize restore to select only latest Differential backup after
- the Full, and then all following Incremental backups. Previously
- everything after Full was selected.
-16Jan04
-- Organize kernstodo a bit (more to be done).
-- Add client IP address to BSOCK structure.
-- Use bit fields where appropriate in BSOCK structure.
-- Pass UAContext to ua authenticate in Director, and make it
- set the appropriate console (or NULL for none).
-- Tweak restore "run" argument handling and add "files" keyword.
-- Add device name or Volume name to some SD messages.
-15Jan04
-- First cut multiple consoles.
-14Jan04
-- Update kernstodo
-- Add quit command to restore tree handler.
-- Make restore tree handler remember if a hard link is present, and
- in doing a mark, only get database entry if there is a hard link.
- mark commands thus run at least 2 orders of magnitude faster.
-- Add files=xxx field to run command submitted for restore.
-- Add yes to restore run command if either yes or run is command line
- argument.
-- Make "yes" on command line argument skip prompt for modification of
- run job.
-- Add markdir and unmarkdir -- both affect only the directory in
- question and do not do a recursive descent.
-- Make tree command automatically mark all higher level directories to
- be restored when a directory or a file is selected. Such directories
- are indicated by preceding the name with a + to indicate that only
- the directory entry is selected and not the whole directory tree.
-- Modify a few tree commands to walk through all arguments rather than
- just taking the first one.
-13Jan04
-- Update copyright date on changed files.
-- Make mark command in restore tree run *much* faster by accessing database only
- if the file actually is hard linked -- determined at time tree it built by
- keeping a has_link bit in the tree entry.
-12Jan04
-- Modify findlib/makepath.c to create all parent directories with full permissions.
- This should solve the access problems on restoring files on Win32 systems.
-- Modify restore to report **** Restore Error **** if any error are found.
- I.e. a file could not be created.
-- Change a few errors into warnings -- e.g. if permissions could not be set, but
- the file is actually restored.
-11Jan04
-- Replace bsd_queue with dlist in lib/watchdog.c
-- Add Date: header to bsmtp. Thanks to Meno Abels (abels) on SourceForge
- for reporting this.
-- Remove ap==NULL check in src/lib/var.c as suggested by Christoph Barbian
- because ap (va_list) is a struct on the Alpha, so the code does not
- compile.
-10Jan04
-- Implement first cut of polling for a Volume. New Device directive
- "Volume Poll Interval = xxx" where xxx is a time specification
- (e.g. 5min). Default is off.
-- Call pthread_cancel on SD msgchan only if the threadid is non-zero.
-07Jan04
-- Change RH autostart scripts to start in Dan's order.
-
-2004-01-06 Version 1.33-06Jan04 Release
-06Jan04
-- Correct calculation of week of month in scheduler and in scheduled
- listing.
-04Jan04
-- Fix cancel of job waiting on mount to be a bit cleaner.
-03Jan04
-- Fix seg fault -- don't close db in db_open_database(). It must explicitly
- be called.
-- Doc updates
-- Allow purge of a single JobId from a Volume (code untested)
-- Implement fix to keep SD from looping complaining about the wrong volume
- at the end of a tape -- reported by Phil, and fix confirmed by him. I cannot
- seem to reproduce the bug here.
-- Clean up a few more strcpy()s.
-01Jan04
-- Fix configure.in FD User print per Lars.
-- Doc update.
-- New bacula.spec.in from Scott. Nice!
-- Make RunAfterJob non-fatal if it errs since the Job has really
- already completed the save.
-- Replace sprintf with bsnprintf in message.c
-31Dec03
-- Note, this change affects only the Win32 FD.
-- Fixed Win32 FD crash due to missing argument in status command. It
- always crashed if there was a job that had previously run. Thanks to
- Christopher Hull for finding and diagnosing this problem.
-29Dec03
-- Fix SELECT as indicated by Dan in sql_get.c for returning Volume names.
-- Fix last_jobs list crash for utility programs (btape, ...).
-- Correct editing of FileSet name into SQL command.
-- Allow calling watchdog stop without initialization for utility programs.
-- Enhance btape test by attempting to forward space past the end of the tape.
-- Detect CAP_FASTFSF in btape test as possible reason for failure.
-- Attempt to prevent infinite loops in fsf_dev() if device not properly
- configured.
-- Attempt to get correct file number on tape after backspacing at EOM. The
- correction should resolve differences in OS tape driver implementations.
-- Add ctl-c detection to bconsole. When reading from tty, interrupts any
- output from Bacula, when reading from a file, it terminates the reading
- and returns possibly exiting if it is a batch job.
-- Create devel_bacula.in script and make it configure itself. Very similar
- to the new bacula.in.
-- Modify bacula.in to have separate file locations for each daemon -- makes
- it easier to make a new devel_bacula.in when there are changes.
-- Remove old config files when rebuilding configure to avoid error msgs.
-- Fix btape "test" to respect TWO EOF.
-- Fix fsf_dev() to use system notion of file if it is valid after bsf_dev().
-- Move btraceback.gdb to scripts directory on installl.
-- Add new mandrake bacula.spec.in
-28Dec03
-- Find commonset of c_iflags that work with FreeBSD tcsetattr on terminals.
-- Remove comments from string concatenation -- doesn't work on FreeBSD
- compiler.
-- Moderately improve bpipe_close() errors. Must rethink status return.
-- Eliminate some Emsgs in favor of Jmsgs.
-27Dec03
-- Add optional Pool keyword on restore command line. If specified, the pool
- used will be restricted to the specified pool.
-- "Finish" implementation of JobDefs.
-- Fix directory for chmod of cats scripts.
-26Dec03
-- Implement foreach_res() #define and start replacing old code.
-- Work some more on jobdefs -- more to be done.
-- Implement bstrftime_nc() bstrftime with no century.
-- Fix static console problem in gnome2 and gnome directories reported by Alan
- Brown.
-- Add code to test for valid Resource Names. Permitted characters are now
- alpha, numeric, colon, period, minus, underscore, space.
-- Turnoff some unused code in timers.c
-- Start adding code to dev.c to prevent infinite loops if fast forward space
- file (MTFSF) is configured on but not properly supported by OS.
-24Nov03
-- Sort FileSet selection list by CreateTime.
-- Add "lsmark", and "estimate" to tree routines.
-- Doing a mark or unmark now prints how many entries were changed.
-- Add command argument parsing to btape.c
-- Enhance EOT to print file:block on message.
-- Add repeat counts on btape bsf, fsf, bsr, fsr, and weof commands.
-- Enhance btape's fill command to be much clearer and more reliable.
-- Add state file to btape so that unfill command can be done any time
- after a fill command.
-- Use reposition_dev() to position for read back of last block.
-22Nov03
-- Zap InChanger flag only if setting Slot to non-zero.
-- Added new SD directive TwoEOF, default off, that tells Bacula whether
- to write one or two EOFs for EOM. For the OnStream driver it must
- be off, otherwise an empty file will be created.
-- Cleaned up the btape "fill" command to compare the last block written
- and read rather than just printing them.
-21Nov03
-- Implement btape test for autochanger.
-- Implement btape test for Fast Forward Space File.
-- Moved up to cygwin 1.5.5-1
-- Implemented Fast Forward Space File
-20Nov03
-- Add support for selecting volumes from InChanger list first, then
- selecting from all available volumes.
-- Ensure that Volumes are selected from oldest LastWritten data/time.
-- A couple of bug fixes ensuring the proper ordering of volumes.
-19Nov03
-- Return oldest LastWritten for find_next_volume.
-- Remove ASSERT from stored/acquire.c that could trip when it shouldn't.
-- Enhance SD status if debug_level > 1 to show details of dev status.
-18Nov03
-- Create update_bacula_tables, ... scripts and modify configure and Makefiles
-- Eliminate is_num() and use is_an_integer().
-- Add user slot selection code "slots=1,2-3,5,10, ..."
-- Start daemons at level 90 rather than 20 so that MySQL will already
- be started.
-- Write alter_mysql_tables.in and alter_sqlite_tables.in
-- Add Drive and InChanger to Media record.
-- Update database level to 7.
-- Add db_make_inchanger_unique() and call it when creating and updating
- the Media record.
-- Add Drive and InChanger to database code for Media record.
-- Allow changing InChanger flag in update command.
-- First cut at allowing the user to specify slots for updating autochanger.
-- Add scan to "update slots scan".
-- Add command in SD to readlabel.
-15Nov03
-- In the bacula start/stop script, ordered the stop: FD SD Dir to
- give the SD the best chances of updating the catalog before dying.
-- Add Drive and InChanger to MEDIA_DBR record and to Volume update
- from the SD.
-- Reorganize the Volume info update from SD so that the Dir sends back the
- current information in case the Volume status has changed by expiring.
- The DIR-SD protocol is not backward compatible (must update).
-- Fixed the signal handler to pass the signal to the exit_handler()
- previously it passed 1.
-- Modified SD so that on normal shutdown, it walks through all jcrs and
- cancels them so that the Volume status will be updated in the catalog.
-- Found and fixed a bug where ST_LABEL was not set in append mode
- (when a different tape was accepted other than the original one
- proposed by the DIR.
-- Update the catalog Volume info after dev->file is incremented rather
- than waiting for end of job.
-12Nov03
-- Change getdomainname() prototype for Darwin.
-- Add gethost_strerror() to create correct error message for
- gethostbyname().
-- After doing a kill() of a stalled connection in watchdog, turn off
- the timer to prevent an infinite loop.
-- Allow Bacula to rewrite the label on a disk volume.
-- Correct usage report printed by bsmtp.
-11Nov03
-- Complete changing references to bsmtp from smtp.
-- Add L_NONE for Admin and Restore jobs and update level_to_str()
-- Fix segfault from double free of RestoreBootstrap in job.c
-10Nov03
-- Change console to bconsole
-- Change console.conf to bconsole.conf
-- Change smtp to bsmtp
-- Implement .bconsolerc
-- Check if volume has expired when doing an update media for the SD
-09Nov03
-- Implement new code that assures that a non-zero Slot is unique within
- a given Pool. When setting a non-zero Slot, the Slot of all other
- Volumes with the same Slot is set to zero. Redone later to add
- InChanger flag
-07Nov03
-- Fix bug reported by Lars where an incorrect Volume name was printed
- by the "status dir" command.
-06Nov03
-- Pretty up a few error messages printed by smtp.
-- Make btime_t int64_t so that one can do arithmetic.
-- Implement since as utime (64 bit UTC).
-- Compute clock diff between Dir and FD, and adjust since time.
-- Apply SQL fix from Nic Bellamy (thanks).
-- Apply John's zlib #ifdefing fix.
-05Nov03
-- Add Dan's with-sd-user, ... to configure.in.
-- Add Dan's userid and group modifications to bacula.in
-- Lots of documentation updates.
-- Make console print "Enter a period to cancel a command" when starting.
-- Fix the "list nextvol" command so that it doesn't try to close the
- database twice, giving a segfault.
-- Fix (hopefully) to dircmd.c so that a mount request does a pthread_cond_signal.
- There was one path were the signal was not sent. This should fix the bug
- that requires you to do two "mount" commands to free a job waiting on a mount.
-- Make dir_ask_sysop_to_mount_next_volume() return immediately if a slot is
- specified.
-- Correct some of the messages in testfind.c (pointed out by Dan -- thanks).
-- Alias fd to client, sd to storage.
-- Changed order of Console commands so that short commands such as q (quit)
- are more logical.
-
-2003-11-03 Version 1.32d 02Nov03 Release
-02Nov03
-- Mainly a bug fix release.
-- Do a clean of both Gnome directories.
-- Require that FileSet id match when finding an Incremental
- previous job. This was already the case for a Full.
-- Print message if no status returned from FD.
-- Correct "Do not forget to mount the drive" message. Test was
- backward.
-- "status dir" stopped scanning the run records on the first
- one that matched giving an incomplete listing.
-- Edit commas in Bytes on "estimate" command output.
-
-2003-10-30 Version 1.32c 30Oct03 Release
-29Oct03
-- Add %v to job edit codes. It edits in the VolumeName(s).
-- Add code to ensure that fds 0,1, and 2 are defined by dup'ing them
- to /dev/null if necessary. Mostly for Windows that does not have them.
-- Error check dir_create_jobmedia_record() 2 places in acquire.c
-26Oct03
-- More doc fixes.
-- Make message buffer longer for a status message that was
- truncated.
-- Put termination on varargs calls in gnome2-console.
-- Scroll only if text sent and not for status update.
-- Add all possible Status codes the jobstatus_to_ascii()
-25Oct03
-- Add new spec file and cats patch from Scott.
-- Optimize tree.c a bit -- turn off debug code, keep node fname
- length for fast rejection, add some statistics, allocate
- in 100K and 1Meg chunks, use bool, uint16_t and uint8_t to
- reduce node packet size.
-24Oct03
-- Eliminate ua_retention.c that was not used.
-- Improve error message when closing brace missing in conf file.
-- More doc updates.
-- Eliminate Don't forget to mount if it is a disk file.
-- Fix Gnome2 scrolling and blank screen problems.
-- Eliminate multiple JobIds in restore selection list.
-- Fix non-portable varargs code in var.c
-- Make doc fixes/changes suggested by Dan Languille
-23Oct03
-- Document new features.
-- Implement mod of Verify Job at the run prompt.
-- Correct SQL table definitions so that MySQL and SQLite
- have all the values in the same position.
-- Correct a typo in configure.in when configuring GNOME.
-- In doing a "status dir" make it loop over all the run
- commands in the Schedule rather than doing on the first one.
-- Close all unused file descriptors in bpipe.c otherwise if
- a daemon is started, it will keep our TCP/IP port open.
-22Oct03
-- Print block read error (checksum, I/O, BB01, ...) once then
- the number found at the end of the reading.
-- Implement RunAfterFailedJob
-- Change db_find_job_start_time() to require a Full save before
- running an Incremental or Differential job.
-- Remove has_volume_expired from code that updates vol info
-21Oct03
-- Implement "delete job"
-20Oct03
-- More documentation, add Marc Brueckner's tips to manual.
-- Tweak gnome2-console scroll window.
-- Turn off some debug info.
-18Oct03
-- Modify Verify to accept VerifyJob = xx, where the last backup job
- of job xxx will be verified.
-- Add changing the Pool name for a Volume to "update volume"
-- Write most of the code for Verify Disk to Catalog.
-- Recreate the src/gnome2-console directory.
-- Change all the text handling code to the Gnome 2.0 way.
-- Correct the way verify filenames are returned to the Director so
- that directories are in canonical form (i.e. trailing /).
-- Handle casting bug in glade-2 by sed'ing support.c in gnome2-console.
-
-2003-10-15 Version 1.32b 14Oct03 Release
-14Oct03
-- Modify configure so that if threaded MySQL client library
- is not present, Bacula will link with the non-threaded
- version.
-- Updates to the Web pages and to the manual.
-- Remove trademark symbol from title. Phil pointed out that it
- does not display correctly in a title.
-11Oct03
-- Implement restore by file before date.
-- Change restore arguments a bit so that you can feed it
- multiple jobid= specifications or multiple file= specifications.
-- Pass restore with run option on to run_cmd.
-- Make run-cmd not prompt if it has a "run" on the command line.
-10Oct03
-- When pruning, select only old orphanned jobs to delete so that
- the current job is not pruned too.
-09Oct03
-- Corrected return status for bsf_dev and bsr_dev in block.c and btape.c
-- dev.c used incorrect ruturn status for bsf_dev in the BSF at EOM
- code. This caused all appends on FreeBSD to fail.
-- Turn on fast block rejection code.
-08Oct03
-- Optimize file index searches by adding a count to the bootstrap.
-- Write single files/blocks to bootstrap without the second part.
-- Add current Volume status to the cannot use this Volume message.
-- Zero the rx->bsr in ua_restore when freeing so it doesn't get
- freed twice.
-- Lots of testing on the restore
-- I noticed that SD and FD bootstrap files were not always
- deleted, so delete them as soon as possible.
-- Restore by file (or by selecting files) created some
- horrible looking bsr files that defeated the forward
- spacing code, so fix write_findex to work right.
-- Add zlib_strerror() routine in filed/restore in case
- of zlib errors.
-- In filed/restore.c make sure all error returns cleanup
- and close the open file descriptor.
-- Make sure to set *non* over filename in attr packet
- after file is found, so error messages that print the
- filename don't print an old, incorrect name.
-- Allow bclose() to be called after closing the file.
-- Fix a number of unclear help messages, ... reported by
- Phil in btape.
-- Retweak stored/read_record.c so that it does forward
- spacing at the beginning of every tape, not just the
- first one.
-- Print repositioning message if verbose is set.
-
-2003-10-01 Version 1.32a 03Oct03 Release
-04Oct03
-- Combine the code in ua_output and ua_status that searches
- the run records.
-03Oct03
-- Fixed "list nextvol" to search for the correct pool in the
- Schedule Run records.
-- Correct an error in is_block_zero. It found a false
- match if the first 1016 bytes of a 32K buffer and
- the last 248 bytes are zero. Broke the sparse option.
-01Oct03
-- More documentation.
-- Test if multiple mail addresses works. Yes.
-- Add debug Jmsg() to trigger if the file I/O packet is
- not closed in the FD, i.e file descriptor leaks.
-- When error occurs reading label in mount.c, start from
- the very top so that the retry count is in effect.
-- Zap the mode in soft links in testls.c for regression
- testing.
-
-2003-10-01 Version 1.32 30Sep03 Release
-28Sep03
-- Enhance manual faq, regression ...
-- Make FreeBSD read sizes always be a multiple of 512. Needed
- to read raw disks.
-- Make FreeBSD accept block AND character devices for raw
- disk reads. On FreeBSD there are no block devices.
-27Sep03
-- Fix printing of EndTime on job report after rescheduling.
-- Fix jobq.c error returns to clean up before returning.
-- Make Cleaning tape aware of "unlabeled" volumes.
-- If a job is rescheduled, ensure that old job is
- removed from SD's jcr queue -- i.e. it is still waiting
- for FD connection.
-- Test rescheduling code.
-- Change ./configure to detect Cygwin enviornments.
-
-2003-09-26 Version 1.32 26Sep03 Beta
-- Add regression and GUI-interface chapters to the manual.
-- Fix "label" of a volume that is already in the catalog,
- but not yet labeled.
-- Correct the test for spooling attributes which was backward.
- This caused the creation of a spool file in the working
- directory for every job run.
-- Print to the job output stream when block checksum errors
- occur, but continue processing. If more than one occurs,
- print number at end of job.
-- Remove a few unneeded tests from configure.in
-- Modify configure to use -pthread on FreeBSD 4.8,
- but nothing on FreeBSD 5.1
-- Clarify that bmicrosleep() takes sec and microsecs
-- Apply Franc Carter's code to specify a DB host in
- bscan.
-- Fix sanity login length test in stored/dircmd.c
-- remove old code fro stored/job.c
-- Lots of work on regress so that it works on FreeBSD
- and Solaris.
-- Make the default gnome-console wider (console.c)
-- Add \r to the items that terminate a token.
-
-2003-09-20 Version 1.32 20Sep03 Beta
-- Replace a number strcpy() calls with bstrncpy().
-- Added code to ensure that the names for each resource
- type are unique. Two resources of different types can
- have the same name.
-- More documentation
-- Added new full length modifiers for time intervals.
- Compatible with previous method EXCEPT a modifier is now
- manditory.
-- Completely restructured recycling. It should work now, but
- in any case, the logic is much cleaner. A lot of new
- code in next_vol.c
-- Added a few pthread_xx_destroy() for items inited.
-- Nic Bellamy pointed out that it wasn't necessary to do
- destroy() of static initialized pthread variables -- fixed
- watchdog.
-- update VolStatus asked for the media and volume twice.
-- Changed a few more strcpy() to bstrncpy().
-- Made VolBytes=1 as indicator that the Volume is labeled.
-- Modified creation of Media record to include VolBytes,
- same for sql_update - also set LabelDate if VolBytes = 1.
-- Copy any statically linked programs to install directory.
-- Change relabel flag to label in Update_media protocol Dir<->SD.
-- Change a few strcpy to bstrncpy ...
-- Update Media record after an automatic tape label.
-- Added more debug code to bnet_server and bnet.c to attempt to
- track down Alex's SD segfault (BSOCK==0)
-- Add additional debug cod for authentication errors in cram-md5.
-- Implement "list nextvol job=xx" and add Volume to Dir status.
-- Retry waitpid if interrupted -- needed for FreeBSD!
-- Move lex.c debug level to 900
-- Add new aliases SDAddress, ...
-- Final changes for variable expansion
-- Possible fix to Alex's SD crashes
-- Correct incrementing counters not in catalog -- reported by
- Chris Allen.
-- Correct memory leak in core var.c code -- reported by
- Chris Allen.
-- Make documentation of variable substitution a bit clearer.
-- Apply Nic Bellamy's patch to dbcheck.c to fix SQL to work
- on both MySQL and SQLite.
-- Finally fixed the .messages that was sent during prompts
- in the console with no readline.
-- Implement new Include/Exclude semantics.
-- Fix a good number of segfaults reported by Chris Allen in
- the variable expansion code.
-- Print warning message if a job is blocked by user unmount.
-- Fix additional variable expansion problem reported by Chris Allen.
-- Fix pathconf() error status bug that caused a segfault on
- a FreeBSD system -- reported by Gernot Hueber.
-- Make sure the console sends ".messages" only when at the
- command line prompt.
-- Apply a patch from Nic Bellamy that corrects a file descriptor
- leak in the Storage deamon when a job is canceled. (Thanks)
-- Implement < and | in File daemon.
-- Implement ClientRunBeforeJob and ClientRunAfterJob.
-- Corrected BSRatEOF to be BSFatEOF in btape --
- reported by Lars Koller.
-- Documented BSFatEof
-- Eliminated save_level in FD replaced by JobLevel.
-- Increased MAX_RES_ITEMS from 35 to 50 to handle
- new ClientRunBeforeJob ...
-- Add line number in error message for restore from file.
-- Correct editing of jobids (misplaced comma).
-- Implement restore files.
-- Quickie patch to allow Purged Volumes to be mounted.
- Must review algorithm.
-- Eliminate a duplicated query from query.sql
-- Restructure ua_restore.c so that I can add restore files.
-- Correct positioning problem at beginning of a second volume
- introduced with the new forward spacing code.
-- Eliminated a sprintf() in the tree routines.
-- Doc updates
-- Added HOST_OS, DISTNAME, and DISTVER to the status output.
-- Eliminated a few stray Dmsgn(000, messages making them either
- debug_level 100, or Pmsg().
-- Made the default "Maximum File Size" 1Gbyte in SD.
-- Cache path in tree.c to reduce calls to make_tree_path
-- Documentation updates
-- Implement forward space file and block when reading a bsr.
-- Fixed a bug in db_find_next_volume() where the VolStatus was
- not being returned.
-- Rework some of the query.sql records that were incomplete.
-- Fixed an ambigous SQL statement in restore.
-- Fix proper sorting order in restore display last 20 jobs.
-- Remove duplicate JobId's in feeding the directory tree.
-- Fix an orphaned ua buffer due to a return that should have been
- break so that cleanup code executed.
-- Changed some strcats and sprintfs int bstrncat() ... to prevent
- possible buffer overflows.
-- Fix max file size code on tape so that after writing EOF,
- an appropriate jobmedia record is created.
-- Fix error messages in dev.c, which were copied into lots of
- different subroutines without updating the text.
-- Add reposition_dev(), and make more of the return statuses of
- dev routine standard.
-- Eliminate old semaphore and workq code. Keep only new jobq code.
-- Try to get a better default size for the gnome-console
-- Add code to avoid race conditions in starting/stoping the
- heartbeat thread.
-- Correct potential race condition in heartbeat_stop().
-- Correct segmentation fault in mysql.c if no password given.
-- make pm_strcat and pm_strcpy return the string length
-- Use Phil's code to get the unadorned job name.
-- Move the MTIOCERRSTAT from just after a write() failure to
- after writing the EOF marks on FreeBSD systems.
-- Enhance packet too big error in bnet.c and add some
- ASSERTs in the send code.
-- Set heartbeat interval to zero by default.
-- Add Recycle to list of Update Volume parameters.
-- Use bget_dirmsg() wherever possible in Director.
-- Split next_volume code from catreq.c to next_vol.c
-- Consolidate editing job codes into a single routine.
-- Add Job resource name
-- Remove check for Win32 attributes in bls. It doesn't
- need to read them, only print ls -l.
-- Add SDConnectTimeout in FD.
-- Add Scott's perlgui directory
-- Upgrade from RH7.3 to RH9. New autoconf.
-- Eliminate gnome2-console directory.
-- Correct English in status command.
-- Eliminate old shell expansion code and use BPIPE to call shell
- with echo command.
-- Documentation as usual.
-- Add a new bacula.spec for Mandrake
-- Add ownership to alist items. Default the list owns the items.
-- Make record_cb return a status (preparation for internal use).
-- Remove all clearing of remainder in read_record.c -- not necessary
-- Write a tapetest program for FreeBSD end of tape testing.
-- Modify read.c in Bacula to use read_record.c
-- Implement multiple records in read_record.c. One for each session that
- is open. Free the record with the EOS_LABEL is found (or at the
- end of the scan).
-
-2003-08-02 Version 1.31a 02Aug03 Released
-- Yifang Dai reported a case where he stress tested Bacula and
- backed up to four volumes, but only two were selected for the
- restore. This is because I forgot that the selection could
- span a volume entirely.
-- Added a missing CLIENT_FOUND_ROWS to the second attempt to open
- the MySQL database -- this prevents UPDATE errors if nothing
- actually changed.
-- Applied corrections to the manual supplied by Bob Collins. Many thanks!
-
-2003-07-30 Version 1.31 Beta 30Jul03
-- Integrated Robert Mathews improved description of Priorities into
- the manual.
-- Chased down the "The data is not valid" bug on WinMe/98/95.
-- Found an orphaned buffer in the set_attributs part of WinMe/98/95.
-- Add sleep(1) to console when it gets a SIGTSTP signal
- to prevent it from using 100% of the CPU.
-- Improve description of Priorities.
-- Add a bit more documentation to jobq.c
-- Complete hash table routine htable.c htable.h
-- Change M_INFO to M_ERROR in attribs.c for Windows errors.
-
-2003-07-23 Version 1.31 Beta 22Jul03
-- Apply a patch from Nic Bellamy that clarifies the error messages
- during recycling volumes.
-- Documentation.
-- Clear VolCatInfo in askdir.c so that readbytes is zeroed.
-- Add SD statistics to backup report.
-- Removed old workq code.
-- Fixed rescheduling after error.
-- Fixed delayed starts which were not working.
-- Added priority to values that can change when starting
- a job.
-- Complete implementation of new job scheduler. jobq.h jobq.c
- This code is turned off unless specifically enabled in src/version.h
-- Integrate code from Nic Bellamy to check for recycled volume in
- mount.c in SD.
-- Fix a couple of bugs in dlist.c
-- Begin implementation of new job scheduler.
-- Take serial.h provided by David Craigon, which corrects differences in
- prototypes between serial.h and serial.c.
-- Make db_get_media_ids() return Media Ids only for the current pool.
-- Add new jobq.h and jobq.c drived from workq.
-- Add JobPriority to jcr, and Priority to Job resource as well as
- to the run line in a Schedule.
-- Remove unused pool record from autoprune.c.
-- Implement Nic Bellamy's RecycleCurrentVolume.
-- Implement RecycleOldestVolume.
-- Begin adding new JOB_QUEUE code to the Director.
-- Create a single routine recycle_volume().
-- Retry accept(), bind() and socket() if EINTR occurs.
-- Implement insert_before(), insert_after(), and empty() for dlist class.
- Also require offset to be given by giving item and link address.
-- Make error some messages in smtp.c a bit more explicit.
-
-2003-07-12 Version 1.31 Beta 14Jul03
-- Marc Brueckner reported a crash during restore (a missing tree->)
-- Moved host.h.in file from filed to src.
-- Update btraceback to include host os, distname, distver in output.
-- Split list (in lib) into alist and dlist both with .h and .c.
-- Update home page to include Project status page.
-
-2003-07-12 Version 1.31 Beta 10Jul03
-- Manual updates.
-- Clean up some unused variables detected by the IRIX compiler.
-- Test two directories on Win32 -- caused a crash. I forgot
- to NULL the uid cache pointer after releasing it.
-- Use bstrncpy() instead of strcpy() in find_files.
-- Clear a few linked lists in the temp directory packed in find_one.c
-- Eliminate an unnecessary variable in attr.c
-- Clear the cache pointer after release in idcache.c
-- Implement a new C++ doubly linked list class.
-
-2003-07-08 Version 1.31 Beta 08Jul03
-- Update document for Win32 stuff.
-- Ensure VolStatus value for update is permitted.
-- Fix cached_path so that it is local to the jcr, otherwise, there
- are problems from job to job.
-- Fixed idcache.c which was not thread safe and didn't release memory,
- and didn't always edit the userid correctly.
-- Correct missing pool memory allocation in update voluseduration.
-- Release mutex in pool_mem.c before triggering ASSERT.
-- Lock database while recycling.
-- Fix a bug in editing since where I forgot to update to the new size.
-- Implement all the command line update arguments.
-- Modify label to use volume=xxx for the new volume and oldvolume=yyy
- if doing a relable.
-- Added yes to run command line arguments.
-- Clear errno in editing a string to utime.
-- In restore print only volumes that will actually be used.
-- Fix bextract -- add appropriate breaks in new case code.
-- Add a new test -- bsr-opt-test for testing bsr optimization. As usual,
- it pointed out a bug where the directory tree handling code destroyed
- the restore arg list.
-- Many updates to the manual.
-- Pass prefix links flag to FD.
-- Sort list of commands for Console
-- Set default FD and SD concurrent jobs to 10.
-- Rework the find next volume code in catreq.c to correct some minor
- but subtle logic errors and to eliminate a goto.
-- Did spell check on manual.
-- Removed bindtextdomain() as it conflicted with RH8.0 headers
-- Fixed parse_args to pass address of POOLMEM struct.
-- Constrain FileIndexes written to BSR to be within range of Volume.
-- Suppress writing volumes to BSR if they are not actually referenced.
-- Make FOPTS use alist for match and base entries.
-- Pass prefix_links to SD.
-- Add command line interface to most items in "update volume=xxx"
-- Add command line interface to restore "jobid", "current", "before", "all".
-- Add command line "yes" to run command to supress prompt.
-- In new alist code, free only if allocated.
-- Overload [] with get() code for alist.
-- Fixed the code that wrote FirstIndex and LastIndex to the database. It
- was not correct at the end of a volume (basically included indexes in
- the second volume).
-- Fixed bscan to work with the new code and to properly build JobMedia
- records.
-- Added code to the read end of block.c to properly track Volume bytes,
- blocks, and files. I thought this was not necessary, but it is critical
- for bscan to work correctly.
-- Modified read_record to properly track First/LastIndex -- needed by
- bscan.
-- Eliminated some old Volume write code.
-- Changed RecycleOldestVolume to PurgeOldestVolume
-- Added what I hope are the "final" touches for Win32 stuff. There
- are still a lot of annoying little problems.
-- Added the "portable=yes/no" option to Include. If set, it disables
- use of BackupRead/Write for Win32, so in principle, the data should
- be portable.
-- Pulled in more recent config.sub and config.guess from /usr/share/libtool
-- Replaced the system fgets() by a Bacula version that ignores
- interrupts (i.e. signals). This truncated output from child processes.
-- Make file_index int32_t everywhere.
-- Moved LinkFI into ATTR structure. Also integrated data_stream there too.
-- Moved code that sets the stream for writing into create_file.
-- Removed a signal(SIG_IGN, SIGCHLD) from dird.c that prevented getting
- the status of child processes. This allowed removing the FreeBSD
- kludge to bpipe.c -- the status is now obtained correctly.
-- Hand scan the stream header that arrives in append.c to avoid machine
- dependencies of sscanf().
-- Implemented code to put Data stream in Attributes record.
-- Check if data stream is supported, if not, ignore.
-- Fix crash when multiple Includes are given (missing parens).
-- Clear WroteVol in askdir.c when JobMedia record is created.
-- Implement simple array list class for use in Bacula. New files
- are lib/list.c lib/list.h. Probably will not use until version 1.32.
-
-2003-06-24 Version 1.31 Beta 22Jun03
-- Change Purging Oldest Volume message to Recycling Oldest Volume.
-- Limit results from find_oldest_volume to one.
-- Fix possible buffer overrun in the restore tree handling routines.
-- Fixed a crash in VerifyToVolume because I moved the close_db()
- down into the free_ua_context() and should not have done so.
-- At a "var" command in the Console that does variable expansion and
- prints it.
-- Implement first cut of estimate command.
-- Change find_next_volume() for oldest to use LastWritten instead of
- FirstWritten -- also add Append to volumes slected.
-- Do normal recycling before checking for RecycleOldestVolume.
-- Implemented block rejection on read. This should make restores run
- much faster. Next release will have block positioning -- even faster.
-- Very preliminary support for Gnome-2.0. Text does not yet work.
-- Correct buffer corruption in find_one.c with long directory names (Win32).
-- Make setting owner on directories M_ERROR rather than M_WARNING.
-- Fix printing of JobId in run listing for restore job.
-- Reduce heartbeat read check interval to every 10 seconds on Cygwin because
- there is no working pthread_kill().
-- I finally designed a test for multiple simultaneous jobs,
- and sure enough it broke when the jobs are split over multiple
- volumes. Now fixed and working!
-- Eliminated a few "duplicate" error messages by testing for canceled.
-- Add ASSERT for device use count going negative.
-- Fix BlockNumber checking in stored/read.c (got first one wrong).
-- If socket is timed out, do a shutdown(fd,2) instead of close().
-- Fixed return status from SD to FD by setting JobStatus in append_end()
-- Add arrays to Environment variables. Elements separated by |.
-- Implement Reschedule On Error, Reschedule Interval, Reschedule Times.
-- Add a new pool PM_NAME -- gets a name length buffer.
-- Implement fast cancel of FD blocked on writing to SD by using
- pthread_cancel(). Turned off on Cygwin due to bug.
-- Add code to handle EAGAIN in writing (probably not necessary). Use
- select().
-- Eliminate size_t from pool control buffers.
-- Complete Counter resource.
-- Complete LabelFormat (except for WrapCounter) plus counter
- inrementation.
-- This needs a database change to eliminate PoolId from counters.
-- Made a more compact format for the document index.
-- Add Phil's checkhost to examples directory (thanks Phil).
-- Implement generalized LabelFormat (documentation to come).
-- Implement Counter resource.
-- Cleanup examples/kernsconfig
-- Implement restore to a specific date.
-- Fixed a but in automatic labeling (and use durations expiring) analysed
- and reported by Rob Proffitt (thanks!).
-- Cleaned up a few Cygwin compile problems.
-- Made a 10Jun03 release (it is in production here)
-- Finally took the big plunge and fixed restoration of links and other
- files that have been changed between the backup and restore. Basically
- if the file exists, it is deleted, then re-created.
-- Purge only Volumes marked Append, Full, Used, or Error.
-- Allow pruning of volumes marked Append, in addition to Full and Used.
-
-
-2003-06-10 Version 1.31 Beta 10Jun03
-- Eliminated all plain email addresses and replaced them with " at " in
- place of @ to reduce havesting by spammers. Doc + Web Site.
-- Started working on making POOLMEM a struct rather than a char. Lots of
- work to do.
-- Fixed bscan to handle -V option.
-- Fixed bscan to handle two File volumes.
-- Corrected a misplaced comma it get_fileset() in cats pointed out by bscan.
-- Added two Volume bscan test to regression scripts -- write two volumes,
- purge and delete everything, bscan the tapes, and do a restore. It works!
-- Reorganized the backup/restore code to move the attribute information into
- an ATTR packet, which is passed in place of tons of arguments. Moved some
- code into lib/attr.c and lib/attr.h. Then eliminated all the duplicate
- attribute code.
-- Moved FT_ types into baconfig.h.
-- Defined FT_ types to use only 16 bits. The upper half of the word is
- reserved for adding optional fields in the attributes packet.
-- Moved jcr->where into common part of jcr and have it deleted in lib/jcr.c
-- Put all attribute reading code on switch() with cases instead of a big
- if (restore.c, bls.c, bextract.c, bscan.c, ...)
-- set_attributes() now takes ATTR packet, and thus has much fewer args.
-- moved print_ls_output() into lib/attr.c
-- implemented is_stream_supported().
-- create_file() now takes ATTR packet so has many fewer args.
-- add mtime_only code.
-- Rewrote bnet.c read and write routines to quit if bsock->terminated is
- set. This will allow setting non-blocking writes and then receiving
- a termination message and terminating the Job immediately rather than
- waiting 2 hours for the line to timeout.
-- Put catalog db name in some error messages.
-- Code for restore is now much cleaner, with much of it in lib/attr.c,
- and it is now common for all readers.
-- Add first cut of proper support for Win32 Backup code.
-- Fix bug in restore Win95/98/Me.
-- Pass mtime_only flag to FD. Needs config record.
-
-2003-06-04 Version 1.31 Beta 04Jun03
-- Fix block.c to check errno only in case of return status -1 as
- suggested by Justin Gibbs (FreeBSD).
-- Implemented qfill command in btape for quick testing write/read of a tape.
-- Discovered that FreeBSD pthreads re-use the same thread id, which causes
- the SD to fail when a user leaves a device unmounted (old pid is reused
- and lock_device() thinks the same thread is calling again leading to
- inconsistent state). Set id to zero after blocking the device during
- unmount.
-- A lot of clean up, moving subroutines around for TermCode.
-- Free ua->prompt when Job terminates.
-- Add AutoPrune and Recycle to values copied from Pool resource
- into Pool record on create/updated.
-- Implemented bsr for Verify VolumeToCatalog.
-- Improved the Verify Job report using SD and FD term codes.
-- Split tree handling routines from ua_restore.c to ua_tree.c
-- Split bsr routines from ua_restore.c to bsr.c and bsr.h
-- Fixed clash between FD and SD returned job values. Report now contains
- values from FD. Maybe I should change? or give both.
-- Attempt to fix negative use_count for dev packet in SD by adding
- a couple of open_dev(). This may be cause of Dan's crash.
-- Clear no_wait_id when device is unblocked. This may be cause of Dan's crash.
-- Eliminate old "new lock code".
-- Add configure of mtx-changer for mtx path.
-- Always rewind tape before releasing it (for FreeBSD).
-- StartBlock was one too large for second volume.
-- Fixed restore to display status from both SD and FD.
-- Unified return status message for backup and restore.
-- Corrected segmentation fault reported by Dan when doing "label barcodes"
- on a File.
-- Corrected a segmentation fault when attempting to send a JobMedia record
- to the Console -- reported by Dan.
-- Added MySQL documentation for using the threaded libraries.
-- Added new columns and tables to Catalog database.
-- Wrote alter scripts and tested them (thanks to Dan for the help) on
- MySQL and SQLite.
-- Started using enums where ever possible when passing flags to
- subroutines. This helps make the source much more readable.
-- Corrected a bug where a vertical database listing was being used in
- the query command.
-- Added new argument to parse_args() to prevent command arg overflow.
-- Renamed ua_db_query.c ua_query.c.
-- Split scan.c out of lib/util.c
-- Perhaps I have *finally* fixed the command line history in gnome-console.
-- Added support for smartalloc for any global new or delete command
- by overloading the global operators.
-- Made the default time with no qualifier day rather than seconds.
-- Fixed a bug in the store_size() routine that improperly converted from
- double to uint32_t.
-- Started using "bool" where possible.
-- Zap SD session key once it is used.
-- Added *lots* more checking for strcpy -- bstrncpy(), ...
-- Added CreateTime field to FileSet record and print it to distinguish
- FileSets.
-- Print an information message when a new FileSet is created.
-- Include the FileSet date/time in the Job report.
-- Indicate if a Job is upgraded in the Job report and from what previous level.
-- Incremented the database version.
-- Ensure that any DB error message is printed if the start_time of a previous
- save is not found.
-- Free orphaned buffer in ua_restore.c in case of database error.
-- Implement enum for response DISPLAY_ERROR and NO_DISPLAY
-- Implement enum for create_pool (POOL_OP_CREATE, POOL_OP_UPDATE).
-- Make sure FileSets printed in restore are in order.
-- Add a number of bstrncat, and other protected string operations.
-- Clean up old structs in dird_conf.h
-- Remove all Slot invalidation code.
-- Add Automatic choice message to all do_prompt() calls.
-- Eliminate JobId from restore if not used.
-- Clean up a few error messages.
-- Make fill/unfill commands work correctly in btape.
-- Enhance btape fill and unfill commands.
-- Implement real Pmsg() code so that negative levels work in Dmsg()
-- Implement block number check -- had to turn it off because it doesn't
- work. Need to verify that it is the correct block and that block
- numbers are properly written.
-- Moved readline from depkgs1 to depkgs.
-- Reworked the configure code to handle readline correctly. This was broken
- mostly due to the fact that the readline routines are nested down one
- directory. Also, I missed one header file that was needed (possibly added
- in a later version).
-- Put correct include on the dependencies make for Console readline.
-- Remove JobMediaId from VOL_PARAMS (no longer needed).
-- Sort VOL_PARAMS by JobMediaId using SQL in cats.
-- Add jcr as argument to block.c read_block... routines so that error
- messages are immediately displayed.
-- Make bsr_dev() edit an error message if it is turned off and return 0.
-- Add checking for the BlockNumber in the read routines -- lots of
- false matches are found -- much check writing end.
-- Now sort bsr volumes by JobMediaId -- produces better results.
-- It turns out that under certain circumstances, when doing a restore, the
- Volumes will not be written to the BSR in the correct order. I don't
- know exactly why, but many thanks to Dan Langille for reporting this.
- The solution is to sort the Vol_Params within each bsr (done), and to
- sort the bsr chain (not yet implemented). Note, the bsr chain should
- always be in order unless the user explicitly specifies the JobIds in
- a different order.
-- Began implementing C++ structs rather than typedef structs as in C.
-- Added volatile to a lot of variables that are used in two threads at
- the same time. This should prevent improper optimization.
-- Fixed a missing space in the "run job=xxx where=" the where was
- glued to the end of the previous stuff (bootstrap filename).
-- I *finally* found the cause of the mysterious failure of shell expansion.
- It was due to the read() getting interrupted! That's what opening up
- SIGCHLD will do!
-- Remove unused default tape drive names.
-- Create a new status.c file in stored and split the status code out of dircmd.c
-
-2003-05-22 Version 1.31 Beta 22May03
-- I discovered that C++ permits "prototyping" structures e.g. struct A; is
- a valid statement. This permitted me to eliminate all the void *jcr, in
- favor of JCR *jcr, which pointed out a number of bugs in block.c.
-- Change lib/bmisc.c to bsys.c (system routines).
-- Add set_working_directory() to lib/util.c
-- Remove some unneeded setjcr_job_status() since Jmsg(jcr, M_FATAL,...)
- already sets it.
-- Do not increment jcr->Errors for Fatal errors -- they represent non-fatal
- errors.
-- Fix a few more places in FD where Errors was not incremented.
-- Print unexpected (or incorrect) termination message returned from FD.
-- Use switch() instead of giant if statement in verify_vol.c
-- Protect overrun from do_shell_expansion() by passing max length.
-
-2003-05-20 Version 1.31 Beta 20May03
-- Add mandrake to platforms
-- Suppress error messages if no bytes written to tape.
-- Suck up bootstrap file even on error so that Dir sees our error message.
-- Pretty much finish off the Win32 backup code.
-- Add DESTDIR code to autostart for creating non-root rpms
-- Echo input read from a script in Console.
-- Clarify error message for VerifyToCatalog
-- Add error counts in restore for M_NOTSAVED.
-- Adapt bfile.c to handle both Win95 files as well as WinXP files.
-- Add MTIOCERRSTAT for FreeBSD (clear error status).
-- Correct double jobmedia record when cancel at EOM reported by Phil.
-- Correct possible write at beginning of tape during cancel at EOM
- as reported by Phil.
-- Document in detail how Incremental and Differential jobs work.
-- Add non-fatal error count on backup and restore Job reports.
-- Remove a couple uses of lld -- now prefer to edit and use %s.
-- Fix directory could not be accessed on Win32.
-- Improve message indicating that last Full backup not found.
-- Fix free() too early in directory traversal code.
-- Prune Jobs with no JobFiles or that have JobStatus!='T'
-- Add a few more command line scans for prune/purge.
-- Restrict valid characters in a Volume name, and document it.
-- Make new Win32 save/restore work. Still a bit more to do.
-- Use reentrant version of mysqlclient library.
-- Use more machine independent way of finding gcc version.
-- Fix race condition in sql_list where messages edited before locking.
-- Lots of testing saving/restoring 6GB files.
-- Add where to restore where=/tmp
-- Complete implementation of Win32 streams in FD. Must test. Also,
- must implement new streams in SD.
-- Make termination of daemons more "error" tolerant.
-- Make default "duration" days rather than seconds if there is no modifier.
-- Install bcopy.
-- Add detection of available Win API's so that a single binary will
- work on all Windows systems. Reference those APIs through a pointer.
-- Remove use_win_backup_api and enable it in bfile.c if system supports it.
-- Modify dev.c so that it works if MTEOM is not defined (BSDI).
-- Change MT_xxx to BMT_xxx to prevent conflicts with BSDI.
-- Detect strtoll() in configure.
-- Implement replacement for strtoll() for BSDI.
-- Add platform files for BSDI.
-- Use Jmsg() instead of Jmsg1() in acquire because File:line prefixed in dev.c
-- Use Jmsg() in write_block_to_dev() so that no messages are lost.
-- Rework autochanger code in restore to handle case of cassette not in magazine.
-- Implement Windows BackupRead/Write(). I now have permissions right!!!!
-- Additions to the manual (Purging, Autopruning).
-- Add doc to code in autoprune.
-- Begin adding Level = Base.
-- Make Jmsg recognize console and direct messages directly back to it.
-- Hopefully fix mess in mount.c when a tape expires.
-- Fix restore bug recently introduced due to Unix backwards status convention.
-- New bacula.spec from Scott
-- Add globals for database name and version and print them in traceback.
-- Eliminate SubSysDirectory in each daemon conf file.
-- Implement get_yesno() and get_pint() in UA.
-- Make Jmsg aware of console. Messages now sent directly to Console.
-- Created a single bacula.spec.in for by the MySQL and SQLite builds.
-- Added proper configuration to console.in and gconsole.in
-- Start adding textdomain() code for translating.
-- A number of minor code cleanups.
-- Rework shell expansion just a bit.
-- Add rewind() when releasing a tape before acquiring the next one.
-- Implement addition of Description in Service entry for Win32.
-- Update manual to eliminate unclear autochanger points as mentioned
- by Dan Langille.
-- Implement DESTDIR everywhere.
-- Rework spec files for 1.31 and combine the main spec and the client
- only spec making a client package. At the same time, rename the packages
- so it is a bit clearer to the user. Also fix the build to work
- as non-root (scriptdir was not prefixed with $RPM_BUILD_ROOT).
-- Correct Auto Changers and all other forms to Autochangers in the
- manual.
-- John reported needing to do two "mount" requests, and indeed that
- was the case. It turns out that pthread_cond_timedwait() does not
- always return zero when awaken by a pthread_cond_signal().
-- Include RunBeforeJob and RunAfterJob output in job output report.
-- Implement a "real" Admin job that prints a mini-job report.
-- Clean up a few error messages in findlib and filed.
-- Recent changes to gnome-console caused initial output to be
- lost -- now fixed.
-- The Win32 version crashed after each job. After hours, it turns out
- that when running with LocalSystem privilege (and not as a user), when
- Cygwin does pthread_kill(id, SIGUSR2), it gets a memory fault.
-- Moved stored/fdmsg.c to lib/bget_msg.c, and moved SD messages to
- stored.c. So now bget_msg() can be used by both the SD and FD.
-- Changed Director's bget_msg() to be called bget_dirmsg() to avoid
- any possible confusion.
-- Implemented bget_msg() in general everywhere in the FD except for
- job.c where the Dir and FD are communicating.
-- Implemented a Director only heartbeat in the FD for the cases where
- there is either no connection to the SD or the FD is already reading
- from the SD. start_dir_heartbeat() ...
-- Add heartbeat to restore and verify volume.
-- Add "Heartbeat Interval" to Storage resource, which sets interval the
- SD sends heartbeats to the FD and DIR, 0 disables heartbeats.
-- Add "Heartbeat Interval" to FileDaemon resource, which sets the interval
- the FD sends heartbeats to the DIR, 0 disables heartbeats.
-- Added heartbeat from FD to Dir every HB_TIME rather than forwarding
- SD heartbeats.
-- First cut label dialog.
-- Turn on new semaphore code for simultaneous Jobs.
-- Fix cancel trying to release semaphore's not acquired.
-- Implement get_pint() and get_yesno() for UA.
-- Implement find_arg_with_value() for UA.
-- All command line "slot" to be specified for label command.
-- Rework heartbeat code in FD to correctly terminate.
-- Fix btraceback to use smtp and to eliminate double //
-- Fix "storage" command to include ssl for verify and restores.
-- Add Heartbeat code when SD is waiting on a tape -- heartbeat every 20 mins
- to keep stateful firewalls from timing out the connections.
-- Fix src/stored/Makefile.in typo causing problems in statically linking
- btape. Thanks to Lutz for reporting this.
-- Create an is_client_alive script for checking if a client is alive.
- Using this script prevents generating error messages.
-- Added corrections and updates to manual provided by Phil -- thanks.
-- Added RequireSSL to each program/daemon configuration.
-- Added EnableSSL to each correspondent for each program.
-- Added the Console resource to the Director (need to
- implement individual Console authorization).
-
-2003-04-28 Version 1.30 released
-- Fix command history for gnome-console (must malloc).
-- Add two cancel points in acquire_resources(). The job will not
- be immediately terminated in all cases.
-- The new AutoMount code broke File archives -- fixed.
-- Correct watchdog mutex race introduced yesterday.
-- Add JobLevel to Admin run started by UA.
-- Add -v to daemon startup scripts
-- Implement bmicrosleep(sec, msec);
-- Implement When for "run" command.
-- Remove unsigned from socklen_t definition in hopes it will work better
- with older systems.
-- Remove code that attempts to set PID dir and SUBSYS dir if they
- do not exist because it set them to sbindir!
-- Modify mount to initially attempt to read the volume if Bacula
- wants a tape, none is mounted, and "Automatic Mount = yes" is set.
-- Prohibit setting --sbindir and --with-subsys-dir the same.
-- Fix missing argument that cause Kaboom in update slots.
-- Fix orphaned bsock when UA gets error contacting FD or SD
-- Nearly full implementation of Win Backup API, but it does not
- work due to lack of permission! Arggg!
-- Implemented restoring directory permissions as they should be.
-- Implemented reasonable regression script. It found a number of
- restore errors.
-- Implemented the following @ commands in the console that work directly
- in the console rather than in the Director.
- input - read input from a file
- output - write output to file
- tee - tee output to file and terminal
- time - print current time
- version - print current version
- exit - quit
- quit - quit
-- Implemented new bfile io routines that will permit implementation of
- Windows native APIs for reading/writing files.
-- By default always update hard links with the prefix, but do
- not update soft links. It seems inconsistent, but it is what
- cp does.
-- Implement wait command in Console that waits until no jobs are running.
-- Fixed the < code in Include/Excludes, which forgot to skip over the <.
-- Do NOT attempt to chmod() a soft link as it will change the file behind
- the link!
-- OOPS! Lutz ran into a problem. In attempting to prevent string overflows,
- I used bstrncpy() on a variable that was malloc'ed thus truncating
- Volume names! Arrrggggg!
-- Lots of documentation of new features.
-- Rework Volume name scanning in console, made much more logical
- and corrected a bug (confusion in calling sequence).
-- Cleaned up a few error messages in cats adding more info.
-- Add the IP address to error messages due to bad connects to servers.
-- Implement default File output in config files so user can start
- saving right away without a tape drive.
-- Protect inet_ntoa() with mutex in case it is not thread safe.
-- Eliminate termcap from use in gnome console.
-- Remove unused SD maximum volume files and maximum volume jobs. They
- are implemented in the Director.
-- Make the default for Incremental and Differential saves to compare
- against both st_mtime and st_ctime rather than just st_mtime.
- This includes files moved or copied.
- Thanks to Matthias Wamser for bringing this fix to our attention.
-- On Win32 clients, make a pass through the include/exclude patterns
- and change any back slashes to foward slashes. Prevents creating
- unusable directory names containing both conventions.
-- Move ls -l output on restored files to M_RESTORED class.
-- Make gnome-console compile correctly on RH8.0
-- label barcodes now works.
-- Implemented "update slots".
-- Tweak btape "test" to always print suggestion for re-read last block.
-- Implemented "Cleaning Prefix"
-- Update alter_mysql_tables.in
-- More work on barcodes.
-- Zap VolHdr in SD when attempting to label a tape that is not
- there. Prevents false tape names the next label command.
-- First cut of bar code reading is implemented. It doesn't do
- anything but return the list to the Director.
-- Implemented relabel command that relabels "Purged" Volumes.
-- Check exit code in RunBeforeJob and err the job if it is non-zero.
-- Remove old testsuite -- too complicated
-- Print length when Authorization fails because of bad length.
-- Fix problem of NumVols in Pool getting reset on startup.
-- Implement full listing of DB records by listing them vertically
- instead of horizontally.
-- Make changes to mysql scripts as suggested by Lutz Kittler
-- Fixed code to write Uname to Client record.
-- Fixed a problem (in btape) where Pmsg() was not printing.
-- Moved re-read last block test to last in "test" command of btape.
-- Lots of new documentation.
-- Fixed newvol.c to handle retrying 10 times if the volume name already exists.
-- Removed int_least16_t from sha1.h because it does not exist on some systems.
-- Release job in SD if canceled and waiting on a mount (better cancellation).
-- Prompt for Client in restore if not specified.
-- Print "Selection is empty!" if no selection list found.
-- Add new spec files and bacula.desktop from Scott.
-- Update client every time a job is run.
-- Add verbose option to daemons for printing more user error info.
-- Test if console works with readline 4.3 (yes, it is OK).
-- Release new depkgs
-- Release new winbacula.
-- Add Uname info to Client DB record.
-- Improve error messages and make them more consistent when a non-existent
- Device is requested.
-- Separated the -mwindows option so that only Windows programs
- are built with it (bacula-fd, ...) the tty tools such as console
- dbcheck, smtp, testfind, ... are now able to be run in a standard
- Windows DOS box.
-- Add | and < options to Exclude the same as in Include.
-- Add typed in input to the text window in the gnome-console.
-- Change function that gets the entry text (previously had orphaned buffer).
-- Fix multiple Director problem in gnome-console (thanks to Lutz Kittler).
-- Thanks to Renato, I was able to test Bacula on a FreeBSD tape drive.
- There are a number of significant differences: 1. reading less than
- the number of bytes in a record returns an I/O error. 2. ioctl(MTEOM)
- looses the file position. 3. Reading two two EOF marks (or ioctl(MTEOM))
- leave you positioned after the second EOF, so you must backspace file
- to be able to append.
-- Added BSF at EOM = yes/no to Device resource to allow proper positioning
- at the end of a FreeBSD tape.
-- Made btape "test" do much better testing of error conditions (i.e.
- it now ensures that the append went well). It will automatically
- detect problems and apply fixes and then retry the test, if it
- finally succeeds, it clearly says what directives need changing.
-- Add Scott Barninger's rpm changes to the build environment
-- Add changes to mtx-changer so users can add eject and sleep for
- certain autochangers.
-- Implemented FreeBSD chflags (user defined flags).
-- Turn restore errors during setting of owner and modes into
- warning messages -- for restoring files as non-root.
-- Fix how prefixes are handled in restoring soft links.
-- Modified btape "test" command to do only those things that
- Bacula actually does. There is much more explanation, ...
-- Update manual.
-- Finally had to back up to gcc version 2 from version 3 to avoid version
- 3 nightmares.
-- Final cygwin tweaks.
-- Move start time to *after* the resource locks are acquired.
-- Unable to duplicate Phil's disabling of Bacula with nmap, but
- did make the authentication code a bit more conservative for
- dealing with bad input.
-- Added code to the query command to escape all strings input
- before substitution and sending to the SQL engine.
-- Escape user entered filenames for restore command.
-- Cleaned up the waiting code a bit -- using broadcast instead
- of signal and counting the waiters.
-- Implement new pthreads semaphore code.
-- #define new semaphore code rather than workq on USE_SEMAPHORE.
-- Lots of improvements to the document to address recent support requests.
-- Implement cycle through a set of tapes suggested by Eugeny
- Fisher with the "RecycleOldestVolume=yes" record in the
- Pool resource. Basically this record causes Bacula to purge
- to oldest tape when no more tapes are found.
-- Correct a number of small incorrect interactions between limit
- variables during recycling.
-- Corrected a bug in db_create_media_record() where VolMaxFiles and
- VolMaxJobs was not written to the database.
-- When the Director starts, the Pool record is updated in the
- database with the current contents of the Pool resource.
-- Corrected bnet_connect() to immediately stop (rather than looping
- for the timeout period) if there is a fatal error (socket, or
- hostname to ip).
-- Reworked "purge" code to make purging Volumes easier.
-- Made "list volumes" list the volumes in all pools -- also
- "list volumes pool=Default" does not produce and error message.
-- List Pool record after doing "update pool".
-- Remove pid file code from Win32 -- not really necessary.
-- Make bnet handle null jcr during cancel rather than crash.
-- Add CygwinInstall.bat and CygwinUnInstall.bat
-- Add db_lock() around newvol.c code to prevent race condition if multiple
- callers want a new Volume name.
-- Lots of cleanup to Win32 code, with additional error messages.
-- Make Bacula work on Win95 (test for GetAttributesEx).
-- Add better error messages when end of media is reached or volume
- capacity execed.
-- Turned off signal catching in readline(), necessary to keep console
- from crashing on ctl-Z with RedHat 8.0. Thanks to David Craigon for
- testing this.
-- Make the 3rd and hopefully final change to the Finclude structures.
- This new version permits multiple sets of options (more code to be
- written) to be applied against the same set of files. Thus one can
- have options that with match of *.gz and a different set of options
- for *.c, ...
-- Integrated GNOME Console font resource code supplied by Phil Stracchino.
-- Check for job_cancelled() in bnet_connect() code to stop wait loop if
- client not available.
-- Fix early end of file scanning conf file in lex.c, which previously
- caused ABORT -- now reports error. This could happen with an unterminated
- string for example.
-- Move Maximum File Size code before write and detect error on writing EOF.
-- Additional fix for Solaris 2.6 and a bdb.c fix submitted by Armin Buehler.
-- Added detection for Solaris 2.6, which uses older setsockopt() calls.
-- Defined sockopt_val_t for setsockopt() calls.
-- Added fixes sent by Bevan Anderson that fix multiple connects to FD
- (I zap keys for security, so must put back dummy key). Also a fix
- to the Internal database that wrote garbage after the filename in
- the database.
-- Back out the __SVR4 changes.
-- Add automatic configuration of socklen_t
-- Attempt to fix problems reported by Lutz with multiple simultaneous
- open file Volumes (experimental code). Serialized acquire. This may
- fix the problem, but more thought and testing is necessary.
-- Add table of "supported" autochanger models.
-- Add Solaris 2.6 (__SRV4) changes sent by Peter Schmitz.
-- Correct tape selection code in SD (|| => &&). Thanks to Chuck Hemker
- for the patch.
-- Eliminate FileOptions. Implement new Finclude and Fexclude that
- have file options contained in it. New structure must be transmitted
- to FD.
-- Split Include/Exclude into new inc_conf.c file.
-- Cleanup new Include/Exclude and FileOptions. Structures in Director
- now correct. Must transmit FileOptions to FD.
-- WARNING: With the adddress and port code in the Catalog you MUST
- remove old address= and dport= records!!!!!
-- Added code to remove cancelled jobs from the workq -- needs testing.
-- Added first cut AIX from output James MacLean sent me.
-- Second cut of FileOptions.
-- First cut of parsing FileOptions and Counters.
-- Added address:port for MySQL as well as socket for local access.
-- Fixed job.c in filed to properly handle excluded files. Apparently
- I changed the daemon protocol but forgot to update the code.
-- Enhance testfind to handle include and exclude files
-- Fix getdomainname() prototype for Darwin
-- Added new -u and -g options for specifying userid and groupid to
- use when running, so that Bacula can reduce its privileges.
-- When Bacula was hanging due to an NFS volume being down, I
- fixed a few places in the File daemon where is should have immediately
- terminated the connection instead of waiting for the Director to do so.
-- Added first cut support for Darwin.
-- Temporarily comment out the O_NOFOLLOW to avoid possible subtle problems.
-- Implemented O_NOFOLLOW in creating files in create_file.c to prevent
- creating a file at the end of a symbolic link.
-- Use chown() if lchown() does not exist (e.g. Darwin).
-- Always close stdin on startup to avoid having /dev/console attached.
-- Change all DATE occurrences to BDATE because it is used by Cygwin headers.
-- Add printing of Volume names in SD status output.
-- Display all open devices in device chain in SD status output.
-- All changing Pool in console run command.
-- Thanks to Eric Bollengier for pointing out that the run_program()
- return status was not correctly generated. Now fixed (I hope).
-- Corrected crash in Internal Database getting Volumes.
-- Flush all daemon messages at the end of every job.
-- Fix Install.bat script so that Bacula restarts after reboot on WinNT/2K systems.
-- Minor changes in the gnome-console directory.
-- Integrated in my old Tcl/Tk code into src/tconsole and moved it up
- from C to C++. Pretty crude, but it is a beginning.
-- Close syslog() %n exploit in message.c
-- Edit space before each line in gconsole.
-- Added INCEXE structure so we can have FileOptions.
-- Added support for multiple simultaneous open file volumes.
-- Fix hard linked files so that the one saved is always restored.
-- Add * to restore "dir" listing to indicate marked files.
-- Add ability to make md5sum and sha1sum in lib directory.
-- Work a bit more on the new daemon protocol.
-- Use unmask of 022 or more restive
-- Create File volumes with 0640 permissions
-- Added support for SHA1 signature. Need to modify DB to have type.
-- Document SHA1.
-- Work a bit on getting proper child status from bpipe calls.
-- Added Ludwig's mtx-changer to the examples/devices directory.
-- Added a Warning not to use the Internal Database when it is initialized.
-- Compiled and tested SHA1, and added it to the library.
-- Added code to print the "load slot" status after autoloading.
-
-=============================================================================
-2003-01-24 Version 1.29 released
-23Jan03
-- Tightened up permissions on all .conf files to be 640 so they are not
- world readable.
-22Jan03
-- Added prefixlinks=yes/no Job record to specify applying the Where
- prefix to absolute soft links. Code is not yet passed to FD, because
- FD would then be incompatible with version 1.28.
-- Added skeleton of installation for Gentoo release for Patrick Naubert.
-- Add timer on open() for reading or writing a FIFO file.
-- Put btraceback and btraceback.gdb in sysbin dir (a bit of polution,
- but at least dumps will work).
-20Jan03
-- Added "append" all messages to a log to default bacula-dir.conf
-- Added WriteBootstrap to default bacula-dir.conf
-- Made smartall.c print "Out of memory" if malloc() fails.
-- Added pthread btimer routines.
-- Added timer to FIFO open statement
-- George was still having problems with VolUseDuration failing.
- On looking into it, one line of code subtracting 1900 was
- mysteriously missing from the source -- bizarre.
-18Jan03
-- Yesterday's version corrects all the problems I was
- previously having, and my production jobs are now completing
- properly.
-- Added a #define dev_cap() to test the capabilities bits. I just
- makes the code a bit shorter and a bit simpler.
-- Added phase 1 support for an output fifo device. The big
- difference here is that it is a STREAM device, which means that
- Bacula will only write to it and not read. Thus, Bacula assumes
- that the correct "Volume" is mounted and will construct a valid
- label (without needing the Volume to be prelabeled), and write
- to the device.
-- Added phase 1 support for input from fifo device (suppress re-read,
- add empty buffer flag).
-17Jan03
-- Improve printout of dbcheck with # files/path fixing.
-- Zap SD authorization code after use.
-- Added <> back to smtp (think about this some)
-- Doc
-16Jan03
-- Massive change to add jcr as the first argument to nearly
- every db_ call. This is because I was storing the jcr in the
- db structure, which will not work because everyone shares
- exactly the same structure.
-- More cleanups of error termination status in filed.
-- Found another bug in message.c where %s was missing in JmsgN. A lot
- of cleanup in message.c
-- Found places where filename listing was made (restore, verify
- vol) where the buffer could possibly overrun.
-- Chain include files on the end of the list so that the
- order will be correct.
-- Rewrote mtx-changer to output one slot per line terminated by
- a colon followed by an optional Volume Tag for the "list" command.
- Preparation for handling Volume Tags.
-- My production crash remains elusive. Adding debug code or running
- under the debugger eliminates the problem. I found a case in
- message.c where I was extending the message string by two
- characters to send it to the console. VERY BAD. Rewritten.
-- Started implementing fifo and program handlers (i.e. streams)
- in the Storage daemon. Lots to do.
-- Added a trace capability where trace statements are written
- to a file. Tmsg(). Hopefully this won't be used much.
-- Running lots of "production" saved by scheduling a few minutes
- after the current time -- slow process ...
-15Jan03
-- Removed <> on From and To in smtp.c as suggested by James MacLean.
-- Added code to suppress spurious error messages during cancel,
- but I was unable to eliminate all errors -- to be worked
- on later.
-- Up size of print buffer from 2000 to 5000.
-- My production run failed again. I'm beginnig to suspect
- hardware problems because running by hand or under the
- debugger always works -- we will see.
-- Added Update Volume VolFiles to reset correct tape files
- a bit dangerous.
-- Use the mysql_escape_string() rather than internal version.
-14Jan03
-- Cleanup handling of JobStatus by creating a subroutine.
-- Fix a number of minor things with JobStatus.
-- Print FD and SD JobStatus on backup report.
-- Add JCR to findlib -- so now FD stops normally when cancelled.
-- My production Director segment faulted during the second Job.
- I haven't been able to track it down. After rebuilding, all
- jobs finished correctly.
-- In investigating the duplicated Paths, I found that there
- were 10,552 of them -- only Path records. After checking the
- code, I do not see the reason, but I've enhanced the code to
- print the full path name.
-- I made a few improvements to tools/dbcheck. Mostly it provides
- a bit more feedback with verbose mode on when eliminating
- duplicate filenames or paths.
-13Jan03
-- During four simultaneous backups, the File daemon started
- detecting buffer corruptions. It turns out to be due to the
- fact that the smartall.c routines were not thread safe. They
- are now.
-- Based on input from James MacLean and team, I eliminated a number
- of places where printf could be recursively called by using "%s".
-- It turns out that because of an error of my understanding of
- mysql_escape_string(), the last argument was taken as the length
- of the string to be escaped rather than the maximum length. I've
- now corrected all my code -- Thanks James.
-12Jan03
-- George Motter reported problems with UseDurations, and it seems
- that there were a number of inconsistencies and problems with
- FirstWritten and LastWritten. Hopefully for the most part they
- are now corrected. Also fixed LabelDate if done through Console.
-- Try to chase down reasons why there would be buffer overruns.
- Added P & V around referencing last_fname for status.
- Rewrote find_one.c with MEMPOOL, but not yet tested enough
- to commit.
-10Jan03
-- Give extra margin to converting filenames from Unix to Windows
- in attribs.c of findlib -- dumb cygwin API doesn't provide for
- a length.
-- Added file:line traceback to size_of_pool_memory, check... and
- realloc in an attept to get closer to the memory overrun reported
- by James MacLean.
-09Jan03
-- Made yet another fix to quoted string -- paths! Thanks to
- Scott Medlock for reporting this.
-- Made | and < work.
-- Implemented FIFO reading/writing. To do so, simply explicitly mention
- the fifo file (named pipe) in the Include AND add the new option
- readfifo=yes
-08Jan03
-- Started implementing | and < on Include names.
-- Changed source to . in cats directory as requested by Andrew Kokarev.
-
-=============================================================================
-2003-01-05 Version 1.28b released
-- Corrected a typo of working_directory in bacula-dir.conf
- reported by James MacLean.
-- Fixed the fact that path and filenames in some cases were not
- being quoted before going into the database. Many thanks to
- James MacLean for reporting this.
-
-=============================================================================
-2003-01-05 Version 1.28a released
-- Corrected a missing quote in bacula-dir.conf reported by James MacLean
-
-=============================================================================
-2003-01-05 Version 1.28 released
General:
-- Implemented Bare Metal Recovery for Linux and manual procedures for Solaris
-- Now using only a single technotes file kes-1.28 and will add to
- it as the development goes on.
-- Wrote a general purpose bi-directional pipe command. This replaces
- previous use of pipes as well as the run_program previously used.
-- Make BSRs stop if no more matches are possible.
-- Allow unliminted number of devices in Storage daemon.
-- Allow connections to Storage daemon before all devices are initialized.
-- Better documentation (and btape test command) on using fixed block
- tape drivers.
-
-Changes submitted this submission:
-04Jan03
-- Add cygreadline5.dll to Win32 release -- needed for console
-03Jan03
-- Add scripts make_catalog_backup and delete_catalog_backup that makes and
- deletes an ASCII copy of the catalog for backup. An example of how
- to use it is in the <bacula-src/src/dird/bacula-dir.conf file.
-- Made a nicer column oriented listing of scheduled jobs for "status dir".
-02Jan03
-- Added backup/restore of raw partitions.
-- Corrected restoration of files in root directory (problem with
- splitting path from file).
-01Jan03
-- Finally decided to cleanup handling of splitting path and filenames
- in the cats directory. Now the code is in one place sql.c and it
- is done using Pool memory, so there are no length restrictions.
-31Dec02
-- Add start of Solaris bare metal recovery
-- Add Site Visit usage statistics to Web page
-- Got Bacula listed on www.backupcentral.com
-30Dec02
-- Retest bare metal recovery on Linux 2 times with verify
-- Cleanup printout of verify differences using proper casting to
- handle shorts and long longs.
-29Dec02
-- Added --enable-client-only to ./configure
-- Modified --enable-static-sd to work better and documented it.
-- Fixed Restore options (never,ifnewer, ...). They now work.
-- Moved the stored.c Resource lock into the allocation thread so
- that the same thread sets/clears it. This created a problem on
- FreeBSD.
-28Dec02
-- Added more rescue documentation.
-- Did a spell check of the Bacula doc.
-- Modified bscan to use the working directory as specified in the
- configuration file as the default.
-25Dec02
-- Fixed an important bug reported by George Motter that caused only
- the last option on an Include record to be used (all previous options
- were lost).
-24Dec02
-- Chase down some inconsistencies in creating Media records from
- the Pool defaults, and in updating/creating the Pool from the
- resource. Also fixed the cats DB routines to include all
- fileds (VolUseDuration was missing for example).
-21Dec02
-- Added building static versions of daemon static-bacula-dir, ...
-- Fine tuned the rescue (bare metal) code including support for grub.
-- Added skeleton freebsd rescue
-- Corrected SQL syntax error in autoprune code (JobType => Type).
-- Added error messages for SQL errors in autopruning.
-19Dec02
-- Documented Bare Metal Recovery
-- Create new "rescue" directory containg the Bare Metal Recovery code.
-- Fiddle with SQL a bit for pruning as apparently the last InitCatalog
- was pruned after the expiration date eventhough it was the ONLY copy!
- I'm not sure this is fixed yet.
-18Dec02
-- Allow Director to pass a NUL where string to FD (fix in FD).
-- Fix installation mv of query.sql.
-- Make sure btraceback.gdb is not wiped on "make distclean"
-- Corrected a bug in mod of replace options pointed out by Dave Anderson.
-16Dec02
-- Started adding FileOptions ...
-- Fixed and incorrect print out of the number of files restored (Jarif).
-- Finally fixed EndBlock (and file address for Files) in catalog!
-- Added hostname to tape header as always planned.
-- Removed Level code (will not implement unless strong demand exists).
-- Tweaked bscan to print number of errors ignored before first SOS.
-- Enhanced btape "fill" to permit using one tape and to dump last
- block before writing and upon read back.
-- Make fsf_dev() return 0 on fail and 1 on success.
-- Use new db_get_job_volume_parameters() to enhance Write Bootstrap to
- contain more info (start/end file/block, file indexes).
-- Added --enable-static-fd, sd, and dir to configuration to enable making
- static versions of the daemons.
-13Dec02
-- The btape test program was indicating errors on Adrian's machine
- using the ATAPI (ide-scsi) tape drive. It turns out that this
- is a fixed block driver as a consequence, Bacula must be setup
- to write fixed blocks. btape was not always using the fixed
- blocks defined in the Bacula config, so that has been updated.
- It now works fine. A lot of tips added to the Bacula test command
- to help guide the user.
-- Documentation of the above significantly improved in the manual.
-12Dec02
-- Added code in watchdog to permit setting and clearing child timers. If
- the timer expires, the child process is killed.
-- Modified restore to handle differential jobs.
-- Added a new test to the btape "test" command
-09Dec02
-- More documentation of new features (week position in scheduler, bsr).
-- Re-read last block written on full tape to verify it.
-- Fix segmentation fault with btape fill command due to missing FileSet MD5.
-07Dec02
-- Created better SQL input editing routines str_to_int64 and str_to_uint64()
-- Pull Client from database in Console restore command.
-- Create a Unique list of Volumes to be mounted (previously had repeats).
-- Made many of the SQL searches better by using the ClientId rather than the name
- in the restore Console command.
-- Modified reading of a tape to include the VolFile info. Once the
- tape is past the specified file, reading stops. The BSR now includes
- both the VolFile and VolBlock. Currently VolBlock is not used.
-- Handle multiple volumes better by creating a real volume list with all
- parameters in it.
-- Display "At prompt waiting for input" in gnome console when at subcommand
- prompt.
-- Broke ascii to internal and internal to string editing routines out into
- new lib/edit.c file.
-02Dec02
-- Added a readme and an afs-bacula script to the examples directory
- that permits Bacula to backup an AFS filesystem. Thanks to
- Lucas Mingarro for the submission.
-- Added A Sun-desktop autoloader script and Device definition to the
- examples/devices subdirectory. Thanks to Lucas Mingarro for the
- submission.
-- If the WriteBootStrap fails, the job will now be marked in error.
-- Added a week position to the scheduler syntax that allows you to
- specify 1st, 2nd, 3rd, 4th, or 4th, or first, ... fifth as a week
- position specification in front of a day. So if you say
-
- 1st sun ...
-
- the scheduler will start only on the first sunday of the month. The
- day specification can also be a day range e.g. sun-fri.
- This code is untested.
-- Implemented bpipe.h and bpipe.c in src/lib, which defines a bi-directional
- pipe. This allows executing other programs and sending them information
- as well as getting info from them.
-- Replaced the previous pipe usage with bpipes in RunBeforeJob and
- RunAfterJob.
-- The mail program now uses bpipes rather than pipes, which means that any
- error output will appear in the job output (truly bi-directional).
-- Modified BSR to handle counts and to stop when no more matches are possible.
- This is untested.
-- Improved error messages in smtp.
-
-=============================================================================
-2002-12-12 Version 1.27d
-- This is a minor update that fixes a segmentation fault in btape
- as well as reduces non-important error messages in bscan.
-
-2002-11-29 Version 1.27c
-- Yet another silly error duplicating a column name in the SQLite
- make tables. No code change, just a make file.
-
-2002-11-29 Version 1.27b
-- Set DB version to 5 in DB make files.
-
-2002-11-28 Version 1.27a
-- Use g++ instead of gcc for testfind in tools
-
-2002-11-27 Version 1.27 (26Nov02) released 28 November 2002
-
-General: from kes25Nov02
-- Mostly Cygwin changes
-
-Changes submitted this submission:
-- Updated bdb_find.c to have new calling sequence for db_find_job_start_time
-- dird/catreq.c edit in Volume name in error messages to SD
-- attribs.c switch to using the cygwin API to convert from POSIX paths
- to Win32 paths. This now permits Win32 path specifications in Include
- statements (all combinations not yet tested). It also avoids the large
- number of errors seen by Lutz if a Win32 path is specified in the Dir.
-- Update testfind help and remove set_attribsEx debug code.
-- Build testfind as default.
-- Turn off debug message in stored/askdir.c
-
-General: from kes21Nov02
-- Another change in the database. You MUST either re-initialize
- your database or use the appropriate ./alter_xxx_tables in
- the src/cats directory.
-
-Changes submitted this submission:
-- Additional documentation.
-- Added MaxVolFiles to the database (not yet implemented in code).
-- Increased the database version from 3 to 4.
-- Change VolMaxBytes to MaxVolBytes, which is much more descriptive.
-- Compressed unnecessary spaces out of a lot of SQL statements.
-- Changed many %d to %u where unsigned integers are used.
-- Added the Bacula version and build date to each backup output.
- This will help knowing what version of Bacula was used.
-- Implemented VolUseDuration MaxVolBytes, MaxVolFiles, and MaxVolJobs
- based on maximums set in the Volume (Media) record rather than in the
- resource. This means the values can be individually set on a Volume basis.
-- Allow commas separating Include options (this was a subtle bug).
-- Added maximum string length argments to a number of subroutines to
- prevent buffer overflows. Most notably was do_prompt().
-- Replaced MANY occurrences of strcpy() with bstrncpy(), which guarantees
- both that the length is not exceeded and that the string is properly terminated.
- This has a risk of a certain destabilization -- as does the changes to
- the SQL noted above.
-- In cram-md5 routine use my_name if gethostname() returns an error.
-- Increase timeout from 2 minutes to 3 minutes in authorization code.
-- Check the full string including \n in authorization.
-- Throw away any response longer than MAXSTRING.
-- Added a number of additional error checks on subroutine return statuses.
-- Replaced as many lld's with edit_uint64 as I could find.
-22Nov02:
-- Added MaxVolBytes to Pool record - had forgotten it. Updated DB version.
-23Nov02
-- Update manual to document new Pool/Volume attributes
-- Correct make_sqlite_tables (typo, plus missing value in Pool)
-- Fix bizarre behavior in gnome-console and console when auth fails.
-- Add Pool attribute query
-- Add a few more error messages in askdir.c
-- More strcpy() conversions to bstrncpy().
-
-General: from kes18Nov02
-- Did a number of cleanups of string copying to limit the length
- and prevent buffer overflows.
-
-Changes submitted this submission:
-- Added a mutex arount the gethostbyname() so that multiple simultaneous
- jobs get the correct address.
-- Added the MaxVolJobs to the Media alter tables script for MySQL (forgot it).
-- Changed arg to db_find_job_start_time to be POOLMEM for returning the string.
-- Add the new VolUseDuration and MaxVolJobs to all the db_ routines.
-- Use bstrncpy() in most places in the db_ routines to prevent a bad
- database from crashing Bacula (self protection).
-
-General: from kes13Nov02
-- You MUST either re-initialize your databases or use the
- ./alter_mysql_tables
- or
- ./alter_sqlite_tables
- in the <bacula-src>/src/cats directory to modify your database tables.
-- Major improvements to dbcheck including an interactive mode.
-
-Changes submitted this submission:
-- Implemented VolumeUseDuration and MaximumVolumeJobs which control
- when a tape can be marked Used.
-- New tape status "Used" means it was used and cannot be used any more.
-- Defined utime_t which is 64 bit epoch time in seconds. btime_t is
- 64 bit epoch time in microseconds.
-- Created alter_xxx_tables to add new columns (VolUseDuration, MaxVolJobs) to
- database. Incremented db version.
-- Changed a few subroutine names concerning dates to be more descriptive.
-- Fixed several places where the last filename was not stored in JCR in
- FD verify_vol.c and restore.c
-- Major update to dbcheck. Unfortunately I used subselects, which work
- perfectly fine in SQLite, but not at all in MySQL. I must now rework
- it for MySQL. What a pain!
-- Removed "Database found" from configure output. It was no longer used or valid.
-- Corrected doc --working-dir => --with-working-dir Thanks to Tuck for
- reporting this.
-- Added the database name to the error message for mismatched DB version.
-- Commented out GMP and CWEB from configure as they are not currently used.
-
-General: from kes09Nov02
-- Converted the manual over to a new format written in wml. This
- gives navigation buttons on the top and bottom of each page
- as well as a standard page size.
-- Updated the main Web site, providing a menu bar to the left
- and much better organization and presentation of the information.
-- Added code to recognize a Volume written with a larger block
- size than specified. The code automatically adjusts.
-
-Changes submitted this submission:
-- Created a new scripts directory and moved most of the scripts
- previously in the main directory there. This cleans things up
- quite a bit.
-- Moved the randpass stuff into autoconf.
-- ensure that the generic make_bacula_tables and drop_bacula_tables
- are installed.
-- Added code to filed to allow it to be run from inetd. Just add the
- -i option. I have not tested it.
-
-General: from kes30Oct02
-- Alex found a problem with GZIP compression -- fixed.
-- bacula stript fixes.
-- Segment fault in Director fixed.
-- Added openbsd to platforms
-
-Changes submitted this submission:
-- GZIP compression was broken for large files due to a variable that
- is changed during the compression. This was relatively easy to fix.
- However, there were a number of fixes required to make GZIP and SPARSE
- files work together. Found one more place in bextract where SPARSE_GZIP
- testing was missing.
-- During testing of the above, I ran into the restore problem of multiple
- FileSet records. Fixed by including the FileSetId and the MD5 on the
- selection string, then always using the FileSetId. It is a bit
- confusing for the user, but ...
-- Francis found a problem with bacula.in (fixed - thanks)
-- I found another problem with bacula.in, so now it REALLY should work
- on most systems.
-- Added the Replace options code for restores. Not tested.
-- Fixed an ugly stack overrun bug in reading the config file
- that has been in for a long time. I found this in testing on FreeBSD
- where the Director seg faulted.
-
-General: from kes29Oct02
-- Major change to the bnet communications routines.
-
-Changes submitted this submission:
-- Modified the bacula script to use pid files, so this script should
- now work on more platforms. Updated devel_bacula as well.
-- Added the full GNU hostname on the configuration print output.
-- Added gettimeofday() to configure, and tweaked a few variables for
- OpenBSD.
-- Added a chapter to the manual on Porting Bacula to other platforms.
-- Documented in Tips how to use the WriteBootstrap record.
-- Modified bc_types.h to error if 64 bit types are not found.
-- Pass replace option for restore to the FD (no code to use it yet).
-- Modify the FD to pass back the GNU OS string as well as the DISTNAME
- and DISTVER. This needs to be put in the Client record in the catalog.
-- Major reworking of the bnet routines to eliminate the zero length which
- previously indicated a signal. This risks to create some subtle communications
- bugs. The changes now permit blank lines to be sent from the user to the
- Director.
-- Found and corrected a few more places where the Win32 attributes were not
- being recognized.
-- Permit spaces in the Where string (restore) by bashing/unbashing them.
-- Handle quotes correctly in the Console program (actually Dir ua code).
- Previously they were not handled in the middle of a string.
-- Corrected two error message (error reading file), which previously stated
- it was a network error.
-- Reworked the files in the binary Windows release. Removed unused programs
- and added a README with the copyright as suggested by John. Also added
- console.exe to the release.
-- Found and corrected an autoloader mount problem where the wrong tape
- was specified. Previously it looped, then gave up. Now it correctly
- detects the volume is not correct and zaps the Slot in the catalog.
-
-General: from kes23Oct02
-- I have mainly worked on getting all the details of a Restore
- to work correctly (new tape format, support for Win32
- attributes, ...)
-- Trademarked name Bacula.
-- Implement Bacula tape format 11 (1.0 Immortal). This format
- will be maintained forever.
-- Accept Any Volume is yes by default. This modifies Bacula's behavior
- when writing tapes.
-
-Changes submitted this submission:
-- Corrected a bug on FreeBSD where CFLAGS would get a "yes". I was
- unable to reproduce this, but a user confirmed the correction.
- It was a problem with detection of largefile support, which FreeBSD
- has by default.
-- Added a new "license" chapter in the manual. Re-licensed a number of
- library routines (bnet.c, hmac.c md5.c, cram-md5, ...) with LGPL so that they
- can be used in proprietary software to access Bacula if so desired.
-- Move Director's AutoChanger doc to correct location (in Storage
- resource).
-- Document why trademark (to protect compatibility).
-- Implement and turned on Bacula tape format 11 (also BB02). This
- format moves the VolSessionId and VolSessionTime from each record
- header into the Block header. This is MUCH more efficient when reading
- records as now whole blocks can be skipped.
- Also added JobStatus in End Of Session record, and added MD5 for
- FileSet, which is necessary to insure uniqueness.
-- Implement a new Bacula time format for btime_t. It is Epoch time
- in microseconds (i.e. base 1 Jan 1970 in microseconds).
- This replaces previous floating point times.
-- Added Win32 extended attributes. In doing so, I moved all attribute
- handling from src/lib into src/findlib. Added new streams for
- Win32 attributes and for GZIP Win32 attributes.
-- Modified "Accept Any Volume" so that it really permits any volume
- in the pool to be mounted.
-- Removed "Mount Anonymous Volumes" from Storage daemon config.
-- Implemented sparse files. You must add "sparse=yes" on the include line
- for it to be enabled.
-- Print "None" in backup summary rather than 0.0% if there is no compression
- enabled.
-- Improved error checking in daemon connection/authentication code to prevent
- garbage data from harming a Bacula daemon.
-- All daemon tools MUST have a config file.
-- Completely strip drive specification on Win32 if a Where prefix is specified.
-- Corrected DB info for writing to files. Now the File Address is stored
- in File-Block variables in the catalog.
-- All Storage daemon tools now use common code for acquiring/reading
- Volumes.
-- If a device is unmounted, report it even if the device is not open. This
- will help inform users who have BLOCKED Bacula by unmounting a drive.
-
-
-=============================================================================
-2002-10-12 Version 1.26 (10Oct02)
-General: from kes10Oct02
-- Changed Job name conventions to avoid : which is an illegal
- character on Windows.
-
-Changes submitted this submission:
-- Added check for inet_pton to configure.in. If it does not
- exist (e.g. Windows) use inet_aton
-- Documentation on GZIP.
-- Another restore doc example.
-- Documented btape fill command.
-- Set default restore directory from /tmp to /tmp/bacula-restores
-- Add additional no find error messages to sql_get.c
-- Creating a bootstrap file on Windows failed because the Job name
- contained colons which are illegal on Windows. Replaced the
- colons with periods. This corrects the Windows restore problem.
-- Print number of files to be restored in "restore" command.
-- On Windows systems, if there is a prefix, completely eliminate
- any drive: at the beginning of a path.
-- Minor corrections to the tree routines to handle Windows
- files such as c:/ better. Previously it insisted on /c:/, which
- would then not be found in the catalog for a "dir" command.
-- Modified cd command in restore to try /c: if c: fails.
-- Add a new S_ISWIN32 bit to the st_mode word so that low level
- routines that create files do not print error messages.
-- More work must be done to restore all Windows files correctly.
- Currently the following bits are not handled:
- Archive
- Hidden
- System
- Also, all the dates are not properly restored.
-
-General: from kes09Oct02
-- More documentation.
-- Implemented new fill command in btape that permits filling
- a tape and then reading it back to ensure that it works
- with Bacula.
-
-Changes submitted this submission:
-- Added ReadBytes to JCR, which contains Job bytes read by
- FD, JobBytes contains compressed output of FD.
-- Modified FD to pass back JobStatus, ReadBytes, JobBytes, ...
- for backup jobs. This is upward compatible.
-- Modified backup termination status report to contain the
- compression ratio 100 * (1 - compressed-bytes/uncompressed-bytes)
- This will always be zero if no software compression was
- done, or if you are using a version 1.25 or older FD.
-- Pickup Job termination status of FD in backup, so now
- the termination status represents the state of all three
- daemons.
-- Implemented new fill command in btape that permits filling
- a tape and then reading it back to ensure that it works
- with Bacula.
-
-General: From kes06Oct02
-- Implemented first major cut of bscan -- program to scan a tape
- and recreate a Bacula catalog.
-- Fixed lseek() relative negative seek that prevented writing multiple
- jobs to a File volume.
-- Implemented BB02 tape format -- currently turned off for writing.
-
-Changes submitted this submission:
-- Updated README
-- Implemented new BB02 tape format, which moves the VolSessionId and
- VolSessionTime from the record headers into the Block header. It
- is currently turned off.
-- Implemented new btime time/date format on the tape. This is currently
- turned off.
-- Added JobStatus to EOS tape label. This is currently turned off.
-- Changed start_block, ... to StartBlock in JCR for uniformity.
-- Print a message telling which tables were dropped/made with
- ./drop_bacula_tables.
-- Return JobType and JobLevel in db_get_job_record().
-- Implemented get_current_btime(), which returns btime_t.
-- Bump debug message max size to 2000 bytes.
-- Add btime_t serial/unserial routines.
-- Rework all tape label routines to integrate btime and other
- label format changes (currently turned off -- for writing).
-- Fix lseek() to always be positive -- block.c
-- Consolidate record, block, and label major #defines in block.h.
-- Major implementation of bscan. Some more minor tweaking will be
- necessary. E.g. add multiple records for multiple simultaneous
- Jobs.
-- Cleanup lseek() to always use off_t as second argument.
-- Add new "created" tape label (EOT_LABEL). This generates a callback
- to the read_records() routine when the final end of all tapes is
- reached allowing proper termination and updating of the media records.
-
-General: From kes25Sep02
-- Added means to bind servers to specific address.
-- Documentation
-
-Changes submitted this submission:
-- Added DirAddress, FDAddress, and SDAddress records to the corresponding
- resources that allow the server to bind to a specific address
- rather than any address. This security improvement was suggested by
- a user -- thank you.
-- Eliminated deprecated "Address" record from all sample Storage resources.
-- Made quite a lot of improvements to the bscan program. Much more
- to do. Aside from details, it is able to recreate a database
- from which you can do a restore.
-- The s option is not accepted on all versions of ar, so replaced it
- by an explicit ranlib call.
-- Fixed a bug that caused the Director to crash if you rudely bring
- down the console program in the middle of an SQL command.
-- Fixed a bug (missing break) that caused scheduled Admin jobs to
- be listed as "Unknown type".
-- Removed old code from Storage daemon that used a separate FD port.
-
-General: From kes14Sep02
-- Better key generation on non OpenSSL systems.
-- 64 bit file address support if available.
-- Implement autochanger for reading
-- Lots of cleanup of tape reading code.
-- Automatically create all Pool resources when Bacula starts.
-- Implement bscan.c
-- Implement autochanger use via the Console commands "add" and "label"
-- Begin implementation of a regression script
-- Write bootstrap after ever job
-
-Changes submitted this submission:
-- After noticing that the non OpenSSL random key generator was
- not good on Solaris, John wrote a very nice randpass generator.
-- Integrated John's makeSessionKey for generating the FD->SD
- authorization.
-- Statically link tools (doesn't work on Solaris).
-- Document how to debug Bacula (new chapter in the manual)
-- Remove unneeded printing of error message in sql_get.c
-- Free SD description config record (previous oversight)
-- Bash spaces when sending Director names, and unbash them when
- received.
-- Ensure no divide by zero in rate computation in backup.c
-- Implement WriteBootstrap in backup.c
-- Allow tape reading to request volume information for any
- volume.
-- Create all Pool resources at startup.
-- Show only Backup jobs in Restore listing of last 20 Jobs.
-- Handle 64 bit stat packets in restore.
-- Don't do shell expansion on store_dir in config if string
- starts with |. This is used for piping the program for the
- WriteBootstrap.
-- Ignore SIGHUP -- Déjà Gnu was triggering this.
-- Implement autochanger for reading, many changes to
- acquire_device_for_read()
-- Implement callback for reading Volume. Implement in bextract,
- bls, and bscan.
-- Implement bscan
-- Add count to bsr.
-- Fix Volume in bsr.
-- Move autochanger code to new subroutine in mount.c
-
-=============================================================================
-2002-09-05 Version 1.25a (05Sep02) Released
-- Fix unitialized stack variable in bextract so it
- will always read the currently mounted tape.
-
-=============================================================================
-2002-09-04 Version 1.25 (01Sep02) Released
- General:
-- Added .cvsignore files in each directory to cut down on the
- CVS output when scanning directories and finding Makefiles
- and such which are not part of the CVS tree.
-
- Changes submitted this submission:
-- Cleaned up a lot of the error messages in Verify, including
- indenting.
-- Had to remove some of the "automatic" error message printing
- in the DB because they are in fact things that come up
- for Verify but not really errors.
-
-
- 2002-08-30 Version 1.25 (30Aug02) Beta
- From kes30Aug02
-- Fixed a bug where only the first file was restored if
- it is hard linked. The other links were lost.
-- In some cases of restoring to alternate directories, softlinks
- were not properly restored.
-
- From kes28Aug02
- General:
-- Bacula backups now run up to 12 times faster than version 1.24
-- Bacula can run multiple simultaneous Jobs.
-- Had to turn off TRANSACTIONS in SQLite because it doesn't work
- with multiple simultaneous jobs (I'm working on this).
-- Added a better Job printout for Restore Jobs.
-- Added a save/restore Rate to backup and restore jobs. This
- does not yet subtract out operator wait time so it will be
- underestimated it the Job waits on the tape (mount/label).
-- Fixed a major bug caused by free()ing a buffer twice in
- the Restore code. This made the SD more or less useless after
- any restore Job. Arrggg!
-- DIR - SD protocol changed, both must be updated at the same time.
-- DIR - FD protocol changed in upward compatible way. Upgrade of
- FD not required, but recommended.
-
- Changes submitted this submission:
-- Added bell to "make" when errors are detected.
-- Changed default compile option from -g to -g -O2
-- Additional documentation as usual -- much based on questions or
- feedback from users. Thanks.
-- Fixed example config files to use new syntax and to have a
- Restore Job.
-- Define ETIME to ETIMEOUT for Irix
-- Added JCR filed to DB structure permitting direct printing error
- messages from within the Database subroutines.
- Some error messages may be printed twice as a consequence.
- When I see them or someone reports them, I will remove the double.
-- Added JCR to the bsock structure. This allows direct printing
- of network errors from within the network code.
-- Made most "trivial" debug messages have level 100 or greater. This
- allows for easier debugging of new code using the range below 100.
-- Began replacing all Emsg() with Jmsg() using a NULL as the JCR in
- Jmsg() is the same as Emsg().
-- Fixed several crashes in the Director because of malformed config files.
-- Added SpoolAttributes to Job resource.
-- Pass CatalogFiles to SD. If set to no, the attributes are dropped
- within the SD rather than being sent to the DIR.
-- Cleaned up a number of information/error messages in user interface.
- This includes eliminating the "pretty please" response in favor of
- "yes/no" to delete volumes and pools.
-- Cleaned up quite a number of uninitialized variables reported when going
- to -O2, most were harmless, but a couple could cause problems.
-- The cd command in restore was not working correctly (it didn't allow some
- legal cds).
-- Fixed a segmentation violation in the directory tree handling code in
- the restore command.
-- Handle a few error conditions in the restore command better.
-- Permit "Where" to be set to nul in modification of a run command.
-- Clarified the error message for Verify if an InitCatalog has not previously
- been done -- thanks Chuck.
-- Add MaximumConcurrentJobs to FD.
-- Added code to mem_pool to die if a buffer is released twice.
-- Lots of work done on SD for multiple simultaneous jobs. Split device.c
- into device.c, mount.c and acquire.c
-- Started writing new lock code for SD, but may back it out -- needs more
- thought. Current code works, but is too complicated. Maybe can simplify it.
-- Cleaned up the SD tools code quite a bit. Added bootstrap to all tools.
-- Ensure that tape session labels are not split across two blocks. This makes
- reading them back much easier.
-- Fixed another restore bug concerning tape labels on multi-volume saves.
-
-=============================================================================
-2002-08-14 Version 1.24
- From kes12Aug02
-- Made a new tools directory.
-- Moved smtp into the tools directory.
-- Created a dbcheck program in the tools directory that
- checks for certain database errors and if requested fixes them.
-- Put the database link flags on DB_LIBS so that it now only is
- on binaries that actually need it.
-- Document dbcheck and testfind programs.
-- Move testfind to tools directory.
-- Check for FileSet after getting Client name in Restore command.
- Modify all necessary SQL commands to accept FileSetId.
-- Add a db_get_fileset_record in cats directory.
-- Correct list last 20 files concatenation to be MySQL
- dependent. They aren't SQL standard. Use SQL standard || for
- other SQL programs.
-- Modify dir command in file selection to produce a long form
- listing of the file/directory name.
-- Add platforms/irix/*.in files to CVS
-- Make Console command scanner accept quoted value fields.
-- If after selecting Client to restore, there are multiple
- FileSets, ask user to select one.
-- After obtaining JobIds for restore, ensure that there is only
- one MediaType, and select a Storage resource to be used.
-
- From kes11Aug02
-- Made restore actually work.
-- Made console and gconsole be configured (requested by Chuck)
-- Updated kernstodo
-- changed fs in Job record to fileset for clarity
-- The console run command was not properly picking up the command
- line arguments. Fixed!
-- Changed add/remove/rm to mark/unmark
-- Volume keyword VolumeName was wrong, changed to Volume (in restore bsr).
-- Pass jcr to parse_bsr, and if non-NULL, it will output error messages
- to Job stream rather than Emsg.
-- Modified lexical scanner to include caller context so that jcr can
- be stored in lex context allowing error messages to be properly
- routed.
-- Renamed the Job message chain to be jcr_msgs. This eliminated the
- previous confusion with the default value, now named jcr->messages.
-- Implemented multi-volume bsr records.
-- Implemented pm_strcat() and pm_strcpy() to cat/add to memory pool
- buffers in same way as strcat/strcpy, but expanding buffer.
-- Modified db_get_volume_names to handle arbitrarily long Volume list.
-
- From kes07Aug02
-- If the Console program terminated during the printing of messages,
- the message file was left locked. This was corrected by using the
- new read-write lock code.
-- Implemented Pw() and Vw() for obtaining and releasing a write lock
- using the rwl_xxx routines.
-- Deleted some old pthread_mutex code from mysql.c
-- In making the Irix port, I previously corrected the base64 routine so
- they were not sensitive to the machine definition of char. This made
- them incompatible with previous versions invalidating MD5 signatures
- which are in base64 format. I have now corrected this, making the
- routines compatible with the previous version but also insensitive
- to the default definition of char.
-- Removed some unnecessary NPRT() usage in signal.c (pointed out by
- the Irix compiler).
-- Add back BNET_NONO for compatibility with older File daemons.
-- Implement runing a restore Job in the restore command.
-- Make installation of query.sql unconditional. To prevent you own file
- from being overwritten, give it a different name.
-- Made parse_command_args() in ua take command from ua->cmd, this
- simplifies it and allows usage in other places -- e.g. building
- arguments for created run command in restore.
-- Cleaned the naming of s_full_ctx to be s_jobids.
-- Write the bsr created in restore to "working-directory"/restore.bsr
-- Fix bugs in command line scanner in run command -- also some misplaced
- breaks!
-- Eliminate static cmd in ua_server.c
-- Eliminate segmentation fault when using the Run command in the
- Console -- forgot to init_msgs().
-
- From kes06Aug02
-- Did a good amount of documentation.
-- Added sql_cmds.c to CVS, forgot, pointed out by Chuck.
-- Added new platforms/irix directory to CVS
-- Turn off transaction debug code in sql.c
-- Reworked the scheduler so that it handles the same Job starting
- twice in the same hour. Previously it took one or the other.
-- Tightened up the "slop" in the timings that I programmed to ensure
- that the same job isn't run twice or that no job was missed.
-- Increase the sleep time.
-- Used job_type_to_str() in status so that Admin jobs are correctly reported.
-- Add internationalization message chars to a number of routines
- in util.c
-- Make the watchdog timer clear the mutex when it exits.
-- Some tweaks to the Restore command. It needs fixing when a Job spans
- two or more volumes.
-
- From kes05Aug02
-- Initial cut at adding Irix File daemon support.
-- Lots of work on the restore command.
-- Take a stab at eliminating the "broken pipe message"
- when the console program prematurely terminates.
-- Reimplemented transactions for SQLite by keeping
- them all in the same thread.
-- quit in the Console program now waits for Bacula to
- quit. To immediately quit, you must enter .quit
-- Eliminated BNET_EOF -- this COULD have some negative consequences
- on interdaemon communications.
-- Define Job termination status for Admin jobs.
-- Write new bstrncpy() function that guarantees that strcpy is
- properly terminated.
-- Fixed command input in ua_input.c to accept quoted items as a
- single field.
-
- From kes01Aug02
-- The changes that added indexes to the SQLite database were
- lost -- thanks to Chuck for pointing this out. Redone.
-- Fixed a problem quoting strings in SQLite. This showed up
- as database errors with files containing ' or " in the filename.
-- Implemente restore command -- still in progress.
-- Added indexes to all fields in SQLite that exist in MySQL.
-- Moved unused immortal files from src/lib to src/immortal.
- This will permit splitting depkgs.
-- Started work on adding embedded MySQL. Cannot get the tables
- to work for the moment. Please don't try to use this option.
-- Convert to using single quotes for enclosing all strings.
-- Implement correct quoting algorithm for SQLite strings.
- Is dequoting needed?
-- Started centralizing SQL statments in the Director in sql_cmds.c
-- Changed a number of M_ABORTs to M_ERROR_TERM so that program terminates
- but does not produce a dump.
-- Allow wild-card matches in bsr for Client name, and Job.
-- Change OflineOnUnmount=no as default.
-- Fixed improper printing of filenames containing a space in bls.c
- Thanks to Carlos for reporting this.
-
-===========================================================================
-2002-07-26 Release 1.23a
-- Fix segmentation fault is FD status.
-- Turn off TRANSACTIONs for SQLite.
-
-===========================================================================
-2002-07-23 Release 1.23
- From kes22Jul02
-- Updated Bacula to handle some minor differences in MySQL 4.0.2
- (still works with older MySQLs).
-- Updated MySQL documentation to correct some minor errors.
-- Added kernstodo to CVS
-- Fixed create_mysql_database, which I recently accidently broke.
-- Disallow zero length volume names in Console program.
-- Create alter_mysql_tables and alter_sqlite_tables for conversion
- from 1.22 table format to 1.23 table format.
-
- From kes20Jul02
-- Investigation of SQLite performace problems reported by Chuck.
-- Updated ChangeLog
-- Updated README
-- made root@localhost the default email address because many smtp
- servers reject root but accept root@localhost
-- Added an autochangers chapter to the manual.
-- Documented most of the new features in 1.23
-- Modified the SQLite interface code to start a transaction at the
- beginning of a job and commit it at the end of the job. It
- also commits it after 10000 changes. Hopefully this will
- improve performance.
-- Set the default cache pages from 2000 to 10000 for SQLite (i.e.
- about 15Megs of memory) hoping to improve performance.
-- Terminate last filename referenced in FD prior to copy to
- avoid race problem with multiple threads and no locking.
-- Enhanced the status output to include the JobType
-- Print an error message if the email program terminates in error.
-- If your machine has an MTUNLOCK, do it before doing an OFFLINE to
- ensure that the door is unlocked.
-- Added code to stored/append.c to spool attributes. This is in
- a testing stage and must be explicitly enabled.
-- Added a no_attributes variable to stored/append.c that prevents
- the attributes from being sent to the Director. As yet, no way
- to turn it on.
-- Modified SQLite code so that after 10000 updates any transaction
- is committed, then restarted. This keeps it from using too much
- memory.
-- Set the default cache size to 10000 pages (previously 2000).
-- Fixed a segmentation fault on Sun due to no default value for
- the JobStatus.
-- Added the same indexes to SQLite that I exist in MySQL. This
- VASTLY reduces CPU usage for lots of inserts.
-- Added spooling to bnet_send().
-
- From kes18Jul02
-- The following two changes were prompted by questions/suggestions
- from A Morgan.
-- If you have "AlwaysOpen = no" in your SD Device
- resource, Bacula will free() the drive when it
- is finished with the Job.
-- If you have "Offline On Unmount = yes", in your
- SD Device resource, Bacula will offline (or eject)
- the tape prior to freeing it.
-- Added Maximum Open Wait to allow open() to wait if drive is busy.
-- Added RunBeforeJob and RunAfterJob records to Job records.
- This permits running an external program with the following editing
- codes:
- %% = %
- %c = Client's name
- %d = Director's name
- %i = JobId
- %e = Job Exit
- %j = Job
- %l = Job Level
- %n = Job name
- %t = Job type
-
- From kes17Jul02
-- Added autochanger support to devices.c
-- Allow user to change Slot in the Volume record.
-- Implemented code in lib to run an external program
- (tape changer)
-- Implemented a changer script for mtx.
-- Currently the changer commands used are:
- loaded -- returns number of slot loaded or 0
- load -- loads a specified slot
- unload -- unloads the device (returns casette to slot)
-- Other changer commands defined but not yet used:
- list -- returns list of slots containing a cassette
- slots -- returns total number of slots
-- Implemented ChangerCommand, specified in the SD Device
- resource, permits editing of:
- %% = %
- %a = archive device name
- %c = changer device name
- %f = Client's name
- %j = Job name
- %o = command
- %s = Slot base 0
- %S = Slot base 1
- %v = Volume name
-- Implemented MaximumChangerWait default 120 seconds. It is
- specified in the SD Device resource.
-
- From kes15Jul02
-- Moved techlogs from main directory to be subdirectory of doc
-- Added code for strerror_r, and detection of gethostbyname_r().
-- The protocol between the Director and the SD has changed.
-- Major rework of SD tape mounting to prepare for Changer commands.
-- Separated Update Media record and Create JobMedia record. These
- are done from the SD by calling the Director. Need separate Create
- JobMedia so that when a Job spans a volume, all other Jobs writing
- the same volume will also have JobMedia records created.
-- Added message to user indicating selection aborted if he enters .
- to a Console selection request.
-- Create a jobstatus_to_ascii() routine for use in status commands.
- This makes a single routine from three separate pieces of code.
- Updated the code to properly handle more (all) termination statuses.
-- Tried to fix the gnome-console to handle history a bit better. There
- are still some problems with focus not being properly set to the edit
- box after history replacement.
-- Removed the shutdown() from bnet_close() hoping to fix Console termination
- errors that are occassionally seen -- no luck.
-- Moved add_str() to lib/util and renamed it add_str_to_pool_mem() so that
- it can be used to edit Job termination codes and Changer command codes.
-- Reworked how the SD mounts tapes (in device.c) so that control passes through
- only a single routine. The logic is much simpler than previously, and now
- adding AutoChanger code is straight forward.
-- Made SD tape mounting much more fault tolerant -- more cases retry instead
- of terminating the Job.
-- Wrote code to edit_device_codes() for Changer commands. Not yet fully
- implemented.
-- Added a ChangerDevice directive to the Device resource. Still need to add
- ChangerCommand.
-
- From kes07Jul02
-- This documents what I did while on vacation.
-- A fair amount of documentation.
-- Implemented Verify Volume to Catalog (needs renaming)
-- Modified the database to include new MarkId field as
- well as Counters. Database level is incremented from 1 to 2.
-- Added first cut of managing autochangers by implementing Slot in DB.
-- Fixed a good number of M_ERROR messages to be M_FATAL where appropriate.
- Also converted a number of Emsg() to Jmsg() permitting better Job error
- messages.
-- First cut at implementing a general packet passing mechanism for bsock
- to replace printf and sscanf for passing data.
-- Made make_xxx_tables and drop_xxx_tables and create_xxx_database
- for bdb as well as sqlite. With this each database has the
- same set of scripts (with the exception that MySQL has grant_privileges).
-- Modified Makefile to only install the database scripts for the
- database that you are using.
-- Updated the pdf script to include all the html files.
-- Did quite a lot of documentation.
-- Made Bacula compile correctly with DEBUG turned off.
-- Implemented Pmsg() macros that permit using the debug print
- routines even with DEBUG off.
-- Updated job_cancelled() macro to handle JS_FatalError.
-- Changed db_find_last_full_verify() to db_find_last_jobid(). This
- permits working with Verify Volume to Catalog.
-- Removed TRANSACTION code from incrementing NextId for SQLite.
-- Implemented quick and dirty (not fully functional code) so that
- console program does not die if ctl-Z is entered.
-- Cleaned up backup.c a bit adding a bail_out goto to ensure proper
- handling of errors with minimum code.
-- Added passing Slot back and forth to Storage daemon with Volume info.
-- Implemented Slot in Media record in DB.
-- Implemented first cut of Counter resource in dird_conf.c. A counter
- resource is part of the Pool resource.
-- Implemented necessary database record. However, the resource doesn't
- yet create a DB record.
-- Implemented onefs (One File System) and recurse options on Include
- resource.
-- Implemented autopruning of Verify and Restore Jobs.
-- Did a better job of calculating thread_concurrency() for Sun systems.
- This permits better multi-threading allowing all the threads to run
- at the same time.
-- Implemented a wait_for_storage_daemon_termination(), which is used by
- backup and verify volume.
-- Clarified a number of UA prompts, and add feedback where certain commands
- completed but printed nothing. (More work to be done here).
-- Added a pile of new code to implement Verify Volume to Catalog. It is sort
- of a hybrid of "restore" and "verify" in that it actually reads the tape,
- then compares it to the catalog. Need Verify Volume to Client.
-- Added a good number of checks for job_cancelled() this should permit
- quicker and more reliable cancelling of jobs.
-- Fixed one bug in restore where I used ofile instead of lname, which means
- that if the lname was too long, the memory was not properly reallocated.
-- Cleaned up find_one.c in findlib quite a bit.
-- Link smtp static so that it works even if the libraries are messed up.
-- If mail host is not found, retry with local host in smtp.
-- Added slot and stream to the bootstrap record processing.
-- Do offline on tape cartrige for unmount command. This can be turned off
- by the user in the config file. OffLineOnUnmount in Device resource.
-- Implemented AutoChanger = yes/no in Device resource.
-
-===========================================================================
-2002-07-07 Release 1.22
-- All the basic Restore code to handle the boostrap file is
- now implemented with the exception of the Console Restore command.
-- Retained compatibility with previous Restore providing no
- bootstrap file is specified. However, the old code (JobId based)
- will go away in a future release.
-- Fixed a number of segmentation faults in the Console program due
- to printing of NULL pointers -- thanks to Chuck and his Sun for
- finding and reporting them -- mostly in ua_output.c.
-
- From kes25Jun02
-- Null pointers now are printed as *None* if NPRT() is used.
-- At the request of Phil, all resources are now chained in in the
- order they appear in the config file.
-- Implement Bootstrap record in the Director's config file, which
- allows you to specify a predefined bootstrap file for Restore Jobs.
-- Allow Bootstrap on the Restore record. This is deprecated.
-- Implemented code to pass the Bootstrap file, if defined, to the
- File daemon, then from the File daemon to the Storage daemon.
-- Added ability to set Bootstrap file in the Console when running a Restore.
-- Allow scan_error() routine to be passed to lex_open_file(). This permits
- using lex in the Storage daemon without worrying that it will ABORT on
- a syntax error. More work is needed to direct the error messages correctly.
-- Improved error messages a bit when config syntax errors are found.
-- Tested and corrected some errors in match_bsr.c
-- Removed askdir.c from bls and bextract by defining dummy entry points.
-- bextract now has bootstrap pretty well integrated.
-- Changed bextract ABORTs into FATAL and exit(1) or ERROR_TERMINATE.
- More user friendly.
-- Eliminated at least one lld and replaced it by edit_uint64()
-- Eliminated a few more _PROTO()s.
-- Corrected a problem with the SQL for in query.sql for
- Listing Volumes to Restore All Files
-
- From kes22Jun02
-- Additional documentation.
-- Reduce the time the jcr mutex is locked in lib/jcr.c
-- More null pointer printing fixes in lib/parse_conf.c (debug output only).
-- Added daemon filename to Kaboom message so I know what daemon died.
-- Fix big bad bug introduced in watchdog.c last update that caused
- a segmentation violation (forgot to check for NULL pointer).
-- Add a bit more info to bad returns from Stored when starting
- a job fails.
-
- From kes21Jun02
-- Fixed scan_to_eol
-- Fixed backup scanning forgot one T_STRING -> T_UNQUOTED_STRING
-- changed all rwlock_t to brwlock_t to avoid conflicts with
- Solaris library.
-- Added NPRT() macro to allow printing of NULL pointers, which
- segment fault on Solaris.
-- Cast printing of pid_t to int for Solaris compiler.
-
- From kes20Jun02
-- Added expect argment to lex_get_token().
-- Added tree.c and tree.h to lib directory.
-
- From kes19Jun02
-- Improvements to the bootstrap compiler
-- Implemented first cut of bootstrap code in the Storage daemon
-- Modified the authentication code to be more explicit during
- failures.
-- Added a few more debug message numbers with more arguments (Dmsg10, ...)
-- Added more and more precise error messages when authentication fails.
-- Implemented new "expect" codes in the lexical scanner that allows
- the caller to specify what he wants.
-- Added integer, positive integer, 64 bit integer, and integer ranges,
- and name scanning to lex.
-- Implemented new lex code in parse_conf.c, this reduces significantly
- the code.
-- Hopefully fixed a watchdog race bug that caused the watchdog to time
- out a line after 1 hour rather than 6 days.
-
- From kes15Jun02
-- Implemented a Bootstrap file parser and matcher.
-- Implemented first cut of bootstrap code in bextract
-- Started clarifying different termination codes.
-- Added M_ERROR_TERM to immediately terminate the daemon -- no dump.
- Also changed a few termination codes as appropriate.
-- Fixed create_jobmedia_record() to include all the fields such as
- StartFile/EndFile, StartBlock/EndBlock.
-- Print user friendly message when query mode ends.
-- Fixed ls style print routines (bextract, bls, restore) to check
- buffer size, to print the link if any, and to used edit_uint64()
- instead of %lld.
-- Moved scan_to_eol() and s_err() to lex.c to avoid dragging in
- parse_conf.c for new bsr scanning code.
-- New files: bsr.h, parse_bsr.c and match_bsr.c. parse_bsr.c parses
- a Bootstrap file, and match_bsr.c matches a bsr against a tape.
-- use strcasecmp() in several places instead of lcase().
-- Add first cut of bootstrap to bextract.
-- Added File Size limit -- writes EOF after limit exeeded.
-
-===========================================================================
-2002-06-12 Release 1.21
-- Fixed several problems with filenames being truncated if
- they contain spaces. Thanks to the user that reported this.
-- N.B. To get the new queries, after the "make" and
- "make install" you must explicitly replace the
- existing query.sql by query.sql.new. query.sql is a
- user configuration file, so it is not overwritten.
-- Added GZIP compression of Included files.
-- Added additional fields to tape SOS record permitting better
- recovery with no database.
-- Be sure to remove any !terminate statements you may have
- in your config files.
-- MUST UPDATE ALL DAEMONS due to protocol change to handle new
- tape format.
-
- From kes11Jun02:
-- Updated examples directory with my most recent config files.
-- Modified the M_TERM meaning to mean that Bacula has
- terminated in error without producing a dump. Previously,
- it meant that Bacula terminate (with or without error).
- You should remove any !terminate from your messages
- resources.
-- Changed the order of the libraries in the link so that
- tcp wrappers link properly. Thanks Phil for reporting this.
-- A user reported that filenames containing spaces were truncated
- in bextract. This was indeed the case. They were also truncated
- in Restore as well as in Verify. They are, hopefully, all fixed
- now.
-- Made a few error conditions in Verify non-fatal.
-- Modified the Console "query" command to permit multiple SQL
- statements per command.
-- Implemented three new "query" options:
- List last 10 Full Backups for a Client
- List Volumes used by selected JobId
- List Volumes to Restore All Files
- To use them, simply type "query" to the Console program, and
- select the one you want.
-- Modified bextract to default to extracting all files (i.e. /).
-- Cleaned up the code in bextract a bit.
-
- From kes03Jun02:
-- Improve Verify command to include files examined.
-- Eliminate fcntl() locking of the console file and replaced
- it with a pthreads mutex.
-- Note Director - SD protocol is changed to handle new tape
- information (Fileset, JobType, JobLevel).
-- Create config.out that contains a summary of ./configure
- to see what you previously configured: "cat config.out"
-- Implemented GZIP compression. Added addition syntax to
- Include { } resource to permit setting of any GZIP compression
- level:
- compression=GZIP
- compression=GZIP1
- ...
- compression=GZIP9
-
- Level 1 is minimum compression and level 9 is maximum. Using just
- GZIP gives the default (level 6).
-- Enhanced the tape format to include the unique Job name, FileSetName,
- JobType, and JobLevel in the Start/End of Session records. The code
- detects that tape level difference and acts accordingly. You can
- add data in the new format to old tapes.
-- Fixed an incorrect display message in the prune command.
-- Began implementation of Verify Volume and Verify Data.
-- Cleaned up File daemon restore.c a bit ensuring that termination
- cleanup is done and all possible Emsgs are converted to Jmsgs.
-- Modify bls.c to use common setup routines. This reduced the big
- code duplication that creeped in when I added different listing
- options. Also, changing tapes is now handled uniformily in a subroutine.
-
-===========================================================================
-2002-05-27 Release 1.20
-- Started documenting Catalog Pruning and Recycling.
- Added catmaintenance.html and recycling.html
-- Fixed the query command bug.
-- Implemented PID files to prevent two copies of Bacula
- from running at the same time. Be sure you --with-pid-dir
- points to a working directory.
-- Modified ASSERT() to cause a segmentation violation. This
- permits a core dump.
-- Worked on gnome-console. It paints better, it tells you if it
- is ready to accept a command or processing one, and it is
- almost entirely GTK+ (rather than GNOME, I'm removing GNOME
- a bit at a time).
-- Limit to 100 the number of tape labeling errors in a single Job.
-- Add some additional ASSERT()s to the database routines. I don't
- like ASSERTs but they do catch bugs.
-- Tested and debugged recycling of Volumes. Needed to change
- the Director-SD protocol slightly.
-- Removed the experimental SIGHUP in the Director as it is a
- potential source of errors.
-- Added Level, Pool, Messages, and Storage keyword/value scanning
- to the Schedule Run record.
-- Improved printing of Schedule resources with "show schedules"
-- Do not autoprune Jobs/Files if the Job errs.
-- Updated newvol() to pass back the updated Media record.
-- Fixed the "update pool" command, which was broken during a much
- earlier code reorganization.
-- Improved a few of the pruning messages.
-- Removed readline inclusions from gnome-console (hang over from console).
-- Make Jmsg use daemon message handler if no message handler is defined.
- This is always the case in the SD and FD.
-- Started removing __PROTO(). With C++ prototypes are manditory, so why
- keep around legacy code.
-- Added a good deal of message internationalization -- more to be done.
-- Move cached Path into mdb structure and use POOLMEM.
-- Fix verify bug introduced last update causing incorrect diffs
- by turning off autopruning.
-- Started adding code to distinguish Errors from Fatal Errors.
-- Errors are now counted in message.c for a Job.
-- More POOLMEM cleanups.
-- Implemented Automatic pruning.
-- Implemented Automatic recycling of Volumes.
-- Added PruneJobs/Files/Volumes=yes or no to Job resource. If set,
- it forces the specified pruning.
-- Modified rwlock to accept multiple nested write lock
- requests.
-- Modified the cats directory to use the new rwlock mechanism
- in place of P() and V().
-- Defined db_lock(mdb) and db_unlock(mdb). They are in effect
- transaction locks.
-- Add CVS Id's to most files.
-- Made first cut at AutoPrune
-- Added new autoprune file that is called at the end of
- each Job. It then decides when and what to prune and
- calls the UA prune routines.
-- Modified Run (in Schedule resource) to permit overrides of
- Level, Pool, Storage, and Messages. (not tested).
-- Added more POOLMEM in place of char.
-- Implemented daemon pid files. This prevents multiple
- daemons from running simultaneously. You can run multiple
- daemons if they listen on different ports.
-- Documented the Schedule resource a bit better.
-- Began gently adding a POOLMEM type (perviously void).
- For the moment it is a #define to char, but long term
- it should be its own typedef.
-- Corrected a bit of spacing on the status bar of gnome-console
-- Added Admin and Archive Job types.
-- Implemented multiple Messages resources. Each daemon has
- its own message resource, which defaults if not defined.
- Jobs may now have different message handlers.
-- Cleaned up a bit of duplicate code in backup, verify, and
- restore by creating appropriate subroutines in job.c
-- Added Type, Client, FileSet, and Level resource record
- definitions to the Director. These can be used in place
- of the Backup = ..., Verify = ..., ... commands. This needs
- documenting.
-- Corrected an incorrect message in the prune code and added
- the number of Files pruned in the message.
-- Corrected several paint problems with gnome-console.
-- Added a bit of printout in signal handler during traceback.
-- Cleaned up most of sm_check() to be turned on/off by define
- in version.h
-
-===========================================================================
-2002-05-10 Release 1.19
-- Allow the user to select a new period for pruning.
-- Lots of additions to the manual -- prune and purge
- commands documented.
-- Applied Phil's configure.in fix for --prefix, ...
-- Fixed bug found by Phil (patch supplied) in updating
- MD5 signatures (revert to 32 bit FileId, move "static"
- variables into JCR) (catreq.c fd-cmds.c).
-- Reverted to using INTEGER for FileId in make_sql_tables
- due to a bug in MySQL.
-- Change editing code to %d for FileId.
-- Remove sqlite in make distclean in cats directory.
-- Remove console.conf in console during make distclean.
-- Remove gnome-console.conf during make distclean.
-- Remove bacula-dir.conf during make distclean.
-- Set default level when using Console if none specified.
- Bug reported by Phil.
-- A simple . command from Console is ignored.
-- Change program named from filed to bacual-fd in winmain.cpp
-- Change default config file for Win32 in winmain.cpp
-- Free namebuf on early return from find_one.c. Bug reported by Phil.
-- Modify testfind.c to dump orphaned buffers.
-- Removed terabytes from parse_conf.c because of problems with
- older gcc compilers.
-- Turn off gnome options in gnome-console by constructing empty argv.
-- Fixes to Verify when only MD5 differs.
-- Insert 0 for MD5 as default rather than space.
-- Allow .messages "transparent" command while reading input
- in UserAgent server.
-- In dird/verify.c ensure that correct filename is printed if only
- the MD5 differs. Minor reindenting caused large diff.
-- Delete unused code from backup.c
-- In filed/verify.c ensure that same algorithm as backup.c is used
- to pass back MD5 signatures -- especially for directories and files
- that cannot be read. Change dummy filename from X to *MD5-id*.
- This dummy value should never be printed.
-- Make gnome-console poll Director every 5 seconds for output.
- This means that queued up messages are displayed at reasonable
- intervals. Delete some unused code hanging around from the tty
- console program.
-- Begin implementation of prune commands.
-- Add command line history to gnome-console. Not yet saved across sessions.
-- Fixed some broken URLs in the manual.
-- Added JobId type.
-- Wrote first cut of "prune files" and "prune jobs".
-- Added command line history to gnome-console 2500 lines max.
-- Widened store_time() and associated variables to 64 bits using
- new btime_t definition.
-- Removed GNOME about box and replaced it with
- a somewhat crude Gtk+ about box in the gnome-console.
-- Widened StartDay in the Job DB record to be 64 bits.
-- Changed edit_uint_ to edit_uint64_ everywhere. Much more
- descriptive of what is done.
-- Removed most llds and replaced them with %s and edit_uint64.
- This makes the code a bit easier to read for beginners.
-- Added a btime_t typedef which is 64 bits wide.
-- Added most of the code needed to do Purge and Prune of
- database. Not yet tested. Please do not use.
-- Additional config options for Console.
-- Started adding code for Automatic Recycling of Volumes.
-- Allow arbitrary length filenames in Verify code.
-- Fix incorrect filename in Verify code.
-- Significant enhancement to number scanning in config parser.
-- Requires initializing MySQL tables, or applying cats/alter.sql
- to modify Media table.
-- Modified Makefile to printer a much more visible
- message if the make ends in error.
-- Added the Purge value to the VolStatus in the Media table.
- This value is set if the Volume is purged.
-- Enhanced the db_delete_media_record() routine to delete
- all associated records in the database.
-- Modified Console to always write to the variable "output"
- rather than stdout. This will permit directing output to a file.
-- Enhanced the Console configuration file to have a Console
- resource. This will allow us to add an rcfile and history file.
-- Modified Find_next_vol in catreq.c to search for "Recycle"
- volumes if there are none marked Append. Also made Get_Vol_info
- return the VolStatus to the Storage daemon.
-- Allow upper/lower case match on job level names.
-- Added another warning message to the Console "delete media" command.
-- Corrected a number of FileId types from uint64_t to FileId_t in
- ua_retention.c.
-- In ua server close database before freeing JCR (because pointer is
- kept in ua and jcr structures).
-- parse all numbers as doubles. Do lots of checking for valid number
- formats. Allow numbers in scientific form (e.g. 1.5e+10).
-- Remove terabyte modifier as it doesn't work in some compilers.
-- Fix bug in handling some modifiers.
-- Added all necessary code for Recycle to Storage daemon. A Volume
- marked Recycle will now be overwritten.
-- Filled out the prune command a bit and did some testing.
-- Make console accept redirected input.
-- Altered the Table definitions to include Recycle,
- FileRetention, JobRetention, and AutoPrune.
-- Widened StartDay to 64 bits.
-- Use JobId_t in more places.
-- Added the new table fields to the database record definitions.
-- Changed Recycle from string to a binary quantity.
-- Added a Version table with a VersionId to detect.
- future changes in the database. This should prevent
- a Bacula from working with a database that is not in sync.
-- Modify Console to accept input from a file. This will permit
- the .read command and allow reading a .rc file.
-- Added new retention and recycle variables to the Director's configuration.
-- The UA subroutines or commands can now be called from core
- code because the output routines detect the absence of a
- UA socket and direct output to the Job.
-- Added a verbose flage to the ua packet to permit reduction of
- output while running a UA command (prune) from a Job.
-- Did a fair amount of work on the prune command. Prune Volume now works.
-- Purge Volume now works.
-- Made last changes for integrating prune and purge commands.
-- Add -ltermcap to CONS_LIBS when readline is configured.
- More work to be done to search for termcap.
-- Added cats/drop_sqlite_tables.in, which will delete the SQLite database.
-- Got CWEB working so that we can compile filesys.w and immortal.w
-- Modified depkgs to include cweb.
-- Note, CWEB is not yet used by the core Bacula code.
-- Made cats/alter.sql, which alters an old database to bring it
- up to the new format. This only works with MySQL since SQLite does
- not have the ALTER SQL command.
-- Changed the old StartDay field in the db to be JobTDate, which is
- the latest time/date in widened Unix time format that the Job ran.
- This value is used when doing pruning.
-- Added code in cats/sql.c to verify that the database internal version
- corresponds to the db version compiled in Bacula. It is set to 1 currently.
-- Lots of changes to cats to bring the SQL up to date with the new
- retention period changes.
-- Added Console command code to permit changing a Volume's retention period.
-- Removed old code that used date_encode() and replaced it with widened
- Unix time().
-- Started modifying Message resource scanner so that we can have multiple
- message resources. Much more work to be done.
-- Moved scanning for time into new library routine string_to_btime().
-
-===========================================================================
-2002-04-22 Release 1.18
-- Applied Phil's configure.in fix for --prefix, ...
-- Fixed bug found by Phil (patch supplied) in updating
- MD5 signatures (revert to 32 bit FileId, move "static"
- variables into JCR) (catreq.c fd-cmds.c).
-- Reverted to using INTEGER for FileId in make_sql_tables
- due to a bug in MySQL.
-- Change editing code to %d for FileId.
-- Remove sqlite in make distclean in cats directory.
-- Remove console.conf in console during make distclean
-- Remove gnome-console.conf during make distclean
-- Remove bacula-dir.conf during make distclean
-- Set default level when using Console if none specified.
- Bug reported by Phil.
-- A simple . command from Console is ignored.
-- Change program named from filed to bacual-fd in winmain.cpp
-- Change default config file for Win32 in winmain.cpp
-- Free namebuf on early return from find_one.c. Bug reported by
- Phil.
-- Modify testfind.c to dump orphaned buffers.
-- Removed terabytes from parse_conf.c because of problems with
- older gcc compilers.
-- Turn off gnome options in gnome-console by constructing empty
- argv.
-
-===========================================================================
-2002-04-18 Release 1.17 Kern Sibbald
-- Ensure that platforms Makefiles are called for clean
- and distclean.
-- Hide a lot of Makefile messages with @
-- Applied Phil's configure.in patch. Thanks.
-- Doc updates, many to clarify points brought up by Phil.
-- Applied Phil's make_mysql_tables.in patch. Thanks.
-- Made authenticate.c in dird test bnet_send status.
-- Make label a bit more friendly with extra info message.
-- Add level 200 to debug info in run command.
-- Remove old code from findlib/testfind.c so that it compiles.
-- Add two minute max wait to cram-md5 authentication. Hopefully,
- this will catch non-responding WinNT daemons.
-- Allow time and size modifiers to be upper or lower case.
-- Turn off old CYGWIN patch for pthread_cond_timedwait() bug that
- now causes File daemon hangs on WinNT.
-- Fix mount messages for restore. Previous updates to save
- broke the restore code.
-- By default write fixed block sizes rather than variable block
- sizes. My Sony DAT simply does not work (reread failures) with
- variable block sizes.
-- Data split across tapes was not being correctly restored
- (at least on DAT tapes).
-- Implement MaximumBlockSize and MinumBlockSize statements in
- Storage daemon so user can specify variable block sizes if
- desired.
-- Return error if block checksum error on read (previously
- ignored).
-- Fixed some error messages in bls, and in some cases exit(1)
- rather than ABORT. There remain ABORTs to be examined.
-- Made a local copy of tcpd.h and corrected the function
- prototype problem for C++.
-
-===========================================================================
-2002-04-14 First public release 1.16 Kern Sibbald
- - Many intervening changes/updates.
-
-2001-09-29 Release 1.0 Kern Sibbald
- - Fixes to problems found at John's installation.
- - See techlogs/kes25Sep01 for details
-
-2001-09-25 Release 1.0 Kern Sibbald
- - Helped John install at his site.
- He is backing up one Linux machine and
- one Win2000 machine.
-
-2001-mm-dd Many releases
- - Released internally.
-
-2000-04-09 Release 0.4 Kern Sibbald
- - Added a lot of Director configuration code. In
- part (a small part), the Director now uses the
- bacula.conf file to know what to do. There still
- remains a lot to do.
- - The file search code is now integrated into the
- MySQL database routines, and Bacula is now hooked
- into the MySQL database (if so configured). Thus
- all the database records are being created, though
- there still remains some work in getting all the
- details into the records (such as the Storage
- coordinates).
- - I've defined how Volume pools work (see manual).
- - I've defined error message handling though no code
- is yet written.
- - The following resources and records are implemented
- in the Director configuration file (bacula.conf):
-
- Director
- Name (passed to Storage daemon)
- Client
- Name, Address, Port
- Password (not yet used)
- Storage
- Name, Address, Port, Password, MediaType
- Job
- Name
- Type (not yet used)
- Backup (only one permitted)
- Client, FileSet
- Storage
- Schedule, Messages, Pool (not used)
- FileSet
- Name
- Include (options ignored)
- Exclude (no options)
- Schedule (not used)
- Name
- Messages (not used)
- Name
- Debug, syslog, mail, append (not used)
- Catalog
- Name
- Address, Port, Password (not used)
- Pool (not used)
- Name
- PoolType, MediaType (not used)
-
- - Added Storage configuration routines.
- Director
- Name, password (verified against those sent by Director)
- Storage
- Name, Address, Port (address, port must correspond to Director's values)
- Password, MediaType
- Device
- Name, MediaType (must correspond to those sent by Director)
- Archive Device (defines device name)
-
-
-2000-03-10 Release 0.3 Kern Sibbald
- - Implemented new base64 encoding for attributes.
- This eliminates some of the error messages in the
- sprintfs on the Solaris due to different stat() sizes.
- - Implemented the first cut of the file search routines for
- the File daemon. The exclusion lists work including wild
- cards. There is a lot of work to be done, but the basic
- structure is now in place (wild cards do not yet work for
- the include).
- - Completed writing the memory pool code. Now I must
- implement it in the daemons.
- - Modified the bacula start/stop script so that it has a
- better chance of working on SGI and Solaris.
- - The catalog code has not been converted to the new file
- search code.
-
-2000-03-06 Release 0.2 Kern Sibbald
- - Integrated John's fixes.
- - Made Makefiles self configuring when Makefile.in is changed.
- - Added a runit script in the top level that runs bacula
- - Added a "bacula" script in the top level directory that
- starts and stops the File daemon and the Storage daemon.
-
-2000-03-03 Release 0.1 Kern Sibbald
- - Basic Director, File, and Storage daemons.
- Standalone Catalog services using MySQL
-2000-01-22 Kern Sibbald
- * Setup basic file structure with ./configure
+Release Version 3.0.2:
+16Jul09
+ebl Fix #1323 about a problem when mounting a requested volume
+ during a restore.
+15Jul09
+kes Add more example SD Device configurations.
+ebl Force the client_encoding to SQL_ASCII when database is already
+ using this mode.
+ebl Fix #1335 about postgresql error message during copy session
+ebl Cleanup old job records when starting the director
+ (Created/Running -> Failed)
+14Jul09
+kes Apply patch in bug #1315 by McMichaeli that fixes scripts/logwatch
+kes Add more output when spooling and no space left
+ebl Fix postgresql driver bug that displayed <NULL> rows from time to time.
+ebl Implement the project 'restore' menu: enter a JobId, automatically
+ select dependents
+ebl Should fix #1323 about verify accurate jobs and deleted files.
+13Jul09
+kes Send bootstrap directly from DIR to SD
+kes Create build scripts for Win64 somewhat equilavent to the Win32 ones.
+10Jul09
+ebl Print correct JobId in bls, should fix #1331
+kes Apply python detect patch from Bastian Friedrich <bastian.friedrich@collax.com>
+09Jul09
+kes Add --with-hostname to ./configure
+mvw Changed ACL_OTHER into ACL_OTHER_OBJ as IRIX doesn't seem to have
+ ACL_OTHER. Fixes bug #1333
+03Jul09
+ebl Should fix the first part #1323 about the restore option
+ 'List Jobs where a given File is saved' wich display deleted files
+02Jul09
+ebl Make estimate command accurate compatible. Should fix #1318
+ebl Add estimate accurate=yes/no
+01Jul09
+kes Fix bug #1317 Allow duplicate jobs = no does not work
+28Jun09
+mvw Fix missing case for NetBSD xattr restores.
+25Jun09
+kes Modify xattr.c and acl.c not to fail the job on errors. This should
+ fix bug #1305.
+23Jun09
+mvw Fix 2 rather big bugs in the xattr and acl code and fix a small
+ memory leak on a particular code path for Linux xattr/acl handling.
+ebl Update FileSetId when initializing job.
+ebl Add '*' when volume is online when displaying volume list in restore.
+ Should complete project 31.
+21Jun09
+kes Re-fix bug #1311 if MaxDiffInterval exceeded ensure job upgraded
+17Jun09
+kes Fix bug #1305 make errors obtaining acl during backup non-fatal
+kes Fix bug #1309 inappropriate error message during btape fill command
+kes Fix bug #1307 AllowHigherDuplicates=no prevents automatic job escalation
+12Jun09
+kes Remove non-portable code referencing pthread_t fixes bug #1308.
+kes Create patch that may fix bug #1298 and bug #1304, which causes
+ an SD crash after canceling a job.
+08Jun09
+kes Attempt to get bat conf file installation to work with DESTDIR
+05uun09
+kes Improve error messages when a migration sql query is used and correct
+ the problem identified in bug #1303 with starting Job names
+ containing spaces.
+ebl Fix #1306 about a problem when building the static bconsole
+26May09
+ebl Apply Steve Polyack patch to add DirSourceAddress and FDSourceAddress
+ directives. That permits to choose the outgoing interface.
+25May09
+mvw Allow acl and xattr to be explicitly enabled and fail the configure
+ if we are asked to enable acl or xattr support and the OS doesn't support
+ acls or xattrs.
+23May09
+kes Create Client record in database at startup -- makes bat work better.
+kes When doing a tree selection restore, look at the PurgedFiles column
+ in the first JobId, and if non-zero, the Job was purged, so do
+ not do selection.
+21May09
+kes Add Catalog = all to the default Messages resource.
+19May09
+ebl Fix #1029 about IPV6/IPV4 address resolution order with help
+ of David Steinn Geirsson.
+kes During jcr destruction hold jcr_chain lock only for minimum
+ time necessary. This should fix the SD deadlock in bug #1287.
+18May09
+kes Simplify messages printed by SD when reserve fails. This
+ should fix bug #1285.
+14May09
+kes Apply fix to sql_cmds.c suggested by
+ Ulrich Leodolter <ulrich.leodolter at obvsg.at>
+ which prevents restore by file selection from using
+ Copy jobs.
+kes Add new nagios_plugin_check_bacula.tgz from
+ Masopust, Christian <christian.masopust at siemens.com>
+kes Add bconsole @help command
+kes Fix Show FileSet command to handle spaces
+04May09
+kes Add --with-bsrdir and --with-logdir for placement of Bacula bsr
+ files and Bacula log files.
+
+
+Release Version 3.0.1:
+29Apr09
+kes Fix bug #1282 Setting job.Priority in python crashes director by
+ checking if string addr is NULL. Not tested.
+kes Fix bug #1281 allow all on restore command line to restore
+ pruned JobIds without prompting.
+28Apr09
+dirk Correct bat Select dialog. Fixes bug #1276.
+kes Check for job_canceled() in fd_plugin code.
+kes Update Win32 table creation to have new DB version 11 format
+kes Remove illegal Options in Exclude of default Win32/64 bacula-dir.conf
+27Apr09
+ebl Fix bug #1274 where a migration job can be canceled like the
+ original job by the MaxRunTime directive.
+mvw Added fix for bug #1275 where acl or xattr data is saved for
+ virtual filenames generated by filed plugins.
+26Apr09
+ebl Remove "Reposition" message when restoring
+kes Fix platform scripts not to clean configured files during
+ 'make clean' use 'make distclean' to clean everything. Fixes
+ bug #1272.
+kes Update projects file
+21Apr09
+ebl Tweak version string to display versionid field at the end
+ and keep fields order.
+16Apr09
+kes Add additional mysql connection debug code submitted by:
+ Chandranshu <chandranshu@gmail.com>
+14Apr09
+kes Fix bug #1246 Sometimes access denied with VSS enabled. UCS
+ conversion cache was not properly flushed at the end of a Job.
+kes Fix bug #1268 Full Max Run Time cancels jobs (when Max Run Time = 0).
+11Apr09
+kes Modify insertion of read Volumes in SD to be done before the
+ drive reservation. This ensures that a Volume to be read will not
+ be reserved for writing. Significant enhancement.
+
+
+Release Version 3.0.0:
+05Apr09
+kes Fix Win32 make clean to clean correctly
+kes Cleanup Win installer dialog messages a bit ...
+04Apr09
+kes Separate object/binaries in Win32 and Win64 builds. More to be done.
+kes Add bconsole to Win64 installer.
+03Apr09
+kes Implement more automatic build of Win64 client. Note, there are still
+ lots of warning messages, but it seems to build a correct binary.
+02Apr09
+kes Enhance Job messages from SD when the FD->SD protocol is incorrect
+ and the SD hangs up. Previously this looked like a comm error.
+mvw Fixed problem in xattr and acl code trying to send empty acl or xattr
+ streams.
+mvw Fix for bug #1261 where we send out a null stream when a file only an
+ acl and xattr support is also turned on.
+mvw Added some warnings to configure when using libtool and static in
+ one configure.
+30Mar09
+ebl Fix small memory leak in fileregexp bsr code
+29Mar09
+kes Correct bacula32.def entry point as specified by James.
+kes Add code to FD plugin driver to make a copy of the plugin
+ filename to be saved to avoid save_file from zaping it.
+28Mar09
+kes Directly mark all files saved by plugin as being seen for Accurate.
+kes Add checks on the plugin version and the plugin license. Currently
+ only implemented for FD plugins.
+kes Add installation of /usr/share/doc/bacula
+kes Modify plugin checkFile to return bRC_Seen to cause file
+ to remain. Previously was true/false.
+27Mar09
+kes Implement installation of bat help files
+ The help files are installed in the htmldoc dir and can be set
+ by --htmldoc=xxx on the ./configure. Default is:
+ /usr/share/doc/bacula/html
+kes Update projects file
+kes Apply patch from Pasi Karkkainen <pasik@iki.fi> that adds
+ Previous Job name to migrate job report.
+26Mar09
+kes Apply bacula-autoconf-db-m4.patch from Kjetil Torgrim Homme
+ <kjetilho@linpro.no> that doesn't *require* the static libraries
+ for the SQL database engine. Fixes a build problem if the static
+ libraries are not loaded.
+25Mar09
+ebl Update Makefiles to compile win64 using make WIN64=yes
+kes Disable plugin options in ua_run.c
+kes Added the following to provide solutions to the plugin/Accurate
+ problem -- bug #1236 Cannot restore incremental backups with
+ the Exchange plugin.
+ - New Bacula read-only variable bVarAccurate -- returns accurate flag
+ - New Bacula write-only variable bVarFileSeen -- marks a file as seen
+ - New plugin entry point -- checkFile that is called at the end
+ of an Accurate job and allows the plugin to mark a file as seen.
+24Mar09
+kes Temporarly turn off comm timers because it causes bat to seg fault.
+ Must research making SIGUSR2 work with bat and Qt.
+24Mar09
+ebl Use MTIMEONLY fileset option in accurate check
+23Mar09
+ebl Tweak code to compile win64 version with mingw
+21Mar09
+Kes Attempt to correct timing problems with starting bat and obtaining
+ lists. Maintain in_command counter to know when a list is coming.
+20Mar09
+kes Convert seconds.seq separator into seconds_seq so that Bacula
+ editing of the Job name from the full Job name works. This fixes
+ bug #1255 'variable %n changed'.
+kes Second half of proposed fix for bug #1227 that does not
+ mark virtual volumes for unloading.
+kes Proposed fix for bug #1227 Job and labeling new tape.
+
+Beta Release 2.5.42-b2
+16Mar09
+kes Increase timeout for unmounting DVD as suggested by reporter
+ of bug #1250.
+15Mar09
+jh Fix by James Harper to print error code when attempting to
+ restore two databases (only one is permitted). This responds
+ to bug #1234.
+kes Apply the nodump patch supplied by Frank Kardel that fixes
+ the NODUMP flag problem. This fixes bug #1221
+kes Add more output if a user attempts to clone a job but does not
+ uniquely specify the Job name. This responds to bug #1248 which
+ was not a bug, but improves user feedback.
+14Mar09
+kes Fix problems with bug #1247 and 64 bit time_t OSes by not
+ editing (printf) time_t values.
+12Mar09
+kes Install bacula (start/stop script) in sbindir in addition to
+ scripts dir.
+ebl Tweak configure to remove bash specific code
+ebl Remove TCABD reference
+11Mar09
+ebl Free lock manager in when btape exits
+09Mar09
+kes Apply patch from bug #1224, which fixes waiting on max Storage
+ jobs during migration. Submitted by Alexandre Simon.
+kes On 03Mar08 (a year ago) applied patch from bug #1059 (kardel)
+ to implement the NODUMP flag on FreeBSD.
+07Mar09
+kes When deleting a Volume by MediaId require the Id to be
+ prefixed by a * to avoid confusing with an integer volume
+ name.
+kes Prevent bls from printing binary data when a plugin stream
+ encountered. This fixes bug #1238
+kes Prepare to add JS_Warnings termination status.
+kes Attempt to resolve bwx-console Win32 crash. Not likely to
+ work.
+06Mar09
+kes Move src/win32/dll to src/win32/lib, which is much more logical.
+kes Fix the Win32 build.
+kes Fix broken casting in src/compat/print.cpp.
+kes Eliminate jcr Errors and always use jcr JobErrors. This should
+ ensure that SD and FD errors are correctly reported. Also add
+ JobErrors to SD returned values. This should fix bug #1242.
+28Feb09
+mvw Implemented xattr support for Solaris 9 and above and extensible
+ attributes for OpenSolaris.
+mvw Added some limits to the xattr code so that we don't blow up the
+ filed on big xattrs.
+mvw Fixed some comments which changed due to xattrs being implemented.
+mvw Changed xattr support checking in configure to test first for
+ generic solutions and when not found for specific OS functions.
+25Feb09
+mvw Don't try to copy empty jobs (e.g. with jobbytes == 0)
+ which gives Unable to get Job Volume Parameters errors.
+ Which leads to copying the same job over and over again.
+21Feb09
+kes Ensure that src/qt-console/.libs is cleaned properly
+20Feb09
+mvw Use acl_data_len instead of seperate var for length
+ of acl stream.
+ebl Add database update scripts to updatedb dir
+19Feb09
+ebl Fix #1226 about bconsole segfault when using readline()
+18Feb09
+kes Apply Eric's next-beta.patch that enables 64 bit FileIds and
+ adds new columns to the catalog.
+kes Ensure that libtool directory always cleaned + reduce
+ unnecessary output during make clean.
+15Feb09
+ebl Check postgresql database encoding that should be SQL_ASCII
+ and print a warning if it's something else.
+08Feb09
+kes Free name item in guid_to_name.c when already in list.
+kes Add more info to error message in ua_tree.c
+05Feb09
+kes Make re-read last block fatal if block numbers differ by
+ more than one.
+30Jan09
+ebl Try to disable _FORTIFY_SOURCE by default
+29Jan09
+ebl Tweak compat.h for new mingw
+28Jan09
+ebl Add new ScratchPool directive to Pool. Thanks to Graham
+ebl Turn on db_get_file_list() single SQL because the failure
+ was due to a full FS. And the accurate test fails with the
+ other code.
+27Jan09
+ebl Fix a bug that doesn't update RecyclePool all the time
+ during the first startup.
+25Jan09
+kes Turn off db_get_file_list() giant SQL because if fails on
+ my production machine.
+kes Fix bat.pro.in so that bat is properly installed rather
+ than just copied.
+24Jan09
+kes Modify search for .conf file so that if one is given on
+ the command line, it will be used, otherwise it will use
+ the SYSCONF directory. It will no longer look in the current
+ directory unless explicitly requested on the command line.
+ This fixes bug #1189.
+kes Fail a job that references a plugin if no Plugin Directory is
+ defined.
+22Jan09
+kes Fix bug #1211 crash during reload with bad dird.conf file.
+21Jan09
+ebl Add detection of intptr_t and uintptr_t to configure process
+20Jan09
+ebl Change some cast to use intptr_t instead of long
+18Jan09
+kes Apply acl_solaris_update.patch submitted by Marco (thanks).
+kes Remove configure check for resolv.h -- it is apparently not needed
+ and causes build warnings on FreeBSD.
+kes Ensure that the installer and newinstaller Makefiles are called
+ during a make clean.
+12Jan09
+kes Apply Eric's fix for suppressing extended attributes error messages
+ when dealing with deleted files.
+11Jan09
+kes Add src/win32/newinstaller -- single file installer
+kes Attempt to explicitly call gmake when needed, or if not found
+ skip the calls. This should fix the FreeBSD regression/build.
+10Jan09
+kes Fix bat.pro.in so that bat will install.
+09Jan09
+kes Add more debug output to VSS init.
+kes Attempt to correct win32 debug in berrno.
+09Jan09
+kes Fix bug reported by Dan where make fails in clean of src/win32.
+07Jan09
+kes Fix bug #1212, SD is unable to recycle purged volumes. fstat()
+ was broken.
+06Jan09
+ebl Despool attributes directly from the director if attribute
+ spool file is present
+Beta Release 2.5.28-b1
+05Jan09
+kes Fix bat install broken by $DESTDIR change.
+02Jan09
+kes Fix annoying compiler warnings in console/conio.c
+kes Fix win32 build (depended whether or not ./configure was run).
+28Dec08
+kes Apply fix suggested by Bruno Friedmann to configure.in to
+ find python2.5
+26Dec08
+kes Turn on Eric's match_bsr tape block checking code.
+kes Correct values used for tape block numbers in record.c.
+23Dec08
+ebl Fix a problem with PoolUncopiedJobs option which was broken
+ by the new JT_JOB_COPY type.
+kes Fix bug #1206 -- Error: sql_update.c:194, which was probably
+ caused by the user modifying the Bacula DB schema.
+kes Remove rogue line of C code.
+kes Fix bug #1208
+
+Beta Release 2.5.28-b1
+02Jan09
+kes Fix annoying compiler warnings in console/conio.c
+kes Fix win32 build (depended whether or not ./configure was run).
+28Dec08
+kes Apply fix suggested by Bruno Friedmann to configure.in to
+ find python2.5
+26Dec08
+kes Turn on Eric's match_bsr tape block checking code.
+kes Correct values used for tape block numbers in record.c.
+23Dec08
+ebl Fix a problem with PoolUncopiedJobs option which was broken
+ by the new JT_JOB_COPY type.
+kes Fix bug #1206 -- Error: sql_update.c:194, which was probably
+ caused by the user modifying the Bacula DB schema.
+kes Remove rogue line of C code.
+kes Fix bug #1208
+
+Beta Release Version 2.5.26
+20Dec08
+kes Correct typo in Win32 Makefile editing
+kes Correct typos in debug output.
+kes Improved error detection in creating bsrs.
+kes Add debug code to Win32 restore
+19Dec08
+kes Fix Win32 build.
+ebl Cleanup director VolParam struct
+18Dec08
+ebl Replace File:Block in BSR by Address to fix #1190
+16Dec08
+kes Correct missing return in Darwin code.
+15Dec08
+ebl Copy joblog after a Copy job
+14Dec08
+kes Tweak block.c read to more closely simulate write for computing
+ block addresses and turn on disk block testing.
+kes Implement a crude 'list joblog' mostly for debugging.
+13Dec08
+kes Fix Migration bug #1206 sql error with NULL FileSetId when no jobs
+ to migrate.
+kes Fix Migration JobLog bug #1171. Get the JobIds correct.
+12Dec08
+ebl Fix segfault in bscan when using debug mode
+11Dec08
+kes Fix configure to do minimum Win32 configure so that make clean
+ works.
+kes Tweak modify FD header to use %ld instead of %d.
+kes Remove hand scanning of FD header in SD and use Bacula's
+ sscanf, which is now OS independent.
+kes Define new object (file/dir) begin and end Volume label records
+ in SD.
+kes Use new method of defining XATTR #defines to avoid need for having
+ them in config.h.in
+10Dec08
+ebl Rename all STREAM_ACL_..._T into STREAM_ACL_..
+09Dec08
+ebl Add a new lock manager that can detect deadlock situation
+ This new option is activated with a --enable-lockmgr configure
+ option.
+ebl Add new Director->MaxConsoleConnections directive
+03Dec08
+ebl Fix bacula-sd hanging after tape gets full + unload
+02Dec08
+ebl Remove extra db_lock() in get_prune_list_for_volume()
+ebl Apply 2.4.3-prune-deadlock.patch that fixes a problem when
+ using Catalog as message backend.
+01Dec08
+kes Apply Marco's Darwin xattr patches.
+28Nov08
+kes Fix Win32 build.
+26Nov08
+kes Apply Marco's Extended attribute support patch.
+kes Update projects file
+25Nov08
+kes More changes to ensure that during thread switches the jcr
+ is removed from the TSD.
+kes Ensure that consoles attach jcr to thread, and that only the
+ thread attached is removed from the TSD.
+24Nov08
+kes Move definition of FileId_t to bc_types and define it once in the jcr.
+22Nov08
+kes Remove all time_t from arguments in favor of utime_t, which is
+ machine independent.
+kes Add more debug to match_bsr.c and use %u for unsigned debug editing.
+20Nov08
+ebl Apply patch for bug #1182 about Recycle flag
+ that is not updated after a pool change.
+kes Since the user has been warned, allow console purge command
+ to purge volumes that are in use.
+kes Fix Win32 build to add new sd_plugins.c
+ebl Apply patch from bug #1175 that reset the Slot and the Inchanger
+ flag in db_make_inchanger_unique().
+ebl Remove a Emsg() after recieving a Fatal signal that can lock
+ the catalog.
+19Nov08
+kes Apply patch from bug #1187. It prints an error message if the
+ Maximum Block Size in the SD is too big.
+kes Increase Maximum Block Size to 2,000,000 bytes.
+kes Use doubly linked bsr list so that consumed bsrs may be
+ removed. Removing not yet implemented.
+18Nov08
+kes Implement a fix that very likely fixes the undesired volume
+ purge reported by Graham Keeling.
+kes Implement bsr block level checking for disk files. However,
+ it does not work correctly in accurate tests, and all the
+ migration and copy tests, so it is turned off.
+ebl Make SD plugins work.
+14Nov08
+ebl Apply Riccardo's patch to compile bacula+mysql on mandriva
+13Nov08
+ebl Add more variables accessible through the director plugin
+ interface.
+12Nov08
+ebl Do work on plugins
+ - fix compilation of the director plugins
+ - add plugin list to status dir output
+ - add director plugin dump after a fatal signal
+ebl Apply Riccardo's patch that fix some win32 compilation errors
+ and a bug with bat version browser.
+11Nov08
+ebl Add Plugin debug after a fatal signal.
+ebl Add db and rwlock debug after a fatal signal.
+10Nov08
+ebl Fix maxwaittime to fit documentation, this time is now counted
+ from the job start and group all wait periods.
+ebl Add tips for postgresql to improve performance when having
+ multiple batch insert at the same time.
+09Nov08
+ebl Remove extra debug for db lock.
+07Nov08
+kes Apply Riccardo's second patch that cleans up the #include
+ file order + a few Win32 particularities to make bat work
+ on Win32.
+ebl Add allow_transactions flag to mysql db backend.
+kes Apply win32-fixes patch from Riccardo that makes the Win32
+ bat more stable and faster (but still slow).
+06Nov08
+kes Fix bug with job name duplication if more than 60 jobs created
+ during a minute.
+kes Correct some bugs of cleanup in SD if the FD connection fails.
+ebl Add code to get more information after a fatal signal.
+05Nov08
+ebl Apply Bastian's patch that add spooldata=yes|no option
+ to run command.
+04Nov08
+ebl Fix bash shell to sh shell in database creation script
+02Nov08
+kes Fix orphaned jobs (possible deadlock) while pruning.
+kes Use jcr stored in bsock rather than searching in getmsg.c.
+ This results in about a 5% speed improvement with four
+ concurrent jobs.
+kes Implement win32_chmod that uses wide characters, if possible,
+ to get and set the file attributes.
+29Oct08
+kes Apply pane freezing during updates patch from Riccardo Ghetta.
+kes Rework next_vol and autoprune a bit due to failure in
+ recycle-test. prune_volumes() now returns no status,
+ but should prune at least one Volume, if possible.
+kes Modify check_if_volume_valid_or_recyclable to reject a
+ volume with Recycle set off.
+kes Modify prune_volumes() to continue if volume Recycle is off
+ or if the volume has expired. Add more debug.
+28Oct08
+kes Fix bug #1046 VolumeToCatalog incorrectly reports mounted
+ filesystems as missing on the Volume.
+kes Rewrite the set_jcr_job_status() code to include job status
+ priorities so that more important status changes occur but
+ lower priority status changes will not overwrite something
+ more serious. This could possibly cause reporting incorrect status
+ reporting in some cases. More testing is needed to ensure
+ I have the right priorities. This vastly simplifies the previous
+ contorted logic.
+ Verify Diff status should now be correctly reported, whereas it
+ was previously lost.
+kes Reduce some debug output.
+kes Apply Joao's patch to SQLite tables to make chars work.
+27Oct08
+ebl Fix #1175 About update slots that don't reset InChanger flag when
+ slot is empty.
+ebl Fix #1173 where prune_volume() returns a volume from the scratch.
+25Oct08
+kes Remove jobq.c constraint that read and write SD must be
+ different. This may lead to more deadlocks in the SD,
+ but they should be resolved there.
+kes Ensure that job report is always printed even if job is failed
+ in the director.
+kes Don't print job report twice for failed VBackup jobs.
+24Oct08
+kes Fix editing of retention time difference to use 64 bit
+ int instead of 64 bit unsigned. This should permit very
+ long retention periods.
+kes Implement code to prohibit a write job from appending to a
+ Volume that will be used for a read operation. This is
+ new code and could possibly cause some conflicts.
+23Oct08
+kes Integrate James Harper's Exchange Win32 plugin patch.
+kes Apply patch from Marco van Wieringen that implements the new
+ Solaris libsec interface for ACLs so that Bacula can save and
+ restore both the new ACLs and old ACLs.
+kes Marco's patch also corrects the file dependency generation code
+ so that it works properly both with shared libraries and static
+ libraries.
+kes Marco's patch also includes a small cleanup of the cats Makefile
+ to remove some references to non-existent files.
+22Oct08
+kes Modify win32 Makefiles to use full paths in most cases.
+ In particular add MAINDIR environment variable that points
+ to the main Bacula source directory.
+21Oct08
+kes Add read volume list code to SD -- not yet used.
+kes Add James' binutils patch
+kes Split volume management code out of src/stored/reserve.c into
+ a new file vol_mgr.c
+kes Modify configure to do an automatic make clean. This ensures
+ that any changes to ./configure options are handled correctly.
+
+Beta Release Version 2.5.16
+19Oct08
+kes Add Makefile dependency when using LIBTOOL_LINK so that any
+ change in ./configure options will be accounted for.
+18Oct08
+kes Fix typo in the ACL patch that I overlooked.
+kes Apply Marco's libtool include patch.
+17Oct08
+kes Apply Bastian Friedrich's ACL patch to eliminate ACL
+ errors during restore.
+kes Minor cleanup of create_restore_volume_list() code.
+kes Fix typo in console Makefile.in
+16Oct08
+ebl Fix #1110 about RunScript that can't execute a script with
+ Unicode caracters in the path.
+15Oct08
+kes Apply tray-monitor patch from Bastian Friedrich to make it
+ work with the new FD.
+14Oct08
+kes Apply cleanup patch from Marco
+kes Apply patch from Marco van Wieringen <mvw@planets.elm.net>
+ that implements libtool to create shared objects out of
+ the Bacula libraries.
+kes Fix tray-monitor so it will speak to new FD.
+ebl Fix bug with ansi label when volume name length < 6
+ebl Fix segfault in debug level > 50 with btape.
+ebl Remove warning message in btape when command is empty.
+kes Fix Win32 build to pull in new BACULA define.
+13Oct08
+kes Change IncludeDir to Exclude Dir Containing.
+kes Implement code to prohibit ExcludeDirContaining in an
+ Exclude section (same for Plugin and Options). A bit
+ of a kludge with RES_ITEM2 ...
+ebl Add field to command list to restrict Runscript console
+ command.
+ebl Use a separate JCR when running Console command with Runscript.
+ebl Permit to mark version as Beta in some ouputs
+11Oct08
+kes Add plugin types in jcr.h to reduce need to cast.
+kes Do better checking of plugin return values.
+kes Free plugin context after calling pluginFree() as
+ requested by James.
+kes Allow plugin to call JobMessage with NULL context.
+kes Do not add plugin to global list if loadPlugin returns error.
+kes Rework plugin.h a bit to reduce dependence on Bacula.
+10Oct08
+kes Move generation of bsr file for Virtual Backup to run section
+ so that it is generated just before actually running.
+ Suggested by Graham Keeling.
+09Oct08
+kes Add malloc and free Bacula entry points for plugins. Increment
+ FD plugin interface version. Create a bacula plugin context
+ structure to keep track of whether or not the plugin is disabled.
+kes Apply FileIndex fix for plugin name stream suggested by James.
+kes List plugins in FD status report when debug > 0.
+08Oct08
+ebl Add a new VerId variable that is printed in version command.
+kes Fix migration SQL not to migrate a job that has not terminated.
+ This is a partial fix to bug #1164.
+kes Sort JobIds returned from db_accurate_get_jobids() to fix Virtual
+ backup start time bug reported by Graham Keeling.
+08Oct08
+ebl Fix possible bug in cancel_job() with job that are not
+ yet created.
+07Oct08
+kes Fix bat build for Win32.
+06Oct08
+kes Copy plugin link field into ffpkt.
+05Oct08
+kes Integrate patch from Kjetil Torgrim Homme <kjetilho@linpro.no>
+ It provides FileRegex in bsr files and code to collect regex
+ from the user during restore, an Allow Mixed Priorities feature,
+ and documentation for the above.
+ebl Remove db berkeley from configure process
+kes Do dirty check on hostname (Linux only) and if not resolvable
+ use localhost as default.
+kes Increase vtape max block to 20GB.
+04Oct08
+kes Refactor restore code to create a close_previous_stream(). This
+ This may destabilize the source.
+kes Implement planned startRestoreFile() plugin call.
+ebl Remove missing Loaded information from status slots storage command.
+ebl Fix Console command problem that cancels the job
+kes Add more plugin restore debug code.
+03Oct08
+kes Fix plugin_bwrite - plugin-blseek mixup pointed out by James.
+kes Rewrite plugin restore interface a bit to correspond to how Bacula
+ creates and writes to the restored file.
+kes Add some DebugMessage() calls to the bpipe-fd.c program.
+30Sep08
+kes Apply Marco van Wieringen's set of patches, cleans up Migration/Copy
+ Implement 'Pool Uncopied Jobs', allow Solaris Compiler to build
+ Bat; allow add and delete in place of mark and unmark.
+kes Another attempt to fix the endRestoreFile plugin bug noted below.
+29Sep08
+kes Apply dbi driver patch from Joao.
+kes Correct a bug in passing the context to the endRestoreFile() plugin command.
+ Bastien Friedrich reported the bug.
+kes Create plugin instance only when FD job starts.
+kes Add new FD plugin event: bEventCancelCommand when
+ a cancel command is issued to the FD.
+28Sep08
+kes Add cmd_plugin flag to jcr so we can globally know if a
+ command plugin is running.
+kes If command plugin running, do not attempt (for the moment)
+ to get Win32 extended attributes.
+kes Ensure that proper Win32 flags are set in bfile packet
+ if plugin_bopen() works on Win32.
+kes Remove generated src/plugins/fd/Makefile
+27Sep08
+kes Implement build and install of bpipe-fd.so plugin.
+kes Rework the interface that passes packets to the plugin
+ so that the packet is started and ended by the packet size.
+ This allows the driver to do a sanity check.
+26Sep08
+kes Rework the pluginIO Bacula internal code to enable
+ proper handling of Win32 error codes from GetLastError.
+kes Apply Joao's patch to regress startover_libdbi.
+25Sep08
+ebl Add -B option to dbcheck to get catalog information
+kes Fix Win32 build to include new library function.
+kes Remove some old reader/writer code.
+kes Implement ./configure --with-plugindir=xxx
+ebl Fix the mysql bug in the new accurate code
+kes Improve plugin debug. Create plugin test.
+kes Set main thread specific data to INVALID because it
+ has no jcr. This allows debug output to work correctly.
+kes Add src/plugins/fd/Makefile to ./configure process.
+kes Make first cut attempt to correct SQL that computes the current
+ Pool usage. This is to fix bug #1159.
+kes Do a bunch of plugin cleanups for Win32 and more careful checking
+ of PluginDirectory and whether or not a plugin was found.
+24Sep08
+kes This code should fix the race condition that leads to a Director
+ crash at job end time when the job list is updated. This was reported
+ in bug #1162.
+kes Add more plugin documentation and fix include of config.h for
+ Win32 build (I hope).
+22Sep08
+ebl Revert to htable instead of rblist
+ebl Cleanup accurate code (remove tcdbm parts) and use red/black
+ tree instead of htable.
+ebl Use a dedicate DB link to compute and send the accurate list
+ file to the client.
+21Sep08
+kes Fix compile errors in filed/fd_plugin.c.
+20Sep08
+kes Remove all double quotes from SQLite creating script and
+ replace by single quotes as suggested by John Huttley.
+18Sep08
+kes Apply dbcheck patch from Yuri Timofeev <tim4dev@gmail.com>.
+ It significantly improves the performance of dbcheck for
+ MySQL.
+kes Fix bad debug code call in src/filed/accurate.c
+17Sep08
+kes Change two Jmsgs in accurate to Dmsg to reduce unnecessary
+ output. Perhaps we really need to implement M_SAVED.
+16Sep08
+kes Fix bug #1156 FD crash during processing of Accurate data.
+kes Tweaks to htable code to improved debugging and make names
+ a bit more meaningful.
+15Sep08
+ebl Remove time_t from update_stats()
+14Sep08
+kes Modify the license of the example plugin program to allow
+ it to be used by anyone for making a Bacula plugin.
+kes Make apply_rp_codes() in bpipe-fd.c be static.
+13Sep08
+kes Remove Encryption and Accurate lines in vbackup output -- not used.
+kes Fix subtle bug in vbackup by not changing DEV_RECORD packet.
+kes Add host name to items printed during dump.
+kes Make Check File Changes default on.
+11Sep08
+kes Set the default FD timeout to 3 minutes (previously 30).
+kes Apply Bastian Friedrich's weird spelling correction patch.
+10Sep08
+kes Always print Verify hash differences. Rename variable to make the
+ code slightly more readable.
+09Sep08
+kes Correct tests for MaxFullInterval as reported by
+ Ulrich Leodolter <ulrich.leodolter@obvsg.at>..
+kes Fix MaxDiffInterval code as well.
+kes Enable Win32 plugin load code in lib.
+kes Make Verify code that computes disk checksums use the same
+ algorithm as backup when dealing with sparse files.
+kes Attempt to run VSS on any systems newer than Vista -- should
+ make it work on Windows Server 2008.
+ebl Change the new statistic implementation. Remove the UseStatistic
+ directive and add a 'update stats [days=...]' command. You can
+ now decide when copy job records from Job table to JobStat.
+ Statistics are much more accurate with this.
+08Sep08
+kes Fix SQL case problem that may cause the failure of DiskToCatalog
+ in bug #1149.
+kes First cut adding SD plugins.
+03Sep08
+kes Add Slot if it is non-zero to writing bsr file after a
+ backup.
+kes Change a number of bnet_fsend() into class method calls.
+kes Begin audit of diff of 2.4 branch to trunk code.
+01Sep08
+ebl Fix the mysql creation script that double-created an
+ index of the same field on the Media table.
+ Add an index to on VolumeName to the Media table for mysql.
+30Aug08
+kes Another try at fixing Vbackup. It looks much better this time.
+ Disable file index sanity check in FD with value stored in
+ attributes record because with Vbackup the File Index gets
+ changed, but not the attributes record.
+ Enhance some debug code.
+ Fix handling of re-indexing records that are copied in Vbackup.
+29Aug08
+kes Made level_to_str() know about Virtual backup.
+kes Set correct Virtual backup write pool.
+kes Fix compile warning in new dbcheck port code.
+kes Fix migration code broken by previous virtual backup fix.
+28Aug08
+kes Fix problem of Virtual backup not writing a sequential FileIndex.
+kes Reset Virtual backup time/date to the value from the last backup.
+kes Ensure that storage name is passed to SD on read.
+kes Correct a problem with Level and Virtual backup, rework how
+ bsrs are printed in debug to use standard routine.
+kes Apply patch from Chris in bug #1133 that provides alternate db port
+ support for dbcheck.
+ebl Remove catalog dependency from bcopy tool.
+ebl Modify catalog scripts to have an easier packaging integration,
+ using default variables.
+ Make difference between SQLite3 and SQLite in db_get_type()
+27Aug08
+kes Apply most of changes in a patch from:
+ Michael Stapelberg <michael+bacula@stapelberg.de>
+ that allow the Bacula FD to compile on IRIX 6.5.
+26Aug08
+kes Apply patch from Bastian Friedrich that accepts a yes on a
+ delete volume command line.
+kes Attempt to fix bug #1128 InChanger flag cleared during Migration
+ job when reading from one autochanger and writing to another.
+kes Minor tweaks (copyright dates convert to use method instead of bnet).
+21Aug08
+kes Fix NULL Volume error when reading (or Migration or VBackup) must switch
+ drives when no tape is mounted.
+18Aug08
+kes Add additional info to some SD messages.
+kes Add fix supplied by Martin Simmons for turning off EOL character
+ in new console multi-command code.
+14Aug08
+kes Fix a Verify InitCatalog problem where in certain cases
+ a garbage filename may be entered in the verification database. This
+ fixes bug #1143.
+13Aug08
+kes Add VSS 64 bit dll entry point in src/win32/filed/vss_generic.cpp
+ sent in by Riyas Yoosuf.
+12Aug08
+kes Fix seg fault in Dir during estimate command with no level value
+ given. This fixes bug #1140.
+08Aug08
+kes Add message to migration job when the target job is already migrated.
+ This closes bug #1129.
+30Jul08
+kes Fix Win32 build.
+kes Raise some restore debug levels.
+kes Replace off_t by boffset_t where ever I found it.
+28Jul08
+kes Define a machine dependent ioctl request type for use with
+ vtape_ioctl().
+26Jul08
+kes When a migration job actually runs, re-check the Job record
+ and skip if the job is already migrated. This should
+ significantly reduce the problems with bug #1129.
+24Jul08
+kes Set MALLOC_CHECK_=0 in environment before starting Bacula to
+ turn off glibc checks that prevent getting good dumps.
+kes Implement console 'wait mount' command. Doesn't yet work.
+kes Implement timeout=nn on console 'wait mount timeout=nn' command.
+kes Break the do_swapping into do_unload, do_swapping, and
+ do_load. It is much more logical that way.
+kes Implement a set_dcr_from_vol subroutine in acquire.c for
+ reading volumes. This allows the dcr to be refreshed after being
+ zapped when the wrong volume is mounted.
+ This should fix bug #1126 -- During multiple tape restore, bacula
+ does not ask for physical tape change, but rereads same tape
+23Jul08
+kes Apply patch submitted for bug #1107 with a small modification.
+ This fixes a bug where bcopy copied too many records.
+kes Make some tweaks to bsmtp based on patch submitted in bug #1124.
+ This fixes bug #1124.
+kes Make the default bat restore Pool be Any. This fixes bug #1118.
+22Jul08
+kes Remove debug statement that crashes the SD at the end of
+ a tape during restore. Fixes bug #1125.
+21Jul08
+kes Implement Win32 bat changes made to Branch-2.4
+20Jul08
+kes Tweak separator command in console to start disabled and
+ allow defining no separator character. Also make code a
+ bit more fault tolerant.
+kes Make btraceback write the traceback to the working directory
+ before attempting to mail it.
+kes Add a RFC to Projects.
+18Jul08
+kes Attempt to implement a kludge to make Qt work with bat
+ on Win32.
+kes Setup rstorage correctly. Virtual backups are working.
+17Jul08
+kes Move setting JobLevel and JobType into a method, which should
+ allow completing Virtual Backups.
+kes Fix verify jobs to work again.
+16Jul08
+kes Virtual Backup tweaks -- it is close to working.
+15Jul08
+kes Ensure that SD tried to mount a volume not in an autochanger
+ at least once before asking for operator intervention.
+kes Make SD aware of Virtual Backup jobs.
+kes Add VirtualFull for bat.
+kes Changes to get read storage correct for Virtual Backup.
+14Jul08
+kes Remove old code from label.c
+kes Split display_display_info() out of write_bsr_file()
+kes do_vbackup_init() working -- i.e. bootstrap file built.
+kes Change Bacula trademark owner from John Walker to Kern Sibbald
+kes First non-working cut of vbackup
+kes Correct FD heartbeat code to use volatile variable accessed by
+ two threads.
+kes Zero thread id with memset if on Win32 in case it is a struct.
+kes If cannot create JobMedia record, continue to try to write eof
+ and clean up in block.c
+12Jul08
+kes Add code to interface OpenSSL to new Win32 pthreads code which
+ used a structure for thread_t.
+09Jul08
+ebl tweak bat for win32 compilation
+08Jul08
+ebl Remove tokyo cabinet from the source
+ebl Update configure/autoconf to support berkeley DB
+ebl Add a sort to db_get_file_list() to improve bsr construction time.
+07Jul08
+kes Add a mtx-changer.conf file that is not overwritten during
+ an upgrade. It fully configures the mtx-changer script.
+kes Clear in-use bit on vol when unused while swapping.
+06Jul08
+kes Remove sleep at end of ./bacula
+kes Clear hash packet for hardlinked files correctly. This corrects
+ a long standing bug where hardlinked files selected individually
+ would occasionally not be restored.
+05Jul08
+kes Apply Eric's patch to ensure that autoprune does not return
+ a Volume not in the autochanger unless requested to do so.
+kes Correct bat restore display of multiple drives. This fixes
+ bug #1117.
+kes Do find_a_volume() each time an unload is done. This
+ fixes the failure of maxvol2-test.
+04Jul08
+kes Add some SD debug code.
+kes Do find_a_volume() each time an unload is done.
+kes Apply Joao's DBI patch that adds easier configuration of DBI drivers,
+ and adds --with-db-port to ./configure.
+kes Use Qmsg() in job.c watchdog callback.
+03Jul08
+kes Release main control rwlock if ABORTing.
+kes Make watchdog connect timeout queue messages rather than sending
+ directly to avoid lock conflicts with the real thread.
+kes Add const char in dbd.c to avoid compiler warnings.
+kes Fix python compiler string warning. Note, IMO the GNU C++
+ compiler guys have made a *very* bad change to their compiler.
+ They now force all strings to be 'const' unless you explicitly
+ cast them, which is extremely ugly and ruins nice code as well
+ as creates a lot of useless work.
+02Jul08
+kes Fix mtx-changer to detect both versions of Ubuntu (Debian)
+ mt. This fixes bug #1116.
+kes Add const in python files to reduce compiler warnings.
+ This may have to be backed out because of later compiler
+ strict checking.
+kes Fix failure of 2drive-concurrent-test. Always read label;
+ clear_unload() only after drive is defined in acquire_for_read().
+27Jun08
+kes Generally clean up the manual tape loading code. The main
+ conceptual change is that when a volume is marked to be unloaded,
+ its volume name is retained, and it is only marked as unloaded
+ when either the autoloader says it is unloaded or another tape
+ is read on that drive.
+25Jun08
+kes Add debug code and refactor subroutine in stored/mount.c
+kes Fix format problem in bscan output reported in bug #1105.
+ebl Fix get_next_volume_for_append logic with autochanger
+ - use pruned volumes if found
+ - don't reset the inchanger flag after getting a recycled volume
+ or a scratch one
+ Fix recycle_oldest_purged_volume to take InChanger flag in account
+23Jun08
+ebl Add mmap/unmmap implementation for tokyodbm under win32
+22Jun08
+kes Make first step toward eliminating globals from config
+ scanning. Also should be a workaround for FORTIFY_SOURCE
+ GNU C bug -- fixes bug #1042.
+21Jun08
+kes Apply duplicate job tests to restarted jobs.
+kes Copy more data when restarting a job so that run
+ overrides are kept. This should fix bug #1094.
+20Jun08
+kes More word alignment cleanup.
+kes Fix bug where SD did not ask operator if the device could not
+ be opened. Reported by Eric.
+19Jun08
+kes Add dbuser to DIR conf file (replaces user).
+kes Add --with-db-password to ./configure
+kes Fix regress to handle db_password.
+ebl Add new 'status storage slots' that list autochanger
+ content.
+ebl Update vtape driver to compile only under Linux.
+ebl Fix a bug when restoring with a wrong mediatype.
+18Jun08
+kes Eliminate ints from conf files and structures to avoid
+ word alignment problems
+17Jun08
+kes Fix bug reported by Scott Barninger where the bacula script
+ refers to scripts in the wrong directory. Needed to meet the
+ requirements of recent FHS location changes.
+ebl Disable vtape for FreeBSD.
+15Jun08
+ebl Modify disk-changer to check if slot contains something before
+ loading it.
+14Jun08
+ebl Fix vtape on win32 and debian.
+ebl Fix autoselect patch (cause segfault).
+13Jun08
+ebl Fix autoselect option broken for a while. Fix #1089. Need some
+ work with StorageId to be able to use a particular drive in a
+ autochanger.
+09Jun08
+ebl Rename vtape to vtape.
+ebl Update vtape driver.
+08Jun08
+ebl Modify vtape driver to avoid sparse file.
+kes Add make clean of qt-source directory during ./configure
+kes Store last block number written to tape in DEVICE and
+ use it for testing for correct last block on EOT.
+
+28Dec08
+Release Version 2.4.4
+27Oct08
+Release Version 2.4.3
+26Jul08
+Release Version 2.4.2
+07Jul08
+Release Version 2.4.1
+04Jun08
+Release Version 2.4.0
+25Jan08
+Release Version 2.2.8