diff --git a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-staging_2025.01.bb b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-staging_2025.01.bb index 08bba71b..6fef7e91 100644 --- a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-staging_2025.01.bb +++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-staging_2025.01.bb @@ -5,3 +5,5 @@ PR = "r0" BRANCH = "ti-u-boot-2025.01" SRCREV_uboot = "ef2eb76b650415637bd93b0eddfb1e31489117f9" + +SRC_URI += "file://0001-binman-migrate-form-pkg_resources-to-importlib.patch" diff --git a/meta-ti-bsp/recipes-bsp/u-boot/u-boot/0001-binman-migrate-form-pkg_resources-to-importlib.patch b/meta-ti-bsp/recipes-bsp/u-boot/u-boot/0001-binman-migrate-form-pkg_resources-to-importlib.patch new file mode 100644 index 00000000..854eb6df --- /dev/null +++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot/0001-binman-migrate-form-pkg_resources-to-importlib.patch @@ -0,0 +1,73 @@ +From 538719cb6a77934d069e0e64f264457a59a9ebfc Mon Sep 17 00:00:00 2001 +From: Yannic Moog +Date: Tue, 1 Jul 2025 07:45:37 +0200 +Subject: [PATCH] binman: migrate from pkg_resources to importlib + +pkg_resources is deprecated, use migration guide in [1] to migrate to +importlib.resources. +Keep the Python 3.6 backwards compatibility. +This also fixes the binman version test which failed for setuptools +versions that print the deprecation warning. +Change from __name__ to __package__ as with the transition from +pkg_resources to importlib_resources using __name__ results in +TypeErrors [2]. + +[1] https://importlib-resources.readthedocs.io/en/latest/migration.html +[2] https://github.com/python/importlib_resources/issues/60 + +Reviewed-by: Bryan Brattlof +Signed-off-by: Yannic Moog + +Upstream-Status: Backport +--- + tools/binman/control.py | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/tools/binman/control.py b/tools/binman/control.py +index af447d792a7f..1307222591de 100644 +--- a/tools/binman/control.py ++++ b/tools/binman/control.py +@@ -8,12 +8,11 @@ + from collections import OrderedDict + import glob + try: +- import importlib.resources ++ import importlib.resources as importlib_resources + except ImportError: # pragma: no cover + # for Python 3.6 + import importlib_resources + import os +-import pkg_resources + import re + + import sys +@@ -96,7 +95,7 @@ def _FinishTag(tag, msg, result): + msg = '' + return tag, msg + +- my_data = pkg_resources.resource_string(__name__, 'missing-blob-help') ++ my_data = importlib_resources.files(__package__).joinpath('missing-blob-help').read_bytes() + re_tag = re.compile('^([-a-z0-9]+):$') + result = {} + tag = None +@@ -151,8 +150,9 @@ def GetEntryModules(include_testing=True): + Returns: + Set of paths to entry class filenames + """ +- glob_list = pkg_resources.resource_listdir(__name__, 'etype') +- glob_list = [fname for fname in glob_list if fname.endswith('.py')] ++ entries = importlib_resources.files(__package__).joinpath('etype') ++ glob_list = [entry.name for entry in entries.iterdir() ++ if entry.name.endswith('.py') and entry.is_file()] + return set([os.path.splitext(os.path.basename(item))[0] + for item in glob_list + if include_testing or '_testing' not in item]) +@@ -756,7 +756,7 @@ def Binman(args): + global state + + if args.full_help: +- with importlib.resources.path('binman', 'README.rst') as readme: ++ with importlib_resources.path('binman', 'README.rst') as readme: + tools.print_full_help(str(readme)) + return 0 +