]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
binman: bintool: run 'apt-get update -y' on first invocation of apt_install()
authorJerome Forissier <jerome.forissier@linaro.org>
Thu, 24 Jul 2025 09:12:41 +0000 (11:12 +0200)
committerTom Rini <trini@konsulko.com>
Tue, 29 Jul 2025 23:00:07 +0000 (17:00 -0600)
'apt-get update -y' may be required to make sure that the list of
packages is up-to-date and that the subsequent 'apt-get install'
operations can find the requested packages.

Fixes the following CI error:

 Fetch: zstd
 - trying method: binary download
 - sudo apt-get install -y zstd
 Exception: Error 100 running 'sudo apt-get install -y zstd': E: Unable to locate package zstd

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Bryan Brattlof <bb@ti.com>
tools/binman/bintool.py

index f46bb52a7b33331eb3bb661ceef6ca26452909a1..9c76c8881a464f5ba59cda3070d29778bbf88fb8 100644 (file)
@@ -55,6 +55,9 @@ class Bintool:
     # must be called before this class is used.
     tooldir = ''
 
+    # Flag to run 'apt-get update -y' once on first use of apt_install()
+    apt_updated = False
+
     def __init__(self, name, desc, version_regex=None, version_args='-V'):
         self.name = name
         self.desc = desc
@@ -421,6 +424,11 @@ class Bintool:
         Returns:
             True, assuming it completes without error
         """
+        if not cls.apt_updated:
+            args = ['sudo', 'apt-get', 'update', '-y']
+            print('- %s' % ' '.join(args))
+            tools.run(*args)
+            cls.apt_updated = True
         args = ['sudo', 'apt-get', 'install', '-y', package]
         print('- %s' % ' '.join(args))
         tools.run(*args)