- Release Notes for Bacula 1.35.5
+ Release Notes for Bacula 1.38.7
- Bacula code: Total files = 395 Total lines = 115,062 (*.h *.c *.in)
+ Bacula code: Total files = 419 Total lines = 137,078 (*.h *.c *.in)
+ 20,440 additional lines of code since version 1.36.3
+!!!! Important !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ In Bacula version 1.38.5 and prior, there was apparently a
+ compiler bug that caused the Storage daemon to seg fault.
+ I have applied a workaround in version 1.38.6 and greater that
+ seems to work. If you experience problems, follow the instructions
+ below.
-Changes for 1.35.5
-Major Changes:
-- Tray monitor program
-- Bacula Rescue CDROM
-- 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=).
+ 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 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.
+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.
+- Add two new console commands: enable job=<job-name> and
+ disable job=<job-name>. When a job is disabled, it will not
+ be started by the scheduler. If you disable a job and restart
+ Bacula or reload the .conf file, the job will be re-enabled.
+- Add a new Job resource directive "enable = yes|no".
+- There is a new program named regex in the tools directory that
+ allows you to try regular expressions on your system.
+
+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.
+
-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.
+Minor bug fixes:
+- See below:
+
+Release 1.38.6-1 (05Apr06) released
+- Remove timed wait for VSS on Win2K3 as it is not yet
+ implemented.
+- Correct bacula.in script to reference bacula-ctl-xx in the
+ sysconfig directory rather than the bin directory.
+
+Release 1.38.6 (28Mar06) released 29Mar06
+28Mar06
+- Back port from 1.39 fixes to lib/jcr.c to use foreach_jcr()
+ and new jcr chain locking.
+26Mar06
+- Fix a long standing bug in the bacula start/stop scripts.
+- Attempt to add the new bacula-ctl-* files to the rpm.
+- Switch to using typeof() for list traversing to avoid
+ as many FC5 g++ compiler warnings as possible.
+25Mar06
+- 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
+- Create datestyle fix for PostgreSQL. Fixes bug #574.
+- Correct editing of JobId from int to int64 in fd_cmds.c
+- Eliminate FileSet name race with bash_spaces() and multiple
+ threads by bashing in a local.
+- Fix error return from 'use storage' to print a correct error
+ message rather than nothing.
+- Correct false re-read last block error message when two jobs
+ are simultaneously writing at the end of a tape.
+- Simplify exit conditions in the reserve.c code to avoid
+ possible non-release of reservation_lock().
+- Suffle lock order in reserve to avoid deadlock between
+ reservation lock and device mutex.
+- Add Thorsten's VSS timeout code to 1.38 branch.
+- Initialize jcr mutex before first use. Thanks to Thorsten for
+ tracking this down for me !!!! as it broke the Win32 build.
+- Integrate addition of line count limitation to bsmtp -l from
+ Sebastian Stark <stark at tuebingen.mpg.de>
+- Implement regex test program in tools directory.
+- Attempt to fix time problem with bsmtp with foreign langs.
+- Add strip_trailing_newline() submitted by user.
+
+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.
-Other Items:
-- See below
+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.
-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.
+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.35.4:
-22Sep04
-- Add additional doc.
-- Implement automatic POOL_MEM type conversion to char *. Thanks
- to Martin Simmons for the suggestion.
-- Remove some unneeded function overloading -- need removed by
- automatic type conversion.
-21Sep04
-- Correct segfault in message.c with debug=200 (new code).
-- Fix bug 109 verify with no options prints garbage.
-- Add ioctl(MTIOCGET) call to clrerror_dev() in dev.c. As reported
- by Frank Kardel, this should clear error conditions on NetBSD.
-20Sep04
-- Modify the rescue script to create mount_drives with
- the order specified by Philip Nash (mkdir, mount).
-- Tweak install chapter of French manual to add new paragraph
- from English.
-- Tweak restore tree message to be a bit clearer.
-- Modify watchdog to wakeup after 60 seconds, or wakeup if
- there is work to do.
-- Modify watchdog stop routine to "ping" watchdog so that it
- stops immediately rather than after sleep time.
-- Fix btape to use new dcr blocks rather than its own.
-- Fix butil.c to correctly handle Volume names for the
- utility routines (broke when updating to dcrs).
-11-19Sep04 (vacation)
-- Implement multiple Storage specifications in the Job resource
- (AND) each containing multiple specifications (OR). Not yet functional.
- Note, this needs more work as most things now use
- job->storage[0]->first() rather than looping through devices.
-- Implement "Multiple connections = yes/no" in Catalog record for
- allowing multiple simultaneous connections to the database.
-- Add new mac.c (Migrate, Archive, Copy) to dird -- not yet implemented.
-- Implement a new POOL_MEM class that automatically allocates
- and deallocates a pool buffer.
-- Overload a number of utility routines to permit using both
- POOLMEM and POOL_MEM.
-- Start converting to using POOL_MEM.
-- There were a number of Bacula console ACL checks missing in
- ua_run.c. It allowed users to run jobs they really should not.
-- Correct a number of dates on the Copyright.
-- Overload pm_strcpy() and pm_strcat() to handle new POOL_MEM
- class.
-- Overload bash/unbash_spaces to handle new POOL_MEM class.
-- Make a *MASSIVE* pass through the Storage daemon eliminating
- all use of jcr->VolumeName and jcr->VolCatInfo in favor of
- dcr->...
-- Eliminate all all redundant arguments from calling sequences
- in SD. This poses a number of problems due to the old way blocks
- and records were allocated and released all the time. They are
- now contained in the dcr. The problem is that old habits die hard
- and there are still places where everything is not right.
-- Implement "Block positioning = yes/no" in Device resource in SD.
+Changes to 1.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=<job-name>. 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.35.3:
-09Sep04
-- Add "Multiple Connections = yes/no" in catalog record. Only
- the variable is implemented, no code yet.
-- Close *all* FD unless debug on.
-08Sep04
-- Add first cut of UTF-8 support to conio. It "seems" to be working
- pretty well. Moving by words will definitely not work though.
-- Improve detection and setting of gateway in the
- network_start script.
-07Sep04
-- Modify scan code so that in most places scanning will
- continue across the end of a line.
-05Sep04
-- Begin major phase of 1.35 documentation.
-- All outstanding bugs are fixed.
-- Implement changes and improvements to rescue scripts as
- proposed by Gaurav.
-05Sep04
-- Add correction to Phil's previous patch.
-- Send all queued messages in SD and FD prior to closing down
- the job.
-- Send queued messages in Jobs before terminating the job
- so that the messages print before the job report.
-- Add a destructor so that the Console ACLs are properly
- freed.
-04Sep04
-- Implement isolinux boot disk.
-- Integrate Phil Stracchino's code (thanks for Matt's help).
- It permits lists and ranges of jobids on the delete as in:
- delete job jobid=1,3,5,11-16
-03Sep04
-- Apply Mike Acar's suggestion when looking for the next volume
- to check purged volumes for recycling before doing a purge.
-- Make some improvements to CDROM disk.
-- Take another crack at ignoring drive open() errors during
- polling.
-02Sep04
-- Add eliminate orphaned job records; eliminate admin records,
- and eliminate restore records to dbcheck.
-- replace sprintf by bsnprintf() in dbcheck.
-- Added scan target to makefile in rescue cd to print scsi
- devices.
-- Added argument to berrno::strerror() to pass errno.
-- Cleaned up a few more old strerror() calls and eliminated a
- few of the now unnecessary set_errno() calls.
-- Fixed a bug in the polling code that prevented more than 100
- label reads (insanity check disabled if polling).
-- Ignore bad return from open_device() if polling.
-- Short circuit code if fatal error return from read_label() in
- mount.c
-01Sep04
-- Add index file to JobId field of File records for PostgreSQL.
-- Correct several bugs in the job queue scheduler concerning
- rescheduled jobs: 1. The SD status was not cleared causing a
- wrong status to be displayed by Dir after rescheduling. 2. All
- rescheduled jobs became zombies because the jcr use_count was
- not decremented properly.
-- Make the Catalog resource required in Client records.
-- Order the listing of where a file is (item 2 on the restore
- menu) by StartTime.
-- Clarify when a filename only and a full path + filename must
- be entered in items 2 and 8 of the restore menu.
-- Fix logic error in resolution of names on IPv4 systems.
-Changes to 1.35.2 released 01Sep04:
-30Aug04
-- Inhibit printing of FileSet for a restore as it is misleading.
-- Cleaned up a number of minor scripting problems with the CDROM
- creation.
-- Fixed a race condition causing a Director crash on termination,
- if a large number of SIGHUPs were sent during a multiple concurrent
- set of backups.
-28Aug04
-- Completed integration of Rescue CD scripts with Bacula source.
-28Aug04
-- Added Ignore FileSet Changes = yes
-- Added more error checking to the spooling code.
-24Aug04
-- Applied a patch from Peter Eriksson that removes a dynamic stack
- allocation (replaced by alloca) and fixes some const problems.
-- Fixed a free() of a static variable in the new IP code bnet.c
-- Got the new Bacula Rescue CDROM booting.
-- Replaced a dynamic template by a simple store when using the
- native C compiler.
-- Reworked some of the block.c error handling.
-- Changed a Dmsgx(000, to Dmsgx(100 in dev.c that was dumping
- debug output on a user.
-- Integrated patch from 1.34.6 block.c to 1.35
-17Aug04
-- Fix conio.c problem on Solaris.
-- Add debug code to lock_jcr_chain().
-- Lock jcr chain around less code.
-- Implement call by reference for Mmsg() and pm_strxxx() to
- simplify calls.
-- New IP address specification is used as follows:
- [sdaddresses|diraddresses|fdaddresses] = { [[ip|ipv4|ipv6] = {
- [[addr|port] = [^ ]+[\n;]+] }] }
+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 = <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:
- 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.
+ ./upgrade_bacula_tables
- 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.
+ You can also find this script in the <bacula-source>/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.
-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.
-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 !@#$%*.
+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
+ <bacula-source>/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.