* 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:
parent
12bfda97b8
commit
1ac9dcd24d
|
@ -6,9 +6,13 @@ let
|
||||||
|
|
||||||
lib = (import ../.. {}).lib;
|
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
|
call = attrs: lib.flip lib.mapAttrs attrs
|
||||||
(n: v: builtins.trace n (
|
(n: v: builtins.trace n (
|
||||||
|
|
|
@ -54,7 +54,7 @@ rec {
|
||||||
makeOverridable f (origArgs // (if builtins.isFunction newArgs then newArgs origArgs else newArgs));
|
makeOverridable f (origArgs // (if builtins.isFunction newArgs then newArgs origArgs else newArgs));
|
||||||
deepOverride = newArgs:
|
deepOverride = newArgs:
|
||||||
makeOverridable f (lib.overrideExisting (lib.mapAttrs (deepOverrider newArgs) origArgs) newArgs);
|
makeOverridable f (lib.overrideExisting (lib.mapAttrs (deepOverrider newArgs) origArgs) newArgs);
|
||||||
origArgs = origArgs;
|
#origArgs = origArgs;
|
||||||
};
|
};
|
||||||
|
|
||||||
deepOverrider = newArgs: name: x: if builtins.isAttrs x then (
|
deepOverrider = newArgs: name: x: if builtins.isAttrs x then (
|
||||||
|
|
|
@ -18,4 +18,8 @@ rec {
|
||||||
# Flip the order of the arguments of a binary function.
|
# Flip the order of the arguments of a binary function.
|
||||||
flip = f: a: b: f b a;
|
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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, cmake, gettext, parted, libuuid, qt, kde, perl }:
|
{ stdenv, fetchurl, cmake, gettext, parted, libuuid, qt4, kde, perl }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "partitionmanager-1.0.0";
|
name = "partitionmanager-1.0.0";
|
||||||
|
@ -9,16 +9,16 @@ stdenv.mkDerivation {
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
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 = ''
|
preConfigure = ''
|
||||||
export VERBOSE=1
|
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 = ''
|
postInstall = ''
|
||||||
set -x
|
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
|
for p in $out/bin/partitionmanager-bin; do
|
||||||
patchelf --set-rpath $rpath $p
|
patchelf --set-rpath $rpath $p
|
||||||
done
|
done
|
||||||
|
|
|
@ -1303,7 +1303,8 @@ let
|
||||||
inherit stdenv fetchgit autoconf automake libusb confuse;
|
inherit stdenv fetchgit autoconf automake libusb confuse;
|
||||||
# It needs a cross compiler for mipsel to build the firmware it will
|
# It needs a cross compiler for mipsel to build the firmware it will
|
||||||
# load into the Ben Nanonote
|
# load into the Ben Nanonote
|
||||||
gccCross = let
|
gccCross =
|
||||||
|
let
|
||||||
pkgsCross = (import ./all-packages.nix) {
|
pkgsCross = (import ./all-packages.nix) {
|
||||||
inherit system;
|
inherit system;
|
||||||
inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
|
inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
|
||||||
|
@ -4879,7 +4880,8 @@ let
|
||||||
windows = rec {
|
windows = rec {
|
||||||
w32api = callPackage ../os-specific/windows/w32api {
|
w32api = callPackage ../os-specific/windows/w32api {
|
||||||
gccCross = gccCrossStageStatic;
|
gccCross = gccCrossStageStatic;
|
||||||
binutilsCross = binutilsCross; };
|
binutilsCross = binutilsCross;
|
||||||
|
};
|
||||||
|
|
||||||
w32api_headers = w32api.override {
|
w32api_headers = w32api.override {
|
||||||
onlyHeaders = true;
|
onlyHeaders = true;
|
||||||
|
@ -5919,7 +5921,6 @@ let
|
||||||
|
|
||||||
partitionManager = callPackage ../tools/misc/partition-manager {
|
partitionManager = callPackage ../tools/misc/partition-manager {
|
||||||
kde = kde44;
|
kde = kde44;
|
||||||
qt = qt4;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
pdftk = callPackage ../tools/typesetting/pdftk { };
|
pdftk = callPackage ../tools/typesetting/pdftk { };
|
||||||
|
|
Loading…
Reference in New Issue