[PATCH] binman: bintool: bzip2: fix version function on non-Debian-based systems
Quentin Schulz
foss+uboot at 0leil.net
Wed Aug 31 16:32:08 CEST 2022
From: Quentin Schulz <quentin.schulz at theobroma-systems.com>
Upstream bzip2 1.0.x actually is stuck when running bzip2 -V and
redirecting the output. This is fixed in Debian for about a decade
already in
https://git.launchpad.net/ubuntu/+source/bzip2/tree/debian/patches/20-legacy.patch?h=ubuntu/jammy
and in bzip2 1.1.x (no release yet, see
https://gitlab.com/bzip2/bzip2/-/commit/65179284ceddc43e6388bf4ed8c2d85cf16e1b2f
).
Fedora notably does not have such a patch.
Since bzip2 --help actually prints the version number too, let's use it
instead so that binman works fine on (hopefully) all distributions.
Fixes: 45aa2798008c ("binman: Add bzip2 bintool")
Signed-off-by: Quentin Schulz <quentin.schulz at theobroma-systems.com>
---
tools/binman/btool/bzip2.py | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/tools/binman/btool/bzip2.py b/tools/binman/btool/bzip2.py
index 9be87a621f..b375140da1 100644
--- a/tools/binman/btool/bzip2.py
+++ b/tools/binman/btool/bzip2.py
@@ -28,3 +28,21 @@ class Bintoolbzip2(bintool.BintoolPacker):
"""
def __init__(self, name):
super().__init__(name, version_regex=r'bzip2.*Version ([0-9.]+)')
+
+ def version(self):
+ """Version handler
+
+ Returns:
+ str: Version number for bzip2
+ """
+ import re
+
+ result = self.run_cmd_result('--help')
+ 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
--
2.37.2
More information about the U-Boot
mailing list