From a7957ebb7bfff664bc3bf3e656f198aa222f640a Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Fri, 5 Jan 2007 16:30:43 +0000 Subject: [PATCH] Update notes --- docs/techlogs/2006/ChangeLog | 1799 +++++++++++ docs/techlogs/ChangeLog | 5590 ---------------------------------- docs/techlogs/RN-2.0.0 | 392 +++ docs/techlogs/technotes-1.39 | 1795 +++++++++++ 4 files changed, 3986 insertions(+), 5590 deletions(-) create mode 100644 docs/techlogs/2006/ChangeLog delete mode 100644 docs/techlogs/ChangeLog create mode 100644 docs/techlogs/RN-2.0.0 create mode 100644 docs/techlogs/technotes-1.39 diff --git a/docs/techlogs/2006/ChangeLog b/docs/techlogs/2006/ChangeLog new file mode 100644 index 00000000..7ce9931d --- /dev/null +++ b/docs/techlogs/2006/ChangeLog @@ -0,0 +1,1799 @@ + Technical notes on version 1.39 + +General: +Version 2.0.0 released: 4 January 2007 +03Jan07 +kes Apply Eric's fix for client name editing on RunScripts. +kes Fix an incorrect dbcheck reference to Id. + +Version 1.39.34 Released: +28Dec06 +kes Convert dbcheck to use 64 bit DB IDs. +kes Update projects +kes Make rescue work. +kes Clarify Volume migration error message. +kes Look for Job keyword when opening DB in console. +23Dec06 +kes Add code in catreq.c to reject volumes not marked Enabled. +kes Add a few more ACL access checks. +kes Add \n in gnome2-console restore command so that output prints + nicer -- i.e. lines do not run together. +kes Fix autolabeling so that it will not mark a volume in error + if the volume was not actually opened. This should fix bugs + #737 and 738. +kes Require tape drive to be open before autolabeling. +kes Require explicit mount command on non-tapes before autolabeling. +kes Implement an open_client_db() that searches the keywords for + either a catolg or client, and opens the appropriate catalog. + This makes Bacula adjust better to multiple catalogs. +kes Use more name() methods for resources rather than hdr.name. +22Dec06 +kes Fix code to check for two resources of same name. It forgot + to check the last entry. Fixes bug #734. +kes Apply scanvolume patch from Richard Mortimer that fixes bug + #738. +kes Apply Eric's patch for recycling the Scratch pool. +kes Note, for the tray-monitor (or almost any restricted console_ + to work, in version 1.39.x you must add CatalogACL = catalog-name +kes Add appropriate new #undefs to autoconf/acconfig.h so that + configure works correctly. +kes Implement configure code to allow the user to disable IPv6 with + --disable-ipv6 +kes Apply Richard Mortimer's patch to prevent seg fault if mount point + not specified -- SD refuses to start. +kes Add magic.bacula from bug #715 to the scripts directory along with + Arno's explanation of how to install it. +kes Convert a bunch of hdr.name into name() method calls. +kes Fix the code to remove .bsr files. Fixes bug #736 -- Martin. + +Version 1.39.32 released: +20Dec06 +kes Take first catalog if gui is set, or if using dotcmd. +kes Fix a couple of compiler warnings in wx-console +kes Apply the immutable patch for FreeBSD hardlinked files supplied + by Olivier Lehmann. +kes Add Volume name to Forward spacing message. +kes Update migration job start time (so it is not zero) to prevent + immediate recycling of the job. This *should* fix bug #733. +19Dec06 +ebl Fix runscript configuration parsing bug. +17Dec06 +kes Add ENABLE_NLS (as suggested by Eric) to correct NLS problems. + Remove NLS kludge from baconfig.h. This fixes bug #729. +kes Allow seeking on DVD. +kes Add additional messages when Job canceled automatically for + max run time or max start wait exceeded. This fixes bug #621. +kes Update maxruntime-test in regression script to properly test + max run time -- from info given in bug #621. +kes Simplify automatic cancel code. +kes Add check for job_canceled() in FD when contacting SD so that if + job is canceled from max runtime, it terminates faster. +16Dec06 +kes Save and restore volume name in stored/mount.c fixed bug #712 + where wrong tape was requested in a mount. +kes Implement cleaner orphan buffer dumping with buf address. +kes Fix orphaned buffer when canceling job waiting on op intervention. +kes Update projects file for next vote. +kes Implement a fix (more could be done) for bug #728 where a double + EOF is writing on the Volume when spooling is enabled and the + connection with the FD fails (FD crash, comm error). +kes Disable attempting to autolabel when polling and device is not + a tape. This fixes bug #730 where polling with a removable disk + not mounted caused lots of new Volumes to be created then marked + in error. +15Dec06 +kes Enable VSS by default. + +Version 1.39.30 released: +14Dec06 +kes Complete hopefully the last of the copyright transfer changes. +kes Separate NumVolumes in SD to NumReadVolumes and NumWrite volumes so + that migration writing to multiple volumes doesn't mess up reading + Volumes. This should fix bug #720 -- multivol migration fails. +kes Make migration SQL look only for Type='B' jobs to migrate. This should + fix bug #724 jobs getting migrated twice. +kes Convert remaining dev_cap(dev, ...) to use dev->has_cap(). +kes Implement dev->clear_cap() and dev->set_cap() methods. +kes Turn off disk seeking on restore for DVDs since I am not 100% + sure it works. +13Dec06 +kes Implement code that should properly set that a job was migrated, + if the migration was successful even if there were no file to + migrate. +kes Apply Richard's patch to fix building or filed/restore.c without + OpenSSL support. +kes Ensure that at least one block is written by the SD even if the + FD dies or fails -- should fix bug #728. +kes Convert stored/record.c ASSERT into a soft fail if the length of + a record is too insanely long. This should fix bug #??? +12Dec06 +kes Fix automatic labeling of File volumes, which was broken by new + removable device code. +10Dec06 +kes Remove typedef uLong for HP in baconfig.h. It broke things. +lf Fix job byte reporting -- the digest code runs in verify.c and + increases this value. The better solution is to digest the + stream as we receive it, thus removing the need to re-read + from disk at all, but that requires more extensive and + potentially destabilizing changes. +lf This commit fixes backup and restore of HFS+ resource forks. +lf Add a long-missing 'break' statement in HFS+ attribute + handling that resulted in restore failures. +09Dec06 +ebl Fix runscript to always execute command after all job type. + +Version 1.39.30 released: +08Dec06 +kes Mark build-depkgs-mingw3 executable in configure process. +kes Update autoconf/config.h.in to include LOCALEDIR +kes Undefine NLS settings for wxWidgets as there is a conflict with + their way of doing things. +kes Implement a rpool and rpool_source in jcr.h for Migration jobs. +kes Change a bunch of ->hdr.name to ->name() +kes Straighten out handling of read and write pools for Migration, including + getting the code in the proper order. +kes Improve migration error messages and debug output. +kes Shorten code path in migration if nothing found to do. +kes Implement read/write pool in migration job report. +kes Move ua_run.c select_job_level code into a subroutine (readability). +kes Move ua_run.c display_job_parameters into a subroutine. +kes Do not bash dcr->VolumeName in get_volume_info() because it makes + restore dependent on a valid catalog containing the Volume name. +06Dec06 +kes Put make_catalog_backup SQL_BINDIR in an environment variable to + make it easier for the user to change. +kes Fail any backup job that tries to use encryption and sparse options. + Hopefully this is a temporary change. +kes Correct the EndJob return string for non-backup jobs. +kes Review the encryption restore code. +kes Implement a new encryption regression test with compression. +kes Modify migrate not to fail if nothing found to migrate. +kes Add #undef HAVE_OPENSSL, HAVE_TLS, HAVE_CYRPTO to autoconf/config.h.in + because they were not always set correctly. +05Dec06 +kes Update configure.in to include python 2.5 search. +kes Back out unwanted migration change reported by Richard Mortimer. +04Dec06 +kes Make migration with no files to migrate set normal termination. +kes Change message when job manually started to say Job queued. ... +kes Add job report indication of whether or not VSS and Encryption were + used by the FD. +kes Modify sparseBlock variable name to make the code clearer. +kes Add more sparse tests to regress using gigaslam sparse file + generator. +kes Enable data encryption code. +kes Add gigaslam.c to src/tools. It creates a 1GB file that contains + only two blocks -- i.e. it is a real sparse file. +03Dec06 +kes Enable disk seeking on restore. +kes Implement the SD 'Block Positioning = yes|no' directive. This + allows the user to turn off block level seeking, but restores + will be much slower. +kes Change the word illegal to read invalid in a few places. +kes Fix Win32 build, which broke when I added parse_args_only in + lib. I'm not sure I got the entry point right for msvc. +kes Turn off data encryption. It can be enabled by defining + DATA_ENCRYPTION in src/version.h and recompiling. +kes Implement flag to turn off data encryption feature. +kes Move unserial code in restore.c to a subroutine. Add a bit of debug + code. +kes Rework a bit of code in backup.c to handle sparse blocks correctly. + The main problem was that signatures were being generated on blocks + of zeros, which is unnecessary. +02Dec06 +kes Fix scanner (next_arg) to handle leading double quote correctly. +kes Modify cd command in restore tree to look at full argument without + keywords. This fixes bug #716. +01Dec06 +kes Do not update Migrated Job type if migration does not terminate + normally. This fixes bug #719. +kes Update ReleaseNotes +kes Purge Job records from the catalog for Migration. This was + not properly done previously. This fixes bug #718. +28Nov06 +kes Initialize msg_type to M_INFO in migration. Pointed out by + Robert Nelson. +kes Add some fflush() statements for debug output. This should not + really be necessary and defeats buffering but users continue + to complain. +27Nov06 +kes More copyright changes. +kes Make sure we don't detach from the despool read device since it + is a temporary structure where the condition variables are not + initialized. Bug #711. +26Nov06 +kes Add Bacula version+date to Client record. This is a very minor + security problem in that passing the version facilitates a hacker's + life, but it will make support easier. +kes Implement fixes to make disk seeking work. Currently turned + off in version.h pending reserch on what problems it will cause + because of the previous bsnprinf() sign extension bug. +25Nov06 +kes Add Landon's refactor of restore Feature request to the + projects file. +kes Tweak debug levels and messages for examining the disk + seek problem. +22Nov06 +kes Cleanup some of the error termination code in migration. +kes Separate read/write source strings to keep track of where + storage devices are used in a job. +kes Implement a new method of keeping track of which storage + device is used in a Job. USTORE keeps both a pointer to the + resource and to the source string. +kes Modify all code to use new storage set subroutines in job.c +kes Modify migrate.c so that the definitive selection of the storage + resource is done in the do_migration_init() routine prior to + the job going into the job queue. This permits accurate + deadlock detection (same read and write storage resource). +kes Remove bfill from btape (I think it was a left over stub). +22Nov06 +kes Make sure that the storage for a job is pulled first from + the Pool and if not from the Job. +kes Ensure that either the Pool or the Job specifies a Storage + resource. +21Nov06 +kes Start applying new FSFE copyright. +20Nov06 +kes Add additional error messages in acquiring a drive for read. +kes Make WritePartAfterJob the default so that the last DVD part + always gets written to the DVD by default. +kes Add additional error messages in migration. +kes Suppress redundant error messages in migration (possibly more to do). +kes Apply Martin's fix (updated to 1.39) that takes into account + run storage overrides in the Director status display. +kes Implement, but turn off the submitted code that sets the EOT + model on FreeBSD machines. Turning on this code is too risky at + this point in the development. +19Nov06 +kes Implement unique dbid routine for migration to prevent the same + JobId from being migrated twice. This should fix bug #709. +18Nov06 +kes Apply Jaime Ventura's 'mail on success' patch. +kes Add a SMALLOC_SANITY_CHECK for Arno, which aborts Bacula + if memory usage gets too big. +kes Tweak migration to ensure that read/write devices are different. +17Nov06 +kes Create an AUTHORS file to list Bacula contributors. +kes Add Richard Stallman's four GPL freedoms to LICENSE +kes Require the conf file to have a valid NextPool for writing the + migration output. +16Nov06 +ebl Enable RecycleCount in catalog. +ebl Fix "echo python | bconsole" segfault +14Nov06 +kes Implement code to pass the MediaId to the SD. The SD then uses + this MediaId when creating JobMedia records. This fixes a bug + with Migration where the MediaId got set to the second Volume + read rather than the write Volume. Possibly (unlikely) fixes + bug #709. +kes Remove NextPool from Job resource. +kes Edit a few numbers in the restore dialog with commas. +kes Note, the DIR<->SD protocol has changed. +13Nov06 +kes Replace () by {} in configure.in for proper HP configuration. +kes Shorten some lines over 80 characters in filed/backup.c +kes Cast sizeof() in filed/backup.c to avoid compiler warning. + +Version 1.39.28 released: +12Nov06 +kes Change error message 'illegal' to 'invalid' -- bug #707 +kes Add rather primitive device resource deadlock detection in + the job queue handler. It detects the same read and write device + for migration and cancels the job. +kes Start adding a unique_dbid_hander() routine in migration to avoid + duplicate mediaids and duplicate jobids. +kes Add patch from bug #708 to permit relative paths such as ../xxx + in the restore tree routine. +kes Add Eric Bollengier's patch to reduce locking time in the SD after + despooling, and thus many jobs finish faster. +kes Correct locking order of reservations lock and device mutex in + reserve.c -- this should correct Arno's deadlock that occurred + when doing mount/unmount at the same time a job is reserving a + drive. +05Nov06 +rbn Fixed problems with encryption when combined with compression + or sparse files. Unfortunately this means that all previous + encrypted backups can't be restored. +rbn Fixed problem in bfgets with Windows and Mac end of lines. +rbn Fixed bug in Windows version of close_bpipe() that cause programs + like bsmtp() to hang waiting for the pipe to be closed. Fixed + binary file type problems in open_bpipe(). +rbn Fixed a number of bugs in the mysql DB scripts. +03Nov06 +ebl Fix broken runscript on director. (RunBefore, RunAfter) +ebl Use M_ERROR instead of M_FATAL in runscript.c +31Oct06 +ebl Small fix src/dird/job.c to add JobErrors count to catalog. +rbn Ignore UTF-8 marker at the start of .conf files. +rbn Add stab2cv to 3rd party dependencies. This is a utility I + wrote that is licensed under the GPL and available on SourceForge. + It converts the stab debugging info generated by gcc into Codeview + format. Currently it just translates function names to global + symbols. This is sufficient to get reasonable stack traces from + Dr Watson and to look at minidumps. +rbn Fix bug # 699 - winbacula client crashes whilerunning bat scripts. +rbn Enable Windows XP look and feel for the tray icons and wx-console. +rbn Add Windows specific FileSet example to bacula-dir.conf. +rbn Reorganize Start menu so that documentation and configuration are + in subfolders. +21Oct06 +rbn Change daemons and utilities so that if -c is omitted from the + command line AND there is no configuration file in the current + directory then the 'standard' configuration file (eg + /etc/bacula/bacula-*.conf) will be used. If the argument to -c + doesn't contain any path separators AND there is no configuration + file by that name in the current directory then the 'standard' + configuration file directory will be searched for a file by that + name. +rbn Fixed restore on Windows so that backslashes as path separators works. +rbn Add missing query.sql file to Windows installer. +rbn Fixed Windows versions of catalog backup scripts. +20Oct06 +kes Fix optional files in Makefile.in of src/filed that caused + a syntax error when using no optional files. +15Oct06 +lf Fix a cosmetic bug in filed.c that caused spurious OpenSSL error + messages; there is no reason to attempt to load a private key. + from master key files. + +Version 1.39.26 released: +12Oct06 +kes Apply the three patches from Richard Mortimer. + bacula-reposition.patch, bacula-tape-reopen.patch, and + bacula-eod.patch. This corrects tape positioning on older devices, + and also a problem with btape. +kes Apply fix from bug report #696 where writing to a FIFO does not + work due to a dumb typo. +kes Unlock the tape door before the file descriptor is released. This + should fix lots of somewhat subtle failures when using an autochanger. +11Oct06 +kes Correct mtx-changer bug that I introduced in a recent commit, and + pointed out by Robert Nelson -- thanks. +rbn Fix Windows' daemons so that messages print to stdout if not + running as a service. +rbn Add daemon name to trace file name (eg bacula-dir.trace). +rbn Fix environment variable expansion in directory names on Windows. +rbn Fix autochanger support in fill command. +rbn Update SQL scripts to match Unix versions. +rbn Fix daemon usage displays. +rbn Cleanup bacula-dir.conf template. +rbn Install openssl.cnf so that the openssl.exe installed in the + Bacula\bin directory can be used to generate keys and + certificates for TLS and encryption. +rbn Fix cleanup of spool files on Windows. +rbn Remove /silent option from daemons on Windows. The new default + is the same as the old /silent. To enable the message boxes that + previously were suppressed by /silent you must add /debug instead. + NOTE: As a result of this change, the first time you upgrade from + a previous version of 1.39.x you will receive the message + boxes when the remove of the old services succeeds. This + is the same behaviour as when migrating from a version prior + to 1.39.0. + However, going forward, these message boxes will not appear on + upgrades or new installs. +rbn Add new /debug option. This option enables the message boxes that + previously were suppressed by the /silent option. In addition the + daemons running as services will open a console window if this + option is used. +rbn Fix bug with service not being removed on migrated installs. This + should correct those cases where the file daemon install was failing + when upgrading from versions prior to 1.39.x. + +08Oct06 +kes Turn on heap reporting in Dir with zero debug level. +kes Send a message to the sys log when Bacula forces a SEG FAULT, and + send the same message to stdout. +07Oct06 +kes Begin work on new GUI "console". +kes Make configure look in non-standard MySQL library directory + for Solaris. +kes Make mtx-changer automatically configure the autochanger wait + procedure for Solaris, FreeBSD, and Linux. Previously, only Linux + was implemented. +kes Correct drop_sqlite_tables.in script to not delete the database. +kes When writing to a log file, close and reopen the file descriptor + if there is an error writing the file. +kes Modify the autochanger loaded?, load, and unload commands to print + the full text of any mtx output if there is an error. Helps to + ease diagnosis of autochanger problems. +kes Correct a few Win32 errno returns in the VSS code so that hopefully + a resonable Win32 error message will be printed. +kes Convert a few strcat()... to bstrncat() in the Win32 code. +06Oct06 +rbn Added Windows version of bsmtp. +rbn Fixed path search for Windows so that Bacula\bin is automatically + searched for programs and scripts. +rbn Fixed bugs in mtx-changer.cmd and made template bacula-sd.conf + Windows specific. + +Version 1.39.24 beta released: +02Oct06 +rbn Fix restore problem with c:\ prefix bug #676. +rbn Verify that drive letter is valid on restore. +rbn Fix re-open() options for tape. +kes Apply dvd find volume patch from Richard Mortimer. +kes Eliminate the dvd specific mount routines using only the + dev->mount/unmount. +kes Make update_free_space a method of DEVICE and rename + update_freespace. +01Oct06 +kes Require a messages command acl to be able to receive messages + in a console. +kes Add console, system, and scan job types in util.c. +28Sep06 +kes Print the Volume purged message only for real jobs to keep + from cluttering up the daemon messages. +kes Lock the tape drive door while Bacula is using the device. +kes Add back the 'No Jobs running' message to FD and SD status because + my regression script depends on it, and I'm too lazy to change the + scripts. +kes Start using structure assignments (not too happy about it ...). +kes Fix a bug in the tools Makefile that broke on Solaris. +kes Unload any autochanger drive during a 'release' command. +26Sep06 +kes Enhance error message when restoring without bootstrap file. +kes Check restored size only for regular files. +kes Store Python job level in job record in Dir. +kes Add back code to open tape device nonblocking, but if rewind fails + release file descriptor. +kes Modify acquire.c to first try autoloading the device. Also, ask operator + to mount tape if drive cannot be opened. +rbn Made Windows service tray status windows resizable. +rbn Fixed horizontal scrolling of text in status window. +rbn Preserve horizontal and vertical scroll position while + updating. This prevents the display being reset to the + top line every 5 seconds. +rbn Fix Windows cross-compile compatibilty problems with + *nix variants such as OS X without the zic command. +rbn Eliminate dependency on man2html. +25Sep06 +kes Update src/win32/dll/bacula.def for change in BPIPE definition for + Win32 build. +kes Fix a compiler warning in compat.cpp +kes Change strcpy to bstrncpy in compat.cpp +kes Remove some broken code in bdb_list.c +kes Fix, hopefully the last, ACL problem in the restore command. +kes Update the README.mingw32 +kes Add new version of upgrade-win32-client.txt to examples directory. + Submitted by Michel Meyers. +kes Print an INFO message in the job report when a Volume is marked Purged. +rbn Fixed handling of external program and script execution + so that the format of the command line is more flexible. + Now executable path names containing spaces are translated + to the equivalent short name automatically. The result is + passed to cmd.exe with the quotes removed. +24Sep06 +kes Apply the recycle patch from Richard Mortimer. +kes Convert a few if statements in dev.c to switch statements. +kes Start using print_errmsg instead of bstrerror(). +kes Print a job message in SD when a job is marked to be canceled. +23Sep06 +kes All code added back. Fixed block.c read/write to loop only 3 + times. This apparently keeps the OS from crashing (at least + most of the time). +kes The kernel bug still persists. Backup something then immediately + do a bscan on the same tape, and the kernel will crash. +kes Simplifed tape open(). It no longer uses nonblocking mode, which + means that opening with no tape loaded will probably take at least + 6 minutes before an error is reported. +kes Do not use MTSETDRVBUFFER if not running as root. Do a MTRESET + when doing set_os_device_parameters. +kes Report open error in mount.c +kes Remove all .exe files from the installer directory on make clean. +20Sep06 +kes Start adding back removed code. +kes Back out a number of changes because backups to tape crash my + system. +kes Remove the inetd code from the File daemon. +18Sep06 +kes Add -c option to pg_dump so that it initializes tables when + restored. +kes Fix FirstWritten time on Volume to be obtained from SD so that + it is the actual time the volume was first written. +kes Minor Makefile changes. +kes Handle EBUSY during read(). Improve how EBUSY is handled in write(). +ebl Add yes keyword to prune/purge command +16Sep06 +kes Correct a test in block.c that prevented restore of a DVD from + looking at the last part in the spool directory. +kes Make some error messages clearer mostly by using the word DVD + in the message. Improve infor message in read_record for DVDs. +kes Remove DVD kludges in dircmd.c label/relabel. +kes Move the dvd relabel code from dircmd.c into + write_new_volume_label_to_dvd() adding a relabel argument. +kes Rewrite the truncate_dvd() code to be much simpler and + more logical. First blow away any spool part, then create a + new empty part and write to the DVD. +kes Rewrite the can_write_on_non_blank_dvd() code making it + only ensure that no valid data is on the DVD -- i.e. it + can be overwritten. +15Sep06 +kes Minor Makefile fixes. +kes Put attach_dcr_to_dev in a subroutine. +kes Make attaching/detaching to/from a device use a flag and + only detach if actually attached. +kes Add dvd-simulator.in to scripts directory and add to configure. +kes Fix code in acquire.c that checks fd != 0 to use dev->is_open(). + This could be a cause of a number of drive reservation problems. + Note, this code is now in attach_dcr_to_dev(). +kes Suppress doing Volume updates if it is a system job. This should + prevent the DVD label blocking. +kes Clear the freespace ok flag in a couple of strategic places. +14Sep06 +kes Put removing zero sized spool part file in subroutine and + call from release_device(). +kes Add Richard's patch for relabel to dircmd.c, but save and restore + dev Volume name. +kes Rework a lot of subroutines in dev.c to take dcr as an + argument. This is done to eliminate the usage of attached_dcrs + in lseek(). +kes Change truncated_dvd to blank_dvd, which seems more suitable. +kes Apply most of Richard Mortimer's truncate patch. +kes Create lseek() method for DEVICE that takes dcr as an + argument. This is to eliminate the use of attached_dcrs in + lseek(). The calls to lseek_dev() must still be changed. +13Sep06 +kes Apply Richard Mortimer's patches for printing an error + message in btape when a DVD is used, and to initialize traceback. +kes Added error message to btape when trying to access a file. +kes Move prototype of update_slots() to protos.h. +12Sep06 +kes Add JobErrors, JobFiles, SDJobFiles, SDJobErrors, SDJobStatus, + and FDJobStatus to the Director Python variables. +kes Make sure valid argument passed to str_to_utime() where Arno + had a seg fault. +kes Apply Richard Mortimer's patch for bcopy, bextract, and bscan. + I.e. part of two different patches. +11Sep06 +kes Modify disk changer to simulate some of the error conditions + of mtx-changer. +kes Make sure the close() call in the SD tools is just before the + getchar() call. +kes Implement dir_get_volume_info() in bls using the patch from + Richard Mortimer but call find_num_dvd_parts(). +kes Implement find_num_dvd_parts() that mounts and scans a DVD + and counts the parts. +kes Move the omode code in open_dvd() up so that the cannot + write on blank disk can check can be bypassed for read mode. + Not yet implemented. +10Sep06 +kes Disable normal data spooling for DVD writing which uses + a different spooling mechanism. +kes Apply patch from Richard Mortimer to ensure that the number + of DVD parts is correctly updated. +rbn Save installer details log in the Bacula directory as + install.log. +rbn Add installer generation of client and storage templates + suitable for @inclusion on the director. +rbn Mark previously installed components for Win32 read-only since + deselection doesn't do anything. + +Version 1.39.22 beta released: +08Sep06 +kes Fix logic error in handling error return from mtx-changer + script. +kes Make status from SD aware of -1 (unknown) Slot status. +kes At Eric's suggestion make both the 'slots' and 'drive' commands + to the Storage daemon work even if the drive is busy. +kes Make two separate Win32 menu links for starting bconsole and + wx-console in winbacula.nsi +kes Apply DVD part_spooled patch from Richard Mortimer + richm@oldelvet.org.uk +kes Put installer/Readme.txt into Win32 EOL format for Notebook. +rbn Fixed problems migrating settings from previous releases in + Win32 installer. Add Readme.txt with an option to show it on + the installer Finish page. +07Sep06 +kes Use get_catalog_resource() to open catalog database + to ensure that ACLs are respected and that user is + correctly prompted for database. +kes Integrate multiple console/director patch from + Carsten Paeth calle@calle.in-berlin.de +ebl Add character substitution in Job/JobDefs WriteBootStrap. + You can use now 'WriteBootStrap = '/path/%c_%n.bsr'' +kes Apply patch supplied in bug #656 to pass priority field + in the run dialog to the Director in gnome console +kes Restore DCR after VOL_NAME_ERROR in mount.c. Hopefully + this will fix bug #627 where Bacula eventually gets + confused about what Volume it wants. +kes Add a new close_part() class in the SD to save the device + state around open/close_part/open for DVD writing. This + should fix the num_dvd_parts getting zeroed as reported by + Richard Mortimer. +kes Apply patch from Richard Mortimer that correct edit code + for debug output of st_size. +ebl Add support of encrypted data stream to bscan. + display data_len instead of data content (may be binary) +06Sep06 +kes Add dev->close() in dir_ask_sysop_to_mount_volume() in + bcopy. Fixes bug #669 reported by Eric. +kes Fix incorrect number of arguments in SQL statement in + sql_get.c as reported by Eric. +kes Manual updates. +kes Update examples directory. +kes Remove unused variable in winservice.cpp +kes Make Win32 make command build installer. +rbn Add new Install Type page, used to select between Automatic + and Custom installs. Automatic installs only prompt for + configuration items that can't be reasonably defaulted. +rbn Added Bacula logo to page headers. +rbn Added Upgrade support + - Configuration and component selection are migrated from + pre-1.39 installs. + - Configuration of upgraded components is preserved and + not prompted for + - Configuration of new components is handled according to + the Automatic / Custom selection. + - Component selection is defaulted to previously selected + components. +rbn Installation of Server components is disabled on + Windows 95, 98 and ME. +rbn Added URLs for support, info and upgrades to Bacula entry + in Add/Remove Programs. +rbn Added Version info to Bacula entry in Add/Remove Programs. +04Sep06 +kes Correct dvd code that breaks tape labeling. +kes Implement Enabled on update slots. +02Sep06 +kes When doing a label, pass the VolBytes back to the Director, + which puts it in the catalog. +kes Print an error message if the user attempts to prune an + archived Volume. +kes Need to start using %ld when sscanfing 32 bit values. +kes Update the free +kes Correct the counting of VolCatBytes for DVDs. +kes Add code to mount.c to require that VolCatBytes corresponds to + what is actually found when doing an append. +kes Update freespace only after writing on the DVD. +kes Remove code that blows away the current part in the spool file. +01Sep06 +kes Apply new dvd-handler patch from Richard Mortimer. +kes Tweak so that debug level 20 shows only DVD commands. +kes Correct spooled_part flag in dev.c close() so that it is cleared + when the spool file is deleted or does not exist. +kes Print part number in read_records when eof hit (restore). +rbn Installer default changed to start services on new install. +31Aug06 +kes Make find with no args in tree restore return error rather than + stopping the selection. Fixes bug #665 +kes Rework DVD writing to ensure that the last part is written + on open_next_part when dealing with a spool file. +kes Correct the lseek_dev() routine to handle end point correctly + (bug introduced by me). +kes Allow part number to exceed num_dvd_parts in lseek_dev(). +rbn Change make_session_key on Windows to use WIN32 APIs to produce + a better seed. +rbn Add new tool scsilist.exe which displays the changer, tape and + CD/DVD (1394, SCSI, SATA, ATAPI) devices and the information required + to add them to bacula-sd.conf. +30Aug06 +kes Apply dvd-handler patch from Richard Mortimer. +kes Apply dvd error check patch from Richard Mortimer. +kes Apply bpipe race patch from Richard Mortimer. +kes Rework how DVD labels are handled and set append only + when part > num_dvd_parts. +27Aug06 +kes Rework many features of DVD writing and reading. Added many error + messages. Most importantly changed part to represent the current + part number base zero. This makes current DVD writing incompatible + with previous version. +26Aug06 +kes Add host:port to connect failure messages to FD and SD from Dir. +kes Add WhereACL to console ACL list. If nothing is specified, only + the default is permitted for restore. Otherwise, *all* allows any + path, or you can specify permitted paths. This should allow control + over where users can restore files. This is untested. +kes Modified message to add a ? (as in loaded?) when querying the autochanger + for what Slot is loaded. +kes Fixed the use of Slot, so that is more correctly maintained, thus + eliminating unneeded duplicate calls to determine what Slot is loaded. +25Aug06 +kes Install man pages with 'make install' +kes wx-console crashes because of differences between Bacula and wxWidgets + malloc()/free(). Tweak wx-console to use bmalloc()/bfree() for Bacula + calls. +kes correct improper indenting in wx-console/console_conf.c +kes update wx-console header copyrights +kes Fix bug #658 where wx-console mangles file/directory names containing + commas. +24Aug06 +kes Add Media.Enabled flag to client backups for dotcmds.c +kes Enforce Media.Enabled=1 for a current restore to work. +kes Require restore case 3 to have sqlquery permission to work. +kes Remove obsolete del_MAC sql command. +kes Ensure that bscan creates Volumes with Enabled=1. + +Version 1.39.20 beta released: +22Aug06 +kes Correct missing Client table reference in SQL pointed out by + Marc. +21Aug06 +kes Fix Win32 build (new entrypoint, start baculafd). +20Aug06 +kes Add -n option to bconsole to turn off conio. +kes Print JobIds to be migrated in Job Report. +kes Add additional user supplied notes to the messages part of + bacula-dir.conf concerning multiple email addresses. +kes Fix an incorrect comment pointed out by a user in dvd_handler.in +kes Add more recent Feature requests to Projects file. +19Aug06 +kes Apply Maritn's fix to src/win32/Makefile. +kes Apply Martin's fix to configure.in for pthreads on FreeBSD 4.x +kes Implement pruning for Migration and migrated jobs. +kes Implement PoolOccupancy migration. +kes Implement PoolTime migration. +16Aug06 +kes If doing a mount, look for a slot, and if specified pass it to + the SD so that it can load the autochanger. +kes Return DVD=1 flag if a label command is done to a DVD. This + permits setting VolParts to 1. +kes Apply DVD patch from Richard Mortimer , but + rework ua_label code based on DVD media type to use DVD flag returned. +15Aug06 +kes Eliminate some compile warnings in dird_conf.c +kes Format the bytes field in the terminated jobs part of the status + command for the three daemons with suffixes to reduce print size + of backup bytes. Suggested by a user. +kes When not descending into a directory, print the File= name that + triggered it -- makes why not descending a bit clearer. +kes Do not unload autochanger when doing a list command -- basic code + from Eric Bollengier. +12Aug06 +rbn Reworked the MinGW32 build-dependencies script, it has been renamed + to build-depkgs-mingw32. It now handles two options -h to display + help and -C to reextract the source and apply the patches. The -C + option is useful for updating the source after new patches are + released. +rbn Moved the 3rd party package URLs to a separate file External-mingw32. + This allows updating to new versions without having to modify the + script and makes it easier to figure out which packages and which + versions are used. +rbn Added a new script build-depkgs-msvc.cmd which does the same thing + as build-depkgs-mingw32 except they are built using Microsoft Visual C + and placed in the depkgs-msvc directory. There is also an + External-msvc file to describe the packages. +08Aug06 +rbn Fix Windows cross-compile compatibilty problems with FreeBSD. +07Aug06 +kes Fix bug #462 incorrect error message printed when client script called + from File= was not found. +kes Fix bug #558 (waiting for feedback) where Bacula needs too much time to + do a rewind on Solaris when no tape is in the drive (Solaris does not + have the detailed errno found on Linux). Added Solaris specific code. + Note, this may apply to other OSes as well. +06Aug06 +kes Defined BUILDING_CATS in src/cats/cats.h so that *nix builds. +dsb Updated rpm spec for 1.39 - updatedb 9 to 10, add new man pages, + fix bug 648 - update sqlite script patches, lock out gnome2console + builds for platforms with gtk+ < 2.4. + Updated build_rpm.sh - add remote source directory, add switch for + signing, refine file names. + Updated spec file again for Mandriva build as they have this curious + custom of silently converting all manpages to bzip2 format just before + the final packaging step. +05Aug06 +rbn Fixed the Windows Makefiles so that they won't accidentally try and + pickup binaries for the Unix build. This allows both the Unix + build and the Windows build to be built in the same tree without + interfering with each other. +rbn Fixed error handling and cleaned up mtx-changer.cmd. +rbn Added the rest of the database scripts. These are installed but are + not yet edited for variable replacement. +rbn Broke out the cats functionality from bacula.dll and put into new + separate dlls for each database type. At installation time the + correct one is copied to bacula_cats.dll. +rbn Eliminate the need to install the mysql.dll on client only builds. +rbn Moved dird/sql_cmds.c into the cats directory so all the database + specific #ifdefs were in the cats directory. +rbn Added a new sql_cmds.h with all the declarations for the variables + exported from sql_cmds.c. +rbn Moved catalog_db[] from lib/message.c to a new routine db_get_type() + which is implemented in bdb.c, mysql.c, postgresql.c and sqlite.c in + src/cats. +kes Correct improperly formatted list command output reported by Dan. +04Aug06 +kes Correct despool time calculation. +03Aug06 +kes Remove previous changes to compat.cpp as they create problems. +kes Use old style MD5 for FileSets to avoid Full saves on every Job. +kes Attempt to fix problems with the msg_queue crashing on Solaris + when Bacula is terminating, but problems remain. +kes Add WIN32_VSS to HAVES in src/Makefile.inc.in to correct VSS + name editing problems with too many \\?\es. +kes Fix some Bacula source code style problems in compat.cpp. +kes Add debug code to compat.cpp and convert non-Bacula debug code + to Bacula style. +02Aug06 +kes Change the name of the technical notes file from kes-1.39 to + technotes-1.39. Prefix my messages with 'kes '. +kes Allow dequeue_messages() to be called twice. Should fix bug + # 649. +kes Add Job type to bscan Job information output. +01Aug06 +kes Update copyright date in program files, and for the most part + put it on a #define. +kes Implement %q in bsnprintf.c apparently I forgot it. +31Jul06 +kes Make disk-changer sed command compatible with FreeBSD. +kes Make a first cut at a ReleaseNotes and ChangeLog for a + beta release. +kes Make make clean descend into the src/win32 directory. +kes Fix some #ifdefing so that Solaris and FreeBSD compile + sys/stat.h was turned off. +kes Use suffix editing for new transfer rate messages. +kes Attempt to come up with a workaround which seems to be an OS + bug where write() returns EBUSY. IMO this should not happen. + It triggered in truncatebug test. The workaround retries using + a 100 ms wait. +kes Eliminate a strerror() call in a class method that failed with + older C++ compilers. +kes Use rm -rf rather than rmdir to delete the src/win32/release + directory during make clean. +30Jul06 +kes Make bscan ignore ACL streams. +kes Update projects files with new Feature Requests. +kes Generate current English and French manuals and upload + them to the site. +kes Update the home page to include the new British/French flags to + switch between translations. Work done by Alexandre Baron. +kes Make disk-changer script print an error message if the changer + directory is not defined. +kes Create a generic DB routine for getting an int (32/64 bit) from + the DB. +kes Add more migration code. +kes Add a few more files to .cvsignore here and there. +kes Minor fixes for SD write rate and despooling rate. +kes Turn off new test code in src/console.c + +Version 1.39.18 +29Jul06 +kes Incremented the version number to signify that all of Robert's code + for Win32 that was in the branch is now integrated into the HEAD, + and that Eric has submitted code that we hope will provide limited + backward compatibility with 1.38 file daemons (more testing to be + done). +kes I rationalized a few of the names of the variables (mainly jcr names) + that are used during migration as keeping three different jcrs at the + same time clear in ones head is not easy. + +Version 1.39.17 +28Jul06 +eb Tweak new runscript feature to work with 1.38.x FDs. +eb Correct crypto.c to fix segfault when restoring an encrypted stream + on fd which don't use rsa keys. +eb Add yes/no English keywords on localized yes/no questions. +27Jul06 +kes Several important commits from Robert Nelson for code cleanup and + Win32 build. +kes Modify console.c so that when conio is enabled, it converts \n to + \n\r before outputting to the console. Hopefully this will fix + the problems with expect in Perl that Eric saw. +24Jul06 +kes Change cats/sql.c to eliminate %-*s format, which I think is turned + off in bsnprintf. +kes Add Comment field to llist of a volume. +kes Allow true/false in some yes/no questions. +kes Implement update volume enable=(on|off|true|false|archived|0|1|2) +kes Remove a few /n's when scanning commands from another daemon. This + permits adding additional fields later. +kes Modify dbcheck to handle ctl-d and to delete Log table entries. +kes Update README.mingw +22Jul06 +kes Tweak authentication to work with 1.38.x FDs. +kes Tweak catalog make scripts. +kes Fix catalog upgrade scripts so that they work. +kes Correct despooling debug code to eliminate race condition. +19Jul06 +kes Add additional fields as specified by Arno to LocationLog. +kes Add comment field to the Media record. +kes Add Time field to the Log record. +kes Correct migration SQL (thanks to Bill Moran) so that it + runs with PostgreSQL also. +kes Add spooling/despooling info in status output of SD. +17Jul06 +kes Spend a lot of time integrating mkcdrec with the rescue disk. +kes Add VOLMGMT message class for volume management messages (none yet). +kes Add CATALOG as a destination. It goes into the LOG table. +kes Implement the Log table in the DB. +kes Implement the Location Log table in the DB (for user use). +kes At Eric's request add a run_scripts() just after blast_data in + src/filed/job.c +10Jul06 +kes Add Enabled column to Location, correct some typos in DB schemas. +kes Correct bug I introduced into RunScripts enum. +kes Add log table to Catalog +kes Purge original job migrated if the migration terminates normally. +kes Cleanup purging of files/jobs so that it is done only in a + single subroutine. +kes Add new VOLMGMT message class. +kes Add Catalog message destination (user conf code remains to be written). +09Jul06 +kes Modify read_record and friends to properly deal with migration + needs. +kes Update debug code in read_record. +08Jul06 + ======================= Warning ========================== + Separate read and write storage in Jobs in the Director. This + is a major rewrite of some of the low level code and hence has + a high probability of introducing bugs. + ========================================================== + +kes Move the job init code up to *before* the job is put into + the job queue (resource allocation queue). This permits the + job to establish whether it will read or write or do both. +kes Add name() methods to all the resource classes. +kes Implement separate read and write storage resource + allocation/deallocation in jobq.c + + ======================= Warning ========================== + Implemented new method of getting the default Storage from the Media + record rather than from the MediaType for restore. As a fall + back, if no Storage is defined, use the MediaType. This + eliminates most all prompts if there are multiple MediaTypes + used. This is an important and fundamental change. + ========================================================== + +kes Add more detail (Storage, Device) to list of volumes printed + for restore. +kes More code in migrate. In particular start multiple jobs if + migrating a volume. +kes Probably overkill, but ensure that the bsr is unique even within a + job in FD and SD. +kes Rework bsys.c drop() so that it now should work as expected. +kes Update a bunch of old copyrights -kes particularly in .h files. +kes Remove src/lib/bshm.c/h +05Jul06 +kes Migration fixes +04Jul06 + ======================= Warning ========================== + All hash codes in the database are now kept in world + compatible base64 format (no = filling). This means that + all FileSets will be updated and if you are running + verify jobs, you must do an InitCatalog. + Authentication uses the new algorithm, but should be + backward compatible with 1.38.x + =========================================================== + +kes Modify the authentication routines so that the 1.39.15 Director + always runs with the compatible binary to base64 code (same as + the rest of the world). It will however detect if an SD or + FD is running the old code and if that is the case, will use + the old algorithm for authentication. However, all consoles must + use the compatible algorithm, and all data entered into the database + (all hash signatures, MD5, SHA1, ..., and all FileSet hashes) will + use the compatible algorithm. +kes Rename the cram_md5 routine names to be slightly more appropriate + to what they are doing (challenge and respond). +kes Robert committed his #ifdef and header cleanup. +30Jun06 +kes Fix a compiler warning in files/backup.c +kes Cleanup NOT NULL vs DEFAULT 0 in database creation. +kes Tweak btape. +kes Robert committed his low impact changes. +kes I removed a size_t from the jcr.h definition. +kes Update the tape regression scripts (still to be tested). +kes Add gcc and gcc-c++ requires to srm as suggested by a user. +kes Require done or quit to exit from in memory tree restore. +26Jun06 +kes Write install/uninstall of new manpages. There are now a + pile of man pages. Some of which need a lot of work. + + ======================= Warning ========================== + The --mandir ./configure option now points to the top level + man directory. The man files will be installed under + mandir/man8 and mandir/man1 as appropriate. + ========================================================== + +kes Add complete text of GPL to LICENSE. +kes Implement job report that indicates where Storage and Pool + came from -kes with overrides and Pool storage and NextPool, + it is all very complicated. +kes Create a few common subroutines for backup.c and migrate.c +kes Eliminate warning messages from tray-monitor.c +25Jun06 +kes Apply fix for scheduler for missing unlock_jobs(). +kes Clean out autoconf caches before rebuilding configure +kes Fix the FreeBSD pthreads lib define updated by Dan. +kes Add missing semicolon in src/console/console.c +kes Add Robert's enhanced version of build-win32-cross-tools + as well as his patch file. +kes Note, the new gcc options are likely to break building of + wx-console or the tray-monitor ... +24Jun06 +kes Implement Robert's suggestion to suppress printing compile lines. +kes Detect GCC correctly (I hope) +kes If using GCC (actually g++) add the following compiler flags + -fno-strict-aliasing -fno-exceptions -fno-rtti + + ===================== Warning ============================= + Turn on new bsnprintf() code. This could cause print output + to look different. + =========================================================== + +kes Fix crypto when not using openssl. I previously overlooked this. +kes Eliminate crypto type punning problems by eliminating void * and + using uint8_t * instead. +kes Harden authentication failure in FD by single threading errors + and forcing a 6 second wait. + + ===================== Warning ============================= + Removed 'Accept Any Volume' directive. + =========================================================== + +kes Major cleanup and simplification of regress using shell functions + (more tests to be converted to new format) +kes Add detection of 64 bit Irix as indicated by user. +kes Increment catalog database id from 9 to 10. +kes Add a few of the new database fields to the various C++ + structures. +kes Implement code to fill in the most important new fields (e.g. + Media Enable). +kes Ensure that most of the new fields are in create/get/insert/update. + More work to be done. +22Jun06 +kes Update some very old licenses in src/cats. +kes Modify the database format for handling Migration jobs: + Add PriorJobId, RealEndTime to Job table + Delete MAC table + Remove Stripe from JobMedia record (not used, wasting space) + Add ScratchPoolId, RecyclePoolId, Enabled to Media record + Add Cost to Location table. +kes Delete mac_record subroutines. +kes Add new table values to create/update/get routines as appropriate. +kes Update the update_tables and make_tables scripts. +kes Make a first cut in using a union where multiple pointers (actually + pointers to pointers) are stored. +kes Make some changes to base64.c suggested by Robert and others and add + a small amount of documentation. +kes Add some changes suggested by Peter for Solaris (bregex...) +kes Make runscript.h always built because it needs to be pulled into + more places. In particular its RES was left out of a union. +kes Renumber the enum{} list in runscript.h to avoid starting from zero. + This makes it slightly easier to detect uninitialized variables. +14Jun06 +kes Remove xpg4 lib from FreeBSD build as it is no longer needed and + sometimes creates install problems. +kes Change a couple of %T in strftime to %H:%M:%S as seen in Robert + Nelson's code. More to do. +kes Convert a few store_bit to store_bool in filed_conf.c. +kes DVD tweak to block.c as supplied by Uwe Muessel. +04Jun06 +kes Modify configure.in to check for typeof(). +kes In findlib/attribs.c use typeof instead of templates if possible. +01Jun06 +kes Implement partial error messages for src/filed/acl.c +kes Fix return code to fail when doing update barcodes and + Pool resource is not found. This previously caused Volumes + to be labeled as cleaning tapes. +kes Small updates to projects. +27May06 +kes Add Eric Bollengier patch for new RunScript directive. It breaks + compatibility between dird and fd. +26May06 +kes Prevent DVD code from rewriting label if the device cannot be + opened read/write. +kes Used __GNUC__ to detect GNU g++ as suggested by John Goerzen to + fix Debian build bug. +kes Fix Dir/SD run race in migrate.c, verify.c, and restore.c +kes Integrate manpages contributed by Jose Luis. +kes Update projects file. +kes Add manpages Makefile.in to configure.in +kes Remove installation of bacula.8 in scripts directory. +24May06 +kes Implement patch submitted by cesarb in bug #606 to implement O_NOATIME + support. + O_NOATIME is a open() flag which makes it possible to read a file without + updating the inode atime (and also without the inode ctime update which + happens if you try to set the atime back to its previous value). It also + prevents a race condition when two programs are reading the same file, but + only one does not want to change the atime. It's most useful for backup + programs and file integrity checkers (and bacula can fit on both + categories). + + Recent versions of the Linux kernel and glibc have support for it (the + glibc support being mostly copying the O_NOATIME definition to + bits/fcntl.h). If there's no support for it on the kernel, trying to use + it does nothing (since the kernel ignores unknown flags). + + If the kernel has support for it, trying to use it either works, fails + silently (mostly in remote filesystems), or returns errno=EPERM (if you + are not either the owner of the file or root). A simple way to prevent the + failure is to open the file without the flag and set it later with + fcntl(F_SETFL), ignoring any EPERM errors. +kes Applied patch posted by Jaime Ventura to bug #570 to correct failure + of restarted jobs to complete (due to a destroyed pthreads conditional + variable used by the message thread). +kes Fixed bug #619 where Bacula would not restart jobs with MaxRestartTimes + set to zero. +kes Apply patch from John Goerzen bug #611 to fix bad manual links in the code. +kes Apply patch from Rudolf Cejka bug #614 to removed trailing + colons in query.sql file. +kes Apply patch from Rudolf Cejka bug #613 to correct prunning of files + not to create orphans. +kes Apply patch from Rudolf Cejka bug #617 to use mtime instead of ctime + in restore long listing. +kes Apply patch from Rudolf Cejka bug #609 to use MarkId in verify.c instead + of incorrect MarkedId. +kes Apply patch from adioso bug #616 to correct text in manual (replace + Director with File daemon). +kes Rework a few of the zlib changes so that they build properly. + +21May06 +kes Move DIR 'run' command to SD before starting the message thread + as suggested by Cristopher Hull to avoid a race deadlock from + two threads using the bsock structure. +kes Modify LICENSE to correct some problems pointed out by Debian. +05May06 +kes Correct EOF with no \n lex.c problem. +kes Tweak compat.h compat.cpp and merge with apcupsd +kes Add additional INFO messages if autochanger cannot be used. + +02May06 +kes Simplify Win32 Makefile +kes Correct count of buffers/bytes used by smartall.c +kes Updated compat.h after porting apcupsd to MinGW. +01May06 +kes Work on getting wx-console building on MinGW. wxWidgets now builds + started adding Makefile ... +kes Moved MinGW library objects to src/win32/lib to reduce clutter. +30Apr06 +kes Reloading a bad configuration file doesn't kill director any more. + Thanks to fix from Eric Bollengier. +29Apr06 +kes Fix problem of accents with new Win32 code. +kes Integrate Howard's VSS patch. Tweak it a bit. VSS now + works in the MinGW build with the exception that there + is a problem with accented characters -kes i.e. there is + some mapping problem with wide characters. +kes The code no longer compiles with Microsoft VC++. +28Apr06 +kes Start implementing Christopher's St.Bernard code. +kes Add Christopher's mods for opening files. +kes Strip \r \n from Win32 error messages (Christopher) +kes Add more info about Win32 system if unknown (Christopher) +kes Use bstrn(cpy, cat) routines to avoid overrun in compat.cpp +kes Fix a number of incorrect strings marked for translation, when + they should not be (e.g. commands). +kes Fix StartTime bug reported for ClientRunBeforeJob and RunBeforeJob + Patches supplied by user in bugs #608 and #599. +kes Use most recent of st_ctime and st_mtime in restore tree DIR + listing. This fixes some problems with Win32 printing incorrect + values. +kes Correct the clock shift comm time calculation between the DIR + and the FD. It was added rather than subtracted. +kes Strip all backslashes in filenames to be restored on Win32 + machines -kes the names should all be in Unix format, and if + there are any backslashes it is most likely due to an improper + FileSet definition, and the files will not otherwise be + restorable. +kes Remove lib/regex.c (replaced by bregex.c). +kes Delete src/win32/License.txt +kes Modify installer to install LICENSE +26Apr06 +kes Fix bug in build-win32-cross-tools script reported by Howard +kes Implement cross compiled bconsole +25Apr06 +kes Fix barcode test, eliminate BOOL (doesn't exist on Linux). +kes Write first cut of README.mingw32 +kes Add back ua_label barcode fix from Rufolf Cejka. +kes Integrate the majority of the Mingw cross-tools submission + made by Howard Thomson. Everything compiles, with zlib, openssl, + and VSS turned off. Linking needs a pthreads library ... +23Apr06 +kes Add 'Dir Status' button to the gnome console. +kes More work on migration. +kes Restore non-compatible base64 coding to permit compatibility. +kes Display heap stats in Storage daemon without debug level. +22Apr06 +kes Integrate most of the MinGW changes -kes more to do. +21Apr06 +kes Implement using pg_config for finding PostgreSQL files. + Fixes bug #600. Patch supplied by user. +kes Remove -t option from mktemp in mtx_changer.in and use + working directory. Fixes bug #578. +kes Update job start time after the any run before job so that + files created by the script are only backed up once. Fixes + bug #599. +kes Strip trailing newline only from filenames entered in + the restore command when reading a file. This permits + the user to enter filenames with trailing spaces. Fixes + bug #549. The user supplied a patch that I modified slightly. +kes Use the most recent time (st_mtime, st_ctime) in the dir + command in restore. This gives the user a better idea of what + the newest file really is. This fixes bug #574. The fix + was suggested by the user. +kes Implement a compatible version of base64. This permits external + programs to duplicate Bacula's base64 algorithm using standard + routines. This fixes bugs #296, and 565. Patch submitted by + author of bug #565. + ================= Note ======================== + Previous Signatures stored in the database are no longer + compatible with this. The main downside is for Verify jobs, + and doing an InitCatalog run will fix the problem. Also, the + authentication between the deamons is changed, so all daemons + must be simultaneously upgraded. + ============================================== + If you don't like this fix, set: + const bool compatible = true; + to + const bool compatible = false; + in src/lib/base64.c +20Apr06 +kes Ensure that DB signature is never NULL. +kes Ensure that DB table names are not translated. +kes Fix scheduler to handle time skew (eg daylight savings). +kes Fix scheduler to use lock_jobs() to avoid most problems + with reload. Window is now milliseconds. +19Apr06 +kes Apply patch from Christopher Hull + kes Allow multiple connections to database with different + parameters. + kes Invalidate the scheduler when doing a reload. Fixes seg + fault, but still 60 second window. + kes Additional info in Reschedule message. + kes Use set_jcr_job_status() everywhere to prevent loss of + cancel, error. + kes Display peer IP in FD if error from connecting DIR. + kes Don't increment file count for DIRBEGIN. + kes Replace illegal characters in Win32 filename by _. + kes Add SE_CREATE_PERMANENT_NAME privilege in Win32. + kes Hash hard link filenames rather than linked list. + kes Fix for security failure in chdir on Win32. + kes Add CreateDirectoryA/W win32 API entry points. +kes Add /silent option to Win32 FD for Install/Remove service. +kes Always print Heap statistics in FD. +18Apr06 +kes Remove the -f option from the chown in Makefile.in for more + portability. +kes Change setting the group in Makefile.in to use chgrp for + more portability. +kes Implement a write_store and read_store to replace + dirstore in reserve.c +kes Implement a Bacula read/write lock for Python rather + than using the Python lock to avoid recursive problems. +kes Correct the uninstall directory names in filed/Makefile.in + as reported by a user. +17Apr06 +kes Correct some problems with database creation (new tables). +kes Replace a bunch of old 0x%x by %p. +kes Get first cut of Migration with Job selection working. +16Apr06 +kes Change store_bit() to store_bool() for the Spooling in + dird_conf.c -kes bug reported by Robert Nelson. +15Apr06 +kes Correct Makefile bug found by Dan Langille. +14Apr06 +kes Correct Makefile for Solaris /bin/sh +kes Correct mtx-changer.in for Solaris /bin/sh +kes Abort if a conf resource does not have a Name = +12Apr06 +kes Change the name of the regex program to bregex. +kes Add the bwild program to the tools directory. It is similar + to the bregex program. +kes Implement create bregex.h and bregex.c in src/lib from the + Python regexp program. +kes Use the new bregex.c to implement Regex expressions on Win32. +11Apr06 +kes More work on migration. +kes Implement wild program in tools directory for testing + wild-cards. Almost identical to the regex program. +kes Up port VSS single thread locking code. +kes Replace N_(..) by NT_(...) to inhibit translation of + commands. +kes Modify Makefile to change the permissions on Working Directory + to 770 if the directory is created. +kes Do not fail the Makefile if changing the permissions or + owner/group on WorkingDir fails. +kes Remove early selection of Scratch Volumes in the recycling + algorithm. +kes Correct the old recycling algorithm so that Scratch Volumes + are selected when looking for a Volume in the changer. +kes Correct a typo in the Verify SQL reported by Joe Park. +10Apr06 +kes Remove automatic case folding on Windows FDs. You must + explictly use the 'Ignore Case = yes' option. +kes Remove the code added to 1.38.6 and 1.38.7 that pulls a + scratch volume in an Autochanger early in the 'recycling' + algorithm. +09Apr06 +kes Make weof() and clrerror() methods of class DEVICE. +08Apr06 +kes Tweak license to include Microsoft restrictions. +kes Move mysql.reconnect to after real_connect(). Thanks to + Frank Sweetser for the patch. +kes Disallow a backslash in a File = directive (Windows junk) + unless the string is quoted. +kes Apply Eric's patch to ua_label.c so that daemon protocol + is not translated. +kes Add NT_ definition for strings that should not be translated. +kes Apply NT_() to ua_label.c +kes Remove timed wait for VSS on Win2K3 as it is not yet + implemented. +kes Correct bacula.in script to reference bacula-ctl-xx in the + sysconfig directory rather than the bin directory. +26Mar06 +kes Fix a long standing bug in the bacula start/stop scripts. +kes Attempt to add the new bacula-ctl-* files to the rpm. +kes Switch to using typeof() for list traversing to avoid + as many FC5 g++ compiler warnings as possible. +25Mar06 +kes Split the bacula start/start script into four files: + bacula -kes starts and stops calling other scripts + bacula-ctl-dir -kes starts/stops the director + bacula-ctl-fd -kes starts/stops the File daemon + bacula-ctl-sd -kes starts/stops the Storage daemon +24Mar06 +kes Create datestyle fix for PostgreSQL. Fixes bug #574. +kes Correct editing of JobId from int to int64 in fd_cmds.c +kes Eliminate FileSet name race with bash_spaces() and multiple + threads by bashing in a local. +kes Fix error return from 'use storage' to print a correct error + message rather than nothing. +kes Correct false re-read last block error message when two jobs + are simultaneously writing at the end of a tape. +kes Simplify exit conditions in the reserve.c code to avoid + possible non-release of reservation_lock(). +kes Suffle lock order in reserve to avoid deadlock between + reservation lock and device mutex. +21Mar06 +kes Initialize jcr mutex before first use. Thanks to Thorsten for + tracking this down for me !!!! as it broke the Win32 build. +20Mar06 +kes Integrate addition of line count limitation to bsmtp -l from + Sebastian Stark +17Mar06 +kes Implement regex test program in tools directory. +kes Attempt to fix time problem with bsmtp with foreign langs. +kes Add strip_trailing_newline() submitted by user. +kes Implement regex matching in migrate.c +16Mar06 +kes Fix bug #537 to allow arbitrary time to mount a volume for + restore, if polling is turned on. +kes If dir_user or dir-group is specified in ./configure apply it to + the working-dir. Fixes bug #533. +kes If rescheduling a job cancel the previous incarnation with the SD. + Fixes bugs #566 and 557. +kes Fix bug #567 do_message() definition type conflict. + +14Mar06 +kes Add more jcr methods and make mutex and use_count private. +kes Create lock/unlock methods for jcr. +kes Fix PostgreSQL bug doing sql_data_seeek() by explicitly reading + records to get to seek position. +kes Integrate patch from bug #561 to correct conio.c signal definitions. +kes Fix Rescheduling failed Jobs. Ensure that SD message thread + terminates correctly by doing pthread_kill(). Do not destroy + SD cond wait variable between executions of the job. Use local + mutex for cond variable to avoid blocking jcr chain. Fix poor + use of jcr use count in jobq.c for restarted jobs. +kes Fix obsolete usage of foreach_dlist() to use foreach_jcr() in + lib/jcr.c -kes prevents locking the jcr chaing. +kes Apply patch from bug #564, which corrects listing volumes with + multiple autochangers. Apply same fix to next volume list. +kes Fix bug #562 where restore bootstrap file is not unique. +kes More details in implementing David's migration syntax proposal. +kes Save and restore dcr when swapping drives so that if we have + a write dcr it is not lost. +kes Use new routine lock_reservations() to lock the reservations + system, and call it while looking for a volume in askdir.c. + This could possibly fix bug #543. +kes Stop SD command loop if job is canceled. + +08Mar06 +kes Remove old code from findlib/create_file.c +kes Rename mac.c migrate.c +kes Add user friendly display of VolBytes in job report. +kes Rename target... to previous... to make it a bit easier to + understand. +kes Add selection type and selection pattern to Migration (idea + given by David Boyes). + +04Mar06 +kes The po files should now be current. +kes Fix new sql_use_result() code to properly release the + buffers in all cases. +kes Use the keyword ujobid to mean the unique job id; job or jobname + to mean the Job name given on the Name directive, and jobid to + be the numeric (non-unique) job id. +kes Allow listing by any of the above. +kes Add the user friendly job report code for reporting job elapsed time + and rates with suffexes from John Kodis . +kes Add Priority and JobLevel as Python settable items. +kes Use TEMPORARY table creation where the table is created by + Bacula. +kes Add new code submitted by Eric for waiting on specific jobid. +kes Add ACL checking for the dot commands. +kes Fix restore of writable FIFOs. +kes Fix a bug in bpipe where the string was freed too early. +27Feb06 +kes Modify the Python class examples to inherit object -kes new way + of defining classes. Patch from Felix Schwarz. +kes Implement jobuid to replace old usage of job in keywords as + suggested by Eric Bollengier. +kes Apply patch for enhancing wait from Eric Bollengier. On can now: + wait (wait for all jobs to stop) + wait jobid=nn + wait jobuid=unique id + wait job=job-name +kes Implement write variables for Python to set Priority (anytime), and + Job Level, only during JobInit event. +26Feb06 +kes Fix the block listing bug pointed out by Arno. +kes Update the po files at Eric's request. +24Feb06 +kes Fix Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to + accept time qualifiers. +kes Make catalog respect ACL. +kes Add recycle count to Media record. + +Changes to 1.39.6-beta1 24Feb04 +23Feb06 +kes Add Rudolf Cejka's new rc-chio-changer. +kes Implement pulling Volume from Scratch Pool if the + Volume is in the autochanger. +kes Implement additional command arguments for update Volume. + +Changes to 1.39.5 +22Feb06 +kes Back port changes to 1.38.5 +kes Fix recycle SQL for StorageId. +kes Fix misplaced quote in mtx-changer script. +20Feb06 +kes Note. Your database must be updated, or you must create + a new database. I have not yet incremented the database level. +kes Add Location table. +kes Add LocationId, DeviceId, and MediaTypeId to Media record. +18Feb06 +kes Implement create/get mac record in database for adding extended + Migration data to the job record. +kes Add new MAC table to update/make database scripts. +kes Return Storage name used when getting VolumeNames for a job. +kes Change bsr file keyword Storage to Device, which is more accurate. +kes Ensure that Mac records are pruned/purged. +kes Tweak SD tools to deal with changing media type. +kes Integrate more dev.c subroutines as methods (e.g. strerror, bsr, ...) +kes Pass pointer to dcr pointer to acquire_device_for_read() so + that the subroutine can switch devices, and hence dcrs. +kes Modify the multiple MediaType read code to re-use the same + dcr when switching devices. This makes the code much more + robust. +kes Integrate patch from Karl Hakimian that reads JobIds, FileIndexes + from a table for restore. +kes Add Storage name to VolParams, but it really should be Device. +14Feb06 +kes Add disk-changer to scripts directory + configure/Makefile +kes Eliminate PoolId from jcr -kes it is in jcr->jr.PoolId +kes Implement store_bit scanner to replace store_yesno. Mostly done. +kes Implement new store_bool that stores in a bool. +kes Add true/false to yes/no conf directives. +kes Make first cut at changing appropriate store_yesno to store_bool. +kes Complete implementation of Pool storage devices. +kes Move starting clones to job.c +kes Move create_restore_bootstrap_file() to job.c +kes Make copy_storage() more general to be able to handle + Pool storage. +kes Cleanup a lot of migration code for manual running, including + using Pool storage. +kes Move getting a scratch Volume into a subroutine. +kes Make all places a Volume that is added to a pool to + respect max vols. +kes Fix bug in autochanger recycle code (improper edit 64 bit). +kes Fix segfault in restore command when no value specified. +kes Start adding code to handle multiple MediaTypes in restore. +kes Eliminate race condition in getting Volume name for + two drive autochanger. +kes More debug code in autochanger. +kes Add storage keyword to bootstrap file, add parsing. +kes Move slot in bsr file into Volume record as there will be + a different slot for each Volume. +kes Create reserve.h +07Feb06 +kes Implement Pool storage overrides. +06Feb06 +kes Implement first cut of Migration. +kes Implement mysql_use_result() from patch by Karl Hakimian. + This reduces significantly the memory consumption during + the restore tree building, and hence runs faster too. +kes Implement StorageId patch supplied by user (reggie) in bug + #536. This should permit Bacula to work correctly with two + autochangers. +kes Implement Job listing variations suggested by a user. +kes Move updating bootstrap code in backup.c to subroutine + update_bootstrap_file(). +kes Add new job status elapsed time and bytes written user + friendly job report output patch sent by John Kodis + . +kes Implement a storage list in Pools. +kes Separate out setup_job() code from run_job(). +kes Get migration working -kes lots of changes in mac.c in both + DIR and SD. +kes Apply patch from user (Eric Bollengier I think) that fixes a + DIR crash when no arguments are supplied to a dot command. +kes Fix typo (strcpy->strcmp) in ua_prune.c as reported by Martin. +kes Fix command arg name->volume in label command of gnome-console. +kes Fix SD acquire.c to release correct DCR by explicitly testing + on the dcr address rather than trying to devine if it is a read + or write dcr. This failed in error conditions when the device was + not fully setup. + +30Jan06 +kes Apply user supplied patch for more readable rate output + in job report. +kes Continue implementing migration. +kes Implement support for removable filesystems in SD. +kes Ensure that btraceback scripts can be read by anyone. +kes Replace dvd-freespace and dvd-writepart by dvd-handler. +kes Correct bug where canceling restore before the FD contacts + the SD causes the drive to be left in read mode. +kes Move ofline_or_rewind into DEVICE::close(). +kes Eliminate close_device. +kes Convert several dev subroutines to methods (e.g. bsf, + eod, ...) +kes Eliminate force_close_device(). +kes Implement Device Type directive in Device resource that + can have values File, Tape, Fifo, DVD, or Prog. +kes Add has_cap() method to Device. +Changes to 1.39.4 +17Jan06 +kes Add patch from bug #527 to allow RedHat user to specify + options/user/group for starting each daemon in + /etc/sysconf/bacula. +16Jan06 +kes 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 +kes Add periodic (every 24 hours) garbage collection of memory + pool by releasing free buffers. +14Jan06 +kes Correct bug counting sized (for display only) in smartall.c +kes Print FD mempool stats if debug > 0 rather than 5. +12Jan06 +kes Make db_lock() mutex error fail the job rather than abort + Bacula. Canceling the job caused the mutex to fail. +kes Correct bug in alist.c that re-allocated the list if the + number of items goes to zero. +kes Move the reservation system thread locking to the top level + so that one job at a time tries all possible drives before + waiting. +kes 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 +kes 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. +kes During 'update slots' clear all InChanger flags where the + StorageId is zero (old Media records). + +Beta release 1.38.4: +09Jan06 +kes Fix autochanger code to strip leading spaces from returned + slots number. Remove bc from chio-changer. +kes Back port a bit of 1.39 crypto code to reduce diffs. +kes Fix first call to autochanger that missed close()ing the + drive. Put close() just before each run_program(). Fixes + Arno's changer bug. +07Jan06 +kes Add PoolId to Job record when updating it at job start time. +06Jan06 +kes 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. +kes 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. + + +Changes to 1.39.3: +04Jan06 +kes Start implementing Verify list output. +kes Move the suitable_drive flag to a better place to prevent + premature termination of the reservation if all drives + are busy -kes should fix Arno's diff/inc pool failures. +26Dec05 +kes Add mutex to single thread VSS code in Win32. +22Dec05 +kes Simplify code in askdir.c that waits for creating an appendable + volume so that it can handle multiple returns from the wait + code. +kes Modify the wait code to permit multiple returns. +kes Return a zero when 'autochanger drives' is called and + it is not an autochanger. +kes 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. +kes 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. +kes Return error if reserve cannot find at least one suitable device. +kes Make wait_for_sysop() return correct state information. +kes Fix Win32 state file problem. write was not using compat + code. This should fix bug #500. +21Dec05 +kes Modify gui on command to set only GUI mode and not batch. +kes Modify .messages command to always print messages regardless + of the mode. +kes If GUI mode is on, suppress automatic printing of + You have messages. +kes Delete old bnet packet code. +kes Ignore new BNET_START_SELECT and BNET_END_SELECT signals in + wx-console. -kes not implemented because bconsole must be updated. +kes Modify restore command in wx-console to set gui on and to use + only .messages instead of messages. Hopefully this fixes bug + #514. +kes Fix seg fault in exit of acquire when canceling a job -- + reported by Wolfgang Denk +kes Pull in latest reservation system changes from 1.38 +kes Make .messages command always print messages regardless + of the automessages flag. +17Dec05 +kes Fix seg fault if user labels a drive directory bug #513 +kes Remove quotes around Version as it breaks things. +16Dec05 +kes Merge in Aleksandar Milivojevic's mods to the spec file. +kes Apply sparse code fix for raw drives and fifos. Bug 506 +kes Thorsten fixed Unicode cd problem with wx-console bug 505. +14Dec05 +kes Correct reservation system to do a last ditch try + for any mounted volume, then anyone anywhere. +kes Add quotes around table Version because of + error in MySQL 4.1.15 -kes bug report submitted. +kes Correct some minor problems with btape in the fill + command. +kes Updates to ssh-tunnel from Joshua Kugler. +kes Added a report.pl program from Jonas Bjorklund. +kes Simplify the O_NONBLOCK open() code for tape drives, + and always open nonblocking. +kes Do not wait for open() if EIO returned (shouldn't happen). +kes Eliminate 3 argument to tape open(). +kes Correct the slot # edited in the 3995 Bad autochanger unload + message. +kes With -S on bscan (show progress) do not divide by zero. +13Dec05 +kes Make cancel pthread_cond_signal() pthread_cond_broadcast(). +kes When dcr is freed, also broadcast dev->wait_next_vol signal. +kes Remove unused code in wait_for_device. +kes Make wait_for_device() always return after 60 seconds of wait. + +Changes to 1.39.2: +13Dec05 +kes Add stubs for non-crypto build. +12Dec05 +kes Use localhost if no network configured +11Dec05 +kes Eliminated duplicate MaxVolBytes in cat update -kes bug 509. +kes Remove debug print. +kes Add bail_out in error during state file reading. +10Dec05 +kes Merge changes made to 1.38.3 into HEAD +kes Add stubs for pygtk-console code +kes Create Makefile.in for pygtk-console code +09Dec05 +kes Merge updates into 1.38 branch +kes Update specs to include mysql4 define. +kes Fix when attributes are sent, must be after binit(). +kes Stop read_record() if status not ok in second loop. +kes Return rec->FileIndex in dcr->VolLastIndex for normal + and partial records in read_record(). This allows bscan + to get FileIndex at EOT correct. +kes Fix butil.c to correctly set dcr -kes fixes seg fault in bls. +08Dec05 +kes Fix Win32 built to work with new crypto code. +kes Apply patch supplied by user (slightly modified) to fix + correct detection of holes in block devices and FIFOs. + Bug # 506. +kes Apply patch supplied by user (slightly modified) + to fix SD hang with multiple pools and bad client + IP. Fixes bug # 508. +07Dec05 +kes Add nagios plugin to the examples directory. Submitted by + Christian Masopust. +kes Remove warning message about multiple saves of hardlinked files + from find_one.c as it can generate too many warning messages. +kes Modify most restore error messages to be queued so that they + appear at the end of the job rather than mixted with the restore + listing where they could be 'lost'. +06Dec05 +kes Reset timeout values before select() per patch from + Frank Sweetser for problems with non-blocking sockets. +kes Unlink the state file if either reading or writing it gets + errors. Hopefully this will fix Win32 exit problems. +kes 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 +kes Get next volume from Scratch pool before creating a volume. +kes Set new Pool defaults in Vol when moved from Scratch Pool. +kes Remove argument from create_bacula_database for SQLite as it + caused an error. +kes Add back index code so that two drive autochangers can get + a second tape. +kes Change a bunch of debug levels to aid debugging autochangers. +kes Fix reservation so that mutexes are properly applied. +kes Rework reservation algorithm so that two drives can be used + at the same time. +04Dec05 +kes Landon merged his data encription changes into the HEAD +kes 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. +Changes to 1.39.1: +03Dec05 +kes Fix font code in gnome2 console user patch. Fixes bug #501. +kes Fix malformatted bnet error message that caused seg fault + fixes bug 502 +kes Applied user patch to improve README.vc8 in src/win32. +29Nov05 +kes Add Migrate, Copy, Archive Job types (some where there) +kes Correct some more editing of JobId's (for 64 bit compatibility). +kes Ensure that StorageId is stored in Media record when ever possible. +kes Add Migration Job to Job. +kes Add Migration Time, Migration High Bytes, Migration Low Bytes + Next Pool to Pool resource. +kes Add more code to mac.c (migration archive copy). +kes Change Start Storage daemon job to require read and write storage + pointers. +kes Pass read storage data to SD as well as write storage data. +kes Remove old code from winservice.cpp +kes Break on error in scan. +kes Fix typo in signal.c +kes Separate read/write DCR in SD. Add jcr->read_dcr. +kes Cleanup how find_device() works. +kes Add read output to Status in SD. +Changes to 1.39.0: +23Nov05 +kes Add red-black btree routines +21Nov05 +kes Remove abs() in bfile.c so that it compiles on Solaris. + Bug #491. +20Nov05 +kes Fix crash in tray-monitor when daemon disconnects. Bug #479. +kes Fix bnet-server bug found on OpenBSD. Bug #486 +kes Fix cancel failure bug. Bug #481 +kes Fix failure when Pool name has spaces. Bug #487 +kes Fix SD crash in autochanger code. Mutex failure. Bug #488 +kes Fix a couple of free()s in src/filed/acl.c +kes Fix memory overrun in bfile.c in building OS X resource + fork filename. Bug #489 +kes Add Pool name to SD status output. +14Nov05 +kes Apply SunOS patch for ACLs submitted by David Duchscher. +kes Make sure to set storage before trying to set drive. +kes Add bacula_mail_summary.sh to examples directory. It makes + a single email summary of any number of jobs. Submitted + by Adrew J. Millar. +kes Make sure when we do a mount to unblock the device even + if the drive could not be opened. +13Nov05 +kes Remove the USE_WIN32STREAMEXTRACTION #defines (always on) + and correct a few minor problems to make it build on Linux. +10Nov05 +kes Remove delete of CVS from all Makefiles +kes Fix seg fault when clicking on Add button in wx-console + restore panel. Bug #470. +kes Fix copyright date and URL typo -kes bug #468. +kes Change autostart install for FreeBSD to look for rc.conf + rather than rc.local as suggested fix for bug #466. +kes Apply patch supplied by Eric Bollengier to fix PostgreSQL + grant on status. Bug #465 +kes Apply patch supplied by Eric Bollengier to fix PostgreSQL + update script. Bug #464 +kes Tweak #ifdefing a bit in new Win32 stream code. +kes Fix #ifdeffing for FD_NO_SEND_TEST. +kes Add documentation of performance #defines diff --git a/docs/techlogs/ChangeLog b/docs/techlogs/ChangeLog deleted file mode 100644 index c6de0d5a..00000000 --- a/docs/techlogs/ChangeLog +++ /dev/null @@ -1,5590 +0,0 @@ -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.32.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 HÃ¥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. - -Version 1.36.1 released 26Nov04: -24Nov04 -- Take Dan's fix to the fix_postgresql_tables (thanks Dan) -- Increase Maximum Concurrent Jobs to 20 in SD and FD! -- Fix improper handling of autochanger Volumes that are not - marked InChanger. -22Nov04 -- Update authentication failure message to indicate possible - problem with Maximum Concurrent Jobs. Add to doc too. -- Commit PostgreSQL BIGINT fix -- apparently some people didn't - get it. -- Do not use a slot unless it is InChanger in the autochanger - code, otherwise autochanger gets upset not finding the Volume. -21Nov04 -- Make authentication timeout compile time configurable. - The value is set in src/baconfig.h -- Fix removing items from watchdog queue, which apparently - screwed up if there was more than one item. -- Rework mediaformat part of manual to separate out old - tape format for easier reading. -- Add a lot of debug code to the authentication code. -- Add seconds to the start/end times printed in the job report. -19Nov04 -- Fix mutex deadlock in dequeue of messages. -- Add debug code to FD authorization. -18Nov04 -- Increase authentication timeouts to 10 minutes. -15Nov04 -- Fix cancel bug in FD on /lib/tls with zero pid in - pthread_kill. -- Add date/time to all messages. -- Make Qmsg use time message was queued rather than time - printed. -- Indent job output two spaces. -13Nov04 -- Fix web page links for new manual. -- Grant postgresql permission to cdimages. -- Correct crash after "list nextvol" "list media" bug 160 -12Nov04 -- Fix scripts/Makefile.in missing ;\ -- thanks Martin -- A bit of work on btape to keep if from going into infinite - loops when things do not work well, and to print a bit - better info. -11Nov04 -- JobDefs Storage resource completely overrode anything - specified in Job resource -- bug 159 -- fixed. -- Fix syntax of renaming postgresql per Dan. -- Add working_directory to be /tmp for wx_console. -10Nov04 -- Allow both a JobId and a filename or list of files to be - specified on a restore command line. -- Save old mtx-changer before installing new one: bug 156 -- Fix errors in CDROM file pointed out by Scott. -09Nov04 -- Fix exepath when Bacula executed without path. -- Move test for socket libraries for Solaris in configure.in - before tcp wrapper tests so that linking works. -- Add "make copy-static-fd" to makefile in CDROM file to - copy existing static fd to CDROM rather than building it. -08Nov04 -- More doc updates -- Fix ps command for OpenBSD -- Rework the creation of indexes for SQL -- fall back - to the old code, but document what can be added. -06Nov04 -- Add new Daemon message handler in default DIR conf. -05Nov04 -- Fix Seg Fault with -D100 in bpipe.c. -- Fix Seg Fault in run specifying a JobId. -- Make mail from daemon with a Messages Resource use - the MailCommand with editing rather than the default - sendmail. -- Replace Jmsg in dispatch_message() with Qmsg. -- Make edit_job_codes handle NULL jcr. -04Nov04 -- Add M_ALERT class and put tape alerts into it. -- Fix Verify count vs found by not double counting files - that are split across files/Volumes. -30Oct04 -- Fix count returned from write_bsr_file() to handle multiple - volumes. This fixes most cases of the Verify VolumeToCatalog. -- Cleanup a bit the make clean for the rescue cdrom and remove - unneeded files from the CVS. -28Oct04 -- Fixed acquiring a tape so that it does not block all acquires - when operator intervention is needed. -- Platform build script updates from Scott -- Doc updates -- Add patch to force Linux LD_ASSUME_KERNEL to avoid using the - new /lib/tls. This is done in the startup scripts. -- Modify mtx-changer so that it checks for ONLINE while - waiting. -- Modify make_postgresql_tables.in so that EndBlock is stored - as a bigint. Prevents job failures when a disk volume is - larger than 2GB. -24Oct04 -- Add grep ONLINE to wait_for_drive() in mtx-changer.in -- More doc. -- Rebuild Scott's new configure - -Version 1.36.0 released 21Oct04: -Changes to 1.35.9: -19Oct04 -- Modify install of make_catalog_backup and delete_catalog_backup so - that it will not overwrite any existing file. -- Additional documentation. -- Modified detection of largefiles to always set all flags regardless - of the machine. -- Modify autostart scripts to start Bacula late in the process and - terminate it early. -- Drop CDImages table in drop database tables scripts. -- Alter casting of (void *) in gnome2-console/restore.c to pass - by a (long int) so that it works with 64 bit machines. -- Add more debug to heartbeat.c in FD for problem of dropped connections. -18Oct04 -- Adjust priorities for starting/stopping daemons to be - started late and stopped early as suggested by Marc Williams. -18Oct04 -- Adjust priorities for starting/stopping daemons to be - started late and stopped early as suggested by Marc Williams. -18Oct04 -- Fix crash on exit with -t option in FD on 2.6 kernels -- - uninitialized thread id variable. -- Add additional SD and FD debug info to detect network hang. -- Fix bnet_strerror() routine not to return stack pointer. -- Put latest update routines in updatedb. -16Oct04 -- Fix error during restore error reported by Christopher Hull when - no tape in the drive (open fails). -- Add more precise error reporting to FD when a network error - occurs. -15Oct04 -- Fix empty files reported by Marin (zero file_size in dev.c). -- Update all the db update scripts to include the new multiple - key index on File proposed by Martin, and to fix up a few - minor things with PostgreSQL. -- Apply Christopher Hull's patch for getting the catalog correct - during a restore. -- Created a patch for 1.34.6 (and code in 1.35) to detect passing - the A option to the FD, which means enable ACL processing. - Submitted by Ben Vitale. -13Oct04 -- Fix syntax error in make_mysql_tables.in pointed out by Scott. -12Oct04 -- Add a kludge to detect bad date/times, which cause a seg fault in - Microsoft's version of localtime_r(). So, now we know that Microsoft - programmers do not check return codes! -- Minor update to web site (new projects page). -- Remove bigint for filenameid from postgresql table -- as demonstrated - by Martin, it has negative performance repercussions. -- Rework getuser() and getgroup() to avoid any possible race condition - by returning the value in a buffer rather than from the cached table. -- Add a bit more debug code to the FD status output. - -Changes to 1.35.8: -09Oct04 -- Documentation. -- Integrate Peter Ericksson's dbx traceback scripts into Bacula -08Oct04 -- Fix segfault in lsmark command in restore tree. -- Fix segfault in editing numbers in count command of restore tree. -- Add missing #define for IPV6 found by Martin in address_conf.c -- Use strcasecmp() instead of strcmp() in address_conf.c -07Oct04 -- Fix bug where SD crashes on label if drive is not open - (i.e. Always Open = no). -- Added "Rerun Failed Levels = yes/no" -- Made calling offline_or_rewind() non-fatal if the - device is not open. -- Added Martin's suggestion to have multiple level index on - the file table. -- Update doc -- Fix misspelled #define in mysql.c for threading pointed out - by a user. -- Fix incorrect prototype. -- Attempt to fix Solaris crash in SD during status command. -04Oct04 -- Fix backspace to first character in conio.c -- Add umount command for Phil. :-) -- Fix update volume volfrompool. -- Modify restore to print an error message if the size of a - restored file does not correspond to the saved stat packet. -- Fix count of files to be restored *not* to include - top level created directories. - -Changes to 1.35.7: -03Oct04 -- Apply Martin's patch that puts back the run pool override - code -- dumb me for removing it. - -Changes to 1.35.6: -02Oct04 -- Create patches/README and the patch summary file. -- Use different share mode when opening files on WinMe/98/95 since - SHARE_DELETE is not implemented on those systems. -- In new syntax Includes, pass *all* files through the acceptance - filter so that no error messages will be printed for files that - cannot be opened if they are excluded. -01Oct04 -- Fix bug 126 (Martin) -- prevent failed console label request from - going into fixup code and thus trying to update the catalog. -- Always fold case in fnmatch() on Win32 systems -30Sep04 -- Create patches directory -- Apply Martin's patch for fixing console modifications to Verify Jobs. -- Fix Win32 so that it can backup files that are opened by programs - such as Word (certain open system files cannot be backed up). - -Changes to 1.35.5: -29Sep04 -- Fix Storage overrides in Run directive -- Fix seg fault in AlertCommand -- Fix btape "test" and "fill" commands to work with new SD - data structures. There are still problems ... -26Sep04 -- Correct buffer length passed to inet_ntop() in address_conf.c -- Increase the debug level of a lot of messages to reduce the - debugging "noise". -- Modify how ST_APPEND is handled so that nothing is written - to the Volume if it is not set. It is now set only when - the Volume label is verified, and released when the volume - is released. This required a number of minor but rather - critical and fundamental changes. -- Improve quickly terminating a job in the SD when it errs. - More status checking and a few additional checks on - job_canceled() and check more error return statuses. -- Added a number of debug statements (to be removed later) that - check the VolCatName for a name. -- Create a single subroutine that handles terminating writing - on a Volume at the end of the volume (or after an error). -- Continued to add use of the berrno classs for strerror(). -25Sep04 -- Apply conio patches supplied by Peter Eriksson for configure.in - conio.h and conio.c to make it work better on Solaris. -- Make run_grub print manual procedure for installing grub -- Add extra setsockopt keepalive. -- Add code to set as many options as possible in the system - tape driver for different OSes. -24Sep04 -- Apply Peter Eriksson's patch to configure.in fixes finding - correct libs on Solaris to link conio -- bug 121 -- Add expected number of files to Verify VolumeToCatalog, and - if it does not equal the examined files, fail the job. - Fixes bug -- 114 -- Modify the depend section of each Makefile.in to reference $(CXX) - instead of $(CC) -- bug 118 -- Remove the word "restore" from the Volumes needed message in - dird/bsr.c since the message is used for Restore and Verify. -- Fix initialization and copying of the storage resource when - starting jobs (and in jobq.c when restarting). In some cases - jcr->store was not set causing a segfault -- bug 116 -23Sep04 -- More doc. -- Pass EndFile and EndBlock to SD. -22Sep04 -- Fixed bscan to close() drive between tapes. -- Turn on transactions for SQLite and PostgreSQL if - multiple connections are turned on. -- Removed stripping of filename in ua_tree insertion routine. -- Fix split_path_and_filename() routines to return zero length - path and files. -- Modify update_tables scripts to convert a single blank filename - into an empty filename. -- Incremented the release number because this version requires - an update to the database. - Use: - cd src/cats - ./update_bacula_tables - to update an existing database. -- Implemented EndFile and EndBlock in the Media record. This will - allow Bacula to know exactly when to stop reading a tape if the - stupid tape driver does not give a logical end of tape indication - and Bacula writes to the end of the tape getting an I/O error. -- Added new routines to update the database, and there are - new database creation routines to add the two new Media columns. -- The Media record is updated each time a JobMedia record is created. - This keeps the Media record up to date. -- Undid the code to use automatic type converions to char * in - POOL_MEM. This is due to the ugly consequences of essentially - destroying the class type nature of the class. -- Removed all the old mp_char() #define code. - -Changes to 1.35.4: -22Sep04 -- Add additional doc. -- Implement automatic POOL_MEM type conversion to char *. Thanks - to Martin Simmons for the suggestion. -- Remove some unneeded function overloading -- need removed by - automatic type conversion. -21Sep04 -- Correct segfault in message.c with debug=200 (new code). -- Fix bug 109 verify with no options prints garbage. -- Add ioctl(MTIOCGET) call to clrerror_dev() in dev.c. As reported - by Frank Kardel, this should clear error conditions on NetBSD. -20Sep04 -- Modify the rescue script to create mount_drives with - the order specified by Philip Nash (mkdir, mount). -- Tweak install chapter of French manual to add new paragraph - from English. -- Tweak restore tree message to be a bit clearer. -- Modify watchdog to wakeup after 60 seconds, or wakeup if - there is work to do. -- Modify watchdog stop routine to "ping" watchdog so that it - stops immediately rather than after sleep time. -- Fix btape to use new dcr blocks rather than its own. -- Fix butil.c to correctly handle Volume names for the - utility routines (broke when updating to dcrs). -11-19Sep04 (vacation) -- Implement multiple Storage specifications in the Job resource - (AND) each containing multiple specifications (OR). Not yet functional. - Note, this needs more work as most things now use - job->storage[0]->first() rather than looping through devices. -- Implement "Multiple connections = yes/no" in Catalog record for - allowing multiple simultaneous connections to the database. -- Add new mac.c (Migrate, Archive, Copy) to dird -- not yet implemented. -- Implement a new POOL_MEM class that automatically allocates - and deallocates a pool buffer. -- Overload a number of utility routines to permit using both - POOLMEM and POOL_MEM. -- Start converting to using POOL_MEM. -- There were a number of Bacula console ACL checks missing in - ua_run.c. It allowed users to run jobs they really should not. -- Correct a number of dates on the Copyright. -- Overload pm_strcpy() and pm_strcat() to handle new POOL_MEM - class. -- Overload bash/unbash_spaces to handle new POOL_MEM class. -- Make a *MASSIVE* pass through the Storage daemon eliminating - all use of jcr->VolumeName and jcr->VolCatInfo in favor of - dcr->... -- Eliminate all all redundant arguments from calling sequences - in SD. This poses a number of problems due to the old way blocks - and records were allocated and released all the time. They are - now contained in the dcr. The problem is that old habits die hard - and there are still places where everything is not right. -- Implement "Block positioning = yes/no" in Device resource in SD. - -Changes to 1.35.3: -09Sep04 -- Add "Multiple Connections = yes/no" in catalog record. Only - the variable is implemented, no code yet. -- Close *all* FD unless debug on. -08Sep04 -- Add first cut of UTF-8 support to conio. It "seems" to be working - pretty well. Moving by words will definitely not work though. -- Improve detection and setting of gateway in the - network_start script. -07Sep04 -- Modify scan code so that in most places scanning will - continue across the end of a line. -05Sep04 -- Begin major phase of 1.35 documentation. -- All outstanding bugs are fixed. -- Implement changes and improvements to rescue scripts as - proposed by Gaurav. -05Sep04 -- Add correction to Phil's previous patch. -- Send all queued messages in SD and FD prior to closing down - the job. -- Send queued messages in Jobs before terminating the job - so that the messages print before the job report. -- Add a destructor so that the Console ACLs are properly - freed. -04Sep04 -- Implement isolinux boot disk. -- Integrate Phil Stracchino's code (thanks for Matt's help). - It permits lists and ranges of jobids on the delete as in: - delete job jobid=1,3,5,11-16 -03Sep04 -- Apply Mike Acar's suggestion when looking for the next volume - to check purged volumes for recycling before doing a purge. -- Make some improvements to CDROM disk. -- Take another crack at ignoring drive open() errors during - polling. -02Sep04 -- Add eliminate orphaned job records; eliminate admin records, - and eliminate restore records to dbcheck. -- replace sprintf by bsnprintf() in dbcheck. -- Added scan target to makefile in rescue cd to print scsi - devices. -- Added argument to berrno::strerror() to pass errno. -- Cleaned up a few more old strerror() calls and eliminated a - few of the now unnecessary set_errno() calls. -- Fixed a bug in the polling code that prevented more than 100 - label reads (insanity check disabled if polling). -- Ignore bad return from open_device() if polling. -- Short circuit code if fatal error return from read_label() in - mount.c -01Sep04 -- Add index file to JobId field of File records for PostgreSQL. -- Correct several bugs in the job queue scheduler concerning - rescheduled jobs: 1. The SD status was not cleared causing a - wrong status to be displayed by Dir after rescheduling. 2. All - rescheduled jobs became zombies because the jcr use_count was - not decremented properly. -- Make the Catalog resource required in Client records. -- Order the listing of where a file is (item 2 on the restore - menu) by StartTime. -- Clarify when a filename only and a full path + filename must - be entered in items 2 and 8 of the restore menu. -- Fix logic error in resolution of names on IPv4 systems. - -Changes to 1.35.2 released 01Sep04: -30Aug04 -- Inhibit printing of FileSet for a restore as it is misleading. -- Cleaned up a number of minor scripting problems with the CDROM - creation. -- Fixed a race condition causing a Director crash on termination, - if a large number of SIGHUPs were sent during a multiple concurrent - set of backups. -28Aug04 -- Completed integration of Rescue CD scripts with Bacula source. -28Aug04 -- Added Ignore FileSet Changes = yes -- Added more error checking to the spooling code. -24Aug04 -- Applied a patch from Peter Eriksson that removes a dynamic stack - allocation (replaced by alloca) and fixes some const problems. -- Fixed a free() of a static variable in the new IP code bnet.c -- Got the new Bacula Rescue CDROM booting. -- Replaced a dynamic template by a simple store when using the - native C compiler. -- Reworked some of the block.c error handling. -- Changed a Dmsgx(000, to Dmsgx(100 in dev.c that was dumping - debug output on a user. -- Integrated patch from 1.34.6 block.c to 1.35 -17Aug04 -- Fix conio.c problem on Solaris. -- Add debug code to lock_jcr_chain(). -- Lock jcr chain around less code. -- Implement call by reference for Mmsg() and pm_strxxx() to - simplify calls. -- New IP address specification is used as follows: - [sdaddresses|diraddresses|fdaddresses] = { [[ip|ipv4|ipv6] = { - [[addr|port] = [^ ]+[\n;]+] }] } - - so it could look for example like this: - SDaddresses = { ip = { - addr = 1.2.3.4; port = 1205; } - ipv4 = { - addr = 1.2.3.4; port = http; } - ipv6 = { - addr = 1.2.3.4; - port = 1205; - } - ip = { - addr = 1.2.3.4 - port = 1205 - } - ip = { - addr = 1.2.3.4 - } - ip = { - addr = 2001:220:222::2 - } - ip = { - addr = bluedot.thun.net - } - } - as a consequence, you can now specify multiple IP addresses and - ports to be used. In the case of a server, it will listen on - all those that you specify. In the case of connecting to the server, - Bacula will attempt connecting to one at a time until it succeeds. - And, in a few other special cases, Bacula will use only the first - address specified. - - The default port numbers are still the same and the services and hosts - are also resolved by name. So now you could use the real names for the - port numbers. - -Changes to 1.35.1: -14Aug04 -- Print error message if Alert Command fails in bpipe_open(). -- Doc Alert command. -- Eliminate unnecessary class in findlib/attribs.c -- Add necessary empty files to new tray-monitor directory. -13Aug04 -- Implement Class with template in findlib/attribs.c to do casting - of uint64_t into stat packet types to avoid compiler warnings. - Thanks to Meno for this idea. -- Make some modifications to satisfy VC++. -- Apply Martin Simmons' second patch to compat.cpp to fix the line - I previously missed. -- Apply Meno's fix to bnet that corrects use of ipaddr after free_addresses, - back out my kludges, and it works. -- Modified configure.in to by default add -Wall. -12Aug04 -- Found some problems with printing IP addresses -- will notify Meno. -- Added printing Pool to Job report. -- Fixed several places where dlists were not being released - (term_job_server, ...) -- Started implementing New() for dlists. Spent a lot of time, - but could not get it to work. -- Fixed a mutex deadlock between the job queue scheduler and the - watchdog. -- Made add_address() static. -- Added bsnprintf to address_conf.c -10Aug04 -- Apply Marin Simmons patch to inet_aton() in compat. -06Aug04 -- Build on Win32 -- required a few changes because of new IP code. -- Implement program reader code in Dir and FD -- not tested, and - a few corrections for writer code are needed in FD. -- Rework SQL for pruning. Add Admin pruning. Prune failed - jobs in Verify and Restore. -- Don't put commas in listing produced in restore so that users - can cut and past JobIds without having commas in the way. -- Change size_t to socklen_t in filed.c -- reindent a bit. -- Remove addr_list->size from buf size definition in bnet.c -- Create a Developer's document. -- Add prompt for Update volume from pool and update all - Volumes from pool. -05Aug04 -- Implement user friendly time duration input editing. -- Add buf len argument to edit_utime(). -- Added eliminate orphaned Client records to dbcheck. -04Aug04 -- Implement Alert Command in SD Device conf. -- Fix updating a Volume from the pool record -- it never changed - anything. -- Implement updating all Volumes from pool record. -- Add patch by Denis Shaposhnikov that fixes excludes of directories - in new style FileSets. -03Aug04 -- Merge Meno's IPv6-1 code. -- Update License to terminate rights of anyone suing a GPL licensor. -- Add Pruning doc sent by Bryce Denney -- Correct inconsistencies in restore command doc pointed out by user. -- Don't edit commas in SQL intergers if they are not stricly integer. -30Jul04 -- Update all pools in all DBs when starting the Director. -28Jul04 -- Implement final cut of berrno and update Win32 code. -- Update copyright to include a termination clause. Add copyright to - binaries. -- Implement .backups client=xxx for Nicolas. -27Jul04 -- Make first cut at implementing berrno class to handle Unix, Win32 - and bpipe errors. Bpipe still needs to be implemented. - This fixes (not yet tested) the Win32 errno problems in the compat lib. -- Fix btape compile problem reported by Martin Simmons -- thanks. -- Add ./configure detection of sys/tape.h -26Jul04 -- Apply two fixes to recent changes to dev.c submitted by - Martin Simmons. -24Jul04 -- Add checks in btape for correct size of off_t, and correct editing - of 32 and 64 bit values. -- Move supported OS/hardware into a chapter by itself. -- Fix bscan, which did not handle walking dcr list. -- Remove old attach_jcr_to_device() code. -- Fix config from Andy Wettstein's patch to use bitypes.h and detect - uint32_t, ... definitions. -- Fix a few compiler warnings because of casting pointers to int and - vise versa. -- Do some minor cosmetics to query.sql. nothing changed. -- Don't call stop_thread_timer() in backup.c if timer not started. -- Fix bug with out of order JobIds on restore. -- Make watchdog examine queues once every 10 seconds instead of once - a second. -22Jul04 -- Add more bools to dev.c -- Fix walking attached DCRs in bscan.c -21Jul04 -- Doc updates -- Start work on rescue files. Integrated RAID changes. -- Print a message when query.sql moved to query.sql.old during install. -- Move setting of FreeBSD chflags() to after utime() to avoid error - messages is immutable bit is set. -18Jul04 -- Turn off heartbeat in FD when -s is given so that we can - debug without a flood of signals. -- Close and reopen the device during an append test in - btape. This better tests appending as if Bacula stops/restarts. -- Remove old attach/detach_jcr_to_device() code -- Add new attached_dcrs code. -- Remove unnecessary subroutine for bsnprintf. -- Replace sprintf() by home-grown code in edit_uint64 ... -- Begin implementation of dev->attached_dcrs. -17Jul04 -- Remove scripts/fd.in from configure.in -- Add printing of JobId when a Job is started from the console. -16Jul04 -- Remove fd/fd.in from scripts directory. -- Fix a number of bugs in dbcheck concerning the -c option - (i.e. with a config file). -- Made RH start scripts use -u and -g options. -- Many more DCR changes. -- Add job message indicating that the job has been rescheduled - and when. -- Fix job end time so that it is always updated. Previously it - was not updated when a job was rescheduled. -- Correct SQL for restoring job by path/name. It could sometimes - pickup the wrong JobId -- submitted by a user. -- Add a number of "%s" in editing database errors -- security issue. -- Ensure that the NumVols is incremented and decremented in the - pool record when Volumes are created or deleted. -- Cleanup error handling when labeling a tape. If vol was read-only, - the device would still be marked as having found a label. -09Jul04 -- Put ftCreationTime into st_ctime of stat packet. Hopefully - this will fix the problem of noticing files have been moved - into the save path after a Full save. -- Fix bug in "status dir" where not all entries are listed. -- Cleanup some improper result printing in configure. -- Optimize a couple of insertions in binary_insert of dlists. - -Release 1.35.0 08 July 2004: -08Jul04 -- Apply Christopher Hull's const patch for PostgreSQL -- Add code to block.c to detect if block header is destroyed. -- Add debug code for memset checking for zeroing 1900-3000 bytes - which is what happened to the block headers. -- If block header is destroyed, read the next block. Probably - should return with new status similar to the SHORT block - return. -- Add more debug info to bls for bad blocks. -- More implementation of DCRs. -07Jul04 -- Eliminate argument passing in SD by using dcr. -- More int->bool conversions. -- Add file:block to a number of read/write error messages. -04Jul04 -- More int -> bool conversions. -- Modify the SD piece by piece to use DCRs everywhere. -- Cleanup some printout for query command. -- Fix typo in cats/mysql.c -- Work on cleaning up tape driver a bit (use bools, better calling - sequences). -- Attempt to fix multi-Volume disk backup. Needs to be tested. -01Jul04 -- Add Regular expressions to FileSet options. -- Correct configure.in to use ${MAKE} for doing the dependencies. -- Make MySQL and PostgreSQL try for 30 seconds to connect before - giving up. -- Correct Gnome 1.4 Makefile to build without cats library. -- Correct a crash reported (with patch) by Jonathan Soong - when attempting to backup an ACL on a symlinked file. -27Jun04 -- Fixed an off by one bug in the new resources pointer code. - res_head array was one too small. -- Added Errors to last_job list. This allows detecting jobs - that terminated in a warning. -- Implement setting the Win32 icon to yellow instead of red - when the job terminated OK but with warnings. -- Fix the Win32 makefile and VC project file. The links were - not including the Win32 dlls. -- Delete some old Win32 code that was turned off. -- Eliminate a few more Win32 compiler warnings. -- Reduce the output produced by NIS (Win32 install builder). -- Simplify some of the #ifdefing in compat.h -26Jun04 -- Rewrite spooling error handling when I/O error occurs. It is - a bit tricky, requiring to truncate the file so that a despooling - will work correctly. Needs to be tested. -- Make better subroutines for setting up for a new job. -- Start putting all DB ids on #defines (going to 64 bits). -- Fix gnome-console Makefile.in to work again. -- All "level=Incremental/Decremental" to the estimate command. This - required some re-arrangement of subroutines at a fairly low level. -25Jun04 -- Apply Piotr Jaworski's patch (patch-r-status.diff) to update the - catalog status when a backup job starts running. -24Jun04 -- Add (char*) cast to readline call in console.c for old readlines. -- Copy Makefile.in from gnome2-console to gnome-console (to eliminate - need for cats library). -- Modify spooling code to handle write error (e.g. spooling disk full) - more gracefully. Previously despooling would fail. -22Jun04 -- Reduce casting in smartall.c a bit and add counters for - bytes, max_bytes, buffers and max_buffers. -- Fixed reload algorithm to stack both job end callback and the - table id. -- Fixed the orphaned buffer after reload (job_end_push had to be - destroyed. -- Destroy cond var (jcr->term_wait) only if initialized. -21Jun04 -- Sort the Scheduled Jobs list by start-time, priority. -- Implement resources on a pointer. -- Fix Gnome console crash on up/down arrow with no history. -19Jun04 -- Finish first cut of SIGHUP code. To make really work need res - on a single pointer rather than in fixed memory. -- Fix a number of places in query.sql where multiple JobIds are - printed (due to JobMedia records). -- Add new query: List jobs on Volume given Volume name. -- Correct socket close on Win32 in bnet.c (in addition to compat.cpp). - Caused fd leak in Win32 for each connection. -- Remove vol labeled test in askdir update_volume_info so that non-labeled - Volume in catalog can be marked in error. -- Close socket in SD when connection rejected. Caused fd leaks. -- Initialize job_start_wait cond variable after every new_jcr() otherwise - NetBSD gets error in library when trying to delete it without being inited. -- Fix typo (9 instead of 0) return status in write_new_volume_label. -- Fix mount.c to call routine that correctly marks a volume in error. -- Move code to rewrite volume label to subroutine -- a bit cleaner. -18Jun04 -- Finish implementation and testing of new restore tree code. -- Implement feedback while tree is loading. -- Eliminate printing INFO message in UpdateDB (cats) -- it generates - "false" error messages. -- Eliminate some GTK error messages when running the Gnome2 console. -16Jun04 -- Begin restructuring tree.c for inclusion of the binary_insert() - routine. -- Apply Peter Eriksson's lib file order changes in linking for IRIX. -- Abort configure if Internal is selected as the database. -- Add testimonials to the Web page -- Add the bugs list to the Web page "lists". -- Clarify the English in SuSE and Slackware when SD not running. -15Jun04 -- Applied another extern "C" patch from Peter Eriksson. -- Fixed a bunch of VC warning messages. -- Applied the patches sent by Andreas Jellinghaus: build Gnome and - wx-console in client-only build if configured; add ./configure option - to permit setting of sbin modes -- default is 0745 as before; remove - cats library from Gnome console build; remove old version from Gnome - About box. Thanks Andreas. -14Jun04 -- Applied Peter Eriksson's const changes to the source code. Thanks Peter. -- Implemented a binary_insert() method for dlists -- intended to be used - in the restore tree routines. -- Turned on my bsscanf() code, which replaces sscanf() by my routines, which - are a subset of sscanf() used by Bacula, but which have known 32/64 bit - behavior rather than vendor dependent !@#$%*. - -2004-07-30 Version 1.34.6 28Jul04 Release -28Jul04 -- Fix a restore bug where the backups could be - applied out of proper order possibly restoring an old version - of a modified file. -- Fix for restore selection of a file by name, where it was - possible to select a file from the wrong Client. -- Fix segmentation fault during backup of a symbolic link - with ACLs turned on. -- Fix a minor compile error in wx-console. -- Fix a bug in despooling when the spooling disk partition becomes - totally filed or gets I/O errors. -- Fix a memory leak in PostgreSQL, and make Bacula retry 5 times if - connecting to the DB fails. -- Retry 5 times if connect to MySQL failes. -- Fix linking the gnome-console - -2004-06-22 Version 1.34.5 21Jun04 Release -21Jun04 -- Fixed Gnome crash on up/down arrow with no history. -- Fixed btape "fill" crash with multiple tape option. -19Jun04 -- Fix a number of places in query.sql where multiple JobIds are - printed (due to JobMedia records). -- Add new query: List jobs on Volume given Volume name. -- Correct socket close on Win32 in bnet.c (in addition to compat.cpp). - Caused fd leak in Win32 for each connection. -- Remove vol labeled test in askdir update_volume_info so that non-labeled - Volume in catalog can be marked in error. -- Close socket in SD when connection rejected. Caused fd leaks. -- Initialize job_start_wait cond variable after every new_jcr() otherwise - NetBSD gets error in library when trying to delete it without being inited. -- Fix typo (9 instead of 0) return status in write_new_volume_label. -- Fix mount.c to call routine that correctly marks a volume in error. -18Jun04 -- Eliminate printing INFO message in UpdateDB (cats) -- it generates - "false" error messages. -- Eliminate some GTK error messages when running the Gnome2 console. -16Jun04 -- Apply Peter Eriksson's lib file order changes in linking for IRIX. -- Abort configure if Internal is selected as the database. -- Add testimonials to the Web page -- Add the bugs list to the Web page "lists". -- Clarify the English in SuSE and Slackware when SD not running. -15Jun04 -- Applied the patches sent by Andreas Jellinghaus: build Gnome and - wx-console in client-only build if configured; add ./configure option - to permit setting of sbin modes -- default is 0745 as before; remove - cats library from Gnome console build; remove old version from Gnome - About box. Thanks Andreas. - -2004-06-09 Version 1.34.3 09Jun04 Release -12Jun04 -- Enhance regression scripts. -- Apply Tim Oberfoell's ACL patch. -11Jun04 -- Implement bsscanf() because sscanf on FreeBSD amd64 stores - in 64 bit words for %ld. Turned on for the moment only for - FreeBSD amd64. -- Fix all conversions of ptr to int to use (long unsigned) this - works on i386 and amd64. -- Add mtimeonly and keepatime to new Options list -- omitted before. -- Add a bit more authentication debug code. -- Start variable name/overload cleanup in SD -- Fix sscanf() in askdir.c scanning into bool to use local int. -- Make max_spool_size int to allow proper arithmetic. -- Remove trailing junk on sscanf() of "Hello Start Job" in SD. -- Make ask_sysop_to_mount_volume() always ask sysop. -- In SD mount.c, if get I/O error or read label error on non-removable - Volume, mark the volume in error and retry. -- In SD mount.c, if non-removable volume, never ask sysop to mount. We - ask sysop if there are no appendable Volumes though. -- The above 3 items fix the looping error Bacula would get if the - Volume was in the catalog but didn't exist -- or was zero bytes - long. -10Jun04 -- Implement | and < in FD for new FileSet files. -- Implement simplistic attribute spooling statistics in status. -- Make storage=xxx on restore override the restore default. -- Fix an uninitialized stack variable in append.c that caused data - corruption on amd64 machines and *could* cause the same on other - machines. -- Fix a seg fault in automatic tape labeling. -- Eliminate a PoolId=nn when zeroing the InChanger flag for a Volume. -- Add a bit more debug info to bls.c -- Clear InChanger flag during "update barcodes" if no VolName present, - i.e. no Volume in Changer. -- An update pulled in Christopher Hull's fixes to the client program - execution on Win32 to search the path and use COMSPEC. New rules - apply! -- Fix UpdateDB to complain if mum_rows < 1 rather than != 1. - - -2004-06-09 Version 1.34.3 09Jun04 Release -09Jun04 -- Add missing FT codes in new FileSet callback, which caused error - return on unchanged directories. -08Jun04 -- Fix "update volumes" move from one pool to another. -- Change default search location for PostgreSQL -- thanks - to Hans-Ulrich Schaefer. -06Jun04 -- Zero Slot if not autochanger in stored/mount.c -- As a last ditch effort to mount the next tape in mount.c, zero slot - and ask sysop. -- Win32 status was picking up the first status in the list job terminated - jobs instead of the last. -05Jun04 -- Add additional fields to llist pools -- Correct some minor label scan problems with update slots -- Ensure correct Pool is used with tape cleaning prefixes. -- Eliminate false error message in update slots (slots taken as - Storage device). -02Jun04 -- Print "Unimplemented" message if user does reload command in Console. -- Add DISTINCT to Volumes for restore in query message (user supplied fix). -- Fix crash in btape during read after fill -- important bug. -- Turn config parse ABORTs into ERROR_TERM in Storage daemon. -- Add dbcheck enhancements submitted by Mano Abels and - Jose Luis Tallon. -- Update autoconf files to latest version. -01Jun04 -- Modify jobq scheduler to require exclusive use of the Storage device - before starting it. -31May04 -- Eliminate a few compiler warnings on Win32 -- Change Win32 to use btimers instead of timers. -- Remove two returns in void subroutines in wxbconfigpanel.cpp -30May04 -- Apply Christopher Hull's check for error return from open_bpipe() - in filed/job.c -- Be sure to clear *all* bits in hourly when an hour is given. -- Apply a user fix to query.sql -- Check status code returned from _open_osfhandle in compat -28May04 -- Apply Peter Eriksson's bug fixes. -- Add Alpha (tru64) submitted by Scott Bailey. -- Update manual -- Add new Autochanger to list supported -- Cleanup src dir better after glade trashes it with junk -- Make another attempt to get hourly, daily, ... keywords working - intuitively and correctly. -- Prevent seg fault when no job name specified on "status job" -- Rename timers.h/.c in lib to prevent conflict on some machines -- Trap NULL DCR in block.c -- Add additional info to failed btape test pointing user to manual. -- Undefine DCR, which is defined on some stupid systems. -- Fix stored/dircmd.c not to quote Volume name on label query so that - "update slots scan" works right (the quotes confused it). -- Fix autochanger.c not to attempt to unload a slot if the prior loaded - request returned -1. -01May04 -- In testing for Mike Acar's problem. I *finally* found and nailed - the mount command that did not release a waiting job. The return - of a stolen lock forgot to broadcast. -- In examining Mike Acar's problems, it appears that the Bacula - block size is not always set to a multiple of 1024. I've modified - block.c to do so. -30Apr04 -- Add Excludes to new FileSet handling. -- Fix bsmtp.c to correspond to RFC-2821 by removing extra spaces. -29Apr04 -- Implement new style FileSets in both the Director and in the - File daemon. No filters yet. Both old and new styles work. -28Apr04 -- Apply the fixes Chris Hanson sent for mtx-changer and for detecting - PostgreSQL on debian. -- Rework File Options document -- Re-begin work on File Options. -- Add define for nl_langinfo in configure -- Add additional tape drives sent by Jesse. -27Apr04 -- Modify syslog in win32/compat to throw up a MessageBox(). -- Inhibit sending daemon messages to stdout if Win32 is set. -- PostgreSQL performance updates from Volker Goetz -- DB script updates suggested by Dan -- Doc updates - - -2004-04-26 Version 1.34.2 24Apr04 Release -24Apr04 -- Get production build on Win32 of wx-console working -- mostly a problem - of getting the paths right and installing and building wxWidgets. -23Apr04 -- Make SD utility programs accept device name as well as archive device - on command line. -- Update docs -22Apr04 -- Fix one off bug in StartBlock in bscan -- thanks to Gregory Brauer for - reporting this. -- Remove old debug code from Win32 FD. - -2004-04-20 Version 1.34.1 20Apr04 Release -18Apr04 -- Found and fixed SD crash during restore. -- Added FreeBSD Bare Metal Recovery documentation by Alex Torres - Molina and others. -- Added nice graphics produced by Aristedes Maniatis giving an - overall view of Bacula. -- Changed textdomain to be "bacula" in all progs. -- Fixed a major race condition in the job scheduler when multiple - simultaneous jobs is enabled. This occurred only when on job had - blocked another because of resource usage. This caused a deadlock - and CPU usage. Reported by Michel Meyers. -- Changed the backup report to indicate "Backup OK -- with warnings - if any warning messages were generated. -- Change output of restore report to indicate: - "Restore OK -- warning file count mismatch" -- Make backup report say "Backup OK with warnings" if either FD or SD - report any non-fatal errors. -- Modify bscan to print some elementary statistics (#Jobs, #Files, ...) - added to catalog. -16Apr04 -- Modify bscan to print some elementary statistics (#Jobs, #Files, ...) - added to catalog. -15Apr04 -- Added --enable-wx-console and updated Makefile.in -- Fix mtx-changer so that the calling sequence is compatible - with the previous version (the new one required arguments that - were not necessarily used). -- Document how to use stunnel with Bacula. -13Apr04 -- Fix crash in query command. -- Remove schedule from the default restore job. -- Fix data spooler to use min/max tape blocking factors. -- Automatically turn of conio if library not found instead of bombing. -- Cleaned up a lot of copyright dates. -- Try to keep spool statistics from going negative. -- Integrated wx-console code from Nicolas Boichat. -09Apr04 -- Added new Pools chapter. Doc about using two disks. -- Attempt to keep the spool file statistics size from going - negative. --8Apr04 -- Fix the Director's Scheduled Jobs: list to have a === - termination. -- Fixed ./configure to disable readline rather than stop if - readline.h is not found -- Fixed a typo in the SQLite database update script as reported - by Robert J. Clark - thanks. -07Apr04 -- Removed src/win32/pthreads and src/win32/zlib from the source - tree. -- Created a new depkgs-win32 that has the pthreads and zlib source - code. -- Removed the JobDefs from the default Restore job as it has a - schedule. Thanks to Matt Howard for this. - - -2004-04-06 Version 1.34.0 06Apr04 Release -06Apr04 -- Turn off SIGQUIT in console. -05Apr04 -- A good number of document updates. -- Fixed the order which multiple files are accepted for - inclusion in the restore tree due to the fact that PostgreSQL - returns files in a different order from their insertion. -02Apr04 -- Fix autochanger test in btape. It used old editing routines. -- Fix run_program to return 0 if program runs and no output. -- Add more debug to run_program. -- Make signal debug print signal string. -01Apr04 -- Build console with client-only build. -- Add better error messages to some of the db_xxx routines. -- Apply Christopher Hull's patches for proper Win32 shutdown. -- Eliminate True and False in favor of true and false. -- Put correct thread id in jcr once the correct thread is running. -- Zap head and tail pointers in dlist when everything is removed. -- Rework sm_dump() so that it won't overrun a buffer when editing - and error message. -- Fix watchdog to properly remove entries while walking the - dlist chain. -- Fix termination of last_jobs list by removing broken code. -31Mar04 -- Update dbcheck to fix Paths without a trailing slash and Filenames - with a trailing slash. -30Mar04 -- Add -p option to all SD programs including bacula-sd. It causes - Bacula to proceed or forge on in case of I/O errors. It is unlikely - this will help, and it is strongly recommended against running - the daemon with this option in production. -- Tweaked the Makefile not to create the gnome directories except - when doing a gnome install. -28Mar04 -- Implement Qmsg() queuing of messages to prevent recursion especially - for bnet.c where recursion is fatal. -- Add detection of ncurses if the termcap lib is not found. -- Tweak winabout -- start cleanup. -- Fix dlist again, when list is destroyed, be sure to null head and - tail pointers. -27Mar04 -- Make the default for restore to have nothing marked. -- The "all" keyword on the restore command marks everything by - default. -- The "done" keyword on the restore command prevents user interaction - with the tree routines -- used mainly for scripting (regression ...). -- Correct a bug in the last_sibling code. -- Add alphabetic sorting of siblings so the "dir" and "ls" commands - during restore show files in alphabetic order. -25Mar04 -- Based on Mike Acar's suggestions rework tree insert routines. Improve - performance by using a last_sibling link for inserts. -24Mar04 -- Apply corrected SQL to sql_get.c supplied by Dan Langille. -- Implement "delete job jobid=xxx jobid=yyy ..." -- Implement "purge volume=xxx volume=yyy ..." -- Fix buffer overrun in query string substitution. -22Mar04 -- Fix bad format %s instead of %d for editing new slot in update volume. - Reported by Vadim Zotov. -- Better error diagnostics in ./configure for detecting termcap library. -20Mar04 -- Restore old sql.c split_path and file name since it seems to have - broken the Verify stuff. -19Mar04 -- Hunt down missing free_locked_jcr() in SD that caused zombies. -- Modify status outputs to be more consistent for zombie checking. -- Add tests to regression script for zombie jobs. -- Set EIO in dev_errno for all error returns when bad data found. This - fixes ERR=Success messages. -- Make error messages all contain ERROR for easy regression testing. -- Add sanity check in DIR for VolFiles becoming smaller. -18Mar04 -- Second cut GTK+ restore GUI. Ready for testing but much more to do. -- Phil reported an sql path length=0 message. This broke saves of - / -- fixed in scan.c -- Fixed seg fault in btape "test" due to missing allocation of dcr. -- Tweaked some btape messages. -- Sort Volume names in Job report according to the order they were - written -- user request. -17Mar04 -- First cut GTK+ restore GUI. -- Applied bsmtp patch supplied by a user. Thanks. -- Made a new split_path_and_filename() subroutine -- in lib/scan.c -15Mar04 -- Fix "typos" in RedHat install-autostart Makefile.in -13Mar04 -- Added two tar files that Phil sent for adding slackware support. - Thanks Phil and Matt Howard. -- Fix relabel command -- || should have been &&. -- Correct once more the scheduling algorithm -- this time it should - be much better. -12Mar04 -- Implement simple spool statistics printed by "status sd". -- Cleanup/add spool error messages. -- On multiple ctl-c, exit from console quickly. -- Implement code to select a different Volume in the SD if the - current Volume is busy -- requested by Patrick Cole. -- Change postgreSQL make tables to use bigint instead of integer - for StartBlock and EndBlock because - there is no unsigned integer in postgreSQL and these fields use 32 bits. -- Implement multiple drive autochanger support -- prompted by email of - Patrick Cole. -11Mar04 -- Update version and date in Win32 build. -- Fix bug in run_conf with month range zapping wday and wom. -- Correct editing of port for PQsetdbLogin in postgresql.c as reported - by J. Conroy, and do a second try. -10Mar04 -- Integrate Phil's Makefile patch. -- Add SpoolDirectory to SD Device resource. -- Add MaximumJobSpoolSize to SD Device resource. -- Add MaximumSpoolSize to SD Device resource. -- Implement the above. -- Make despooling lock the device so only it writes - to the device during despooling. -09Mar04 -- Data spooling now passes the regression tests. -- Added "Files Expected" to the restore job report. -- Implemented SpoolData = yes/no in the Job resource -- Implemented SpoolData = yes/no in the Run overrides. -- Note, you must have a 1.33.4-09Mar05 SD or later with the Director since - the DIR->SD protocol has changed to support data spooling. -- Remove the confusing "Which DBMS do you want to use (please select only one):" - messages from ./configure. -- Fix broken Jmsg with missing argument in find_one.c -08Mar04 -- Second cut data spooling code. -- Fix missing piece of yesterday's patch. -07Mar04 -- Integrate patches supplied by Jason Conroy that fix Slot numbers - getting lost. -06Mar04 -- This version contains a *major* addition to the SD structures. - Many variables have been moved out of the JCR into a new DCR - (Device Context Record). This required quite a few changes, and - introduced a bit of instability. In the end, after a few more - rounds of changes, the DCR will replace virtually all arguments - to the low level SD read/write routines. This change permits - (with a bit more code) the SD to write to multiple devices at - the same time for a single Job. It also facilitates adding the - data spooling code. -- Added a patch that fixed the port specification for postgresql. -- Fixed findlib/find_one.c so that it will complain about backing - up a hard linked file twice, which makes a restore impossible. -- Tighten up permissions on pid file. -- Attempt to avoid warnings when casting 64 bit pointers to an - integer. -- Added skeleton code for data spooling. -- Make sure spooled attributes are discarded on error. -03Mar04 -- Updated getdiskinfo in rescue/linux to handle the fact that the - sfdisk -s option now includes info on partitions. Also, before - creating the diskinfo files, clean out the old ones. -02Mar04 -- Add debug and error output to jobq.c -- Fix some minor errors in debug output of scheduler.c -- Add "trace on/off" command and modify trace code in message.c - to work off trace flag rather than #defines. -01Mar04 -- If console is found during install warn user (new name is bconsole). -- On install copy console.conf to bconsole.conf if it exists. -- Make RunAfterJob error non-fatal. -- Rework minor details in status output. -- Attempt to define all values for "consoles" in JCR to avoid - confusion. -28Feb04 -- Use net start bacula to start Bacula on WinXP/NT/2K - systems after installation. -- Change a few strcpy()s to bstrncpy()s in signal. -- Add "gui on/off" command to console to turn on gui mode, - which will adapt Bacula better to batch or gui programs. - Currently, it prevents commas from being inserted into - numbers in the list command. -- Tweak some of the Makefiles so that the install is done with - the right program (nothing really changed). -- Install logrotate in the "make autostart" of Bacula on RedHat. -- Implement SIGHUP while jobs are running. It *seems* to work but is - a bit fragile and still crashes if you push it. More work needed. -- Applied Phil's GNOME 1.4 patch. Very clean. Thanks Phil. -- Major updates to the native Win32 installer. -27Feb04 -- Restructure free of conf resources to handle job_end_push() - and SIGHUP. Lots of changes little substance. -26Feb04 -- Add mtimeonly=yes/no and keepatime=yes/no to Include list - 1.33 style. -- Allow no modifier in time and size specifications. -- Attempt to implement disk seeking. More work needed. -- Implement more in win32 installer and test it. -25Feb04 -- Implement kb, mb, and gb modifiers for size, which mean - 1,000 bytes, 1,000,000, ... bytes. -- Add Makefile to src/win32 to allow building the full - release -- it calls nmake where appropriate. -- Remove the rsi directory from win32 as suggested by Christopher -- Add Michel Meyers' nsi file to win32 and integrate it with - the build. -24Feb04 -- Add the frigging _O_BINARY to the right variable. Win32 works! -- Add debug code to state file. There is a problem with Win32 read - returning one byte less than it should. -- Implement a number of new functions for alist so that it has - equivalent functionality to dlist. It will be used for - job_end_push(). -- More work on state file. -- Added a popup message box on Windows if Bacula Aborts. -- Attempt to shutdown the FD server, but doesn't work on Windows. This - would have given a cleaner shutdown, no problem. -23Feb04 -- Update projects -- Attempt to fix state file on Win32 -- no luck. -- Add HPUX tweaks to configure.in -- Update quickstart and install.wml of doc. -- Eliminate extern int h_errno from bnet.c by including netdb.h -- Eliminate NumJobs from last_job structure so that FD and SD - correctly report what is in the state file. -22Feb04 -- Implement daemon state file, and save/restore last_jobs list. -- Fix time routines in win32 compat.cpp -- Fix a bug of not checking the bpipe_open() status in do_shell_expansion(). -21Feb04 -- Add Volker's bacula script to the SuSE directory and convert it - to bacula.in -- Make LockRes() and UnlockRes() use read/write locks and have - debug info to trace locking and unlocking. -- Begin work of implementing SIGHUP. It is now enabled for - the Director and works only if there are no jobs running, - in addition, if the new conf file is incorrect, it will - terminate Bacula. Much more work to be done. I've figured - out a scheme to implement it with running jobs without - adding individual semaphores or use counts. -- Sort "list jobs" by StartTime rather than JobId, which can - be random. -16Feb04 -- Add a lot of "const" to char * arguments to keep the native - Sun compiler happy. -- Added first cut of message queuing to prevent recursion in - low level routines. This code is not yet working. -- Spent a *huge* amount of time looking at the tape driver - code in the wake of several reports of tape labels getting - trashed. The code looks fine. -- Created a tape with an error (by writing a block at the - beginning of a tape that had valid data), and found that - Under Linux there is no way to read past an I/O error. - I tried mt; I tried my own program (btape); and I tried - using scsitape, which talks directly to the scsi driver. - This is *VERY BAD* news. -- I spent an *enormous* amount of time enhancing the btape - test program as well as making the fill command work with - both one and two tapes and the autochanger if configured. - The multiple tape fill test is now quite comprehensive. - It checks the last block on the first tape, the first block - on the second tape, and the last block (11) on the second - tape. -- Teaked the tape driver for several functions to use the - OS driver's notion of mt_file if there is an error. -13Feb04 -- Add DB update scripts retrieved by Scott to a new updatedb - directory at the top level. -- Add -p option to bcopy to allow ignoring errors on input. -- COALESCE(xx,0) does not work on PostgreSQL because the 0 is not a - correct time. Replaced by adding LastWritten IS NULL to the sort - line as was first suggested by JML. -12Feb04 -- Use COALESCE(LastWritten, 0) in sql_find.c to get NULLs to sort last. - See note above. -- Add write/read and positioning test to btape "test" program. -10Feb04 -- Fix bad printf of InChanger flag reported by Pascal Pederiva. -- Fix bad indexing off stack in authenticate.c reported by - Pascal Pederiva. -09Feb04 -- Add \n to hosts.access reject message. -- Implement security message class and make hosts.access message use - that class. -08Feb04 -- Fix check_memory bug in ua_query.c, which gives a bus error on Solaris. - This affected only the query command. -07Feb04 -- Added backup to cdwriter script to examples provided by Johan Decock. -- Fixed a bug where ls really did lsmark (just invert command table - entries). -- Fix bug where a soft linked file and a directory had the same name - by treating the soft link as a directory and putting the entries under - it. This fixes the bug reported by Alexander Mueller. -- Fix a deadlock situation in the new watchdog code where the - watchdog locks its semaphore, and attempts to lock the jcr_chain, - but another thread has locked the jcr_chain and wants to free a - watchdog, which tries to lock the watchdog semaphore -- deadlock! - Used read/write locks to solve the problem. -- Improved the error messages when I/O errors or buffer id errors - are detected, and prevent non-sense errors from being printed. -- Fix some incorrect messages in restore if no name is supplied - on the command line (e.g. pool= ). -- Add the third digit to the release version number. -04Feb04 -- Add -l option to bls that causes it to ignore tape label errors. -03Feb04 -- Correct problems with jobs scheduled at a later time by hand. - Missing unlock(), backward test on pthread_create status. -- Fix setip crash reported by Alan Brown. -- Create bacula.spec.in in SuSE directory from Scott. -- Fix missing unlock() in ua_status on access denial. -- Lots of little cleanups, improving jcr use_count debug printing. -- Add EMSG to mem_pool utilization statistics. -01Feb04 -- New bacula.spec.in file from Scott -- Add Scott's spec file to the platforms/suse directory -- Modify configure.in to make platforms/suse/bacula.spec -- Do not allow a resource name to be specified twice. - -2004-01-30 Version 1.33-30Jan04 Release -30Jan04 -- Apply Jess Guardiani's second fix to list autochanger volumes without - opening the drive (necessary on FreeBSD if no tape is in the drive). -- Added Postgresql configure search libraries recommended by Alan Brown. -29Jan04 -- Reworked the command line handler in restore to walk through the - arguments one at a time. This makes the file= entries work correctly. - Also reworked the code that takes the MediaType and finds a - storage device. -26Jan04 -- I've noticed that the backups of Rufus, my development machine, can be - "stuck" for about 12 hours, then suddenly they run. In running the - debugger, I see that it was stuck on the select() statement waiting - for the Hello. Why this happens I am not sure. I re-organized the code - a bit because it didn't seem to be as robust as it could, but I cannot - explain the problem. -- As a consequence of the above, I have implemented a new bsock timer that - can be started and stopped. This is based on Nic Bellamy's new watchdog - code. The timer is set with start_bsock_timer(bsock, timeout); If the - timeout expires, the bsock will be marked as timed_out and interrupted - with a pthread_kill() on the current thread. -- Added 5 minute bsock timers to all the opening Hello/authentication - exchanges between the various daemons. -24Jan04 -- New spec file from Scott. -- New patch file from Scott for create_sqlite_database -- Fix crash in run command if invalid pool specified on the command line - and then the user cancels the Pool prompt. -- Separate Console and ConsoleFont resources in gnome2 conf files. -- Remove possibly bad ASSERTs from bnet.c -- Remove open() of device in dircmd.c, which fails on FreeBSD with - an autoloader -- thanks to Jesse Guardiani for this fix. -20Jan04 -- Remove all "hostname -s" from configure except for RedHat. Use uname -n instead. -- Implement SetIP command. -- Implement Close On Poll in Device resource on SD. -- Implement Full, Inc, and Diff Pools. -- Implement Access control lists for Consoles. -18Jan04 -- Define default working_dir as /var/bacula/working. -- Implement setip console command to set new IP address for a Client. -17Jan04 -- Implement maximum network buffer size directives. -- Good first cut at access control lists for the console. -- Optimize restore to select only latest Differential backup after - the Full, and then all following Incremental backups. Previously - everything after Full was selected. -16Jan04 -- Organize kernstodo a bit (more to be done). -- Add client IP address to BSOCK structure. -- Use bit fields where appropriate in BSOCK structure. -- Pass UAContext to ua authenticate in Director, and make it - set the appropriate console (or NULL for none). -- Tweak restore "run" argument handling and add "files" keyword. -- Add device name or Volume name to some SD messages. -15Jan04 -- First cut multiple consoles. -14Jan04 -- Update kernstodo -- Add quit command to restore tree handler. -- Make restore tree handler remember if a hard link is present, and - in doing a mark, only get database entry if there is a hard link. - mark commands thus run at least 2 orders of magnitude faster. -- Add files=xxx field to run command submitted for restore. -- Add yes to restore run command if either yes or run is command line - argument. -- Make "yes" on command line argument skip prompt for modification of - run job. -- Add markdir and unmarkdir -- both affect only the directory in - question and do not do a recursive descent. -- Make tree command automatically mark all higher level directories to - be restored when a directory or a file is selected. Such directories - are indicated by preceding the name with a + to indicate that only - the directory entry is selected and not the whole directory tree. -- Modify a few tree commands to walk through all arguments rather than - just taking the first one. -13Jan04 -- Update copyright date on changed files. -- Make mark command in restore tree run *much* faster by accessing database only - if the file actually is hard linked -- determined at time tree it built by - keeping a has_link bit in the tree entry. -12Jan04 -- Modify findlib/makepath.c to create all parent directories with full permissions. - This should solve the access problems on restoring files on Win32 systems. -- Modify restore to report **** Restore Error **** if any error are found. - I.e. a file could not be created. -- Change a few errors into warnings -- e.g. if permissions could not be set, but - the file is actually restored. -11Jan04 -- Replace bsd_queue with dlist in lib/watchdog.c -- Add Date: header to bsmtp. Thanks to Meno Abels (abels) on SourceForge - for reporting this. -- Remove ap==NULL check in src/lib/var.c as suggested by Christoph Barbian - because ap (va_list) is a struct on the Alpha, so the code does not - compile. -10Jan04 -- Implement first cut of polling for a Volume. New Device directive - "Volume Poll Interval = xxx" where xxx is a time specification - (e.g. 5min). Default is off. -- Call pthread_cancel on SD msgchan only if the threadid is non-zero. -07Jan04 -- Change RH autostart scripts to start in Dan's order. - -2004-01-06 Version 1.33-06Jan04 Release -06Jan04 -- Correct calculation of week of month in scheduler and in scheduled - listing. -04Jan04 -- Fix cancel of job waiting on mount to be a bit cleaner. -03Jan04 -- Fix seg fault -- don't close db in db_open_database(). It must explicitly - be called. -- Doc updates -- Allow purge of a single JobId from a Volume (code untested) -- Implement fix to keep SD from looping complaining about the wrong volume - at the end of a tape -- reported by Phil, and fix confirmed by him. I cannot - seem to reproduce the bug here. -- Clean up a few more strcpy()s. -01Jan04 -- Fix configure.in FD User print per Lars. -- Doc update. -- New bacula.spec.in from Scott. Nice! -- Make RunAfterJob non-fatal if it errs since the Job has really - already completed the save. -- Replace sprintf with bsnprintf in message.c -31Dec03 -- Note, this change affects only the Win32 FD. -- Fixed Win32 FD crash due to missing argument in status command. It - always crashed if there was a job that had previously run. Thanks to - Christopher Hull for finding and diagnosing this problem. -29Dec03 -- Fix SELECT as indicated by Dan in sql_get.c for returning Volume names. -- Fix last_jobs list crash for utility programs (btape, ...). -- Correct editing of FileSet name into SQL command. -- Allow calling watchdog stop without initialization for utility programs. -- Enhance btape test by attempting to forward space past the end of the tape. -- Detect CAP_FASTFSF in btape test as possible reason for failure. -- Attempt to prevent infinite loops in fsf_dev() if device not properly - configured. -- Attempt to get correct file number on tape after backspacing at EOM. The - correction should resolve differences in OS tape driver implementations. -- Add ctl-c detection to bconsole. When reading from tty, interrupts any - output from Bacula, when reading from a file, it terminates the reading - and returns possibly exiting if it is a batch job. -- Create devel_bacula.in script and make it configure itself. Very similar - to the new bacula.in. -- Modify bacula.in to have separate file locations for each daemon -- makes - it easier to make a new devel_bacula.in when there are changes. -- Remove old config files when rebuilding configure to avoid error msgs. -- Fix btape "test" to respect TWO EOF. -- Fix fsf_dev() to use system notion of file if it is valid after bsf_dev(). -- Move btraceback.gdb to scripts directory on installl. -- Add new mandrake bacula.spec.in -28Dec03 -- Find commonset of c_iflags that work with FreeBSD tcsetattr on terminals. -- Remove comments from string concatenation -- doesn't work on FreeBSD - compiler. -- Moderately improve bpipe_close() errors. Must rethink status return. -- Eliminate some Emsgs in favor of Jmsgs. -27Dec03 -- Add optional Pool keyword on restore command line. If specified, the pool - used will be restricted to the specified pool. -- "Finish" implementation of JobDefs. -- Fix directory for chmod of cats scripts. -26Dec03 -- Implement foreach_res() #define and start replacing old code. -- Work some more on jobdefs -- more to be done. -- Implement bstrftime_nc() bstrftime with no century. -- Fix static console problem in gnome2 and gnome directories reported by Alan - Brown. -- Add code to test for valid Resource Names. Permitted characters are now - alpha, numeric, colon, period, minus, underscore, space. -- Turnoff some unused code in timers.c -- Start adding code to dev.c to prevent infinite loops if fast forward space - file (MTFSF) is configured on but not properly supported by OS. -24Nov03 -- Sort FileSet selection list by CreateTime. -- Add "lsmark", and "estimate" to tree routines. -- Doing a mark or unmark now prints how many entries were changed. -- Add command argument parsing to btape.c -- Enhance EOT to print file:block on message. -- Add repeat counts on btape bsf, fsf, bsr, fsr, and weof commands. -- Enhance btape's fill command to be much clearer and more reliable. -- Add state file to btape so that unfill command can be done any time - after a fill command. -- Use reposition_dev() to position for read back of last block. -22Nov03 -- Zap InChanger flag only if setting Slot to non-zero. -- Added new SD directive TwoEOF, default off, that tells Bacula whether - to write one or two EOFs for EOM. For the OnStream driver it must - be off, otherwise an empty file will be created. -- Cleaned up the btape "fill" command to compare the last block written - and read rather than just printing them. -21Nov03 -- Implement btape test for autochanger. -- Implement btape test for Fast Forward Space File. -- Moved up to cygwin 1.5.5-1 -- Implemented Fast Forward Space File -20Nov03 -- Add support for selecting volumes from InChanger list first, then - selecting from all available volumes. -- Ensure that Volumes are selected from oldest LastWritten data/time. -- A couple of bug fixes ensuring the proper ordering of volumes. -19Nov03 -- Return oldest LastWritten for find_next_volume. -- Remove ASSERT from stored/acquire.c that could trip when it shouldn't. -- Enhance SD status if debug_level > 1 to show details of dev status. -18Nov03 -- Create update_bacula_tables, ... scripts and modify configure and Makefiles -- Eliminate is_num() and use is_an_integer(). -- Add user slot selection code "slots=1,2-3,5,10, ..." -- Start daemons at level 90 rather than 20 so that MySQL will already - be started. -- Write alter_mysql_tables.in and alter_sqlite_tables.in -- Add Drive and InChanger to Media record. -- Update database level to 7. -- Add db_make_inchanger_unique() and call it when creating and updating - the Media record. -- Add Drive and InChanger to database code for Media record. -- Allow changing InChanger flag in update command. -- First cut at allowing the user to specify slots for updating autochanger. -- Add scan to "update slots scan". -- Add command in SD to readlabel. -15Nov03 -- In the bacula start/stop script, ordered the stop: FD SD Dir to - give the SD the best chances of updating the catalog before dying. -- Add Drive and InChanger to MEDIA_DBR record and to Volume update - from the SD. -- Reorganize the Volume info update from SD so that the Dir sends back the - current information in case the Volume status has changed by expiring. - The DIR-SD protocol is not backward compatible (must update). -- Fixed the signal handler to pass the signal to the exit_handler() - previously it passed 1. -- Modified SD so that on normal shutdown, it walks through all jcrs and - cancels them so that the Volume status will be updated in the catalog. -- Found and fixed a bug where ST_LABEL was not set in append mode - (when a different tape was accepted other than the original one - proposed by the DIR. -- Update the catalog Volume info after dev->file is incremented rather - than waiting for end of job. -12Nov03 -- Change getdomainname() prototype for Darwin. -- Add gethost_strerror() to create correct error message for - gethostbyname(). -- After doing a kill() of a stalled connection in watchdog, turn off - the timer to prevent an infinite loop. -- Allow Bacula to rewrite the label on a disk volume. -- Correct usage report printed by bsmtp. -11Nov03 -- Complete changing references to bsmtp from smtp. -- Add L_NONE for Admin and Restore jobs and update level_to_str() -- Fix segfault from double free of RestoreBootstrap in job.c -10Nov03 -- Change console to bconsole -- Change console.conf to bconsole.conf -- Change smtp to bsmtp -- Implement .bconsolerc -- Check if volume has expired when doing an update media for the SD -09Nov03 -- Implement new code that assures that a non-zero Slot is unique within - a given Pool. When setting a non-zero Slot, the Slot of all other - Volumes with the same Slot is set to zero. Redone later to add - InChanger flag -07Nov03 -- Fix bug reported by Lars where an incorrect Volume name was printed - by the "status dir" command. -06Nov03 -- Pretty up a few error messages printed by smtp. -- Make btime_t int64_t so that one can do arithmetic. -- Implement since as utime (64 bit UTC). -- Compute clock diff between Dir and FD, and adjust since time. -- Apply SQL fix from Nic Bellamy (thanks). -- Apply John's zlib #ifdefing fix. -05Nov03 -- Add Dan's with-sd-user, ... to configure.in. -- Add Dan's userid and group modifications to bacula.in -- Lots of documentation updates. -- Make console print "Enter a period to cancel a command" when starting. -- Fix the "list nextvol" command so that it doesn't try to close the - database twice, giving a segfault. -- Fix (hopefully) to dircmd.c so that a mount request does a pthread_cond_signal. - There was one path were the signal was not sent. This should fix the bug - that requires you to do two "mount" commands to free a job waiting on a mount. -- Make dir_ask_sysop_to_mount_next_volume() return immediately if a slot is - specified. -- Correct some of the messages in testfind.c (pointed out by Dan -- thanks). -- Alias fd to client, sd to storage. -- Changed order of Console commands so that short commands such as q (quit) - are more logical. - -2003-11-03 Version 1.32d 02Nov03 Release -02Nov03 -- Mainly a bug fix release. -- Do a clean of both Gnome directories. -- Require that FileSet id match when finding an Incremental - previous job. This was already the case for a Full. -- Print message if no status returned from FD. -- Correct "Do not forget to mount the drive" message. Test was - backward. -- "status dir" stopped scanning the run records on the first - one that matched giving an incomplete listing. -- Edit commas in Bytes on "estimate" command output. - -2003-10-30 Version 1.32c 30Oct03 Release -29Oct03 -- Add %v to job edit codes. It edits in the VolumeName(s). -- Add code to ensure that fds 0,1, and 2 are defined by dup'ing them - to /dev/null if necessary. Mostly for Windows that does not have them. -- Error check dir_create_jobmedia_record() 2 places in acquire.c -26Oct03 -- More doc fixes. -- Make message buffer longer for a status message that was - truncated. -- Put termination on varargs calls in gnome2-console. -- Scroll only if text sent and not for status update. -- Add all possible Status codes the jobstatus_to_ascii() -25Oct03 -- Add new spec file and cats patch from Scott. -- Optimize tree.c a bit -- turn off debug code, keep node fname - length for fast rejection, add some statistics, allocate - in 100K and 1Meg chunks, use bool, uint16_t and uint8_t to - reduce node packet size. -24Oct03 -- Eliminate ua_retention.c that was not used. -- Improve error message when closing brace missing in conf file. -- More doc updates. -- Eliminate Don't forget to mount if it is a disk file. -- Fix Gnome2 scrolling and blank screen problems. -- Eliminate multiple JobIds in restore selection list. -- Fix non-portable varargs code in var.c -- Make doc fixes/changes suggested by Dan Languille -23Oct03 -- Document new features. -- Implement mod of Verify Job at the run prompt. -- Correct SQL table definitions so that MySQL and SQLite - have all the values in the same position. -- Correct a typo in configure.in when configuring GNOME. -- In doing a "status dir" make it loop over all the run - commands in the Schedule rather than doing on the first one. -- Close all unused file descriptors in bpipe.c otherwise if - a daemon is started, it will keep our TCP/IP port open. -22Oct03 -- Print block read error (checksum, I/O, BB01, ...) once then - the number found at the end of the reading. -- Implement RunAfterFailedJob -- Change db_find_job_start_time() to require a Full save before - running an Incremental or Differential job. -- Remove has_volume_expired from code that updates vol info -21Oct03 -- Implement "delete job" -20Oct03 -- More documentation, add Marc Brueckner's tips to manual. -- Tweak gnome2-console scroll window. -- Turn off some debug info. -18Oct03 -- Modify Verify to accept VerifyJob = xx, where the last backup job - of job xxx will be verified. -- Add changing the Pool name for a Volume to "update volume" -- Write most of the code for Verify Disk to Catalog. -- Recreate the src/gnome2-console directory. -- Change all the text handling code to the Gnome 2.0 way. -- Correct the way verify filenames are returned to the Director so - that directories are in canonical form (i.e. trailing /). -- Handle casting bug in glade-2 by sed'ing support.c in gnome2-console. - -2003-10-15 Version 1.32b 14Oct03 Release -14Oct03 -- Modify configure so that if threaded MySQL client library - is not present, Bacula will link with the non-threaded - version. -- Updates to the Web pages and to the manual. -- Remove trademark symbol from title. Phil pointed out that it - does not display correctly in a title. -11Oct03 -- Implement restore by file before date. -- Change restore arguments a bit so that you can feed it - multiple jobid= specifications or multiple file= specifications. -- Pass restore with run option on to run_cmd. -- Make run-cmd not prompt if it has a "run" on the command line. -10Oct03 -- When pruning, select only old orphanned jobs to delete so that - the current job is not pruned too. -09Oct03 -- Corrected return status for bsf_dev and bsr_dev in block.c and btape.c -- dev.c used incorrect ruturn status for bsf_dev in the BSF at EOM - code. This caused all appends on FreeBSD to fail. -- Turn on fast block rejection code. -08Oct03 -- Optimize file index searches by adding a count to the bootstrap. -- Write single files/blocks to bootstrap without the second part. -- Add current Volume status to the cannot use this Volume message. -- Zero the rx->bsr in ua_restore when freeing so it doesn't get - freed twice. -- Lots of testing on the restore -- I noticed that SD and FD bootstrap files were not always - deleted, so delete them as soon as possible. -- Restore by file (or by selecting files) created some - horrible looking bsr files that defeated the forward - spacing code, so fix write_findex to work right. -- Add zlib_strerror() routine in filed/restore in case - of zlib errors. -- In filed/restore.c make sure all error returns cleanup - and close the open file descriptor. -- Make sure to set *non* over filename in attr packet - after file is found, so error messages that print the - filename don't print an old, incorrect name. -- Allow bclose() to be called after closing the file. -- Fix a number of unclear help messages, ... reported by - Phil in btape. -- Retweak stored/read_record.c so that it does forward - spacing at the beginning of every tape, not just the - first one. -- Print repositioning message if verbose is set. - -2003-10-01 Version 1.32a 03Oct03 Release -04Oct03 -- Combine the code in ua_output and ua_status that searches - the run records. -03Oct03 -- Fixed "list nextvol" to search for the correct pool in the - Schedule Run records. -- Correct an error in is_block_zero. It found a false - match if the first 1016 bytes of a 32K buffer and - the last 248 bytes are zero. Broke the sparse option. -01Oct03 -- More documentation. -- Test if multiple mail addresses works. Yes. -- Add debug Jmsg() to trigger if the file I/O packet is - not closed in the FD, i.e file descriptor leaks. -- When error occurs reading label in mount.c, start from - the very top so that the retry count is in effect. -- Zap the mode in soft links in testls.c for regression - testing. - -2003-10-01 Version 1.32 30Sep03 Release -28Sep03 -- Enhance manual faq, regression ... -- Make FreeBSD read sizes always be a multiple of 512. Needed - to read raw disks. -- Make FreeBSD accept block AND character devices for raw - disk reads. On FreeBSD there are no block devices. -27Sep03 -- Fix printing of EndTime on job report after rescheduling. -- Fix jobq.c error returns to clean up before returning. -- Make Cleaning tape aware of "unlabeled" volumes. -- If a job is rescheduled, ensure that old job is - removed from SD's jcr queue -- i.e. it is still waiting - for FD connection. -- Test rescheduling code. -- Change ./configure to detect Cygwin enviornments. - -2003-09-26 Version 1.32 26Sep03 Beta -- Add regression and GUI-interface chapters to the manual. -- Fix "label" of a volume that is already in the catalog, - but not yet labeled. -- Correct the test for spooling attributes which was backward. - This caused the creation of a spool file in the working - directory for every job run. -- Print to the job output stream when block checksum errors - occur, but continue processing. If more than one occurs, - print number at end of job. -- Remove a few unneeded tests from configure.in -- Modify configure to use -pthread on FreeBSD 4.8, - but nothing on FreeBSD 5.1 -- Clarify that bmicrosleep() takes sec and microsecs -- Apply Franc Carter's code to specify a DB host in - bscan. -- Fix sanity login length test in stored/dircmd.c -- remove old code fro stored/job.c -- Lots of work on regress so that it works on FreeBSD - and Solaris. -- Make the default gnome-console wider (console.c) -- Add \r to the items that terminate a token. - -2003-09-20 Version 1.32 20Sep03 Beta -- Replace a number strcpy() calls with bstrncpy(). -- Added code to ensure that the names for each resource - type are unique. Two resources of different types can - have the same name. -- More documentation -- Added new full length modifiers for time intervals. - Compatible with previous method EXCEPT a modifier is now - manditory. -- Completely restructured recycling. It should work now, but - in any case, the logic is much cleaner. A lot of new - code in next_vol.c -- Added a few pthread_xx_destroy() for items inited. -- Nic Bellamy pointed out that it wasn't necessary to do - destroy() of static initialized pthread variables -- fixed - watchdog. -- update VolStatus asked for the media and volume twice. -- Changed a few more strcpy() to bstrncpy(). -- Made VolBytes=1 as indicator that the Volume is labeled. -- Modified creation of Media record to include VolBytes, - same for sql_update - also set LabelDate if VolBytes = 1. -- Copy any statically linked programs to install directory. -- Change relabel flag to label in Update_media protocol Dir<->SD. -- Change a few strcpy to bstrncpy ... -- Update Media record after an automatic tape label. -- Added more debug code to bnet_server and bnet.c to attempt to - track down Alex's SD segfault (BSOCK==0) -- Add additional debug cod for authentication errors in cram-md5. -- Implement "list nextvol job=xx" and add Volume to Dir status. -- Retry waitpid if interrupted -- needed for FreeBSD! -- Move lex.c debug level to 900 -- Add new aliases SDAddress, ... -- Final changes for variable expansion -- Possible fix to Alex's SD crashes -- Correct incrementing counters not in catalog -- reported by - Chris Allen. -- Correct memory leak in core var.c code -- reported by - Chris Allen. -- Make documentation of variable substitution a bit clearer. -- Apply Nic Bellamy's patch to dbcheck.c to fix SQL to work - on both MySQL and SQLite. -- Finally fixed the .messages that was sent during prompts - in the console with no readline. -- Implement new Include/Exclude semantics. -- Fix a good number of segfaults reported by Chris Allen in - the variable expansion code. -- Print warning message if a job is blocked by user unmount. -- Fix additional variable expansion problem reported by Chris Allen. -- Fix pathconf() error status bug that caused a segfault on - a FreeBSD system -- reported by Gernot Hueber. -- Make sure the console sends ".messages" only when at the - command line prompt. -- Apply a patch from Nic Bellamy that corrects a file descriptor - leak in the Storage deamon when a job is canceled. (Thanks) -- Implement < and | in File daemon. -- Implement ClientRunBeforeJob and ClientRunAfterJob. -- Corrected BSRatEOF to be BSFatEOF in btape -- - reported by Lars Koller. -- Documented BSFatEof -- Eliminated save_level in FD replaced by JobLevel. -- Increased MAX_RES_ITEMS from 35 to 50 to handle - new ClientRunBeforeJob ... -- Add line number in error message for restore from file. -- Correct editing of jobids (misplaced comma). -- Implement restore files. -- Quickie patch to allow Purged Volumes to be mounted. - Must review algorithm. -- Eliminate a duplicated query from query.sql -- Restructure ua_restore.c so that I can add restore files. -- Correct positioning problem at beginning of a second volume - introduced with the new forward spacing code. -- Eliminated a sprintf() in the tree routines. -- Doc updates -- Added HOST_OS, DISTNAME, and DISTVER to the status output. -- Eliminated a few stray Dmsgn(000, messages making them either - debug_level 100, or Pmsg(). -- Made the default "Maximum File Size" 1Gbyte in SD. -- Cache path in tree.c to reduce calls to make_tree_path -- Documentation updates -- Implement forward space file and block when reading a bsr. -- Fixed a bug in db_find_next_volume() where the VolStatus was - not being returned. -- Rework some of the query.sql records that were incomplete. -- Fixed an ambigous SQL statement in restore. -- Fix proper sorting order in restore display last 20 jobs. -- Remove duplicate JobId's in feeding the directory tree. -- Fix an orphaned ua buffer due to a return that should have been - break so that cleanup code executed. -- Changed some strcats and sprintfs int bstrncat() ... to prevent - possible buffer overflows. -- Fix max file size code on tape so that after writing EOF, - an appropriate jobmedia record is created. -- Fix error messages in dev.c, which were copied into lots of - different subroutines without updating the text. -- Add reposition_dev(), and make more of the return statuses of - dev routine standard. -- Eliminate old semaphore and workq code. Keep only new jobq code. -- Try to get a better default size for the gnome-console -- Add code to avoid race conditions in starting/stoping the - heartbeat thread. -- Correct potential race condition in heartbeat_stop(). -- Correct segmentation fault in mysql.c if no password given. -- make pm_strcat and pm_strcpy return the string length -- Use Phil's code to get the unadorned job name. -- Move the MTIOCERRSTAT from just after a write() failure to - after writing the EOF marks on FreeBSD systems. -- Enhance packet too big error in bnet.c and add some - ASSERTs in the send code. -- Set heartbeat interval to zero by default. -- Add Recycle to list of Update Volume parameters. -- Use bget_dirmsg() wherever possible in Director. -- Split next_volume code from catreq.c to next_vol.c -- Consolidate editing job codes into a single routine. -- Add Job resource name -- Remove check for Win32 attributes in bls. It doesn't - need to read them, only print ls -l. -- Add SDConnectTimeout in FD. -- Add Scott's perlgui directory -- Upgrade from RH7.3 to RH9. New autoconf. -- Eliminate gnome2-console directory. -- Correct English in status command. -- Eliminate old shell expansion code and use BPIPE to call shell - with echo command. -- Documentation as usual. -- Add a new bacula.spec for Mandrake -- Add ownership to alist items. Default the list owns the items. -- Make record_cb return a status (preparation for internal use). -- Remove all clearing of remainder in read_record.c -- not necessary -- Write a tapetest program for FreeBSD end of tape testing. -- Modify read.c in Bacula to use read_record.c -- Implement multiple records in read_record.c. One for each session that - is open. Free the record with the EOS_LABEL is found (or at the - end of the scan). - -2003-08-02 Version 1.31a 02Aug03 Released -- Yifang Dai reported a case where he stress tested Bacula and - backed up to four volumes, but only two were selected for the - restore. This is because I forgot that the selection could - span a volume entirely. -- Added a missing CLIENT_FOUND_ROWS to the second attempt to open - the MySQL database -- this prevents UPDATE errors if nothing - actually changed. -- Applied corrections to the manual supplied by Bob Collins. Many thanks! - -2003-07-30 Version 1.31 Beta 30Jul03 -- Integrated Robert Mathews improved description of Priorities into - the manual. -- Chased down the "The data is not valid" bug on WinMe/98/95. -- Found an orphaned buffer in the set_attributs part of WinMe/98/95. -- Add sleep(1) to console when it gets a SIGTSTP signal - to prevent it from using 100% of the CPU. -- Improve description of Priorities. -- Add a bit more documentation to jobq.c -- Complete hash table routine htable.c htable.h -- Change M_INFO to M_ERROR in attribs.c for Windows errors. - -2003-07-23 Version 1.31 Beta 22Jul03 -- Apply a patch from Nic Bellamy that clarifies the error messages - during recycling volumes. -- Documentation. -- Clear VolCatInfo in askdir.c so that readbytes is zeroed. -- Add SD statistics to backup report. -- Removed old workq code. -- Fixed rescheduling after error. -- Fixed delayed starts which were not working. -- Added priority to values that can change when starting - a job. -- Complete implementation of new job scheduler. jobq.h jobq.c - This code is turned off unless specifically enabled in src/version.h -- Integrate code from Nic Bellamy to check for recycled volume in - mount.c in SD. -- Fix a couple of bugs in dlist.c -- Begin implementation of new job scheduler. -- Take serial.h provided by David Craigon, which corrects differences in - prototypes between serial.h and serial.c. -- Make db_get_media_ids() return Media Ids only for the current pool. -- Add new jobq.h and jobq.c drived from workq. -- Add JobPriority to jcr, and Priority to Job resource as well as - to the run line in a Schedule. -- Remove unused pool record from autoprune.c. -- Implement Nic Bellamy's RecycleCurrentVolume. -- Implement RecycleOldestVolume. -- Begin adding new JOB_QUEUE code to the Director. -- Create a single routine recycle_volume(). -- Retry accept(), bind() and socket() if EINTR occurs. -- Implement insert_before(), insert_after(), and empty() for dlist class. - Also require offset to be given by giving item and link address. -- Make error some messages in smtp.c a bit more explicit. - -2003-07-12 Version 1.31 Beta 14Jul03 -- Marc Brueckner reported a crash during restore (a missing tree->) -- Moved host.h.in file from filed to src. -- Update btraceback to include host os, distname, distver in output. -- Split list (in lib) into alist and dlist both with .h and .c. -- Update home page to include Project status page. - -2003-07-12 Version 1.31 Beta 10Jul03 -- Manual updates. -- Clean up some unused variables detected by the IRIX compiler. -- Test two directories on Win32 -- caused a crash. I forgot - to NULL the uid cache pointer after releasing it. -- Use bstrncpy() instead of strcpy() in find_files. -- Clear a few linked lists in the temp directory packed in find_one.c -- Eliminate an unnecessary variable in attr.c -- Clear the cache pointer after release in idcache.c -- Implement a new C++ doubly linked list class. - -2003-07-08 Version 1.31 Beta 08Jul03 -- Update document for Win32 stuff. -- Ensure VolStatus value for update is permitted. -- Fix cached_path so that it is local to the jcr, otherwise, there - are problems from job to job. -- Fixed idcache.c which was not thread safe and didn't release memory, - and didn't always edit the userid correctly. -- Correct missing pool memory allocation in update voluseduration. -- Release mutex in pool_mem.c before triggering ASSERT. -- Lock database while recycling. -- Fix a bug in editing since where I forgot to update to the new size. -- Implement all the command line update arguments. -- Modify label to use volume=xxx for the new volume and oldvolume=yyy - if doing a relable. -- Added yes to run command line arguments. -- Clear errno in editing a string to utime. -- In restore print only volumes that will actually be used. -- Fix bextract -- add appropriate breaks in new case code. -- Add a new test -- bsr-opt-test for testing bsr optimization. As usual, - it pointed out a bug where the directory tree handling code destroyed - the restore arg list. -- Many updates to the manual. -- Pass prefix links flag to FD. -- Sort list of commands for Console -- Set default FD and SD concurrent jobs to 10. -- Rework the find next volume code in catreq.c to correct some minor - but subtle logic errors and to eliminate a goto. -- Did spell check on manual. -- Removed bindtextdomain() as it conflicted with RH8.0 headers -- Fixed parse_args to pass address of POOLMEM struct. -- Constrain FileIndexes written to BSR to be within range of Volume. -- Suppress writing volumes to BSR if they are not actually referenced. -- Make FOPTS use alist for match and base entries. -- Pass prefix_links to SD. -- Add command line interface to most items in "update volume=xxx" -- Add command line interface to restore "jobid", "current", "before", "all". -- Add command line "yes" to run command to supress prompt. -- In new alist code, free only if allocated. -- Overload [] with get() code for alist. -- Fixed the code that wrote FirstIndex and LastIndex to the database. It - was not correct at the end of a volume (basically included indexes in - the second volume). -- Fixed bscan to work with the new code and to properly build JobMedia - records. -- Added code to the read end of block.c to properly track Volume bytes, - blocks, and files. I thought this was not necessary, but it is critical - for bscan to work correctly. -- Modified read_record to properly track First/LastIndex -- needed by - bscan. -- Eliminated some old Volume write code. -- Changed RecycleOldestVolume to PurgeOldestVolume -- Added what I hope are the "final" touches for Win32 stuff. There - are still a lot of annoying little problems. -- Added the "portable=yes/no" option to Include. If set, it disables - use of BackupRead/Write for Win32, so in principle, the data should - be portable. -- Pulled in more recent config.sub and config.guess from /usr/share/libtool -- Replaced the system fgets() by a Bacula version that ignores - interrupts (i.e. signals). This truncated output from child processes. -- Make file_index int32_t everywhere. -- Moved LinkFI into ATTR structure. Also integrated data_stream there too. -- Moved code that sets the stream for writing into create_file. -- Removed a signal(SIG_IGN, SIGCHLD) from dird.c that prevented getting - the status of child processes. This allowed removing the FreeBSD - kludge to bpipe.c -- the status is now obtained correctly. -- Hand scan the stream header that arrives in append.c to avoid machine - dependencies of sscanf(). -- Implemented code to put Data stream in Attributes record. -- Check if data stream is supported, if not, ignore. -- Fix crash when multiple Includes are given (missing parens). -- Clear WroteVol in askdir.c when JobMedia record is created. -- Implement simple array list class for use in Bacula. New files - are lib/list.c lib/list.h. Probably will not use until version 1.32. - -2003-06-24 Version 1.31 Beta 22Jun03 -- Change Purging Oldest Volume message to Recycling Oldest Volume. -- Limit results from find_oldest_volume to one. -- Fix possible buffer overrun in the restore tree handling routines. -- Fixed a crash in VerifyToVolume because I moved the close_db() - down into the free_ua_context() and should not have done so. -- At a "var" command in the Console that does variable expansion and - prints it. -- Implement first cut of estimate command. -- Change find_next_volume() for oldest to use LastWritten instead of - FirstWritten -- also add Append to volumes slected. -- Do normal recycling before checking for RecycleOldestVolume. -- Implemented block rejection on read. This should make restores run - much faster. Next release will have block positioning -- even faster. -- Very preliminary support for Gnome-2.0. Text does not yet work. -- Correct buffer corruption in find_one.c with long directory names (Win32). -- Make setting owner on directories M_ERROR rather than M_WARNING. -- Fix printing of JobId in run listing for restore job. -- Reduce heartbeat read check interval to every 10 seconds on Cygwin because - there is no working pthread_kill(). -- I finally designed a test for multiple simultaneous jobs, - and sure enough it broke when the jobs are split over multiple - volumes. Now fixed and working! -- Eliminated a few "duplicate" error messages by testing for canceled. -- Add ASSERT for device use count going negative. -- Fix BlockNumber checking in stored/read.c (got first one wrong). -- If socket is timed out, do a shutdown(fd,2) instead of close(). -- Fixed return status from SD to FD by setting JobStatus in append_end() -- Add arrays to Environment variables. Elements separated by |. -- Implement Reschedule On Error, Reschedule Interval, Reschedule Times. -- Add a new pool PM_NAME -- gets a name length buffer. -- Implement fast cancel of FD blocked on writing to SD by using - pthread_cancel(). Turned off on Cygwin due to bug. -- Add code to handle EAGAIN in writing (probably not necessary). Use - select(). -- Eliminate size_t from pool control buffers. -- Complete Counter resource. -- Complete LabelFormat (except for WrapCounter) plus counter - inrementation. -- This needs a database change to eliminate PoolId from counters. -- Made a more compact format for the document index. -- Add Phil's checkhost to examples directory (thanks Phil). -- Implement generalized LabelFormat (documentation to come). -- Implement Counter resource. -- Cleanup examples/kernsconfig -- Implement restore to a specific date. -- Fixed a but in automatic labeling (and use durations expiring) analysed - and reported by Rob Proffitt (thanks!). -- Cleaned up a few Cygwin compile problems. -- Made a 10Jun03 release (it is in production here) -- Finally took the big plunge and fixed restoration of links and other - files that have been changed between the backup and restore. Basically - if the file exists, it is deleted, then re-created. -- Purge only Volumes marked Append, Full, Used, or Error. -- Allow pruning of volumes marked Append, in addition to Full and Used. - - -2003-06-10 Version 1.31 Beta 10Jun03 -- Eliminated all plain email addresses and replaced them with " at " in - place of @ to reduce havesting by spammers. Doc + Web Site. -- Started working on making POOLMEM a struct rather than a char. Lots of - work to do. -- Fixed bscan to handle -V option. -- Fixed bscan to handle two File volumes. -- Corrected a misplaced comma it get_fileset() in cats pointed out by bscan. -- Added two Volume bscan test to regression scripts -- write two volumes, - purge and delete everything, bscan the tapes, and do a restore. It works! -- Reorganized the backup/restore code to move the attribute information into - an ATTR packet, which is passed in place of tons of arguments. Moved some - code into lib/attr.c and lib/attr.h. Then eliminated all the duplicate - attribute code. -- Moved FT_ types into baconfig.h. -- Defined FT_ types to use only 16 bits. The upper half of the word is - reserved for adding optional fields in the attributes packet. -- Moved jcr->where into common part of jcr and have it deleted in lib/jcr.c -- Put all attribute reading code on switch() with cases instead of a big - if (restore.c, bls.c, bextract.c, bscan.c, ...) -- set_attributes() now takes ATTR packet, and thus has much fewer args. -- moved print_ls_output() into lib/attr.c -- implemented is_stream_supported(). -- create_file() now takes ATTR packet so has many fewer args. -- add mtime_only code. -- Rewrote bnet.c read and write routines to quit if bsock->terminated is - set. This will allow setting non-blocking writes and then receiving - a termination message and terminating the Job immediately rather than - waiting 2 hours for the line to timeout. -- Put catalog db name in some error messages. -- Code for restore is now much cleaner, with much of it in lib/attr.c, - and it is now common for all readers. -- Add first cut of proper support for Win32 Backup code. -- Fix bug in restore Win95/98/Me. -- Pass mtime_only flag to FD. Needs config record. - -2003-06-04 Version 1.31 Beta 04Jun03 -- Fix block.c to check errno only in case of return status -1 as - suggested by Justin Gibbs (FreeBSD). -- Implemented qfill command in btape for quick testing write/read of a tape. -- Discovered that FreeBSD pthreads re-use the same thread id, which causes - the SD to fail when a user leaves a device unmounted (old pid is reused - and lock_device() thinks the same thread is calling again leading to - inconsistent state). Set id to zero after blocking the device during - unmount. -- A lot of clean up, moving subroutines around for TermCode. -- Free ua->prompt when Job terminates. -- Add AutoPrune and Recycle to values copied from Pool resource - into Pool record on create/updated. -- Implemented bsr for Verify VolumeToCatalog. -- Improved the Verify Job report using SD and FD term codes. -- Split tree handling routines from ua_restore.c to ua_tree.c -- Split bsr routines from ua_restore.c to bsr.c and bsr.h -- Fixed clash between FD and SD returned job values. Report now contains - values from FD. Maybe I should change? or give both. -- Attempt to fix negative use_count for dev packet in SD by adding - a couple of open_dev(). This may be cause of Dan's crash. -- Clear no_wait_id when device is unblocked. This may be cause of Dan's crash. -- Eliminate old "new lock code". -- Add configure of mtx-changer for mtx path. -- Always rewind tape before releasing it (for FreeBSD). -- StartBlock was one too large for second volume. -- Fixed restore to display status from both SD and FD. -- Unified return status message for backup and restore. -- Corrected segmentation fault reported by Dan when doing "label barcodes" - on a File. -- Corrected a segmentation fault when attempting to send a JobMedia record - to the Console -- reported by Dan. -- Added MySQL documentation for using the threaded libraries. -- Added new columns and tables to Catalog database. -- Wrote alter scripts and tested them (thanks to Dan for the help) on - MySQL and SQLite. -- Started using enums where ever possible when passing flags to - subroutines. This helps make the source much more readable. -- Corrected a bug where a vertical database listing was being used in - the query command. -- Added new argument to parse_args() to prevent command arg overflow. -- Renamed ua_db_query.c ua_query.c. -- Split scan.c out of lib/util.c -- Perhaps I have *finally* fixed the command line history in gnome-console. -- Added support for smartalloc for any global new or delete command - by overloading the global operators. -- Made the default time with no qualifier day rather than seconds. -- Fixed a bug in the store_size() routine that improperly converted from - double to uint32_t. -- Started using "bool" where possible. -- Zap SD session key once it is used. -- Added *lots* more checking for strcpy -- bstrncpy(), ... -- Added CreateTime field to FileSet record and print it to distinguish - FileSets. -- Print an information message when a new FileSet is created. -- Include the FileSet date/time in the Job report. -- Indicate if a Job is upgraded in the Job report and from what previous level. -- Incremented the database version. -- Ensure that any DB error message is printed if the start_time of a previous - save is not found. -- Free orphaned buffer in ua_restore.c in case of database error. -- Implement enum for response DISPLAY_ERROR and NO_DISPLAY -- Implement enum for create_pool (POOL_OP_CREATE, POOL_OP_UPDATE). -- Make sure FileSets printed in restore are in order. -- Add a number of bstrncat, and other protected string operations. -- Clean up old structs in dird_conf.h -- Remove all Slot invalidation code. -- Add Automatic choice message to all do_prompt() calls. -- Eliminate JobId from restore if not used. -- Clean up a few error messages. -- Make fill/unfill commands work correctly in btape. -- Enhance btape fill and unfill commands. -- Implement real Pmsg() code so that negative levels work in Dmsg() -- Implement block number check -- had to turn it off because it doesn't - work. Need to verify that it is the correct block and that block - numbers are properly written. -- Moved readline from depkgs1 to depkgs. -- Reworked the configure code to handle readline correctly. This was broken - mostly due to the fact that the readline routines are nested down one - directory. Also, I missed one header file that was needed (possibly added - in a later version). -- Put correct include on the dependencies make for Console readline. -- Remove JobMediaId from VOL_PARAMS (no longer needed). -- Sort VOL_PARAMS by JobMediaId using SQL in cats. -- Add jcr as argument to block.c read_block... routines so that error - messages are immediately displayed. -- Make bsr_dev() edit an error message if it is turned off and return 0. -- Add checking for the BlockNumber in the read routines -- lots of - false matches are found -- much check writing end. -- Now sort bsr volumes by JobMediaId -- produces better results. -- It turns out that under certain circumstances, when doing a restore, the - Volumes will not be written to the BSR in the correct order. I don't - know exactly why, but many thanks to Dan Langille for reporting this. - The solution is to sort the Vol_Params within each bsr (done), and to - sort the bsr chain (not yet implemented). Note, the bsr chain should - always be in order unless the user explicitly specifies the JobIds in - a different order. -- Began implementing C++ structs rather than typedef structs as in C. -- Added volatile to a lot of variables that are used in two threads at - the same time. This should prevent improper optimization. -- Fixed a missing space in the "run job=xxx where=" the where was - glued to the end of the previous stuff (bootstrap filename). -- I *finally* found the cause of the mysterious failure of shell expansion. - It was due to the read() getting interrupted! That's what opening up - SIGCHLD will do! -- Remove unused default tape drive names. -- Create a new status.c file in stored and split the status code out of dircmd.c - -2003-05-22 Version 1.31 Beta 22May03 -- I discovered that C++ permits "prototyping" structures e.g. struct A; is - a valid statement. This permitted me to eliminate all the void *jcr, in - favor of JCR *jcr, which pointed out a number of bugs in block.c. -- Change lib/bmisc.c to bsys.c (system routines). -- Add set_working_directory() to lib/util.c -- Remove some unneeded setjcr_job_status() since Jmsg(jcr, M_FATAL,...) - already sets it. -- Do not increment jcr->Errors for Fatal errors -- they represent non-fatal - errors. -- Fix a few more places in FD where Errors was not incremented. -- Print unexpected (or incorrect) termination message returned from FD. -- Use switch() instead of giant if statement in verify_vol.c -- Protect overrun from do_shell_expansion() by passing max length. - -2003-05-20 Version 1.31 Beta 20May03 -- Add mandrake to platforms -- Suppress error messages if no bytes written to tape. -- Suck up bootstrap file even on error so that Dir sees our error message. -- Pretty much finish off the Win32 backup code. -- Add DESTDIR code to autostart for creating non-root rpms -- Echo input read from a script in Console. -- Clarify error message for VerifyToCatalog -- Add error counts in restore for M_NOTSAVED. -- Adapt bfile.c to handle both Win95 files as well as WinXP files. -- Add MTIOCERRSTAT for FreeBSD (clear error status). -- Correct double jobmedia record when cancel at EOM reported by Phil. -- Correct possible write at beginning of tape during cancel at EOM - as reported by Phil. -- Document in detail how Incremental and Differential jobs work. -- Add non-fatal error count on backup and restore Job reports. -- Remove a couple uses of lld -- now prefer to edit and use %s. -- Fix directory could not be accessed on Win32. -- Improve message indicating that last Full backup not found. -- Fix free() too early in directory traversal code. -- Prune Jobs with no JobFiles or that have JobStatus!='T' -- Add a few more command line scans for prune/purge. -- Restrict valid characters in a Volume name, and document it. -- Make new Win32 save/restore work. Still a bit more to do. -- Use reentrant version of mysqlclient library. -- Use more machine independent way of finding gcc version. -- Fix race condition in sql_list where messages edited before locking. -- Lots of testing saving/restoring 6GB files. -- Add where to restore where=/tmp -- Complete implementation of Win32 streams in FD. Must test. Also, - must implement new streams in SD. -- Make termination of daemons more "error" tolerant. -- Make default "duration" days rather than seconds if there is no modifier. -- Install bcopy. -- Add detection of available Win API's so that a single binary will - work on all Windows systems. Reference those APIs through a pointer. -- Remove use_win_backup_api and enable it in bfile.c if system supports it. -- Modify dev.c so that it works if MTEOM is not defined (BSDI). -- Change MT_xxx to BMT_xxx to prevent conflicts with BSDI. -- Detect strtoll() in configure. -- Implement replacement for strtoll() for BSDI. -- Add platform files for BSDI. -- Use Jmsg() instead of Jmsg1() in acquire because File:line prefixed in dev.c -- Use Jmsg() in write_block_to_dev() so that no messages are lost. -- Rework autochanger code in restore to handle case of cassette not in magazine. -- Implement Windows BackupRead/Write(). I now have permissions right!!!! -- Additions to the manual (Purging, Autopruning). -- Add doc to code in autoprune. -- Begin adding Level = Base. -- Make Jmsg recognize console and direct messages directly back to it. -- Hopefully fix mess in mount.c when a tape expires. -- Fix restore bug recently introduced due to Unix backwards status convention. -- New bacula.spec from Scott -- Add globals for database name and version and print them in traceback. -- Eliminate SubSysDirectory in each daemon conf file. -- Implement get_yesno() and get_pint() in UA. -- Make Jmsg aware of console. Messages now sent directly to Console. -- Created a single bacula.spec.in for by the MySQL and SQLite builds. -- Added proper configuration to console.in and gconsole.in -- Start adding textdomain() code for translating. -- A number of minor code cleanups. -- Rework shell expansion just a bit. -- Add rewind() when releasing a tape before acquiring the next one. -- Implement addition of Description in Service entry for Win32. -- Update manual to eliminate unclear autochanger points as mentioned - by Dan Langille. -- Implement DESTDIR everywhere. -- Rework spec files for 1.31 and combine the main spec and the client - only spec making a client package. At the same time, rename the packages - so it is a bit clearer to the user. Also fix the build to work - as non-root (scriptdir was not prefixed with $RPM_BUILD_ROOT). -- Correct Auto Changers and all other forms to Autochangers in the - manual. -- John reported needing to do two "mount" requests, and indeed that - was the case. It turns out that pthread_cond_timedwait() does not - always return zero when awaken by a pthread_cond_signal(). -- Include RunBeforeJob and RunAfterJob output in job output report. -- Implement a "real" Admin job that prints a mini-job report. -- Clean up a few error messages in findlib and filed. -- Recent changes to gnome-console caused initial output to be - lost -- now fixed. -- The Win32 version crashed after each job. After hours, it turns out - that when running with LocalSystem privilege (and not as a user), when - Cygwin does pthread_kill(id, SIGUSR2), it gets a memory fault. -- Moved stored/fdmsg.c to lib/bget_msg.c, and moved SD messages to - stored.c. So now bget_msg() can be used by both the SD and FD. -- Changed Director's bget_msg() to be called bget_dirmsg() to avoid - any possible confusion. -- Implemented bget_msg() in general everywhere in the FD except for - job.c where the Dir and FD are communicating. -- Implemented a Director only heartbeat in the FD for the cases where - there is either no connection to the SD or the FD is already reading - from the SD. start_dir_heartbeat() ... -- Add heartbeat to restore and verify volume. -- Add "Heartbeat Interval" to Storage resource, which sets interval the - SD sends heartbeats to the FD and DIR, 0 disables heartbeats. -- Add "Heartbeat Interval" to FileDaemon resource, which sets the interval - the FD sends heartbeats to the DIR, 0 disables heartbeats. -- Added heartbeat from FD to Dir every HB_TIME rather than forwarding - SD heartbeats. -- First cut label dialog. -- Turn on new semaphore code for simultaneous Jobs. -- Fix cancel trying to release semaphore's not acquired. -- Implement get_pint() and get_yesno() for UA. -- Implement find_arg_with_value() for UA. -- All command line "slot" to be specified for label command. -- Rework heartbeat code in FD to correctly terminate. -- Fix btraceback to use smtp and to eliminate double // -- Fix "storage" command to include ssl for verify and restores. -- Add Heartbeat code when SD is waiting on a tape -- heartbeat every 20 mins - to keep stateful firewalls from timing out the connections. -- Fix src/stored/Makefile.in typo causing problems in statically linking - btape. Thanks to Lutz for reporting this. -- Create an is_client_alive script for checking if a client is alive. - Using this script prevents generating error messages. -- Added corrections and updates to manual provided by Phil -- thanks. -- Added RequireSSL to each program/daemon configuration. -- Added EnableSSL to each correspondent for each program. -- Added the Console resource to the Director (need to - implement individual Console authorization). - -2003-04-28 Version 1.30 released -- Fix command history for gnome-console (must malloc). -- Add two cancel points in acquire_resources(). The job will not - be immediately terminated in all cases. -- The new AutoMount code broke File archives -- fixed. -- Correct watchdog mutex race introduced yesterday. -- Add JobLevel to Admin run started by UA. -- Add -v to daemon startup scripts -- Implement bmicrosleep(sec, msec); -- Implement When for "run" command. -- Remove unsigned from socklen_t definition in hopes it will work better - with older systems. -- Remove code that attempts to set PID dir and SUBSYS dir if they - do not exist because it set them to sbindir! -- Modify mount to initially attempt to read the volume if Bacula - wants a tape, none is mounted, and "Automatic Mount = yes" is set. -- Prohibit setting --sbindir and --with-subsys-dir the same. -- Fix missing argument that cause Kaboom in update slots. -- Fix orphaned bsock when UA gets error contacting FD or SD -- Nearly full implementation of Win Backup API, but it does not - work due to lack of permission! Arggg! -- Implemented restoring directory permissions as they should be. -- Implemented reasonable regression script. It found a number of - restore errors. -- Implemented the following @ commands in the console that work directly - in the console rather than in the Director. - input - read input from a file - output - write output to file - tee - tee output to file and terminal - time - print current time - version - print current version - exit - quit - quit - quit -- Implemented new bfile io routines that will permit implementation of - Windows native APIs for reading/writing files. -- By default always update hard links with the prefix, but do - not update soft links. It seems inconsistent, but it is what - cp does. -- Implement wait command in Console that waits until no jobs are running. -- Fixed the < code in Include/Excludes, which forgot to skip over the <. -- Do NOT attempt to chmod() a soft link as it will change the file behind - the link! -- OOPS! Lutz ran into a problem. In attempting to prevent string overflows, - I used bstrncpy() on a variable that was malloc'ed thus truncating - Volume names! Arrrggggg! -- Lots of documentation of new features. -- Rework Volume name scanning in console, made much more logical - and corrected a bug (confusion in calling sequence). -- Cleaned up a few error messages in cats adding more info. -- Add the IP address to error messages due to bad connects to servers. -- Implement default File output in config files so user can start - saving right away without a tape drive. -- Protect inet_ntoa() with mutex in case it is not thread safe. -- Eliminate termcap from use in gnome console. -- Remove unused SD maximum volume files and maximum volume jobs. They - are implemented in the Director. -- Make the default for Incremental and Differential saves to compare - against both st_mtime and st_ctime rather than just st_mtime. - This includes files moved or copied. - Thanks to Matthias Wamser for bringing this fix to our attention. -- On Win32 clients, make a pass through the include/exclude patterns - and change any back slashes to foward slashes. Prevents creating - unusable directory names containing both conventions. -- Move ls -l output on restored files to M_RESTORED class. -- Make gnome-console compile correctly on RH8.0 -- label barcodes now works. -- Implemented "update slots". -- Tweak btape "test" to always print suggestion for re-read last block. -- Implemented "Cleaning Prefix" -- Update alter_mysql_tables.in -- More work on barcodes. -- Zap VolHdr in SD when attempting to label a tape that is not - there. Prevents false tape names the next label command. -- First cut of bar code reading is implemented. It doesn't do - anything but return the list to the Director. -- Implemented relabel command that relabels "Purged" Volumes. -- Check exit code in RunBeforeJob and err the job if it is non-zero. -- Remove old testsuite -- too complicated -- Print length when Authorization fails because of bad length. -- Fix problem of NumVols in Pool getting reset on startup. -- Implement full listing of DB records by listing them vertically - instead of horizontally. -- Make changes to mysql scripts as suggested by Lutz Kittler -- Fixed code to write Uname to Client record. -- Fixed a problem (in btape) where Pmsg() was not printing. -- Moved re-read last block test to last in "test" command of btape. -- Lots of new documentation. -- Fixed newvol.c to handle retrying 10 times if the volume name already exists. -- Removed int_least16_t from sha1.h because it does not exist on some systems. -- Release job in SD if canceled and waiting on a mount (better cancellation). -- Prompt for Client in restore if not specified. -- Print "Selection is empty!" if no selection list found. -- Add new spec files and bacula.desktop from Scott. -- Update client every time a job is run. -- Add verbose option to daemons for printing more user error info. -- Test if console works with readline 4.3 (yes, it is OK). -- Release new depkgs -- Release new winbacula. -- Add Uname info to Client DB record. -- Improve error messages and make them more consistent when a non-existent - Device is requested. -- Separated the -mwindows option so that only Windows programs - are built with it (bacula-fd, ...) the tty tools such as console - dbcheck, smtp, testfind, ... are now able to be run in a standard - Windows DOS box. -- Add | and < options to Exclude the same as in Include. -- Add typed in input to the text window in the gnome-console. -- Change function that gets the entry text (previously had orphaned buffer). -- Fix multiple Director problem in gnome-console (thanks to Lutz Kittler). -- Thanks to Renato, I was able to test Bacula on a FreeBSD tape drive. - There are a number of significant differences: 1. reading less than - the number of bytes in a record returns an I/O error. 2. ioctl(MTEOM) - looses the file position. 3. Reading two two EOF marks (or ioctl(MTEOM)) - leave you positioned after the second EOF, so you must backspace file - to be able to append. -- Added BSF at EOM = yes/no to Device resource to allow proper positioning - at the end of a FreeBSD tape. -- Made btape "test" do much better testing of error conditions (i.e. - it now ensures that the append went well). It will automatically - detect problems and apply fixes and then retry the test, if it - finally succeeds, it clearly says what directives need changing. -- Add Scott Barninger's rpm changes to the build environment -- Add changes to mtx-changer so users can add eject and sleep for - certain autochangers. -- Implemented FreeBSD chflags (user defined flags). -- Turn restore errors during setting of owner and modes into - warning messages -- for restoring files as non-root. -- Fix how prefixes are handled in restoring soft links. -- Modified btape "test" command to do only those things that - Bacula actually does. There is much more explanation, ... -- Update manual. -- Finally had to back up to gcc version 2 from version 3 to avoid version - 3 nightmares. -- Final cygwin tweaks. -- Move start time to *after* the resource locks are acquired. -- Unable to duplicate Phil's disabling of Bacula with nmap, but - did make the authentication code a bit more conservative for - dealing with bad input. -- Added code to the query command to escape all strings input - before substitution and sending to the SQL engine. -- Escape user entered filenames for restore command. -- Cleaned up the waiting code a bit -- using broadcast instead - of signal and counting the waiters. -- Implement new pthreads semaphore code. -- #define new semaphore code rather than workq on USE_SEMAPHORE. -- Lots of improvements to the document to address recent support requests. -- Implement cycle through a set of tapes suggested by Eugeny - Fisher with the "RecycleOldestVolume=yes" record in the - Pool resource. Basically this record causes Bacula to purge - to oldest tape when no more tapes are found. -- Correct a number of small incorrect interactions between limit - variables during recycling. -- Corrected a bug in db_create_media_record() where VolMaxFiles and - VolMaxJobs was not written to the database. -- When the Director starts, the Pool record is updated in the - database with the current contents of the Pool resource. -- Corrected bnet_connect() to immediately stop (rather than looping - for the timeout period) if there is a fatal error (socket, or - hostname to ip). -- Reworked "purge" code to make purging Volumes easier. -- Made "list volumes" list the volumes in all pools -- also - "list volumes pool=Default" does not produce and error message. -- List Pool record after doing "update pool". -- Remove pid file code from Win32 -- not really necessary. -- Make bnet handle null jcr during cancel rather than crash. -- Add CygwinInstall.bat and CygwinUnInstall.bat -- Add db_lock() around newvol.c code to prevent race condition if multiple - callers want a new Volume name. -- Lots of cleanup to Win32 code, with additional error messages. -- Make Bacula work on Win95 (test for GetAttributesEx). -- Add better error messages when end of media is reached or volume - capacity execed. -- Turned off signal catching in readline(), necessary to keep console - from crashing on ctl-Z with RedHat 8.0. Thanks to David Craigon for - testing this. -- Make the 3rd and hopefully final change to the Finclude structures. - This new version permits multiple sets of options (more code to be - written) to be applied against the same set of files. Thus one can - have options that with match of *.gz and a different set of options - for *.c, ... -- Integrated GNOME Console font resource code supplied by Phil Stracchino. -- Check for job_cancelled() in bnet_connect() code to stop wait loop if - client not available. -- Fix early end of file scanning conf file in lex.c, which previously - caused ABORT -- now reports error. This could happen with an unterminated - string for example. -- Move Maximum File Size code before write and detect error on writing EOF. -- Additional fix for Solaris 2.6 and a bdb.c fix submitted by Armin Buehler. -- Added detection for Solaris 2.6, which uses older setsockopt() calls. -- Defined sockopt_val_t for setsockopt() calls. -- Added fixes sent by Bevan Anderson that fix multiple connects to FD - (I zap keys for security, so must put back dummy key). Also a fix - to the Internal database that wrote garbage after the filename in - the database. -- Back out the __SVR4 changes. -- Add automatic configuration of socklen_t -- Attempt to fix problems reported by Lutz with multiple simultaneous - open file Volumes (experimental code). Serialized acquire. This may - fix the problem, but more thought and testing is necessary. -- Add table of "supported" autochanger models. -- Add Solaris 2.6 (__SRV4) changes sent by Peter Schmitz. -- Correct tape selection code in SD (|| => &&). Thanks to Chuck Hemker - for the patch. -- Eliminate FileOptions. Implement new Finclude and Fexclude that - have file options contained in it. New structure must be transmitted - to FD. -- Split Include/Exclude into new inc_conf.c file. -- Cleanup new Include/Exclude and FileOptions. Structures in Director - now correct. Must transmit FileOptions to FD. -- WARNING: With the adddress and port code in the Catalog you MUST - remove old address= and dport= records!!!!! -- Added code to remove cancelled jobs from the workq -- needs testing. -- Added first cut AIX from output James MacLean sent me. -- Second cut of FileOptions. -- First cut of parsing FileOptions and Counters. -- Added address:port for MySQL as well as socket for local access. -- Fixed job.c in filed to properly handle excluded files. Apparently - I changed the daemon protocol but forgot to update the code. -- Enhance testfind to handle include and exclude files -- Fix getdomainname() prototype for Darwin -- Added new -u and -g options for specifying userid and groupid to - use when running, so that Bacula can reduce its privileges. -- When Bacula was hanging due to an NFS volume being down, I - fixed a few places in the File daemon where is should have immediately - terminated the connection instead of waiting for the Director to do so. -- Added first cut support for Darwin. -- Temporarily comment out the O_NOFOLLOW to avoid possible subtle problems. -- Implemented O_NOFOLLOW in creating files in create_file.c to prevent - creating a file at the end of a symbolic link. -- Use chown() if lchown() does not exist (e.g. Darwin). -- Always close stdin on startup to avoid having /dev/console attached. -- Change all DATE occurrences to BDATE because it is used by Cygwin headers. -- Add printing of Volume names in SD status output. -- Display all open devices in device chain in SD status output. -- All changing Pool in console run command. -- Thanks to Eric Bollengier for pointing out that the run_program() - return status was not correctly generated. Now fixed (I hope). -- Corrected crash in Internal Database getting Volumes. -- Flush all daemon messages at the end of every job. -- Fix Install.bat script so that Bacula restarts after reboot on WinNT/2K systems. -- Minor changes in the gnome-console directory. -- Integrated in my old Tcl/Tk code into src/tconsole and moved it up - from C to C++. Pretty crude, but it is a beginning. -- Close syslog() %n exploit in message.c -- Edit space before each line in gconsole. -- Added INCEXE structure so we can have FileOptions. -- Added support for multiple simultaneous open file volumes. -- Fix hard linked files so that the one saved is always restored. -- Add * to restore "dir" listing to indicate marked files. -- Add ability to make md5sum and sha1sum in lib directory. -- Work a bit more on the new daemon protocol. -- Use unmask of 022 or more restive -- Create File volumes with 0640 permissions -- Added support for SHA1 signature. Need to modify DB to have type. -- Document SHA1. -- Work a bit on getting proper child status from bpipe calls. -- Added Ludwig's mtx-changer to the examples/devices directory. -- Added a Warning not to use the Internal Database when it is initialized. -- Compiled and tested SHA1, and added it to the library. -- Added code to print the "load slot" status after autoloading. - -============================================================================= -2003-01-24 Version 1.29 released -23Jan03 -- Tightened up permissions on all .conf files to be 640 so they are not - world readable. -22Jan03 -- Added prefixlinks=yes/no Job record to specify applying the Where - prefix to absolute soft links. Code is not yet passed to FD, because - FD would then be incompatible with version 1.28. -- Added skeleton of installation for Gentoo release for Patrick Naubert. -- Add timer on open() for reading or writing a FIFO file. -- Put btraceback and btraceback.gdb in sysbin dir (a bit of polution, - but at least dumps will work). -20Jan03 -- Added "append" all messages to a log to default bacula-dir.conf -- Added WriteBootstrap to default bacula-dir.conf -- Made smartall.c print "Out of memory" if malloc() fails. -- Added pthread btimer routines. -- Added timer to FIFO open statement -- George was still having problems with VolUseDuration failing. - On looking into it, one line of code subtracting 1900 was - mysteriously missing from the source -- bizarre. -18Jan03 -- Yesterday's version corrects all the problems I was - previously having, and my production jobs are now completing - properly. -- Added a #define dev_cap() to test the capabilities bits. I just - makes the code a bit shorter and a bit simpler. -- Added phase 1 support for an output fifo device. The big - difference here is that it is a STREAM device, which means that - Bacula will only write to it and not read. Thus, Bacula assumes - that the correct "Volume" is mounted and will construct a valid - label (without needing the Volume to be prelabeled), and write - to the device. -- Added phase 1 support for input from fifo device (suppress re-read, - add empty buffer flag). -17Jan03 -- Improve printout of dbcheck with # files/path fixing. -- Zap SD authorization code after use. -- Added <> back to smtp (think about this some) -- Doc -16Jan03 -- Massive change to add jcr as the first argument to nearly - every db_ call. This is because I was storing the jcr in the - db structure, which will not work because everyone shares - exactly the same structure. -- More cleanups of error termination status in filed. -- Found another bug in message.c where %s was missing in JmsgN. A lot - of cleanup in message.c -- Found places where filename listing was made (restore, verify - vol) where the buffer could possibly overrun. -- Chain include files on the end of the list so that the - order will be correct. -- Rewrote mtx-changer to output one slot per line terminated by - a colon followed by an optional Volume Tag for the "list" command. - Preparation for handling Volume Tags. -- My production crash remains elusive. Adding debug code or running - under the debugger eliminates the problem. I found a case in - message.c where I was extending the message string by two - characters to send it to the console. VERY BAD. Rewritten. -- Started implementing fifo and program handlers (i.e. streams) - in the Storage daemon. Lots to do. -- Added a trace capability where trace statements are written - to a file. Tmsg(). Hopefully this won't be used much. -- Running lots of "production" saved by scheduling a few minutes - after the current time -- slow process ... -15Jan03 -- Removed <> on From and To in smtp.c as suggested by James MacLean. -- Added code to suppress spurious error messages during cancel, - but I was unable to eliminate all errors -- to be worked - on later. -- Up size of print buffer from 2000 to 5000. -- My production run failed again. I'm beginnig to suspect - hardware problems because running by hand or under the - debugger always works -- we will see. -- Added Update Volume VolFiles to reset correct tape files - a bit dangerous. -- Use the mysql_escape_string() rather than internal version. -14Jan03 -- Cleanup handling of JobStatus by creating a subroutine. -- Fix a number of minor things with JobStatus. -- Print FD and SD JobStatus on backup report. -- Add JCR to findlib -- so now FD stops normally when cancelled. -- My production Director segment faulted during the second Job. - I haven't been able to track it down. After rebuilding, all - jobs finished correctly. -- In investigating the duplicated Paths, I found that there - were 10,552 of them -- only Path records. After checking the - code, I do not see the reason, but I've enhanced the code to - print the full path name. -- I made a few improvements to tools/dbcheck. Mostly it provides - a bit more feedback with verbose mode on when eliminating - duplicate filenames or paths. -13Jan03 -- During four simultaneous backups, the File daemon started - detecting buffer corruptions. It turns out to be due to the - fact that the smartall.c routines were not thread safe. They - are now. -- Based on input from James MacLean and team, I eliminated a number - of places where printf could be recursively called by using "%s". -- It turns out that because of an error of my understanding of - mysql_escape_string(), the last argument was taken as the length - of the string to be escaped rather than the maximum length. I've - now corrected all my code -- Thanks James. -12Jan03 -- George Motter reported problems with UseDurations, and it seems - that there were a number of inconsistencies and problems with - FirstWritten and LastWritten. Hopefully for the most part they - are now corrected. Also fixed LabelDate if done through Console. -- Try to chase down reasons why there would be buffer overruns. - Added P & V around referencing last_fname for status. - Rewrote find_one.c with MEMPOOL, but not yet tested enough - to commit. -10Jan03 -- Give extra margin to converting filenames from Unix to Windows - in attribs.c of findlib -- dumb cygwin API doesn't provide for - a length. -- Added file:line traceback to size_of_pool_memory, check... and - realloc in an attept to get closer to the memory overrun reported - by James MacLean. -09Jan03 -- Made yet another fix to quoted string -- paths! Thanks to - Scott Medlock for reporting this. -- Made | and < work. -- Implemented FIFO reading/writing. To do so, simply explicitly mention - the fifo file (named pipe) in the Include AND add the new option - readfifo=yes -08Jan03 -- Started implementing | and < on Include names. -- Changed source to . in cats directory as requested by Andrew Kokarev. - -============================================================================= -2003-01-05 Version 1.28b released -- Corrected a typo of working_directory in bacula-dir.conf - reported by James MacLean. -- Fixed the fact that path and filenames in some cases were not - being quoted before going into the database. Many thanks to - James MacLean for reporting this. - -============================================================================= -2003-01-05 Version 1.28a released -- Corrected a missing quote in bacula-dir.conf reported by James MacLean - -============================================================================= -2003-01-05 Version 1.28 released -General: -- Implemented Bare Metal Recovery for Linux and manual procedures for Solaris -- Now using only a single technotes file kes-1.28 and will add to - it as the development goes on. -- Wrote a general purpose bi-directional pipe command. This replaces - previous use of pipes as well as the run_program previously used. -- Make BSRs stop if no more matches are possible. -- Allow unliminted number of devices in Storage daemon. -- Allow connections to Storage daemon before all devices are initialized. -- Better documentation (and btape test command) on using fixed block - tape drivers. - -Changes submitted this submission: -04Jan03 -- Add cygreadline5.dll to Win32 release -- needed for console -03Jan03 -- Add scripts make_catalog_backup and delete_catalog_backup that makes and - deletes an ASCII copy of the catalog for backup. An example of how - to use it is in the Type). -- Added error messages for SQL errors in autopruning. -19Dec02 -- Documented Bare Metal Recovery -- Create new "rescue" directory containg the Bare Metal Recovery code. -- Fiddle with SQL a bit for pruning as apparently the last InitCatalog - was pruned after the expiration date eventhough it was the ONLY copy! - I'm not sure this is fixed yet. -18Dec02 -- Allow Director to pass a NUL where string to FD (fix in FD). -- Fix installation mv of query.sql. -- Make sure btraceback.gdb is not wiped on "make distclean" -- Corrected a bug in mod of replace options pointed out by Dave Anderson. -16Dec02 -- Started adding FileOptions ... -- Fixed and incorrect print out of the number of files restored (Jarif). -- Finally fixed EndBlock (and file address for Files) in catalog! -- Added hostname to tape header as always planned. -- Removed Level code (will not implement unless strong demand exists). -- Tweaked bscan to print number of errors ignored before first SOS. -- Enhanced btape "fill" to permit using one tape and to dump last - block before writing and upon read back. -- Make fsf_dev() return 0 on fail and 1 on success. -- Use new db_get_job_volume_parameters() to enhance Write Bootstrap to - contain more info (start/end file/block, file indexes). -- Added --enable-static-fd, sd, and dir to configuration to enable making - static versions of the daemons. -13Dec02 -- The btape test program was indicating errors on Adrian's machine - using the ATAPI (ide-scsi) tape drive. It turns out that this - is a fixed block driver as a consequence, Bacula must be setup - to write fixed blocks. btape was not always using the fixed - blocks defined in the Bacula config, so that has been updated. - It now works fine. A lot of tips added to the Bacula test command - to help guide the user. -- Documentation of the above significantly improved in the manual. -12Dec02 -- Added code in watchdog to permit setting and clearing child timers. If - the timer expires, the child process is killed. -- Modified restore to handle differential jobs. -- Added a new test to the btape "test" command -09Dec02 -- More documentation of new features (week position in scheduler, bsr). -- Re-read last block written on full tape to verify it. -- Fix segmentation fault with btape fill command due to missing FileSet MD5. -07Dec02 -- Created better SQL input editing routines str_to_int64 and str_to_uint64() -- Pull Client from database in Console restore command. -- Create a Unique list of Volumes to be mounted (previously had repeats). -- Made many of the SQL searches better by using the ClientId rather than the name - in the restore Console command. -- Modified reading of a tape to include the VolFile info. Once the - tape is past the specified file, reading stops. The BSR now includes - both the VolFile and VolBlock. Currently VolBlock is not used. -- Handle multiple volumes better by creating a real volume list with all - parameters in it. -- Display "At prompt waiting for input" in gnome console when at subcommand - prompt. -- Broke ascii to internal and internal to string editing routines out into - new lib/edit.c file. -02Dec02 -- Added a readme and an afs-bacula script to the examples directory - that permits Bacula to backup an AFS filesystem. Thanks to - Lucas Mingarro for the submission. -- Added A Sun-desktop autoloader script and Device definition to the - examples/devices subdirectory. Thanks to Lucas Mingarro for the - submission. -- If the WriteBootStrap fails, the job will now be marked in error. -- Added a week position to the scheduler syntax that allows you to - specify 1st, 2nd, 3rd, 4th, or 4th, or first, ... fifth as a week - position specification in front of a day. So if you say - - 1st sun ... - - the scheduler will start only on the first sunday of the month. The - day specification can also be a day range e.g. sun-fri. - This code is untested. -- Implemented bpipe.h and bpipe.c in src/lib, which defines a bi-directional - pipe. This allows executing other programs and sending them information - as well as getting info from them. -- Replaced the previous pipe usage with bpipes in RunBeforeJob and - RunAfterJob. -- The mail program now uses bpipes rather than pipes, which means that any - error output will appear in the job output (truly bi-directional). -- Modified BSR to handle counts and to stop when no more matches are possible. - This is untested. -- Improved error messages in smtp. - -============================================================================= -2002-12-12 Version 1.27d -- This is a minor update that fixes a segmentation fault in btape - as well as reduces non-important error messages in bscan. - -2002-11-29 Version 1.27c -- Yet another silly error duplicating a column name in the SQLite - make tables. No code change, just a make file. - -2002-11-29 Version 1.27b -- Set DB version to 5 in DB make files. - -2002-11-28 Version 1.27a -- Use g++ instead of gcc for testfind in tools - -2002-11-27 Version 1.27 (26Nov02) released 28 November 2002 - -General: from kes25Nov02 -- Mostly Cygwin changes - -Changes submitted this submission: -- Updated bdb_find.c to have new calling sequence for db_find_job_start_time -- dird/catreq.c edit in Volume name in error messages to SD -- attribs.c switch to using the cygwin API to convert from POSIX paths - to Win32 paths. This now permits Win32 path specifications in Include - statements (all combinations not yet tested). It also avoids the large - number of errors seen by Lutz if a Win32 path is specified in the Dir. -- Update testfind help and remove set_attribsEx debug code. -- Build testfind as default. -- Turn off debug message in stored/askdir.c - -General: from kes21Nov02 -- Another change in the database. You MUST either re-initialize - your database or use the appropriate ./alter_xxx_tables in - 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 - at the same time. -- Implemented a wait_for_storage_daemon_termination(), which is used by - backup and verify volume. -- Clarified a number of UA prompts, and add feedback where certain commands - completed but printed nothing. (More work to be done here). -- Added a pile of new code to implement Verify Volume to Catalog. It is sort - of a hybrid of "restore" and "verify" in that it actually reads the tape, - then compares it to the catalog. Need Verify Volume to Client. -- Added a good number of checks for job_cancelled() this should permit - quicker and more reliable cancelling of jobs. -- Fixed one bug in restore where I used ofile instead of lname, which means - that if the lname was too long, the memory was not properly reallocated. -- Cleaned up find_one.c in findlib quite a bit. -- Link smtp static so that it works even if the libraries are messed up. -- If mail host is not found, retry with local host in smtp. -- Added slot and stream to the bootstrap record processing. -- Do offline on tape cartrige for unmount command. This can be turned off - by the user in the config file. OffLineOnUnmount in Device resource. -- Implemented AutoChanger = yes/no in Device resource. - -=========================================================================== -2002-07-07 Release 1.22 -- All the basic Restore code to handle the boostrap file is - now implemented with the exception of the Console Restore command. -- Retained compatibility with previous Restore providing no - bootstrap file is specified. However, the old code (JobId based) - will go away in a future release. -- Fixed a number of segmentation faults in the Console program due - to printing of NULL pointers -- thanks to Chuck and his Sun for - finding and reporting them -- mostly in ua_output.c. - - From kes25Jun02 -- Null pointers now are printed as *None* if NPRT() is used. -- At the request of Phil, all resources are now chained in in the - order they appear in the config file. -- Implement Bootstrap record in the Director's config file, which - allows you to specify a predefined bootstrap file for Restore Jobs. -- Allow Bootstrap on the Restore record. This is deprecated. -- Implemented code to pass the Bootstrap file, if defined, to the - File daemon, then from the File daemon to the Storage daemon. -- Added ability to set Bootstrap file in the Console when running a Restore. -- Allow scan_error() routine to be passed to lex_open_file(). This permits - using lex in the Storage daemon without worrying that it will ABORT on - a syntax error. More work is needed to direct the error messages correctly. -- Improved error messages a bit when config syntax errors are found. -- Tested and corrected some errors in match_bsr.c -- Removed askdir.c from bls and bextract by defining dummy entry points. -- bextract now has bootstrap pretty well integrated. -- Changed bextract ABORTs into FATAL and exit(1) or ERROR_TERMINATE. - More user friendly. -- Eliminated at least one lld and replaced it by edit_uint64() -- Eliminated a few more _PROTO()s. -- Corrected a problem with the SQL for in query.sql for - Listing Volumes to Restore All Files - - From kes22Jun02 -- Additional documentation. -- Reduce the time the jcr mutex is locked in lib/jcr.c -- More null pointer printing fixes in lib/parse_conf.c (debug output only). -- Added daemon filename to Kaboom message so I know what daemon died. -- Fix big bad bug introduced in watchdog.c last update that caused - a segmentation violation (forgot to check for NULL pointer). -- Add a bit more info to bad returns from Stored when starting - a job fails. - - From kes21Jun02 -- Fixed scan_to_eol -- Fixed backup scanning forgot one T_STRING -> T_UNQUOTED_STRING -- changed all rwlock_t to brwlock_t to avoid conflicts with - Solaris library. -- Added NPRT() macro to allow printing of NULL pointers, which - segment fault on Solaris. -- Cast printing of pid_t to int for Solaris compiler. - - From kes20Jun02 -- Added expect argment to lex_get_token(). -- Added tree.c and tree.h to lib directory. - - From kes19Jun02 -- Improvements to the bootstrap compiler -- Implemented first cut of bootstrap code in the Storage daemon -- Modified the authentication code to be more explicit during - failures. -- Added a few more debug message numbers with more arguments (Dmsg10, ...) -- Added more and more precise error messages when authentication fails. -- Implemented new "expect" codes in the lexical scanner that allows - the caller to specify what he wants. -- Added integer, positive integer, 64 bit integer, and integer ranges, - and name scanning to lex. -- Implemented new lex code in parse_conf.c, this reduces significantly - the code. -- Hopefully fixed a watchdog race bug that caused the watchdog to time - out a line after 1 hour rather than 6 days. - - From kes15Jun02 -- Implemented a Bootstrap file parser and matcher. -- Implemented first cut of bootstrap code in bextract -- Started clarifying different termination codes. -- Added M_ERROR_TERM to immediately terminate the daemon -- no dump. - Also changed a few termination codes as appropriate. -- Fixed create_jobmedia_record() to include all the fields such as - StartFile/EndFile, StartBlock/EndBlock. -- Print user friendly message when query mode ends. -- Fixed ls style print routines (bextract, bls, restore) to check - buffer size, to print the link if any, and to used edit_uint64() - instead of %lld. -- Moved scan_to_eol() and s_err() to lex.c to avoid dragging in - parse_conf.c for new bsr scanning code. -- New files: bsr.h, parse_bsr.c and match_bsr.c. parse_bsr.c parses - a Bootstrap file, and match_bsr.c matches a bsr against a tape. -- use strcasecmp() in several places instead of lcase(). -- Add first cut of bootstrap to bextract. -- Added File Size limit -- writes EOF after limit exeeded. - -=========================================================================== -2002-06-12 Release 1.21 -- Fixed several problems with filenames being truncated if - they contain spaces. Thanks to the user that reported this. -- N.B. To get the new queries, after the "make" and - "make install" you must explicitly replace the - existing query.sql by query.sql.new. query.sql is a - user configuration file, so it is not overwritten. -- Added GZIP compression of Included files. -- Added additional fields to tape SOS record permitting better - recovery with no database. -- Be sure to remove any !terminate statements you may have - in your config files. -- MUST UPDATE ALL DAEMONS due to protocol change to handle new - tape format. - - From kes11Jun02: -- Updated examples directory with my most recent config files. -- Modified the M_TERM meaning to mean that Bacula has - terminated in error without producing a dump. Previously, - it meant that Bacula terminate (with or without error). - You should remove any !terminate from your messages - resources. -- Changed the order of the libraries in the link so that - tcp wrappers link properly. Thanks Phil for reporting this. -- A user reported that filenames containing spaces were truncated - in bextract. This was indeed the case. They were also truncated - in Restore as well as in Verify. They are, hopefully, all fixed - now. -- Made a few error conditions in Verify non-fatal. -- Modified the Console "query" command to permit multiple SQL - statements per command. -- Implemented three new "query" options: - List last 10 Full Backups for a Client - List Volumes used by selected JobId - List Volumes to Restore All Files - To use them, simply type "query" to the Console program, and - select the one you want. -- Modified bextract to default to extracting all files (i.e. /). -- Cleaned up the code in bextract a bit. - - From kes03Jun02: -- Improve Verify command to include files examined. -- Eliminate fcntl() locking of the console file and replaced - it with a pthreads mutex. -- Note Director - SD protocol is changed to handle new tape - information (Fileset, JobType, JobLevel). -- Create config.out that contains a summary of ./configure - to see what you previously configured: "cat config.out" -- Implemented GZIP compression. Added addition syntax to - Include { } resource to permit setting of any GZIP compression - level: - compression=GZIP - compression=GZIP1 - ... - compression=GZIP9 - - Level 1 is minimum compression and level 9 is maximum. Using just - GZIP gives the default (level 6). -- Enhanced the tape format to include the unique Job name, FileSetName, - JobType, and JobLevel in the Start/End of Session records. The code - detects that tape level difference and acts accordingly. You can - add data in the new format to old tapes. -- Fixed an incorrect display message in the prune command. -- Began implementation of Verify Volume and Verify Data. -- Cleaned up File daemon restore.c a bit ensuring that termination - cleanup is done and all possible Emsgs are converted to Jmsgs. -- Modify bls.c to use common setup routines. This reduced the big - code duplication that creeped in when I added different listing - options. Also, changing tapes is now handled uniformily in a subroutine. - -=========================================================================== -2002-05-27 Release 1.20 -- Started documenting Catalog Pruning and Recycling. - Added catmaintenance.html and recycling.html -- Fixed the query command bug. -- Implemented PID files to prevent two copies of Bacula - from running at the same time. Be sure you --with-pid-dir - points to a working directory. -- Modified ASSERT() to cause a segmentation violation. This - permits a core dump. -- Worked on gnome-console. It paints better, it tells you if it - is ready to accept a command or processing one, and it is - almost entirely GTK+ (rather than GNOME, I'm removing GNOME - a bit at a time). -- Limit to 100 the number of tape labeling errors in a single Job. -- Add some additional ASSERT()s to the database routines. I don't - like ASSERTs but they do catch bugs. -- Tested and debugged recycling of Volumes. Needed to change - the Director-SD protocol slightly. -- Removed the experimental SIGHUP in the Director as it is a - potential source of errors. -- Added Level, Pool, Messages, and Storage keyword/value scanning - to the Schedule Run record. -- Improved printing of Schedule resources with "show schedules" -- Do not autoprune Jobs/Files if the Job errs. -- Updated newvol() to pass back the updated Media record. -- Fixed the "update pool" command, which was broken during a much - earlier code reorganization. -- Improved a few of the pruning messages. -- Removed readline inclusions from gnome-console (hang over from console). -- Make Jmsg use daemon message handler if no message handler is defined. - This is always the case in the SD and FD. -- Started removing __PROTO(). With C++ prototypes are manditory, so why - keep around legacy code. -- Added a good deal of message internationalization -- more to be done. -- Move cached Path into mdb structure and use POOLMEM. -- Fix verify bug introduced last update causing incorrect diffs - by turning off autopruning. -- Started adding code to distinguish Errors from Fatal Errors. -- Errors are now counted in message.c for a Job. -- More POOLMEM cleanups. -- Implemented Automatic pruning. -- Implemented Automatic recycling of Volumes. -- Added PruneJobs/Files/Volumes=yes or no to Job resource. If set, - it forces the specified pruning. -- Modified rwlock to accept multiple nested write lock - requests. -- Modified the cats directory to use the new rwlock mechanism - in place of P() and V(). -- Defined db_lock(mdb) and db_unlock(mdb). They are in effect - transaction locks. -- Add CVS Id's to most files. -- Made first cut at AutoPrune -- Added new autoprune file that is called at the end of - each Job. It then decides when and what to prune and - calls the UA prune routines. -- Modified Run (in Schedule resource) to permit overrides of - Level, Pool, Storage, and Messages. (not tested). -- Added more POOLMEM in place of char. -- Implemented daemon pid files. This prevents multiple - daemons from running simultaneously. You can run multiple - daemons if they listen on different ports. -- Documented the Schedule resource a bit better. -- Began gently adding a POOLMEM type (perviously void). - For the moment it is a #define to char, but long term - it should be its own typedef. -- Corrected a bit of spacing on the status bar of gnome-console -- Added Admin and Archive Job types. -- Implemented multiple Messages resources. Each daemon has - its own message resource, which defaults if not defined. - Jobs may now have different message handlers. -- Cleaned up a bit of duplicate code in backup, verify, and - restore by creating appropriate subroutines in job.c -- Added Type, Client, FileSet, and Level resource record - definitions to the Director. These can be used in place - of the Backup = ..., Verify = ..., ... commands. This needs - documenting. -- Corrected an incorrect message in the prune code and added - the number of Files pruned in the message. -- Corrected several paint problems with gnome-console. -- Added a bit of printout in signal handler during traceback. -- Cleaned up most of sm_check() to be turned on/off by define - in version.h - -=========================================================================== -2002-05-10 Release 1.19 -- Allow the user to select a new period for pruning. -- Lots of additions to the manual -- prune and purge - commands documented. -- Applied Phil's configure.in fix for --prefix, ... -- Fixed bug found by Phil (patch supplied) in updating - MD5 signatures (revert to 32 bit FileId, move "static" - variables into JCR) (catreq.c fd-cmds.c). -- Reverted to using INTEGER for FileId in make_sql_tables - due to a bug in MySQL. -- Change editing code to %d for FileId. -- Remove sqlite in make distclean in cats directory. -- Remove console.conf in console during make distclean. -- Remove gnome-console.conf during make distclean. -- Remove bacula-dir.conf during make distclean. -- Set default level when using Console if none specified. - Bug reported by Phil. -- A simple . command from Console is ignored. -- Change program named from filed to bacual-fd in winmain.cpp -- Change default config file for Win32 in winmain.cpp -- Free namebuf on early return from find_one.c. Bug reported by Phil. -- Modify testfind.c to dump orphaned buffers. -- Removed terabytes from parse_conf.c because of problems with - older gcc compilers. -- Turn off gnome options in gnome-console by constructing empty argv. -- Fixes to Verify when only MD5 differs. -- Insert 0 for MD5 as default rather than space. -- Allow .messages "transparent" command while reading input - in UserAgent server. -- In dird/verify.c ensure that correct filename is printed if only - the MD5 differs. Minor reindenting caused large diff. -- Delete unused code from backup.c -- In filed/verify.c ensure that same algorithm as backup.c is used - to pass back MD5 signatures -- especially for directories and files - that cannot be read. Change dummy filename from X to *MD5-id*. - This dummy value should never be printed. -- Make gnome-console poll Director every 5 seconds for output. - This means that queued up messages are displayed at reasonable - intervals. Delete some unused code hanging around from the tty - console program. -- Begin implementation of prune commands. -- Add command line history to gnome-console. Not yet saved across sessions. -- Fixed some broken URLs in the manual. -- Added JobId type. -- Wrote first cut of "prune files" and "prune jobs". -- Added command line history to gnome-console 2500 lines max. -- Widened store_time() and associated variables to 64 bits using - new btime_t definition. -- Removed GNOME about box and replaced it with - a somewhat crude Gtk+ about box in the gnome-console. -- Widened StartDay in the Job DB record to be 64 bits. -- Changed edit_uint_ to edit_uint64_ everywhere. Much more - descriptive of what is done. -- Removed most llds and replaced them with %s and edit_uint64. - This makes the code a bit easier to read for beginners. -- Added a btime_t typedef which is 64 bits wide. -- Added most of the code needed to do Purge and Prune of - database. Not yet tested. Please do not use. -- Additional config options for Console. -- Started adding code for Automatic Recycling of Volumes. -- Allow arbitrary length filenames in Verify code. -- Fix incorrect filename in Verify code. -- Significant enhancement to number scanning in config parser. -- Requires initializing MySQL tables, or applying cats/alter.sql - to modify Media table. -- Modified Makefile to printer a much more visible - message if the make ends in error. -- Added the Purge value to the VolStatus in the Media table. - This value is set if the Volume is purged. -- Enhanced the db_delete_media_record() routine to delete - all associated records in the database. -- Modified Console to always write to the variable "output" - rather than stdout. This will permit directing output to a file. -- Enhanced the Console configuration file to have a Console - resource. This will allow us to add an rcfile and history file. -- Modified Find_next_vol in catreq.c to search for "Recycle" - volumes if there are none marked Append. Also made Get_Vol_info - return the VolStatus to the Storage daemon. -- Allow upper/lower case match on job level names. -- Added another warning message to the Console "delete media" command. -- Corrected a number of FileId types from uint64_t to FileId_t in - ua_retention.c. -- In ua server close database before freeing JCR (because pointer is - kept in ua and jcr structures). -- parse all numbers as doubles. Do lots of checking for valid number - formats. Allow numbers in scientific form (e.g. 1.5e+10). -- Remove terabyte modifier as it doesn't work in some compilers. -- Fix bug in handling some modifiers. -- Added all necessary code for Recycle to Storage daemon. A Volume - marked Recycle will now be overwritten. -- Filled out the prune command a bit and did some testing. -- Make console accept redirected input. -- Altered the Table definitions to include Recycle, - FileRetention, JobRetention, and AutoPrune. -- Widened StartDay to 64 bits. -- Use JobId_t in more places. -- Added the new table fields to the database record definitions. -- Changed Recycle from string to a binary quantity. -- Added a Version table with a VersionId to detect. - future changes in the database. This should prevent - a Bacula from working with a database that is not in sync. -- Modify Console to accept input from a file. This will permit - the .read command and allow reading a .rc file. -- Added new retention and recycle variables to the Director's configuration. -- The UA subroutines or commands can now be called from core - code because the output routines detect the absence of a - UA socket and direct output to the Job. -- Added a verbose flage to the ua packet to permit reduction of - output while running a UA command (prune) from a Job. -- Did a fair amount of work on the prune command. Prune Volume now works. -- Purge Volume now works. -- Made last changes for integrating prune and purge commands. -- Add -ltermcap to CONS_LIBS when readline is configured. - More work to be done to search for termcap. -- Added cats/drop_sqlite_tables.in, which will delete the SQLite database. -- Got CWEB working so that we can compile filesys.w and immortal.w -- Modified depkgs to include cweb. -- Note, CWEB is not yet used by the core Bacula code. -- Made cats/alter.sql, which alters an old database to bring it - up to the new format. This only works with MySQL since SQLite does - not have the ALTER SQL command. -- Changed the old StartDay field in the db to be JobTDate, which is - the latest time/date in widened Unix time format that the Job ran. - This value is used when doing pruning. -- Added code in cats/sql.c to verify that the database internal version - corresponds to the db version compiled in Bacula. It is set to 1 currently. -- Lots of changes to cats to bring the SQL up to date with the new - retention period changes. -- Added Console command code to permit changing a Volume's retention period. -- Removed old code that used date_encode() and replaced it with widened - Unix time(). -- Started modifying Message resource scanner so that we can have multiple - message resources. Much more work to be done. -- Moved scanning for time into new library routine string_to_btime(). - -=========================================================================== -2002-04-22 Release 1.18 -- Applied Phil's configure.in fix for --prefix, ... -- Fixed bug found by Phil (patch supplied) in updating - MD5 signatures (revert to 32 bit FileId, move "static" - variables into JCR) (catreq.c fd-cmds.c). -- Reverted to using INTEGER for FileId in make_sql_tables - due to a bug in MySQL. -- Change editing code to %d for FileId. -- Remove sqlite in make distclean in cats directory. -- Remove console.conf in console during make distclean -- Remove gnome-console.conf during make distclean -- Remove bacula-dir.conf during make distclean -- Set default level when using Console if none specified. - Bug reported by Phil. -- A simple . command from Console is ignored. -- Change program named from filed to bacual-fd in winmain.cpp -- Change default config file for Win32 in winmain.cpp -- Free namebuf on early return from find_one.c. Bug reported by - Phil. -- Modify testfind.c to dump orphaned buffers. -- Removed terabytes from parse_conf.c because of problems with - older gcc compilers. -- Turn off gnome options in gnome-console by constructing empty - argv. - -=========================================================================== -2002-04-18 Release 1.17 Kern Sibbald -- Ensure that platforms Makefiles are called for clean - and distclean. -- Hide a lot of Makefile messages with @ -- Applied Phil's configure.in patch. Thanks. -- Doc updates, many to clarify points brought up by Phil. -- Applied Phil's make_mysql_tables.in patch. Thanks. -- Made authenticate.c in dird test bnet_send status. -- Make label a bit more friendly with extra info message. -- Add level 200 to debug info in run command. -- Remove old code from findlib/testfind.c so that it compiles. -- Add two minute max wait to cram-md5 authentication. Hopefully, - this will catch non-responding WinNT daemons. -- Allow time and size modifiers to be upper or lower case. -- Turn off old CYGWIN patch for pthread_cond_timedwait() bug that - now causes File daemon hangs on WinNT. -- Fix mount messages for restore. Previous updates to save - broke the restore code. -- By default write fixed block sizes rather than variable block - sizes. My Sony DAT simply does not work (reread failures) with - variable block sizes. -- Data split across tapes was not being correctly restored - (at least on DAT tapes). -- Implement MaximumBlockSize and MinumBlockSize statements in - Storage daemon so user can specify variable block sizes if - desired. -- Return error if block checksum error on read (previously - ignored). -- Fixed some error messages in bls, and in some cases exit(1) - rather than ABORT. There remain ABORTs to be examined. -- Made a local copy of tcpd.h and corrected the function - prototype problem for C++. - -=========================================================================== -2002-04-14 First public release 1.16 Kern Sibbald - - Many intervening changes/updates. - -2001-09-29 Release 1.0 Kern Sibbald - - Fixes to problems found at John's installation. - - See techlogs/kes25Sep01 for details - -2001-09-25 Release 1.0 Kern Sibbald - - Helped John install at his site. - He is backing up one Linux machine and - one Win2000 machine. - -2001-mm-dd Many releases - - Released internally. - -2000-04-09 Release 0.4 Kern Sibbald - - Added a lot of Director configuration code. In - part (a small part), the Director now uses the - bacula.conf file to know what to do. There still - remains a lot to do. - - The file search code is now integrated into the - MySQL database routines, and Bacula is now hooked - into the MySQL database (if so configured). Thus - all the database records are being created, though - there still remains some work in getting all the - details into the records (such as the Storage - coordinates). - - I've defined how Volume pools work (see manual). - - I've defined error message handling though no code - is yet written. - - The following resources and records are implemented - in the Director configuration file (bacula.conf): - - Director - Name (passed to Storage daemon) - Client - Name, Address, Port - Password (not yet used) - Storage - Name, Address, Port, Password, MediaType - Job - Name - Type (not yet used) - Backup (only one permitted) - Client, FileSet - Storage - Schedule, Messages, Pool (not used) - FileSet - Name - Include (options ignored) - Exclude (no options) - Schedule (not used) - Name - Messages (not used) - Name - Debug, syslog, mail, append (not used) - Catalog - Name - Address, Port, Password (not used) - Pool (not used) - Name - PoolType, MediaType (not used) - - - Added Storage configuration routines. - Director - Name, password (verified against those sent by Director) - Storage - Name, Address, Port (address, port must correspond to Director's values) - Password, MediaType - Device - Name, MediaType (must correspond to those sent by Director) - Archive Device (defines device name) - - -2000-03-10 Release 0.3 Kern Sibbald - - Implemented new base64 encoding for attributes. - This eliminates some of the error messages in the - sprintfs on the Solaris due to different stat() sizes. - - Implemented the first cut of the file search routines for - the File daemon. The exclusion lists work including wild - cards. There is a lot of work to be done, but the basic - structure is now in place (wild cards do not yet work for - the include). - - Completed writing the memory pool code. Now I must - implement it in the daemons. - - Modified the bacula start/stop script so that it has a - better chance of working on SGI and Solaris. - - The catalog code has not been converted to the new file - search code. - -2000-03-06 Release 0.2 Kern Sibbald - - Integrated John's fixes. - - Made Makefiles self configuring when Makefile.in is changed. - - Added a runit script in the top level that runs bacula - - Added a "bacula" script in the top level directory that - starts and stops the File daemon and the Storage daemon. - -2000-03-03 Release 0.1 Kern Sibbald - - Basic Director, File, and Storage daemons. - Standalone Catalog services using MySQL - -2000-01-22 Kern Sibbald - * Setup basic file structure with ./configure diff --git a/docs/techlogs/RN-2.0.0 b/docs/techlogs/RN-2.0.0 new file mode 100644 index 00000000..706ae203 --- /dev/null +++ b/docs/techlogs/RN-2.0.0 @@ -0,0 +1,392 @@ + + Release Notes for Bacula 2.0.0 + + Bacula code: Total files = 438 Total lines = 154,329 (*.h *.c *.in) + +==== IMPORTANT Catalog update required ===== +- The database format has been updated from what was used in + Bacula 1.38.x. You must manually update your database before + running Bacula 1.39.x or higher. If you are using Bacula supplied + RPMs this is not necessary as the RPM does it automatically. + Please backup your previous version of the database before + running the update. The update script will be automatically + installed in your scripts directory, or can also be found in + /src/cats. It is called: + + ./update_bacula_tables + + It is necessary to run it only once the first time you move to + a 2.0.0. Upgrading the Bacula version thereafter does not + require updating the database again. Depending on the size of + your database the script make take a bit of time, to run, but + in general, it should be very fast. + +==== IMPORTANT new Win32 install procedure ===== + For Win32 migrations from versions prior to 1.39.0 nothing special + needs to be done to upgrade. Everything should be taken care of + automatically. The only thing not done is to delete the old C:\bacula + directory mostly out of paranoia. + +==== IMPORTANT miscellaneous ==== +- The Gnome console program (gconsole) no longer functions as it + should.More importantly, in restore mode, the restore tree is + no longer shown in the left pane. I suspect this is due to + incompatible changes in the GTK+ API, and hence have given up + on gnome and gtk+, as this has already happened several times + previously. At some point there will be a new GUI console. +- The bacula-dir.conf directive Accept Any Volume has been + removed because it was never implemented. You must delete all + occurrence of this directive for the Director to run. The Storage + daemon will automatically accept any valid Volume that you mount. +- The --mandir ./configure option now points to the top level man + directory. The man files will be installed under mandir/man8 and + mandir/man1 as appropriate. +- You *should* be able to use 1.38.x FDs with version 2.0.0 Director + and SD providing you do not use any of the new features (runscript, + data encryption). It seems to work here, but we do not guarantee it. +- Your Director and SD must be simultaneously upgraded. +- The restore command no longer uses the MediaType as the primary method + of finding a suitable Storage device. Normally it will select the last + device used to write a Volume. If no storage device is defined, it + will use the old algorithm which selects the first Storage resource + with the correct MediaType. +- The MD5/SHA1 hash codes kept in the database are now kept in a binary + format compatible with the rest of the world. If you are running verify + jobs, you *must* do an InitCatalog or all files will show an MD5 + difference. Also, authentication uses the new algorithm by + default, but *should* accept connections from older components (FD) using + the old non-compatible algorithm. This has been tested, but more + more testing is still needed. +- A stock SuSE 10.1 kernel may crash when Bacula runs and accesses + the tape drive. Workaround, load the SuSE 10.1 version 2.6.16.21-0.25 + kernel or later. The SuSE 10.2 Alpha 5 or later kernel also works. + This problem may also be present in certain Fedora FC5 kernels. +- If you have been using the data encryption feature of 1.39.x, please + be aware that certain combinations of encryption and other options + with version 1.39.0 through 1.39.26 created Volume data that cannot + be restored. We strongly recommend that anyone using encryption + carefully review his/her backups and at a minium do a Full backup + with 1.39.28 of all encrypted data. Robert Nelson has identified + and fixed it as follows: + As of 1.39.27: + No filters = Works fine + Sparse = Works fine + Compression = Works fine + Encryption = Works fine + Sparse + Compression = Works fine + + Sparse + Encryption = Restore broken + Sparse + Compression + Encryption = Restore broken + Compression + Encryption = Restore broken + + As of 1.39.28: + Most combinations work, but some encrypted files are + not properly restored. + + As of 1.39.30: + All combinations work fine except Sparse+Encryption. + + Bottom line, if you are using data encryption, please test restoring + data to be sure it all works correctly. +- The current Volume format written by 1.39.22 is different from + the format written by previous versions. The two formats + are not compatible. Thus any DVDs written prior to 1.39.22 will + be unreadable by version 1.39.22. +- If you previously run a Bacula version prior to 1.39.30, the JobMedia + data may not be correct for disk Volumes. This can cause incorrect + seeking in versions after 1.39.30. If you experience what appears to + be data I/O or integrity errors during restores, please add the + following directive to your disk DEVICE resource in the Storage + daemon conf file: + + Block Positioning = no + + This will turn off all seek requests during restores and avoid + this problem. +- VSS for Windows clients is now enabled by default. +- Do not unload autochanger when doing "update slots" +- Implement mount command for autochanger, see manual. + +New Features in 2.0.0: +- Turn on disk seek code for restores. +- There is a partial but reasonable translation of the Bacula + messages for French. To install it, first configure and build + Bacula, then as root run: + + cd /po + make install + + If you have your locale set properly you will get the translated + messages. +- Bacula now support Migration jobs that are documented in a new + Migration chapter in the manual + http://www.bacula.org/dev-manual/Migration.html +- Data encryption is now implemented and is documented in + a new chapter of the manual at: + http://www.bacula.org/dev-manual/Bacula_Data_Encryption.html +- Additional support for removable devices. See the + Requires Mount, Mount Point, Mount Command, and Unmount + Commands in the Storage daemon configuration chapter: + http://www.bacula.org/dev-manual/Storage_Daemon_Configuratio.html + Also see the Edit Codes for Mount and Unmount Directives in the + same chapter. +- Switch the Win32 build from using Microsoft C++ to using mingw32 + cross-compiling. The initial work was done by Howard Thomson, + then tweaked by me. Robert Nelson then totally reworked the + cross-compiling code so that it not only cross-compiles, but + also compiles on Visual Studio, and at the same time, he added + all the current Unix features to the FD, such as selection on + drives, encryption support, building *all* the tools, ... +- The Director and Storage daemon have now been ported to Win32. + This code is working but should still be tested carefully + before putting into production. +- Bacula restore and bextract can now extract non-portable Win32 data to + any client (including Unix/Linux clients). Of course, in doing so, + the Microsoft specific permissions and ACLs will be lost. Thanks + to Thorsten Engel for this code. +- The 260 character limitation for Win32 paths name lengths is now + eliminated thanks to Thorsten Engel. However, if you are using + Volume Shadow Copy, please be careful to specify all the paths + in the bacula-fd.conf file using a full path notation including + the drive letter. +- Eric Bollengier wrote new RunScript directives that includes + the old RunBefore/AfterJob and ClientRunBefore/AfterJob features + plus a *lot* more, allowing you to control just about every aspect + of running scripts. See the manual for detailed documentation. + http://www.bacula.org/dev-manual/Configuring_Director.html#5227 +- SunOS ACLs should now work thanks to a patch from David Duchscher. +- 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" + This can be used to preview the next scheduled job (and the + next tape to be used) on Fridays if there are no scheduled jobs during + the weekend. +- From Eric Bollengier. One can now using the bconsole wait command do: + wait (wait for all jobs to stop) + wait jobid=nn + wait jobuid=unique id + wait job=job-name +- Volumes can now be set to Enable, Disable, or Archive. If they + are not enabled, Volumes will not be mounted. + Implement update volume enable=(on|off|true|false|archived|0|1|2) +- Add Catalog message destination in Messages resource that puts the + job report in the Log database table. +- Writing/reading DVD Volumes is much more stable -- to the point + of being useful. Thanks to Richard Mortimer. +- 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. +- The database Id records should be 32/64 bit independent now. 64 bits + can be enabled by changing one define and changing the appropriate + table variable. Normally, you need 64 bits only for FileId. +- Relative path specifications (i.e. ../xxx) are now permitted in + the restore cd command. +- When running multiple simultaneous jobs, most jobs that use spooling + will now finish faster due to a mutex optimization made by Eric + Bollengier. +- Conf files containing UTF-8 marker at the head of the file as well as + conf files containing Window cr/lf and Mac cr line termination characters + are now accepted thanks to Robert Nelson. +- Windows tray status windows are scrollable and resizable. +- Win32 external script execution is much more flexible -- handles + spaces in names better, ... +- Lots of DVD fixes -- writing DVDs is now reported to work. +- Fix opening of database in a restricted console to respect + any Catalog ACL. +- Much better automatic handling of multiple database catalogs in + the restore command. +- Permit multiple console/director resources in bconsole.conf. + patch from Carsten Paeth calle@calle.in-berlin.de +- Character substitution in Job/JobDefs WriteBootStrap. + from Eric Bollengier. +- Apply patch supplied in bug #656 to pass priority field + in the run dialog to the Director in gnome console. +- Add support of encrypted data stream to bscan from Eric. + display data_len instead of data content (may be binary). +- Add Enabled=xxx on update slots command. +- Add host:port to connect failure messages to FD and SD from Dir/ +- Add WhereACL to console ACL list. If nothing is specified, only + the default is permitted for restore. Otherwise, *all* allows any + path, or you can specify permitted paths. This should allow control + over where users can restore files. This is untested. +- Install man pages with 'make install'. +- Add Media.Enabled flag to client backups for dotcmds.c +- Enforce Media.Enabled=1 for a current restore to work +- Require restore case 3 to have sqlquery permission to work. +- Add -n option to bconsole to turn off conio -- used in bweb. +- The bytes field in the terminated jobs part of the status + command now reports in KB, MB, ... units. +- When not descending into a directory, print the File= name that + triggered it -- makes why not descending a bit clearer +- Do not unload autochanger when doing "update slots" +- Implement mount command for autochanger +- Fix bug #462 incorrect error message printed when client script called + from File= was not found. +- Fix bug #558 (waiting for feedback) where Bacula needs too much time to + do a rewind on Solaris when no tape is in the drive (Solaris does not + have the detailed errno found on Linux). Added Solaris specific code. + Note, this may apply to other OSes as well. +- The examples directory has a new bacula_mail_summary.sh file that + creates a single email summary of any number of jobs. Submitted by + Andrew J. Millar. +- Add nagios plugin to the examples directory. Submitted by + Christian Masopust. +- Modify most restore error messages to be queued so that they + appear at the end of the job rather than mixed with the restore + listing where they could be "lost". +- Apply patch supplied by user (slightly modified) to fix + correct detection of holes in block devices and FIFOs. + Bug # 506. +- Added a report.pl program to the examples directory from Jonas Bjorklund. +- 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, ...). +- Implement new code for changing userid and group at startup. This + should get Bacula into the correct groups. +- Implement support for removable filesystems -- device type directive + and mount, unmount directives. +- Transfer rates are now presented in a more readable format thanks + to a user submission. +- SD is now aware of what volumes are mounted. More information is printed + in the Status report. You must take much more care now to unmount + devices prior to removing tapes that Bacula has open or prior to + changing a magazine. Don't forget to do a mount afterwards or the + device will be blocked. +- The Pool Maximum Volumes directive is now respected in all places. +- A Storage device can now be specified in a Pool resource. It will override + all other Storage specifications. +- Most but not all directives accept true/false in place of yes/no. +- A patch from Karl Hakimian that reads JobIds, FileIndexes + from a database table for restore. +- There are a number of new tables. Some such as the Location table are + designed for user use in doing Volume Management software. +- Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to + accept time qualifiers. +- Implement jobuid to replace old usage of job in keywords as + suggested by Eric Bollengier. +- Implement write variables for Python to set Priority (anytime), and + Job Level, only during JobInit event. +- Use the keyword ujobid to mean the unique job id; job or jobname + to mean the Job name given on the Name directive, and jobid to + be the numeric (non-unique) job id. +- Allow the SD to use multiple drives during a backup/restore (only + one at a time). +- Integrate addition of line count limitation to bsmtp -l from + Sebastian Stark +- Split the bacula start/start script into four files: + bacula -- starts and stops calling other scripts + bacula-ctl-dir -- starts/stops the director + bacula-ctl-fd -- starts/stops the File daemon + bacula-ctl-sd -- starts/stops the Storage daemon +- Remove automatic case folding on Windows FDs. You must + explicitly use the 'Ignore Case = yes' option. +- Implement wild program in tools directory for testing + wild-cards. Almost identical to the regex program. +- Use the new bregex.c to implement Regex expressions on Win32. +- Apply patch from Christopher Hull + - Allow multiple connections to database with different + parameters. + - Invalidate the scheduler when doing a reload. Fixes seg + fault, but still 60 second window. + - Additional info in Reschedule message. + - Use set_jcr_job_status() everywhere to prevent loss of + cancel, error. + - Display peer IP in FD if error from connecting DIR. + - Don't increment file count for DIRBEGIN. + - Replace illegal characters in Win32 filename by _. + - Add SE_CREATE_PERMANENT_NAME privilege in Win32. + - Hash hard link filenames rather than linked list (performance). + - Fix for security failure in chdir on Win32. + - Add CreateDirectoryA/W win32 API entry points. +- programs to duplicate Bacula's base64 algorithm using standard + routines. This fixes bugs #296, and 565. Patch submitted by + author of bug #565. +- Fixes to reloading the Dir conf file from Eric Bollengier and Christopher + Hull. +- Modify LICENSE to correct some problems pointed out by Debian. +- Apply a patch submitted by cesarb in bug #606 to implement O_NOATIME support. + O_NOATIME is a open() flag which makes it possible to read a file without + updating the inode atime (and also without the inode ctime update which + happens if you try to set the atime back to its previous value). It also + prevents a race condition when two programs are reading the same file, but + only one does not want to change the atime. It's most useful for backup + programs and file integrity checkers (and bacula can fit on both + categories). + You enable it in the Bacula FileSet Options resource by setting: + noatime = yes + The effect of this option is similar to the keepatime option except + it is more efficient and avoids modifying ctime. +- Implement a pile of new man pages contributed by Jose Tallon. +- Modify the database format for handling Migration jobs: + Add PriorJobId, RealEndTime to Job table + Delete MAC table + Remove Stripe from JobMedia record (not used, wasting space) + Add ScratchPoolId, RecyclePoolId, Enabled to Media record + Add Cost to Location table. + Enabled to Media table and Location table. +- Security: harden authentication failure in FD by single threading errors + and forcing a 6 second wait. +- If using GCC (actually g++) add the following compiler flags + -fno-strict-aliasing -fno-exceptions -fno-rtti +- Turn on new bsnprintf() code. The reason for this code is to + eliminate the security problems associated with using the + system libraries print routines. +- Implement job report that indicates where Storage and Pool + came from -- with overrides and Pool storage and NextPool, + it is all very complicated. +- Add more detail (Storage, Device) to list of volumes printed + for restore. +- Add new VOLMGMT message class. No messages are yet sent with this + class. +- Improved Bacula rescue procedures -- see the Disaster Recovery + chapter of the manual +- Add spooling/despooling info in status output of SD. +- Add Comment field to llist of a volume. +- Allow true/false in many but not all yes/no directives. +- The Bacula source code is now copyrighted by the Free Software + Foundation Europe. The Developer's Guide documents the new procedures, + and the LICENSE file has been updated. +- Apply Jaime Ventura's patch that implements the Messages resource + Mail On Success directive. +- The Client returns its Version string, which is printed in the Job + report. +- The Client returns whether or not VSS and Encryption are used, which + are printed in the Job report. + +Additional Features Added for Win32: +- Added DriveType directive to the Director's Include Option FileSet + resource. Allowed values are: fixed, removable, cdrom, and remote. There + is only an implementation for Windows because it is the only platform that + has the concept of drives. + +- Adds EnhancedWild directive to the Director's Include Option FileSet + resource. Allowed values are: yes and no. + + When EnhancedWild is enabled then the processing of the + Wild, WildDir and WildFile is changed in the following ways. + + Patterns conform to Posix + \ is not a special character in character classification [] + To match a - it must be the first or last character + To match a ] it must be the first character + + fnmatch option FNM_FILE_NAME is specified * doesn't match a / + so it won't match multiple directory levels in a path + +- Relative WildFile patterns (ones without a leading /) match + against the filename portion. This in combination with the + FNM_FILE_NAME fnmatch() flag makes directives such as WildFile = + abc*.def work as expected. + +- Adds support for the shell's feature of brace expansion. + + Here is an example where braces allow 24 lines to be expressed in 5. + + # Exclude directories full of lots and lots of useless little files + WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/Cookies" + WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/Recent" + WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/History" + WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/Temp" + WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/Temporary Internet Files" diff --git a/docs/techlogs/technotes-1.39 b/docs/techlogs/technotes-1.39 new file mode 100644 index 00000000..484fe7a3 --- /dev/null +++ b/docs/techlogs/technotes-1.39 @@ -0,0 +1,1795 @@ + Technical notes on version 1.39 + +General: +Version 2.0.0 released: 4 January 2007 +03Jan07 +kes Apply Eric's fix for client name editing on RunScripts. +kes Fix an incorrect dbcheck reference to Id. + +Version 1.39.34 released: +28Dec06 +kes Convert dbcheck to use 64 bit DB IDs. +kes Update projects +kes Make rescue work. +kes Clarify Volume migration error message. +kes Look for Job keyword when opening DB in console. +23Dec06 +kes Add code in catreq.c to reject volumes not marked Enabled. +kes Add a few more ACL access checks. +kes Add \n in gnome2-console restore command so that output prints + nicer -- i.e. lines do not run together. +kes Fix autolabeling so that it will not mark a volume in error + if the volume was not actually opened. This should fix bugs + #737 and 738. +kes Require tape drive to be open before autolabeling. +kes Require explicit mount command on non-tapes before autolabeling. +kes Implement an open_client_db() that searches the keywords for + either a catolg or client, and opens the appropriate catalog. + This makes Bacula adjust better to multiple catalogs. +kes Use more name() methods for resources rather than hdr.name. +22Dec06 +kes Fix code to check for two resources of same name. It forgot + to check the last entry. Fixes bug #734. +kes Apply scanvolume patch from Richard Mortimer that fixes bug + #738. +kes Apply Eric's patch for recycling the Scratch pool. +kes Note, for the tray-monitor (or almost any restricted console_ + to work, in version 1.39.x you must add CatalogACL = catalog-name +kes Add appropriate new #undefs to autoconf/acconfig.h so that + configure works correctly. +kes Implement configure code to allow the user to disable IPv6 with + --disable-ipv6 +kes Apply Richard Mortimer's patch to prevent seg fault if mount point + not specified -- SD refuses to start. +kes Add magic.bacula from bug #715 to the scripts directory along with + Arno's explanation of how to install it. +kes Convert a bunch of hdr.name into name() method calls. +kes Fix the code to remove .bsr files. Fixes bug #736 -- Martin. + +Version 1.39.32 released: +20Dec06 +kes Take first catalog if gui is set, or if using dotcmd. +kes Fix a couple of compiler warnings in wx-console +kes Apply the immutable patch for FreeBSD hardlinked files supplied + by Olivier Lehmann. +kes Add Volume name to Forward spacing message. +kes Update migration job start time (so it is not zero) to prevent + immediate recycling of the job. This *should* fix bug #733. +19Dec06 +ebl Fix runscript configuration parsing bug. +17Dec06 +kes Add ENABLE_NLS (as suggested by Eric) to correct NLS problems. + Remove NLS kludge from baconfig.h. This fixes bug #729. +kes Allow seeking on DVD. +kes Add additional messages when Job canceled automatically for + max run time or max start wait exceeded. This fixes bug #621. +kes Update maxruntime-test in regression script to properly test + max run time -- from info given in bug #621. +kes Simplify automatic cancel code. +kes Add check for job_canceled() in FD when contacting SD so that if + job is canceled from max runtime, it terminates faster. +16Dec06 +kes Save and restore volume name in stored/mount.c fixed bug #712 + where wrong tape was requested in a mount. +kes Implement cleaner orphan buffer dumping with buf address. +kes Fix orphaned buffer when canceling job waiting on op intervention. +kes Update projects file for next vote. +kes Implement a fix (more could be done) for bug #728 where a double + EOF is writing on the Volume when spooling is enabled and the + connection with the FD fails (FD crash, comm error). +kes Disable attempting to autolabel when polling and device is not + a tape. This fixes bug #730 where polling with a removable disk + not mounted caused lots of new Volumes to be created then marked + in error. +15Dec06 +kes Enable VSS by default. + +Version 1.39.30 released: +14Dec06 +kes Complete hopefully the last of the copyright transfer changes. +kes Separate NumVolumes in SD to NumReadVolumes and NumWrite volumes so + that migration writing to multiple volumes doesn't mess up reading + Volumes. This should fix bug #720 -- multivol migration fails. +kes Make migration SQL look only for Type='B' jobs to migrate. This should + fix bug #724 jobs getting migrated twice. +kes Convert remaining dev_cap(dev, ...) to use dev->has_cap(). +kes Implement dev->clear_cap() and dev->set_cap() methods. +kes Turn off disk seeking on restore for DVDs since I am not 100% + sure it works. +13Dec06 +kes Implement code that should properly set that a job was migrated, + if the migration was successful even if there were no file to + migrate. +kes Apply Richard's patch to fix building or filed/restore.c without + OpenSSL support. +kes Ensure that at least one block is written by the SD even if the + FD dies or fails -- should fix bug #728. +kes Convert stored/record.c ASSERT into a soft fail if the length of + a record is too insanely long. This should fix bug #??? +12Dec06 +kes Fix automatic labeling of File volumes, which was broken by new + removable device code. +10Dec06 +kes Remove typedef uLong for HP in baconfig.h. It broke things. +lf Fix job byte reporting -- the digest code runs in verify.c and + increases this value. The better solution is to digest the + stream as we receive it, thus removing the need to re-read + from disk at all, but that requires more extensive and + potentially destabilizing changes. +lf This commit fixes backup and restore of HFS+ resource forks. +lf Add a long-missing 'break' statement in HFS+ attribute + handling that resulted in restore failures. +09Dec06 +ebl Fix runscript to always execute command after all job type. + +Version 1.39.30 released: +08Dec06 +kes Mark build-depkgs-mingw3 executable in configure process. +kes Update autoconf/config.h.in to include LOCALEDIR +kes Undefine NLS settings for wxWidgets as there is a conflict with + their way of doing things. +kes Implement a rpool and rpool_source in jcr.h for Migration jobs. +kes Change a bunch of ->hdr.name to ->name() +kes Straighten out handling of read and write pools for Migration, including + getting the code in the proper order. +kes Improve migration error messages and debug output. +kes Shorten code path in migration if nothing found to do. +kes Implement read/write pool in migration job report. +kes Move ua_run.c select_job_level code into a subroutine (readability). +kes Move ua_run.c display_job_parameters into a subroutine. +kes Do not bash dcr->VolumeName in get_volume_info() because it makes + restore dependent on a valid catalog containing the Volume name. +06Dec06 +kes Put make_catalog_backup SQL_BINDIR in an environment variable to + make it easier for the user to change. +kes Fail any backup job that tries to use encryption and sparse options. + Hopefully this is a temporary change. +kes Correct the EndJob return string for non-backup jobs. +kes Review the encryption restore code. +kes Implement a new encryption regression test with compression. +kes Modify migrate not to fail if nothing found to migrate. +kes Add #undef HAVE_OPENSSL, HAVE_TLS, HAVE_CYRPTO to autoconf/config.h.in + because they were not always set correctly. +05Dec06 +kes Update configure.in to include python 2.5 search. +kes Back out unwanted migration change reported by Richard Mortimer. +04Dec06 +kes Make migration with no files to migrate set normal termination. +kes Change message when job manually started to say Job queued. ... +kes Add job report indication of whether or not VSS and Encryption were + used by the FD. +kes Modify sparseBlock variable name to make the code clearer. +kes Add more sparse tests to regress using gigaslam sparse file + generator. +kes Enable data encryption code. +kes Add gigaslam.c to src/tools. It creates a 1GB file that contains + only two blocks -- i.e. it is a real sparse file. +03Dec06 +kes Enable disk seeking on restore. +kes Implement the SD 'Block Positioning = yes|no' directive. This + allows the user to turn off block level seeking, but restores + will be much slower. +kes Change the word illegal to read invalid in a few places. +kes Fix Win32 build, which broke when I added parse_args_only in + lib. I'm not sure I got the entry point right for msvc. +kes Turn off data encryption. It can be enabled by defining + DATA_ENCRYPTION in src/version.h and recompiling. +kes Implement flag to turn off data encryption feature. +kes Move unserial code in restore.c to a subroutine. Add a bit of debug + code. +kes Rework a bit of code in backup.c to handle sparse blocks correctly. + The main problem was that signatures were being generated on blocks + of zeros, which is unnecessary. +02Dec06 +kes Fix scanner (next_arg) to handle leading double quote correctly. +kes Modify cd command in restore tree to look at full argument without + keywords. This fixes bug #716. +01Dec06 +kes Do not update Migrated Job type if migration does not terminate + normally. This fixes bug #719. +kes Update ReleaseNotes +kes Purge Job records from the catalog for Migration. This was + not properly done previously. This fixes bug #718. +28Nov06 +kes Initialize msg_type to M_INFO in migration. Pointed out by + Robert Nelson. +kes Add some fflush() statements for debug output. This should not + really be necessary and defeats buffering but users continue + to complain. +27Nov06 +kes More copyright changes. +kes Make sure we don't detach from the despool read device since it + is a temporary structure where the condition variables are not + initialized. Bug #711. +26Nov06 +kes Add Bacula version+date to Client record. This is a very minor + security problem in that passing the version facilitates a hacker's + life, but it will make support easier. +kes Implement fixes to make disk seeking work. Currently turned + off in version.h pending reserch on what problems it will cause + because of the previous bsnprinf() sign extension bug. +25Nov06 +kes Add Landon's refactor of restore Feature request to the + projects file. +kes Tweak debug levels and messages for examining the disk + seek problem. +22Nov06 +kes Cleanup some of the error termination code in migration. +kes Separate read/write source strings to keep track of where + storage devices are used in a job. +kes Implement a new method of keeping track of which storage + device is used in a Job. USTORE keeps both a pointer to the + resource and to the source string. +kes Modify all code to use new storage set subroutines in job.c +kes Modify migrate.c so that the definitive selection of the storage + resource is done in the do_migration_init() routine prior to + the job going into the job queue. This permits accurate + deadlock detection (same read and write storage resource). +kes Remove bfill from btape (I think it was a left over stub). +22Nov06 +kes Make sure that the storage for a job is pulled first from + the Pool and if not from the Job. +kes Ensure that either the Pool or the Job specifies a Storage + resource. +21Nov06 +kes Start applying new FSFE copyright. +20Nov06 +kes Add additional error messages in acquiring a drive for read. +kes Make WritePartAfterJob the default so that the last DVD part + always gets written to the DVD by default. +kes Add additional error messages in migration. +kes Suppress redundant error messages in migration (possibly more to do). +kes Apply Martin's fix (updated to 1.39) that takes into account + run storage overrides in the Director status display. +kes Implement, but turn off the submitted code that sets the EOT + model on FreeBSD machines. Turning on this code is too risky at + this point in the development. +19Nov06 +kes Implement unique dbid routine for migration to prevent the same + JobId from being migrated twice. This should fix bug #709. +18Nov06 +kes Apply Jaime Ventura's 'mail on success' patch. +kes Add a SMALLOC_SANITY_CHECK for Arno, which aborts Bacula + if memory usage gets too big. +kes Tweak migration to ensure that read/write devices are different. +17Nov06 +kes Create an AUTHORS file to list Bacula contributors. +kes Add Richard Stallman's four GPL freedoms to LICENSE +kes Require the conf file to have a valid NextPool for writing the + migration output. +16Nov06 +ebl Enable RecycleCount in catalog. +ebl Fix "echo python | bconsole" segfault +14Nov06 +kes Implement code to pass the MediaId to the SD. The SD then uses + this MediaId when creating JobMedia records. This fixes a bug + with Migration where the MediaId got set to the second Volume + read rather than the write Volume. Possibly (unlikely) fixes + bug #709. +kes Remove NextPool from Job resource. +kes Edit a few numbers in the restore dialog with commas. +kes Note, the DIR<->SD protocol has changed. +13Nov06 +kes Replace () by {} in configure.in for proper HP configuration. +kes Shorten some lines over 80 characters in filed/backup.c +kes Cast sizeof() in filed/backup.c to avoid compiler warning. + +Version 1.39.28 released: +12Nov06 +kes Change error message 'illegal' to 'invalid' -- bug #707 +kes Add rather primitive device resource deadlock detection in + the job queue handler. It detects the same read and write device + for migration and cancels the job. +kes Start adding a unique_dbid_hander() routine in migration to avoid + duplicate mediaids and duplicate jobids. +kes Add patch from bug #708 to permit relative paths such as ../xxx + in the restore tree routine. +kes Add Eric Bollengier's patch to reduce locking time in the SD after + despooling, and thus many jobs finish faster. +kes Correct locking order of reservations lock and device mutex in + reserve.c -- this should correct Arno's deadlock that occurred + when doing mount/unmount at the same time a job is reserving a + drive. +05Nov06 +rbn Fixed problems with encryption when combined with compression + or sparse files. Unfortunately this means that all previous + encrypted backups can't be restored. +rbn Fixed problem in bfgets with Windows and Mac end of lines. +rbn Fixed bug in Windows version of close_bpipe() that cause programs + like bsmtp() to hang waiting for the pipe to be closed. Fixed + binary file type problems in open_bpipe(). +rbn Fixed a number of bugs in the mysql DB scripts. +03Nov06 +ebl Fix broken runscript on director. (RunBefore, RunAfter) +ebl Use M_ERROR instead of M_FATAL in runscript.c +31Oct06 +ebl Small fix src/dird/job.c to add JobErrors count to catalog. +rbn Ignore UTF-8 marker at the start of .conf files. +rbn Add stab2cv to 3rd party dependencies. This is a utility I + wrote that is licensed under the GPL and available on SourceForge. + It converts the stab debugging info generated by gcc into Codeview + format. Currently it just translates function names to global + symbols. This is sufficient to get reasonable stack traces from + Dr Watson and to look at minidumps. +rbn Fix bug # 699 - winbacula client crashes whilerunning bat scripts. +rbn Enable Windows XP look and feel for the tray icons and wx-console. +rbn Add Windows specific FileSet example to bacula-dir.conf. +rbn Reorganize Start menu so that documentation and configuration are + in subfolders. +21Oct06 +rbn Change daemons and utilities so that if -c is omitted from the + command line AND there is no configuration file in the current + directory then the 'standard' configuration file (eg + /etc/bacula/bacula-*.conf) will be used. If the argument to -c + doesn't contain any path separators AND there is no configuration + file by that name in the current directory then the 'standard' + configuration file directory will be searched for a file by that + name. +rbn Fixed restore on Windows so that backslashes as path separators works. +rbn Add missing query.sql file to Windows installer. +rbn Fixed Windows versions of catalog backup scripts. +20Oct06 +kes Fix optional files in Makefile.in of src/filed that caused + a syntax error when using no optional files. +15Oct06 +lf Fix a cosmetic bug in filed.c that caused spurious OpenSSL error + messages; there is no reason to attempt to load a private key. + from master key files. + +Version 1.39.26 released: +12Oct06 +kes Apply the three patches from Richard Mortimer. + bacula-reposition.patch, bacula-tape-reopen.patch, and + bacula-eod.patch. This corrects tape positioning on older devices, + and also a problem with btape. +kes Apply fix from bug report #696 where writing to a FIFO does not + work due to a dumb typo. +kes Unlock the tape door before the file descriptor is released. This + should fix lots of somewhat subtle failures when using an autochanger. +11Oct06 +kes Correct mtx-changer bug that I introduced in a recent commit, and + pointed out by Robert Nelson -- thanks. +rbn Fix Windows' daemons so that messages print to stdout if not + running as a service. +rbn Add daemon name to trace file name (eg bacula-dir.trace). +rbn Fix environment variable expansion in directory names on Windows. +rbn Fix autochanger support in fill command. +rbn Update SQL scripts to match Unix versions. +rbn Fix daemon usage displays. +rbn Cleanup bacula-dir.conf template. +rbn Install openssl.cnf so that the openssl.exe installed in the + Bacula\bin directory can be used to generate keys and + certificates for TLS and encryption. +rbn Fix cleanup of spool files on Windows. +rbn Remove /silent option from daemons on Windows. The new default + is the same as the old /silent. To enable the message boxes that + previously were suppressed by /silent you must add /debug instead. + NOTE: As a result of this change, the first time you upgrade from + a previous version of 1.39.x you will receive the message + boxes when the remove of the old services succeeds. This + is the same behaviour as when migrating from a version prior + to 1.39.0. + However, going forward, these message boxes will not appear on + upgrades or new installs. +rbn Add new /debug option. This option enables the message boxes that + previously were suppressed by the /silent option. In addition the + daemons running as services will open a console window if this + option is used. +rbn Fix bug with service not being removed on migrated installs. This + should correct those cases where the file daemon install was failing + when upgrading from versions prior to 1.39.x. +08Oct06 +kes Turn on heap reporting in Dir with zero debug level. +kes Send a message to the sys log when Bacula forces a SEG FAULT, and + send the same message to stdout. +07Oct06 +kes Begin work on new GUI 'console'. +kes Make configure look in non-standard MySQL library directory + for Solaris. +kes Make mtx-changer automatically configure the autochanger wait + procedure for Solaris, FreeBSD, and Linux. Previously, only Linux + was implemented. +kes Correct drop_sqlite_tables.in script to not delete the database. +kes When writing to a log file, close and reopen the file descriptor + if there is an error writing the file. +kes Modify the autochanger loaded?, load, and unload commands to print + the full text of any mtx output if there is an error. Helps to + ease diagnosis of autochanger problems. +kes Correct a few Win32 errno returns in the VSS code so that hopefully + a resonable Win32 error message will be printed. +kes Convert a few strcat()... to bstrncat() in the Win32 code. +06Oct06 +rbn Added Windows version of bsmtp. +rbn Fixed path search for Windows so that Bacula\bin is automatically + searched for programs and scripts. +rbn Fixed bugs in mtx-changer.cmd and made template bacula-sd.conf + Windows specific. + +Version 1.39.24 released: +02Oct06 +kes Apply dvd find volume patch from Richard Mortimer. +kes Eliminate the dvd specific mount routines using only the + dev->mount/unmount. +kes Make update_free_space a method of DEVICE and rename + update_freespace. +01Oct06 +kes Require a messages command acl to be able to receive messages + in a console. +kes Add console, system, and scan job types in util.c. +28Sep06 +kes Print the Volume purged message only for real jobs to keep + from cluttering up the daemon messages. +kes Lock the tape drive door while Bacula is using the device. +kes Add back the 'No Jobs running' message to FD and SD status because + my regression script depends on it, and I'm too lazy to change the + scripts. +kes Start using structure assignments (not too happy about it ...). +kes Fix a bug in the tools Makefile that broke on Solaris. +kes Unload any autochanger drive during a 'release' command. +26Sep06 +kes Enhance error message when restoring without bootstrap file. +kes Check restored size only for regular files. +kes Store Python job level in job record in Dir. +kes Add back code to open tape device nonblocking, but if rewind fails + release file descriptor. +kes Modify acquire.c to first try autoloading the device. Also, ask operator + to mount tape if drive cannot be opened. +rbn Made Windows service tray status windows resizable. +rbn Fixed horizontal scrolling of text in status window. +rbn Preserve horizontal and vertical scroll position while + updating. This prevents the display being reset to the + top line every 5 seconds. +rbn Fix Windows cross-compile compatibilty problems with + *nix variants such as OS X without the zic command. +rbn Eliminate dependency on man2html. +25Sep06 +kes Update src/win32/dll/bacula.def for change in BPIPE definition for + Win32 build. +kes Fix a compiler warning in compat.cpp +kes Change strcpy to bstrncpy in compat.cpp +kes Remove some broken code in bdb_list.c +kes Fix, hopefully the last, ACL problem in the restore command. +kes Update the README.mingw32 +kes Add new version of upgrade-win32-client.txt to examples directory. + Submitted by Michel Meyers. +kes Print an INFO message in the job report when a Volume is marked Purged. +rbn Fixed handling of external program and script execution + so that the format of the command line is more flexible. + Now executable path names containing spaces are translated + to the equivalent short name automatically. The result is + passed to cmd.exe with the quotes removed. +24Sep06 +kes Apply the recycle patch from Richard Mortimer. +kes Convert a few if statements in dev.c to switch statements. +kes Start using print_errmsg instead of bstrerror(). +kes Print a job message in SD when a job is marked to be canceled. +23Sep06 +kes All code added back. Fixed block.c read/write to loop only 3 + times. This apparently keeps the OS from crashing (at least + most of the time). +kes The kernel bug still persists. Backup something then immediately + do a bscan on the same tape, and the kernel will crash. +kes Simplifed tape open(). It no longer uses nonblocking mode, which + means that opening with no tape loaded will probably take at least + 6 minutes before an error is reported. +kes Do not use MTSETDRVBUFFER if not running as root. Do a MTRESET + when doing set_os_device_parameters. +kes Report open error in mount.c +kes Remove all .exe files from the installer directory on make clean. +20Sep06 +kes Start adding back removed code. +kes Back out a number of changes because backups to tape crash my + system. +kes Remove the inetd code from the File daemon. +18Sep06 +kes Add -c option to pg_dump so that it initializes tables when + restored. +kes Fix FirstWritten time on Volume to be obtained from SD so that + it is the actual time the volume was first written. +kes Minor Makefile changes. +kes Handle EBUSY during read(). Improve how EBUSY is handled in write(). +ebl Add yes keyword to prune/purge command +16Sep06 +kes Correct a test in block.c that prevented restore of a DVD from + looking at the last part in the spool directory. +kes Make some error messages clearer mostly by using the word DVD + in the message. Improve infor message in read_record for DVDs. +kes Remove DVD kludges in dircmd.c label/relabel. +kes Move the dvd relabel code from dircmd.c into + write_new_volume_label_to_dvd() adding a relabel argument. +kes Rewrite the truncate_dvd() code to be much simpler and + more logical. First blow away any spool part, then create a + new empty part and write to the DVD. +kes Rewrite the can_write_on_non_blank_dvd() code making it + only ensure that no valid data is on the DVD -- i.e. it + can be overwritten. +15Sep06 +kes Minor Makefile fixes. +kes Put attach_dcr_to_dev in a subroutine. +kes Make attaching/detaching to/from a device use a flag and + only detach if actually attached. +kes Add dvd-simulator.in to scripts directory and add to configure. +kes Fix code in acquire.c that checks fd != 0 to use dev->is_open(). + This could be a cause of a number of drive reservation problems. + Note, this code is now in attach_dcr_to_dev(). +kes Suppress doing Volume updates if it is a system job. This should + prevent the DVD label blocking. +kes Clear the freespace ok flag in a couple of strategic places. +14Sep06 +kes Put removing zero sized spool part file in subroutine and + call from release_device(). +kes Add Richard's patch for relabel to dircmd.c, but save and restore + dev Volume name. +kes Rework a lot of subroutines in dev.c to take dcr as an + argument. This is done to eliminate the usage of attached_dcrs + in lseek(). +kes Change truncated_dvd to blank_dvd, which seems more suitable. +kes Apply most of Richard Mortimer's truncate patch. +kes Create lseek() method for DEVICE that takes dcr as an + argument. This is to eliminate the use of attached_dcrs in + lseek(). The calls to lseek_dev() must still be changed. +13Sep06 +kes Apply Richard Mortimer's patches for printing an error + message in btape when a DVD is used, and to initialize traceback. +kes Added error message to btape when trying to access a file. +kes Move prototype of update_slots() to protos.h. +12Sep06 +kes Add JobErrors, JobFiles, SDJobFiles, SDJobErrors, SDJobStatus, + and FDJobStatus to the Director Python variables. +kes Make sure valid argument passed to str_to_utime() where Arno + had a seg fault. +kes Apply Richard Mortimer's patch for bcopy, bextract, and bscan. + I.e. part of two different patches. +11Sep06 +kes Modify disk changer to simulate some of the error conditions + of mtx-changer. +kes Make sure the close() call in the SD tools is just before the + getchar() call. +kes Implement dir_get_volume_info() in bls using the patch from + Richard Mortimer but call find_num_dvd_parts(). +kes Implement find_num_dvd_parts() that mounts and scans a DVD + and counts the parts. +kes Move the omode code in open_dvd() up so that the cannot + write on blank disk can check can be bypassed for read mode. + Not yet implemented. +10Sep06 +kes Disable normal data spooling for DVD writing which uses + a different spooling mechanism. +kes Apply patch from Richard Mortimer to ensure that the number + of DVD parts is correctly updated. +rbn Save installer details log in the Bacula directory as + install.log. +rbn Add installer generation of client and storage templates + suitable for @inclusion on the director. +rbn Mark previously installed Win32 components read-only since + deselection doesn't do anything. + +Version 1.39.22 beta released: +08Sep06 +kes Fix logic error in handling error return from mtx-changer + script. +kes Make status from SD aware of -1 (unknown) Slot status. +kes At Eric's suggestion make both the 'slots' and 'drive' commands + to the Storage daemon work even if the drive is busy. +kes Make two separate Win32 menu links for starting bconsole and + wx-console in winbacula.nsi +kes Apply DVD part_spooled patch from Richard Mortimer + richm@oldelvet.org.uk +kes Put installer/Readme.txt into Win32 EOL format for Notebook. +rbn Fixed problems migrating settings from previous releases in + Win32 installer. Add Readme.txt with an option to show it on + the installer Finish page. +07Sep06 +kes Use get_catalog_resource() to open catalog database + to ensure that ACLs are respected and that user is + correctly prompted for database. +kes Integrate multiple console/director patch from + Carsten Paeth calle@calle.in-berlin.de +ebl Add character substitution in Job/JobDefs WriteBootStrap. + You can use now 'WriteBootStrap = '/path/%c_%n.bsr'' +kes Apply patch supplied in bug #656 to pass priority field + in the run dialog to the Director in gnome console +kes Restore DCR after VOL_NAME_ERROR in mount.c. Hopefully + this will fix bug #627 where Bacula eventually gets + confused about what Volume it wants. +kes Add a new close_part() class in the SD to save the device + state around open/close_part/open for DVD writing. This + should fix the num_dvd_parts getting zeroed as reported by + Richard Mortimer. +kes Apply patch from Richard Mortimer that correct edit code + for debug output of st_size. +ebl Add support of encrypted data stream to bscan. + display data_len instead of data content (may be binary) +06Sep06 +kes Add dev->close() in dir_ask_sysop_to_mount_volume() in + bcopy. Fixes bug #669 reported by Eric. +kes Fix incorrect number of arguments in SQL statement in + sql_get.c as reported by Eric. +kes Manual updates. +kes Update examples directory. +kes Remove unused variable in winservice.cpp +kes Make Win32 make command build installer. +rbn Add new Install Type page, used to select between Automatic + and Custom installs. Automatic installs only prompt for + configuration items that can't be reasonably defaulted. +rbn Added Bacula logo to page headers. +rbn Added Upgrade support + - Configuration and component selection are migrated from + pre-1.39 installs. + - Configuration of upgraded components is preserved and + not prompted for + - Configuration of new components is handled according to + the Automatic / Custom selection. + - Component selection is defaulted to previously selected + components. +rbn Installation of Server components is disabled on + Windows 95, 98 and ME. +rbn Added URLs for support, info and upgrades to Bacula entry + in Add/Remove Programs. +rbn Added Version info to Bacula entry in Add/Remove Programs. +04Sep06 +kes Correct dvd code that breaks tape labeling. +kes Implement Enabled on update slots. +02Sep06 +kes When doing a label, pass the VolBytes back to the Director, + which puts it in the catalog. +kes Print an error message if the user attempts to prune an + archived Volume. +kes Need to start using %ld when sscanfing 32 bit values. +kes Update the free +kes Correct the counting of VolCatBytes for DVDs. +kes Add code to mount.c to require that VolCatBytes corresponds to + what is actually found when doing an append. +kes Update freespace only after writing on the DVD. +kes Remove code that blows away the current part in the spool file. +01Sep06 +kes Apply new dvd-handler patch from Richard Mortimer. +kes Tweak so that debug level 20 shows only DVD commands. +kes Correct spooled_part flag in dev.c close() so that it is cleared + when the spool file is deleted or does not exist. +kes Print part number in read_records when eof hit (restore). +rbn Installer default changed to start services on new install. +31Aug06 +kes Make find with no args in tree restore return error rather than + stopping the selection. Fixes bug #665 +kes Rework DVD writing to ensure that the last part is written + on open_next_part when dealing with a spool file. +kes Correct the lseek_dev() routine to handle end point correctly + (bug introduced by me). +kes Allow part number to exceed num_dvd_parts in lseek_dev(). +rbn Change make_session_key on Windows to use WIN32 APIs to produce + a better seed. +rbn Add new tool scsilist.exe which displays the changer, tape and + CD/DVD (1394, SCSI, SATA, ATAPI) devices and the information required + to add them to bacula-sd.conf. +30Aug06 +kes Apply dvd-handler patch from Richard Mortimer. +kes Apply dvd error check patch from Richard Mortimer. +kes Apply bpipe race patch from Richard Mortimer. +kes Rework how DVD labels are handled and set append only + when part > num_dvd_parts. +27Aug06 +kes Rework many features of DVD writing and reading. Added many error + messages. Most importantly changed part to represent the current + part number base zero. This makes current DVD writing incompatible + with previous version. +26Aug06 +kes Add host:port to connect failure messages to FD and SD from Dir. +kes Add WhereACL to console ACL list. If nothing is specified, only + the default is permitted for restore. Otherwise, *all* allows any + path, or you can specify permitted paths. This should allow control + over where users can restore files. This is untested. +kes Modified message to add a ? (as in loaded?) when querying the autochanger + for what Slot is loaded. +kes Fixed the use of Slot, so that is more correctly maintained, thus + eliminating unneeded duplicate calls to determine what Slot is loaded. +25Aug06 +kes Install man pages with 'make install' +kes wx-console crashes because of differences between Bacula and wxWidgets + malloc()/free(). Tweak wx-console to use bmalloc()/bfree() for Bacula + calls. +kes correct improper indenting in wx-console/console_conf.c +kes update wx-console header copyrights +kes Fix bug #658 where wx-console mangles file/directory names containing + commas. +24Aug06 +kes Add Media.Enabled flag to client backups for dotcmds.c +kes Enforce Media.Enabled=1 for a current restore to work. +kes Require restore case 3 to have sqlquery permission to work. +kes Remove obsolete del_MAC sql command. +kes Ensure that bscan creates Volumes with Enabled=1. + +Version 1.39.20 beta released: +22Aug06 +kes Correct missing Client table reference in SQL pointed out by + Marc. +21Aug06 +kes Fix Win32 build (new entrypoint, start baculafd). +20Aug06 +kes Add -n option to bconsole to turn off conio. +kes Print JobIds to be migrated in Job Report. +kes Add additional user supplied notes to the messages part of + bacula-dir.conf concerning multiple email addresses. +kes Fix an incorrect comment pointed out by a user in dvd_handler.in +kes Add more recent Feature requests to Projects file. +19Aug06 +kes Apply Maritn's fix to src/win32/Makefile. +kes Apply Martin's fix to configure.in for pthreads on FreeBSD 4.x +kes Implement pruning for Migration and migrated jobs. +kes Implement PoolOccupancy migration. +kes Implement PoolTime migration. +16Aug06 +kes If doing a mount, look for a slot, and if specified pass it to + the SD so that it can load the autochanger. +kes Return DVD=1 flag if a label command is done to a DVD. This + permits setting VolParts to 1. +kes Apply DVD patch from Richard Mortimer , but + rework ua_label code based on DVD media type to use DVD flag returned. +15Aug06 +kes Eliminate some compile warnings in dird_conf.c +kes Format the bytes field in the terminated jobs part of the status + command for the three daemons with suffixes to reduce print size + of backup bytes. Suggested by a user. +kes When not descending into a directory, print the File= name that + triggered it -- makes why not descending a bit clearer. +kes Do not unload autochanger when doing a list command -- basic code + from Eric Bollengier. +12Aug06 +rbn Reworked the MinGW32 build-dependencies script, it has been renamed + to build-depkgs-mingw32. It now handles two options -h to display + help and -C to reextract the source and apply the patches. The -C + option is useful for updating the source after new patches are + released. +rbn Moved the 3rd party package URLs to a separate file External-mingw32. + This allows updating to new versions without having to modify the + script and makes it easier to figure out which packages and which + versions are used. +rbn Added a new script build-depkgs-msvc.cmd which does the same thing + as build-depkgs-mingw32 except they are built using Microsoft Visual C + and placed in the depkgs-msvc directory. There is also an + External-msvc file to describe the packages. +08Aug06 +rbn Fix Windows cross-compile compatibilty problems with FreeBSD. +07Aug06 +kes Fix bug #462 incorrect error message printed when client script called + from File= was not found. +kes Fix bug #558 (waiting for feedback) where Bacula needs too much time to + do a rewind on Solaris when no tape is in the drive (Solaris does not + have the detailed errno found on Linux). Added Solaris specific code. + Note, this may apply to other OSes as well. +06Aug06 +kes Defined BUILDING_CATS in src/cats/cats.h so that *nix builds. +dsb Updated rpm spec for 1.39 - updatedb 9 to 10, add new man pages, + fix bug 648 - update sqlite script patches, lock out gnome2console + builds for platforms with gtk+ < 2.4. + Updated build_rpm.sh - add remote source directory, add switch for + signing, refine file names. + Updated spec file again for Mandriva build as they have this curious + custom of silently converting all manpages to bzip2 format just before + the final packaging step. +05Aug06 +rbn Fixed the Windows Makefiles so that they won't accidentally try and + pickup binaries for the Unix build. This allows both the Unix + build and the Windows build to be built in the same tree without + interfering with each other. +rbn Fixed error handling and cleaned up mtx-changer.cmd. +rbn Added the rest of the database scripts. These are installed but are + not yet edited for variable replacement. +rbn Broke out the cats functionality from bacula.dll and put into new + separate dlls for each database type. At installation time the + correct one is copied to bacula_cats.dll. +rbn Eliminate the need to install the mysql.dll on client only builds. +rbn Moved dird/sql_cmds.c into the cats directory so all the database + specific #ifdefs were in the cats directory. +rbn Added a new sql_cmds.h with all the declarations for the variables + exported from sql_cmds.c. +rbn Moved catalog_db[] from lib/message.c to a new routine db_get_type() + which is implemented in bdb.c, mysql.c, postgresql.c and sqlite.c in + src/cats. +kes Correct improperly formatted list command output reported by Dan. +04Aug06 +kes Correct despool time calculation. +03Aug06 +kes Remove previous changes to compat.cpp as they create problems. +kes Use old style MD5 for FileSets to avoid Full saves on every Job. +kes Attempt to fix problems with the msg_queue crashing on Solaris + when Bacula is terminating, but problems remain. +kes Add WIN32_VSS to HAVES in src/Makefile.inc.in to correct VSS + name editing problems with too many \\?\es. +kes Fix some Bacula source code style problems in compat.cpp. +kes Add debug code to compat.cpp and convert non-Bacula debug code + to Bacula style. +02Aug06 +kes Change the name of the technical notes file from kes-1.39 to + technotes-1.39. Prefix my messages with 'kes '. +kes Allow dequeue_messages() to be called twice. Should fix bug + # 649. +kes Add Job type to bscan Job information output. +01Aug06 +kes Update copyright date in program files, and for the most part + put it on a #define. +kes Implement %q in bsnprintf.c apparently I forgot it. +31Jul06 +kes Make disk-changer sed command compatible with FreeBSD. +kes Make a first cut at a ReleaseNotes and ChangeLog for a + beta release. +kes Make make clean descend into the src/win32 directory. +kes Fix some #ifdefing so that Solaris and FreeBSD compile + sys/stat.h was turned off. +kes Use suffix editing for new transfer rate messages. +kes Attempt to come up with a workaround which seems to be an OS + bug where write() returns EBUSY. IMO this should not happen. + It triggered in truncatebug test. The workaround retries using + a 100 ms wait. +kes Eliminate a strerror() call in a class method that failed with + older C++ compilers. +kes Use rm -rf rather than rmdir to delete the src/win32/release + directory during make clean. +30Jul06 +kes Make bscan ignore ACL streams. +kes Update projects files with new Feature Requests. +kes Generate current English and French manuals and upload + them to the site. +kes Update the home page to include the new British/French flags to + switch between translations. Work done by Alexandre Baron. +kes Make disk-changer script print an error message if the changer + directory is not defined. +kes Create a generic DB routine for getting an int (32/64 bit) from + the DB. +kes Add more migration code. +kes Add a few more files to .cvsignore here and there. +kes Minor fixes for SD write rate and despooling rate. +kes Turn off new test code in src/console.c + +Version 1.39.18 +29Jul06 +kes Incremented the version number to signify that all of Robert's code + for Win32 that was in the branch is now integrated into the HEAD, + and that Eric has submitted code that we hope will provide limited + backward compatibility with 1.38 file daemons (more testing to be + done). +kes I rationalized a few of the names of the variables (mainly jcr names) + that are used during migration as keeping three different jcrs at the + same time clear in ones head is not easy. + +Version 1.39.17 +28Jul06 +eb Tweak new runscript feature to work with 1.38.x FDs. +eb Correct crypto.c to fix segfault when restoring an encrypted stream + on fd which don't use rsa keys. +eb Add yes/no English keywords on localized yes/no questions. +27Jul06 +kes Several important commits from Robert Nelson for code cleanup and + Win32 build. +kes Modify console.c so that when conio is enabled, it converts \n to + \n\r before outputting to the console. Hopefully this will fix + the problems with expect in Perl that Eric saw. +24Jul06 +kes Change cats/sql.c to eliminate %-*s format, which I think is turned + off in bsnprintf. +kes Add Comment field to llist of a volume. +kes Allow true/false in some yes/no questions. +kes Implement update volume enable=(on|off|true|false|archived|0|1|2) +kes Remove a few /n's when scanning commands from another daemon. This + permits adding additional fields later. +kes Modify dbcheck to handle ctl-d and to delete Log table entries. +kes Update README.mingw +22Jul06 +kes Tweak authentication to work with 1.38.x FDs. +kes Tweak catalog make scripts. +kes Fix catalog upgrade scripts so that they work. +kes Correct despooling debug code to eliminate race condition. +19Jul06 +kes Add additional fields as specified by Arno to LocationLog. +kes Add comment field to the Media record. +kes Add Time field to the Log record. +kes Correct migration SQL (thanks to Bill Moran) so that it + runs with PostgreSQL also. +kes Add spooling/despooling info in status output of SD. +17Jul06 +kes Spend a lot of time integrating mkcdrec with the rescue disk. +kes Add VOLMGMT message class for volume management messages (none yet). +kes Add CATALOG as a destination. It goes into the LOG table. +kes Implement the Log table in the DB. +kes Implement the Location Log table in the DB (for user use). +kes At Eric's request add a run_scripts() just after blast_data in + src/filed/job.c +10Jul06 +kes Add Enabled column to Location, correct some typos in DB schemas. +kes Correct bug I introduced into RunScripts enum. +kes Add log table to Catalog +kes Purge original job migrated if the migration terminates normally. +kes Cleanup purging of files/jobs so that it is done only in a + single subroutine. +kes Add new VOLMGMT message class. +kes Add Catalog message destination (user conf code remains to be written). +09Jul06 +kes Modify read_record and friends to properly deal with migration + needs. +kes Update debug code in read_record. +08Jul06 + ======================= Warning ========================== + Separate read and write storage in Jobs in the Director. This + is a major rewrite of some of the low level code and hence has + a high probability of introducing bugs. + ========================================================== + +kes Move the job init code up to *before* the job is put into + the job queue (resource allocation queue). This permits the + job to establish whether it will read or write or do both. +kes Add name() methods to all the resource classes. +kes Implement separate read and write storage resource + allocation/deallocation in jobq.c + + ======================= Warning ========================== + Implemented new method of getting the default Storage from the Media + record rather than from the MediaType for restore. As a fall + back, if no Storage is defined, use the MediaType. This + eliminates most all prompts if there are multiple MediaTypes + used. This is an important and fundamental change. + ========================================================== + +kes Add more detail (Storage, Device) to list of volumes printed + for restore. +kes More code in migrate. In particular start multiple jobs if + migrating a volume. +kes Probably overkill, but ensure that the bsr is unique even within a + job in FD and SD. +kes Rework bsys.c drop() so that it now should work as expected. +kes Update a bunch of old copyrights -kes particularly in .h files. +kes Remove src/lib/bshm.c/h +05Jul06 +kes Migration fixes +04Jul06 + ======================= Warning ========================== + All hash codes in the database are now kept in world + compatible base64 format (no = filling). This means that + all FileSets will be updated and if you are running + verify jobs, you must do an InitCatalog. + Authentication uses the new algorithm, but should be + backward compatible with 1.38.x + =========================================================== + +kes Modify the authentication routines so that the 1.39.15 Director + always runs with the compatible binary to base64 code (same as + the rest of the world). It will however detect if an SD or + FD is running the old code and if that is the case, will use + the old algorithm for authentication. However, all consoles must + use the compatible algorithm, and all data entered into the database + (all hash signatures, MD5, SHA1, ..., and all FileSet hashes) will + use the compatible algorithm. +kes Rename the cram_md5 routine names to be slightly more appropriate + to what they are doing (challenge and respond). +kes Robert committed his #ifdef and header cleanup. +30Jun06 +kes Fix a compiler warning in files/backup.c +kes Cleanup NOT NULL vs DEFAULT 0 in database creation. +kes Tweak btape. +kes Robert committed his low impact changes. +kes I removed a size_t from the jcr.h definition. +kes Update the tape regression scripts (still to be tested). +kes Add gcc and gcc-c++ requires to srm as suggested by a user. +kes Require done or quit to exit from in memory tree restore. +26Jun06 +kes Write install/uninstall of new manpages. There are now a + pile of man pages. Some of which need a lot of work. + + ======================= Warning ========================== + The --mandir ./configure option now points to the top level + man directory. The man files will be installed under + mandir/man8 and mandir/man1 as appropriate. + ========================================================== + +kes Add complete text of GPL to LICENSE. +kes Implement job report that indicates where Storage and Pool + came from -kes with overrides and Pool storage and NextPool, + it is all very complicated. +kes Create a few common subroutines for backup.c and migrate.c +kes Eliminate warning messages from tray-monitor.c +25Jun06 +kes Apply fix for scheduler for missing unlock_jobs(). +kes Clean out autoconf caches before rebuilding configure +kes Fix the FreeBSD pthreads lib define updated by Dan. +kes Add missing semicolon in src/console/console.c +kes Add Robert's enhanced version of build-win32-cross-tools + as well as his patch file. +kes Note, the new gcc options are likely to break building of + wx-console or the tray-monitor ... +24Jun06 +kes Implement Robert's suggestion to suppress printing compile lines. +kes Detect GCC correctly (I hope) +kes If using GCC (actually g++) add the following compiler flags + -fno-strict-aliasing -fno-exceptions -fno-rtti + + ===================== Warning ============================= + Turn on new bsnprintf() code. This could cause print output + to look different. + =========================================================== + +kes Fix crypto when not using openssl. I previously overlooked this. +kes Eliminate crypto type punning problems by eliminating void * and + using uint8_t * instead. +kes Harden authentication failure in FD by single threading errors + and forcing a 6 second wait. + + ===================== Warning ============================= + Removed 'Accept Any Volume' directive. + =========================================================== + +kes Major cleanup and simplification of regress using shell functions + (more tests to be converted to new format) +kes Add detection of 64 bit Irix as indicated by user. +kes Increment catalog database id from 9 to 10. +kes Add a few of the new database fields to the various C++ + structures. +kes Implement code to fill in the most important new fields (e.g. + Media Enable). +kes Ensure that most of the new fields are in create/get/insert/update. + More work to be done. +22Jun06 +kes Update some very old licenses in src/cats. +kes Modify the database format for handling Migration jobs: + Add PriorJobId, RealEndTime to Job table + Delete MAC table + Remove Stripe from JobMedia record (not used, wasting space) + Add ScratchPoolId, RecyclePoolId, Enabled to Media record + Add Cost to Location table. +kes Delete mac_record subroutines. +kes Add new table values to create/update/get routines as appropriate. +kes Update the update_tables and make_tables scripts. +kes Make a first cut in using a union where multiple pointers (actually + pointers to pointers) are stored. +kes Make some changes to base64.c suggested by Robert and others and add + a small amount of documentation. +kes Add some changes suggested by Peter for Solaris (bregex...) +kes Make runscript.h always built because it needs to be pulled into + more places. In particular its RES was left out of a union. +kes Renumber the enum{} list in runscript.h to avoid starting from zero. + This makes it slightly easier to detect uninitialized variables. +14Jun06 +kes Remove xpg4 lib from FreeBSD build as it is no longer needed and + sometimes creates install problems. +kes Change a couple of %T in strftime to %H:%M:%S as seen in Robert + Nelson's code. More to do. +kes Convert a few store_bit to store_bool in filed_conf.c. +kes DVD tweak to block.c as supplied by Uwe Muessel. +04Jun06 +kes Modify configure.in to check for typeof(). +kes In findlib/attribs.c use typeof instead of templates if possible. +01Jun06 +kes Implement partial error messages for src/filed/acl.c +kes Fix return code to fail when doing update barcodes and + Pool resource is not found. This previously caused Volumes + to be labeled as cleaning tapes. +kes Small updates to projects. +27May06 +kes Add Eric Bollengier patch for new RunScript directive. It breaks + compatibility between dird and fd. +26May06 +kes Prevent DVD code from rewriting label if the device cannot be + opened read/write. +kes Used __GNUC__ to detect GNU g++ as suggested by John Goerzen to + fix Debian build bug. +kes Fix Dir/SD run race in migrate.c, verify.c, and restore.c +kes Integrate manpages contributed by Jose Luis. +kes Update projects file. +kes Add manpages Makefile.in to configure.in +kes Remove installation of bacula.8 in scripts directory. +24May06 +kes Implement patch submitted by cesarb in bug #606 to implement O_NOATIME + support. + O_NOATIME is a open() flag which makes it possible to read a file without + updating the inode atime (and also without the inode ctime update which + happens if you try to set the atime back to its previous value). It also + prevents a race condition when two programs are reading the same file, but + only one does not want to change the atime. It's most useful for backup + programs and file integrity checkers (and bacula can fit on both + categories). + + Recent versions of the Linux kernel and glibc have support for it (the + glibc support being mostly copying the O_NOATIME definition to + bits/fcntl.h). If there's no support for it on the kernel, trying to use + it does nothing (since the kernel ignores unknown flags). + + If the kernel has support for it, trying to use it either works, fails + silently (mostly in remote filesystems), or returns errno=EPERM (if you + are not either the owner of the file or root). A simple way to prevent the + failure is to open the file without the flag and set it later with + fcntl(F_SETFL), ignoring any EPERM errors. +kes Applied patch posted by Jaime Ventura to bug #570 to correct failure + of restarted jobs to complete (due to a destroyed pthreads conditional + variable used by the message thread). +kes Fixed bug #619 where Bacula would not restart jobs with MaxRestartTimes + set to zero. +kes Apply patch from John Goerzen bug #611 to fix bad manual links in the code. +kes Apply patch from Rudolf Cejka bug #614 to removed trailing + colons in query.sql file. +kes Apply patch from Rudolf Cejka bug #613 to correct prunning of files + not to create orphans. +kes Apply patch from Rudolf Cejka bug #617 to use mtime instead of ctime + in restore long listing. +kes Apply patch from Rudolf Cejka bug #609 to use MarkId in verify.c instead + of incorrect MarkedId. +kes Apply patch from adioso bug #616 to correct text in manual (replace + Director with File daemon). +kes Rework a few of the zlib changes so that they build properly. + +21May06 +kes Move DIR 'run' command to SD before starting the message thread + as suggested by Cristopher Hull to avoid a race deadlock from + two threads using the bsock structure. +kes Modify LICENSE to correct some problems pointed out by Debian. +05May06 +kes Correct EOF with no \n lex.c problem. +kes Tweak compat.h compat.cpp and merge with apcupsd +kes Add additional INFO messages if autochanger cannot be used. + +02May06 +kes Simplify Win32 Makefile +kes Correct count of buffers/bytes used by smartall.c +kes Updated compat.h after porting apcupsd to MinGW. +01May06 +kes Work on getting wx-console building on MinGW. wxWidgets now builds + started adding Makefile ... +kes Moved MinGW library objects to src/win32/lib to reduce clutter. +30Apr06 +kes Reloading a bad configuration file doesn't kill director any more. + Thanks to fix from Eric Bollengier. +29Apr06 +kes Fix problem of accents with new Win32 code. +kes Integrate Howard's VSS patch. Tweak it a bit. VSS now + works in the MinGW build with the exception that there + is a problem with accented characters -kes i.e. there is + some mapping problem with wide characters. +kes The code no longer compiles with Microsoft VC++. +28Apr06 +kes Start implementing Christopher's St.Bernard code. +kes Add Christopher's mods for opening files. +kes Strip \r \n from Win32 error messages (Christopher) +kes Add more info about Win32 system if unknown (Christopher) +kes Use bstrn(cpy, cat) routines to avoid overrun in compat.cpp +kes Fix a number of incorrect strings marked for translation, when + they should not be (e.g. commands). +kes Fix StartTime bug reported for ClientRunBeforeJob and RunBeforeJob + Patches supplied by user in bugs #608 and #599. +kes Use most recent of st_ctime and st_mtime in restore tree DIR + listing. This fixes some problems with Win32 printing incorrect + values. +kes Correct the clock shift comm time calculation between the DIR + and the FD. It was added rather than subtracted. +kes Strip all backslashes in filenames to be restored on Win32 + machines -kes the names should all be in Unix format, and if + there are any backslashes it is most likely due to an improper + FileSet definition, and the files will not otherwise be + restorable. +kes Remove lib/regex.c (replaced by bregex.c). +kes Delete src/win32/License.txt +kes Modify installer to install LICENSE +26Apr06 +kes Fix bug in build-win32-cross-tools script reported by Howard +kes Implement cross compiled bconsole +25Apr06 +kes Fix barcode test, eliminate BOOL (doesn't exist on Linux). +kes Write first cut of README.mingw32 +kes Add back ua_label barcode fix from Rufolf Cejka. +kes Integrate the majority of the Mingw cross-tools submission + made by Howard Thomson. Everything compiles, with zlib, openssl, + and VSS turned off. Linking needs a pthreads library ... +23Apr06 +kes Add 'Dir Status' button to the gnome console. +kes More work on migration. +kes Restore non-compatible base64 coding to permit compatibility. +kes Display heap stats in Storage daemon without debug level. +22Apr06 +kes Integrate most of the MinGW changes -kes more to do. +21Apr06 +kes Implement using pg_config for finding PostgreSQL files. + Fixes bug #600. Patch supplied by user. +kes Remove -t option from mktemp in mtx_changer.in and use + working directory. Fixes bug #578. +kes Update job start time after the any run before job so that + files created by the script are only backed up once. Fixes + bug #599. +kes Strip trailing newline only from filenames entered in + the restore command when reading a file. This permits + the user to enter filenames with trailing spaces. Fixes + bug #549. The user supplied a patch that I modified slightly. +kes Use the most recent time (st_mtime, st_ctime) in the dir + command in restore. This gives the user a better idea of what + the newest file really is. This fixes bug #574. The fix + was suggested by the user. +kes Implement a compatible version of base64. This permits external + programs to duplicate Bacula's base64 algorithm using standard + routines. This fixes bugs #296, and 565. Patch submitted by + author of bug #565. + ================= Note ======================== + Previous Signatures stored in the database are no longer + compatible with this. The main downside is for Verify jobs, + and doing an InitCatalog run will fix the problem. Also, the + authentication between the deamons is changed, so all daemons + must be simultaneously upgraded. + ============================================== + If you don't like this fix, set: + const bool compatible = true; + to + const bool compatible = false; + in src/lib/base64.c +20Apr06 +kes Ensure that DB signature is never NULL. +kes Ensure that DB table names are not translated. +kes Fix scheduler to handle time skew (eg daylight savings). +kes Fix scheduler to use lock_jobs() to avoid most problems + with reload. Window is now milliseconds. +19Apr06 +kes Apply patch from Christopher Hull + kes Allow multiple connections to database with different + parameters. + kes Invalidate the scheduler when doing a reload. Fixes seg + fault, but still 60 second window. + kes Additional info in Reschedule message. + kes Use set_jcr_job_status() everywhere to prevent loss of + cancel, error. + kes Display peer IP in FD if error from connecting DIR. + kes Don't increment file count for DIRBEGIN. + kes Replace illegal characters in Win32 filename by _. + kes Add SE_CREATE_PERMANENT_NAME privilege in Win32. + kes Hash hard link filenames rather than linked list. + kes Fix for security failure in chdir on Win32. + kes Add CreateDirectoryA/W win32 API entry points. +kes Add /silent option to Win32 FD for Install/Remove service. +kes Always print Heap statistics in FD. +18Apr06 +kes Remove the -f option from the chown in Makefile.in for more + portability. +kes Change setting the group in Makefile.in to use chgrp for + more portability. +kes Implement a write_store and read_store to replace + dirstore in reserve.c +kes Implement a Bacula read/write lock for Python rather + than using the Python lock to avoid recursive problems. +kes Correct the uninstall directory names in filed/Makefile.in + as reported by a user. +17Apr06 +kes Correct some problems with database creation (new tables). +kes Replace a bunch of old 0x%x by %p. +kes Get first cut of Migration with Job selection working. +16Apr06 +kes Change store_bit() to store_bool() for the Spooling in + dird_conf.c -kes bug reported by Robert Nelson. +15Apr06 +kes Correct Makefile bug found by Dan Langille. +14Apr06 +kes Correct Makefile for Solaris /bin/sh +kes Correct mtx-changer.in for Solaris /bin/sh +kes Abort if a conf resource does not have a Name = +12Apr06 +kes Change the name of the regex program to bregex. +kes Add the bwild program to the tools directory. It is similar + to the bregex program. +kes Implement create bregex.h and bregex.c in src/lib from the + Python regexp program. +kes Use the new bregex.c to implement Regex expressions on Win32. +11Apr06 +kes More work on migration. +kes Implement wild program in tools directory for testing + wild-cards. Almost identical to the regex program. +kes Up port VSS single thread locking code. +kes Replace N_(..) by NT_(...) to inhibit translation of + commands. +kes Modify Makefile to change the permissions on Working Directory + to 770 if the directory is created. +kes Do not fail the Makefile if changing the permissions or + owner/group on WorkingDir fails. +kes Remove early selection of Scratch Volumes in the recycling + algorithm. +kes Correct the old recycling algorithm so that Scratch Volumes + are selected when looking for a Volume in the changer. +kes Correct a typo in the Verify SQL reported by Joe Park. +10Apr06 +kes Remove automatic case folding on Windows FDs. You must + explictly use the 'Ignore Case = yes' option. +kes Remove the code added to 1.38.6 and 1.38.7 that pulls a + scratch volume in an Autochanger early in the 'recycling' + algorithm. +09Apr06 +kes Make weof() and clrerror() methods of class DEVICE. +08Apr06 +kes Tweak license to include Microsoft restrictions. +kes Move mysql.reconnect to after real_connect(). Thanks to + Frank Sweetser for the patch. +kes Disallow a backslash in a File = directive (Windows junk) + unless the string is quoted. +kes Apply Eric's patch to ua_label.c so that daemon protocol + is not translated. +kes Add NT_ definition for strings that should not be translated. +kes Apply NT_() to ua_label.c +kes Remove timed wait for VSS on Win2K3 as it is not yet + implemented. +kes Correct bacula.in script to reference bacula-ctl-xx in the + sysconfig directory rather than the bin directory. +26Mar06 +kes Fix a long standing bug in the bacula start/stop scripts. +kes Attempt to add the new bacula-ctl-* files to the rpm. +kes Switch to using typeof() for list traversing to avoid + as many FC5 g++ compiler warnings as possible. +25Mar06 +kes Split the bacula start/start script into four files: + bacula -kes starts and stops calling other scripts + bacula-ctl-dir -kes starts/stops the director + bacula-ctl-fd -kes starts/stops the File daemon + bacula-ctl-sd -kes starts/stops the Storage daemon +24Mar06 +kes Create datestyle fix for PostgreSQL. Fixes bug #574. +kes Correct editing of JobId from int to int64 in fd_cmds.c +kes Eliminate FileSet name race with bash_spaces() and multiple + threads by bashing in a local. +kes Fix error return from 'use storage' to print a correct error + message rather than nothing. +kes Correct false re-read last block error message when two jobs + are simultaneously writing at the end of a tape. +kes Simplify exit conditions in the reserve.c code to avoid + possible non-release of reservation_lock(). +kes Suffle lock order in reserve to avoid deadlock between + reservation lock and device mutex. +21Mar06 +kes Initialize jcr mutex before first use. Thanks to Thorsten for + tracking this down for me !!!! as it broke the Win32 build. +20Mar06 +kes Integrate addition of line count limitation to bsmtp -l from + Sebastian Stark +17Mar06 +kes Implement regex test program in tools directory. +kes Attempt to fix time problem with bsmtp with foreign langs. +kes Add strip_trailing_newline() submitted by user. +kes Implement regex matching in migrate.c +16Mar06 +kes Fix bug #537 to allow arbitrary time to mount a volume for + restore, if polling is turned on. +kes If dir_user or dir-group is specified in ./configure apply it to + the working-dir. Fixes bug #533. +kes If rescheduling a job cancel the previous incarnation with the SD. + Fixes bugs #566 and 557. +kes Fix bug #567 do_message() definition type conflict. + +14Mar06 +kes Add more jcr methods and make mutex and use_count private. +kes Create lock/unlock methods for jcr. +kes Fix PostgreSQL bug doing sql_data_seeek() by explicitly reading + records to get to seek position. +kes Integrate patch from bug #561 to correct conio.c signal definitions. +kes Fix Rescheduling failed Jobs. Ensure that SD message thread + terminates correctly by doing pthread_kill(). Do not destroy + SD cond wait variable between executions of the job. Use local + mutex for cond variable to avoid blocking jcr chain. Fix poor + use of jcr use count in jobq.c for restarted jobs. +kes Fix obsolete usage of foreach_dlist() to use foreach_jcr() in + lib/jcr.c -kes prevents locking the jcr chaing. +kes Apply patch from bug #564, which corrects listing volumes with + multiple autochangers. Apply same fix to next volume list. +kes Fix bug #562 where restore bootstrap file is not unique. +kes More details in implementing David's migration syntax proposal. +kes Save and restore dcr when swapping drives so that if we have + a write dcr it is not lost. +kes Use new routine lock_reservations() to lock the reservations + system, and call it while looking for a volume in askdir.c. + This could possibly fix bug #543. +kes Stop SD command loop if job is canceled. + +08Mar06 +kes Remove old code from findlib/create_file.c +kes Rename mac.c migrate.c +kes Add user friendly display of VolBytes in job report. +kes Rename target... to previous... to make it a bit easier to + understand. +kes Add selection type and selection pattern to Migration (idea + given by David Boyes). + +04Mar06 +kes The po files should now be current. +kes Fix new sql_use_result() code to properly release the + buffers in all cases. +kes Use the keyword ujobid to mean the unique job id; job or jobname + to mean the Job name given on the Name directive, and jobid to + be the numeric (non-unique) job id. +kes Allow listing by any of the above. +kes Add the user friendly job report code for reporting job elapsed time + and rates with suffexes from John Kodis . +kes Add Priority and JobLevel as Python settable items. +kes Use TEMPORARY table creation where the table is created by + Bacula. +kes Add new code submitted by Eric for waiting on specific jobid. +kes Add ACL checking for the dot commands. +kes Fix restore of writable FIFOs. +kes Fix a bug in bpipe where the string was freed too early. +27Feb06 +kes Modify the Python class examples to inherit object -kes new way + of defining classes. Patch from Felix Schwarz. +kes Implement jobuid to replace old usage of job in keywords as + suggested by Eric Bollengier. +kes Apply patch for enhancing wait from Eric Bollengier. On can now: + wait (wait for all jobs to stop) + wait jobid=nn + wait jobuid=unique id + wait job=job-name +kes Implement write variables for Python to set Priority (anytime), and + Job Level, only during JobInit event. +26Feb06 +kes Fix the block listing bug pointed out by Arno. +kes Update the po files at Eric's request. +24Feb06 +kes Fix Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to + accept time qualifiers. +kes Make catalog respect ACL. +kes Add recycle count to Media record. + +Changes to 1.39.6-beta1 24Feb04 +23Feb06 +kes Add Rudolf Cejka's new rc-chio-changer. +kes Implement pulling Volume from Scratch Pool if the + Volume is in the autochanger. +kes Implement additional command arguments for update Volume. + +Changes to 1.39.5 +22Feb06 +kes Back port changes to 1.38.5 +kes Fix recycle SQL for StorageId. +kes Fix misplaced quote in mtx-changer script. +20Feb06 +kes Note. Your database must be updated, or you must create + a new database. I have not yet incremented the database level. +kes Add Location table. +kes Add LocationId, DeviceId, and MediaTypeId to Media record. +18Feb06 +kes Implement create/get mac record in database for adding extended + Migration data to the job record. +kes Add new MAC table to update/make database scripts. +kes Return Storage name used when getting VolumeNames for a job. +kes Change bsr file keyword Storage to Device, which is more accurate. +kes Ensure that Mac records are pruned/purged. +kes Tweak SD tools to deal with changing media type. +kes Integrate more dev.c subroutines as methods (e.g. strerror, bsr, ...) +kes Pass pointer to dcr pointer to acquire_device_for_read() so + that the subroutine can switch devices, and hence dcrs. +kes Modify the multiple MediaType read code to re-use the same + dcr when switching devices. This makes the code much more + robust. +kes Integrate patch from Karl Hakimian that reads JobIds, FileIndexes + from a table for restore. +kes Add Storage name to VolParams, but it really should be Device. +14Feb06 +kes Add disk-changer to scripts directory + configure/Makefile +kes Eliminate PoolId from jcr -kes it is in jcr->jr.PoolId +kes Implement store_bit scanner to replace store_yesno. Mostly done. +kes Implement new store_bool that stores in a bool. +kes Add true/false to yes/no conf directives. +kes Make first cut at changing appropriate store_yesno to store_bool. +kes Complete implementation of Pool storage devices. +kes Move starting clones to job.c +kes Move create_restore_bootstrap_file() to job.c +kes Make copy_storage() more general to be able to handle + Pool storage. +kes Cleanup a lot of migration code for manual running, including + using Pool storage. +kes Move getting a scratch Volume into a subroutine. +kes Make all places a Volume that is added to a pool to + respect max vols. +kes Fix bug in autochanger recycle code (improper edit 64 bit). +kes Fix segfault in restore command when no value specified. +kes Start adding code to handle multiple MediaTypes in restore. +kes Eliminate race condition in getting Volume name for + two drive autochanger. +kes More debug code in autochanger. +kes Add storage keyword to bootstrap file, add parsing. +kes Move slot in bsr file into Volume record as there will be + a different slot for each Volume. +kes Create reserve.h +07Feb06 +kes Implement Pool storage overrides. +06Feb06 +kes Implement first cut of Migration. +kes Implement mysql_use_result() from patch by Karl Hakimian. + This reduces significantly the memory consumption during + the restore tree building, and hence runs faster too. +kes Implement StorageId patch supplied by user (reggie) in bug + #536. This should permit Bacula to work correctly with two + autochangers. +kes Implement Job listing variations suggested by a user. +kes Move updating bootstrap code in backup.c to subroutine + update_bootstrap_file(). +kes Add new job status elapsed time and bytes written user + friendly job report output patch sent by John Kodis + . +kes Implement a storage list in Pools. +kes Separate out setup_job() code from run_job(). +kes Get migration working -kes lots of changes in mac.c in both + DIR and SD. +kes Apply patch from user (Eric Bollengier I think) that fixes a + DIR crash when no arguments are supplied to a dot command. +kes Fix typo (strcpy->strcmp) in ua_prune.c as reported by Martin. +kes Fix command arg name->volume in label command of gnome-console. +kes Fix SD acquire.c to release correct DCR by explicitly testing + on the dcr address rather than trying to devine if it is a read + or write dcr. This failed in error conditions when the device was + not fully setup. + +30Jan06 +kes Apply user supplied patch for more readable rate output + in job report. +kes Continue implementing migration. +kes Implement support for removable filesystems in SD. +kes Ensure that btraceback scripts can be read by anyone. +kes Replace dvd-freespace and dvd-writepart by dvd-handler. +kes Correct bug where canceling restore before the FD contacts + the SD causes the drive to be left in read mode. +kes Move ofline_or_rewind into DEVICE::close(). +kes Eliminate close_device. +kes Convert several dev subroutines to methods (e.g. bsf, + eod, ...) +kes Eliminate force_close_device(). +kes Implement Device Type directive in Device resource that + can have values File, Tape, Fifo, DVD, or Prog. +kes Add has_cap() method to Device. +Changes to 1.39.4 +17Jan06 +kes Add patch from bug #527 to allow RedHat user to specify + options/user/group for starting each daemon in + /etc/sysconf/bacula. +16Jan06 +kes 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 +kes Add periodic (every 24 hours) garbage collection of memory + pool by releasing free buffers. +14Jan06 +kes Correct bug counting sized (for display only) in smartall.c +kes Print FD mempool stats if debug > 0 rather than 5. +12Jan06 +kes Make db_lock() mutex error fail the job rather than abort + Bacula. Canceling the job caused the mutex to fail. +kes Correct bug in alist.c that re-allocated the list if the + number of items goes to zero. +kes Move the reservation system thread locking to the top level + so that one job at a time tries all possible drives before + waiting. +kes 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 +kes 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. +kes During 'update slots' clear all InChanger flags where the + StorageId is zero (old Media records). + +Beta release 1.38.4: +09Jan06 +kes Fix autochanger code to strip leading spaces from returned + slots number. Remove bc from chio-changer. +kes Back port a bit of 1.39 crypto code to reduce diffs. +kes Fix first call to autochanger that missed close()ing the + drive. Put close() just before each run_program(). Fixes + Arno's changer bug. +07Jan06 +kes Add PoolId to Job record when updating it at job start time. +06Jan06 +kes 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. +kes 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. + + +Changes to 1.39.3: +04Jan06 +kes Start implementing Verify list output. +kes Move the suitable_drive flag to a better place to prevent + premature termination of the reservation if all drives + are busy -kes should fix Arno's diff/inc pool failures. +26Dec05 +kes Add mutex to single thread VSS code in Win32. +22Dec05 +kes Simplify code in askdir.c that waits for creating an appendable + volume so that it can handle multiple returns from the wait + code. +kes Modify the wait code to permit multiple returns. +kes Return a zero when 'autochanger drives' is called and + it is not an autochanger. +kes 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. +kes 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. +kes Return error if reserve cannot find at least one suitable device. +kes Make wait_for_sysop() return correct state information. +kes Fix Win32 state file problem. write was not using compat + code. This should fix bug #500. +21Dec05 +kes Modify gui on command to set only GUI mode and not batch. +kes Modify .messages command to always print messages regardless + of the mode. +kes If GUI mode is on, suppress automatic printing of + You have messages. +kes Delete old bnet packet code. +kes Ignore new BNET_START_SELECT and BNET_END_SELECT signals in + wx-console. -kes not implemented because bconsole must be updated. +kes Modify restore command in wx-console to set gui on and to use + only .messages instead of messages. Hopefully this fixes bug + #514. +kes Fix seg fault in exit of acquire when canceling a job -- + reported by Wolfgang Denk +kes Pull in latest reservation system changes from 1.38 +kes Make .messages command always print messages regardless + of the automessages flag. +17Dec05 +kes Fix seg fault if user labels a drive directory bug #513 +kes Remove quotes around Version as it breaks things. +16Dec05 +kes Merge in Aleksandar Milivojevic's mods to the spec file. +kes Apply sparse code fix for raw drives and fifos. Bug 506 +kes Thorsten fixed Unicode cd problem with wx-console bug 505. +14Dec05 +kes Correct reservation system to do a last ditch try + for any mounted volume, then anyone anywhere. +kes Add quotes around table Version because of + error in MySQL 4.1.15 -kes bug report submitted. +kes Correct some minor problems with btape in the fill + command. +kes Updates to ssh-tunnel from Joshua Kugler. +kes Added a report.pl program from Jonas Bjorklund. +kes Simplify the O_NONBLOCK open() code for tape drives, + and always open nonblocking. +kes Do not wait for open() if EIO returned (shouldn't happen). +kes Eliminate 3 argument to tape open(). +kes Correct the slot # edited in the 3995 Bad autochanger unload + message. +kes With -S on bscan (show progress) do not divide by zero. +13Dec05 +kes Make cancel pthread_cond_signal() pthread_cond_broadcast(). +kes When dcr is freed, also broadcast dev->wait_next_vol signal. +kes Remove unused code in wait_for_device. +kes Make wait_for_device() always return after 60 seconds of wait. + +Changes to 1.39.2: +13Dec05 +kes Add stubs for non-crypto build. +12Dec05 +kes Use localhost if no network configured +11Dec05 +kes Eliminated duplicate MaxVolBytes in cat update -kes bug 509. +kes Remove debug print. +kes Add bail_out in error during state file reading. +10Dec05 +kes Merge changes made to 1.38.3 into HEAD +kes Add stubs for pygtk-console code +kes Create Makefile.in for pygtk-console code +09Dec05 +kes Merge updates into 1.38 branch +kes Update specs to include mysql4 define. +kes Fix when attributes are sent, must be after binit(). +kes Stop read_record() if status not ok in second loop. +kes Return rec->FileIndex in dcr->VolLastIndex for normal + and partial records in read_record(). This allows bscan + to get FileIndex at EOT correct. +kes Fix butil.c to correctly set dcr -kes fixes seg fault in bls. +08Dec05 +kes Fix Win32 built to work with new crypto code. +kes Apply patch supplied by user (slightly modified) to fix + correct detection of holes in block devices and FIFOs. + Bug # 506. +kes Apply patch supplied by user (slightly modified) + to fix SD hang with multiple pools and bad client + IP. Fixes bug # 508. +07Dec05 +kes Add nagios plugin to the examples directory. Submitted by + Christian Masopust. +kes Remove warning message about multiple saves of hardlinked files + from find_one.c as it can generate too many warning messages. +kes Modify most restore error messages to be queued so that they + appear at the end of the job rather than mixted with the restore + listing where they could be 'lost'. +06Dec05 +kes Reset timeout values before select() per patch from + Frank Sweetser for problems with non-blocking sockets. +kes Unlink the state file if either reading or writing it gets + errors. Hopefully this will fix Win32 exit problems. +kes 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 +kes Get next volume from Scratch pool before creating a volume. +kes Set new Pool defaults in Vol when moved from Scratch Pool. +kes Remove argument from create_bacula_database for SQLite as it + caused an error. +kes Add back index code so that two drive autochangers can get + a second tape. +kes Change a bunch of debug levels to aid debugging autochangers. +kes Fix reservation so that mutexes are properly applied. +kes Rework reservation algorithm so that two drives can be used + at the same time. +04Dec05 +kes Landon merged his data encription changes into the HEAD +kes 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. +Changes to 1.39.1: +03Dec05 +kes Fix font code in gnome2 console user patch. Fixes bug #501. +kes Fix malformatted bnet error message that caused seg fault + fixes bug 502 +kes Applied user patch to improve README.vc8 in src/win32. +29Nov05 +kes Add Migrate, Copy, Archive Job types (some where there) +kes Correct some more editing of JobId's (for 64 bit compatibility). +kes Ensure that StorageId is stored in Media record when ever possible. +kes Add Migration Job to Job. +kes Add Migration Time, Migration High Bytes, Migration Low Bytes + Next Pool to Pool resource. +kes Add more code to mac.c (migration archive copy). +kes Change Start Storage daemon job to require read and write storage + pointers. +kes Pass read storage data to SD as well as write storage data. +kes Remove old code from winservice.cpp +kes Break on error in scan. +kes Fix typo in signal.c +kes Separate read/write DCR in SD. Add jcr->read_dcr. +kes Cleanup how find_device() works. +kes Add read output to Status in SD. +Changes to 1.39.0: +23Nov05 +kes Add red-black btree routines +21Nov05 +kes Remove abs() in bfile.c so that it compiles on Solaris. + Bug #491. +20Nov05 +kes Fix crash in tray-monitor when daemon disconnects. Bug #479. +kes Fix bnet-server bug found on OpenBSD. Bug #486 +kes Fix cancel failure bug. Bug #481 +kes Fix failure when Pool name has spaces. Bug #487 +kes Fix SD crash in autochanger code. Mutex failure. Bug #488 +kes Fix a couple of free()s in src/filed/acl.c +kes Fix memory overrun in bfile.c in building OS X resource + fork filename. Bug #489 +kes Add Pool name to SD status output. +14Nov05 +kes Apply SunOS patch for ACLs submitted by David Duchscher. +kes Make sure to set storage before trying to set drive. +kes Add bacula_mail_summary.sh to examples directory. It makes + a single email summary of any number of jobs. Submitted + by Adrew J. Millar. +kes Make sure when we do a mount to unblock the device even + if the drive could not be opened. +13Nov05 +kes Remove the USE_WIN32STREAMEXTRACTION #defines (always on) + and correct a few minor problems to make it build on Linux. +10Nov05 +kes Remove delete of CVS from all Makefiles +kes Fix seg fault when clicking on Add button in wx-console + restore panel. Bug #470. +kes Fix copyright date and URL typo -kes bug #468. +kes Change autostart install for FreeBSD to look for rc.conf + rather than rc.local as suggested fix for bug #466. +kes Apply patch supplied by Eric Bollengier to fix PostgreSQL + grant on status. Bug #465 +kes Apply patch supplied by Eric Bollengier to fix PostgreSQL + update script. Bug #464 +kes Tweak #ifdefing a bit in new Win32 stream code. +kes Fix #ifdeffing for FD_NO_SEND_TEST. +kes Add documentation of performance #defines -- 2.39.5