
Hi custodians,
On Sun, 9 Jan 2022 at 20:14, Simon Glass sjg@chromium.org wrote:
At present binman uses binary tools (like cbfstool, futiltiy, lz4) in an ad-hoc manner. Various parts of binman use tools.Run() to run tools as needed. If a tool is missing, an error is produced and binman stops.
However this is not ideal. CI systems want to be able to complete the build, even if tools are missing. Ideally binman would deal with missing binary tools the same way it deals with missing binary blobs: make a note of it and move on.
This series introduces this feature to binman.
`Bintool` is the name binman gives to a binary tool which it uses to create and manipulate binaries that binman cannot handle itself.
Binman provides various features to manage bintools:
- Determining whether the tool is currently installed
- Downloading or building the tool
- Determining the version of the tool that is installed
- Deciding which tools are needed to build an image
As with external blobs, bintools (which are like 'external' tools) can be missing. When building an image requires a bintool and it is not installed, binman detects this and reports the problem, but continues to build an image.
Of course the image will not work, but binman reports which bintools are needed and also provide a way to fetch them.
The final patch shows how this works in practice with a chosen board. The Odroid-C2 is quite a complicated image with many steps. It is an ideal example for how Binman can be used.
The series is available at u-boot-dm/bin-working
Changes in v2:
- Substantial rewrite, introducing the concept of bintools
I'm just wondering if people have had a chance to look at this and might have feedback?
Also, I am wondering about adding the ability to download binary blobs where they are missing.
Regards, Simon
Regards, Simon