]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/ReleaseNotes
ebl update
[bacula/bacula] / bacula / ReleaseNotes
index c6e8d5b304ad9c2e0bacb66900fb572bb9f3242e..2a434bb4dc339c814bd6c40c7f991a924350dc42 100644 (file)
 
-          Release Notes for Bacula 1.39.18
-
-  Bacula code: Total files = 448 Total lines = 150,330 (*.h *.c *.in)
-
-Warning for version 1.39.18 and greater:
-- The documentation is almost non-existent for all new features
-  except RunScripts (written and documented by Eric Bollingier).
-- If you have an old pre 1.39.18 database, you must upgrade it using
-  the upgrade_bacula_tables script. Please backup your database before
-  upgrading just in case.
-- You *should* be able to use 1.38.x FDs with version 1.39.18 Director
-  and SD providing you do not use any of the new features (runscript,   
-  data encryption). It seems to work here, but we do not guarantee it.
-- Your Director and SD must be simultaneously upgraded.
-- The restore command no longer uses the MediaType as the primary method
-  of finding a suitable Storage device. Normally it will select the last
-  device used to write a Volume. If no storage device is defined, it
-  will use the old algorithm which selects the first Storage resource  
-  with the correct MediaType.
-- The MD5/SHA1 hash codes kept in the database are now kept in a binary
-  format compatible with the rest of the world. If you are running verify 
-  jobs, you *must* do an InitCatalog or all files will show an MD5   
-  difference.  Also, authentication uses the new algorithm by
-  default, but *should* accept connections from older components (FD) using
-  the old non-compatible algorithm. This has been tested, but more
-  more testing is still needed.  
-- The --mandir ./configure option now points to the top level man
-  directory.  The man files will be installed under mandir/man8 and
-  mandir/man1 as appropriate.
-- The "Accept Any Volume" directive has been removed. It was never
-  implemented. Bacula will always accept any valid tape that is in   
-  the drive for appending.
-- To install the 1.39.18 Win32 FD, you *must* first stop any    
-  previous version that is running in a DOS shell with:
-
-     net stop bacula
-
-  or select the 'Close Bacula' menu item from the Bacula tray icon,
-  you should then save your bacula-fd.conf file, and either
-  uninstall (using Uninstall.bat in the c:\bacula directory) or
-  remove the old installation by manually in a DOS shell in the
-  Bacula directory enter:
-
-     bacula-fd /remove
-
-  after that you can proceed with the installation.  My experience
-  is that it does not properly create the new bacula-fd.conf file, so
-  copy the one saved to the directory you chose to install Bacula,
-  or to the directory chosen by the Installer to put the bacula-fd.conf
-  file.  Then you can start Bacula in a DOS shell with:
-
-    net start baculafd
-
-  or use the Windows Control Panel->Administrative Tools->Component
-  Services menu item.  
-
-
-A Lot of New features for 1.39.18:
-- Switch the Win32 build from using Microsoft C++ to using mingw32
-  cross-compiling.  The inital work was done by Howard Thomson,
-  then tweaked by me.  Robert Nelson then totally reworked the
-  cross-compiling code so that it not only cross-compiles, but
-  also compiles on Visual Studio, and at the same time, he added
-  all the current Unix features to the FD, such as selection on
-  drives, encryption support, building *all* the tools, ...
-  Finally, he also ported the Directory and the Storage daemon to
-  Win32.
-- Data encryption done in the Client is now supported due to code
-  submitted by Landon Fuller.
-- Bacula restore and bextract can now extract non-portable Win32 data to
-  any client (including Unix/Linux clients). Of course, in doing so,
-  the Microsoft specific permissions and ACLs will be lost.  Thanks
-  to Thorsten Engel for this code.
-- The 260 character limitation for Win32 paths name lengths is now 
-  eliminated thanks to Thorsted Engel.
-- Eric Bollengier wrote new RunScript directives that includes
-  the old RunBefore/AfterJob and ClientRunBefore/AfterJob features
-  plus a *lot* more, allowing you to control just about every aspect
-  of running scripts.  See the manual for detailed documentation.
-- The examples directory has a new bacula_mail_summary.sh file that
-  creates a single email summary of any number of jobs. Submitted by
-  Andrew J. Millar.
-- SunOS ACLs should now work thanks to a patch from David Duchscher.
-- The database Id records should be 32/64 bit independent now. 64 bits
-  can be enabled by changing one define, but this has never been tested.
-- Apply days keyword patch from Alexander.Bergolth at wu-wien.ac.at
-  If this patch is applied, the number of days can be specified with
-  "list nextvol days=xx"
-  or
-  "status dir days=xx"
-  My use case is to be able to preview the next scheduled job (and the
-  next tape to be used) on fridays if there are no scheduled jobs during
-  the weekend.  This patch was probably back ported to 1.38.x
-- Add nagios plugin to the examples directory. Submitted by
-  Christian Masopust.
-- Modify most restore error messages to be queued so that they
-  appear at the end of the job rather than mixted with the restore
-  listing where they could be "lost".
-- Apply patch supplied by user (slightly modified) to fix
-  correct detection of holes in block devices and FIFOs.
-  Bug # 506.
-- Added a report.pl program to the examples directory from Jonas Bjorklund.
-- Add enable/disable job=<job-name>.  This command prevents
-  the specified job from being scheduled. Even when disabled,
-  the job can be manually started from the console.
-- Add two new queries to query.sql provided by Arno. One
-  list volumes known to the Storage device, and the other
-  lists volumes possibly needing replacement (error, ...).
-- Implement new code for changing userid and group at startup. This
-  should get Bacula into the correct groups.
-- Implement support for removable filesystems.
-- Transfer rates are now presented in a more readable format thanks
-  to a user submission.
-- SD is now aware of what volumes are mounted. More information is printed
-  in the Status report.
-- The Pool Maximum Volumes directive is now respected in all places.
-- A Storage device can now be specified in a Pool resource. It will override
-  all other Storage specifications.
-- Most but not all directives accept true/false in place of yes/no.
-- A patch from Karl Hakimian that reads JobIds, FileIndexes
-  from a database table for restore.
-- There are a number of new tables. Some such as the Location table are
-  designed for user use in doing Volume Management software.
-- Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to
-  accept time qualifiers.
-- Implement jobuid to replace old usage of job in keywords as
-  suggested by Eric Bollengier.
-- Apply patch for enhancing wait from Eric Bollengier. On can now:
-   wait  (wait for all jobs to stop)
-   wait jobid=nn
-   wait jobuid=unique id
-   wait job=job-name
-- Implement write variables for Python to set Priority (anytime), and
-  Job Level, only during JobInit event.
-- Use the keyword ujobid to mean the unique job id; job or jobname
-  to mean the Job name given on the Name directive, and jobid to
-  be the numeric (non-unique) job id.
-- Allow the SD to use multiple drives during a backup/restore (only
-  one at a time). This is not well tested.
-- Integrate addition of line count limitation to bsmtp -l from
-  Sebastian Stark <stark at tuebingen.mpg.de>
-- Split the bacula start/start script into four files:
-   bacula         -- starts and stops calling other scripts
-   bacula-ctl-dir -- starts/stops the director
-   bacula-ctl-fd  -- starts/stops the File daemon
-   bacula-ctl-sd  -- starts/stops the Storage daemon
-- Remove automatic case folding on Windows FDs. You must
-  explictly use the 'Ignore Case = yes' option.
-- Implement wild program in tools directory for testing
-  wild-cards. Almost identical to the regex program.
-- Use the new bregex.c to implement Regex expressions on Win32.
-- Apply patch from Christopher Hull
-  - Allow multiple connections to database with different
-    parameters.
-  - Invalidate the scheduler when doing a reload. Fixes seg
-    fault, but still 60 second window.
-  - Additional info in Reschedule message.
-  - Use set_jcr_job_status() everywhere to prevent loss of
-    cancel, error.
-  - Display peer IP in FD if error from connecting DIR.
-  - Don't increment file count for DIRBEGIN.
-  - Replace illegal characters in Win32 filename by _.
-  - Add SE_CREATE_PERMANENT_NAME privilege in Win32.
-  - Hash hard link filenames rather than linked list (performance).
-  - Fix for security failure in chdir on Win32.
-  - Add CreateDirectoryA/W win32 API entry points.
-- Add /silent option to Win32 FD for Install/Remove service.
-  programs to duplicate Bacula's base64 algorithm using standard
-  routines. This fixes bugs #296, and 565. Patch submitted by
-  author of bug #565.
-- Fixes to reloading the Dir conf file from Eric Bollengier and Christopher
-  Hull.
-- Modify LICENSE to correct some problems pointed out by Debian.
- Implement patch submitted by cesarb in bug #606 to implement O_NOATIME
-  support.
-    O_NOATIME is a open() flag which makes it possible to read a file without
-    updating the inode atime (and also without the inode ctime update which
-    happens if you try to set the atime back to its previous value). It also
-    prevents a race condition when two programs are reading the same file, but
-    only one does not want to change the atime. It's most useful for backup
-    programs and file integrity checkers (and bacula can fit on both
-    categories).
-
-    Recent versions of the Linux kernel and glibc have support for it (the
-    glibc support being mostly copying the O_NOATIME definition to
-    bits/fcntl.h). If there's no support for it on the kernel, trying to use
-    it does nothing (since the kernel ignores unknown flags).
-
-    If the kernel has support for it, trying to use it either works, fails
-    silently (mostly in remote filesystems), or returns errno=EPERM (if you
-    are not either the owner of the file or root). A simple way to prevent the
-    failure is to open the file without the flag and set it later with
-    fcntl(F_SETFL), ignoring any EPERM errors.
-- Implement a pile of new man pages contributed by Jose Tallon.
-- Implement a number of user supplied patches for DVD writing.
-- Modify the database format for handling Migration jobs:
-   Add PriorJobId, RealEndTime to Job table
-   Delete MAC table
-   Remove Stripe from JobMedia record (not used, wasting space)
-   Add ScratchPoolId, RecyclePoolId, Enabled to Media record
-   Add Cost to Location table.
-   Enabled to Media table and Location table.
-- Security: harden authentication failure in FD by single threading errors
-  and forcing a 6 second wait.
-- If using GCC (actually g++) add the following compiler flags
-  -fno-strict-aliasing -fno-exceptions -fno-rtti
-- Turn on new bsnprintf() code.  This could cause print output
-  to look different.
-- Implement job report that indicates where Storage and Pool
-  came from -- with overrides and Pool storage and NextPool,
-  it is all very complicated.
-- Add more detail (Storage, Device) to list of volumes printed
-  for restore.
-- Add new VOLMGMT message class. No messages are yet sent with this 
-  class.
-- Add Catalog message destination in Messages resource that puts the
-  job report in the Log database table.
-- Spend a lot of time integrating mkcdrec with the rescue disk.
-- Add spooling/despooling info in status output of SD.
-- Add Comment field to llist of a volume.
-- Allow true/false in some yes/no questions.
-- Implement update volume enable=(on|off|true|false|archived|0|1|2)
-
-Additional Features Added for Win32:
-
-Added DriveType directive to the Director's Include Option FileSet
-resource.  Allowed values are: fixed, removable, cdrom, and remote.  There
-is only an implementation for Windows because it is the only platform that
-has the concept of drives.
-Adds EnhancedWild directive to the Director's Include Option FileSet
-resource.  Allowed values are: yes and no.
-When EnhancedWild is enabled then the processing of the
-Wild, WildDir and WildFile is changed in the following ways.
-  Patterns conform to Posix
-      \ is not a special character in character classification []
-      To match a - it must be the first or last character
-      To match a ] it must be the first character
-      fnmatch option FNM_FILE_NAME is specified * doesn't match a / 
-      so it won't match multiple directory levels in a path
-Relative WildFile patterns (ones without a leading /) match
-against the filename portion.  This in combination with the
-FNM_FILE_NAME fnmatch() flag makes directives such as WildFile =
-abc*.def work as expected.
-Adds support for the shell's feature of brace expansion.
-
-Here is an example where braces allow 24 lines to be expressed in 5.
-
-# Exclude directories full of lots and lots of useless little files
-WildDir = "[A-Z]:/{Documents and
-Settings,{WINNT,Windows}/Profiles}/*/Cookies"
-WildDir = "[A-Z]:/{Documents and
-Settings,{WINNT,Windows}/Profiles}/*/Recent"
-WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local
-Settings,LOCALS~1}/History"
-WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local
-Settings,LOCALS~1}/Temp"
-WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local
-Settings,LOCALS~1}/Temporary Internet Files"
-
-
-
-Here are some hints if you want to play with the Windows Director and/or
-Storage daemon.
-Changer and Tape device names in Windows are Changer0, Changer1, etc and
-Tape0, Tape1, etc.  If there isn't a device driver loaded for the Changer
-then you need to use the address <Port>:<Bus>:<Target>:<Lun>.  Port is the
-SCSI Adapter Number, Bus is the Bus Number on the adapter (usually 0 since
-most adapters only have one bus), Target is the device's Target Device ID,
-Lun is the Logical Unit Number.
-You must specify DeviceType = tape in the Device resource in bacula-sd.conf
-since detection doesn't currently work.
+          Release Notes for Bacula 2.2.2 
+
+  Bacula code: Total files = 506 Total lines = 190,209 (*.h *.c *.in)
+  82 new files, 41,221 new lines of code, 208,380 lines of change from 2.0.3
+
+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 when you upgrade. There is
+no database upgrade needed from version 2.0.x to 2.2.0.
+
+Version 2.2.3 is a critical bug fix release to version 2.2.2
+- Fix bug #935, and possibly also bug #903 where files were not
+  restored. MediaId was not properly set in JobMedia record after 
+  a Volume change. This bug is known to affect all versions from 
+  2.0.0 on, and probably versions prior to that.  A detailed analysis
+  of the bug can be found at:
+    
+      http://www.bacula.org/downloads/bug-395.txt
+      
+- Add ./configure search in qwt-qt4 for qwt package
+- Apply Martin Simmons patch that should turn off the new API usage
+  when batch insert is turned off allowing building on older
+  PostgreSQLs.
+- Note, you need GTK >= 2.10 to be able to link the Tray Monitor 
+  program.
+
+Version 2.2.2 is a bug fix release to 2.2.1
+- Detect if new PosgreSQL batch insert API is present.
+- Correct incorrect mempool call causing Director crash.
+- Update spec files for 2.2.1 release
+
+Version 2.2.1 is mainly a minor bug fix release to version 2.2.0,
+  the main changes since 2.2.0 are:
+- Fixed bugs #921, 930, and 923.
+- More portable timezone offset in bsmtp thaks to Attila Fülöp.
+- Fix several bat issues.                           
+- Use GTK+ calls instead of egg files in tray-monitor.
+- Win32 service routines rewritten
+- Updated projects file
+Please see the ChangeLog for details.
+
+Notes on 2.2.0 release follow:
+
+Areas requiring caution or testing:
+- You must have the thread safe version of MySQL client libraries loaded
+  to build with MySQL enabled.
+- Volumes are pruned only when absolutely necessary -- this may cause
+  your database to grow compared to prior Bacula versions.
+- Solaris door and even port files are no longer restored (equivalent
+    to what we do with sockets).
+- SQLite is no longer supported for Solaris -- it fails too often with
+  bus errors.  SQLite3 should work on Solaris.
+- The default setting for SQLite3 is now 'PRAGMA synchronous=OFF'.
+  This makes it run 30 times faster, but increases the possiblity
+  of a corrupted database if your server shuts down unexpectedly.
+  The default behavior can be changed in src/version.h
+- Restore on Win32, and in particular on Vista is untested. Please
+  test before relying on it.  It should backup and restore reparse
+  points.
+- Win32 servers are untested, and very likely not to work.
+
+The major new features are:
+- Much faster insertion of attributes (somewhere around 10 times),
+  many thanks to Eric Bollengier and Marc Cousin. 
+- First release of bat (Bacula Administration Tool).  Note to build
+  bat you must explicitly enable it on the ./configure line, you
+  must have the Qt4 version 4.2 or later libraries loaded, the qwt
+  (Qt Graphics) package loaded, and qmake and the other Qt4 tools 
+  must be available. Most of the implementation was done by Dirk Bartley.
+- Red/Black restore in memory tree (500 times faster loading).
+- The Regex Where code to allow easier relocation of restored files 
+  thanks to Eric.
+- Socket level heartbeat for all connections (untested).
+- posix_fadvise() use in the FD to improve performance reduces
+  swapping due to opening/reading lots of files. Win32 equivalent
+  implemented.
+- Much improved Volume reservation code that should eliminate most
+  conflicts experienced in multiple drive autochangers.
+- Simpler locking in the SD in the reservation system.
+- Detection of file size/date change during backup if enabled.
+- New Recycle Pool feature -- thanks to Eric.
+- 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.
+- License is now GPL v2 without modifications, fix a few copyright
+  mistakes made when adding FSFE copyright notice.
+
+New ./configure options:
+- --enable-bwx-console    
+- --enable-bat
+- --with-qwt=
+- --with-db-name=
+- --with-db-user=
+- --enable-batch-insert
+
+New bconsole commands:
+- exec
+- memory
+- update recyclepool
+- .sql
+- .api
+- .pwd (in restore tree)
+- restoreclient (keyword)
+- backupclient  (keyword)
+- regexwhere    (keyword)
+- update jobid  (new command)
+- recyclepool   (keyword) 
+
+New directives:
+- Heartbeat Interval (bconsole.conf)
+- Heartbeat Interval (bacula-dir.conf in Director, Client, Storage)
+- TLS Allowed CN     (bacula-dir.conf in Client)
+- Regex Where        (bacula-dir.conf in Job)
+- Strip Prefix       (bacula-dir.conf in Job)
+- Add Prefix         (bacula-dir.conf in Job)
+- Add Suffex         (bacula-dir.conf in Job)
+- Recycle Pool       (bacula-dir.conf in Pool)
+- FailJobOnError     (bacula-dir.conf in RunScript)
+- CheckFileChanges   (bacula-dir.conf in FileSet)
+- StripPath          (bacula-dir.conf in FileSet)
+
+Other features or bug fixes:
+- Fixed bugs: 916, 910, 917, 914, 906, 907, 
+  842, 830, 893, 861, 888, 886, 807, 877, 872
+  885, 887, 864, 874, 882, 881, 863, 859, 
+  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.
+- Configure bat with --enable-bat. Define qwt libraries with
+  --with-qwt=<dir>. See Installation chapter of manual for details.
+- Create a depkgs-qt package that has both Qt4 and qwt, which are
+  needed to build bat. Most modern Linux systems will have both
+  these packages in the distro.
+- Storage overrides delete all previous storage definitions instead
+  of prepending.
+- One should be able to mount and unmount removable devices if the
+  Device resource has Removeable Media set and the mount and unmount
+  directives are defined.
+- ./configure will do a better job of searching for qwt libraries.
+- The Win32 version can no longer be shutdown from the tray monitor.
+  Use the command line or the Services panne.
+- Keep prune_volumes() from pruning the whole Scratch pool.
+- More debug output in status storage.
+- Correct moving a Scratch volume from pool to pool (some
+  critical columns were lost).
+- Different locking in reservations and despooling systems,
+  which means more micro-locking and less macro-locking, which
+  should give a lot more concurrency at the expense of slightly
+  (<0.1%) more overhead due to more locking/unlocking, but     
+  concurrent jobs should run much faster.
+- Additional drive reservation algorithm that should solve a lot of
+  the problems experienced with multiple drive autochangers.
+- Storage daemon status command enhanced to more clearly show Volume,
+  pool and media type when a job is waiting.
+- Made bsmtp work with more strict SMTP servers.
+- Detect doubly freed buffers in smartall.c
+- wx-console renamed to bwx-console (Fedora request)
+- gnome-console renamed to bgnome-console (Fedora request)
+- 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 an in use buffer dump.
+- Console name changed from *Console* to -Console- to accomodate Win32
+  filename restrictions.  
+- Corrected the 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.
+- Prefer 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).