-
-=============================================================================
-2002-11-29 Version 2.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
+ Technical notes on version 2.1
+
+General:
+18May07
+kes Cleanup incorrect email addresses in bsmtp.
+kes Make bat display initial messages rather than discard them.
+16May07
+kes First cut of adding .mod to the run command.
+kes Implement auto display of messages in bat.
+kes Enhanced preferences to allow all Bacula output to be
+ displayed in bat.
+15May07
+kes Fixed bug #856 autochanger documentation.
+kes Rework bsmtp date editing for Win32. This fixes bug #854.
+kes Add new cats entry point so Win32 builds.
+14May07
+kes Attempt to fix bsmtp date editing on OSes without %z editing.
+kes Do better checking for the MySQL 64 bit libraries looking for both
+ .a and .so libraries.
+kes Add a kludge for Ubuntu's non-standard locations for MySQL -- allow
+ /usr/include/mysql/mysql.h AND /usr/lib/... rather than /usr/lib/mysql/...
+kes Require the thread safe version of MySQL during configure. Thanks
+ to Andre Noll for pointing this out.
+kes Ensure that calls to find_jobids_from_mediaid_list() check count before
+ continuing in migration code.
+kes Apply implementation of tray-monitor font derived from gnome-console
+ submitted by Andreas Piesk <a.piesk@gmx.net>
+13May07
+kes Eliminate important memory loss in SQLite
+kes Fixed the batch insert MySQL thread specific data that was not
+ being freed. See cats/mysql.c:db_thread_cleanup().
+kes Fix restore before command.
+kes Convert old hdr.name to name() in a few places.
+kes Implement update jobid command.
+kes Return all time_t dates in db_get_job_record()
+kes Stop watchdog in SD earlier.
+kes Put Pool just after Storage in please mount message.
+kes Fix pointer usage bugs in Verify InitCatalog pointed out by
+ Eric.
+12May07
+kes Update the po files.
+kes Fix Verify InitCatalog by making it cache attributes.
+11May07
+kes Change name bacula-bat to bat for man 1 page to correspond to
+ Makefile.
+kes Check for client and store NULL pointers in status command. This
+ fixes bug #845.
+kes Fix non-ssl build so that it works (add JCR *jcr to crypto structures).
+kes Fix sign extended editing of %p.
+kes Clean out a little old #ifdefing in cats/mysql.c
+10May07
+kes If time diff between DIR and FD is more than 600 seconds convert
+ INFO message to WARNING.
+kes Implement heap size display in status for all daemons.
+kes Attempt to fix MySQL db open memory loss (not successfull).
+kes Don't set SIGKILL and SIGSTOP neither can be trapped.
+kes Eliminate memory loss in MySQL (possibly other SQLs) during
+ Query. This looks like a MySQL but but by doing extra releases,
+ the memory goes away. This should fix bug #847.
+09May07
+kes When backup fails, cancel SD before waiting for sd termination.
+kes If SD is waiting for FD to connect during cancel, wake up the
+ thread.
+kes Fix fsf code so that errno is correctly reported.
+kes Apply migration patch (with changes) from Sergey Svishchev <svs@ropnet.ru>
+08May07
+kes Merge patch from Sergey Svishchev <svs@ropnet.ru> that preserves
+ the original jobb's FileSetId.
+kes Merge patch from Sergey Svishchev <svs@ropnet.ru> that implements
+ spooling in migration jobs. Not yet tested.
+kes Merge patch from Jorj Bauer <jorj@seas.upenn.edu> that implements
+ reading conf file from a pipe. However, do it with open_bpipe()
+ rather than popen. Not yet tested.
+07May07
+kes Fix an ugly bug where the VolCatBytes were getting updated
+ during a restore.
+kes Implement bconsole memory command that prints current memory
+ usage, plus smartalloc dump.
+kes Clarify some error messages in backup, admin, and migrate.
+kes Shrink label dialog to smaller size.
+kes Invert Cancel OK buttons on restore to be OK Cancel.
+kes More strerror() to bstrerror() conversions.
+06May07
+kes Start implementing bstrerror() in place of strerror().
+kes First cut at stripping path -- seems to work.
+04May07
+kes Prevent door and port files from being restored (mostly
+ Solaris stuff).
+kes Free an unreleased buffer in compat code.
+kes Change console Job name from *Console* to -Console- to eliminate
+ Win32 filename problems. Put Win32 path separator when creating
+ Console file. This fixes bug #846.
+kes Change berrno::strerror() to berrno::bstrerror(). Not yet full
+ implemented.
+kes Pass jcr to crypt_sign_decode because it creates a new SIGNATURE
+ structure.
+kes Define b_errno_win32 on Linux to be zero so that it can be or'ed in
+ to force Win32 error message.
+03May07
+kes First cut strip path. The data should be passed to the FD,
+ but nothing is done with it yet.
+kes Enhance the digest and signature routines in the crypto
+ library to accept a JCR and to use it to print error messages
+ so that they will go in the Job report rather than the daemon's
+ messages.
+kes Simplify some of the verify signature code.
+kes Simplify a few of the alternative returns in the signature
+ code.
+02May07
+ebl Use only POSIX regex instead of GNU regex in breg.c for
+ File relocation. It fix broken freebsd compilation.
+kes Convert all other Dir files to use ne ua class message
+ routines for bat.
+kes Tentative fix for missing digest signature in bug 807.
+kes Correct handle problem in new win32_ftruncate routine.
+kes Convert ua_purge.c and ua_update.c to use new ua class
+ message routines for bat.
+29Apr07
+kes Correct incorrect installation of LICENSE in Win32 installer.
+kes Display LICENSE at the beginning of the Win32 install.
+kes Attempt to correct the need for the png files to be installed
+ for bat.
+kes Reapply my bat.conf install script in qt-console. I think I
+ editted bat.pro instead of bat.pro.in and it was lost.
+kes Apply CentOS patches someone sent me. Checks for /var/run/subsys,
+ the /var/lock/subsys for subsysdir. Also corrects typos in the
+ doc.
+28Apr07
+kes First cut update job.
+kes Correct configure to include qmake of src/qt-console directory.
+26Apr07
+kes Make restore job yes/mod/no print in one command so GUI works.
+kes First cut implementing backup and restore client.
+kes Correct editing in Verify output that caused a seg fault.
+25Apr07
+kes Insure that bat.conf is not overwritten during installation.
+kes Fix important bug in db_sql_query() in mysql.c. It was introduced
+ while I was implementing migration in March 2006 !
+24Apr07
+ebl Cleanup file relocation, using char *RegexWhere instead of
+ char *where + bool where_use_regexp
+kes Update some manpages and add bat manpage.
+kes Make a first cut at converting bacula.spec.in for bwx-console
+ and bgnome-console.
+kes Apply patch from John Goerzen to add hostname as fourth argument
+ to make_catalog_backup script.
+kes Fix typos I introduced into bsmtp.c
+kes Make pm_strxxx() routines handle input of NULL pointer. This
+ is to protect from NULL pointers returned from SQL databases.
+kes Correct typo in bacula-sd manpage as pointed out by John Goerzen.
+kes Add more debug to FIFO code -- fix fifo regression test.
+23Apr07
+kes Implement posix_fadvise in FD, and for reading spool files in SD.
+kes Add thread timer to bnet_connect() to break from OS if wait time
+ expires.
+22Apr07
+kes Update Win32 build to include new files, new symbols, and
+ renamed files.
+kes Implement socket level heartbeat (tcp_keepidle)
+ebl Commit File relocation patch
+kes Make bat have 'make install' target.
+kes Warn during install if old gnome-console binary found.
+kes Warn during install if old wx-console binary found.
+kes Add -8 option to bsmtp command line to add content type utf-8.
+ Fixes bug #809. (Character coding problem in bsmtp).
+kes If < is found in target (from, to, cc) then do not enclose the
+ target in < > in bsmtp. Fixes bug #772 (malformed address).
+kes When printing certain items in dbcheck, stop after 300000.
+ Fixes bug #822. (dbcheck loops).
+kes Incorrect status in Dir after waiting for mount with poll set.
+ Fixes bug #825.
+21Apr07
+kes Extend idea of Prefer Mounted Volumes to mean a volume about
+ to be mounted.
+kes Print waiting to reserve a device every 5 mins.
+20Apr07
+kes Don't call close_part in label.c if tape and relabel.
+kes Don't free volume if busy in close() -- should help with
+ bug 801.
+ebl Fix #824 RunScript bug (After script could be execute twice)
+ Now, Before Script can use RunsOnSuccess and RunsOnFailure options
+ By default (like before) RunsOnSuccess=true and RunsOnFailure=false
+ Add a regression script to test RunScript
+19Apr07
+kes Correct usage of MTIOCLRERR ioctl for clearing persistant errors
+ on Solaris.
+18Apr07
+kes The bgnome-console (gnome-console) and bwx-console (wx-console) are
+ deprecated. No additional bugs will be fixed, and they will be dropped
+ in a future release (probably 2.4.0).
+kes Change name of wx-console to bwx-console to make it more Bacula
+ unique.
+kes Change the name of gnome-console to bgnome-console to make it
+ more Bacula unique.
+14Apr07
+kes Some time in March, a Feature Request with patch from Jorj Bauer
+ <jorj@seas.upenn.edu> was committed by Landon (with my approval).
+ It implements:
+ The ability for the director to validate a Client (FD) CN against
+ an arbitrary set of patterns rather than the hostname, with
+ A new 'TLS Allowed CN' set of directives which are implemented
+ in the Client resource. Then pattern matching is used in place
+ of hostname matching against the Certificate's CN. As an example, we
+ have certificates which (a) use a local CA, and (b) have a CN of the
+ form client_123.
+kes Add new/changed entry points to Win32 build
+kes Create unaccepted-projects for projects that are not accepted.
+kes Simplify locking in the reservations system.
+kes Add more debug code in reservations.
+kes Make sure error condition on reserving a volume is handled correctly.
+kes Correct handling of volume_in_use.
+kes Correct handling of initializing a device.
+kes Move handling of broadcasting releasing a device into release_device().
+kes Correct attaching dcr to dev so that it is only done if device
+ is properly initiated.
+12Apr07
+kes Locking debug level tweaks in SD.
+kes Tweak new Volume code.
+11Apr07
+kes Add exec external-command [wait-seconds] to bconsole. This
+ executes the external-command. Note! normally external-command
+ should be enclosed in double quotes.
+kes Turn the .die command on only if DEVELOPER is defined -- i.e.
+ it should normally be off in a production system.
+10Apr07
+kes Implement die command for SD so that we can force it to dump.
+kes Implement SD lock debug code.
+kes Implement new algorithm for keeping Volume list in SD. It
+ is now owned by the device.
+04Apr07
+kes Implement new code for freeing in use volumes that should
+ resolve if not all, some of the problems of multiple drive
+ tape conflicts described in bug 801.
+03Apr07
+kes Fix gui/bacula-web/images files in svn.
+kes Turn on FreeBSD/OpenBSD code to set EOT model on tape.
+02Apr07
+ebl Fix a bug in batch mode (in string escape)
+kes Correct migration prune SQL typo that crept in in a
+ recent 2.1.x change.
+01Apr07
+kes Move bnet_despool() into class in bsock.c
+kes Modify job report to include director name and Build OS.
+kes Move drop root privilege and check_catalog() before fork.
+kes Add update database scripts (version 9 to 10) to updatedb directory.
+31Mar07
+ebl Check size and age of each file after its backup to see if
+ it has changed during backup, if 'checkfilechanges' is set.
+ The FD will do an extra check (stat(2)) after
+ each file backup. mtime, ctime and size are compared with
+ 'before backup' information. If time or size mismatch, an
+ error message will be generated. You must upgrade FD to use it.
+30Mar07
+kes Make database name and user configurable
+ --with-db-name=xxx --with-db-user=xxx
+kes Add back database type to message.c for debugging.
+29Mar07
+kes Implement dir_sql() which issues an SQL query.
+kes Modify bat medialist to use dir_sql() and do some minor C++
+ formatting as well as eliminating a number of pointers, simplifing
+ the code.
+28Mar07
+kes Fix some of the mtx-changer grep commands for tape label readers.
+kes Convert a number of bsendmsg into the appropriate send/warning/error
+ message class calls.
+kes Suppress the using database message in the .sql command.
+kes Correct an incorrect bnet_tls_client prototype -- patch from Martin.
+27Mar07
+kes Add context menu for floating a window.
+kes Some minor cleanup and name changes in qt-console
+kes Add doing mt setblk 0 in Win32 mtx-changer.
+kes Apply Martin's bug fix to move definition of ENODATA for
+ FreeBSD to bsock.c
+ebl Add a BUSY handler to sqlite to be able to use multi_db = 1 with
+ sqlite2 and sqlite3.
+26Mar07
+kes More pruning cleanup.
+kes Turn on wait_for_drive by default in mtx-changer.
+kes Turn on Batch insert code by default as it now passes regression.
+kes Add ./configure --enable-bat to enable building of Bat.
+ No install yet though.
+25Mar07
+kes Implement a new .sql command for bat.
+kes Implement code to turn off pruning in obtaining the next volume.
+ Pruning is turned off for the status dir command, but turned on
+ for SD requests and for the list nextvolume command.
+24Mar07
+kes Correct Qmsg() that was not updated correctly when committing a
+ previous change (probably the recent TLS patch).
+23Mar07
+kes Write new subroutine is_volume_purged() that explicitly checks
+ if the Volume is purged, and if so marks it as such. This should
+ resolve problems reported about needing to mount twice to recycle
+ volumes.
+kes Rewrite pruning algorithm to do more work in the SQL engine, and
+ to pass a list of JobIds to be deleted to SQL. Also, minimize the
+ amount of duplicated code.
+kes Do volume pruning only for the Media Type desired (reduces pruning time
+ if multiple Media Types are in the same pool).
+kes Implement more detailed info in the Job report for the Bacula version
+ and architecture.
+kes Switch from POOLMEM to POOL_MEM (a real class) in ua_prune.c and
+ ua_purge.c.
+ebl Add bbatch tool to bench database and insert mode.
+ Fix sql quote stuff in batch mode
+ Fix sql stuff for mysql
+22Mar07
+kes Correct problems with am/pm scheduling. Fixes bug #808.
+kes Implement new prunning code that prunes up to 1000 jobs at
+ the same time. The same technique can be applied to a number
+ of other prune/purge subroutines.
+kes Add an insanity check when starting a new tape job to ensure
+ that the tape position has not been changed. If so fail the
+ job.
+kes Fix Win32 build for dlls to add the folllowing:
+ src/lib/bsock.c -- new file with new entry points
+ src/lib/dlist.c -- new entry points
+ src/cats/sql_create.c -- new entry point
+ src/cats/sql_cmds.c -- new DATA item exported
+21Mar07
+ebl batch mode cleanup bscan-test is ok now.
+kes Implement SD code to check length of disk volume before appending.
+18Mar07
+kes Correct return status on db_batch... routines.
+kes Add call to db_write_batch_file_records() to migration code.
+ebl Fix AfterJob timing
+kes Move the checking of the database in initializion of the Director
+ to after we drop privileges. This avoids the need for both root
+ and bacula access to the DB.
+kes Correct a misplaced variable definition in src/filed/backup.c
+kes Correct how the new batch insert db_create_attributes_record()
+ uses the arguments. Caused a seg fault in bscan.
+kes Implement lock() and unlock() methods in DEVICE class.
+ Implement block() and set_block(xx) methods in DEVICE class.
+kes Modify bnet_connect() so that it uses time() to check for the
+ wait time expiring (on some OSes, some system calls may not
+ return immediately).
+kes Modify Verify to obtain the previous JobId when it is actually
+ running rather than at schedule time (as it was in 1.38.x).
+kes Fix src/job.c to handle MaxWaitTime correctly. This should
+ fix bug #802.
+kes When checking pid in pid file, continue running if the pid is
+ the same as ours. This occurs on IRIX after a system crash.
+ Fixes bug #797.
+10Mar07
+kes Extend new GUI API.
+kes Make the ua structure a class, and implement send_msg(),
+ error_msg(), warning_msg(), and info_msg().
+08Mar07
+kes Apply fix from for building wx-console on the Mac from
+ bug #798.
+kes Implement new select mechanism for GUI programs.
+kes Reorganize initialization of stackedWidgets in bat.
+07Mar07
+kes Add updated nagios plugin supplied by Christian Masopust.
+05Mar07
+kes More bat implementation.
+kes File migrate bug with Pool Occupancy using mediaid instead
+ of jobids. Fixes bug #795.
+kes Fix orphaned buffers in filed backup and verify due to
+ crypto buffers not freed during errors. Fixes bug #789.
+kes Extend new GUI api code to tree commands.
+kes Ensure that tree and dot commands check console ACLs.
+kes Permit marking directory with trailing slash.
+kes Allow 20 console connections (instead of only 10).
+04Mar07
+kes Add smartctl call to bacula-sd.conf as an example of getting
+ tape alert info.
+02Mar07
+kes Modify jobq.c to let simultaneous restore jobs run. This may
+ cause them to fail if they cannot get a drive.
+kes Add Client Connect Wait to Storage daemon to permit users to
+ modify the time the SD waits for a FD connection.
+29Feb07
+kes Correct virtual changer check which was backwards. This caused
+ volumes to be unloaded into slots already occupied.
+28Feb07
+kes Apply Command ACL filter to JobId list in restore command.
+kes Correct typeo in var.c patch.
+27Feb07
+kes Don't let Bacula prune File or Job records for the current Job.
+kes Fix variable substitution pad + inc bug reported (with patch)
+ in bug #791.
+26Feb07
+kes Correct SQLite log table index as reported by Luca Berra.
+24Feb07
+ebl fix fifo stuff, bacula tries to rewind the fifo... Thanks to Andreas
+22Feb07
+kes Begin implementing new comm signals for API.
+kes Fix a few places in lib/message.c where the open fd may
+ not be zeroed.
+kes Continue implementing lib/bsock.c (real class). Make jcr,
+ who, host, and port private. There are new methods to access
+ them for non-class use. This required touching a number of files.
+21Feb07
+kes Add LANG=C to autoconf/randpass so it works with languages other
+ than English. Fixes bug #788.
+20Feb07
+ebl Revert ClientRunBeforeJob to old position as in 1.38.X.
+ This fixes bug #780
+ You will not be able to generate Include/Exclude list any more.
+ It will be fixed soon.
+ If you want to use this, you can apply
+ trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch
+19Feb07
+kes Restore of sockets created false error messages because Bacula
+ no longer restores sockets, but the code was still trying to
+ set the attributes on a non-existent file. Reported by a user.
+ebl finish RecyclePool feature
+ Media will takes Pool.RecyclePool
+ when moving from Scratch to a Pool or when user will do
+ update volume=xxx frompool
+ To use it, add RecyclePool = aPool to your Pool resource
+ Pool {
+ Name = Default
+ RecyclePool = Scratch
+ ...
+ }
+ TODO: update manual
+kes Expand new BSOCK class adding signal() and new BNET signals.
+kes Begin enhancing the dot commands adding a new API function
+ that returns more information and will make it easier
+ to interface to the Director from a program.
+18Feb07
+kes Make DEVICE fd private. Its new name is m_fd, and can be
+ obtained with dev->fd() outside the class. This is the
+ first of many DEVICE members to be made private.
+kes Implement Michael Renner's idea on having a virtual disk
+ changer. I made some minor modifications (e.g. I did not
+ implement the Virtual Changer directive, but simply set
+ the Changer Command to an empty string.
+17Feb07
+kes Implement a BSOCK send() method that writes the whole record
+ in a single write() request rather than in two.
+ebl add update volume=xxx recyclepool=yyyy
+ volume takes recyclepool from pool when using update volume=xxx from pool
+16Feb07
+kes Fix encryption deblocking bug, which caused some restored files
+ to be truncated. This fixes bug #763.
+kes Add FD event sequence order prepared by Eric -- for RunScripts.
+kes Fix 12am/pm bug as reported in bug #782.
+13Feb07
+kes Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1.
+ebl Use btime_t instead of uint64_t in media patch.
+11Feb07
+kes Optimize the use of the database a bit in the Status dir command.
+ Only open it when needed, ensure that if any previous database
+ was opened, it is closed.
+10Feb07
+kes Correct VolCatBytes bug from media patch.
+kes Apply patch from bug #612 by Rudolf Cejka to speedup pruning
+ in the case of orphaned records.
+kes Modify dbcheck to handle orphaned JobMedia, Path, Filename,
+ and File records in 300K chunks to be more efficient. This
+ idea came from Juan Luis Frances (if I remember right).
+kes Apply Eric's scratch patch that moves a purged Volume to
+ the RecyclePool. Question: how is RecyclePool set? what
+ happens to the ScratchPool?
+kes Apply Eric's media patch that collects read/write media
+ times as well as byte counts. This patch requires a
+ simultaneous upgrade of the DIR and SD. Note, there
+ should be some way to turn off timing. I'm not sure
+ times are in Bacula units.
+kes Apply Eric's batch-insert patch.
+09Feb07
+kes Update projects list.
+08Feb07
+kes Implement Include/Exclude file lists in FD as dlists using
+ the new dlistString class. This permits efficiently having
+ large include/exclude lists and completes project Item 25.
+kes Fix dird/ua_cmds.c so that a cancel command checks if the
+ console is authorized to cancel the job. This fixes bug
+ #767.
+kes Modify SD so that the VolCatJobs medium record is updated
+ at the beginning of a Job rather than the end. This
+ fixes bug #775 where exceeding MaxVolJobs caused jobs
+ to fail.
+kes Added a mutex around getting and setting Volume information
+ so that multiple simultaneous jobs will single thread.
+07Feb07
+ Switch to using Subversion
+kes Remove src/pygtk-console/ from configure
+06Feb07
+kes Delete src/lib/btree.c from win32 build, then add rblist.c
+ plus the entrypoints.
+kes Apply patch supplied that corrects debug print
+ in canceling jobs for max run time. Supplied as
+ part of bug #621, which was previously fixed.
+05Feb07
+kes Test on job_canceled() and sd_msg_thread_done inside
+ loop starting the message thread to avoid a race condition.
+ Fixes bug #771.
+kes Remove rl_catch_signal from console.c as it conflicted
+ with the header definition. Fixes bug #765.
+ebl Fixes bug #766 about RunsOnClient = Yes (case sensitive)
+04Feb07
+kes Clarify some stored/acquire messages to indicate if the
+ problem is with read or append.
+02Feb07
+kes Fix memory leak with storage ids in cats/sql_get.c
+kes Terminate watchdog earlier to avoid reference to released
+ memory -- reported by Jason Austin.
+kes Move closing the database from jobq.c to the director daemon
+ termination routine. This fixes memory leaks for shadow jobs
+ (i.e. migration jobs).
+kes Free up the unique jobid chain items in migrate.c. This fixes
+ a memory leak problem.
+kes Convert some ugly looking for statements to use foreach_alist
+ in findlib/find.c. This will facilitate converting the structures
+ to use dlist (for large include/exclude lists).
+kes Fix a bug in the btree.c and btree.h routines, then rename them
+ rblist and add them to be built in src/lib. Include some new
+ methods written by Rudolf Cejka that make the code more readable
+ (hides some of the ugly casting).
+kes Add set_next() and set_prev() methods which make the code much more
+ readable. Also add a new dlistString class that facilitates storing
+ strings in dlists. To be used in the large include/exclude lists.
+kes Make some trivial modifications to lib/tree.h that use rblist
+ rather than dlist for storing the tree links. This was suggested
+ by Rudolf Cejka. The result of this is that the restore tree now
+ uses red-black binary trees rather than simple linked lists. This
+ should give rather dramatic speed improvements for directories
+ contining large numbers of directories/files (more than 10000).
+28Jan07
+kes Fix maxruntime bug #621.
+26Jan07
+ebl Implement the include JobID in spool file name project.
+kes Reorder projects file in order determined by Jan 2007 vote.
+kes Implement item #12 on project list -- quick release of FD by
+ the SD.
+kes Fix open of SQLite3 db where user does not have write permission
+ so that DIR does not crash. Fixes bug #761.
+25Jan07
+kes Add back missing @ in Win32 Makefile.
+kes Change 'Device not configured to autolabel' from INFO
+ to WARNING.
+kes Fix jobq.c to restart failed jobs when Reschedule Times = 0
+ which should restart an indefinite # of times.
+kes Fix configure --help to print --with-mysql[=DIR]. Same for
+ other DIR specifications.
+23Jan07
+rn Fix msvc build problems. Fix bacula.dll exports for msvc build.
+ Fix path quoting in SQLite scripts.
+ Fix problems with SHGetFolderPath.
+19Jan07
+kes Create patches/2.0.1-restart.patch. Fixes bug #755.
+18Jan07
+kes Fix Job restart on error bug that promotes an Inc to a Full
+ backup. This should fix bug #755.
+kes Add qt-console and first cut of code.
+
+Version 2.0.1
+12Jan07
+kes Fix Bacula->Documentation link on Win32 to point to index.html
+ instead of bacula.html. Fixed bug #750.
+kes Return JobId in db_get_job_record() when JobId==0. This should
+ fix bug #741.
+kes Do not release source pointers when restarting a failed job.
+11Jan07
+kes Add dynamic dll entry point for SHGetFolderPath to Win32 code.
+ This *should* fix bug #747.
+kes Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix
+ bug #742.
+09Jan07
+kes Modify USTORE constructor to set an empty store_source string,
+ and don't copy the store_source string in a cancel. Hopefully
+ this will fix Arno's seg fault, bug #744.
+kes Add back code to disable conio in configure. Fixes bug #743.
+kes Correct the Options scanner in the FD to correctly handle
+ SHA1 option, which was eating the next option. Reported by
+ Sebastien Guilbaud.
+kes Add code to indicate when the SD is spooling, spool wait, and
+ despooling as requested by Alan Brown.
+
+Version 2.0.0 released: 4 January 2007