mirror of
https://github.com/borgbackup/borg.git
synced 2024-12-26 09:47:58 +00:00
Merge pull request #4315 from ThomasWaldmann/check-msgpack-master
check msgpack version, terminate for unsupported versions
This commit is contained in:
commit
50666c3e44
4 changed files with 18 additions and 4 deletions
6
setup.py
6
setup.py
|
@ -49,8 +49,10 @@
|
|||
# if you can't satisfy the above requirement, these are versions that might
|
||||
# also work ok, IF you make sure to use the COMPILED version of msgpack-python,
|
||||
# NOT the PURE PYTHON fallback implementation: ==0.5.1, ==0.5.4
|
||||
# using any other version is not supported by borg development, feel free to
|
||||
# do it on your own risk (and after own testing).
|
||||
#
|
||||
# Please note:
|
||||
# using any other version is not supported by borg development and
|
||||
# any feedback related to issues caused by this will be ignored.
|
||||
]
|
||||
|
||||
# note for package maintainers: if you package borgbackup for distribution,
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
from .helpers import hardlinkable
|
||||
from .helpers import StableDict
|
||||
from .helpers import check_python, check_extension_modules
|
||||
from .helpers import dir_is_tagged, is_slow_msgpack, yes, sysinfo
|
||||
from .helpers import dir_is_tagged, is_slow_msgpack, is_supported_msgpack, yes, sysinfo
|
||||
from .helpers import log_multi
|
||||
from .helpers import signal_handler, raising_signal_handler, SigHup, SigTerm
|
||||
from .helpers import ErrorIgnoringTextIOWrapper
|
||||
|
@ -4187,6 +4187,11 @@ def run(self, args):
|
|||
if args.show_version:
|
||||
logging.getLogger('borg.output.show-version').info('borgbackup version %s' % __version__)
|
||||
self.prerun_checks(logger)
|
||||
if not is_supported_msgpack():
|
||||
logger.error("You do not have a supported version of the msgpack python package installed. Terminating.")
|
||||
logger.error("This should never happen as specific, supported versions are required by our setup.py.")
|
||||
logger.error("Do not contact borgbackup support about this.")
|
||||
return set_ec(EXIT_ERROR)
|
||||
if is_slow_msgpack():
|
||||
logger.warning("Using a pure-python msgpack! This will result in lower performance.")
|
||||
if args.debug_profile:
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
from .time import * # NOQA
|
||||
from .yes import * # NOQA
|
||||
|
||||
from .msgpack import is_slow_msgpack, int_to_bigint, bigint_to_int, get_limited_unpacker
|
||||
from .msgpack import is_slow_msgpack, is_supported_msgpack, int_to_bigint, bigint_to_int, get_limited_unpacker
|
||||
from . import msgpack
|
||||
|
||||
"""
|
||||
|
|
|
@ -169,6 +169,13 @@ def is_slow_msgpack():
|
|||
return msgpack.Packer is msgpack.fallback.Packer
|
||||
|
||||
|
||||
def is_supported_msgpack():
|
||||
# DO NOT CHANGE OR REMOVE! See also requirements and comments in setup.py.
|
||||
import msgpack
|
||||
return (0, 5, 6) <= msgpack.version <= (0, 6, 0) and \
|
||||
msgpack.version not in [(0, 5, 7), (0, 5, 8), (0, 5, 9)]
|
||||
|
||||
|
||||
def get_limited_unpacker(kind):
|
||||
"""return a limited Unpacker because we should not trust msgpack data received from remote"""
|
||||
args = dict(use_list=False, # return tuples, not lists
|
||||
|
|
Loading…
Reference in a new issue