Factor out allowUnfree,allowBroken help message

DRY.
This commit is contained in:
Bjørn Forsman 2014-04-30 23:41:16 +02:00
parent abfaf42333
commit ff999c31aa

View file

@ -29,6 +29,16 @@ let
allowBroken = config.allowBroken or false || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"; 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); unsafeGetAttrPos = builtins.unsafeGetAttrPos or (n: as: null);
# The stdenv that we are producing. # The stdenv that we are producing.
@ -78,25 +88,16 @@ let
in 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 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 '' throw ''
Package ${attrs.name} in ${pos'} has an unfree license, refusing to evaluate. You can set Package ${attrs.name} in ${pos'} has an unfree license, refusing to evaluate.
{ nixpkgs.config.allowUnfree = true; } ${forceEvalHelp "Unfree"}''
in configuration.nix to override this. If you use Nix standalone, you can add
{ allowUnfree = true; }
to ~/.nixpkgs/config.nix.''
else if !allowBroken && attrs.meta.broken or false then else if !allowBroken && attrs.meta.broken or false then
throw '' throw ''
Package ${attrs.name} in ${pos'} is marked as broken, refusing to evaluate. You can set Package ${attrs.name} in ${pos'} is marked as broken, refusing to evaluate.
{ nixpkgs.config.allowBroken = true; } ${forceEvalHelp "Broken"}''
in configuration.nix to override this. If you use Nix standalone, you can add
{ allowBroken = true; }
to ~/.nixpkgs/config.nix.''
else if !allowBroken && attrs.meta.platforms or null != null && !lib.lists.elem result.system attrs.meta.platforms then else if !allowBroken && attrs.meta.platforms or null != null && !lib.lists.elem result.system attrs.meta.platforms then
throw '' throw ''
Package ${attrs.name} in ${pos'} is not supported on ${result.system}, refusing to evaluate. You can set Package ${attrs.name} in ${pos'} is not supported on ${result.system}, refusing to evaluate.
{ nixpkgs.config.allowBroken = true; } ${forceEvalHelp "Broken"}''
in configuration.nix to override this. If you use Nix standalone, you can add
{ allowBroken = true; }
to ~/.nixpkgs/config.nix.''
else else
lib.addPassthru (derivation ( lib.addPassthru (derivation (
(removeAttrs attrs ["meta" "passthru" "crossAttrs"]) (removeAttrs attrs ["meta" "passthru" "crossAttrs"])