From: Kern Sibbald Date: Fri, 17 Aug 2007 10:24:31 +0000 (+0000) Subject: Update after release X-Git-Tag: Release-2.2.1~55 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=ecb38b1afeb93679c939e50454ec68a5e12b0e5e;p=bacula%2Fdocs Update after release --- diff --git a/docs/techlogs/2007/RN-2.0.0 b/docs/techlogs/2007/RN-2.0.0 new file mode 100644 index 00000000..706ae203 --- /dev/null +++ b/docs/techlogs/2007/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/2007/technotes-1.39 b/docs/techlogs/2007/technotes-1.39 new file mode 100644 index 00000000..484fe7a3 --- /dev/null +++ b/docs/techlogs/2007/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 diff --git a/docs/techlogs/RN-2.0.0 b/docs/techlogs/RN-2.0.0 deleted file mode 100644 index 706ae203..00000000 --- a/docs/techlogs/RN-2.0.0 +++ /dev/null @@ -1,392 +0,0 @@ - - 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/RN-2.2.0 b/docs/techlogs/RN-2.2.0 new file mode 100644 index 00000000..45d3fcf4 --- /dev/null +++ b/docs/techlogs/RN-2.2.0 @@ -0,0 +1,172 @@ + + Release Notes for Bacula 2.2.0 + + Bacula code: Total files = 520 Total lines = 195,550 (*.h *.c *.in) + 82 new files, 41,221 new lines of code, 208,380 lines of change from 2.0.3 + +This Director and Storage daemon must be upgraded at the same time, +but they should be compatible with all 2.0.x File daemons, unless you +use some of the new features that affect the FD. In other words, you should +not have to upgrade all your File daemons when you upgrade. There is +no database upgrade needed from version 2.0.x to 2.2.0. + +Areas requiring caution or testing: +- You must have the thread safe version of MySQL client libraries loaded + to build with MySQL enabled. +- Volumes are pruned only when absolutely necessary -- this may cause + your database to grow compared to prior Bacula versions. +- Solaris door and even port files are no longer restored (equivalent + to what we do with sockets). +- SQLite is no longer supported for Solaris -- it fails too often with + bus errors. SQLite3 should work on Solaris. +- The default setting for SQLite3 is now 'PRAGMA synchronous=OFF'. + This makes it run 30 times faster, but increases the possiblity + of a corrupted database if your server shuts down unexpectedly. + The default behavior can be changed in src/version.h +- Restore on Win32, and in particular on Vista is untested. Please + test before relying on it. It should backup and restore reparse + points. +- Win32 servers are untested, and very likely not to work. + +The major new features are: +- Much faster insertion of attributes (somewhere around 10 times), + many thanks to Eric Bollengier and Marc Cousin. +- First release of bat (Bacula Administration Tool). Note to build + bat you must explicitly enable it on the ./configure line, you + must have the Qt4 version 4.2 or later libraries loaded, the qwt + (Qt Graphics) package loaded, and qmake and the other Qt4 tools + must be available. Most of the implementation was done by Dirk Bartley. +- Red/Black restore in memory tree (500 times faster loading). +- The Regex Where code to allow easier relocation of restored files + thanks to Eric. +- Socket level heartbeat for all connections (untested). +- posix_fadvise() use in the FD to improve performance reduces + swapping due to opening/reading lots of files. Win32 equivalent + implemented. +- Much improved Volume reservation code that should eliminate most + conflicts experienced in multiple drive autochangers. +- Simpler locking in the SD in the reservation system. +- Detection of file size/date change during backup if enabled. +- New Recycle Pool feature -- thanks to Eric. +- Efficient implementation of very large include/exclude lists. +- Volumes are no longer pruned during 'status dir' +- Pruning is now more efficient, and if a Volume is purged, + during pruning, it is immediately discovered. +- License is now GPL v2 without modifications, fix a few copyright + mistakes made when adding FSFE copyright notice. + +New ./configure options: +- --enable-bwx-console +- --enable-bat +- --with-qwt= +- --with-db-name= +- --with-db-user= +- --enable-batch-insert + +New bconsole commands: +- exec +- memory +- update recyclepool +- .sql +- .api +- .pwd (in restore tree) +- restoreclient (keyword) +- backupclient (keyword) +- regexwhere (keyword) +- update jobid (new command) +- recyclepool (keyword) + +New directives: +- Heartbeat Interval (bconsole.conf) +- Heartbeat Interval (bacula-dir.conf in Director, Client, Storage) +- TLS Allowed CN (bacula-dir.conf in Client) +- Regex Where (bacula-dir.conf in Job) +- Strip Prefix (bacula-dir.conf in Job) +- Add Prefix (bacula-dir.conf in Job) +- Add Suffex (bacula-dir.conf in Job) +- Recycle Pool (bacula-dir.conf in Pool) +- FailJobOnError (bacula-dir.conf in RunScript) +- CheckFileChanges (bacula-dir.conf in FileSet) +- StripPath (bacula-dir.conf in FileSet) + +Other features or bug fixes: +- Fixed bugs: 916, 910, 917, 914, 906, 907, + 842, 830, 893, 861, 888, 886, 807, 877, 872 + 885, 887, 864, 874, 882, 881, 863, 859, + 856, 854, 845, 847, 846, 809, 772, + 822, 825, 824, 808, 802, 797, 798, 795, 789, 791, + 788, 780, 763, 782, 612, 767, 775, 621, 772, 764, + 766, 621, 761, 755, 750, 741, 747, 742, 744, and 743. +- Configure bat with --enable-bat. Define qwt libraries with + --with-qwt=. See Installation chapter of manual for details. +- Create a depkgs-qt package that has both Qt4 and qwt, which are + needed to build bat. Most modern Linux systems will have both + these packages in the distro. +- Storage overrides delete all previous storage definitions instead + of prepending. +- One should be able to mount and unmount removable devices if the + Device resource has Removeable Media set and the mount and unmount + directives are defined. +- ./configure will do a better job of searching for qwt libraries. +- The Win32 version can no longer be shutdown from the tray monitor. + Use the command line or the Services panne. +- Keep prune_volumes() from pruning the whole Scratch pool. +- More debug output in status storage. +- Correct moving a Scratch volume from pool to pool (some + critical columns were lost). +- Different locking in reservations and despooling systems, + which means more micro-locking and less macro-locking, which + should give a lot more concurrency at the expense of slightly + (<0.1%) more overhead due to more locking/unlocking, but + concurrent jobs should run much faster. +- Additional drive reservation algorithm that should solve a lot of + the problems experienced with multiple drive autochangers. +- Storage daemon status command enhanced to more clearly show Volume, + pool and media type when a job is waiting. +- Made bsmtp work with more strict SMTP servers. +- Detect doubly freed buffers in smartall.c +- wx-console renamed to bwx-console (Fedora request) +- gnome-console renamed to bgnome-console (Fedora request) +- Migration preserves original job's FileSetId +- Spooling implemented for migration jobs. +- Config files can be read through a pipe, by specifying a leading | + in front of the configuration path/filename. +- New memory command (bconsole) that will print the current Director's + memory usage, and an in use buffer dump. +- Console name changed from *Console* to -Console- to accomodate Win32 + filename restrictions. +- Corrected the Win32 ftruncate bug. +- Additional version information added to Job reports. +- New -8 option for bsmtp to specify UTF-8 encoding type. +- bsmtp will no longer add < > to target (from, to, cc) if there + is already a < in the target. +- Prefer Mounted Volumes extended to mean a volume that is being + mounted by another job. +- Runscript timing set to same as version 1.38.11 +- New TLS Allowed CN directive(s) permitted. +- New bconsole 'exec' command to run external script/command. +- Turn on FreeBSD/OpenBSD code to set EOT model on tape. +- Drop from root done before database is opened. +- Database user and name can be configured with: + --with-db-name=name --with-db-user=user +- Turn on wait_for_drive in mtx-changer script. +- Rework how bar codes are handled in mtx-changer script. + This appears to have been an unreported bug. +- Updated nagios plugin supplied by Christian Masopust +- Better restricted console ACL checking. +- New Client Connect Wait directive in Storage daemon so that + users can configure how long SD waits for FD connection. +- Bacula will no longer permit pruning of the currently running + job (note, if other jobs are running, they may be pruned). +- Sockets are no longer restored. +- dbcheck works in 300K chunks so will typically run faster. +- Include/Exclude lists can now be efficiently handled for quite + large sizes -- tens of thousands of entries. +- Several memory leaks in migration and database usage were fixed. +- New console keyword restoreclient, which specifies the client to + which the restore will be sent. The client keyword specifies + the backup client. The restoreclient keyword is optional if it is + not specified, the backup client will also be the restore client. +- The disk file size is now checked to ensure that it agrees with the + catalog value before Bacula will append to the disk (same as tape + and DVD). diff --git a/docs/techlogs/technotes-1.39 b/docs/techlogs/technotes-1.39 deleted file mode 100644 index 484fe7a3..00000000 --- a/docs/techlogs/technotes-1.39 +++ /dev/null @@ -1,1795 +0,0 @@ - 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 diff --git a/docs/techlogs/technotes-2.1 b/docs/techlogs/technotes-2.1 new file mode 100644 index 00000000..371bf94d --- /dev/null +++ b/docs/techlogs/technotes-2.1 @@ -0,0 +1,992 @@ + Technical notes on version 2.2 + +General: + +Release Version 2.2.0 +09Aug07 +kes Apply a second doc patch from Marc. +kes Apply a doc patch from Marc Schiffbauer that + improves the tips section that discusses how to setup multiple + simultaneous jobs. +08Aug07 +kes Update bat README file. +kes Apply patch from Allan Black that + corrects a typo in the Recycle status check in db_find_next_volume(). + This will probably fix a number of annoying problems with multiple + Recycled volumes. +kes Modify most of dird/msgchan.c to use bsock class calls rather than + bnet calls -- no functionality change. +07Aug07 +kes Modify the Verify output to specify if files are missing on + the Volume(s) or disk. Fixes confusion in bug #916. +kes When more than one Volume is read in a migration job, the last + Volume bytes reported are from the last read volume rather than + the last written volume. Fixed. This fixes bug #910. +kes Fix display of Recycle flag after update volume=foo recycle=yes. + It previously printed New Recyle flag is: no. This fixes bug + #917. +06Aug07 +kes Correct seg fault when switching tape drives during restore. +kes Commit uid_gid_name.c (replacement for idcache.c), but will not + be used until after 2.2.0 release. +04Aug07 +kes Remove fnmatch() in SD that permitted wild card specifications. + This fixes bug #914. +31Jul07 +kes Fix %g in filename returned by SQL for browse tree reported by + Dirk. +kes Fix configure so that it puts config.out in the cwd rather than + in src/qt-console +kes Attempt to fix the locking problem reported by Eric in bug #906. +kes Make berrno class to leave errno unchanged after constructor call. +kes Make bnet_server use the heap rather than the stack to allocate + its socket fd pointers to avoid a crash at termination. Problem + reported by Ryan Novosielski and bugs pointed out by Martin Simmons. +30Jul07 +kes Create new depkgs and depkgs-qt separating the qwt out of depkgs + and putting it in depkgs-qt along with Qt4.3. +29Jul07 +kes Rework code in acquire.c that switches drives for reading when + the Media Type does not match. This should fix bug #906 +28Jul07 +ebl Fix a director segfault during job setup #907 +kes Correct seg fault in postgresql when first operation returns no + rows. Fixes Dirks File browser problem seg fault with bat. +25Jul07 +kes Apply patch from Felix Schwarz that allows + building wxconsole on Fedora 7 with wxWidgets 2.8 (it works with + 2.6 as well). +24Jul07 +kes Implement PopUp YES/NO dialog for bat. +23Jul07 +ebl Fix a compilation bug when using #define BACL_WANT_NUMERIC_IDS +22Jul07 +kes Correct RunScript to terminate job in FD on failure. +kes Change abort_on_error and AbortJobOnError to fail_on_error + and FailJobOnError in RunScripts. +kes Minor tweaks of code formating in RunScripts, principally to + avoid depassing 80 columns. +21Jul07 +kes Eliminate one #ifdef Win32 in bsmtp +kes Implement grow tool to grow a file for testing very large databases. +kes Add big-vol-test to test Bacula seeking with > 5GB. +Release 2.1.28 beta +19Jul07 +kes Modify find_next_volume() to return all values in Media record. +kes Ensure that we keep Recycle Pool when moving Scratch volumes. + +Release 2.1.28 beta +18Jul07 +kes Update Release notes +17Jul07 +ebl fix a bug in get_scratch_volume() report by Andreas Helmcke + Warning, in previous beta version, all media get from scratch keep their + old retention. +16Jul07 +kes Tweaked Win32 installer to remove temp conf files at uninstall time. + This should fix bug #842. Made a note to look at removing the temp + files at the end of the install. +kes Add ability to mount and unmount a file device providing it is + marked as being removable and has the appropriate mount and unmount + commands defined in the Device resource. This fixes bug #830. +kes When applying a storage override, release all previous storage + definitions rather than just prepending the new storage. + This should prevent a good deal of confusion. +14Jul07 +kes Implement ./configure search for qwt libraries. +13Jul07 +kes Disable posting the WM_CLOSE message in KillRunningCopy of the + Win32 FD. This should fix bug #893. +kes Remove an unnecessary beep in Win32 init code. +kes Update copyright dates in Win32 executable about boxes. +kes Replace the FSF copyrighted getopt.c and getopt.h in the Win32 + code with a BSD getopt.c and getopt.h. +kes Remove sched.h from the Win32 compat directory -- not used. +kes Remove the Exit menu item from the Win32 tray monitor. If you really + need to shut it down, do it through the services panel or the command + line. +kes Remove some inappropriate Bacula FSFE copyrights. +ebl Tweak status client=xxx to be more easy to parse (more like in 2.0.x) +kes Fix regress config non-portable test as pointed out by + Florian Heigl +kes Fix PSCMD for HP-UX in configure.in to have proper syntax. + as pointed out by Florian Heigl +12Jul07 +kes Fix missing rctx. prefixes on the Darwin code in src/filed/restore.c + Reported by Frank Sweetser. + +Release 2.1.26 beta +12Jul07 +kes Fix client-only build. +kes Integrate client-only fixes for bsys (initgroups) and conio from + Sergey Svishchev for the AIX platform. +kes Make arguments to get_scratch_volume() in same order as other + such calls. +kes Rework the prune_volumes() subroutine so that after purging and + no volume found in desired pool, it will check for a scratch + volume. This prevents recycling the whole scratch pool. +kes Add code to status storage to print boffset_t (largefile support). +11Jul07 +kes Move qwt (Graphics libarary for Qt4) to depkgs. +kes You now need a --with-qwt= to be able to build bat. +kes Update src/win32/cats/bacula_cats.def to include the new + db_get_query_dbids() call on Win32. +07Jul07 +kes Correct a problem when selecting a scratch volume and moving + it to another pool that lost some columns. +kes Tweak some code in ua_update.c to use POOL_MEM instead of POOLMEM. +kes Enhance Autochanger error messages to include Volume and device name. +kes Rework prune_volumes() code to take account of InChanger flag, + and to handle recycling volumes going to the Scratch pool and + current pool because the RecyclePool directive. +kes Implement a better and more efficient db_get_query_dbids() to + handle creating and passing back a list of DBIds. + +Release 2.1.24 beta +03Jul07 +kes Start work on new more efficient DBId subroutine. First use + will be for recycling volume to Scratch inchanger. +kes Increase number of JobIds in pruning from 1000 to 10000. + This to be replaced by above routine. +kes Begin implementation of building Qt4 on Win32. +kes Correct typo in fix I added for bad TLS shutdown. +kes Pull 2.0.3 patches into patches directory. +kes Update Release notes. Include qt-console in line count. +kes Update Projects file. +30Jun07 +kes Integrate patch from Sergey Svishchev that fixes + bug in migration code where a job that spanned two volumes + was migrated twice. +29Jun07 +kes Implement new BST_DESPOOLING blocked state. Change from locking + during despooling in SD to blocking. This means that other threads + can work with the device structure, in particular the reservations + system while despooling. +28Jun07 +kes Fix return in reservation message queue that missed clearing + the jcr lock (implemented 26Jun07 below). +kes Rename a number of dev methods to make locking function names + a bit clearer. +kes Document locking in lock.c. Move lock structures to new file + lock.h. +26Jun07 +kes Move reservations message lock to lock jcr only this + fixes bug #861. +kes Move main SD locking code into lock.c (new file). +kes Update Win32 build to include lock.c + +Release 2.1.22 beta +26Jun07 +kes Dirk committed the qwt library code for drawing graphs in bat. +kes Tweak install of qwt so that it is integrated with ./configure. +25Jun07 +kes Fix HAVE_BATCH_INSERT to be HAVE_BATCH_FILE_INSERT, pointed + out by Eric (my typo). +ebl Fix configure.in to get batch mode enable +kes Return correct string from authenticate.cpp in bat when connecting + to Dir. +kes Apply patch suggested by Frank Sweetser to fix bug #888 -- + spurious line drops when using TLS. +kes Do not file reparse points when restoring a file that already + exists -- Win32. +24Jun07 +kes Implement Windows reparse points -- similar to directories, but + we do not descend into it. This is a first cut. They seem to + be backed up, but restore is not yet tested. +kes Remove restore_blocking in tls code when shutting a socket to leave + it in blocking mode. Hopefully this will fix the encryption bug + reported by Frank Sweetser. +kes When opening a file for backup, tell the OS that we are going to + read it sequentially -- optimization. +kes Change variable names in authenticate_director() to not conflict + with member names in bat. Caused great confusion with compiler, + but no warnings. +23Jun07 +kes Queue openssl error messages in case of comm problem. +kes Do shutdown() call if socket terminated. +kes Remove some duplicated code in tls.c +kes Move more of the bsock member variables into private and access + them with methods. +kes Add Frank Sweetser's tls-test to the regression suite. +22Jun07 +kes Add Swedish sv.po file +21Jun07 +kes Don't print clock skew message in FD if less than 3 seconds diff. +kes Add a bit of VSS info to status client. +kes Implement a first cut of Vista VSS, using Win2003 code. + +Release: 2.1.20 beta +20Jun07 +kes Fixed bug #886 (multidrive autochanger: SD doesn't use drive with + loaded tape but uses first drive). +kes Fixed bug #807 Restore encrypted backup failed on Windows 2003 + This was indeed a Win32 issue. +19Jun07 +kes Simplify search of autochanger for in-use Volume. +kes Fix exit condition of check for in-use volume. kes Remove + inappropriate my_postgresql_free_result() in db_close() + routine. +kes Fix bad return in FD when encryption signature not found. + Probably caused a crash. +kes Inhibit missing encryption signature error messages for + file types where no signature computed. +kes Correct inverted check on autochanger in reservation system. +kes Tweak debug code in autochanger reservation. +18Jun07 +kes Add some additional locking in the cats directory in subroutines + that modify packet variables called from batch insert. +kes Rework how dcrs are allocated. new_dcr() can now be called + with an existing pointer, and it will simply clean it up. + This allows the reservation system to test various different + devices, and will permit easy device changes. +kes A bunch of changes all over to handle new new_dcr() calling + sequence. +kes Work more on the Volume management in the SD. Remember Volumes + for tape drives and for autochangers (even virtual disk changers). +kes When looking at the Volume list to reserve a drive, handle + autochanger names correctly by interating through the changer + devices. Also call the Director to see if a Volume is suitable + for the current job. +kes Fix some bugs in bscan. Make sure all media records are written. + Make sure that valid JobMedia records are written for disk files. + Previously they were completely wrong. +kes Move source tar files for depkgs-mingw32 to www.bacula.org so + that the URLs don't change and so that the developers will all + work off the same copy. Rebuild from scrach. +kes Upgrade Win32 SQLite3 from 3.3.8 to 3.3.17. + +Release: 2.1.18 beta +16Jun07 +kes Fix seg fault in FD from incorrect digest size. +kes Fix argument to non-OpenSSL crypto.c subroutine. + +Release: 2.1.16 beta +16Jun07 +kes Remove a few malloc()s from the encryption code. +kes Use the class calls to bsock in filed/backup.c and restore.c in + place of the old bnet_xxx code. +kes Implement code that does an on the fly calculation of the + signing digest during restore of encrypted files. It makes + a best guess at the algorithm, and if it is not correct, will + then revert to the old code which reads the file after it is + restored. +kes Implement at least one missing crypto stream in stream_to_ascii() +kes Apply patch from William that fixes bug + #877 where a reload with bad syntax causes Dir to exit. + +Cut: 2.1.14 beta (not released) +14Jun07 +kes Do not free a volume on a tape drive until another volume is + mounted and read, or the autochanger unloads the volume. + This should help the SD re-use volumes that are already mounted, + and should fix bug #886. +kes Apply patch from user brettedgar that allows gnome2-console include + the OpenSSL libraries, and hence work with SSL. Fixes bug #885. +kes Apply patch from Lucien Weller that fixes day of week calculation + because of DST flag problem. Fixes bug #887. +10Jun07 +kes Move find_next_appendable_volume() to after acquiring a valid device + in reserve.c. This fixes bug #864 -- confirmed by reporter. +09Jun07 +kes Unable to reproduce bug 872. However added additional testing for + integer. +kes Bug #874 resolved by documenting SQLite limitations. +kes Bug #882 resolved by documenting mtx-changer script for new drive code. +kes Bug #881 resolved by removing typo in mtx-changer script. +kes Made Frank Sweetser's wiki the official Bacula wiki with his + approval. Added a link to the wiki on the web page, and implemented + a backup from http://paramount.ind.wpi.edu +08Jun07 +kes Fix update allfrompool to pass pool name. +07Jun07 +kes Convert to pure GPL v2 license. +kes Fix sscanf problems reported by Peter Buschman that caused + a bus error on Solaris. +kes Rework (simplify) the select prompt in bat. +kes Move get_jobid_from_tid() into lib and create a + get_jcr_from_tid(). +kes Use get_jcr_from_tid() to conver all tls Emsg() to Jmsg(). This + should definitely fix the problem of lost error messages in the + encryption code. +kes Remove over zellous addition of FSFE copyright in a few eggxxx files. +kes Eliminate tcpd.h from the project. Enclose the #include from the + library with extern C ... +kes Add print of signal name when a signal is trapped. + +Release: 2.1.12 beta +04Jun07 +kes Fix a seg fault in the PostgreSQL driver dereferencing a NULL pointer. +03Jun07 +kes Implement SQLITE3_INIT_QUERY in version.h that can do an initial + query for SQLite3. Use it to set PRAGMA synchronous = OFF. This + makes SQLit3 run 30 times faster, though a bit less safe. +kes Implement --with-batch-insert in configure and detection of thread + safe libraries. It is on by default, but turned off if no thread + safe library (e.g. SQLite 2) is available. +02Jun07 +kes Fix Bacula PostgreSQL buffer overruns. +kes Do better checking for NULL results returned from PostgreSQL; + implement retry for failed queries; clear results buffer after + failed query. Hopefully this will correct the PostgreSQL failures. +01Jun07 +kes Implement algorithm to handle only one appendable volume with + Prefer Mounted Volumes = no. +kes Fix a Bacula PostgreSQL bug dereferencing a NULL pointer + returned from a query. +kes Make volume lock recursive. +kes Implement an additional volume reservation algorithm that + starts by considering all reserved volumes then uses the + old brute force algorithm of searching the resources to + find a suitable device. +kes Add new reservations debug code and refine the old code. +kes Update the win32/dll/bacula.defs file. +29May07 +kes Tweak reservations algorithm to permit a few more cases, i.e. + volume reserved, but on different drive, ... +kes Enhance SD status to include Pool and Media Type for drive in a + more readable format (a bit longer). +kes Fix PostgreSQL double free. +28May07 +kes Minor refactoring of restore decryption code. +kes Add code to smartall.c to detect double free of a buffer. +27May07 +kes Add < > around %r in from field on mail command of bacula-dir.conf.in + so that bsmtp will create a correct email address (mailbox only). +kes Modify 'memory' command so that the buffers are listed as 'In use' + to avoid confusion with Orphaned buffers. +kes I reworked the OpenSSL include/lib flags to be handled in + the standard Bacula way, which should fix bug #863 concerning + non-standard OpenSSL libraries. +26May07 +kes Implement Help Browser window for bat. +kes Fix reload bug that reset StorageId to zero. +25May07 +kes Fix TLS #ifdefing when TLS turned off. +kes Ensure that when labelling a tape with Slot=0 that InChanger + is not set. +kes Use DISTINCT to make MySQL and PostgreSQL uar_list_temp query + the same. +kes Add StartTime to final uar_sel_jobid_temp query so that we can + add DISTINCT (required by PostgreSQL). +kes Implement BSOCK authenticate_director() method. Eventually will + authenicate all daemons. +kes Move several more functions into the BSOCK class. +24May07 +kes Add code to tell the OS that we no longer need a cached + file that we were reading. In findlib/bfile.c. Also, + only cache files that we are reading. Thanks to + Tobias Oetiker for the idea. +kes Tweak to bsmtp to eliminate compiler warnings on Win32. +kes Implement script to automatically generate cats and dll .def + files for Win32 dll. +kes Update README.mingw32 to include new .def file generation. +kes Correct typo in UTF-8 error message as reported by: + jhernandez +kes Add additional sm_check() code on debug level 1. +kes Set default debug level to 1. +kes Trap SIGABRT in attempt to get traceback. +23May07 +kes Reduce bat connect timeout from 30 to 15 seconds. +kes More restructuring and implementing BSOCK class in place of + old bnet.c code. +kes Remove a few unnecessary malloc() tests in crypto code. +kes Turn off crypto calls for > 128 bits in crypto.c if HAVE_SHA2 + not defined. Bug reported by Allan Black +kes Remove duplicate HAVE_CRYPTO definition in config.h.in +22May07 +kes Fix Verify InitCatalog mysql_escape_string() trashing memory. + Make buffer bigger. +kes Fix Verify InitCatalog. The attributes were not pointing to the + correct saved location. +kes Implement message callback so that GUI is sure to get all + daemon messages. Currently displayed in a dialog in bat. +kes Ignore SIGUSR2 (Bacula timer) in bat. +kes Apply regress patch from bug #859 to allow regress to work + with Solaris compiler. +21May07 +kes Begin adding TLS support to bat. +kes Apply UTF-8/16 patch from Yves Orton to + clean up lex.c and make it more readable. +20May07 +kes Move more bnet functions into the BSOCK class. +kes Fix tray-monitor by not requiring a timer interval in bnet_connect() +kes Complete change of berrno strerror() method to bstrerror() + +Release: 2.1.10 beta +18May07 +kes Cleanup incorrect email addresses in bsmtp. +kes Make bat display initial messages rather than discard them. +16May07 +kes First cut of adding .mod to the run command. +kes Implement auto display of messages in bat. +kes Enhanced preferences to allow all Bacula output to be + displayed in bat. +15May07 +kes Try to make bsmtp date routines more generic. +kes Fixed bug #856 autochanger documentation. +kes Rework bsmtp date editing for Win32. This fixes bug #854. +kes Add new cats entry point so Win32 builds. +14May07 +kes Attempt to fix bsmtp date editing on OSes without %z editing. + Fixes bug #854. +kes Do better checking for the MySQL 64 bit libraries looking for both + .a and .so libraries. +kes Add a kludge for Ubuntu's non-standard locations for MySQL -- allow + /usr/include/mysql/mysql.h AND /usr/lib/... rather than /usr/lib/mysql/... +kes Require the thread safe version of MySQL during configure. Thanks + to Andre Noll for pointing this out. +kes Ensure that calls to find_jobids_from_mediaid_list() check count before + continuing in migration code. +kes Apply implementation of tray-monitor font derived from gnome-console + submitted by Andreas Piesk +13May07 +kes Eliminate important memory loss in SQLite +kes Fixed the batch insert MySQL thread specific data that was not + being freed. See cats/mysql.c:db_thread_cleanup(). +kes Fix restore before command. +kes Convert old hdr.name to name() in a few places. +kes Implement update jobid command. +kes Return all time_t dates in db_get_job_record() +kes Stop watchdog in SD earlier. +kes Put Pool just after Storage in please mount message. +kes Fix pointer usage bugs in Verify InitCatalog pointed out by + Eric. +12May07 +kes Update the po files. +kes Fix Verify InitCatalog by making it cache attributes. +11May07 +kes Change name bacula-bat to bat for man 1 page to correspond to + Makefile. +kes Check for client and store NULL pointers in status command. This + fixes bug #845. +kes Fix non-ssl build so that it works (add JCR *jcr to crypto structures). +kes Fix sign extended editing of %p. +kes Clean out a little old #ifdefing in cats/mysql.c +10May07 +kes If time diff between DIR and FD is more than 600 seconds convert + INFO message to WARNING. +kes Implement heap size display in status for all daemons. +kes Attempt to fix MySQL db open memory loss (not successfull). +kes Don't set SIGKILL and SIGSTOP neither can be trapped. +kes Eliminate memory loss in MySQL (possibly other SQLs) during + Query. This looks like a MySQL but but by doing extra releases, + the memory goes away. This should fix bug #847. +09May07 +kes When backup fails, cancel SD before waiting for sd termination. +kes If SD is waiting for FD to connect during cancel, wake up the + thread. +kes Fix fsf code so that errno is correctly reported. +kes Apply migration patch (with changes) from Sergey Svishchev +08May07 +kes Make lack of Pool directive in Job an ERROR_TERM rather than FATAL + so that Bacula doesn't later stumble into a seg fault. +kes Use the term Restore Client in the restore Job report. +kes Merge patch from Sergey Svishchev that preserves + the original job's FileSetId. +kes Merge patch from Sergey Svishchev that implements + spooling in migration jobs. Not yet tested. +kes Merge patch from Jorj Bauer that implements + reading conf file from a pipe. However, do it with open_bpipe() + rather than popen. Not yet tested. +07May07 +kes Fix an ugly bug where the VolCatBytes were getting updated + during a restore. +kes Implement bconsole memory command that prints current memory + usage, plus smartalloc dump. +kes Clarify some error messages in backup, admin, and migrate. +kes Shrink label dialog to smaller size. +kes Invert Cancel OK buttons on restore to be OK Cancel. +kes More strerror() to bstrerror() conversions. +06May07 +kes Start implementing bstrerror() in place of strerror(). +kes Stripping path -- seems to work. +04May07 +kes Prevent door and port files from being restored (mostly + Solaris stuff). +kes Free an unreleased buffer in compat code. +kes Change console Job name from *Console* to -Console- to eliminate + Win32 filename problems. Put Win32 path separator when creating + Console file. This fixes bug #846. +kes Change berrno::strerror() to berrno::bstrerror(). Not yet full + implemented. +kes Pass jcr to crypt_sign_decode because it creates a new SIGNATURE + structure. +kes Define b_errno_win32 on Linux to be zero so that it can be or'ed in + to force Win32 error message. +03May07 +kes First cut strip path. The data should be passed to the FD, + but nothing is done with it yet. +kes Enhance the digest and signature routines in the crypto + library to accept a JCR and to use it to print error messages + so that they will go in the Job report rather than the daemon's + messages. +kes Simplify some of the verify signature code. +kes Simplify a few of the alternative returns in the signature + code. +02May07 +ebl Use only POSIX regex instead of GNU regex in breg.c for + File relocation. It fix broken freebsd compilation. +kes Convert all other Dir files to use new ua class message + routines for bat. +kes Tentative fix for missing digest signature in bug 807. +kes Correct handle problem in new win32_ftruncate routine. +kes Convert ua_purge.c and ua_update.c to use new ua class + message routines for bat. +29Apr07 +kes Correct incorrect installation of LICENSE in Win32 installer. +kes Display LICENSE at the beginning of the Win32 install. +kes Attempt to correct the need for the png files to be installed + for bat. +kes Reapply my bat.conf install script in qt-console. I think I + editted bat.pro instead of bat.pro.in and it was lost. +kes Apply CentOS patches someone sent me. Checks for /var/run/subsys, + the /var/lock/subsys for subsysdir. Also corrects typos in the + doc. +28Apr07 +kes First cut update job. +kes Correct configure to include qmake of src/qt-console directory. +26Apr07 +kes Make restore job yes/mod/no print in one command so GUI works. +kes First cut implementing backup and restore client. +kes Correct editing in Verify output that caused a seg fault. +25Apr07 +kes Insure that bat.conf is not overwritten during installation. +kes Fix important bug in db_sql_query() in mysql.c. It was introduced + while I was implementing migration in March 2006 ! +24Apr07 +ebl Cleanup file relocation, using char *RegexWhere instead of + char *where + bool where_use_regexp +kes Update some manpages and add bat manpage. +kes Make a first cut at converting bacula.spec.in for bwx-console + and bgnome-console. +kes Apply patch from John Goerzen to add hostname as fourth argument + to make_catalog_backup script. +kes Fix typos I introduced into bsmtp.c +kes Make pm_strxxx() routines handle input of NULL pointer. This + is to protect from NULL pointers returned from SQL databases. +kes Correct typo in bacula-sd manpage as pointed out by John Goerzen. +kes Add more debug to FIFO code -- fix fifo regression test. +23Apr07 +kes Implement posix_fadvise in FD, and for reading spool files in SD. +kes Add thread timer to bnet_connect() to break from OS if wait time + expires. +22Apr07 +kes Update Win32 build to include new files, new symbols, and + renamed files. +kes Implement socket level heartbeat (tcp_keepidle) +ebl Commit File relocation patch +kes Make bat have 'make install' target. +kes Warn during install if old gnome-console binary found. +kes Warn during install if old wx-console binary found. +kes Add -8 option to bsmtp command line to add content type utf-8. + Fixes bug #809. (Character coding problem in bsmtp). +kes If < is found in target (from, to, cc) then do not enclose the + target in < > in bsmtp. Fixes bug #772 (malformed address). +kes When printing certain items in dbcheck, stop after 300000. + Fixes bug #822. (dbcheck loops). +kes Incorrect status in Dir after waiting for mount with poll set. + Fixes bug #825. +21Apr07 +kes Extend idea of Prefer Mounted Volumes to mean a volume about + to be mounted. +kes Print waiting to reserve a device every 5 mins. +20Apr07 +kes Don't call close_part in label.c if tape and relabel. +kes Don't free volume if busy in close() -- should help with + bug 801. +ebl Fix #824 RunScript bug (After script could be execute twice) + Now, Before Script can use RunsOnSuccess and RunsOnFailure options + By default (like before) RunsOnSuccess=true and RunsOnFailure=false + Add a regression script to test RunScript +19Apr07 +kes Correct usage of MTIOCLRERR ioctl for clearing persistant errors + on Solaris. +18Apr07 +kes The bgnome-console (gnome-console) and bwx-console (wx-console) are + deprecated. No additional bugs will be fixed, and they will be dropped + in a future release (probably 2.4.0). +kes Change name of wx-console to bwx-console to make it more Bacula + unique. +kes Change the name of gnome-console to bgnome-console to make it + more Bacula unique. +14Apr07 +kes Some time in March, a Feature Request with patch from Jorj Bauer + was committed by Landon (with my approval). + It implements: + The ability for the director to validate a Client (FD) CN against + an arbitrary set of patterns rather than the hostname, with + A new 'TLS Allowed CN' set of directives which are implemented + in the Client resource. Then pattern matching is used in place + of hostname matching against the Certificate's CN. As an example, we + have certificates which (a) use a local CA, and (b) have a CN of the + form client_123. +kes Add new/changed entry points to Win32 build +kes Create unaccepted-projects for projects that are not accepted. +kes Simplify locking in the reservations system. +kes Add more debug code in reservations. +kes Make sure error condition on reserving a volume is handled correctly. +kes Correct handling of volume_in_use. +kes Correct handling of initializing a device. +kes Move handling of broadcasting releasing a device into release_device(). +kes Correct attaching dcr to dev so that it is only done if device + is properly initiated. +12Apr07 +kes Locking debug level tweaks in SD. +kes Tweak new Volume code. +11Apr07 +kes Add exec external-command [wait-seconds] to bconsole. This + executes the external-command. Note! normally external-command + should be enclosed in double quotes. +kes Turn the .die command on only if DEVELOPER is defined -- i.e. + it should normally be off in a production system. +10Apr07 +kes Implement die command for SD so that we can force it to dump. +kes Implement SD lock debug code. +kes Implement new algorithm for keeping Volume list in SD. It + is now owned by the device. +04Apr07 +kes Implement new code for freeing in use volumes that should + resolve if not all, some of the problems of multiple drive + tape conflicts described in bug 801. +03Apr07 +kes Fix gui/bacula-web/images files in svn. +kes Turn on FreeBSD/OpenBSD code to set EOT model on tape. +02Apr07 +ebl Fix a bug in batch mode (in string escape) +kes Correct migration prune SQL typo that crept in in a + recent 2.1.x change. +01Apr07 +kes Move bnet_despool() into class in bsock.c +kes Modify job report to include director name and Build OS. +kes Move drop root privilege and check_catalog() before fork. +kes Add update database scripts (version 9 to 10) to updatedb directory. +31Mar07 +ebl Check size and age of each file after its backup to see if + it has changed during backup, if 'checkfilechanges' is set. + The FD will do an extra check (stat(2)) after + each file backup. mtime, ctime and size are compared with + 'before backup' information. If time or size mismatch, an + error message will be generated. You must upgrade FD to use it. +30Mar07 +kes Make database name and user configurable + --with-db-name=xxx --with-db-user=xxx +kes Add back database type to message.c for debugging. +29Mar07 +kes Implement dir_sql() which issues an SQL query. +kes Modify bat medialist to use dir_sql() and do some minor C++ + formatting as well as eliminating a number of pointers, simplifing + the code. +28Mar07 +kes Fix some of the mtx-changer grep commands for tape label readers. +kes Convert a number of bsendmsg into the appropriate send/warning/error + message class calls. +kes Suppress the using database message in the .sql command. +kes Correct an incorrect bnet_tls_client prototype -- patch from Martin. +27Mar07 +kes Add context menu for floating a window. +kes Some minor cleanup and name changes in qt-console +kes Add doing mt setblk 0 in Win32 mtx-changer. +kes Apply Martin's bug fix to move definition of ENODATA for + FreeBSD to bsock.c +ebl Add a BUSY handler to sqlite to be able to use multi_db = 1 with + sqlite2 and sqlite3. +26Mar07 +kes More pruning cleanup. +kes Turn on wait_for_drive by default in mtx-changer. +kes Turn on Batch insert code by default as it now passes regression. +kes Add ./configure --enable-bat to enable building of Bat. + No install yet though. +25Mar07 +kes Implement a new .sql command for bat. +kes Implement code to turn off pruning in obtaining the next volume. + Pruning is turned off for the status dir command, but turned on + for SD requests and for the list nextvolume command. +24Mar07 +kes Correct Qmsg() that was not updated correctly when committing a + previous change (probably the recent TLS patch). +23Mar07 +kes Write new subroutine is_volume_purged() that explicitly checks + if the Volume is purged, and if so marks it as such. This should + resolve problems reported about needing to mount twice to recycle + volumes. +kes Rewrite pruning algorithm to do more work in the SQL engine, and + to pass a list of JobIds to be deleted to SQL. Also, minimize the + amount of duplicated code. +kes Do volume pruning only for the Media Type desired (reduces pruning time + if multiple Media Types are in the same pool). +kes Implement more detailed info in the Job report for the Bacula version + and architecture. +kes Switch from POOLMEM to POOL_MEM (a real class) in ua_prune.c and + ua_purge.c. +ebl Add bbatch tool to bench database and insert mode. + Fix sql quote stuff in batch mode + Fix sql stuff for mysql +22Mar07 +kes Correct problems with am/pm scheduling. Fixes bug #808. +kes Implement new prunning code that prunes up to 1000 jobs at + the same time. The same technique can be applied to a number + of other prune/purge subroutines. +kes Add an insanity check when starting a new tape job to ensure + that the tape position has not been changed. If so fail the + job. +kes Fix Win32 build for dlls to add the folllowing: + src/lib/bsock.c -- new file with new entry points + src/lib/dlist.c -- new entry points + src/cats/sql_create.c -- new entry point + src/cats/sql_cmds.c -- new DATA item exported +21Mar07 +ebl batch mode cleanup bscan-test is ok now. +kes Implement SD code to check length of disk volume before appending. +18Mar07 +kes Correct return status on db_batch... routines. +kes Add call to db_write_batch_file_records() to migration code. +ebl Fix AfterJob timing +kes Move the checking of the database in initializion of the Director + to after we drop privileges. This avoids the need for both root + and bacula access to the DB. +kes Correct a misplaced variable definition in src/filed/backup.c +kes Correct how the new batch insert db_create_attributes_record() + uses the arguments. Caused a seg fault in bscan. +kes Implement lock() and unlock() methods in DEVICE class. + Implement block() and set_block(xx) methods in DEVICE class. +kes Modify bnet_connect() so that it uses time() to check for the + wait time expiring (on some OSes, some system calls may not + return immediately). +kes Modify Verify to obtain the previous JobId when it is actually + running rather than at schedule time (as it was in 1.38.x). +kes Fix src/job.c to handle MaxWaitTime correctly. This should + fix bug #802. +kes When checking pid in pid file, continue running if the pid is + the same as ours. This occurs on IRIX after a system crash. + Fixes bug #797. +10Mar07 +kes Extend new GUI API. +kes Make the ua structure a class, and implement send_msg(), + error_msg(), warning_msg(), and info_msg(). +08Mar07 +kes Apply fix from for building wx-console on the Mac from + bug #798. +kes Implement new select mechanism for GUI programs. +kes Reorganize initialization of stackedWidgets in bat. +07Mar07 +kes Add updated nagios plugin supplied by Christian Masopust. +05Mar07 +kes More bat implementation. +kes File migrate bug with Pool Occupancy using mediaid instead + of jobids. Fixes bug #795. +kes Fix orphaned buffers in filed backup and verify due to + crypto buffers not freed during errors. Fixes bug #789. +kes Extend new GUI api code to tree commands. +kes Ensure that tree and dot commands check console ACLs. +kes Permit marking directory with trailing slash. +kes Allow 20 console connections (instead of only 10). +04Mar07 +kes Add smartctl call to bacula-sd.conf as an example of getting + tape alert info. +02Mar07 +kes Modify jobq.c to let simultaneous restore jobs run. This may + cause them to fail if they cannot get a drive. +kes Add Client Connect Wait to Storage daemon to permit users to + modify the time the SD waits for a FD connection. +29Feb07 +kes Correct virtual changer check which was backwards. This caused + volumes to be unloaded into slots already occupied. +28Feb07 +kes Apply Command ACL filter to JobId list in restore command. +kes Correct typeo in var.c patch. +27Feb07 +kes Don't let Bacula prune File or Job records for the current Job. +kes Fix variable substitution pad + inc bug reported (with patch) + in bug #791. +26Feb07 +kes Correct SQLite log table index as reported by Luca Berra. +24Feb07 +ebl fix fifo stuff, bacula tries to rewind the fifo... Thanks to Andreas +22Feb07 +kes Begin implementing new comm signals for API. +kes Fix a few places in lib/message.c where the open fd may + not be zeroed. +kes Continue implementing lib/bsock.c (real class). Make jcr, + who, host, and port private. There are new methods to access + them for non-class use. This required touching a number of files. +21Feb07 +kes Add LANG=C to autoconf/randpass so it works with languages other + than English. Fixes bug #788. +20Feb07 +ebl Revert ClientRunBeforeJob to old position as in 1.38.X. + This fixes bug #780 + You will not be able to generate Include/Exclude list any more. + It will be fixed soon. + If you want to use this, you can apply + trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch +19Feb07 +kes Restore of sockets created false error messages because Bacula + no longer restores sockets, but the code was still trying to + set the attributes on a non-existent file. Reported by a user. +ebl finish RecyclePool feature + Media will takes Pool.RecyclePool + when moving from Scratch to a Pool or when user will do + update volume=xxx frompool + To use it, add RecyclePool = aPool to your Pool resource + Pool { + Name = Default + RecyclePool = Scratch + ... + } + TODO: update manual +kes Expand new BSOCK class adding signal() and new BNET signals. +kes Begin enhancing the dot commands adding a new API function + that returns more information and will make it easier + to interface to the Director from a program. +18Feb07 +kes Make DEVICE fd private. Its new name is m_fd, and can be + obtained with dev->fd() outside the class. This is the + first of many DEVICE members to be made private. +kes Implement Michael Renner's idea on having a virtual disk + changer. I made some minor modifications (e.g. I did not + implement the Virtual Changer directive, but simply set + the Changer Command to an empty string. +17Feb07 +kes Implement a BSOCK send() method that writes the whole record + in a single write() request rather than in two. +ebl add update volume=xxx recyclepool=yyyy + volume takes recyclepool from pool when using update volume=xxx from pool +16Feb07 +kes Fix encryption deblocking bug, which caused some restored files + to be truncated. This fixes bug #763. +kes Add FD event sequence order prepared by Eric -- for RunScripts. +kes Fix 12am/pm bug as reported in bug #782 -- scheduler problem. +13Feb07 +kes Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1. +ebl Use btime_t instead of uint64_t in media patch. +11Feb07 +kes Optimize the use of the database a bit in the Status dir command. + Only open it when needed, ensure that if any previous database + was opened, it is closed. +10Feb07 +kes Correct VolCatBytes bug from media patch. +kes Apply patch from bug #612 by Rudolf Cejka to speedup pruning + in the case of orphaned records. +kes Modify dbcheck to handle orphaned JobMedia, Path, Filename, + and File records in 300K chunks to be more efficient. This + idea came from Juan Luis Frances (if I remember right). +kes Apply Eric's scratch patch that moves a purged Volume to + the RecyclePool. Question: how is RecyclePool set? what + happens to the ScratchPool? +kes Apply Eric's media patch that collects read/write media + times as well as byte counts. This patch requires a + simultaneous upgrade of the DIR and SD. Note, there + should be some way to turn off timing. I'm not sure + times are in Bacula units. +kes Apply Eric's batch-insert patch. +09Feb07 +kes Update projects list. +08Feb07 +kes Implement Include/Exclude file lists in FD as dlists using + the new dlistString class. This permits efficiently having + large include/exclude lists and completes project Item 25. +kes Fix dird/ua_cmds.c so that a cancel command checks if the + console is authorized to cancel the job. This fixes bug + #767. +kes Modify SD so that the VolCatJobs medium record is updated + at the beginning of a Job rather than the end. This + fixes bug #775 where exceeding MaxVolJobs caused jobs + to fail. +kes Added a mutex around getting and setting Volume information + so that multiple simultaneous jobs will single thread. +07Feb07 + Switch to using Subversion +kes Remove src/pygtk-console/ from configure +06Feb07 +kes Delete src/lib/btree.c from win32 build, then add rblist.c + plus the entrypoints. +kes Apply patch supplied that corrects debug print + in canceling jobs for max run time. Supplied as + part of bug #621, which was previously fixed. +05Feb07 +kes Test on job_canceled() and sd_msg_thread_done inside + loop starting the message thread to avoid a race condition. + Fixes bug #771. +kes Remove rl_catch_signal from console.c as it conflicted + with the header definition. Fixes bug #765. +ebl Fixes bug #766 about RunsOnClient = Yes (case sensitive) +04Feb07 +kes Clarify some stored/acquire messages to indicate if the + problem is with read or append. +02Feb07 +kes Fix memory leak with storage ids in cats/sql_get.c +kes Terminate watchdog earlier to avoid reference to released + memory -- reported by Jason Austin. +kes Move closing the database from jobq.c to the director daemon + termination routine. This fixes memory leaks for shadow jobs + (i.e. migration jobs). +kes Free up the unique jobid chain items in migrate.c. This fixes + a memory leak problem. +kes Convert some ugly looking for statements to use foreach_alist + in findlib/find.c. This will facilitate converting the structures + to use dlist (for large include/exclude lists). +kes Fix a bug in the btree.c and btree.h routines, then rename them + rblist and add them to be built in src/lib. Include some new + methods written by Rudolf Cejka that make the code more readable + (hides some of the ugly casting). +kes Add set_next() and set_prev() methods which make the code much more + readable. Also add a new dlistString class that facilitates storing + strings in dlists. To be used in the large include/exclude lists. +kes Make some trivial modifications to lib/tree.h that use rblist + rather than dlist for storing the tree links. This was suggested + by Rudolf Cejka. The result of this is that the restore tree now + uses red-black binary trees rather than simple linked lists. This + should give rather dramatic speed improvements for directories + contining large numbers of directories/files (more than 10000). +28Jan07 +kes Fix maxruntime bug #621. +26Jan07 +ebl Implement the include JobID in spool file name project. +kes Reorder projects file in order determined by Jan 2007 vote. +kes Implement item #12 on project list -- quick release of FD by + the SD. +kes Fix open of SQLite3 db where user does not have write permission + so that DIR does not crash. Fixes bug #761. +25Jan07 +kes Add back missing @ in Win32 Makefile. +kes Change 'Device not configured to autolabel' from INFO + to WARNING. +kes Fix jobq.c to restart failed jobs when Reschedule Times = 0 + which should restart an indefinite # of times. +kes Fix configure --help to print --with-mysql[=DIR]. Same for + other DIR specifications. +23Jan07 +rn Fix msvc build problems. Fix bacula.dll exports for msvc build. + Fix path quoting in SQLite scripts. + Fix problems with SHGetFolderPath. +19Jan07 +kes Create patches/2.0.1-restart.patch. Fixes bug #755. +18Jan07 +kes Fix Job restart on error bug that promotes an Inc to a Full + backup. This should fix bug #755. +kes Add qt-console and first cut of code. + +Version 2.0.1 +12Jan07 +kes Fix Bacula->Documentation link on Win32 to point to index.html + instead of bacula.html. Fixed bug #750. +kes Return JobId in db_get_job_record() when JobId==0. This should + fix bug #741. +kes Do not release source pointers when restarting a failed job. +11Jan07 +kes Add dynamic dll entry point for SHGetFolderPath to Win32 code. + This *should* fix bug #747. +kes Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix + bug #742. +09Jan07 +kes Modify USTORE constructor to set an empty store_source string, + and don't copy the store_source string in a cancel. Hopefully + this will fix Arno's seg fault, bug #744. +kes Add back code to disable conio in configure. Fixes bug #743. +kes Correct the Options scanner in the FD to correctly handle + SHA1 option, which was eating the next option. Reported by + Sebastien Guilbaud. +kes Add code to indicate when the SD is spooling, spool wait, and + despooling as requested by Alan Brown. + +Version 2.0.0 released: 4 January 2007