.. _releasenotes:

Release Notes
=============

.. index:: Releases

.. warning::

      While all the source code is published on `GitHub <https://github.com/bareos/bareos>`_, the releases of packages on http://download.bareos.org is limited to the initial versions of a major release. Later maintenance releases are only published on https://download.bareos.com.

This chapter concentrates on things to do when updating an existing Bareos installation.

Please note, that some of the subreleases are only development releases.

The feature overview for a release are shown at the :ref:`genindex` of this document.

.. _bareos-current-releasenotes:

Bareos-19.2
-----------

.. _bareos-1928-releasenotes:

.. _bareos-19.2.8:

Bareos-19.2.8
~~~~~~~~~~~~~

General Information
^^^^^^^^^^^^^^^^^^^
.. list-table:: Bareos 19.2.8 Release Information
   :header-rows: 0
   :widths: auto

   * - **Release Date**
     - 2020-07-09
   * - **Database Version**
     -  2192
   * - **URL**
     - https://download.bareos.com/bareos/release/19.2/
   * - **Release Ticket**
     - :mantis:`1230`

Security
^^^^^^^^
This release contains fixes for `CVE-2020-4042`_ (:mantis:`1250`) and `CVE-2020-11061`_ (:mantis:`1210`).

.. _CVE-2020-4042:  https://github.com/bareos/bareos/security/advisories/GHSA-vqpj-2vhj-h752
.. _CVE-2020-11061: https://github.com/bareos/bareos/security/advisories/GHSA-mm45-cg35-54j4

Bugs Fixed
^^^^^^^^^^
* :mantis:`1171`: Backup the VM using UUID in oVirt-Plugin for Bareos.
* :mantis:`1210`: Security vulnerability results in heap overflow in director when doing a Verify job against a file daemon.
* :mantis:`1219`: Shell example script for Bareos installation on Debian / Ubuntu has wrong dist name.
* :mantis:`1246`: oVirt plugin fails to restore to local disk with KeyError.
* :mantis:`1250`: Authentication bypass in Director when allowing client and director initiated connections.
* :mantis:`1257`: Prune volume command may crash the director.

Other Improvements
^^^^^^^^^^^^^^^^^^
* the performance of :program:`bareos-dbcopy` has been improved.

Internal Project Changes
^^^^^^^^^^^^^^^^^^^^^^^^
* python-bareos is now automatically published on PyPI.org, so it can be installed using :program:`pip`.

.. _bareos-1927-releasenotes:

.. _bareos-19.2.7:

Bareos-19.2.7
~~~~~~~~~~~~~

General Information
^^^^^^^^^^^^^^^^^^^
.. list-table:: Bareos 19.2.7 Release Information
   :header-rows: 0
   :widths: auto

   * - **Release Date**
     - 2020-04-16
   * - **Database Version**
     -  2192
   * - **URL**
     - https://download.bareos.com/bareos/release/19.2/
   * -
     - https://download.bareos.org/bareos/release/19.2/
   * - **Release Ticket**
     - :mantis:`1187`

GlusterFS Backend on CentOS 7/RHEL 7
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The glusterfs backend for the storage daemon was broken on CentOS 7 and RHEL 7 due to a problem with our new build-process.
When glusterfs-api tried to connect to gluster for downloading the volume file a system call to the rpc library failed.
We found out that the problem will occur when Bareos is built with libtirpc-devel while the glusterfs-api is built with the rpc library in glibc.
The build-process was fixed and the problem will be solved in all binary packages released after 24 March 2020.

:program:`bareos-dbcopy`
^^^^^^^^^^^^^^^^^^^^^^^^
The :program:`bareos-dbcopy` tool has been improved.
A new howto :ref:`section-MigrationMysqlToPostgresql` has been added to the documentation.
This howto describes how you can use :program:`bareos-dbcopy` to migrate your MySQL or MariaDB catalog to PostgreSQL.

Bugs Fixed
^^^^^^^^^^
* :mantis:`1171`: Backup the VM using UUID in oVirt-Plugin for Bareos
* :mantis:`1190`: Schedules without a client will not be run
* :mantis:`1192`: Authorization key rejected by Storage daemon since upgrading director and storage daemons
* :mantis:`1200`: fails to restore files
* :mantis:`1206`: form field restore job is not populated after client selection
* :mantis:`1211`: bareos director and bareos fd crash when regexwhere is specified
* :mantis:`1220`: default drive index not set to 0

Other Improvements
^^^^^^^^^^^^^^^^^^
The message resource now allows to write to a file with a filename of arbitrary length.
Previously this was limited to 128 characters.

The volume pruning code will now log which jobids are pruned with the volume.

A patch in 2018 accidentially broke thread-safety with OpenSSL 1.0 which lead to random crashes during execution of code in the OpenSSL library.
That patch has been reverted.

There is a known bug when using :ref:`SdBackendDroplet` with multiple simultaneous jobs (interleaving).
As a precaution the |sd| now only allows a setting of 1 for :strong:`Maximum Concurrent Jobs` on Droplet devices.

Internal Project Changes
^^^^^^^^^^^^^^^^^^^^^^^^
Packages for Debian, Ubuntu and Univention are now built without Open Build Service.
As a result we could remove all references to the Open Build Service from our source-code.

.. _bareos-1926-releasenotes:

.. _bareos-19.2.6:

Bareos-19.2.6
~~~~~~~~~~~~~

General Information
^^^^^^^^^^^^^^^^^^^
.. list-table:: Bareos 19.2.6 Release Information
   :header-rows: 0
   :widths: auto

   * - **Release Date**
     - 11 February 2020
   * - **Database Version**
     -  2192
   * - **URL**
     - https://download.bareos.com/bareos/release/19.2/
   * -
     - https://download.bareos.org/bareos/release/19.2/
   * - **Release Ticket**
     - :mantis:`1177`

MySQL/MariaDB
^^^^^^^^^^^^^

If an index on the JobTDate column of the Job table was manually added before
upgrading the database to schema version 2192, please make sure you do not have
multiple indexes on the JobTDate column of the Job table in place and clean up
manually if necessary.

   - ``SHOW INDEXES FROM Job;``
   - e.g. ``DROP INDEX JobTDate_1 ON Job;``

FreeBSD
^^^^^^^

Due to a bug in the new included CRC32 library, the endianness was always detected as big endian on FreeBSD.
This lead to a wrong calculation on FreeBSD systems that use little endian (e.g. amd64).

As a result all volumes written by a |SD| on FreeBSD using version 19.2.4 or 19.2.5 now have wrong block checksums and will become unreadable with this release.
If you need a workaround to read such volumes, please contact us on the mailing list or open a support case.

Bugs Fixed
^^^^^^^^^^
* :mantis:`1174`: reversed sort order on the restore client selection
* :mantis:`1175`: bareos crashes with invalid character in ACL
* :mantis:`1176`: Upgrade 18.2.5 to 19.2.5 failed while upgrading MySQL database
* :mantis:`1178`: job selection in restore module is populated not properly
* :mantis:`1180`: CRC checksum algorithm changed between 18.2.7 and 19.2.5, all volumes fail
* :mantis:`1183`: Error: Connection refused, director seems to be down or blocking our request.
* :mantis:`1184`: Using syslog or an invalid message type crashes a daemon

.. _bareos-1925-releasenotes:

.. _bareos-19.2.5:

Bareos-19.2.5
~~~~~~~~~~~~~

General Information
^^^^^^^^^^^^^^^^^^^
.. list-table:: Bareos 19.2.5 Release Information
   :header-rows: 0
   :widths: auto

   * - **Release Date**
     - 03 February 2020
   * - **Database Version**
     -  2192
   * - **URL**
     - https://download.bareos.com/bareos/release/19.2/
   * -
     - https://download.bareos.org/bareos/release/19.2/
   * - **Release Ticket**
     - :mantis:`1173`

Bugs Fixed
^^^^^^^^^^
* :mantis:`1172`: update_bareos_tables script broken
* Summary text for percona plugin referred to LDAP plugin

.. _bareos-1924-releasenotes:

.. _bareos-19.2.4:

Bareos-19.2.4
~~~~~~~~~~~~~

General Information
^^^^^^^^^^^^^^^^^^^

.. list-table:: Bareos 19.2.4 Release Information
   :header-rows: 0
   :widths: auto

   * - **Release Date**
     - 31 January 2020
   * - **Database Version**
     -  2192
   * - **URL**
     - https://download.bareos.com/bareos/release/19.2/
   * -
     - https://download.bareos.org/bareos/release/19.2/
   * - **Release Ticket**
     - :mantis:`1156`

New Features
^^^^^^^^^^^^
* oVirt Plugin: The oVirt Plugin can be used for agentless backups of virtual machines running on oVirt or Red Hat Virtualization (RHV)
* |webui|: :ref:`section-webui-restore` a specific file version
* Display a summary before performing a restore in the |webui|
* New configuration parameter *filetree_refresh_timeout* has been added to configuration.ini file of the |webui| to set a custom timeout while refreshing the file tree (.bvfs_cache_update) in the restore module (:ref:`section-updating-bvfs-cache-frequently`)
* Configuration: Add :ref:`DirectorResourceUser` for pam authentication
* Configuration: Simplified :ref:`StorageResourceMultipliedDevice` Storage Configuration
* Client initiated connection: Run dedicated jobs when a client connects to the |dir|. Introduced a new configuration directive RunOnIncomingConnectInterval, see the documentation here: :config:option:`dir/job/RunOnIncomingConnectInterval`
* Python-bareos: Depending on the distribution, the Python module is packaged for Python 2 and/or Python 3. Previously it has only been packaged for Python 2
* Python-bareos: There are two variants of the Console protocol. The protocol used before Bareos-18.2 and the protocol used thereafter. The protocol since Bareos-18.2 supports TLS-PSK and PAM authentication, see :ref:`bareos-18.2.5`. Beginning with this version, Python-bareos also supports both protocols. As TLS-PSK for Python (module **sslpsk**) is not available for all platforms, Python-bareos has integrated an automatic fallback to the old protocol.
* Percona XtraBackup Plugin: The :ref:`PerconaXtrabackupPlugin` can be used to backup MySQL Databases.
  It uses the command line tool *Percona XtraBackup* to create backups. The plugin was formerly part of the bareos-contrib source code repository.
* :program:`bareos-dbcopy` command line tool: The new :ref:`program-bareos-dbcopy` command line
  tool can copy the bareos database from MySQL to PostgreSQL.
  As :ref:`program-bareos-dbcopy` is still in an early stage of development, we currently
  see it as technical preview and are interested in feedback and ask for special
  care when using it. Do not delete your old catalog database before you are
  really sure that everything works on the new catalog!

Changed Features
^^^^^^^^^^^^^^^^
* Improved Command ACL handling and error messages in the |webui|
* Restricted-console profile examples for limited and read-only purposes have been added to the |webui| package
* Updated |webui| localization
* Configuration: Do not allow empty passwords for mandatory passwords
* All daemons: Generate a log message if extended attributes are disabled automatically
* All daemons: replace crc32 implementation with a faster one
* |dir|: Add support for MySQL 8
* PAM authentication requires a *User* configuration resource. Previously *Console* and *User* resources could be used.
* The *User* configuration resource changed.  Previously it has been an alias to the *Console* resource, which requires a password and allows some additional options. Now it only consists of a Name and ACL definitions, see :ref:`DirectorResourceUser`.
* Database schema update from version 2171 to 2192

Deprecated and Removed Features
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* |webui|: Functionality of pre-selecting a backup client in the restore module has been removed

Bugs Fixed
^^^^^^^^^^
* :mantis:`385`: Bareos daemon stop or restart hangs if bareos-tray-monitor is connected
* :mantis:`975`: .bvfs\_lsdirs limit offset command parameters do not work properly (only fixed for PostgreSQL)
* :mantis:`990`: SD sometimes tries to load empty tape slot
* :mantis:`1004`: Very high cpu usage on Debian stretch
* :mantis:`1030`: Bscan does not work for migration and copy jobs
* :mantis:`1034`: Read-error on tape may be misinterpreted as end-of-tape
* :mantis:`1045`: Webui login problem
* :mantis:`1049`: Translation in German webUI
* :mantis:`1056`: NDMP restore on 16.2.5 and above does not fill NDMP environment correctly
* :mantis:`1058`: 18.2.6 build error because cmake does not build the correct dependencies
* :mantis:`1059`: Webui spams Apache error_log with bconsole messages
* :mantis:`1064`: Bconsole crashes after 5 minutes in restore operation due to forgotten watchdog
* :mantis:`1072`: Newer versions of Fedora use stricter code checking
* :mantis:`1073`: Pthread\_detach for FreeBSD (PR169)
* :mantis:`1091`: NDMP to NDMP Copy Job Fails
* :mantis:`1095`: |webui|: When login as a user without the permission to the ".api" command, the webui shows a wrong and ugly error message
* :mantis:`1100`: Bconsole crashes when pam authentication aborts
* :mantis:`1112`: After mount/unmount of tape "status slots" shows empty list
* :mantis:`1123`: Director can crash during TwoWay Authentication
* :mantis:`1149`: Audit messages are not logged any more
* :mantis:`1150`: dbconfig schema update scripts broken since 18.2
* :mantis:`1161`: Tremendous MySQL load
* :mantis:`1188`: Integer out of range when using large amounts of files with Base Jobs
* All daemons: Fix buffer overrun in PathAppend
* |dir|: Add support for MySQL 8
* |dir|: Fix nullptr cornercase in mtx-changer parser
* |webui|: Fix overflowing top navigation bar content hiding tab navigation in some modules
* |webui|: Fix always active debug messages in error.log
* |webui|: Bvfs cache update notification added
* |webui|: Fix Application Controller Plugin CommandACLPlugin

Updated Documentation
^^^^^^^^^^^^^^^^^^^^^
* :ref:`section-updating-bvfs-cache-frequently`
* |webui| Command ACL Requirements: :ref:`section-webui-command-acl-requirements`
* |webui| Access Control Configuration: :ref:`section-webui-access-control-configuration`
* |webui| Restore: :ref:`section-webui-restore`
* Developer Guide: :ref:`section-dev-webui-command-usage-in-modules`
* Documentation: Add message diagrams for backup, restore and verify
* Documentation: Correct configuration expamles and rewrite several feature introductions
* Documentation: Improve documentation of postgresql database schema and add diagrams

Internal Project Changes
^^^^^^^^^^^^^^^^^^^^^^^^
* All daemons: Smartalloc has been removed from the sourcecode
* All daemons: Removed many compiler warnings
* All daemons: Refactored scheduler, threadlist, configuration parser and recently used job-list code to be more robust and testable
* Documentation: Merge new documentation-source structure for Sphinx-build
* Removed PHP Warnings and Notices, JS and CSS errors

Bareos-18.2
-----------

.. _bareos-1829-releasenotes:

.. _bareos-18.2.9:

Bareos-18.2.9
~~~~~~~~~~~~~

General Information
^^^^^^^^^^^^^^^^^^^

.. list-table:: Bareos 18.2.9 Release Information
   :header-rows: 0
   :widths: auto

   * - **Release Date**
     - 09 July 2020
   * - **Database Version**
     -  2171
   * - **URL**
     - https://download.bareos.com/bareos/release/18.2/

   * - **Release Ticket**
     - :mantis:`1226`

Security
^^^^^^^^
This release contains a fix for `CVE-2020-11061`_ (:mantis:`1210`).
Please make sure you implement the workaround described in `CVE-2020-4042`_ (:mantis:`1250`), because this release does not contain a fix for the problem.

.. _CVE-2020-4042:  https://github.com/bareos/bareos/security/advisories/GHSA-vqpj-2vhj-h752
.. _CVE-2020-11061: https://github.com/bareos/bareos/security/advisories/GHSA-mm45-cg35-54j4

Bugfixes and Changes
^^^^^^^^^^^^^^^^^^^^
* :mantis:`1210`: Security vulnerability results in heap overflow in director when doing a Verify job against a file daemon.

.. _bareos-1828-releasenotes:

.. _bareos-18.2.8:

Bareos-18.2.8
~~~~~~~~~~~~~

General Information
^^^^^^^^^^^^^^^^^^^

.. list-table:: Bareos 18.2.8 Release Information
   :header-rows: 0
   :widths: auto

   * - **Release Date**
     - 09 April 2020
   * - **Database Version**
     -  2171
   * - **URL**
     - https://download.bareos.com/bareos/release/18.2/

   * - **Release Ticket**
     - :mantis:`1157`

Bugfixes and Changes
^^^^^^^^^^^^^^^^^^^^
* :mantis:`1162`: When restoring files without directories, the permissions of the immediate parent directory are wrong
* avoid a race-condition when creating job names
* fix crash in bconsole when TLS connection cannot be established
* fix random crash in OpenSSL due to broken thread-safety precautions
* limit :strong:`Maximum Concurrent Jobs` in :ref:`SdBackendDroplet` to work around a problem with block interleaving
* fix a problem with GlusterFS Backend on CentOS 7/RHEL 7

.. _bareos-1827-releasenotes:

.. _bareos-18.2.7:

Bareos-18.2.7
~~~~~~~~~~~~~

General Information
^^^^^^^^^^^^^^^^^^^

.. list-table:: Bareos 18.2.7 Release Information
   :header-rows: 0
   :widths: auto

   * - **Release Date**
     - 12 December 2019
   * - **Database Version**
     -  2171
   * - **URL**
     - https://download.bareos.com/bareos/release/18.2/

   * - **Release Ticket**
     - :mantis:`1152`

.. csv-table:: binary package availablility in the `bareos.com subscription repos <https://www.bareos.com/en/Subscription.html>`_
   :header: "Distribution", "Architecture"
   :widths: auto

   CentOS_6, "x86_64"
   CentOS_7, "x86_64"
   CentOS_8, "x86_64"
   Debian_8.0, "i586,x86_64"
   Debian_9.0, "i586,x86_64"
   Debian_10, "i586,x86_64"
   Fedora_28, "x86_64"
   Fedora_29, "x86_64"
   Fedora_30, "x86_64"
   Fedora_31, "x86_64"
   FreeBSD_11.3, "x86_64"
   FreeBSD_12.0, "x86_64"
   FreeBSD_12.1, "x86_64"
   MacOS, "x86_64"
   RHEL_6, "x86_64"
   RHEL_7, "x86_64"
   RHEL_8, "x86_64"
   SLE_12_SP4, "x86_64"
   SLE_15, "x86_64"
   SLE_15_SP1, "x86_64"
   openSUSE_Leap_15.0, "x86_64"
   openSUSE_Leap_15.1, "x86_64"
   Univention_4.3, "x86_64"
   Windows, "32Bit, 64Bit"
   xUbuntu_16.04, "i586,x86_64"
   xUbuntu_18.04, "x86_64"

Bugfixes and Changes
^^^^^^^^^^^^^^^^^^^^
* :mantis:`990`: SD sometimes tries to load empty tape slot
* :mantis:`1030`: Bscan does not work for migration and copy jobs
* :mantis:`1056`: NDMP restore on 16.2.5 and above does not fill NDMP environment correctly
* :mantis:`1058`: 18.2.6 build error while cmake don't build the correct dependency's
* :mantis:`1059`: Webui spams Apache error_log with bconsole messages
* :mantis:`1072`: Newer versions of Fedora use stricter code checking
* :mantis:`1095`: |webui|: When login as a user without the permission to the ".api" command, the webui show a wrong and ugly error message
* :mantis:`1100`: Bconsole crashes when a pam authentication aborts
* :mantis:`1112`: After mount/unmount of tape "status slots" shows empty list
* :mantis:`1149`: Audit messages are not logged any more
* :mantis:`1150`: dbconfig schema update scripts broken since 18.2
* All daemons: Fix buffer overrun in PathAppend
* |dir|: Add support for MySQL 8
* |dir|: Fix nullptr cornercase in mtx-changer parser
* |dir|: Fix audit messages
* |webui|: Fix overflowing top navigation bar content hiding tab navigation in some modules
* |webui|: Fix always active debug messages in error.log
* |webui|: Bvfs cache update notification added
* Documentation: Various improvements and updates

.. _bareos-1826-releasenotes:

.. _bareos-18.2.6:

Bareos-18.2.6
~~~~~~~~~~~~~

General Information
^^^^^^^^^^^^^^^^^^^

.. list-table:: Bareos 18.2.6 Release Information
   :header-rows: 0
   :widths: auto

   * - **Release Date**
     - 13 February 2019
   * - **Database Version**
     -  2171
   * - **URL**
     - https://download.bareos.com/bareos/release/18.2/
   * - **Release Ticket**
     - n/a

.. csv-table:: binary package availablility in the `bareos.com subscription repos <https://www.bareos.com/en/Subscription.html>`_
   :header: "Distribution", "Architecture"
   :widths: auto

   CentOS_6, "x86_64"
   CentOS_7, "x86_64"
   Debian_8.0, "i586,x86_64"
   Debian_9.0, "i586,x86_64"
   Fedora_28, "x86_64"
   Fedora_29, "x86_64"
   FreeBSD_11.2, "x86_64"
   MacOS, "x86_64"
   RHEL_6, "x86_64"
   RHEL_7, "x86_64"
   SLE_12_SP3, "x86_64"
   SLE_12_SP4, "x86_64"
   SLE_15, "x86_64"
   openSUSE_Leap_15.0, "x86_64"
   Univention_4.3, "x86_64"
   Windows, "32Bit, 64Bit"
   xUbuntu_14.04, "i586,x86_64"
   xUbuntu_16.04, "i586,x86_64"
   xUbuntu_18.04, "x86_64"

New Features
^^^^^^^^^^^^
* New packages for MacOS and FreeBSD
* Updated documentation
* :mantis:`1045`: Fixed TLS-Cert problem with old PHP versions in the |webui|
* dbcheck: Completed merge of "Fix dbcheck orphaned path entries performance issue" (a8f2a39)

.. _bareos-1825-releasenotes:

.. _bareos-18.2.5:

Bareos 18.2.5
~~~~~~~~~~~~~

General Information
^^^^^^^^^^^^^^^^^^^

.. list-table:: Bareos 18.2.5 Release Information
   :header-rows: 0
   :widths: auto

   * - **Release Date**
     - 31 January 2019
   * - **Database Version**
     -  2171
   * - **URL**
     - http://download.bareos.org/bareos/release/18.2/

   * - **Release Ticket**
     - :mantis:`1040`

.. csv-table:: binary package availablility
   :header: "Distribution", "Architecture"
   :widths: auto

   CentOS_6, "x86_64"
   CentOS_7, "x86_64"
   Debian_8.0, "i586,x86_64"
   Debian_9.0, "i586,x86_64"
   Fedora_28, "x86_64"
   Fedora_29, "x86_64"
   openSUSE_Leap_15.0, "x86_64"
   RHEL_6, "x86_64"
   RHEL_7, "x86_64"
   SLE_12_SP3, "x86_64"
   SLE_12_SP4, "x86_64"
   SLE_15, "x86_64"
   Univention_4.3, "x86_64"
   Windows, "32Bit, 64Bit"
   xUbuntu_14.04, "i586,x86_64"
   xUbuntu_16.04, "i586,x86_64"
   xUbuntu_18.04, "x86_64"

New Features
^^^^^^^^^^^^

* New network Protocol using immediately TLS

  * TLS is immediately used on all network connections
  * Support for TLS-PSK in all daemons
  * Automatic encryption of all network traffic with TLS-PSK
  * Full Compatibility with old |bareosFd|

    * Old |bareosFd| speaking the old protocol are automatically detected
      and daemons switch to the old protocol

  * Easily update without configuration changes

    * Existing Bareos installations can be upgraded without configuration changes

* PAM Support

  * Detailed information follows
  * Introduction of new "User" Resource
  * The |bareosDir| supports PAM for user authentication
  * The Bareos WebUI supports PAM user authentication against the |bareosDir|

Changed Features
^^^^^^^^^^^^^^^^
* Bandwidth limiting now also works in TLS encrypted connections. Before, bandwidth limiting
  was ignored when the connections were TLS encrypted

* Droplet (S3): multiple enhancements

* |bconsole|: Added "whoami" command to show currently associated user

* xattr and acl support now are enabled by default

  * Both features were disabled by default and needed to be enabled in the fileset options
  * Now both are enabled by default and can be disabled in the fileset options
  * New |bareosFd| logs the current status of both options in job log

Backward compatibility
^^^^^^^^^^^^^^^^^^^^^^
* |bareosDir| >= 18.2 can work with all |bareosFd| versions. However, all other components need to be updated to Bareos version >= 18.2
* To maintain |bareosWebui| access to the |bareosDir|, it depends on the current configuration. 1. TLS certificates: Nothing to do. 2. No TLS configured: Set TlsEnable=false in the respective console config of the |bareosWebui| in the |bareosDir|

..  * |bconsole| < 18.2 can be used with minor drawbacks (no PAM authentication, no TLS-PSK)

Full connection overview
^^^^^^^^^^^^^^^^^^^^^^^^
This diagram contains all possible connections between Bareos components
that are virtually usable. The numbers in each component are the version
numbers of this component that can be used with a Bareos 18.2 system
(Director Daemon and Storage Daemon). However, to be able to use all feature
it is recommended to use all components from version 18.2.

For a detailed explanation of all connection modes see :ref:`ConnectionOverviewReference`.

.. uml::
  :caption: Full overview of all Bareos connections possible with Bareos 18.2

  left to right direction
  skinparam shadowing false

  (Python 17,18) as Py1718
  (Console 17,18) as Con1718
  (WebUI 17,18) as Webui1718
  (Tray Monitor 18) as Tray18

  [Filedaemon 17,18] as FD1718
  [Directordaemon 18] as Dir18
  [Storagedaemon 18] as SD18
  [Storagedaemon2 18] as SD218

  !define arrow_hidden(from,direction,to,comment) from -[#white]direction->to : <color white>comment</color>

  !define arrow(from,direction,to,comment) from -direction->to : comment

  arrow(Con1718, right, Dir18, 1n)
  arrow(Con1718, right, Dir18, 2r)

  arrow(Py1718, up, Dir18, 3n)
  arrow(Py1718, up, Dir18, 4r)

  arrow(Webui1718, down, Dir18, 5n)
  arrow(Webui1718, down, Dir18, 6r)

  arrow(Dir18, up, FD1718, 7)
  arrow(FD1718, down, Dir18, 8)

  arrow(Dir18, right, SD18, 9a)

  arrow(FD1718, down, SD18, 10)
  arrow(SD18, down, FD1718, 11)

  arrow(SD18, down, SD218, 12)
  arrow(Dir18, down, SD218, 9b)

  arrow(Tray18, down, Dir18, 13)
  arrow(Tray18, down, FD1718, 14)
  arrow(Tray18, down, SD18, 15)

Deprecated and Removed Features
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Removed Bareos conio option, as the standard library readline is used instead
* GnutTLS is not supported anymore, OpenSSL is now required

Bugs Fixed
^^^^^^^^^^
* :mantis:`845`: NetApp OnCommand System Manager calls on SD Port 10000 leads to Segmentation Violation
* :mantis:`805`: Can't restore vmware-plugin assisted backups via |bareosWebui|
* Windows Installer: Fixed infinite install dialog for VC 2012 checks on x86 windows
* Fixed memory leaks in the |bareosDir| when using bconsole or |bareosWebui|
* Fixed a debug message handler bug on |bareosDir| when debuglevel is >= 900
* Improved shutdown of |bareosDir|
* :mantis:`1034`: Read error on tape may be misinterpreted as end-of-tape
* "Exit On Fatal" works now as expected
* Fixed a bug when migration storage daemons cannot connect
* Guarded numerous nullpointers
* VMware: Fixed errors when using non-ascii characters

Updated Documentation
^^^^^^^^^^^^^^^^^^^^^
* Updated VMware plugin documentation: :ref:`VMwarePlugin`
* How to configure transport encryption in |bareosWebui|: :ref:`TransportEncryptionWebuiBareosDirChapter`
* Detailed connections overview here: :ref:`ConnectionOverviewReference`
* How to use PAM with |bareosDir|: :ref:`PAMConfigurationChapter`
* Backward compatibility of |bareosFd|: :ref:`CompatibilityWithFileDaemonsBefore182Chapter`

Internal Project Changes
^^^^^^^^^^^^^^^^^^^^^^^^
* Reorganized the whole git repository and merged sub repositories into main repository
* Changed the build system from autoconf/automake to cmake
* Switched from cmocka to google test framework for unit tests
* Introduced namespaces to avoid name clashes when parts of different daemons are tested in one test
* Switched to use c++11 standard, start to refactor using standard library instead of legacy features
* Use google c++ style guide

  * Refactored variable names

* Refactored configuration parser
* TLS implementation has now a base class interface instead of compile time switched behaviour
* Library cleanup and reorganization

  * Library does not use main program variables anymore
  * Removed libbareoscfg
  * Enhanced windows cross building

* Renamed c++ files to use .cc file extension
* Cleanup of header files

  * Removed "protos.h"
  * Introduced individual header fileS for each c++ file
  * Each header file has own google c++ standard header guard
  * Explicitly declare functions override where applicable

* |bareosTraymonitor|: Allows compiling using Qt4 or Qt5
* Switch the documentation from LaTeX to Sphinx (work in progress)
* |bareosWebui|: Enhances Selenium tests to be used on https://saucelabs.com/u/bareossaucelabs
* clang: Massively reduced number of warnings
* FreeBSD: added start scripts, fixed buggy cmake detection of ACL support
* Regression tests

  * Automatically build |bareosTraymonitor|
  * Preconfigure |bareosWebui| to run in php's own webserver for easy testing

Bareos-17.2
-----------

.. _bareos-17.2.10:

bareos-17.2.10
~~~~~~~~~~~~~~
:index:`\ <single: bareos-17.2.10; Release Notes>`\

================ ===============================================
Code Release     2020-07-09
Database Version 2171 (unchanged)
Release Ticket   :mantis:`1225`
Url              http://download.bareos.com/bareos/release/17.2/
================ ===============================================

Security
^^^^^^^^
This release contains a fix for `CVE-2020-11061`_ (:mantis:`1210`).
Please make sure you implement the workaround described in `CVE-2020-4042`_ (:mantis:`1250`), because this release does not contain a fix for the problem.

.. _CVE-2020-4042:  https://github.com/bareos/bareos/security/advisories/GHSA-vqpj-2vhj-h752
.. _CVE-2020-11061: https://github.com/bareos/bareos/security/advisories/GHSA-mm45-cg35-54j4

Bugfixes and Changes
^^^^^^^^^^^^^^^^^^^^
* :mantis:`1210`: Security vulnerability results in heap overflow in director when doing a Verify job against a file daemon.

.. _bareos-17.2.9:

bareos-17.2.9
~~~~~~~~~~~~~
:index:`\ <single: bareos-17.2.9; Release Notes>`\

================ ===============================================
Code Release     2020-04-09
Database Version 2171 (unchanged)
Release Ticket   :mantis:`1158`
Url              http://download.bareos.com/bareos/release/17.2/
================ ===============================================

- :mantis:`1162`: When restoring files without directories, the permissions of the immediate parent directory are wrong
- fix a problem with GlusterFS Backend on CentOS 7/RHEL 7

.. _bareos-17.2.8:

bareos-17.2.8
~~~~~~~~~~~~~

:index:`\ <single: bareos-17.2.8; Release Notes>`\

================ ===============================================
Code Release     2019-12-12
Database Version 2171 (unchanged)
Release Ticket   :mantis:`1153`
Url              http://download.bareos.com/bareos/release/17.2/
================ ===============================================

-  Droplet: improves handling when truncating volumes

   -  Without this change, errors when truncating a droplet volume are silently ignored.

-  :mantis:`1030`  bscan does not work for migration and copy jobs

-  :mantis:`1034`: Read error on tape may be misinterpreted as end-of-tape.

-  Fix nullptr cornercase in mtx-changer parser in the |dir|

-  Fix corner-case crash during job cancel in the |sd|

-  Fix crash on excessive SOS records

-  Packaging: make specfiles compatible to docker

.. _bareos-17.2.7:

bareos-17.2.7
~~~~~~~~~~~~~

:index:`\ <single: bareos-17.2.7; Release Notes>`\

================ ===============================================
Code Release     2018-07-13
Database Version 2171 (unchanged)
Release Ticket   :mantis:`966`
Url              http://download.bareos.com/bareos/release/17.2/
================ ===============================================

This release contains several bugfixes and enhancements. Excerpt:

-  :mantis:`892` **bareos-storage-droplet**: improve error handling on unavailable backend.

-  :mantis:`902` **bareos-storage-droplet**: improve job status handling (terminate job after all data is written).

-  :mantis:`967` :os:`Windows`: overwrite symbolic links on restore.

-  :mantis:`983` |sd|: prevent sporadic crash when :config:option:`sd/storage/CollectJobStatistics = yes`\ .

-  :os:`SLES 12sp2` and :os:`SLES 12sp3`: provide **bareos-storage-ceph** and **bareos-filedaemon-ceph-plugin** packages.

.. _bareos-17.2.6:

bareos-17.2.6
~~~~~~~~~~~~~

:index:`\ <single: bareos-17.2.6; Release Notes>`\

================ ===============================================
Code Release     2018-06-21
Database Version 2171 (unchanged)
Release Ticket   :mantis:`916`
Url              http://download.bareos.com/bareos/release/17.2/
================ ===============================================

This release contains several bugfixes and enhancements. Excerpt:

-  added platforms: :os:`Fedora 27`, :os:`Fedora 28`, :os:`openSUSE 15.0`, :os:`Ubuntu 18.04` and :os:`Univention 4.3`.

-  :os:`Univention 4.3`: fixes integration.

-  :mantis:`872` adapted to new Ceph API.

-  :mantis:`943` use **tirpc** if Sun-RPC is not provided.

-  :mantis:`964` fixes the predefined queries.

-  :mantis:`969` fixes a problem of restoring more files then selected in |webui|/BVFS.

-  |dir|: fixes for a crash after reload in the statistics thread (:mantis:`695`, :mantis:`903`).

-  :command:`bareos-dbcheck`: cleanup and speedup for some some of the checks.

-  adapted for |postgresql| 10.

-  gfapi: stale file handles are treated as warnings

.. _bareos-17.2.5:

bareos-17.2.5
~~~~~~~~~~~~~

:index:`\ <single: bareos-17.2.5; Release Notes>`\

================ ===============================================
Code Release     2018-02-16
Database Version 2171 (unchanged)
Release Ticket   :mantis:`910`
Url              http://download.bareos.com/bareos/release/17.2/
================ ===============================================

This release contains several bugfixes and enhancements. Excerpt:

-  |fd| is ready for :os:`AIX 7.1.0.0`.

-  :ref:`VMwarePlugin` is also provided for :os:`Debian 9`.

-  NDMP fixes

-  Virtual Backup fixes

-  **bareos-storage-droplet**: improvements

-  :command:`bareos-dbcheck` improvements and fixes: with older versions it could happen, that it destroys structures required by :bcommand:`.bvfs_*`.

-  :mantis:`850` fixes a bug on :os:`Univention`: fixes a problem of regenerating passwords when resyncing settings.

-  :mantis:`890` :bcommand:`.bvfs_update` fix. Before there have been cases where it did not update the cache.

-  :bcommand:`.bvfs_lsdirs` make limit- and offset-option work correctly.

-  :bcommand:`.bvfs_lsdirs` show special directory (like :file:`@bpipe@/`) on the same level as :file:`/`.

-  :mantis:`895` added description to the output of :bcommand:`show filesets`.

-  |webui|: Restore Browser fixes

   -  There was the possibility of an endless loop if the BVFS API delivers unexpected results. This has been fixed. See bugreports :mantis:`887` and :mantis:`893` for details.

   -  :mantis:`905` fixes a problem with file names containing quotes.

-  :config:option:`dir/client/NdmpBlockSize`\  changed type from :strong:`Pint32` to :strong:`Size32`. This should not affect any configuration, but is more consistent with other block size configuration directives.

.. _bareos-17.2.4:

bareos-17.2.4
~~~~~~~~~~~~~

:index:`\ <single: bareos-17.2.4; Release Notes>`\

================ ===============================================
Code Release     2017-12-14
Database Version 2171
Release Ticket   :mantis:`861`
Url              http://download.bareos.org/bareos/release/17.2/
\                http://download.bareos.com/bareos/release/17.2/
================ ===============================================

This release contains several enhancements. Excerpt:

-  Bareos Distribution (packages)

   -  **Python-bareos** is included in the core distribution.

   -  **bareos-storage-droplet** is a storage backend for the droplet library. Most notably it allows backup and restores to a S3 environment. \betaSince{sd}{bareos-storage-droplet}{17.2.4}

   -  **bat** has been removed.

   -  platforms:

      -  Windows Clients are still supported since Windows Vista.

      -  MacOS: added to build chain.

      -  |fd| is ready for HP-UX 11.31 (ia64).

      -  Linux Distribution: Bareos tries to provide packages for all current platforms. For details, refer to :ref:`section-packages`.

   -  Linux RPM packages: allow read access to /etc/bareos/ for all users (however, relevant files are still only readable for the user **bareos**). This allows other programs associated with Bareos to also use this directory.

-  Denormalization of the **File** database table

   -  The denormalization of the **File** database table leads to enormous performance improvements in installation, which covering a lot of file (millions and more).

   -  For the denormalization the database schema must be modified.

.. warning::

   Updating the database to schema version >= 2170 will increase the required disk space.
                      Especially it will require around twice the amount of the current database disk space during the migration.

   -  The **Filename** database table does no longer exists. Therefore the :bcommand:`.bvfs_*` commands do no longer output the **FilenameId** column.

-  NDMP_NATIVE support has been added. This include the NDMP features DAR and DDAR. For details see :ref:`section-NdmpNative`.

-  Updated the package **bareos-vmware-plugin** to utilize the Virtual Disk Development Kit (VDDK) 6.5.x. This includes support for |vsphere| 6.5 and the next major release (except new features) and backward compatible with |vsphere| 5.5 and 6.0. For details see :ref:`VMwarePlugin`.

-  Soft Quota: automatic quota grace period reset if a job does not exceed the quota.

-  :command:`bareos-dbcheck`: disable all interactive questions in batch mode.

-  :bcommand:`list files`: also show deleted files (accurate mode).

-  :bcommand:`list jobstatastics`: added.

-  :bcommand:`purge`: added confirmation.

-  :bcommand:`list volumes`: fix limit and offset handling.

-  :mantis:`629` Windows: restore directory attributes.

-  :mantis:`639` tape: fix block size handling, AWS VTL iSCSI devices

-  :mantis:`705` support for MySQL 5.7

-  :mantis:`719` allow long JSON messages (has been increased from 100KB to 2GB).

-  :mantis:`793` Virtual Backups: skip jobs with no files.

Bareos-16.2
-----------

.. _bareos-16.2.10:

bareos-16.2.10
~~~~~~~~~~~~~~

:index:`\ <single: bareos-16.2.9; Release Notes>`\

================ ===============================================
Code Release     2020-04-08
Database Version 2004 (unchanged)
Release Ticket   :mantis:`1159`
Url              http://download.bareos.com/bareos/release/16.2/
================ ===============================================

- :mantis:`1162`: When restoring files without directories, the permissions of the immediate parent directory are wrong

End of life for Bareos 16.2
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Bareos 16.2.10 will be the last release in the 16.2 series.

.. _bareos-16.2.9:

bareos-16.2.9
~~~~~~~~~~~~~

:index:`\ <single: bareos-16.2.9; Release Notes>`\

================ ===============================================
Code Release     2019-12-12
Database Version 2004 (unchanged)
Release Ticket   :mantis:`1154`
Url              http://download.bareos.com/bareos/release/16.2/
================ ===============================================

-  Improve list command

   -  Honor "pool" filter for jobs so you can list jobs by pool

-  Updated MySQL creation schema to current standards

-  Packaging: Use .tar.bz2 instead of tar.gz

-  Packaging: Make rpm spec compatible to docker builds

.. _bareos-16.2.8:

bareos-16.2.8
~~~~~~~~~~~~~

:index:`\ <single: bareos-16.2.8; Release Notes>`\

================ ===============================================
Code Release     2018-07-06
Database Version 2004 (unchanged)
Release Ticket   :mantis:`863`
Url              http://download.bareos.com/bareos/release/16.2/
================ ===============================================

This release contains several bugfixes and enhancements. Excerpt:

-  gfapi-fd Plugin

   -  Allow to use non-accurate backups with glusterfind

   -  Fix backups with empty glusterfind filelist.

   -  Explicitly close glfs fd on IO-open

   -  Don’t reinitialize the connection to gluster

   -  Fix parsing of missing basedir argument

   -  Handle non-fatal Gluster problems properly

-  Reset JobStatus to previous JobStatus in status SD and FD loops to fix status all output

-  Backport ceph: ported cephfs-fd and :command:`cephfs_device` to new api

-  :mantis:`967` Windows: Symbolic links are now replaceable during restore

.. _bareos-16.2.7:

bareos-16.2.7
~~~~~~~~~~~~~

:index:`\ <single: bareos-16.2.7; Release Notes>`\

================ ===============================================
Code Release     2017-10-09
Database Version 2004 (unchanged)
Release Ticket   :mantis:`836`
Url              http://download.bareos.com/bareos/release/16.2/
================ ===============================================

This release contains several bugfixes and enhancements. Excerpt:

-  Fixes a Director crash, when enabling debugging output

-  :bcommand:`.bvfs_lsdirs`: improve performance, especially when having a large number of directories

   -  To optimize the performance of the SQL query used by :bcommand:`.bvfs_lsdirs`, it is important to have the following indexes:

   -  PostgreSQL

      -  ``CREATE INDEX file_jpfnidpart_idx ON File(PathId,JobId,FilenameId) WHERE FileIndex = 0;``

      -  If the index ``file_jfnidpart_idx`` mentioned in 16.2.6 release notes exist, drop it:
         ``DROP INDEX file_jfnidpart_idx;``

   -  MySQL/MariaDB

      -  ``CREATE INDEX PathId_JobId_FileNameId_FileIndex ON File(PathId,JobId,FilenameId,FileIndex);``

      -  If the index ``PathId_JobId_FileIndex_FileNameId`` mentioned in 16.2.6 release notes exist, drop it:
         ``DROP INDEX PathId_JobId_FileIndex_FileNameId ON File;``

-  Utilize OpenSSL >= 1.1 if available

-  Windows: fixes silent upgrade (:command:`winbareos-*.exe /S`)

-  Windows: restore attributes also on directories (not only on files)

-  Fixes problem with SHA1 signature when compiled without OpenSSL (not relevant for bareos.org/bareos.com packages)

-  Packages for openSUSE Leap 42.3 and Fedora 26 have been added.

-  Packages for AIX and current HP-UX 11.31

.. _bareos-16.2.6:

bareos-16.2.6
~~~~~~~~~~~~~

:index:`\ <single: bareos-16.2.6; Release Notes>`\

================ ===============================================
Code Release     2017-06-22
Database Version 2004 (unchanged)
Release Ticket   :mantis:`794`
Url              http://download.bareos.com/bareos/release/16.2/
================ ===============================================

This release contains several bugfixes and enhancements. Excerpt:

-  Prevent from director crash when using incorrect paramaters of :bcommand:`.bvfs_*` commands.

-  Director now closes all configuration files when reloading failed.

-  Storage daemon now closes the network connection when MaximumConcurrentJobs reached.

-  New directive :strong:`LanAddress`\  was added to the Client and Storage Resources of the director to facilitate a network topology where client and storage are situated inside of a LAN, but the Director is outside of that LAN. See :ref:`LanAddress` for details.

-  A Problem in the storage abstraction layer was fixed where the director picked the wrong storage daemon when multiple storages/storage daemons were used.

-  The device spool size calculation when using secure erase was fixed.

-  :bcommand:`.bvfs_lsdirs` no longer shows empty directories from accurate jobs.

   -

         .. warning::

            This decreases performance if your environment has a large numbers of directories. Creating an index improves the performance.

   -

      |postgresql|

      -  When using PostgreSQL, creating the following partial improves the performance sufficiently:
         ``CREATE INDEX file_jfnidpart_idx ON File(JobId, FilenameId) WHERE FileIndex = 0;``

      -  Run following command to create the partial index:
         :file:`su - postgres -c 'echo "CREATE INDEX file_jfnidpart_idx ON File(JobId, FilenameId) WHERE FileIndex = 0; ANALYZE File;" | psql bareos'`

   -

      |mysql|

      -  When using MySQL or MariaDB, creating the following index improves the performance:
         ``CREATE INDEX PathId_JobId_FileIndex_FileNameId ON File(PathId,JobId,FileIndex,FilenameId);``

      -  Run following command to create the index:
         :file:`echo "CREATE INDEX PathId_JobId_FileIndex_FileNameId ON File(PathId,JobId,FileIndex,FilenameId);" | mysql -u root bareos`

      -  However, with larger amounts of directories and/or involved jobs, even with this index the performance of :bcommand:`.bvfs_lsdirs` may still be insufficient. We are working on optimizing the SQL query for MySQL/MariaDB to solve this problem.

-  Packages for Univention UCS 4.2 have been added.

-  Packages for Debian 9 (Stretch) have been added.

-  WebUI: The post install script of the bareos-webui RPM package for RHEL/CentOS was fixed, it no longer tries to run a2enmod which does not exist on RHEL/CentOS.

-  WebUI: The login form no longer allows redirects to arbitrary URLs

-  WebUI: The used ZendFramework components were updated from version 2.4.10 to 2.4.11.

-  WebUI: jQuery was updated from version 1.12.4 to version 3.2.0., some outdated browsers like Internet Explorer 6-8, Opera 12.1x or Safari 5.1+ will no longer be supported, see `jQuery Browser Support <http://jquery.com/browser-support/>`_ for details.

.. _bareos-16.2.5:

bareos-16.2.5
~~~~~~~~~~~~~

:index:`\ <single: bareos-16.2.5; Release Notes>`\

================ ===============================================
Code Release     2017-03-03
Database Version 2004 (unchanged)
Release Ticket   :mantis:`734`
Url              http://download.bareos.com/bareos/release/16.2/
================ ===============================================

This release contains several bugfixes and enhancements. Excerpt:

-  NDMP: critical bugfix when restoring large files.

-  truncate command allows to free space on disk storages (replaces an purged volume by an empty volume).

-  Some fixes were added regarding director crashes, Windows backups (VSS), soft-quota reset and API (bvfs) problems.

-  WebUI: handle file names containing special characters, hostnames starting with numbers and long logfiles.

-  WebUI: adds translations for Chinese, Italian and Spanish.

.. _bareos-16.2.4:

bareos-16.2.4
~~~~~~~~~~~~~

:index:`\ <single: bareos-16.2.4; Release Notes>`\

================ ===============================================
Code Release     2016-10-28
Database Version 2004 (unchanged)
Release Ticket   :mantis:`698`
Url              http://download.bareos.org/bareos/release/16.2/
\                http://download.bareos.com/bareos/release/16.2/
================ ===============================================

First stable release of the Bareos 16.2 branch.

-  Configuration

   -  Bareos packages contain the default configuration in :ref:`section-ConfigurationSubdirectories`. Please read :ref:`section-UpdateToConfigurationSubdirectories` before updating (make a copy of your configuration directories for your |dir| and |sd| before updating). Note: as the old configuration files are still supported, in most cases no changes are required.

   -  The default configuration does no longer name the :config:option:`Dir/Director`\  and :config:option:`Sd/Storage`\  resources after the systems hostname (:file:`$HOSTNAME-dir` resp. :file:`$HOSTNAME-sd`) but use :config:option:`Dir/Director = bareos-dir`\  resp. :config:option:`Sd/Storage = bareos-sd`\  as defaults. The prior solution had the disadvantage, that :file:`$HOSTNAME-dir` has also been set on |fd| not running on the
      |dir|, which almost ever did require changing this setting. Also the new approach aligns better with :ref:`section-ConfigurationSubdirectories`.

   -  Due to limitation of the build system, the default resource :config:option:`Dir/FileSet = Linux All`\  have been renamed to :config:option:`Dir/FileSet = LinuxAll`\  (no space between Linux and All).

   -  The configuration of the **bareos-traymonitor** has also been split into resource files. Additional, these resource files are now packaged in other packages:

      -  :file:`CONFIGDIR/tray-monitor.d/monitor/bareos-mon.conf`: **bareos-traymonitor**

      -  :file:`CONFIGDIR/tray-monitor.d/client/FileDaemon-local.conf`: **bareos-filedaemon**

      -  :file:`CONFIGDIR/tray-monitor.d/storage/StorageDaemon-local.conf`: **bareos-storage**

      -  :file:`CONFIGDIR/tray-monitor.d/director/Director-local.conf`: :file:`bareos-director`

      This way, the **bareos-traymonitor** will be configured automatically for the installed components.

-  Strict ACL handling

   -  Bareos Console :strong:`Acl`s do no longer automatically matches substrings (to avoid that e.g. :config:option:`dir/console/PoolAcl = Full`\  also matches :config:option:`dir/pool = VirtualFull`\ ). To configure the ACL to work as before, :config:option:`dir/console/PoolAcl = .*Full.*`\  must be set. Unfortunately the |webui| 15.2 :config:option:`Dir/Profile = webui`\  did use
      :config:option:`dir/console/CommandAcl = .bvfs*`\ , which is also no longer works as intended. Moreover, to use all of |webui| 16.2 features, some additional commands must be permitted, so best use the new :config:option:`Dir/Profile = webui-admin`\ .

- |webui|

   -  Updating from Bareos 15.2: Adapt :config:option:`Dir/Profile = webui`\  (from bareos 15.2) to allow all commands of :config:option:`Dir/Profile = webui-admin`\  (:config:option:`dir/console/CommandAcl`\ ). Alternately modify all :config:option:`Dir/Console`\ s currently using :config:option:`Dir/Profile = webui`\  to use :config:option:`Dir/Profile = webui-admin`\  instead.

   -  While RHEL 6 and CentOS 6 are still platforms supported by Bareos, the package **bareos-webui** is not available for these platforms, as the required ZendFramework 2.4 do require PHP >= 5.3.17 (5.3.23). However, it is possible to use **bareos-webui** 15.2 against **bareos-director** 16.2. Also here, the profile must be adapted.

Bareos-15.2
-----------

.. _bareos-15.2.4:

bareos-15.2.4
~~~~~~~~~~~~~

:index:`\ <single: bareos-15.2.4; Release Notes>`\

================ ===============================================
Code Release     2016-06-10
Database Version 2004 (unchanged)
Release Ticket   :mantis:`641`
Url              http://download.bareos.com/bareos/release/15.2/
================ ===============================================

For upgrading from 14.2, please see release notes for 15.2.1.

This release contains several bugfixes and enhancements. Excerpt:

-  Automatic mount of disks by SD

-  NDMP performance enhancements

-  Windows: sparse file restore

-  Director memory leak caused by frequent bconsole calls

.. _bareos-15.2.3:

bareos-15.2.3
~~~~~~~~~~~~~

:index:`\ <single: bareos-15.2.3; Release Notes>`\

================ ===============================================
Code Release     2016-03-11
Database Version 2004 (unchanged)
Release Ticket   :mantis:`625`
Url              http://download.bareos.com/bareos/release/15.2/
================ ===============================================

For upgrading from 14.2, please see releasenotes for 15.2.1.

This release contains several bugfixes and enhancements. Excerpt:

-  VMWare plugin can now restore to VMDK file

-  Ceph support for SLES12 included

-  Multiple gfapi and ceph enhancements

-  NDMP enhancements and bugfixes

-  Windows: multiple VSS Jobs can now run concurrently in one FD, installer fixes

-  bpipe: fix stderr/stdout problems

-  reload command enhancements (limitations eliminated)

-  label barcodes now can run without interaction

.. _bareos-15.2.2:

bareos-15.2.2
~~~~~~~~~~~~~

:index:`\ <single: bareos-15.2.2; Release Notes>`\

================ ============================================================================================================
Code Release     2015-11-19
Database Version 2004
\                Database update required (if coming from bareos-14.2). See the :ref:`bareos-update` section.
Release Ticket   :mantis:`554`
Url              http://download.bareos.org/bareos/release/15.2/
\                http://download.bareos.com/bareos/release/15.2/
================ ============================================================================================================

First stable release of the Bareos 15.2 branch.

When coming from bareos-14.2.x, the following things have changed (same as in bareos-15.2.1):

-  The default setting for the Bacula Compatbile mode in :config:option:`fd/client/Compatible`\  and :config:option:`sd/storage/Compatible`\  have been changed from :strong:`yes` to :strong:`no`.

-  The configuration syntax for Storage Daemon Cloud Backends Ceph and GlusterFS have changed. Before bareos-15.2, options have been configured as part of the :config:option:`sd/device/ArchiveDevice`\  directive, while now the Archive Device contains only information text and options are defined via the :config:option:`sd/device/DeviceOptions`\  directive. See examples in :config:option:`sd/device/DeviceOptions`\ .

*bareos-15.2.1 (unstable)*
~~~~~~~~~~~~~~~~~~~~~~~~~~

================ ===============================================================================
Code Release     2015-09-16
Database Version 2004
\                Database update required, see the :ref:`bareos-update` section.
Release Ticket   :mantis:`501`
Url              http://download.bareos.org/bareos/release/15.2/
================ ===============================================================================

Beta release.

-  The default setting for the Bacula Compatbile mode in :config:option:`fd/client/Compatible`\  and :config:option:`sd/storage/Compatible`\  have been changed from :strong:`yes` to :strong:`no`.

-  The configuration syntax for Storage Daemon Cloud Backends Ceph and GlusterFS have changed. Before bareos-15.2, options have been configured as part of the :config:option:`sd/device/ArchiveDevice`\  directive, while now the Archive Device contains only information text and options are defined via the :config:option:`sd/device/DeviceOptions`\  directive. See examples in :config:option:`sd/device/DeviceOptions`\ .

Bareos-14.2
-----------

It is known, that :command:`drop_database` scripts will not longer work on PostgreSQL < 8.4. However, as :command:`drop_database` scripts are very seldom needed, package dependencies do not yet enforce PostgreSQL >= 8.4. We plan to ensure this in future version of Bareos.

.. _bareos-14.2.7:

bareos-14.2.7
~~~~~~~~~~~~~

:index:`\ <single: bareos-14.2.7; Release Notes>`\

================ ===============================================
Code Release     2016-07-11
Database Version 2003 (unchanged)
Release Ticket   :mantis:`584`
Url              http://download.bareos.com/bareos/release/14.2/
================ ===============================================

This release contains several bugfixes. Excerpt:

-  bareos-dir

   -  | Fixes pretty printing of Fileset options block
      | :mantis:`591`: config pretty-printer does not print filesets correctly

   -  | run command: fixes changing the pool when changing the backup level in interactive mode
      | :mantis:`633`: Interactive run doesn’t update pool on level change

   -  | Ignore the Fileset option DriveType on non Windows systems
      | :mantis:`644`: Setting DriveType causes empty backups on Linux

   -  | Suppress already queued jobs for disabled schedules
      | :mantis:`659`: Suppress already queued jobs for disabled schedules

-  NDMP

   -  | Fixes cancel of NDMP jobs
      | :mantis:`604`: Cancel a NDMP Job causes the sd to crash

-  bpipe-fd plugin

   -  | Only take stdout into account, ignore stderr (like earlier versions)
      | :mantis:`632`: fd-bpipe plugin merges stderr with stdout, which can result in corrupted backups

-  win32

   -  | Fix symlink and junction support
      | :mantis:`575`: charset problem in symlinks/junctions windows restore
      | :mantis:`615`: symlinks/junctions wrong target path on restore (wide chars)

   -  | Fixes quoting for bmail.exe in bareos-dir.conf
      | :mantis:`581`: Installer is setting up a wrong path to bmail.exe without quotes / bmail not called

   -  | Fix crash on restore of sparse files
      | :mantis:`640`: File daemon crashed after restoring sparse file on windows

-  win32 mssql plugin

   -  | Allow connecting to non default instance
      | :mantis:`383`: mssqldvi problem with connection to mssql not default instance

   -  | Fix backup/restore of incremental backups
      | :mantis:`588`: Incremental MSSQL backup fails when database name contains spaces

.. _bareos-14.2.6:

bareos-14.2.6
~~~~~~~~~~~~~

:index:`\ <single: bareos-14.2.6; Release Notes>`\

================ ===============================================
Code Release     2015-12-03
Database Version 2003 (unchanged)
Release Ticket   :mantis:`474`
Url              http://download.bareos.com/bareos/release/14.2/
================ ===============================================

This release contains several bugfixes.

.. _bareos-14.2.5:

bareos-14.2.5
~~~~~~~~~~~~~

:index:`\ <single: bareos-14.2.5; Release Notes>`\

================ ===============================================
Code Release     2015-06-01
Database Version 2003 (unchanged)
Release Ticket   :mantis:`447`
Url              http://download.bareos.com/bareos/release/14.2/
================ ===============================================

This release contains several bugfixes and added the platforms :os:`Debian 8` and :os:`Fedora 21`.

.. _bareos-14.2.4:

bareos-14.2.4
~~~~~~~~~~~~~

:index:`\ <single: bareos-14.2.4; Release Notes>`\

================ ===============================================
Code Release     2015-03-23
Database Version 2003 (unchanged)
Release Ticket   :mantis:`420`
Url              http://download.bareos.com/bareos/release/14.2/
================ ===============================================

This release contains several bugfixes, including one major bugfix (:mantis:`437`), relevant for those of you using backup to disk with autolabeling enabled.

It can lead to loss of a 64k block of data when all of this conditions apply:

-  backups are written to disk (tape backups are not affected)

-  autolabelling is enabled

-  a backup spans over multiple volumes

-  the additional volumes are newly created and labeled during the backup

If existing volumes are used for backups spanning over multiple volumes, the problem does not occur.

We recommend to update to the latest packages as soon as possible.

If an update is not possible immediately, autolabeling should be disabled and volumes should be labelled manually until the update can be installed.

If you are affected by the 64k bug, we recommend that you schedule a full backup after fixing the problem in order to get a proper full backup of all files.

.. _bareos-14.2.3:

bareos-14.2.3
~~~~~~~~~~~~~

:index:`\ <single: bareos-14.2.3; Release Notes>`\

================ ===============================================
Code Release     2015-02-02
Database Version 2003 (unchanged)
Release Ticket   :mantis:`393`
Url              http://download.bareos.com/bareos/release/14.2/
================ ===============================================

.. _bareos-14.2.2:

bareos-14.2.2
~~~~~~~~~~~~~

:index:`\ <single: bareos-14.2.2; Release Notes>`\

================ =================================================================
Code Release     2014-12-12
Database Version 2003 (unchanged)
\                Database update required if updating from version < 14.2.
\                See the :ref:`bareos-update` section for details.
Url              http://download.bareos.org/bareos/release/14.2/
\                http://download.bareos.com/bareos/release/14.2/
================ =================================================================

First stable release of the Bareos 14.2 branch.

*bareos-14.2.1 (unstable)*
~~~~~~~~~~~~~~~~~~~~~~~~~~

================ ===============================================================================
Code Release     2014-09-22
Database Version 2003
\                Database update required, see the :ref:`bareos-update` section.
Url              http://download.bareos.org/bareos/release/14.2/
================ ===============================================================================

Beta release.

Bareos-13.2
-----------

.. _bareos-13.2.5:

bareos-13.2.5
~~~~~~~~~~~~~

:index:`\ <single: bareos-13.2.5; Release Notes>`\

================ ===============================================
Code Release     2015-12-03
Database Version 2002 (unchanged)
Url              http://download.bareos.com/bareos/release/13.2/
================ ===============================================

This release contains several bugfixes.

.. _bareos-13.2.4:

bareos-13.2.4
~~~~~~~~~~~~~

:index:`\ <single: bareos-13.2.4; Release Notes>`\

================ ===============================================
Code Release     2014-11-05
Database Version 2002 (unchanged)
Url              http://download.bareos.com/bareos/release/13.2/
================ ===============================================

.. _bareos-13.2.3:

bareos-13.2.3
~~~~~~~~~~~~~

:index:`\ <single: bareos-13.2.3; Release Notes>`\

================ ===============================================================================
Code Release     2014-03-11
Database Version 2002
\                Database update required, see the :ref:`bareos-update` section.
Url              http://download.bareos.com/bareos/release/13.2/
================ ===============================================================================

It is known, that :command:`drop_database` scripts will not longer work on PostgreSQL < 8.4. However, as :command:`drop_database` scripts are very seldom needed, package dependencies do not yet enforce PostgreSQL >= 8.4. We plan to ensure this in future version of Bareos.

.. _bareos-13.2.2:

bareos-13.2.2
~~~~~~~~~~~~~

:index:`\ <single: bareos-13.2.2; Release Notes>`\

================ ===============================================
Code Release     2013-11-19
Database Version 2001 (unchanged)
Url              http://download.bareos.org/bareos/release/13.2/
\                http://download.bareos.com/bareos/release/13.2/
================ ===============================================

Bareos-12.4
-----------

.. _bareos-12.4.8:

bareos-12.4.8
~~~~~~~~~~~~~

:index:`\ <single: bareos-12.4.8; Release Notes>`\

================ ===============================================
Code Release     2015-11-18
Database Version 2001 (unchanged)
Url              http://download.bareos.com/bareos/release/12.4/
================ ===============================================

This release contains several bugfixes.

.. _bareos-12.4.6:

bareos-12.4.6
~~~~~~~~~~~~~

:index:`\ <single: bareos-12.4.6; Release Notes>`\

================ ===============================================
Code Release     2013-11-19
Database Version 2001 (unchanged)
Url              http://download.bareos.org/bareos/release/12.4/
\                http://download.bareos.com/bareos/release/12.4/
================ ===============================================

.. _bareos-12.4.5:

bareos-12.4.5
~~~~~~~~~~~~~

:index:`\ <single: bareos-12.4.5; Release Notes>`\

================ ===============================================
Code Release     2013-09-10
Database Version 2001 (unchanged)
Url              http://download.bareos.com/bareos/release/12.4/
================ ===============================================

.. _bareos-12.4.4:

bareos-12.4.4
~~~~~~~~~~~~~

:index:`\ <single: bareos-12.4.4; Release Notes>`\

================ ===============================================
Code Release     2013-06-17
Database Version 2001 (unchanged)
Url              http://download.bareos.org/bareos/release/12.4/
\                http://download.bareos.com/bareos/release/12.4/
================ ===============================================

.. _bareos-12.4.3:

bareos-12.4.3
~~~~~~~~~~~~~

:index:`\ <single: bareos-12.4.3; Release Notes>`\

================ ===============================================
Code Release     2013-04-15
Database Version 2001 (unchanged)
Url              http://download.bareos.org/bareos/release/12.4/
\                http://download.bareos.com/bareos/release/12.4/
================ ===============================================

.. _bareos-12.4.2:

bareos-12.4.2
~~~~~~~~~~~~~

:index:`\ <single: bareos-12.4.2; Release Notes>`\

================ ================
Code Release     2013-03-03
Database Version 2001 (unchanged)
================ ================

.. _bareos-12.4.1:

bareos-12.4.1
~~~~~~~~~~~~~

:index:`\ <single: bareos-12.4.1; Release Notes>`\

================ ==============
Code Release     2013-02-06
Database Version 2001 (initial)
================ ==============

This have been the initial release of Bareos.

Information about migrating from Bacula to Bareos are available at `Howto upgrade from Bacula to Bareos <http://www.bareos.org/en/HOWTO/articles/upgrade_bacula_bareos.html>`_ and in section :ref:`compat-bacula`.

{'repo_name': 'bareos/bareos', 'stars': '591', 'repo_language': 'C++', 'file_name': 'index.txt', 'mime_type': 'text/plain', 'hash': -1337166149265037142, 'source_dataset': 'data'}


Bucket Policy Only setting for gs://k8s-staging-etcd-gcb:
  Enabled: True
  LockedTime: 2020-07-02 17:27:54.925000+00:00

{'repo_name': 'kubernetes/k8s.io', 'stars': '185', 'repo_language': 'Shell', 'file_name': '1.18.1.yaml', 'mime_type': 'text/plain', 'hash': 5554484901863192282, 'source_dataset': 'data'}


package dataworks_public

//Licensed under the Apache License, Version 2.0 (the "License");
//you may not use this file except in compliance with the License.
//You may obtain a copy of the License at
//
//http://www.apache.org/licenses/LICENSE-2.0
//
//Unless required by applicable law or agreed to in writing, software
//distributed under the License is distributed on an "AS IS" BASIS,
//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//See the License for the specific language governing permissions and
//limitations under the License.
//
// Code generated by Alibaba Cloud SDK Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

import (
	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
)

// GetMetaDBInfo invokes the dataworks_public.GetMetaDBInfo API synchronously
// api document: https://help.aliyun.com/api/dataworks-public/getmetadbinfo.html
func (client *Client) GetMetaDBInfo(request *GetMetaDBInfoRequest) (response *GetMetaDBInfoResponse, err error) {
	response = CreateGetMetaDBInfoResponse()
	err = client.DoAction(request, response)
	return
}

// GetMetaDBInfoWithChan invokes the dataworks_public.GetMetaDBInfo API asynchronously
// api document: https://help.aliyun.com/api/dataworks-public/getmetadbinfo.html
// asynchronous document: https://help.aliyun.com/document_detail/66220.html
func (client *Client) GetMetaDBInfoWithChan(request *GetMetaDBInfoRequest) (<-chan *GetMetaDBInfoResponse, <-chan error) {
	responseChan := make(chan *GetMetaDBInfoResponse, 1)
	errChan := make(chan error, 1)
	err := client.AddAsyncTask(func() {
		defer close(responseChan)
		defer close(errChan)
		response, err := client.GetMetaDBInfo(request)
		if err != nil {
			errChan <- err
		} else {
			responseChan <- response
		}
	})
	if err != nil {
		errChan <- err
		close(responseChan)
		close(errChan)
	}
	return responseChan, errChan
}

// GetMetaDBInfoWithCallback invokes the dataworks_public.GetMetaDBInfo API asynchronously
// api document: https://help.aliyun.com/api/dataworks-public/getmetadbinfo.html
// asynchronous document: https://help.aliyun.com/document_detail/66220.html
func (client *Client) GetMetaDBInfoWithCallback(request *GetMetaDBInfoRequest, callback func(response *GetMetaDBInfoResponse, err error)) <-chan int {
	result := make(chan int, 1)
	err := client.AddAsyncTask(func() {
		var response *GetMetaDBInfoResponse
		var err error
		defer close(result)
		response, err = client.GetMetaDBInfo(request)
		callback(response, err)
		result <- 1
	})
	if err != nil {
		defer close(result)
		callback(nil, err)
		result <- 0
	}
	return result
}

// GetMetaDBInfoRequest is the request struct for api GetMetaDBInfo
type GetMetaDBInfoRequest struct {
	*requests.RpcRequest
	AppGuid string `position:"Query" name:"AppGuid"`
}

// GetMetaDBInfoResponse is the response struct for api GetMetaDBInfo
type GetMetaDBInfoResponse struct {
	*responses.BaseResponse
	ErrorCode      string `json:"ErrorCode" xml:"ErrorCode"`
	ErrorMessage   string `json:"ErrorMessage" xml:"ErrorMessage"`
	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
	RequestId      string `json:"RequestId" xml:"RequestId"`
	Success        bool   `json:"Success" xml:"Success"`
	Data           Data   `json:"Data" xml:"Data"`
}

// CreateGetMetaDBInfoRequest creates a request to invoke GetMetaDBInfo API
func CreateGetMetaDBInfoRequest() (request *GetMetaDBInfoRequest) {
	request = &GetMetaDBInfoRequest{
		RpcRequest: &requests.RpcRequest{},
	}
	request.InitWithApiInfo("dataworks-public", "2020-05-18", "GetMetaDBInfo", "dide", "openAPI")
	request.Method = requests.GET
	return
}

// CreateGetMetaDBInfoResponse creates a response to parse from GetMetaDBInfo response
func CreateGetMetaDBInfoResponse() (response *GetMetaDBInfoResponse) {
	response = &GetMetaDBInfoResponse{
		BaseResponse: &responses.BaseResponse{},
	}
	return
}

{'repo_name': 'aliyun/alibaba-cloud-sdk-go', 'stars': '747', 'repo_language': 'Go', 'file_name': 'struct_cert_list.go', 'mime_type': 'text/plain', 'hash': -8853945895082125221, 'source_dataset': 'data'}


//            Copyright Daniel Trebbien 2010.
// Distributed under the Boost Software License, Version 1.0.
//   (See accompanying file LICENSE_1_0.txt or the copy at
//         http://www.boost.org/LICENSE_1_0.txt)

#ifndef BOOST_GRAPH_STOER_WAGNER_MIN_CUT_HPP
#define BOOST_GRAPH_STOER_WAGNER_MIN_CUT_HPP 1

#include <boost/assert.hpp>
#include <set>
#include <vector>
#include <boost/concept_check.hpp>
#include <boost/concept/assert.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/buffer_concepts.hpp>
#include <boost/graph/exception.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/iteration_macros.hpp>
#include <boost/graph/named_function_params.hpp>
#include <boost/graph/detail/d_ary_heap.hpp>
#include <boost/property_map/property_map.hpp>
#include <boost/tuple/tuple.hpp>
#include <boost/utility/result_of.hpp>

namespace boost {

  namespace detail {

    /**
     * \brief Performs a phase of the Stoer-Wagner min-cut algorithm
     *
     * Performs a phase of the Stoer-Wagner min-cut algorithm.
     *
     * As described by Stoer & Wagner (1997), a phase is simply a maximum adjacency search
     * (also called a maximum cardinality search), which results in the selection of two vertices
     * \em s and \em t, and, as a side product, a minimum s-t cut of
     * the input graph. Here, the input graph is basically \p g, but some vertices are virtually
     * assigned to others as a way of viewing \p g as a graph with some sets of
     * vertices merged together.
     *
     * This implementation is a translation of pseudocode by Professor Uri Zwick,
     * School of Computer Science, Tel Aviv University.
     *
     * \pre \p g is a connected, undirected graph
     * \param[in] g the input graph
     * \param[in] assignments a read/write property map from each vertex to the vertex that it is assigned to
     * \param[in] assignedVertices a list of vertices that are assigned to others
     * \param[in] weights a readable property map from each edge to its weight (a non-negative value)
     * \param[out] pq a keyed, updatable max-priority queue
     * \returns a tuple (\em s, \em t, \em w) of the "s" and "t"
     *     of the minimum s-t cut and the cut weight \em w
     *     of the minimum s-t cut.
     * \see http://www.cs.tau.ac.il/~zwick/grad-algo-08/gmc.pdf
     *
     * \author Daniel Trebbien
     * \date 2010-09-11
     */
    template <class UndirectedGraph, class VertexAssignmentMap, class WeightMap, class KeyedUpdatablePriorityQueue>
    boost::tuple<typename boost::graph_traits<UndirectedGraph>::vertex_descriptor, typename boost::graph_traits<UndirectedGraph>::vertex_descriptor, typename boost::property_traits<WeightMap>::value_type>
    stoer_wagner_phase(const UndirectedGraph& g, VertexAssignmentMap assignments, const std::set<typename boost::graph_traits<UndirectedGraph>::vertex_descriptor>& assignedVertices, WeightMap weights, KeyedUpdatablePriorityQueue& pq) {
      typedef typename boost::graph_traits<UndirectedGraph>::vertex_descriptor vertex_descriptor;
      typedef typename boost::property_traits<WeightMap>::value_type weight_type;

      BOOST_ASSERT(pq.empty());
      typename KeyedUpdatablePriorityQueue::key_map keys = pq.keys();

      BGL_FORALL_VERTICES_T(v, g, UndirectedGraph) {
        if (v == get(assignments, v)) { // foreach u \in V do
          put(keys, v, weight_type(0));

          pq.push(v);
        }
      }

      BOOST_ASSERT(pq.size() >= 2);

      vertex_descriptor s = boost::graph_traits<UndirectedGraph>::null_vertex();
      vertex_descriptor t = boost::graph_traits<UndirectedGraph>::null_vertex();
      weight_type w;
      while (!pq.empty()) { // while PQ \neq {} do
        const vertex_descriptor u = pq.top(); // u = extractmax(PQ)
        w = get(keys, u);
        pq.pop();

        s = t; t = u;

        BGL_FORALL_OUTEDGES_T(u, e, g, UndirectedGraph) { // foreach (u, v) \in E do
          const vertex_descriptor v = get(assignments, target(e, g));

          if (pq.contains(v)) { // if v \in PQ then
            put(keys, v, get(keys, v) + get(weights, e)); // increasekey(PQ, v, wA(v) + w(u, v))
            pq.update(v);
          }
        }

        typename std::set<vertex_descriptor>::const_iterator assignedVertexIt, assignedVertexEnd = assignedVertices.end();
        for (assignedVertexIt = assignedVertices.begin(); assignedVertexIt != assignedVertexEnd; ++assignedVertexIt) {
          const vertex_descriptor uPrime = *assignedVertexIt;

          if (get(assignments, uPrime) == u) {
            BGL_FORALL_OUTEDGES_T(uPrime, e, g, UndirectedGraph) { // foreach (u, v) \in E do
              const vertex_descriptor v = get(assignments, target(e, g));

              if (pq.contains(v)) { // if v \in PQ then
                put(keys, v, get(keys, v) + get(weights, e)); // increasekey(PQ, v, wA(v) + w(u, v))
                pq.update(v);
              }
            }
          }
        }
      }

      return boost::make_tuple(s, t, w);
    }

    /**
     * \brief Computes a min-cut of the input graph
     *
     * Computes a min-cut of the input graph using the Stoer-Wagner algorithm.
     *
     * \pre \p g is a connected, undirected graph
     * \pre pq.empty()
     * \param[in] g the input graph
     * \param[in] weights a readable property map from each edge to its weight (a non-negative value)
     * \param[out] parities a writable property map from each vertex to a bool type object for
     *     distinguishing the two vertex sets of the min-cut
     * \param[out] assignments a read/write property map from each vertex to a \c vertex_descriptor object. This
     *     map serves as work space, and no particular meaning should be derived from property values
     *     after completion of the algorithm.
     * \param[out] pq a keyed, updatable max-priority queue
     * \returns the cut weight of the min-cut
     * \see http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.114.6687&rep=rep1&type=pdf
     * \see http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.31.614&rep=rep1&type=pdf
     *
     * \author Daniel Trebbien
     * \date 2010-09-11
     */
    template <class UndirectedGraph, class WeightMap, class ParityMap, class VertexAssignmentMap, class KeyedUpdatablePriorityQueue>
    typename boost::property_traits<WeightMap>::value_type
    stoer_wagner_min_cut(const UndirectedGraph& g, WeightMap weights, ParityMap parities, VertexAssignmentMap assignments, KeyedUpdatablePriorityQueue& pq) {
      BOOST_CONCEPT_ASSERT((boost::IncidenceGraphConcept<UndirectedGraph>));
      BOOST_CONCEPT_ASSERT((boost::VertexListGraphConcept<UndirectedGraph>));
      typedef typename boost::graph_traits<UndirectedGraph>::vertex_descriptor vertex_descriptor;
      typedef typename boost::graph_traits<UndirectedGraph>::vertices_size_type vertices_size_type;
      typedef typename boost::graph_traits<UndirectedGraph>::edge_descriptor edge_descriptor;
      BOOST_CONCEPT_ASSERT((boost::Convertible<typename boost::graph_traits<UndirectedGraph>::directed_category, boost::undirected_tag>));
      BOOST_CONCEPT_ASSERT((boost::ReadablePropertyMapConcept<WeightMap, edge_descriptor>));
      typedef typename boost::property_traits<WeightMap>::value_type weight_type;
      BOOST_CONCEPT_ASSERT((boost::WritablePropertyMapConcept<ParityMap, vertex_descriptor>));
      typedef typename boost::property_traits<ParityMap>::value_type parity_type;
      BOOST_CONCEPT_ASSERT((boost::ReadWritePropertyMapConcept<VertexAssignmentMap, vertex_descriptor>));
      BOOST_CONCEPT_ASSERT((boost::Convertible<vertex_descriptor, typename boost::property_traits<VertexAssignmentMap>::value_type>));
      BOOST_CONCEPT_ASSERT((boost::KeyedUpdatableQueueConcept<KeyedUpdatablePriorityQueue>));

      vertices_size_type n = num_vertices(g);
      if (n < 2)
        throw boost::bad_graph("the input graph must have at least two vertices.");
      else if (!pq.empty())
        throw std::invalid_argument("the max-priority queue must be empty initially.");

      std::set<vertex_descriptor> assignedVertices;

      // initialize `assignments` (all vertices are initially assigned to themselves)
      BGL_FORALL_VERTICES_T(v, g, UndirectedGraph) {
        put(assignments, v, v);
      }

      vertex_descriptor s, t;
      weight_type bestW;

      boost::tie(s, t, bestW) = boost::detail::stoer_wagner_phase(g, assignments, assignedVertices, weights, pq);
      BOOST_ASSERT(s != t);
      BGL_FORALL_VERTICES_T(v, g, UndirectedGraph) {
        put(parities, v, parity_type(v == t ? 1 : 0));
      }
      put(assignments, t, s);
      assignedVertices.insert(t);
      --n;

      for (; n >= 2; --n) {
        weight_type w;
        boost::tie(s, t, w) = boost::detail::stoer_wagner_phase(g, assignments, assignedVertices, weights, pq);
        BOOST_ASSERT(s != t);

        if (w < bestW) {
          BGL_FORALL_VERTICES_T(v, g, UndirectedGraph) {
            put(parities, v, parity_type(get(assignments, v) == t ? 1 : 0));

            if (get(assignments, v) == t) // all vertices that were assigned to t are now assigned to s
              put(assignments, v, s);
          }

          bestW = w;
        } else {
          BGL_FORALL_VERTICES_T(v, g, UndirectedGraph) {
            if (get(assignments, v) == t) // all vertices that were assigned to t are now assigned to s
              put(assignments, v, s);
          }
        }
        put(assignments, t, s);
        assignedVertices.insert(t);
      }

      BOOST_ASSERT(pq.empty());

      return bestW;
    }

  } // end `namespace detail` within `namespace boost`

  template <class UndirectedGraph, class WeightMap, class P, class T, class R>
  inline typename boost::property_traits<WeightMap>::value_type
  stoer_wagner_min_cut(const UndirectedGraph& g, WeightMap weights, const boost::bgl_named_params
& params) {
    typedef typename boost::graph_traits<UndirectedGraph>::vertex_descriptor vertex_descriptor;
    typedef typename std::vector<vertex_descriptor>::size_type heap_container_size_type;
    typedef typename boost::property_traits<WeightMap>::value_type weight_type;

    typedef boost::bgl_named_params
 params_type;
    BOOST_GRAPH_DECLARE_CONVERTED_PARAMETERS(params_type, params)

    typedef boost::detail::make_priority_queue_from_arg_pack_gen<boost::graph::keywords::tag::max_priority_queue, weight_type, vertex_descriptor, std::greater<weight_type> > gen_type;
    gen_type gen(choose_param(get_param(params, boost::distance_zero_t()), weight_type(0)));
    typename boost::result_of<gen_type(const UndirectedGraph&, const arg_pack_type&)>::type pq = gen(g, arg_pack);

    return boost::detail::stoer_wagner_min_cut(g,
        weights,
        choose_param(get_param(params, boost::parity_map_t()), boost::dummy_property_map()),
        boost::detail::make_property_map_from_arg_pack_gen<boost::graph::keywords::tag::vertex_assignment_map, vertex_descriptor>(vertex_descriptor())(g, arg_pack),
        pq
      );
  }

  template <class UndirectedGraph, class WeightMap>
  inline typename boost::property_traits<WeightMap>::value_type
  stoer_wagner_min_cut(const UndirectedGraph& g, WeightMap weights) {
    return boost::stoer_wagner_min_cut(g, weights, boost::vertex_index_map(get(boost::vertex_index, g)));
  }

} // end `namespace boost`

#include <boost/graph/iteration_macros_undef.hpp>

#endif // !BOOST_GRAPH_STOER_WAGNER_MIN_CUT_HPP

{'repo_name': 'tomasen/splayer', 'stars': '819', 'repo_language': 'C++', 'file_name': 'install_test.bat', 'mime_type': 'text/plain', 'hash': 5101532655955759151, 'source_dataset': 'data'}


/*------------------------------------------------------------------------------
 Copyright (c) CovertJaguar, 2011-2019
 http://railcraft.info

 This code is the property of CovertJaguar
 and may only be used with explicit written
 permission unless otherwise specified on the
 license page at http://railcraft.info/wiki/info:license.
 -----------------------------------------------------------------------------*/
package mods.railcraft.common.blocks.machine.manipulator;

import net.minecraft.util.EnumFacing;

public class TileItemLoaderAdvanced extends TileItemLoader {

    @Override
    public ManipulatorVariant getMachineType() {
        return ManipulatorVariant.ITEM_LOADER_ADVANCED;
    }

    @Override
    public EnumFacing[] getValidRotations() {
        return EnumFacing.VALUES;
    }

}

{'repo_name': 'Railcraft/Railcraft', 'stars': '420', 'repo_language': 'Java', 'file_name': 'rail_messenger.json', 'mime_type': 'text/plain', 'hash': -70394014133290191, 'source_dataset': 'data'}


const sinon = require('sinon');

const { fake } = sinon;

const containers = [
  {
    Id: 'a8293feec54547a797aa2e52cc14b93f89a007d6c5608c587e30491feec8ee61',
    Names: ['/Gladys'],
    Image: 'gladysassistant/gladys-4-playground',
    ImageID: 'sha256:c6b7806e6eeff9375d30b6cd6e5e5bcebffd988d7c85a0fd772daa3ffac58fee',
    Command: 'docker-entrypoint.sh npm run start:prod',
    Created: 1588951418,
    Ports: [],
    Labels: {
      'org.label-schema.build-date': '',
      'org.label-schema.version': '',
    },
    State: 'running',
    Status: 'Up 16 hours',
    HostConfig: {
      NetworkMode: 'host',
    },
    NetworkSettings: {
      Networks: {
        host: {
          IPAMConfig: null,
          Links: null,
          Aliases: null,
          NetworkID: '583393ca27dcfa24bd29c0cc958bc3e0971623e510ec563d7cb95c1f2cd5ce82',
          EndpointID: 'd5ca48381da31080a479c112fab734237b630e6040f8bdc69d6ff34072ea2b2d',
          Gateway: '',
          IPAddress: '',
          IPPrefixLen: 0,
          IPv6Gateway: '',
          GlobalIPv6Address: '',
          GlobalIPv6PrefixLen: 0,
          MacAddress: '',
          DriverOpts: null,
        },
      },
    },
  },
  {
    Id: 'b594e692-e6d3-4531-bdcc-f0afcf515113',
    Names: ['/watchtower'],
    Image: 'containrrr/watchtower',
  },
];

const images = [
  {
    Id: '0f72aecf-4a85-4b00-86c4-43dbdf9c8c05',
    RepoTags: ['gladysassistant/gladys-4-playground'],
  },
  {
    Id: '3eb811ca-e050-4324-a6fa-a7a09141b4fa',
    RepoTags: ['containrrr/watchtower'],
  },
];

const networks = [
  {
    Name: 'network',
    Id: '7841509454e7056452b2282d10c915cccbe99ffb53c933a09719d15e6b723a47',
    Created: '2020-01-05T12:06:02.142135588+01:00',
    Scope: 'local',
    Driver: 'null',
    EnableIPv6: false,
    IPAM: {
      Driver: 'default',
      Options: null,
      Config: [],
    },
    Internal: false,
    Attachable: false,
    Ingress: false,
    ConfigFrom: {
      Network: '',
    },
    ConfigOnly: false,
    Containers: {},
    Options: {},
    Labels: {},
    connect: fake.resolves(true),
    inspect: fake.resolves(true),
  },
];

module.exports = {
  containers,
  images,
  networks,
};

{'repo_name': 'GladysAssistant/Gladys', 'stars': '1394', 'repo_language': 'JavaScript', 'file_name': '20190211042223-create-calendar.js', 'mime_type': 'text/plain', 'hash': 4874441737036094015, 'source_dataset': 'data'}


//  Copyright John Maddock 2006.
//  Use, modification and distribution are subject to the
//  Boost Software License, Version 1.0. (See accompanying file
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
// Basic sanity check that header <boost/math/complex/asinh.hpp>
// #includes all the files that it needs to.
//
#include <boost/math/complex/asinh.hpp>

inline void check_result_imp(std::complex<float>, std::complex<float>){}
inline void check_result_imp(std::complex<double>, std::complex<double>){}
inline void check_result_imp(std::complex<long double>, std::complex<long double>){}

#include "test_compile_result.hpp"

void compile_and_link_test()
{
   check_result<std::complex<float> >(boost::math::asinh(std::complex<float>()));
   check_result<std::complex<double> >(boost::math::asinh(std::complex<double>()));
#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
   check_result<std::complex<long double> >(boost::math::asinh(std::complex<long double>()));
#endif
}

{'repo_name': 'LiquidPlayer/LiquidCore', 'stars': '644', 'repo_language': 'C++', 'file_name': 'constants.html', 'mime_type': 'text/html', 'hash': 7717868484702151578, 'source_dataset': 'data'}


/*
 * Copyright 2018 Couchbase, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.couchbase.connector.elasticsearch;

import com.couchbase.connector.dcp.Event;
import org.elasticsearch.action.bulk.BulkItemResponse;

public interface ErrorListener {

  void onFailureToCreateIndexRequest(Event event, Throwable error);

  void onError(Event event, Throwable error);

  void onFailedIndexResponse(Event event, BulkItemResponse response);

  ErrorListener NOOP = new ErrorListener() {
    @Override
    public void onFailureToCreateIndexRequest(Event event, Throwable error) {

    }

    @Override
    public void onFailedIndexResponse(Event event, BulkItemResponse response) {

    }

    @Override
    public void onError(Event event, Throwable error) {

    }
  };
}

{'repo_name': 'couchbase/couchbase-elasticsearch-connector', 'stars': '154', 'repo_language': 'Java', 'file_name': 'gradle-wrapper.properties', 'mime_type': 'text/plain', 'hash': 2793710544898404265, 'source_dataset': 'data'}