X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2FChangeLog;h=5825c672d311df487e3311a646a10b8b1f899303;hb=ce044f2e3bf98b59d6e3b7d0a32df9690c7962ee;hp=7a9c9d2b13b7352780e01ea6fbfb5aa0e7ef309e;hpb=71e370467e761596c4b55ae25047aa225e441800;p=bacula%2Fbacula diff --git a/bacula/ChangeLog b/bacula/ChangeLog index 7a9c9d2b13..5825c672d3 100644 --- a/bacula/ChangeLog +++ b/bacula/ChangeLog @@ -1,2492 +1,1852 @@ -2003-08-02 Version 1.32 10Sep03 Beta -- 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 - the src/cats directory. - -Changes submitted this submission: -- Additional documentation. -- Added MaxVolFiles to the database (not yet implemented in code). -- Increased the database version from 3 to 4. -- Change VolMaxBytes to MaxVolBytes, which is much more descriptive. -- Compressed unnecessary spaces out of a lot of SQL statements. -- Changed many %d to %u where unsigned integers are used. -- Added the Bacula version and build date to each backup output. - This will help knowing what version of Bacula was used. -- Implemented VolUseDuration MaxVolBytes, MaxVolFiles, and MaxVolJobs - based on maximums set in the Volume (Media) record rather than in the - resource. This means the values can be individually set on a Volume basis. -- Allow commas separating Include options (this was a subtle bug). -- Added maximum string length argments to a number of subroutines to - prevent buffer overflows. Most notably was do_prompt(). -- Replaced MANY occurrences of strcpy() with bstrncpy(), which guarantees - both that the length is not exceeded and that the string is properly terminated. - This has a risk of a certain destabilization -- as does the changes to - the SQL noted above. -- In cram-md5 routine use my_name if gethostname() returns an error. -- Increase timeout from 2 minutes to 3 minutes in authorization code. -- Check the full string including \n in authorization. -- Throw away any response longer than MAXSTRING. -- Added a number of additional error checks on subroutine return statuses. -- Replaced as many lld's with edit_uint64 as I could find. -22Nov02: -- Added MaxVolBytes to Pool record - had forgotten it. Updated DB version. -23Nov02 -- Update manual to document new Pool/Volume attributes -- Correct make_sqlite_tables (typo, plus missing value in Pool) -- Fix bizarre behavior in gnome-console and console when auth fails. -- Add Pool attribute query -- Add a few more error messages in askdir.c -- More strcpy() conversions to bstrncpy(). - -General: from kes18Nov02 -- Did a number of cleanups of string copying to limit the length - and prevent buffer overflows. - -Changes submitted this submission: -- Added a mutex arount the gethostbyname() so that multiple simultaneous - jobs get the correct address. -- Added the MaxVolJobs to the Media alter tables script for MySQL (forgot it). -- Changed arg to db_find_job_start_time to be POOLMEM for returning the string. -- Add the new VolUseDuration and MaxVolJobs to all the db_ routines. -- Use bstrncpy() in most places in the db_ routines to prevent a bad - database from crashing Bacula (self protection). - -General: from kes13Nov02 -- You MUST either re-initialize your databases or use the - ./alter_mysql_tables - or - ./alter_sqlite_tables - in the /src/cats directory to modify your database tables. -- Major improvements to dbcheck including an interactive mode. - -Changes submitted this submission: -- Implemented VolumeUseDuration and MaximumVolumeJobs which control - when a tape can be marked Used. -- New tape status "Used" means it was used and cannot be used any more. -- Defined utime_t which is 64 bit epoch time in seconds. btime_t is - 64 bit epoch time in microseconds. -- Created alter_xxx_tables to add new columns (VolUseDuration, MaxVolJobs) to - database. Incremented db version. -- Changed a few subroutine names concerning dates to be more descriptive. -- Fixed several places where the last filename was not stored in JCR in - FD verify_vol.c and restore.c -- Major update to dbcheck. Unfortunately I used subselects, which work - perfectly fine in SQLite, but not at all in MySQL. I must now rework - it for MySQL. What a pain! -- Removed "Database found" from configure output. It was no longer used or valid. -- Corrected doc --working-dir => --with-working-dir Thanks to Tuck for - reporting this. -- Added the database name to the error message for mismatched DB version. -- Commented out GMP and CWEB from configure as they are not currently used. - -General: from kes09Nov02 -- Converted the manual over to a new format written in wml. This - gives navigation buttons on the top and bottom of each page - as well as a standard page size. -- Updated the main Web site, providing a menu bar to the left - and much better organization and presentation of the information. -- Added code to recognize a Volume written with a larger block - size than specified. The code automatically adjusts. - -Changes submitted this submission: -- Created a new scripts directory and moved most of the scripts - previously in the main directory there. This cleans things up - quite a bit. -- Moved the randpass stuff into autoconf. -- ensure that the generic make_bacula_tables and drop_bacula_tables - are installed. -- Added code to filed to allow it to be run from inetd. Just add the - -i option. I have not tested it. - -General: from kes30Oct02 -- Alex found a problem with GZIP compression -- fixed. -- bacula stript fixes. -- Segment fault in Director fixed. -- Added openbsd to platforms - -Changes submitted this submission: -- GZIP compression was broken for large files due to a variable that - is changed during the compression. This was relatively easy to fix. - However, there were a number of fixes required to make GZIP and SPARSE - files work together. Found one more place in bextract where SPARSE_GZIP - testing was missing. -- During testing of the above, I ran into the restore problem of multiple - FileSet records. Fixed by including the FileSetId and the MD5 on the - selection string, then always using the FileSetId. It is a bit - confusing for the user, but ... -- Francis found a problem with bacula.in (fixed - thanks) -- I found another problem with bacula.in, so now it REALLY should work - on most systems. -- Added the Replace options code for restores. Not tested. -- Fixed an ugly stack overrun bug in reading the config file - that has been in for a long time. I found this in testing on FreeBSD - where the Director seg faulted. - -General: from kes29Oct02 -- Major change to the bnet communications routines. - -Changes submitted this submission: -- Modified the bacula script to use pid files, so this script should - now work on more platforms. Updated devel_bacula as well. -- Added the full GNU hostname on the configuration print output. -- Added gettimeofday() to configure, and tweaked a few variables for - OpenBSD. -- Added a chapter to the manual on Porting Bacula to other platforms. -- Documented in Tips how to use the WriteBootstrap record. -- Modified bc_types.h to error if 64 bit types are not found. -- Pass replace option for restore to the FD (no code to use it yet). -- Modify the FD to pass back the GNU OS string as well as the DISTNAME - and DISTVER. This needs to be put in the Client record in the catalog. -- Major reworking of the bnet routines to eliminate the zero length which - previously indicated a signal. This risks to create some subtle communications - bugs. The changes now permit blank lines to be sent from the user to the - Director. -- Found and corrected a few more places where the Win32 attributes were not - being recognized. -- Permit spaces in the Where string (restore) by bashing/unbashing them. -- Handle quotes correctly in the Console program (actually Dir ua code). - Previously they were not handled in the middle of a string. -- Corrected two error message (error reading file), which previously stated - it was a network error. -- Reworked the files in the binary Windows release. Removed unused programs - and added a README with the copyright as suggested by John. Also added - console.exe to the release. -- Found and corrected an autoloader mount problem where the wrong tape - was specified. Previously it looped, then gave up. Now it correctly - detects the volume is not correct and zaps the Slot in the catalog. - -General: from kes23Oct02 -- I have mainly worked on getting all the details of a Restore - to work correctly (new tape format, support for Win32 - attributes, ...) -- Trademarked name Bacula. -- Implement Bacula tape format 11 (1.0 Immortal). This format - will be maintained forever. -- Accept Any Volume is yes by default. This modifies Bacula's behavior - when writing tapes. - -Changes submitted this submission: -- Corrected a bug on FreeBSD where CFLAGS would get a "yes". I was - unable to reproduce this, but a user confirmed the correction. - It was a problem with detection of largefile support, which FreeBSD - has by default. -- Added a new "license" chapter in the manual. Re-licensed a number of - library routines (bnet.c, hmac.c md5.c, cram-md5, ...) with LGPL so that they - can be used in proprietary software to access Bacula if so desired. -- Move Director's AutoChanger doc to correct location (in Storage - resource). -- Document why trademark (to protect compatibility). -- Implement and turned on Bacula tape format 11 (also BB02). This - format moves the VolSessionId and VolSessionTime from each record - header into the Block header. This is MUCH more efficient when reading - records as now whole blocks can be skipped. - Also added JobStatus in End Of Session record, and added MD5 for - FileSet, which is necessary to insure uniqueness. -- Implement a new Bacula time format for btime_t. It is Epoch time - in microseconds (i.e. base 1 Jan 1970 in microseconds). - This replaces previous floating point times. -- Added Win32 extended attributes. In doing so, I moved all attribute - handling from src/lib into src/findlib. Added new streams for - Win32 attributes and for GZIP Win32 attributes. -- Modified "Accept Any Volume" so that it really permits any volume - in the pool to be mounted. -- Removed "Mount Anonymous Volumes" from Storage daemon config. -- Implemented sparse files. You must add "sparse=yes" on the include line - for it to be enabled. -- Print "None" in backup summary rather than 0.0% if there is no compression - enabled. -- Improved error checking in daemon connection/authentication code to prevent - garbage data from harming a Bacula daemon. -- All daemon tools MUST have a config file. -- Completely strip drive specification on Win32 if a Where prefix is specified. -- Corrected DB info for writing to files. Now the File Address is stored - in File-Block variables in the catalog. -- All Storage daemon tools now use common code for acquiring/reading - Volumes. -- If a device is unmounted, report it even if the device is not open. This - will help inform users who have BLOCKED Bacula by unmounting a drive. - - -============================================================================= -2002-10-12 Version 1.26 (10Oct02) -General: from kes10Oct02 -- Changed Job name conventions to avoid : which is an illegal - character on Windows. - -Changes submitted this submission: -- Added check for inet_pton to configure.in. If it does not - exist (e.g. Windows) use inet_aton -- Documentation on GZIP. -- Another restore doc example. -- Documented btape fill command. -- Set default restore directory from /tmp to /tmp/bacula-restores -- Add additional no find error messages to sql_get.c -- Creating a bootstrap file on Windows failed because the Job name - contained colons which are illegal on Windows. Replaced the - colons with periods. This corrects the Windows restore problem. -- Print number of files to be restored in "restore" command. -- On Windows systems, if there is a prefix, completely eliminate - any drive: at the beginning of a path. -- Minor corrections to the tree routines to handle Windows - files such as c:/ better. Previously it insisted on /c:/, which - would then not be found in the catalog for a "dir" command. -- Modified cd command in restore to try /c: if c: fails. -- Add a new S_ISWIN32 bit to the st_mode word so that low level - routines that create files do not print error messages. -- More work must be done to restore all Windows files correctly. - Currently the following bits are not handled: - Archive - Hidden - System - Also, all the dates are not properly restored. - -General: from kes09Oct02 -- More documentation. -- Implemented new fill command in btape that permits filling - a tape and then reading it back to ensure that it works - with Bacula. - -Changes submitted this submission: -- Added ReadBytes to JCR, which contains Job bytes read by - FD, JobBytes contains compressed output of FD. -- Modified FD to pass back JobStatus, ReadBytes, JobBytes, ... - for backup jobs. This is upward compatible. -- Modified backup termination status report to contain the - compression ratio 100 * (1 - compressed-bytes/uncompressed-bytes) - This will always be zero if no software compression was - done, or if you are using a version 1.25 or older FD. -- Pickup Job termination status of FD in backup, so now - the termination status represents the state of all three - daemons. -- Implemented new fill command in btape that permits filling - a tape and then reading it back to ensure that it works - with Bacula. - -General: From kes06Oct02 -- Implemented first major cut of bscan -- program to scan a tape - and recreate a Bacula catalog. -- Fixed lseek() relative negative seek that prevented writing multiple - jobs to a File volume. -- Implemented BB02 tape format -- currently turned off for writing. - -Changes submitted this submission: -- Updated README -- Implemented new BB02 tape format, which moves the VolSessionId and - VolSessionTime from the record headers into the Block header. It - is currently turned off. -- Implemented new btime time/date format on the tape. This is currently - turned off. -- Added JobStatus to EOS tape label. This is currently turned off. -- Changed start_block, ... to StartBlock in JCR for uniformity. -- Print a message telling which tables were dropped/made with - ./drop_bacula_tables. -- Return JobType and JobLevel in db_get_job_record(). -- Implemented get_current_btime(), which returns btime_t. -- Bump debug message max size to 2000 bytes. -- Add btime_t serial/unserial routines. -- Rework all tape label routines to integrate btime and other - label format changes (currently turned off -- for writing). -- Fix lseek() to always be positive -- block.c -- Consolidate record, block, and label major #defines in block.h. -- Major implementation of bscan. Some more minor tweaking will be - necessary. E.g. add multiple records for multiple simultaneous - Jobs. -- Cleanup lseek() to always use off_t as second argument. -- Add new "created" tape label (EOT_LABEL). This generates a callback - to the read_records() routine when the final end of all tapes is - reached allowing proper termination and updating of the media records. - -General: From kes25Sep02 -- Added means to bind servers to specific address. -- Documentation - -Changes submitted this submission: -- Added DirAddress, FDAddress, and SDAddress records to the corresponding - resources that allow the server to bind to a specific address - rather than any address. This security improvement was suggested by - a user -- thank you. -- Eliminated deprecated "Address" record from all sample Storage resources. -- Made quite a lot of improvements to the bscan program. Much more - to do. Aside from details, it is able to recreate a database - from which you can do a restore. -- The s option is not accepted on all versions of ar, so replaced it - by an explicit ranlib call. -- Fixed a bug that caused the Director to crash if you rudely bring - down the console program in the middle of an SQL command. -- Fixed a bug (missing break) that caused scheduled Admin jobs to - be listed as "Unknown type". -- Removed old code from Storage daemon that used a separate FD port. - -General: From kes14Sep02 -- Better key generation on non OpenSSL systems. -- 64 bit file address support if available. -- Implement autochanger for reading -- Lots of cleanup of tape reading code. -- Automatically create all Pool resources when Bacula starts. -- Implement bscan.c -- Implement autochanger use via the Console commands "add" and "label" -- Begin implementation of a regression script -- Write bootstrap after ever job - -Changes submitted this submission: -- After noticing that the non OpenSSL random key generator was - not good on Solaris, John wrote a very nice randpass generator. -- Integrated John's makeSessionKey for generating the FD->SD - authorization. -- Statically link tools (doesn't work on Solaris). -- Document how to debug Bacula (new chapter in the manual) -- Remove unneeded printing of error message in sql_get.c -- Free SD description config record (previous oversight) -- Bash spaces when sending Director names, and unbash them when - received. -- Ensure no divide by zero in rate computation in backup.c -- Implement WriteBootstrap in backup.c -- Allow tape reading to request volume information for any - volume. -- Create all Pool resources at startup. -- Show only Backup jobs in Restore listing of last 20 Jobs. -- Handle 64 bit stat packets in restore. -- Don't do shell expansion on store_dir in config if string - starts with |. This is used for piping the program for the - WriteBootstrap. -- Ignore SIGHUP -- DéjàGnu was triggering this. -- Implement autochanger for reading, many changes to - acquire_device_for_read() -- Implement callback for reading Volume. Implement in bextract, - bls, and bscan. -- Implement bscan -- Add count to bsr. -- Fix Volume in bsr. -- Move autochanger code to new subroutine in mount.c - -============================================================================= -2002-09-05 Version 1.25a (05Sep02) Released -- Fix unitialized stack variable in bextract so it - will always read the currently mounted tape. - -============================================================================= -2002-09-04 Version 1.25 (01Sep02) Released - General: -- Added .cvsignore files in each directory to cut down on the - CVS output when scanning directories and finding Makefiles - and such which are not part of the CVS tree. - - Changes submitted this submission: -- Cleaned up a lot of the error messages in Verify, including - indenting. -- Had to remove some of the "automatic" error message printing - in the DB because they are in fact things that come up - for Verify but not really errors. - - - 2002-08-30 Version 1.25 (30Aug02) Beta - From kes30Aug02 -- Fixed a bug where only the first file was restored if - it is hard linked. The other links were lost. -- In some cases of restoring to alternate directories, softlinks - were not properly restored. - - From kes28Aug02 - General: -- Bacula backups now run up to 12 times faster than version 1.24 -- Bacula can run multiple simultaneous Jobs. -- Had to turn off TRANSACTIONS in SQLite because it doesn't work - with multiple simultaneous jobs (I'm working on this). -- Added a better Job printout for Restore Jobs. -- Added a save/restore Rate to backup and restore jobs. This - does not yet subtract out operator wait time so it will be - underestimated it the Job waits on the tape (mount/label). -- Fixed a major bug caused by free()ing a buffer twice in - the Restore code. This made the SD more or less useless after - any restore Job. Arrggg! -- DIR - SD protocol changed, both must be updated at the same time. -- DIR - FD protocol changed in upward compatible way. Upgrade of - FD not required, but recommended. - - Changes submitted this submission: -- Added bell to "make" when errors are detected. -- Changed default compile option from -g to -g -O2 -- Additional documentation as usual -- much based on questions or - feedback from users. Thanks. -- Fixed example config files to use new syntax and to have a - Restore Job. -- Define ETIME to ETIMEOUT for Irix -- Added JCR filed to DB structure permitting direct printing error - messages from within the Database subroutines. - Some error messages may be printed twice as a consequence. - When I see them or someone reports them, I will remove the double. -- Added JCR to the bsock structure. This allows direct printing - of network errors from within the network code. -- Made most "trivial" debug messages have level 100 or greater. This - allows for easier debugging of new code using the range below 100. -- Began replacing all Emsg() with Jmsg() using a NULL as the JCR in - Jmsg() is the same as Emsg(). -- Fixed several crashes in the Director because of malformed config files. -- Added SpoolAttributes to Job resource. -- Pass CatalogFiles to SD. If set to no, the attributes are dropped - within the SD rather than being sent to the DIR. -- Cleaned up a number of information/error messages in user interface. - This includes eliminating the "pretty please" response in favor of - "yes/no" to delete volumes and pools. -- Cleaned up quite a number of uninitialized variables reported when going - to -O2, most were harmless, but a couple could cause problems. -- The cd command in restore was not working correctly (it didn't allow some - legal cds). -- Fixed a segmentation violation in the directory tree handling code in - the restore command. -- Handle a few error conditions in the restore command better. -- Permit "Where" to be set to nul in modification of a run command. -- Clarified the error message for Verify if an InitCatalog has not previously - been done -- thanks Chuck. -- Add MaximumConcurrentJobs to FD. -- Added code to mem_pool to die if a buffer is released twice. -- Lots of work done on SD for multiple simultaneous jobs. Split device.c - into device.c, mount.c and acquire.c -- Started writing new lock code for SD, but may back it out -- needs more - thought. Current code works, but is too complicated. Maybe can simplify it. -- Cleaned up the SD tools code quite a bit. Added bootstrap to all tools. -- Ensure that tape session labels are not split across two blocks. This makes - reading them back much easier. -- Fixed another restore bug concerning tape labels on multi-volume saves. - -============================================================================= -2002-08-14 Version 1.24 - From kes12Aug02 -- Made a new tools directory. -- Moved smtp into the tools directory. -- Created a dbcheck program in the tools directory that - checks for certain database errors and if requested fixes them. -- Put the database link flags on DB_LIBS so that it now only is - on binaries that actually need it. -- Document dbcheck and testfind programs. -- Move testfind to tools directory. -- Check for FileSet after getting Client name in Restore command. - Modify all necessary SQL commands to accept FileSetId. -- Add a db_get_fileset_record in cats directory. -- Correct list last 20 files concatenation to be MySQL - dependent. They aren't SQL standard. Use SQL standard || for - other SQL programs. -- Modify dir command in file selection to produce a long form - listing of the file/directory name. -- Add platforms/irix/*.in files to CVS -- Make Console command scanner accept quoted value fields. -- If after selecting Client to restore, there are multiple - FileSets, ask user to select one. -- After obtaining JobIds for restore, ensure that there is only - one MediaType, and select a Storage resource to be used. - - From kes11Aug02 -- Made restore actually work. -- Made console and gconsole be configured (requested by Chuck) -- Updated kernstodo -- changed fs in Job record to fileset for clarity -- The console run command was not properly picking up the command - line arguments. Fixed! -- Changed add/remove/rm to mark/unmark -- Volume keyword VolumeName was wrong, changed to Volume (in restore bsr). -- Pass jcr to parse_bsr, and if non-NULL, it will output error messages - to Job stream rather than Emsg. -- Modified lexical scanner to include caller context so that jcr can - be stored in lex context allowing error messages to be properly - routed. -- Renamed the Job message chain to be jcr_msgs. This eliminated the - previous confusion with the default value, now named jcr->messages. -- Implemented multi-volume bsr records. -- Implemented pm_strcat() and pm_strcpy() to cat/add to memory pool - buffers in same way as strcat/strcpy, but expanding buffer. -- Modified db_get_volume_names to handle arbitrarily long Volume list. - - From kes07Aug02 -- If the Console program terminated during the printing of messages, - the message file was left locked. This was corrected by using the - new read-write lock code. -- Implemented Pw() and Vw() for obtaining and releasing a write lock - using the rwl_xxx routines. -- Deleted some old pthread_mutex code from mysql.c -- In making the Irix port, I previously corrected the base64 routine so - they were not sensitive to the machine definition of char. This made - them incompatible with previous versions invalidating MD5 signatures - which are in base64 format. I have now corrected this, making the - routines compatible with the previous version but also insensitive - to the default definition of char. -- Removed some unnecessary NPRT() usage in signal.c (pointed out by - the Irix compiler). -- Add back BNET_NONO for compatibility with older File daemons. -- Implement runing a restore Job in the restore command. -- Make installation of query.sql unconditional. To prevent you own file - from being overwritten, give it a different name. -- Made parse_command_args() in ua take command from ua->cmd, this - simplifies it and allows usage in other places -- e.g. building - arguments for created run command in restore. -- Cleaned the naming of s_full_ctx to be s_jobids. -- Write the bsr created in restore to "working-directory"/restore.bsr -- Fix bugs in command line scanner in run command -- also some misplaced - breaks! -- Eliminate static cmd in ua_server.c -- Eliminate segmentation fault when using the Run command in the - Console -- forgot to init_msgs(). - - From kes06Aug02 -- Did a good amount of documentation. -- Added sql_cmds.c to CVS, forgot, pointed out by Chuck. -- Added new platforms/irix directory to CVS -- Turn off transaction debug code in sql.c -- Reworked the scheduler so that it handles the same Job starting - twice in the same hour. Previously it took one or the other. -- Tightened up the "slop" in the timings that I programmed to ensure - that the same job isn't run twice or that no job was missed. -- Increase the sleep time. -- Used job_type_to_str() in status so that Admin jobs are correctly reported. -- Add internationalization message chars to a number of routines - in util.c -- Make the watchdog timer clear the mutex when it exits. -- Some tweaks to the Restore command. It needs fixing when a Job spans - two or more volumes. - - From kes05Aug02 -- Initial cut at adding Irix File daemon support. -- Lots of work on the restore command. -- Take a stab at eliminating the "broken pipe message" - when the console program prematurely terminates. -- Reimplemented transactions for SQLite by keeping - them all in the same thread. -- quit in the Console program now waits for Bacula to - quit. To immediately quit, you must enter .quit -- Eliminated BNET_EOF -- this COULD have some negative consequences - on interdaemon communications. -- Define Job termination status for Admin jobs. -- Write new bstrncpy() function that guarantees that strcpy is - properly terminated. -- Fixed command input in ua_input.c to accept quoted items as a - single field. - - From kes01Aug02 -- The changes that added indexes to the SQLite database were - lost -- thanks to Chuck for pointing this out. Redone. -- Fixed a problem quoting strings in SQLite. This showed up - as database errors with files containing ' or " in the filename. -- Implemente restore command -- still in progress. -- Added indexes to all fields in SQLite that exist in MySQL. -- Moved unused immortal files from src/lib to src/immortal. - This will permit splitting depkgs. -- Started work on adding embedded MySQL. Cannot get the tables - to work for the moment. Please don't try to use this option. -- Convert to using single quotes for enclosing all strings. -- Implement correct quoting algorithm for SQLite strings. - Is dequoting needed? -- Started centralizing SQL statments in the Director in sql_cmds.c -- Changed a number of M_ABORTs to M_ERROR_TERM so that program terminates - but does not produce a dump. -- Allow wild-card matches in bsr for Client name, and Job. -- Change OflineOnUnmount=no as default. -- Fixed improper printing of filenames containing a space in bls.c - Thanks to Carlos for reporting this. - -=========================================================================== -2002-07-26 Release 1.23a -- Fix segmentation fault is FD status. -- Turn off TRANSACTIONs for SQLite. - -=========================================================================== -2002-07-23 Release 1.23 - From kes22Jul02 -- Updated Bacula to handle some minor differences in MySQL 4.0.2 - (still works with older MySQLs). -- Updated MySQL documentation to correct some minor errors. -- Added kernstodo to CVS -- Fixed create_mysql_database, which I recently accidently broke. -- Disallow zero length volume names in Console program. -- Create alter_mysql_tables and alter_sqlite_tables for conversion - from 1.22 table format to 1.23 table format. - - From kes20Jul02 -- Investigation of SQLite performace problems reported by Chuck. -- Updated ChangeLog -- Updated README -- made root@localhost the default email address because many smtp - servers reject root but accept root@localhost -- Added an autochangers chapter to the manual. -- Documented most of the new features in 1.23 -- Modified the SQLite interface code to start a transaction at the - beginning of a job and commit it at the end of the job. It - also commits it after 10000 changes. Hopefully this will - improve performance. -- Set the default cache pages from 2000 to 10000 for SQLite (i.e. - about 15Megs of memory) hoping to improve performance. -- Terminate last filename referenced in FD prior to copy to - avoid race problem with multiple threads and no locking. -- Enhanced the status output to include the JobType -- Print an error message if the email program terminates in error. -- If your machine has an MTUNLOCK, do it before doing an OFFLINE to - ensure that the door is unlocked. -- Added code to stored/append.c to spool attributes. This is in - a testing stage and must be explicitly enabled. -- Added a no_attributes variable to stored/append.c that prevents - the attributes from being sent to the Director. As yet, no way - to turn it on. -- Modified SQLite code so that after 10000 updates any transaction - is committed, then restarted. This keeps it from using too much - memory. -- Set the default cache size to 10000 pages (previously 2000). -- Fixed a segmentation fault on Sun due to no default value for - the JobStatus. -- Added the same indexes to SQLite that I exist in MySQL. This - VASTLY reduces CPU usage for lots of inserts. -- Added spooling to bnet_send(). - - From kes18Jul02 -- The following two changes were prompted by questions/suggestions - from A Morgan. -- If you have "AlwaysOpen = no" in your SD Device - resource, Bacula will free() the drive when it - is finished with the Job. -- If you have "Offline On Unmount = yes", in your - SD Device resource, Bacula will offline (or eject) - the tape prior to freeing it. -- Added Maximum Open Wait to allow open() to wait if drive is busy. -- Added RunBeforeJob and RunAfterJob records to Job records. - This permits running an external program with the following editing - codes: - %% = % - %c = Client's name - %d = Director's name - %i = JobId - %e = Job Exit - %j = Job - %l = Job Level - %n = Job name - %t = Job type - - From kes17Jul02 -- Added autochanger support to devices.c -- Allow user to change Slot in the Volume record. -- Implemented code in lib to run an external program - (tape changer) -- Implemented a changer script for mtx. -- Currently the changer commands used are: - loaded -- returns number of slot loaded or 0 - load -- loads a specified slot - unload -- unloads the device (returns casette to slot) -- Other changer commands defined but not yet used: - list -- returns list of slots containing a cassette - slots -- returns total number of slots -- Implemented ChangerCommand, specified in the SD Device - resource, permits editing of: - %% = % - %a = archive device name - %c = changer device name - %f = Client's name - %j = Job name - %o = command - %s = Slot base 0 - %S = Slot base 1 - %v = Volume name -- Implemented MaximumChangerWait default 120 seconds. It is - specified in the SD Device resource. - - From kes15Jul02 -- Moved techlogs from main directory to be subdirectory of doc -- Added code for strerror_r, and detection of gethostbyname_r(). -- The protocol between the Director and the SD has changed. -- Major rework of SD tape mounting to prepare for Changer commands. -- Separated Update Media record and Create JobMedia record. These - are done from the SD by calling the Director. Need separate Create - JobMedia so that when a Job spans a volume, all other Jobs writing - the same volume will also have JobMedia records created. -- Added message to user indicating selection aborted if he enters . - to a Console selection request. -- Create a jobstatus_to_ascii() routine for use in status commands. - This makes a single routine from three separate pieces of code. - Updated the code to properly handle more (all) termination statuses. -- Tried to fix the gnome-console to handle history a bit better. There - are still some problems with focus not being properly set to the edit - box after history replacement. -- Removed the shutdown() from bnet_close() hoping to fix Console termination - errors that are occassionally seen -- no luck. -- Moved add_str() to lib/util and renamed it add_str_to_pool_mem() so that - it can be used to edit Job termination codes and Changer command codes. -- Reworked how the SD mounts tapes (in device.c) so that control passes through - only a single routine. The logic is much simpler than previously, and now - adding AutoChanger code is straight forward. -- Made SD tape mounting much more fault tolerant -- more cases retry instead - of terminating the Job. -- Wrote code to edit_device_codes() for Changer commands. Not yet fully - implemented. -- Added a ChangerDevice directive to the Device resource. Still need to add - ChangerCommand. - - From kes07Jul02 -- This documents what I did while on vacation. -- A fair amount of documentation. -- Implemented Verify Volume to Catalog (needs renaming) -- Modified the database to include new MarkId field as - well as Counters. Database level is incremented from 1 to 2. -- Added first cut of managing autochangers by implementing Slot in DB. -- Fixed a good number of M_ERROR messages to be M_FATAL where appropriate. - Also converted a number of Emsg() to Jmsg() permitting better Job error - messages. -- First cut at implementing a general packet passing mechanism for bsock - to replace printf and sscanf for passing data. -- Made make_xxx_tables and drop_xxx_tables and create_xxx_database - for bdb as well as sqlite. With this each database has the - same set of scripts (with the exception that MySQL has grant_privileges). -- Modified Makefile to only install the database scripts for the - database that you are using. -- Updated the pdf script to include all the html files. -- Did quite a lot of documentation. -- Made Bacula compile correctly with DEBUG turned off. -- Implemented Pmsg() macros that permit using the debug print - routines even with DEBUG off. -- Updated job_cancelled() macro to handle JS_FatalError. -- Changed db_find_last_full_verify() to db_find_last_jobid(). This - permits working with Verify Volume to Catalog. -- Removed TRANSACTION code from incrementing NextId for SQLite. -- Implemented quick and dirty (not fully functional code) so that - console program does not die if ctl-Z is entered. -- Cleaned up backup.c a bit adding a bail_out goto to ensure proper - handling of errors with minimum code. -- Added passing Slot back and forth to Storage daemon with Volume info. -- Implemented Slot in Media record in DB. -- Implemented first cut of Counter resource in dird_conf.c. A counter - resource is part of the Pool resource. -- Implemented necessary database record. However, the resource doesn't - yet create a DB record. -- Implemented onefs (One File System) and recurse options on Include - resource. -- Implemented autopruning of Verify and Restore Jobs. -- Did a better job of calculating thread_concurrency() for Sun systems. - This permits better multi-threading allowing all the threads to run +Release 1.38.4 16Jan06 released 17 Jan 06: +16Jan06 +- Add two new queries to query.sql provided by Arno. One + list volumes known to the Storage device, and the other + lists volumes possibly needing replacement (error, ...). +15Jan06 +- Add periodic (every 24 hours) garbage collection of memory + pool by releasing free buffers. +14Jan06 +- Correct bug counting sized (for display only) in smartall.c +- Print FD mempool stats if debug > 0 rather than 5. +12Jan06 +- Correct bug in alist.c that re-allocated the list if the + number of items goes to zero. +- Move the reservation system thread locking to the top level + so that one job at a time tries all possible drives before + waiting. +- Implement a reservation 'fail' message queue that is built + and destroyed on each pass through the reservation system. + These messages are displayed in a 'Jobs waiting to reserve + a drive' list during a 'status storage='. Note, multiple + messages will generally print for each JobId because they + represent the different problems with either the same drive + or different drives. If this output proves too confusing + of voluminous, I will display it only when debug level 1 + or greater is enabled in the SD. +11Jan06 +- Add enable/disable job=. This command prevents + the specified job from being scheduled. Even when disabled, + the job can be manually started from the console. +- During 'update slots' clear all InChanger flags where the + StorageId is zero (old Media records). + + +Beta release 1.38.4: +09Jan06 +- Fix autochanger code to strip leading spaces from returned + slots number. Remove bc from chio-changer. +- Back port a bit of 1.39 crypto code to reduce diffs. +- Fix first call to autochanger that missed close()ing the + drive. Put close() just before each run_program(). Fixes + Arno's changer bug. +07Jan06 +- Add PoolId to Job record when updating it at job start time. +06Jan06 +- Pull in more code from 1.39 so that there are fewer file + differences (the new ua_dotcmds.c, base64.h, crypto.h + hmac.c jcr.c (dird and lib) lib.h md5.h parse_conf.c + util.c. Aside from ua_dotcmds.c these are mostly crypto + upgrades. +- Implement new method of walking the jcr chain. The + incr/dec of the use_count is done within the walking + routines. This should prevent a jcr from being freed + from under the walk routines. + +Release 1.38.3 05Jan06: +04Jan06 +- Move the suitable_drive flag to a better place to prevent + premature termination of the reservation if all drives + are busy -- should fix Arno's diff/inc pool failures. +26Dec05 +- Add mutex to single thread VSS code in Win32. + +Beta release 23Dec05: +22Dec05 +- Add OPENSSL_INC to console dependencies, lib dependencies, and + wx-console dependencies in Makefile.in +- Add OPENSSL INC/LIB to gnome2_console Makefile.in. +- Simplify code in askdir.c that waits for creating an appendable + volume so that it can handle multiple returns from the wait + code. +- Modify the wait code to permit multiple returns. +- Return a zero when "autochanger drives" is called and + it is not an autochanger. +- Make rewind_dev() a method taking a DCR as an argument. + This permits closing and reopening the drive if the + rewind fails as happens if the drive was loaded while the + file descriptor was open. This refreshes the file descriptor. +- Remove the ST_OPENED flag and always rely on fd < 0 for knowing + if the device is open or not. This should eliminate + Arnos problem. +- Return error if reserve cannot find at least one suitable device. +- Make wait_for_sysop() return correct state information. +- Fix Win32 state file problem. write was not using compat + code. This should fix bug #500. +21Dec05 +- Modify gui on command to set only GUI mode and not batch. +- Modify .messages command to always print messages regardless + of the mode. +- If GUI mode is on, suppress automatic printing of + You have messages. +- Delete old bnet packet code. +- Ignore new BNET_START_SELECT and BNET_END_SELECT signals in + wx-console. +- Modify restore command in wx-console to set gui on and to use + only .messages instead of messages. Hopefully this fixes bug + #514. +Beta release 20Dec05: +20Dec05 +- Fix seg fault in exit of acquire when canceling a job -- + reported by Wolfgang Denk +19Dec05 +- Implement load balancing code. +- Pull a few files from 1.39 where we can maintain compatibility. +- Rewrite reservation algorithm again. Rename variables to be + more logical, add HEARTBEAT with Director, allow cancel of + jobs stuck in reservation, add last resourt any_drive. +17Dec05 +- Remove quotes from Version table name -- it breaks things. +- Fix seg fault if user labels a drive directly bug #513 +- Remove quotes around Version as it breaks things. +16Dec05 +- Merge in Aleksandar Milivojevic's mods to the spec file. +- Apply sparse code fix for raw drives and fifos. Bug 506 +- Thorsten fixed Unicode cd problem with wx-console bug 505. +14Dec05 +- Correct reservation system to do a last ditch try + for any mounted volume, then anyone anywhere. +- Add quotes around table Version because of + error in MySQL 4.1.15 -- bug report submitted. +- Correct some minor problems with btape in the fill + command. +- Updates to ssh-tunnel from Joshua Kugler. +- Added a report.pl program from Jonas Bjorklund. +- Simplify the O_NONBLOCK open() code for tape drives, + and always open nonblocking. +- Do not wait for open() if EIO returned (shouldn't happen). +- Eliminate 3 argument to tape open(). +- Correct the slot # edited in the 3995 Bad autochanger unload + message. +- With -S on bscan (show progress) do not divide by zero. +13Dec05 +- Make cancel pthread_cond_signal() pthread_cond_broadcast(). +- When dcr is freed, also broadcast dev->wait_next_vol signal. +- Remove unused code in wait_for_device. +- Make wait_for_device() always return after 120 seconds of wait. +12Dec05 +- Use localhost if no network configured +11Dec05 +- Eliminated duplicate MaxVolBytes in cat update -- bug 509. +- Remove debug print. +- Add bail_out in error during state file reading. +09Dec05 +- Merge updates into 1.38 branch +- Update specs to include mysql4 define. +- Stop read_record() if status not ok in second loop. +- Return rec->FileIndex in dcr->VolLastIndex for normal + and partial records in read_record(). This allows bscan + to get FileIndex at EOT correct. +- Fix butil.c to correctly set dcr -- fixes seg fault in bls. +08Dec05 +- Apply patch supplied by user (slightly modified) to fix + correct detection of holes in block devices and FIFOs. + Bug # 506. +- Apply patch supplied by user (slightly modified) + to fix SD hang with multiple pools and bad client + IP. Fixes bug # 508. +07Dec05 +- Add nagios plugin to the examples directory. Submitted by + Christian Masopust. +- Remove warning message about multiple saves of hardlinked files + from find_one.c as it can generate too many warning messages. +06Dec05 +- Reset timeout values before select() per patch from + Frank Sweetser for problems with non-blocking sockets. +- Unlink the state file if either reading or writing it gets + errors. Hopefully this will fix Win32 exit problems. +- Add sanity check in append.c to ensure that dcr is not NULL. + This can happen if multiple drive autochanger SCSI control + channel and drive indicies do not correspond. +05Dec05 +- Get next volume from Scratch pool before creating a volume. +- Set new Pool defaults in Vol when moved from Scratch Pool. +- Remove argument from create_bacula_database for SQLite as it + caused an error. +- Add back next_vol index code so that two drive autochangers can get + a second tape. +- Change a bunch of debug levels to aid debugging autochangers. +- Fix reservation so that mutexes are properly applied. +- Rework reservation algorithm so that two drives can be used at the same time. -- Implemented a wait_for_storage_daemon_termination(), which is used by - backup and verify volume. -- Clarified a number of UA prompts, and add feedback where certain commands - completed but printed nothing. (More work to be done here). -- Added a pile of new code to implement Verify Volume to Catalog. It is sort - of a hybrid of "restore" and "verify" in that it actually reads the tape, - then compares it to the catalog. Need Verify Volume to Client. -- Added a good number of checks for job_cancelled() this should permit - quicker and more reliable cancelling of jobs. -- Fixed one bug in restore where I used ofile instead of lname, which means - that if the lname was too long, the memory was not properly reallocated. -- Cleaned up find_one.c in findlib quite a bit. -- Link smtp static so that it works even if the libraries are messed up. -- If mail host is not found, retry with local host in smtp. -- Added slot and stream to the bootstrap record processing. -- Do offline on tape cartrige for unmount command. This can be turned off - by the user in the config file. OffLineOnUnmount in Device resource. -- Implemented AutoChanger = yes/no in Device resource. - -=========================================================================== -2002-07-07 Release 1.22 -- All the basic Restore code to handle the boostrap file is - now implemented with the exception of the Console Restore command. -- Retained compatibility with previous Restore providing no - bootstrap file is specified. However, the old code (JobId based) - will go away in a future release. -- Fixed a number of segmentation faults in the Console program due - to printing of NULL pointers -- thanks to Chuck and his Sun for - finding and reporting them -- mostly in ua_output.c. - - From kes25Jun02 -- Null pointers now are printed as *None* if NPRT() is used. -- At the request of Phil, all resources are now chained in in the - order they appear in the config file. -- Implement Bootstrap record in the Director's config file, which - allows you to specify a predefined bootstrap file for Restore Jobs. -- Allow Bootstrap on the Restore record. This is deprecated. -- Implemented code to pass the Bootstrap file, if defined, to the - File daemon, then from the File daemon to the Storage daemon. -- Added ability to set Bootstrap file in the Console when running a Restore. -- Allow scan_error() routine to be passed to lex_open_file(). This permits - using lex in the Storage daemon without worrying that it will ABORT on - a syntax error. More work is needed to direct the error messages correctly. -- Improved error messages a bit when config syntax errors are found. -- Tested and corrected some errors in match_bsr.c -- Removed askdir.c from bls and bextract by defining dummy entry points. -- bextract now has bootstrap pretty well integrated. -- Changed bextract ABORTs into FATAL and exit(1) or ERROR_TERMINATE. - More user friendly. -- Eliminated at least one lld and replaced it by edit_uint64() -- Eliminated a few more _PROTO()s. -- Corrected a problem with the SQL for in query.sql for - Listing Volumes to Restore All Files - - From kes22Jun02 -- Additional documentation. -- Reduce the time the jcr mutex is locked in lib/jcr.c -- More null pointer printing fixes in lib/parse_conf.c (debug output only). -- Added daemon filename to Kaboom message so I know what daemon died. -- Fix big bad bug introduced in watchdog.c last update that caused - a segmentation violation (forgot to check for NULL pointer). -- Add a bit more info to bad returns from Stored when starting - a job fails. - - From kes21Jun02 -- Fixed scan_to_eol -- Fixed backup scanning forgot one T_STRING -> T_UNQUOTED_STRING -- changed all rwlock_t to brwlock_t to avoid conflicts with - Solaris library. -- Added NPRT() macro to allow printing of NULL pointers, which - segment fault on Solaris. -- Cast printing of pid_t to int for Solaris compiler. - - From kes20Jun02 -- Added expect argment to lex_get_token(). -- Added tree.c and tree.h to lib directory. - - From kes19Jun02 -- Improvements to the bootstrap compiler -- Implemented first cut of bootstrap code in the Storage daemon -- Modified the authentication code to be more explicit during - failures. -- Added a few more debug message numbers with more arguments (Dmsg10, ...) -- Added more and more precise error messages when authentication fails. -- Implemented new "expect" codes in the lexical scanner that allows - the caller to specify what he wants. -- Added integer, positive integer, 64 bit integer, and integer ranges, - and name scanning to lex. -- Implemented new lex code in parse_conf.c, this reduces significantly - the code. -- Hopefully fixed a watchdog race bug that caused the watchdog to time - out a line after 1 hour rather than 6 days. - - From kes15Jun02 -- Implemented a Bootstrap file parser and matcher. -- Implemented first cut of bootstrap code in bextract -- Started clarifying different termination codes. -- Added M_ERROR_TERM to immediately terminate the daemon -- no dump. - Also changed a few termination codes as appropriate. -- Fixed create_jobmedia_record() to include all the fields such as - StartFile/EndFile, StartBlock/EndBlock. -- Print user friendly message when query mode ends. -- Fixed ls style print routines (bextract, bls, restore) to check - buffer size, to print the link if any, and to used edit_uint64() - instead of %lld. -- Moved scan_to_eol() and s_err() to lex.c to avoid dragging in - parse_conf.c for new bsr scanning code. -- New files: bsr.h, parse_bsr.c and match_bsr.c. parse_bsr.c parses - a Bootstrap file, and match_bsr.c matches a bsr against a tape. -- use strcasecmp() in several places instead of lcase(). -- Add first cut of bootstrap to bextract. -- Added File Size limit -- writes EOF after limit exeeded. - -=========================================================================== -2002-06-12 Release 1.21 -- Fixed several problems with filenames being truncated if - they contain spaces. Thanks to the user that reported this. -- N.B. To get the new queries, after the "make" and - "make install" you must explicitly replace the - existing query.sql by query.sql.new. query.sql is a - user configuration file, so it is not overwritten. -- Added GZIP compression of Included files. -- Added additional fields to tape SOS record permitting better - recovery with no database. -- Be sure to remove any !terminate statements you may have - in your config files. -- MUST UPDATE ALL DAEMONS due to protocol change to handle new - tape format. - - From kes11Jun02: -- Updated examples directory with my most recent config files. -- Modified the M_TERM meaning to mean that Bacula has - terminated in error without producing a dump. Previously, - it meant that Bacula terminate (with or without error). - You should remove any !terminate from your messages +04Dec05 +- Apply days keyword patch from Alexander.Bergolth at wu-wien.ac.at + If this patch is applied, the number of days can be specified with + "list nextvol days=xx" + or + "status dir days=xx" + My use case is to be able to preview the next scheduled job (and the + next tape to be used) on fridays if there are no scheduled jobs during + the weekend. +03Dec05 +- Fix font code in gnome2 console user patch. Fixes bug #501. +- Fix malformatted bnet error message that caused seg fault + fixes bug 502 +- Applied user patch to improve README.vc8 in src/win32. +29Nov05 +- Correct some more editing of JobId's (for 64 bit compatibility). +- Ensure that StorageId is stored in Media record when ever possible. +- Add Migration Job to Job. +- Change Start Storage daemon job to require read and write storage + pointers. +- Pass read storage data to SD as well as write storage data. +- Remove old code from winservice.cpp +- Break on error in scan. +- Fix typo in signal.c +- Separate read/write DCR in SD. Add jcr->read_dcr. +- Cleanup how find_device() works. +- Add read output to Status in SD. +21Nov05 +- Remove abs() in bfile.c so that it compiles on Solaris. Bug #491. + +Changes to 1.38.2: 22 November 2005 +- Fix crash in tray-monitor when daemon disconnects. Bug #479. +- Fix bnet-server bug found on OpenBSD. Bug #486 +- Fix cancel failure bug. Bug #481 +- Fix failure when Pool name has spaces. Bug #487 +- Fix SD crash in autochanger code. Mutex failure. Bug #488 +- Fix a couple of free()s in src/filed/acl.c +- Fix memory overrun in bfile.c in building OS X resource + fork filename. Bug #489 +- Add Pool name to SD status output. +- Add Python install dir for Solaris to configure. Bug #492 + +Changes to 1.38.1: 15 November 2005 +- Apply SunOS patch for ACLs submitted by David Duchscher. +- Make sure to set storage before trying to set drive. +- Add bacula_mail_summary.sh to examples directory. It makes + a single email summary of any number of jobs. Submitted + by Adrew J. Millar. +- Make sure when we do a mount to unblock the device even + if the drive could not be opened. +- Merge Scott's new spec files. +- Add doc on setting up Win32 environment variable supplied + by Kees van den Broek. +- Turn off API debug output unless debug set to avoid confusing + the user. +- Add Solaris ACL detection in configure.in as supplied by + Attila Fulop. +- Implement "autochanger drives" protocol so that Dir knows + how many drives an autochanger has. +- Do not request drive number in label, ... if only one drive. +- Turn off debug code. +- Fix update slots to clear slot number of every slot before + setting it. This fixes (I believe) bug #471 +- Make unmount unload the autochanger slot. +- Modify open() on mount to be read-only and non-blocking, + otherwise the mount can block for a long time. +- Make a few error message numbers unique. +- Make a few error messages more correct. +- Apply patch from Thorsten to fix Win98 stat() command. +- Remove delete of CVS from all makefiles. +- Fix seg fault when clicking on Add button in wx-console + restore panel. Bug #470. +- Fix copyright date and URL typo -- bug #468. +- Change autostart install for FreeBSD to look for rc.conf + rather than rc.local as suggested fix for bug #466. +- Apply patch supplied by Eric Bollinger to fix PostgreSQL + grant on status. Bug #465 +- Apply patch supplied by Eric Bollinger to fix PostgreSQL + update script. Bug #464 +- Fix off by one for last Slot of autochanger for label. +- Update release date. +- Tweak an authentication error message in dir. +- Fix autoloader so that mutex is set and released around + each run_program(). There was a missing set. +- Remove an unnecessary drive release in autochanger. +- Modify configure.in to add execute option to sqlite3 catalog + scripts. +- Create update_xxx_table_8_to_9 scripts for updatedb +- Fix wrong variable in bpipe.c debug output reported by user. +- Fix improper placement of encode_and_send_attributes() in + FD backup.c causing first file of non-portable Win32 backup + to have wrong stream. Reported by Thorsten. +- Move the -lcrypt for PostgreSQL after the PostgreSQL libs in + autoconf/bacula-macros/db.m4 as suggested by user. Fixes bug #457. +- Remove @STATIC_CONS@ from tray-monitor Makefile as suggested + by user. Fixes bug #456. + +Released 1.38.0 (28Oct05): 31 October 2005 + +Changes to 1.37.42: +26Oct05 +- Don't overwrite pthreadVCE.dll or msvcr71.dll during Win32 + install. +- Update README.win32 instructions. +25Oct05 +- Make db_get_job_record() return Name so that the ACL + can be checked. Fixes bug #446 +22Oct05 +- Insure that all the SD tools init the Autochanger resources. -- Changed the order of the libraries in the link so that - tcp wrappers link properly. Thanks Phil for reporting this. -- A user reported that filenames containing spaces were truncated - in bextract. This was indeed the case. They were also truncated - in Restore as well as in Verify. They are, hopefully, all fixed - now. -- Made a few error conditions in Verify non-fatal. -- Modified the Console "query" command to permit multiple SQL - statements per command. -- Implemented three new "query" options: - List last 10 Full Backups for a Client - List Volumes used by selected JobId - List Volumes to Restore All Files - To use them, simply type "query" to the Console program, and - select the one you want. -- Modified bextract to default to extracting all files (i.e. /). -- Cleaned up the code in bextract a bit. - - From kes03Jun02: -- Improve Verify command to include files examined. -- Eliminate fcntl() locking of the console file and replaced - it with a pthreads mutex. -- Note Director - SD protocol is changed to handle new tape - information (Fileset, JobType, JobLevel). -- Create config.out that contains a summary of ./configure - to see what you previously configured: "cat config.out" -- Implemented GZIP compression. Added addition syntax to - Include { } resource to permit setting of any GZIP compression - level: - compression=GZIP - compression=GZIP1 - ... - compression=GZIP9 - - Level 1 is minimum compression and level 9 is maximum. Using just - GZIP gives the default (level 6). -- Enhanced the tape format to include the unique Job name, FileSetName, - JobType, and JobLevel in the Start/End of Session records. The code - detects that tape level difference and acts accordingly. You can - add data in the new format to old tapes. -- Fixed an incorrect display message in the prune command. -- Began implementation of Verify Volume and Verify Data. -- Cleaned up File daemon restore.c a bit ensuring that termination - cleanup is done and all possible Emsgs are converted to Jmsgs. -- Modify bls.c to use common setup routines. This reduced the big - code duplication that creeped in when I added different listing - options. Also, changing tapes is now handled uniformily in a subroutine. - -=========================================================================== -2002-05-27 Release 1.20 -- Started documenting Catalog Pruning and Recycling. - Added catmaintenance.html and recycling.html -- Fixed the query command bug. -- Implemented PID files to prevent two copies of Bacula - from running at the same time. Be sure you --with-pid-dir - points to a working directory. -- Modified ASSERT() to cause a segmentation violation. This - permits a core dump. -- Worked on gnome-console. It paints better, it tells you if it - is ready to accept a command or processing one, and it is - almost entirely GTK+ (rather than GNOME, I'm removing GNOME - a bit at a time). -- Limit to 100 the number of tape labeling errors in a single Job. -- Add some additional ASSERT()s to the database routines. I don't - like ASSERTs but they do catch bugs. -- Tested and debugged recycling of Volumes. Needed to change - the Director-SD protocol slightly. -- Removed the experimental SIGHUP in the Director as it is a - potential source of errors. -- Added Level, Pool, Messages, and Storage keyword/value scanning - to the Schedule Run record. -- Improved printing of Schedule resources with "show schedules" -- Do not autoprune Jobs/Files if the Job errs. -- Updated newvol() to pass back the updated Media record. -- Fixed the "update pool" command, which was broken during a much - earlier code reorganization. -- Improved a few of the pruning messages. -- Removed readline inclusions from gnome-console (hang over from console). -- Make Jmsg use daemon message handler if no message handler is defined. - This is always the case in the SD and FD. -- Started removing __PROTO(). With C++ prototypes are manditory, so why - keep around legacy code. -- Added a good deal of message internationalization -- more to be done. -- Move cached Path into mdb structure and use POOLMEM. -- Fix verify bug introduced last update causing incorrect diffs - by turning off autopruning. -- Started adding code to distinguish Errors from Fatal Errors. -- Errors are now counted in message.c for a Job. -- More POOLMEM cleanups. -- Implemented Automatic pruning. -- Implemented Automatic recycling of Volumes. -- Added PruneJobs/Files/Volumes=yes or no to Job resource. If set, - it forces the specified pruning. -- Modified rwlock to accept multiple nested write lock - requests. -- Modified the cats directory to use the new rwlock mechanism - in place of P() and V(). -- Defined db_lock(mdb) and db_unlock(mdb). They are in effect - transaction locks. -- Add CVS Id's to most files. -- Made first cut at AutoPrune -- Added new autoprune file that is called at the end of - each Job. It then decides when and what to prune and - calls the UA prune routines. -- Modified Run (in Schedule resource) to permit overrides of - Level, Pool, Storage, and Messages. (not tested). -- Added more POOLMEM in place of char. -- Implemented daemon pid files. This prevents multiple - daemons from running simultaneously. You can run multiple - daemons if they listen on different ports. -- Documented the Schedule resource a bit better. -- Began gently adding a POOLMEM type (perviously void). - For the moment it is a #define to char, but long term - it should be its own typedef. -- Corrected a bit of spacing on the status bar of gnome-console -- Added Admin and Archive Job types. -- Implemented multiple Messages resources. Each daemon has - its own message resource, which defaults if not defined. - Jobs may now have different message handlers. -- Cleaned up a bit of duplicate code in backup, verify, and - restore by creating appropriate subroutines in job.c -- Added Type, Client, FileSet, and Level resource record - definitions to the Director. These can be used in place - of the Backup = ..., Verify = ..., ... commands. This needs - documenting. -- Corrected an incorrect message in the prune code and added - the number of Files pruned in the message. -- Corrected several paint problems with gnome-console. -- Added a bit of printout in signal handler during traceback. -- Cleaned up most of sm_check() to be turned on/off by define - in version.h - -=========================================================================== -2002-05-10 Release 1.19 -- Allow the user to select a new period for pruning. -- Lots of additions to the manual -- prune and purge - commands documented. -- Applied Phil's configure.in fix for --prefix, ... -- Fixed bug found by Phil (patch supplied) in updating - MD5 signatures (revert to 32 bit FileId, move "static" - variables into JCR) (catreq.c fd-cmds.c). -- Reverted to using INTEGER for FileId in make_sql_tables - due to a bug in MySQL. -- Change editing code to %d for FileId. -- Remove sqlite in make distclean in cats directory. -- Remove console.conf in console during make distclean. -- Remove gnome-console.conf during make distclean. -- Remove bacula-dir.conf during make distclean. -- Set default level when using Console if none specified. - Bug reported by Phil. -- A simple . command from Console is ignored. -- Change program named from filed to bacual-fd in winmain.cpp -- Change default config file for Win32 in winmain.cpp -- Free namebuf on early return from find_one.c. Bug reported by Phil. -- Modify testfind.c to dump orphaned buffers. -- Removed terabytes from parse_conf.c because of problems with - older gcc compilers. -- Turn off gnome options in gnome-console by constructing empty argv. -- Fixes to Verify when only MD5 differs. -- Insert 0 for MD5 as default rather than space. -- Allow .messages "transparent" command while reading input - in UserAgent server. -- In dird/verify.c ensure that correct filename is printed if only - the MD5 differs. Minor reindenting caused large diff. -- Delete unused code from backup.c -- In filed/verify.c ensure that same algorithm as backup.c is used - to pass back MD5 signatures -- especially for directories and files - that cannot be read. Change dummy filename from X to *MD5-id*. - This dummy value should never be printed. -- Make gnome-console poll Director every 5 seconds for output. - This means that queued up messages are displayed at reasonable - intervals. Delete some unused code hanging around from the tty - console program. -- Begin implementation of prune commands. -- Add command line history to gnome-console. Not yet saved across sessions. -- Fixed some broken URLs in the manual. -- Added JobId type. -- Wrote first cut of "prune files" and "prune jobs". -- Added command line history to gnome-console 2500 lines max. -- Widened store_time() and associated variables to 64 bits using - new btime_t definition. -- Removed GNOME about box and replaced it with - a somewhat crude Gtk+ about box in the gnome-console. -- Widened StartDay in the Job DB record to be 64 bits. -- Changed edit_uint_ to edit_uint64_ everywhere. Much more - descriptive of what is done. -- Removed most llds and replaced them with %s and edit_uint64. - This makes the code a bit easier to read for beginners. -- Added a btime_t typedef which is 64 bits wide. -- Added most of the code needed to do Purge and Prune of - database. Not yet tested. Please do not use. -- Additional config options for Console. -- Started adding code for Automatic Recycling of Volumes. -- Allow arbitrary length filenames in Verify code. -- Fix incorrect filename in Verify code. -- Significant enhancement to number scanning in config parser. -- Requires initializing MySQL tables, or applying cats/alter.sql - to modify Media table. -- Modified Makefile to printer a much more visible - message if the make ends in error. -- Added the Purge value to the VolStatus in the Media table. - This value is set if the Volume is purged. -- Enhanced the db_delete_media_record() routine to delete - all associated records in the database. -- Modified Console to always write to the variable "output" - rather than stdout. This will permit directing output to a file. -- Enhanced the Console configuration file to have a Console - resource. This will allow us to add an rcfile and history file. -- Modified Find_next_vol in catreq.c to search for "Recycle" - volumes if there are none marked Append. Also made Get_Vol_info - return the VolStatus to the Storage daemon. -- Allow upper/lower case match on job level names. -- Added another warning message to the Console "delete media" command. -- Corrected a number of FileId types from uint64_t to FileId_t in - ua_retention.c. -- In ua server close database before freeing JCR (because pointer is - kept in ua and jcr structures). -- parse all numbers as doubles. Do lots of checking for valid number - formats. Allow numbers in scientific form (e.g. 1.5e+10). -- Remove terabyte modifier as it doesn't work in some compilers. -- Fix bug in handling some modifiers. -- Added all necessary code for Recycle to Storage daemon. A Volume - marked Recycle will now be overwritten. -- Filled out the prune command a bit and did some testing. -- Make console accept redirected input. -- Altered the Table definitions to include Recycle, - FileRetention, JobRetention, and AutoPrune. -- Widened StartDay to 64 bits. -- Use JobId_t in more places. -- Added the new table fields to the database record definitions. -- Changed Recycle from string to a binary quantity. -- Added a Version table with a VersionId to detect. - future changes in the database. This should prevent - a Bacula from working with a database that is not in sync. -- Modify Console to accept input from a file. This will permit - the .read command and allow reading a .rc file. -- Added new retention and recycle variables to the Director's configuration. -- The UA subroutines or commands can now be called from core - code because the output routines detect the absence of a - UA socket and direct output to the Job. -- Added a verbose flage to the ua packet to permit reduction of - output while running a UA command (prune) from a Job. -- Did a fair amount of work on the prune command. Prune Volume now works. -- Purge Volume now works. -- Made last changes for integrating prune and purge commands. -- Add -ltermcap to CONS_LIBS when readline is configured. - More work to be done to search for termcap. -- Added cats/drop_sqlite_tables.in, which will delete the SQLite database. -- Got CWEB working so that we can compile filesys.w and immortal.w -- Modified depkgs to include cweb. -- Note, CWEB is not yet used by the core Bacula code. -- Made cats/alter.sql, which alters an old database to bring it - up to the new format. This only works with MySQL since SQLite does - not have the ALTER SQL command. -- Changed the old StartDay field in the db to be JobTDate, which is - the latest time/date in widened Unix time format that the Job ran. - This value is used when doing pruning. -- Added code in cats/sql.c to verify that the database internal version - corresponds to the db version compiled in Bacula. It is set to 1 currently. -- Lots of changes to cats to bring the SQL up to date with the new - retention period changes. -- Added Console command code to permit changing a Volume's retention period. -- Removed old code that used date_encode() and replaced it with widened - Unix time(). -- Started modifying Message resource scanner so that we can have multiple - message resources. Much more work to be done. -- Moved scanning for time into new library routine string_to_btime(). - -=========================================================================== -2002-04-22 Release 1.18 -- Applied Phil's configure.in fix for --prefix, ... -- Fixed bug found by Phil (patch supplied) in updating - MD5 signatures (revert to 32 bit FileId, move "static" - variables into JCR) (catreq.c fd-cmds.c). -- Reverted to using INTEGER for FileId in make_sql_tables - due to a bug in MySQL. -- Change editing code to %d for FileId. -- Remove sqlite in make distclean in cats directory. -- Remove console.conf in console during make distclean -- Remove gnome-console.conf during make distclean -- Remove bacula-dir.conf during make distclean -- Set default level when using Console if none specified. - Bug reported by Phil. -- A simple . command from Console is ignored. -- Change program named from filed to bacual-fd in winmain.cpp -- Change default config file for Win32 in winmain.cpp -- Free namebuf on early return from find_one.c. Bug reported by - Phil. -- Modify testfind.c to dump orphaned buffers. -- Removed terabytes from parse_conf.c because of problems with - older gcc compilers. -- Turn off gnome options in gnome-console by constructing empty - argv. -=========================================================================== -2002-04-18 Release 1.17 Kern Sibbald -- Ensure that platforms Makefiles are called for clean - and distclean. -- Hide a lot of Makefile messages with @ -- Applied Phil's configure.in patch. Thanks. -- Doc updates, many to clarify points brought up by Phil. -- Applied Phil's make_mysql_tables.in patch. Thanks. -- Made authenticate.c in dird test bnet_send status. -- Make label a bit more friendly with extra info message. -- Add level 200 to debug info in run command. -- Remove old code from findlib/testfind.c so that it compiles. -- Add two minute max wait to cram-md5 authentication. Hopefully, - this will catch non-responding WinNT daemons. -- Allow time and size modifiers to be upper or lower case. -- Turn off old CYGWIN patch for pthread_cond_timedwait() bug that - now causes File daemon hangs on WinNT. -- Fix mount messages for restore. Previous updates to save - broke the restore code. -- By default write fixed block sizes rather than variable block - sizes. My Sony DAT simply does not work (reread failures) with - variable block sizes. -- Data split across tapes was not being correctly restored - (at least on DAT tapes). -- Implement MaximumBlockSize and MinumBlockSize statements in - Storage daemon so user can specify variable block sizes if - desired. -- Return error if block checksum error on read (previously - ignored). -- Fixed some error messages in bls, and in some cases exit(1) - rather than ABORT. There remain ABORTs to be examined. -- Made a local copy of tcpd.h and corrected the function - prototype problem for C++. - -=========================================================================== -2002-04-14 First public release 1.16 Kern Sibbald - - Many intervening changes/updates. - -2001-09-29 Release 1.0 Kern Sibbald - - Fixes to problems found at John's installation. - - See techlogs/kes25Sep01 for details - -2001-09-25 Release 1.0 Kern Sibbald - - Helped John install at his site. - He is backing up one Linux machine and - one Win2000 machine. - -2001-mm-dd Many releases - - Released internally. - -2000-04-09 Release 0.4 Kern Sibbald - - Added a lot of Director configuration code. In - part (a small part), the Director now uses the - bacula.conf file to know what to do. There still - remains a lot to do. - - The file search code is now integrated into the - MySQL database routines, and Bacula is now hooked - into the MySQL database (if so configured). Thus - all the database records are being created, though - there still remains some work in getting all the - details into the records (such as the Storage - coordinates). - - I've defined how Volume pools work (see manual). - - I've defined error message handling though no code - is yet written. - - The following resources and records are implemented - in the Director configuration file (bacula.conf): - - Director - Name (passed to Storage daemon) - Client - Name, Address, Port - Password (not yet used) - Storage - Name, Address, Port, Password, MediaType - Job - Name - Type (not yet used) - Backup (only one permitted) - Client, FileSet - Storage - Schedule, Messages, Pool (not used) - FileSet - Name - Include (options ignored) - Exclude (no options) - Schedule (not used) - Name - Messages (not used) - Name - Debug, syslog, mail, append (not used) - Catalog - Name - Address, Port, Password (not used) - Pool (not used) - Name - PoolType, MediaType (not used) - - - Added Storage configuration routines. - Director - Name, password (verified against those sent by Director) - Storage - Name, Address, Port (address, port must correspond to Director's values) - Password, MediaType - Device - Name, MediaType (must correspond to those sent by Director) - Archive Device (defines device name) - - -2000-03-10 Release 0.3 Kern Sibbald - - Implemented new base64 encoding for attributes. - This eliminates some of the error messages in the - sprintfs on the Solaris due to different stat() sizes. - - Implemented the first cut of the file search routines for - the File daemon. The exclusion lists work including wild - cards. There is a lot of work to be done, but the basic - structure is now in place (wild cards do not yet work for - the include). - - Completed writing the memory pool code. Now I must - implement it in the daemons. - - Modified the bacula start/stop script so that it has a - better chance of working on SGI and Solaris. - - The catalog code has not been converted to the new file - search code. - -2000-03-06 Release 0.2 Kern Sibbald - - Integrated John's fixes. - - Made Makefiles self configuring when Makefile.in is changed. - - Added a runit script in the top level that runs bacula - - Added a "bacula" script in the top level directory that - starts and stops the File daemon and the Storage daemon. +Changes to 1.37.41: +22Oct05 +- Print error message if no Changer Command found. +- Apply fix from Martin Simmons to clear structure before + using it in IPADDR -- fixes a bind() bug on AIX. +14Oct05 +- Add NetBSD fstype patch from Geert Hendrickx +- Update num_parts only when writing to DVD. +13Oct05 +- Fix error conditions in bpipe.c DVD routine (terminate buffer). +- Use a bigger buffer 32K as suggested by Arno in bpipe.c. +- Increase dvd mount timeout with patch from Arno. +- Modify DVD code so that it keeps a state flag that indicates + when the freespace variable is valid. freespace_errno, now has + either 0 or an errno. There are no negative errnos. +- Create is_freespace_ok() to test state flag. Also, set_freespace_ok() + and clear_freespace_ok(). Modify code to use them. This + simplifies a bit the logic of the freespace code. +- Edit 64bit debug values correctly in dvd.c +- Fix %e variable to check num_parts rather than part. +- Use static buffer instead of static buffers for FI_to_ascii() + and stream_to_ascii() debug routines in SD. This is to prevent + possible race conditions between two threads (possibly Phil's + unmount problem). +12Oct05 +- Add a .dir command that separates arguments with commas. It + is intended to be used in the tree routines to get a + machine readable output for GUIs like wx-console. +- Make configure set dvd-handler to have execute permission. +- Install dvd-handler as is done for other dvd-xxx scripts. +- In block.c call dvd_write_part() to write last part rather + than dvd_open_next_part(). +- Prefix some DVD subroutines with dvd_ +11Oct05 +- Add extra debug to Update media error for VolFiles decrease + error. +- Do not update dev->file on set_ateof() for non-tape. +10Oct05 +- Mark DVD volume in error if part cannot be written. +- If a DVD is mounted, unmount it before asking operator + to mount an different one. +- Add Arno's dvd-handler script to the scripts directory and + integrate with configure. It replaces both existing scripts. +- Make default schedule start at 23:10 +- Implement gui release in Makefile. It creates two .tar.gz + bacula-web and bimagemgr. +08Oct05 +- Add README plus tar release to gui project. +- Manual documentation +- Tweak bacula.man doc +- Add PRAGMA synchronous = NORMAL; to SQLite3 tables. This + speeds up SQLite3 so it is only about 10% slower than version + 2.xx. Thanks to Russell Howe for this tip. +- Add msvcr71.dll to pebuilder .inf file as it is needed by + Bacula FD. Thanks to Brandon for passing this fix to Scott. +05Oct05 +- Add VolumePurged method to Python JobEvents class. Fixes + bug #428 (I think). +- Add JobId index to File table for MySQL. +- Correct tray-monitor crash of bacula-dir. qstatus_cmd() + code referenced the wrong pointer. Fixes bug #438. +- Add bacualnovss.mak file from Martin. +- Remove Pool from restore string in wbrestorepanel.cpp. Patch + from user for bug #433. +- Correct code in wbrestorpanel.cpp with misplaced parens. Patch + from user for bug #431 +- Correct printing filenames/date/times in wbrestorepanel.cpp due to bad + column alignment. Patch from user for bug #432. + +Changes to 1.37.40: +01Oct05 +- Add fix to compat.h supplied by Martin Simmons that permits + building the Win32 FD without VSS. +29Sep05 +- Bring cats/bdb_x.c routines up to version 1.37 (return values + are different). +28Sep05 +- Integrate libwrap patch from Szechuan Death. They should + also fix bug 423. +- Clean up patches directory for next release. +- Add PS variable in bacula.in script as recommended by a user. +- Correct mtx-changer.in so it only creates a temp file when + actually needed. +- Add patch supplied by user in a bug report to fix gnome2 + console buttons. +- Add patch from Peter Eriksson to correct + NLS error in tray-monitor.c +26Sep05 +- Add code to catalog_update to detect NULL db pointer. +- Remove char *msg argument from catalog_request and + catalog_update(). +24Sep05 +- Fix mode change open in btape.c +- Use nonblocking opens on Linux only. +- Move set_blocking code for tapes into method to + simplify main line code. +- Cleanup the code for ensuring we advance tape on fsf. + This should fix IBM problems -- patch from Adam Thorton + was very helpful. +- Remove test for BMT_EOD in fixup_device... this eliminates + need for status_dev() routine. +- Before doing label ensure device is in read-write mode. + +Changes to 1.37.39: +20Sep05 +- Tweak daemon.c berrno, copyright. +19Sep05 +- Fix handling of temp file in mtx_changer.in, reported as + a security bug, but it is not really. Bug #422 +- Fix security problem of handling temp file in randpass. + Bug #422. +- During label/relabel, add new_volume to VOLRES list in SD. +18Sep05 +- Apply Landon's patch for the TLS ANS1 API change. +- Remove old code. +- Make single exit path in first_open_device(). +17Sep05 +- Make new_volume walk through all Vols looking for dev + to release. +16Sep05 +- Make "quit" command in console always allowed. +- Remove the storage list between each console command to + keep Dir from remembering a previously selected SD. +- Add code to reservation VOLRES subroutines to try to ensure + we don't end up with two Volumes on the same drive. +- Simplify the mutex code in VOLRES a bit to reduce the chance + of error. +15Sep05 +- Apply Nicolas' dvd-freespace.in patch. +- Make sure SQL table names are not translated. +- Eliminate incorrect message saying barcodes not + found in "label barcodes" -- fixes bug report. + +Changes to 1.37.38: +07Sep05 +- Add ability to have passwords on backup of catalog as + alternate 3rd argument. Submitted by Andrew Ford + +- Turn off TapeAlert by default if user enables a Device + and add a note to install mtx. +04Sep05 +- Fix out of order volumes during restore. + +Changes to 1.37.37: +30Aug05 +- Final tweaks to build Win32. +- Enable debug code in ua_label.c +- Remove devices from the Volume list even if no + Volume is in drive. Hopefully this fixes Arno's problem + of multiple volumes listed in the same drive. +28Aug05 +- Apply Landon's patch for TLS default values. +- Correct LOCALEDIR problem in build of Win32 +- Correct ssize_t problem in build of Win32 +- Add code to llprint pools and volumes to debug next item. +- From bug report, fix resetting Pool defaults in Volume. It + was a typo "Max" was missing in several places. +- Don't allow translation of database Volume Status values. + +Changes to 1.37.37 released 26 Aug 05 +24Aug05 +- Ensure that the drive is closed before calling the + mtx-changer script so that the script can access the drive. +- Add drive name to reserved Volume list printout in SD. +23Aug05 +- Fix bug in acquire.c that incorrectly reported volume + busy. +- Add additional debug code and messages in reserve.c +- Eliminate unwanted warning message in reserve.c + +Changes to 1.37.36 released 22 Aug 05 +20Aug05 +- Landon's fix for NLS detection +- Eliminate incorrect compiler warning on FreeBSD. +- Move Win32 errno message build into berrno constructor. +- Minor Win32 tweaks +19Aug05 +- A number of minor Win32 fixes. +- Remove a PostQuitMessage() as suggested by Thorsten so that + BartPE restore can work correctly. +- Fix for create JobMedia so that VolIndex remains valid even + during a delete Job or pruning -- bug 402. +- Minor tweak for Win32 build. +18Aug05 +- Win32 fix -- remove debug O_NONBLOCK code. +- Fix bug 399 -- make_catalog_backup does not work for sqlite3 +- Implement unloading a volume in a different drive if it + is needed in the current drive. +- Implement search for unused autochanger drive. +- Implement search for exact Volume in reservation before + other searches. +- Fix picking up drive in Dir so that it is not done in + the status command. +- Eliminate double check on "loaded" for autochanger. +17Aug05 +- Start coding better reservation algorithm +- Always look for slot for label command. +- Add more debug code for autochangers. +- Apply fix from Stephan Leemburg for + improper scanning of schedule resource: + Run = Level=Full Pool=Catalog daily at 1:20 +- Apply patch from Chris Lee for + adding --enable-build-dird --enable-build-stored. +- Tweak datadir definition in configure.in +16Aug05 +- Fix bug that missed drive=nn specification. +- Eliminate nonblocking kludge in heartbeat of FD as + it caused high CPU usage. +- Pickup loaded slot when doing open() of tape drive. +- Make autochanger reservation code go through full list + first pass until exact match found. +15Aug05 +- Fix how FileSet is saved in job record to correct continual + Full save. +- Make datadir print on config.out listing. +- Move get FileSet record up in backup init to eliminate continual + Full save seen by Peter Sjoberg. +- Add VolumeName to read-only Python variables. +- Add VolumePurged event for Python. +- Suppress /dev/ Filesystem change prohibited INFO messages. +- Do not delete FT_RAW files before restore (allows FIFOs + to be used for restore). +13Aug05 +- Add drive specification to mount, unmount, release, label, + and relabel for Autochangers. Note Dir<->SD protocol has + changed. + +Changes to 1.37.35: +12Aug05 +- Disable parts of NLS as the configure does not work here. +- In job backup init (backup.c) define definitive Job level and + since time, *then* apply Job Pool override selection if any. +11Aug05 +- Modified bconsole script so that it is improperly + installed, it will refuse to execute. This avoids + recursive call loops. + +Changes to 1.37.34: +06Aug05 +- Apply David's ACL fix to src/filed/acl.c +05Aug05 +- Apply patches sent by David Duchscher for + making ACLs work on MacOS X and FreeBSD. +04Aug05 +- Apply patch in bug#397 that improved configure + - find readline under $with_readline/include/readline + - no libutil under Solaris + - no need for -ldl under Solaris +- Make reservation system single threaded during the + search to avoid two threads competing for the same + resource. +- Correct a return code in find_suitable_device_for_job() + Possibly cause of "busy writing to another volume". +03Aug05 +- Modify open() for tape so nonblocking really works. +- Use fcntl() to reset blocking status rather than close() + and reopen the drive. +- Make sure dev->open() is always called so that any change + in read/write permissions will occur. +- Open drives initially in daemon in read-only mode. +- Ensure that each time the VolHdr.VolumeName is zapped + or changed that free_volume() is called on the old name. + +Changes to 1.37.33: +03Aug05 +- Require 5 arguments to mtx-changer except list and slots +- Turn -EPIPE status returns from bpipe to ETIME +- Include Slot in SD status output +- Do not term_dev() during initialization in SD if the device + could not be opened. In the case of a tape drive, there may + be no tape in the drive. + +Changes to 1.37.32: +02Aug05 +- Correct PostgreSQL database scripts as suggested by a user. +- Add additional info to FATAL message generated when a device + is busy writing to another volume. +- Suppress an inappropriate NULL Volume name message after a cancel. +- Correct a warning message in reserve.c +29Jul05 +- Apply user's patch to make mutiple modifiers for times + work correctly. +- Make read_dev_volume_label() handle ANSI/IBM labels + correctly -- ie space over any label at the beginning + of the tape. +28Jul05 +- Make ANSI/IBM writing of HDR1/2 labels ignore any + errors if at end of tape. +- Apply Martin's patch to improve Python detection in + configure.in +- Temporarily turn off disk seeking until I find the + cause of the problem. +27Jul05 +- Add OSF1 patch supplied by user. +- Use number of files selected from write_bsr() only + if it is not defined. +- Explicitly seek to end of file when getting size for + restore test. +- Correctly set EndBlock position in JobMedia record + for files. +- Remove unnecessary set StartBlock in bscan. Caused bscan + regression error. +26Jul05 +- Modify mtx-changer to wait a maximum of 300 seconds. +- Do restart of failed jobs only for Backups job types. +- A number of DVD updates from Nicolas. +24Jul05 +- Turn off old service helper code in Win32. +- Correct Messages bug found by Phil in stored. +23Jul05 +- Complete (almost) documentation of 1.38. +- Add error messages for error conditions with VSS. +- Fix additional problems with VSS backup that I introduced. +Changes to 1.37.31: +22Jul05 +- Correct compiler complaints in wx-console and tray-monitor. +- Correct VSS problems recognizing c: +- Add VSS before job status +- Fix output of status from being one big line. +- Change cd xx; make to cd xx && make as suggested by Phil. +- Cleanup projects file +- Remove unnecessary casting of FF_PKT in filed. +- Apply Thorsten's bugfix for vss_generic.cpp +- Add check for df path for dvd_freespace +- Use df to get space used on DVD. +- Change sense of flag indicating erase DVD or not before writing. +- Fix bpipe so that it never modifies the result pointer. +- Replace more dev_name by print_name(). +- Rewrite edit_device_codes_dev() so it does not overwrite the + supplied buffer. +- Update printing of labels (for bls) so that critical information + is printed (Job name and timestamp). +- Cleanup old spool files when starting the SD. +- Modify vss.cpp to allow C: as a path name. Otherwise VSS + doesn't work when only a drive name is given. +- Modify vss.c to eliminate double / in filenames. +- Update doc -- particularly the restore chapter. +18Jul05 +- Make all files in working directory have .xxx at end. +- Work on DVD writing. +- Fix keepatime bug (bugs database). +- Move Python variables from Job to Bacula. They are + DirName, Version, ConfigFile, and WorkingDir +- Fix delete of bootstrap to only occur on Bacula created + filenames. +- Allow cancelling a Job name that is not active. It is + sent to the daemons. +17Jul05 +- Fix name space pollution by OpenSSL 0.9.8 reported by + Matthias Kurz -- applied his patch. +- Fix bpipe.c so that it does not modify results pointer. + ***FIXME*** calling sequence should be changed. +- Remove some remaining references to dev_name. +- Fix calls to mount_dev() and unmount_dev() to + correspond to returned value (bool instead of int). +- Try without success to make DVD writing work. +== Nicolas +15Aug05 + - Convert dvd-writepart to Python. + - Increase delay from 3 seconds to 5 seconds between SIGTERM and SIGKILL when + killing external programs. +13Aug05 + - Add gettext macros in autoconf/gettext-macros. + - Modify how localedir is set in configure.in. + - Remove setlocale check (useless). +10Aug05 + - Mark translatable strings in all source files. +08Aug05 + - Create French and Italian translation files (fr.po, it.po). + - Add support for translation in configure and Makefiles. + - Update autoconf/aclocal.m4 so it is automatically created with aclocal + (Note: autoconf/gnome-macros is not used anymore, it may be removed). +30Jul05 + - Fix src/lib/bpipe.c:run_program and run_program_full_output to detect if the watchdog + killed the program, and return an error if it is the case. +26Apr05 + - Modify parse_config to get a LEX_ERROR_HANDLER as a parameter + - lex_open_file now returns NULL if the file can't be opened. All calling functions have + been adapted. + - Remove set_exit_on_error function +07Apr05 + - Fix "unknown device type" problem with DVD devices. + - Fix crash when there is no media in the DVD drive. +09Jan05 + - Update the documentation and ReleaseNotes. +05Jan05 + - Add FreeSpaceCommand in Device (SD configuration file) and implement it. + - Some modifications (again) on how guessed volume names are handled (now it should work). + - Part files on the hard disk are removed if they are empty. +04Jan05 + - Major fixes on how guessed volume names are handled. + - Minor fix in src/stored/append.c. + - Replace, when possible, POOLMEM by POOL_MEM in the new code of src/stored/dev.c. + - New script, scripts/dvd-freespace, which gets the free space available on a writable DVD. +03Jan05 + - Add WritePartAfterJob directive in Job resource (Director) + - Add WritePartAfterJob directive in Schedule Resource (Director) + - Implement these new directives +02Jan05 + - New function, open_guess_name_dev in src/stored/dev.c, which tries to guess the volume + name of a mounted device, so the label can be read. + - New script, scripts/dvd-writepart, which write parts to DVD+/-R(W). + - Removed WriteFirstPartCommand directive in Device (SD configuration file). + - Use readdir_r instead of readdir (src/stored/dev.c:open_guess_name_dev). +01Jan05 + - Add RequiresMount, MountPoint, MountCommand, UnmountCommand directives in Device (SD configuration file). + - Implement these directives (volumes can now be restored from a manually written DVD). + - Add WriteFirstPartCommand, WritePartCommand directives in Device (SD configuration file). + - Implement these directives (DVD writing now works). + - New function run_program_full_output in src/lib/bpipe.c. + - Lots of bugfixes and cleanups in the new code. +29Dec04 + - Add VolParts field in Media table + - Add MaximumPartSize directive in Device (SD configuration file) + - File Volumes can now be splitted in multiple files ("parts") + - Fix SQL error in sql_list while doing "llist jobmedia" + +Changes to 1.37.30 released 16 July 2005: +14Jul05 +- Fix "dir" command scanning field misalignment in + wx-console. +- Switch to using the wxWidgets Unicode library. +- Include msvcr71.dll in distribution. +- Add VSS to status line in Win32 FD if enabled. +- Get VSS build scripts working with Thorsten's help. +- Unlink the bootstrap file after sending it to + the FD. +- Remove sending include/exclude lists to the FD during + a restore -- deprecated code. +- Cleanup the bootstrap files in the FD. + +Changes to 1.37.29: +14Jul05 +- Remove old commented out code from configure.in +- Add baculavssfd.mak file for building VSS version of + Win32 FD. +- Correct date (year) in vss.cpp and vss_generic.cpp +13Jul05 +- I finally found and squashed the elusive SD crash. + I needed to initialize the used volume list before + firing off the device initialization thread. +Changes to 1.37.28: +11Jul05 +- Make sure that bpipe results are zapped even on + error return. +- Lots of documentation. +- Do not prune volume marked as append when needing a + new Volume. +- Print a warning message in SD if a non-used Volume + is specified and autolabel not turned on. +- Correct a bug in chksum.c concerning SHA1 signatures + (an * should have been & when checking for a bit flag). +- Print File:Block for all label records in label.c -- concerns + primarily bls when doing Job listings (-j). +- Correct is_volume_in_use() to return false if testing + on the same device where the Volume is already mounted. +- Define a init_done flag in the SD that is set when the + devices are initialized and make users connecting wait. + This prevents useless connect failure warning messages. +- Do additional device locking in ask_op_to_mount_volume() + to prevent race conditions with a user labeling a Volume + or autolabeling. +09Jul05 +- Add a test for error return from bnet_wait... in heartbeat.c + in FD to avoid CPU loop. +- Implement TLS in gnome console and wx-console. + +Changes to 1.37.28: +08Jul05 +- Correct a NULL pointer reference in the mount command. +- Correct typo in Copyright +- Add detection of EOM for IBM drives (i.e. errno == ENOSPC) +07Jul05 +- Remove temp file created in mtx-changer script. +- Make fsf_dev() into a class method. +06Jul05 +- Modify mtx-changer.in script to return slot:barcode for + Volumes that are loaded in the drives. +- Correct some more places where dev->is_blocked() needs + to be checked in dircmd.c in SD. +- Update doc. +05Jul05 +- Add code to ensure that reserved but unused volumes + are freed. +- Correct how Volumes are mounted and handled so that the SD + does not get stuck if multiple volumes are used (recycling, + relabling, ...) +- Correct bug where you could relabel a volume while it + was being acquired -- created chaos. +04Jul05 +- Correct seg fault caused by open() calling sequence change. +03Jul05 +- Add new rc-chio-changer script by Rudolf Cejka to + examples/autochangers +- Apply Rudolf's changes to bacula.in +- Expand the space from 8 to 10 characters in editing + file sizes for restore and dir of catalog, otherwise + GB sizes are truncated -- fixes bug report. +- Modify wx-console to know about 10 character widths. +- Allow decending into top level directory if "recurse=no" + is set. Fixes a bug report. +- Install pthreadVCE.dll when installing console or wx-console + on Win32 systems. Fixes bug report. +02Jul05 +- Tweak dvd-writepart script to prevent door from opening/closing + so much. +- Remove GROUP BY in several PostgreSQL commands to prevent error. + Resolves bug report. +- Ensure that < as first character of filename list is not treated + as a directory for restore. +- Add debug to heartbeat in FD as it seems to go into an + infinite loop from time to time during SD failure in DVD writing. +- Add more debug code to dvd writing. +- Attempt not to destroy existing fs on DVD. +30Jun05 +- Detect device mounted for DVD and suppress be sure to + mount message after label. +- Set Cleaning tape status to "Cleaning" and force no + MediaType. +- Get DVD writing working with new standard Bacula open() + code. +- Rename get_filename() to make more sense. +- Detect "is already mounted on" on mount command so to avoid + error if device is already mounted. +- Eliminated guess_name() code. It may be necessary to + add it back later. +- Eliminate seg fault from printing invalid results. +- Make dvd_write_part() bool. + +29Jun05 +- Attempt to fix DVD writing by eliminating a number of the + DVD subroutines to simplify. +- Modify DEVICE::open() to take dcr as first argument. This + will permit providing more info to DVD opening. +- Fix scanning for time/size items which in some cases + ate the next line. +- Eliminate read_dvd_volume_label(). New code (not yet written) + *must* open dvd appropriately before calling + read_dev_volume_label. +- Modify open_first_part() open_next_part() to take DCR as + argument. +- Make label command from console work on DVDs. +- Make mount command from console work on DVDs. + Unmount does not work yet. + +Changes to 1.37.27: +27Jun05 +- Add Database vendor to CatalogRes tuple for Python. +- Update doc +- Implement DoesVolumeExist(Vol) for Python. +- Prevent python command from seg faulting if no arg given. + +Changes to 1.37.26: +26Jun05 +- Add set_mode method in DEVICE. +- Correct set_mode method in DEVICE +- Add more DVD debug info +23Jun05 +- Check for incorrect duration and size modifiers in conf files. +22Jun05: +- Make Version a tuple (version, build-date) +- Add CatalogRes tuple (DBName, Address, User, Password, + Socket, Port) +- Add Version, ConfigFile, and WorkingDir as Python attributes + in the Director. +- Implement code (principally for Win32) that on failure to + create a file, it will cd into the directory and attempt + to create the file using a relative path. This avoids creating + files with paths which fail on Win32. +- Fix parsing of times and sizes with decimal numbers. +- Make free_volume_list() in SD work if vol list is not + initialized (./bacula-sd -t). +21Jun05: +- Add debug error printout when open() fails. +- If open() of DVD fails in mount.c, return false. +- Split open() code for DVD into separate subroutine in dev.c + +Changes to 1.37.25 released on 20 Jun 05: +20Jun05: +- Fix bug where Storage daemon gets confused about what + tape is mounted. (one line of code was inadvertently + deleted). + +Changes to 1.37.24: +18Jun05 +- DVD writing/reading seems to be mostly working. +- Set execute bits on dvd-freespace and dvd-writepart +- Make dvd-freespace use existing dummy file. +- Modify dvd-freespace to pickup size from Track Size: +16Jun05 +- Add Date, Job, level to updates to .bsr file in + dird/backup.c +- Add debug info to dvd-freespace.in +- Fix hard coded bacula.sql in make_catalog_backup reported + by a user. +- Make sure a verify volume to catalog never reports an error + if there are zero files to verify. +- Remove confusing debug info in filed/backup.c on network + error. +- Make sure output from console is not sent to system log. +- Convert open_dev() into a class method. +- Change VolHdr.VolName to VolHdr.VolumeName. +- Add a flag in the device state word to indicate that + we found Media in the drive (DVD). +- Make mount_dev() and unmount_dev() return bool. + +Changes from Nicolas Boichat: +26Apr05 + - Modify parse_config to get a LEX_ERROR_HANDLER as a parameter + - lex_open_file now returns NULL if the file can't be opened. All calling functions have + been adapted. + - Remove set_exit_on_error function +07Apr05 + - Fix "unknown device type" problem with DVD devices. + - Fix crash when there is no media in the DVD drive. +09Jan05 + - Update the documentation and ReleaseNotes. +05Jan05 + - Add FreeSpaceCommand in Device (SD configuration file) and implement it. + - Some modifications (again) on how guessed volume names are handled (now it should work). + - Part files on the hard disk are removed if they are empty. +04Jan05 + - Major fixes on how guessed volume names are handled. + - Minor fix in src/stored/append.c. + - Replace, when possible, POOLMEM by POOL_MEM in the new code of src/stored/dev.c. + - New script, scripts/dvd-freespace, which gets the free space available on a writable DVD. +03Jan05 + - Add WritePartAfterJob directive in Job resource (Director) + - Add WritePartAfterJob directive in Schedule Resource (Director) + - Implement these new directives +02Jan05 + - New function, open_guess_name_dev in src/stored/dev.c, which tries to guess the volume + name of a mounted device, so the label can be read. + - New script, scripts/dvd-writepart, which write parts to DVD+/-R(W). + - Removed WriteFirstPartCommand directive in Device (SD configuration file). + - Use readdir_r instead of readdir (src/stored/dev.c:open_guess_name_dev). +01Jan05 + - Add RequiresMount, MountPoint, MountCommand, UnmountCommand directives in Device (SD configuration file). + - Implement these directives (volumes can now be restored from a manually written DVD). + - Add WriteFirstPartCommand, WritePartCommand directives in Device (SD configuration file). + - Implement these directives (DVD writing now works). + - New function run_program_full_output in src/lib/bpipe.c. + - Lots of bugfixes and cleanups in the new code. +29Dec04 + - Add VolParts field in Media table + - Add MaximumPartSize directive in Device (SD configuration file) + - File Volumes can now be splitted in multiple files ("parts") + - Fix SQL error in sql_list while doing "llist jobmedia" + +Changes to 1.37.23: +- Renamed to make unique version for open_next_part() + changes. + +Changes to 1.37.23: +- Renamed to make unique version for open_next_part() + changes. + +Changes to 1.37.22: +14Jun05 +- Fix the same state variable problem in open_next_part(). +- C++ify the SD code a bit more. +13Jun05 +- Add more debug code and clarify debug code for DVDs. +- Do not save and restore state in open_first_part() + since state should be properly set after open_dev(). +- Make default mandir /usr/share/man +- Install Bacula man page. +- Implement passing of FileSet Enable VSS to FD. +- Move main body of reserve drive code into subroutine + so that it can be called multiple times. +12Jun05 +- Eliminate getpass() for Win32 builds in console as the + function does not exist. +10Jun05 +- Correct some reservation problems in SD when no devices + are available. +- Start removing #ifdef HAVE_TLS by sneaky tricks. +- Begin implementation of TLS in wx-console +- Remove ignoring SIGCHLD from console. +- Rework the dlist binary search routines for implemenation + of the Volume reservation code -- make it more general. +- Strip double slashes // from Win32 filenames in an attempt + to resolve restore problems on some systems. +- Fix a minor bugs in the trace code that caused the first + line output to be lost. +- Implement a good first cut at adding Volume reservation code + to the storage daemon (in file reserve.c). +- Remove old unused code from the tree.c routines. + +Changes to 1.37.21: +06Jun05 +- Fix compile problems on Win32 +- Start writing Volume reservation list (already exists, but + is not really very good). +- Implement attribute caching to put Signature into database + at the same time as the file attributes thus eliminating a + number of database accesses. +- Correct a reservation problem. +- Implement full Dir Storage use. +- Reduce a bit of TLS #ifdeffing. + +Changes to 1.37.20: +04Jun05 +- Minor changes +01Jun05 +- Add more documentation to mtx-changer.in +- Correct link to manual in authenticate.c in various + directories. +- Create a new src/stored/reserve.c file where the + Use Storage command is processed and drives are + reserved. +- Modify src/stored/autochanger.c to keep track of each + Slot that is loaded for each device. +- Ensure that changer_command and changer_name are picked + up from Autochanger resource if not specified, and if + neither is specified, err. +30May05 +- Fix bextract.c compile problem +- Create bacula.man +- Make make distclean clean a bit better +29May05 +- Remove old code in jcr.c +- Make testls release jcr chain when terminating. +27May05 +- Implement Maximum Job Spool Size (actually DCR based) +26May05 +- Use light weight non-recursive locking on jcr chain. +- Make JCR a class and implement inc_use_count() and + dec_use_count() methods that ensure that the jcr is + locked when inc/dec the use count. +- Remove the global jcr lock when traversing the jcr + chain. +- Use dlist to implement the jcr chain rather than hand + crafted next and prev links. +- Lock the jcr chain inside each function that modifies + the chain. + +Changes to 1.37.19: +26May05 +- Fix compile problem of ua_restore.c on broken compilers. +- Apply patch from bug 326 to permit bacula status by any user. +- Fix bug 325 -- conversion of 12:30pm to 24hour time. +25May05 +- Put Dmsg() on inside if() to avoid calling subroutine. +- Make restore.bsr have unique name. +- Allow user to define bsr filename on restore command line + with bootstrap=xxx.bsr +- Add limit=nnn to "list jobs" command. +- Remove old restore code that did not use .bsr file. +- unlink automatically generated bsr file. +- Cleanup heartbeat code so that duped fd is almost sure + to be released. Previously under certain conditions, the + memory was not released due to race conditions. +- Shorten copyright. +20May05 +- Unify the reserve_device() for a single device into one subroutine. +18May05 +- Modify wait during use_device to happen only after all devices + have been examined rather than in the reserve_device code. +- Correct updating count of number of Volumes in a pool. + +Changes to 1.37.18: +16May05 +- Add more debug to SD for Autochangers + status output. +- Add Scratch to PoolType in PostgreSQL make...tables and do not + permit NULL PoolTypes. Fix for bug 319 reported by Eric. +- Update LICENSE. +- Add quotes around filename in parse_config error message. Bug + reported by Eric. +15May05 +- Change nested \include to \input so that sections are properly + included in the pdf manual -- update the Web site. +- Set reconnect flag in MySQL packet to 1 to ensure that connection + is re-established. MySQL 5 changed default to 0. Fixes bug report. +- Fix Scratch pool handling as reported in a bug by Eric Bollengier + by applying his patch. +- Remove delete job in favor of delete jobid. +- Add = NULL to configfile definitions as reported by Eric in a bug + report. +- Update winbacula.nsi.in to reflect new manual file structure. +10May05 +- Correct a minor build problem with wx-console. +- Add cancel() to Dir Python scripting. +- Re-correct bug in parse-config error handling. +- Reorganization of use_command in SD to permit + waiting and multiple drive autochanger support. +09May05 +- Correct bug in parse_config error handling. +- Where ever possible mark a volume in error or not + InChanger in mount.c +- Fix bug in changing tape pools after first backup. Reported + by Peter Sjoberg. +- Enhance mtx-changer to use Working Directory as temp. +- Remove all but initial setup locking of Res in SD. +08May05 +- Add Client OS type to Job report. +- Add version to manual +- Update the Web site to have a single page for + the documentation links. + +Changes to 1.37.18 release 08May05: +08May05 +- Correct attribute definition compile error in 1.37.17 +- Correct inverted order of CreateTime and MD5 pointed out + by a user in a bug report in FileSet db routine causing + the MD5 to print in the output instead of the time/date. + +Changes to 1.37.17: +07May05 +- Implement cstrlen() in sql list routines. +- Implement caching of attributes to add the + signature so that only one DB call will be made + per file. Not yet turned on. +- Fix Win32 build for TLS. +- Optimize File pruning to eliminate one database call. +- Fix bug that prevented File pruning from working. +- Implement a cstrlen() which returns the character + length of a UTF-8 string. +06May05 +- Move test for MaxStartDelay as suggested by Peter. +- Implement Python methods (I had to read the Python source + code). +- Implement run() method in Director. +- Add Priority and Scheduled time to Job report. +- Add JobInit and JobRun events. +- Add Priority as Python read/write attribute to Job. +- Correct typo in bsmtp reported by Jo. + +Changes to 1.37.16 (07May05): released 07May05 +07May05 +- Implement cstrlen() in sql list routines. +- Implement caching of attributes to add the + signature so that only one DB call will be made + per file. Not yet turned on. +- Fix Win32 build for TLS. +- Optimize File pruning to eliminate one database call. +- Fix bug that prevented File pruning from working. +- Implement a cstrlen() which returns the character + length of a UTF-8 string. +06May05 +- Move test for MaxStartDelay as suggested by Peter. +- Implement Python methods (I had to read the Python source + code). +- Implement run() method in Director. +- Add Priority and Scheduled time to Job report. +- Add JobInit and JobRun events. +- Add Priority as Python read/write attribute to Job. +- Correct typo in bsmtp reported by Jo. + +Changes to 1.37.16 (03May05): released 05May05 +03May05 +- Make a few tls ifdef tweaks. +- Fix create_file.c Win32 problem pointed out by + Peter Sjoberg. +- Fix really ugly bstrncpy() but found by Thorsten. +- Move winapi.h/c from findlib to lib for inclusion in + multiple places. +02May05 +- Thorsten Engel finished his work on Win32 Unicode. We + now have a single executable that runs on all Win32 machines. +- Move job initialization code after job scheduling so that + Verify jobs check for the prior JobId after they are really + started rather than before. +- Fix lib/fnmatch.c so that it does proper testing before folding. +- More documentation -- at tls and ansi labels chapters. +- Fix fileset_convert.pl to handle empty Exclude statements. +- Turn regex back off in Win32 +01May05 +- Fix sign extension problem in lex.c that reads UTF-8 + with Chinese characters incorrectly. + +Changes to 1.37.14: +30Apr05 +- Remove a few HAVE_TLS #ifdefs +- Implement final Python style interface. More implemention to + be done, but the interface should change little if at all. +28Apr05 +- Make default no tls support. You must add + --with-openssl to get tls support. +27Apr05 +- Update Web header to include google search in the search + box -- thanks to input from Michel Meyers. +- Fix md5sum so that it builds with the new openssl stuff. +- Take some enhancements to the md5sum test program proposed + by a user. +26Apr05 +- Apply Tru64 patch supplied by Pascal Pederiva +- Apply Unicode fixes for Win32 from "Thorsten Engel" + +- More work on Python read feature in FD. +22Apr05 +- Fix (hopefully) the ftello() overflow reported by Peter. +- Landon Fuller committed his TLS patch. +- Fixed two minor warnings in console.c with TLS turned off. +- Updated the Makefile.in for wx-windows and tray-monitor + to handle TLS. I can only build the tray-monitor. +- Fix bscan to open tape in read-only mode (actually fix + it so that it doesn't use the standard open routine). +- Correct what appears to be an error in setting the + return value in dvd.c +21Apr05 +- Get FD Python running -- design Python backup interface. +- Fix seg fault in SD when referencing Alert Command. +- More documentation. +- Fix one more thing in Win32 build. +20Apr05 +- Doc updates +- Fix Win32 build +- Put in production here + +Changes to 1.37.13: +19Apr05 +- Fix SQLite and PostgreSQL table creation script syntax + problems. +- Fix new Python code to work for Director. +- Move lib/python.c to lib/pythonlib.c so that debug output + is easier to read (can distinguish lib from dird, ...). +- Cleanup Python build so that Python is not dragged + into programs that don't use it. + +Changes to 1.37.12: +02Apr05 +- Reset NumVols in Pool record from database on every update + Pool. +- Modify DB to support multiple simultaneous copies and + RAIT stiping. +- Pass copy and stripe between DIR and SD and put into + the JobMedia DB record. +- Update and test SQLite and MySQL datebase creation and + update scripts. +- Implement version 9 of the DB. +31Mar05 +- Convert more atoi to str_to_int64() for DB. +- Implement filling in NumVols by querying DB rather + than trying to keep track of it. +- Add storage name to string passed to in use storage= +- Fix newVolume() so that the Python script is always + called. +- Fix handling of pool,PoolId, and storage in ua_output. +- Same fix in ua_status.c +- Remove required locking of resources +- Replace pthread_cond_signal() by pthread_cond_broadcast() + hoping to fix the /lib/tls hang problems (lost signal). +- Move resource locking seaching from parse_conf.c to res.c + in src/lib. +- Modify end of volume handling so that fixup_... does not + redo what block.c has already done -- writing Vol info to + DIR. This fixes a bug with bad numbers of files on a tape + when it filled as reported by Peter. +- In release_device() do not update the DIR on the Volume + info if the the information was already written at the + end of the tape. +28Mar05 +- NOTE!!!! This version has a new DIR <--> SD protocol. Both + must be updated at the same time. +- Begin implementation of passing all the Storage and Device + possibilities to the SD for examination during the reserve + phase. +- Modify the reserve and acquire code in the SD to make a + job wait if the device is not available. +- Implement New Volume Each Job in DIR and pass to SD, not yet + used. +- Remove init/update of the Device resource in DIR +- Remove passing PoolId to SD and back. +26Mar05 +- Remove \a and -e from error echos in most Makefiles. +- Add more debug code when there are errors on the tape + to try to find Peter's tape problem. +- Add wait.c (oops forgot previously). +- Move all the reserve/acquire_device_for_read/append to have + only a DCR as the argument. +- Rework the reserve_device_for_append() in stored to wait + if the drive is not available. Note! This is a short + term solution. +25Mar05 +- Comment out Multiple Connections in the document. +- Move the P() and V() to subroutines so that they can be accessed + from class methods. The reference to strerror() caused problems. +- Implement new DEVICE class methods block() and unblock() that + do what was previously done in 3 lines of code. +- Implement wait_for_device(), which will wait for any device + to be released then return. This requires a new global mutex + and condition variable, and is implemented in src/stored/wait.c +- Change the code in reserve_device_for_read(), which previously + failed the job to use the new device wait code. +22Mar05 +- Apply reschedule patch to 1.37 code. +- Add copyright to title page of manual so it is clear. +- Create patch for rescheduling problem found by Ludovic. Storage + pointers were lost during rescheduling. +- Attempt to fix 2.6 rescue disk -- failed! +- Start working on adding a wait routine in the SD. +- Cleanup some old invalid doc in watchdog. +- Convert a number of references to dev->dev_name to dev->print_name(). +- Add new wait.c file to SD. +- Add a few more methods to DEVICE in SD to cleanup code a + bit -- implement a few of the methods. +18Mar05 +- Fix more print_name()s for printing device name. +- Modify open_dev to try 10 times every 6 seconds to + open the device if it gets an I/O error (meaning no + volume mounted). This gives a bit of settling in time + for an autochanger and avoids spurious messages. +- Change all yes/no to yes|no in the manual. +- Fix win32 create_file.c typo. +- Fix a typo in an error message. +17Mar05 +- Detect if fseeko exists with autoconf. If so, use it + and ftello. +- Remove old bacula-*.conf from examples directory (out + of date). +- Remove latex-fr index files from CVS. +- Rewrite code that stops reading the tape so that the + tape is marked at EOT, then once the work is done, + the EOT flag is removed. +- Flush output to file after every send in console. +- Make setting VolFiles to smaller number fatal. +- Disable Multiple Connections code. +- Add patch from user for NetBSD statvsfs() fix to + fstype.c +- Take more care with errors in acquire.c +- Don't run through dvd code in append.c if bad status + returned. +- Modify code so that an autochanger fault is fatal. +- Use dev->print_name() in more places. +- Implement dev->can_steal_lock() to simplify code. +- Make btape re-read first 10000 records on fill command. +- Check error return and fail job from fseeko and ftello + in spool.c. Don't let a -1 slip in as size. + +Changes to 1.37.7: +15Mar05 +- Apply NetBSD patch from kardel in bug 258. +14Mar05 +- Add a second job and a second client to the default + bacula-dir.conf file. +- Remove old style Include/Excludes. +- Fix ANSI labels to put EOF1 and EOF2 after each file mark. +- Add Python to SD and FD. +12Mar05 +- Implement IBM labels +- Implement EOF and EOV labels at the end of a volume. +- Fix a rather ugly problem with the PoolId not getting + passed correctly. Now the DIR passes the Pool name and + Media Type to the SD, who passes them back when requesting + the next Volume. The DIR then looks up the correct PoolId. + This takes more time, but always works, AND allows wild + card Media Types (i.e. the SD can decide). +- The DIR <==> SD protocol has changed. + +Changes to 1.37.6: +11Mar05 +- Fix scanf of PoolId in catreq to handle 64 bit Ids. +10Mar05 +- Add new ua_update.c file and move update_cmd there. +- Modify "update slots" to obtain actual number of slots. +- Tweak autochanger code to handle new slots request. +- Modify autochanger code to lock/unlock around slots and + update slots code. +09Mar05 +- Patch the FD so that it does not issue an error message if + it attempts to restore the permissions on a Win32 drive. +- Edit "Resource-name" (physical-name) for the device name + everywhere in the SD. +- Remove .linked.tex files in preparation for cutover to + using .tex in place of .wml. +08Mar05 +- Copy latest config.sub and config.guess from autoconf. +- Try new way of identifying drives with: + "resource-name" (physical-name) + More work need to a complete conversion. +07Mar05 +- Rework some of the autochanger data so that the DIR has + the number of drives. +- Modify the way the Device info is returned so that it comes + back as a special message type and can be sent anytime the + Device status changes. +- Copy the change name and changer command into the device + record if none is specified. +- Require the change command and changer name to be specified in + and AutoChanger resource. +- Force all the Media Type records of all devices in an Autochanger + to be the same. +06Mar05 +- Add new "run" command to Job resource in DIR. This permits + cloning a job as many times as you want. +- Pass PoolId to SD on Query request. It is now used in the + Find_media catalog request. +- Reworked the Device resource in the DIR. Eliminated num_waiting + and use_count, but added max_writers, reserved, and PoolId. +- This DIR is nolonger compatible with previous SDs. +- Add since and cloned keywords to the Console run command + to support cloning. +- Implemented store_alist_str() to allow multiple string items + to be specified in a .conf file. +- Added %s (since time) to Job code editing. +- Reworked reserving drives in the SD. It now does it much simpler + and correctly. +05Mar05 +- Integrate HP-UX patch from Olivier Mehani +- Fix FD job.c to test correctly for no level. + +Changes to 1.37.4: +04Mar05 +- Change Developers to Developer's Guide as requested by Michael. +- Fix developers link in manual +- Add additional dcr changes in SD to allow multiple dcrs. +02Mar05 +- Fix a few problems with the MySQL table create in 1.37. +- Delete the new tables in the table delete files. +- Increase the number of items permitted in a conf table. +- Make Director loop over alternative Devices specified in the + Storage resource until one is reserved by SD. +- Fix storing of StorageId in Media records. +- Add AutoSelect = yes|no in bacula-sd.conf +- Add Autochanger support to Label command. +- Do not autoselect devices with autoselect set false +01Mar05 +- Implement setting DIR Storage device to Autochanger + name. +- Select first available device in Autochanger. +- Pass back actual device name used. +- Allow Query of AutoChanger. +- Modify Query to include name of AutoChanger if + Device belongs to one. +- Remove old Pool code in jobq.c +- Add Autoselect flag to query and DEVICE class (still + need Directive). +28Feb05 +- Lock autochanger script when running. +- Mark Volume not InChanger if correct volume is not + autoloaded. +- Corrected some typos in the make_xxx_tables.in files. +- Made preliminary split of pre-run and run code for each + job type. This will permit early opening of SD for reserving + drives. +- Add offline and autochanger fields to Device Query record. +- Correct pthread_mutex_init() for autochanger in SD. +- Tweak Makefile for LaTeX manual, plus add nav buttons. +26Feb05 +- Clean up drive reservation system. Add more sanity checks. +- Implement a few more methods for the DEVICE class in SD. +- Add latex directories to make clean +- move DEV_BSIZE to B_DEV_BSIZE to avoid conflicts with + certain header files (FreeBSD). +24Feb05 +- Fix an ASSERT that was triggering in stored/acquire.c + attempt to fix a bug report. +23Feb05 +- Corrected SunOs to SunOS in btraceback (user submitted). +- Applied patch from Roger Haa¥kansson + to warn the user of defective AWKs during ./configure. +20Feb05 +- Add some changes submitted by a user for HP client build. + Not all changes accepted. +- Rework code in filed/backup.c to ease #ifdefing and make + program flow more obvious. +- Split DVD code out of dev.c into dvd.c +- Tweak #ifdefing to add back all the performance measurement + #defines in version.h +- Put most of MTIOCGET code in a subroutine to simplify the + mainline code. +- Make clean remove old CVS files +- Remove unnecessary image files from Latex directory +- Implement remaining parts of Storage DB record and + its use in the Director. +- Implement + FullMaxWaitTime, Differential Max Wait Time, and + Incremental Max Wait time in Job resource. +- Start work on SD Autochanger code. +19Feb05 +- Add back JobId index for MySQL as default -- speeds up + pruning. +- Add more database fields and fix the update scripts to + include the new items. +- Pass actual level to FD so that ClientRun editing can reflect + correct level -- ditto for job status. This makes the DIR + incompatible with older clients! +- Move jobq.c acquire resources to static subroutine so that + the code logic becomes clearer. This is in preparation for + actually using the new Device resources. +- Fix some lower case problems in sql_cmds.c reported by + Debian. +- Correct a seg fault in the SD reported by a user. Occurred + only when a high debug level was set. +- Modify init_dev() in dev.c to take JCR as first arg so that + proper error messages can be reported in next item. +- Modify the query and use device SD commands to attempt to + open the device if it could not previously be opened. +- Correct error message for Could not reserve device. +- Correct some minor details with Autochanger resource in SD. +18Feb05 +- Fix seg fault if debug level 900 set in SD. +- Truncate Win32 child return code to 8 bits. +- Remove some old lld's. + +Changes to 1.37.3: +16Feb05 +- Make another attempt at fixing the ClientRunXXX return code + bug on Win32 machines. +- Apply ua_status patch from Carsten Paeth + which enforces console ACLs in the status command for Jobs. +15Feb05 +- Fix Media LabelDate and FirstWritten to be correctly set. +- Fix deadlock in multiple simultaneous jobs. +- Fix tape "truncation"/"number of files" after restore bug. +10Feb05 +- Ensure that correct error messages are returned when + reading an ANSI label. +09Feb05 +- Modified ANSI label code to preserve any ANSI label + already found by skipping over it rather than rewriting + it. +- Split the ANSI label code into ansi_label.c +- Do not let user relabel an ANSI labeled tape. +- Applied a patch for the console help command supplied + in a bug report. +- Added some new dev methods. Most notably was + set_eof(), which handles setting all the dev variables + when an EOF is just read. This is now used most everywhere + in the code. +07Feb05 +- Added code to detect that no files were inserted into the + tree for a restore. If a specific JobId was specified, the + user has the option of restoring everything. +- More progress in implementing 64 bit DB Ids. +- Modified the daemon start messages for RH. +- Implement update scripts for all database types. +- First cut at implementing restore directory (it will not + recurse). +04Feb05 +- OK, I think ANSI labels work. +- Added Label Type = ANSI|IBM|Bacula to Device resource in SD. + If this is set, it will force writing of the appropriate + label type. +- Added Check Labels = yes|no to Device resource in SD. If this + is set, Bacula will check for ANSI labels and accept them, + otherwise, ANSI labels will not be accepted when the tape + is first mounted. +02Feb05 +- Second cut ANSI labels. +01Feb05 +- Merge Preben's patch for ACLs and for Mac OS X resource forks. +- Some doc updates. +- Display more informative message when a device was not + found or could not be opened. +- Add the sqlite3 database scripts. +- Add some patches for 1.36.1 (note, I have now prepared + a 1.36.2 with all the patches and some new features -- + to be documented). +- Some minor doc updates. +- Add Arno's baculareport.pl script to the examples directory. +29Jan05 -- after vacation +- Add support for SQLite3 (it seems to run at 1/2 the speed + of SQLite2). Use --with-sqlite3 instead of --with-sqlite + to get SQLite3. +- Add target for running qemu to boot Rescue CDROM +- Add code to support kernel 2.6 in Rescue CDROM -- does NOT yet + boot correctly. +- Implement ANSI labels -- not yet tested. + This required changes to DB format. No upgrade script yet. + Note, more work needed to modify "update" command to handle + changing label types, also must restrict volume name lengths + to 6 characters. +- Add new Device, Storage, and MediaType records to DB. No + upgrade script yet. +- Add MediaType to bsr file record types. Not yet used in SD. +- Permit multiple device specifications in Storage resource in + Dir conf file. +- Implement Device resources. Director requests Device resource + info from SD on startup. +- Note!!!! DIR->SD incompatible with previous versions. +- Remove multiple Storage definitions in Job resource. One can + still specify multiple Storage resources, but they all go into + a single alist, and imply sending data to each Storage daemon + simultaneously. +- Implement Device query command between DIR and SD. +- Allow DIR to "reserve" a Device. It will then be acquired + when the FD connects to the SD. +- Turn all DIR resources into classes, and implement a few class + methods -- more to come. +- Turn DEVICE in SD into a class, and implement a number of inline + class methods -- more to come. +- I had serious problems with ACL errors on my Laptop, and so had + to add the following patch: + @@ -181,7 +181,7 @@ + } + /***** Do we really want to silently ignore errors from acl_get_file + and acl_to_text? *****/ + - return -1; + + return 0; + } +- Added edit_int64() +- Reworked and tested a bit the htable routines. +- Major changes to SD acquire.c -- DIR can now reserve devices. Needs + lots of testing!!!! +- Made a special state code for DVD -- this simplifies the logic + of the code, but I probably broke it. Testing needed!!!! +- Add AutoChanger resource to SD, but not yet used. + +Changes to 1.37.2: +12Jan05 +- Integrate Preben 'Peppe' Guldberg 's + acl patch. Fix case where configured but no ACL exists. + Rework calling arguments to be shorter and positioned + more typically in Bacula usage. +11Jan05 +- Fix scripts/bacula.in to have awk on an environment variable + and add comments for Solaris users. +- Turn off inet_aton in src/lib/address_conf.c for Win32 +- Add new files to win32 build and eliminate a compiler warning. +- Add sample DVD Device resource to bacula-sd.conf +08Jan05 +- Integrate Nicolas' patch for direct DVD support. +07Jan05 +- Fix fstype error returns. +- Apply Preben's cleanup.patch which puts back much of the + cleanup code in src/filed/restore.c +06Jan05 +- Apply all of Preben's patches, but revert to old backup.c + and old restore.c in filed. Also turn off code in new + acl.c because of errors. The new code, when fully implemented + moves platform specific code into acl.c. + One of the patches also implements WildFile and WildDir -- thanks. +01Jan05 +- Implement Python in the SD (no events yet though). +- Fix some typos in the previous commit. +30Dec04 +- Enhance CDROM boot to include some documentation at boot time. +- NOTE!!!!! The CDROM will not boot 2.6 kernels because the + boot sequence has changed significantly. Updates to come + later. +- Add memtest option to CDROM boot. +- Include Nicolas' changes to fix llist JobMedia records. +- Make sure that ClientRunBefore/After messages from the program + are terminated with a newline. Add strerror to output error + messages. +- Return program exit status code in Win32. +29Dec04 +- Add memtest86 to Bacula Rescue disk +- Enhance Rescue disk startup screen +24Dec04 +- Move some variables to eliminate Solaris 2.6 compiler warnings. +- Fix the seg fault at the end of a job in the FD when using + old style include/excludes. +22Dec04 +- Apply Preben's ACL patch. +- Integrate Preben's restore patch. +- Integrate Preben's verify teaks. +- Fix doc/latex/Makefile to copy/remove .eps files when building + html and web outputs. +21Dec04 +- Fix Bacula so that it does not exit if there is a syntax error + in its conf file during a reload command. Bug 182. +- Apply fixes suggested for old Solaris networking. + Fixes bug 190. +- Apply Preben 'Peppe' Guldberg + three patches that clean up white space: + ws.patch.02.strings: + Breaks strings that span lines into concatenated strings. I am not sure + if you like this one. Other code works with concatenated strings, though. + ws.patch.03.trailing: + This removes trailing whitespace. No changes resulted from this for + my setup. + ws.patch.04.leading: + This replaces space runs at the start of line with tabs. No changes + again. +- Fix overriding storage specification to be done + through a subroutine. +- Fix autoconf so it runs with FC3. +- Add Python4.3 to configure search paths. +- Always copy and delete storage definitions into jcr. +- Check that VolumeName supplied by Python is valid. + Return 0 if not. +19Dec04 +- Fix undefined in non-Python build. +- Update rescue disk to include mkinitrd +- Fix umount_drives in rescue disk (only one arg to umount) +- Ensure that if SD is manually set in Console, it is used. +- Put generate_event on pointer and plug it in init. This + permits using it in /lib +- Correct despooling size reported to be Job specific rather + than for the whole drive. +18Dec04 +- Fix bug 207. jcr use count off by one when manually + scheduling jobs. +- Remove FNMATCH test in configure.in and always use + the one in our library to get the FN_CASEFOLD GNU + extensions on all platforms. +- While using the rescue CDROM after my computer would not + boot, I realized that it would be very useful to have + a umount_disks. So, it is not implemented, along with + updates to the READMEs and some minor tweaks. +- Moved mounting the CDROM in the rescue boot from /cdrom + to /mnt/cdrom (more standard location). +- Reboot in CDROM rescue should now work -- requires -d + option (no write) to work. +- Hopefully fixed all the IPV6/4 problems and buffer + problems with networking in lib. Bugs 190 and 204. + Cleaned up a lot of #ifdefing problems by using routines + in address_conf.c +17Dec04 +- Apply Preben 'Peppe' Guldberg + alist fix patch. +- Remove duplicate code from chksum.h (mentioned by Preben). +13Dec04 +- Integrate Tim Oberfoell patch to ACLs + to handle both the "standard" and "default" ACLs. +12Dec04 +- Integrated Preben 'Peppe' Guldberg + three cleanup patches (btest, verify, find). +- Integrated Preben 'Peppe' Guldberg + three cleanup patches (backup, chksum, and verify) +09Dec04 +- Integrated Preben 'Peppe' Guldberg + patch to avoid doing MTIOCGET on OSes that do not support + it such as OpenBSD. +- Integrated Preben 'Peppe' Guldberg + patch to add filesystem type matching to FileSets in the + Options resource. +- Integrated Preben 'Peppe' Guldberg + patch to add Mac OSX resource fork support (save/restore) + to Bacula -- HFS Plus support. +- Add FileSet to client Job listing query. +06Dec04 +- Integrated Preben 'Peppe' Guldberg + patch to backup directories skipped (due to no file system + changes or no recursion), and to add a slash to the end + of the directory name during the match process. +- Implement Jamie ffolliott + patch to dird_conf.c that enables Multiple Connections and + fixes a typo in show. The rest of his patch awaits my suggested + changes. +05Dec04 +- Implement run command in Python +04Dec04 +- Implement conversion of the manual, and some minor + tweaks to the script tags. +- Apply a patch supplied by Preben 'Peppe' Guldberg that implements + ignore case in wild cards and regexes. +- Fix a truncated line in the above patch due to my cut and paste. +03Dec04 +- Fix it so that the InChanger flag is only changed for Volumes + in the same Pool. +- Add PIDOF configuration path and apply to bacula.in +- Add user supplied patch to add inet_aton() of old Solaris + systems. +- Require pools to match before allowing multiple simultaneous + accesses to same storage resource. +- Add patch supplied by Martin to correct buffer overrun in + bsnprintf() with no library snprintf(). +02Dec04 +- Apply user supplied patch that implements No Hard Links. +- Document Python interface +- Add hardlink keyword patch supplied by David R Bosso +01Dec04 +- Fix non-python prototypes in dummy routines. +- Add python 2.3 to config search list (user submitted patch) +- Add JobStatus to Python variables. +28Nov04 +- Add "python restart" command in Console. +- Make built-in variables table driven. +- First cut of Python Events for Bacula. Director only. + StartJob, EndJob, NewVolume events. + + + Technical notes on version 1.37 + Nicolas Boichat -2000-03-03 Release 0.1 Kern Sibbald - - Basic Director, File, and Storage daemons. - Standalone Catalog services using MySQL +General: -2000-01-22 Kern Sibbald - * Setup basic file structure with ./configure +Changes to 1.37.*: +26Oct05 + - dvd.c: update VolParts when writing the last part. +19Oct05 + - configure: add check for dd, remove check for df + - block.c:do_dvd_size_checks: Check we are writing to a dvd before doing tests + (reported by David Raine on the list, "[Bacula-users] LTO drive - End Of Volume error"). + - Update bacula-sd.conf.in to use dvd-handler correctly. + - dvd.c:dvd_write_part: Increase timeout when writing the first part (see the code for + more details). +18Oct05 + - Modify .backups command to get a fileset parameter (fix bug #444). +17Oct05 + - Fix bug when recycling DVD devices (append flag was removed). + - Add tests for dvd+rw-format in configure script. + - scripts/dvd-handler: Reformat DVD-RW when needed. This needs dvd+rw-format. + - Add patch for dvd+rw-tools in patches dir (this should probably be elsewhere). +16Oct05 + - Remove scripts/dvd-freespace and scripts/dvd-writepart, as they are now + merged into scripts/dvd-handler. Note: Documentation needs to be updated. + - scripts/dvd-handler: "zero" brand-new DVD+/-RW to fix a problem with some + DVD-writers, thanks to Arno Lehmann for reporting this, and providing the + way to fix it. + - new scripts/dvd-handler. Note: it also needs a patched version of dvd+rw-tools. + - new scripts/dvd-freespace. Note: it needs a patched version of dvd+rw-tools. + - dvd.c:dvd_write_part: Don't write empty part. (Fix 4GB crossing bug reported by Arno Lehmann) +14Oct05 + - dvd.c:dvd_write_part: Use part_size and not max_part_size when setting write timeout. + - dvd.c:do_mount_dev: When checking if the DVD is mounted, do not count ., .. and .keep (needed on Gentoo). +15Aug05 + - Convert dvd-writepart to Python. + - Increase delay from 3 seconds to 5 seconds between SIGTERM and SIGKILL when + killing external programs. +13Aug05 + - Add gettext macros in autoconf/gettext-macros. + - Modify how localedir is set in configure.in. + - Remove setlocale check (useless). +10Aug05 + - Mark translatable strings in all source files. +08Aug05 + - Create French and Italian translation files (fr.po, it.po). + - Add support for translation in configure and Makefiles. + - Update autoconf/aclocal.m4 so it is automatically created with aclocal + (Note: autoconf/gnome-macros is not used anymore, it may be removed). +30Jul05 + - Fix src/lib/bpipe.c:run_program and run_program_full_output to detect if the watchdog + killed the program, and return an error if it is the case. +26Apr05 + - Modify parse_config to get a LEX_ERROR_HANDLER as a parameter + - lex_open_file now returns NULL if the file can't be opened. All calling functions have + been adapted. + - Remove set_exit_on_error function +07Apr05 + - Fix "unknown device type" problem with DVD devices. + - Fix crash when there is no media in the DVD drive. +09Jan05 + - Update the documentation and ReleaseNotes. +05Jan05 + - Add FreeSpaceCommand in Device (SD configuration file) and implement it. + - Some modifications (again) on how guessed volume names are handled (now it should work). + - Part files on the hard disk are removed if they are empty. +04Jan05 + - Major fixes on how guessed volume names are handled. + - Minor fix in src/stored/append.c. + - Replace, when possible, POOLMEM by POOL_MEM in the new code of src/stored/dev.c. + - New script, scripts/dvd-freespace, which gets the free space available on a writable DVD. +03Jan05 + - Add WritePartAfterJob directive in Job resource (Director) + - Add WritePartAfterJob directive in Schedule Resource (Director) + - Implement these new directives +02Jan05 + - New function, open_guess_name_dev in src/stored/dev.c, which tries to guess the volume + name of a mounted device, so the label can be read. + - New script, scripts/dvd-writepart, which write parts to DVD+/-R(W). + - Removed WriteFirstPartCommand directive in Device (SD configuration file). + - Use readdir_r instead of readdir (src/stored/dev.c:open_guess_name_dev). +01Jan05 + - Add RequiresMount, MountPoint, MountCommand, UnmountCommand directives in Device (SD configuration file). + - Implement these directives (volumes can now be restored from a manually written DVD). + - Add WriteFirstPartCommand, WritePartCommand directives in Device (SD configuration file). + - Implement these directives (DVD writing now works). + - New function run_program_full_output in src/lib/bpipe.c. + - Lots of bugfixes and cleanups in the new code. +29Dec04 + - Add VolParts field in Media table + - Add MaximumPartSize directive in Device (SD configuration file) + - File Volumes can now be splitted in multiple files ("parts") + - Fix SQL error in sql_list while doing "llist jobmedia"