+2002-xx-xx Version 1.26 (xxOct02)
+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
- 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.
- 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.
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