Skip to content

Rewrite eval using the modules system#78

Merged
samueldr merged 75 commits intoTow-Boot:developmentfrom
samueldr:feature/use-modules-system
Feb 5, 2022
Merged

Rewrite eval using the modules system#78
samueldr merged 75 commits intoTow-Boot:developmentfrom
samueldr:feature/use-modules-system

Conversation

@samueldr
Copy link
Contributor

@samueldr samueldr commented Jan 24, 2022

This will allow better configuring differences between boards and hardware. Additionally, making feature sets, like the phone UX, will be possible without having to inject arguments everywhere.


Notes

Most build outputs are reproducible, and verified to be equivalent.

Some will not be, because some oversights in the previous tooling were caught. Though by re-creating the oversights, the builds end up reproduced.

Only GXL boards were identified as non-reproducible, for the time being. The actual U-Boot build is reproducible, what isn't are the gxlimg manipulations.


TODO

  • Evaluate an equivalent build through the modules system.
  • Port all boards
  • Include disk image creation back
  • Produce SPI installer
  • Produce main outputs (unsuitable WIP locally)
  • Handle Raspberry Pi default output (ugh)
  • Rewrite release.nix

Can't test

  • odroid-C2
  • amlogic on shared media

Given the binaries are reproducibly the same, if something fails on amlogic, it's going to be limited to the shared media image, and not an SPI update.

These will be re-introduced once the modules system migration is
actually complete. The temporary workarounds are not ergonomic around
for those builds.
This "cheats" by re-using the exact current builder infra we're using,
but evaluating it partially through the modules system.

This allows permits us to keep boards building and do changes in more
bite-sized pieces.
Though this is all a temporary measure, really...
This will be used to "specialize" configs, mainly to change the
"variant" config only, keeping *everything else* the same for a boad
eval.
This is not entirely driven by the modules system, and could do with
more modularization, but is enough to support at least building the
Allwinner A64 equivalent builds.
This uses the new and improved™® image builder infra.
Some platforms require usage of MBR

 - amlogic
 - raspberry pi (makes it less of a paine to support)
Tested with the Pinebook (A64)
Tested with the Pinebook Pro
Untested for the time being. Only amlogic platform makes testing shared
disk strategy awkward.
This makes it a bit cleaner, since we're having a few outputs anyway.
Untested, lacking the hardware.
This will be used for the Raspberry Pi builder, which produces a FAT32
partition.
@samueldr samueldr force-pushed the feature/use-modules-system branch from 15f25f3 to 2582cf7 Compare January 27, 2022 06:28
The last legacy builder.
This will be required by the image-builder for ext4 support.
These settings allow composing a build that produces an installer disk
image.
This default output is where the magic is all tied together.
The source archive will be compressed in the actual release archive.

And the fixed date makes the output reproducible. Helpful when fixing
huge changes.
This will be used for special devices, like the sandbox.
@samueldr samueldr marked this pull request as ready for review January 30, 2022 04:14
@samueldr samueldr added this to the "next" milestone Feb 1, 2022
@samueldr
Copy link
Contributor Author

samueldr commented Feb 5, 2022

Reproducibility changes notwithstanding, this produces builds mostly-strictly equivalent with the current state.

The main difference is how the "GPL compliance" is handled.

  • before: dump of patches, some changes might be missing
  • after: dump of the whole source tree

This dump is big, but ensures the entire source code is always linked to a release artifact. The history is not present, but the history is always available through this repository. By picking up the source archive, you can always diff with the upstream version to get an actual overview of the changes.

@samueldr samueldr merged commit 0cfb26f into Tow-Boot:development Feb 5, 2022
@samueldr samueldr deleted the feature/use-modules-system branch February 5, 2022 01:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant