nixpkgs/pkgs/build-support
Peter Simons 6f1cec9acb haskell-packages.nix: fix the implementation of 'cabalNoTest'
The previous implementation used the following tying-the-knot trickery to
override 'doCheck' to false for the given build:

  cabalNoTest = {
    mkDerivation = x: rec {
      final = self.cabal.mkDerivation (self: (x final) // { doCheck = false; });
    }.final;
  };

That seemed to work, but for some reason it caused trouble with some builds --
not all -- that use jailbreakCabal. The problem was the 'stdenv' attribute
couldn't be evaluated properly anymore:

  $ nix-build ~/pkgs/top-level/release-haskell.nix -A optparseApplicative.ghc6104.x86_64-linux --show-trace
  error: while evaluating the attribute `drvPath' at `/nix/store/qkj5cxknwspz8ak0ganm97zfr2bhksgn-nix-1.5.2pre3082_2398417/share/nix/corepkgs/derivation.nix:19:9':
  while evaluating the builtin function `derivationStrict':
  while instantiating the derivation named `haskell-optparse-applicative-ghc6.10.4-0.5.2.1' at `/home/simons/.nix-defexpr/pkgs/build-support/cabal/default.nix:40:13':
  while evaluating the derivation attribute `configurePhase' at `/home/simons/.nix-defexpr/pkgs/build-support/cabal/default.nix:107:13':
  while evaluating the function at `/home/simons/.nix-defexpr/pkgs/lib/strings.nix:55:26':
  while evaluating the attribute `outPath' at `/nix/store/qkj5cxknwspz8ak0ganm97zfr2bhksgn-nix-1.5.2pre3082_2398417/share/nix/corepkgs/derivation.nix:18:9':
  while evaluating the builtin function `getAttr':
  while evaluating the builtin function `derivationStrict':
  while instantiating the derivation named `jailbreak-cabal-1.1' at `/home/simons/.nix-defexpr/pkgs/build-support/cabal/default.nix:40:13':
  while evaluating the derivation attribute `nativeBuildInputs' at `/home/simons/.nix-defexpr/pkgs/stdenv/generic/default.nix:76:17':
  while evaluating the function at `/home/simons/.nix-defexpr/pkgs/lib/lists.nix:135:21':
  while evaluating the attribute `buildInputs' at `/home/simons/.nix-defexpr/pkgs/build-support/cabal/default.nix:22:17':
  while evaluating the builtin function `filter':
  while evaluating the function at `/home/simons/.nix-defexpr/pkgs/build-support/cabal/default.nix:22:60':
  while evaluating the function at `/home/simons/.nix-defexpr/pkgs/top-level/haskell-packages.nix:119:17':
  while evaluating the function at `/home/simons/.nix-defexpr/pkgs/lib/customisation.nix:61:22':
  while evaluating the function at `/home/simons/.nix-defexpr/pkgs/lib/customisation.nix:56:24':
  while evaluating the builtin function `isAttrs':
  while evaluating the function at `/home/simons/.nix-defexpr/pkgs/development/libraries/haskell/Cabal/1.14.0.nix:1:1':
  while evaluating the function at `/home/simons/.nix-defexpr/pkgs/top-level/haskell-packages.nix:113:20':
  while evaluating the attribute `final' at `/home/simons/.nix-defexpr/pkgs/top-level/haskell-packages.nix:114:7':
  while evaluating the function at `/home/simons/.nix-defexpr/pkgs/build-support/cabal/default.nix:9:5':
  while evaluating the function at `/home/simons/.nix-defexpr/pkgs/stdenv/generic/default.nix:51:24':
  while evaluating the attribute `meta.license' at `/home/simons/.nix-defexpr/pkgs/development/libraries/haskell/Cabal/1.14.0.nix:17:5':
  infinite recursion encountered

I tried to figure out why this happens, but eventually gave up. The new
implementation passes an argument called 'enableCheckPhase' to the Cabal
builder, which determines whether the user-specified doCheck value has any
effect or not. Now, a normal override can be used to disable unit testing.
2013-04-19 10:46:18 +02:00
..
buildenv
builder-defs Remove unnecessary parentheses around if conditions 2012-12-28 19:54:15 +01:00
cabal haskell-packages.nix: fix the implementation of 'cabalNoTest' 2013-04-19 10:46:18 +02:00
checker Remove unnecessary parentheses around if conditions 2012-12-28 19:54:15 +01:00
clang-wrapper Rename hostDrv -> crossDrv, buildDrv -> nativeDrv 2012-12-28 19:08:19 +01:00
dotnetenv
fetchbzr - fetchbzr and nix-prefetch-bzr now only export, instead of cloning 2013-03-31 19:16:18 -07:00
fetchcvs
fetchdarcs
fetchfile
fetchgit
fetchgitrevision
fetchhg Remove unnecessary parentheses around if conditions 2012-12-28 19:54:15 +01:00
fetchmtn Rename buildNativeInputs -> nativeBuildInputs 2012-12-28 19:20:09 +01:00
fetchsvn fetchsvn: Add ignoreExternals attribute. 2013-03-27 00:26:55 +01:00
fetchsvnrevision
fetchsvnssh
fetchurl Merge branch 'vlada/xfce-notg' of git://github.com/vcunat/nixpkgs 2013-03-08 17:03:22 -05:00
gcc-cross-wrapper Merge branch 'stdenv-updates' into pi-stdenv-updates 2012-12-28 20:14:01 +00:00
gcc-wrapper gcc-wrapper: avoiding one glibc rebuild, for gcc.crossDrv 2013-04-10 18:26:42 +02:00
kernel Merge branch 'master' into stdenv-updates 2013-02-21 11:13:30 -05:00
make-desktopitem
make-startupitem
make-symlinks
mono-dll-fixer
native-darwin-cctools-wrapper
nuke-references
release pkgs/build-support/release/nix-build.nix: unconfuse syntax highlighting 2013-04-18 12:18:39 +02:00
setup-hooks Rename buildNativeInputs -> nativeBuildInputs 2012-12-28 19:20:09 +01:00
src-only
substitute
upstream-updater Adding ZPAQ archiver 2013-03-09 16:33:14 +04:00
vm Debian VM image: Update to 6.0.7 2013-03-15 12:48:35 +01:00
vsenv
replace-dependency.nix replace-dependency: Eelco has ruled, lowerCamelCase > dash-case :( 2013-01-13 11:15:01 -05:00
source-from-head-fun.nix
trivial-builders.nix Rename buildNativeInputs -> nativeBuildInputs 2012-12-28 19:20:09 +01:00