{ fish, rustPlatform, lib, }: let loadedRustPlatform = { inherit (rustPlatform) cargoSetupHook; fetchCargoVendor = loadedFetchCargoVendor; }; loadedFetchCargoVendor = prev: rustPlatform.importCargoLock { lockFile = ./Cargo.lock; allowBuiltinFetchGit = true; }; in (fish.override { rustPlatform = loadedRustPlatform; }).overrideAttrs (prev: { pname = "${prev.pname}-patched"; postPatch = '' rm Cargo.lock cat ${./Cargo.lock} > Cargo.lock ''; doCheck = false; patches = (prev.patches or []) ++ ( builtins.map (name: ./patches + "/${name}") (builtins.attrNames (builtins.readDir ./patches)) ); })