summary refs log tree commit diff
path: root/pkgs/build-support/cabal/default.nix
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2014-01-04 12:45:06 +0100
committerVladimír Čunát <vcunat@gmail.com>2014-01-04 18:34:53 +0100
commit9443129b08b37a6f4267d257cd8d42dd92a2539c (patch)
treeaec261361299cc2d85827dbcf5d03b594ae85e28 /pkgs/build-support/cabal/default.nix
parentf78534ca0f8ec63d79370eb2367605579efba088 (diff)
parentf6d51f7717cffd8b220ce02498db8b8359b5964c (diff)
downloadnixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.tar
nixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.tar.gz
nixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.tar.bz2
nixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.tar.lz
nixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.tar.xz
nixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.tar.zst
nixlib-9443129b08b37a6f4267d257cd8d42dd92a2539c.zip
Merge master into stdenv-updates
Conflicts:
	pkgs/development/libraries/glibc/2.18/common.nix (take stdenv-updates)
	pkgs/misc/emulators/zsnes/default.nix (more complex, build tested)
	pkgs/top-level/all-packages.nix (auto-solved)
Diffstat (limited to 'pkgs/build-support/cabal/default.nix')
-rw-r--r--pkgs/build-support/cabal/default.nix15
1 files changed, 14 insertions, 1 deletions
diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix
index cfa6175744f5..6dc83963d19d 100644
--- a/pkgs/build-support/cabal/default.nix
+++ b/pkgs/build-support/cabal/default.nix
@@ -1,6 +1,7 @@
 # generic builder for Cabal packages
 
 { stdenv, fetchurl, lib, pkgconfig, ghc, Cabal, jailbreakCabal, glibcLocales
+, gnugrep, coreutils
 , enableLibraryProfiling ? false
 , enableSharedLibraries ? false
 , enableSharedExecutables ? false
@@ -140,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;
@@ -195,7 +200,15 @@ 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
+              ./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
+              ''}
 
               eval "$postConfigure"
             '';