mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
binman fixes for bintool support
-----BEGIN PGP SIGNATURE----- iQFFBAABCgAvFiEEslwAIq+Gp8wWVbYnfxc6PpAIreYFAmMYjgoRHHNqZ0BjaHJv bWl1bS5vcmcACgkQfxc6PpAIrea87Af9H605i3fkhZEmQUoGLgYVHnL6HTnWqVOk 1H7ysnSGkErwZKx+jQXG6dbW0Rkx4yPDYUMRkXQOdJPpgHZXlcp7FtOin3jT00Z/ M0+Se4NF4pUBqBdaNWtsSAicS+2snfbcHErI60XU2bu/E86Es+rqFstUZfd/Hcw9 HxFOf9pT8dbokg1K3hYh1tBco0NC4+iHfWheDWV9qLOQxG5LdzCWlBKkt9pegljH NHKrjMYvpU68e80I8rPIppJxyHipZgXorr9JKFLqS6cNgolbPF+cy9K10zEObno5 DCY7IuBv2BmY5ghwW2oN90gXkT0jqatSBbYBlu8oG0ioyRY2MDv6Yw== =i2Ik -----END PGP SIGNATURE----- Merge tag 'dm-pull-7sep22' of https://source.denx.de/u-boot/custodians/u-boot-dm binman fixes for bintool support
This commit is contained in:
commit
fc2f4085d3
7 changed files with 27 additions and 79 deletions
|
@ -53,9 +53,11 @@ class Bintool:
|
|||
# List of bintools to regard as missing
|
||||
missing_list = []
|
||||
|
||||
def __init__(self, name, desc):
|
||||
def __init__(self, name, desc, version_regex=None, version_args='-V'):
|
||||
self.name = name
|
||||
self.desc = desc
|
||||
self.version_regex = version_regex
|
||||
self.version_args = version_args
|
||||
|
||||
@staticmethod
|
||||
def find_bintool_class(btype):
|
||||
|
@ -464,17 +466,28 @@ binaries. It is fairly easy to create new bintools. Just add a new file to the
|
|||
print(f"No method to fetch bintool '{self.name}'")
|
||||
return False
|
||||
|
||||
# pylint: disable=R0201
|
||||
def version(self):
|
||||
"""Version handler for a bintool
|
||||
|
||||
This should be implemented by the base class
|
||||
|
||||
Returns:
|
||||
str: Version string for this bintool
|
||||
"""
|
||||
if self.version_regex is None:
|
||||
return 'unknown'
|
||||
|
||||
import re
|
||||
|
||||
result = self.run_cmd_result(self.version_args)
|
||||
out = result.stdout.strip()
|
||||
if not out:
|
||||
out = result.stderr.strip()
|
||||
if not out:
|
||||
return 'unknown'
|
||||
|
||||
m_version = re.search(self.version_regex, out)
|
||||
return m_version.group(1) if m_version else out
|
||||
|
||||
|
||||
class BintoolPacker(Bintool):
|
||||
"""Tool which compression / decompression entry contents
|
||||
|
||||
|
@ -495,9 +508,9 @@ class BintoolPacker(Bintool):
|
|||
"""
|
||||
def __init__(self, name, compression=None, compress_args=None,
|
||||
decompress_args=None, fetch_package=None,
|
||||
version_regex=r'(v[0-9.]+)'):
|
||||
version_regex=r'(v[0-9.]+)', version_args='-V'):
|
||||
desc = '%s compression' % (compression if compression else name)
|
||||
super().__init__(name, desc)
|
||||
super().__init__(name, desc, version_regex, version_args)
|
||||
if compress_args is None:
|
||||
compress_args = ['--compress']
|
||||
self.compress_args = compress_args
|
||||
|
@ -507,7 +520,6 @@ class BintoolPacker(Bintool):
|
|||
if fetch_package is None:
|
||||
fetch_package = name
|
||||
self.fetch_package = fetch_package
|
||||
self.version_regex = version_regex
|
||||
|
||||
def compress(self, indata):
|
||||
"""Compress data
|
||||
|
@ -557,21 +569,3 @@ class BintoolPacker(Bintool):
|
|||
if method != FETCH_BIN:
|
||||
return None
|
||||
return self.apt_install(self.fetch_package)
|
||||
|
||||
def version(self):
|
||||
"""Version handler
|
||||
|
||||
Returns:
|
||||
str: Version number
|
||||
"""
|
||||
import re
|
||||
|
||||
result = self.run_cmd_result('-V')
|
||||
out = result.stdout.strip()
|
||||
if not out:
|
||||
out = result.stderr.strip()
|
||||
if not out:
|
||||
return super().version()
|
||||
|
||||
m_version = re.search(self.version_regex, out)
|
||||
return m_version.group(1) if m_version else out
|
||||
|
|
|
@ -27,5 +27,5 @@ class Bintoolbtool_gzip(bintool.BintoolPacker):
|
|||
man gzip
|
||||
"""
|
||||
def __init__(self, name):
|
||||
super().__init__(name, compress_args=[],
|
||||
super().__init__("gzip", compress_args=[],
|
||||
version_regex=r'gzip ([0-9.]+)')
|
||||
|
|
|
@ -27,4 +27,4 @@ class Bintoolbzip2(bintool.BintoolPacker):
|
|||
man bzip2
|
||||
"""
|
||||
def __init__(self, name):
|
||||
super().__init__(name, version_regex=r'bzip2.*Version ([0-9.]+)')
|
||||
super().__init__(name, version_regex=r'bzip2.*Version ([0-9.]+)', version_args='--help')
|
||||
|
|
|
@ -49,7 +49,7 @@ class Bintoolfiptool(bintool.Bintool):
|
|||
https://trustedfirmware-a.readthedocs.io/en/latest/getting_started/tools-build.html?highlight=fiptool#building-and-using-the-fip-tool
|
||||
"""
|
||||
def __init__(self, name):
|
||||
super().__init__(name, 'Manipulate ATF FIP files')
|
||||
super().__init__(name, 'Manipulate ATF FIP files', r'^(.*)$', 'version')
|
||||
|
||||
def info(self, fname):
|
||||
"""Get info on a FIP image
|
||||
|
@ -112,12 +112,3 @@ class Bintoolfiptool(bintool.Bintool):
|
|||
'fiptool',
|
||||
'tools/fiptool/fiptool')
|
||||
return result
|
||||
|
||||
def version(self):
|
||||
"""Version handler for fiptool
|
||||
|
||||
Returns:
|
||||
str: Version number of fiptool
|
||||
"""
|
||||
out = self.run_cmd('version').strip()
|
||||
return out or super().version()
|
||||
|
|
|
@ -69,7 +69,7 @@ class Bintoolfutility(bintool.Bintool):
|
|||
https://chromium.googlesource.com/chromiumos/platform/vboot/+/refs/heads/main/_vboot_reference/README
|
||||
"""
|
||||
def __init__(self, name):
|
||||
super().__init__(name, 'Chromium OS firmware utility')
|
||||
super().__init__(name, 'Chromium OS firmware utility', r'^(.*)$', 'version')
|
||||
|
||||
def gbb_create(self, fname, sizes):
|
||||
"""Create a new Google Binary Block
|
||||
|
@ -165,14 +165,3 @@ class Bintoolfutility(bintool.Bintool):
|
|||
fname, tmpdir = self.fetch_from_drive(
|
||||
'1hdsInzsE4aJbmBeJ663kYgjOQyW1I-E0')
|
||||
return fname, tmpdir
|
||||
|
||||
def version(self):
|
||||
"""Version handler for futility
|
||||
|
||||
Returns:
|
||||
str: Version string for futility
|
||||
"""
|
||||
out = self.run_cmd('version').strip()
|
||||
if not out:
|
||||
return super().version()
|
||||
return out
|
||||
|
|
|
@ -76,7 +76,7 @@ class Bintoollz4(bintool.Bintool):
|
|||
man lz4
|
||||
"""
|
||||
def __init__(self, name):
|
||||
super().__init__(name, 'lz4 compression')
|
||||
super().__init__(name, 'lz4 compression', r'.* (v[0-9.]*),.*')
|
||||
|
||||
def compress(self, indata):
|
||||
"""Compress data with lz4
|
||||
|
@ -126,15 +126,3 @@ class Bintoollz4(bintool.Bintool):
|
|||
if method != bintool.FETCH_BIN:
|
||||
return None
|
||||
return self.apt_install('lz4')
|
||||
|
||||
def version(self):
|
||||
"""Version handler
|
||||
|
||||
Returns:
|
||||
str: Version number of lz4
|
||||
"""
|
||||
out = self.run_cmd('-V').strip()
|
||||
if not out:
|
||||
return super().version()
|
||||
m_version = re.match(r'.* (v[0-9.]*),.*', out)
|
||||
return m_version.group(1) if m_version else out
|
||||
|
|
|
@ -18,11 +18,11 @@ class Bintoolmkimage(bintool.Bintool):
|
|||
Support is provided for fetching this on Debian-like systems, using apt.
|
||||
"""
|
||||
def __init__(self, name):
|
||||
super().__init__(name, 'Generate image for U-Boot')
|
||||
super().__init__(name, 'Generate image for U-Boot', r'mkimage version (.*)')
|
||||
|
||||
# pylint: disable=R0913
|
||||
def run(self, reset_timestamp=False, output_fname=None, external=False,
|
||||
pad=None, version=False):
|
||||
pad=None):
|
||||
"""Run mkimage
|
||||
|
||||
Args:
|
||||
|
@ -44,8 +44,6 @@ class Bintoolmkimage(bintool.Bintool):
|
|||
args.append('-t')
|
||||
if output_fname:
|
||||
args += ['-F', output_fname]
|
||||
if version:
|
||||
args.append('-V')
|
||||
return self.run_cmd(*args)
|
||||
|
||||
def fetch(self, method):
|
||||
|
@ -66,15 +64,3 @@ class Bintoolmkimage(bintool.Bintool):
|
|||
if method != bintool.FETCH_BIN:
|
||||
return None
|
||||
return self.apt_install('u-boot-tools')
|
||||
|
||||
def version(self):
|
||||
"""Version handler for mkimage
|
||||
|
||||
Returns:
|
||||
str: Version string for mkimage
|
||||
"""
|
||||
out = self.run(version=True).strip()
|
||||
if not out:
|
||||
return super().version()
|
||||
m_version = re.match(r'mkimage version (.*)', out)
|
||||
return m_version.group(1) if m_version else out
|
||||
|
|
Loading…
Reference in a new issue