Skip to content

Commit 2439bf7

Browse files
committed
fix(cabal-install): use the correct packagedb for setup
1 parent 9b631dd commit 2439bf7

File tree

1 file changed

+23
-15
lines changed

1 file changed

+23
-15
lines changed

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

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2255,6 +2255,11 @@ elaborateInstallPlan
22552255
} =
22562256
elaboratedPackage
22572257
where
2258+
compilers = fmap toolchainCompiler toolchains
2259+
platforms = fmap toolchainPlatform toolchains
2260+
programDbs = fmap toolchainProgramDb toolchains
2261+
packageDbs = fmap toolchainPackageDBs toolchains
2262+
22582263
elaboratedPackage = ElaboratedConfiguredPackage{..}
22592264

22602265
-- These get filled in later
@@ -2268,9 +2273,9 @@ elaborateInstallPlan
22682273
elabPkgSourceId = srcpkgPackageId
22692274

22702275
elabStage = solverPkgStage
2271-
elabCompiler = toolchainCompiler (getStage toolchains solverPkgStage)
2272-
elabPlatform = toolchainPlatform (getStage toolchains solverPkgStage)
2273-
elabProgramDb = toolchainProgramDb (getStage toolchains solverPkgStage)
2276+
elabCompiler = getStage compilers elabStage
2277+
elabPlatform = getStage platforms elabStage
2278+
elabProgramDb = getStage programDbs elabStage
22742279

22752280
elabPkgDescription = case PD.finalizePD
22762281
solverPkgFlags
@@ -2339,9 +2344,10 @@ elaborateInstallPlan
23392344
if shouldBuildInplaceOnly pkg
23402345
then BuildInplaceOnly OnDisk
23412346
else BuildAndInstall
2342-
elabPackageDbs = Cabal.interpretPackageDbFlags False (projectConfigPackageDBs (projectConfigToolchain sharedPackageConfig))
2343-
elabBuildPackageDBStack = buildAndRegisterDbs
2344-
elabRegisterPackageDBStack = buildAndRegisterDbs
2347+
2348+
elabPackageDbs = getStage packageDbs elabStage
2349+
elabBuildPackageDBStack = buildAndRegisterDbs elabStage
2350+
elabRegisterPackageDBStack = buildAndRegisterDbs elabStage
23452351

23462352
elabSetupScriptStyle = packageSetupScriptStyle elabPkgDescription
23472353
elabSetupScriptCliVersion =
@@ -2350,19 +2356,21 @@ elaborateInstallPlan
23502356
elabPkgDescription
23512357
libDepGraph
23522358
solverPkgLibDeps
2353-
elabSetupPackageDBStack = buildAndRegisterDbs
2359+
elabSetupPackageDBStack = buildAndRegisterDbs (prevStage elabStage)
23542360

2355-
inplacePackageDbs = corePackageDbs ++ [distPackageDB (compilerId elabCompiler)]
2361+
-- Same as corePackageDbs but with the addition of the in-place packagedb.
2362+
inplacePackageDbs stage = corePackageDbs stage ++ [SpecificPackageDB (distDirectory </> "packagedb" </> prettyShow stage </> prettyShow (compilerId (getStage compilers stage)))]
23562363

2357-
corePackageDbs = Cabal.interpretPackageDbFlags False (projectConfigPackageDBs (projectConfigToolchain sharedPackageConfig)) ++ [storePackageDB storeDirLayout elabCompiler]
2364+
-- The project packagedbs (typically the global packagedb but others can be added) followed by the store.
2365+
corePackageDbs stage = getStage packageDbs stage ++ [storePackageDB storeDirLayout (getStage compilers stage)]
23582366

2359-
elabInplaceBuildPackageDBStack = inplacePackageDbs
2360-
elabInplaceRegisterPackageDBStack = inplacePackageDbs
2361-
elabInplaceSetupPackageDBStack = inplacePackageDbs
2367+
elabInplaceBuildPackageDBStack = inplacePackageDbs elabStage
2368+
elabInplaceRegisterPackageDBStack = inplacePackageDbs elabStage
2369+
elabInplaceSetupPackageDBStack = inplacePackageDbs (prevStage elabStage)
23622370

2363-
buildAndRegisterDbs
2364-
| shouldBuildInplaceOnly pkg = inplacePackageDbs
2365-
| otherwise = corePackageDbs
2371+
buildAndRegisterDbs stage
2372+
| shouldBuildInplaceOnly pkg = inplacePackageDbs stage
2373+
| otherwise = corePackageDbs stage
23662374

23672375
elabPkgDescriptionOverride = srcpkgDescrOverride
23682376

0 commit comments

Comments
 (0)