[PATCH v3] binman: Get futility by building it
Simon Glass
sjg at chromium.org
Sat Sep 17 17:01:19 CEST 2022
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 at chromium.org>
---
Changes in v3:
- Drop the branch, just use master instead
- Explain why we are using a mirror
- Drop mention of upstream patches as they are applied
Changes in v2:
- Pull from github instead, to avoid needing to login / gitcookies
tools/binman/bintool.py | 10 +++++++---
tools/binman/btool/futility.py | 17 +++++++++++++----
2 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/tools/binman/bintool.py b/tools/binman/bintool.py
index 032179a99de..a582d9d3446 100644
--- a/tools/binman/bintool.py
+++ b/tools/binman/bintool.py
@@ -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")
diff --git a/tools/binman/btool/futility.py b/tools/binman/btool/futility.py
index 75a05c2ac66..04c9aefe9b4 100644
--- a/tools/binman/btool/futility.py
+++ b/tools/binman/btool/futility.py
@@ -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
--
2.37.3.968.ga6b4b080e4-goog
More information about the U-Boot
mailing list