From 6a1a57423b6251ffa082f412d090bd2a1cb7fe95 Mon Sep 17 00:00:00 2001
From: ilovezfs <ilovezfs@icloud.com>
Date: Sun, 14 Feb 2016 01:55:02 -0800
Subject: [PATCH] Haskell#cabal_install more robust deps resolution

The default max-backjumps can be too low, especially since
Language::Haskell::Cabal doesn't guarantee an LTS config.

In particular, this fixes a git-annex build failure in Homebrew/homebrew#47950

Closes Homebrew/homebrew#49158.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
---
 Library/Homebrew/language/haskell.rb | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/Library/Homebrew/language/haskell.rb b/Library/Homebrew/language/haskell.rb
index dd9bc5bc8a..9928b63223 100644
--- a/Library/Homebrew/language/haskell.rb
+++ b/Library/Homebrew/language/haskell.rb
@@ -45,7 +45,13 @@ module Language
       end
 
       def cabal_install(*args)
-        system "cabal", "install", "--jobs=#{ENV.make_jobs}", *args
+        # cabal-install's dependency-resolution backtracking strategy can easily
+        # need more than the default 2,000 maximum number of "backjumps," since
+        # Hackage is a fast-moving, rolling-release target. The highest known
+        # needed value by a formula at this time (February 2016) was 43,478 for
+        # git-annex, so 100,000 should be enough to avoid most gratuitous
+        # backjumps build failures.
+        system "cabal", "install", "--jobs=#{ENV.make_jobs}", "--max-backjumps=100000", *args
       end
 
       def cabal_install_tools(*tools)
-- 
GitLab