From 631ad32b5dbde2bff2d935669c66ca561997b405 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 26 Dec 2013 20:14:31 +0100 Subject: [PATCH] pkgs/build-support/cabal: the configure-phase warning check can be disabled by setting 'strictConfigurePhase' to 'false' This is necessary for some packages, like dns, because cabal warns about multiple versions of the same dependency being used, but the usage is fine, actually, so we want the build to succeed. Packages that depend on 'doctest' also have this issue . --- pkgs/build-support/cabal/default.nix | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix index bf956f6e553..6dc83963d19 100644 --- a/pkgs/build-support/cabal/default.nix +++ b/pkgs/build-support/cabal/default.nix @@ -141,6 +141,10 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version; # and run any regression test suites the package might have doCheck = enableCheckPhase; + # abort the build if the configure phase detects that the package + # depends on multiple versions of the same build input + strictConfigurePhase = true; + # pass the '--enable-library-vanilla' flag to cabal in the # configure stage to enable building shared libraries inherit enableStaticLibraries; @@ -198,11 +202,13 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version; echo "configure flags: $extraConfigureFlags $configureFlags" ./Setup configure --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' \ --libsubdir='$pkgid' $extraConfigureFlags $configureFlags 2>&1 \ + ${optionalString self.strictConfigurePhase '' | ${coreutils}/bin/tee "$NIX_BUILD_TOP/cabal-configure.log" - if ${gnugrep}/bin/egrep -q '^Warning:.*depends on multiple versions' "$NIX_BUILD_TOP/cabal-configure.log"; then - echo >&2 "*** abort because of serious configure-time warning from Cabal" - exit 1 - fi + if ${gnugrep}/bin/egrep -q '^Warning:.*depends on multiple versions' "$NIX_BUILD_TOP/cabal-configure.log"; then + echo >&2 "*** abort because of serious configure-time warning from Cabal" + exit 1 + fi + ''} eval "$postConfigure" '';