diff options
author | Stefan Herbrechtsmeier | 2022-08-19 16:25:37 +0200 |
---|---|---|
committer | Simon Glass | 2022-08-20 18:07:33 -0600 |
commit | 432a825520a13a034f1becf1d0020404a705b6f7 (patch) | |
tree | 717d98ac19a3947d930a0ee79bf9c748c3cd555d /tools | |
parent | 7b26a4608c29a1dc8813b5caad32e7fe6484c58e (diff) |
binman: Add xz bintool
Add xz bintool to binman to support on-the-fly compression.
Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/binman/btool/xz.py | 31 | ||||
-rw-r--r-- | tools/binman/entry.py | 2 | ||||
-rw-r--r-- | tools/binman/ftest.py | 2 |
3 files changed, 33 insertions, 2 deletions
diff --git a/tools/binman/btool/xz.py b/tools/binman/btool/xz.py new file mode 100644 index 00000000000..e2b413d18bd --- /dev/null +++ b/tools/binman/btool/xz.py @@ -0,0 +1,31 @@ +# SPDX-License-Identifier: GPL-2.0+ +# Copyright (C) 2022 Weidmüller Interface GmbH & Co. KG +# Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> +# +"""Bintool implementation for xz + +xz allows compression and decompression of files. + +Documentation is available via:: + + man xz +""" + +from binman import bintool + +# pylint: disable=C0103 +class Bintoolxz(bintool.BintoolPacker): + """Compression/decompression using the xz algorithm + + This bintool supports running `xz` 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 xz + """ + def __init__(self, name): + super().__init__(name, fetch_package='xz-utils', + version_regex=r'xz \(XZ Utils\) ([0-9.]+)') diff --git a/tools/binman/entry.py b/tools/binman/entry.py index ea2190b23a3..770130b1aa0 100644 --- a/tools/binman/entry.py +++ b/tools/binman/entry.py @@ -1191,7 +1191,7 @@ features to produce new behaviours. """ algo = self.compress if algo != 'none': - algos = ['bzip2', 'gzip', 'lz4', 'lzma', 'lzo'] + algos = ['bzip2', 'gzip', 'lz4', 'lzma', 'lzo', 'xz'] if algo not in algos: raise ValueError("Unknown algorithm '%s'" % algo) names = {'lzma': 'lzma_alone', 'lzo': 'lzop'} diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py index 4ff871af0b6..bfca9c1355d 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', 'lzop'] +COMP_BINTOOLS = ['bzip2', 'gzip', 'lz4', 'lzma_alone', 'lzop', 'xz'] class TestFunctional(unittest.TestCase): """Functional tests for binman |