diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2018-01-30 22:10:34 -0500 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2018-03-14 18:58:07 -0400 |
commit | 4c52e34ca60c58fe50e73875550068099dcdebdb (patch) | |
tree | 4e00c4d3fa85df607984669240253617fdbdfb8b | |
parent | f79f80dbf267036a96f8eae281c8501482756d03 (diff) |
stdenv: Clean up check meta args
-rw-r--r-- | pkgs/stdenv/generic/check-meta.nix | 22 | ||||
-rw-r--r-- | pkgs/stdenv/generic/make-derivation.nix | 5 |
2 files changed, 13 insertions, 14 deletions
diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index 93d0f4cc9805f..ee1e657bdab3c 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -1,11 +1,9 @@ # Checks derivation meta and attrs for problems (like brokenness, # licenses, etc). -{ lib, config, system, meta, derivationArg, mkDerivationArg }: +{ lib, config, system, meta }: let - attrs = mkDerivationArg; # TODO: probably get rid of passing this one - # See discussion at https://github.com/NixOS/nixpkgs/pull/25304#issuecomment-298385426 # for why this defaults to false, but I (@copumpkin) want to default it to true soon. shouldCheckMeta = config.checkMeta or false; @@ -123,7 +121,7 @@ let ''; - handleEvalIssue = { reason , errormsg ? "" }: + handleEvalIssue = attrs: { reason , errormsg ? "" }: let msg = '' Package ‘${attrs.name or "«name-missing»"}’ in ${pos_str} ${errormsg}, refusing to evaluate. @@ -196,11 +194,13 @@ let { valid = false; reason = "unknown-meta"; errormsg = "has an invalid meta attrset:${lib.concatMapStrings (x: "\n\t - " + x) res}"; } else { valid = true; }; - validity = checkValidity attrs; + assertValidity = attrs: let + validity = checkValidity attrs; + in validity // { + # Throw an error if trying to evaluate an non-valid derivation + handled = if !validity.valid + then handleEvalIssue attrs (removeAttrs validity ["valid"]) + else true; + }; -in validity // { - # Throw an error if trying to evaluate an non-valid derivation - handled = if !validity.valid - then handleEvalIssue (removeAttrs validity ["valid"]) - else true; -} +in assertValidity diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index e8f78d7401f1e..18c4beb965b5b 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -204,12 +204,11 @@ rec { }); validity = import ./check-meta.nix { - inherit lib config meta derivationArg; - mkDerivationArg = attrs; + inherit lib config meta; # Nix itself uses the `system` field of a derivation to decide where # to build it. This is a bit confusing for cross compilation. inherit (stdenv) system; - }; + } attrs; # The meta attribute is passed in the resulting attribute set, # but it's not part of the actual derivation, i.e., it's not |