]> git.sur5r.net Git - bacula/bacula/blob - bacula/ReleaseNotes
Update ReleaseNotes
[bacula/bacula] / bacula / ReleaseNotes
1
2                Release Notes for Bacula 5.2.4
3
4   Bacula code: Total files = 1,110 Total lines = 231,439 (Using SLOCCount)
5
6 General:
7 --------
8 The 5.2.3 version is an bug fix release.
9
10 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
11 If you are upgrading directly from 5.0.3 to this version, please see the
12 important notices below for version 5.2.2, particularly
13 the database upgrade and the difference in packaging the
14 SQL shared libraries.
15 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16
17 Compatibility:
18 --------------
19  As always, both the Director and Storage daemon must be upgraded at
20  the same time.
21
22  Older 5.0.x and 3.0.x File Daemons are compatible with the 5.2.3
23  Director and Storage daemons. There should be no need to upgrade older File
24  Daemons.
25
26 Most important changes since 5.2.3:
27 - Fix LZO detection so that it correctly detects presense of header
28   files.
29 - Switch the way we handle shared object versioning.
30 - Backport Enterprise spec files to platforms/rpms
31 - Switch to using Qt 4.7.4 (you must download new 
32   depkgs-qt-24Dec11.tar.gz
33 - Update depkgs to depkgs-24Dec11.tar.gz
34 - Enhancements to File daemon and Storage daemon plugins
35 - Compiler warning cleanups
36 - xattr fixes
37
38 Changes since 5.2.3:
39
40 17Jan12
41  - Definitive fix for MySQL MaxValue problem bug #1810
42  - Initialize delta_seq to -1 because 0 means that we have already a version
43  - Adapt bfileview for bvfs tables
44  - Set job status to running when restore job really starts
45  - Remove ifdeffing that turned off JS_Warning status -- must have been missed 
46   test code
47  - Add support for soname setting in libtool.
48  - Fix bug #1815
49  - Fix systemd pid files.
50  - Limit migration/copy jobs to starting 100 at a time
51  - Avoid conflict with PAGE_SIZE define
52  - Send previous Job name during Incremental/Differential to the FD
53  - Fix bug #1811 Filed fails to backup more then one xattr.
54  - system.posix_acl_default is also an acl stored as xattr
55  - Fix bug #1807
56  - Add configure for new redhat spec files
57  - Backport Enterprise spec files
58  - Fix bad memset() reported by clang
59  - Test new plugin function in bpipe and test plugin
60  - Try to fix openssl problem with signal
61  - Add BSOCK::set_killable()
62  - Set directory attributes when using Replace=Never when Bacula creates them
63  - Use RestoreObject type in Catalog
64  - Add new features in plugin
65  - Add helper for ini files
66  - Implement run accurate=yes/no
67  - Add .bvfs_clear_cache
68  - Add Accurate and MaxRunSchedTime in Schedule resource
69  - Fix bug #1802 configure code to detect LZO is broken
70  - Fix bug #1806 failure to save second and more xattr.
71  - Add second xattr to show bug 1806
72  - Fix seg fault in plugin event loop
73  - Fix #3210 about slow restore with bvfs
74
75 Bugs fixed/closed since last release:
76 1802 1806 1807 1810 1811 1815 3210
77
78
79 ==============================================================
80
81 General:
82 --------
83 The 5.2.3 version is an bug fix release.
84
85 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
86 If you are upgrading directly from 5.0.3 to this version, please see the
87 important notices below for version 5.2.2, particularly
88 the database upgrade and the difference in packaging the
89 SQL shared libraries.
90 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
91
92 Compatibility:
93 --------------
94  As always, both the Director and Storage daemon must be upgraded at
95  the same time.
96
97  Older 5.0.x and 3.0.x File Daemons are compatible with the 5.2.3
98  Director and Storage daemons. There should be no need to upgrade older File
99  Daemons.
100
101 Changes since 5.2.2:
102
103  - Revert patch from Ben to not compress man pages on Solaris fix #1801
104  - Fix bug #3322 don't poll when operator is labeling tapes
105  - bvfs: Fix mysql REGEXP operator
106  - Fix Mysql 5.5.18 symbol lookup
107  - fix utf8/iso8859 problems
108  - Fix #3419, update stats problem
109  - Fix cats_test to use the new method names.
110  - Update accurate code to use 1 byte instead of 3
111  - Fix segfault in accurate code
112  - Fix compilation warning on FreeBSD
113
114 Bugs fixed/closed since last release:
115 1801 3322 3419
116
117
118 ================================================================
119 Version 5.2.2
120
121 General:
122 --------
123 The 5.2.2 version is an important bug fix release. It contains also some
124 additions and performance improvements. 
125
126 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
127 If you are upgrading directly from 5.0.3 to this version, please see the
128 important notices below for version 5.2.1, particularly
129 the database upgrade and the difference in packaging the
130 SQL shared libraries.
131 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
132
133 Compatibility:
134 --------------
135  As always, both the Director and Storage daemon must be upgraded at
136  the same time.
137
138  Older 5.0.x and 3.0.x File Daemons are compatible with the 5.2.2
139  Director and Storage daemons. There should be no need to upgrade older File
140  Daemons.
141
142 Changes since 5.2.1:
143 -----------------
144  - Implement -t option for Bat
145  - Require correct Qt version 4.6.2 or later to build bat
146  - Get new lib/plugins.h
147  - Pull new SD plugin files from Master
148  - Fix script to set mode of cats scripts
149  - Add Systemd configure options
150  - Split messages line by line before sending it to syslog() fix #3325
151  - Fix bvfs_restore on MySQL
152  - Fix #3308 where a SMTP problem can block the director
153  - Change locking scheme of the mountpoint cache.
154  - Enhance mountcache with rescan option after interval.
155  - Add %D option to edit_job_code, simplify callbacks on director side
156  - Move Zdeflate and Zinflate to seperate file.
157  - Put libraries in the correct order for non shared libs.
158  - Remove last traces of @SQL_BINDIR@ and @DB_TYPE@
159  - Fix bug #1774
160  - Move batch insert detection into db.m4
161  - bat: try to fix offset button problem when clicking too much on previous
162  - bvfs: Use single transaction for each job during update
163  - Add missing bwild & bregex man8 pages
164  - Fix compilation issue of wx-console #1778
165  - bvfs: fix filter for pattern= bvfs parameter
166  - Improve speed of BVFS with SQLite, Thanks to J.Starek
167  - bvfs: add clear_cache function
168  - bvfs: Handle windows drive when building path hierarchy
169
170 Closed Bugs Since 5.2.1
171 -----------------------
172 1774 1778 3308 3325
173
174
175 ================================================================
176
177 Version 5.2.1
178
179 The 5.2.1 version is a major release since the last version 5.0.3.
180 It includes well over 299,387 lines of changes made by 20 contributors,
181 lots of bug fixes (see below), 1,851 software commits,and a 
182 number of important new features:
183
184 Version 5.2.0 was short lived, because Marco (thanks) found
185 a number of last minute bugs. So the first official release of 5.2
186 is 5.2.1.
187
188 Compatibility:
189 --------------
190  As always, both the Director and Storage daemon must be upgraded at
191  the same time.
192
193  Older 5.0.x and 3.0.x File Daemons are compatible with the 5.2.1
194  Director and Storage daemons. There should be no need to upgrade older File
195  Daemons.
196
197 5.2.1 New Features:
198 -----------------
199 - LZO Compression
200 - New Tray Monitor
201 - Purge Migration Job
202 - Changes in Bvfs (Bacula Virtual FileSystem)
203 - Changes in the Pruning Algorithm
204 - Ability to Verify any specified Job
205 - Additions to RunScript variables
206 - Additions to the Plugin API
207 - ACL enhancements
208 - XATTR enhancements
209 - Class Based Database Backend Drivers
210 - Hash List Enhancements
211
212 Some of the above are described below; all the above are
213 described in more detail in the New Features chapter of the
214 manual.
215
216 Closed Bugs since 5.0.3:
217 ---------------------
218 1389 1444 1448 1466 1467 1468 1476 1481 1486 1488 1493 1494 1497 1499 1501
219 1502 1504 1509 1511 1513 1516 1524 1526 1527 1532 1536 1538 1541 1542 1549
220 1551 1553 1554 1558 1559 1560 1564 1567 1568 1569 1571 1574 1577 1581 1582
221 1584 1587 1594 1595 1600 1601 1602 1603 1604 1606 1608 1610 1612 1623 1624
222 1633 1643 1648 1655 1661 1664 1666 1669 1672 1675 1684 1685 1695 1696 1699
223 1700 1703 1735 1741 1749 1751 1761 1762 1764 1768 1770 1771 2710
224
225 Note on bug 1612 where Bacula does not save a checksum for hard links during
226 full backup, but expects one during accurate differential backups. You need
227 a Full backup with the 5.2.x code to have these checksums in the Catalog.
228 Doing Incr/Diff over a 5.0.x Full backup will still display lot of errors.
229
230
231
232 ================== Warning !!!!!! ==========================
233
234  The new pruning algorithm will not allow pruning of jobs that are essential to
235  restore since the last Full backup. This is, of course, correct and desirable,
236  but it is different from older Bacula versions that could inappropriately
237  prune jobs. Pruning of volumes is not affected.
238
239 Building Bat:
240 -------------
241 To build Bat, you need Qt4 version 4.6.2.  If you build with any other
242 version it is likely not to work.  If you do not have version 4.6.2, on
243 your system, you can download the Bacula depkgs_qt version 16Dec10.
244
245 Packaging the SQL backend:
246 --------------------------
247 The main Bacula Director code is independent of the SQL backend
248 in this version. This means that the Bacula Director can be packaged
249 by itself, then each of the different SQL backends supported can
250 be packaged separately.  It is possible to build all the DB backends
251 at the same time.
252
253 - configure can be run with multiple database configure options.
254    --with-sqlite3
255    --with-mysql
256    --with-postgresql
257
258 Order of testing for database is
259 - postgresql
260 - mysql
261 - sqlite3
262
263 Each configured backend generates a libbaccats-<backend_name>-<version>.so
264 A dummy catalog library is created named libbaccats-version.so
265
266 At configure time the first detected backend is used as the so called default
267 backend and at install time the dummy libbaccats-<version>.so is replaced with
268 the default backend type.
269
270 If you configure all three backends you get three backend libraries and the
271 postgresql gets installed as the default.  When you want to switch the default
272 you can copy one of the three backend libraries over the
273 libbaccats-<version>.so e.g.
274
275 cp libbaccats-postgresql-<version>.so libbaccats-<version>.so
276
277 And update the default backend in the following files:
278
279 create_bacula_database
280 drop_bacula_database
281 drop_bacula_tables
282 grant_bacula_privileges
283 make_bacula_tables
284 make_catalog_backup
285 update_bacula_tables 
286
287 New Catalog format in version 5.2.0 and greater
288 -----------------------------------------------
289 This release of Bacula uses a new catalog format. We provide a set of
290 scripts that permit to convert a 5.0.x (version 12) catalog to 5.2.1 (version
291 14).  The Bacula project rpm spec files have been modified to
292 detect the database change and do the upgrade for you.  We strongly
293 recommend that you save a copy of your existing database before upgrading
294 using rpms.
295
296 The simplest way to upgrade the database assuming you are building from
297 source (i.e. manually):
298 1. Stop any current version of Bacula from running.
299 2. Save a copy of your existing database.
300 3. Configure, build, and install the 5.2.1 version of Bacula
301    Note the new ./configure options in the manuals see the link
302    at the bottom of this file.
303 4. cd <your-scripts-installation-directory>
304 5. ./update_bacula_tables
305 6. If you have multiple catalogs, edit the update_bacula_tables
306    script and put the name of another database, and then
307    execute the script again. Repeat this until all Bacula
308    catalogs have been updated.
309 7. Start the new Bacula.  If everything worked, it should
310    not print any error messages.
311
312 If you start from scratch, you don't need to run the update_bacula_tables
313 script because the create_bacula_tables script automatically creates the new
314 table format.  However, if you are using a version of Bacula older than 5.0.0
315 (e.g.  3.0.3) then you need to run the update_bacula_tables script that will
316 be found in the <bacula>/src/cats directory after you run the ./configure
317 command.  As mentioned above, before running this script, please backup your
318 catalog database, and when you do running it, be sure shutdown Bacula and be
319 aware that running the script can take some time depending on your database
320 size.
321
322 ================================================================
323
324 Changes:
325
326 Speed and Memory Usage Enhancements:
327 - Implement LZO compression algorithm (need lzo2 headers to activate this option)
328 - New Pruning algoritm -- safer and faster
329 - Use of PostgreSQL cursor when doing large queries, should reduce the
330   memory usage during restore and accurate backups.
331 - limit command in some list commands
332 - Bacula Virtual File System for fast catalog access
333 - Faster crc32 algorithm
334
335 Security Enhancements:
336 - Additional security against injection of illegal characters
337 - Fix possible fnmatch problem
338
339 Features Enhancements:
340 - Improvements in ACL and xattr handling on additional platforms:
341   AIX, Darwind, FreeBSD, HPUX, IRIX, Solaris, Tru64
342 - Tray monitor for Windows
343 - New SQL backend and ./configure that permits building multiple catalog
344   backends in one build, and has the main Bacula core code totally independent
345   of the SQL backend, which should simplify packaging (only the
346   libbacsql.so/dll needs to be changed to switch from one database backend
347   to another (e.g. MySQL to PostgreSQL).
348 - Indent lsmark during restore
349 - Disable batch insert config item
350 - Director selection option in bconsole
351 - restorejob command in bconsole
352 - Many additional features for bat such as "brestore" panel
353 - The old bat version browser has been turned off since it does not
354   work correctly and the brestore panel provides the same functionality
355 - Improved hash table for hard links
356 - Additional script variable editing such as %b (JobBytes), %F (JobFiles) 
357   and %h (Client Address)
358
359 Other Enhancements:
360 - Includes better handling for Windows repares points, mount points, and 
361   junction points.
362 - New database format
363 - Many new plugin API features
364 - Improved memory handling for restores
365 - Significant stability enhancements to bat
366 - xattr/ACL restore failure are now printed as Warning
367 - A few path name length limits in Windows have been removed.
368
369
370 ===========================================================================
371
372 The 5.0.3 version is significant bug fix update to version 5.0.2.
373 It includes new code and some new features.
374 There is no database change since prior versions of 5.0.
375
376 Note, if you are running 5.0.0, read the 5.0.1 and 5.0.2 release notes below in
377   the 5.0.1 release section.
378   Important!!!
379
380 Compatibility:
381 --------------
382  As always, both the Director and Storage daemon must be upgraded at
383  the same time.
384
385  Older 5.0.x and 3.0.x File Daemons are compatible with the 5.0.3
386  Director and Storage daemons. There should be no need to upgrade older File
387  Daemons.
388
389 Changes and New Features:
390 - If a VSS (Windows) snapshot fails, the whole Job is failed, previously
391   it printed a warning message and continued.
392 - New editing codes %b = Job Bytes and %f = Job Files for runscripts
393 - Any non-Bacula project plugins (i.e. third party plugins) 
394   must be upgraded to specify AGPLv3 in place of the GPLv2 used previously 
395   for the PLUGIN_LICENSE.
396 - The bat Media page text columns can be sorted by clicking on the column.
397 - If possible, the SD will automatically update the catalog Volume size if 
398   it does not match the Volume size. The mismatch between the Volume sizes
399   typically occurs when the FD has a comm line drop or the FD crashes.
400
401
402 Bug fixes
403 1538 1554 1564 1567 1568 1569 1571 1577 1581 1582 1587 1594 1595 1606 1610
404
405 - Change license from GPLv2 to AGPLv3
406 - Make Win32 no filesystem change more explicit
407 - Backport Branch-4.0 release to Branch-5.0
408 - Massive backport from Branch-5.1 to Branch-5.0
409 - Fix postgresql catalog creation when version is not on the first line
410 - Fix bug #1610 handle empty xattr values on Linux and xBSD.
411 - Garbage collect memory pool at end of job and before sm_dump
412 - Add xattr seg fault protection suggested by Marco for bug #1610
413 - Add archlinux to os.m4
414 - More fixes for 32/64 bit problems in smartall
415 - Fix 32/64 bit problem in smartalloc dump routine
416 - Fix bad copy/paste in commit c88dccb88 prably a seg fault
417 - Add .dump and .exit commands for daemons
418 - Make SD automatically fix the Volume size in the Catalog when out of sync
419 - Use Pmsg in smartall.c rather than printf for tracing Windows
420 - Up maximum block size to 20M
421 - Fix for TLS bugs #1568 and #1599
422 - Improve comm line error handling for TLS, may fix bug #1568 and #1599
423 - Fix problem when sending Cancel event to plugin
424 - Convert all Jmsg on the watchdog thread to Qmsg
425 - Fix SD crash due to mismatched lock/unlock in error condition
426 - Fix bug #1587 if you have clients with different catalogs configured, both 
427   catalogs contains all clients after a reload or restart of the dir
428 - Fix bug #1577 During migration: ERROR in block.c:950 Failed ASSERT: dev->is_open() 
429   by moving and commenting out the ASSERT()
430 - Skip HB kill in FD if HB thread terminated
431 - Fix crash from unequal volume_lock/unlock calls
432 - New prunning algorithm -- should be more accurate
433 - Save any dumps during regression to dumps directory
434 - Fix crash from rw_lock/unlock miss match
435 - Attempt to fix duplicate job kill seg fault
436 - Replace pthread_kill by my_thread_send_signal() in jcr.c
437 - fix #1595 about batch mode detection problem for postgresql with non standard 
438   install dir
439 - Fix #1594 about prune copy jobs
440 - Apply literal string fix in printf submitted by Luca Berra
441 - Fix bug #1582 Restore from multiple storage daemons breaks subsequent backups
442 - Fix segfault on "cancel jobid=" command
443 - Fix bug #1554 Windows installer doesn't honor /S flag
444 - Remove pool zap code that breaks 2drive-concurrent-test
445 - Fix #1571 and install libraries with 755 perms
446 - Fix bug #1581 ASSERTs in src/dird/jobq.c can never trigger
447 - Fix problem with BaseJob and Accurate FileSet options on client side
448 - Fix for bug #1569 deadlock/crash in Dir
449 - Fix segfault when loading Plugins
450 - Fix #1567 about display of long volume names truncated during restore
451 - Added new bacula-libs package.
452 - Fix bug #1538 Start Scripts return incorrect value
453 - Fix bug #1564 init scripts not LSB compliant
454
455 See ChangeLog for more details.
456
457 =============================================================================
458
459
460 ============= Release 5.0.2 ========================
461
462 Changes since 5.0.1
463 -------------------
464
465 Bug fixes
466 1502 1511 1517 1524 1527 1532 1536 1541 1549 1551 1553 1559 1560
467
468 - Probable fix for SD crash bug #1553
469 - Fix #1559 problem when restoring pruned jobs with a regexp
470 - Fix for bug #1560 bcopy cannot find Volume
471 - Fix cancel crash bug #1551
472 - Check if sql backend is thread-safe
473 - Correct Pool display in SD status. Fixes bug #1541
474 - Fix cancel crash reported by Stephen Thompson
475 - Rewind on close to fix #1549
476 - Remove closelog() in bpipe fixes bug #1536
477 - Fix #1517 about missing Base level in .level command
478 - Replace ASSERT in block.c with fail Job
479 - Fix database locking calling db_lock and returning from function without
480   calling db_unlock.
481 - Add missing db_unlock to bvfs_update_cache.
482 - Fix #1532 about permission on binaries
483 - Fix #1527 about deadlock during migration
484 - Another fix for OpenSSLv1
485 - Add -lrt to Solaris links
486 - Fix tls.c for OpenSSLv1
487 - Fix #1511 when trying to insert more than 50.000 directories in bvfs
488 - Fix plugin load not to stop if one plugin bad -- pointed out by James
489 - Remove --without-qwt from configure statement.
490 - Second correct fix to bug #1524 verify fails after adding or removing files
491 - Fix bug #1524 verify fails after adding or removing files
492 - Apply fix suggested by Andreas in bug #1502 for mediaview column sort problem
493 - Fix OpenSSL 1.x problem in crypto.c on Fedora 12
494 - Display AllowCompress warning message only if compression used in FileSet
495
496 =============================================================================
497
498
499 ============= Release 5.0.1 ========================
500
501 !!!!!!!!!!!!!!! NOTE FOR 5.0.0 USERS !!!!!!!!!!!!!!!!!!!!
502 The Allow Duplicate Jobs directive has been significantly 
503 reworked, and the default value has changed. See below.
504
505 Truncate On Purge has been totally rewritten. See the new
506 features section of the manual.
507
508 When Volume Poll Interval is set in the SD DEVICE configuration,
509 (default 5 mins), after a certain number of polling tries (approx
510 10) polling will stop and the operator will be asked to
511 resolve the problem.  Previously there was no limit, and an
512 error message could be produced at each poll attempt.
513 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
514
515 Changes since 5.0.0
516 -------------------
517 - We believe that we have resolved most of the problems
518   concerning canceled or failed jobs being "stuck" in the
519   Director.  There is one outstanding problem in the SD when
520   canceling jobs that we will fix in the next major release.
521   If you see jobs that seem to be stuck, in general issuing
522   a cancel command in bconsole should now make them go away.
523
524 Directives:
525 - The default for "Allow Duplicate Jobs" has been changed from 
526   no to yes.  If you use this directive, please check your
527   conf file, and note the next two items !!!!!!!!!!!!!!!!!!!
528 - AllowHigherDuplicates disabled. It did not work as documented   
529     and was confusing.
530 - New directive "CancelLowerLevelDuplicates" See New Features
531   section in the manual.
532 - Truncate on Purge rewritten.  See New Features section in the manual.
533
534 Bug fixes:
535 1448 1466 1467 1468 1476 1481 1486 1488 1494 1497 
536 1499 1501 1505 1509 1513
537
538 - Ensure SD asks for help when looping even if poll set. Fixes bug #1513.
539 - Fix three-pool regress bug
540 - Modify bacula.spec fixes bug #1505
541 - This version fixes an issue where the console window would start out
542   docked. It is fixed by initiating the variables in the Pages class wi
543   constructor.
544 - Fix make_catalog_backup.pl fails when catalog db is on other host
545 - Apply MacOSX installer patch from bug #1509
546 - Apply fix to previous fix of Copy problem. Fix proposed by reporter o
547   #1476
548 - Fix bug #1501 -t does not print errors
549 - Apply SQLite3 update fix from bug #1497
550 - Apply bashism fix for diskchanger.in script from bug #1499
551 - Apply rpm fix for Sci Linux from bug #1494
552 - Take most recent Ukranian po from bug #1448
553 - Probable fix for Copy/Migration bug #1476
554 - Fix bug #1488 -- avoid recursion and race conditions in messages.c
555 - Upgrade cats library also to 5.0.0
556 - Fix missing console page in bat
557 - Add bat help files to Window install
558 - Improve Windows upgrade to ensure old FD is shutdown
559 - Fix bug #1481 -- bat consumes all console file descriptors
560 - Backport truncate on purge from 5.1.x
561 - Fix bug #1486 -- bat doesn't show any errors on command-line
562 - Update the bsock error URL
563 - Correct .my.cnf umask in make_catalog_backup.pl
564 - Apply fix for dbcheck use by make_catalog_backup.pl
565 - Fix seg fault in bscan from new comment field
566 - Allow multiple CNs when using TLS
567 - Fix seg fault in SQlite driver
568 - Make shared libs version the same as the Bacula release version
569 - Remove file_index sequential check
570 - Fix #1466 about Bogus pruning message
571
572 For Packagers:
573 1.  The default query.sql file is now, except for some comments, empty.
574 The old file, which we no longer support (it is impossible or difficult to
575 make it work on every backend, and the queries are mostly contributed) can
576 be found in <bacula-source>/examples/sample-query.sql.  The sample file is
577 not installed by the Makefiles
578
579 2.  When you install the mtx-changer script, you must also install
580 mtx-changer.conf if it does not exist.  This new file (mtx-changer.conf) is
581 required for mtx-changer to work, but it is a user configurable file, so on
582 any update, any existing file should not be overwritten.
583
584 3.  Bat should be built on every platform that is capabable of running Qt.
585 However, the Qt code is changing rather quickly and is not always
586 compatible from version to version.  We have built and verified bat on Qt
587 4.3.4.  We strongly recommend that you do not build and distribute bat with
588 any other version of Qt unless you personally test it.  To build against Qt
589 4.3.4, download the depkgs-qt package from the Bacula Source Forge download
590 location, read the README file and follow the instructions.
591
592 If you are building for Bacula version 5.0.0, please ensure that you do not
593 have qmake-qt4 loaded on your system.  If you do, either remove it or
594 rename it before trying to build bat.  If you do not, bat will probably be
595 built using the shared objects on your system.  For Bacula 5.0.1 and later,
596 this problem (bug) does not exist.
597
598 depkgs-qt does not install Qt on your system, nor does it interfere with
599 you having any other version of Qt installed on your system.  Once you
600 build bat with depkgs-qt, it should *not* use the Qt shared objects, but
601 rather they will be linked into the program.  After fully installing bat
602 (make install), you can run "ldd bat" to see what shared objects it will
603 use.  If any Qt shared objects are referenced, something has gone wrong.
604
605 4.  Unless absolutely necessary, we recommend that you do not define any
606 special library environment variables that apply to the ./configure -- for
607 example: LIBDIR=/...  ./configure <your-options> is strongly discouraged.
608 Doing so, could potentially cause Bacula to be linked against the wrong
609 shared objects.
610
611 5.  The Bacula project strongly recommends that you install Bacula into a
612 single directory, with a few minor exceptions such as the MySQL or
613 PostgreSQL databases.  Preferrably this should be /opt/bacula.  The full
614 recommendation is:
615
616 #!/bin/sh
617 # Recommended configure script for Bacula
618 prefix=/opt/bacula
619 email=xxx@yyy.zz
620 CFLAGS="-g -O2 -Wall" \
621   ./configure \
622     --sbindir=${prefix}/bin \
623     --sysconfdir=${prefix}/etc \
624     --docdir=${prefix}/html \
625     --htmldir=${prefix}/html \
626     --with-working-dir=${prefix}/working \
627     --with-pid-dir=${prefix}/working \
628     --with-subsys-dir=${prefix}/working \
629     --with-scriptdir=${prefix}/scripts \
630     --with-plugindir=${prefix}/plugins \
631     --libdir=${prefix}/lib \
632     --enable-smartalloc \
633     --enable-tray-monitor \
634     --enable-bat \
635     --with-mysql \
636     --with-dump-email=${email} \
637     --with-job-email=${email} \
638     --with-smtp-host=localhost \
639     --with-baseport=9101
640
641 Obviously, the email, and some of the minor options (mysql, postgresql,
642 ...) can be changed to suit your distribution, but the directory names
643 defined above are strongly recommended, and over time the default values in
644 the bacula-dir.conf and bacula-sd.conf will reflect these choices.
645
646 If you have any questions about this or would like a detailed document
647 describing our recommendations including packaging requirements, please
648 send an email to the bacula-devel list.
649
650 6.  Starting with Bacula version 3.0.0 up to Bacula 5.0.0, the shared
651 libraries that Bacula uses by default are named xxx-1.0.0.  Starting with
652 Bacula 5.0.1, we are going to name the libraries using the Bacula version.
653 So in Bacula 5.0.1, the libraries will be named xxx-5.0.1.  With future
654 versions, the last digit may or may not change when we distribute patch
655 updates (i.e.  the last digit of the version changes).  This will depend on
656 whether or not we have changed something in the library.  Hopefully this
657 new procedure will resolve some of the incompatibility problems between
658 different versions of the shared objects.
659
660 7.  The default build option for bconsole is conio (my own little console
661 routines).  I did this because some years ago, readline was very difficult
662 to maintain -- it and where it was found seemed to change on every release.
663 This generated at the time a number of support problems.  It seems to me
664 that since then there have been very few problems with readline.  As a
665 consequence, I have no problem if you want to make bconsole with readline
666 enabled.  It will actually give some very nice new bconsole command
667 completion functionality that Eric has written.  Bottom line: feel free to
668 use readline or not as you please.
669
670 ==========================================================
671
672
673
674 Release Notes for Bacula 5.0.0
675
676 Release Numbering:
677 -----------------------------------------------------------
678 You might be wondering why this release jumps from 3.0.x to 
679 5.0.0 thus skipping version 4.0.0.  We have done this for 
680 several reasons: first, we wanted a way of distinguishing
681 the numbering system for the Bacula System Enterprise version
682 and the Bacula Project version.  So, to do so, we have decided
683 that the first number of the Bacula Project version will always
684 be odd, and the first number of the Enterprise version will always
685 be even. Thus the Bacula Project now moves from 3.0.x to 5.0.x.
686 In addition, we want to keep the Bacula Project version larger
687 than the Enterprise version to indicate that the Bacula Project
688 version is more advanced or has more features than the 
689 Enterprise version. For memory, the current Enterprise version
690 is 2.6.1, and the next release (in a few months -- before June 2010)
691 will be version 4.0.0.
692
693 Warning:
694 --------------------------------------------------------------
695 Please note the three Warnings below before doing any install or
696 upgrade.
697        
698
699 Changes since 3.0.3a (the last Bacula Project release):
700 -------------------------------------------------------
701
702 Bug fixes:
703 1337 1351 1352 1354 1357 1361 1367 1369 1370 1373 
704 1376 1391 1403 1409 1420 1422 1427 1428 1431 1450 
705 1454 1455 1458 1456
706
707 Fixed:
708  - Problem that locks the Director when the SMTP server wasn't 
709    responding to the bsmtp program 
710  - Restore's dir command shows incorrect file sizes 
711  - Fix various problems with the reload command   
712  - Fix problems with conio
713  - Eliminate several deadlocks or potential race conditions from SD
714
715 Enhancements:
716  - Project 5: Truncate volume after purge
717  - Project 6: File Deduplication using Base Jobs 
718  - Project 10: Restore from Multiple Storage Daemons
719  - Project 11: AllowCompression per Device
720  - Project 23: Add Maximum Concurent Jobs for Devices to balance load 
721    between drives
722  - Add Accurate Fileset Options to configure accurate detection. Can use 
723    checksum verification for example.
724  - Allow FD to keep root read but drop write permission (CAP)
725  - Secure handling of passwords for catalog backup
726  - Add Tab-completion for Bconsole when using Readline
727  - Add Bvfs API to query the catalog without building a memory tree
728  - Add new speed test to btape program
729  - Add new Bat screens (Autochanger content, Job view, Media view, ...)
730  - Windows version of Bat
731  - Added Spanish Bacula translation   
732  - New bconsole -u nnn option to have timeout on commands
733  - Allow Migrate, Copy, and Virtual Full to read and write
734    to the same Pool
735  - show disabled   -- shows disabled Jobs
736  - Add Pool File and Job retention periods (take precedence over Client)
737  - Many ACL improvements
738  - Level added to FD status Job entry
739  - Allow turning on/off Block Checksum per device
740  - Set Device Poll interval to 5 minutes -- previously did not poll
741  - Implement lock manager with bad order protection
742
743 Compatibility:
744 As always, both the Director and Storage daemon must be upgraded at
745 the same time, and on any given machine, you must run only one version
746 of Bacula. This means that on the Director and Storage daemon machines,
747 you *must* upgrade your File daemon as well.
748
749 Older 3.0.x and possibly 2.4.x File Daemons are compatible with the 5.0.0
750 Director and Storage daemons. There should be no need to upgrade older File
751 Daemons immediately. However, we recommend that you do so as soon
752 as is reasonable for your situation.
753
754 ================== Warning !!!!!! ==========================
755
756 New Catalog format in version 5.0.0 (3.1.9 or later)
757 -----------------------------------------------------
758
759 This release of Bacula uses a new catalog format. We provide a set of
760 scripts that permit to convert a 3.0.x (version 11) catalog to 5.0.0 (version
761 12).  The Bacula project rpms distributed on Source Forge will automatically
762 detect the database change and do the upgrade for you.  We strongly
763 recommend that you save a copy of your existing database before upgrading
764 using rpms.
765
766 The simplest way to upgrade the database assuming you are building from
767 source:
768 1. Stop any current version of Bacula from running.
769 2. Save a copy of your existing database.
770 3. Configure, build, and install the 5.0.0 version of Bacula
771    Note the new ./configure options in the manuals see the link
772    at the bottom of this file.
773 4. cd <your-scripts-installation-directory>
774 5. ./update_bacula_tables
775 6. If you have multiple catalogs, edit the update_bacula_tables
776    script and put the name of another database, and then
777    execute the script again. Repeat this until all Bacula
778    catalogs have been updated.
779 7. Start the new Bacula.  If everything worked, it should
780    not print any error messages.
781
782 If you start from scratch, you don't need to run the update_bacula_tables
783 script because the create_bacula_tables script automatically creates the new
784 table format.  However, if you are using a version of Bacula older than 3.1.9
785 (e.g.  3.0.3) then you need to run the update_bacula_tables script that will
786 be found in the <bacula>/src/cats directory after you run the ./configure
787 command.  As mentioned above, before running this script, please backup your
788 catalog database, and when you do running it, be sure shutdown Bacula and be
789 aware that running the script can take some time depending on your database
790 size.
791 ================================================================
792
793
794 ================== Warning !!!!!! ==========================
795 If you upgrade a previous Win32 client installation, you must
796 first stop the File daemon, then uninstall it before attempting
797 the upgrade. If you do not do so, the upgrade will probably
798 fail and you will need to manually find and run the 
799 Uninstall.exe file, before you can upgrade to the new version.
800 This is because the file locations are different.  If you want
801 to save your previous bacula-fd.conf file, please do so before
802 uninstalling it.
803 ================================================================
804
805 ================== Warning !!!!!! ==========================
806 Due to permissions problems on Windows Vista and later systems,
807 we no longer require SYSTEM or Administrator permissions to 
808 access the binaries and configuation files.  If you wish
809 to restrict access to these files, please see the New Features
810 section of the manual for how to set access control lists.
811 ================================================================
812
813 Note, the Win32 Installer no longer installs the Bacula Servers
814 (Director and Storage daemon). See the New Features section of
815 the manual for more details.
816
817 ============ Documentation improvements needed ==================
818
819 Note!!!!! The 5.0.0+ documentation has a number of known problems:
820
821 1. We have reduced the number of manuals, which has fixed many
822    of the broken links found in the old 3.0.x version, but there
823    are still some that need fixing.
824
825 2. Integration of the 3.0.x features into the main manuals has
826    not yet been done.
827
828 The documentation will not be completed in the near future due to lack
829 manpower.  If you are unhappy with this situation as we are, we suggest
830 you help by submitting patches to the documentation.  Thanks.
831 =====
832
833
834 This release includes large number of new features and changes.
835 It should be more or less compatible with previous xx.conf files
836 and File daemons providing that you are not using any of the new
837 features.
838
839 Please see the New Features chapter of the new manual, which documents
840 some but not all the new features (we are still working on it):
841
842 http://www.bacula.org/5.0.x-manuals/en/main/main/New_Features_in_5_0_1.html
843   
844 The ChangeLog has more details.