1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2025-01-01 12:45:34 +00:00
Commit graph

8521 commits

Author SHA1 Message Date
Thomas Waldmann
8b9c052acc
manifest: store archives separately one-by-one into archives/*
repository:
- api/rpc support for get/put manifest
- api/rpc support to access the store
2024-09-07 22:00:21 +02:00
Thomas Waldmann
72d0caeb6b
locking3: store-based repo locking
Features:
- exclusive and non-exclusive locks
- acquire timeout
- lock auto-expiry (after 30mins of inactivity), lock refresh
- use tz-aware datetimes (in utc timezone) in locks

Also:
- document lock acquisition rules in the src
- increased default BORG_LOCK_WAIT to 10s
- better document with-lock test

Stale locks are ignored and automatically deleted.
Default: stale == 30 Minutes old.

lock.refresh() can be called frequently to avoid that an acquired lock becomes stale.
It does not do much if the last real refresh was recently.
After stale/2 time it checks and refreshes the locks in the store.

Update the repository3 code to call refresh frequently:
- get/put/list/scan
- inside check loop
2024-09-07 22:00:20 +02:00
Thomas Waldmann
c740fd718b
transfer: fix upgrades from borg 1.x by adding a --from-borg1 option
borg transfer is primarily a general purpose archive transfer function
from borg2 to related borg2 repos.

but for upgrades from borg 1.x, we also need to support:
- rcreate with a borg 1.x "other repo"
- transfer with a borg 1.x "other repo"
2024-09-07 22:00:17 +02:00
Thomas Waldmann
d95cacd624
implement Repository3.check
It uses xxh64 hashes of the meta and data parts to verify their validity.
On a server with borg, this can be done server-side without the borg key.

The new RepoObj header has meta_size, data_size, meta_hash and data_hash.
2024-08-23 23:55:12 +02:00
Thomas Waldmann
d30d5f4aec
Repository3 / RemoteRepository3: implement a borgstore based repository
Simplify the repository a lot:

No repository transactions, no log-like appending, no append-only, no segments,
just using a key/value store for the individual chunks.

No locking yet.

Also:

mypy: ignore missing import
there are no library stubs for borgstore yet, so mypy errors without that option.

pyproject.toml: install borgstore directly from github
There is no pypi release yet.

use pip install -e . rather than python setup.py develop
The latter is deprecated and had issues installing the "borgstore from github" dependency.
2024-08-23 23:55:09 +02:00
TW
ea718b98f2
Merge pull request #8314 from ruben-rodriguez/master
docs: align /etc/backups path references in automated backups deployment guide
2024-08-02 21:31:19 +02:00
TW
e7533944ad
Merge pull request #8315 from ThomasWaldmann/cleanups-master
remove outdated comment, fixes #4240
2024-08-02 21:30:30 +02:00
Ruben Rodriguez
6978584de6
docs: align /etc/backups path in all references 2024-08-01 15:31:38 +02:00
Thomas Waldmann
3a5ee93401
remove outdated comment, fixes #4240 2024-07-31 15:25:54 +02:00
TW
6039349932
Merge pull request #8312 from dtugend/doc-TIMESPAN
Add TIMESPAN to doc
2024-07-31 10:57:17 +02:00
Dominik Tugend
e715b9f5af Add TIMESPAN to doc
- Closes borgbackup/borg#8310
2024-07-30 23:49:50 +02:00
TW
364eb87ae2
Merge pull request #8286 from pktiuk/patch-1
Add Open Collective to FUNDING.yml
2024-07-27 00:37:42 +02:00
Thomas Waldmann
69ce4bd9ee
add github sponsors
also: reorder
2024-07-26 23:51:36 +02:00
TW
929c642b6e
Merge pull request #8304 from ThomasWaldmann/improve-healing-test-master
improve borg check --repair healing tests, see #8302
2024-07-23 22:31:46 +02:00
Thomas Waldmann
c6f95de492
improve borg check --repair healing tests, see #8302
test the healing more thoroughly:
- preservation of correct chunks list in .chunks_healthy
- check that .chunks_healthy is removed after healing
- check that doing another borg check --repair run does not find
  something to heal, again.

also did a datatype consistency fix for item.chunks_healthy list
members: they are now post processed in the same way as item.chunks,
so they have type ChunkListEntry rather than simple tuple.
2024-07-23 20:49:24 +02:00
TW
83aed450e9
Merge pull request #8293 from ThomasWaldmann/rel200b9
Release 2.0.0b9
2024-07-20 18:34:55 +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
7aabe8204c
fix binary_archiver tests for modern exit codes 2024-07-20 00:39:37 +02:00
Paweł Kotiuk
f777263997 Add Open Collective and Liberapay to FUNDING.yml
Source: https://www.borgbackup.org/support/fund.html
2024-07-19 20:41:06 +00:00
Thomas Waldmann
edfca29b97
build_usage / build_man 2024-07-19 20:40:15 +02:00
Thomas Waldmann
6778f2976a
update CHANGES 2024-07-19 20:39:32 +02:00
TW
4fe94bf77e
Merge pull request #8291 from ThomasWaldmann/key-export-filename-master
key export fixes (master)
2024-07-19 20:32:53 +02:00
Thomas Waldmann
4e6238e7d3
key export: fix exception handling
export_paperkey also must not get an already existing directory.
2024-07-19 19:55:14 +02:00
Thomas Waldmann
5eecdfa133
key export: fix crash when no path is given
In this case, the export functions output to stdout.

Also: add a note why this code is needed.
2024-07-19 19:48:25 +02:00
Thomas Waldmann
6211a3dc79
key export: move examples to docs 2024-07-19 19:44:38 +02:00
TW
4312a74c33
Merge pull request #8290 from ThomasWaldmann/modern-exit-codes-by-default
make BORG_EXIT_CODES="modern" the default, fixes #8110
2024-07-19 19:03:13 +02:00
Thomas Waldmann
ecddbc6691
make BORG_EXIT_CODES="modern" the default. 2024-07-19 17:31:36 +02:00
TW
3c480d9057
Merge pull request #8289 from ThomasWaldmann/beta-notes-master
Beta testing notes / binary readme
2024-07-19 15:13:56 +02:00
TW
995ec3036a
Merge pull request #8288 from ThomasWaldmann/vagrant-machines-master
Vagrant machines updates (port to master)
2024-07-19 14:44:07 +02:00
Thomas Waldmann
044acfd5dd
add docs/binaries/00_README.txt
I usually just uploaded that into the GH release assets,
but let's also have it in git.
2024-07-19 14:43:30 +02:00
Thomas Waldmann
16c52040e4
README: add note about beta testing
not: "in production testing"
2024-07-19 14:41:37 +02:00
Thomas Waldmann
a6fdb4dec0
vagrant: netbsd/openbsd: add version number 2024-07-19 14:16:22 +02:00
Thomas Waldmann
296c674fdf
vagrant: macos: add version number to call param 2024-07-19 14:16:07 +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
0b660e0e75
vagrant: get rid of the "64" suffix for VM names.
We only have 64bit machines anyway. And even in the unlikely
case we would add 32bit machines, we could suffix them by "32".
2024-07-19 14:14:22 +02:00
Thomas Waldmann
273aaaf572
vagrant: use freebsd(13|14)_64 as VM name 2024-07-19 14:13:13 +02:00
Thomas Waldmann
3f5cb32328
add freebsd 13 box, fixes #8266
users of TrueNAS do not have fbsd 14 yet.
2024-07-19 14:11:57 +02:00
TW
0f83d0c51f
Merge pull request #8287 from ThomasWaldmann/update-changes-master
Update changes
2024-07-19 00:02:00 +02:00
Thomas Waldmann
b1249ebe20
update CHANGES 2024-07-18 23:52:39 +02:00
Thomas Waldmann
4c76b67873
vagrant: use Python 3.11.9 2024-07-18 23:49:59 +02:00
Thomas Waldmann
70d1758e04
vagrant: use pyinstaller 6.7.0 2024-07-18 23:48:19 +02:00
TW
66b62c6fc9
Merge pull request #7846 from ThomasWaldmann/files-cache-with-size
files cache with size
2024-07-18 23:33:10 +02:00
Thomas Waldmann
619a06a5ba
BORG_CACHE_IMPL defaults to "adhocwithfiles" now
Also: support a "cli" env var value, that does not determine
the implementation from the env var, but rather from cli options (similar to as it was before adding BORG_CACHE_IMPL).
2024-07-18 22:51:17 +02:00
Thomas Waldmann
5a500cddf8
rename NewCache -> AdHocWithFilesCache 2024-07-18 22:14:00 +02:00
TW
55bf40db3b
Merge pull request #8285 from borgbackup/dependabot/pip/requirements.d/setuptools-70.0.0
build(deps-dev): bump setuptools from 69.2.0 to 70.0.0 in /requirements.d
2024-07-16 02:11:23 +02:00
dependabot[bot]
0fccd0bc0a
build(deps-dev): bump setuptools in /requirements.d
Bumps [setuptools](https://github.com/pypa/setuptools) from 69.2.0 to 70.0.0.
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/setuptools/compare/v69.2.0...v70.0.0)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 19:27:15 +00:00
Thomas Waldmann
78954b6487
skip tests not working with specific cache implementations 2024-07-15 12:45:17 +02:00
Thomas Waldmann
616af8daa8
BORG_CACHE_IMPL environment variable added
BORG_CACHE_IMPL allows users to choose the client-side cache implementation from 'local', 'newcache' and 'adhoc'.
2024-07-15 12:45:16 +02:00
Thomas Waldmann
72be8eff15
add comments to test_unknown_feature_on_cache_sync 2024-07-15 12:45:15 +02:00