diff --git a/maintainers/scripts/eval-release.nix b/maintainers/scripts/eval-release.nix index 64dbbd15cf3..62607fcc497 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 7b4b390cbef..e8946ddf743 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 aaae36afa05..af47a8c8841 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 fd8abf7caf3..7775aae5bd8 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 8026345e5d6..5556a128bf7 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 { };