pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/databases/py-barman



Module Name:    pkgsrc
Committed By:   adam
Date:           Thu Nov 20 15:14:51 UTC 2025

Modified Files:
        pkgsrc/databases/py-barman: Makefile distinfo

Log Message:
py-barman: updated to 3.16.2

3.16.2 (2025-11-04)

Bugfixes

- Improve barman-cloud delete workaround to inspect error message content

  Some S3-compatible storages return an "InvalidRequest" error instead of
  "MissingContentMD5" during delete operations. Since we cannot rely on the error code
  alone, this updates the logic to also inspect the error message text to detect
  MissingContentMD5-like issues and apply the appropriate fallback.

  References: BAR-947.

3.16.1 (2025-10-14)

Notable changes

- Automatic bucket creation added to barman-cloud-check-wal-archive

  The `barman-cloud-check-wal-archive` command now verifies whether the target bucket
  exists in the configured cloud storage (e.g., AWS S3) and automatically creates it
  if it does not.

  Previously, automatic bucket creation was handled by `barman-cloud-backup`. This
  change restores compatibility with CloudNativePG (CNPG) automations that depend on
  this behavior, which were affected after the release of Barman 3.16.0.

  In collaboration with the CloudNativePG team, we have reintroduced this
  functionality specifically in `barman-cloud-check-wal-archive` to ensure seamless
  operation of CNPG workflows and internal tests — all while preserving the intended
  behavior and simplicity for regular Barman users.

  References: BAR-931.

3.16.0 (2025-10-02)

Notable changes

- The `restore_command` for local restores no longer includes `sudo`

  When using `barman restore --get-wal` for a local restore (i.e. without
  `--remote-ssh-command`), the generated `restore_command` no longer includes a
  `sudo -u $USER` prefix. This simplifies the process for the common case where the
  locally restored Postgres cluster is run by the `barman` user, whom already owns the
  files by the end of the `barman restore` operation.

  **Action Required:** If you intend to run the restored cluster as a different
  user (e.g., `postgres`), you must now manually add the appropriate
  `sudo -u postgres` prefix to the `restore_command` in the recovery configuration and
  ensure file ownership is correct.

  References: BAR-675.

- Deprecate `pygzip` and `pybzip2` compression options

  The `pygzip` and `pybzip2` compression options are now deprecated and will be
  removed in a future release. Users should migrate to the `gzip` and `bzip2` options,
  which now use Python's internal libraries.

  This change was made to improve performance and code consistency. Previously, the
  `gzip` and `bzip2` options relied on external subprocesses, while their `py`
  counterparts used native Python libraries. The core compression logic for `gzip` and
  `bzip2` has been updated to also use Python's built-in libraries, making the
  `pygzip` and `pybzip2` options redundant.

  References: BAR-878.

- Add delta-restore flag and recovery option to barman restore

  Introduces the --delta-restore flag for barman restore, enabling delta
  restore mode. This mode restores a backup by reusing identical data already present
  in the destination directory, which drastically reduces restore time and network
  traffic.

  This feature is also configurable per-server via 'recovery_options' as a new field
  called delta-restore in the server configuration file.

  References: BAR-788.

- S3 Object Deletion Fallback for Object Stores non-compliant with boto3 >=1.36

  When using `delete_objects()` with some non-compliant S3-compatible object
  stores, users could encounter a `MissingContentMD5` `ClientError` due to a breaking
  change in boto3 1.36 that Botocore will no longer automatically compute and populate
  the `Content-MD5` header.

  To address this, Barman now implements a fallback mechanism:

  - Bulk deletion via `delete_objects()` is still attempted first.
  - If `delete_objects()` fails with `MissingContentMD5`, Barman automatically falls back
    to deleting objects individually using `delete_object()`, which does not require a
    `Content-MD5` header.
  - Other errors continue to raise exceptions as before.

  This change ensures Barman remains compatible with non-compliant object
  stores without requiring changes on the user's side.

  Users with older S3-compatible storage can continue performing backup cleanups
  without failures, while newer object stores are unaffected.

  References: BAR-909.

- Cloud connectivity checks are now only performed with the `-t`/`--test` flag.

  Previously, Barman always tested cloud connectivity and bucket existence
  for most of the commands, raising errors if connectivity failed or if the bucket
  did not exist. Both checks are now executed only when the `-t`/`--test` flag is
  specified. The only exception was `barman-cloud-check-wal-archive`, which still
  checks connectivity and the existence of the bucket.

  Additionally, buckets are no longer created automatically — Barman assumes the
  target bucket already exists, making it the user's responsibility to provision
  the bucket in advance.

  References: BAR-895, BAR-908, BAR-918.

Minor changes

- Add `combine-mode` option to `barman restore` command

  Added a `--combine-mode` option to the `barman restore` command, which can be used
  to specify a copy mode for `pg_combinebackup` when combining incremental backups
  during a restore. Available modes are `copy`, `link`, `clone`, and `copy-file-range`
  which are equivalent to the `pg_combinebackup` options `--copy`, `--link`,
  `--clone`, and `--copy-file-range`, respectively. An equivalent `combine_mode`
  configuration option can be specified in the configuration file.

  This feature allows for greater optimization of the restore process
  based on the underlying filesystem capabilities.

  References: BAR-870.

- Reorganize fields in barman diagnose JSON

  In the barman diagnose JSON, some fields appeared under the server's "config"
  section even though they were not actual configuration fields.

  The fields "barman_lock_directory", "lock_directory_cleanup", and
  "config_changes_queue" were relocated under the "global" key, since they represent
  global configurations. The "name" field was removed since the server name is already
  used as the key. Additionally, "msg_list" is now stored under the server's name key.

  References: BAR-134.

- Add '-p JOBS' to barman-wal-restore command when `--get-wal` is `True`

  Adds '-p JOBS' to barman-wal-restore command when `--get-wal` or `get_wal`
  configuration option is ``True``, `JOBS` being the number of jobs chosen by the user
  via `-p` flag or `parallel_jobs` configuration option.

  References: BAR-857.

- The `barman show-backup`` command now displays the backup compression method

  The output of the `barman show-backup` command has been enhanced to include a new
  `Backup Compression` field. If a backup was taken with compression enabled, this
  field will now display the compression algorithm that was used (e.g., `zstd`). This
  makes it easier to quickly verify the compression status of a backup.

  References: BAR-901.

Bugfixes

- Fix parallelism (--parallel option) in barman-wal-restore

  There has been a regression in `barman-wal-restore` when introducing the
  `--keep-compression` option in Barman 3.12.0, which made the `--parallel` option
  not invoke processes as expected. This issue has now been fixed.

  References: BAR-865.

- Fix `pg_combinebackup` not being found in `PATH` when `staging_location` is `remote`

  When recovering an incremental backup to a remote server with `staging_location`
  set to `remote`, Barman checks if `pg_combinebackup` is available in the remote `PATH`.
  However, a previous issue was making it incorrectly check the local `PATH` as well,
  leading to errors if `pg_combinebackup` was not installed locally.
  The problem has been fixed by ensuring that the check is only performed on the
  server where `pg_combinebackup` is actually executed.

  References: BAR-903.


To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.30 pkgsrc/databases/py-barman/Makefile
cvs rdiff -u -r1.23 -r1.24 pkgsrc/databases/py-barman/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/databases/py-barman/Makefile
diff -u pkgsrc/databases/py-barman/Makefile:1.29 pkgsrc/databases/py-barman/Makefile:1.30
--- pkgsrc/databases/py-barman/Makefile:1.29    Fri Oct  3 09:18:07 2025
+++ pkgsrc/databases/py-barman/Makefile Thu Nov 20 15:14:51 2025
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.29 2025/10/03 09:18:07 adam Exp $
+# $NetBSD: Makefile,v 1.30 2025/11/20 15:14:51 adam Exp $
 
-DISTNAME=      barman-3.15.0
+DISTNAME=      barman-3.16.2
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME}
 CATEGORIES=    databases python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=b/barman/}
@@ -10,11 +10,12 @@ HOMEPAGE=   https://pgbarman.org/
 COMMENT=       Backup and Recovery Manager for PostgreSQL
 LICENSE=       gnu-gpl-v3
 
-TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools>=78:../../devel/py-setuptools
-DEPENDS+=      ${PYPKGPREFIX}-argcomplete-[0-9]*:../../devel/py-argcomplete
 DEPENDS+=      ${PYPKGPREFIX}-dateutil-[0-9]*:../../time/py-dateutil
 DEPENDS+=      ${PYPKGPREFIX}-psycopg2>=2.4.2:../../databases/py-psycopg2
+DEPENDS+=      ${PYPKGPREFIX}-setuptools>=78:../../devel/py-setuptools
 DEPENDS+=      rsync-[0-9]*:../../net/rsync
+# argcomplete
+DEPENDS+=      ${PYPKGPREFIX}-argcomplete-[0-9]*:../../devel/py-argcomplete
 
 USE_LANGUAGES= # none
 

Index: pkgsrc/databases/py-barman/distinfo
diff -u pkgsrc/databases/py-barman/distinfo:1.23 pkgsrc/databases/py-barman/distinfo:1.24
--- pkgsrc/databases/py-barman/distinfo:1.23    Fri Oct  3 09:18:07 2025
+++ pkgsrc/databases/py-barman/distinfo Thu Nov 20 15:14:51 2025
@@ -1,6 +1,6 @@
-$NetBSD: distinfo,v 1.23 2025/10/03 09:18:07 adam Exp $
+$NetBSD: distinfo,v 1.24 2025/11/20 15:14:51 adam Exp $
 
-BLAKE2s (barman-3.15.0.tar.gz) = 08f988743aa8388d9b5d1bddaa9d91507bc6e7e952e563ade32ee5d4c9ed6283
-SHA512 (barman-3.15.0.tar.gz) = 4bbb86b6dcadfacaacf9e4dbb1cea3e33b155cb73be7752d58602fb2aa0b4145f7bf7aa96d3d687158e4035ece9aef5f47f2170c71ac405946573993b94262ca
-Size (barman-3.15.0.tar.gz) = 458105 bytes
+BLAKE2s (barman-3.16.2.tar.gz) = 42d67de752c774c5f8c8c4c401d3a4d02ec429a842b182ac76dbdeda378e1b08
+SHA512 (barman-3.16.2.tar.gz) = 3e3d2df8eb7c5bf0a3a1be940f3d3b70c11a2e22fb159e9253046ba2367936d2e895b659be0e328bb5f3df79e91d6fc47c255e968a086c4f76f653b0cedf9ed4
+Size (barman-3.16.2.tar.gz) = 467037 bytes
 SHA1 (patch-barman_utils.py) = 0f93835a814bdd41c999dcebb34719312a74bd94



Home | Main Index | Thread Index | Old Index