Release Notes

This information is also available as CHANGELOG.md in the corresponding branch of the Bareos GitHub project

Note

See Bareos Binary Release Policy for more information about available versions.

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Breaking changes

  • Bareos 25 disables SSL on the PostgreSQL connection, as we have observed strange issues with SSL enabled.Issue #1965

  • Bareos 25 and later will not modify or extend existing configuration directories on package updates PR #2338
    Note: on FreeBSD unmodified configuration changes from Bareos <= 24 will get removed and replaced by the new default configuration of the current package.

  • Glusterfs FD plugin and SD backend is deprecated and will get removed in 26. ### Storage -> Device Count behavior changes

If the Count directive is specified with a value > 1, duplicated devices will be created starting from serial-number 0000 up to Count. The 0000 device is automatically assigned ‘Autoselect=No’. Additionally, an autochanger resource is created with the name of the device the Count directive is specified for. The duplicated devices will be assigned to this autochanger unless they are used in another autochanger already.

See explanations and example in documentation https://docs.bareos.org/TasksAndConcepts/VolumeManagement.html#concurrent-disk-jobs

Configuring a disk Autochanger

If you want to run multiple jobs in parallel to the same disk storage, you can now simply specify the count directive in the (Storage -> Device) configuration to the number you’ve specified in MaximumConcurrentJobs (Director -> Storage).

If you want to migrate from your manually configured disk autochanger to simply using the count directive:

  1. remove the disk autochanger resource

  2. have a storage device with a specified count directive (with value >1)

  3. wherever you used the disk autochanger name before, use the name of the device from step 2.

Removed

  • config: deprecate file daemon as alias for client in FD config PR #2187

  • glusterfs: deprecate plugin and backend PR #2416

Fixed

  • cats: fix version.map.in PR #2064

  • webui: fix for PHP < 7.3 PR #2067

  • cmake: fix MARIADB_MYSQL_INSTALL_DB_SCRIPT usage PR #2040

  • Fix building ndmjob program PR #2079

  • bareos-config-libs: double quote dbconfig values PR #2111

  • freebsd: automate creation of pkg-plist.database-postgresql PR #2102

  • plugin: postgresql use integer for savepkt.object_index PR #2132

  • bconsole: enable app icon on windows PR #2105

  • windows: fix readlink buffer size issue PR #2153

  • Fix btape fill-test problem PR #2018

  • cmake: add cmake_parse_arguments policy CMP0174 PR #2169

  • VMware plugin: fix check_mac_address() for vm.config not present PR #2059

  • scheduler: ‘last’ keyword doesn’t allow job to be visible in status dir PR #2120

  • fix autodeflate messages and refactor setup method PR #2121

  • stored: fix crash when using jit reservation with no matching device; fix reservation error PR #2141

  • Fix 32bit compilation PR #2175

  • config: fix issues with config directive aliases PR #2159

  • cleanup: fix multi-config tests PR #2202

  • mssqlvdi-fd: add support for filestream backups PR #2072

  • cmake: fix not including BareosTargetTools in systemtests, needed for get_target_output_dir PR #2232

  • fix MaximumConcurrentJobs in docs and defaultsconfig PR #2225

  • cli-test: fix test on freebsd PR #2241

  • core: refactor config parser; fix ktls configuration; fix crashes/ub PR #2222

  • contrib add support for mariadb 11+ PR #2215

  • mariabackup: reset self.mycnf to string type PR #2252

  • dird: fix bugs in DateTime PR #2260

  • config: fix Director -> Director resource PR #2259

  • mtx-changer: make mandatory test mt-st versus cpio-mt PR #2256

  • packaging: set all *.conf.examples as %config(noreplace) PR #2268

  • disable bareosfd-python3-module-test on FreeBSD PR #2278

  • postgresql: require non-ssl connection PR #2272

  • fix problems with msvc 19.44 PR #2287

  • plugins: fix error_string construction PR #2273

  • dplcompat: fix unsupported size-suffixes on chunksize PR #2240

  • gRPC: add fixes to enable building on SUSE PR #2250

  • fix admin job issues PR #2283

  • truncate: fix return status bug PR #2300

  • stored: add new volume status ‘Unlabeled’ PR #2207

  • doc: add views & functions to developer catalog service chapter PR #2328

  • systemtests: add config-default test PR #2332

  • VMware Plugin: Adapt to pyVmomi 9 PR #2341

  • VMWare Plugin: Fix VirtualSerialPort, NVRAM timeouts configurable PR #2344

  • doc: storage backend add note about static build PR #2350

  • fix next-pool overrides by job PR #2279

  • stored: fix race condition PR #2359

  • dird: fix nextvol crash PR #2335

  • grpc: fix missing some early events PR #2333

  • grpc: fix extra / for directories PR #2373

  • packaging: add setcap/getcap requirements PR #2347

  • scsicrypto: don’t expose kek in job log PR #2386

  • RPM: fix restarting bareos-fd on upgrades from bareos <= 24 PR #2395

  • dird: fix mark crash PR #2401

  • Fix droplet build PR #2412

  • Fix some spelling issues PR #2403

  • debian: remove dbc_debug to avoid username/password leakage PR #2417

  • uniformized variables PR #2391

  • plugin: postgresql do testing with wal compress on PR #2408

  • cmake: fix traymonitor startup on windows PR #2423

Documentation

  • docs: fix grpc-fd plugin call PR #2068

  • docs: add devtools documentation PR #2149

  • docs rear: update to rear >= 2.8 PR #2220

  • docs: Python plugin dependencies installation PR #2315

  • docs: update disaster recovery chapter PR #2310

  • Update dir-director-MaximumConcurrentJobs.rst.inc with a warning about MaximumConcurrentJobs modification on running Directors PR #2394

  • doc: don’t alter configuration on package updates PR #2392

  • docs: introduce 3rd party plugin (Yuzuy Qumulo) PR #2418

  • Add historic data to CHANGELOG.md PR #2434

Added

  • added build-dep to libutfcpp-dev in debian-like environments PR #2056

  • add media_vault tool to contrib PR #2357

Changed

  • plugins: Fix typo in postgresql plugin PR #2066

  • Sync EvpDigest between OpenSSL <1.1 and 1.1+ PR #2086

  • winbareos-native.nsi: do not package python3 plugins PR #2076

  • logrotate: add mtx-changer debug log config PR #2039

  • cmake: add cmake check whether tirpc is installed PR #2109

  • bconsole: require only one password in the configuration PR #2116

  • openssl: unify ssl error logging PR #2078

  • Inherit RunScript elements between JobDef resources PR #2097

  • python-bareos: Add missing dh-python build dep PR #2130

  • stored: list all devices if device is invalid/missing PR #2122

  • Refactor some Xattr and Acl internals PR #1893

  • debian: Add missing build dependencies PR #2128

  • systemtests: fail if daemons have config warnings PR #2144

  • contrib: check_chunk.py improve README.md instructions PR #2147

  • build: add support for el10 PR #2106

  • VMware Plugin: Fix CBT query handling PR #2152

  • increase accepted warnings for windows PR #2191

  • webui: use TemporaryDir as userdatadir in Selenium test PR #2194

  • ndmp: remove ndmp backup level limit PR #2188

  • reduce test-matrix PR #2192

  • bareos-fd: add option for grpc fallback PR #2104

  • Make tests optional PR #2180

  • windows: single-config/single-output directory PR #2211

  • webui: use WEB_UI path in apache bareos-webui.conf file PR #2201

  • config: update directives and error out on bconsole config warnings PR #2217

  • config: add virtual file changer example + documentation PR #2090

  • stored: fix sd volume limit PR #2264

  • various cmake improvements PR #2176

  • packaging: use GCC 14 for RHEL 8/9 PR #2275

  • setgid on configdirs PR #2270

  • Replace Bsnprintf() implementation and add format attributes PR #1697

  • cmake: disable lto when linking gtests PR #2286

  • VMware Plugin: Fix for virtual USB devices PR #2213

  • build: add Fedora 42 PR #2263

  • python: fix traceback generation PR #2303

  • build: add Debian 13 PR #2290

  • bareos-check-sources: add shell_format plugin PR #2267

  • Build FreeBSD for major versions 14 / 13 (instead of minor releases) PR #2117

  • matrix: test the Debian ULC packages for OpenSSL 1.1 on Debian 11 instead of Debian 10 PR #2321

  • ndmp-bareos: Introduce incremental loop, restore 2nd file explicitly PR #2269

  • systemtest: always incremental add one job with one removed file PR #2329

  • webui: add summary subscription report PR #2340

  • set environment vars in bpipe fd plugin PR #2205

  • systemtest: speed up always-incremental with sleep 0.25 PR #2358

  • cats: fix missing locks PR #2331

  • storage: improve tapealert plugin PR #2370

  • correct backend init command in PyPI instructions (fixes #2380) PR #2381

  • debian: Do not make dbconfig sql files executable PR #2404

  • systemtests: speed up testing PR #2376

  • webui: migrate from ZF2 to Laminas PR #2385

  • don’t alter configuration on ULC package updates PR #2399

  • stored: implicitly create autochanger from device with count > 1 PR #2198

  • plugins: introduce hyper-v backup PR #2284

  • defaultconfig: introduce automatic diskchanger PR #2427

  • plugin: change prefix @hyper-v@ -> @HYPER-V PR #2431

  • plugins: introduce windows disaster recovery imager (barri) PR #2285

24.0.0 - 2024-12-16

Breaking changes

  • Support for base jobs is phased out. You can still restore jobs that use a base job, but you cannot create new backups using a base job anymore. Bareos 25 might remove restore-support for this, too.

  • When running bconsole as superuser, critical local commands @input @output @tee and @exec are disabled

  • Bareos will no longer write PRE_LABEL labels on empty media, but instead write normal labels.

Added

  • Add dedupable backend PR #1663

  • Add droplet compatible storage backend PR #1790

  • Add just in time reservation: reserve/acquire a device on first incoming write data PR #1715

  • Add new grpc plugin allowing to run python plugins in own process PR #1993

  • Add support for WORM media PR #1958

  • Add openssl 3 ulc PR #1683

Changed

  • github actions: PyPi: install setuptools PR #1589

  • restore: add fileregex parameter PR #1587

  • scripts: force cd / for all PostgreSQL scripts PR #1607

  • Improve python plugin configuration PR #1605

  • macOS: fix linking problem for macOS >= 14 PR #1592

  • dird: remove optimize_for_size/optimize_for_speed PR #1612

  • build: introduce Fedora 39 PR #1614

  • libcloud: modularize systemtest PR #1609

  • filedaemon: remove ovirt plugin PR #1617

  • vadp-dumper: fix multithreaded backup/restore issues PR #1593

  • VMware Plugin: Run bareos_vadp_dumper with optimized parameters to increase backup performance PR #1630

  • pkglists: update SUSE to have vmware packages PR #1632

  • backup report: show negative compression PR #1598

  • core: add build patch for sprintf in macos builds PR #1636

  • python-bareos: use socket.create_connection() to allow AF_INET6 PR #1646

  • Improve FreeBSD build PR #1538

  • core: sql_* add leading space to sql construct PR #1656

  • plugins: postgresql fix missing pg_backup_stop() call PR #1655

  • filed: fix vss during client initiated connections PR #1665

  • bareos-config: fix output of deploy_config PR #1672

  • Disable automated package-tests for SLES 12 PR #1671

  • Make BareosDirPluginPrometheusExporter.py work with python3 PR #1647

  • Improve FreeBSD dependencies PR #1670

  • python-bareos: integrate usage of config files PR #1678

  • cmake: cleanup PR #1661

  • bnet-server-tcp: split socket creation from listening for unittests PR #1649

  • webui: Backup Unit Report fixes PR #1696

  • windows: fix calculation of “job_metadata.xml” object size PR #1695

  • stored: fix storage daemon crash if passive client is unreachable, create better session keys PR #1688

  • bareos-triggerjob: fix parameter handling PR #1708

  • fvec: add mmap based vector PR #1662

  • core: fix various data races (connection_pool/heartbeat_thread) PR #1685

  • filed: skip stripped top level directories PR #1686

  • jcr: fix some compiler warnings PR #1648

  • build: Fix debugsource RPM package generation PR #1713

  • Bugfix: Clean up error handling in LDAP plugin, fix dependencies PR #1717

  • crypto_wrap: replace aes wrap with openssl aes wrap algorithm PR #1718

  • dbcheck: fix dbcheck crash if password is not set in catalog resource PR #1710

  • Require python3 explicit PR #1719

  • cmake: put generated files into CMAKE_BINARY_DIR PR #1707

  • increase warning level on C/C++ compiler PR #1689

  • VMware Plugin: Backup and Restore NVRAM PR #1727

  • doc: add backtick around .? description PR #1752

  • PR template: remove backport hints PR #1762

  • python-bareos: use TLS-PSK from core ssl module (available since Python >= 3.13) PR #1756

  • [percona-xtrabackup] prevent High memory usage for no reason (IO_CLOSE) PR #1724

  • docs: improve handling of ResourceItem descriptions PR #1761

  • pr-tool: give hint about commit headline length limits PR #1763

  • stored: fix some sd error messages; add additional check during restore; split up always-incremental-consolidate test PR #1722

  • Generate LICENSE.txt from LICENSE.template PR #1753

  • Allow cross-building for Windows on newer compiler PR #1772

  • cats: fix subscription view missing mariabackup plugin PR #1767

  • contrib: add reschedule_job_as_full.sh PR #1786

  • replace https://bugs.bareos.org by https://github.com/bareos/bareos/issues/ PR #1808

  • tools: remove perl in mtx changer PR #1740

  • bsmtp: add fixes to be more rfc compliant PR #1795

  • pr-tool: update LICENSE.txt PR #1773

  • tools: add dedup estimation tool bdedupestimate PR #1654

  • pr-tool: add backport tool PR #1639

  • Build FreeBSD 13.3 and 14.0 PR #1765

  • Build ULC and EL_9 for aarch64 PR #1821

  • webui: fix and improve update check PR #1809

  • python-bareos: fix description PR #1840

  • contrib: fix reschedule_job_as_full.sh PR #1853

  • pull-request-template: add milestone check to reviewers list PR #1868

  • contrib: add pure python statefile parser PR #1789

  • Use only MinGW VSS PR #1847

  • VMware Plugin: Adapt to Python 3.12 PR #1850

  • freebsd: fix build issues with ports tree 2024Q3 PR #1883

  • Improve PythonFdWrapper class PR #1846

  • windows: build natively with msvc compiler PR #1744

  • alist: fix race condition while iterating PR #1859

  • build: enable building for Fedora40 and Ubuntu 24.04 PR #1815

  • ULC: build the universal linux client also for rpm based OS. PR #1824

  • consolidate: disable vfull duplicate job check PR #1739

  • dird: disallow running always incremental virtual full jobs with empty jobid list PR #1738

  • msgchan: fix deadlock PR #1858

  • VMware Plugin: Add option restore_allow_disks_mismatch PR #1876

  • matrix remove obsolete SUSE PR #1888

  • cats: scripts add option –no-psqlrc to psql PR #1900

  • filed: fix python plugin crash on python <3.10 PR #1889

  • vadp-dumper: fix out of bounds read PR #1908

  • webui: fixing selenium tests PR #1885

  • plugins: adjust plugin info formatting PR #1919

  • python-bareos: fix backslash usage in regex PR #1917

  • Libcloud Accurate File Backup PR #1903

  • cats: add missing database locks PR #1787

  • webui: properly set focus to input box after each command PR #1936

  • bscrypto: fix and update code, and move CLI parsing to cli11, add systemtests PR #1734

  • docs: add ADR infrastructure and first ADRs PR #1945

  • nsi installers: remove postgresql backend PR #1914

  • systemtests: fix plugin postgresql testrunner-* PR #1947

  • webui: fix handling deleted clients in restore browser PR #1933

  • console.cc: forbid @exec etc. as privileged user PR #1950

  • github actions python-bareos: add workflow_dispatch PR #1966

  • FreeBSD: fix sed inplace usage, use bin/sh as shebang for script, pkg make director dependent of database-postgresql PR #1961

  • dir: fix DbLocker usage PR #1953

  • debian: fix dedupable backend names PR #1977

  • external packages: use CPM packages instead of third-party directory PR #1963

  • scripts: remove unmaintained bareos-explorer PR #1990

  • build: add support for Fedora 41 PR #1996

  • filed: detect integer overflow during backup PR #1952

  • dedupable device: fix example files PR #2029

  • bareosfd_test.py: allow a delta of 1.1 PR #2031

  • mssql TearDownVdiDevice(): enhance error reporting PR #2008

  • macos: update build environment PR #2035

  • NDMP_NATIVE: enable full restore, eject tape before unload, enable update of NDMP environment PR #1862

  • vmware: upgrade vmware vix disklib to version 8.0.3

  • plugins: Fix typo in postgresql plugin PR #2071

Removed

  • plugins: remove old deprecated postgres plugin PR #1606

  • Remove EOL platforms PR #1684

  • dird: remove BaseJob directives PR #1969

Documentation

  • docs: improvements for droplet, jobdefs PR #1581

  • docs: fix Pool explanation for migration jobs PR #1728

  • github: introduce template for issues PR #1716

  • docs: improve pluginAPI docs PR #1805

  • Fix mistake in VolumeManagement.rst PR #1829

  • docs: improve Restoring a Bareos Server section PR #1878

  • Update ReaR documentation PR #1871

  • docs: improve debuginfo install description (fix issue #1943) PR #1980

  • docs: add debian howto start daemons instructions PR #1998

  • docs: move bareos-devel to github discussion PR #1989

  • docs: fixed typo in the filedaemon service name PR #2027

  • docs: add worm support paragraph PR #2037

  • docs: fix grpc-fd plugin call PR #2069

Fixed

  • core: fix some overlooked issues in msvc merge PR #1912

  • dird: fix purge oldest volume PR #1628

  • Fix continuation on colons in plugin baseclass PR #1637

  • plugins: fix cancel handling crash PR #1595

  • Fix bareos_tasks plugin for pgsql PR #1659

  • core: Fix compile errors on GCC 14 PR #1687

  • stored: fix authentication race condition / deadlock PR #1732

  • Fix warning about missing delcandidates table in director PR #1721

  • stored: fix not counting files correctly in mac jobs when autoxflate is enabled PR #1745

  • cats: fixes BigSqlQuery header fetching PR #1746

  • Fix issue #1780 libpng icc profil PR #1788

  • Fix missing DLL in windows packaging PR #1807

  • VMware Plugin: Adapt to older urllib3 versions PR #1810

  • fix various memory leaks PR #1723

  • fix sql error on bad virtualfull; detect parsing errors with strtod PR #1725

  • windows: fix some crashes, change handling of invalid paths; lex: add better error detection; accurate: fix out of bounds writes PR #1793

  • create_bareos_database: fix db_name not being double quoted PR #1865

  • fix warnings on FreeBSD 13.3 compiler PR #1881

  • dir: fix crash on purge with job without client PR #1857

  • fix runtime status PR #1872

  • Fix multiple ACL handling bugs PR #1875

  • fix #1775 plugin: fd mariabackup add support mariadb 11+ PR #1835

  • deb control files: depend on python3-bareos PR #1956

  • fix include-ordering on FreeBSD that could cause build issues PR #1972

  • stored: fix volume size mismatch PR #1992

  • add Honor No Dump Flag to config output PR #1994

  • JSON API: make sure, strings are valid UTF8 PR #1922

  • dird: fix mark command not accepting full windows paths PR #1938

  • stored: explicitly flush after labeling PR #2022

  • bareos-version-from-git: fix output for wip tags PR #2019

  • lib: add source_location; fix test crash PR #2006

  • plugins: postgresql add support for PostgreSQL 17 + improvements PR #2004

  • cats: fix version.map.in PR #2065

  • webui: fix for PHP < 7.3 PR #2070

23.0.0 - 2023-12-13

Breaking changes

  • Automatic downgrades to cleartext connections are now disabled by default. Connecting to Bareos filedaemon < 18.2 is not possible anymore - even if configured with TLS certificates. Please update your clients. Only if you absolutely cannot update a client you can configure TLS Enable = no explicitly. However, this is inherently insecure.

  • The old catalog backup script make_catalog_backup.pl has been removed. Its replacement make_catalog_backup was already the default. If you didn’t already update your BackupCatalog job, now is the time to do so.

  • Support for Windows x86 (32Bit) has been removed.

  • Support for Python 2 has been removed.

  • The following deprecated configuration options have been removed, make sure to update your configuration accordingly:

    • Director daemon

      • Pid Directory

      • Maximum Connections

    • File daemon

      • Pid Directory

      • Compatible

      • Maximum Connections

    • Storage daemon

      • Pid Directory

      • Compatible

      • Maximum Connections

  • The following configuration defaults have changed:

    • Director daemon

      • Hard Links = no (was yes) in FileSet->Include->Options

      • TLS Require = yes (was no)

    • Storage daemon

      • Maximum Concurrent Jobs = 1 (was 0) in Device

      • Maximum Block Size = 1048576 (was 0) in Device

      • TLS Require = yes (was no)

    • File daemon

      • TLS Require = yes (was no)

  • The PostgreSQL plugin got a complete rewrite, the minimal changes are:

    • module_name=bareos-fd-postgresql

    • db_host=

    • wal_archive_dir=

Added

  • file checksums: add new signature algorithm xxh128 PR #1359

  • stored: buffer fd messages PR #1539

  • filed: parallel compression/reading/sending PR #1533

  • cats: postgresql introduce pl/sql lstat_decode() function PR #1466

  • bareos-fd-plugin: new python PostgreSQL PR #1541

  • Improve python plugin configuration PR #1619

  • tls: add tls v1.3 configuration option PR #1577

  • restore: add fileregex parameter PR #1618

  • webui: add machine-readable copyright file PR #1419

  • webui: add config resource graph to analytics (experimental) PR #1412

  • build: add Debian 12 PR #1477

  • build: add Fedora 38 PR #1563

  • build: add Fedora 39 PR #1615

  • devtools: add pr-tool to automate PR review and merge PR #935

Changed

  • VMware Plugin: introduce pyVmomi 8.x compatibility PR #1352

  • VMware Plugin: Backup and Restore of VMs using multiple datastores PR #1473

  • VMware Plugin: improve snapshot cleanup PR #1484

  • webui: enable sorting on version column PR #1365

  • webui: create internal api module PR #1447

  • webui: make restore merge options configurable PR #1445

  • webui: update German translation PR #1437

  • webui: update localization PR #1414

  • webui: improve localization process PR #1429

  • webui: re-add show update status for clients PR #1371

  • webui: upgrade bootstrap to version 3.4.1 PR #1550

  • tray-monitor: build against Qt6 when present PR #1011

  • dird: skip disabled clients in status command PR #1367

  • ua_restore: Add additional client info for restore report PR #1374

  • ua_restore: enable restore from archive PR #1372

  • dird: enable default options in fileset config when no options are explicitly specified PR #1357

  • dird: cats: adapt purge command to delete jobs with specific jobstatus and/or from specific pool PR #1349

  • dird: allow to disable TLS-PSK downgrades PR #1398

  • dird: keep copy and migration control/administrative jobs PR #1421

  • dird: deprecate client Autoprune, JobRetention, and FileRetention PR #1425

  • dird: cats: abort purge when there are no eligible jobids PR #1512

  • dird: show current and allowed console connections PR #1487

  • dird: add prev and new jobid variables PR #1499

  • dird: list jobs: add level keyword and accept a list of job levels PR #1548

  • consolidate: make virtualfull jobs spawned by consolidate job inherit same priority and max concurrent jobs PR #1530

  • database: improve subscription view PR #1542

  • update Maximum Concurrent Jobs default value to 1 PR #1426

  • stored: change default block size to 1 MiB PR #1396

  • stored: add AccessMode SD->Device directive to reserve devices exclusively for reading or writing PR #1464

  • stored: automatically increment tape block size in case the buffer is too small PR #1496

  • vss: remove dependency on live system during backup PR #1452

  • bsmtp: make mailhost and port message info a debug message PR #1507

  • improve default configuration PR #1508

  • ua_restore: change restore argument handling PR #1516

  • plugins: switch python-ldap plugin to python3 PR #1522

  • python-fd: allow fd plugins to (re-)set since-time and disable/re-enable timestamp/accurate checks PR #1505

  • python-bareos: add missing dirname variable PR #1460

  • python-bareos: add timeout setting when connecting to the director. PR #1583

  • python: adapt for new Python module versions PR #1546

  • Python Plugins: Avoid pop(0) performance impact PR #1351

  • config: deprecate LabelType and CheckLabels PR #1521

  • daemons: set CLI11 error exit code to 41 and bareos config parsing error exit code to 42 PR #1515

  • require TLS by default PR #1529

  • database: media table: use bigint instead of integer PR #1579

  • configuration: deprecate base jobs PR #1580

  • Enable automatic cpu-dependent dispatch for xxHash PR #1601

  • packaging: systemd unit: set a limit of restart PR #1450

  • Allow to use the third-party libraries of the OS instead of the bundled ones PR #1441

  • scripts: config-lib improve get_local_hostname fallback PR #1402

  • cleanup: remove some unused functions and shrink number of includes in bareos.h PR #1433

  • rename gettext macro PR #1588

  • build: replace sprintf by snprintf due to upgraded MacOS compiler, change linking of googletest PR #1361

  • introduce php-cs-fixer and apply PSR-12 guidelines PR #1403

  • berrno_test.cc: accept both 271E and 273E PR #1407

  • Sanitizers: add ASAN options to avoid crashes PR #1410

  • packaging: cleanup SUSE webui dependencies PR #1493

  • build: adapt matrix and pkglist for changes to CI PR #1490

  • build: switch from FreeBSD 13.1 to 13.2 PR #1524

  • build: switch to FreeBSD 12.4 PR #1440

  • FreeBSD: build cleanup PR #1336

  • testfind: reuse filedaemon logic PR #1234

  • core: make resource/configuration locking safer PR #1325

  • systemtests: rename virtualfull -> virtualfull-basic ,bareos -> bareos-basic, bconsole -> bconsole-basic PR #1339

  • improvements to pr-tool PR #1389

  • pr-tool: handling POEditor commits and optional github ci tests PR #1434

  • pr-tool: Add options to be used in CI runs PR #1488

  • bareos-check-sources: ignore bootstrap*.css PR #1556

  • utils: add a thread-safe single-producer/single-consumer queue PR #1504

  • devtools: Update python dependencies PR #1531

  • scripts: force cd / for all PostgreSQL scripts PR #1608

  • dird: remove optimize_for_size/optimize_for_speed PR #1613

  • macOS: fix linking problem for macOS >= 14 PR #1620

  • filedaemon: remove ovirt plugin PR #1626

  • vadp-dumper: fix multithreaded backup/restore issues PR #1623

  • VMware Plugin: Run bareos_vadp_dumper with optimized parameters to increase backup performance PR #1631

Removed

  • cats: remove remains of deprecated databases PR #1377

  • dird: filed: stored: remove deprecated maximumconnections option from configuration PR #1340

  • filed: stored: remove deprecated compatible option from configuration PR #1341

  • daemons: remove deprecated Pid Directory config option PR #1426

  • core: remove deprecated make_catalog_backup.pl PR #1378

  • build: remove python2 support PR #1520

  • build: disable building for Windows 32-bit PR #1582

  • build: remove openSUSE 15.3 and Univention 5.0 from test matrix PR #1469

  • cats: remove dynamic catalog backends PR #1392

  • remove no longer used pkglists PR #1335

  • Remove unnecessary loader/module split in Python modules for the FD PR #1602

  • webui: remove some development leftovers and artefacts PR #1422

Fixed

  • VMware Plugin: Fix backup and recreating VMs with PCI passthrough for GPU PR #1565

  • VMware Plugin: Fix transformer issues PR #1532

  • VMware Plugin: fix restore to different vmname PR #1390

  • vmware_cbt_tool.py: pyVmomi 8.x compatibility PR #1386

  • stored: fix support for non-tape block-addressed devices PR #1554

  • stored: remove warning for maximum block size for tapes PR #1375

  • stored: fix crashes of storage tools when autoxflate plugin is loaded PR #1348

  • storage daemon: fix crash on volume swap PR #1356

  • status storage: fix wrong data displayed about waiting jobs PR #1476

  • stored: fix blocksize warning PR #1503

  • stored: fix incoherent meta data when concurrently writing to the same volume PR #1495

  • daemons: update network handling when IP protocols unavailable PR #1454

  • autoxflate: fix autoxflate on replication PR #1576

  • core: fix schema public with PostgreSQL 15 PR #1449

  • cats: fix issue where startfile field gets wrongly updated PR #1346

  • cats: fix for integer overflow issue when using offset in llist PR #1547

  • catreq.cc: suppress missing batch con warning PR #1578

  • postgresql plugin: read config parameters from cluster PR #1599

  • cats: fix creates, grants and drops postgresql PR #1502

  • Improve handling of catalog requests that try to reduce VolFiles, VolBlocks and VolBytes PR #1431

  • dird: fix expected file count error during bsr build PR #1511

  • tools: fix tools not starting up on windows PR #1549

  • bsmtp: fix and update code, and change CLI parsing to CLI11 PR #1316

  • restore: fix failed restores showing Restore ok with warning PR #1387

  • json generation: Fix some leaks and an integer overflow PR #1130

  • bsmtp bls bextract: fixes for command line parsing PR #1455

  • checkpoints: fix performance drop on big volume restores PR #1345

  • Fix problem with reoccuring files in always incremental PR #1395

  • Consolidate: fix for consolidate job’s client name not being correctly shown PR #1474

  • filed: fix possible data-loss when excluding hardlinks PR #1506

  • filed: avoid reading from ephemeral buffer PR #1373

  • filed: fix off-by-one error when resizing acl buffer PR #1479

  • core: fixes for gcc-13 support PR #1424

  • build: fix for gcc 13.1.1 PR #1459

  • Fix gcc warnings in ndmjob program PR #1343

  • packaging: debian fix dependencies PR #1573

  • github actions: update/fix publish to PyPI workflows PR #1572

  • github actions: PyPi: install setuptools PR #1604

  • scripts: config-lib improve setup_sd_user PR #1448

  • dird: fix purge oldest volume PR #1629

Documentation

  • add explanation about binary version numbers PR #1354

  • docs: improve bareos-webui documentation PR #1366

  • docs: catalog maintenance improvements PR #1379

  • doc: improve plugin, webui, virtualfull chapters PR #1401

  • docs: move and update localization documentation PR #1415

  • check-sources: update check-sources ignores PR #1439

  • docs: replace GZIP compression by LZ4 and MD5/SHA1 signature by XXH128 PR #1453

  • docs: Windows add Antivirus section PR #1468

  • doc: renew tutorial, suggest passive client, restructure heartbeat interval PR #1543

  • docs: improvements for droplet, jobdefs, concurrents jobs for restore PR #1611

22.0.0 - 2022-12-21

Breaking Changes

  • when using PAM Bareos will now check authorization, too. If authorization is not configured, login will fail. See updated documentation on how to proceed PR #1115.

  • Bareos 22 removes the make_catalog_backup.pl perl script in favor of an improved make_catalog_backup shell script. There is a compatibility-wrapper, but that only supports simple cases. If you applied changes to BackupCatalog Job, you should immediately migrate to use make_catalog_backup. See catalog documentation PR #1081

  • Bareos changed the way its binaries parse CLI arguments. Four existing options now require two minus signs (--) instead of one (-) :

    • -xc -> --xc to export all configuration at once.

    • -xc[resource[=<name>]] -> --xc [resource [ressource-name]] to export a specific resource.

    • -xs -> --xs to export configuration JSON schema.

    • -dt -> --dt to print the debug timestamp. The rest of the options stay the same. PR #1187

  • Previously deprecated rados/ceph backend and cephfs plugin have been removed. Instead, please use the droplet backend to store into ceph via S3, and backup cephfs filesystems by backing up a mount point.

    • packages bareos-storage-ceph and bareos-filedaemon-ceph-plugin if previously installed need to be removed manually.

  • Bareos 22 removes bareos-webui support for RHEL 7 and CentOS 7

  • Bareos 22 uses the VMware VDDK 8.0.0 for the VMware Plugin. PR #1295. VDDK 8.0.0 supports vSphere 8 and is backward compatible with vSphere 6.7 and 7. vSphere 6.5 is not supported anymore.

  • Bareos 22 bareos-webui now uses php_fpm instead of mod_php. PR #1287. Update should run smoothly, for details check the “Installing Bareos Webui” chapter in the docs.

Added

  • The bareos repositories now contain add_bareos_repositories.sh which will setup the corresponding repository automatically

  • VMware Plugin: Save VM configuration and recreate VM before restore PR #1295

  • python plugins: enable direct I/O in core instead of calling python for read and write PR #1297

  • NDMP_BAREOS: add support for autoxflate plugin PR #1013

  • stored: dird: add backup checkpoints that save backup metadata to the Catalog during the execution of the backup. PR #1074

  • dird: add command line feature to print specific resources PR #1153

  • dird: extend the list command to be able to query volumes and pools by ID PR #1041

  • ndmp: introduce workaround for isilon 9.1.0.0 ‘Invalid nlist.tape_offset -1’ error PR #1043

  • packaging: installation and upgrade will check for the presence of .enable-cap_sys_rawio in your bareos config dir and will configure the required cap_sys_rawio capabilities PR #1057

  • webui: analytics module: show stored data per jobname in treemap PR #1082

  • webui: add pool column to volume lists PR #1120

  • webui: introduce themes PR #1281

  • dird: console: add jobtype parameter to (l)list jobs PR #1149

  • contrib: add support for building and packaging PR #768:

    • bareos-contrib-director-python-plugins

    • bareos-contrib-filedaemon-python-plugins

    • bareos-contrib-tools

  • tests: py3plug-fd-contrib-mysql_dump PR #768

  • tests: py*plug-fd-contrib-bareos_tasks_mysql PR #768

  • webui: introduce rerun of multiple jobs at once PR #1109

  • dird: console: add the ability to rerun multiple commas separated jobids PR #1170

  • build: Add support for Ubuntu 22.04, Fedora 36, EL 9, openSUSE 15.4 PR #1179

  • build: Add support for SLE_15_SP4 PR #1205

  • libcloud plugin: allow to configure the storage provider PR #1226

  • core/platform: Adding Bareos firewalld service xml files PR #1237

  • dird: Added FS Type = vfat in LinuxAll.conf for UEFI partition PR #1236

  • bareos tools: reintegrate testfind binary PR #1176

  • fd: add support for role switching on PostgreSQL add-on Issue #1456

  • build: switch from FreeBSD 13.0 to 13.1 PR #1253

  • build: run a build and test with sanitizers enabled PR #1244

  • catalog: update fileset text in fileset record PR #1300

  • stored: emit warnings for Maximum Concurrent Jobs in device configs PR #1282

  • webui: extend restore to handle plugin options PR #1276

  • webui: introduce subscription backup unit report PR #1280

Fixed

  • webui: fix job timeline x-axis UTC timestamp issue PR #1283

  • dird: fix possible crash in tls context on configuration reload PR #1249

  • dird: RunScript fixes PR #1217

  • fix file count mismatch on restores that use recycled volumes PR #1330

    • fix show command output for RunScript RunsOnClient

    • fix show verbose for RunScripts

    • execute console runscripts only on the Director

  • VMware file daemon plugin: fix restore with localvmdk=yes requires an API connection to vCenter PR #1219

  • python plugins: store architecture specific modules in sitearch (instead of sitelib) PR #698

  • debian: fix package dependencies for webui and Ceph PR #1183

  • Python plugins: fix handling of additional pluginoptions parameter PR #1177

  • debian: Let dbconfig create the Bareos catalog also with LC_COLLATE='C' and LC_CTYPE='C'. The create_bareos_database script did always do so. Requires dbconfig >= 2.0.21 PR #1031

  • fix wrong packages_dir in restapi workflow, so restapi packages will be released to PyPI PR #1033

  • core cats: Add IF EXISTS in drop table statements fix for bug #1409 (Allow usage of ExitOnFatal) PR #1035

  • sql_get.cc: fix error logging in GetJobRecord() for jobname PR #1042

  • webui: fix empty job timeline issue if date.timezone is not set in php.ini PR #1051

  • Fix for wrong update message when updating all volumes from all pools with no existing volumes PR #1015

  • Fix context confusion in Director’s Python plugins PR #1047

  • Fix several cases of undefined behaviour, memory corruption and memory leaks PR #1060

  • webui: fix undefined array key warning PR #1098

  • webui: fix deprecated notice required param follows optional param PR #1097

  • webui: fix uncaught TypeError if node.data is null PR #1087

  • core cats: Add DROP VIEWS instruction in drop_bareos_table script PR #1092

  • Don’t keep volume open after acquiring a read-storage failed in migrate/copy/virtual full PR #1106

  • webui: show DIR message if ACL prevents a job rerun PR #1110

  • webui: fix restore file tree rendering PR #1127

  • dir: fix crash when there are no jobs to consolidate PR #1131

  • webui: get volume and pool params from query instead of route PR #1139

  • packaging: FreeBSD add missing ddl/update 2171_2192 and 2192_2210 files PR #1147

  • Fix director connects to client while Connection From Director To Client is disabled. PR #1099

  • cats: make .bvfs_update and .bvfs_versions take archive jobs into consideration PR #1152

  • Fix always-incremental-consolidate systemtest sporadic fails, and rename it. PR #1154

  • packaging: FreeBSD place all scripts into “normal” location /usr/local/lib/bareos/scripts PR #1163

  • Issue #1445 adding quotes to director name when using configure export. PR #1171

  • dir: miscalculation when using always incremental keep number PR #1159

  • Windows Installer: made ‘Director PotsgreSQL Backend Support’ checked by default if ‘Full PostgreSQL’ installation selected. PR #1185

  • SQL: queries: fix sql queries to handle negative job duration value PR #1198

  • dird: fix TLS-PSK credential not found error with very long job names PR #1204

  • dird: Add missing newline to job message for TLS handshake PR #1209

  • devtools/dist-tarball.sh: fix name if version contains “~pre” PR #1221

  • dird: fix odd-even weeks parsing bug in schedule PR #1210

  • bcopy: fix crash in bcopy when using certain cli arguments PR #1211

  • webui: fix password string length limitation Issue #1480

  • systemtest: fixed issues with systemtests not succeeding on first try PR #1186

  • btape: dumplabel only when label is valid PR #1266

  • dird: fix crash in .jobstatus PR #1278

  • testfind: remove unnecessary libraries and fix systemtest PR #1250

  • stored: systemtests: docs: checkpoints improvements PR #1277

  • winbareos.nsi: fix working directory in configure.sed PR #1288

  • core: BareosDb::FindLastJobStartTimeForJobAndClient: take into account Running job Issue #1466

  • backup.cc: fail backup when Write Bootstrap to pipe fails PR #1296

  • webui: fix pool link in job details formatter Issue #1489

  • webui: patch zf2 to eliminate a php warning caused by zend-stdlib PR #1305

  • dird: fix director resource not showing when using show director or the --xc director cli option PR #1315

  • webui: add timeline chart by jobs PR #1059

  • bareos-fd-postgres: properly close database connection PR #1326

  • filed: fix handling of STREAM_ACL_PLUGIN during restore PR #1308

  • dird: fix tls protocol shown and document TLS Protocol & ciphers restriction PR #1319

  • dird: fix for crash when starting rescheduled jobs PR #1327

  • VMware Plugin: fix restore of backups taken before version 22 PR #1337

Changed

  • contrib: rename Python modules to satisfy PEP8 PR #768

  • contrib: adapt to Python interface of Bareos >= 20 PR #768

  • Qmsg: in case of syslog logging use adapted log priority instead of always LOG_ERR PR #1134

  • webui: remove an unnecessary .bvfs_get_jobids and buildSubtree() call PR #1050

  • git: set merge strategy for CHANGELOG.md to union PR #1062

  • stored: enable labeling of tapes in drives even if autoselect=no PR #1021

  • dir, stored: start statistics threads only if needed PR #1040

  • gitignore: cleanup .gitignore files PR #1067

  • webui: update jstree from v3.3.8 to v3.3.12 PR #1088

  • webui: update jstree-grid plugin PR #1089

  • dird: Consolidation now purges candidate jobs with no files instead of ignoring them PR #1056

  • dird: Virtual Full will now terminate if one of the input jobs had its files pruned PR #1070

  • webui: new login screen background and adapted logo to support Ukraine PR #1122

  • console: multicolumn output: fill columns first PR #1072

  • cats: include only jobtypes in list jobtotals that write data to volumes PR #1135

  • jstreegrid: remove handling of IE < 8 using navigator interface to avoid warnings in chrome PR #1140

  • dird: bvfs_update now uses unordered_map instead of htable for the pathid cache PR #1138

  • cats: filtered zero file jobs list is now sorted PR #1172

  • dird: console: changed list jobs jobstatus argument to accept comma separated value PR #1169

  • cats: management scripts remove db_driver support PR #1081

  • bconsole: multiple identical successive commands are only added to history once PR #1162

  • build: Now use solaris 11.4-11.4.42.0.0.111.0 PR #1189

  • bconsole: removed commas from jobid attribute in list jobs and llist jobs outputs PR #1126

  • testing: matrix.yml: run multiple tests sequentially PR #1193

  • console: aborting job run if jobid doesn’t exist in catalog PR #1188

  • daemons: changed daemon CLI arguments parsing PR #1187

  • config parser: Refactor config reloading by using shared pointers instead of callbacks PR #1151

  • tests: remove unused config files PR #1247

  • dird: fix config reload and unit tests dependency issue PR #1161

  • pruning: prune jobs doesn’t ask for jobtypes anymore, and prunes all jobtypes except Archives (A) PR #1215

  • dird: cats: remove copy and migration jobs with no data from catalog PR #1262

  • build: enable compiling on ARM PR #1270

  • core and webui: adapt binary info messages to new wording PR #1298

  • build: enable -Wextra warning level and apply required changes PR #1261

  • lib: make foreach_res() reload-safe PR #1279

  • build: prepare Bareos for an upgrade to the C++20 standard PR #1271

  • stored: refactor the SD’s backend interface PR #1272

  • core: use distinct names for JobControlRecordPrivate PR #1307

  • webui-selenium-test: use options instead of chrome_options PR #1306

  • systemtests: improve webui testing PR #1313

  • dird: prohibit PAM usage with user ACL and Profiles in consoles PR #1318

  • webui: cleanup webui source tree PR #1314

  • dird: do device reservation as late as possible, i.e. after run before job scripts PR #1273

  • ndmp_tape.cc: do not log current rctx->rec in joblog PR #1324

  • dird: stored: set statistics collection as deprecated PR #1320

  • webui: switch from mod_php to php-fpm PR #1287

  • dird: status subscription: extend output PR #1312

  • build: unify and merge builds where possible PR #1309

  • python plugins: give python3 plugins priority over python2 plugins in packages PR #1332

  • btraceback: make the gdb script processing failsafe PR #1334

  • Python plugins: add default module_path to search path PR #1038

  • systemtests: wait for mariadb shutdown PR #1048

  • tests: simplify test coverage analysis PR #1010

  • tests: skip mysql tests if root PR #1197

  • webui: adapt links to new URLs after website relaunch. PR #1275

Deprecated

  • make_catalog_backup.pl is now a shell wrapper script which will be removed in version 23.

  • marked config directive Compatible as deprecated PR #1284

  • deprecated Maximum Connections directive from all daemons and removed all uses in code. Directive has no effect anymore PR #1285

  • deprecate python2 plugins PR #1331

Removed

  • removed the -r run job option. PR #1206

  • removed ceph/rados backend and filedaemon plugin PR #1216

Security

Documentation

  • Univention Corporate Server (UCS) has no longer extended integration, just normal Linux integration PR #1242

  • cleanup update section PR #1054

  • clarifies MySQL catalog migration process PR #1054

  • split Howtos.rst file into one file per section PR #1054

  • split the very long Plugins.rst file into one file per Bareos plugin PR #1046

  • rework SD plugin scsicrypto linux sg_io ioctl subsection for cap_sys_rawio PR #1057

  • improve action Python plugin documentation, by removing File in Fileset example PR #1079

  • improve Mysql - PostgreSQL howto PR #1093 fixing Issue #1429

  • clarifies Sphinx bareos-extension parallel_read_safe status to False PR #1037

  • fix incorrect link in contrib PythonFdPlugin Issue #1450

  • clarifies CheckFileChanges option not intended to be used with plugin Issue #1452

  • fix broken links with sphinx linkcheck PR #1200

  • add security FIPS section PR #1181

  • add instruction to run sphinx linkcheck before release PR #1218

  • FreeBSD install create /usr/local/etc/pkg/repos directory PR #1227

  • remove deprecated rados & ceph references from documentation PR #1216

  • improve Wild(*) section with links to example PR #1228

  • add example to selection type = sql query PR #1229

  • dir-job-RescheduleTimes remove wrong default sentence PR #1225

  • update Appendix/HardwareSizing DB size with new numbers and formulas Issue #1477

  • add description to fileset signature sha256 and sha512 parameter PR #1230

  • improve troubleshooting and debugging chapter PR #1233

  • mssql add a warning in case of pitr to run another backup full or diff afterwards PR #1235

  • docs: Added Developer FAQ section with first question. PR #1202

  • describe Debian installation based on add_bareos_repositories.sh PR #1238

  • update Pull Request workflow description PR #1243

  • docs: improve operating system table PR #1254

  • add FAQ entry about howto upgrade from Bareos < 20 with Bareos Python packages installed PR #1260

  • describe usage of the add_bareos_repositories.sh script PR #1248

  • Appendix/Bareos Programs improvements PR #1255

  • obsolete comments removed PR #1268

  • fix bsmtp get-usage.sh call PR #1267

  • add new VSS troubleshooting instruction to Windows chapter PR #1317

  • update installation and renew update chapters PR #1329

  • add chapter about Bareos Binary Release Policy PR #1333

  • add chapter for mariabackup db plugin PR #1016

21.0.0 - 2021-12-21

  • 300+ PRs

  • 1.000+ commits since Bareos 20

  • 30 contributors

  • 72.170 line added

  • 318.812 lines removed

Breaking Changes

  • Bareos now automatically reconnects to the catalog database after the connection was lost. To keep the old behaviour, set Reconnect = no in your Catalog resource. PR #860

  • Bareos now listens on IPv4 and IPv6 by default. If you currently use [DIR|SD|FD] Address or [DIR|SD|FD] Address, you may need to update your configuration to get the same behaviour as before. PR #882

  • Support for MySQL and SQLite catalog backends has been removed. Switch to PostgreSQL via bareos-dbcopy on Bareos 20 before upgrading. PR #949

  • Bareos no longer supports Bacula tape formats <= 10 (Bacula <= 1.26 which was released 2002). PR #1019

  • Deprecated configuration directives have been removed. If you have any configuration settings deprecated in Bareos 20, you will need to remove these before upgrading. PR #938

Fixed

  • Issue #1374 Include zero-file incremental backups in always-incremental consolidation PR #995

  • Issue #847: fix for CVE-2017-14610 PID files that could be exploited on certain systems PR #928

  • Issue #1194: when doing an accurate incremental backup, if there is a database error, a full backup is done instead of reporting the error PR #810

  • fix a bug in VMware plugin where VMDK Files were created with wrong size when using the option localvmdk=yes PR #826

  • fix a bug where the restore browser would not recognize globbing wildcards in paths PR #801

  • Issue #1329: If CommandACL limits any command, no messages can be read but “you have messages” is displayed. PR #763

  • fix lost byte in ChunkedDevice PR #910

  • fix director crash on “update slots” when there is a parsing issue with the autochanger or tape devices PR #919

  • Fix occassional “NULL volume name” error when non-busy, but blocked drive is unloaded PR #973

  • reorder acquire on migrate/copy to avoid possible deadlock PR #828

  • fix scheduler running disabled jobs after executing the disable command PR #924

  • fix shutdown of the Storage Daemon backends, especially call UnlockDoor on tape devices PR #809

  • fix possible deadlock in storage backend on Solaris and FreeBSD PR #809

  • fix possible read/write problems when using droplet with https PR #765

  • fix “configure add” handling of quoted strings PR #764

  • fix invalid file descriptor issue in the libcloud plugin PR #702

  • fix crash when loading both python-fd and python3-fd plugins PR #730

  • fix parallel python plugin jobs PR #729

  • fix oVirt plugin problem with config file PR #729

  • Issue #1316: storage daemon loses a configured device instance PR #739

  • fix python-bareos for Python < 2.7.13 PR #748

  • fixed bug when user could enter wrong dates such as 2000-66-100 55:55:89 without being denied PR #707

  • fix volume-pruning to be reliable on all test platforms PR #761

  • fix memory leak in python module constants PR #778

  • fix systemtests: reduce the number of broken tests PR #771

  • fix gfapi-fd: avoid possible crash on second glfs_close() call PR #792

  • Issue #1205: PHP 7.3 issue with compact() in HeadLink.php PR #829

  • fix drive parameter handling on big endian architectures PR #850

  • Issue #1324: Infinite loop when trying to log in with invalid account PR #840

  • Issue #579: Unable to connect to the director from webui via ipv6 PR #868

  • Issue #1300: some job status are not categorized properly PR #874

  • Issue #871: UI will not load complete PR #880

  • Issue #1020: Can not restore a client with spaces in its name PR #893

  • Issue #971: Error building tree for filenames with backslashes PR #892

  • Issue #1251: Error when displaying pool detail PR #903

  • Issue #1369: webui tries to load a nonexistent file PR #900

  • Issue #1232: bareos logrotate errors, reintroduce su directive in logrotate PR #918

  • Issue #1334: After deleting storage from the configuration, it still persists in the catalog db PR #912

  • Issue #1191: The web interface runs under any login and password PR #936

  • Adapt Python DIR and SD plugin Baseclasses to the modernized Python plugin API PR #923

  • Fixed all compiler warnings (on our default warning level) PR #948

  • Log LDAP info error (e.g. expired SSL cert error) PR #956

  • Adapt percona-xtrabackup test to work on updated test environment PR #982

  • fix crash in “status scheduler” command when job->client is unset PR #965

  • webui: fix a layout corner case where top navbar is hiding navtabs PR #1022

  • webui: client details now can be displayed for client names containing dots PR #1023

  • Fixed issue with error messages not showing up properly on windows systems PR #959

  • Fixed libdroplet xattr.h include issue by using sys/xattr.h PR #985

  • Fixed crash on bconsole when using autcomplete with tab PR #969

  • Fix PostgreSQL create database script PR #981

  • Unify level use with set client_min_message instruction in SQL update scripts PR #981

  • dird: avoid crash in job listing when “current” and “count” are both specified at the same time PR #1026

  • Fixed issue with llist jobs last current enable that would not display correct data PR #1025

  • fix a bug in a date function that leads to errors on the 31st day of a month PR #782

  • fix config-dump systemtest PR #736

  • fix systemtests daemon control scripts PR #762

Added

  • plugin: added mariabackup python plugin, added systemtest for mariabackup and updated systemtest for percona-xtrabackup PR #967

  • Build the package bareos-filedaemon-postgresql-python-plugin also for Debian, Ubuntu and UCS (deb packages) PR #723.

  • add reload commands to systemd service PR #694

  • add multicolumn prompt selection for selection of more than 20 items PR #731

  • add choice for the drive number in the truncate command PR #823

  • support for shorter date formats, where shorter dates are compensated with lowest value possible to make a full date PR #707

  • added option to delete selected storage in bconsole if it is orphaned PR #912

  • webui: add inchanger column to volume tables PR #998

  • webui and console: add job duration column in job listings PR #1007

  • console: prune command gained support to prune multiple volumes at once PR #966

  • webui: introduce a job timeline chart PR #1017

  • add support for Universal Linux Client PR #1019

  • systemtests: make database credentials configurable PR #950

  • systemtests: allows multiple subtests per systemtest PR #857

  • systemtests: replaced the six reload-* tests by one test PR #857

  • systemtests: replaced fileset-multiple-include-blocks and fileset-multiple-options-blocks by fileset-multiple-blocks test PR #857

  • systemtests: add systemtests fileset-multiple-include-blocks, fileset-multiple-options-blocks, quota-softquota, sparse-file, truncate-command and block-size, (migrated from regress/) PR #780

  • add bvfs and dbcheck tests to python-bareos systemtest PR #780

  • systemtests for NDMP functionalities PR #822

  • systemtests for S3 functionalities (droplet, libcloud) now use https PR #765

  • add an informative debugmessage when a dynamic backend cannot be loaded PR #740

  • add external repo bareos-contrib as subtree PR #752

  • add script devtools/dist-tarball.sh to produce the same tarball from a cloned repo everywhere PR #861

  • packages: Build also for openSUSE Leap 15.3 PR #870

  • systemtest:bareos test now also runs on btrfs filesystem PR #907

  • packages: Build also for Fedora_34 PR #869

  • packages: Build also for Debian_11 PR #914

  • packages: Build also for SLE_15_SP3 PR #952

  • add job name in End Job Session output in bls tool PR #916

  • added check for orphaned storages in dbcheck PR #912

  • contrib: Add Python DIR plugin for prometheus metrics PR #911

  • bench: added a benchmarks tool with google-benchmark, with an initial benchmark for the restore command PR #883

  • database: Add index on jobmedia mediaid,jobid PR #958

  • contrib: Add Python FD Plugin for OpenVZ container PR #908

  • packages: Build also for Fedora_35 PR #972

  • cmake: check for chflags() function and enable FreeBSD File Flags support PR #963

  • packages: Build EL_8 packages instead of CentOS_8 for RHEL 8 derivates (Alma, Rocky, CentOS Stream)PR #992

  • webui: provide a notification that NDMP restores are NOT supported by webui PR #1020

  • systemtests: add a test for the jobs last status table in webui PR #1024

Changed

  • core: systemd service: change daemon type from forking to simple and start daemons in foreground PR #824

  • debian: unify daemon (Dir,SD,FD) start behavior with RPM based distributions. Don’t start any daemon after installation. Enable all daemons. Only restart FD after upgrade (before: FD has been started after installation, No daemon have been restarted on upgrade) PR #1019

  • core: cleanup systemd service dependencies: Requires network.target, but start after the network-online.target PR #700

  • Enable c++17 support PR #741

  • postgresql filedaemon plugin: switched from psycopg2 to pg8000, dropped support for python2.

  • reconnecting to the database is now automatic per default without the need to specify it in the catalog PR #860

  • bareos is now set to listen to both IPv6 and IPv4 by default, instead of needing to specify it via a directive PR #882

  • bareos is now able to create IPv6 addresses with the DirAddress directive PR #882

  • show more details about subscriptions and units data with status subscriptions PR #989

  • webui: optimize bvfs update cache calls PR #999

  • replace complicated memory pool allocator with plain malloc() PR #997

  • systemtest python-bareos: split tests in separate files PR #944

  • systemtests: define variable BackupDirectory globally PR #780

  • systemtests: run all systemstests with set -o pipefail PR #780

  • core: Make the jansson library mandatory when compiling the Bareos Director PR #793

  • repaired or added all header guards in libdroplet PR #765

  • When using Python > 3.7 the postgres and libcloud plugins will cancel the job and write an error message PR #769

  • bstrncpy: workaround when used with overlapping strings PR #736

  • Disabled test “statefile” for big endian, use temporary state files for all other architectures PR #757

  • Package bareos-database-postgresql: add recommendation for package dbconfig-pgsql.

  • Adapt the init scripts for some platform to not refer to a specific (outdated) configuration file, but to use the default config file instead.

  • scripts: cleaned up code for postgresql db creation PR #709

  • Change Copy Job behaviour regarding Archive Jobs PR #717

  • py2lug-fd-ovirt systemtest: use ovirt-plugin.ini config file PR #729

  • Ctest now runs in scripted mode. PR #742

  • storage daemon: class Device: rename dev_name to archive_device_string (as the value stored here is the value of the “Archive Device” directive) PR #744

  • webui: Localization updated PR #776

  • running cmake for the core-directory only is now forbidden PR #767

  • dird: ignore duplicate job checking on virtual fulls started by consolidation PR #552

  • buildsystem: switch to cross build chain of Fedora 34 PR #819

  • FreeBSD: adapt pkglists for FreeBSD 13.0 PR #819

  • Fedora34: do not build mysql db backend, adapt pkglist PR #819

  • bscan and bareos systemtests: also test bextract and bls binaries, use autoxflate plugin and FSType fileset options PR #790

  • Windows release package now ships source code as optional component, so there is no need for a debug-package anymore PR #858

  • version information was moved from core/cmake/ and webui/cmake/ directories into the toplevel cmake/ directory PR #861

  • add chromedriver options to improve reliability of selenium tests PR #920

  • webui: improve log message keyword highlighting PR #937

  • webui: change retention/expiration column to only show retention on volume tables PR #943

  • webui: introduce confirmation dialog on rerun and cancel job actions PR #951

  • Allow release command to be used in scripts PR #961

  • webui: format total jobs and total files language-sensitive PR #996

  • webui: update localization PR #1018

Deprecated

  • Deprecated directives PR #928

    • Director

      • Director resource

        • Pid Directory

      • Catalog resource

        • Db Driver

    • Storage Daemon

      • Storage resource

        • Pid Directory

    • File Daemon

      • Client resource

        • Pid Directory

Removed

  • Remove MySQL and SQLite catalog backends PR #949

  • Remove deprecated directives PR #938

    • Director

      • Director resource

        • Omit Defaults

        • Sub Sys Directory

      • Storage resource

        • Sdd Port

      • Pool resource

        • Use Volume Once

      • Job resource

        • Write Part After Job

        • Alias Differential Max Wait Time for Differential Max Runtime

        • Alias Full Max Wait Time for Full Max Runtime

        • Alias Incremental Max Wait Time for Incremental Max Runtime

        • Alias Plugin Options for Fd Plugin Options

      • Client resource

        • Alias Allow Client Connect for Connection From Client To Director

    • Storage Daemon

      • Device resource

        • Free Space Command

        • Maximum Part Size

        • Write Part Command

        • Maximum Volume Size

      • Storage resource

        • Sub Sys Directory

    • File Daemon

      • Client resource

        • Sub Sys Directory

  • Debian: Old SysV init scripts have been removed. Bareos daemons are controlled by systemd PR #1019

  • Removed language support files for the core daemons, as these files are outdated and not used at all.

  • core: remove deprecated config directive dbdriver from all config files, templates and from automatic configuration during install PR #1027

  • Remove regression tests (regress/ directory). Tests still relevant tests have been migrated into systemtests PR #780

  • Removed support for IPv4-only build. IPv6 now is required for building bareos. PR #913

  • Removed package lists for platforms no longer built: Fedora_30.x86_64, RHEL_6.x86_64, SLE_12_SP4.x86_64, openSUSE_Leap_15.0.x86_64, openSUSE_Leap_15.1.x86_64.

  • Removed outdated support for platforms Alpha, BSDi, Gentoo, Irix and Mandrake.

  • Removed outdated configuration files (example files).

  • Removed package bareos-devel.

  • Removed package bareos-regress and bareos-regress-config. The package bareos-regress has not been build for a long time.

  • Removed unused script breload.

  • Removed some workaround for Ubuntu 8.04.

Security

  • CVE-2017-14610: PID files are now created before dropping privileges and before the parent process exits. PR #928

Documentation

  • add documentation about Unified Linux Client PR #1028

  • added “Hardware Sizing” chapter PR #926

  • Improve data-type subsubsection in CustomizingTheConfiguration. Add a special Sphinx directive for them (config:datatype) PR #1008

  • add “copy button” to code snippets in documentation for easy copying PR #802

  • Restore error “could not hard link” documented: what is the cause and how it can be avoided or solved. PR #759

  • Developer guide: add small chapter about c++ exceptions. PR #777

  • Fix links to configuration directives and issue warnings on dangling links PR #1008

  • Adapted the documentation of the VMware plugin due to update to VDDK 7 PR #844

  • declare shell scripts code blocks as “sh” instead of “shell-session” PR #802

  • BareosSecurityIssues add remark about new systemd service (non forking) logged information into systemd-journal PR #927

  • check if configuration directives are defined as CamelCase in core. Otherwise building the documentation will fail with an error PR #1008

  • Describe how to get debugging info when using the VMware plugin PR #921

  • Disable autotosectionlabel plugin in documentation and add required labels PR #942

  • update documentation of config data types PR #962

  • Fixed broken link in https://docs.bareos.org/IntroductionAndTutorial/WhatIsBareos.html documentation page

20.0.0 - 2020-12-16

Fixed

  • Fix memory corruption in storage daemon PR #616

  • Issue #1039: Can not login in webui PR #591

  • Improve the behaviour of some console commands PR #604

  • Several improvements to the LDAP Plugin for filedaemon PR #595

  • Avoid duplicate actions after submission of an action followed by a page refresh in the webui PR #594

  • Fix several droplet timeout problems to enable connection retries PR #561

  • Close connection pool sockets properly (client initiated connections) PR #562

  • Check user ACL for status configuration PR #570

  • Allow backup/restore of cephfs mounts PR #554

  • Fix percona xtrabackup get last_lsn value PR #551

  • Prevent director daemon crash by adding a nullptr-guard to CreateAttributesRecord() PR #566

  • Enable testing of deprecated databases (MySQL and SQLite) PR #573

  • Fix heartbeat thread shutdown race condition PR #565

  • Fix build problems for several distributions PR #569

  • Prevent from unique key violations on .bvfs_update PR #545

  • Fix “make install” and add “make uninstall” when building from source PR #556

  • Issue #1257: Prune volume command may crash the director PR #546

  • Remove compiler warnings PR #543

  • python-plugins: improve statp handling in localfileset plugin PR #530

  • Fix some issues in the tray-monitor configuration PR #539

  • Avoid a memory double-free in a spool function of the storage daemon PR #535

  • Issue #1246: oVirt plugin fails to restore to local disk with KeyError PR #534

  • Huge source code cleanup to reduce compiler warnings and increase readability PR #479

  • Fix bscan handling of restore object data PR #516

  • Adapt Python Bareos version number according to PEP-440 PR #521

  • Fixed JobDetails joblog messages order PR #509

  • Huge source code cleanup of storagedaemon Device backend PR #498

  • Issue #1227: Fix fadvise bug PR #496

  • Improve webui frontend login dialog PR #505

  • Fixed the use of a specified since time for the run command PR #503

  • Fixed that the status scheduler command shows jobs for disabled clients PR #499

  • Allow Python FD Plugins to set since time PR #504

  • Fixed a bug when backup a VM by using VM id PR #415

  • Fixed that droplet is waiting forever if flushing a file fails: PR #468

  • Issue #1220: default drive index not set to 0: PR #472

  • Fixed a segmentation fault caused by deprecated OpenSSL functions PR #453

  • Issue #1211: Bareos director and bareos fd crash when regexwhere is specified PR #451

  • Always Incremental: Address early prune problem when vol retentions are too small PR #423

  • Issue #1206: Form field restore job is not populated after client selection PR #438

  • Issue #1192: Authorization key rejected by Storage daemon since upgrading director and storage daemons PR #431

  • Allow path lengths of a messages resource to be longer that 128 bytes PR #433

  • Issue #1190: Schedules without a client will not be run

  • Fixed a bug where hourly schedules fail on the general rule without a day PR #422

  • Issue #1175: bareos crashes with invalid character in ACL PR #410

  • Issue #1184: Using syslog or an invalid message type crashes a daemon PR #414

  • Issue #1176: Upgrade 18.2.5 to 19.2.5 failed while upgrading MySQL database PR #409

  • Issue #1174: Reversed sort order on the restore client selection PR #411

  • Fixed errors in client only build PR #413

  • Fixed checksum algorithm regarding byte order PR #412

  • Avoid a race condition in job name creation PR #385

  • Issue #1281: Director crashes on memory access violation in CloseMemoryPool() and is_regex()

Added

  • Add console command setdevice PR #686

  • Add support for Fedora 33 PR #643

  • Add development tools for changelog-handling PR #617

  • Added documentation and background information for the new python 3 plugin support PR #599

  • Added the libcloud filedaemon plugin to backup S3 buckets

  • Allow terabytes, tebibytes, petabytes, pebibytes, exabytes and exbibytes unit symbols when specifying sizes PR #600

  • Add technology preview for a REST API to configure and manage Bareos PR #587

  • Add some configuration warnings to the storagedaemon PR #583

  • Add python3 support for filedaemon, storagedaemon and director plugins PR #572

  • Use configurable OpenSSL “Protocol” parameter PR #575

  • Extend bconsole show command to support JSON output format (API 2) PR #574

  • Allow multiline quoted strings in the configuration PR #578

  • Print toolchain details during cmake run PR #567

  • Build libdroplet as submodule and use systemtest test PR #560

  • Run systemtests during build, build packages from source root directory PR #559

  • Add pkglists to documentation for all OS we build for PR #557

  • Merge VMware plugin code into core subdirectories, add system test PR #544

  • The VMware plugin now allows to use an optional config file to specify plugin options PR #544

  • Removed the dependency to pyvmomi from rpm and deb packages PR #667

  • Add next pool selection to custom job run form in the webui PR #518

  • In job reports display who triggered a job (scheduler, user, ..) PR #532

  • Added VirtualFull option for manual defined Jobs PR #508

  • Add support for Arch and Manjaro Linux PR #513

  • Document Verify VolumeToCatalog limitation PR #507

  • Document drawbacks for job intermixing PR #506

  • Add postgres-backup filedaemon plugin with incremental backups and point in time restore PR #502

  • Write job- and file-choice to audit log on restore PR #493

  • Add infrastructure for configuration warnings PR #492

  • Add logging parameters to gfapi backend PR #455

  • Add a security policy (SECURITY.md) to the project PR #463

  • Pre-fill restore form element “replace” according to selected restore job in the webui: PR #456

  • Add documentation for a critical bscan limitation: PR #460

  • Pre-fill restore location form element according to selected restore job in webui PR #454

  • Add more logging messages to NDMP interface PR #448

  • Add start and finish time in the webui-joblist PR #429

  • Add a database upgrade test PR #406

  • Add recommendation for PHP 7 to documentation PR #420

  • Add encryption signature test PR #404

  • Add percona extra backup PR #386

  • Add test for client initiated backup PR #383

Changed

  • Release-notes / changelog have been moved to CHANGELOG.md PR #613

  • Bareos now requires at least CMake 3.12 to build

  • Updated many localization files PR #609

  • Display archived jobs on list backups command PR #581

  • Use a configurable VDI timeout when requesting the MSSQL config PR #571

  • Improved the formatting of job log entries in the webui PR #525

  • Cleanup unused images PR #538

  • Use precise file names for public and private key files to make documentation clear PR #537

  • Significantly speed-up bareos-dbcopy PR #524

  • Publish PythonBareos to PyPI.org using Github Actions PR #514

  • Updated documentation for tests PR #497

  • Display numeric values of UID and GID in addition to user and group name in webui PR #488

  • Display file permissions in restore dialog of webui PR #477

  • Improve warnings on Maximum Block Size of the droplet backend: PR #476

  • Improve the selection of a specific file version restore in the webui: PR #471

  • Only allow configuration maximum concurrent jobs of 0 or 1 when using droplet: PR #465

  • Improve filtering on webui-jobs-bootstrap-table PR #444

  • Allow systemtests to run on installed packaged PR #400

  • Allow systemtests to be run in parallel PR #392

  • Disable systemtests on non compatible systems PR #387

  • Update ovirt plugin documentation PR #384

  • Improve ovirt plugin

Deprecated

  • Using MySQL as a catalog backend is now deprecated PR #564

  • Using Rados as a storage backend is now deprecated PR #672

  • With full Python 3 support, using Python 2 is now considered deprecated

  • Plugin bareos-fd-ldap is deprecated, because it requires Python 2

Removed

  • Remove support for creating MySQL / SQLite catalogs PR #563

Security