diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix index 68e836ba6ee..375eb148afd 100644 --- a/pkgs/tools/package-management/nix/unstable.nix +++ b/pkgs/tools/package-management/nix/unstable.nix @@ -1,13 +1,41 @@ -{ stdenv, fetchurl, aterm, db4, perl, curl, bzip2, openssl ? null +{ stdenv, fetchurl, lib, aterm, db4, perl, curl, bzip2, openssl ? null , storeDir ? "/nix/store" , stateDir ? "/nix/var" , supportOldDBs ? true , nameSuffix ? "" +, debugcCoercionFailuresPatch ? false + /* enabling this experimental patch will output a xml representation of the + thing which didn't match the expected type - for debugging only + + The message of + let a = {}; in builtins.substring a a a; # always cause failure + looks like + + value is an attribute set while an integer was expected + + + + + + */ , patches ? [] }: -stdenv.mkDerivation rec { - name = "nix-0.13pre17232${nameSuffix}"; + +let + + + allPatches = + patches ++ lib.optional debugcCoercionFailuresPatch + (fetchurl { url = http://mawercer.de/~marc/debug-coercion-failures.patch; sha256 = "13q6vbxp3p36hqzlfp0hw84n6f1hzljnxqy73vr2bmglp8np24wy"; }); + + vName = "nix-0.13pre17232"; + name = "${vName}${nameSuffix}${if allPatches == [] then "" else "-patched"}"; +in + +stdenv.mkDerivation { + + inherit name; src = fetchurl { url = "http://hydra.nixos.org/build/75293/download/4/${name}.tar.bz2"; @@ -33,5 +61,5 @@ stdenv.mkDerivation rec { license = "LGPL"; }; - inherit patches; + patches = allPatches; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 76ea51717bf..394ef990b92 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8337,7 +8337,7 @@ let # The bleeding edge. nixUnstable = makeOverridable (import ../tools/package-management/nix/unstable.nix) { - inherit fetchurl stdenv perl curl bzip2 openssl; + inherit fetchurl stdenv lib perl curl bzip2 openssl; aterm = aterm242fixes; db4 = db45; supportOldDBs = getPkgConfig "nix" "OldDBSupport" true;