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
|
# 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,
|
# 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
|
# 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,
|
# note for package maintainers: if you package borgbackup for distribution,
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
from .helpers import hardlinkable
|
from .helpers import hardlinkable
|
||||||
from .helpers import StableDict
|
from .helpers import StableDict
|
||||||
from .helpers import check_python, check_extension_modules
|
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 log_multi
|
||||||
from .helpers import signal_handler, raising_signal_handler, SigHup, SigTerm
|
from .helpers import signal_handler, raising_signal_handler, SigHup, SigTerm
|
||||||
from .helpers import ErrorIgnoringTextIOWrapper
|
from .helpers import ErrorIgnoringTextIOWrapper
|
||||||
|
@ -4187,6 +4187,11 @@ def run(self, args):
|
||||||
if args.show_version:
|
if args.show_version:
|
||||||
logging.getLogger('borg.output.show-version').info('borgbackup version %s' % __version__)
|
logging.getLogger('borg.output.show-version').info('borgbackup version %s' % __version__)
|
||||||
self.prerun_checks(logger)
|
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():
|
if is_slow_msgpack():
|
||||||
logger.warning("Using a pure-python msgpack! This will result in lower performance.")
|
logger.warning("Using a pure-python msgpack! This will result in lower performance.")
|
||||||
if args.debug_profile:
|
if args.debug_profile:
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
from .time import * # NOQA
|
from .time import * # NOQA
|
||||||
from .yes 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
|
from . import msgpack
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -169,6 +169,13 @@ def is_slow_msgpack():
|
||||||
return msgpack.Packer is msgpack.fallback.Packer
|
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):
|
def get_limited_unpacker(kind):
|
||||||
"""return a limited Unpacker because we should not trust msgpack data received from remote"""
|
"""return a limited Unpacker because we should not trust msgpack data received from remote"""
|
||||||
args = dict(use_list=False, # return tuples, not lists
|
args = dict(use_list=False, # return tuples, not lists
|
||||||
|
|
Loading…
Reference in a new issue