
From: Stefan Herbrechtsmeier stefan.herbrechtsmeier@weidmueller.com
Add xz bintool to binman to support on-the-fly compression.
Signed-off-by: Stefan Herbrechtsmeier stefan.herbrechtsmeier@weidmueller.com
---
(no changes since v3)
Changes in v3: - Rebase
Changes in v2: - Added
tools/binman/btool/xz.py | 31 +++++++++++++++++++++++++++++++ tools/binman/comp_util.py | 4 +++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 tools/binman/btool/xz.py
diff --git a/tools/binman/btool/xz.py b/tools/binman/btool/xz.py new file mode 100644 index 0000000000..e2b413d18b --- /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/comp_util.py b/tools/binman/comp_util.py index d8fdd5c7a2..8c0fe5078f 100644 --- a/tools/binman/comp_util.py +++ b/tools/binman/comp_util.py @@ -12,6 +12,7 @@ This supports the following compression algorithm: lz4 lzma lzo + xz
Note that for lzma this uses an old version of the algorithm, not that provided by xz. @@ -22,6 +23,7 @@ This requires the following tools: lz4 lzma_alone lzop + xz
It also requires an output directory to be previously set up, by calling PrepareOutputDir(). @@ -33,7 +35,7 @@ from binman import bintool from patman import tools
# Supported compression algorithms -ALGORITHMS = ['bzip2', 'gzip', 'lz4', 'lzma', 'lzo'] +ALGORITHMS = ['bzip2', 'gzip', 'lz4', 'lzma', 'lzo', 'xz']
bintools = {}