]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
binman: Get futility by building it
authorSimon Glass <sjg@chromium.org>
Sat, 17 Sep 2022 15:01:19 +0000 (09:01 -0600)
committerSimon Glass <sjg@chromium.org>
Wed, 21 Sep 2022 08:37:47 +0000 (10:37 +0200)
A binary download is not great, since it depends on libraries being
present in the system. Build futility from source instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
tools/binman/bintool.py
tools/binman/btool/futility.py

index 032179a99de3f0331ceac0dcf5a60d98fa516314..a582d9d3446964f44d89ea53ab690e5f9f4adf99 100644 (file)
@@ -319,7 +319,7 @@ class Bintool:
             return result.stdout
 
     @classmethod
-    def build_from_git(cls, git_repo, make_target, bintool_path):
+    def build_from_git(cls, git_repo, make_target, bintool_path, flags=None):
         """Build a bintool from a git repo
 
         This clones the repo in a temporary directory, builds it with 'make',
@@ -330,6 +330,7 @@ class Bintool:
             make_target (str): Target to pass to 'make' to build the tool
             bintool_path (str): Relative path of the tool in the repo, after
                 build is complete
+            flags (list of str): Flags or variables to pass to make, or None
 
         Returns:
             tuple:
@@ -341,8 +342,11 @@ class Bintool:
         print(f"- clone git repo '{git_repo}' to '{tmpdir}'")
         tools.run('git', 'clone', '--depth', '1', git_repo, tmpdir)
         print(f"- build target '{make_target}'")
-        tools.run('make', '-C', tmpdir, '-j', f'{multiprocessing.cpu_count()}',
-                  make_target)
+        cmd = ['make', '-C', tmpdir, '-j', f'{multiprocessing.cpu_count()}',
+               make_target]
+        if flags:
+            cmd += flags
+        tools.run(*cmd)
         fname = os.path.join(tmpdir, bintool_path)
         if not os.path.exists(fname):
             print(f"- File '{fname}' was not produced")
index 75a05c2ac66bd78508e82fb3ae6d92f3d9029f46..04c9aefe9b4079889b6b88ec9eb2888e7aeaa3b9 100644 (file)
@@ -160,8 +160,17 @@ class Bintoolfutility(bintool.Bintool):
         Raises:
             Valuerror: Fetching could not be completed
         """
-        if method != bintool.FETCH_BIN:
+        if method != bintool.FETCH_BUILD:
             return None
-        fname, tmpdir = self.fetch_from_drive(
-            '1hdsInzsE4aJbmBeJ663kYgjOQyW1I-E0')
-        return fname, tmpdir
+
+        # The Chromium OS repo is here:
+        # https://chromium.googlesource.com/chromiumos/platform/vboot_reference/
+        #
+        # Unfortunately this requires logging in and obtaining a line for the
+        # .gitcookies file. So use a mirror instead.
+        result = self.build_from_git(
+            'https://github.com/sjg20/vboot_reference.git',
+            'all',
+            'build/futility/futility',
+            flags=['USE_FLASHROM=0'])
+        return result