This package provides a unique binary per architecture, which can load
an additional script from the flashable zip.
This way, one "expensive" (not really) build of mruby+script is shared
for the whole architecture.
This helper is intended to be used by contributors that are changing
parts of this project that are either touching `lib/` and the evaluation
helpers, or changing `release.nix`.
There are no facilities to *compare* evals, yet. But this can be done by
the contributor, they can go to any commit they want to compare to, run
the eval and save the output markdown report. Then they can compare
against their new markdown report.
Finally, splitting the eval errors like we do in the reports should make
it really obvious what errors happened during the eval.
This is required for more hermetic evals.
A simple thing to try is, before this change, replace `default.nix` with
`throw "No thanks..."`. It would throw. It was also possible to observe
`local.nix` was being included by the warnings.
Wioth this change, `release.nix` does not include `local.nix` through
`default.nix`.
I think this was the last piece of Mobile NixOS that actually relied on
`default.nix` being a thing. We have finally completely inverted the
control, where `default.nix` uses the helpers, rather than the helpers
evaluating a specialized `default.nix`.
From now on, it should be entirely safe to experiment with
`default.nix`. We should be able to **fail noisily** when a user builds
the default empty configuration!
This includes the whole `tested` job (a simple no-op for hydra), but
adds additional things we want to track success for.
`tested` is for the basic minimum we want to succeed.
`testedPlus` adds more exotic, and less well-tested platforms.
Using `.override` inside the builder leads to `.override` outside being
ignored, as the `mruby` used would be whatever was last given to the
passthru `builder`'s own overrides or callPackages.
This breaks current calls to `mruby.builder` when `gems` was given.
Though since it breaks noisily, it won't silently ignore your gems.
This might seem weird at first, but is totally needed. We have 48 bit
integers we need to handle, RGBA colours.
AFAICT full-blown Ruby would automatically handle going through another
class for larger integer. But it looks like mruby doesn't
Let's intead use the 64 bit type!
In some instances, e.g. really slow CPU, udev might not have run, and
libinput will not be able to work appropriately.
That is because uevent files will be missing.
`#constantize` does not exist on `String`.
This would only have been an issue in the improbable cause that a daemon
is not configured for an FFS gadget.