based on a patch by felix schwarz, thanks!
changes after that:
import msgpack from borg.helpers (as master branch does)
there:
- try importing it from borg.algorithms.msgpack bundled code.
- if that does not work, try importing external msgpack.
- if it is desired to import the external msgpack without ripping
out the bundled code, set prefer_system_msgpack = True.
fix msgpack.fallback reference, fix msgpack import.
based on a patch by felix schwarz, thanks!
changes after that:
build msgpack cpp files at release time, do not use cython otherwise.
we want to include .cpp (and .c) files into the sdist, so users
installing the pypi package won't need to have cython installed.
also: python setup.py clean shall also cleanup the *.cpp and binaries
built from that.
.gitignore: ignore generated msgpack .cpp sources
setup.cfg: flake8: ignore 3rd party bundled msgpack source
if the tests use a pure-python msgpack, 1 test which is specifically
made for that, will fail. esp. for linux distribution packages, this
will still point to the problem (that the msgpack package is not built
or installed correctly).
Add "SSH Configuration" section to "borg serve" documentation, to outline ssh/sshd configuration to prevent borg serve keeping a lock on a repo in the event the ssh connection is abnormally disconnected.
In response to issues #3988, #636 and #4485 (and probably others).
Backported from master.
the check checks whether follow_symlinks=False is supported, which
requires that the glibc is recent enough / python was compiled
for a recent enough glibc. follow_symlinks=False is only used for borg
create and extract, but not needed for borg serve.
thus, this makes it possible to run "borg serve" even on a bit older
servers. be careful, due to the presence of this check on the server
side until now, older server systems are not really much tested.
i.e. prefix the keys with the namespace, so it is ns.key like on
linux.
still only dealing with the "user" namespace, like before.
in the "system" namespaces there are ACLs (we deal with them via the acl
api, so no problem) and stuff from pnfsd (not sure what exactly).
this change is needed because FreeBSD's FUSE code expects the xattr
keys to be in that format.
it is also needed for cross-platform data exchange, so e.g. if one wants to:
- create archive on linux, extract on freebsd - with "user.xxx" xattrs.
- or vice versa.
archives made with older borg versions on freebsd will still extract correctly
on freebsd (not on linux though) even though they do not have the
namespace prefixes in the archived metadata (it will be interpreted in
same way as if they were prefixed by "user." as we do not support any
other namespace anyway).
(cherry picked from commit 0686237484)