We are pleased to announce the release of Bacula version 13.0.0 to both the Bacula website (www.bacula.org) and to SourceForge. Thank you for using Bacula.

This is a major new release with many new features and a number of
changes. Please take care to test this code carefully before putting it into
production. Although the new features have been tested, they have not run in a
production environment.

Compatibility:

As always, both the Director and Storage daemon(s) must be upgraded at
the same time. Any File daemon running on the same machine as a Director
or Storage daemon must be of the same version.

Older File Daemons should be compatible with the 13.0 Director and Storage
daemons. There should be no need to upgrade older File Daemons.

New Catalog format in version 13.0 and greater

This release of Bacula uses a new catalog format. We provide a set of scripts
that permit conversion from 9.x and earlier versions to the new 13.0 format
(1024). Normally the conversion/upgrade is automatic, though there is a big
change from 9.x to 11.0 that takes longer than usual, the upgrade process will
require about twice the disk space of the actual database.

The database upgrade introduced in 11.0 should significantly increase
performance when inserting a large number of Jobs with a lot of Files into the
database catalog.

If you start from scratch, you don't need to run the update_bacula_tables
script because the create_bacula_tables script automatically creates the new
table format. However, if you are using a version of Bacula older than 5.0.0
(e.g. 3.0.3) then you need to run the update_bacula_tables script that will be
found in the /src/cats directory after you run the ./configure command.

As mentioned above, before running this script, please backup your catalog
database, be sure to shutdown Bacula and be aware that running the script can
take some time depending on your database size.

S3 Cloud Driver
To build the S3 Storage Cloud Driver, it is required to download and
install the libs3 available on https://www.bacula.org/downloads/libs3-20200523.tar.gz
Release 13.0.0 04 July 2022

New Features:
- Job 'Storage Group' support
- Kubernetes plugin
- New Accurate option to save only file's ACL and metadata
- Windows CSV (Cluster Shared Volumes) support
- More logging for daemon<->daemon connections in Job log output
- Tag support on catalog objects
- Support for SHA256 and SHA512 signatures in FileSet
- External LDAP Console authentication

Misc Features:
- Windows installer 'Silent Mode' options
- Add PriorJob to bconsole 'llist job' output
- Check for IP SANs when verifying TLS certs
- Clarify SD vbackup Device error message
- Remove deprecated sbrk in MacOS and Windows
- Add bconsole .jlist command to get JSON output from regular list commands
- Ensure that the Director will reject catalog updates from the FD
- Add variable for PreviousJobId in mail messages
- Respect the 'nodump' flag in more OSes than just BSD
- Add debug/trace/tags information to .status header
- Handle lin_tape end of device with the new 'Use Lintape=yes' Device directive
- Add MaximumJobErrorCount FileDaemon directive
- bsmtp: Add the possibility to add emails separated with a comma as recipient list
- SDPacketCheck FileDaemon used to control the network flow
- Add bconsole .bvfs_lsfiles allfiles command

Main Fixes:
- Fix org#2188 About the presence of FileSet and Pool directives in the Job
- Fix Director crash for Client Initiated Backup
- Fix Director crash for Migration Job
- Fix incorrect output for the .status client command
- Skip XATTR larger than MaximumNetworkBuffer
- Fix deadlock when starting the Director with an improperly configured catalog
- Fix Director crash caused by BAT
- Fix org#2627 About Director crashing for Copy Jobs and resource rename
- Move the delete volume event just before the actual deletion
- Fix mail variables not working after a conf reload
- Fix OpenBSD chio-changer script
- Fix SQL query generated with ACLs
- Fix heartbeat segfault when the Job is terminated very quickly
- Fix About wrong backup Client displayed to the user when the original Client doesn't exist
- Fix org#2605 About incorrect message in restore command
- cdp: open the inotify stream using the CLOEXEC (close on exec) flag
- docker: Check the presence of the docker tools during loadPlugins()
- Fix reload issue when a Job doesn't have a Pool defined
- Fix Copy Job with SelectionType=PoolUncopiedJobs selecting Jobs from wrong Pool
- Fix about checking for Storage being used for Job restart/resume
- Fix about incorrect variable substitution with the query command
- Fix org#2579 About incorrect JSON generated from empty Messages resource
- Fix #9116: copy job missuses the client->FdStorageAddress directive
- Fix org#2658 About segfault with bsdjson with incorrect parameters
- Skip storage daemon detection if the information is not available in the BSR
- alist: Fix for memory overflow access
- Fix org#2659 Install dbcheck and bsmtp in 755
- Fix org#2662 About SQLite migration script issue
- snapshot: Adapt for BTRFS 5.17
- snapshot: Fix snapshot delete/prune command
- snapshot: Fix #9143 About snapshot not properly stored in the catalog
- snapshot: Add support for new LVM 2.03.15
- rpms: Fix org#2633 about log directory not created on Centos7

GUI:
- baculum: Fix clearing OAuth2 properties after testing API connection on security page
- baculum: Fix directing to default page after log in for users with non-admin roles
- baculum: Fix #2667 keep original fileset options order
- baculum: Add to install wizard pre-defined b*json tool paths for FreeBSD and older Debian/Ubuntu
- baculum: Fix #2661 required parameter PHP error on PHP 8.0
- baculum: Fix error calling method_exists() with non-objects on PHP 8
- baculum: Fix clearing OAuth2 properties after testing API connection on security page
- baculum: Fix directing to default page after log in for users with non-admin roles
- baculum: Add to install wizard pre-defined b*json tool paths for FreeBSD and older Debian/Ubuntu
- baculum: Fix #2661 required parameter PHP error on PHP 8.0
- baculum: Fix error calling method_exists() with non-objects on PHP 8