summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2010-08-19 12:37:10 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2010-08-19 12:37:10 +0000
commit1ac9dcd24d3c41954068f2bd2e415552cb0de7c1 (patch)
tree38b40f69c45128c27af8c5e21f0b1d132f9307b3
parent12bfda97b8a7387c28e30b4d458a849c4bcff58a (diff)
* Fix eval-release.nix by testing whether all attributes of a
  derivation evaluate inside the tryEval.  This catches cases such as
  aufs2-util, which fails due to an assertion in its dependency aufs2.
* Explicitly blacklist "xbursttools" because it gives some
  evaluation error in cross-OpenSSL.  No idea why, probably due to
  some pass-through attribute.

svn path=/nixpkgs/trunk/; revision=23247
-rw-r--r--maintainers/scripts/eval-release.nix8
-rw-r--r--pkgs/lib/customisation.nix2
-rw-r--r--pkgs/lib/trivial.nix4
-rw-r--r--pkgs/tools/misc/partition-manager/default.nix8
-rw-r--r--pkgs/top-level/all-packages.nix7
5 files changed, 19 insertions, 10 deletions
diff --git a/maintainers/scripts/eval-release.nix b/maintainers/scripts/eval-release.nix
index 64dbbd15cf385..62607fcc497f4 100644
--- a/maintainers/scripts/eval-release.nix
+++ b/maintainers/scripts/eval-release.nix
@@ -6,9 +6,13 @@ let
 
   lib = (import ../.. {}).lib;
 
-  rel = removeAttrs (import ../../pkgs/top-level/release.nix) ["tarball"];
+  rel = removeAttrs (import ../../pkgs/top-level/release.nix) [ "tarball" "xbursttools" ];
 
-  maybe = x: let y = builtins.tryEval x; in if y.success then y.value else null;
+  strictList = xs: lib.fold (x: xs: lib.seq x xs) xs xs;
+  
+  strictAttrs = as: strictList (lib.attrValues as);
+
+  maybe = as: let y = builtins.tryEval (strictAttrs as); in if y.success then y.value else builtins.trace "FAIL" null;
 
   call = attrs: lib.flip lib.mapAttrs attrs
     (n: v: builtins.trace n (
diff --git a/pkgs/lib/customisation.nix b/pkgs/lib/customisation.nix
index 7b4b390cbef3e..e8946ddf7439d 100644
--- a/pkgs/lib/customisation.nix
+++ b/pkgs/lib/customisation.nix
@@ -54,7 +54,7 @@ rec {
         makeOverridable f (origArgs // (if builtins.isFunction newArgs then newArgs origArgs else newArgs));
       deepOverride = newArgs:
         makeOverridable f (lib.overrideExisting (lib.mapAttrs (deepOverrider newArgs) origArgs) newArgs);
-      origArgs = origArgs;
+      #origArgs = origArgs;
     };
 
   deepOverrider = newArgs: name: x: if builtins.isAttrs x then (
diff --git a/pkgs/lib/trivial.nix b/pkgs/lib/trivial.nix
index aaae36afa058f..af47a8c88415e 100644
--- a/pkgs/lib/trivial.nix
+++ b/pkgs/lib/trivial.nix
@@ -18,4 +18,8 @@ rec {
   # Flip the order of the arguments of a binary function.
   flip = f: a: b: f b a;
 
+  # `seq x y' evaluates x, then returns y.  That is, it forces strict
+  # evaluation of its first argument.
+  seq = x: y: if x == null then y else y;
+  
 }
diff --git a/pkgs/tools/misc/partition-manager/default.nix b/pkgs/tools/misc/partition-manager/default.nix
index fd8abf7caf39c..7775aae5bd8ac 100644
--- a/pkgs/tools/misc/partition-manager/default.nix
+++ b/pkgs/tools/misc/partition-manager/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, gettext, parted, libuuid, qt, kde, perl }:
+{ stdenv, fetchurl, cmake, gettext, parted, libuuid, qt4, kde, perl }:
 
 stdenv.mkDerivation {
   name = "partitionmanager-1.0.0";
@@ -9,16 +9,16 @@ stdenv.mkDerivation {
   };
 
   buildInputs =
-    [ cmake gettext parted libuuid qt kde.kdelibs kde.kdebase kde.automoc4 perl kde.phonon ];
+    [ cmake gettext parted libuuid qt4 kde.kdelibs kde.kdebase kde.automoc4 perl kde.phonon ];
 
   preConfigure = ''
     export VERBOSE=1
-    cmakeFlagsArray=($cmakeFlagsArray -DGETTEXT_INCLUDE_DIR=${gettext}/include -DCMAKE_INCLUDE_PATH=${qt}/include/QtGui )
+    cmakeFlagsArray=($cmakeFlagsArray -DGETTEXT_INCLUDE_DIR=${gettext}/include -DCMAKE_INCLUDE_PATH=${qt4}/include/QtGui )
   '';
 
   postInstall = ''
     set -x
-    rpath=`patchelf --print-rpath $out/bin/partitionmanager-bin`:${qt}/lib 
+    rpath=`patchelf --print-rpath $out/bin/partitionmanager-bin`:${qt4}/lib 
     for p in $out/bin/partitionmanager-bin; do
       patchelf --set-rpath $rpath $p
     done
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8026345e5d6af..5556a128bf7ed 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1303,7 +1303,8 @@ let
     inherit stdenv fetchgit autoconf automake libusb confuse;
     # It needs a cross compiler for mipsel to build the firmware it will
     # load into the Ben Nanonote
-    gccCross = let
+    gccCross =
+      let
         pkgsCross = (import ./all-packages.nix) {
           inherit system;
           inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
@@ -4879,7 +4880,8 @@ let
   windows = rec {
     w32api = callPackage ../os-specific/windows/w32api {
       gccCross = gccCrossStageStatic;
-      binutilsCross = binutilsCross;    };
+      binutilsCross = binutilsCross;
+    };
 
     w32api_headers = w32api.override {
       onlyHeaders = true;
@@ -5919,7 +5921,6 @@ let
 
   partitionManager = callPackage ../tools/misc/partition-manager {
     kde = kde44;
-    qt = qt4;
   };
 
   pdftk = callPackage ../tools/typesetting/pdftk { };