Commit Graph

8421 Commits

Author SHA1 Message Date
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
Thomas Waldmann b3554cdc0f
raise OSError if acl_to_text / acl_from_text returns NULL
Also did a small structural refactors there.
2024-04-02 01:38:14 +02:00
Thomas Waldmann a75945ed0d
improve acl_get / acl_set error handling, see #4049 2024-04-02 01:38:12 +02:00
TW 7f15c14fc6
Merge pull request #8176 from ThomasWaldmann/vagrant-updates-master
Vagrant updates (master)
2024-04-01 22:17:26 +02:00
TW 7dd0403bd3
Merge pull request #8177 from ThomasWaldmann/debounce-sigint-master
fix Ctrl-C / SIGINT behaviour for pyinstaller-made binaries, fixes #8155 (master)
2024-04-01 22:17:10 +02:00
Thomas Waldmann c157db739b
fix Ctrl-C / SIGINT behaviour for pyinstaller-made binaries, fixes #8155 2024-04-01 20:41:47 +02:00
Thomas Waldmann f28084d773
vagrant: ubuntu lunar -> noble VM
Noble should become stable / LTS soon.
2024-04-01 20:36:06 +02:00
Thomas Waldmann b25caafc94
vagrant: remove buster VM
It's already outdated now and its libxxhash
does not support pkg-config discovery.
2024-04-01 20:32:24 +02:00
Thomas Waldmann ffc1e3ef6f
vagrant: use pyinstaller 6.5.0 2024-04-01 20:28:56 +02:00
Thomas Waldmann 7ac7c79563
use python 3.11.8 for binary builds 2024-04-01 20:26:17 +02:00
Thomas Waldmann 4ff0ba48f8
vagrant: openindiana updates 2024-04-01 20:22:30 +02:00
TW 6de9ca87cf
Merge pull request #8149 from ThomasWaldmann/gh-actions-update-master
github CI: misc updates (master)
2024-03-15 19:06:09 +01:00
Thomas Waldmann 670cb6eb3f
github CI: misc updates
- macOS: run on macos-14 (on Apple Silicon!)
- macOS: use OpenSSL 3.0 from brew
- macOS: run with Python 3.11
- pip install -e .: add -v
- use up-to-date github actions
- remove libb2 references - since borg 1.2, we use blake2 indirectly via python stdlib
2024-03-15 18:19:15 +01:00
TW b82bf4a232
Merge pull request #8136 from ThomasWaldmann/msgpack-cython-updates-master
msgpack and cython updates (master)
2024-03-02 15:15:41 +01:00
Thomas Waldmann 03e964271e
require Cython 3.0.3 at least, fixes #8133
The fix for the Python 3.12 memory leak issue was
in Cython 3.0.3+.
2024-03-02 14:28:36 +01:00
Thomas Waldmann a507a2cb3b
allow msgpack 1.0.8, fixes #8133 2024-03-02 14:27:07 +01:00
TW c9c5b4db85
Merge pull request #8128 from ThomasWaldmann/ebusy-master
create: deal with EBUSY, fixes #8123
2024-02-25 13:25:45 +01:00
Thomas Waldmann eb79b1f13f
create: deal with EBUSY, fixes #8123
I put it into same class as EPERM and EACCES:
BackupPermissionError: borg is not permitted to access the file.
2024-02-25 12:17:09 +01:00
TW db75521b79
Merge pull request #8129 from ThomasWaldmann/docs-fix-markup
docs: remove tabs
2024-02-25 12:16:28 +01:00
Thomas Waldmann 6121d3d2e6
docs: remove tabs 2024-02-25 12:14:52 +01:00
TW e40690f6d7
Merge pull request #8124 from stephan13360/master
add non-root deployment strategy
2024-02-25 00:27:22 +01:00
Stephan Herbers 274cd8f121 add restore considerations paragraph 2024-02-24 21:17:22 +01:00
Stephan Herbers 96ae9f73eb Apply suggestions from code review
Co-authored-by: NetSysFire <59517351+NetSysFire@users.noreply.github.com>
2024-02-24 21:17:09 +01:00
Stephan Herbers a06c42cf1f add non-root deployment strategy 2024-02-24 21:17:01 +01:00
TW 7074c0220b
Merge pull request #8119 from ThomasWaldmann/benchmark-crud-options-master
benchmark: inherit options --rsh --remote-path, fixes #8099
2024-02-22 23:29:33 +01:00
Thomas Waldmann da285b15d2
benchmark: inherit options --rsh --remote-path, fixes #8099 2024-02-22 21:48:13 +01:00
TW 6be1035d8b
Merge pull request #8115 from ThomasWaldmann/new-rc-fixes-master
return value fixes (master)
2024-02-21 23:39:43 +01:00
Thomas Waldmann a13b5d1b79
benchmark: fix return value, fixes #8113 2024-02-21 13:20:55 +01:00
TW 334bfcda04
Merge pull request #8111 from ThomasWaldmann/rel200b8
release 2.0.0b8
2024-02-21 01:58:01 +01:00
Thomas Waldmann b04dcf4cbd
libacl: work with older versions, too
this was recently set to a relatively high minimum version when
locating it via pkgconfig was added. this broke the binary builds
on buster and bullseye.

i don't think borg requires a specific libacl version as long as
the api is compatible, so i now set this to 2.2.47 (from 2008).
2024-02-20 21:40:43 +01:00
Thomas Waldmann b69c937cb7
build_man 2024-02-20 17:12:43 +01:00