@@ -1265,7 +1265,7 @@ elaborateInstallPlan verbosity platform compiler compilerprogdb pkgConfigDB
1265
1265
if null not_per_component_reasons
1266
1266
then return comps
1267
1267
else do checkPerPackageOk comps not_per_component_reasons
1268
- return [elaborateSolverToPackage mapDep spkg g $
1268
+ return [elaborateSolverToPackage spkg g $
1269
1269
comps ++ maybeToList setupComponent]
1270
1270
Left cns ->
1271
1271
dieProgress $
@@ -1331,7 +1331,7 @@ elaborateInstallPlan verbosity platform compiler compilerprogdb pkgConfigDB
1331
1331
fsep (punctuate comma reasons)
1332
1332
-- TODO: Maybe exclude Backpack too
1333
1333
1334
- elab0 = elaborateSolverToCommon mapDep spkg
1334
+ elab0 = elaborateSolverToCommon spkg
1335
1335
pkgid = elabPkgSourceId elab0
1336
1336
pd = elabPkgDescription elab0
1337
1337
@@ -1556,13 +1556,11 @@ elaborateInstallPlan verbosity platform compiler compilerprogdb pkgConfigDB
1556
1556
Just (Just n) -> display n
1557
1557
_ -> " "
1558
1558
1559
- elaborateSolverToPackage :: (SolverId -> [ElaboratedPlanPackage ])
1560
- -> SolverPackage UnresolvedPkgLoc
1559
+ elaborateSolverToPackage :: SolverPackage UnresolvedPkgLoc
1561
1560
-> ComponentsGraph
1562
1561
-> [ElaboratedConfiguredPackage ]
1563
1562
-> ElaboratedConfiguredPackage
1564
1563
elaborateSolverToPackage
1565
- mapDep
1566
1564
pkg@ (SolverPackage (SourcePackage pkgid _gdesc _srcloc _descOverride)
1567
1565
_flags _stanzas _deps0 _exe_deps0)
1568
1566
compGraph comps =
@@ -1571,7 +1569,7 @@ elaborateInstallPlan verbosity platform compiler compilerprogdb pkgConfigDB
1571
1569
-- of the other fields of the elaboratedPackage.
1572
1570
elab
1573
1571
where
1574
- elab0@ ElaboratedConfiguredPackage {.. } = elaborateSolverToCommon mapDep pkg
1572
+ elab0@ ElaboratedConfiguredPackage {.. } = elaborateSolverToCommon pkg
1575
1573
elab = elab0 {
1576
1574
elabUnitId = newSimpleUnitId pkgInstalledId,
1577
1575
elabComponentId = pkgInstalledId,
@@ -1668,10 +1666,9 @@ elaborateInstallPlan verbosity platform compiler compilerprogdb pkgConfigDB
1668
1666
(compilerId compiler)
1669
1667
pkgInstalledId
1670
1668
1671
- elaborateSolverToCommon :: (SolverId -> [ElaboratedPlanPackage ])
1672
- -> SolverPackage UnresolvedPkgLoc
1669
+ elaborateSolverToCommon :: SolverPackage UnresolvedPkgLoc
1673
1670
-> ElaboratedConfiguredPackage
1674
- elaborateSolverToCommon mapDep
1671
+ elaborateSolverToCommon
1675
1672
pkg@ (SolverPackage (SourcePackage pkgid gdesc srcloc descOverride)
1676
1673
flags stanzas deps0 _exe_deps0) =
1677
1674
elaboratedPackage
@@ -1742,10 +1739,9 @@ elaborateInstallPlan verbosity platform compiler compilerprogdb pkgConfigDB
1742
1739
elabRegisterPackageDBStack = buildAndRegisterDbs
1743
1740
1744
1741
elabSetupScriptStyle = packageSetupScriptStyle elabPkgDescription
1745
- -- Computing the deps here is a little awful
1746
- deps = fmap (concatMap (elaborateLibSolverId mapDep)) deps0
1747
- elabSetupScriptCliVersion = packageSetupScriptSpecVersion
1748
- elabSetupScriptStyle elabPkgDescription deps
1742
+ elabSetupScriptCliVersion =
1743
+ packageSetupScriptSpecVersion
1744
+ elabSetupScriptStyle elabPkgDescription libDepGraph deps0
1749
1745
elabSetupPackageDBStack = buildAndRegisterDbs
1750
1746
1751
1747
buildAndRegisterDbs
@@ -2965,31 +2961,34 @@ defaultSetupDeps compiler platform pkg =
2965
2961
-- of what the solver picked for us, based on the explicit setup deps or the
2966
2962
-- ones added implicitly by 'defaultSetupDeps'.
2967
2963
--
2968
- packageSetupScriptSpecVersion :: Package pkg
2969
- => SetupScriptStyle
2964
+ packageSetupScriptSpecVersion :: SetupScriptStyle
2970
2965
-> PD. PackageDescription
2971
- -> ComponentDeps [pkg ]
2966
+ -> Graph. Graph NonSetupLibDepSolverPlanPackage
2967
+ -> ComponentDeps [SolverId ]
2972
2968
-> Version
2973
2969
2974
2970
-- We're going to be using the internal Cabal library, so the spec version of
2975
2971
-- that is simply the version of the Cabal library that cabal-install has been
2976
2972
-- built with.
2977
- packageSetupScriptSpecVersion SetupNonCustomInternalLib _ _ =
2973
+ packageSetupScriptSpecVersion SetupNonCustomInternalLib _ _ _ =
2978
2974
cabalVersion
2979
2975
2980
2976
-- If we happen to be building the Cabal lib itself then because that
2981
2977
-- bootstraps itself then we use the version of the lib we're building.
2982
- packageSetupScriptSpecVersion SetupCustomImplicitDeps pkg _
2978
+ packageSetupScriptSpecVersion SetupCustomImplicitDeps pkg _ _
2983
2979
| packageName pkg == cabalPkgname
2984
2980
= packageVersion pkg
2985
2981
2986
2982
-- In all other cases we have a look at what version of the Cabal lib the
2987
2983
-- solver picked. Or if it didn't depend on Cabal at all (which is very rare)
2988
2984
-- then we look at the .cabal file to see what spec version it declares.
2989
- packageSetupScriptSpecVersion _ pkg deps =
2990
- case find ((cabalPkgname == ) . packageName) ( CD. setupDeps deps) of
2985
+ packageSetupScriptSpecVersion _ pkg libDepGraph deps =
2986
+ case find ((cabalPkgname == ) . packageName) setupLibDeps of
2991
2987
Just dep -> packageVersion dep
2992
2988
Nothing -> PD. specVersion pkg
2989
+ where
2990
+ setupLibDeps = map packageId $ fromMaybe [] $
2991
+ Graph. closure libDepGraph (CD. setupDeps deps)
2993
2992
2994
2993
2995
2994
cabalPkgname , basePkgname :: PackageName
0 commit comments