diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2010-08-19 12:37:10 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2010-08-19 12:37:10 +0000 |
commit | 1ac9dcd24d3c41954068f2bd2e415552cb0de7c1 (patch) | |
tree | 38b40f69c45128c27af8c5e21f0b1d132f9307b3 | |
parent | 12bfda97b8a7387c28e30b4d458a849c4bcff58a (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.nix | 8 | ||||
-rw-r--r-- | pkgs/lib/customisation.nix | 2 | ||||
-rw-r--r-- | pkgs/lib/trivial.nix | 4 | ||||
-rw-r--r-- | pkgs/tools/misc/partition-manager/default.nix | 8 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 7 |
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 { }; |