X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=bacula%2FChangeLog;h=16c0ee65f6b6ba763c0023d93362a7044b9ba7c5;hb=6b8e8a0e89de2ef1b84c9af54cd8c7f048cd9ceb;hp=63f0f771001cfb0eb32ab566b2d219a5b0a3814d;hpb=db408b1c519492b0bf19c56ebba5414858c3f5ea;p=bacula%2Fbacula diff --git a/bacula/ChangeLog b/bacula/ChangeLog index 63f0f77100..16c0ee65f6 100644 --- a/bacula/ChangeLog +++ b/bacula/ChangeLog @@ -1,5 +1,1392 @@ -2002-mm-dd Version 1.27 (20Nov02) not yet released +2003-11-03 Version 1.32d 02Nov03 Release +02Nov03 +- Mainly a bug fix release. +- Do a clean of both Gnome directories. +- Require that FileSet id match when finding an Incremental + previous job. This was already the case for a Full. +- Print message if no status returned from FD. +- Correct "Do not forget to mount the drive" message. Test was + backward. +- "status dir" stopped scanning the run records on the first + one that matched giving an incomplete listing. +- Edit commas in Bytes on "estimate" command output. + +2003-10-30 Version 1.32c 30Oct03 Release +29Oct03 +- Add %v to job edit codes. It edits in the VolumeName(s). +- Add code to ensure that fds 0,1, and 2 are defined by dup'ing them + to /dev/null if necessary. Mostly for Windows that does not have them. +- Error check dir_create_jobmedia_record() 2 places in acquire.c +26Oct03 +- More doc fixes. +- Make message buffer longer for a status message that was + truncated. +- Put termination on varargs calls in gnome2-console. +- Scroll only if text sent and not for status update. +- Add all possible Status codes the jobstatus_to_ascii() +25Oct03 +- Add new spec file and cats patch from Scott. +- Optimize tree.c a bit -- turn off debug code, keep node fname + length for fast rejection, add some statistics, allocate + in 100K and 1Meg chunks, use bool, uint16_t and uint8_t to + reduce node packet size. +24Oct03 +- Eliminate ua_retention.c that was not used. +- Improve error message when closing brace missing in conf file. +- More doc updates. +- Eliminate Don't forget to mount if it is a disk file. +- Fix Gnome2 scrolling and blank screen problems. +- Eliminate multiple JobIds in restore selection list. +- Fix non-portable varargs code in var.c +- Make doc fixes/changes suggested by Dan Languille +23Oct03 +- Document new features. +- Implement mod of Verify Job at the run prompt. +- Correct SQL table definitions so that MySQL and SQLite + have all the values in the same position. +- Correct a typo in configure.in when configuring GNOME. +- In doing a "status dir" make it loop over all the run + commands in the Schedule rather than doing on the first one. +- Close all unused file descriptors in bpipe.c otherwise if + a daemon is started, it will keep our TCP/IP port open. +22Oct03 +- Print block read error (checksum, I/O, BB01, ...) once then + the number found at the end of the reading. +- Implement RunAfterFailedJob +- Change db_find_job_start_time() to require a Full save before + running an Incremental or Differential job. +- Remove has_volume_expired from code that updates vol info +21Oct03 +- Implement "delete job" +20Oct03 +- More documentation, add Marc Brueckner's tips to manual. +- Tweak gnome2-console scroll window. +- Turn off some debug info. +18Oct03 +- Modify Verify to accept VerifyJob = xx, where the last backup job + of job xxx will be verified. +- Add changing the Pool name for a Volume to "update volume" +- Write most of the code for Verify Disk to Catalog. +- Recreate the src/gnome2-console directory. +- Change all the text handling code to the Gnome 2.0 way. +- Correct the way verify filenames are returned to the Director so + that directories are in canonical form (i.e. trailing /). +- Handle casting bug in glade-2 by sed'ing support.c in gnome2-console. + +2003-10-15 Version 1.32b 14Oct03 Release +14Oct03 +- Modify configure so that if threaded MySQL client library + is not present, Bacula will link with the non-threaded + version. +- Updates to the Web pages and to the manual. +- Remove trademark symbol from title. Phil pointed out that it + does not display correctly in a title. +11Oct03 +- Implement restore by file before date. +- Change restore arguments a bit so that you can feed it + multiple jobid= specifications or multiple file= specifications. +- Pass restore with run option on to run_cmd. +- Make run-cmd not prompt if it has a "run" on the command line. +10Oct03 +- When pruning, select only old orphanned jobs to delete so that + the current job is not pruned too. +09Oct03 +- Corrected return status for bsf_dev and bsr_dev in block.c and btape.c +- dev.c used incorrect ruturn status for bsf_dev in the BSF at EOM + code. This caused all appends on FreeBSD to fail. +- Turn on fast block rejection code. +08Oct03 +- Optimize file index searches by adding a count to the bootstrap. +- Write single files/blocks to bootstrap without the second part. +- Add current Volume status to the cannot use this Volume message. +- Zero the rx->bsr in ua_restore when freeing so it doesn't get + freed twice. +- Lots of testing on the restore +- I noticed that SD and FD bootstrap files were not always + deleted, so delete them as soon as possible. +- Restore by file (or by selecting files) created some + horrible looking bsr files that defeated the forward + spacing code, so fix write_findex to work right. +- Add zlib_strerror() routine in filed/restore in case + of zlib errors. +- In filed/restore.c make sure all error returns cleanup + and close the open file descriptor. +- Make sure to set *non* over filename in attr packet + after file is found, so error messages that print the + filename don't print an old, incorrect name. +- Allow bclose() to be called after closing the file. +- Fix a number of unclear help messages, ... reported by + Phil in btape. +- Retweak stored/read_record.c so that it does forward + spacing at the beginning of every tape, not just the + first one. +- Print repositioning message if verbose is set. + +2003-10-01 Version 1.32a 03Oct03 Release +04Oct03 +- Combine the code in ua_output and ua_status that searches + the run records. +03Oct03 +- Fixed "list nextvol" to search for the correct pool in the + Schedule Run records. +- Correct an error in is_block_zero. It found a false + match if the first 1016 bytes of a 32K buffer and + the last 248 bytes are zero. Broke the sparse option. +01Oct03 +- More documentation. +- Test if multiple mail addresses works. Yes. +- Add debug Jmsg() to trigger if the file I/O packet is + not closed in the FD, i.e file descriptor leaks. +- When error occurs reading label in mount.c, start from + the very top so that the retry count is in effect. +- Zap the mode in soft links in testls.c for regression + testing. + +2003-10-01 Version 1.32 30Sep03 Release +28Sep03 +- Enhance manual faq, regression ... +- Make FreeBSD read sizes always be a multiple of 512. Needed + to read raw disks. +- Make FreeBSD accept block AND character devices for raw + disk reads. On FreeBSD there are no block devices. +27Sep03 +- Fix printing of EndTime on job report after rescheduling. +- Fix jobq.c error returns to clean up before returning. +- Make Cleaning tape aware of "unlabeled" volumes. +- If a job is rescheduled, ensure that old job is + removed from SD's jcr queue -- i.e. it is still waiting + for FD connection. +- Test rescheduling code. +- Change ./configure to detect Cygwin enviornments. + +2003-09-26 Version 1.32 26Sep03 Beta +- Add regression and GUI-interface chapters to the manual. +- Fix "label" of a volume that is already in the catalog, + but not yet labeled. +- Correct the test for spooling attributes which was backward. + This caused the creation of a spool file in the working + directory for every job run. +- Print to the job output stream when block checksum errors + occur, but continue processing. If more than one occurs, + print number at end of job. +- Remove a few unneeded tests from configure.in +- Modify configure to use -pthread on FreeBSD 4.8, + but nothing on FreeBSD 5.1 +- Clarify that bmicrosleep() takes sec and microsecs +- Apply Franc Carter's code to specify a DB host in + bscan. +- Fix sanity login length test in stored/dircmd.c +- remove old code fro stored/job.c +- Lots of work on regress so that it works on FreeBSD + and Solaris. +- Make the default gnome-console wider (console.c) +- Add \r to the items that terminate a token. + +2003-09-20 Version 1.32 20Sep03 Beta +- Replace a number strcpy() calls with bstrncpy(). +- Added code to ensure that the names for each resource + type are unique. Two resources of different types can + have the same name. +- More documentation +- Added new full length modifiers for time intervals. + Compatible with previous method EXCEPT a modifier is now + manditory. +- Completely restructured recycling. It should work now, but + in any case, the logic is much cleaner. A lot of new + code in next_vol.c +- Added a few pthread_xx_destroy() for items inited. +- Nic Bellamy pointed out that it wasn't necessary to do + destroy() of static initialized pthread variables -- fixed + watchdog. +- update VolStatus asked for the media and volume twice. +- Changed a few more strcpy() to bstrncpy(). +- Made VolBytes=1 as indicator that the Volume is labeled. +- Modified creation of Media record to include VolBytes, + same for sql_update - also set LabelDate if VolBytes = 1. +- Copy any statically linked programs to install directory. +- Change relabel flag to label in Update_media protocol Dir<->SD. +- Change a few strcpy to bstrncpy ... +- Update Media record after an automatic tape label. +- Added more debug code to bnet_server and bnet.c to attempt to + track down Alex's SD segfault (BSOCK==0) +- Add additional debug cod for authentication errors in cram-md5. +- Implement "list nextvol job=xx" and add Volume to Dir status. +- Retry waitpid if interrupted -- needed for FreeBSD! +- Move lex.c debug level to 900 +- Add new aliases SDAddress, ... +- Final changes for variable expansion +- Possible fix to Alex's SD crashes +- Correct incrementing counters not in catalog -- reported by + Chris Allen. +- Correct memory leak in core var.c code -- reported by + Chris Allen. +- Make documentation of variable substitution a bit clearer. +- Apply Nic Bellamy's patch to dbcheck.c to fix SQL to work + on both MySQL and SQLite. +- Finally fixed the .messages that was sent during prompts + in the console with no readline. +- Implement new Include/Exclude semantics. +- Fix a good number of segfaults reported by Chris Allen in + the variable expansion code. +- Print warning message if a job is blocked by user unmount. +- Fix additional variable expansion problem reported by Chris Allen. +- Fix pathconf() error status bug that caused a segfault on + a FreeBSD system -- reported by Gernot Hueber. +- Make sure the console sends ".messages" only when at the + command line prompt. +- Apply a patch from Nic Bellamy that corrects a file descriptor + leak in the Storage deamon when a job is canceled. (Thanks) +- Implement < and | in File daemon. +- Implement ClientRunBeforeJob and ClientRunAfterJob. +- Corrected BSRatEOF to be BSFatEOF in btape -- + reported by Lars Koller. +- Documented BSFatEof +- Eliminated save_level in FD replaced by JobLevel. +- Increased MAX_RES_ITEMS from 35 to 50 to handle + new ClientRunBeforeJob ... +- Add line number in error message for restore from file. +- Correct editing of jobids (misplaced comma). +- Implement restore files. +- Quickie patch to allow Purged Volumes to be mounted. + Must review algorithm. +- Eliminate a duplicated query from query.sql +- Restructure ua_restore.c so that I can add restore files. +- Correct positioning problem at beginning of a second volume + introduced with the new forward spacing code. +- Eliminated a sprintf() in the tree routines. +- Doc updates +- Added HOST_OS, DISTNAME, and DISTVER to the status output. +- Eliminated a few stray Dmsgn(000, messages making them either + debug_level 100, or Pmsg(). +- Made the default "Maximum File Size" 1Gbyte in SD. +- Cache path in tree.c to reduce calls to make_tree_path +- Documentation updates +- Implement forward space file and block when reading a bsr. +- Fixed a bug in db_find_next_volume() where the VolStatus was + not being returned. +- Rework some of the query.sql records that were incomplete. +- Fixed an ambigous SQL statement in restore. +- Fix proper sorting order in restore display last 20 jobs. +- Remove duplicate JobId's in feeding the directory tree. +- Fix an orphaned ua buffer due to a return that should have been + break so that cleanup code executed. +- Changed some strcats and sprintfs int bstrncat() ... to prevent + possible buffer overflows. +- Fix max file size code on tape so that after writing EOF, + an appropriate jobmedia record is created. +- Fix error messages in dev.c, which were copied into lots of + different subroutines without updating the text. +- Add reposition_dev(), and make more of the return statuses of + dev routine standard. +- Eliminate old semaphore and workq code. Keep only new jobq code. +- Try to get a better default size for the gnome-console +- Add code to avoid race conditions in starting/stoping the + heartbeat thread. +- Correct potential race condition in heartbeat_stop(). +- Correct segmentation fault in mysql.c if no password given. +- make pm_strcat and pm_strcpy return the string length +- Use Phil's code to get the unadorned job name. +- Move the MTIOCERRSTAT from just after a write() failure to + after writing the EOF marks on FreeBSD systems. +- Enhance packet too big error in bnet.c and add some + ASSERTs in the send code. +- Set heartbeat interval to zero by default. +- Add Recycle to list of Update Volume parameters. +- Use bget_dirmsg() wherever possible in Director. +- Split next_volume code from catreq.c to next_vol.c +- Consolidate editing job codes into a single routine. +- Add Job resource name +- Remove check for Win32 attributes in bls. It doesn't + need to read them, only print ls -l. +- Add SDConnectTimeout in FD. +- Add Scott's perlgui directory +- Upgrade from RH7.3 to RH9. New autoconf. +- Eliminate gnome2-console directory. +- Correct English in status command. +- Eliminate old shell expansion code and use BPIPE to call shell + with echo command. +- Documentation as usual. +- Add a new bacula.spec for Mandrake +- Add ownership to alist items. Default the list owns the items. +- Make record_cb return a status (preparation for internal use). +- Remove all clearing of remainder in read_record.c -- not necessary +- Write a tapetest program for FreeBSD end of tape testing. +- Modify read.c in Bacula to use read_record.c +- Implement multiple records in read_record.c. One for each session that + is open. Free the record with the EOS_LABEL is found (or at the + end of the scan). + +2003-08-02 Version 1.31a 02Aug03 Released +- Yifang Dai reported a case where he stress tested Bacula and + backed up to four volumes, but only two were selected for the + restore. This is because I forgot that the selection could + span a volume entirely. +- Added a missing CLIENT_FOUND_ROWS to the second attempt to open + the MySQL database -- this prevents UPDATE errors if nothing + actually changed. +- Applied corrections to the manual supplied by Bob Collins. Many thanks! + +2003-07-30 Version 1.31 Beta 30Jul03 +- Integrated Robert Mathews improved description of Priorities into + the manual. +- Chased down the "The data is not valid" bug on WinMe/98/95. +- Found an orphaned buffer in the set_attributs part of WinMe/98/95. +- Add sleep(1) to console when it gets a SIGTSTP signal + to prevent it from using 100% of the CPU. +- Improve description of Priorities. +- Add a bit more documentation to jobq.c +- Complete hash table routine htable.c htable.h +- Change M_INFO to M_ERROR in attribs.c for Windows errors. + +2003-07-23 Version 1.31 Beta 22Jul03 +- Apply a patch from Nic Bellamy that clarifies the error messages + during recycling volumes. +- Documentation. +- Clear VolCatInfo in askdir.c so that readbytes is zeroed. +- Add SD statistics to backup report. +- Removed old workq code. +- Fixed rescheduling after error. +- Fixed delayed starts which were not working. +- Added priority to values that can change when starting + a job. +- Complete implementation of new job scheduler. jobq.h jobq.c + This code is turned off unless specifically enabled in src/version.h +- Integrate code from Nic Bellamy to check for recycled volume in + mount.c in SD. +- Fix a couple of bugs in dlist.c +- Begin implementation of new job scheduler. +- Take serial.h provided by David Craigon, which corrects differences in + prototypes between serial.h and serial.c. +- Make db_get_media_ids() return Media Ids only for the current pool. +- Add new jobq.h and jobq.c drived from workq. +- Add JobPriority to jcr, and Priority to Job resource as well as + to the run line in a Schedule. +- Remove unused pool record from autoprune.c. +- Implement Nic Bellamy's RecycleCurrentVolume. +- Implement RecycleOldestVolume. +- Begin adding new JOB_QUEUE code to the Director. +- Create a single routine recycle_volume(). +- Retry accept(), bind() and socket() if EINTR occurs. +- Implement insert_before(), insert_after(), and empty() for dlist class. + Also require offset to be given by giving item and link address. +- Make error some messages in smtp.c a bit more explicit. + +2003-07-12 Version 1.31 Beta 14Jul03 +- Marc Brueckner reported a crash during restore (a missing tree->) +- Moved host.h.in file from filed to src. +- Update btraceback to include host os, distname, distver in output. +- Split list (in lib) into alist and dlist both with .h and .c. +- Update home page to include Project status page. + +2003-07-12 Version 1.31 Beta 10Jul03 +- Manual updates. +- Clean up some unused variables detected by the IRIX compiler. +- Test two directories on Win32 -- caused a crash. I forgot + to NULL the uid cache pointer after releasing it. +- Use bstrncpy() instead of strcpy() in find_files. +- Clear a few linked lists in the temp directory packed in find_one.c +- Eliminate an unnecessary variable in attr.c +- Clear the cache pointer after release in idcache.c +- Implement a new C++ doubly linked list class. + +2003-07-08 Version 1.31 Beta 08Jul03 +- Update document for Win32 stuff. +- Ensure VolStatus value for update is permitted. +- Fix cached_path so that it is local to the jcr, otherwise, there + are problems from job to job. +- Fixed idcache.c which was not thread safe and didn't release memory, + and didn't always edit the userid correctly. +- Correct missing pool memory allocation in update voluseduration. +- Release mutex in pool_mem.c before triggering ASSERT. +- Lock database while recycling. +- Fix a bug in editing since where I forgot to update to the new size. +- Implement all the command line update arguments. +- Modify label to use volume=xxx for the new volume and oldvolume=yyy + if doing a relable. +- Added yes to run command line arguments. +- Clear errno in editing a string to utime. +- In restore print only volumes that will actually be used. +- Fix bextract -- add appropriate breaks in new case code. +- Add a new test -- bsr-opt-test for testing bsr optimization. As usual, + it pointed out a bug where the directory tree handling code destroyed + the restore arg list. +- Many updates to the manual. +- Pass prefix links flag to FD. +- Sort list of commands for Console +- Set default FD and SD concurrent jobs to 10. +- Rework the find next volume code in catreq.c to correct some minor + but subtle logic errors and to eliminate a goto. +- Did spell check on manual. +- Removed bindtextdomain() as it conflicted with RH8.0 headers +- Fixed parse_args to pass address of POOLMEM struct. +- Constrain FileIndexes written to BSR to be within range of Volume. +- Suppress writing volumes to BSR if they are not actually referenced. +- Make FOPTS use alist for match and base entries. +- Pass prefix_links to SD. +- Add command line interface to most items in "update volume=xxx" +- Add command line interface to restore "jobid", "current", "before", "all". +- Add command line "yes" to run command to supress prompt. +- In new alist code, free only if allocated. +- Overload [] with get() code for alist. +- Fixed the code that wrote FirstIndex and LastIndex to the database. It + was not correct at the end of a volume (basically included indexes in + the second volume). +- Fixed bscan to work with the new code and to properly build JobMedia + records. +- Added code to the read end of block.c to properly track Volume bytes, + blocks, and files. I thought this was not necessary, but it is critical + for bscan to work correctly. +- Modified read_record to properly track First/LastIndex -- needed by + bscan. +- Eliminated some old Volume write code. +- Changed RecycleOldestVolume to PurgeOldestVolume +- Added what I hope are the "final" touches for Win32 stuff. There + are still a lot of annoying little problems. +- Added the "portable=yes/no" option to Include. If set, it disables + use of BackupRead/Write for Win32, so in principle, the data should + be portable. +- Pulled in more recent config.sub and config.guess from /usr/share/libtool +- Replaced the system fgets() by a Bacula version that ignores + interrupts (i.e. signals). This truncated output from child processes. +- Make file_index int32_t everywhere. +- Moved LinkFI into ATTR structure. Also integrated data_stream there too. +- Moved code that sets the stream for writing into create_file. +- Removed a signal(SIG_IGN, SIGCHLD) from dird.c that prevented getting + the status of child processes. This allowed removing the FreeBSD + kludge to bpipe.c -- the status is now obtained correctly. +- Hand scan the stream header that arrives in append.c to avoid machine + dependencies of sscanf(). +- Implemented code to put Data stream in Attributes record. +- Check if data stream is supported, if not, ignore. +- Fix crash when multiple Includes are given (missing parens). +- Clear WroteVol in askdir.c when JobMedia record is created. +- Implement simple array list class for use in Bacula. New files + are lib/list.c lib/list.h. Probably will not use until version 1.32. + +2003-06-24 Version 1.31 Beta 22Jun03 +- Change Purging Oldest Volume message to Recycling Oldest Volume. +- Limit results from find_oldest_volume to one. +- Fix possible buffer overrun in the restore tree handling routines. +- Fixed a crash in VerifyToVolume because I moved the close_db() + down into the free_ua_context() and should not have done so. +- At a "var" command in the Console that does variable expansion and + prints it. +- Implement first cut of estimate command. +- Change find_next_volume() for oldest to use LastWritten instead of + FirstWritten -- also add Append to volumes slected. +- Do normal recycling before checking for RecycleOldestVolume. +- Implemented block rejection on read. This should make restores run + much faster. Next release will have block positioning -- even faster. +- Very preliminary support for Gnome-2.0. Text does not yet work. +- Correct buffer corruption in find_one.c with long directory names (Win32). +- Make setting owner on directories M_ERROR rather than M_WARNING. +- Fix printing of JobId in run listing for restore job. +- Reduce heartbeat read check interval to every 10 seconds on Cygwin because + there is no working pthread_kill(). +- I finally designed a test for multiple simultaneous jobs, + and sure enough it broke when the jobs are split over multiple + volumes. Now fixed and working! +- Eliminated a few "duplicate" error messages by testing for canceled. +- Add ASSERT for device use count going negative. +- Fix BlockNumber checking in stored/read.c (got first one wrong). +- If socket is timed out, do a shutdown(fd,2) instead of close(). +- Fixed return status from SD to FD by setting JobStatus in append_end() +- Add arrays to Environment variables. Elements separated by |. +- Implement Reschedule On Error, Reschedule Interval, Reschedule Times. +- Add a new pool PM_NAME -- gets a name length buffer. +- Implement fast cancel of FD blocked on writing to SD by using + pthread_cancel(). Turned off on Cygwin due to bug. +- Add code to handle EAGAIN in writing (probably not necessary). Use + select(). +- Eliminate size_t from pool control buffers. +- Complete Counter resource. +- Complete LabelFormat (except for WrapCounter) plus counter + inrementation. +- This needs a database change to eliminate PoolId from counters. +- Made a more compact format for the document index. +- Add Phil's checkhost to examples directory (thanks Phil). +- Implement generalized LabelFormat (documentation to come). +- Implement Counter resource. +- Cleanup examples/kernsconfig +- Implement restore to a specific date. +- Fixed a but in automatic labeling (and use durations expiring) analysed + and reported by Rob Proffitt (thanks!). +- Cleaned up a few Cygwin compile problems. +- Made a 10Jun03 release (it is in production here) +- Finally took the big plunge and fixed restoration of links and other + files that have been changed between the backup and restore. Basically + if the file exists, it is deleted, then re-created. +- Purge only Volumes marked Append, Full, Used, or Error. +- Allow pruning of volumes marked Append, in addition to Full and Used. + + +2003-06-10 Version 1.31 Beta 10Jun03 +- Eliminated all plain email addresses and replaced them with " at " in + place of @ to reduce havesting by spammers. Doc + Web Site. +- Started working on making POOLMEM a struct rather than a char. Lots of + work to do. +- Fixed bscan to handle -V option. +- Fixed bscan to handle two File volumes. +- Corrected a misplaced comma it get_fileset() in cats pointed out by bscan. +- Added two Volume bscan test to regression scripts -- write two volumes, + purge and delete everything, bscan the tapes, and do a restore. It works! +- Reorganized the backup/restore code to move the attribute information into + an ATTR packet, which is passed in place of tons of arguments. Moved some + code into lib/attr.c and lib/attr.h. Then eliminated all the duplicate + attribute code. +- Moved FT_ types into baconfig.h. +- Defined FT_ types to use only 16 bits. The upper half of the word is + reserved for adding optional fields in the attributes packet. +- Moved jcr->where into common part of jcr and have it deleted in lib/jcr.c +- Put all attribute reading code on switch() with cases instead of a big + if (restore.c, bls.c, bextract.c, bscan.c, ...) +- set_attributes() now takes ATTR packet, and thus has much fewer args. +- moved print_ls_output() into lib/attr.c +- implemented is_stream_supported(). +- create_file() now takes ATTR packet so has many fewer args. +- add mtime_only code. +- Rewrote bnet.c read and write routines to quit if bsock->terminated is + set. This will allow setting non-blocking writes and then receiving + a termination message and terminating the Job immediately rather than + waiting 2 hours for the line to timeout. +- Put catalog db name in some error messages. +- Code for restore is now much cleaner, with much of it in lib/attr.c, + and it is now common for all readers. +- Add first cut of proper support for Win32 Backup code. +- Fix bug in restore Win95/98/Me. +- Pass mtime_only flag to FD. Needs config record. + +2003-06-04 Version 1.31 Beta 04Jun03 +- Fix block.c to check errno only in case of return status -1 as + suggested by Justin Gibbs (FreeBSD). +- Implemented qfill command in btape for quick testing write/read of a tape. +- Discovered that FreeBSD pthreads re-use the same thread id, which causes + the SD to fail when a user leaves a device unmounted (old pid is reused + and lock_device() thinks the same thread is calling again leading to + inconsistent state). Set id to zero after blocking the device during + unmount. +- A lot of clean up, moving subroutines around for TermCode. +- Free ua->prompt when Job terminates. +- Add AutoPrune and Recycle to values copied from Pool resource + into Pool record on create/updated. +- Implemented bsr for Verify VolumeToCatalog. +- Improved the Verify Job report using SD and FD term codes. +- Split tree handling routines from ua_restore.c to ua_tree.c +- Split bsr routines from ua_restore.c to bsr.c and bsr.h +- Fixed clash between FD and SD returned job values. Report now contains + values from FD. Maybe I should change? or give both. +- Attempt to fix negative use_count for dev packet in SD by adding + a couple of open_dev(). This may be cause of Dan's crash. +- Clear no_wait_id when device is unblocked. This may be cause of Dan's crash. +- Eliminate old "new lock code". +- Add configure of mtx-changer for mtx path. +- Always rewind tape before releasing it (for FreeBSD). +- StartBlock was one too large for second volume. +- Fixed restore to display status from both SD and FD. +- Unified return status message for backup and restore. +- Corrected segmentation fault reported by Dan when doing "label barcodes" + on a File. +- Corrected a segmentation fault when attempting to send a JobMedia record + to the Console -- reported by Dan. +- Added MySQL documentation for using the threaded libraries. +- Added new columns and tables to Catalog database. +- Wrote alter scripts and tested them (thanks to Dan for the help) on + MySQL and SQLite. +- Started using enums where ever possible when passing flags to + subroutines. This helps make the source much more readable. +- Corrected a bug where a vertical database listing was being used in + the query command. +- Added new argument to parse_args() to prevent command arg overflow. +- Renamed ua_db_query.c ua_query.c. +- Split scan.c out of lib/util.c +- Perhaps I have *finally* fixed the command line history in gnome-console. +- Added support for smartalloc for any global new or delete command + by overloading the global operators. +- Made the default time with no qualifier day rather than seconds. +- Fixed a bug in the store_size() routine that improperly converted from + double to uint32_t. +- Started using "bool" where possible. +- Zap SD session key once it is used. +- Added *lots* more checking for strcpy -- bstrncpy(), ... +- Added CreateTime field to FileSet record and print it to distinguish + FileSets. +- Print an information message when a new FileSet is created. +- Include the FileSet date/time in the Job report. +- Indicate if a Job is upgraded in the Job report and from what previous level. +- Incremented the database version. +- Ensure that any DB error message is printed if the start_time of a previous + save is not found. +- Free orphaned buffer in ua_restore.c in case of database error. +- Implement enum for response DISPLAY_ERROR and NO_DISPLAY +- Implement enum for create_pool (POOL_OP_CREATE, POOL_OP_UPDATE). +- Make sure FileSets printed in restore are in order. +- Add a number of bstrncat, and other protected string operations. +- Clean up old structs in dird_conf.h +- Remove all Slot invalidation code. +- Add Automatic choice message to all do_prompt() calls. +- Eliminate JobId from restore if not used. +- Clean up a few error messages. +- Make fill/unfill commands work correctly in btape. +- Enhance btape fill and unfill commands. +- Implement real Pmsg() code so that negative levels work in Dmsg() +- Implement block number check -- had to turn it off because it doesn't + work. Need to verify that it is the correct block and that block + numbers are properly written. +- Moved readline from depkgs1 to depkgs. +- Reworked the configure code to handle readline correctly. This was broken + mostly due to the fact that the readline routines are nested down one + directory. Also, I missed one header file that was needed (possibly added + in a later version). +- Put correct include on the dependencies make for Console readline. +- Remove JobMediaId from VOL_PARAMS (no longer needed). +- Sort VOL_PARAMS by JobMediaId using SQL in cats. +- Add jcr as argument to block.c read_block... routines so that error + messages are immediately displayed. +- Make bsr_dev() edit an error message if it is turned off and return 0. +- Add checking for the BlockNumber in the read routines -- lots of + false matches are found -- much check writing end. +- Now sort bsr volumes by JobMediaId -- produces better results. +- It turns out that under certain circumstances, when doing a restore, the + Volumes will not be written to the BSR in the correct order. I don't + know exactly why, but many thanks to Dan Langille for reporting this. + The solution is to sort the Vol_Params within each bsr (done), and to + sort the bsr chain (not yet implemented). Note, the bsr chain should + always be in order unless the user explicitly specifies the JobIds in + a different order. +- Began implementing C++ structs rather than typedef structs as in C. +- Added volatile to a lot of variables that are used in two threads at + the same time. This should prevent improper optimization. +- Fixed a missing space in the "run job=xxx where=" the where was + glued to the end of the previous stuff (bootstrap filename). +- I *finally* found the cause of the mysterious failure of shell expansion. + It was due to the read() getting interrupted! That's what opening up + SIGCHLD will do! +- Remove unused default tape drive names. +- Create a new status.c file in stored and split the status code out of dircmd.c + +2003-05-22 Version 1.31 Beta 22May03 +- I discovered that C++ permits "prototyping" structures e.g. struct A; is + a valid statement. This permitted me to eliminate all the void *jcr, in + favor of JCR *jcr, which pointed out a number of bugs in block.c. +- Change lib/bmisc.c to bsys.c (system routines). +- Add set_working_directory() to lib/util.c +- Remove some unneeded setjcr_job_status() since Jmsg(jcr, M_FATAL,...) + already sets it. +- Do not increment jcr->Errors for Fatal errors -- they represent non-fatal + errors. +- Fix a few more places in FD where Errors was not incremented. +- Print unexpected (or incorrect) termination message returned from FD. +- Use switch() instead of giant if statement in verify_vol.c +- Protect overrun from do_shell_expansion() by passing max length. + +2003-05-20 Version 1.31 Beta 20May03 +- Add mandrake to platforms +- Suppress error messages if no bytes written to tape. +- Suck up bootstrap file even on error so that Dir sees our error message. +- Pretty much finish off the Win32 backup code. +- Add DESTDIR code to autostart for creating non-root rpms +- Echo input read from a script in Console. +- Clarify error message for VerifyToCatalog +- Add error counts in restore for M_NOTSAVED. +- Adapt bfile.c to handle both Win95 files as well as WinXP files. +- Add MTIOCERRSTAT for FreeBSD (clear error status). +- Correct double jobmedia record when cancel at EOM reported by Phil. +- Correct possible write at beginning of tape during cancel at EOM + as reported by Phil. +- Document in detail how Incremental and Differential jobs work. +- Add non-fatal error count on backup and restore Job reports. +- Remove a couple uses of lld -- now prefer to edit and use %s. +- Fix directory could not be accessed on Win32. +- Improve message indicating that last Full backup not found. +- Fix free() too early in directory traversal code. +- Prune Jobs with no JobFiles or that have JobStatus!='T' +- Add a few more command line scans for prune/purge. +- Restrict valid characters in a Volume name, and document it. +- Make new Win32 save/restore work. Still a bit more to do. +- Use reentrant version of mysqlclient library. +- Use more machine independent way of finding gcc version. +- Fix race condition in sql_list where messages edited before locking. +- Lots of testing saving/restoring 6GB files. +- Add where to restore where=/tmp +- Complete implementation of Win32 streams in FD. Must test. Also, + must implement new streams in SD. +- Make termination of daemons more "error" tolerant. +- Make default "duration" days rather than seconds if there is no modifier. +- Install bcopy. +- Add detection of available Win API's so that a single binary will + work on all Windows systems. Reference those APIs through a pointer. +- Remove use_win_backup_api and enable it in bfile.c if system supports it. +- Modify dev.c so that it works if MTEOM is not defined (BSDI). +- Change MT_xxx to BMT_xxx to prevent conflicts with BSDI. +- Detect strtoll() in configure. +- Implement replacement for strtoll() for BSDI. +- Add platform files for BSDI. +- Use Jmsg() instead of Jmsg1() in acquire because File:line prefixed in dev.c +- Use Jmsg() in write_block_to_dev() so that no messages are lost. +- Rework autochanger code in restore to handle case of cassette not in magazine. +- Implement Windows BackupRead/Write(). I now have permissions right!!!! +- Additions to the manual (Purging, Autopruning). +- Add doc to code in autoprune. +- Begin adding Level = Base. +- Make Jmsg recognize console and direct messages directly back to it. +- Hopefully fix mess in mount.c when a tape expires. +- Fix restore bug recently introduced due to Unix backwards status convention. +- New bacula.spec from Scott +- Add globals for database name and version and print them in traceback. +- Eliminate SubSysDirectory in each daemon conf file. +- Implement get_yesno() and get_pint() in UA. +- Make Jmsg aware of console. Messages now sent directly to Console. +- Created a single bacula.spec.in for by the MySQL and SQLite builds. +- Added proper configuration to console.in and gconsole.in +- Start adding textdomain() code for translating. +- A number of minor code cleanups. +- Rework shell expansion just a bit. +- Add rewind() when releasing a tape before acquiring the next one. +- Implement addition of Description in Service entry for Win32. +- Update manual to eliminate unclear autochanger points as mentioned + by Dan Langille. +- Implement DESTDIR everywhere. +- Rework spec files for 1.31 and combine the main spec and the client + only spec making a client package. At the same time, rename the packages + so it is a bit clearer to the user. Also fix the build to work + as non-root (scriptdir was not prefixed with $RPM_BUILD_ROOT). +- Correct Auto Changers and all other forms to Autochangers in the + manual. +- John reported needing to do two "mount" requests, and indeed that + was the case. It turns out that pthread_cond_timedwait() does not + always return zero when awaken by a pthread_cond_signal(). +- Include RunBeforeJob and RunAfterJob output in job output report. +- Implement a "real" Admin job that prints a mini-job report. +- Clean up a few error messages in findlib and filed. +- Recent changes to gnome-console caused initial output to be + lost -- now fixed. +- The Win32 version crashed after each job. After hours, it turns out + that when running with LocalSystem privilege (and not as a user), when + Cygwin does pthread_kill(id, SIGUSR2), it gets a memory fault. +- Moved stored/fdmsg.c to lib/bget_msg.c, and moved SD messages to + stored.c. So now bget_msg() can be used by both the SD and FD. +- Changed Director's bget_msg() to be called bget_dirmsg() to avoid + any possible confusion. +- Implemented bget_msg() in general everywhere in the FD except for + job.c where the Dir and FD are communicating. +- Implemented a Director only heartbeat in the FD for the cases where + there is either no connection to the SD or the FD is already reading + from the SD. start_dir_heartbeat() ... +- Add heartbeat to restore and verify volume. +- Add "Heartbeat Interval" to Storage resource, which sets interval the + SD sends heartbeats to the FD and DIR, 0 disables heartbeats. +- Add "Heartbeat Interval" to FileDaemon resource, which sets the interval + the FD sends heartbeats to the DIR, 0 disables heartbeats. +- Added heartbeat from FD to Dir every HB_TIME rather than forwarding + SD heartbeats. +- First cut label dialog. +- Turn on new semaphore code for simultaneous Jobs. +- Fix cancel trying to release semaphore's not acquired. +- Implement get_pint() and get_yesno() for UA. +- Implement find_arg_with_value() for UA. +- All command line "slot" to be specified for label command. +- Rework heartbeat code in FD to correctly terminate. +- Fix btraceback to use smtp and to eliminate double // +- Fix "storage" command to include ssl for verify and restores. +- Add Heartbeat code when SD is waiting on a tape -- heartbeat every 20 mins + to keep stateful firewalls from timing out the connections. +- Fix src/stored/Makefile.in typo causing problems in statically linking + btape. Thanks to Lutz for reporting this. +- Create an is_client_alive script for checking if a client is alive. + Using this script prevents generating error messages. +- Added corrections and updates to manual provided by Phil -- thanks. +- Added RequireSSL to each program/daemon configuration. +- Added EnableSSL to each correspondent for each program. +- Added the Console resource to the Director (need to + implement individual Console authorization). + +2003-04-28 Version 1.30 released +- Fix command history for gnome-console (must malloc). +- Add two cancel points in acquire_resources(). The job will not + be immediately terminated in all cases. +- The new AutoMount code broke File archives -- fixed. +- Correct watchdog mutex race introduced yesterday. +- Add JobLevel to Admin run started by UA. +- Add -v to daemon startup scripts +- Implement bmicrosleep(sec, msec); +- Implement When for "run" command. +- Remove unsigned from socklen_t definition in hopes it will work better + with older systems. +- Remove code that attempts to set PID dir and SUBSYS dir if they + do not exist because it set them to sbindir! +- Modify mount to initially attempt to read the volume if Bacula + wants a tape, none is mounted, and "Automatic Mount = yes" is set. +- Prohibit setting --sbindir and --with-subsys-dir the same. +- Fix missing argument that cause Kaboom in update slots. +- Fix orphaned bsock when UA gets error contacting FD or SD +- Nearly full implementation of Win Backup API, but it does not + work due to lack of permission! Arggg! +- Implemented restoring directory permissions as they should be. +- Implemented reasonable regression script. It found a number of + restore errors. +- Implemented the following @ commands in the console that work directly + in the console rather than in the Director. + input - read input from a file + output - write output to file + tee - tee output to file and terminal + time - print current time + version - print current version + exit - quit + quit - quit +- Implemented new bfile io routines that will permit implementation of + Windows native APIs for reading/writing files. +- By default always update hard links with the prefix, but do + not update soft links. It seems inconsistent, but it is what + cp does. +- Implement wait command in Console that waits until no jobs are running. +- Fixed the < code in Include/Excludes, which forgot to skip over the <. +- Do NOT attempt to chmod() a soft link as it will change the file behind + the link! +- OOPS! Lutz ran into a problem. In attempting to prevent string overflows, + I used bstrncpy() on a variable that was malloc'ed thus truncating + Volume names! Arrrggggg! +- Lots of documentation of new features. +- Rework Volume name scanning in console, made much more logical + and corrected a bug (confusion in calling sequence). +- Cleaned up a few error messages in cats adding more info. +- Add the IP address to error messages due to bad connects to servers. +- Implement default File output in config files so user can start + saving right away without a tape drive. +- Protect inet_ntoa() with mutex in case it is not thread safe. +- Eliminate termcap from use in gnome console. +- Remove unused SD maximum volume files and maximum volume jobs. They + are implemented in the Director. +- Make the default for Incremental and Differential saves to compare + against both st_mtime and st_ctime rather than just st_mtime. + This includes files moved or copied. + Thanks to Matthias Wamser for bringing this fix to our attention. +- On Win32 clients, make a pass through the include/exclude patterns + and change any back slashes to foward slashes. Prevents creating + unusable directory names containing both conventions. +- Move ls -l output on restored files to M_RESTORED class. +- Make gnome-console compile correctly on RH8.0 +- label barcodes now works. +- Implemented "update slots". +- Tweak btape "test" to always print suggestion for re-read last block. +- Implemented "Cleaning Prefix" +- Update alter_mysql_tables.in +- More work on barcodes. +- Zap VolHdr in SD when attempting to label a tape that is not + there. Prevents false tape names the next label command. +- First cut of bar code reading is implemented. It doesn't do + anything but return the list to the Director. +- Implemented relabel command that relabels "Purged" Volumes. +- Check exit code in RunBeforeJob and err the job if it is non-zero. +- Remove old testsuite -- too complicated +- Print length when Authorization fails because of bad length. +- Fix problem of NumVols in Pool getting reset on startup. +- Implement full listing of DB records by listing them vertically + instead of horizontally. +- Make changes to mysql scripts as suggested by Lutz Kittler +- Fixed code to write Uname to Client record. +- Fixed a problem (in btape) where Pmsg() was not printing. +- Moved re-read last block test to last in "test" command of btape. +- Lots of new documentation. +- Fixed newvol.c to handle retrying 10 times if the volume name already exists. +- Removed int_least16_t from sha1.h because it does not exist on some systems. +- Release job in SD if canceled and waiting on a mount (better cancellation). +- Prompt for Client in restore if not specified. +- Print "Selection is empty!" if no selection list found. +- Add new spec files and bacula.desktop from Scott. +- Update client every time a job is run. +- Add verbose option to daemons for printing more user error info. +- Test if console works with readline 4.3 (yes, it is OK). +- Release new depkgs +- Release new winbacula. +- Add Uname info to Client DB record. +- Improve error messages and make them more consistent when a non-existent + Device is requested. +- Separated the -mwindows option so that only Windows programs + are built with it (bacula-fd, ...) the tty tools such as console + dbcheck, smtp, testfind, ... are now able to be run in a standard + Windows DOS box. +- Add | and < options to Exclude the same as in Include. +- Add typed in input to the text window in the gnome-console. +- Change function that gets the entry text (previously had orphaned buffer). +- Fix multiple Director problem in gnome-console (thanks to Lutz Kittler). +- Thanks to Renato, I was able to test Bacula on a FreeBSD tape drive. + There are a number of significant differences: 1. reading less than + the number of bytes in a record returns an I/O error. 2. ioctl(MTEOM) + looses the file position. 3. Reading two two EOF marks (or ioctl(MTEOM)) + leave you positioned after the second EOF, so you must backspace file + to be able to append. +- Added BSF at EOM = yes/no to Device resource to allow proper positioning + at the end of a FreeBSD tape. +- Made btape "test" do much better testing of error conditions (i.e. + it now ensures that the append went well). It will automatically + detect problems and apply fixes and then retry the test, if it + finally succeeds, it clearly says what directives need changing. +- Add Scott Barninger's rpm changes to the build environment +- Add changes to mtx-changer so users can add eject and sleep for + certain autochangers. +- Implemented FreeBSD chflags (user defined flags). +- Turn restore errors during setting of owner and modes into + warning messages -- for restoring files as non-root. +- Fix how prefixes are handled in restoring soft links. +- Modified btape "test" command to do only those things that + Bacula actually does. There is much more explanation, ... +- Update manual. +- Finally had to back up to gcc version 2 from version 3 to avoid version + 3 nightmares. +- Final cygwin tweaks. +- Move start time to *after* the resource locks are acquired. +- Unable to duplicate Phil's disabling of Bacula with nmap, but + did make the authentication code a bit more conservative for + dealing with bad input. +- Added code to the query command to escape all strings input + before substitution and sending to the SQL engine. +- Escape user entered filenames for restore command. +- Cleaned up the waiting code a bit -- using broadcast instead + of signal and counting the waiters. +- Implement new pthreads semaphore code. +- #define new semaphore code rather than workq on USE_SEMAPHORE. +- Lots of improvements to the document to address recent support requests. +- Implement cycle through a set of tapes suggested by Eugeny + Fisher with the "RecycleOldestVolume=yes" record in the + Pool resource. Basically this record causes Bacula to purge + to oldest tape when no more tapes are found. +- Correct a number of small incorrect interactions between limit + variables during recycling. +- Corrected a bug in db_create_media_record() where VolMaxFiles and + VolMaxJobs was not written to the database. +- When the Director starts, the Pool record is updated in the + database with the current contents of the Pool resource. +- Corrected bnet_connect() to immediately stop (rather than looping + for the timeout period) if there is a fatal error (socket, or + hostname to ip). +- Reworked "purge" code to make purging Volumes easier. +- Made "list volumes" list the volumes in all pools -- also + "list volumes pool=Default" does not produce and error message. +- List Pool record after doing "update pool". +- Remove pid file code from Win32 -- not really necessary. +- Make bnet handle null jcr during cancel rather than crash. +- Add CygwinInstall.bat and CygwinUnInstall.bat +- Add db_lock() around newvol.c code to prevent race condition if multiple + callers want a new Volume name. +- Lots of cleanup to Win32 code, with additional error messages. +- Make Bacula work on Win95 (test for GetAttributesEx). +- Add better error messages when end of media is reached or volume + capacity execed. +- Turned off signal catching in readline(), necessary to keep console + from crashing on ctl-Z with RedHat 8.0. Thanks to David Craigon for + testing this. +- Make the 3rd and hopefully final change to the Finclude structures. + This new version permits multiple sets of options (more code to be + written) to be applied against the same set of files. Thus one can + have options that with match of *.gz and a different set of options + for *.c, ... +- Integrated GNOME Console font resource code supplied by Phil Stracchino. +- Check for job_cancelled() in bnet_connect() code to stop wait loop if + client not available. +- Fix early end of file scanning conf file in lex.c, which previously + caused ABORT -- now reports error. This could happen with an unterminated + string for example. +- Move Maximum File Size code before write and detect error on writing EOF. +- Additional fix for Solaris 2.6 and a bdb.c fix submitted by Armin Buehler. +- Added detection for Solaris 2.6, which uses older setsockopt() calls. +- Defined sockopt_val_t for setsockopt() calls. +- Added fixes sent by Bevan Anderson that fix multiple connects to FD + (I zap keys for security, so must put back dummy key). Also a fix + to the Internal database that wrote garbage after the filename in + the database. +- Back out the __SVR4 changes. +- Add automatic configuration of socklen_t +- Attempt to fix problems reported by Lutz with multiple simultaneous + open file Volumes (experimental code). Serialized acquire. This may + fix the problem, but more thought and testing is necessary. +- Add table of "supported" autochanger models. +- Add Solaris 2.6 (__SRV4) changes sent by Peter Schmitz. +- Correct tape selection code in SD (|| => &&). Thanks to Chuck Hemker + for the patch. +- Eliminate FileOptions. Implement new Finclude and Fexclude that + have file options contained in it. New structure must be transmitted + to FD. +- Split Include/Exclude into new inc_conf.c file. +- Cleanup new Include/Exclude and FileOptions. Structures in Director + now correct. Must transmit FileOptions to FD. +- WARNING: With the adddress and port code in the Catalog you MUST + remove old address= and dport= records!!!!! +- Added code to remove cancelled jobs from the workq -- needs testing. +- Added first cut AIX from output James MacLean sent me. +- Second cut of FileOptions. +- First cut of parsing FileOptions and Counters. +- Added address:port for MySQL as well as socket for local access. +- Fixed job.c in filed to properly handle excluded files. Apparently + I changed the daemon protocol but forgot to update the code. +- Enhance testfind to handle include and exclude files +- Fix getdomainname() prototype for Darwin +- Added new -u and -g options for specifying userid and groupid to + use when running, so that Bacula can reduce its privileges. +- When Bacula was hanging due to an NFS volume being down, I + fixed a few places in the File daemon where is should have immediately + terminated the connection instead of waiting for the Director to do so. +- Added first cut support for Darwin. +- Temporarily comment out the O_NOFOLLOW to avoid possible subtle problems. +- Implemented O_NOFOLLOW in creating files in create_file.c to prevent + creating a file at the end of a symbolic link. +- Use chown() if lchown() does not exist (e.g. Darwin). +- Always close stdin on startup to avoid having /dev/console attached. +- Change all DATE occurrences to BDATE because it is used by Cygwin headers. +- Add printing of Volume names in SD status output. +- Display all open devices in device chain in SD status output. +- All changing Pool in console run command. +- Thanks to Eric Bollengier for pointing out that the run_program() + return status was not correctly generated. Now fixed (I hope). +- Corrected crash in Internal Database getting Volumes. +- Flush all daemon messages at the end of every job. +- Fix Install.bat script so that Bacula restarts after reboot on WinNT/2K systems. +- Minor changes in the gnome-console directory. +- Integrated in my old Tcl/Tk code into src/tconsole and moved it up + from C to C++. Pretty crude, but it is a beginning. +- Close syslog() %n exploit in message.c +- Edit space before each line in gconsole. +- Added INCEXE structure so we can have FileOptions. +- Added support for multiple simultaneous open file volumes. +- Fix hard linked files so that the one saved is always restored. +- Add * to restore "dir" listing to indicate marked files. +- Add ability to make md5sum and sha1sum in lib directory. +- Work a bit more on the new daemon protocol. +- Use unmask of 022 or more restive +- Create File volumes with 0640 permissions +- Added support for SHA1 signature. Need to modify DB to have type. +- Document SHA1. +- Work a bit on getting proper child status from bpipe calls. +- Added Ludwig's mtx-changer to the examples/devices directory. +- Added a Warning not to use the Internal Database when it is initialized. +- Compiled and tested SHA1, and added it to the library. +- Added code to print the "load slot" status after autoloading. + +============================================================================= +2003-01-24 Version 1.29 released +23Jan03 +- Tightened up permissions on all .conf files to be 640 so they are not + world readable. +22Jan03 +- Added prefixlinks=yes/no Job record to specify applying the Where + prefix to absolute soft links. Code is not yet passed to FD, because + FD would then be incompatible with version 1.28. +- Added skeleton of installation for Gentoo release for Patrick Naubert. +- Add timer on open() for reading or writing a FIFO file. +- Put btraceback and btraceback.gdb in sysbin dir (a bit of polution, + but at least dumps will work). +20Jan03 +- Added "append" all messages to a log to default bacula-dir.conf +- Added WriteBootstrap to default bacula-dir.conf +- Made smartall.c print "Out of memory" if malloc() fails. +- Added pthread btimer routines. +- Added timer to FIFO open statement +- George was still having problems with VolUseDuration failing. + On looking into it, one line of code subtracting 1900 was + mysteriously missing from the source -- bizarre. +18Jan03 +- Yesterday's version corrects all the problems I was + previously having, and my production jobs are now completing + properly. +- Added a #define dev_cap() to test the capabilities bits. I just + makes the code a bit shorter and a bit simpler. +- Added phase 1 support for an output fifo device. The big + difference here is that it is a STREAM device, which means that + Bacula will only write to it and not read. Thus, Bacula assumes + that the correct "Volume" is mounted and will construct a valid + label (without needing the Volume to be prelabeled), and write + to the device. +- Added phase 1 support for input from fifo device (suppress re-read, + add empty buffer flag). +17Jan03 +- Improve printout of dbcheck with # files/path fixing. +- Zap SD authorization code after use. +- Added <> back to smtp (think about this some) +- Doc +16Jan03 +- Massive change to add jcr as the first argument to nearly + every db_ call. This is because I was storing the jcr in the + db structure, which will not work because everyone shares + exactly the same structure. +- More cleanups of error termination status in filed. +- Found another bug in message.c where %s was missing in JmsgN. A lot + of cleanup in message.c +- Found places where filename listing was made (restore, verify + vol) where the buffer could possibly overrun. +- Chain include files on the end of the list so that the + order will be correct. +- Rewrote mtx-changer to output one slot per line terminated by + a colon followed by an optional Volume Tag for the "list" command. + Preparation for handling Volume Tags. +- My production crash remains elusive. Adding debug code or running + under the debugger eliminates the problem. I found a case in + message.c where I was extending the message string by two + characters to send it to the console. VERY BAD. Rewritten. +- Started implementing fifo and program handlers (i.e. streams) + in the Storage daemon. Lots to do. +- Added a trace capability where trace statements are written + to a file. Tmsg(). Hopefully this won't be used much. +- Running lots of "production" saved by scheduling a few minutes + after the current time -- slow process ... +15Jan03 +- Removed <> on From and To in smtp.c as suggested by James MacLean. +- Added code to suppress spurious error messages during cancel, + but I was unable to eliminate all errors -- to be worked + on later. +- Up size of print buffer from 2000 to 5000. +- My production run failed again. I'm beginnig to suspect + hardware problems because running by hand or under the + debugger always works -- we will see. +- Added Update Volume VolFiles to reset correct tape files + a bit dangerous. +- Use the mysql_escape_string() rather than internal version. +14Jan03 +- Cleanup handling of JobStatus by creating a subroutine. +- Fix a number of minor things with JobStatus. +- Print FD and SD JobStatus on backup report. +- Add JCR to findlib -- so now FD stops normally when cancelled. +- My production Director segment faulted during the second Job. + I haven't been able to track it down. After rebuilding, all + jobs finished correctly. +- In investigating the duplicated Paths, I found that there + were 10,552 of them -- only Path records. After checking the + code, I do not see the reason, but I've enhanced the code to + print the full path name. +- I made a few improvements to tools/dbcheck. Mostly it provides + a bit more feedback with verbose mode on when eliminating + duplicate filenames or paths. +13Jan03 +- During four simultaneous backups, the File daemon started + detecting buffer corruptions. It turns out to be due to the + fact that the smartall.c routines were not thread safe. They + are now. +- Based on input from James MacLean and team, I eliminated a number + of places where printf could be recursively called by using "%s". +- It turns out that because of an error of my understanding of + mysql_escape_string(), the last argument was taken as the length + of the string to be escaped rather than the maximum length. I've + now corrected all my code -- Thanks James. +12Jan03 +- George Motter reported problems with UseDurations, and it seems + that there were a number of inconsistencies and problems with + FirstWritten and LastWritten. Hopefully for the most part they + are now corrected. Also fixed LabelDate if done through Console. +- Try to chase down reasons why there would be buffer overruns. + Added P & V around referencing last_fname for status. + Rewrote find_one.c with MEMPOOL, but not yet tested enough + to commit. +10Jan03 +- Give extra margin to converting filenames from Unix to Windows + in attribs.c of findlib -- dumb cygwin API doesn't provide for + a length. +- Added file:line traceback to size_of_pool_memory, check... and + realloc in an attept to get closer to the memory overrun reported + by James MacLean. +09Jan03 +- Made yet another fix to quoted string -- paths! Thanks to + Scott Medlock for reporting this. +- Made | and < work. +- Implemented FIFO reading/writing. To do so, simply explicitly mention + the fifo file (named pipe) in the Include AND add the new option + readfifo=yes +08Jan03 +- Started implementing | and < on Include names. +- Changed source to . in cats directory as requested by Andrew Kokarev. + +============================================================================= +2003-01-05 Version 1.28b released +- Corrected a typo of working_directory in bacula-dir.conf + reported by James MacLean. +- Fixed the fact that path and filenames in some cases were not + being quoted before going into the database. Many thanks to + James MacLean for reporting this. + +============================================================================= +2003-01-05 Version 1.28a released +- Corrected a missing quote in bacula-dir.conf reported by James MacLean + +============================================================================= +2003-01-05 Version 1.28 released +General: +- Implemented Bare Metal Recovery for Linux and manual procedures for Solaris +- Now using only a single technotes file kes-1.28 and will add to + it as the development goes on. +- Wrote a general purpose bi-directional pipe command. This replaces + previous use of pipes as well as the run_program previously used. +- Make BSRs stop if no more matches are possible. +- Allow unliminted number of devices in Storage daemon. +- Allow connections to Storage daemon before all devices are initialized. +- Better documentation (and btape test command) on using fixed block + tape drivers. + +Changes submitted this submission: +04Jan03 +- Add cygreadline5.dll to Win32 release -- needed for console +03Jan03 +- Add scripts make_catalog_backup and delete_catalog_backup that makes and + deletes an ASCII copy of the catalog for backup. An example of how + to use it is in the Type). +- Added error messages for SQL errors in autopruning. +19Dec02 +- Documented Bare Metal Recovery +- Create new "rescue" directory containg the Bare Metal Recovery code. +- Fiddle with SQL a bit for pruning as apparently the last InitCatalog + was pruned after the expiration date eventhough it was the ONLY copy! + I'm not sure this is fixed yet. +18Dec02 +- Allow Director to pass a NUL where string to FD (fix in FD). +- Fix installation mv of query.sql. +- Make sure btraceback.gdb is not wiped on "make distclean" +- Corrected a bug in mod of replace options pointed out by Dave Anderson. +16Dec02 +- Started adding FileOptions ... +- Fixed and incorrect print out of the number of files restored (Jarif). +- Finally fixed EndBlock (and file address for Files) in catalog! +- Added hostname to tape header as always planned. +- Removed Level code (will not implement unless strong demand exists). +- Tweaked bscan to print number of errors ignored before first SOS. +- Enhanced btape "fill" to permit using one tape and to dump last + block before writing and upon read back. +- Make fsf_dev() return 0 on fail and 1 on success. +- Use new db_get_job_volume_parameters() to enhance Write Bootstrap to + contain more info (start/end file/block, file indexes). +- Added --enable-static-fd, sd, and dir to configuration to enable making + static versions of the daemons. +13Dec02 +- The btape test program was indicating errors on Adrian's machine + using the ATAPI (ide-scsi) tape drive. It turns out that this + is a fixed block driver as a consequence, Bacula must be setup + to write fixed blocks. btape was not always using the fixed + blocks defined in the Bacula config, so that has been updated. + It now works fine. A lot of tips added to the Bacula test command + to help guide the user. +- Documentation of the above significantly improved in the manual. +12Dec02 +- Added code in watchdog to permit setting and clearing child timers. If + the timer expires, the child process is killed. +- Modified restore to handle differential jobs. +- Added a new test to the btape "test" command +09Dec02 +- More documentation of new features (week position in scheduler, bsr). +- Re-read last block written on full tape to verify it. +- Fix segmentation fault with btape fill command due to missing FileSet MD5. +07Dec02 +- Created better SQL input editing routines str_to_int64 and str_to_uint64() +- Pull Client from database in Console restore command. +- Create a Unique list of Volumes to be mounted (previously had repeats). +- Made many of the SQL searches better by using the ClientId rather than the name + in the restore Console command. +- Modified reading of a tape to include the VolFile info. Once the + tape is past the specified file, reading stops. The BSR now includes + both the VolFile and VolBlock. Currently VolBlock is not used. +- Handle multiple volumes better by creating a real volume list with all + parameters in it. +- Display "At prompt waiting for input" in gnome console when at subcommand + prompt. +- Broke ascii to internal and internal to string editing routines out into + new lib/edit.c file. +02Dec02 +- Added a readme and an afs-bacula script to the examples directory + that permits Bacula to backup an AFS filesystem. Thanks to + Lucas Mingarro for the submission. +- Added A Sun-desktop autoloader script and Device definition to the + examples/devices subdirectory. Thanks to Lucas Mingarro for the + submission. +- If the WriteBootStrap fails, the job will now be marked in error. +- Added a week position to the scheduler syntax that allows you to + specify 1st, 2nd, 3rd, 4th, or 4th, or first, ... fifth as a week + position specification in front of a day. So if you say + + 1st sun ... + + the scheduler will start only on the first sunday of the month. The + day specification can also be a day range e.g. sun-fri. + This code is untested. +- Implemented bpipe.h and bpipe.c in src/lib, which defines a bi-directional + pipe. This allows executing other programs and sending them information + as well as getting info from them. +- Replaced the previous pipe usage with bpipes in RunBeforeJob and + RunAfterJob. +- The mail program now uses bpipes rather than pipes, which means that any + error output will appear in the job output (truly bi-directional). +- Modified BSR to handle counts and to stop when no more matches are possible. + This is untested. +- Improved error messages in smtp. + +============================================================================= +2002-12-12 Version 1.27d +- This is a minor update that fixes a segmentation fault in btape + as well as reduces non-important error messages in bscan. + +2002-11-29 Version 1.27c +- Yet another silly error duplicating a column name in the SQLite + make tables. No code change, just a make file. + +2002-11-29 Version 1.27b +- Set DB version to 5 in DB make files. + +2002-11-28 Version 1.27a +- Use g++ instead of gcc for testfind in tools + +2002-11-27 Version 1.27 (26Nov02) released 28 November 2002 + +General: from kes25Nov02 +- Mostly Cygwin changes + +Changes submitted this submission: +- Updated bdb_find.c to have new calling sequence for db_find_job_start_time +- dird/catreq.c edit in Volume name in error messages to SD +- attribs.c switch to using the cygwin API to convert from POSIX paths + to Win32 paths. This now permits Win32 path specifications in Include + statements (all combinations not yet tested). It also avoids the large + number of errors seen by Lutz if a Win32 path is specified in the Dir. +- Update testfind help and remove set_attribsEx debug code. +- Build testfind as default. +- Turn off debug message in stored/askdir.c + General: from kes21Nov02 - Another change in the database. You MUST either re-initialize your database or use the appropriate ./alter_xxx_tables in @@ -30,6 +1417,15 @@ Changes submitted this submission: - 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 @@ -1219,8 +2615,7 @@ Changes submitted this submission: - Many intervening changes/updates. 2001-09-29 Release 1.0 Kern Sibbald - - Fixes to problems found at John's - installation. + - Fixes to problems found at John's installation. - See techlogs/kes25Sep01 for details 2001-09-25 Release 1.0 Kern Sibbald