* gnu/packages/patches/cabal-install-base16-bytestring1.0.patch: New patch. * gnu/packages/patches/cabal-install-ghc8.10.patch: Ditto. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/haskell-apps.scm (cabal-install) [source]: Use them.
		
			
				
	
	
		
			393 lines
		
	
	
	
		
			16 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			393 lines
		
	
	
	
		
			16 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From ac9b41eef3c781ce188ded2551f98fe75152e30c Mon Sep 17 00:00:00 2001
 | 
						|
From: Oleg Grenrus <oleg.grenrus@iki.fi>
 | 
						|
Date: Tue, 14 Apr 2020 11:31:34 +0300
 | 
						|
Subject: [PATCH] GHC-8.10 support for 3.2
 | 
						|
 | 
						|
Includes cherry-picked commits:
 | 
						|
 | 
						|
- Test cabal-install with GHC-8.10 #6709
 | 
						|
- Add GHC-8.10.1 job. Only tests Cabal-the-lib part atm. #6617
 | 
						|
 | 
						|
Also add topHandler' signature.
 | 
						|
---
 | 
						|
 .docker/validate-8.10.1.dockerfile            |  60 ++++++
 | 
						|
 .github/workflows/artifacts.yml               |   6 +-
 | 
						|
 .github/workflows/bootstrap.yml               |   4 +-
 | 
						|
 .github/workflows/linux.yml                   | 179 ++++++++++++------
 | 
						|
 .github/workflows/macos.yml                   |  40 ++--
 | 
						|
 .github/workflows/quick-jobs.yml              |   4 +-
 | 
						|
 .github/workflows/windows.yml                 | 117 +++++++++++-
 | 
						|
 .../Distribution/PackageDescription/Quirks.hs |  19 +-
 | 
						|
 Makefile                                      |   4 +
 | 
						|
 boot/ci-artifacts.template.yml                |   6 +-
 | 
						|
 boot/ci-bootstrap.template.yml                |   4 +-
 | 
						|
 boot/ci-linux.template.yml                    |   8 +-
 | 
						|
 boot/ci-macos.template.yml                    |   7 +-
 | 
						|
 boot/ci-quick-jobs.template.yml               |   4 +-
 | 
						|
 boot/ci-windows.template.yml                  |   8 +-
 | 
						|
 cabal-dev-scripts/src/GenValidate.hs          |  33 ++--
 | 
						|
 Distribution/Client/CmdSdist.hs |   3 +
 | 
						|
 .../Distribution/Client/FetchUtils.hs         |   4 +-
 | 
						|
 .../Distribution/Client/IndexUtils.hs         |   2 +-
 | 
						|
 Distribution/Client/Sandbox.hs  |   5 +-
 | 
						|
 .../Distribution/Client/TargetSelector.hs     |   2 +-
 | 
						|
 Distribution/Client/Update.hs   |   4 +-
 | 
						|
 .../Distribution/Client/Utils/Json.hs         |  13 +-
 | 
						|
 .../Distribution/Solver/Modular/Assignment.hs |  11 +-
 | 
						|
 .../Distribution/Solver/Modular/Builder.hs    |  10 +-
 | 
						|
 .../Distribution/Solver/Modular/Index.hs      |   6 +-
 | 
						|
 .../Solver/Modular/IndexConversion.hs         |   8 +-
 | 
						|
 .../Distribution/Solver/Modular/Solver.hs     |  12 +-
 | 
						|
 .../Distribution/Solver/Modular/Validate.hs   |   5 +-
 | 
						|
 bootstrap.sh                    |   6 +-
 | 
						|
 cabal-install.cabal             |   4 +-
 | 
						|
 cabal-install.cabal.pp          |   4 +-
 | 
						|
 .../targets/complex/q/q.cabal                 |   3 +-
 | 
						|
 cabal-testsuite/cabal-testsuite.cabal         |   4 +-
 | 
						|
 validate.sh                                   |  21 +-
 | 
						|
 35 files changed, 461 insertions(+), 169 deletions(-)
 | 
						|
 create mode 100644 .docker/validate-8.10.1.dockerfile
 | 
						|
diff --git a/Distribution/Client/CmdSdist.hs b/Distribution/Client/CmdSdist.hs
 | 
						|
index 9ce0c80100e..a22317004c4 100644
 | 
						|
--- a/Distribution/Client/CmdSdist.hs
 | 
						|
+++ b/Distribution/Client/CmdSdist.hs
 | 
						|
@@ -237,7 +237,10 @@ packageToSdist verbosity projectRootDir format outputFile pkg = do
 | 
						|
         (norm NoExec -> nonexec, norm Exec -> exec) <-
 | 
						|
            listPackageSources verbosity (flattenPackageDescription $ packageDescription pkg) knownSuffixHandlers
 | 
						|
 
 | 
						|
+        print $ map snd exec
 | 
						|
+        print $ map snd nonexec
 | 
						|
         let files =  nub . sortOn snd $ nonexec ++ exec
 | 
						|
+        print files
 | 
						|
 
 | 
						|
         case format of
 | 
						|
             SourceList nulSep -> do
 | 
						|
diff --git a/Distribution/Client/FetchUtils.hs b/Distribution/Client/FetchUtils.hs
 | 
						|
index e9a31a91f84..4e5e581f9ec 100644
 | 
						|
--- a/Distribution/Client/FetchUtils.hs
 | 
						|
+++ b/Distribution/Client/FetchUtils.hs
 | 
						|
@@ -176,8 +176,8 @@ fetchRepoTarball verbosity' repoCtxt repo pkgid = do
 | 
						|
     verbosity = verboseUnmarkOutput verbosity'
 | 
						|
 
 | 
						|
     downloadRepoPackage = case repo of
 | 
						|
-      RepoLocal{..} -> return (packageFile repo pkgid)
 | 
						|
-      RepoLocalNoIndex{..} -> return (packageFile repo pkgid)
 | 
						|
+      RepoLocal{} -> return (packageFile repo pkgid)
 | 
						|
+      RepoLocalNoIndex{} -> return (packageFile repo pkgid)
 | 
						|
 
 | 
						|
       RepoRemote{..} -> do
 | 
						|
         transport <- repoContextGetTransport repoCtxt
 | 
						|
diff --git a/Distribution/Client/IndexUtils.hs b/Distribution/Client/IndexUtils.hs
 | 
						|
index a76becc05ba..bf0ff7cf5ba 100644
 | 
						|
--- a/Distribution/Client/IndexUtils.hs
 | 
						|
+++ b/Distribution/Client/IndexUtils.hs
 | 
						|
@@ -634,7 +634,7 @@ withIndexEntries
 | 
						|
     -> ([IndexCacheEntry] -> IO a)
 | 
						|
     -> ([NoIndexCacheEntry] -> IO a)
 | 
						|
     -> IO a
 | 
						|
-withIndexEntries _ (RepoIndex repoCtxt repo@RepoSecure{..}) callback _ =
 | 
						|
+withIndexEntries _ (RepoIndex repoCtxt repo@RepoSecure{}) callback _ =
 | 
						|
     repoContextWithSecureRepo repoCtxt repo $ \repoSecure ->
 | 
						|
       Sec.withIndex repoSecure $ \Sec.IndexCallbacks{..} -> do
 | 
						|
         -- Incrementally (lazily) read all the entries in the tar file in order,
 | 
						|
diff --git a/Distribution/Client/Sandbox.hs b/Distribution/Client/Sandbox.hs
 | 
						|
index 66b415d7239..14bad3f2135 100644
 | 
						|
--- a/Distribution/Client/Sandbox.hs
 | 
						|
+++ b/Distribution/Client/Sandbox.hs
 | 
						|
@@ -666,7 +666,7 @@ reinstallAddSourceDeps :: Verbosity
 | 
						|
                           -> FilePath
 | 
						|
                           -> IO WereDepsReinstalled
 | 
						|
 reinstallAddSourceDeps verbosity configFlags' configExFlags
 | 
						|
-                       installFlags globalFlags sandboxDir = topHandler' $ do
 | 
						|
+                       installFlags globalFlags sandboxDir = topHandlerWith errorMsg $ do
 | 
						|
   let sandboxDistPref     = sandboxBuildDir sandboxDir
 | 
						|
       configFlags         = configFlags'
 | 
						|
                             { configDistPref  = Flag sandboxDistPref }
 | 
						|
@@ -710,7 +710,8 @@ reinstallAddSourceDeps verbosity configFlags' configExFlags
 | 
						|
         ++ "offending packages or recreating the sandbox."
 | 
						|
       logMsg message rest = debugNoWrap verbosity message >> rest
 | 
						|
 
 | 
						|
-      topHandler' = topHandlerWith $ \_ -> do
 | 
						|
+      errorMsg :: a -> IO WereDepsReinstalled
 | 
						|
+      errorMsg _ = do
 | 
						|
         warn verbosity "Couldn't reinstall some add-source dependencies."
 | 
						|
         -- Here we can't know whether any deps have been reinstalled, so we have
 | 
						|
         -- to be conservative.
 | 
						|
diff --git a/Distribution/Client/TargetSelector.hs b/Distribution/Client/TargetSelector.hs
 | 
						|
index 23d92f580fd..f8f683d9875 100644
 | 
						|
--- a/Distribution/Client/TargetSelector.hs
 | 
						|
+++ b/Distribution/Client/TargetSelector.hs
 | 
						|
@@ -222,7 +222,7 @@ readTargetSelectorsWith :: (Applicative m, Monad m) => DirActions m
 | 
						|
                         -> Maybe ComponentKindFilter
 | 
						|
                         -> [String]
 | 
						|
                         -> m (Either [TargetSelectorProblem] [TargetSelector])
 | 
						|
-readTargetSelectorsWith dirActions@DirActions{..} pkgs mfilter targetStrs =
 | 
						|
+readTargetSelectorsWith dirActions@DirActions{} pkgs mfilter targetStrs =
 | 
						|
     case parseTargetStrings targetStrs of
 | 
						|
       ([], usertargets) -> do
 | 
						|
         usertargets' <- mapM (getTargetStringFileStatus dirActions) usertargets
 | 
						|
diff --git a/Distribution/Client/Update.hs b/Distribution/Client/Update.hs
 | 
						|
index 52bb1f76c96..8ded78b9d2e 100644
 | 
						|
--- a/Distribution/Client/Update.hs
 | 
						|
+++ b/Distribution/Client/Update.hs
 | 
						|
@@ -73,8 +73,8 @@ updateRepo :: Verbosity -> UpdateFlags -> RepoContext -> Repo -> IO ()
 | 
						|
 updateRepo verbosity updateFlags repoCtxt repo = do
 | 
						|
   transport <- repoContextGetTransport repoCtxt
 | 
						|
   case repo of
 | 
						|
-    RepoLocal{..} -> return ()
 | 
						|
-    RepoLocalNoIndex{..} -> return ()
 | 
						|
+    RepoLocal{} -> return ()
 | 
						|
+    RepoLocalNoIndex{} -> return ()
 | 
						|
     RepoRemote{..} -> do
 | 
						|
       downloadResult <- downloadIndex transport verbosity repoRemote repoLocalDir
 | 
						|
       case downloadResult of
 | 
						|
diff --git a/Distribution/Client/Utils/Json.hs b/Distribution/Client/Utils/Json.hs
 | 
						|
index 89a13af87a4..01d5753136b 100644
 | 
						|
--- a/Distribution/Client/Utils/Json.hs
 | 
						|
+++ b/Distribution/Client/Utils/Json.hs
 | 
						|
@@ -15,12 +15,9 @@ module Distribution.Client.Utils.Json
 | 
						|
     )
 | 
						|
     where
 | 
						|
 
 | 
						|
-import Data.Char
 | 
						|
-import Data.Int
 | 
						|
-import Data.String
 | 
						|
-import Data.Word
 | 
						|
-import Data.List
 | 
						|
-import Data.Monoid
 | 
						|
+import Distribution.Client.Compat.Prelude
 | 
						|
+
 | 
						|
+import Data.Char (intToDigit)
 | 
						|
 
 | 
						|
 import Data.ByteString.Builder (Builder)
 | 
						|
 import qualified Data.ByteString.Builder as BB
 | 
						|
@@ -135,13 +132,13 @@ encodeArrayBB :: [Value] -> Builder
 | 
						|
 encodeArrayBB [] = "[]"
 | 
						|
 encodeArrayBB jvs = BB.char8 '[' <> go jvs <> BB.char8 ']'
 | 
						|
   where
 | 
						|
-    go = Data.Monoid.mconcat . intersperse (BB.char8 ',') . map encodeValueBB
 | 
						|
+    go = mconcat . intersperse (BB.char8 ',') . map encodeValueBB
 | 
						|
 
 | 
						|
 encodeObjectBB :: Object -> Builder
 | 
						|
 encodeObjectBB [] = "{}"
 | 
						|
 encodeObjectBB jvs = BB.char8 '{' <> go jvs <> BB.char8 '}'
 | 
						|
   where
 | 
						|
-    go = Data.Monoid.mconcat . intersperse (BB.char8 ',') . map encPair
 | 
						|
+    go = mconcat . intersperse (BB.char8 ',') . map encPair
 | 
						|
     encPair (l,x) = encodeStringBB l <> BB.char8 ':' <> encodeValueBB x
 | 
						|
 
 | 
						|
 encodeStringBB :: String -> Builder
 | 
						|
diff --git a/Distribution/Solver/Modular/Assignment.hs b/Distribution/Solver/Modular/Assignment.hs
 | 
						|
index be5e63bfbc1..b05a099ec5a 100644
 | 
						|
--- a/Distribution/Solver/Modular/Assignment.hs
 | 
						|
+++ b/Distribution/Solver/Modular/Assignment.hs
 | 
						|
@@ -9,10 +9,11 @@ module Distribution.Solver.Modular.Assignment
 | 
						|
 import Prelude ()
 | 
						|
 import Distribution.Solver.Compat.Prelude hiding (pi)
 | 
						|
 
 | 
						|
-import Data.Array as A
 | 
						|
-import Data.List as L
 | 
						|
-import Data.Map as M
 | 
						|
-import Data.Maybe
 | 
						|
+import qualified Data.Array as A
 | 
						|
+import qualified Data.List as L
 | 
						|
+import qualified Data.Map as M
 | 
						|
+
 | 
						|
+import Data.Maybe (fromJust)
 | 
						|
 
 | 
						|
 import Distribution.PackageDescription (FlagAssignment, mkFlagAssignment) -- from Cabal
 | 
						|
 
 | 
						|
@@ -79,7 +80,7 @@ toCPs (A pa fa sa) rdm =
 | 
						|
     -- Dependencies per package.
 | 
						|
     depp :: QPN -> [(Component, PI QPN)]
 | 
						|
     depp qpn = let v :: Vertex
 | 
						|
-                   v   = fromJust (cvm qpn)
 | 
						|
+                   v   = fromJust (cvm qpn) -- TODO: why this is safe?
 | 
						|
                    dvs :: [(Component, Vertex)]
 | 
						|
                    dvs = tg A.! v
 | 
						|
                in L.map (\ (comp, dv) -> case vm dv of (_, x, _) -> (comp, PI x (pa M.! x))) dvs
 | 
						|
diff --git a/Distribution/Solver/Modular/Builder.hs b/Distribution/Solver/Modular/Builder.hs
 | 
						|
index eb11a36aa16..5d196f4fd9f 100644
 | 
						|
--- a/Distribution/Solver/Modular/Builder.hs
 | 
						|
+++ b/Distribution/Solver/Modular/Builder.hs
 | 
						|
@@ -19,10 +19,10 @@ module Distribution.Solver.Modular.Builder (
 | 
						|
 -- flag-guarded dependencies, we cannot introduce them immediately. Instead, we
 | 
						|
 -- store the entire dependency.
 | 
						|
 
 | 
						|
-import Data.List as L
 | 
						|
-import Data.Map as M
 | 
						|
-import Data.Set as S
 | 
						|
-import Prelude hiding (sequence, mapM)
 | 
						|
+import qualified Data.List as L
 | 
						|
+import qualified Data.Map as M
 | 
						|
+import qualified Data.Set as S
 | 
						|
+import Prelude
 | 
						|
 
 | 
						|
 import qualified Distribution.Solver.Modular.ConflictSet as CS
 | 
						|
 import Distribution.Solver.Modular.Dependency
 | 
						|
@@ -55,7 +55,7 @@ data BuildState = BS {
 | 
						|
 }
 | 
						|
 
 | 
						|
 -- | Map of available linking targets.
 | 
						|
-type LinkingState = Map (PN, I) [PackagePath]
 | 
						|
+type LinkingState = M.Map (PN, I) [PackagePath]
 | 
						|
 
 | 
						|
 -- | Extend the set of open goals with the new goals listed.
 | 
						|
 --
 | 
						|
diff --git a/Distribution/Solver/Modular/Index.hs b/Distribution/Solver/Modular/Index.hs
 | 
						|
index fdddfc8237a..ac60fec7d65 100644
 | 
						|
--- a/Distribution/Solver/Modular/Index.hs
 | 
						|
+++ b/Distribution/Solver/Modular/Index.hs
 | 
						|
@@ -6,10 +6,12 @@ module Distribution.Solver.Modular.Index
 | 
						|
     , mkIndex
 | 
						|
     ) where
 | 
						|
 
 | 
						|
-import Data.List as L
 | 
						|
-import Data.Map as M
 | 
						|
 import Prelude hiding (pi)
 | 
						|
 
 | 
						|
+import Data.Map (Map)
 | 
						|
+import qualified Data.List as L
 | 
						|
+import qualified Data.Map as M
 | 
						|
+
 | 
						|
 import Distribution.Solver.Modular.Dependency
 | 
						|
 import Distribution.Solver.Modular.Flag
 | 
						|
 import Distribution.Solver.Modular.Package
 | 
						|
diff --git a/Distribution/Solver/Modular/IndexConversion.hs b/Distribution/Solver/Modular/IndexConversion.hs
 | 
						|
index c9565c80dba..8e9ef614184 100644
 | 
						|
--- a/Distribution/Solver/Modular/IndexConversion.hs
 | 
						|
+++ b/Distribution/Solver/Modular/IndexConversion.hs
 | 
						|
@@ -2,12 +2,12 @@ module Distribution.Solver.Modular.IndexConversion
 | 
						|
     ( convPIs
 | 
						|
     ) where
 | 
						|
 
 | 
						|
-import Data.List as L
 | 
						|
+import qualified Data.List as L
 | 
						|
 import Data.Map.Strict (Map)
 | 
						|
 import qualified Data.Map.Strict as M
 | 
						|
-import Data.Maybe
 | 
						|
+import Data.Maybe (mapMaybe, fromMaybe, maybeToList)
 | 
						|
 import Data.Monoid as Mon
 | 
						|
-import Data.Set as S
 | 
						|
+import qualified Data.Set as S
 | 
						|
 
 | 
						|
 import Distribution.Compiler
 | 
						|
 import Distribution.InstalledPackageInfo as IPI
 | 
						|
@@ -330,7 +330,7 @@ flagInfo (StrongFlags strfl) =
 | 
						|
 
 | 
						|
 -- | Internal package names, which should not be interpreted as true
 | 
						|
 -- dependencies.
 | 
						|
-type IPNs = Set PN
 | 
						|
+type IPNs = S.Set PN
 | 
						|
 
 | 
						|
 -- | Convenience function to delete a 'Dependency' if it's
 | 
						|
 -- for a 'PN' that isn't actually real.
 | 
						|
diff --git a/Distribution/Solver/Modular/Solver.hs b/Distribution/Solver/Modular/Solver.hs
 | 
						|
index 32452550556..e6aa1fb4374 100644
 | 
						|
--- a/Distribution/Solver/Modular/Solver.hs
 | 
						|
+++ b/Distribution/Solver/Modular/Solver.hs
 | 
						|
@@ -9,9 +9,9 @@ module Distribution.Solver.Modular.Solver
 | 
						|
     , PruneAfterFirstSuccess(..)
 | 
						|
     ) where
 | 
						|
 
 | 
						|
-import Data.Map as M
 | 
						|
-import Data.List as L
 | 
						|
-import Data.Set as S
 | 
						|
+import qualified Data.Map as M
 | 
						|
+import qualified Data.List as L
 | 
						|
+import qualified Data.Set as S
 | 
						|
 import Distribution.Verbosity
 | 
						|
 
 | 
						|
 import Distribution.Compiler (CompilerInfo)
 | 
						|
@@ -91,8 +91,8 @@ solve :: SolverConfig                         -- ^ solver parameters
 | 
						|
       -> Index                                -- ^ all available packages as an index
 | 
						|
       -> PkgConfigDb                          -- ^ available pkg-config pkgs
 | 
						|
       -> (PN -> PackagePreferences)           -- ^ preferences
 | 
						|
-      -> Map PN [LabeledPackageConstraint]    -- ^ global constraints
 | 
						|
-      -> Set PN                               -- ^ global goals
 | 
						|
+      -> M.Map PN [LabeledPackageConstraint]  -- ^ global constraints
 | 
						|
+      -> S.Set PN                             -- ^ global goals
 | 
						|
       -> RetryLog Message SolverFailure (Assignment, RevDepMap)
 | 
						|
 solve sc cinfo idx pkgConfigDB userPrefs userConstraints userGoals =
 | 
						|
   explorePhase     $
 | 
						|
@@ -232,7 +232,7 @@ instance GSimpleTree (Tree d c) where
 | 
						|
 
 | 
						|
       -- Show conflict set
 | 
						|
       goCS :: ConflictSet -> String
 | 
						|
-      goCS cs = "{" ++ (intercalate "," . L.map showVar . CS.toList $ cs) ++ "}"
 | 
						|
+      goCS cs = "{" ++ (L.intercalate "," . L.map showVar . CS.toList $ cs) ++ "}"
 | 
						|
 #endif
 | 
						|
 
 | 
						|
 -- | Replace all goal reasons with a dummy goal reason in the tree
 | 
						|
diff --git a/Distribution/Solver/Modular/Validate.hs b/Distribution/Solver/Modular/Validate.hs
 | 
						|
index 6195d101b02..a3dec6e1f67 100644
 | 
						|
--- a/Distribution/Solver/Modular/Validate.hs
 | 
						|
+++ b/Distribution/Solver/Modular/Validate.hs
 | 
						|
@@ -15,11 +15,12 @@ module Distribution.Solver.Modular.Validate (validateTree) where
 | 
						|
 import Control.Applicative
 | 
						|
 import Control.Monad.Reader hiding (sequence)
 | 
						|
 import Data.Function (on)
 | 
						|
-import Data.List as L
 | 
						|
-import Data.Set as S
 | 
						|
 import Data.Traversable
 | 
						|
 import Prelude hiding (sequence)
 | 
						|
 
 | 
						|
+import qualified Data.List as L
 | 
						|
+import qualified Data.Set as S
 | 
						|
+
 | 
						|
 import Language.Haskell.Extension (Extension, Language)
 | 
						|
 
 | 
						|
 import Data.Map.Strict as M
 | 
						|
diff --git a/bootstrap.sh b/bootstrap.sh
 | 
						|
index 077d7f4efd2..d5141660474 100755
 | 
						|
--- a/bootstrap.sh
 | 
						|
+++ b/bootstrap.sh
 | 
						|
@@ -260,9 +260,9 @@ EDIT_DISTANCE_VER="0.2.2.1"; EDIT_DISTANCE_VER_REGEXP="0\.2\.2\.?"
 | 
						|
                        # 0.2.2.*
 | 
						|
 ED25519_VER="0.0.5.0"; ED25519_VER_REGEXP="0\.0\.?"
 | 
						|
                        # 0.0.*
 | 
						|
-HACKAGE_SECURITY_VER="0.6.0.0"; HACKAGE_SECURITY_VER_REGEXP="0\.6\."
 | 
						|
-                       # >= 0.7.0.0 && < 0.7
 | 
						|
-TAR_VER="0.5.1.0";     TAR_VER_REGEXP="0\.5\.([1-9]|1[0-9]|0\.[3-9]|0\.1[0-9])\.?"
 | 
						|
+HACKAGE_SECURITY_VER="0.6.0.1"; HACKAGE_SECURITY_VER_REGEXP="0\.6\."
 | 
						|
+                       # >= 0.6.0.0 && < 0.7
 | 
						|
+TAR_VER="0.5.1.1";     TAR_VER_REGEXP="0\.5\.([1-9]|1[0-9]|0\.[3-9]|0\.1[0-9])\.?"
 | 
						|
                        # >= 0.5.0.3  && < 0.6
 | 
						|
 DIGEST_VER="0.0.1.2"; DIGEST_REGEXP="0\.0\.(1\.[2-9]|[2-9]\.?)"
 | 
						|
                        # >= 0.0.1.2 && < 0.1
 | 
						|
diff --git a/cabal-install.cabal b/cabal-install.cabal
 | 
						|
index 985ea9a5a69..c9d713c29fe 100644
 | 
						|
--- a/cabal-install.cabal
 | 
						|
+++ b/cabal-install.cabal
 | 
						|
@@ -316,7 +316,7 @@ executable cabal
 | 
						|
     build-depends:
 | 
						|
         async      >= 2.0      && < 2.3,
 | 
						|
         array      >= 0.4      && < 0.6,
 | 
						|
-        base       >= 4.8      && < 4.14,
 | 
						|
+        base       >= 4.8      && < 4.15,
 | 
						|
         base16-bytestring >= 0.1.1 && < 0.2,
 | 
						|
         binary     >= 0.7.3    && < 0.9,
 | 
						|
         bytestring >= 0.10.6.0 && < 0.11,
 | 
						|
@@ -341,7 +341,7 @@ executable cabal
 | 
						|
         time       >= 1.5.0.1  && < 1.10,
 | 
						|
         transformers >= 0.4.2.0 && < 0.6,
 | 
						|
         zlib       >= 0.5.3    && < 0.7,
 | 
						|
-        hackage-security >= 0.6.0.0 && < 0.7,
 | 
						|
+        hackage-security >= 0.6.0.1 && < 0.7,
 | 
						|
         text       >= 1.2.3    && < 1.3,
 | 
						|
         parsec     >= 3.1.13.0 && < 3.2
 | 
						|
 
 | 
						|
diff --git a/tests/IntegrationTests2/targets/complex/q/q.cabal b/tests/IntegrationTests2/targets/complex/q/q.cabal
 | 
						|
index 556fa4a4202..7ee22fcb28d 100644
 | 
						|
--- a/tests/IntegrationTests2/targets/complex/q/q.cabal
 | 
						|
+++ b/tests/IntegrationTests2/targets/complex/q/q.cabal
 | 
						|
@@ -5,7 +5,8 @@ cabal-version: >= 1.2
 | 
						|
 
 | 
						|
 library
 | 
						|
   exposed-modules: Q
 | 
						|
-  build-depends: base, filepath
 | 
						|
+  -- we rely that filepath has filepath-tests component
 | 
						|
+  build-depends: base, filepath >=1.4.0.0
 | 
						|
 
 | 
						|
 executable buildable-false
 | 
						|
   main-is: Main.hs
 |