From 65e9b88bc849e76040ed7947591ea7172cd02db5 Mon Sep 17 00:00:00 2001
From: Herbert Valerio Riedel <hvr@gnu.org>
Date: Wed, 9 Apr 2014 22:55:36 +0200
Subject: [PATCH] Add `integer-{gmp,simple}` and `template-haskell` to list of
 non-upgradables

This is related to #667 and similiar issues
---
 cabal-install/Distribution/Client/Dependency.hs           | 3 ++-
 .../Distribution/Client/Dependency/Modular/Solver.hs      | 8 ++++++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/cabal-install/Distribution/Client/Dependency.hs b/cabal-install/Distribution/Client/Dependency.hs
index b5c6184ed8..f7a2249f4d 100644
--- a/cabal-install/Distribution/Client/Dependency.hs
+++ b/cabal-install/Distribution/Client/Dependency.hs
@@ -228,7 +228,8 @@ dontUpgradeBasePackage params =
     extraConstraints =
       [ PackageConstraintInstalled pkgname
       | all (/=PackageName "base") (depResolverTargets params)
-      , pkgname <-  [ PackageName "base", PackageName "ghc-prim" ]
+      , pkgname <- map PackageName [ "base", "ghc-prim", "integer-gmp"
+                                   , "integer-simple", "template-haskell" ]
       , isInstalled pkgname ]
     -- TODO: the top down resolver chokes on the base constraints
     -- below when there are no targets and thus no dep on base.
diff --git a/cabal-install/Distribution/Client/Dependency/Modular/Solver.hs b/cabal-install/Distribution/Client/Dependency/Modular/Solver.hs
index b1cb0e9bf2..0d9308c61f 100644
--- a/cabal-install/Distribution/Client/Dependency/Modular/Solver.hs
+++ b/cabal-install/Distribution/Client/Dependency/Modular/Solver.hs
@@ -49,6 +49,10 @@ solve sc idx userPrefs userConstraints userGoals =
                        validateTree idx
     prunePhase       = (if avoidReinstalls sc then P.avoidReinstalls (const True) else id) .
                        -- packages that can never be "upgraded":
-                       P.requireInstalled (`elem` [PackageName "base",
-                                                   PackageName "ghc-prim"])
+                       P.requireInstalled (`elem` [ PackageName "base"
+                                                  , PackageName "ghc-prim"
+                                                  , PackageName "integer-gmp"
+                                                  , PackageName "integer-simple"
+                                                  , PackageName "template-haskell"
+                                                  ])
     buildPhase       = buildTree idx (independentGoals sc) userGoals
-- 
GitLab