./sysutils/py-borgbackup, Deduplicating backup program with compression and encryption

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.1.14, Package name: py37-borgbackup-1.1.14, Maintainer: bsiegert

BorgBackup (short: Borg) is a deduplicating backup program. Optionally,
it supports compression and authenticated encryption.

The main goal of Borg is to provide an efficient and secure way to
backup data. The data deduplication technique used makes Borg suitable
for daily backups since only changes are stored. The authenticated
encryption technique makes it suitable for backups to not fully trusted
targets.


Required to run:
[security/openssl] [devel/py-setuptools] [devel/py-cython] [archivers/lz4] [archivers/zstd] [lang/python37] [security/libb2]

Required to build:
[pkgtools/cwrappers] [devel/py-setuptools_scm]

Master sites:

SHA1: f20c09dc17d8692c54c79d02e5413adcaa5cf2cf
RMD160: 9c3d733380091dfe240650401bd619d434f8690f
Filesize: 3681.113 KB

Version history: (Expand)


CVS history: (Expand)


   2020-10-14 18:25:56 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
py-borgbackup: update to 1.1.14.

Version 1.1.14 (2020-10-07)
---------------------------

Compatibility notes:

- When upgrading from borg 1.0.x to 1.1.x, please note:

  - read all the compatibility notes for 1.1.0*, starting from 1.1.0b1.
  - borg upgrade: you do not need to and you also should not run it.
  - borg might ask some security-related questions once after upgrading.
    You can answer them either manually or via environment variable.
    One known case is if you use unencrypted repositories, then it will ask
    about a unknown unencrypted repository one time.
  - your first backup with 1.1.x might be significantly slower (it might
    completely read, chunk, hash a lot files) - this is due to the
    --files-cache mode change (and happens every time you change mode).
    You can avoid the one-time slowdown by using the pre-1.1.0rc4-compatible
    mode (but that is less safe for detecting changed files than the default).
    See the --files-cache docs for details.
- 1.1.11 removes WSL autodetection (Windows 10 Subsystem for Linux).
  If WSL still has a problem with sync_file_range, you need to set
  BORG_WORKAROUNDS=basesyncfile in the borg process environment to
  work around the WSL issue.
- 1.1.14 changes return codes due to a bug fix:
  In case you have scripts expecting rc == 2 for a signal exit, you need to
  update them to check for >= 128 (as documented since long).

Fixes:

- check --repair: fix potential data loss when interrupting it, #5325
- exit with 128 + signal number (as documented) when borg is killed by a signal, \ 
#5161
- fix hardlinked CACHEDIR.TAG processing, #4911
- create --read-special: .part files also should be regular files, #5217
- llfuse dependency: choose least broken 1.3.6/1.3.7.
  1.3.6 is broken on python 3.9, 1.3.7 is broken on FreeBSD.

Other changes:

- upgrade bundled xxhash to 0.7.4
- self test: if it fails, also point to OS and hardware, #5334
- pyinstaller: compute basepath from spec file location
- prettier error message when archive gets too big, #5307
- check/recreate are not "experimental" any more (but still \ 
potentially dangerous):

  - recreate: remove extra confirmation
  - rephrase some warnings, update docs, #5164
- shell completions:

  - misc. updates / fixes
  - support repositories in fish tab completion, #5256
  - complete $BORG_RECREATE_I_KNOW_WHAT_I_AM_DOING
  - rewrite zsh completion:

    - completion for almost all optional and positional arguments
    - completion for Borg environment variables (parameters)
- use "allow/deny list" instead of "white/black list" wording
- declare "allow_cache_wipe" marker in setup.cfg to avoid pytest warning
- vagrant / tests:

  - misc. fixes / updates
  - use python 3.5.10 for binary build
  - build directory-based binaries additionally to the single file binaries
  - add libffi-dev, required to build python
  - use cryptography<3.0, more recent versions break the jessie box
  - test on python 3.9
  - do brew update with /dev/null redirect to avoid "too much log \ 
output" on travis-ci
- docs:

  - add ssh-agent pull backup method docs, #5288
  - how to approach borg speed issues, #5371
  - mention double --force in prune docs
  - update Homebrew install instructions, #5185
  - better description of how cache and rebuilds of it work
  - point to borg create --list item flags in recreate usage, #5165
  - add security faq explaining AES-CTR crypto issues, #5254
  - add a note to create from stdin regarding files cache, #5180
  - fix borg.1 manpage generation regression, #5211
  - clarify how exclude options work in recreate, #5193
  - add section for retired contributors
  - hint about not misusing private email addresses of contributors for borg support
   2020-09-30 11:54:15 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
py-borgbackup: update to 1.1.13.

Version 1.1.13 (2020-06-06)
---------------------------

Fixes:

- rebuilt using a current Cython version, compatible with python 3.8, #5214

Version 1.1.12 (2020-06-06)
---------------------------

Fixes:

- fix preload-related memory leak, #5202.
- mount / borgfs (FUSE filesystem):

  - fix FUSE low linear read speed on large files, #5067
  - fix crash on old llfuse without birthtime attrs, #5064 - accidentally
    we required llfuse >= 1.3. Now also old llfuse works again.
  - set f_namemax in statfs result, #2684
- update precedence of env vars to set config and cache paths, #4894
- correctly calculate compression ratio, taking header size into account, too

New features:

- --bypass-lock option to bypass locking with read-only repositories

Other changes:

- upgrade bundled zstd to 1.4.5
- travis: adding comments and explanations to Travis config / install script,
  improve macOS builds.
- tests: test_delete_force: avoid sporadic test setup issues, #5196
- misc. vagrant fixes
- the binary for macOS is now built on macOS 10.12
- the binaries for Linux are now built on Debian 8 "Jessie", #3761
- docs:

  - PlaceholderError not printed as JSON, #4073
  - "How important is Borg config?", #4941
  - make Sphinx warnings break docs build, #4587
  - some markup / warning fixes
  - add "updating borgbackup.org/releases" to release checklist, #4999
  - add "rendering docs" to release checklist, #5000
  - clarify borg init's encryption modes
  - add note about patterns and stored paths, #4160
  - add upgrade of tools to pip installation how-to
  - document one cause of orphaned chunks in check command, #2295
  - linked recommended restrictions to ssh public keys on borg servers in faq, #4946
   2020-04-15 11:52:48 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
py-borgbackup: switch to bundled msgpack

The current pkgsrc version is too new and unsupported.

Bump PKGREVISION.

Ok bsiegert
   2020-03-15 11:30:34 by Benny Siegert | Files touched by this commit (2) | Package updated
Log message:
Update py-borgbackup to 1.1.11.

Pre-1.1.11 potential index corruption / data loss issue
-------------------------------------------------------

A bug was discovered in our hashtable code, see issue #4829.
The code is used for the client-side chunks cache and the server-side repo index.

Although borg uses the hashtables very heavily, the index corruption did not
happen too frequently, because it needed specific conditions to happen.

Data loss required even more specific conditions, so it should be rare (and
also detectable via borg check).

You might be affected if borg crashed with / complained about:
- AssertionError: Corrupted segment reference count - corrupted index or hints
- ObjectNotFound: Object with key ... not found in repository ...
- Index mismatch for key b'...'. (..., ...) != (-1, -1)
- ValueError: stats_against: key contained in self but not in master_index.

Advised procedure to fix any related issue in your indexes/caches:
- install fixed borg code (on client AND server)
- for all of your clients and repos remove the cache by:
  borg delete --cache-only YOURREPO
  (later, the cache will be re-built automatically)
- for all your repos, rebuild the repo index by:
  borg check --repair YOURREPO
  This will also check all archives and detect if there is any data-loss issue.

Affected branches / releases:

fd06497 introduced the bug into 1.1-maint branch - it affects all borg 1.1.x \ 
since 1.1.0b4.
fd06497 introduced the bug into master branch - it affects all borg 1.2.0 alpha \ 
releases.
c5cd882 introduced the bug into 1.0-maint branch - it affects all borg 1.0.x \ 
since 1.0.11rc1.

The bug was fixed by:

701159a fixes the bug in 1.1-maint branch - will be released with borg 1.1.11.
fa63150 fixes the bug in master branch - will be released with borg 1.2.0a8.
7bb90b6 fixes the bug in 1.0-maint branch. Branch is EOL, no new release is \ 
planned as of now.
   2020-01-18 22:51:16 by Jonathan Perkin | Files touched by this commit (1836)
Log message:
*: Recursive revision bump for openssl 1.1.1.
   2020-01-01 21:37:14 by Thomas Klausner | Files touched by this commit (1)
Log message:
py-borgbackup: Fix typo.
   2020-01-01 19:21:50 by Benny Siegert | Files touched by this commit (5) | Package updated
Log message:
Update py-borgbackup to 1.1.10.

Note that we do not use the bundled msgpack (see below) in pkgsrc.

Version 1.1.10 (2019-05-16)

Fixes:

  * extract: hang on partial extraction with ssh: repo, when hardlink master is
    not matched/extracted and borg hangs on related slave hardlink, #4350
  * lrucache: regularly remove old FDs, #4427
  * avoid stale filehandle issues, #3265
  * freebsd: make xattr platform code api compatible with linux, #3952
  * use whitelist approach for borg serve, #4097
  * borg command shall terminate with rc 2 for ImportErrors, #4424
  * create: only run stat_simple_attrs() once, this increases backup with lots
    of unchanged files performance by ~ 5%.
  * prune: fix incorrect borg prune --stats output with --dry-run, #4373
  * key export: emit user-friendly error if repo key is exported to a
    directory, #4348

New features:

  * bundle latest supported msgpack-python release (0.5.6), remove
    msgpack-python from setup.py install_requires - by default we use the
    bundled code now. optionally, we still support using an external msgpack
    (see hints in setup.py), but this requires solid requirements management
    within distributions and is not recommended. borgbackup will break if you
    upgrade msgpack to an unsupported version.
  * display msgpack version as part of sysinfo (e.g. in tracebacks)
  * timestamp for borg delete --info added, #4359
  * enable placeholder usage in --comment and --glob-archives, #4559, #4495

Other:

  * serve: do not check python/libc for borg serve, #4483
  * shell completions: borg diff second archive
  * release scripts: signing binaries with Qubes OS support
  * testing:
      + vagrant: upgrade openbsd box to 6.4
      + travis-ci: lock test env to py 3.4 compatible versions, #4343
      + get rid of confusing coverage warning, #2069
      + rename test_mount_hardlinks to test_fuse_mount_hardlinks, so both can
        be excluded by "not test_fuse".
      + pure-py msgpack warning shall not make a lot of tests fail, #4558
  * docs:
      + add "SSH Configuration" section to "borg serve", \ 
#3988, #636, #4485
      + README: new URL for funding options
      + add a sample logging.conf in docs/misc, #4380
      + elaborate on append-only mode docs, #3504
      + installation: added Alpine Linux to distribution list, #4415
      + usage.html: only modify window.location when redirecting, #4133
      + add msgpack license to docs/3rd_party/msgpack
  * vagrant / binary builds:
      + use python 3.5.7 for builds
      + use osxfuse 3.8.3
   2019-02-11 19:40:37 by Benny Siegert | Files touched by this commit (2) | Package updated
Log message:
Update py-borgbackup to 1.1.9.

Version 1.1.9 (2019-02-10)
--------------------------

Fixes:

- security fix: configure FUSE with "default_permissions", #3903
  "default_permissions" is now enforced by borg by default to let the
  kernel check uid/gid/mode based permissions.
  "ignore_permissions" can be given to not enforce \ 
"default_permissions".
- make "hostname" short, even on misconfigured systems, #4262
- fix free space calculation on macOS (and others?), #4289
- config: quit with error message when no key is provided, #4223
- recover_segment: handle too small segment files correctly, #4272
- correctly release memoryview, #4243
- avoid diaper pattern in configparser by opening files, #4263
- add "# cython: language_level=3" directive to .pyx files, #4214
- info: consider part files for "This archive" stats, #3522
- work around Microsoft WSL issue #645 (sync_file_range), #1961

New features:

- add --rsh command line option to complement BORG_RSH env var, #1701
- init: --make-parent-dirs parent1/parent2/repo_dir, #4235

Other:

- add archive name to check --repair output, #3447
- check for unsupported msgpack versions
- shell completions:

  - new shell completions for borg 1.1.9
  - more complete shell completions for borg mount -o
  - added shell completions for borg help
  - option arguments for zsh tab completion
- docs:

  - add FAQ regarding free disk space check, #3905
  - update BORG_PASSCOMMAND example and clarify variable expansion, #4249
  - FAQ regarding change of compression settings, #4222
  - add note about BSD flags to changelog, #4246
  - improve logging in example automation script
  - add note about files changing during backup, #4081
  - work around the backslash issue, #4280
  - update release workflow using twine (docs, scripts), #4213
  - add warnings on repository copies to avoid future problems, #4272
- tests:

  - fix the homebrew 1.9 issues on travis-ci, #4254
  - fix duplicate test method name, #4311