binman: Add bzip2 bintool
Add bzip2 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>
This commit is contained in:
		
							parent
							
								
									867eed1284
								
							
						
					
					
						commit
						45aa279800
					
				|  | @ -0,0 +1,30 @@ | ||||||
|  | # SPDX-License-Identifier: GPL-2.0+ | ||||||
|  | # Copyright (C) 2022 Weidmüller Interface GmbH & Co. KG | ||||||
|  | # Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> | ||||||
|  | # | ||||||
|  | """Bintool implementation for bzip2 | ||||||
|  | 
 | ||||||
|  | bzip2 allows compression and decompression of files. | ||||||
|  | 
 | ||||||
|  | Documentation is available via:: | ||||||
|  | 
 | ||||||
|  |    man bzip2 | ||||||
|  | """ | ||||||
|  | 
 | ||||||
|  | from binman import bintool | ||||||
|  | 
 | ||||||
|  | # pylint: disable=C0103 | ||||||
|  | class Bintoolbzip2(bintool.BintoolPacker): | ||||||
|  |     """Compression/decompression using the bzip2 algorithm | ||||||
|  | 
 | ||||||
|  |     This bintool supports running `bzip2` 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 bzip2 | ||||||
|  |     """ | ||||||
|  |     def __init__(self, name): | ||||||
|  |         super().__init__(name, version_regex=r'bzip2.*Version ([0-9.]+)') | ||||||
|  | @ -1191,7 +1191,7 @@ features to produce new behaviours. | ||||||
|         """ |         """ | ||||||
|         algo = self.compress |         algo = self.compress | ||||||
|         if algo != 'none': |         if algo != 'none': | ||||||
|             algos = ['lz4', 'lzma'] |             algos = ['bzip2', 'lz4', 'lzma'] | ||||||
|             if algo not in algos: |             if algo not in algos: | ||||||
|                 raise ValueError("Unknown algorithm '%s'" % algo) |                 raise ValueError("Unknown algorithm '%s'" % algo) | ||||||
|             names = {'lzma': 'lzma_alone'} |             names = {'lzma': 'lzma_alone'} | ||||||
|  |  | ||||||
|  | @ -107,7 +107,7 @@ BASE_DTB_PROPS = ['offset', 'size', 'image-pos'] | ||||||
| REPACK_DTB_PROPS = ['orig-offset', 'orig-size'] | REPACK_DTB_PROPS = ['orig-offset', 'orig-size'] | ||||||
| 
 | 
 | ||||||
| # Supported compression bintools | # Supported compression bintools | ||||||
| COMP_BINTOOLS = ['lz4', 'lzma_alone'] | COMP_BINTOOLS = ['bzip2', 'lz4', 'lzma_alone'] | ||||||
| 
 | 
 | ||||||
| class TestFunctional(unittest.TestCase): | class TestFunctional(unittest.TestCase): | ||||||
|     """Functional tests for binman |     """Functional tests for binman | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue