]> git.sur5r.net Git - bacula/docs/blob - docs/home-page/news.txt
Update
[bacula/docs] / docs / home-page / news.txt
1 Kern;;;2007/19/11;;15:25
2 Bacula version 2.2.5 source tar files as well as the Win32
3 binaries are available in the Bacula release area of Source Forge.
4
5 This release is an important bug fix upgrade to version 2.2.4,
6 and we recommend that all users upgrade as soon as possible.
7
8 Despite the fact that the Release Notes are rather short, the bug
9 fixes represent quite a lot of work:
10
11 Version 2.2.5 is a major bug fix release to version 2.2.4
12 - It fixes the following bugs: #961, 962, 963, 969, 968, 960,
13   964, (possibly 935 and 903), 953, 953, 967, 966, 965, 954,
14   957, 908, 958, and 955.
15 - It also improves listing performance problems in bat pointed
16   out by Chris Howells.
17 ;;;
18 Kern;;;2007/9/29;;;20:30
19 I have found and fixed a serious data loss bug in Bacula.
20
21 This bug was very elusive and time consuming to track down.  It
22 turned out to be a race condition that can lose the last one or
23 two blocks of a Job, which can happen in rare cases only when
24 running multiple simultaneous jobs when a volume fills and one
25 Job finishes receiving the last data from the FD and at the same
26 time a second job detects the end of the Volume.  The bug was
27 introduced in version 2.0.0 and did not exist in version 1.38.x.
28 If the bug is triggered, the data is lost (not written to the
29 Volume), and it can occur for any backup job of any level under
30 the conditions noted above.
31
32 The bug is reported in the bugs database as bug #964, and just
33 this morning I found and tested a fix, which is attached as a patch
34 to the bug report.  The patch (2.2.4-lost-block.patch) is also
35 uploaded to the bacula-patches 2.2.x release area.  This bug may
36 also be part of the problems reported in bug #935 and possibly
37 #903.
38
39 Also in the bacula-patches 2.2.x area, you will find other
40 patches that fixes bugs #953, 966, 967, 965, 958, 908, and
41 955. Please refer to bugs.bacula.org for the details.
42
43 Though this bug quite serious (data loss), it should be rare.
44 However, we recommend everyone to apply the patch.
45 ;;;
46 Kern;;;2007/9/14;;;14:30 
47 Bacula version 2.2.4 Released 
48
49 This version of Bacula is a minor bug release to version 2.2.3.
50 It contains the following fixes:
51
52 - Possible fix for authorization problems bug #953.
53 - Possible fix for bug #908.
54 - Add waits to multiple exit detection code to try to force pid
55   file to always be deleted.
56 - Restore good dev.tar.gz to rescue set appropriate binary property.
57   This fixes bug #950.
58 - Fix seg fault in error exit of acquire_for_read after unsuccessfully
59   trying to switch drives by checking for blocking before unblocking.
60   Fixes bug #906.
61 - Cancel storage daemon in all cases where FD reports error. This
62   should fix virtually all cases of bug #920 and will ensure that Devices
63   are released as soon as possible.
64 - Fix error message that was clobbered when Dir tells SD it does not
65   have write permission on Volume.  This should fix a minor point
66   in bug #942, but not the main problem.
67 - Fix migration code to get correct Volume name with multiple volumes 
68   by skipping |.  Fixes bug #936.
69 - Implement patch supplied by Landon to fix bug #944 where using
70   TLS with bconsole uses 99+% of the CPU.
71 - Fix bug #946 about "bacula-dir -t" which doesn't works
72   as expected.
73 - Using "m" in bconsole will show messages as in prior versions
74   and not memory usage.
75
76 - Note, you need GTK >= 2.10 to be able to link the Tray Monitor
77   program.
78 ;;;
79 Kern;;;2007/9/9;;;14:30
80 I regret to announce that there is a rather serious bug in Bacula.
81
82 Bacula bug #935 reports that during a restore, a large number of files are 
83 missing and thus not restored.  This is really quite surprising because we 
84 have a fairly extensive regression test suite that explicitly tests for this 
85 kind of problem many times.
86
87 Despite our testing, there is indeed a bug in Bacula that has the following 
88 characteristics:
89
90 1. It happens only when multiple simultaneous Jobs are run (regardless of
91 whether or not data spooling is enabled), and happens only when the
92 Storage daemon is changing from one Volume to another  -- i.e. the
93 backups span multiple volumes, and it only happens for Jobs writing
94 to the same volume.
95
96 2. It has only been observed on disk based backup, but not on tape.
97
98 3. Under the right circumstances (timing), it could and probably does happen
99 on tape backups.
100
101 4. It seems to be timing dependent, and requires multiple clients to
102 reproduce, although under the right circumstances, it should be reproducible
103 with a single client doing multiple simultaneous backups.
104
105 5. Analysis indicates that it happens most often when the clients are slow
106 (e.g. doing Incremental backups).
107
108 6. It has been verified to exist in versions 2.0.x and 2.2.x.
109
110 7. It should also be in version 1.38, but could not be reproduced in testing,
111 perhaps due to timing considerations or the fact that the test FD daemons
112 were version 2.2.2.
113
114 8. The data is correctly stored on the Volume, but incorrect index (JobMedia)
115 records are stored in the database.  (the JobMedia record generated during
116 the Volume change contains the index of the new Volume rather than the
117 previous Volume).  This will be described in more detail below.
118
119 9. You can prevent the problem from occurring by either turning off multiple
120 simultaneous Jobs or by ensuring that while running multiple simultaneous
121 Jobs that those Jobs do not span Volumes.  E.g. you could manually mark
122 Volumes as full when they are sufficiently large.
123
124 10. If you are not running multiple simultaneous Jobs, you will not be
125 affected by this bug.
126
127 11. If you are running multiple simultaneous Jobs to tapes, I believe there is
128 a reasonable probability that this problem could show up when Jobs are split
129 across tapes.
130
131 12. If you are running multiple simultaneous Jobs to disks, I believe there is
132 a high probability that this problem will show up when Jobs are split across
133 disks Volumes.
134
135 13. The bug concerns only the Storage daemon so there is no need to update
136 the clients, though I do recommend updating the Director when installing
137 an updated Storage daemon.
138
139 I have uploaded patches to bug #935 (bugs.bacula.org) that will correct
140 version 2.2.0, 2.2.1, and 2.2.2.  The patch has been tested only on version
141 2.2.2 and passes all regression tests as well as the specific test that
142 reproduced the problem. 
143
144 The patch has now been confirmed to fix the problem reported, and Bacula
145 version 2.2.3 has been released to Source Forge.
146
147 For the technical details of the bug, please see: 
148
149   http://www.bacula.org/downloads/bug-935.txt
150
151 ;;;
152
153 Kern;;;2007/8/11;;;14:30
154
155 Bacula Version 2.2.0 has been released to Source Forge.         
156
157           Release Notes for Bacula 2.2.0 
158
159   Bacula code: Total files = 520 Total lines = 195,550 (*.h *.c *.in)
160   82 new files, 41,221 new lines of code, 208,380 lines of change from 2.0.3
161
162 This Director and Storage daemon must be upgraded at the same time,
163 but they should be compatible with all 2.0.x File daemons, unless you
164 use some of the new features that affect the FD.  In other words, you should
165 not have to upgrade all your File daemons when you upgrade. There is
166 no database upgrade needed from version 2.0.x to 2.2.0.
167
168 Areas requiring caution or testing:
169 - You must have the thread safe version of MySQL client libraries loaded
170   to build with MySQL enabled.
171 - Volumes are pruned only when absolutely necessary -- this may cause
172   your database to grow compared to prior Bacula versions.
173 - Solaris door and even port files are no longer restored (equivalent
174     to what we do with sockets).
175 - SQLite is no longer supported for Solaris -- it fails too often with
176   bus errors.  SQLite3 should work on Solaris.
177 - The default setting for SQLite3 is now 'PRAGMA synchronous=OFF'.
178   This makes it run 30 times faster, but increases the possiblity
179   of a corrupted database if your server shuts down unexpectedly.
180   The default behavior can be changed in src/version.h
181 - Restore on Win32, and in particular on Vista is untested. Please
182   test before relying on it.  It should backup and restore reparse
183   points.
184 - Win32 servers are untested, and very likely not to work.
185
186 The major new features are:
187 - Much faster insertion of attributes (somewhere around 10 times),
188   many thanks to Eric Bollengier and Marc Cousin. 
189 - First release of bat (Bacula Administration Tool).  Note to build
190   bat you must explicitly enable it on the ./configure line, you
191   must have the Qt4 version 4.2 or later libraries loaded, the qwt
192   (Qt Graphics) package loaded, and qmake and the other Qt4 tools 
193   must be available. Most of the implementation was done by Dirk Bartley.
194 - Red/Black restore in memory tree (500 times faster loading).
195 - The Regex Where code to allow easier relocation of restored files 
196   thanks to Eric.
197 - Socket level heartbeat for all connections (untested).
198 - posix_fadvise() use in the FD to improve performance reduces
199   swapping due to opening/reading lots of files. Win32 equivalent
200   implemented.
201 - Much improved Volume reservation code that should eliminate most
202   conflicts experienced in multiple drive autochangers.
203 - Simpler locking in the SD in the reservation system.
204 - Detection of file size/date change during backup if enabled.
205 - New Recycle Pool feature -- thanks to Eric.
206 - Efficient implementation of very large include/exclude lists.
207 - Volumes are no longer pruned during 'status dir'
208 - Pruning is now more efficient, and if a Volume is purged,
209   during pruning, it is immediately discovered.
210 - License is now GPL v2 without modifications, fix a few copyright
211   mistakes made when adding FSFE copyright notice.
212
213 New ./configure options:
214 - --enable-bwx-console    
215 - --enable-bat
216 - --with-qwt=
217 - --with-db-name=
218 - --with-db-user=
219 - --enable-batch-insert
220
221 New bconsole commands:
222 - exec
223 - memory
224 - update recyclepool
225 - .sql
226 - .api
227 - .pwd (in restore tree)
228 - restoreclient (keyword)
229 - backupclient  (keyword)
230 - regexwhere    (keyword)
231 - update jobid  (new command)
232 - recyclepool   (keyword) 
233
234 New directives:
235 - Heartbeat Interval (bconsole.conf)
236 - Heartbeat Interval (bacula-dir.conf in Director, Client, Storage)
237 - TLS Allowed CN     (bacula-dir.conf in Client)
238 - Regex Where        (bacula-dir.conf in Job)
239 - Strip Prefix       (bacula-dir.conf in Job)
240 - Add Prefix         (bacula-dir.conf in Job)
241 - Add Suffex         (bacula-dir.conf in Job)
242 - Recycle Pool       (bacula-dir.conf in Pool)
243 - FailJobOnError     (bacula-dir.conf in RunScript)
244 - CheckFileChanges   (bacula-dir.conf in FileSet)
245 - StripPath          (bacula-dir.conf in FileSet)
246
247 Other features or bug fixes:
248 - Fixed bugs: 916, 910, 917, 914, 906, 907, 
249   842, 830, 893, 861, 888, 886, 807, 877, 872
250   885, 887, 864, 874, 882, 881, 863, 859, 
251   856, 854, 845, 847, 846, 809, 772, 
252   822, 825, 824, 808, 802, 797, 798, 795, 789, 791, 
253   788, 780, 763, 782, 612, 767, 775, 621, 772, 764, 
254   766, 621, 761, 755, 750, 741, 747, 742, 744, and 743.
255 - Configure bat with --enable-bat. Define qwt libraries with
256   --with-qwt=<dir>. See Installation chapter of manual for details.
257 - Create a depkgs-qt package that has both Qt4 and qwt, which are
258   needed to build bat. Most modern Linux systems will have both
259   these packages in the distro.
260 - Storage overrides delete all previous storage definitions instead
261   of prepending.
262 - One should be able to mount and unmount removable devices if the
263   Device resource has Removeable Media set and the mount and unmount
264   directives are defined.
265 - ./configure will do a better job of searching for qwt libraries.
266 - The Win32 version can no longer be shutdown from the tray monitor.
267   Use the command line or the Services panne.
268 - Keep prune_volumes() from pruning the whole Scratch pool.
269 - More debug output in status storage.
270 - Correct moving a Scratch volume from pool to pool (some
271   critical columns were lost).
272 - Different locking in reservations and despooling systems,
273   which means more micro-locking and less macro-locking, which
274   should give a lot more concurrency at the expense of slightly
275   (<0.1%) more overhead due to more locking/unlocking, but     
276   concurrent jobs should run much faster.
277 - Additional drive reservation algorithm that should solve a lot of
278   the problems experienced with multiple drive autochangers.
279 - Storage daemon status command enhanced to more clearly show Volume,
280   pool and media type when a job is waiting.
281 - Made bsmtp work with more strict SMTP servers.
282 - Detect doubly freed buffers in smartall.c
283 - wx-console renamed to bwx-console (Fedora request)
284 - gnome-console renamed to bgnome-console (Fedora request)
285 - Migration preserves original job's FileSetId
286 - Spooling implemented for migration jobs.
287 - Config files can be read through a pipe, by specifying a leading |
288   in front of the configuration path/filename.
289 - New memory command (bconsole) that will print the current Director's
290   memory usage, and an in use buffer dump.
291 - Console name changed from *Console* to -Console- to accomodate Win32
292   filename restrictions.  
293 - Corrected the Win32 ftruncate bug.
294 - Additional version information added to Job reports.
295 - New -8 option for bsmtp to specify UTF-8 encoding type.
296 - bsmtp will no longer add < > to target (from, to, cc) if there
297   is already a < in the target.
298 - Prefer Mounted Volumes extended to mean a volume that is being
299   mounted by another job.
300 - Runscript timing set to same as version 1.38.11
301 - New TLS Allowed CN directive(s) permitted.
302 - New bconsole 'exec' command to run external script/command.
303 - Turn on FreeBSD/OpenBSD code to set EOT model on tape.
304 - Drop from root done before database is opened.
305 - Database user and name can be configured with:
306   --with-db-name=name --with-db-user=user
307 - Turn on wait_for_drive in mtx-changer script.
308 - Rework how bar codes are handled in mtx-changer script.
309   This appears to have been an unreported bug.
310 - Updated nagios plugin supplied by Christian Masopust
311 - Better restricted console ACL checking.
312 - New Client Connect Wait directive in Storage daemon so that
313   users can configure how long SD waits for FD connection.
314 - Bacula will no longer permit pruning of the currently running
315   job (note, if other jobs are running, they may be pruned).
316 - Sockets are no longer restored.
317 - dbcheck works in 300K chunks so will typically run faster.
318 - Include/Exclude lists can now be efficiently handled for quite
319   large sizes -- tens of thousands of entries.
320 - Several memory leaks in migration and database usage were fixed.
321 - New console keyword restoreclient, which specifies the client to
322   which the restore will be sent. The client keyword specifies 
323   the backup client. The restoreclient keyword is optional if it is
324   not specified, the backup client will also be the restore client.
325 - The disk file size is now checked to ensure that it agrees with the
326   catalog value before Bacula will append to the disk (same as tape
327   and DVD).
328
329 ;;;
330
331 Kern;;;2007/3/6;;;14:30
332
333 Bacula Version 2.0.3 has been released to Source Forge.
334 This is a bug fix release to version 2.0.2.  If you are upgrading from
335 a version older than 2.0.0, please be sure to read the important notes
336 below.
337
338 Also, please check the patches directory in the current SVN or the
339 patches release section on Source Forge for important bug fixes to   
340 this version.
341
342 5Mar07
343 kes  File migrate bug with Pool Occupancy using mediaid instead
344      of jobids.  Fixes bug #795.
345 kes  Fix orphaned buffers in filed backup and verify due to
346      crypto buffers not freed during errors.  Fixes bug #789.
347 04Mar07
348 kes  Add smartctl call to bacula-sd.conf as an example of getting
349      tape alert info.
350 02Mar07
351 kes  Add Client Connect Wait to Storage daemon to permit users to
352      modify the time the SD waits for a FD connection.
353 28Feb07 
354 kes  Apply Command ACL filter to JobId list in restore command.
355 kes  Correct typeo in var.c patch.
356 27Feb07
357 kes  Don't let Bacula prune File or Job records for the current Job.
358 kes  Fix variable substitution pad + inc bug reported (with patch)
359      in bug #791.
360 26Feb07
361 kes  Correct SQLite log table index as reported by Luca Berra.
362 24Feb07
363 ebl  Fix FIFO stuff, bacula tries to rewind the FIFO... Thanks to Andreas
364 22Feb07
365 kes  Fix a few places in lib/message.c where the open fd may
366      not be zeroed.
367 21Feb07
368 kes  Add LANG=C to autoconf/randpass so it works with languages other
369      than English.  Fixes bug #788.
370 20Feb07
371 ebl  Revert ClientRunBeforeJob as it was in 1.38.x
372      This fixes bug #780
373      You will not be able to generate Include/Exclude list any more.
374      If you want to use this, you can apply 
375      trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch
376 19Feb07
377 kes  Restore of sockets created false error messages because Bacula
378      no longer restores sockets, but the code was still trying to
379      set the attributes on a non-existent file. Reported by a user.
380 16Feb07
381 kes  Fix encryption deblocking bug, which caused some restored files
382      to be truncated. This fixes bug #763. This is a CRITICAL bug fix.
383 kes  Add FD event sequence order prepared by Eric -- for RunScripts.
384 kes  Fix 12am/pm bug as reported in bug #782.
385 15Feb07
386 kes  Add quick disconnect FD code from 2.1.4 to 2.0.3.  This code
387      causes the SD to release the FD as soon as the FD has sent
388      all the data to the SD. After that the SD will do any final
389      despooling (data and attributes) that are necessary. This
390      allows laptops to disconnect much quicker from the network 
391      after a backup.
392 13Feb07
393 kes  Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1.
394 11Feb07
395 kes  Optimize the use of the database a bit in the Status dir command.
396      Only open it when needed, ensure that if any previous database
397      was opened, it is closed.
398 10Feb07
399 kes  Modify dbcheck to handle orphaned JobMedia, Path, Filename,
400      and File records in 300K chunks to be more efficient. This
401      idea came from Juan Luis Frances (if I remember right).
402 09Feb07
403 kes  Update projects list.
404 08Feb07
405 kes  Fix dird/ua_cmds.c so that a cancel command checks if the
406      console is authorized to cancel the job.  This fixes bug 
407      #767.
408 kes  Modify SD so that the VolCatJobs medium record is updated
409      at the beginning of a Job rather than the end.  This
410      fixes bug #775 where exceeding MaxVolJobs caused jobs
411      to fail.
412 kes  Added a mutex around getting and setting Volume information
413      so that multiple simultaneous jobs will single thread.
414 07Feb07
415      Switch to using Subversion
416 kes  Remove src/pygtk-console/ from configure
417 06Feb07
418 kes  Delete src/lib/btree.c from win32 build, then add rblist.c
419      plus the entrypoints.
420 kes  Apply patch supplied that corrects debug print
421      in canceling jobs for max run time.  Supplied as
422      part of bug #621, which was previously fixed.
423 05Feb07
424 kes  Test on job_canceled() and sd_msg_thread_done inside
425      loop starting the message thread to avoid a race condition.
426      Fixes bug #771.
427 kes  Remove rl_catch_signal from console.c as it conflicted
428      with the header definition. Fixes bug #765.
429 ebl  Fixes bug #766 about RunsOnClient = Yes (case sensitive)
430 04Feb07
431 kes  Clarify some stored/acquire messages to indicate if the
432      problem is with read or append.
433 02Feb07
434 kes  Fix memory leak with storage ids in cats/sql_get.c
435 kes  Terminate watchdog earlier to avoid reference to released
436      memory -- reported by Jason Austin.
437 kes  Move closing the database from jobq.c to the director daemon
438      termination routine. This fixes memory leaks for shadow jobs
439      (i.e. migration jobs).
440 kes  Free up the unique jobid chain items in migrate.c.  This fixes
441      a memory leak problem.
442 kes  Convert some ugly looking for statements to use foreach_alist
443      in findlib/find.c.  This will facilitate converting the structures
444      to use dlist (for large include/exclude lists).
445 kes  Fix a bug in the btree.c and btree.h routines, then rename them
446      rblist and add them to be built in src/lib.  Include some new
447      methods written by Rudolf Cejka that make the code more readable
448      (hides some of the ugly casting).
449 26Jan07 (back port)
450 kes  Implement item #12 on project list -- quick release of FD by
451      the SD. This is noted in more detail above.
452
453 ;;;
454
455 Kern;;;2007/1/28;;;14:30
456
457 Bacula Version 2.0.2 released:
458 28Jan08
459 kes  Fix maxruntime bug #621.
460 27Jan07
461 kes  Get current main CVS .specs for RedHat, SuSE, Mandrake.
462 26Jan07
463 ebl  Implement the include JobID in spool file name project.
464 kes  Reorder projects file in order determined by Jan 2007 vote.
465 kes  Fix open of SQLite3 db where user does not have write permission
466      so that DIR does not crash. Fixes bug #761.
467 25Jan07
468 kes  Change 'Device not configured to autolabel' from INFO
469      to WARNING.
470 kes  Fix jobq.c to restart failed jobs when Reschedule Times = 0
471      which should restart an indefinite # of times.
472 kes  Fix configure --help to print --with-mysql[=DIR]. Same for
473      other DIR specifications.
474 23Jan07
475 rn   Fix msvc build problems. Fix bacula.dll exports for msvc build.
476      Fix path quoting in SQLite scripts.
477      Fix problems with SHGetFolderPath.
478 19Jan07
479 kes  Create patches/2.0.1-restart.patch. Fixes bug #755.
480 18Jan07
481 kes  Fix Job restart on error bug that promotes an Inc to a Full
482      backup.  This should fix bug #755.
483 kes  Add qt-console and first cut of code.
484
485 ;;;
486
487 Kern;;;2007/1/13;;;14:30
488
489 Bacula Version 2.0.1 has been released to Source Forge.
490 This is bug fix update to version 2.0.0 and contains
491 the following fixes:
492
493 -    Fix Bacula->Documentation link on Win32 to point to index.html
494      instead of bacula.html. Fixed bug #750.
495 -    Return JobId in db_get_job_record() when JobId==0. This should
496      fix bug #741.
497 -    Do not release source pointers when restarting a failed job.
498 -    Add dynamic dll entry point for SHGetFolderPath to Win32 code.
499      This *should* fix bug #747.
500 -    Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix
501      bug #742.
502 -    Modify USTORE constructor to set an empty store_source string, 
503      and don't copy the store_source string in a cancel.  Hopefully
504      this will fix Arno's seg fault, bug #744.
505 -    Add back code to disable conio in configure. Fixes bug #743.
506 -    Correct the Options scanner in the FD to correctly handle  
507      SHA1 option, which was eating the next option.  Reported by    
508      Sebastien Guilbaud.
509 -    Add code to indicate when the SD is spooling, spool wait, and 
510      despooling as requested by Alan Brown.
511
512 ;;;
513
514 Kern;;;2007/1/4;;;14:30
515
516 Bacula Version 2.0.0 has been released to Source Forge.
517
518 There is an English Press Kit, written by Dan Langille at:
519    
520    http://www.bacula.org/about/press/presskit200.html.en
521
522 and a German version, translated by Arno Lehmann at:
523
524    http://www.bacula.org/about/press/presskit200.html.de
525
526 ;;;
527    
528 Kern;;;2007/1/4;;;14:31
529
530           Release Notes for Bacula 2.0.0
531
532   Bacula code: Total files = 438 Total lines = 154,329 (*.h *.c *.in)
533
534 ==== IMPORTANT Catalog update required =====
535 - The database format has been updated from what was used in    
536   Bacula 1.38.x.  You must manually update your database before 
537   running Bacula 1.39.x or higher.  If you are using Bacula supplied
538   RPMs this is not necessary as the RPM does it automatically.
539   Please backup your previous version of the database before
540   running the update.  The update script will be automatically
541   installed in your scripts directory, or can also be found in
542   <bacula-source>/src/cats.  It is called:
543
544      ./update_bacula_tables
545
546   It is necessary to run it only once the first time you move to
547   a 2.0.0.  Upgrading the Bacula version thereafter does not
548   require updating the database again.  Depending on the size of
549   your database the script make take a bit of time, to run, but
550   in general, it should be very fast.
551
552 ==== IMPORTANT new Win32 install procedure =====
553   For Win32 migrations from versions prior to 1.39.0 nothing special
554   needs to be done to upgrade.  Everything should be taken care of
555   automatically.  The only thing not done is to delete the old C:\bacula
556   directory mostly out of paranoia.
557
558 ==== IMPORTANT miscellaneous ====
559 - The Gnome console program (gconsole) no longer functions as it
560   should.More importantly, in restore mode, the restore tree is
561   no longer shown in the left pane.  I suspect this is due to
562   incompatible changes in the GTK+ API, and hence have given up
563   on gnome and gtk+, as this has already happened several times
564   previously.  At some point there will be a new GUI console.
565 - The bacula-dir.conf directive Accept Any Volume has been
566   removed because it was never implemented. You must delete all
567   occurrence of this directive for the Director to run. The Storage
568   daemon will automatically accept any valid Volume that you mount.
569 - The --mandir ./configure option now points to the top level man
570   directory.  The man files will be installed under mandir/man8 and
571   mandir/man1 as appropriate.
572 - You *should* be able to use 1.38.x FDs with version 2.0.0 Director
573   and SD providing you do not use any of the new features (runscript,   
574   data encryption). It seems to work here, but we do not guarantee it.
575 - Your Director and SD must be simultaneously upgraded.
576 - The restore command no longer uses the MediaType as the primary method
577   of finding a suitable Storage device. Normally it will select the last
578   device used to write a Volume. If no storage device is defined, it
579   will use the old algorithm which selects the first Storage resource  
580   with the correct MediaType.
581 - The MD5/SHA1 hash codes kept in the database are now kept in a binary
582   format compatible with the rest of the world. If you are running verify 
583   jobs, you *must* do an InitCatalog or all files will show an MD5   
584   difference.  Also, authentication uses the new algorithm by
585   default, but *should* accept connections from older components (FD) using
586   the old non-compatible algorithm. This has been tested, but more
587   more testing is still needed.  
588 - A stock SuSE 10.1 kernel may crash when Bacula runs and accesses
589   the tape drive. Workaround, load the SuSE 10.1 version 2.6.16.21-0.25
590   kernel or later. The SuSE 10.2 Alpha 5 or later kernel also works.
591   This problem may also be present in certain Fedora FC5 kernels.
592 - If you have been using the data encryption feature of 1.39.x, please
593   be aware that certain combinations of encryption and other options
594   with version 1.39.0 through 1.39.26 created Volume data that cannot
595   be restored. We strongly recommend that anyone using encryption 
596   carefully review his/her backups and at a minium do a Full backup
597   with 1.39.28 of all encrypted data.  Robert Nelson has identified 
598   and fixed it as follows:
599      As of 1.39.27:
600         No filters = Works fine
601         Sparse = Works fine
602         Compression = Works fine
603         Encryption = Works fine
604         Sparse + Compression = Works fine
605
606         Sparse + Encryption = Restore broken
607         Sparse + Compression + Encryption = Restore broken
608         Compression + Encryption = Restore broken
609
610      As of 1.39.28:
611         Most combinations work, but some encrypted files are
612         not properly restored.
613
614      As of 1.39.30:
615         All combinations work fine except Sparse+Encryption.
616
617   Bottom line, if you are using data encryption, please test restoring
618   data to be sure it all works correctly.
619 - The current Volume format written by 1.39.22 is different from
620   the format written by previous versions. The two formats
621   are not compatible. Thus any DVDs written prior to 1.39.22 will
622   be unreadable by version 1.39.22.
623 - If you previously run a Bacula version prior to 1.39.30, the JobMedia
624   data may not be correct for disk Volumes. This can cause incorrect
625   seeking in versions after 1.39.30. If you experience what appears to
626   be data I/O or integrity errors during restores, please add the
627   following directive to your disk DEVICE resource in the Storage
628   daemon conf file:
629
630     Block Positioning = no
631
632   This will turn off all seek requests during restores and avoid
633   this problem.
634 - VSS for Windows clients is now enabled by default.
635 - Do not unload autochanger when doing "update slots"
636 - Implement mount command for autochanger, see manual.
637
638 New Features in 2.0.0:
639 - Turn on disk seek code for restores.
640 - There is a partial but reasonable translation of the Bacula
641   messages for French.  To install it, first configure and build
642   Bacula, then as root run:
643
644     cd <bacula-source>/po
645     make install
646
647   If you have your locale set properly you will get the translated
648   messages.
649 - Bacula now support Migration jobs that are documented in a new
650   Migration chapter in the manual
651   http://www.bacula.org/dev-manual/Migration.html
652 - Data encryption is now implemented and is documented in
653   a new chapter of the manual at:
654   http://www.bacula.org/dev-manual/Bacula_Data_Encryption.html
655 - Additional support for removable devices.  See the 
656   Requires Mount, Mount Point, Mount Command, and Unmount
657   Commands in the Storage daemon configuration chapter:
658   http://www.bacula.org/dev-manual/Storage_Daemon_Configuratio.html
659   Also see the Edit Codes for Mount and Unmount Directives in the
660   same chapter.
661 - Switch the Win32 build from using Microsoft C++ to using mingw32
662   cross-compiling.  The initial work was done by Howard Thomson,
663   then tweaked by me.  Robert Nelson then totally reworked the
664   cross-compiling code so that it not only cross-compiles, but
665   also compiles on Visual Studio, and at the same time, he added
666   all the current Unix features to the FD, such as selection on
667   drives, encryption support, building *all* the tools, ...
668 - The Director and Storage daemon have now been ported to Win32.
669   This code is working but should still be tested carefully
670   before putting into production.
671 - Bacula restore and bextract can now extract non-portable Win32 data to
672   any client (including Unix/Linux clients). Of course, in doing so,
673   the Microsoft specific permissions and ACLs will be lost.  Thanks
674   to Thorsten Engel for this code.
675 - The 260 character limitation for Win32 paths name lengths is now 
676   eliminated thanks to Thorsten Engel. However, if you are using
677   Volume Shadow Copy, please be careful to specify all the paths
678   in the bacula-fd.conf file using a full path notation including
679   the drive letter.
680 - Eric Bollengier wrote new RunScript directives that includes
681   the old RunBefore/AfterJob and ClientRunBefore/AfterJob features
682   plus a *lot* more, allowing you to control just about every aspect
683   of running scripts.  See the manual for detailed documentation.
684   http://www.bacula.org/dev-manual/Configuring_Director.html#5227
685 - SunOS ACLs should now work thanks to a patch from David Duchscher.
686 - Apply days keyword patch from Alexander.Bergolth at wu-wien.ac.at
687   If this patch is applied, the number of days can be specified with
688   "list nextvol days=xx"
689   or
690   "status dir days=xx"
691   This can be used to preview the next scheduled job (and the
692   next tape to be used) on Fridays if there are no scheduled jobs during
693   the weekend.
694 - From Eric Bollengier. One can now using the bconsole wait command do:
695    wait  (wait for all jobs to stop)
696    wait jobid=nn
697    wait jobuid=unique id
698    wait job=job-name
699 - Volumes can now be set to Enable, Disable, or Archive. If they
700   are not enabled, Volumes will not be mounted.             
701   Implement update volume enable=(on|off|true|false|archived|0|1|2)
702 - Add Catalog message destination in Messages resource that puts the
703   job report in the Log database table.
704 - Writing/reading DVD Volumes is much more stable -- to the point
705   of being useful. Thanks to Richard Mortimer.
706 - Add enable/disable job=<job-name>.  This command prevents
707   the specified job from being scheduled. Even when disabled,
708   the job can be manually started from the console.
709 - The database Id records should be 32/64 bit independent now. 64 bits
710   can be enabled by changing one define and changing the appropriate
711   table variable. Normally, you need 64 bits only for FileId.
712 - Relative path specifications (i.e. ../xxx) are now permitted in
713   the restore cd command.
714 - When running multiple simultaneous jobs, most jobs that use spooling
715   will now finish faster due to a mutex optimization made by Eric
716   Bollengier.
717 - Conf files containing UTF-8 marker at the head of the file as well as
718   conf files containing Window cr/lf and Mac cr line termination characters 
719   are now accepted thanks to Robert Nelson.
720 - Windows tray status windows are scrollable and resizable.
721 - Win32 external script execution is much more flexible -- handles
722   spaces in names better, ...
723 - Lots of DVD fixes -- writing DVDs is now reported to work.
724 - Fix opening of database in a restricted console to respect     
725   any Catalog ACL.
726 - Much better automatic handling of multiple database catalogs in
727   the restore command.
728 - Permit multiple console/director resources in bconsole.conf.
729   patch from Carsten Paeth calle@calle.in-berlin.de
730 - Character substitution in Job/JobDefs WriteBootStrap.
731   from Eric Bollengier.
732 - Apply patch supplied in bug #656 to pass priority field
733   in the run dialog to the Director in gnome console.
734 - Add support of encrypted data stream to bscan from Eric.
735   display data_len instead of data content (may be binary).
736 - Add Enabled=xxx on update slots command.
737 - Add host:port to connect failure messages to FD and SD from Dir/
738 - Add WhereACL to console ACL list.  If nothing is specified, only
739   the default is permitted for restore. Otherwise, *all* allows any
740   path, or you can specify permitted paths. This should allow control
741   over where users can restore files. This is untested.
742 - Install man pages with 'make install'.
743 - Add Media.Enabled flag to client backups for dotcmds.c
744 - Enforce Media.Enabled=1 for a current restore to work
745 - Require restore case 3 to have sqlquery permission to work.
746 - Add -n option to bconsole to turn off conio -- used in bweb.
747 - The bytes field in the terminated jobs part of the status
748   command now reports in KB, MB, ... units.
749 - When not descending into a directory, print the File= name that
750   triggered it -- makes why not descending a bit clearer
751 - Do not unload autochanger when doing "update slots"
752 - Implement mount command for autochanger
753 - Fix bug #462 incorrect error message printed when client script called
754   from File= was not found.
755 - Fix bug #558 (waiting for feedback) where Bacula needs too much time to
756   do a rewind on Solaris when no tape is in the drive (Solaris does not
757   have the detailed errno found on Linux).  Added Solaris specific code.
758   Note, this may apply to other OSes as well.
759 - The examples directory has a new bacula_mail_summary.sh file that
760   creates a single email summary of any number of jobs. Submitted by
761   Andrew J. Millar.
762 - Add nagios plugin to the examples directory. Submitted by
763   Christian Masopust.
764 - Modify most restore error messages to be queued so that they
765   appear at the end of the job rather than mixed with the restore
766   listing where they could be "lost".
767 - Apply patch supplied by user (slightly modified) to fix
768   correct detection of holes in block devices and FIFOs.
769   Bug # 506.
770 - Added a report.pl program to the examples directory from Jonas Bjorklund.
771 - Add two new queries to query.sql provided by Arno. One
772   list volumes known to the Storage device, and the other
773   lists volumes possibly needing replacement (error, ...).
774 - Implement new code for changing userid and group at startup. This
775   should get Bacula into the correct groups.
776 - Implement support for removable filesystems -- device type directive
777   and mount, unmount directives.
778 - Transfer rates are now presented in a more readable format thanks
779   to a user submission.
780 - SD is now aware of what volumes are mounted. More information is printed
781   in the Status report. You must take much more care now to unmount
782   devices prior to removing tapes that Bacula has open or prior to
783   changing a magazine. Don't forget to do a mount afterwards or the
784   device will be blocked.
785 - The Pool Maximum Volumes directive is now respected in all places.
786 - A Storage device can now be specified in a Pool resource. It will override
787   all other Storage specifications.
788 - Most but not all directives accept true/false in place of yes/no.
789 - A patch from Karl Hakimian that reads JobIds, FileIndexes
790   from a database table for restore.
791 - There are a number of new tables. Some such as the Location table are
792   designed for user use in doing Volume Management software.
793 - Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to
794   accept time qualifiers.
795 - Implement jobuid to replace old usage of job in keywords as
796   suggested by Eric Bollengier.
797 - Implement write variables for Python to set Priority (anytime), and
798   Job Level, only during JobInit event.
799 - Use the keyword ujobid to mean the unique job id; job or jobname
800   to mean the Job name given on the Name directive, and jobid to
801   be the numeric (non-unique) job id.
802 - Allow the SD to use multiple drives during a backup/restore (only
803   one at a time).
804 - Integrate addition of line count limitation to bsmtp -l from
805   Sebastian Stark <stark at tuebingen.mpg.de>
806 - Split the bacula start/start script into four files:
807    bacula         -- starts and stops calling other scripts
808    bacula-ctl-dir -- starts/stops the director
809    bacula-ctl-fd  -- starts/stops the File daemon
810    bacula-ctl-sd  -- starts/stops the Storage daemon
811 - Remove automatic case folding on Windows FDs. You must
812   explicitly use the 'Ignore Case = yes' option.
813 - Implement wild program in tools directory for testing
814   wild-cards. Almost identical to the regex program.
815 - Use the new bregex.c to implement Regex expressions on Win32.
816 - Apply patch from Christopher Hull
817   - Allow multiple connections to database with different
818     parameters.
819   - Invalidate the scheduler when doing a reload. Fixes seg
820     fault, but still 60 second window.
821   - Additional info in Reschedule message.
822   - Use set_jcr_job_status() everywhere to prevent loss of
823     cancel, error.
824   - Display peer IP in FD if error from connecting DIR.
825   - Don't increment file count for DIRBEGIN.
826   - Replace illegal characters in Win32 filename by _.
827   - Add SE_CREATE_PERMANENT_NAME privilege in Win32.
828   - Hash hard link filenames rather than linked list (performance).
829   - Fix for security failure in chdir on Win32.
830   - Add CreateDirectoryA/W win32 API entry points.
831 - programs to duplicate Bacula's base64 algorithm using standard
832   routines. This fixes bugs #296, and 565. Patch submitted by
833   author of bug #565.
834 - Fixes to reloading the Dir conf file from Eric Bollengier and Christopher
835   Hull.
836 - Modify LICENSE to correct some problems pointed out by Debian.
837 - Apply a patch submitted by cesarb in bug #606 to implement O_NOATIME support.
838     O_NOATIME is a open() flag which makes it possible to read a file without
839     updating the inode atime (and also without the inode ctime update which
840     happens if you try to set the atime back to its previous value). It also
841     prevents a race condition when two programs are reading the same file, but
842     only one does not want to change the atime. It's most useful for backup
843     programs and file integrity checkers (and bacula can fit on both
844     categories).                                                    
845   You enable it in the Bacula FileSet Options resource by setting:
846      noatime = yes
847   The effect of this option is similar to the keepatime option except
848   it is more efficient and avoids modifying ctime.
849 - Implement a pile of new man pages contributed by Jose Tallon.
850 - Modify the database format for handling Migration jobs:
851    Add PriorJobId, RealEndTime to Job table
852    Delete MAC table
853    Remove Stripe from JobMedia record (not used, wasting space)
854    Add ScratchPoolId, RecyclePoolId, Enabled to Media record
855    Add Cost to Location table.
856    Enabled to Media table and Location table.
857 - Security: harden authentication failure in FD by single threading errors
858   and forcing a 6 second wait.
859 - If using GCC (actually g++) add the following compiler flags
860   -fno-strict-aliasing -fno-exceptions -fno-rtti
861 - Turn on new bsnprintf() code.  The reason for this code is to
862   eliminate the security problems associated with using the
863   system libraries print routines.
864 - Implement job report that indicates where Storage and Pool
865   came from -- with overrides and Pool storage and NextPool,
866   it is all very complicated.
867 - Add more detail (Storage, Device) to list of volumes printed
868   for restore.
869 - Add new VOLMGMT message class. No messages are yet sent with this 
870   class.
871 - Improved Bacula rescue procedures -- see the Disaster Recovery
872   chapter of the manual
873 - Add spooling/despooling info in status output of SD.
874 - Add Comment field to llist of a volume.
875 - Allow true/false in many but not all yes/no directives.
876 - The Bacula source code is now copyrighted by the Free Software 
877   Foundation Europe. The Developer's Guide documents the new procedures,
878   and the LICENSE file has been updated.
879 - Apply Jaime Ventura's patch that implements the Messages resource
880   Mail On Success directive.
881 - The Client returns its Version string, which is printed in the Job
882   report.
883 - The Client returns whether or not VSS and Encryption are used, which
884   are printed in the Job report.
885
886 Additional Features Added for Win32:
887 - Added DriveType directive to the Director's Include Option FileSet
888   resource.  Allowed values are: fixed, removable, cdrom, and remote.  There
889   is only an implementation for Windows because it is the only platform that
890   has the concept of drives.
891  
892 - Adds EnhancedWild directive to the Director's Include Option FileSet
893   resource.  Allowed values are: yes and no.
894  
895   When EnhancedWild is enabled then the processing of the
896   Wild, WildDir and WildFile is changed in the following ways.
897  
898   Patterns conform to Posix
899       \ is not a special character in character classification []
900       To match a - it must be the first or last character
901       To match a ] it must be the first character
902  
903       fnmatch option FNM_FILE_NAME is specified * doesn't match a / 
904       so it won't match multiple directory levels in a path
905  
906 - Relative WildFile patterns (ones without a leading /) match
907   against the filename portion.  This in combination with the
908   FNM_FILE_NAME fnmatch() flag makes directives such as WildFile =
909   abc*.def work as expected.
910  
911 - Adds support for the shell's feature of brace expansion.
912
913   Here is an example where braces allow 24 lines to be expressed in 5.
914
915   # Exclude directories full of lots and lots of useless little files
916   WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/Cookies"
917   WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/Recent"
918   WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/History"
919   WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/Temp"
920   WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/Temporary Internet Files"
921
922 ;;;