]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/ReleaseNotes
Update ReleaseNotes
[bacula/bacula] / bacula / ReleaseNotes
index 9d61aa680a4b555d8ab21954ec726634f5211204..b920f9d94a8ce657f2612e2183df285d99f5f765 100644 (file)
 
-          Release Notes for Bacula 1.37.10
-
-  Bacula code: Total files = 414 Total lines = 123,723 (*.h *.c *.in)
-
-
-Major Changes:
-- This version has a new DIR <--> SD protocol. Both must be
-  upgraded at the same time.
-- This version has a new database format that is not compatible
-  with previous databases. The upgrade scripts should work, but
-  they are not yet tested.
-- SQLite3 support, but it seems to run at 1/2 to 1/4 the speed of
-  SQLite2.
-- First cut at ANSI labels.
-- New communications protocol between DIR and SD to reserve 
-  drives. The DIR and SD are no longer compatible with 1.36 or
-  lower versions.
-- Preliminary Python Event support has been added. See below for
-  configuration and details.
-- DVD writing support, using parts, and a lot of new directives in
-  the Device resource of the Storage configuration file.
-- Seven new options keywords in a FileSet resource:
-  ignorecase, fstype, hfsplussupport, wilddir, wildfile, regexdir,
-  and regexfile. See below for details.
-
-New Directives:
-- 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:
-  - 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.
-  IBM is not yet implemented.
-- 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.
-
-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.
-
-Items to note!!!
-- You must add --with-python=[DIR] to the configure command line
-  if you want Python support.  Python 2.2 and 2.3 should be automatically
-  detected if in the standard place.
-- With Python 2.2 version, the link of the Director gets a few linker
-  warnings due to the fact that Python pulls in some old non-secure
-  libraries.
-- With Python 2.3, there are a few compiler warnings.
-- You must either create a new catalog database or upgrade your
-  old database (upgrade scripts not yet tested).
-
-Other Items:
-- 2 new scripts, dvd-writepart and dvd-freespace, in the scripts directory,
-  which are 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/).
-- Part files support: File volumes can now be splitted in multiple
-  files, called "parts".
-- Python scripting support:
-  A Python script will be called at particular points or conditions
-  in Bacula called Events. The currently defined Events are called:
-
-  StartJob, EndJob, NewVolume
-
-  Where StartJob is called before the RunBeforeJob, EndJob is called 
-  after RunAfterJob, and NewVolume, is called before all other 
-  "methods" of obtaining a new Volume name, when one is needed.
-
-  The Python script of the same name as the Event name (but with a .py) 
-  is called from the Scripts Directory (a directive defined in the
-  Director resource).  Note, both the Filename, and the name of
-  the function in the file must correspond to the Event name.
-
-  Once the Python script gets control, it can have access to Bacula
-  variables by doing:
-
-     import bacula
-
-  The script is called with one argument, typically called j. This
-  argument *must* be passed unchanged to each bacula function. The
-  format of the call is slightly different for reading Bacula
-  variable and for writing bacula variables. See below.
-
-  Bacula variables can be read with:
-
-     bacula.get(j, "Variable-name")
-
-    where j is the argument passed to the function, and Variable-name
-    is on of the following:
-
-     JobId, Client, Pool, Storage, Catalog, MediaType, NumVols, DirName,
-       Level, Type, Job, JobName, JobStatus
-
-   Bacula varibles can be set using Python keyword arguments:
-
-      bacula.set(jcr=j, VolumeName="xyz")
-
-    The two currently implemented writable "variables" are:
-
-    VolumeName and JobReport
-
-   It is possible to submit a Bacula run command with the following:
-
-     bacula.run(j, "run kernsave client=Matou storage=File")
-
-   this function returns the JobId of the job that was started. If
-   there is an error, the return value is zero.
-
-   Example:
-
-== File EndJob.py ===
-import bacula
-
-def EndJob(j):
-    jobid = bacula.get(j, "JobId")
-    client = bacula.get(j, "Client") 
-    bacula.set(jcr=j, JobReport="EndJob output: JobId=%d Client=%s.\n" % (jobid, client))
-    if (jobid < 5) :
-       startid = bacula.run(j, "run kernsave")
-       print "Python started jobid=", startid
-
-    return 1
-====
-
-== File NewVolume.py ===
-import bacula
-
-def NewVolume(j):
-    jobid = bacula.get(j, "JobId")
-    print "JobId=", jobid
-    client = bacula.get(j, "Client") 
-    print "Client=" + client
-    numvol = bacula.get(j, "NumVols");
-    print "NumVols=", numvol
-    bacula.set(jcr=j, JobReport="New Volume set for Job.\n") 
-    bacula.set(jcr=j, VolumeName="TestA-001")
-    return 1
-====
+          Release Notes for Bacula 2.1.8
+
+  Bacula code: Total files = 458 Total lines = 170,197 (*.h *.c *.in)
+
+This Director and Storage daemon must be upgraded at the same time,
+but they should be compatible with all 2.0.x File daemons, unless you
+use some of the new features that affect the FD.  In other words, you should
+not have to upgrade all your File daemons.  However, bat works only with
+a 2.1.8 Director.
+
+The major features are:
+- First cut of bat (Bacula Administration Tool).  Note to build
+  bat you must explicitly enable it on the ./configure line, you
+  must have the Qt4 libraries loaded, and qmake and the other Qt4
+  tools must be available.
+- Red/Black restore in memory tree (500 times faster loading).
+- Much faster insertion of attributes (somewhere around 10 times).
+- The Regex Where code to allow easier relocation of restored files.
+- Socket level heartbeat for all connections (untested).
+- posix_fadvise() use in the FD to improve performance.
+- Simpler locking in the SD in the reservation system.
+- Much improved Volume reservation code that should eliminate most
+  conflicts experienced in multiple drive autochangers.
+- Detection of file size/date change during backup if enabled.
+- New Recycle Pool feature.
+- Efficient implementation of very large include/exclude lists.
+- Volumes are no longer pruned during 'status dir'
+- Pruning is now more efficient, and if a Volume is purged,
+  during pruning, it is immediately discovered.
+
+Other features or bug fixes:
+- Fixed bugs: 856, 854, 845, 847, 846, 809, 772, 
+  822, 825, 824, 808, 802, 797, 798, 795, 789, 791, 
+  788, 780, 763, 782, 612, 767, 775, 621, 772, 764, 
+  766, 621, 761, 755, 750, 741, 747, 742, 744, and 743.
+- Only the minumum number of volumes are pruned rather than
+  all volumes in the pool.
+- wx-console renamed to bwx-console
+- gnome-console renamed to bgnome-console
+- Migration preserves original job's FileSetId
+- Spooling implemented for migration jobs.
+- Config files can be read through a pipe, by specifying a leading |
+  in front of the configuration path/filename.
+- New memory command (bconsole) that will print the current Director's
+  memory usage, and a in use buffer dump.
+- Solaris door and event port files are no longer restored.
+- Console name changed from *Console* to -Console- to accomodate Win32
+  filename restrictions.  
+- Corrected Win32 ftruncate bug.
+- Additional version information added to Job reports.
+- New -8 option for bsmtp to specify UTF-8 encoding type.
+- bsmtp will no longer add < > to target (from, to, cc) if there
+  is already a < in the target.
+- Perfer Mounted Volumes extended to mean a volume that is being
+  mounted by another job.
+- Runscript timing set to same as version 1.38.11
+- New TLS Allowed CN directive(s) permitted.
+- New bconsole 'exec' command to run external script/command.
+- Turn on FreeBSD/OpenBSD code to set EOT model on tape.
+- Drop from root done before database is opened.
+- database user and name can be configured with:
+  --with-db-name=name --with-db-user=user
+- turn on wait_for_drive in mtx-changer script.
+- rework how bar codes are handled in mtx-changer script.
+  This appears to have been an unreported bug.
+- Updated nagios plugin supplied by Christian Masopust
+- Better restricted console ACL checking.
+- New Client Connect Wait directive in Storage daemon so that
+  users can configure how long SD waits for FD connection.
+- Bacula will no longer permit pruning of the currently running
+  job (note, if other jobs are running, they may be pruned).
+- Sockets are no longer restored.
+- dbcheck works in 300K chunks so will typically run faster.
+- Include/Exclude lists can now be efficiently handled for quite
+  large sizes -- tens of thousands of entries.
+- Several memory leaks in migration and database usage were fixed.
+- New console keyword restoreclient, which specifies the client to
+  which the restore will be sent. The client keyword specifies 
+  the backup client. The restoreclient keyword is optional if it is
+  not specified, the backup client will also be the restore client.
+- The disk file size is now checked to ensure that it agrees with the
+  catalog value before Bacula will append to the disk (same as tape
+  and DVD).