1All notable changes to this project will be documented in this file. 2 3The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 4and since Bareos version 20 this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 5 6## [20.0.3] - 2021-09-14 7 8### Fixed 9- [Issue #579]: Unable to connect to the director from webui via ipv6 [PR #871] (backport of [PR #868]) 10- [Issue #1324]: Infinite loop when trying to log in with invalid account [PR #864] (backport of [PR #840]) 11- [Issue #1300]: some job status are not categorized properly [PR #878] (backport of [PR #874]) 12- [Issue #871]: UI will not load complete [PR #884] (backport of [PR #880]) 13- [Issue #971]: Error building tree for filenames with backslashes [PR #894] (backport of [PR #892]) 14- [Issue #1020]: Can not restore a client with spaces in its name [PR #894] (backport of [PR #893]) 15- [Issue #1235]: Special characters not escaped in translations [PR #898] (backport of [PR #887] [PR #888] [PR #889] [PR #890]) 16- [Issue #1251]: Error when displaying pool detail [PR #904] (backport of [PR #903]) 17- [Issue #1369]: webui tries to load a nonexistent file [PR #901] (backport of [PR #900]) 18- fix lost byte in ChunkedDevice (backport of [PR #910]) 19- fix director crash on "update slots" when there is a parsing issue with the autochanger or tape devices [PR #919] 20- [Issue #1232]: bareos logrotate errors, reintroduce su directive in logrotate ([backport of PR #918]) 21 22### Added 23- packages: Build also for Debian_11 [PR #915] 24 25### Changed 26- add job name in End Job Session output in bls tool [PR #916] 27- add chromedriver options to improve reliability of selenium tests [PR #920] 28- docs: Describe how to get debugging info when using the VMware plugin [PR #922] 29### Removed 30 31### Documentation 32 33 34## [20.0.2] - 2021-06-10 35 36### Fixed 37- docs: Adapted the documentation of the VMware plugin due to update to VDDK 7 [PR #845] 38- fix a bug in VMware plugin where VMDK Files were created with wrong size when using the option localvmdk=yes [PR #830] 39- fix possible read/write problems when using droplet with https [PR #773] 40- fix memory leak in python module constants [PR #781] 41- fix german localization errors [PR #786] 42- fix gfapi-fd: avoid possible crash on second glfs_close() call [PR #797] 43- fix shutdown of the Storage Daemon backends, especially call UnlockDoor on tape devices [PR #818] (backport of [PR #809]) 44- fix possible deadlock in storage backend on Solaris and FreeBSD [PR #818] (backport of [PR #809]) 45- [Issue #1205]: PHP 7.3 issue with compact() in HeadLink.php [PR #833] (backport of [PR #829]) 46- reorder acquire on migrate/copy to avoid possible deadlock [PR #828] 47 48### Added 49- added choice for the drive number in the truncate command [PR #837] 50- systemtests for S3 functionalities (droplet, libcloud) now use https [PR #765] 51- add "copy button" to code snippets in documentation for easy copying [PR #802] 52 53### Changed 54- repaired or added all header guards in libdroplet [PR #773] 55- [Issue #1329]: If CommandACL limits any command, no messages can be read but "you have messages" is displayed. [PR #795](backport of [PR #763]) 56 57### Removed 58- packaging: Do not build for EOL FreeBSD 12.1 anymore. 59 60### Documentation 61- Restore error "could not hard link" documented: what is the cause and how it can be avoided or solved. (Backport [PR #759]) 62 63 64## [20.0.1] - 2021-03-02 65 66### Fixed 67- fix parallel python plugin jobs [PR #732] 68- fix oVirt plugin problem with config file [PR #732] 69- fix crash when loading both python-fd and python3-fd plugins [PR #733] 70- [Issue #1316]: storage daemon loses a configured device instance [PR #734] 71- fix python-bareos for Python < 2.7.13 [PR #753] 72 73 74### Added 75- py2lug-fd-ovirt systemtest: use ovirt-plugin.ini config file [PR #732] 76- Build the package **bareos-filedaemon-postgresql-python-plugin** also for Debian, Ubuntu and UCS (deb packages) [PR #745]. 77- informative debugmessage when a dynamic backend cannot be loaded [PR #746] 78 79### Changed 80- When using Python > 3.7 the postgres and libcloud plugins will cancel the job and write an error message [PR #775] 81- Disabled test "statefile" for big endian, use temporary state files for all other architectures [PR #758] 82- Fixed broken link in https://docs.bareos.org/IntroductionAndTutorial/WhatIsBareos.html documentation page 83- Ctest now runs in scripted mode. [PR #751] 84 85 86## [20.0.0] - 2020-12-16 87 88### Fixed 89 90- Fix memory corruption in storage daemon [PR #616] 91- [Issue #1039]: Can not login in webui [PR #591] 92- Improve the behaviour of some console commands [PR #604] 93- Several improvements to the LDAP Plugin for filedaemon [PR #595] 94- Avoid duplicate actions after submission of an action followed by a page refresh in the webui [PR #594] 95- Fix several droplet timeout problems to enable connection retries [PR #561] 96- Close connection pool sockets properly (client initiated connections) [PR #562] 97- Check user ACL for status configuration [PR #570] 98- Allow backup/restore of cephfs mounts [PR #554] 99- Fix percona xtrabackup get last_lsn value [PR #551] 100- Prevent director daemon crash by adding a nullptr-guard to CreateAttributesRecord() [PR #566] 101- Enable testing of deprecated databases (MySQL and SQLite) [PR #573] 102- Fix heartbeat thread shutdown race condition [PR #565] 103- Fix build problems for several distributions [PR #569] 104- Prevent from unique key violations on .bvfs_update [PR #545] 105- Fix "make install" and add "make uninstall" when building from source [PR #556] 106- [Issue #1257]: Prune volume command may crash the director [PR #546] 107- Remove compiler warnings [PR #543] 108- python-plugins: improve statp handling in localfileset plugin [PR #530] 109- Fix some issues in the tray-monitor configuration [PR #539] 110- Avoid a memory double-free in a spool function of the storage daemon [PR #535] 111- [Issue #1246]: oVirt plugin fails to restore to local disk with KeyError [PR #534] 112- Huge source code cleanup to reduce compiler warnings and increase readability [PR #479] 113- Fix bscan handling of restore object data [PR #516] 114- Adapt Python Bareos version number according to PEP-440 [PR #521] 115- Fixed JobDetails joblog messages order [PR #509] 116- Huge source code cleanup of storagedaemon Device backend [PR #498] 117- [Issue #1227]: Fix fadvise bug [PR #496] 118- Improve webui frontend login dialog [PR #505] 119- Fixed the use of a specified since time for the run command [PR #503] 120- Fixed that the status scheduler command shows jobs for disabled clients [PR #499] 121- Allow Python FD Plugins to set since time [PR #504] 122- Fixed a bug when backup a VM by using VM id [PR #415] 123- Fixed that droplet is waiting forever if flushing a file fails: [PR #468] 124- [Issue #1220]: default drive index not set to 0: [PR #472] 125- Fixed a segmentation fault caused by deprecated OpenSSL functions [PR #453] 126- [Issue #1211]: Bareos director and bareos fd crash when regexwhere is specified [PR #451] 127- Always Incremental: Address early prune problem when vol retentions are too small [PR #423] 128- [Issue #1206]: Form field restore job is not populated after client selection [PR #438] 129- [Issue #1192]: Authorization key rejected by Storage daemon since upgrading director and storage daemons [PR #431] 130- Allow path lengths of a messages resource to be longer that 128 bytes [PR #433] 131- [Issue #1190]: Schedules without a client will not be run 132- Fixed a bug where hourly schedules fail on the general rule without a day [PR #422] 133- [Issue #1175]: bareos crashes with invalid character in ACL [PR #410] 134- [Issue #1184]: Using syslog or an invalid message type crashes a daemon [PR #414] 135- [Issue #1176]: Upgrade 18.2.5 to 19.2.5 failed while upgrading MySQL database [PR #409] 136- [Issue #1174]: Reversed sort order on the restore client selection [PR #411] 137- Fixed errors in client only build [PR #413] 138- Fixed checksum algorithm regarding byte order [PR #412] 139- Avoid a race condition in job name creation [PR #385] 140- [Issue #1281]: Director crashes on memory access violation in CloseMemoryPool() and is_regex() 141 142### Added 143 144- Add console command setdevice [PR #686] 145- Add support for Fedora 33 [PR #643] 146- Add development tools for changelog-handling [PR #617] 147- Added documentation and background information for the new python 3 plugin support [PR #599] 148- Added the libcloud filedaemon plugin to backup S3 buckets 149- Allow terabytes, tebibytes, petabytes, pebibytes, exabytes and exbibytes unit symbols when specifying sizes [PR #600] 150- Add technology preview for a REST API to configure and manage Bareos [PR #587] 151- Add some configuration warnings to the storagedaemon [PR #583] 152- Add python3 support for filedaemon, storagedaemon and director plugins [PR #572] 153- Use configurable OpenSSL "Protocol" parameter [PR #575] 154- Extend bconsole show command to support JSON output format (API 2) [PR #574] 155- Allow multiline quoted strings in the configuration [PR #578] 156- Print toolchain details during cmake run [PR #567] 157- Build libdroplet as submodule and use systemtest test [PR #560] 158- Run systemtests during build, build packages from source root directory [PR #559] 159- Add pkglists to documentation for all OS we build for [PR #557] 160- Merge VMware plugin code into core subdirectories, add system test [PR #544] 161- The VMware plugin now allows to use an optional config file to specify plugin options [PR #544] 162- Removed the dependency to pyvmomi from rpm and deb packages [PR #667] 163- Add next pool selection to custom job run form in the webui [PR #518] 164- In job reports display who triggered a job (scheduler, user, ..) [PR #532] 165- Added VirtualFull option for manual defined Jobs [PR #508] 166- Add support for Arch and Manjaro Linux [PR #513] 167- Document Verify VolumeToCatalog limitation [PR #507] 168- Document drawbacks for job intermixing [PR #506] 169- Add postgres-backup filedaemon plugin with incremental backups and point in time restore [PR #502] 170- Write job- and file-choice to audit log on restore [PR #493] 171- Add infrastructure for configuration warnings [PR #492] 172- Add logging parameters to gfapi backend [PR #455] 173- Add a security policy (`SECURITY.md`) to the project [PR #463] 174- Pre-fill restore form element "replace" according to selected restore job in the webui: [PR #456] 175- Add documentation for a critical bscan limitation: [PR #460] 176- Pre-fill restore location form element according to selected restore job in webui [PR #454] 177- Add more logging messages to NDMP interface [PR #448] 178- Add start and finish time in the webui-joblist [PR #429] 179- Add a database upgrade test [PR #406] 180- Add recommendation for PHP 7 to documentation [PR #420] 181- Add encryption signature test [PR #404] 182- Add percona extra backup [PR #386] 183- Add test for client initiated backup [PR #383] 184 185### Changed 186 187- Release-notes / changelog have been moved to CHANGELOG.md [PR #613] 188- Bareos now requires at least CMake 3.12 to build 189- Updated many localization files [PR #609] 190- Display archived jobs on list backups command [PR #581] 191- Use a configurable VDI timeout when requesting the MSSQL config [PR #571] 192- Improved the formatting of job log entries in the webui [PR #525] 193- Cleanup unused images [PR #538] 194- Use precise file names for public and private key files to make documentation clear [PR #537] 195- Significantly speed-up bareos-dbcopy [PR #524] 196- Publish PythonBareos to PyPI.org using Github Actions [PR #514] 197- Updated documentation for tests [PR #497] 198- Display numeric values of UID and GID in addition to user and group name in webui [PR #488] 199- Display file permissions in restore dialog of webui [PR #477] 200- Improve warnings on Maximum Block Size of the droplet backend: [PR #476] 201- Improve the selection of a specific file version restore in the webui: [PR #471] 202- Only allow configuration maximum concurrent jobs of 0 or 1 when using droplet: [PR #465] 203- Improve filtering on webui-jobs-bootstrap-table [PR #444] 204- Allow systemtests to run on installed packaged [PR #400] 205- Allow systemtests to be run in parallel [PR #392] 206- Disable systemtests on non compatible systems [PR #387] 207- Update ovirt plugin documentation [PR #384] 208- Improve ovirt plugin 209 210### Deprecated 211- Using MySQL as a catalog backend is now deprecated [PR #564] 212- Using Rados as a storage backend is now deprecated [PR #672] 213- With full Python 3 support, using Python 2 is now considered deprecated 214- Plugin bareos-fd-ldap is deprecated, because it requires Python 2 215 216 217### Removed 218- Remove support for creating MySQL / SQLite catalogs [PR #563] [PR #603] 219 220### Security 221 222- Do not accept cram challenge if own hostname is used [PR #536] [CVE-2020-4042](https://github.com/bareos/bareos/security/advisories/GHSA-vqpj-2vhj-h752) 223- [Issue #1210]: Heap overflow in director when running a verify job against a malicious filedaemon [CVE-2020-11061](https://github.com/bareos/bareos/security/advisories/GHSA-mm45-cg35-54j4) 224 225 226[20.0.0]: https://github.com/bareos/bareos/releases/tag/Release%2F20.0.0 227[20.0.1]: https://github.com/bareos/bareos/releases/tag/Release%2F20.0.1 228[20.0.2]: https://github.com/bareos/bareos/releases/tag/Release%2F20.0.2 229[20.0.3]: https://github.com/bareos/bareos/releases/tag/Release%2F20.0.3 230[Issue #579]: https://bugs.bareos.org/view.php?id=579 231[Issue #871]: https://bugs.bareos.org/view.php?id=871 232[Issue #971]: https://bugs.bareos.org/view.php?id=971 233[Issue #1020]: https://bugs.bareos.org/view.php?id=1020 234[Issue #1039]: https://bugs.bareos.org/view.php?id=1039 235[Issue #1174]: https://bugs.bareos.org/view.php?id=1174 236[Issue #1175]: https://bugs.bareos.org/view.php?id=1175 237[Issue #1176]: https://bugs.bareos.org/view.php?id=1176 238[Issue #1184]: https://bugs.bareos.org/view.php?id=1184 239[Issue #1190]: https://bugs.bareos.org/view.php?id=1190 240[Issue #1192]: https://bugs.bareos.org/view.php?id=1192 241[Issue #1205]: https://bugs.bareos.org/view.php?id=1205 242[Issue #1206]: https://bugs.bareos.org/view.php?id=1206 243[Issue #1210]: https://bugs.bareos.org/view.php?id=1210 244[Issue #1211]: https://bugs.bareos.org/view.php?id=1211 245[Issue #1220]: https://bugs.bareos.org/view.php?id=1220 246[Issue #1227]: https://bugs.bareos.org/view.php?id=1227 247[Issue #1232]: https://bugs.bareos.org/view.php?id=1232 248[Issue #1235]: https://bugs.bareos.org/view.php?id=1235 249[Issue #1246]: https://bugs.bareos.org/view.php?id=1246 250[Issue #1251]: https://bugs.bareos.org/view.php?id=1251 251[Issue #1257]: https://bugs.bareos.org/view.php?id=1257 252[Issue #1281]: https://bugs.bareos.org/view.php?id=1281 253[Issue #1300]: https://bugs.bareos.org/view.php?id=1300 254[Issue #1316]: https://bugs.bareos.org/view.php?id=1316 255[Issue #1324]: https://bugs.bareos.org/view.php?id=1324 256[Issue #1329]: https://bugs.bareos.org/view.php?id=1329 257[Issue #1369]: https://bugs.bareos.org/view.php?id=1369 258[PR #383]: https://github.com/bareos/bareos/pull/383 259[PR #384]: https://github.com/bareos/bareos/pull/384 260[PR #385]: https://github.com/bareos/bareos/pull/385 261[PR #386]: https://github.com/bareos/bareos/pull/386 262[PR #387]: https://github.com/bareos/bareos/pull/387 263[PR #392]: https://github.com/bareos/bareos/pull/392 264[PR #400]: https://github.com/bareos/bareos/pull/400 265[PR #404]: https://github.com/bareos/bareos/pull/404 266[PR #406]: https://github.com/bareos/bareos/pull/406 267[PR #409]: https://github.com/bareos/bareos/pull/409 268[PR #410]: https://github.com/bareos/bareos/pull/410 269[PR #411]: https://github.com/bareos/bareos/pull/411 270[PR #412]: https://github.com/bareos/bareos/pull/412 271[PR #413]: https://github.com/bareos/bareos/pull/413 272[PR #414]: https://github.com/bareos/bareos/pull/414 273[PR #415]: https://github.com/bareos/bareos/pull/415 274[PR #420]: https://github.com/bareos/bareos/pull/420 275[PR #422]: https://github.com/bareos/bareos/pull/422 276[PR #423]: https://github.com/bareos/bareos/pull/423 277[PR #429]: https://github.com/bareos/bareos/pull/429 278[PR #431]: https://github.com/bareos/bareos/pull/431 279[PR #433]: https://github.com/bareos/bareos/pull/433 280[PR #438]: https://github.com/bareos/bareos/pull/438 281[PR #444]: https://github.com/bareos/bareos/pull/444 282[PR #448]: https://github.com/bareos/bareos/pull/448 283[PR #451]: https://github.com/bareos/bareos/pull/451 284[PR #453]: https://github.com/bareos/bareos/pull/453 285[PR #454]: https://github.com/bareos/bareos/pull/454 286[PR #455]: https://github.com/bareos/bareos/pull/455 287[PR #456]: https://github.com/bareos/bareos/pull/456 288[PR #460]: https://github.com/bareos/bareos/pull/460 289[PR #463]: https://github.com/bareos/bareos/pull/463 290[PR #465]: https://github.com/bareos/bareos/pull/465 291[PR #468]: https://github.com/bareos/bareos/pull/468 292[PR #471]: https://github.com/bareos/bareos/pull/471 293[PR #472]: https://github.com/bareos/bareos/pull/472 294[PR #476]: https://github.com/bareos/bareos/pull/476 295[PR #477]: https://github.com/bareos/bareos/pull/477 296[PR #479]: https://github.com/bareos/bareos/pull/479 297[PR #488]: https://github.com/bareos/bareos/pull/488 298[PR #492]: https://github.com/bareos/bareos/pull/492 299[PR #493]: https://github.com/bareos/bareos/pull/493 300[PR #496]: https://github.com/bareos/bareos/pull/496 301[PR #497]: https://github.com/bareos/bareos/pull/497 302[PR #498]: https://github.com/bareos/bareos/pull/498 303[PR #499]: https://github.com/bareos/bareos/pull/499 304[PR #502]: https://github.com/bareos/bareos/pull/502 305[PR #503]: https://github.com/bareos/bareos/pull/503 306[PR #504]: https://github.com/bareos/bareos/pull/504 307[PR #505]: https://github.com/bareos/bareos/pull/505 308[PR #506]: https://github.com/bareos/bareos/pull/506 309[PR #507]: https://github.com/bareos/bareos/pull/507 310[PR #508]: https://github.com/bareos/bareos/pull/508 311[PR #509]: https://github.com/bareos/bareos/pull/509 312[PR #513]: https://github.com/bareos/bareos/pull/513 313[PR #514]: https://github.com/bareos/bareos/pull/514 314[PR #516]: https://github.com/bareos/bareos/pull/516 315[PR #518]: https://github.com/bareos/bareos/pull/518 316[PR #521]: https://github.com/bareos/bareos/pull/521 317[PR #524]: https://github.com/bareos/bareos/pull/524 318[PR #525]: https://github.com/bareos/bareos/pull/525 319[PR #530]: https://github.com/bareos/bareos/pull/530 320[PR #532]: https://github.com/bareos/bareos/pull/532 321[PR #534]: https://github.com/bareos/bareos/pull/534 322[PR #535]: https://github.com/bareos/bareos/pull/535 323[PR #536]: https://github.com/bareos/bareos/pull/536 324[PR #537]: https://github.com/bareos/bareos/pull/537 325[PR #538]: https://github.com/bareos/bareos/pull/538 326[PR #539]: https://github.com/bareos/bareos/pull/539 327[PR #543]: https://github.com/bareos/bareos/pull/543 328[PR #544]: https://github.com/bareos/bareos/pull/544 329[PR #545]: https://github.com/bareos/bareos/pull/545 330[PR #546]: https://github.com/bareos/bareos/pull/546 331[PR #551]: https://github.com/bareos/bareos/pull/551 332[PR #554]: https://github.com/bareos/bareos/pull/554 333[PR #556]: https://github.com/bareos/bareos/pull/556 334[PR #557]: https://github.com/bareos/bareos/pull/557 335[PR #559]: https://github.com/bareos/bareos/pull/559 336[PR #560]: https://github.com/bareos/bareos/pull/560 337[PR #561]: https://github.com/bareos/bareos/pull/561 338[PR #562]: https://github.com/bareos/bareos/pull/562 339[PR #563]: https://github.com/bareos/bareos/pull/563 340[PR #564]: https://github.com/bareos/bareos/pull/564 341[PR #565]: https://github.com/bareos/bareos/pull/565 342[PR #566]: https://github.com/bareos/bareos/pull/566 343[PR #567]: https://github.com/bareos/bareos/pull/567 344[PR #569]: https://github.com/bareos/bareos/pull/569 345[PR #570]: https://github.com/bareos/bareos/pull/570 346[PR #571]: https://github.com/bareos/bareos/pull/571 347[PR #572]: https://github.com/bareos/bareos/pull/572 348[PR #573]: https://github.com/bareos/bareos/pull/573 349[PR #574]: https://github.com/bareos/bareos/pull/574 350[PR #575]: https://github.com/bareos/bareos/pull/575 351[PR #578]: https://github.com/bareos/bareos/pull/578 352[PR #581]: https://github.com/bareos/bareos/pull/581 353[PR #583]: https://github.com/bareos/bareos/pull/583 354[PR #587]: https://github.com/bareos/bareos/pull/587 355[PR #591]: https://github.com/bareos/bareos/pull/591 356[PR #594]: https://github.com/bareos/bareos/pull/594 357[PR #595]: https://github.com/bareos/bareos/pull/595 358[PR #599]: https://github.com/bareos/bareos/pull/599 359[PR #600]: https://github.com/bareos/bareos/pull/600 360[PR #603]: https://github.com/bareos/bareos/pull/603 361[PR #604]: https://github.com/bareos/bareos/pull/604 362[PR #609]: https://github.com/bareos/bareos/pull/609 363[PR #613]: https://github.com/bareos/bareos/pull/613 364[PR #616]: https://github.com/bareos/bareos/pull/616 365[PR #617]: https://github.com/bareos/bareos/pull/617 366[PR #643]: https://github.com/bareos/bareos/pull/643 367[PR #667]: https://github.com/bareos/bareos/pull/667 368[PR #672]: https://github.com/bareos/bareos/pull/672 369[PR #686]: https://github.com/bareos/bareos/pull/686 370[PR #732]: https://github.com/bareos/bareos/pull/732 371[PR #733]: https://github.com/bareos/bareos/pull/733 372[PR #734]: https://github.com/bareos/bareos/pull/734 373[PR #745]: https://github.com/bareos/bareos/pull/745 374[PR #746]: https://github.com/bareos/bareos/pull/746 375[PR #751]: https://github.com/bareos/bareos/pull/751 376[PR #753]: https://github.com/bareos/bareos/pull/753 377[PR #758]: https://github.com/bareos/bareos/pull/758 378[PR #759]: https://github.com/bareos/bareos/pull/759 379[PR #763]: https://github.com/bareos/bareos/pull/763 380[PR #765]: https://github.com/bareos/bareos/pull/765 381[PR #773]: https://github.com/bareos/bareos/pull/773 382[PR #775]: https://github.com/bareos/bareos/pull/775 383[PR #781]: https://github.com/bareos/bareos/pull/781 384[PR #786]: https://github.com/bareos/bareos/pull/786 385[PR #795]: https://github.com/bareos/bareos/pull/795 386[PR #797]: https://github.com/bareos/bareos/pull/797 387[PR #802]: https://github.com/bareos/bareos/pull/802 388[PR #809]: https://github.com/bareos/bareos/pull/809 389[PR #818]: https://github.com/bareos/bareos/pull/818 390[PR #828]: https://github.com/bareos/bareos/pull/828 391[PR #829]: https://github.com/bareos/bareos/pull/829 392[PR #830]: https://github.com/bareos/bareos/pull/830 393[PR #833]: https://github.com/bareos/bareos/pull/833 394[PR #837]: https://github.com/bareos/bareos/pull/837 395[PR #840]: https://github.com/bareos/bareos/pull/840 396[PR #845]: https://github.com/bareos/bareos/pull/845 397[PR #864]: https://github.com/bareos/bareos/pull/864 398[PR #868]: https://github.com/bareos/bareos/pull/868 399[PR #871]: https://github.com/bareos/bareos/pull/871 400[PR #874]: https://github.com/bareos/bareos/pull/874 401[PR #878]: https://github.com/bareos/bareos/pull/878 402[PR #880]: https://github.com/bareos/bareos/pull/880 403[PR #884]: https://github.com/bareos/bareos/pull/884 404[PR #887]: https://github.com/bareos/bareos/pull/887 405[PR #888]: https://github.com/bareos/bareos/pull/888 406[PR #889]: https://github.com/bareos/bareos/pull/889 407[PR #890]: https://github.com/bareos/bareos/pull/890 408[PR #892]: https://github.com/bareos/bareos/pull/892 409[PR #893]: https://github.com/bareos/bareos/pull/893 410[PR #894]: https://github.com/bareos/bareos/pull/894 411[PR #898]: https://github.com/bareos/bareos/pull/898 412[PR #900]: https://github.com/bareos/bareos/pull/900 413[PR #901]: https://github.com/bareos/bareos/pull/901 414[PR #903]: https://github.com/bareos/bareos/pull/903 415[PR #904]: https://github.com/bareos/bareos/pull/904 416[PR #910]: https://github.com/bareos/bareos/pull/910 417[PR #915]: https://github.com/bareos/bareos/pull/915 418[PR #916]: https://github.com/bareos/bareos/pull/916 419[PR #919]: https://github.com/bareos/bareos/pull/919 420[PR #920]: https://github.com/bareos/bareos/pull/920 421[PR #922]: https://github.com/bareos/bareos/pull/922 422