rustPlatform.buildRustPackage: fix cargoDeps inherited attribute overriding (#435239)

This commit is contained in:
Colin
2026-04-28 16:07:38 +00:00
committed by GitHub
@@ -16,6 +16,9 @@
}:
let
getOptionalAttrs =
names: attrs: lib.getAttrs (lib.intersectLists names (lib.attrNames attrs)) attrs;
interpolateString =
s:
if lib.isList s then
@@ -39,16 +42,9 @@ lib.extendMkDerivation {
extendDrvArgs =
finalAttrs:
{
name ? "${args.pname}-${args.version}",
# Name for the vendored dependencies tarball
cargoDepsName ? name,
cargoDepsName ? null,
src ? null,
srcs ? null,
preUnpack ? null,
unpackPhase ? null,
postUnpack ? null,
cargoPatches ? [ ],
patches ? [ ],
sourceRoot ? null,
@@ -115,17 +111,20 @@ lib.extendMkDerivation {
throw "cargoHash, cargoVendorDir, cargoDeps, or cargoLock must be set"
else
fetchCargoVendor (
{
inherit
src
srcs
sourceRoot
cargoRoot
preUnpack
unpackPhase
postUnpack
;
name = cargoDepsName;
getOptionalAttrs [
"name"
"pname"
"version"
"src"
"srcs"
"sourceRoot"
"cargoRoot"
"preUnpack"
"unpackPhase"
"postUnpack"
] finalAttrs
// {
${if cargoDepsName != null then "name" else null} = cargoDepsName;
patches = cargoPatches;
hash = args.cargoHash;
}