diff options
author | Simon Glass <sjg@chromium.org> | 2022-09-17 09:01:19 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2022-09-21 10:37:47 +0200 |
commit | d64af08f19132c85422b442657920f4024b5caf7 (patch) | |
tree | 7be6ac03626f5f167850ec389e004558afff4c98 | |
parent | 13982ced2ccce0838afb6db87f05b2cd74355b56 (diff) | |
download | u-boot-d64af08f19132c85422b442657920f4024b5caf7.zip u-boot-d64af08f19132c85422b442657920f4024b5caf7.tar.gz u-boot-d64af08f19132c85422b442657920f4024b5caf7.tar.bz2 |
binman: Get futility by building it
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>
-rw-r--r-- | tools/binman/bintool.py | 10 | ||||
-rw-r--r-- | 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 032179a..a582d9d 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 75a05c2..04c9aef 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 |