From 6141aef49b37297e94c9e33a977438c2de15d086 Mon Sep 17 00:00:00 2001 From: Andreas Klebinger Date: Wed, 3 Mar 2021 15:43:19 +0100 Subject: Update bounds/hadrian to fix bootstrapping with 9.0. This fixes #19484. In detail we: * Bump the index-state of hackage. * Require alex-3.2.6, as alex-3.2.5 doesn't build with 9.0. * Allow Cabal-3.4 as 3.2 doesn't build with ghc 9.0. * Allow a newer QuickCheck version that accepts the new base version. * Some code changes to account for Cabal changes. --- hadrian/cabal.project | 2 +- hadrian/hadrian.cabal | 6 +++--- hadrian/src/Hadrian/Haskell/Cabal/Parse.hs | 4 +++- hadrian/src/Hadrian/Haskell/Cabal/Type.hs | 6 +++--- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/hadrian/cabal.project b/hadrian/cabal.project index 834cd17362..ed0e5f768e 100644 --- a/hadrian/cabal.project +++ b/hadrian/cabal.project @@ -1,7 +1,7 @@ packages: ./ -- This essentially freezes the build plan for hadrian -index-state: 2020-12-21T14:48:20Z +index-state: 2021-03-03T13:52:16Z -- N.B. Compile with -O0 since this is not a performance-critical executable -- and the Cabal takes nearly twice as long to build with -O1. See #16817. diff --git a/hadrian/hadrian.cabal b/hadrian/hadrian.cabal index c39d5a92cf..c82ff82428 100644 --- a/hadrian/hadrian.cabal +++ b/hadrian/hadrian.cabal @@ -134,8 +134,8 @@ executable hadrian , BangPatterns other-extensions: MultiParamTypeClasses , TypeFamilies - build-depends: Cabal >= 3.0 && < 3.3 - , QuickCheck >= 2.6 && < 2.14 + build-depends: Cabal >= 3.0 && < 3.5 + , QuickCheck >= 2.6 && < 2.15 , base >= 4.8 && < 5 , bytestring >= 0.10 && < 0.12 , containers >= 0.5 && < 0.7 @@ -147,7 +147,7 @@ executable hadrian , shake >= 0.18.3 && < 0.20 , transformers >= 0.4 && < 0.6 , unordered-containers >= 0.2.1 && < 0.3 - build-tools: alex >= 3.2.6 && < 4 + build-tools: alex >= 3.2.6 && < 3.3 , happy >= 1.20.0 && < 1.21 ghc-options: -Wall -Wincomplete-record-updates diff --git a/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs b/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs index 7b31961154..776edb15e7 100644 --- a/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs +++ b/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs @@ -37,11 +37,13 @@ import qualified Distribution.InstalledPackageInfo as Installed import qualified Distribution.Simple.PackageIndex as C import qualified Distribution.Text as C import qualified Distribution.Types.LocalBuildInfo as C -import qualified Distribution.Types.CondTree as C import qualified Distribution.Types.MungedPackageId as C #if MIN_VERSION_Cabal(3,2,0) import qualified Distribution.Utils.ShortText as C #endif +#if !MIN_VERSION_Cabal(3,4,0) +import qualified Distribution.Types.CondTree as C +#endif import qualified Distribution.Verbosity as C import Hadrian.Expression import Hadrian.Haskell.Cabal diff --git a/hadrian/src/Hadrian/Haskell/Cabal/Type.hs b/hadrian/src/Hadrian/Haskell/Cabal/Type.hs index e55360a1cf..664c7de790 100644 --- a/hadrian/src/Hadrian/Haskell/Cabal/Type.hs +++ b/hadrian/src/Hadrian/Haskell/Cabal/Type.hs @@ -15,7 +15,7 @@ import Development.Shake.Classes import Distribution.PackageDescription import GHC.Generics -import Hadrian.Package +import Hadrian.Package as Hadrian -- | Haskell package metadata extracted from a Cabal file without performing -- the resolution of package configuration flags and associated conditionals, @@ -25,7 +25,7 @@ import Hadrian.Package -- target OS. See 'ContextData' for metadata obtained after resolving package -- configuration flags and conditionals according to the current build context. data PackageData = PackageData - { name :: PackageName + { name :: Hadrian.PackageName , version :: String , synopsis :: String , description :: String @@ -38,7 +38,7 @@ data PackageData = PackageData -- See 'PackageData' for metadata that can be obtained without resolving package -- configuration flags and conditionals. data ContextData = ContextData - { dependencies :: [PackageName] + { dependencies :: [Hadrian.PackageName] , componentId :: String , mainIs :: Maybe (String, FilePath) -- ("Main", filepath) , modules :: [String] -- cgit v1.2.1