Factor out allowUnfree,allowBroken help message
DRY.
This commit is contained in:
parent
abfaf42333
commit
ff999c31aa
@ -29,6 +29,16 @@ let
|
||||
|
||||
allowBroken = config.allowBroken or false || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1";
|
||||
|
||||
forceEvalHelp = unfreeOrBroken:
|
||||
assert (unfreeOrBroken == "Unfree" || unfreeOrBroken == "Broken");
|
||||
''
|
||||
You can set
|
||||
{ nixpkgs.config.allow${unfreeOrBroken} = true; }
|
||||
in configuration.nix to override this. If you use Nix standalone, you can add
|
||||
{ allow${unfreeOrBroken} = true; }
|
||||
to ~/.nixpkgs/config.nix.
|
||||
'';
|
||||
|
||||
unsafeGetAttrPos = builtins.unsafeGetAttrPos or (n: as: null);
|
||||
|
||||
# The stdenv that we are producing.
|
||||
@ -78,25 +88,16 @@ let
|
||||
in
|
||||
if !allowUnfree && (let l = lib.lists.toList attrs.meta.license or []; in lib.lists.elem "unfree" l || lib.lists.elem "unfree-redistributable" l) && !(allowUnfreePredicate attrs) then
|
||||
throw ''
|
||||
Package ‘${attrs.name}’ in ${pos'} has an unfree license, refusing to evaluate. You can set
|
||||
{ nixpkgs.config.allowUnfree = true; }
|
||||
in configuration.nix to override this. If you use Nix standalone, you can add
|
||||
{ allowUnfree = true; }
|
||||
to ~/.nixpkgs/config.nix.''
|
||||
Package ‘${attrs.name}’ in ${pos'} has an unfree license, refusing to evaluate.
|
||||
${forceEvalHelp "Unfree"}''
|
||||
else if !allowBroken && attrs.meta.broken or false then
|
||||
throw ''
|
||||
Package ‘${attrs.name}’ in ${pos'} is marked as broken, refusing to evaluate. You can set
|
||||
{ nixpkgs.config.allowBroken = true; }
|
||||
in configuration.nix to override this. If you use Nix standalone, you can add
|
||||
{ allowBroken = true; }
|
||||
to ~/.nixpkgs/config.nix.''
|
||||
Package ‘${attrs.name}’ in ${pos'} is marked as broken, refusing to evaluate.
|
||||
${forceEvalHelp "Broken"}''
|
||||
else if !allowBroken && attrs.meta.platforms or null != null && !lib.lists.elem result.system attrs.meta.platforms then
|
||||
throw ''
|
||||
Package ‘${attrs.name}’ in ${pos'} is not supported on ‘${result.system}’, refusing to evaluate. You can set
|
||||
{ nixpkgs.config.allowBroken = true; }
|
||||
in configuration.nix to override this. If you use Nix standalone, you can add
|
||||
{ allowBroken = true; }
|
||||
to ~/.nixpkgs/config.nix.''
|
||||
Package ‘${attrs.name}’ in ${pos'} is not supported on ‘${result.system}’, refusing to evaluate.
|
||||
${forceEvalHelp "Broken"}''
|
||||
else
|
||||
lib.addPassthru (derivation (
|
||||
(removeAttrs attrs ["meta" "passthru" "crossAttrs"])
|
||||
|
Loading…
Reference in New Issue
Block a user