-2002-mm-dd Release 1.23
+
+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.
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.
- 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.
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
- 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
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