From 30fb5b0dcf68e94625c48c023e4c7662523f7b24 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Sat, 15 Dec 2018 13:31:08 -0500 Subject: [PATCH] haskell generic builder: Add flag to allow inconsistent dependencies. --- .../haskell-modules/generic-builder.nix | 15 ++++++++++----- pkgs/development/haskell-modules/lib.nix | 7 +++++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index a0bf655a67b7..fc2c008be0c8 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -74,6 +74,10 @@ in , hardeningDisable ? stdenv.lib.optional (ghc.isHaLVM or false) "all" , enableSeparateDataOutput ? false , enableSeparateDocOutput ? doHaddock +, # Don't fail at configure time if there are multiple versions of the + # same package in the (recursive) dependencies of the package being + # built. Will delay failures, if any, to compile time. + allowInconsistentDependencies ? false } @ args: assert editedCabalFile != null -> revision != null; @@ -336,11 +340,12 @@ stdenv.mkDerivation ({ echo configureFlags: $configureFlags ${setupCommand} configure $configureFlags 2>&1 | ${coreutils}/bin/tee "$NIX_BUILD_TOP/cabal-configure.log" - if ${gnugrep}/bin/egrep -q -z '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 - + ${stdenv.lib.optionalString (!allowInconsistentDependencies) '' + if ${gnugrep}/bin/egrep -q -z '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 + ''} export GHC_PACKAGE_PATH="$packageConfDir:" runHook postConfigure diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix index e3b73641989a..9f18db1e6e95 100644 --- a/pkgs/development/haskell-modules/lib.nix +++ b/pkgs/development/haskell-modules/lib.nix @@ -408,4 +408,11 @@ rec { */ generateOptparseApplicativeCompletions = commands: pkg: pkgs.lib.foldr generateOptparseApplicativeCompletion pkg commands; + + # Don't fail at configure time if there are multiple versions of the + # same package in the (recursive) dependencies of the package being + # built. Will delay failures, if any, to compile time. + allowInconsistentDependencies = drv: overrideCabal drv (drv: { + allowInconsistentDependencies = true; + }); }