mirror of
https://github.com/borgbackup/borg.git
synced 2026-06-11 01:41:57 -04:00
Merge pull request #8931 from ThomasWaldmann/rel200b18
Release 2.0.0b18
This commit is contained in:
commit
515019846f
49 changed files with 128 additions and 79 deletions
10
Vagrantfile
vendored
10
Vagrantfile
vendored
|
|
@ -213,7 +213,7 @@ def install_pythons(boxname)
|
|||
return <<-EOF
|
||||
. ~/.bash_profile
|
||||
echo "PYTHON_CONFIGURE_OPTS: ${PYTHON_CONFIGURE_OPTS}"
|
||||
pyenv install 3.12.10
|
||||
pyenv install 3.12.11
|
||||
pyenv rehash
|
||||
EOF
|
||||
end
|
||||
|
|
@ -231,8 +231,8 @@ def build_pyenv_venv(boxname)
|
|||
. ~/.bash_profile
|
||||
cd /vagrant/borg
|
||||
# use the latest 3.12 release
|
||||
pyenv global 3.12.10
|
||||
pyenv virtualenv 3.12.10 borg-env
|
||||
pyenv global 3.12.11
|
||||
pyenv virtualenv 3.12.11 borg-env
|
||||
ln -s ~/.pyenv/versions/borg-env .
|
||||
EOF
|
||||
end
|
||||
|
|
@ -281,8 +281,8 @@ def run_tests(boxname, skip_env)
|
|||
. ../borg-env/bin/activate
|
||||
if which pyenv 2> /dev/null; then
|
||||
# for testing, use the earliest point releases of the supported python versions:
|
||||
pyenv global 3.12.10
|
||||
pyenv local 3.12.10
|
||||
pyenv global 3.12.11
|
||||
pyenv local 3.12.11
|
||||
fi
|
||||
# otherwise: just use the system python
|
||||
# some OSes can only run specific test envs, e.g. because they miss FUSE support:
|
||||
|
|
|
|||
|
|
@ -144,8 +144,8 @@ Compatibility notes:
|
|||
Change Log 2.x
|
||||
==============
|
||||
|
||||
Version 2.0.0b18 (not released yet)
|
||||
-----------------------------------
|
||||
Version 2.0.0b18 (2025-06-19)
|
||||
-----------------------------
|
||||
|
||||
Please note:
|
||||
|
||||
|
|
@ -156,7 +156,29 @@ above.
|
|||
|
||||
New features:
|
||||
|
||||
- new "buzhash64" chunker, init bh table using a 256bit key derived from ID key
|
||||
- experimental new "buzhash64" chunker (later, after testing, this shall become
|
||||
the default chunker in borg2):
|
||||
|
||||
- add own cryptographically secure pseudo-random number generator (CSPRNG)
|
||||
based on AES256-CTR to create deterministic random, based on a 256bit seed.
|
||||
- use that to deterministically create a perfectly balanced buzhash64 table.
|
||||
- "buzhash64" chunker computes 64bit hash values for the chunking decision.
|
||||
- performance is similar to "buzhash" (measured on Apple M3P cpu).
|
||||
|
||||
That should also resolve these points of criticism about the old "buzhash"
|
||||
32bit code:
|
||||
|
||||
- table_base: that the bits are not randomly distributed enough
|
||||
- that an XORed seed cancels out for specific window sizes
|
||||
- that XORing the table with a seed is equivalent to XORing the computed hash
|
||||
value with another constant
|
||||
|
||||
Please test the chunkers extensively (e.g. with borg create, borg transfer),
|
||||
we can hardly change them "in production", because chunking differently also
|
||||
means not deduplicating with old chunks. So, in case there are changes
|
||||
needed, we need to find and fix them now while borg is in beta.
|
||||
|
||||
See also some other chunker changes listed below "Other changes".
|
||||
- serve: add --permissions option as an alternative to BORG_REPO_PERMISSIONS env var
|
||||
- create: auto-exclude items based on xattrs or NODUMP, see #4972
|
||||
|
||||
|
|
@ -165,15 +187,16 @@ New features:
|
|||
|
||||
also: create: read stat attrs, xattrs, ACLs early, before file contents.
|
||||
|
||||
Fixes:
|
||||
|
||||
- compact: fix cleaning archives directory (catch correct exception, use
|
||||
logger.warning, improve error msg)
|
||||
|
||||
Other changes:
|
||||
|
||||
- support Python 3.14
|
||||
- msgpack: allow 1.1.1
|
||||
- msgpack version check: ignore "rc" or other version elements
|
||||
- msgpack: allow 1.1.1, version check: ignore "rc" or other version elements
|
||||
- add derive_key to derive new keys from existing key material
|
||||
- fish: fix archive name completion
|
||||
- refactor: modularize tests
|
||||
- refactor: use pathlib.Path
|
||||
- refactor the chunkers, #8882 #8883:
|
||||
|
||||
- transform buzhash chunker C code to Cython
|
||||
|
|
@ -183,12 +206,15 @@ Other changes:
|
|||
files and fmaps.
|
||||
- FileReader uses FileFMAPReader to fill its buffer and offers clients a
|
||||
`.read(size)` method so they can read pieces of the data.
|
||||
- both chunkers now use the FileReader/FileFMAPReader code
|
||||
- all chunkers now use the FileReader/FileFMAPReader code
|
||||
- split code and test module into packages
|
||||
- ChunkerFixed: add fixed chunker tests to selftest
|
||||
- ChunkerFixed: do not assert on short header read
|
||||
- Chunker: use safe_fadvise
|
||||
- ChunkerParams: reject even window size for buzhash, #8868
|
||||
- "fixed" chunker: add fixed chunker tests to selftest
|
||||
- "fixed" chunker: do not assert on short header read
|
||||
- "buzhash*" chunker: use safe_fadvise
|
||||
- "buzhash" chunker: reject even window size, #8868
|
||||
- fish: fix archive name completion
|
||||
- refactor: modularize tests
|
||||
- refactor: use pathlib.Path
|
||||
- tests / CI:
|
||||
|
||||
- CI: add bandit, a security-oriented static analysis tool
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-ANALYZE" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-ANALYZE" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-analyze \- Analyze archives
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-BENCHMARK-CPU" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-BENCHMARK-CPU" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-benchmark-cpu \- Benchmark CPU bound operations.
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-BENCHMARK-CRUD" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-BENCHMARK-CRUD" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-benchmark-crud \- Benchmark Create, Read, Update, Delete for archives.
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-BENCHMARK" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-BENCHMARK" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-benchmark \- benchmark command
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-BREAK-LOCK" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-BREAK-LOCK" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-break-lock \- Break the repository lock (e.g. in case it was left by a dead borg.
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-CHECK" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-CHECK" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-check \- Check repository consistency
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-COMMON" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-COMMON" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-common \- Common options of Borg commands
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-COMPACT" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-COMPACT" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-compact \- Collect garbage in repository
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-COMPRESSION" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-COMPRESSION" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-compression \- Details regarding compression
|
||||
.SH DESCRIPTION
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-CREATE" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-CREATE" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-create \- Create new archive
|
||||
.SH SYNOPSIS
|
||||
|
|
@ -202,9 +202,6 @@ exclude directories that are tagged by containing a filesystem object with the g
|
|||
.TP
|
||||
.B \-\-keep\-exclude\-tags
|
||||
if tag objects are specified with \fB\-\-exclude\-if\-present\fP, don\(aqt omit the tag objects themselves from the backup archive
|
||||
.TP
|
||||
.B \-\-exclude\-nodump
|
||||
exclude files flagged NODUMP
|
||||
.UNINDENT
|
||||
.SS Filesystem options
|
||||
.INDENT 0.0
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-DELETE" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-DELETE" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-delete \- Delete archives
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-DIFF" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-DIFF" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-diff \- Diff contents of two archives
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-EXPORT-TAR" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-EXPORT-TAR" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-export-tar \- Export archive contents as a tarball
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-EXTRACT" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-EXTRACT" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-extract \- Extract archive contents
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-IMPORT-TAR" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-IMPORT-TAR" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-import-tar \- Create a backup archive from a tarball
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-INFO" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-INFO" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-info \- Show archive details such as disk space used
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-KEY-CHANGE-LOCATION" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-KEY-CHANGE-LOCATION" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-key-change-location \- Change repository key location
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-KEY-CHANGE-PASSPHRASE" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-KEY-CHANGE-PASSPHRASE" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-key-change-passphrase \- Change repository key file passphrase
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-KEY-EXPORT" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-KEY-EXPORT" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-key-export \- Export the repository key for backup
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-KEY-IMPORT" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-KEY-IMPORT" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-key-import \- Import the repository key from backup
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-KEY" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-KEY" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-key \- Manage a keyfile or repokey of a repository
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-LIST" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-LIST" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-list \- List archive contents
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-MATCH-ARCHIVES" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-MATCH-ARCHIVES" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-match-archives \- Details regarding match-archives
|
||||
.SH DESCRIPTION
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-MOUNT" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-MOUNT" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-mount \- Mount archive or an entire repository as a FUSE filesystem
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-PATTERNS" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-PATTERNS" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-patterns \- Details regarding patterns
|
||||
.SH DESCRIPTION
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-PLACEHOLDERS" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-PLACEHOLDERS" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-placeholders \- Details regarding placeholders
|
||||
.SH DESCRIPTION
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-PRUNE" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-PRUNE" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-prune \- Prune repository archives according to specified rules
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-RECREATE" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-RECREATE" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-recreate \- Re-create archives
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-RENAME" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-RENAME" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-rename \- Rename an existing archive
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-REPO-COMPRESS" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-REPO-COMPRESS" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-repo-compress \- Repository (re-)compression
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-REPO-CREATE" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-REPO-CREATE" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-repo-create \- Create a new, empty repository
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-REPO-DELETE" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-REPO-DELETE" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-repo-delete \- Delete a repository
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-REPO-INFO" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-REPO-INFO" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-repo-info \- Show repository infos
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-REPO-LIST" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-REPO-LIST" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-repo-list \- List the archives contained in a repository
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-REPO-SPACE" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-REPO-SPACE" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-repo-space \- Manage reserved space in repository
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-SERVE" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-SERVE" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-serve \- Start in server mode. This command is usually not used manually.
|
||||
.SH SYNOPSIS
|
||||
|
|
@ -52,6 +52,23 @@ option if you do not want to use the default path for the socket and pid file).
|
|||
Please note that \fIborg serve\fP does not support giving a specific repository via the
|
||||
\fI\-\-repo\fP option or \fIBORG_REPO\fP environment variable. It is always the borg client which
|
||||
specifies the repo to use when talking to \fIborg serve\fP\&.
|
||||
.sp
|
||||
The \-\-permissions option allows enforcing repository permissions:
|
||||
.INDENT 0.0
|
||||
.IP \(bu 2
|
||||
\fIall\fP: All permissions are granted (default, permissions system is not used)
|
||||
.IP \(bu 2
|
||||
\fIno\-delete\fP: Allow reading and writing, disallow deleting and overwriting data.
|
||||
New archives can be created, existing archives can not be deleted. New chunks can
|
||||
be added, existing chunks can not be deleted or overwritten.
|
||||
.IP \(bu 2
|
||||
\fIwrite\-only\fP: Allow writing, disallow reading data.
|
||||
New archives can be created, existing archives can not be read.
|
||||
New chunks can be added, existing chunks can not be read, deleted or overwritten.
|
||||
.IP \(bu 2
|
||||
\fIread\-only\fP: Allow reading, disallow writing or deleting data.
|
||||
Existing archives can be read, but no archives can be created or deleted.
|
||||
.UNINDENT
|
||||
.SH OPTIONS
|
||||
.sp
|
||||
See \fIborg\-common(1)\fP for common options of Borg commands.
|
||||
|
|
@ -63,6 +80,9 @@ restrict repository access to PATH. Can be specified multiple times to allow the
|
|||
.TP
|
||||
.BI \-\-restrict\-to\-repository \ PATH
|
||||
restrict repository access. Only the repository located at PATH (no sub\-directories are considered) is accessible. Can be specified multiple times to allow the client access to several repositories. Unlike \fB\-\-restrict\-to\-path\fP sub\-directories are not accessible; PATH needs to point directly at a repository location. PATH may be an empty directory or the last element of PATH may not exist, in which case the client may initialize a repository there.
|
||||
.TP
|
||||
.B \-\-permissions
|
||||
Set repository permission mode. Overrides BORG_REPO_PERMISSIONS environment variable.
|
||||
.UNINDENT
|
||||
.SH EXAMPLES
|
||||
.sp
|
||||
|
|
@ -94,9 +114,13 @@ locations like \fB/etc/environment\fP or in the forced command itself (example b
|
|||
$ cat ~/.ssh/authorized_keys
|
||||
command=\(dqborg serve \-\-restrict\-to\-path /path/to/repo\(dq,restrict ssh\-rsa AAAAB3[...]
|
||||
|
||||
# Specify repository permissions for an SSH keypair.
|
||||
$ cat ~/.ssh/authorized_keys
|
||||
command=\(dqborg serve \-\-permissions=read\-only\(dq,restrict ssh\-rsa AAAAB3[...]
|
||||
|
||||
# Set a BORG_XXX environment variable on the \(dqborg serve\(dq side
|
||||
$ cat ~/.ssh/authorized_keys
|
||||
command=\(dqexport BORG_XXX=value; borg serve [...]\(dq,restrict ssh\-rsa [...]
|
||||
command=\(dqBORG_XXX=value borg serve [...]\(dq,restrict ssh\-rsa [...]
|
||||
.EE
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
|
|
@ -104,9 +128,10 @@ command=\(dqexport BORG_XXX=value; borg serve [...]\(dq,restrict ssh\-rsa [...]
|
|||
\fBNOTE:\fP
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
The examples above use the \fBrestrict\fP directive. This does automatically
|
||||
block potential dangerous ssh features, even when they are added in a future
|
||||
update. Thus, this option should be preferred.
|
||||
The examples above use the \fBrestrict\fP directive and assume a POSIX
|
||||
compliant shell set as the user\(aqs login shell.
|
||||
This does automatically block potential dangerous ssh features, even when
|
||||
they are added in a future update. Thus, this option should be preferred.
|
||||
.sp
|
||||
If you\(aqre using openssh\-server < 7.2, however, you have to specify explicitly
|
||||
the ssh features to restrict and cannot simply use the restrict option as it
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-TAG" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-TAG" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-tag \- Manage tags
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-TRANSFER" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-TRANSFER" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-transfer \- archives transfer from other repository, optionally upgrade data format
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-UMOUNT" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-UMOUNT" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-umount \- un-mount the FUSE filesystem
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-UNDELETE" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-UNDELETE" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-undelete \- Undelete archives
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-VERSION" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-VERSION" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-version \- Display the borg client / borg server version
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG-WITH-LOCK" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG-WITH-LOCK" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg-with-lock \- run a user specified command with the repository lock held
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORG" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORG" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borg \- deduplicating and encrypting backup tool
|
||||
.SH SYNOPSIS
|
||||
|
|
@ -448,6 +448,9 @@ the \fB\-\-rsh CMD\fP commandline option overrides the environment variable.
|
|||
When set, use the given path as borg executable on the remote (defaults to \(dqborg\(dq if unset).
|
||||
Using \fB\-\-remote\-path PATH\fP commandline option overrides the environment variable.
|
||||
.TP
|
||||
.B BORG_REPO_PERMISSIONS
|
||||
Set repository permissions, see also: \fIborg_serve\fP
|
||||
.TP
|
||||
.B BORG_FILES_CACHE_SUFFIX
|
||||
When set to a value at least one character long, instructs borg to use a specifically named
|
||||
(based on the suffix) alternative files cache. This can be used to avoid loading and saving
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.TH "BORGFS" "1" "2025-05-22" "" "borg backup tool"
|
||||
.TH "BORGFS" "1" "2025-06-18" "" "borg backup tool"
|
||||
.SH NAME
|
||||
borgfs \- Mount archive or an entire repository as a FUSE filesystem
|
||||
.SH SYNOPSIS
|
||||
|
|
|
|||
|
|
@ -67,8 +67,6 @@ borg create
|
|||
+-------------------------------------------------------+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| | ``--keep-exclude-tags`` | if tag objects are specified with ``--exclude-if-present``, don't omit the tag objects themselves from the backup archive |
|
||||
+-------------------------------------------------------+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| | ``--exclude-nodump`` | exclude files flagged NODUMP |
|
||||
+-------------------------------------------------------+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| **Filesystem options** |
|
||||
+-------------------------------------------------------+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| | ``-x``, ``--one-file-system`` | stay in the same file system and do not store mount points of other file systems - this might behave different from your expectations, see the description below. |
|
||||
|
|
@ -147,7 +145,6 @@ borg create
|
|||
--exclude-caches exclude directories that contain a CACHEDIR.TAG file (http://www.bford.info/cachedir/spec.html)
|
||||
--exclude-if-present NAME exclude directories that are tagged by containing a filesystem object with the given NAME
|
||||
--keep-exclude-tags if tag objects are specified with ``--exclude-if-present``, don't omit the tag objects themselves from the backup archive
|
||||
--exclude-nodump exclude files flagged NODUMP
|
||||
|
||||
|
||||
Filesystem options
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
setuptools==78.1.1
|
||||
setuptools-scm==8.2.0
|
||||
pip==25.0.1
|
||||
setuptools-scm==8.3.1
|
||||
pip==25.1.1
|
||||
wheel==0.45.1
|
||||
virtualenv==20.30.0
|
||||
build==1.2.2
|
||||
virtualenv==20.31.2
|
||||
build==1.2.2.post1
|
||||
pkgconfig==1.5.5
|
||||
tox==4.26.0
|
||||
pytest==8.4.0
|
||||
tox==4.27.0
|
||||
pytest==8.4.1
|
||||
pytest-xdist==3.7.0
|
||||
coverage[toml]==7.9.1
|
||||
pytest-cov==6.2.1
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ basepath = os.path.abspath(os.path.join(here, '..'))
|
|||
if is_win32:
|
||||
hiddenimports = ['borghash']
|
||||
else:
|
||||
hiddenimports = ['borg.platform.posix', 'pkg_resources.py2_warn', 'borghash']
|
||||
hiddenimports = ['borg.platform.posix', 'borghash']
|
||||
|
||||
block_cipher = None
|
||||
|
||||
|
|
@ -27,6 +27,7 @@ a = Analysis([os.path.join(basepath, 'src', 'borg', '__main__.py'), ],
|
|||
runtime_hooks=[],
|
||||
excludes=[
|
||||
'_ssl', 'ssl',
|
||||
'pkg_resources', # avoid pkg_resources related warnings
|
||||
],
|
||||
win_no_prefer_redirects=False,
|
||||
win_private_assemblies=False,
|
||||
|
|
|
|||
Loading…
Reference in a new issue