* 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
This commit is contained in:
Eelco Dolstra 2010-08-19 12:37:10 +00:00
parent 12bfda97b8
commit 1ac9dcd24d
5 changed files with 19 additions and 10 deletions

View file

@ -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 (

View file

@ -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 (

View file

@ -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;
}

View file

@ -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

View file

@ -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 { };