X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2FReleaseNotes;h=5caab67da36d79a73fde3692be5e2cada119bb7f;hb=21f47c1a7aa0865813656975be218a147286bae3;hp=ab934c45c4726e9a8544d37994c8608acda0c7c3;hpb=3a5fa2c0f1cfd25faceb7a9725d710b69a94a9fa;p=bacula%2Fbacula diff --git a/bacula/ReleaseNotes b/bacula/ReleaseNotes index ab934c45c4..5caab67da3 100644 --- a/bacula/ReleaseNotes +++ b/bacula/ReleaseNotes @@ -1,351 +1,374 @@ - Release Notes for Bacula 1.38.3 + Release Notes for Bacula 1.39.28 - Bacula code: Total files = 424 Total lines = 140,955 (*.h *.c *.in) - 20,440 additional lines of code since version 1.36.3 + Bacula code: Total files = 442 Total lines = 150,218 (*.h *.c *.in) -Changes to 1.38.3: -- This is mainly a bug release fix. In addition, the multiple drive - reservation algorithm has been rewritten. -- In addition, the method of handling waiting for tapes to be - mounted and the mount messages has been modified. - (the above two items are a potential source of problems). -- Simplify code in askdir.c that waits for creating an appendable - volume so that it can handle multiple returns from the wait code. -- Modify the wait code to permit multiple returns. -- Return a zero when "autochanger drives" is called and - it is not an autochanger. -- Make rewind_dev() a method taking a DCR as an argument. - This permits closing and reopening the drive if the - rewind fails as happens if the drive was loaded while the - file descriptor was open. This refreshes the file descriptor. -- Remove the ST_OPENED flag and always rely on fd < 0 for knowing - if the device is open or not. This should eliminate - Arnos problem. -- Return error if reserve cannot find at least one suitable device. -- Make wait_for_sysop() return correct state information. -- Fix Win32 state file problem. write was not using compat - code. This should fix bug #500. -- Modify gui on command to set only GUI mode and not batch. -- Modify .messages command to always print messages regardless - of the mode. -- If GUI mode is on, suppress automatic printing of - You have messages. -- Modify restore command in wx-console to set gui on and to use - only .messages instead of messages. Hopefully this fixes bug - #514. -- Implement load balancing code with multiple drive autochangers. -- Rewrite reservation algorithm again. Rename variables to be - more logical, add HEARTBEAT with Director, allow cancel of - jobs stuck in reservation, add last resourt any_drive. -- Fix seg fault if user labels a drive directly bug #513 -- Remove quotes around Version as it breaks things. -- Merge in Aleksandar Milivojevic's mods to the spec file. -- Apply sparse code fix for raw drives and fifos. Bug 506 -- Thorsten fixed Unicode cd problem with wx-console bug 505. -- Correct reservation system to do a last ditch try - for any mounted volume, then anyone anywhere. -- Updates to ssh-tunnel from Joshua Kugler. -- Added a report.pl program from Jonas Bjorklund. -- Simplify the O_NONBLOCK open() code for tape drives, - and always open nonblocking. -- Do not wait for open() if EIO returned (shouldn't happen). -- Eliminate 3 argument to tape open(). -- Correct the slot # edited in the 3995 Bad autochanger unload - message. -- With -S on bscan (show progress) do not divide by zero. -- Make cancel pthread_cond_signal() pthread_cond_broadcast(). -- When dcr is freed, also broadcast dev->wait_next_vol signal. -- Remove unused code in wait_for_device. -- Make wait_for_device() always return after 60 seconds of wait. -- Use localhost if no network configured -- Eliminated duplicate MaxVolBytes in cat update -- bug 509. -- Update specs to include mysql4 define. -- Return rec->FileIndex in dcr->VolLastIndex for normal - and partial records in read_record(). This allows bscan - to get FileIndex at EOT correct. -- Fix butil.c to correctly set dcr -- fixes seg fault in bls. -- Apply patch supplied by user (slightly modified) to fix - correct detection of holes in block devices and FIFOs. - Bug # 506. -- Apply patch supplied by user (slightly modified) - to fix SD hang with multiple pools and bad client - IP. Fixes bug # 508. -- Add nagios plugin to the examples directory. Submitted by - Christian Masopust. -- Remove warning message about multiple saves of hardlinked files - from find_one.c as it can generate too many warning messages. -- Reset timeout values before select() per patch from - Frank Sweetser for problems with non-blocking sockets. -- Unlink the state file if either reading or writing it gets - errors. Hopefully this will fix Win32 exit problems. -- Get next volume from Scratch pool before creating a volume. -- Set new Pool defaults in Vol when moved from Scratch Pool. -- Remove argument from create_bacula_database for SQLite as it - caused an error. -- Fix reservation so that mutexes are properly applied. -- Rework reservation algorithm so that two drives can be used - at the same time. -- 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. -- Fix font code in gnome2 console user patch. Fixes bug #501. -- Fix malformatted bnet error message that caused seg fault - fixes bug 502 -- Applied user patch to improve README.vc8 in src/win32. -- Ensure that StorageId is stored in Media record when ever possible. -- Remove old code from winservice.cpp -- Break on error in scan. -- Fix typo in signal.c -- Separate read/write DCR in SD. Add jcr->read_dcr. -- Cleanup how find_device() works. -- Remove abs() in bfile.c so that it compiles on Solaris. Bug #491. -Changes to 1.38.2: -- Fix crash in tray-monitor when daemon disconnects. Bug #479. -- Fix bnet-server bug found on OpenBSD. Bug #486 -- Fix cancel failure bug. Bug #481 -- Fix failure when Pool name has spaces. Bug #487 -- Fix SD crash in autochanger code. Mutex failure. Bug #488 -- Fix a couple of free()s in src/filed/acl.c -- Fix memory overrun in bfile.c in building OS X resource - fork filename. Bug #489 -- Add Pool name to SD status output. -- Add Python install dir for Solaris to configure. Bug #492 +Version 1.39.28 contains mainly bug fixes to 1.39.26. Please + see the ChangeLog for more details. + +==== 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 + + Sparse + Encryption = Restore broken + Sparse + Compression + Encryption = Restore broken + Compression + Encryption = Restore broken + + As of 1.39.28: + All combinations work fine. + +==== 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. + +==== 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 -Changes to 1.38.1: -- Corrected ACL for Solaris (David Duchscher and Attila Fulop). -- Add bacula_mail_summary.sh to examples directory. It makes - a single email summary of any number of jobs. Submitted - by Adrew J. Millar. -- Unmount command now unloads autochanger. -- Fix hang in FD (Martin Simmons) -- Fix Win98 stat() problem in FD (Thorsten Engel) -- Fix update slots which did not clear missing tapes. -- Fix autostart install for FreeBSD (user reported) -- Fix several problems with PostgreSQL scripts (Eric Bollinger) -- Critical: allow restore of the first file of non-portable Win32 backup. -- Important: with muliple concurrent jobs the autochanger could get - confused because of a missing mutex. -- Fix accessing last slot in label and update slots. -- Modify configure.in to add execute option to sqlite3 catalog - scripts. -- Create update_xxx_table_8_to_9 scripts for updatedb -- Move the -lcrypt for PostgreSQL after the PostgreSQL libs in - autoconf/bacula-macros/db.m4 as suggested by user. Fixes bug #457. -- Remove @STATIC_CONS@ from tray-monitor Makefile as suggested - by user. Fixes bug #456. -- AMD64 users see compiler bug warning below!!!!!!!!! + 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. -Major Changes in 1.38: -- Fixed out of order Volumes in restore. -- Improved algorithm for reserving drives in multiple drive - autochangers. Autochange users MUST use the new Autochanger - resource in the Storage daemon. -- There is a new database format that is not compatible - with previous databases. You must upgrade if converting - from 1.36.x. No changes from version 1.37.30. -- The Director, Storage daemon, and File daemons are - Deamons are not compatible with prior versions. - All FDs must be upgraded at the same time. -- Support for ANSI/IBM labels. -- Faster database inserts due to combining the MD5/SHA1 into - the attributes record, eliminating one INSERT/file backed up. -- Python Event support has been added. See below for - configuration and details. The implementation is somewhat minimal, - so the functionality is not complete. The Python interface - has not been extensively tested, so please consider it BETA. -- DVD writing support, using parts, and some new directives in - the Device resource of the Storage configuration file thanks - to Nicolas Boichat. Please note that this code is still - BETA and should be carefully tested before using in - production. -- Seven new options keywords in a FileSet resource: - ignorecase, fstype, hfsplussupport, wilddir, wildfile, regexdir, - and regexfile thanks to Pruben Guldberg). See below for details. -- Restore of all files for a Job or set of jobs even if the file - records have been removed from the catalog. -- Restore of a directory (non-recursive, i.e. only one level). -- Support for TLS (ssl) between all the daemon connections thanks - to Landon Fuller. -- Any Volume in the Pool named Scratch may be reassigned to any - other Pool when a new Volume is needed. -- You may clone a Job and thus write (almost) the same data - to multiple Volumes simultaneously (see below). Actually, - any Job may start any other Job with this mechanism, so it - also be used to group jobs. -- Unicode filename support for Win32 (thanks to Thorsten Engel) -- Volume Shadow Copy support for Win32 thus the capability to - backup exclusively opened files (thanks to Thorsten Engel). - A VSS enabled Win32 FD is available. You must explicitly - turn on VSS with "Enable VSS = yes" in your FileSet resource. -- New manual format with an index (thanks to Karl Cunningham). -- New Web site format (thanks to Michael Scherer). -- SQLite3 support. -- Web-bacula, previously a separate project by Juan Luis Frances, - is now included in the Bacula GUI release. This is a management - level tool for reporting the state of Bacula jobs. -- The code is now Internationalized so that it can be localized - in native languages. Thanks to Nicolas Boichat. +==== 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. -New Directives: -- New Job directive "Prefer Mounted Volumes = yes|no" causes the - SD to select either an Autochanger or a drive with a valid - Volume already mounted in preference. If none is available, - it will select the first available drive. -- New Run directive in Job resource of DIR. It permits - cloning of jobs. To clone a copy of the current job, use - Run = "job-name level=%l since=\"%s\"" - Note, job-name is normally the same name as the job that - is running but there is no restriction on what you put. If you - want to start the job by hand and use job overrides such as - storage=xxx, realize that the job will be started with the - default storage values not the overrides. The level=%l guarantees - that the chosen level of the job is the same, and the since=... - ensures that the job uses *exactly* the same time/date for incremental - and differential jobs. The since=... is ignored when level=Full. - A cloned job will not start additional clones, so it is not possible - to recurse. -- New Options keywords in a FileSet directive (backported to 1.36.3): - - WildDir xxx - Will do a wild card match against directories (files will not - be matched). - - WildFile xxx - Will do a wild card match against files (directories will not - be matched). - - RegexDir xxx - Will do a regular expression match against directories (files - will not be matched). - - RegexFile xxx - Will do a regular expression match against files( directories - will not be matched). - - IgnoreCase = yes | no - Will ignore case in wild card and regular expression matches. - This is handy for Windows where filename case is not significant. - - FsType = string - where string is a filesystem type: ext2, jfs, ntfs, proc, - reiserfs, xfs, usbdevfs, sysfs, smbfs, iso9660. For ext3 - systems, use ext2. You may have multiple fstype directives - and thus permit multiple filesystem types. If the type - specified on the fstype directive does not match the - filesystem for a particular directive, that directory will - not be backed up. This directive can be used to prevent - backing up non-local filesystems. - - HFS Plus Support = yes | no - If set, Mac OS X resource forks will be saved and restored. -- Label Type = ANSI | IBM | Bacula - Implemented in Director Pool resource and in SD Device resource. - If it is specified in the SD Device resource, it will take - precedence over the value passed from the Director to the SD. -- Check Labels = yes | no - Implemented in the SD Device resource. If you intend to read - ANSI or IBM labels, this *must* be set. Even if the volume - is not ANSI labeled, you can set this to yes, and Bacula will - check the label type. -- Scripts Directory = name. Defines the directory from - which Bacula scripts will be called for events. In fact, Bacula - appends this name to the standard Python list of search directories, - so the script could also be in any of the Python system directories. -- In FileSet, you can exclude backing up of hardlinks (if you have - a lot, it can be very expensive), by using: - HardLinks = no - in the Options section. Patch supplied by David R Bosso. Thanks. -- MaximumPartSize = bytes (SD, Device resource) - Defines the maximum part size. -- Requires Mount = Yes/No (SD, Device resource) - Defines if the device require to be mounted to be read, and if it - must be written in a special way. If it set, the following directives - must be defined in the same Device resource: - + Mount Point = directory - Directory where the device must be mounted. - + Mount Command = name-string - Command that must be executed to mount the device. Before the command - is executed, %a is replaced with the Archive Device, and %m with the - Mount Point. - + Unmount Command = name-string - Command that must be executed to unmount the device. Before the - command is executed, %a is replaced with the Archive Device, and - %m with the Mount Point. - + Write Part Command = name-string - Command that must be executed to write a part to the device. Before - the command is executed, %a is replaced with the Archive Device, %m - with the Mount Point, %n with the current part number (0-based), - and %v with the current part filename. - + Free Space Command = name-string - Command that must be executed to check how much free space is left - on the device. Before the command is executed, %a is replaced with - the Archive Device, %m with the Mount Point, %n with the current part - number (0-based), and %v with the current part filename. -- Write Part After Job = Yes/No (DIR, Job Resource, and Schedule Resource) - If this directive is set to yes (default no), a new part file will be - created after the job is finished. -- A pile of new Directives to support TLS. Please see the TLS chapter - of the manual. +==== 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. -New Commands: -- "python restart" restarts the Python interpreter. Rather brutal, make - sure no Python scripts are running. This permits you to change - a Python script and get Bacula to use the new script. +==== 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). -New configure options: -- --with-libintl-prefix for defining alternate locations for - the NLS internationalization libraries. Not normally required. -- --datadir for defining where the language files will be installed - required only if you do not want the default /usr/share. + 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: -Items to note!!! -- If you use an Autochanger, you MUST update your SD conf file - to use the new Autochanger resource. Otherwise, certain commands - such as "update slots" may not work. -- You must add --with-python=[DIR] to the configure command line - if you want Python support. Python 2.2, 2.3 and 2.4 should be - automatically detected if in the standard place. -- When linking with --with-python, there are a few warnings that - can be ignored. -- You must either create a new catalog database or upgrade your - old database. After installation, run from your scripts - directory: + 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) - ./upgrade_bacula_tables +Additional Features Added for Win32: - You can also find this script in the /src/cats - directory. -- The Director, Storage daemon, and File daemons are - Deamons are not compatible with prior versions. - All FDs must be upgraded at the same time. -- You must add --with-openssl to the configure command line if - you want TLS communications encryption support. -- Disk seeking during restores does not yet work correctly in - all cases, so it is turned off. -- Note, with gcc (GCC) 4.0.1 20050727 (Red Hat 4.0.1-5) on an - AMD64 CPU running 64 bit CentOS4, there is a compiler bug that - generates bad code that causes Bacula to segment fault. - Typically you will see this in the Storage daemon first. The - solution is to compile Bacula ensuring that no optimization is - turned on (normally it is -O2). - This same compiler bug has been reported and confirmed with - gcc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux) running on - an AMD64 CPU. This for the moment, I would recommend that all - users of GCC 4.0.1 or greater turn off all optimization when - compiling. +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. -Other Items: -- Security fixes for temp files created in mtx-changer, during - ./configure, and during making of Rescue disk. -- A new script, dvd-handler, in the scripts directory, - which is designed to be used as parameters to Write Part Command and - Free Space Command. They need the dvd+rw-tools to be installed - (http://fy.chalmers.se/~appro/linux/DVD+RW/) AND, the growisofs - program must be patched using the - /patches/dvd+rw-tools-5.21.4.10.8.bacula.patch - You must have Python installed to run the scripts. -- Part files support: File volumes can now be split into multiple - files, called "parts". -- For the details of the Python scripting support, please see the new - Python Scripting chapter in the manual. +# 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"