Commit Graph

8451 Commits

Author SHA1 Message Date
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
TW dc25205287
Merge pull request #8284 from ThomasWaldmann/fix-8256
fix error handling (master)
2024-07-15 12:43:24 +02:00
Thomas Waldmann 126a346296
delete: fix error handling with Ctrl-C 2024-07-15 00:49:39 +02:00
Thomas Waldmann 0ae65a08c4
rcompress: fix error handling with Ctrl-C 2024-07-15 00:48:22 +02:00
Thomas Waldmann 10b38789d6
delete: fix error handling when no archive is specified, fixes #8256 2024-07-15 00:38:24 +02:00
TW 246727f12d
Merge pull request #8281 from Aztorius/no-cache-option
Add BORG_USE_CHUNKS_ARCHIVE env var, fixes #8280
2024-07-13 22:34:20 +02:00
William Bonnaventure de5d130dda Update docs for BORG_USE_CHUNKS_ARCHIVE 2024-07-13 21:26:18 +02:00
William Bonnaventure fb7a8f2d85 Add BORG_USE_CHUNKS_ARCHIVE option 2024-07-13 21:26:13 +02:00
TW f5c9e2509f
Merge pull request #8276 from ThomasWaldmann/ci-windows-fix-master
github CI: windows msys2 build: broken, disable it for now, see #8264
2024-07-07 15:40:47 +02:00
Thomas Waldmann 1e38525853
github CI: windows msys2 build: broken, disable it for now, see #8264 2024-07-07 14:36:54 +02:00
TW 24afee29c2
Merge pull request #8272 from wzyboy/fix/typo
docs: fix typo
2024-07-06 20:37:56 +02:00
William Bonnaventure c3fb27f463
Automatic rebuild cache on exception, fixes #5213 (#8257)
Try to rebuild cache if an exception is raised, fixes #5213

For now, we catch FileNotFoundError and FileIntegrityError.

Write cache config without manifest to prevent override of manifest_id.
This is needed in order to have an empty manifest_id.
This empty id triggers the re-syncing of the chunks cache by calling sync() inside LocalCache.__init__()

Adapt and extend test_cache_chunks to new behaviour:

- a cache wipe is expected now.
- borg detects the corrupt cache and wipes/rebuilds the cache.
- check if the in-memory and on-disk cache is as expected (a rebuilt chunks cache).
2024-07-06 18:05:01 +02:00
Zhuoyun Wei 7c2fdf2d1d
docs: fix typo 2024-07-05 10:46:39 -07:00
TW aada9859ff
Merge pull request #8248 from dertuxmalwieder/patch-1
Fixed openSUSE dependencies in installation.rst
2024-06-07 17:37:40 +02:00
Cthulhux a0f23f97e1
Update installation.rst
Moved..
2024-06-07 03:40:17 +02:00
Cthulhux de21d79e3d
Fixed openSUSE dependencies in installation.rst
Tested with today's Tumbleweed
2024-06-06 22:32:41 +02:00
TW 1f7cc48320
Merge pull request #8244 from tree-wall/patch-1
Installation: update Arch Linux repo name
2024-06-03 12:19:15 +02:00
tree-wall 7bc6f90dd3
Installation: update Arch Linux repo name
The "community" repository was merged into the "extra" repo last year.

https://archlinux.org/news/git-migration-completed/
2024-06-02 19:21:48 +01:00
TW f7c18cd2c8
Merge pull request #8240 from ThomasWaldmann/fix-pytest-master
fix pytest_report_header, fixes #8232
2024-05-31 16:40:20 +02:00
Thomas Waldmann 00962f9d5d
fix pytest_report_header, fixes #8232 2024-05-31 14:30:19 +02:00
TW 819e294c3f
Merge pull request #8237 from ThomasWaldmann/remove-experimental-master
recreate: remove experimental status
2024-05-29 17:22:08 +02:00
Thomas Waldmann 9fbc4bc4e7
recreate: remove experimental status
We have this since quite a while and there were no major complaints.
2024-05-29 16:42:58 +02:00
TW e3f565623d
Merge pull request #8228 from ThomasWaldmann/allow-msgpack110-master
allow msgpack 1.1.0
2024-05-20 22:43:22 +02:00
Thomas Waldmann d43892d474
allow msgpack 1.1.0
tests with 1.1.0rc1 were successful, thus I assume 1.1.0 will also work ok.
2024-05-20 19:56:38 +02:00
TW 1525c72549
Merge pull request #8215 from ThomasWaldmann/fix-cythonize-import-error-reporting-master
setup.py: fix import error reporting for cythonize import, see #8208 (master)
2024-05-12 18:40:52 +02:00
Thomas Waldmann ce2a824ec9
cosmetic: blacken setup.py 2024-05-12 16:13:31 +02:00
Thomas Waldmann 8a73344352
setup.py: detect noexec build fs issue, see #8208
That "failed to map segment from shared object" error msg is not
very helpful. Add a hint that the filesystem needs to be +exec
(== not noexec mounted, like it might be the case for /tmp on
some systems).
2024-05-12 16:13:28 +02:00
Thomas Waldmann b067f0fba2
setup.py: fix import error reporting for cythonize import, see #8208
Looks like borg's setup.py has hidden the real cause of a cythonize ImportError.

There are basically 2 cases:
- either there is no Cython installed, then the import fails because the module can not be found, or
- there is some issue within Cython and the import fails due to that.

It's important not to hide the real cause, especially if we run into case 2.

case 1 is kind of expected and frequent, case 2 is rare.
2024-05-12 16:13:26 +02:00
TW 5e36ba789a
Merge pull request #8214 from ThomasWaldmann/fix-ci-macos-openssl-master
github CI: fix PKG_CONFIG_PATH for openssl 3.0
2024-05-12 16:12:19 +02:00
Thomas Waldmann 7baf8beed6
github CI: fix PKG_CONFIG_PATH for openssl 3.0 2024-05-12 15:25:27 +02:00
Vladimir Malinovskii 0c1df415d7
changed insufficiently reserved length for log message (#8152)
changed log message reserved length
2024-04-06 20:24:10 +02:00
TW 411c763fb8
Merge pull request #8182 from ThomasWaldmann/fix-test-ht-master
format_timedelta: use 3 decimal digits (ms)
2024-04-04 13:31:58 +02:00
Thomas Waldmann 54a85bf56d
format_timedelta: use 3 decimal digits (ms)
maybe this fixes the frequently failing test.
also, giving ms makes more sense than 10ms granularity.
2024-04-04 12:45:28 +02:00
TW 4d2eb0cb1b
Merge pull request #8181 from ThomasWaldmann/github-actions-update-master
update github actions
2024-04-03 19:33:35 +02:00
Thomas Waldmann d893b899fc
update github actions
(avoid deprecation warnings)
2024-04-03 18:26:35 +02:00
TW fb4b4cfeb8
Merge pull request #8180 from ThomasWaldmann/update-requirements-master
update development.lock.txt
2024-04-03 17:52:24 +02:00
Thomas Waldmann bb50246bc4
update development.lock.txt 2024-04-03 17:13:18 +02:00
TW c5abfe1ee9
Merge pull request #8178 from ThomasWaldmann/acl-error-handling-master
improve acl_get / acl_set error handling (master)
2024-04-03 17:02:14 +02:00
Thomas Waldmann 4e5bf28473
Linux: refactor acl_get 2024-04-02 01:38:31 +02:00
Thomas Waldmann 64b7b5fdd4
FreeBSD: check first if kind of ACL can be set on a file 2024-04-02 01:38:30 +02:00
Thomas Waldmann 4ebb5cdf3c
FreeBSD: simplify numeric_ids check 2024-04-02 01:38:28 +02:00
Thomas Waldmann 7df170c946
FreeBSD: added tests, only get default ACL from dirs 2024-04-02 01:38:27 +02:00
Thomas Waldmann d3694271eb
FreeBSD: acl_get: raise OSError if lpathconf fails
Previously:
- acl_get just returned for lpathconf returning EINVAL
- acl_get silently ignored all other lpathconf errors and
  implied it is not a NFS4 acl

Now:
- not sure why the EINVAL silent return was done, but it seems
  wrong. guess it could be the system not implementing a check
  for nfs4. but in that case guess we still would like to get
  the default and access ACL!? Thus, I removed the silent return.
- raise OSError for all lpathconf errors

Cosmetic: add a nfs4_acl boolean, so the code reads better.
2024-04-02 01:38:26 +02:00
Thomas Waldmann 30f4518058
FreeBSD: acl_get: add an acl_extended_* call
... to implement same semantics as on linux (only store ACL
if it defines permissions other than those defined by the
traditional file permissions).

Looks like there is no call working with an fd on FreeBSD.
2024-04-02 01:38:24 +02:00
Thomas Waldmann 4cc4516c59
Linux: acl_set bug fix: always fsencode path
We use path when raising OSErrors, even if we have an fd.
2024-04-02 01:38:23 +02:00
Thomas Waldmann 96cac5f381
Linux: acl_get: use "nofollow" variant of acl_extended_file call
This is NOT a bug fix, because the previous code contained a
check for symlinks before that line - because symlinks can not
have ACLs under Linux.

Now, this "is it a symlink" check is removed to simplify the
code and the "nofollow" variant of acl_extended_file* is used
to look at the symlink fs object (in the symlink case).

It then should tell us that this does NOT have an extended ACL
(because symlinks can't have ACLs) and so we return there.

Overall the code gets simpler and looks less suspect.
2024-04-02 01:38:21 +02:00
Thomas Waldmann beac2fa9ae
Linux: acl_get: raise OSError for errors in acl_extended_* call
Previously, these conditions were handled the same (just return):
- no extended acl here
- some error happened (e.g. ACLs unsupported, bad file descriptor, file not found, permission error, ...)

Now there will be OSErrors for the error cases.
2024-04-02 01:38:20 +02:00
Thomas Waldmann 1269c852bf
create/extract: ignore OSError if ACLs are not supported (ENOTSUP)
but do not silence other OSErrors.
2024-04-02 01:38:18 +02:00
Thomas Waldmann bafea3b5de
platform tests: misc. minor cleanups
- remove unused global / import
- use is_linux and is_darwin
- rename darwin acl test method
2024-04-02 01:38:17 +02:00
Thomas Waldmann d5396feebd
improve are_acls_working function
- ACLs are not working, if ENOTSUP ("Operation not supported") happens
- fix check for macOS
  On macOS borg uses "acl_extended", not "acl_access" and
  also the ACL text format is a bit different.
2024-04-02 01:38:15 +02:00