Commit graph

128 commits

Author SHA1 Message Date
Thomas Waldmann
bc86bd4bb0
Move chunker module to chunkers package
Refactor by relocating the `chunker` module under a new `chunkers` package, adjusting imports and file references accordingly.
2025-06-04 22:12:45 +02:00
TW
39b847a138
Merge pull request #8859 from ThomasWaldmann/pyupgrade-py310-plus
pyupgrade --py310-plus ./**/*.py
2025-05-20 23:29:58 +02:00
Thomas Waldmann
c7765adf08
pyupgrade --py310-plus ./**/*.py 2025-05-20 22:05:13 +02:00
Thomas Waldmann
a4761f9158
zsh: no barchive, add --repo 2025-05-20 21:28:46 +02:00
Thomas Waldmann
7e78aaf04d
zsh fixes, remove repo-list caching 2025-05-20 21:08:09 +02:00
Thomas Waldmann
ca87c60565
minor bash completion fixes 2025-05-20 21:05:38 +02:00
Thomas Waldmann
3196f490f3
zsh: add new commands and options to zsh completions 2025-05-19 21:03:11 +02:00
Thomas Waldmann
9116533ec3
fish: add new commands and options to fish completions 2025-05-19 20:30:52 +02:00
Thomas Waldmann
15d3408360
bash: add new commands and options to bash completions
Updated bash completions to include new commands such as `analyze`, `debug`, `repo-space`, `tag`, and `undelete`, along with their respective options. Fixed a typo in the `--upgrader` completions and improved completion handling for various commands.
2025-05-19 20:30:49 +02:00
Thomas Waldmann
3df7702519
tests: fix and enable windows CI, fixes #8728
thanks a lot to @sothix for helping with this!

removed pytest-forked, is not found anymore:
error: target not found: mingw-w64-ucrt-x86_64-python-pytest-forked

use a virtual env to avoid mixup of user with system packages.

remove old workaround for setuptools (SETUPTOOLS_USE_DISTUTILS: stdlib).

fix pip install

use --system-site-packages as a workaround for broken pip install python-cffi.

do not upgrade pip setuptools build wheel

use python -m pytest to use the one from the venv
2025-05-19 11:00:11 +02:00
Thomas Waldmann
9e6d90754e
remove remainders of append-only support
Some features like append-only repositories rely on a server-side component
that enforces them (because that shall only be controllable server-side,
not client-side).

So, that can only work, if such a server-side component exists, which is the
case for borg 1.x ssh: repositories (but not for borg 1.x non-ssh: repositories).

For borg2, we currently have:
- fs repos
- sftp: repos
- rclone: repos (enabling many different cloud providers)
- s3/b3: repos
- ssh: repos using client/server rpc code similar as in borg 1.x

So, only for the last method we have a borg server-side process that could enforce some features, but not for any of the other repo types.

For append-only the current idea is that this should not be done within borg,
but solved by a missing repo object delete permission enforced by the storage.

borg create could then use credentials that miss permission to delete,
while borg compact would use credentials that include permission to delete.
2025-04-28 18:55:15 +02:00
Thomas Waldmann
48b39d878f
remove remainders of quota support
Some features like repository quotas rely on a server-side component
that enforces them (because that shall only be controllable server-side,
not client-side).

So, that can only work, if such a server-side component exists, which is the
case for borg 1.x ssh: repositories (but not for borg 1.x non-ssh: repositories).

For borg2, we currently have:
- fs repos
- sftp: repos
- rclone: repos (enabling many different cloud providers)
- s3/b3: repos
- ssh: repos using client/server rpc code similar as in borg 1.x

So, only for the last method we have a borg server-side process that could enforce some features, but not for any of the other repo types.

For quotas the current idea is that this should not be done within borg,
but enforced by a storage specific quota implementation (like fs quota,
or quota of the cloud storage provider). borg could offer information
about overall repo space used, but would not enforce quotas within borg.
2025-04-28 16:57:30 +02:00
Thomas Waldmann
c7fd43c576
msys2: use pyinstaller 6.11.1 2025-03-23 16:00:33 +01:00
Thomas Waldmann
fdc882230e
shell completions: adapt zsh for borg 2.0.0b13
I am not familiar with zsh completions, so I did only the easy stuff.

A lot of the more complex stuff is likely still broken, PR's welcome!
2024-11-05 17:16:38 +01:00
TW
b553452911
Merge pull request #8484 from mrichtarsky/docs
Docs: Remove --bypass-lock, small changes regarding compression
2024-11-01 12:26:06 +01:00
Thomas Waldmann
bd5060887c
pyinstaller: add borghash to hidden imports 2024-10-31 22:19:30 +01:00
Thomas Waldmann
03596e3651
remove unused _hashindex.c, update setup.py
also the hash_sizes.py script, which was used for _hashindex.c.
2024-10-25 19:03:38 +02:00
Martin Richtarsky
411f6f3222 docs: Remove --bypass-lock 2024-10-22 08:44:56 +02:00
Thomas Waldmann
f6f8c678e8
msys2: use pyinstaller 6.10.0 2024-10-15 19:06:34 +02:00
Thomas Waldmann
e8dbcb3bfa
msys2: install rclone 2024-10-15 19:05:27 +02:00
sothix
f11dc50070 Pip Fix 2024-09-15 23:35:24 +10:00
Thomas Waldmann
04dfadbbd6
cli: rename r* commands to repo-*
also:
- adapt tests
- adapt BuildMan manpage generation
- adapt help strings / doc strings
- docs
2024-09-08 18:06:24 +02:00
Thomas Waldmann
0306ba9a63
get rid of the CacheSynchronizer
Lots of low-level code written back then to optimize runtime of some
functions.

We'll solve this differently by doing less stats, esp. if it is expensive to compute.
2024-09-07 22:00:33 +02:00
Thomas Waldmann
84e87239bc
fix pypi repo name in upload script
it needs to be like this to support a ~/.pypirc like this,
containing a separate upload token for the borgbackup project:

[distutils]
index-servers =
    borgbackup
    ...

[borgbackup]
repository = https://upload.pypi.org/legacy/
username = __token__
password = pypi-...(token)...
2024-07-20 17:47:59 +02:00
Thomas Waldmann
f4367d66d8
vagrant: darwin -> macos
Also: add macOS version number.
2024-07-19 14:15:15 +02:00
Thomas Waldmann
445dd69eba
vagrant: adapt fetch-binaries script 2024-07-19 14:14:58 +02:00
Thomas Waldmann
2e05c234b6
BackupErrors get caught and give warning RCs
also: use more union operators rather than .union()
2024-02-15 18:15:10 +01:00
Thomas Waldmann
5168a97782
extend errorlist script to warnings, update docs 2024-02-14 02:04:44 +01:00
Thomas Waldmann
34bbce8e71
scripts/errorlist.py: improve error list docs generation
- also output modern rc and traceback yes/no
- recursive list of Error subclasses
2024-02-13 19:56:32 +01:00
Thomas Waldmann
8eba627b29
scripts: make.py clean implementation 2024-02-09 17:37:46 +01:00
Thomas Waldmann
4d424de69e
scripts: update docs about make.py 2024-02-09 17:37:44 +01:00
Thomas Waldmann
59bca06630
scripts: rename gendocs.py to make.py 2024-02-09 17:37:43 +01:00
Thomas Waldmann
b64f6e3335
scripts/gendocs.py: make it work
remove unused html_write function

gendocs: update developer docs
2024-02-09 17:37:38 +01:00
Thomas Waldmann
b34a99f337
git mv setup_docs.py scripts/gendocs.py 2024-02-09 02:53:17 +01:00
Thomas Waldmann
cb62981ae7
add script for fetching borg binaries from VMs, fixes #7989 2024-01-10 22:33:44 +01:00
Thomas Waldmann
723994a2f1
use pyinstaller 6.3.0 2024-01-02 20:33:34 +01:00
Thomas Waldmann
1a544845a2
use less setup.py, use pip and build
todo: clean clean2 build_usage build_man
2024-01-02 19:50:59 +01:00
Thomas Waldmann
66eb086c4a
fix msys build
forward port to get code in sync with 1.4-maint.

use "pip install -e ." before invoking pyinstaller, so we have
the _version.py built by setuptools_scm and also it compiled the
extension modules, so pyinstaller can pick them up.

msys2 hack:

https://stackoverflow.com/questions/76079590/error-plat-name-must-be-one-of-win32-win-amd64-win-arm32-win-arm6
2024-01-02 19:46:48 +01:00
Ceesjan Luiten
7afa8d4626 Prevent CLI argument issues 2023-10-07 19:58:41 +02:00
Thomas Waldmann
4326813c05
do not upload gpg signature to pypi, fixes #7649 2023-06-29 23:06:28 +02:00
Rayyan Ansari
ce50c497b0
Windows: simplify building
Use the standard pip build command, and get rid of the build script.
2023-03-10 17:51:03 +00:00
TW
366731ba00
Merge pull request #7300 from RayyanAnsari/borg-platformdirs
use platformdirs
2023-02-10 00:09:44 +01:00
Rayyan Ansari
37e958bfa4
pyinstaller: remove icon
Remove pyinstaller's default executable icon by setting it to the string 'NONE'.

While we're at it, update a comment.
2023-02-08 17:53:33 +00:00
Rayyan Ansari
6c7efbe128
add platformdirs to dependencies 2023-02-03 17:46:56 +01:00
Helmut Grohne
f2f761212d
update bash completion script commands and options (#7273)
update bash completion script commands and options
2023-01-18 14:10:29 +01:00
TW
7fb37271f2
Merge pull request #7258 from RayyanAnsari/windows-ci-tests
Add tests to Windows CI
2023-01-13 18:43:21 +01:00
Rayyan Ansari
b19d2c1449
Add tests to Windows CI 2023-01-13 17:02:41 +00:00
Josh Soref
a205c4273b spelling: zstandard
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-01-12 11:24:05 -05:00
Paul D
253d8e8d4e Docs grammar fixes
joined split infinitives, and relocated adverbs appropriately.
2022-12-29 22:26:54 +00:00
Thomas Waldmann
6a82d01b35
tests for borg transfer --upgrader=From12To20 2022-12-04 09:07:48 +01:00