refactor: make a generally usable function
fix: remove support code for ancient pyinstaller
the "else" branch was needed for pyinstaller < 20160820 because it did
not have the LD_LIBRARY_PATH_ORIG env var, so we just killed LDLP
because we had no better way.
but with borg tests running under fakeroot, this is troublesome as
fakeroot uses this also and can't find its library without it.
so, just remove it, we do not need to support old pyinstaller.
(cherry picked from commit ba941b0801)
the client_supports_log_v3 flag was added to differentiate 1.1.0 beta3
to beta5 clients (which did not support parsing json log format from
server) from >= 1.1.0beta6 clients (which support it).
for clients older than 1.1.0b3, no json log format will be negotiated
anyway.
by removing the client_supports_log_v3 flag support, we drop support for
clients using 1.1.0beta3..5.
thus, a client is now expected to either support old log format (like
borg 1.0.x) or new json format (like borg 1.1.0 >= beta6).
client server comment
===========================================
any 0.29+ uses $LOG plain remote log format
any 1.0.x uses $LOG plain remote log format
1.0.x 1.1.0 uses $LOG plain remote log format
1.1.0b1/b2 1.1.0 (uses $LOG plain remote log format)
1.1.0b3-b5 1.1.0 (malfunction)
1.1.0b6 1.1.0 (uses json remote log format)
1.1.0rc 1.1.0 uses json remote log format
1.1.x 1.1.0 uses json remote log format
(beta testing is over and betas are unsupported now)
Note: client_supports_log_v3 flag was added in changeset
18a2902c9c
(cherry picked from commit 54c5049fb9)
if borg stderr is not connected to a tty, but to ssh (when using
borg client/server), sys.stderr is block buffered (tty: line buffered).
thus we better flush explicitly after emitting a line as the receiving
side can not handle partial json at the end of the block.
also, it might solve some delays, when output didn't arrive at
receiving side in time.
(cherry picked from commit 2b75b278da)
since mount is not always available and if it works for all the other
commands, then it is likely it works for mount as well.
(cherry picked from commit a6be34f8f7)
When opening a repository, always try to read the magic number of the
latest segment and compare it to the Attic segment magic (unless the
repository is opened for upgrading). If an Attic segment is detected,
raise a dedicated exception, telling the user to upgrade the repository
first.
Fixes#1933.
(cherry picked from commit 0943b322e3)
also:
increase platform api version due to change in get_process_id behaviour.
(cherry picked from commit 6f94949a36)
(cherry picked from commit 5bad764637)
like yyyy-mm-ddThh:mm:ss - no tz yet, this likely needs more refactoring
to tz aware and utc datetime objects everywhere, currently there are
naive datetime objects and also localtime at quite some places.
(cherry picked from commit 32174dd9c8)
like yyyy-mm-ddThh:mm:ss - no tz yet, this likely needs more refactoring
to tz aware and utc datetime objects everywhere, currently there are
naive datetime objects and also localtime at quite some places.
(cherry picked from commit b64561fe6f)
like yyyy-mm-ddThh:mm:ss - no tz yet, this likely needs more refactoring
to tz aware and utc datetime objects everywhere, currently there are
naive datetime objects and also localtime at quite some places.
(cherry picked from commit 043d794b91)