Skip to content

Commit 39d04e1

Browse files
committed
fix(cabal-install): use the correct packagedb for setup
1 parent a5d1c63 commit 39d04e1

File tree

1 file changed

+23
-16
lines changed

1 file changed

+23
-16
lines changed

cabal-install/src/Distribution/Client/ProjectPlanning.hs

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2245,6 +2245,11 @@ elaborateInstallPlan
22452245
} =
22462246
elaboratedPackage
22472247
where
2248+
compilers = fmap toolchainCompiler toolchains
2249+
platforms = fmap toolchainPlatform toolchains
2250+
programDbs = fmap toolchainProgramDb toolchains
2251+
packageDbs = fmap toolchainPackageDBs toolchains
2252+
22482253
elaboratedPackage = ElaboratedConfiguredPackage{..}
22492254

22502255
-- These get filled in later
@@ -2258,9 +2263,9 @@ elaborateInstallPlan
22582263
elabPkgSourceId = srcpkgPackageId
22592264

22602265
elabStage = solverPkgStage
2261-
elabCompiler = toolchainCompiler (getStage toolchains solverPkgStage)
2262-
elabPlatform = toolchainPlatform (getStage toolchains solverPkgStage)
2263-
elabProgramDb = toolchainProgramDb (getStage toolchains solverPkgStage)
2266+
elabCompiler = getStage compilers elabStage
2267+
elabPlatform = getStage platforms elabStage
2268+
elabProgramDb = getStage programDbs elabStage
22642269

22652270
elabPkgDescription = case PD.finalizePD
22662271
solverPkgFlags
@@ -2330,9 +2335,9 @@ elaborateInstallPlan
23302335
then BuildInplaceOnly OnDisk
23312336
else BuildAndInstall
23322337

2333-
elabPackageDbs = Cabal.interpretPackageDbFlags False (projectConfigPackageDBs (projectConfigToolchain sharedPackageConfig))
2334-
elabBuildPackageDBStack = buildAndRegisterDbs
2335-
elabRegisterPackageDBStack = buildAndRegisterDbs
2338+
elabPackageDbs = getStage packageDbs elabStage
2339+
elabBuildPackageDBStack = buildAndRegisterDbs elabStage
2340+
elabRegisterPackageDBStack = buildAndRegisterDbs elabStage
23362341

23372342
elabSetupScriptStyle = packageSetupScriptStyle elabPkgDescription
23382343
elabSetupScriptCliVersion =
@@ -2341,19 +2346,21 @@ elaborateInstallPlan
23412346
elabPkgDescription
23422347
libDepGraph
23432348
solverPkgLibDeps
2344-
elabSetupPackageDBStack = buildAndRegisterDbs
2345-
2346-
inplacePackageDbs = corePackageDbs ++ [distPackageDB (compilerId elabCompiler)]
2349+
elabSetupPackageDBStack = buildAndRegisterDbs (prevStage elabStage)
23472350

2348-
corePackageDbs = Cabal.interpretPackageDbFlags False (projectConfigPackageDBs (projectConfigToolchain sharedPackageConfig)) ++ [storePackageDB storeDirLayout elabCompiler]
2351+
-- Same as corePackageDbs but with the addition of the in-place packagedb.
2352+
inplacePackageDbs stage = corePackageDbs stage ++ [SpecificPackageDB (distDirectory </> "packagedb" </> prettyShow stage </> prettyShow (compilerId (getStage compilers stage)))]
23492353

2350-
elabInplaceBuildPackageDBStack = inplacePackageDbs
2351-
elabInplaceRegisterPackageDBStack = inplacePackageDbs
2352-
elabInplaceSetupPackageDBStack = inplacePackageDbs
2354+
-- The project packagedbs (typically the global packagedb but others can be added) followed by the store.
2355+
corePackageDbs stage = getStage packageDbs stage ++ [storePackageDB storeDirLayout (getStage compilers stage)]
2356+
2357+
elabInplaceBuildPackageDBStack = inplacePackageDbs elabStage
2358+
elabInplaceRegisterPackageDBStack = inplacePackageDbs elabStage
2359+
elabInplaceSetupPackageDBStack = inplacePackageDbs (prevStage elabStage)
23532360

2354-
buildAndRegisterDbs
2355-
| shouldBuildInplaceOnly pkg = inplacePackageDbs
2356-
| otherwise = corePackageDbs
2361+
buildAndRegisterDbs stage
2362+
| shouldBuildInplaceOnly pkg = inplacePackageDbs stage
2363+
| otherwise = corePackageDbs stage
23572364

23582365
elabPkgDescriptionOverride = srcpkgDescrOverride
23592366

0 commit comments

Comments
 (0)