stdenv/check-meta: construct name from pname and version if name unavailable

This commit is contained in:
danbst 2019-08-15 02:23:52 +03:00
parent bd331e42f5
commit cd5b8620bb

View File

@ -7,6 +7,7 @@ let
# If we're in hydra, we can dispense with the more verbose error # If we're in hydra, we can dispense with the more verbose error
# messages and make problems easier to spot. # messages and make problems easier to spot.
inHydra = config.inHydra or false; inHydra = config.inHydra or false;
getName = attrs: attrs.name or ("${attrs.pname or "«name-missing»"}-${attrs.version or "«version-missing»"}");
# See discussion at https://github.com/NixOS/nixpkgs/pull/25304#issuecomment-298385426 # 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. # for why this defaults to false, but I (@copumpkin) want to default it to true soon.
@ -107,23 +108,23 @@ let
You can install it anyway by whitelisting this package, using the You can install it anyway by whitelisting this package, using the
following methods: following methods:
a) for `nixos-rebuild` you can add ${attrs.name or "«name-missing»"} to a) for `nixos-rebuild` you can add ${getName attrs} to
`nixpkgs.config.permittedInsecurePackages` in the configuration.nix, `nixpkgs.config.permittedInsecurePackages` in the configuration.nix,
like so: like so:
{ {
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [
"${attrs.name or "«name-missing»"}" "${getName attrs}"
]; ];
} }
b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
${attrs.name or "«name-missing»"} to `permittedInsecurePackages` in ${getName attrs} to `permittedInsecurePackages` in
~/.config/nixpkgs/config.nix, like so: ~/.config/nixpkgs/config.nix, like so:
{ {
permittedInsecurePackages = [ permittedInsecurePackages = [
"${attrs.name or "«name-missing»"}" "${getName attrs}"
]; ];
} }
@ -134,9 +135,9 @@ let
actualOutputs = attrs.outputs or [ "out" ]; actualOutputs = attrs.outputs or [ "out" ];
missingOutputs = builtins.filter (output: ! builtins.elem output actualOutputs) expectedOutputs; missingOutputs = builtins.filter (output: ! builtins.elem output actualOutputs) expectedOutputs;
in '' in ''
The package ${attrs.name} has set meta.outputsToInstall to: ${builtins.concatStringsSep ", " expectedOutputs} The package ${getName attrs} has set meta.outputsToInstall to: ${builtins.concatStringsSep ", " expectedOutputs}
however ${attrs.name} only has the outputs: ${builtins.concatStringsSep ", " actualOutputs} however ${getName attrs} only has the outputs: ${builtins.concatStringsSep ", " actualOutputs}
and is missing the following ouputs: and is missing the following ouputs:
@ -146,9 +147,9 @@ let
handleEvalIssue = { meta, attrs }: { reason , errormsg ? "" }: handleEvalIssue = { meta, attrs }: { reason , errormsg ? "" }:
let let
msg = if inHydra msg = if inHydra
then "Failed to evaluate ${attrs.name or "«name-missing»"}: «${reason}»: ${errormsg}" then "Failed to evaluate ${getName attrs}: «${reason}»: ${errormsg}"
else '' else ''
Package ${attrs.name or "«name-missing»"} in ${pos_str meta} ${errormsg}, refusing to evaluate. Package ${getName attrs} in ${pos_str meta} ${errormsg}, refusing to evaluate.
'' + (builtins.getAttr reason remediation) attrs; '' + (builtins.getAttr reason remediation) attrs;