Version: 1.1.18-bp155.1.6
* Wed Jan 25 2023 Antonio Larrosa <alarrosa@suse.com>
- Update to 1.1.18 (2022-06-05):
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.
New features:
* check --repair: significantly speed up search for next valid
object in segment, #6022
* create: add retry_erofs workaround for O_NOATIME issue on
volume shadow copies in WSL1, #6024
* key export: display key if path is '-' or not given, #6092
* list --format: add command_line to format keys, #6108
Fixes:
* check: improve error handling for corrupt archive metadata
block, make robust_iterator more robust, #4777
* diff: support presence change for blkdev, chrdev and fifo
items, #6483
* diff: reduce memory consumption, fix is_hardlink_master
* init: disallow overwriting of existing keyfiles
* info: fix authenticated mode repo to show "Encrypted: No",
[#6462]
* info: emit repo info even if repo has 0 archives, #6120
* list: remove placeholders for shake_* hashes, #6082
* mount -o versions: give clear error msg instead of crashing
* show_progress: add finished=true/false to archive_progress
json, #6570
* fix hardlinkable file type check, #6037
* do not show archive name in error msgs referring to the
repository, #6023
* prettier error msg (no stacktrace) if exclude file is missing,
[#5734]
* do not require BORG_CONFIG_DIR if BORG_{SECURITY,KEYS}_DIR
are set, #5979
* atomically create the CACHE_TAG file, #6028
* deal with the SaveFile/SyncFile race, docs, see #6176
5c5b59bc9
* avoid expanding path into LHS of formatting operation + tests,
[#6064] #6063
* repository: quota / compactable computation fixes, #6119. This
is mainly to keep the repo code in sync with borg 1.2. As borg
1.1 compacts immediately, there was not really an issue with
this in 1.1.
* fix transaction rollback: use files cache filename as found in
txn.active, #6353
* do not load files cache for commands not using it, fixes #5673
* fix scp repo url parsing for ip v6 addrs, #6526
* repo::archive location placeholder expansion fixes, #5826,
[#5998]
- use expanded location for log output
- support placeholder expansion for BORG_REPO env var
* respect umask for created directory and file modes, #6400
* safer truncate_and_unlink implementation
Other changes:
* upgrade bundled xxhash code to 0.8.1
* fix xxh64 related build (setup.py and post-0.8.1 patch for
static_assert). The patch was required to build the bundled
xxhash code on FreeBSD, see Cyan4973/xxHash#670
* msgpack build: remove endianness macro, #6105
* update and fix shell completions
* fuse: remove unneeded version check and compat code
* delete --force: do not ask when deleting a repo, #5941
* delete: don't commit if nothing was deleted, avoid cache sync,
[#6060]
* delete: add repository id and location to prompt
* compact segments: improve freeable / freed space log output,
[#5679]
* if ensure_dir() fails, give more informative error message,
[#5952]
* load_key: no key is same as empty key, #6441
* better error msg for defect or unsupported repo configs, #6566
* use hmac.compare_digest instead of ==, #6470
* implement more standard hashindex.setdefault behaviour
* remove stray punctuation from secure-erase message
* add development.lock.txt, use a real python 3.5 to generate
frozen reqs
* setuptools 60.7.0 breaks pyinstaller, #6246
* setup.py clean2 was added to work around some setuptools
customizability limitation.
* allow extra compiler flags for every extension build
* C code: make switch fallthrough explicit
* Cython code: fix "useless trailing comma" cython warnings
* requirements.lock.txt: use the latest cython 0.29.30
* fix compilation warnings: ‘PyUnicode_AsUnicode’ is
deprecated
* docs:
- ~/.config/borg/keys is not used for repokey keys, #6107
- excluded parent dir's metadata can't restore, #6062
- permissions note rewritten to make it less confusing, #5490
- add note about grandfather-father-son backup retention
policy / rotation scheme
- clarify who starts the remote agent (borg serve)
- test/improve pull backup docs, #5903
- document the socat pull mode described in #900 #515ß
- borg serve: improve ssh forced commands docs, #6083
- improve docs for borg list --format, #6080
- fix the broken link to .nix file
- clarify pattern usage with commands, #5176
- clarify user_id vs uid for fuse, #5723
- fix binary build freebsd/macOS version, #5942
- FAQ: fix manifest-timestamp path, #6016
- remove duplicate faq entries, #5926
- fix sphinx warnings, #5919
- virtualisation speed tips
- fix values of TAG bytes, #6515
- recommend umask for passphrase file perms
- update link to ubuntu packages, #6485
- clarify on-disk order and size of log entry fields, #6357
- do not transform --/--- to unicode dashes
- improve linking inside docs, link to borg_placeholders,
link to borg_patterns
- use same phrasing in misc. help texts
- borg init: explain the encryption modes better
- explain the difference between a path that ends with or
without a slash, #6297
- clarify usage of patternfile roots, #6242
- borg key export: add examples
- updates about features not experimental any more: FUSE
"versions" view, --pattern*, #6134
- fix/update cygwin package requirements
- impact of deleting path/to/repo/nonce, #5858
- warn about tampered server nonce
- mention BORG_FILES_CACHE_SUFFIX as alternative to
BORG_FILES_CACHE_TTL, #5602
- add a troubleshooting note about "is not a valid repository"
to the FAQ
Version: 1.1.5-bp150.2.3
* Wed May 02 2018 mlin@suse.com
- Leap 15.0 and SLE15 both are moved to renamed python3-msgpack,
fix-msgpack-requirement.patch have to be used to deal with msgpack
package rename fallout.
* Mon Apr 02 2018 alarrosa@suse.com
- Update to 1.1.5
- Fixes:
* create --list: fix that it was never showing M status
* create: fix timing for first checkpoint (read files cache early,
init checkpoint timer after that)
* extract: set rc=1 when extracting damaged files with all-zero replacement
chunks or with size inconsistencies
* diff: consider an empty file as different to a non-existing file
* files cache: improve exception handling
* ignore exceptions in scandir_inorder() caused by an implicit stat(), also
remove unneeded sort
* fixed tab completion problem where a space is always added after path even
when it shouldn't
* build: do .h file content checks in binary mode, fixes build issue for
non-ascii header files on pure-ascii locale platforms
* borgfs: fix patterns/paths processing
* config: add some validation
* repository config: add validation for max_segment_size
* set cache previous_location on load instead of save
* remove platform.uname() call which caused library mismatch issues
* add exception handler around deprecated platform.linux_distribution() call
* use same datetime object for {now} and {utcnow}
- New features:
* create: implement --stdin-name
* add chunker_params to borg archive info (--json)
* BORG_SHOW_SYSINFO=no to hide system information from exceptions
- Other changes:
* updated zsh completions for borg 1.1.4
* files cache related code cleanups
* be more helpful when parsing invalid --pattern values
* be more clear in secure-erase warning message
* improve getpass user experience
* docs build: unicode problem fixed when using a py27-based sphinx
- docs:
* security: explicitly note what happens OUTSIDE the attack model
* security: add note about combining compression and encryption
* security: describe chunk size / proximity issue
* quickstart: add note about permissions, borg@localhost
* quickstart: add introduction to repositories & archives
* recreate --recompress: add missing metavar, clarify description
* improve logging docs
* add an example for --pattern usage
* clarify path semantics when matching
* link to offline documentation from README
* add docs on how to verify a signed release with GPG
* chunk seed is generated per repository (not: archive)
* better formatting of CPU usage documentation
* extend append-only repo rollback docs
- tests:
* fix erroneously skipped zstd compressor tests
* skip a test if argparse is broken
- Drop borgbackup-1.1.4-binary-content-checks.patch which is already included
upstream.
- Rebase fix-msgpack-requirement.patch
* Mon Mar 05 2018 hpj@urpla.net
- Fix sphinx theme fallback condition
* Sun Mar 04 2018 hpj@urpla.net
- Add patch to fall back to a sphinx default theme for older distributions
that don't have python3-guzzle_sphinx_theme available
* borgbackup-1.1.4-sphinx-default-theme.patch
* Thu Mar 01 2018 alarrosa@suse.com
- Add patch to require the new msgpack python module in Tumbleweed
instead of the deprecated msgpack-python python module:
* fix-msgpack-requirement.patch
* Tue Feb 27 2018 jacobwinski@gmail.com
- Add patch borgbackup-1.1.4-binary-content-checks.patch:
* Fixes build failure due to bad encoding
* Based on upstream commit 9cf8d57 "do .h file content checks in binary mode"
* This patch will no longer be needed with borgbackup > 1.1.4
* Sun Jan 28 2018 alarrosa@suse.com
- Don't use liblz4 nor libzstd on Leap 42.x which doesn't support them
and add missing requirement python-guzzle_sphinx_theme on Tumbleweed.
* Wed Jan 10 2018 alarrosa@suse.com
- Update to borgbackup 1.1.4
* Fix a potential data corruption issue with 'borg check --repair'
happening in borg >= 1.1 and < 1.1.4
* zstd compression is new in borg 1.1.4, older borg can't handle it.
* new minimum requirements for the compression libraries:
+ added requirement: libzstd >= 1.3.0
+ updated requirement: liblz4 >= 1.7.0 / r129
- Fixes:
* check: data corruption fix: fix for borg check --repair malfunction. See
the more detailed notes at
https://github.com/borgbackup/borg/blob/1.1.4/docs/changes.rst
* delete: also delete security dir when deleting a repo
* prune: fix building the "borg prune" man page
* init: use given --storage-quota for local repo
* init: properly quote repo path in output
* fix startup delay with dns-only own fqdn resolving
- New features:
* added zstd compression.
* added placeholder {reverse-fqdn} for fqdn in reverse notation
* added BORG_BASE_DIR environment variable
- Other changes:
* list help topics when invalid topic is requested
* fix lz4 deprecation warning, requires lz4 >= 1.7.0 (r129)
* add parens for C preprocessor macro argument usages (did not cause
malfunction)
* exclude broken pytest 3.3.0 release
* updated fish/bash completions
* init: more clear exception messages for borg create
* docs:
+ add auto-generated docs for borg config
+ don't generate HTML docs page for borgfs
+ docs update for lz4 b2 zstd changes
+ add zstd to compression help, readme, docs
+ update requirements and install docs about bundled lz4 and zstd
+ refactored build of the compress and crypto.low_level extensions
+ move some lib/build related code to setup_{zstd,lz4,b2}.py
+ bundle lz4 1.8.0 (requirement: >= 1.7.0 / r129)
+ bundle zstd 1.3.2 (requirement: >= 1.3.0)
+ blake2 was already bundled
+ rename BORG_LZ4_PREFIX env var to BORG_LIBLZ4_PREFIX for better
consistency: we also have BORG_LIBB2_PREFIX and BORG_LIBZSTD_PREFIX now.
+ add prefer_system_lib* = True settings to setup.py - by default the
build will prefer a shared library over the bundled code, if library
and headers can be found and meet the minimum requirements.
* Mon Dec 11 2017 alarrosa@suse.com
- Update to borgbackup 1.1.3
- Fixes:
* Security Fix for CVE-2017-15914: Incorrect implementation of access
controls allows remote users to override repository restrictions in Borg
servers. A user able to access a remote Borg SSH server is able to
circumvent access controls post-authentication.
Affected releases: 1.1.0, 1.1.1, 1.1.2. Releases 1.0.x are NOT affected.
* crc32: deal with unaligned buffer, add tests - this broke borg on older ARM
CPUs that can not deal with unaligned 32bit memory accesses and raise a bus
error in such cases. the fix might also improve performance on some CPUs as
all 32bit memory accesses by the crc32 code are properly aligned now.
* mount: fixed support of --consider-part-files and do not show .borg_part_N
files by default in the mounted FUSE filesystem.
* fixed cache/repo timestamp inconsistency message, highlight that
information is obtained from security dir (deleting the cache will not
bypass this error in case the user knows this is a legitimate repo).
* borgfs: don't show sub-command in borgfs help
* create: show an error when --dry-run and --stats are used together
- New features:
* mount: added exclusion group options and paths.
Reused some code to support similar options/paths as borg extract offers -
making good use of these to only mount a smaller subset of dirs/files can
speed up mounting a lot and also will consume way less memory.
borg mount [options] repo_or_archive mountpoint path [paths...]
paths: you can just give some "root paths" (like for borg extract) to only
partially populate the FUSE filesystem.
new options: --exclude[-from], --pattern[s-from], --strip-components
* create/extract: support st_birthtime on platforms supporting it
* add "borg config" command for querying/setting/deleting config values
- Other changes:
* clean up and simplify packaging (only package committed files,
do not install .c/.h/.pyx files)
* docs:
* point out tuning options for borg create
* add instructions for using ntfsclone, zerofree
* move image backup-related FAQ entries to a new page
* clarify key aliases for borg list --format
* mention break-lock in checkpointing FAQ entry
* document sshfs rename workaround
* add FAQ about removing files from existing archives
* add FAQ about different prune policies
* usage and man page for borgfs
* clarify create --stats duration vs. wall time
* clarify encrypted key format for borg key export
* update release checklist about security fixes
* document good and problematic option placements, fix examples
* add note on using --nobsdflags to avoid speed penalty related to bsdflags
* move most of support section to www.borgbackup.org
* Fri Nov 10 2017 alarrosa@suse.com
- Fix build on Leap 42.2 by BuildRequiring bash-completion
* Wed Nov 08 2017 alarrosa@suse.com
- Update to borgbackup 1.1.2
- Fixes:
* fix KeyError crash when talking to borg server < 1.0.7
* extract: set bsdflags last (include immutable flag)
* create: don't do stat() call on excluded-norecurse directory, fix exception handling for stat() call
* create --stats: do not count data volume twice when checkpointing
* recreate: move chunks_healthy when excluding hardlink master
* recreate: get rid of chunks_healthy when rechunking (does not match)
* check: get rid of already existing not matching chunks_healthy metadata
* list: fix stdout broken pipe handling
* list/diff: remove tag-file options (not used)
- New features:
* bash, zsh and fish shell auto-completions, see scripts/shell_completions/
* added BORG_CONFIG_DIR env var
- Other changes:
* docs:
* clarify using a blank passphrase in keyfile mode
* mention "!" (exclude-norecurse) type in "patterns" help
* document to first heal before running borg recreate to re-chunk stuff, because that will have to get rid of chunks_healthy metadata.
* more than 23 is not supported for CHUNK_MAX_EXP
* borg does not respect nodump flag by default any more
* clarify same-filesystem requirement for borg upgrade
* update / rephrase cygwin / WSL status
* improve docs about --stats
* vagrant: openindiana new clang package
- Already contained in 1.1.1 (last minute fix):
* arg parsing: fix fallback function, refactor
- Generate new subpackages borgbackup-bash-completion,
borgbackup-zsh-completion and borgbackup-fish-completion with
autocompletion scripts for each shell.
* Mon Oct 23 2017 alarrosa@suse.com
- Update to borgbackup 1.1.1
- 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 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.
* The deprecated --no-files-cache is not a global/common option any more, but
only available for borg create (it is not needed for anything else).
Use --files-cache=disabled instead of --no-files-cache.
* The nodump flag ("do not backup this file") is not honoured any more by
default because this functionality (esp. if it happened by error or
unexpected) was rather confusing and unexplainable at first to users.
If you want that "do not backup NODUMP-flagged files" behaviour, use:
borg create --exclude-nodump ...
- Fixes:
* borg recreate: correctly compute part file sizes. fixes cosmetic, but
annoying issue as borg check complains about size inconsistencies of part
files in affected archives. you can solve that by running borg recreate
on these archives.
* bsdflags support: do not open BLK/CHR/LNK files, avoid crashes and slowness
* recreate: don't crash on attic archives w/o time_end
* don't crash on repository filesystems w/o hardlink support
* don't crash in first part of truncate_and_unlink
* fix server-side IndexError crash with clients < 1.0.7
* don't show traceback if only a global option is given, show help
* cache: use SaveFile for more safety
* init: fix wrong encryption choices in command line parser, fix missing
"authenticated-blake2"
* move --no-files-cache from common to borg create options
* fix detection of non-local path (failed on ..filename)
* logging with fileConfig: set json attr on "borg" logger
* fix crash with relative BORG_KEY_FILE
* show excluded dir with "x" for tagged dirs / caches
- New features:
* create: --nobsdflags and --exclude-nodump options
* extract: --nobsdflags option
- Other changes:
* remove annoying hardlinked symlinks warning
* vagrant: use self-made FreeBSD 10.3 box
* docs:
* readme: -e option is required in borg 1.1
* add example showing --show-version --show-rc
* use --format rather than --list-format (deprecated) in example
* update docs about hardlinked symlinks limitation
* Sun Oct 08 2017 alarrosa@suse.com
- Update to borgbackup 1.1.0
- Changelog:
* Major new features in the 1.1 release series are:
* borg recreate: remove files from existing archives and re-chunk or
re-compress them. This finally allows deduplication between legacy
Attic / Borg 0.xx archives and Borg 1.x archives. This is an
experimental feature.
* borg diff: show differences between two archives.
* borg mount: show all recorded versions of files with the "versions view".
* borg list: more formatting options, including generation of hashes and
per-file chunk statistics.
* borg create: automatic compression mode (-C auto,zlib/lz4/...), faster
handling of many files, experimental support for inclusion patterns
(--patterns, --patterns-from), files cache mode control (mtime/ctime)
* borg export-tar: streaming export of GNU tar compatible archives.
* Archive comments
* BLAKE2b256-based encryption modes, and "authenticated" modes that provide
data integrity without encryption. These provide better performance than
the existing SHA-256-based modes on most hardware, except where the x86
SHA extensions are available (e.g. AMD Ryzen).
* Repository indices and the Borg cache now use checksums to detect bitrot
and other corruption.
* A documented JSON API has been added to the most vital commands
(borg list, borg info and borg create).
* Structured JSON logging is available for all commands.
* --prefix has been supplemented with --glob-archives (-a), --sort-by,
- -last and --first options. These can be used for borg list, borg info,
borg mount, borg check, borg delete and borg prune.
* Quality of life improvements:
* options that imply output (--show-rc, --show-version, --list, --stats,
- -progress) don't need -v/--info to have that output displayed any more.
* borg check is silent by default (finally!).
* borg can now checkpoint within (big) files, not only between files.
* borg delete can delete multiple archives by giving their names.
* Automatic removal of stale locks, which should make "borg break-lock"
essentially superfluous. This is enabled by default, see
BORG_HOSTNAME_IS_UNIQUE.
* Answers to prompts like "Accessing previously unknown repository" are
now saved immediately.
* Cache synchronization and "borg info" are now faster.
* Reduced space usage of chunks.archive.d in the cache by 30-40 %.
Existing caches are migrated during a cache sync.
* The cache used for remote cache syncs and mounting remote repositories
does not grow indefinitely any more, but adapts to the available space.
Good riddance, TMP=/var/tmp!
* BORG_PASSCOMMAND makes using key rings and hardware keys much easier.
* Documentation improvements
* Compatibility notes for upgrading from Borg 1.0 to Borg 1.1:
* No explicit "borg upgrade" is required.
* Borg 1.1 uses some new data structures which are backwards-compatible
with Borg 1.0.4 and newer.
* Borg 1.0 can't make use of Borg 1.1's "compact cache" and will
silently ignore it.
* The default compression has been changed from "none" to "lz4".
* Repositories in the "repokey" and "repokey-blake2" modes with an empty
passphrase are now treated as unencrypted repositories for security
checks (e.g. BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK).
* borg init:
+ -e/--encryption is now a mandatory option with no default value.
Previously the default value was "repokey".
+ the short form of --append-only (-a) has been removed.
+ running "borg init" via a "borg serve --append-only" server will not
create an append-only repository any more.
Use "borg init --append-only" to initialize an append-only repository.
* borg create: the --exclude-if-present option now supports tagging a
folder with any file system object type (file, folder, etc.), instead of
accepting only files as tags.
* borg upgrade: the short form of --inplace (-i) has been removed.
* borg delete: the short form of --cache-only (-c) has been removed.
* "borg migrate-to-repokey" has been renamed to
"borg key migrate-to-repokey" with no deprecation notice, since it is
rarely and only manually used.
- For more information, see https://www.borgbackup.org/releases/borg-1.1.html
* Wed Aug 02 2017 lbeltrame@kde.org
- Update to version 1.0.11 (2017-07-21)
Bug fixes:
- use limited unpacker for outer key (security precaution), #2174
- fix paperkey import bug
Other changes:
- change --checkpoint-interval default from 600s to 1800s, #2841.
this improves efficiency for big repositories a lot.
- docs: fix OpenSUSE command and add OpenSUSE section
- tests: add tests for split_lstring and paperkey
- vagrant:
- fix openbsd shell
- backport cpu/ram setup from master
- add stretch64 VM
* Sun May 07 2017 hpj@urpla.net
- update to version 1.0.10 (2017-02-13)
Bug fixes:
- Manifest timestamps are now monotonically increasing, this fixes
issues when the system clock jumps backwards or is set inconsistently
across computers accessing the same repository, #2115
- Fixed testing regression in 1.0.10rc1 that lead to a hard dependency
on py.test >= 3.0, #2112
New features:
- ?key export? can now generate a printable HTML page with both a QR
code and a human-readable ?paperkey? representation (and custom text)
through the --qr-html option.
- The same functionality is also available through paperkey.html, which
is the same HTML page generated by --qr-html. It works with existing
?key export? files and key files.
Other changes:
- docs:
- language clarification - ?borg create ?one-file-system? option
does not respect mount points, but considers different file systems
instead, #2141
- setup.py: build_api: sort file list for determinism
- update to version 1.0.10rc1 (2017-01-29)
Bug fixes:
- borg serve: fix transmission data loss of pipe writes, #1268 This
affects only the cygwin platform (not Linux, BSD, OS X).
- Avoid triggering an ObjectiveFS bug in xattr retrieval, #1992
- When running out of buffer memory when reading xattrs, only skip the
current file, #1993
- Fixed ?borg upgrade ?tam? crashing with unencrypted repositories. Since
the issue is not relevant for unencrypted repositories, it now does
nothing and prints an error, #1981.
- Fixed change-passphrase crashing with unencrypted repositories, #1978
- Fixed ?borg check repo::archive? indicating success if ?archive? does
not exist, #1997
- borg check: print non-exit-code warning if ?last or ?prefix aren?t
fulfilled
- fix bad parsing of wrong repo location syntax
- create: don?t create hard link refs to failed files, mount: handle
invalid hard link refs, #2092
- detect mingw byte order, #2073
- creating a new segment: use ?xb? mode, #2099
- mount: umount on SIGINT/^C when in foreground, #2082
Other changes:
- binary: use fixed AND freshly compiled pyinstaller bootloader, #2002
- xattr: ignore empty names returned by llistxattr(2) et al
- Enable the fault handler: install handlers for the SIGSEGV, SIGFPE,
SIGABRT, SIGBUS and SIGILL signals to dump the Python traceback.
- Also print a traceback on SIGUSR2.
- borg change-passphrase: print key location (simplify making a backup
of it)
- officially support Python 3.6 (setup.py: add Python 3.6 qualifier)
tests:
- vagrant / travis / tox: add Python 3.6 based testing
- vagrant: fix openbsd repo, #2042
- vagrant: fix the freebsd64 machine, #2037 #2067
- vagrant: use python 3.5.3 to build binaries, #2078
- vagrant: use osxfuse 3.5.4 for tests / to build binaries vagrant:
improve darwin64 VM settings
- travis: fix osxfuse install (fixes OS X testing on Travis CI)
- travis: require succeeding OS X tests, #2028
- travis: use latest pythons for OS X based testing
- use pytest-xdist to parallelize testing
- fix xattr test race condition, #2047
- setup.cfg: fix pytest deprecation warning, #2050
docs:
- language clarification - VM backup FAQ
- borg create: document how to backup stdin, #2013
- borg upgrade: fix incorrect title levels
- add CVE numbers for issues fixed in 1.0.9, #2106
- fix typos (taken from Debian package patch)
- remote: include data hexdump in ?unexpected RPC data? error message
- remote: log SSH command line at debug level
- API_VERSION: use numberspaces, #2023
- remove .github from pypi package, #2051
- add pip and setuptools to requirements file, #2030
- SyncFile: fix use of fd object after close (cosmetic)
- Manifest.in: simplify, exclude *.{so,dll,orig}, #2066
- ignore posix_fadvise errors in repository.py, #2095 (works around
issues with docker on ARM)
- make LoggedIO.close_segment reentrant, avoid reentrance
* Tue Jan 03 2017 hpj@urpla.net
- disable %check for leap versions, their pytest package is too old
* Tue Jan 03 2017 hpj@urpla.net
- update to version 1.0.9 (2016-12-20)
- Security fixes:
- A flaw in the cryptographic authentication scheme in Borg allowed
an attacker to spoof the manifest. See :ref:`tam_vuln` above for
the steps you should take.
Fixes CVE-2016-10099
- borg check: When rebuilding the manifest (which should only be
needed very rarely) duplicate archive names would be handled on a
"first come first serve" basis, allowing an attacker to apparently
replace archives.
Fixes CVE-2016-10100
- Bug fixes:
- borg check:
rebuild manifest if it's corrupted
skip corrupted chunks during manifest rebuild
- fix TypeError in integrity error handler, #1903, #1894
- fix location parser for archives with @ char (regression introduced
in 1.0.8), #1930
- fix wrong duration/timestamps if system clock jumped during a create
- fix progress display not updating if system clock jumps backwards
- fix checkpoint interval being incorrect if system clock jumps
- update to version 1.0.9rc1 (2016-11-27)
- Bug fixes:
- files cache: fix determination of newest mtime in backup set (which
is used in cache cleanup and led to wrong "A" [added] status for
unchanged files in next backup), #1860.
- borg check:
- fix incorrectly reporting attic 0.13 and earlier archives as corrupt
- handle repo w/o objects gracefully and also bail out early if repo
is completely empty, #1815.
- fix tox/pybuild in 1.0-maint
- at xattr module import time, loggers are not initialized yet
- update to version 1.0.8 (2016-10-29)
- Bug fixes:
- RemoteRepository: Fix busy wait in call_many, #940
- update to version 1.0.8rc1 (2016-10-17)
- Bug fixes:
- fix signal handling (SIGINT, SIGTERM, SIGHUP), #1620 #1593 Fixes e.g.
leftover lock files for quickly repeated signals (e.g. Ctrl-C Ctrl-C)
or lost connections or systemd sending SIGHUP.
- progress display: adapt formatting to narrow screens, do not crash,
[#1628]
- borg create --read-special - fix crash on broken symlink, #1584. also
correctly processes broken symlinks. before this regressed to a crash
(5b45385) a broken symlink would've been skipped.
- process_symlink: fix missing backup_io() Fixes a chmod/chown/chgrp/
unlink/rename/... crash race between getting dirents and dispatching
to process_symlink.
- yes(): abort on wrong answers, saying so, #1622
- fixed exception borg serve raised when connection was closed before
reposiory was openend. add an error message for this.
- fix read-from-closed-FD issue, #1551 (this seems not to get triggered
in 1.0.x, but was discovered in master)
- hashindex: fix iterators (always raise StopIteration when exhausted)
(this seems not to get triggered in 1.0.x, but was discovered in master)
- enable relative pathes in ssh:// repo URLs, via /./relpath hack, #1655
- allow repo pathes with colons, #1705
- update changed repo location immediately after acceptance, #1524
- fix debug get-obj / delete-obj crash if object not found and remote
repo, #1684
- pyinstaller: use a spec file to build borg.exe binary, exclude osxfuse
dylib on Mac OS X (avoids mismatch lib <-> driver), #1619
* Sun Oct 30 2016 jengelh@inai.de
- Trim description
* Thu Oct 13 2016 alarrosa@suse.com
- Remove smp parameters when building documentation so different
sphinx instances are not run in parallel which sometimes fails
due to a race condition
* Sat Aug 20 2016 hpj@urpla.net
- update to version 1.0.7 (2016-08-19):
a critical security fix and some major bug fixes
Please check:
https://github.com/borgbackup/borg/blob/1.0.7/docs/changes.rst
- clean specfile
Version: 1.1.17-bp154.1.20
* 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!)