From abfaf423332cd2980cfc44b53962a8d4e7847d51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Wed, 30 Apr 2014 21:51:03 +0200 Subject: [PATCH] More helpful message when refusing to evaluate "broken" package A "broken" package is one where either "meta.broken = true" or build platform != meta.platforms. --- pkgs/stdenv/generic/default.nix | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index 6047ecf853c5..ab9af40cc678 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -84,9 +84,19 @@ let { allowUnfree = true; } to ~/.nixpkgs/config.nix.'' else if !allowBroken && attrs.meta.broken or false then - throw "you can't use package ‘${attrs.name}’ in ${pos'} because it has been marked as broken" + 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.'' else if !allowBroken && attrs.meta.platforms or null != null && !lib.lists.elem result.system attrs.meta.platforms then - throw "the package ‘${attrs.name}’ in ${pos'} is not supported on ‘${result.system}’" + 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.'' else lib.addPassthru (derivation ( (removeAttrs attrs ["meta" "passthru" "crossAttrs"])