[PATCH] binman: bintool: bzip2: fix version function on non-Debian-based systems

Stefan Herbrechtsmeier stefan.herbrechtsmeier-oss at weidmueller.com
Wed Aug 31 16:44:37 CEST 2022


Hi Quentin,

Am 31.08.2022 um 16:32 schrieb Quentin Schulz:
> 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

Can you please add an option to BintoolPacker class to change the 
version args like it is done for the compress args to avoid the code 
duplication.

Regards
   Stefan


More information about the U-Boot mailing list