diff options
author | Bjørn Forsman <bjorn.forsman@gmail.com> | 2014-04-30 23:41:16 +0200 |
---|---|---|
committer | Bjørn Forsman <bjorn.forsman@gmail.com> | 2014-06-21 15:05:48 +0200 |
commit | ff999c31aa050cec735b787d1bbe519fa2298c3d (patch) | |
tree | f87e60b2d6951d55087b0d53a73ce1b073c1d9a0 /pkgs/stdenv | |
parent | abfaf423332cd2980cfc44b53962a8d4e7847d51 (diff) |
Factor out allowUnfree,allowBroken help message
DRY.
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r-- | pkgs/stdenv/generic/default.nix | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index ab9af40cc678b..ac094126c09ee 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -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"]) |