diff --git a/pkgs/os-specific/linux/firmware/linux-firmware/default.nix b/pkgs/os-specific/linux/firmware/linux-firmware/default.nix index ce75a4e30495..a3fa3f511b19 100644 --- a/pkgs/os-specific/linux/firmware/linux-firmware/default.nix +++ b/pkgs/os-specific/linux/firmware/linux-firmware/default.nix @@ -1,25 +1,46 @@ { stdenvNoCC , fetchzip +, findutils , lib +, python3 , rdfind , which +, writeShellScriptBin }: - -stdenvNoCC.mkDerivation rec { +let + # check-whence.py attempts to call `git ls-files`, but we don't have a .git, + # because we've just downloaded a snapshot. We do, however, know that we're + # in a perfectly pristine tree, so we can fake just enough of git to run it. + gitStub = writeShellScriptBin "git" '' + if [ "$1" == "ls-files" ]; then + ${lib.getExe findutils} -type f -printf "%P\n" + else + echo "Git stub called with unexpected arguments $@" >&2 + exit 1 + fi + ''; +in stdenvNoCC.mkDerivation rec { pname = "linux-firmware"; - version = "20240909"; + version = "20241017"; src = fetchzip { url = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/linux-firmware-${version}.tar.gz"; - hash = "sha256-3nwo4lGTV5PlsxZXa5D/7upaB+5XfXFZHbgEO5jnRrw="; + hash = "sha256-q4StJdoLCHQThFTzhxETDYlQP/ywmb3vwCr13xtrQzc="; }; + postUnpack = '' + patchShebangs . + ''; + nativeBuildInputs = [ + gitStub + python3 rdfind which ]; - installFlags = [ "DESTDIR=$(out)" ]; + installTargets = [ "install" "dedup" ]; + makeFlags = [ "DESTDIR=$(out)" ]; # Firmware blobs do not need fixing and should not be modified dontFixup = true;