Skip to content

Commit 8050fe7

Browse files
author
Iñaki García Etxebarria
committed
Make the solver aware of pkg-config constraints
When solving, we now discard plans that would involve packages with a pkgconfig-depends constraint which is not satisfiable with the current set of installed packages (as listed by pkg-config --list-all). This fixes #3016. It is possible (in principle, although it should be basically impossible in practice) that "pkg-config --modversion pkg1 pkg2... pkgN" fails to execute for various reasons, in particular because N is too large, so the command line becomes too long for the operating system limits. If this happens, revert to the previous behavior of accepting any install plan, regardless of any pkgconfig-depends constraints.
1 parent 639cd00 commit 8050fe7

File tree

19 files changed

+243
-55
lines changed

19 files changed

+243
-55
lines changed

cabal-install/Distribution/Client/Configure.hs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import Distribution.Client.InstallPlan (InstallPlan)
2727
import Distribution.Client.IndexUtils as IndexUtils
2828
( getSourcePackages, getInstalledPackages )
2929
import Distribution.Client.PackageIndex ( PackageIndex, elemByPackageName )
30+
import Distribution.Client.PkgConfigDb (PkgConfigDb, readPkgConfigDb)
3031
import Distribution.Client.Setup
3132
( ConfigExFlags(..), configureCommand, filterConfigureFlags )
3233
import Distribution.Client.Types as Source
@@ -106,11 +107,12 @@ configure verbosity packageDBs repos comp platform conf
106107

107108
installedPkgIndex <- getInstalledPackages verbosity comp packageDBs conf
108109
sourcePkgDb <- getSourcePackages verbosity repos
110+
pkgConfigDb <- readPkgConfigDb verbosity conf
109111
checkConfigExFlags verbosity installedPkgIndex
110112
(packageIndex sourcePkgDb) configExFlags
111113

112114
progress <- planLocalPackage verbosity comp platform configFlags configExFlags
113-
installedPkgIndex sourcePkgDb
115+
installedPkgIndex sourcePkgDb pkgConfigDb
114116

115117
notice verbosity "Resolving dependencies..."
116118
maybePlan <- foldProgress logMsg (return . Left) (return . Right)
@@ -263,10 +265,10 @@ planLocalPackage :: Verbosity -> Compiler
263265
-> ConfigFlags -> ConfigExFlags
264266
-> InstalledPackageIndex
265267
-> SourcePackageDb
268+
-> PkgConfigDb
266269
-> IO (Progress String String InstallPlan)
267270
planLocalPackage verbosity comp platform configFlags configExFlags
268-
installedPkgIndex
269-
(SourcePackageDb _ packagePrefs) = do
271+
installedPkgIndex (SourcePackageDb _ packagePrefs) pkgConfigDb = do
270272
pkg <- readPackageDescription verbosity =<< defaultPackageDesc verbosity
271273
solver <- chooseSolver verbosity (fromFlag $ configSolver configExFlags)
272274
(compilerInfo comp)
@@ -320,7 +322,7 @@ planLocalPackage verbosity comp platform configFlags configExFlags
320322
(SourcePackageDb mempty packagePrefs)
321323
[SpecificSourcePackage localPkg]
322324

323-
return (resolveDependencies platform (compilerInfo comp) solver resolverParams)
325+
return (resolveDependencies platform (compilerInfo comp) pkgConfigDb solver resolverParams)
324326

325327

326328
-- | Call an installer for an 'SourcePackage' but override the configure

cabal-install/Distribution/Client/Dependency.hs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ import Distribution.Simple.PackageIndex (InstalledPackageIndex)
6868
import qualified Distribution.Simple.PackageIndex as InstalledPackageIndex
6969
import qualified Distribution.Client.InstallPlan as InstallPlan
7070
import Distribution.Client.InstallPlan (InstallPlan)
71+
import Distribution.Client.PkgConfigDb (PkgConfigDb)
7172
import Distribution.Client.Types
7273
( SourcePackageDb(SourcePackageDb), SourcePackage(..)
7374
, ConfiguredPackage(..), ConfiguredId(..), enableStanzas )
@@ -533,25 +534,26 @@ runSolver Modular = modularResolver
533534
--
534535
resolveDependencies :: Platform
535536
-> CompilerInfo
537+
-> PkgConfigDb
536538
-> Solver
537539
-> DepResolverParams
538540
-> Progress String String InstallPlan
539541

540542
--TODO: is this needed here? see dontUpgradeNonUpgradeablePackages
541-
resolveDependencies platform comp _solver params
543+
resolveDependencies platform comp _pkgConfigDB _solver params
542544
| null (depResolverTargets params)
543545
= return (validateSolverResult platform comp indGoals [])
544546
where
545547
indGoals = depResolverIndependentGoals params
546548

547-
resolveDependencies platform comp solver params =
549+
resolveDependencies platform comp pkgConfigDB solver params =
548550

549551
Step (showDepResolverParams finalparams)
550552
$ fmap (validateSolverResult platform comp indGoals)
551553
$ runSolver solver (SolverConfig reorderGoals indGoals noReinstalls
552554
shadowing strFlags maxBkjumps)
553555
platform comp installedPkgIndex sourcePkgIndex
554-
preferences constraints targets
556+
pkgConfigDB preferences constraints targets
555557
where
556558

557559
finalparams @ (DepResolverParams

cabal-install/Distribution/Client/Dependency/Modular.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ import Distribution.System
3434
-- | Ties the two worlds together: classic cabal-install vs. the modular
3535
-- solver. Performs the necessary translations before and after.
3636
modularResolver :: SolverConfig -> DependencyResolver
37-
modularResolver sc (Platform arch os) cinfo iidx sidx pprefs pcs pns =
37+
modularResolver sc (Platform arch os) cinfo iidx sidx pkgConfigDB pprefs pcs pns =
3838
fmap (uncurry postprocess) $ -- convert install plan
3939
logToProgress (maxBackjumps sc) $ -- convert log format into progress format
40-
solve sc cinfo idx pprefs gcs pns
40+
solve sc cinfo idx pkgConfigDB pprefs gcs pns
4141
where
4242
-- Indices have to be converted into solver-specific uniform index.
4343
idx = convPIs os arch cinfo (shadowPkgs sc) (strongFlags sc) iidx sidx

cabal-install/Distribution/Client/Dependency/Modular/Assignment.hs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,10 @@ data PreAssignment = PA PPreAssignment FAssignment SAssignment
6565
-- or the successfully extended assignment.
6666
extend :: (Extension -> Bool) -- ^ is a given extension supported
6767
-> (Language -> Bool) -- ^ is a given language supported
68+
-> (PN -> VR -> Bool) -- ^ is a given pkg-config requirement satisfiable
6869
-> Goal QPN
6970
-> PPreAssignment -> [Dep QPN] -> Either (ConflictSet QPN, [Dep QPN]) PPreAssignment
70-
extend extSupported langSupported goal@(Goal var _) = foldM extendSingle
71+
extend extSupported langSupported pkgPresent goal@(Goal var _) = foldM extendSingle
7172
where
7273

7374
extendSingle :: PPreAssignment -> Dep QPN
@@ -78,6 +79,9 @@ extend extSupported langSupported goal@(Goal var _) = foldM extendSingle
7879
extendSingle a (Lang lang) =
7980
if langSupported lang then Right a
8081
else Left (toConflictSet goal, [Lang lang])
82+
extendSingle a (Pkg pn vr) =
83+
if pkgPresent pn vr then Right a
84+
else Left (toConflictSet goal, [Pkg pn vr])
8185
extendSingle a (Dep qpn ci) =
8286
let ci' = M.findWithDefault (Constrained []) qpn a
8387
in case (\ x -> M.insert qpn x a) <$> merge ci' ci of

cabal-install/Distribution/Client/Dependency/Modular/Builder.hs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ extendOpen qpn' gs s@(BS { rdeps = gs', open = o' }) = go gs' o' gs
6161
-- code above is correct; insert/adjust have different arg order
6262
go g o ( (OpenGoal (Simple (Ext _ext ) _) _gr) : ngs) = go g o ngs
6363
go g o ( (OpenGoal (Simple (Lang _lang)_) _gr) : ngs) = go g o ngs
64+
go g o ( (OpenGoal (Simple (Pkg _pn _vr)_) _gr) : ngs)= go g o ngs
6465

6566
cons' = P.cons . forgetCompOpenGoal
6667

@@ -121,6 +122,8 @@ build = ana go
121122
error "Distribution.Client.Dependency.Modular.Builder: build.go called with Ext goal"
122123
go (BS { index = _ , next = OneGoal (OpenGoal (Simple (Lang _ ) _) _ ) }) =
123124
error "Distribution.Client.Dependency.Modular.Builder: build.go called with Lang goal"
125+
go (BS { index = _ , next = OneGoal (OpenGoal (Simple (Pkg _ _ ) _) _ ) }) =
126+
error "Distribution.Client.Dependency.Modular.Builder: build.go called with Pkg goal"
124127
go bs@(BS { index = idx, next = OneGoal (OpenGoal (Simple (Dep qpn@(Q _ pn) _) _) gr) }) =
125128
case M.lookup pn idx of
126129
Nothing -> FailF (toConflictSet (Goal (P qpn) gr)) (BuildFailureNotInIndex pn)

cabal-install/Distribution/Client/Dependency/Modular/Dependency.hs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ type FalseFlaggedDeps qpn = FlaggedDeps Component qpn
208208
data Dep qpn = Dep qpn (CI qpn) -- dependency on a package
209209
| Ext Extension -- dependency on a language extension
210210
| Lang Language -- dependency on a language version
211+
| Pkg PN VR -- dependency on a pkg-config package
211212
deriving (Eq, Show, Functor)
212213

213214
showDep :: Dep QPN -> String
@@ -220,6 +221,9 @@ showDep (Dep qpn ci ) =
220221
showQPN qpn ++ showCI ci
221222
showDep (Ext ext) = "requires " ++ display ext
222223
showDep (Lang lang) = "requires " ++ display lang
224+
showDep (Pkg pn vr) = "requires pkg-config package "
225+
++ display pn ++ display vr
226+
++ ", not found in the pkg-config database"
223227

224228
-- | Options for goal qualification (used in 'qualifyDeps')
225229
--
@@ -263,6 +267,7 @@ qualifyDeps QO{..} (Q pp' pn) = go
263267
qBase (Dep dep _ci) = qoBaseShim && unPackageName dep == "base"
264268
qBase (Ext _) = False
265269
qBase (Lang _) = False
270+
qBase (Pkg _ _) = False
266271

267272
-- Should we qualify this goal with the 'Setup' packaeg path?
268273
qSetup :: Component -> Bool
@@ -393,6 +398,7 @@ instance ResetGoal Dep where
393398
resetGoal g (Dep qpn ci) = Dep qpn (resetGoal g ci)
394399
resetGoal _ (Ext ext) = Ext ext
395400
resetGoal _ (Lang lang) = Lang lang
401+
resetGoal _ (Pkg pn vr) = Pkg pn vr
396402

397403
instance ResetGoal Goal where
398404
resetGoal = const
@@ -431,6 +437,8 @@ close (OpenGoal (Simple (Ext _) _) _ ) =
431437
error "Distribution.Client.Dependency.Modular.Dependency.close: called on Ext goal"
432438
close (OpenGoal (Simple (Lang _) _) _ ) =
433439
error "Distribution.Client.Dependency.Modular.Dependency.close: called on Lang goal"
440+
close (OpenGoal (Simple (Pkg _ _) _) _ ) =
441+
error "Distribution.Client.Dependency.Modular.Dependency.close: called on Pkg goal"
434442
close (OpenGoal (Flagged qfn _ _ _ ) gr) = Goal (F qfn) gr
435443
close (OpenGoal (Stanza qsn _) gr) = Goal (S qsn) gr
436444

cabal-install/Distribution/Client/Dependency/Modular/IndexConversion.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ convCondTree os arch cinfo pi@(PI pn _) fds p comp getInfo (CondNode info ds bra
149149
| p info = L.map (\d -> D.Simple (convDep pn d) comp) ds -- unconditional package dependencies
150150
++ L.map (\e -> D.Simple (Ext e) comp) (PD.allExtensions bi) -- unconditional extension dependencies
151151
++ L.map (\l -> D.Simple (Lang l) comp) (PD.allLanguages bi) -- unconditional language dependencies
152+
++ L.map (\(Dependency pkn vr) -> D.Simple (Pkg pkn vr) comp) (PD.pkgconfigDepends bi) -- unconditional pkg-config dependencies
152153
++ concatMap (convBranch os arch cinfo pi fds p comp getInfo) branches
153154
| otherwise = []
154155
where

cabal-install/Distribution/Client/Dependency/Modular/Linking.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,8 @@ linkDeps parents pp' = mapM_ go
278278
-- No choice is involved, just checking, so there is nothing to link.
279279
go (Simple (Ext _) _) = return ()
280280
go (Simple (Lang _) _) = return ()
281+
-- Similarly for pkg-config constraints
282+
go (Simple (Pkg _ _) _) = return ()
281283
go (Flagged fn _ t f) = do
282284
vs <- get
283285
case M.lookup fn (vsFlags vs) of

cabal-install/Distribution/Client/Dependency/Modular/Solver.hs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import Data.Map as M
77

88
import Distribution.Compiler (CompilerInfo)
99

10+
import Distribution.Client.PkgConfigDb (PkgConfigDb)
11+
1012
import Distribution.Client.Dependency.Types
1113

1214
import Distribution.Client.Dependency.Modular.Assignment
@@ -34,11 +36,12 @@ data SolverConfig = SolverConfig {
3436
solve :: SolverConfig -> -- solver parameters
3537
CompilerInfo ->
3638
Index -> -- all available packages as an index
39+
PkgConfigDb ->
3740
(PN -> PackagePreferences) -> -- preferences
3841
Map PN [LabeledPackageConstraint] -> -- global constraints
3942
[PN] -> -- global goals
4043
Log Message (Assignment, RevDepMap)
41-
solve sc cinfo idx userPrefs userConstraints userGoals =
44+
solve sc cinfo idx pkgConfigDB userPrefs userConstraints userGoals =
4245
explorePhase $
4346
heuristicsPhase $
4447
preferencesPhase $
@@ -60,7 +63,7 @@ solve sc cinfo idx userPrefs userConstraints userGoals =
6063
P.enforcePackageConstraints userConstraints .
6164
P.enforceSingleInstanceRestriction .
6265
validateLinking idx .
63-
validateTree cinfo idx
66+
validateTree cinfo idx pkgConfigDB
6467
prunePhase = (if avoidReinstalls sc then P.avoidReinstalls (const True) else id) .
6568
-- packages that can never be "upgraded":
6669
P.requireInstalled (`elem` [ PackageName "base"

cabal-install/Distribution/Client/Dependency/Modular/Validate.hs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@ import Distribution.Client.Dependency.Modular.Index
2525
import Distribution.Client.Dependency.Modular.Package
2626
import qualified Distribution.Client.Dependency.Modular.PSQ as P
2727
import Distribution.Client.Dependency.Modular.Tree
28+
import Distribution.Client.Dependency.Modular.Version (VR)
2829

2930
import Distribution.Client.ComponentDeps (Component)
31+
import Distribution.Client.PkgConfigDb (PkgConfigDb, pkgConfigPkgIsPresent)
3032

3133
-- In practice, most constraints are implication constraints (IF we have made
3234
-- a number of choices, THEN we also have to ensure that). We call constraints
@@ -82,6 +84,7 @@ import Distribution.Client.ComponentDeps (Component)
8284
data ValidateState = VS {
8385
supportedExt :: Extension -> Bool,
8486
supportedLang :: Language -> Bool,
87+
presentPkgs :: PN -> VR -> Bool,
8588
index :: Index,
8689
saved :: Map QPN (FlaggedDeps Component QPN), -- saved, scoped, dependencies
8790
pa :: PreAssignment,
@@ -132,6 +135,7 @@ validate = cata go
132135
PA ppa pfa psa <- asks pa -- obtain current preassignment
133136
extSupported <- asks supportedExt -- obtain the supported extensions
134137
langSupported <- asks supportedLang -- obtain the supported languages
138+
pkgPresent <- asks presentPkgs -- obtain the present pkg-config pkgs
135139
idx <- asks index -- obtain the index
136140
svd <- asks saved -- obtain saved dependencies
137141
qo <- asks qualifyOptions
@@ -144,7 +148,7 @@ validate = cata go
144148
let goal = Goal (P qpn) gr
145149
let newactives = Dep qpn (Fixed i goal) : L.map (resetGoal goal) (extractDeps pfa psa qdeps)
146150
-- We now try to extend the partial assignment with the new active constraints.
147-
let mnppa = extend extSupported langSupported goal ppa newactives
151+
let mnppa = extend extSupported langSupported pkgPresent goal ppa newactives
148152
-- In case we continue, we save the scoped dependencies
149153
let nsvd = M.insert qpn qdeps svd
150154
case mfr of
@@ -162,6 +166,7 @@ validate = cata go
162166
PA ppa pfa psa <- asks pa -- obtain current preassignment
163167
extSupported <- asks supportedExt -- obtain the supported extensions
164168
langSupported <- asks supportedLang -- obtain the supported languages
169+
pkgPresent <- asks presentPkgs -- obtain the present pkg-config pkgs
165170
svd <- asks saved -- obtain saved dependencies
166171
-- Note that there should be saved dependencies for the package in question,
167172
-- because while building, we do not choose flags before we see the packages
@@ -176,7 +181,7 @@ validate = cata go
176181
-- we have chosen a new flag.
177182
let newactives = extractNewDeps (F qfn) gr b npfa psa qdeps
178183
-- As in the package case, we try to extend the partial assignment.
179-
case extend extSupported langSupported (Goal (F qfn) gr) ppa newactives of
184+
case extend extSupported langSupported pkgPresent (Goal (F qfn) gr) ppa newactives of
180185
Left (c, d) -> return (Fail c (Conflicting d)) -- inconsistency found
181186
Right nppa -> local (\ s -> s { pa = PA nppa npfa psa }) r
182187

@@ -186,6 +191,7 @@ validate = cata go
186191
PA ppa pfa psa <- asks pa -- obtain current preassignment
187192
extSupported <- asks supportedExt -- obtain the supported extensions
188193
langSupported <- asks supportedLang -- obtain the supported languages
194+
pkgPresent <- asks presentPkgs -- obtain the present pkg-config pkgs
189195
svd <- asks saved -- obtain saved dependencies
190196
-- Note that there should be saved dependencies for the package in question,
191197
-- because while building, we do not choose flags before we see the packages
@@ -200,7 +206,7 @@ validate = cata go
200206
-- we have chosen a new flag.
201207
let newactives = extractNewDeps (S qsn) gr b pfa npsa qdeps
202208
-- As in the package case, we try to extend the partial assignment.
203-
case extend extSupported langSupported (Goal (S qsn) gr) ppa newactives of
209+
case extend extSupported langSupported pkgPresent (Goal (S qsn) gr) ppa newactives of
204210
Left (c, d) -> return (Fail c (Conflicting d)) -- inconsistency found
205211
Right nppa -> local (\ s -> s { pa = PA nppa pfa npsa }) r
206212

@@ -248,14 +254,15 @@ extractNewDeps v gr b fa sa = go
248254
Just False -> []
249255

250256
-- | Interface.
251-
validateTree :: CompilerInfo -> Index -> Tree QGoalReasonChain -> Tree QGoalReasonChain
252-
validateTree cinfo idx t = runReader (validate t) VS {
257+
validateTree :: CompilerInfo -> Index -> PkgConfigDb -> Tree QGoalReasonChain -> Tree QGoalReasonChain
258+
validateTree cinfo idx pkgConfigDb t = runReader (validate t) VS {
253259
supportedExt = maybe (const True) -- if compiler has no list of extensions, we assume everything is supported
254260
(\ es -> let s = S.fromList es in \ x -> S.member x s)
255261
(compilerInfoExtensions cinfo)
256262
, supportedLang = maybe (const True)
257263
(flip L.elem) -- use list lookup because language list is small and no Ord instance
258264
(compilerInfoLanguages cinfo)
265+
, presentPkgs = pkgConfigPkgIsPresent pkgConfigDb
259266
, index = idx
260267
, saved = M.empty
261268
, pa = PA M.empty M.empty M.empty

cabal-install/Distribution/Client/Dependency/TopDown.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ search configure pref constraints =
251251
-- the standard 'DependencyResolver' interface.
252252
--
253253
topDownResolver :: DependencyResolver
254-
topDownResolver platform cinfo installedPkgIndex sourcePkgIndex
254+
topDownResolver platform cinfo installedPkgIndex sourcePkgIndex _pkgConfigDB
255255
preferences constraints targets =
256256
mapMessages $ topDownResolver'
257257
platform cinfo

cabal-install/Distribution/Client/Dependency/Types.hs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ import Data.Monoid
4949
( Monoid(..) )
5050
#endif
5151

52+
import Distribution.Client.PkgConfigDb
53+
( PkgConfigDb )
5254
import Distribution.Client.Types
5355
( OptionalStanza(..), SourcePackage(..), ConfiguredPackage )
5456

@@ -110,6 +112,7 @@ type DependencyResolver = Platform
110112
-> CompilerInfo
111113
-> InstalledPackageIndex
112114
-> PackageIndex.PackageIndex SourcePackage
115+
-> PkgConfigDb
113116
-> (PackageName -> PackagePreferences)
114117
-> [LabeledPackageConstraint]
115118
-> [PackageName]

cabal-install/Distribution/Client/Fetch.hs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import Distribution.Client.IndexUtils as IndexUtils
2424
import Distribution.Client.HttpUtils
2525
( configureTransport, HttpTransport(..) )
2626
import qualified Distribution.Client.InstallPlan as InstallPlan
27+
import Distribution.Client.PkgConfigDb
28+
( PkgConfigDb, readPkgConfigDb )
2729
import Distribution.Client.Setup
2830
( GlobalFlags(..), FetchFlags(..) )
2931

@@ -84,6 +86,7 @@ fetch verbosity packageDBs repos comp platform conf
8486

8587
installedPkgIndex <- getInstalledPackages verbosity comp packageDBs conf
8688
sourcePkgDb <- getSourcePackages verbosity repos
89+
pkgConfigDb <- readPkgConfigDb verbosity conf
8790

8891
transport <- configureTransport verbosity (flagToMaybe (globalHttpTransport globalFlags))
8992

@@ -94,7 +97,7 @@ fetch verbosity packageDBs repos comp platform conf
9497

9598
pkgs <- planPackages
9699
verbosity comp platform fetchFlags
97-
installedPkgIndex sourcePkgDb pkgSpecifiers
100+
installedPkgIndex sourcePkgDb pkgConfigDb pkgSpecifiers
98101

99102
pkgs' <- filterM (fmap not . isFetched . packageSource) pkgs
100103
if null pkgs'
@@ -120,18 +123,19 @@ planPackages :: Verbosity
120123
-> FetchFlags
121124
-> InstalledPackageIndex
122125
-> SourcePackageDb
126+
-> PkgConfigDb
123127
-> [PackageSpecifier SourcePackage]
124128
-> IO [SourcePackage]
125129
planPackages verbosity comp platform fetchFlags
126-
installedPkgIndex sourcePkgDb pkgSpecifiers
130+
installedPkgIndex sourcePkgDb pkgConfigDb pkgSpecifiers
127131

128132
| includeDependencies = do
129133
solver <- chooseSolver verbosity
130134
(fromFlag (fetchSolver fetchFlags)) (compilerInfo comp)
131135
notice verbosity "Resolving dependencies..."
132136
installPlan <- foldProgress logMsg die return $
133137
resolveDependencies
134-
platform (compilerInfo comp)
138+
platform (compilerInfo comp) pkgConfigDb
135139
solver
136140
resolverParams
137141

0 commit comments

Comments
 (0)