The kernel asks for the firmware with the version string in the filename[1], so
it's not easy to load the "blobs" from this package.
With this change you can just add the package with a `lib.hiPrio` to
`hardware.firmware` and it will be loaded correctly.
Note: I used symlinks instead of simply renaming the files in order to not
introduce a breaking change.
Co-authored-by: FlafyDev <flafyarazi@gmail.com>
The dependency fixed-output derivation now uses the recursive hash mode to avoid tarballing and copying all the files.
https://github.com/NixOS/nix/issues/6660 was ran into during the development of this change. Input references were found in the Git package cache before nukeReferences was used.
It turns out that the mirrors in the Git package cache do not actually need to be preserved, as the SDK does not use them during the build process. They are therefore deleted in the dependency derivation and re-created as blank repositories in the main derivation.
A description of the Git package cache layout can be found here: c890afa1d6/lib/src/source/git.dart (L339)
Files and directories such as .dart_tool, .flutter-plugins, .packages and .pub-cache/hosted/*/.cache will be happily regenerated by the SDK in an offline environment.
The patches being made to these files and directories to remove non-determinism were flawed: They did not handle cases where files only appeared in one run, or cases where tooling versions had an effect on the output.
Attempting to install the package via environment.systemPackages, as
describe in #212799, otherwise failed with a non-existent directory
error.
Co-authored-by: Martin Weinelt <hexa@darmstadt.ccc.de>
Some downstream consumers (e.g. ones that facilitate Secure Boot like
Lanzaboote), might need to get the `fwupd-efi` derivation that `fwupd`
was built with. Lanzaboote specifically plans to use this to be able to
sign the EFI PE to allow fwupd to be used with Secure Boot enforcing.
with structuredAttrs lists will be bash arrays which cannot be exported
which will be a issue with some patches and some wrappers like cc-wrapper
this makes it clearer that NIX_CFLAGS_COMPILE must be a string as lists
in env cause a eval failure