3
0
Fork 0
forked from mirrors/nixpkgs

stdenv: refactor (no change in semantics)

This just moves some expressions around in preparation to further changes.
This commit is contained in:
Vladimír Čunát 2017-01-29 12:07:44 +01:00 committed by John Ericson
parent 74f55017d2
commit 7fdf18e892

View file

@ -290,15 +290,15 @@ let
in [ nativeBuildInputs buildInputs ];
propagatedDependencies' = map lib.chooseDevOutputs propagatedDependencies;
in
# Throw an error if trying to evaluate an non-valid derivation
assert let v = checkValidity attrs;
validityCondition =
let v = checkValidity attrs;
in if !v.valid
then throwEvalHelp (removeAttrs v ["valid"])
else true;
lib.addPassthru (derivation (
derivationArg =
(removeAttrs attrs
["meta" "passthru" "crossAttrs" "pos"
"__impureHostDeps" "__propagatedImpureHostDeps"
@ -343,9 +343,8 @@ let
__propagatedImpureHostDeps = computedPropagatedImpureHostDeps ++ __propagatedImpureHostDeps;
} // (if outputs' != [ "out" ] then {
outputs = outputs';
} else { })))) (
{
overrideAttrs = f: mkDerivation (attrs // (f attrs));
} else { }));
# The meta attribute is passed in the resulting attribute set,
# but it's not part of the actual derivation, i.e., it's not
# passed to the builder and is not a dependency. But since we
@ -363,12 +362,20 @@ let
hasOutput = out: builtins.elem out outs;
in [( lib.findFirst hasOutput null (["bin" "out"] ++ outs) )];
}
// meta
// attrs.meta or {}
# Fill `meta.position` to identify the source location of the package.
// lib.optionalAttrs (pos' != null)
{ position = pos'.file + ":" + toString pos'.line; }
;
inherit passthru;
in
assert validityCondition;
lib.addPassthru (derivation derivationArg) (
{
overrideAttrs = f: mkDerivation (attrs // (f attrs));
inherit meta passthru;
} //
# Pass through extra attributes that are not inputs, but
# should be made available to Nix expressions using the