mirror of
https://github.com/borgbackup/borg.git
synced 2025-02-01 12:09:10 +00:00
macOS: fix mtime timestamp extraction if ResourceFork xattr is present, fixes #7234
setting the timestamps after xattrs helps for correct mtime, but atime is still broken in this case.
This commit is contained in:
parent
6a27c6b763
commit
5d8801e72c
1 changed files with 9 additions and 8 deletions
|
@ -951,6 +951,15 @@ def restore_attrs(self, path, item, symlink=False, fd=None):
|
|||
except NotImplementedError:
|
||||
if not symlink:
|
||||
os.chmod(path, item.mode)
|
||||
if not self.noacls:
|
||||
acl_set(path, item, self.numeric_ids, fd=fd)
|
||||
if not self.noxattrs and "xattrs" in item:
|
||||
# chown removes Linux capabilities, so set the extended attributes at the end, after chown, since they include
|
||||
# the Linux capabilities in the "security.capability" attribute.
|
||||
warning = xattr.set_all(fd or path, item.xattrs, follow_symlinks=False)
|
||||
if warning:
|
||||
set_ec(EXIT_WARNING)
|
||||
# set timestamps rather late
|
||||
mtime = item.mtime
|
||||
atime = item.atime if "atime" in item else mtime
|
||||
if "birthtime" in item:
|
||||
|
@ -973,14 +982,6 @@ def restore_attrs(self, path, item, symlink=False, fd=None):
|
|||
except OSError:
|
||||
# some systems don't support calling utime on a symlink
|
||||
pass
|
||||
if not self.noacls:
|
||||
acl_set(path, item, self.numeric_ids, fd=fd)
|
||||
if not self.noxattrs and "xattrs" in item:
|
||||
# chown removes Linux capabilities, so set the extended attributes at the end, after chown, since they include
|
||||
# the Linux capabilities in the "security.capability" attribute.
|
||||
warning = xattr.set_all(fd or path, item.xattrs, follow_symlinks=False)
|
||||
if warning:
|
||||
set_ec(EXIT_WARNING)
|
||||
# bsdflags include the immutable flag and need to be set last:
|
||||
if not self.noflags and "bsdflags" in item:
|
||||
try:
|
||||
|
|
Loading…
Reference in a new issue