haskell generic builder: Add flag to allow inconsistent dependencies.

This commit is contained in:
Shea Levy 2018-12-15 13:31:08 -05:00
parent 562c620398
commit 30fb5b0dcf
No known key found for this signature in database
GPG key ID: 5C0BD6957D86FE27
2 changed files with 17 additions and 5 deletions

View file

@ -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

View file

@ -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;
});
}