From: Stefan Herbrechtsmeier <stefan.herbrechtsme...@weidmueller.com>
Add lzop bintool to binman to support on-the-fly compression. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsme...@weidmueller.com> --- (no changes since v5) Changes in v5: - Add algorithm name to entry.py - Add tool name to entry.py and ftest.py Changes in v2: - Add commit to add lzop bintool tools/binman/btool/lzop.py | 30 ++++++++++++++++++++++++++++++ tools/binman/entry.py | 4 ++-- tools/binman/ftest.py | 2 +- 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 tools/binman/btool/lzop.py diff --git a/tools/binman/btool/lzop.py b/tools/binman/btool/lzop.py new file mode 100644 index 0000000000..f6903b4db7 --- /dev/null +++ b/tools/binman/btool/lzop.py @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: GPL-2.0+ +# Copyright (C) 2022 Weidmüller Interface GmbH & Co. KG +# Stefan Herbrechtsmeier <stefan.herbrechtsme...@weidmueller.com> +# +"""Bintool implementation for lzop + +lzop allows compression and decompression of files. + +Documentation is available via:: + + man lzop +""" + +from binman import bintool + +# pylint: disable=C0103 +class Bintoollzop(bintool.BintoolPacker): + """Compression/decompression using the lzop algorithm + + This bintool supports running `lzop` to compress and decompress data, as + used by binman. + + It is also possible to fetch the tool, which uses `apt` to install it. + + Documentation is available via:: + + man lzop + """ + def __init__(self, name): + super().__init__(name, 'lzo', compress_args=[]) diff --git a/tools/binman/entry.py b/tools/binman/entry.py index 930c7910d2..0a410971d8 100644 --- a/tools/binman/entry.py +++ b/tools/binman/entry.py @@ -1157,10 +1157,10 @@ features to produce new behaviours. """ algo = self.compress if algo != 'none': - algos = ['bzip2', 'gzip', 'lz4', 'lzma'] + algos = ['bzip2', 'gzip', 'lz4', 'lzma', 'lzo'] if algo not in algos: raise ValueError("Unknown algorithm '%s'" % algo) - names = {'lzma': 'lzma_alone'} + names = {'lzma': 'lzma_alone', 'lzo': 'lzop'} name = names.get(self.compress, self.compress) self.comp_bintool = self.AddBintool(btools, name) diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py index 911c955cba..2cac505d8b 100644 --- a/tools/binman/ftest.py +++ b/tools/binman/ftest.py @@ -107,7 +107,7 @@ BASE_DTB_PROPS = ['offset', 'size', 'image-pos'] REPACK_DTB_PROPS = ['orig-offset', 'orig-size'] # Supported compression bintools -COMP_BINTOOLS = ['bzip2', 'gzip', 'lz4', 'lzma_alone'] +COMP_BINTOOLS = ['bzip2', 'gzip', 'lz4', 'lzma_alone', 'lzop'] class TestFunctional(unittest.TestCase): """Functional tests for binman -- 2.30.2