X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2FReleaseNotes;h=bac38a20ddf79d9d63ab7c11e624cb06d12e4879;hb=d50677b237e824dc645471bed89d077762e7c32c;hp=1b9402964e303135cfbcfa401bf3e5cca66a308e;hpb=3d52afb93a3d89ac9d5aebf2052fc625a3274b75;p=bacula%2Fbacula diff --git a/bacula/ReleaseNotes b/bacula/ReleaseNotes index 1b9402964e..bac38a20dd 100644 --- a/bacula/ReleaseNotes +++ b/bacula/ReleaseNotes @@ -1,560 +1,534 @@ - Release Notes for Bacula 1.38.6-beta6 - - Bacula code: Total files = 419 Total lines = 137,078 (*.h *.c *.in) - 20,440 additional lines of code since version 1.36.3 - -!!!! Important !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - If you are compiling for a 64 bit machine, you need to ensure - that the code is compiled with the -O0 (- oh zero) option otherwise - the SD will crash on most all operations -- apparently due to - a compiler bug in gcc's 64 bit code generation. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -New features: -- For autochanger get Scratch tape if in autochanger if - no appendable Volumes are available. -- New virtual disk autochanger. See scripts/disk-changer for - documentation. -- New optional Device resource directive in SD. 'Device Type =', - which may have types: File, DVD, Tape, or FIFO. This can - be useful for writing DVDs on FreeBSD where Bacula cannot - correctly detect the DVD. -- Faster restore tree building and uses less memory. -- The command line keyword job (or jobname) now refers to the - name of the job specified in the Job resource; jobid refers - as before to the non-unique numeric jobid; and ujobid refers - to the unique job identification that Bacula creates for each - job. -- The job report for Backups has a few more user friendly ways - of displaying the information. -- The wait command can now be made to wait for jobids. -- New command line keywords are permitted in update volume. They - are Inchanger=yes/no, slot=nn. - -Major bug fixes: -- Fix race condition in multiple-drive autochangers where - both drives want the same Volume. -- Do not allow opening default catalog for restricted console - if it is not in ACL. -- Writable FIFOs now work for restore. -- ACLs are now checked in all dot commands. -- Multiple drive autochangers and multiple different autochangers - should now work correctly (no race conditions for Volume names, - update slots use correct StorageId). -- Fix bug where drive was always reserved if a restore job failed - while in the reservation process. - - -Minor bug fixes: -- See below: - -Release 1.38.6 beta6 16Mar06 -- Fix bug #537 to allow arbitrary time to mount a volume for - restore, if polling is turned on. -- Disallow multiple storage specifications for a job. Should fix Arno's - problem. -- Add back a missing store of poolid in jr.poolid. -- If dir_user or dir-group is specified in ./configure apply it to - the working-dir. Fixes bug #533. -- If rescheduling a job cancel the previous incarnation with the SD. - Fixes bugs #566 and 557. -- Fix bug #567 do_message() definition type conflict. - -Release 1.38.6 beta5 14Mar06 -- Add more jcr methods and make mutex and use_count private. -- Create lock/unlock methods for jcr. -- Fix PostgreSQL bug doing sql_data_seeek() by explicitly reading - records to get to seek position. -- Integrate patch from bug #561 to correct conio.c signal definitions. -- 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. -- Fix obsolete usage of foreach_dlist() to use foreach_jcr() in - lib/jcr.c -- prevents locking the jcr chaing. -- Apply patch from bug #564, which corrects listing volumes with - multiple autochangers. Apply same fix to next volume list. -- Fix bug #562 where restore bootstrap file is not unique. -- 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. -- Stop SD command loop if job is canceled. - -Release 1.38.6 beta3 4Mar06 -04Mar06 -- The po files should now be current. -- Fix new sql_use_result() code to properly release the - buffers in all cases. -- Convert to using new Python class definitons with (object). -- 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 listing by any of the above. -- Add the user friendly job report code for reporting job elapsed time - and rates with suffexes. -- Add Priority and JobLevel as Python settable items. -- Use TEMPORARY table creation where the table is created by - Bacula. -- Add new code submitted by Eric for waiting on specific jobid. -- Add ACL checking for the dot commands. -- Fix restore of writable FIFOs. -- Fix a bug in bpipe where the string was freed too early. - -26Feb06 -- Fix bug reported by Arno listing blocks with bls -- Update the po files at Eric's request. - -Release 1.38.6-beta2 25Feb06 -25Feb06 -- Add sql_use_result() define. - -Changes to 1.38.6-beta1 -- Don't open default catalog if not in ACL. -- Add virtual disk autochanger code. -- Add user supplied bug fix to make two autochangers work - correctly using StorageId with InChanger checks. -- Correct new/old_jcr confusion in copy_storage(). -- Remove & from Job during scan in msgchan.c -- probably - trashed the stack. -- When getting the next Volume if no Volume in Append mode - exists and we are dealing with an Autochanger, search - for a Scratch Volume. -- Check for missing value in dot commands -- bug fix. -- Fix bug in update barcodes command line scanning. -- Make sure Pool Max Vols is respected. -- Check that user supplied a value before referencing - it in restore -- pointed out by Karl Hakimian. -- Add Karl Hakimian's table insert code. -- Don't ask user to select a specific Volume when - updating all volumes in a Pool. -- Remove reservation if set for read when removing dcr. -- Lock code that requests next appendable volume so that - two jobs to get the same Volume at the same time. -- Add new Device Type = xxx code. Values are file, tape, - dvd, and fifo. -- Preserve certain modes (ST_LABEL|ST_APPEND|ST_READ) across - a re-open to change read/write permission on a device. -- Correct a misplaced double quote in certain autochanger - scripts. -- Make make_catalog_backup.in a bit more portable. -- Implement Karl Hakimian's sql_use_result(), which speeds - up restore tree building and reduces the memory load. -- Correct a number of minor bugs in getting a Volume from - the Scratch Pool. -- Implement additional command line options for update Volume. -- Don't require user to enter a Volume name when updating - all Volumes in a pool. - -Release 1.38.5 released 19Jan06: -- Apply label barcodes fix supplied by Rudolf Cejka. -- Modify standard rpm installation to set SD group to disk - so that SD will by default have access to tape drives. -- Allow users to specify user/group and start options - for each daemon in /etc/sysconf/bacula file. - -Changes to 1.38.4 released 17Jan06: -- The main changes are to the Director and the Storage daemon, - thus there is no need to update your File daemons. Just the - same, I do recommend running with the release 1.38.3 Win32 - FD or later. -- 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, ...). -- Add periodic (every 24 hours) garbage collection of memory - pool by releasing free buffers. -- Correct bug counting sized (for display only) in smartall.c -- Print FD mempool stats if debug > 0 rather than 5. -- Correct bug in alist.c that re-allocated the list if the - number of items goes to zero. -- Move the reservation system thread locking to the top level - so that one job at a time tries all possible drives before - waiting. -- Implement a reservation 'fail' message queue that is built - and destroyed on each pass through the reservation system. - These messages are displayed in a 'Jobs waiting to reserve - a drive' list during a 'status storage='. Note, multiple - messages will generally print for each JobId because they - represent the different problems with either the same drive - or different drives. If this output proves too confusing - of voluminous, I will display it only when debug level 1 - or greater is enabled in the SD. -- Add enable/disable job=. This command prevents - the specified job from being scheduled. Even when disabled, - the job can be manually started from the console. -- During 'update slots' clear all InChanger flags where the - StorageId is zero (old Media records). -- Fix autochanger code to strip leading spaces from returned - slots number. Remove bc from chio-changer. -- Back port a bit of 1.39 crypto code to reduce diffs. -- Fix first call to autochanger that missed close()ing the - drive. Put close() just before each run_program(). Fixes - Arno's changer bug. -- Add PoolId to Job record when updating it at job start time. -- Pull in more code from 1.39 so that there are fewer file - differences (the new ua_dotcmds.c, base64.h, crypto.h - hmac.c jcr.c (dird and lib) lib.h md5.h parse_conf.c - util.c. Aside from ua_dotcmds.c these are mostly crypto - upgrades. -- Implement new method of walking the jcr chain. The - incr/dec of the use_count is done within the walking - routines. This should prevent a jcr from being freed - from under the walk routines. - - -Changes to 1.38.3 released 05Jan06: -- 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 - -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!!!!!!!!! - -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. - -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. - -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. - -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. - -Items to note!!! -- The Storage daemon now keeps track of what tapes it is using - (was not the case in 1.36.x). This means that you must be much - more careful when removing tapes and putting up a new one. In - general, you should always do a 'unmount' prior to removing a - tape, and a 'mount' after putting a new one into the drive. -- 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: - - ./upgrade_bacula_tables - - 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. - - -Other Items Fixed: -- 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. -- The default user/group for the Director and Storage daemon installed - by rpms is bacula/bacula, thus you may need to add additional permissions - to your database, or modify the permissions of the tape drive. If - all else fails, change to using user=root. However, it is more secure - to use user=bacula. + Release Notes for Bacula 5.2.0 + + Bacula code: Total files = 1,088 Total lines = 219,172 (Using SLOCCount) + +General: +-------- + +This 5.2.0 version is a major release since the last version 5.0.3. +It includes well over 50,000 lines of changes and a number of important +new features: + +Compatibility: +-------------- + As always, both the Director and Storage daemon must be upgraded at + the same time. + + Older 5.0.x and 3.0.x File Daemons are compatible with the 5.2.0 + Director and Storage daemons. There should be no need to upgrade older File + Daemons. + +Changes and New Features: +- Use of PostgreSQL cursor when doing large queries, should reduce the + memory usage during restore and accurate backups. +- Includes better handling for Windows repares points, mount points, and + junction points. +- A few path name length limits in Windows have been removed. +- New SQL backend and ./configure that permits building multiple catalog + backends in one build, and has the main Bacula core code totally independent + of the SQL backend, which should simplify packaging (only the libbacsql.so/dll + needs to be changed. +- New database format +- Director selection option in bconsole +- restorejob command in bconsole +- Checkpoint of jobs so that in many cases they can be restarted +- Maximum Bandwidth Per Job in several places +- Disable batch insert config item +- setbandwith command +- limit command +- Bacula Virtual File System for fast catalog access +- New Pruning algoritm -- safer and faster +- Additional security against injection of illegal characters +- New block delta backup/restore +- Indent lsmark during restore +- Additional script variable editing +- Improvements in ACL and xattr handling on additional platforms: + AIX, Darwind, FreeBSD, HPUX, IRIX, Solaris, Tru64 +- Many new plugin API features +- Faster crc32 algorithm +- Improved memory handling for restores +- Improved hash table for hard links +- Significant stability enhancements to bat +- Many additional features for bat +- Tray monitor for Windows +- New FTP device handler for Storage daemon + +Bug fixes + + +=========================================================================== + +This 5.0.3 version is significant bug fix update to version 5.0.2. +It includes new code and some new features. +There is no database change since prior versions of 5.0. + +Note, if you are running 5.0.0, read the 5.0.1 and 5.0.2 release notes below in + the 5.0.1 release section. + Important!!! + +Compatibility: +-------------- + As always, both the Director and Storage daemon must be upgraded at + the same time. + + Older 5.0.x and 3.0.x File Daemons are compatible with the 5.0.3 + Director and Storage daemons. There should be no need to upgrade older File + Daemons. + +Changes and New Features: +- If a VSS (Windows) snapshot fails, the whole Job is failed, previously + it printed a warning message and continued. +- New editing codes %b = Job Bytes and %f = Job Files for runscripts +- Any non-Bacula project plugins (i.e. third party plugins) + must be upgraded to specify AGPLv3 in place of the GPLv2 used previously + for the PLUGIN_LICENSE. +- The bat Media page text columns can be sorted by clicking on the column. +- If possible, the SD will automatically update the catalog Volume size if + it does not match the Volume size. The mismatch between the Volume sizes + typically occurs when the FD has a comm line drop or the FD crashes. + + +Bug fixes +1538 1554 1564 1567 1568 1569 1571 1577 1581 1582 1587 1594 1595 1606 1610 + +- Change license from GPLv2 to AGPLv3 +- Make Win32 no filesystem change more explicit +- Backport Branch-4.0 release to Branch-5.0 +- Massive backport from Branch-5.1 to Branch-5.0 +- Fix postgresql catalog creation when version is not on the first line +- Fix bug #1610 handle empty xattr values on Linux and xBSD. +- Garbage collect memory pool at end of job and before sm_dump +- Add xattr seg fault protection suggested by Marco for bug #1610 +- Add archlinux to os.m4 +- More fixes for 32/64 bit problems in smartall +- Fix 32/64 bit problem in smartalloc dump routine +- Fix bad copy/paste in commit c88dccb88 prably a seg fault +- Add .dump and .exit commands for daemons +- Make SD automatically fix the Volume size in the Catalog when out of sync +- Use Pmsg in smartall.c rather than printf for tracing Windows +- Up maximum block size to 20M +- Fix for TLS bugs #1568 and #1599 +- Improve comm line error handling for TLS, may fix bug #1568 and #1599 +- Fix problem when sending Cancel event to plugin +- Convert all Jmsg on the watchdog thread to Qmsg +- Fix SD crash due to mismatched lock/unlock in error condition +- Fix bug #1587 if you have clients with different catalogs configured, both + catalogs contains all clients after a reload or restart of the dir +- Fix bug #1577 During migration: ERROR in block.c:950 Failed ASSERT: dev->is_open() + by moving and commenting out the ASSERT() +- Skip HB kill in FD if HB thread terminated +- Fix crash from unequal volume_lock/unlock calls +- New prunning algorithm -- should be more accurate +- Save any dumps during regression to dumps directory +- Fix crash from rw_lock/unlock miss match +- Attempt to fix duplicate job kill seg fault +- Replace pthread_kill by my_thread_send_signal() in jcr.c +- fix #1595 about batch mode detection problem for postgresql with non standard + install dir +- Fix #1594 about prune copy jobs +- Apply literal string fix in printf submitted by Luca Berra +- Fix bug #1582 Restore from multiple storage daemons breaks subsequent backups +- Fix segfault on "cancel jobid=" command +- Fix bug #1554 Windows installer doesn't honor /S flag +- Remove pool zap code that breaks 2drive-concurrent-test +- Fix #1571 and install libraries with 755 perms +- Fix bug #1581 ASSERTs in src/dird/jobq.c can never trigger +- Fix problem with BaseJob and Accurate FileSet options on client side +- Fix for bug #1569 deadlock/crash in Dir +- Fix segfault when loading Plugins +- Fix #1567 about display of long volume names truncated during restore +- Added new bacula-libs package. +- Fix bug #1538 Start Scripts return incorrect value +- Fix bug #1564 init scripts not LSB compliant + +See ChangeLog for more details. + +============================================================================= + + +============= Release 5.0.2 ======================== + +Changes since 5.0.1 +------------------- + +Bug fixes +1502 1511 1517 1524 1527 1532 1536 1541 1549 1551 1553 1559 1560 + +- Probable fix for SD crash bug #1553 +- Fix #1559 problem when restoring pruned jobs with a regexp +- Fix for bug #1560 bcopy cannot find Volume +- Fix cancel crash bug #1551 +- Check if sql backend is thread-safe +- Correct Pool display in SD status. Fixes bug #1541 +- Fix cancel crash reported by Stephen Thompson +- Rewind on close to fix #1549 +- Remove closelog() in bpipe fixes bug #1536 +- Fix #1517 about missing Base level in .level command +- Replace ASSERT in block.c with fail Job +- Fix database locking calling db_lock and returning from function without + calling db_unlock. +- Add missing db_unlock to bvfs_update_cache. +- Fix #1532 about permission on binaries +- Fix #1527 about deadlock during migration +- Another fix for OpenSSLv1 +- Add -lrt to Solaris links +- Fix tls.c for OpenSSLv1 +- Fix #1511 when trying to insert more than 50.000 directories in bvfs +- Fix plugin load not to stop if one plugin bad -- pointed out by James +- Remove --without-qwt from configure statement. +- Second correct fix to bug #1524 verify fails after adding or removing files +- Fix bug #1524 verify fails after adding or removing files +- Apply fix suggested by Andreas in bug #1502 for mediaview column sort problem +- Fix OpenSSL 1.x problem in crypto.c on Fedora 12 +- Display AllowCompress warning message only if compression used in FileSet + +============================================================================= + + +============= Release 5.0.1 ======================== + +!!!!!!!!!!!!!!! NOTE FOR 5.0.0 USERS !!!!!!!!!!!!!!!!!!!! +The Allow Duplicate Jobs directive has been significantly +reworked, and the default value has changed. See below. + +Truncate On Purge has been totally rewritten. See the new +features section of the manual. + +When Volume Poll Interval is set in the SD DEVICE configuration, +(default 5 mins), after a certain number of polling tries (approx +10) polling will stop and the operator will be asked to +resolve the problem. Previously there was no limit, and an +error message could be produced at each poll attempt. +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +Changes since 5.0.0 +------------------- +- We believe that we have resolved most of the problems + concerning canceled or failed jobs being "stuck" in the + Director. There is one outstanding problem in the SD when + canceling jobs that we will fix in the next major release. + If you see jobs that seem to be stuck, in general issuing + a cancel command in bconsole should now make them go away. + +Directives: +- The default for "Allow Duplicate Jobs" has been changed from + no to yes. If you use this directive, please check your + conf file, and note the next two items !!!!!!!!!!!!!!!!!!! +- AllowHigherDuplicates disabled. It did not work as documented + and was confusing. +- New directive "CancelLowerLevelDuplicates" See New Features + section in the manual. +- Truncate on Purge rewritten. See New Features section in the manual. + +Bug fixes: +1448 1466 1467 1468 1476 1481 1486 1488 1494 1497 +1499 1501 1505 1509 1513 + +- Ensure SD asks for help when looping even if poll set. Fixes bug #1513. +- Fix three-pool regress bug +- Modify bacula.spec fixes bug #1505 +- This version fixes an issue where the console window would start out + docked. It is fixed by initiating the variables in the Pages class wi + constructor. +- Fix make_catalog_backup.pl fails when catalog db is on other host +- Apply MacOSX installer patch from bug #1509 +- Apply fix to previous fix of Copy problem. Fix proposed by reporter o + #1476 +- Fix bug #1501 -t does not print errors +- Apply SQLite3 update fix from bug #1497 +- Apply bashism fix for diskchanger.in script from bug #1499 +- Apply rpm fix for Sci Linux from bug #1494 +- Take most recent Ukranian po from bug #1448 +- Probable fix for Copy/Migration bug #1476 +- Fix bug #1488 -- avoid recursion and race conditions in messages.c +- Upgrade cats library also to 5.0.0 +- Fix missing console page in bat +- Add bat help files to Window install +- Improve Windows upgrade to ensure old FD is shutdown +- Fix bug #1481 -- bat consumes all console file descriptors +- Backport truncate on purge from 5.1.x +- Fix bug #1486 -- bat doesn't show any errors on command-line +- Update the bsock error URL +- Correct .my.cnf umask in make_catalog_backup.pl +- Apply fix for dbcheck use by make_catalog_backup.pl +- Fix seg fault in bscan from new comment field +- Allow multiple CNs when using TLS +- Fix seg fault in SQlite driver +- Make shared libs version the same as the Bacula release version +- Remove file_index sequential check +- Fix #1466 about Bogus pruning message + +For Packagers: +1. The default query.sql file is now, except for some comments, empty. +The old file, which we no longer support (it is impossible or difficult to +make it work on every backend, and the queries are mostly contributed) can +be found in /examples/sample-query.sql. The sample file is +not installed by the Makefiles + +2. When you install the mtx-changer script, you must also install +mtx-changer.conf if it does not exist. This new file (mtx-changer.conf) is +required for mtx-changer to work, but it is a user configurable file, so on +any update, any existing file should not be overwritten. + +3. Bat should be built on every platform that is capabable of running Qt. +However, the Qt code is changing rather quickly and is not always +compatible from version to version. We have built and verified bat on Qt +4.3.4. We strongly recommend that you do not build and distribute bat with +any other version of Qt unless you personally test it. To build against Qt +4.3.4, download the depkgs-qt package from the Bacula Source Forge download +location, read the README file and follow the instructions. + +If you are building for Bacula version 5.0.0, please ensure that you do not +have qmake-qt4 loaded on your system. If you do, either remove it or +rename it before trying to build bat. If you do not, bat will probably be +built using the shared objects on your system. For Bacula 5.0.1 and later, +this problem (bug) does not exist. + +depkgs-qt does not install Qt on your system, nor does it interfere with +you having any other version of Qt installed on your system. Once you +build bat with depkgs-qt, it should *not* use the Qt shared objects, but +rather they will be linked into the program. After fully installing bat +(make install), you can run "ldd bat" to see what shared objects it will +use. If any Qt shared objects are referenced, something has gone wrong. + +4. Unless absolutely necessary, we recommend that you do not define any +special library environment variables that apply to the ./configure -- for +example: LIBDIR=/... ./configure is strongly discouraged. +Doing so, could potentially cause Bacula to be linked against the wrong +shared objects. + +5. The Bacula project strongly recommends that you install Bacula into a +single directory, with a few minor exceptions such as the MySQL or +PostgreSQL databases. Preferrably this should be /opt/bacula. The full +recommendation is: + +#!/bin/sh +# Recommended configure script for Bacula +prefix=/opt/bacula +email=xxx@yyy.zz +CFLAGS="-g -O2 -Wall" \ + ./configure \ + --sbindir=${prefix}/bin \ + --sysconfdir=${prefix}/etc \ + --docdir=${prefix}/html \ + --htmldir=${prefix}/html \ + --with-working-dir=${prefix}/working \ + --with-pid-dir=${prefix}/working \ + --with-subsys-dir=${prefix}/working \ + --with-scriptdir=${prefix}/scripts \ + --with-plugindir=${prefix}/plugins \ + --libdir=${prefix}/lib \ + --enable-smartalloc \ + --enable-tray-monitor \ + --enable-bat \ + --with-mysql \ + --with-dump-email=${email} \ + --with-job-email=${email} \ + --with-smtp-host=localhost \ + --with-baseport=9101 + +Obviously, the email, and some of the minor options (mysql, postgresql, +...) can be changed to suit your distribution, but the directory names +defined above are strongly recommended, and over time the default values in +the bacula-dir.conf and bacula-sd.conf will reflect these choices. + +If you have any questions about this or would like a detailed document +describing our recommendations including packaging requirements, please +send an email to the bacula-devel list. + +6. Starting with Bacula version 3.0.0 up to Bacula 5.0.0, the shared +libraries that Bacula uses by default are named xxx-1.0.0. Starting with +Bacula 5.0.1, we are going to name the libraries using the Bacula version. +So in Bacula 5.0.1, the libraries will be named xxx-5.0.1. With future +versions, the last digit may or may not change when we distribute patch +updates (i.e. the last digit of the version changes). This will depend on +whether or not we have changed something in the library. Hopefully this +new procedure will resolve some of the incompatibility problems between +different versions of the shared objects. + +7. The default build option for bconsole is conio (my own little console +routines). I did this because some years ago, readline was very difficult +to maintain -- it and where it was found seemed to change on every release. +This generated at the time a number of support problems. It seems to me +that since then there have been very few problems with readline. As a +consequence, I have no problem if you want to make bconsole with readline +enabled. It will actually give some very nice new bconsole command +completion functionality that Eric has written. Bottom line: feel free to +use readline or not as you please. + +========================================================== + + + +Release Notes for Bacula 5.0.0 + +Release Numbering: +----------------------------------------------------------- +You might be wondering why this release jumps from 3.0.x to +5.0.0 thus skipping version 4.0.0. We have done this for +several reasons: first, we wanted a way of distinguishing +the numbering system for the Bacula System Enterprise version +and the Bacula Project version. So, to do so, we have decided +that the first number of the Bacula Project version will always +be odd, and the first number of the Enterprise version will always +be even. Thus the Bacula Project now moves from 3.0.x to 5.0.x. +In addition, we want to keep the Bacula Project version larger +than the Enterprise version to indicate that the Bacula Project +version is more advanced or has more features than the +Enterprise version. For memory, the current Enterprise version +is 2.6.1, and the next release (in a few months -- before June 2010) +will be version 4.0.0. + +Warning: +-------------------------------------------------------------- +Please note the three Warnings below before doing any install or +upgrade. + + +Changes since 3.0.3a (the last Bacula Project release): +------------------------------------------------------- + +Bug fixes: +1337 1351 1352 1354 1357 1361 1367 1369 1370 1373 +1376 1391 1403 1409 1420 1422 1427 1428 1431 1450 +1454 1455 1458 1456 + +Fixed: + - Problem that locks the Director when the SMTP server wasn't + responding to the bsmtp program + - Restore's dir command shows incorrect file sizes + - Fix various problems with the reload command + - Fix problems with conio + - Eliminate several deadlocks or potential race conditions from SD + +Enhancements: + - Project 5: Truncate volume after purge + - Project 6: File Deduplication using Base Jobs + - Project 10: Restore from Multiple Storage Daemons + - Project 11: AllowCompression per Device + - Project 23: Add Maximum Concurent Jobs for Devices to balance load + between drives + - Add Accurate Fileset Options to configure accurate detection. Can use + checksum verification for example. + - Allow FD to keep root read but drop write permission (CAP) + - Secure handling of passwords for catalog backup + - Add Tab-completion for Bconsole when using Readline + - Add Bvfs API to query the catalog without building a memory tree + - Add new speed test to btape program + - Add new Bat screens (Autochanger content, Job view, Media view, ...) + - Windows version of Bat + - Added Spanish Bacula translation + - New bconsole -u nnn option to have timeout on commands + - Allow Migrate, Copy, and Virtual Full to read and write + to the same Pool + - show disabled -- shows disabled Jobs + - Add Pool File and Job retention periods (take precedence over Client) + - Many ACL improvements + - Level added to FD status Job entry + - Allow turning on/off Block Checksum per device + - Set Device Poll interval to 5 minutes -- previously did not poll + - Implement lock manager with bad order protection + +Compatibility: +As always, both the Director and Storage daemon must be upgraded at +the same time, and on any given machine, you must run only one version +of Bacula. This means that on the Director and Storage daemon machines, +you *must* upgrade your File daemon as well. + +Older 3.0.x and possibly 2.4.x File Daemons are compatible with the 5.0.0 +Director and Storage daemons. There should be no need to upgrade older File +Daemons immediately. However, we recommend that you do so as soon +as is reasonable for your situation. + +================== Warning !!!!!! ========================== + +New Catalog format in version 5.0.0 (3.1.9 or later) +----------------------------------------------------- + +This release of Bacula uses a new catalog format. We provide a set of +scripts that permit to convert a 3.0.x (version 11) catalog to 5.0.0 (version +12). The Bacula project rpms distributed on Source Forge will automatically +detect the database change and do the upgrade for you. We strongly +recommend that you save a copy of your existing database before upgrading +using rpms. + +The simplest way to upgrade the database assuming you are building from +source: +1. Stop any current version of Bacula from running. +2. Save a copy of your existing database. +3. Configure, build, and install the 5.0.0 version of Bacula + Note the new ./configure options in the manuals see the link + at the bottom of this file. +4. cd +5. ./update_bacula_tables +6. If you have multiple catalogs, edit the update_bacula_tables + script and put the name of another database, and then + execute the script again. Repeat this until all Bacula + catalogs have been updated. +7. Start the new Bacula. If everything worked, it should + not print any error messages. + +If you start from scratch, you don't need to run the update_bacula_tables +script because the create_bacula_tables script automatically creates the new +table format. However, if you are using a version of Bacula older than 3.1.9 +(e.g. 3.0.3) then you need to run the update_bacula_tables script that will +be found in the /src/cats directory after you run the ./configure +command. As mentioned above, before running this script, please backup your +catalog database, and when you do running it, be sure shutdown Bacula and be +aware that running the script can take some time depending on your database +size. +================================================================ + + +================== Warning !!!!!! ========================== +If you upgrade a previous Win32 client installation, you must +first stop the File daemon, then uninstall it before attempting +the upgrade. If you do not do so, the upgrade will probably +fail and you will need to manually find and run the +Uninstall.exe file, before you can upgrade to the new version. +This is because the file locations are different. If you want +to save your previous bacula-fd.conf file, please do so before +uninstalling it. +================================================================ + +================== Warning !!!!!! ========================== +Due to permissions problems on Windows Vista and later systems, +we no longer require SYSTEM or Administrator permissions to +access the binaries and configuation files. If you wish +to restrict access to these files, please see the New Features +section of the manual for how to set access control lists. +================================================================ + +Note, the Win32 Installer no longer installs the Bacula Servers +(Director and Storage daemon). See the New Features section of +the manual for more details. + +============ Documentation improvements needed ================== + +Note!!!!! The 5.0.0+ documentation has a number of known problems: + +1. We have reduced the number of manuals, which has fixed many + of the broken links found in the old 3.0.x version, but there + are still some that need fixing. + +2. Integration of the 3.0.x features into the main manuals has + not yet been done. + +The documentation will not be completed in the near future due to lack +manpower. If you are unhappy with this situation as we are, we suggest +you help by submitting patches to the documentation. Thanks. +===== + + +This release includes large number of new features and changes. +It should be more or less compatible with previous xx.conf files +and File daemons providing that you are not using any of the new +features. + +Please see the New Features chapter of the new manual, which documents +some but not all the new features (we are still working on it): + +http://www.bacula.org/5.0.x-manuals/en/main/main/New_Features_in_5_0_1.html + +The ChangeLog has more details.