X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2FReleaseNotes;h=5caab67da36d79a73fde3692be5e2cada119bb7f;hb=21f47c1a7aa0865813656975be218a147286bae3;hp=1da6e9aada29be1a269ba1342f8a407976859378;hpb=c8be52343b7ccc8ceb8feeea8750c988d7288e73;p=bacula%2Fbacula diff --git a/bacula/ReleaseNotes b/bacula/ReleaseNotes index 1da6e9aada..5caab67da3 100644 --- a/bacula/ReleaseNotes +++ b/bacula/ReleaseNotes @@ -1,500 +1,374 @@ - Release Notes for Bacula 1.35.6 + Release Notes for Bacula 1.39.28 - Bacula code: Total files = 396 Total lines = 116,116 (*.h *.c *.in) + Bacula code: Total files = 442 Total lines = 150,218 (*.h *.c *.in) -Changes for 1.35.5 -Major Changes: -- Tray monitor program -- Bacula Rescue CDROM -- Bacula CD Image Manager -- Lots of improvements in the Rescue scripts -- better - network detection, better mounting code, ... -- General bug fixes/stabilization -- French translation of manual by Ludovic Strappazon well - underway. -- UTF-8 is supported in conio (some minor cleanup is needed). -- Improved conf scanning code allowing FileSet components to - be put on a single line (previously everything had to be on - a different line). -- Win32 files restored to an alternate directory will have the - colon following the drive letter turned into a / e.g. c: - becomes c/. Previously the c: was stripped. This applies only - to files written to an alternate directory (i.e. using a where=). +Version 1.39.28 contains mainly bug fixes to 1.39.26. Please + see the ChangeLog for more details. -New Directives: -- Added "Ignore FileSet Changes = yes" -- Added "Block positioning = yes/no" in Device resource in SD. -- Added "Multiple connections = yes/no" in Catalog record for - allowing multiple simultaneous connections to the database. - This is a major performance improvement for PostgreSQL. +==== IMPORTANT Encrypted Volume data may be unreadable ==== +- 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 -Items to note!!! -- As of 1.35.5 you MUST do a database update. -- All daemons should be compatible with 1.34 with the exception - of the new FileSet features such as regular expressions. -- Regular expressions are not implemented in the Win32 FD. + Sparse + Encryption = Restore broken + Sparse + Compression + Encryption = Restore broken + Compression + Encryption = Restore broken -Other Items: -- See below + As of 1.39.28: + All combinations work fine. -Changes to 1.35.5: -22Sep04 -- Incremented the release number because this version requires - an update to the database. - Use: - cd src/cats - ./update_bacula_tables - to update an existing database. -- Implemented EndFile and EndBlock in the Media record. This will - allow Bacula to know exactly when to stop reading a tape if the - stupid tape driver does not give a logical end of tape indication - and Bacula writes to the end of the tape getting an I/O error. -- Added new routines to update the database, and there are - new database creation routines to add the two new Media columns. -- The Media record is updated each time a JobMedia record is created. - This keeps the Media record up to date. -- Undid the code to use automatic type converions to char * in - POOL_MEM. This is due to the ugly consequences of essentially - destroying the class type nature of the class. -- Removed all the old mp_char() #define code. +==== IMPORTANT a stock SuSE 10.1 kernel may crash ===== +- A stock SuSE 10.1 kernel may crash when Bacula runs and accesses + the tape drive. Workaround, load a Fedora kernel, which works fine, + or load the SuSE 10.2 rc5 kernel which also works fine. -Changes to 1.35.4: -22Sep04 -- Add additional doc. -- Implement automatic POOL_MEM type conversion to char *. Thanks - to Martin Simmons for the suggestion. -- Remove some unneeded function overloading -- need removed by - automatic type conversion. -21Sep04 -- Correct segfault in message.c with debug=200 (new code). -- Fix bug 109 verify with no options prints garbage. -- Add ioctl(MTIOCGET) call to clrerror_dev() in dev.c. As reported - by Frank Kardel, this should clear error conditions on NetBSD. -20Sep04 -- Modify the rescue script to create mount_drives with - the order specified by Philip Nash (mkdir, mount). -- Tweak install chapter of French manual to add new paragraph - from English. -- Tweak restore tree message to be a bit clearer. -- Modify watchdog to wakeup after 60 seconds, or wakeup if - there is work to do. -- Modify watchdog stop routine to "ping" watchdog so that it - stops immediately rather than after sleep time. -- Fix btape to use new dcr blocks rather than its own. -- Fix butil.c to correctly handle Volume names for the - utility routines (broke when updating to dcrs). -11-19Sep04 (vacation) -- Implement multiple Storage specifications in the Job resource - (AND) each containing multiple specifications (OR). Not yet functional. - Note, this needs more work as most things now use - job->storage[0]->first() rather than looping through devices. -- Implement "Multiple connections = yes/no" in Catalog record for - allowing multiple simultaneous connections to the database. -- Add new mac.c (Migrate, Archive, Copy) to dird -- not yet implemented. -- Implement a new POOL_MEM class that automatically allocates - and deallocates a pool buffer. -- Overload a number of utility routines to permit using both - POOLMEM and POOL_MEM. -- Start converting to using POOL_MEM. -- There were a number of Bacula console ACL checks missing in - ua_run.c. It allowed users to run jobs they really should not. -- Correct a number of dates on the Copyright. -- Overload pm_strcpy() and pm_strcat() to handle new POOL_MEM - class. -- Overload bash/unbash_spaces to handle new POOL_MEM class. -- Make a *MASSIVE* pass through the Storage daemon eliminating - all use of jcr->VolumeName and jcr->VolCatInfo in favor of - dcr->... -- Eliminate all all redundant arguments from calling sequences - in SD. This poses a number of problems due to the old way blocks - and records were allocated and released all the time. They are - now contained in the dcr. The problem is that old habits die hard - and there are still places where everything is not right. -- Implement "Block positioning = yes/no" in Device resource in SD. +==== 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. 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 1.39.x beta or to 1.40.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 DVD Volume format changed ==== +- 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. + +==== IMPORTANT miscellaneous ==== +- The Gnome console program (gconsole) no longer functions as it + should. If you have multiple catalogs, you will need to select + the catalog (this I will fix). 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 --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. +- The "Accept Any Volume" directive has been removed. It was never + implemented. Bacula will always accept any valid tape that is in + the drive for appending. +- You *should* be able to use 1.38.x FDs with version 1.39.18 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. + +==== 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, we can change that prior to release if + everyone is comfortable with it). -Changes to 1.35.3: -09Sep04 -- Add "Multiple Connections = yes/no" in catalog record. Only - the variable is implemented, no code yet. -- Close *all* FD unless debug on. -08Sep04 -- Add first cut of UTF-8 support to conio. It "seems" to be working - pretty well. Moving by words will definitely not work though. -- Improve detection and setting of gateway in the - network_start script. -07Sep04 -- Modify scan code so that in most places scanning will - continue across the end of a line. -05Sep04 -- Begin major phase of 1.35 documentation. -- All outstanding bugs are fixed. -- Implement changes and improvements to rescue scripts as - proposed by Gaurav. -05Sep04 -- Add correction to Phil's previous patch. -- Send all queued messages in SD and FD prior to closing down - the job. -- Send queued messages in Jobs before terminating the job - so that the messages print before the job report. -- Add a destructor so that the Console ACLs are properly - freed. -04Sep04 -- Implement isolinux boot disk. -- Integrate Phil Stracchino's code (thanks for Matt's help). - It permits lists and ranges of jobids on the delete as in: - delete job jobid=1,3,5,11-16 -03Sep04 -- Apply Mike Acar's suggestion when looking for the next volume - to check purged volumes for recycling before doing a purge. -- Make some improvements to CDROM disk. -- Take another crack at ignoring drive open() errors during - polling. -02Sep04 -- Add eliminate orphaned job records; eliminate admin records, - and eliminate restore records to dbcheck. -- replace sprintf by bsnprintf() in dbcheck. -- Added scan target to makefile in rescue cd to print scsi - devices. -- Added argument to berrno::strerror() to pass errno. -- Cleaned up a few more old strerror() calls and eliminated a - few of the now unnecessary set_errno() calls. -- Fixed a bug in the polling code that prevented more than 100 - label reads (insanity check disabled if polling). -- Ignore bad return from open_device() if polling. -- Short circuit code if fatal error return from read_label() in - mount.c -01Sep04 -- Add index file to JobId field of File records for PostgreSQL. -- Correct several bugs in the job queue scheduler concerning - rescheduled jobs: 1. The SD status was not cleared causing a - wrong status to be displayed by Dir after rescheduling. 2. All - rescheduled jobs became zombies because the jcr use_count was - not decremented properly. -- Make the Catalog resource required in Client records. -- Order the listing of where a file is (item 2 on the restore - menu) by StartTime. -- Clarify when a filename only and a full path + filename must - be entered in items 2 and 8 of the restore menu. -- Fix logic error in resolution of names on IPv4 systems. + Prior to using the current installer, if you used a version of the beta + prior to 1.39.26, you must do one of the following three things: -Changes to 1.35.2 released 01Sep04: -30Aug04 -- Inhibit printing of FileSet for a restore as it is misleading. -- Cleaned up a number of minor scripting problems with the CDROM - creation. -- Fixed a race condition causing a Director crash on termination, - if a large number of SIGHUPs were sent during a multiple concurrent - set of backups. -28Aug04 -- Completed integration of Rescue CD scripts with Bacula source. -28Aug04 -- Added Ignore FileSet Changes = yes -- Added more error checking to the spooling code. -24Aug04 -- Applied a patch from Peter Eriksson that removes a dynamic stack - allocation (replaced by alloca) and fixes some const problems. -- Fixed a free() of a static variable in the new IP code bnet.c -- Got the new Bacula Rescue CDROM booting. -- Replaced a dynamic template by a simple store when using the - native C compiler. -- Reworked some of the block.c error handling. -- Changed a Dmsgx(000, to Dmsgx(100 in dev.c that was dumping - debug output on a user. -- Integrated patch from 1.34.6 block.c to 1.35 -17Aug04 -- Fix conio.c problem on Solaris. -- Add debug code to lock_jcr_chain(). -- Lock jcr chain around less code. -- Implement call by reference for Mmsg() and pm_strxxx() to - simplify calls. -- New IP address specification is used as follows: - [sdaddresses|diraddresses|fdaddresses] = { [[ip|ipv4|ipv6] = { - [[addr|port] = [^ ]+[\n;]+] }] } + 1) Uninstall prior beta version and select the option to delete + the configuration and state files. This will get rid of the bogus + configuration files. Reinstall the new 1.39.26 version. + + 2) Manually copy the *.conf files from C:\Bacula\bin to + C:\Documents and Settings\All Users\Application Data\Bacula. + + 3) Manually edit the *.conf files in C:\Documents and + Settings\All Users\Application Data\Bacula. The links in the Bacula menu + can be used to avoid having to enter that ugly path. + + After one of these has been done the upgrade should work fine. + + +New Features in 1.40.0: +- 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 excution is much more flexible -- handles + spaces in names better, ... +- Lots of DVD fixes -- I think they now work! +- Fix opening of database in a restricted console to respect + any Catalog ACL. +- 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. +- The basic features of Migration are now complete. +- There is a Migration chapter in the doc. + http://www.bacula.org/dev-manual/Migration.html +- There is an Encryption chapter in the doc. + 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. +- Add -n option to bconsole to turn off conio. +- 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. +- 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, ... + Finally, he also ported the Director and the Storage daemon to + Win32. +- Data encryption done in the Client is now supported due to code + submitted by Landon Fuller. +- 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. +- 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 +- 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. +- SunOS ACLs should now work thanks to a patch from David Duchscher. +- The database Id records should be 32/64 bit independent now. 64 bits + can be enabled by changing one define, but this has never been tested. +- 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. This patch was probably back ported to 1.38.x +- 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 enable/disable job=. This command prevents + the specified job from being scheduled. Even when disabled, + the job can be manually started from the console. +- 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. +- 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. +- 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. +- Apply patch for enhancing wait from Eric Bollengier. One can now: + wait (wait for all jobs to stop) + wait jobid=nn + wait jobuid=unique id + wait job=job-name +- 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). This is not well tested. +- 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. +- Implement a number of user supplied patches for DVD writing. +- 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. This could cause print output + to look different. 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. +- Add Catalog message destination in Messages resource that puts the + job report in the Log database table. +- Spend a lot of time integrating mkcdrec with the rescue disk. +- Add spooling/despooling info in status output of SD. +- Add Comment field to llist of a volume. +- Allow true/false in some yes/no questions. +- Implement update volume enable=(on|off|true|false|archived|0|1|2) - so it could look for example like this: - SDaddresses = { ip = { - addr = 1.2.3.4; port = 1205; } - ipv4 = { - addr = 1.2.3.4; port = http; } - ipv6 = { - addr = 1.2.3.4; - port = 1205; - } - ip = { - addr = 1.2.3.4 - port = 1205 - } - ip = { - addr = 1.2.3.4 - } - ip = { - addr = 2001:220:222::2 - } - ip = { - addr = bluedot.thun.net - } - } - as a consequence, you can now specify multiple IP addresses and - ports to be used. In the case of a server, it will listen on - all those that you specify. In the case of connecting to the server, - Bacula will attempt connecting to one at a time until it succeeds. - And, in a few other special cases, Bacula will use only the first - address specified. +Additional Features Added for Win32: - The default port numbers are still the same and the services and hosts - are also resolved by name. So now you could use the real names for the - port numbers. +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. -Release 1.35.1 16 August 2004: -- Added Tape Alert feature (see Alert Command). -- New IPv6 code (untested) -- New way of specifying Addresses and Ports -- permits having - server listen on multiple ports. -- Regular expressions in Options directive. -- Reader/writer programs in Options (not yet fully implemented, - please do not use). -- Fixed specification of bind address on Win32 (thanks to - Martin Simmons). -- Update all Volumes from Pool record. -- Update License to terminate rights of anyone suing a GPL licensor. -- Improved error messages for Win32 and when running external - programs (e.g. RunBeforeJob). -- Implement reload of conf file in Directory on SIGHUP. -- Building restore tree is much faster on large filesets - due to binary insert. -- Alert Command in Device resource of Storage Daemon. -- New IP address and port directives. -- reader = xxx, writer = yyy in Options within FileSet of - Director's conf file. -- regex = xxx in Options within FileSet of Director's - conf file. -- New command options: update AllFromPool updates all - Volumes with Pool defaults. -- .backups client=xxx (for GUI programs). -- A duration specification may have any number of integer/modificator - specifications. E.g.: - 1 week 2 days 3 hours 10 mins - 1 month 2 days 30 sec -- Print error message if Alert Command fails in bpipe_open(). -- Doc Alert command. -- Eliminate unnecessary class in findlib/attribs.c -- Add necessary empty files to new tray-monitor directory. -- Implement Class with template in findlib/attribs.c to do casting - of uint64_t into stat packet types to avoid compiler warnings. - Thanks to Meno for this idea. -- Make some modifications to satisfy VC++. -- Apply Martin Simmons' second patch to compat.cpp to fix the line - I previously missed. -- Apply Meno's fix to bnet that corrects use of ipaddr after free_addresses, - back out my kludges, and it works. -- Modified configure.in to by default add -Wall. -- Found some problems with printing IP addresses -- will notify Meno. -- Added printing Pool to Job report. -- Fixed several places where dlists were not being released - (term_job_server, ...) -- Started implementing New() for dlists. Spent a lot of time, - but could not get it to work. -- Fixed a mutex deadlock between the job queue scheduler and the - watchdog. -- Made add_address() static. -- Added bsnprintf to address_conf.c -- Apply Marin Simmons patch to inet_aton() in compat. -- Build on Win32 -- required a few changes because of new IP code. -- Implement program reader code in Dir and FD -- not tested, and - a few corrections for writer code are needed in FD. -- Rework SQL for pruning. Add Admin pruning. Prune failed - jobs in Verify and Restore. -- Don't put commas in listing produced in restore so that users - can cut and past JobIds without having commas in the way. -- Change size_t to socklen_t in filed.c -- reindent a bit. -- Remove addr_list->size from buf size definition in bnet.c -- Create a Developer's document. -- Add prompt for Update volume from pool and update all - Volumes from pool. -- Implement user friendly time duration input editing. -- Add buf len argument to edit_utime(). -- Added eliminate orphaned Client records to dbcheck. -- Implement Alert Command in SD Device conf. -- Fix updating a Volume from the pool record -- it never changed - anything. -- Implement updating all Volumes from pool record. -- Add patch by Denis Shaposhnikov that fixes excludes of directories - in new style FileSets. -- Merge Meno's IPv6-1 code. -- Update License to terminate rights of anyone suing a GPL licensor. -- Add Pruning doc sent by Bryce Denney -- Correct inconsistencies in restore command doc pointed out by user. -- Don't edit commas in SQL intergers if they are not stricly integer. -- Update all pools in all DBs when starting the Director. -- Implement final cut of berrno and update Win32 code. -- Update copyright to include a termination clause. Add copyright to - binaries. -- Implement .backups client=xxx for Nicolas. -- Make first cut at implementing berrno class to handle Unix, Win32 - and bpipe errors. Bpipe still needs to be implemented. - This fixes (not yet tested) the Win32 errno problems in the compat lib. -- Fix btape compile problem reported by Martin Simmons -- thanks. -- Add ./configure detection of sys/tape.h -- Apply two fixes to recent changes to dev.c submitted by - Martin Simmons. -- Add checks in btape for correct size of off_t, and correct editing - of 32 and 64 bit values. -- Move supported OS/hardware into a chapter by itself. -- Fix bscan, which did not handle walking dcr list. -- Remove old attach_jcr_to_device() code. -- Fix config from Andy Wettstein's patch to use bitypes.h and detect - uint32_t, ... definitions. -- Fix a few compiler warnings because of casting pointers to int and - vise versa. -- Do some minor cosmetics to query.sql. nothing changed. -- Don't call stop_thread_timer() in backup.c if timer not started. -- Fix bug with out of order JobIds on restore. -- Make watchdog examine queues once every 10 seconds instead of once - a second. -- Add more bools to dev.c -- Fix walking attached DCRs in bscan.c -- Doc updates -- Start work on rescue files. Integrated RAID changes. -- Print a message when query.sql moved to query.sql.old during install. -- Move setting of FreeBSD chflags() to after utime() to avoid error - messages is immutable bit is set. -- Turn off heartbeat in FD when -s is given so that we can - debug without a flood of signals. -- Close and reopen the device during an append test in - btape. This better tests appending as if Bacula stops/restarts. -- Remove old attach/detach_jcr_to_device() code -- Add new attached_dcrs code. -- Remove unnecessary subroutine for bsnprintf. -- Replace sprintf() by home-grown code in edit_uint64 ... -- Begin implementation of dev->attached_dcrs. -- Remove scripts/fd.in from configure.in -- Add printing of JobId when a Job is started from the console. -- Remove fd/fd.in from scripts directory. -- Fix a number of bugs in dbcheck concerning the -c option - (i.e. with a config file). -- Made RH start scripts use -u and -g options. -- Many more DCR changes. -- Add job message indicating that the job has been rescheduled - and when. -- Fix job end time so that it is always updated. Previously it - was not updated when a job was rescheduled. -- Correct SQL for restoring job by path/name. It could sometimes - pickup the wrong JobId -- submitted by a user. -- Add a number of "%s" in editing database errors -- security issue. -- Ensure that the NumVols is incremented and decremented in the - pool record when Volumes are created or deleted. -- Cleanup error handling when labeling a tape. If vol was read-only, - the device would still be marked as having found a label. -- Put ftCreationTime into st_ctime of stat packet. Hopefully - this will fix the problem of noticing files have been moved - into the save path after a Full save. -- Fix bug in "status dir" where not all entries are listed. -- Cleanup some improper result printing in configure. -- Optimize a couple of insertions in binary_insert of dlists. +Here is an example where braces allow 24 lines to be expressed in 5. -Release 1.35.0 08 July 2004: -- Apply Christopher Hull's const patch for PostgreSQL -- Add code to block.c to detect if block header is destroyed. -- Add debug code for memset checking for zeroing 1900-3000 bytes - which is what happened to the block headers. -- If block header is destroyed, read the next block. Probably - should return with new status similar to the SHORT block - return. -- Add more debug info to bls for bad blocks. -- More implementation of DCRs. -- Eliminate argument passing in SD by using dcr. -- More int->bool conversions. -- Add file:block to a number of read/write error messages. -- More int -> bool conversions. -- Modify the SD piece by piece to use DCRs everywhere. -- Cleanup some printout for query command. -- Fix typo in cats/mysql.c -- Work on cleaning up tape driver a bit (use bools, better calling - sequences). -- Attempt to fix multi-Volume disk backup. Needs to be tested. -- Add Regular expressions to FileSet options. -- Correct configure.in to use ${MAKE} for doing the dependencies. -- Make MySQL and PostgreSQL try for 30 seconds to connect before - giving up. -- Correct Gnome 1.4 Makefile to build without cats library. -- Correct a crash reported (with patch) by Jonathan Soong - when attempting to backup an ACL on a symlinked file. -- Fixed an off by one bug in the new resources pointer code. - res_head array was one too small. -- Added Errors to last_job list. This allows detecting jobs - that terminated in a warning. -- Implement setting the Win32 icon to yellow instead of red - when the job terminated OK but with warnings. -- Fix the Win32 makefile and VC project file. The links were - not including the Win32 dlls. -- Delete some old Win32 code that was turned off. -- Eliminate a few more Win32 compiler warnings. -- Reduce the output produced by NIS (Win32 install builder). -- Simplify some of the #ifdefing in compat.h -- Rewrite spooling error handling when I/O error occurs. It is - a bit tricky, requiring to truncate the file so that a despooling - will work correctly. Needs to be tested. -- Make better subroutines for setting up for a new job. -- Start putting all DB ids on #defines (going to 64 bits). -- Fix gnome-console Makefile.in to work again. -- All "level=Incremental/Decremental" to the estimate command. This - required some re-arrangement of subroutines at a fairly low level. -- Apply Piotr Jaworski's patch (patch-r-status.diff) to update the - catalog status when a backup job starts running. -- Add (char*) cast to readline call in console.c for old readlines. -- Copy Makefile.in from gnome2-console to gnome-console (to eliminate - need for cats library). -- Modify spooling code to handle write error (e.g. spooling disk full) - more gracefully. Previously despooling would fail. -- Reduce casting in smartall.c a bit and add counters for - bytes, max_bytes, buffers and max_buffers. -- Fixed reload algorithm to stack both job end callback and the - table id. -- Fixed the orphaned buffer after reload (job_end_push had to be - destroyed. -- Destroy cond var (jcr->term_wait) only if initialized. -- Sort the Scheduled Jobs list by start-time, priority. -- Implement resources on a pointer. -- Fix Gnome console crash on up/down arrow with no history. -- Finish first cut of SIGHUP code. To make really work need res - on a single pointer rather than in fixed memory. -- Fix a number of places in query.sql where multiple JobIds are - printed (due to JobMedia records). -- Add new query: List jobs on Volume given Volume name. -- Correct socket close on Win32 in bnet.c (in addition to compat.cpp). - Caused fd leak in Win32 for each connection. -- Remove vol labeled test in askdir update_volume_info so that non-labeled - Volume in catalog can be marked in error. -- Close socket in SD when connection rejected. Caused fd leaks. -- Initialize job_start_wait cond variable after every new_jcr() otherwise - NetBSD gets error in library when trying to delete it without being inited. -- Fix typo (9 instead of 0) return status in write_new_volume_label. -- Fix mount.c to call routine that correctly marks a volume in error. -- Move code to rewrite volume label to subroutine -- a bit cleaner. -- Finish implementation and testing of new restore tree code. -- Implement feedback while tree is loading. -- Eliminate printing INFO message in UpdateDB (cats) -- it generates - "false" error messages. -- Eliminate some GTK error messages when running the Gnome2 console. -- Begin restructuring tree.c for inclusion of the binary_insert() - routine. -- Apply Peter Eriksson's lib file order changes in linking for IRIX. -- Abort configure if Internal is selected as the database. -- Add testimonials to the Web page -- Add the bugs list to the Web page "lists". -- Clarify the English in SuSE and Slackware when SD not running. -- Applied another extern "C" patch from Peter Eriksson. -- Fixed a bunch of VC warning messages. -- Applied the patches sent by Andreas Jellinghaus: build Gnome and - wx-console in client-only build if configured; add ./configure option - to permit setting of sbin modes -- default is 0745 as before; remove - cats library from Gnome console build; remove old version from Gnome - About box. Thanks Andreas. -- Applied Peter Eriksson's const changes to the source code. Thanks Peter. -- Implemented a binary_insert() method for dlists -- intended to be used - in the restore tree routines. -- Turned on my bsscanf() code, which replaces sscanf() by my routines, which - are a subset of sscanf() used by Bacula, but which have known 32/64 bit - behavior rather than vendor dependent !@#$%*. +# 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"