* Tue Jul 13 2021 Hans-Peter Jansen <hpj@urpla.net>
- Update to 1.1.17 (2021-07-12):
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).
* 1.1.15 drops python 3.4 support, minimum requirement is 3.5
now.
* 1.1.17 install_requires the “packaging” pypi package now.
Fixes:
* pyinstaller dir-mode: fix pyi detection / LIBPATH treatment,
[#5897]
* handle crash due to kill stale lock race, #5828
* fix BORG_CACHE_DIR crashing borg if empty, #5216
* create –dry-run: fix display of kept tagfile, #5834
* fix missing parameter in “did not consistently fail” msg,
[#5822]
* missing / healed chunks: always tell chunk ID, #5704
* benchmark: make sure cleanup happens even on exceptions, #5630
New features:
* implement BORG_SELFTEST env variable, #5871. this can be used
to accelerate borg startup a bit. not recommended for normal
usage, but borg mass hosters with a lot of borg invocations
can save some resources with this. on my laptop, this saved
~100ms cpu time (sys+user) per borg command invocation.
* implement BORG_LIBC env variable to give the libc filename,
[#5870]. you can use this if a borg does not find your libc.
* check: add progress indicator for archive check.
* allow –files-cache=size (not recommended, make sure you know
what you do)
Other changes:
* Python 3.10 now officially supported! we test on py310-dev on
github CI since a while and now also on the vagrant machines,
so it should work ok.
* github CI: test on py310 (again)
* get rid of distutils, use packaging and setuptools. distutils
is deprecated and gives warnings on py 3.10.
* setup.py: rename “clean” to “clean2” to avoid shadowing the
“clean” command.
* remove libc filename fallback for the BSDs (there is no
“usual” name)
* cleanup flake8 checks, fix some pep8 violations.
* docs building: replace deprecated function “.add_stylesheet()”
for Sphinx 4 compatibility
* docs:
* add a hint on sleeping computer and ssh connections, #5301
* update the documentation on hacked backup client, #5480
* improve docs/FAQ about append-only remote repos, #5497
* complement the documentation for pattern files and exclude
files, #5520
* “filename with spaces” example added to exclude file, #5236
note: no whitespace escaping needed, processed by borg.
* add info on renaming repositories, #5240
* clarify borg check –verify-data, #5808
* add notice about defective hardware to check documentation,
[#5753]
* add paragraph added in #5855 to utility documentation source
* add missing leading slashes in help patterns, #5857
* clarify “you will need key and passphrase” borg init warning,
[#4622]
* pull mode: add some warnings, #5827
* mention tar –compare (compare archive to fs files), #5880
* fix typos, backport of #5597
* vagrant:
* add py3.7.11 for binary build, also add 3.10-dev.
* use latest Cython 0.29.23 for py310 compat fixes.
* more RAM for openindiana upgrade plan resolver, it just hangs
(swaps?) if there is too little RAM.
* fix install_pyenv to adapt to recent changes in pyenv (same as
in master now).
* use generic/netbsd9 box, copied from master branch.
- Reformatted Paolos last changelog
- Revert logic of borgbackup-1.1.16-fix-sphinx-api.patch:
borgbackup-1.1.17-old-sphinx-api.patch
- Allow to use old version of xxhash library (might crash on ARM),
but an update is in enqueued
* Fri Jul 02 2021 Hans-Peter Jansen <hpj@urpla.net>
- Fix documentation generation with
borgbackup-1.1.16-fix-sphinx-api.patch for Leap >= 15.3
* Sun May 16 2021 ecsos <ecsos@opensuse.org>
- Remove the version from recommends pyfuse3,
because it doesn't work in suse.
* Sun May 16 2021 ecsos <ecsos@opensuse.org>
- Use recommends pyfuse3 instead of llfuse for Tumbleweed.
Upstream says use primary pyfuse3 and secondary llfuse.
* Sun Mar 28 2021 Paolo Stivanin <info@paolostivanin.com>
- Update to 1.1.16:
Fixes:
* setup.py: add special openssl prefix for Apple M1
compatibility
* do not recurse into duplicate roots, #5603
* remove empty shadowed_segments lists, #5275, #5614
* fix libpython load error when borg fat binary / dir-based
binary is invoked via a symlink by upgrading pyinstaller to
v4.2, #5688
* config: accept non-int value (like 500M or 100G) for
max_segment_size or storage_quota, #5639. please note: when
setting a non-int value for this in a repo config, using the
repo will require borg >= 1.1.16.
New features:
* bundled msgpack: drop support for old buffer protocol to
support Python 3.10
* verbose files cache logging via --debug-topic=files_cache,
[#5659]. Use this if you suspect that borg does not detect
unmodified files as expected.
* create/extract: add --noxattrs and --noacls option, #3955.
when given with borg create, borg will not get xattrs / ACLs
from input files (and thus, it will not archive xattrs / ACLs).
when given with borg extract, borg will not read xattrs / ACLs
from archive and will not set xattrs / ACLs on extracted files.
* diff: add --json-lines option, #3765
Other changes:
* Tab completion support for additional archives for 'borg
delete'
* repository: deduplicate code of put and delete, no functional
change
Docs updates
Version: 1.1.15-bp153.1.19
* Tue Feb 09 2021 Antonio Larrosa <alarrosa@suse.com>
- Update to 1.1.15:
* drops python 3.4 support, minimum requirement is 3.5 now.
Fixes:
* extract:
+ improve exception handling when setting xattrs, #5092.
+ emit a warning message giving the path, xattr key and error
message.
+ continue trying to restore other xattrs and bsdflags of the
same file after an exception with xattr-setting happened.
* export-tar:
+ set tar format to GNU_FORMAT explicitly, #5274
+ fix memory leak with ssh: remote repository, #5568
+ fix potential memory leak with ssh: remote repository with
partial extraction
* create: fix --dry-run and --stats coexistence, #5415
* use --timestamp for {utcnow} and {now} if given, #5189
New features:
* create: implement --stdin-mode, --stdin-user and --stdin-group,
[#5333]
* allow appending the files cache filename with
BORG_FILES_CACHE_SUFFIX env var
Other changes:
* drop python 3.4 support, minimum requirement is 3.5 now.
* enable using libxxhash instead of bundled xxh64 code
* update llfuse requirements (1.3.8)
* set cython language_level in some files to fix warnings
* allow EIO with warning when trying to hardlink
* PropDict: fail early if internal_dict is not a dict
* update shell completions
* tests / CI
+ add a test for the hashindex corruption bug, #5531 #4829
+ fix spurious failure in test_cache_files, #5438
+ added a github ci workflow
+ reduce testing on travis, no macOS, no py3x-dev, #5467
+ travis: use newer dists, native py on dist
* vagrant:
+ remove jessie and trusty boxes, #5348 #5383
+ pyinstaller 4.0, build on py379
+ binary build on stretch64, #5348
+ remove easy_install based pip installation
* docs:
+ clarify '--one-file-system' for btrfs, #5391
+ add example for excluding content using the --pattern cmd
line arg
+ complement the documentation for pattern files and exclude
files, #5524
+ made ansible playbook more generic, use package instead of
pacman. also change state from "latest" to "present".
+ complete documentation on append-only remote repos, #5497
+ internals: rather talk about target size than statistics,
[#5336]
+ new compression algorithm policy, #1633 #5505
+ faq: add a hint on sleeping computer, #5301
+ note requirements for full disk access on macOS Catalina,
[#5303]
+ fix/improve description of borg upgrade hardlink usage,
[#5518]
* modernize 1.1 code:
+ drop code/workarounds only needed to support Python 3.4
+ remove workaround for pre-release py37 argparse bug
+ removed some outdated comments/docstrings
+ requirements: remove some restrictions, lock on current
versions
* Wed Dec 16 2020 Paolo Stivanin <info@paolostivanin.com>
- Update to 1.1.14:
Compatibility notes:
* 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
Other changes:
* upgrade bundled xxhash to 0.7.4
* prettier error message when archive gets too big
* check/recreate are not "experimental" any more
(but still potentially dangerous)
* use "allow/deny list" instead of "white/black list" wording
* update docs
Version: 1.1.13-bp152.1.1
* Mon Jun 08 2020 Antonio Larrosa <alarrosa@suse.com>
- Update to 1.1.13:
* rebuilt using a current Cython version, compatible with
python 3.8, #5214
- Update to 1.1.12:
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
- Remove patch already included in 1.1.12:
* 0001-rename-local-preload-function-to-not-overwrite-keyword-argument.patch
* Tue Jun 02 2020 Antonio Larrosa <alarrosa@suse.com>
- Add patch to fix a memory issue that in some cases might make
borg use more than 32 GB of memory for an operation that shouldn't
consume any memory at all, thus forcing the kernel to kill the process:
* 0001-rename-local-preload-function-to-not-overwrite-keyword-argument.patch
* Thu May 07 2020 Hans-Peter Jansen <hpj@urpla.net>
- Add libb2 dependency, where appropriate (avoids bundling libb2)
- Remove outdated build fixes from spec
- Provide proper compile flags
- Install all available man files
- Disable 2 progress related tests, that fail for TW
* Sat Mar 14 2020 Hans-Peter Jansen <hpj@urpla.net>
- Add fdupes build dependency
- break overlong lines in changelog
* Thu Mar 12 2020 Paolo Stivanin <info@paolostivanin.com>
- Update to 1.1.11
Fixes:
* fixed potential index corruption / data loss issue due to bug in
hashindex_set, #4829 Please read and follow the more detailled notes
close to the top of this document.
* upgrade bundled xxhash to 0.7.3, #4891 0.7.2 is the minimum requirement
for correct operations on ARMv6 in non-fixup mode, where unaligned memory
accesses cause bus errors. 0.7.3 adds some speedups and libxxhash 0.7.3
even has a pkg-config file now.
* upgrade bundled lz4 to 1.9.2
* upgrade bundled zstd to 1.4.4
* fix crash when upgrading erroneous hints file, #4922
* extract:
- fix KeyError for "partial" extraction, #4607
- fix "partial" extract for hardlinked contentless file types, #4725
- fix preloading for old (0.xx) remote servers, #4652
- fix confusing output of borg extract --list --strip-components, #4934
* delete: after double-force delete, warn about necessary repair, #4704
* create: give invalid repo error msg if repo config not found, #4411
* mount: fix FUSE mount missing st_birthtime, #4763 #4767
* check: do not stumble over invalid item key, #4845
* info: if the archive doesn't exist, print a pretty message, #4793
* SecurityManager.known(): check all files, #4614
* Repository.open: use stat() to check for repo dir, #4695
* Repository.check_can_create_repository: use stat() to check, #4695
* fix invalid archive error message
* fix optional/non-optional location arg, #4541
* commit-time free space calc: ignore bad compact map entries, #4796
* ignore EACCES (errno 13) when hardlinking the old config, #4730
* --prefix / -P: fix processing, avoid argparse issue, #4769
New features:
* enable placeholder usage in all extra archive arguments
* new BORG_WORKAROUNDS mechanism, basesyncfile, #4710
* recreate: support --timestamp option, #4745
* support platforms without os.link (e.g. Android with Termux), #4901 if
we don't have os.link, we just extract another copy instead of making a
hardlink.
* support linux platforms without sync_file_range (e.g. Android 7 with
Termux), #4905
Other:
* ignore --stats when given with --dry-run, but continue, #4373
* add some ProgressIndicator msgids to code / fix docs, #4935
* elaborate on "Calculating size" message
* argparser: always use REPOSITORY in metavar, also use more consistent
help phrasing.
* check: improve error output for matching index size, see #4829
* Wed Mar 11 2020 Paolo Stivanin <info@paolostivanin.com>
- fix building with python3
* Thu May 23 2019 Hans-Peter Jansen <hpj@urpla.net>
- Update to version 1.1.10 (2019-05-16)
+ 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.
+ 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
- remove msgpack patch fix-msgpack-requirement.patch and borg_msgpack
build conditional, since msgpack is bundled now (yeah!)