[PATCH] binman: Get futility by building it
Simon Glass
sjg at chromium.org
Sat Sep 10 00:05:26 CEST 2022
A binary download is not great, since it depends on libraries being
present in the system. Build futility from source instead.
Note that this requires two patches to the source repo which are in
progress:
https://issuetracker.google.com/issues/245993083?pli=1
Signed-off-by: Simon Glass <sjg at chromium.org>
---
tools/binman/bintool.py | 10 +++++++---
tools/binman/btool/futility.py | 9 ++++++---
2 files changed, 13 insertions(+), 6 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..f88139a0ab5 100644
--- a/tools/binman/btool/futility.py
+++ b/tools/binman/btool/futility.py
@@ -160,8 +160,11 @@ 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')
+ result = self.build_from_git(
+ 'https://chromium.googlesource.com/a/chromiumos/platform/vboot_reference',
+ 'all',
+ 'build/futility/futility',
+ ['USE_FLASHROM=0'])
return fname, tmpdir
--
2.37.2.789.g6183377224-goog
More information about the U-Boot
mailing list