[PATCH v4 1/2] binman: bintool: remove btool_ prefix from btool names

Simon Glass sjg at chromium.org
Tue Nov 8 00:35:50 CET 2022


On Mon, 7 Nov 2022 at 05:56, Quentin Schulz <foss+uboot at 0leil.net> wrote:
>
> From: Quentin Schulz <quentin.schulz at theobroma-systems.com>
>
> The binary is looked on the system by the suffix of the packer class.
> This means binman was looking for btool_gzip on the system and not gzip.
>
> Since a btool can have its btool_ prefix missing but its module and
> binary presence on the system appropriately found, there's no need to
> actually keep this prefix after listing all possible btools, so let's
> remove it.
>
> This fixes gzip btool by letting Bintool.find_bintool_class handle the
> missing prefix and still return the correct class which is then init
> with gzip name instead of btool_gzip.
>
> Additionally, there was an issue with the cached module global variable.
> The variable only stores the module and not the associated class name
> when calling find_bintool_class.
> This means that when caching the module on the first call to
> find_bintool_class, class_name would be set to Bintoolbtool_gzip but the
> module_name gzip only, adding the module in the gzip key in the module
> dictionary. When hitting the cache on next calls, the gzip key would be
> found, so its value (the module) is used. However the default class_name
> (Bintoolgzip) is used, failing the getattr call.
>
> Instead, let's enforce the same class name: Bintool<packer>, whatever
> the filename it is contained in.
>
> Cc: Quentin Schulz <foss+uboot at 0leil.net>
> Signed-off-by: Quentin Schulz <quentin.schulz at theobroma-systems.com>
> ---
>  tools/binman/bintool.py          | 3 ++-
>  tools/binman/btool/btool_gzip.py | 2 +-
>  2 files changed, 3 insertions(+), 2 deletions(-)

Reviewed-by: Simon Glass <sjg at chromium.org>


More information about the U-Boot mailing list