2 Release Notes for Bacula 5.2.0
4 Bacula code: Total files = 1,110 Total lines = 231,439 (Using SLOCCount)
9 This 5.2.0 version is a major release since the last version 5.0.3.
10 It includes well over 371,803 lines of changes made by 21 contributors
11 and a number of important new features:
15 As always, both the Director and Storage daemon must be upgraded at
18 Older 5.0.x and 3.0.x File Daemons are compatible with the 5.2.0
19 Director and Storage daemons. There should be no need to upgrade older File
22 ================== Warning !!!!!! ==========================
24 The new pruning algorithm will not allow pruning of jobs that are essential to
25 restore since the last Full backup. This is, of course, correct and desirable,
26 but it is different from older Bacula versions that could inappropriately
27 prune jobs. Pruning of volumes is not affected.
31 To build Bat, you need Qt4 version 4.6.2. If you build with any other
32 version it is likely not to work. If you do not have version 4.6.2, on
33 your system, you can download the Bacula depkgs_qt version 16Dec10.
35 New Catalog format in version 5.2.0
36 -----------------------------------
37 This release of Bacula uses a new catalog format. We provide a set of
38 scripts that permit to convert a 5.0.x (version 12) catalog to 5.2.0 (version
39 14). The Bacula project rpm spec files have been modified to
40 detect the database change and do the upgrade for you. We strongly
41 recommend that you save a copy of your existing database before upgrading
44 The simplest way to upgrade the database assuming you are building from
45 source (i.e. manually):
46 1. Stop any current version of Bacula from running.
47 2. Save a copy of your existing database.
48 3. Configure, build, and install the 5.2.0 version of Bacula
49 Note the new ./configure options in the manuals see the link
50 at the bottom of this file.
51 4. cd <your-scripts-installation-directory>
52 5. ./update_bacula_tables
53 6. If you have multiple catalogs, edit the update_bacula_tables
54 script and put the name of another database, and then
55 execute the script again. Repeat this until all Bacula
56 catalogs have been updated.
57 7. Start the new Bacula. If everything worked, it should
58 not print any error messages.
60 If you start from scratch, you don't need to run the update_bacula_tables
61 script because the create_bacula_tables script automatically creates the new
62 table format. However, if you are using a version of Bacula older than 5.0.0
63 (e.g. 3.0.3) then you need to run the update_bacula_tables script that will
64 be found in the <bacula>/src/cats directory after you run the ./configure
65 command. As mentioned above, before running this script, please backup your
66 catalog database, and when you do running it, be sure shutdown Bacula and be
67 aware that running the script can take some time depending on your database
70 ================================================================
74 Speed and Memory Usage Enhancements:
75 - Implement LZO compression algorithm (need lzo2 headers to activate this option)
76 - New Pruning algoritm -- safer and faster
77 - Use of PostgreSQL cursor when doing large queries, should reduce the
78 memory usage during restore and accurate backups.
79 - limit command in some list commands
80 - Bacula Virtual File System for fast catalog access
81 - Faster crc32 algorithm
83 Security Enhancements:
84 - Additional security against injection of illegal characters
85 - Fix possible fnmatch problem
87 Features Enhancements:
88 - Improvements in ACL and xattr handling on additional platforms:
89 AIX, Darwind, FreeBSD, HPUX, IRIX, Solaris, Tru64
90 - Tray monitor for Windows
91 - New SQL backend and ./configure that permits building multiple catalog
92 backends in one build, and has the main Bacula core code totally independent
93 of the SQL backend, which should simplify packaging (only the
94 libbacsql.so/dll needs to be changed to switch from one database backend
95 to another (e.g. MySQL to PostgreSQL).
96 - Indent lsmark during restore
97 - Disable batch insert config item
98 - Director selection option in bconsole
99 - restorejob command in bconsole
100 - Many additional features for bat such as "brestore" panel
101 - The old bat version browser has been turned off since it does not
102 work correctly and the brestore panel provides the same functionality
103 - Improved hash table for hard links
104 - Additional script variable editing such as %b (JobBytes), %F (JobFiles)
105 and %h (Client Address)
108 - Includes better handling for Windows repares points, mount points, and
110 - New database format
111 - Many new plugin API features
112 - Improved memory handling for restores
113 - Significant stability enhancements to bat
114 - xattr/ACL restore failure are now printed as Warning
115 - A few path name length limits in Windows have been removed.
118 ===========================================================================
120 The 5.0.3 version is significant bug fix update to version 5.0.2.
121 It includes new code and some new features.
122 There is no database change since prior versions of 5.0.
124 Note, if you are running 5.0.0, read the 5.0.1 and 5.0.2 release notes below in
125 the 5.0.1 release section.
130 As always, both the Director and Storage daemon must be upgraded at
133 Older 5.0.x and 3.0.x File Daemons are compatible with the 5.0.3
134 Director and Storage daemons. There should be no need to upgrade older File
137 Changes and New Features:
138 - If a VSS (Windows) snapshot fails, the whole Job is failed, previously
139 it printed a warning message and continued.
140 - New editing codes %b = Job Bytes and %f = Job Files for runscripts
141 - Any non-Bacula project plugins (i.e. third party plugins)
142 must be upgraded to specify AGPLv3 in place of the GPLv2 used previously
143 for the PLUGIN_LICENSE.
144 - The bat Media page text columns can be sorted by clicking on the column.
145 - If possible, the SD will automatically update the catalog Volume size if
146 it does not match the Volume size. The mismatch between the Volume sizes
147 typically occurs when the FD has a comm line drop or the FD crashes.
151 1538 1554 1564 1567 1568 1569 1571 1577 1581 1582 1587 1594 1595 1606 1610
153 - Change license from GPLv2 to AGPLv3
154 - Make Win32 no filesystem change more explicit
155 - Backport Branch-4.0 release to Branch-5.0
156 - Massive backport from Branch-5.1 to Branch-5.0
157 - Fix postgresql catalog creation when version is not on the first line
158 - Fix bug #1610 handle empty xattr values on Linux and xBSD.
159 - Garbage collect memory pool at end of job and before sm_dump
160 - Add xattr seg fault protection suggested by Marco for bug #1610
161 - Add archlinux to os.m4
162 - More fixes for 32/64 bit problems in smartall
163 - Fix 32/64 bit problem in smartalloc dump routine
164 - Fix bad copy/paste in commit c88dccb88 prably a seg fault
165 - Add .dump and .exit commands for daemons
166 - Make SD automatically fix the Volume size in the Catalog when out of sync
167 - Use Pmsg in smartall.c rather than printf for tracing Windows
168 - Up maximum block size to 20M
169 - Fix for TLS bugs #1568 and #1599
170 - Improve comm line error handling for TLS, may fix bug #1568 and #1599
171 - Fix problem when sending Cancel event to plugin
172 - Convert all Jmsg on the watchdog thread to Qmsg
173 - Fix SD crash due to mismatched lock/unlock in error condition
174 - Fix bug #1587 if you have clients with different catalogs configured, both
175 catalogs contains all clients after a reload or restart of the dir
176 - Fix bug #1577 During migration: ERROR in block.c:950 Failed ASSERT: dev->is_open()
177 by moving and commenting out the ASSERT()
178 - Skip HB kill in FD if HB thread terminated
179 - Fix crash from unequal volume_lock/unlock calls
180 - New prunning algorithm -- should be more accurate
181 - Save any dumps during regression to dumps directory
182 - Fix crash from rw_lock/unlock miss match
183 - Attempt to fix duplicate job kill seg fault
184 - Replace pthread_kill by my_thread_send_signal() in jcr.c
185 - fix #1595 about batch mode detection problem for postgresql with non standard
187 - Fix #1594 about prune copy jobs
188 - Apply literal string fix in printf submitted by Luca Berra
189 - Fix bug #1582 Restore from multiple storage daemons breaks subsequent backups
190 - Fix segfault on "cancel jobid=" command
191 - Fix bug #1554 Windows installer doesn't honor /S flag
192 - Remove pool zap code that breaks 2drive-concurrent-test
193 - Fix #1571 and install libraries with 755 perms
194 - Fix bug #1581 ASSERTs in src/dird/jobq.c can never trigger
195 - Fix problem with BaseJob and Accurate FileSet options on client side
196 - Fix for bug #1569 deadlock/crash in Dir
197 - Fix segfault when loading Plugins
198 - Fix #1567 about display of long volume names truncated during restore
199 - Added new bacula-libs package.
200 - Fix bug #1538 Start Scripts return incorrect value
201 - Fix bug #1564 init scripts not LSB compliant
203 See ChangeLog for more details.
205 =============================================================================
208 ============= Release 5.0.2 ========================
214 1502 1511 1517 1524 1527 1532 1536 1541 1549 1551 1553 1559 1560
216 - Probable fix for SD crash bug #1553
217 - Fix #1559 problem when restoring pruned jobs with a regexp
218 - Fix for bug #1560 bcopy cannot find Volume
219 - Fix cancel crash bug #1551
220 - Check if sql backend is thread-safe
221 - Correct Pool display in SD status. Fixes bug #1541
222 - Fix cancel crash reported by Stephen Thompson
223 - Rewind on close to fix #1549
224 - Remove closelog() in bpipe fixes bug #1536
225 - Fix #1517 about missing Base level in .level command
226 - Replace ASSERT in block.c with fail Job
227 - Fix database locking calling db_lock and returning from function without
229 - Add missing db_unlock to bvfs_update_cache.
230 - Fix #1532 about permission on binaries
231 - Fix #1527 about deadlock during migration
232 - Another fix for OpenSSLv1
233 - Add -lrt to Solaris links
234 - Fix tls.c for OpenSSLv1
235 - Fix #1511 when trying to insert more than 50.000 directories in bvfs
236 - Fix plugin load not to stop if one plugin bad -- pointed out by James
237 - Remove --without-qwt from configure statement.
238 - Second correct fix to bug #1524 verify fails after adding or removing files
239 - Fix bug #1524 verify fails after adding or removing files
240 - Apply fix suggested by Andreas in bug #1502 for mediaview column sort problem
241 - Fix OpenSSL 1.x problem in crypto.c on Fedora 12
242 - Display AllowCompress warning message only if compression used in FileSet
244 =============================================================================
247 ============= Release 5.0.1 ========================
249 !!!!!!!!!!!!!!! NOTE FOR 5.0.0 USERS !!!!!!!!!!!!!!!!!!!!
250 The Allow Duplicate Jobs directive has been significantly
251 reworked, and the default value has changed. See below.
253 Truncate On Purge has been totally rewritten. See the new
254 features section of the manual.
256 When Volume Poll Interval is set in the SD DEVICE configuration,
257 (default 5 mins), after a certain number of polling tries (approx
258 10) polling will stop and the operator will be asked to
259 resolve the problem. Previously there was no limit, and an
260 error message could be produced at each poll attempt.
261 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
265 - We believe that we have resolved most of the problems
266 concerning canceled or failed jobs being "stuck" in the
267 Director. There is one outstanding problem in the SD when
268 canceling jobs that we will fix in the next major release.
269 If you see jobs that seem to be stuck, in general issuing
270 a cancel command in bconsole should now make them go away.
273 - The default for "Allow Duplicate Jobs" has been changed from
274 no to yes. If you use this directive, please check your
275 conf file, and note the next two items !!!!!!!!!!!!!!!!!!!
276 - AllowHigherDuplicates disabled. It did not work as documented
278 - New directive "CancelLowerLevelDuplicates" See New Features
279 section in the manual.
280 - Truncate on Purge rewritten. See New Features section in the manual.
283 1448 1466 1467 1468 1476 1481 1486 1488 1494 1497
284 1499 1501 1505 1509 1513
286 - Ensure SD asks for help when looping even if poll set. Fixes bug #1513.
287 - Fix three-pool regress bug
288 - Modify bacula.spec fixes bug #1505
289 - This version fixes an issue where the console window would start out
290 docked. It is fixed by initiating the variables in the Pages class wi
292 - Fix make_catalog_backup.pl fails when catalog db is on other host
293 - Apply MacOSX installer patch from bug #1509
294 - Apply fix to previous fix of Copy problem. Fix proposed by reporter o
296 - Fix bug #1501 -t does not print errors
297 - Apply SQLite3 update fix from bug #1497
298 - Apply bashism fix for diskchanger.in script from bug #1499
299 - Apply rpm fix for Sci Linux from bug #1494
300 - Take most recent Ukranian po from bug #1448
301 - Probable fix for Copy/Migration bug #1476
302 - Fix bug #1488 -- avoid recursion and race conditions in messages.c
303 - Upgrade cats library also to 5.0.0
304 - Fix missing console page in bat
305 - Add bat help files to Window install
306 - Improve Windows upgrade to ensure old FD is shutdown
307 - Fix bug #1481 -- bat consumes all console file descriptors
308 - Backport truncate on purge from 5.1.x
309 - Fix bug #1486 -- bat doesn't show any errors on command-line
310 - Update the bsock error URL
311 - Correct .my.cnf umask in make_catalog_backup.pl
312 - Apply fix for dbcheck use by make_catalog_backup.pl
313 - Fix seg fault in bscan from new comment field
314 - Allow multiple CNs when using TLS
315 - Fix seg fault in SQlite driver
316 - Make shared libs version the same as the Bacula release version
317 - Remove file_index sequential check
318 - Fix #1466 about Bogus pruning message
321 1. The default query.sql file is now, except for some comments, empty.
322 The old file, which we no longer support (it is impossible or difficult to
323 make it work on every backend, and the queries are mostly contributed) can
324 be found in <bacula-source>/examples/sample-query.sql. The sample file is
325 not installed by the Makefiles
327 2. When you install the mtx-changer script, you must also install
328 mtx-changer.conf if it does not exist. This new file (mtx-changer.conf) is
329 required for mtx-changer to work, but it is a user configurable file, so on
330 any update, any existing file should not be overwritten.
332 3. Bat should be built on every platform that is capabable of running Qt.
333 However, the Qt code is changing rather quickly and is not always
334 compatible from version to version. We have built and verified bat on Qt
335 4.3.4. We strongly recommend that you do not build and distribute bat with
336 any other version of Qt unless you personally test it. To build against Qt
337 4.3.4, download the depkgs-qt package from the Bacula Source Forge download
338 location, read the README file and follow the instructions.
340 If you are building for Bacula version 5.0.0, please ensure that you do not
341 have qmake-qt4 loaded on your system. If you do, either remove it or
342 rename it before trying to build bat. If you do not, bat will probably be
343 built using the shared objects on your system. For Bacula 5.0.1 and later,
344 this problem (bug) does not exist.
346 depkgs-qt does not install Qt on your system, nor does it interfere with
347 you having any other version of Qt installed on your system. Once you
348 build bat with depkgs-qt, it should *not* use the Qt shared objects, but
349 rather they will be linked into the program. After fully installing bat
350 (make install), you can run "ldd bat" to see what shared objects it will
351 use. If any Qt shared objects are referenced, something has gone wrong.
353 4. Unless absolutely necessary, we recommend that you do not define any
354 special library environment variables that apply to the ./configure -- for
355 example: LIBDIR=/... ./configure <your-options> is strongly discouraged.
356 Doing so, could potentially cause Bacula to be linked against the wrong
359 5. The Bacula project strongly recommends that you install Bacula into a
360 single directory, with a few minor exceptions such as the MySQL or
361 PostgreSQL databases. Preferrably this should be /opt/bacula. The full
365 # Recommended configure script for Bacula
368 CFLAGS="-g -O2 -Wall" \
370 --sbindir=${prefix}/bin \
371 --sysconfdir=${prefix}/etc \
372 --docdir=${prefix}/html \
373 --htmldir=${prefix}/html \
374 --with-working-dir=${prefix}/working \
375 --with-pid-dir=${prefix}/working \
376 --with-subsys-dir=${prefix}/working \
377 --with-scriptdir=${prefix}/scripts \
378 --with-plugindir=${prefix}/plugins \
379 --libdir=${prefix}/lib \
380 --enable-smartalloc \
381 --enable-tray-monitor \
384 --with-dump-email=${email} \
385 --with-job-email=${email} \
386 --with-smtp-host=localhost \
389 Obviously, the email, and some of the minor options (mysql, postgresql,
390 ...) can be changed to suit your distribution, but the directory names
391 defined above are strongly recommended, and over time the default values in
392 the bacula-dir.conf and bacula-sd.conf will reflect these choices.
394 If you have any questions about this or would like a detailed document
395 describing our recommendations including packaging requirements, please
396 send an email to the bacula-devel list.
398 6. Starting with Bacula version 3.0.0 up to Bacula 5.0.0, the shared
399 libraries that Bacula uses by default are named xxx-1.0.0. Starting with
400 Bacula 5.0.1, we are going to name the libraries using the Bacula version.
401 So in Bacula 5.0.1, the libraries will be named xxx-5.0.1. With future
402 versions, the last digit may or may not change when we distribute patch
403 updates (i.e. the last digit of the version changes). This will depend on
404 whether or not we have changed something in the library. Hopefully this
405 new procedure will resolve some of the incompatibility problems between
406 different versions of the shared objects.
408 7. The default build option for bconsole is conio (my own little console
409 routines). I did this because some years ago, readline was very difficult
410 to maintain -- it and where it was found seemed to change on every release.
411 This generated at the time a number of support problems. It seems to me
412 that since then there have been very few problems with readline. As a
413 consequence, I have no problem if you want to make bconsole with readline
414 enabled. It will actually give some very nice new bconsole command
415 completion functionality that Eric has written. Bottom line: feel free to
416 use readline or not as you please.
418 ==========================================================
422 Release Notes for Bacula 5.0.0
425 -----------------------------------------------------------
426 You might be wondering why this release jumps from 3.0.x to
427 5.0.0 thus skipping version 4.0.0. We have done this for
428 several reasons: first, we wanted a way of distinguishing
429 the numbering system for the Bacula System Enterprise version
430 and the Bacula Project version. So, to do so, we have decided
431 that the first number of the Bacula Project version will always
432 be odd, and the first number of the Enterprise version will always
433 be even. Thus the Bacula Project now moves from 3.0.x to 5.0.x.
434 In addition, we want to keep the Bacula Project version larger
435 than the Enterprise version to indicate that the Bacula Project
436 version is more advanced or has more features than the
437 Enterprise version. For memory, the current Enterprise version
438 is 2.6.1, and the next release (in a few months -- before June 2010)
439 will be version 4.0.0.
442 --------------------------------------------------------------
443 Please note the three Warnings below before doing any install or
447 Changes since 3.0.3a (the last Bacula Project release):
448 -------------------------------------------------------
451 1337 1351 1352 1354 1357 1361 1367 1369 1370 1373
452 1376 1391 1403 1409 1420 1422 1427 1428 1431 1450
456 - Problem that locks the Director when the SMTP server wasn't
457 responding to the bsmtp program
458 - Restore's dir command shows incorrect file sizes
459 - Fix various problems with the reload command
460 - Fix problems with conio
461 - Eliminate several deadlocks or potential race conditions from SD
464 - Project 5: Truncate volume after purge
465 - Project 6: File Deduplication using Base Jobs
466 - Project 10: Restore from Multiple Storage Daemons
467 - Project 11: AllowCompression per Device
468 - Project 23: Add Maximum Concurent Jobs for Devices to balance load
470 - Add Accurate Fileset Options to configure accurate detection. Can use
471 checksum verification for example.
472 - Allow FD to keep root read but drop write permission (CAP)
473 - Secure handling of passwords for catalog backup
474 - Add Tab-completion for Bconsole when using Readline
475 - Add Bvfs API to query the catalog without building a memory tree
476 - Add new speed test to btape program
477 - Add new Bat screens (Autochanger content, Job view, Media view, ...)
478 - Windows version of Bat
479 - Added Spanish Bacula translation
480 - New bconsole -u nnn option to have timeout on commands
481 - Allow Migrate, Copy, and Virtual Full to read and write
483 - show disabled -- shows disabled Jobs
484 - Add Pool File and Job retention periods (take precedence over Client)
485 - Many ACL improvements
486 - Level added to FD status Job entry
487 - Allow turning on/off Block Checksum per device
488 - Set Device Poll interval to 5 minutes -- previously did not poll
489 - Implement lock manager with bad order protection
492 As always, both the Director and Storage daemon must be upgraded at
493 the same time, and on any given machine, you must run only one version
494 of Bacula. This means that on the Director and Storage daemon machines,
495 you *must* upgrade your File daemon as well.
497 Older 3.0.x and possibly 2.4.x File Daemons are compatible with the 5.0.0
498 Director and Storage daemons. There should be no need to upgrade older File
499 Daemons immediately. However, we recommend that you do so as soon
500 as is reasonable for your situation.
502 ================== Warning !!!!!! ==========================
504 New Catalog format in version 5.0.0 (3.1.9 or later)
505 -----------------------------------------------------
507 This release of Bacula uses a new catalog format. We provide a set of
508 scripts that permit to convert a 3.0.x (version 11) catalog to 5.0.0 (version
509 12). The Bacula project rpms distributed on Source Forge will automatically
510 detect the database change and do the upgrade for you. We strongly
511 recommend that you save a copy of your existing database before upgrading
514 The simplest way to upgrade the database assuming you are building from
516 1. Stop any current version of Bacula from running.
517 2. Save a copy of your existing database.
518 3. Configure, build, and install the 5.0.0 version of Bacula
519 Note the new ./configure options in the manuals see the link
520 at the bottom of this file.
521 4. cd <your-scripts-installation-directory>
522 5. ./update_bacula_tables
523 6. If you have multiple catalogs, edit the update_bacula_tables
524 script and put the name of another database, and then
525 execute the script again. Repeat this until all Bacula
526 catalogs have been updated.
527 7. Start the new Bacula. If everything worked, it should
528 not print any error messages.
530 If you start from scratch, you don't need to run the update_bacula_tables
531 script because the create_bacula_tables script automatically creates the new
532 table format. However, if you are using a version of Bacula older than 3.1.9
533 (e.g. 3.0.3) then you need to run the update_bacula_tables script that will
534 be found in the <bacula>/src/cats directory after you run the ./configure
535 command. As mentioned above, before running this script, please backup your
536 catalog database, and when you do running it, be sure shutdown Bacula and be
537 aware that running the script can take some time depending on your database
539 ================================================================
542 ================== Warning !!!!!! ==========================
543 If you upgrade a previous Win32 client installation, you must
544 first stop the File daemon, then uninstall it before attempting
545 the upgrade. If you do not do so, the upgrade will probably
546 fail and you will need to manually find and run the
547 Uninstall.exe file, before you can upgrade to the new version.
548 This is because the file locations are different. If you want
549 to save your previous bacula-fd.conf file, please do so before
551 ================================================================
553 ================== Warning !!!!!! ==========================
554 Due to permissions problems on Windows Vista and later systems,
555 we no longer require SYSTEM or Administrator permissions to
556 access the binaries and configuation files. If you wish
557 to restrict access to these files, please see the New Features
558 section of the manual for how to set access control lists.
559 ================================================================
561 Note, the Win32 Installer no longer installs the Bacula Servers
562 (Director and Storage daemon). See the New Features section of
563 the manual for more details.
565 ============ Documentation improvements needed ==================
567 Note!!!!! The 5.0.0+ documentation has a number of known problems:
569 1. We have reduced the number of manuals, which has fixed many
570 of the broken links found in the old 3.0.x version, but there
571 are still some that need fixing.
573 2. Integration of the 3.0.x features into the main manuals has
576 The documentation will not be completed in the near future due to lack
577 manpower. If you are unhappy with this situation as we are, we suggest
578 you help by submitting patches to the documentation. Thanks.
582 This release includes large number of new features and changes.
583 It should be more or less compatible with previous xx.conf files
584 and File daemons providing that you are not using any of the new
587 Please see the New Features chapter of the new manual, which documents
588 some but not all the new features (we are still working on it):
590 http://www.bacula.org/5.0.x-manuals/en/main/main/New_Features_in_5_0_1.html
592 The ChangeLog has more details.