forked from mirrors/nixpkgs
buildRustPackage,fetchCargoTarball: accept empty hashes
This commit is contained in:
parent
836e6d3e02
commit
f441e6b7f4
|
@ -17,12 +17,6 @@
|
|||
|
||||
{ name ? "${args.pname}-${args.version}"
|
||||
|
||||
# SRI hash
|
||||
, cargoHash ? ""
|
||||
|
||||
# Legacy hash
|
||||
, cargoSha256 ? ""
|
||||
|
||||
# Name for the vendored dependencies tarball
|
||||
, cargoDepsName ? name
|
||||
|
||||
|
@ -54,7 +48,7 @@
|
|||
, buildAndTestSubdir ? null
|
||||
, ... } @ args:
|
||||
|
||||
assert cargoVendorDir == null && cargoLock == null -> cargoSha256 == "" && cargoHash == ""
|
||||
assert cargoVendorDir == null && cargoLock == null -> !(args ? cargoSha256) && !(args ? cargoHash)
|
||||
-> throw "cargoSha256, cargoHash, cargoVendorDir, or cargoLock must be set";
|
||||
assert buildType == "release" || buildType == "debug";
|
||||
|
||||
|
@ -66,15 +60,17 @@ let
|
|||
else fetchCargoTarball ({
|
||||
inherit src srcs sourceRoot unpackPhase cargoUpdateHook;
|
||||
name = cargoDepsName;
|
||||
hash = cargoHash;
|
||||
patches = cargoPatches;
|
||||
sha256 = cargoSha256;
|
||||
} // lib.optionalAttrs (args ? cargoHash) {
|
||||
hash = args.cargoHash;
|
||||
} // lib.optionalAttrs (args ? cargoSha256) {
|
||||
sha256 = args.cargoSha256;
|
||||
} // depsExtraArgs)
|
||||
else null;
|
||||
|
||||
# If we have a cargoSha256 fixed-output derivation, validate it at build time
|
||||
# against the src fixed-output derivation to check consistency.
|
||||
validateCargoDeps = !(cargoHash == "" && cargoSha256 == "");
|
||||
validateCargoDeps = args ? cargoHash || args ? cargoSha256;
|
||||
|
||||
target = rust.toRustTargetSpec stdenv.hostPlatform;
|
||||
targetIsJSON = lib.hasSuffix ".json" target;
|
||||
|
|
|
@ -22,15 +22,13 @@ in
|
|||
, srcs ? []
|
||||
, patches ? []
|
||||
, sourceRoot ? ""
|
||||
, hash ? ""
|
||||
, sha256 ? ""
|
||||
, cargoUpdateHook ? ""
|
||||
, ...
|
||||
} @ args:
|
||||
|
||||
let hash_ =
|
||||
if hash != "" then { outputHashAlgo = null; outputHash = hash; }
|
||||
else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; }
|
||||
if args ? hash then { outputHashAlgo = null; outputHash = args.hash; }
|
||||
else if args ? sha256 then { outputHashAlgo = "sha256"; outputHash = args.sha256; }
|
||||
else throw "fetchCargoTarball requires a hash for ${name}";
|
||||
in stdenv.mkDerivation ({
|
||||
name = "${name}-vendor.tar.gz";
|
||||
|
|
Loading…
Reference in a new issue