diff --git a/cabal-install/Distribution/Client/Config.hs b/cabal-install/Distribution/Client/Config.hs index 1c66e8d622f..6c2bfac1d5f 100644 --- a/cabal-install/Distribution/Client/Config.hs +++ b/cabal-install/Distribution/Client/Config.hs @@ -48,8 +48,6 @@ import Distribution.Client.Types ( RemoteRepo(..), Username(..), Password(..), emptyRemoteRepo ) import Distribution.Client.BuildReports.Types ( ReportLevel(..) ) -import Distribution.Client.Dependency.Types - ( ConstraintSource(..) ) import Distribution.Client.Setup ( GlobalFlags(..), globalCommand, defaultGlobalFlags , ConfigExFlags(..), configureExOptions, defaultConfigExFlags @@ -99,6 +97,8 @@ import Distribution.Compiler import Distribution.Verbosity ( Verbosity, normal ) +import Distribution.Solver.Types.ConstraintSource + import Data.List ( partition, find, foldl' ) import Data.Maybe diff --git a/cabal-install/Distribution/Client/Configure.hs b/cabal-install/Distribution/Client/Configure.hs index 31f90f737af..243be246770 100644 --- a/cabal-install/Distribution/Client/Configure.hs +++ b/cabal-install/Distribution/Client/Configure.hs @@ -20,8 +20,7 @@ module Distribution.Client.Configure ( import Distribution.Client.Dependency import Distribution.Client.Dependency.Types - ( ConstraintSource(..) - , LabeledPackageConstraint(..), showConstraintSource ) + ( LabeledPackageConstraint(..) ) import qualified Distribution.Client.InstallPlan as InstallPlan import Distribution.Client.InstallPlan (SolverInstallPlan) import Distribution.Client.IndexUtils as IndexUtils @@ -38,6 +37,7 @@ import Distribution.Package (PackageId) import Distribution.Client.JobControl (Lock) import qualified Distribution.Solver.Types.ComponentDeps as CD +import Distribution.Solver.Types.ConstraintSource import Distribution.Solver.Types.OptionalStanza import Distribution.Solver.Types.PackageIndex ( PackageIndex, elemByPackageName ) diff --git a/cabal-install/Distribution/Client/Dependency.hs b/cabal-install/Distribution/Client/Dependency.hs index 18aa86d5042..b597ae5caa0 100644 --- a/cabal-install/Distribution/Client/Dependency.hs +++ b/cabal-install/Distribution/Client/Dependency.hs @@ -74,10 +74,9 @@ import Distribution.Client.Types , UnresolvedPkgLoc, UnresolvedSourcePackage , enableStanzas ) import Distribution.Client.Dependency.Types - ( PreSolver(..), Solver(..), DependencyResolver, ResolverPackage(..) + ( PreSolver(..), Solver(..), DependencyResolver , PackageConstraint(..), showPackageConstraint , LabeledPackageConstraint(..), unlabelPackageConstraint - , ConstraintSource(..), showConstraintSource , PackagePreferences(..), InstalledPreference(..) , PackagesPreferenceDefault(..) ) import Distribution.Client.Sandbox.Types @@ -116,10 +115,12 @@ import Distribution.Verbosity import Distribution.Solver.Types.ComponentDeps (ComponentDeps) import qualified Distribution.Solver.Types.ComponentDeps as CD +import Distribution.Solver.Types.ConstraintSource import Distribution.Solver.Types.OptionalStanza import qualified Distribution.Solver.Types.PackageIndex as PackageIndex import Distribution.Solver.Types.PkgConfigDb (PkgConfigDb) import Distribution.Solver.Types.Progress +import Distribution.Solver.Types.ResolverPackage import Distribution.Solver.Types.Settings import Distribution.Solver.Types.SolverId import Distribution.Solver.Types.SolverPackage diff --git a/cabal-install/Distribution/Client/Dependency/TopDown.hs b/cabal-install/Distribution/Client/Dependency/TopDown.hs index b29828ab1bb..b56989e49eb 100644 --- a/cabal-install/Distribution/Client/Dependency/TopDown.hs +++ b/cabal-install/Distribution/Client/Dependency/TopDown.hs @@ -23,7 +23,7 @@ import Distribution.Client.Types ( UnresolvedPkgLoc , UnresolvedSourcePackage, enableStanzas ) import Distribution.Client.Dependency.Types - ( DependencyResolver, ResolverPackage(..) + ( DependencyResolver , PackageConstraint(..), unlabelPackageConstraint , PackagePreferences(..), InstalledPreference(..) ) @@ -58,6 +58,7 @@ import qualified Distribution.Solver.Types.ComponentDeps as CD import qualified Distribution.Solver.Types.PackageIndex as PackageIndex import Distribution.Solver.Types.PackageIndex ( PackageIndex ) import Distribution.Solver.Types.Progress +import Distribution.Solver.Types.ResolverPackage import Distribution.Solver.Types.SolverId import Distribution.Solver.Types.SolverPackage import Distribution.Solver.Types.SourcePackage diff --git a/cabal-install/Distribution/Client/Dependency/Types.hs b/cabal-install/Distribution/Client/Dependency/Types.hs index 9d84997677e..ed76dd16e68 100644 --- a/cabal-install/Distribution/Client/Dependency/Types.hs +++ b/cabal-install/Distribution/Client/Dependency/Types.hs @@ -1,6 +1,4 @@ -{-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveGeneric #-} -{-# LANGUAGE GeneralizedNewtypeDeriving #-} ----------------------------------------------------------------------------- -- | -- Module : Distribution.Client.Dependency.Types @@ -18,7 +16,6 @@ module Distribution.Client.Dependency.Types ( Solver(..), DependencyResolver, - ResolverPackage(..), PackageConstraint(..), showPackageConstraint, @@ -27,28 +24,25 @@ module Distribution.Client.Dependency.Types ( PackagesPreferenceDefault(..), LabeledPackageConstraint(..), - ConstraintSource(..), - unlabelPackageConstraint, - showConstraintSource + unlabelPackageConstraint ) where import Data.Char ( isAlpha, toLower ) +import Distribution.Solver.Types.ConstraintSource import Distribution.Solver.Types.OptionalStanza import Distribution.Solver.Types.PkgConfigDb ( PkgConfigDb ) import Distribution.Solver.Types.PackageIndex ( PackageIndex ) import Distribution.Solver.Types.Progress +import Distribution.Solver.Types.ResolverPackage import Distribution.Solver.Types.SourcePackage -import Distribution.Solver.Types.SolverPackage import qualified Distribution.Compat.ReadP as Parse ( pfail, munch1 ) import Distribution.PackageDescription ( FlagAssignment, FlagName(..) ) -import Distribution.InstalledPackageInfo - ( InstalledPackageInfo ) import Distribution.Simple.PackageIndex ( InstalledPackageIndex ) import Distribution.Package ( PackageName ) @@ -110,14 +104,6 @@ type DependencyResolver loc = Platform -> [PackageName] -> Progress String String [ResolverPackage loc] --- | The dependency resolver picks either pre-existing installed packages --- or it picks source packages along with package configuration. --- --- This is like the 'InstallPlan.PlanPackage' but with fewer cases. --- -data ResolverPackage loc = PreExisting InstalledPackageInfo - | Configured (SolverPackage loc) - -- | Per-package constraints. Package constraints must be respected by the -- solver. Multiple constraints for each package can be given, though obviously -- it is possible to construct conflicting constraints (eg impossible version @@ -206,65 +192,3 @@ data LabeledPackageConstraint unlabelPackageConstraint :: LabeledPackageConstraint -> PackageConstraint unlabelPackageConstraint (LabeledPackageConstraint pc _) = pc - --- | Source of a 'PackageConstraint'. -data ConstraintSource = - - -- | Main config file, which is ~/.cabal/config by default. - ConstraintSourceMainConfig FilePath - - -- | Local cabal.project file - | ConstraintSourceProjectConfig FilePath - - -- | Sandbox config file, which is ./cabal.sandbox.config by default. - | ConstraintSourceSandboxConfig FilePath - - -- | User config file, which is ./cabal.config by default. - | ConstraintSourceUserConfig FilePath - - -- | Flag specified on the command line. - | ConstraintSourceCommandlineFlag - - -- | Target specified by the user, e.g., @cabal install package-0.1.0.0@ - -- implies @package==0.1.0.0@. - | ConstraintSourceUserTarget - - -- | Internal requirement to use installed versions of packages like ghc-prim. - | ConstraintSourceNonUpgradeablePackage - - -- | Internal requirement to use the add-source version of a package when that - -- version is installed and the source is modified. - | ConstraintSourceModifiedAddSourceDep - - -- | Internal constraint used by @cabal freeze@. - | ConstraintSourceFreeze - - -- | Constraint specified by a config file, a command line flag, or a user - -- target, when a more specific source is not known. - | ConstraintSourceConfigFlagOrTarget - - -- | The source of the constraint is not specified. - | ConstraintSourceUnknown - deriving (Eq, Show, Generic) - -instance Binary ConstraintSource - --- | Description of a 'ConstraintSource'. -showConstraintSource :: ConstraintSource -> String -showConstraintSource (ConstraintSourceMainConfig path) = - "main config " ++ path -showConstraintSource (ConstraintSourceProjectConfig path) = - "project config " ++ path -showConstraintSource (ConstraintSourceSandboxConfig path) = - "sandbox config " ++ path -showConstraintSource (ConstraintSourceUserConfig path)= "user config " ++ path -showConstraintSource ConstraintSourceCommandlineFlag = "command line flag" -showConstraintSource ConstraintSourceUserTarget = "user target" -showConstraintSource ConstraintSourceNonUpgradeablePackage = - "non-upgradeable package" -showConstraintSource ConstraintSourceModifiedAddSourceDep = - "modified add-source dependency" -showConstraintSource ConstraintSourceFreeze = "cabal freeze" -showConstraintSource ConstraintSourceConfigFlagOrTarget = - "config file, command line flag, or user target" -showConstraintSource ConstraintSourceUnknown = "unknown source" diff --git a/cabal-install/Distribution/Client/Freeze.hs b/cabal-install/Distribution/Client/Freeze.hs index bd63d325509..fb308aad654 100644 --- a/cabal-install/Distribution/Client/Freeze.hs +++ b/cabal-install/Distribution/Client/Freeze.hs @@ -21,7 +21,7 @@ import Distribution.Client.Types import Distribution.Client.Targets import Distribution.Client.Dependency import Distribution.Client.Dependency.Types - ( ConstraintSource(..), LabeledPackageConstraint(..) ) + ( LabeledPackageConstraint(..) ) import Distribution.Client.IndexUtils as IndexUtils ( getSourcePackages, getInstalledPackages ) import Distribution.Client.InstallPlan @@ -36,6 +36,7 @@ import Distribution.Client.Sandbox.PackageEnvironment import Distribution.Client.Sandbox.Types ( SandboxPackageInfo(..) ) +import Distribution.Solver.Types.ConstraintSource import Distribution.Solver.Types.OptionalStanza import Distribution.Solver.Types.PkgConfigDb ( PkgConfigDb, readPkgConfigDb ) diff --git a/cabal-install/Distribution/Client/Install.hs b/cabal-install/Distribution/Client/Install.hs index 78e16961cea..463c14f3152 100644 --- a/cabal-install/Distribution/Client/Install.hs +++ b/cabal-install/Distribution/Client/Install.hs @@ -72,7 +72,7 @@ import Distribution.Client.Configure ( chooseCabalVersion, configureSetupScript, checkConfigExFlags ) import Distribution.Client.Dependency import Distribution.Client.Dependency.Types - ( Solver(..), ConstraintSource(..), LabeledPackageConstraint(..) ) + ( Solver(..), LabeledPackageConstraint(..) ) import Distribution.Client.FetchUtils import Distribution.Client.HttpUtils ( HttpTransport (..) ) @@ -110,6 +110,7 @@ import Distribution.Client.Compat.ExecutablePath import Distribution.Client.JobControl import qualified Distribution.Solver.Types.ComponentDeps as CD +import Distribution.Solver.Types.ConstraintSource import Distribution.Solver.Types.OptionalStanza import qualified Distribution.Solver.Types.PackageIndex as SourcePackageIndex import Distribution.Solver.Types.PackageFixedDeps diff --git a/cabal-install/Distribution/Client/ProjectConfig/Legacy.hs b/cabal-install/Distribution/Client/ProjectConfig/Legacy.hs index 31b4f1888fe..60473e8c0b5 100644 --- a/cabal-install/Distribution/Client/ProjectConfig/Legacy.hs +++ b/cabal-install/Distribution/Client/ProjectConfig/Legacy.hs @@ -23,11 +23,11 @@ module Distribution.Client.ProjectConfig.Legacy ( import Distribution.Client.ProjectConfig.Types import Distribution.Client.Types ( RemoteRepo(..), emptyRemoteRepo ) -import Distribution.Client.Dependency.Types - ( ConstraintSource(..) ) import Distribution.Client.Config ( SavedConfig(..), remoteRepoFields ) +import Distribution.Solver.Types.ConstraintSource + import Distribution.Package import Distribution.PackageDescription ( SourceRepo(..), RepoKind(..) ) diff --git a/cabal-install/Distribution/Client/ProjectConfig/Types.hs b/cabal-install/Distribution/Client/ProjectConfig/Types.hs index 27bed0884c7..93c4c7aaddb 100644 --- a/cabal-install/Distribution/Client/ProjectConfig/Types.hs +++ b/cabal-install/Distribution/Client/ProjectConfig/Types.hs @@ -22,14 +22,14 @@ module Distribution.Client.ProjectConfig.Types ( import Distribution.Client.Types ( RemoteRepo ) import Distribution.Client.Dependency.Types - ( PreSolver, ConstraintSource ) + ( PreSolver ) import Distribution.Client.Targets ( UserConstraint ) import Distribution.Client.BuildReports.Types ( ReportLevel(..) ) import Distribution.Solver.Types.Settings - ( ReorderGoals, StrongFlags ) +import Distribution.Solver.Types.ConstraintSource import Distribution.Package ( PackageName, PackageId, UnitId, Dependency ) diff --git a/cabal-install/Distribution/Client/ProjectPlanning.hs b/cabal-install/Distribution/Client/ProjectPlanning.hs index d9a808a4a2b..f396c0d68fd 100644 --- a/cabal-install/Distribution/Client/ProjectPlanning.hs +++ b/cabal-install/Distribution/Client/ProjectPlanning.hs @@ -78,6 +78,7 @@ import Distribution.Utils.NubList import qualified Distribution.Solver.Types.ComponentDeps as CD import Distribution.Solver.Types.ComponentDeps (ComponentDeps) +import Distribution.Solver.Types.ConstraintSource import Distribution.Solver.Types.OptionalStanza import Distribution.Solver.Types.PackageFixedDeps import qualified Distribution.Solver.Types.PackageIndex as SourcePackageIndex diff --git a/cabal-install/Distribution/Client/Sandbox/PackageEnvironment.hs b/cabal-install/Distribution/Client/Sandbox/PackageEnvironment.hs index 04c9632ae61..18588bd3729 100644 --- a/cabal-install/Distribution/Client/Sandbox/PackageEnvironment.hs +++ b/cabal-install/Distribution/Client/Sandbox/PackageEnvironment.hs @@ -36,7 +36,6 @@ import Distribution.Client.Config ( SavedConfig(..), commentSavedConfig , installDirsFields, withProgramsFields , withProgramOptionsFields , defaultCompiler ) -import Distribution.Client.Dependency.Types ( ConstraintSource (..) ) import Distribution.Client.ParseUtils ( parseFields, ppFields, ppSection ) import Distribution.Client.Setup ( GlobalFlags(..), ConfigExFlags(..) , InstallFlags(..) @@ -51,6 +50,7 @@ import Distribution.Simple.Setup ( Flag(..) , ConfigFlags(..), HaddockFlags(..) , fromFlagOrDefault, toFlag, flagToMaybe ) import Distribution.Simple.Utils ( die, info, notice, warn ) +import Distribution.Solver.Types.ConstraintSource import Distribution.ParseUtils ( FieldDescr(..), ParseResult(..) , commaListField, commaNewLineListField , liftField, lineNo, locatedErrorMsg diff --git a/cabal-install/Distribution/Client/Setup.hs b/cabal-install/Distribution/Client/Setup.hs index bdf953d3ba2..edb3622780c 100644 --- a/cabal-install/Distribution/Client/Setup.hs +++ b/cabal-install/Distribution/Client/Setup.hs @@ -59,7 +59,7 @@ import Distribution.Client.Types import Distribution.Client.BuildReports.Types ( ReportLevel(..) ) import Distribution.Client.Dependency.Types - ( PreSolver(..), ConstraintSource(..) ) + ( PreSolver(..) ) import qualified Distribution.Client.Init.Types as IT ( InitFlags(..), PackageType(..) ) import Distribution.Client.Targets @@ -67,6 +67,7 @@ import Distribution.Client.Targets import Distribution.Utils.NubList ( NubList, toNubList, fromNubList) +import Distribution.Solver.Types.ConstraintSource import Distribution.Solver.Types.Settings import Distribution.Simple.Compiler (PackageDB) diff --git a/cabal-install/Distribution/Client/Targets.hs b/cabal-install/Distribution/Client/Targets.hs index 6d796bb156a..82c53b39aa9 100644 --- a/cabal-install/Distribution/Client/Targets.hs +++ b/cabal-install/Distribution/Client/Targets.hs @@ -58,9 +58,10 @@ import Distribution.Client.Types ( PackageLocation(..) , ResolvedPkgLoc, UnresolvedSourcePackage ) import Distribution.Client.Dependency.Types - ( PackageConstraint(..), ConstraintSource(..) + ( PackageConstraint(..) , LabeledPackageConstraint(..) ) +import Distribution.Solver.Types.ConstraintSource import Distribution.Solver.Types.OptionalStanza import Distribution.Solver.Types.PackageIndex (PackageIndex) import qualified Distribution.Solver.Types.PackageIndex as PackageIndex diff --git a/cabal-install/Distribution/Client/Types.hs b/cabal-install/Distribution/Client/Types.hs index 1294905c247..40d9f382875 100644 --- a/cabal-install/Distribution/Client/Types.hs +++ b/cabal-install/Distribution/Client/Types.hs @@ -1,6 +1,5 @@ {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveGeneric #-} -{-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE BangPatterns #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# OPTIONS_GHC -fno-warn-orphans #-} diff --git a/cabal-install/Distribution/Solver/Modular/ConfiguredConversion.hs b/cabal-install/Distribution/Solver/Modular/ConfiguredConversion.hs index 7f1c6414b2a..551ec33b159 100644 --- a/cabal-install/Distribution/Solver/Modular/ConfiguredConversion.hs +++ b/cabal-install/Distribution/Solver/Modular/ConfiguredConversion.hs @@ -7,14 +7,14 @@ import Prelude hiding (pi) import Distribution.Package (UnitId, packageId) -import Distribution.Client.Dependency.Types (ResolverPackage(..)) import qualified Distribution.Simple.PackageIndex as SI import Distribution.Solver.Modular.Configured import Distribution.Solver.Modular.Package -import qualified Distribution.Solver.Types.PackageIndex as CI import Distribution.Solver.Types.ComponentDeps (ComponentDeps) +import qualified Distribution.Solver.Types.PackageIndex as CI +import Distribution.Solver.Types.ResolverPackage import Distribution.Solver.Types.SolverId import Distribution.Solver.Types.SolverPackage import Distribution.Solver.Types.SourcePackage diff --git a/cabal-install/Distribution/Solver/Modular/Message.hs b/cabal-install/Distribution/Solver/Modular/Message.hs index 95208bf3960..5cefa26f6cd 100644 --- a/cabal-install/Distribution/Solver/Modular/Message.hs +++ b/cabal-install/Distribution/Solver/Modular/Message.hs @@ -15,9 +15,8 @@ import Distribution.Solver.Modular.Flag import Distribution.Solver.Modular.Package import Distribution.Solver.Modular.Tree ( FailReason(..), POption(..) ) +import Distribution.Solver.Types.ConstraintSource import Distribution.Solver.Types.Progress -import Distribution.Client.Dependency.Types - ( ConstraintSource(..), showConstraintSource ) data Message = Enter -- ^ increase indentation level diff --git a/cabal-install/Distribution/Solver/Modular/Preference.hs b/cabal-install/Distribution/Solver/Modular/Preference.hs index fb9c3470ad1..1dc4a00142d 100644 --- a/cabal-install/Distribution/Solver/Modular/Preference.hs +++ b/cabal-install/Distribution/Solver/Modular/Preference.hs @@ -29,8 +29,9 @@ import Data.Map (Map) import Data.Traversable (sequence) import Distribution.Client.Dependency.Types - ( PackageConstraint(..), LabeledPackageConstraint(..), ConstraintSource(..) + ( PackageConstraint(..), LabeledPackageConstraint(..) , PackagePreferences(..), InstalledPreference(..) ) +import Distribution.Solver.Types.ConstraintSource import Distribution.Solver.Types.OptionalStanza import Distribution.Solver.Modular.Dependency diff --git a/cabal-install/Distribution/Solver/Modular/Tree.hs b/cabal-install/Distribution/Solver/Modular/Tree.hs index 58c794abb7c..32908b01704 100644 --- a/cabal-install/Distribution/Solver/Modular/Tree.hs +++ b/cabal-install/Distribution/Solver/Modular/Tree.hs @@ -26,7 +26,7 @@ import Distribution.Solver.Modular.Package import Distribution.Solver.Modular.PSQ (PSQ) import qualified Distribution.Solver.Modular.PSQ as P import Distribution.Solver.Modular.Version -import Distribution.Client.Dependency.Types ( ConstraintSource(..) ) +import Distribution.Solver.Types.ConstraintSource -- | Type of the search tree. Inlining the choice nodes for now. data Tree a = diff --git a/cabal-install/Distribution/Solver/Types/ConstraintSource.hs b/cabal-install/Distribution/Solver/Types/ConstraintSource.hs new file mode 100644 index 00000000000..4f378c70d02 --- /dev/null +++ b/cabal-install/Distribution/Solver/Types/ConstraintSource.hs @@ -0,0 +1,72 @@ +{-# LANGUAGE DeriveGeneric #-} +module Distribution.Solver.Types.ConstraintSource + ( ConstraintSource(..) + , showConstraintSource + ) where + +import GHC.Generics (Generic) +import Distribution.Compat.Binary (Binary(..)) + +import Prelude hiding (fail) + +-- | Source of a 'PackageConstraint'. +data ConstraintSource = + + -- | Main config file, which is ~/.cabal/config by default. + ConstraintSourceMainConfig FilePath + + -- | Local cabal.project file + | ConstraintSourceProjectConfig FilePath + + -- | Sandbox config file, which is ./cabal.sandbox.config by default. + | ConstraintSourceSandboxConfig FilePath + + -- | User config file, which is ./cabal.config by default. + | ConstraintSourceUserConfig FilePath + + -- | Flag specified on the command line. + | ConstraintSourceCommandlineFlag + + -- | Target specified by the user, e.g., @cabal install package-0.1.0.0@ + -- implies @package==0.1.0.0@. + | ConstraintSourceUserTarget + + -- | Internal requirement to use installed versions of packages like ghc-prim. + | ConstraintSourceNonUpgradeablePackage + + -- | Internal requirement to use the add-source version of a package when that + -- version is installed and the source is modified. + | ConstraintSourceModifiedAddSourceDep + + -- | Internal constraint used by @cabal freeze@. + | ConstraintSourceFreeze + + -- | Constraint specified by a config file, a command line flag, or a user + -- target, when a more specific source is not known. + | ConstraintSourceConfigFlagOrTarget + + -- | The source of the constraint is not specified. + | ConstraintSourceUnknown + deriving (Eq, Show, Generic) + +instance Binary ConstraintSource + +-- | Description of a 'ConstraintSource'. +showConstraintSource :: ConstraintSource -> String +showConstraintSource (ConstraintSourceMainConfig path) = + "main config " ++ path +showConstraintSource (ConstraintSourceProjectConfig path) = + "project config " ++ path +showConstraintSource (ConstraintSourceSandboxConfig path) = + "sandbox config " ++ path +showConstraintSource (ConstraintSourceUserConfig path)= "user config " ++ path +showConstraintSource ConstraintSourceCommandlineFlag = "command line flag" +showConstraintSource ConstraintSourceUserTarget = "user target" +showConstraintSource ConstraintSourceNonUpgradeablePackage = + "non-upgradeable package" +showConstraintSource ConstraintSourceModifiedAddSourceDep = + "modified add-source dependency" +showConstraintSource ConstraintSourceFreeze = "cabal freeze" +showConstraintSource ConstraintSourceConfigFlagOrTarget = + "config file, command line flag, or user target" +showConstraintSource ConstraintSourceUnknown = "unknown source" diff --git a/cabal-install/Distribution/Solver/Types/ResolverPackage.hs b/cabal-install/Distribution/Solver/Types/ResolverPackage.hs new file mode 100644 index 00000000000..19517d7b4a8 --- /dev/null +++ b/cabal-install/Distribution/Solver/Types/ResolverPackage.hs @@ -0,0 +1,15 @@ +module Distribution.Solver.Types.ResolverPackage + ( ResolverPackage(..) + ) where + +import Distribution.InstalledPackageInfo (InstalledPackageInfo) +import Distribution.Solver.Types.SolverPackage + +-- | The dependency resolver picks either pre-existing installed packages +-- or it picks source packages along with package configuration. +-- +-- This is like the 'InstallPlan.PlanPackage' but with fewer cases. +-- +data ResolverPackage loc = PreExisting InstalledPackageInfo + | Configured (SolverPackage loc) + diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal index 11a2451ee00..4636e1b3b31 100644 --- a/cabal-install/cabal-install.cabal +++ b/cabal-install/cabal-install.cabal @@ -216,12 +216,14 @@ executable cabal Distribution.Client.Compat.Process Distribution.Client.Compat.Semaphore Distribution.Solver.Types.ComponentDeps + Distribution.Solver.Types.ConstraintSource Distribution.Solver.Types.Internal.Utils Distribution.Solver.Types.OptionalStanza Distribution.Solver.Types.PackageFixedDeps Distribution.Solver.Types.PackageIndex Distribution.Solver.Types.PkgConfigDb Distribution.Solver.Types.Progress + Distribution.Solver.Types.ResolverPackage Distribution.Solver.Types.Settings Distribution.Solver.Types.SolverId Distribution.Solver.Types.SolverPackage diff --git a/cabal-install/tests/UnitTests/Distribution/Client/ProjectConfig.hs b/cabal-install/tests/UnitTests/Distribution/Client/ProjectConfig.hs index 40e618cdd72..5acb03ecd1a 100644 --- a/cabal-install/tests/UnitTests/Distribution/Client/ProjectConfig.hs +++ b/cabal-install/tests/UnitTests/Distribution/Client/ProjectConfig.hs @@ -31,6 +31,7 @@ import Distribution.Client.Targets import Distribution.Utils.NubList import Network.URI +import Distribution.Solver.Types.ConstraintSource import Distribution.Solver.Types.OptionalStanza import Distribution.Solver.Types.Settings diff --git a/cabal-install/tests/UnitTests/Distribution/Solver/Modular/DSL.hs b/cabal-install/tests/UnitTests/Distribution/Solver/Modular/DSL.hs index 7a8eb4c5410..4c3be71d2c0 100644 --- a/cabal-install/tests/UnitTests/Distribution/Solver/Modular/DSL.hs +++ b/cabal-install/tests/UnitTests/Distribution/Solver/Modular/DSL.hs @@ -48,6 +48,7 @@ import qualified Distribution.Client.InstallPlan as CI.InstallPlan import Distribution.Solver.Types.ComponentDeps (ComponentDeps) import qualified Distribution.Solver.Types.ComponentDeps as CD +import Distribution.Solver.Types.ConstraintSource import Distribution.Solver.Types.OptionalStanza import qualified Distribution.Solver.Types.PackageIndex as CI.PackageIndex import qualified Distribution.Solver.Types.PkgConfigDb as PC