summary refs log tree commit diff
path: root/pkgs/top-level/release.nix
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2009-11-06 12:27:56 +0000
committerMichael Raskin <7c6f434c@mail.ru>2009-11-06 12:27:56 +0000
commit159dc0e0cb040a441b563205791db7799abec101 (patch)
tree75c06440f5796a82d296f37055b95df018eeaa32 /pkgs/top-level/release.nix
parent866bbe32f25fbc87c3fb568d4f0d49f7ec9d56fe (diff)
downloadnixpkgs-159dc0e0cb040a441b563205791db7799abec101.tar
nixpkgs-159dc0e0cb040a441b563205791db7799abec101.tar.gz
nixpkgs-159dc0e0cb040a441b563205791db7799abec101.tar.bz2
nixpkgs-159dc0e0cb040a441b563205791db7799abec101.tar.lz
nixpkgs-159dc0e0cb040a441b563205791db7799abec101.tar.xz
nixpkgs-159dc0e0cb040a441b563205791db7799abec101.tar.zst
nixpkgs-159dc0e0cb040a441b563205791db7799abec101.zip
Increase robustness of tryEval use a bit
svn path=/nixpkgs/trunk/; revision=18200
Diffstat (limited to 'pkgs/top-level/release.nix')
-rw-r--r--pkgs/top-level/release.nix21
1 files changed, 16 insertions, 5 deletions
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 824f30d18e7..e9d33f7b47b 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -39,8 +39,19 @@ let
     if builtins ? tryEval then 
       let pairs = pkgs.lib.concatMap 
         (x:
-          let val = builtins.tryEval (processPackage (builtins.getAttr x attrSet)); in
-          if builtins.isAttrs x && val.success && val.value != [] then [{name=x; value=val.value;}] else [])
+	  let pair = builtins.tryEval
+	        (let 
+		   attrVal = (builtins.getAttr x attrSet);
+		 in
+		   {val=(processPackage attrVal); 
+		    attrVal = attrVal;
+		    attrValIsAttrs = builtins.isAttrs attrVal;
+		    });
+	      success = (builtins.tryEval pair.value.attrVal).success;
+	  in
+          if success && pair.value.attrValIsAttrs && 
+	      pair.value.val != [] then 
+	    [{name= x; value=pair.value.val;}] else [])
         (builtins.attrNames attrSet);
       in
         builtins.listToAttrs pairs
@@ -51,9 +62,9 @@ let
     if attrSet ? recurseForDerivations && attrSet.recurseForDerivations then 
       packagesWithMetaPlatform attrSet
     else
-      if builtins.hasAttr "platforms" attrSet.meta
-      then builtins.getAttr "platforms" attrSet.meta
-      else [];
+      if attrSet ? meta && attrSet.meta ? platforms
+        then attrSet.meta.platforms
+        else [];
 
   /* Common platform groups on which to test packages. */
   inherit (pkgs.lib.platforms) linux darwin cygwin allBut all;