Skip to content

Commit f792667

Browse files
committed
use the correct packagedb for setup
1 parent e610a56 commit f792667

File tree

1 file changed

+28
-24
lines changed

1 file changed

+28
-24
lines changed

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

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1899,7 +1899,7 @@ elaborateInstallPlan
18991899
-- correctly.
19001900
let elab1 =
19011901
elab0
1902-
{ elabPkgOrComp = ElabComponent $ elab_comp
1902+
{ elabPkgOrComp = ElabComponent elab_comp
19031903
}
19041904
cid = case elabBuildStyle elab0 of
19051905
BuildInplaceOnly{} ->
@@ -2207,6 +2207,11 @@ elaborateInstallPlan
22072207
} =
22082208
elaboratedPackage
22092209
where
2210+
compilers = fmap toolchainCompiler toolchains
2211+
platforms = fmap toolchainPlatform toolchains
2212+
programDbs = fmap toolchainProgramDb toolchains
2213+
packageDbs = fmap toolchainPackageDBs toolchains
2214+
22102215
elaboratedPackage = ElaboratedConfiguredPackage{..}
22112216

22122217
-- These get filled in later
@@ -2220,10 +2225,10 @@ elaborateInstallPlan
22202225
elabPkgSourceId = srcpkgPackageId
22212226

22222227
elabStage = solverPkgStage
2223-
elabCompiler = toolchainCompiler (getStage toolchains solverPkgStage)
2224-
elabPlatform = toolchainPlatform (getStage toolchains solverPkgStage)
2225-
elabProgramDb = toolchainProgramDb (getStage toolchains solverPkgStage)
2226-
elabPackageDbs = toolchainPackageDBs (getStage toolchains solverPkgStage)
2228+
elabCompiler = getStage compilers solverPkgStage
2229+
elabPlatform = getStage platforms solverPkgStage
2230+
elabProgramDb = getStage programDbs solverPkgStage
2231+
elabPackageDbs = getStage packageDbs solverPkgStage
22272232

22282233
elabPkgDescription = case PD.finalizePD
22292234
solverPkgFlags
@@ -2293,32 +2298,31 @@ elaborateInstallPlan
22932298
then BuildInplaceOnly OnDisk
22942299
else BuildAndInstall
22952300

2296-
elabBuildPackageDBStack = buildAndRegisterDbs
2297-
elabRegisterPackageDBStack = buildAndRegisterDbs
2301+
elabBuildPackageDBStack = buildAndRegisterDbs elabStage
2302+
elabRegisterPackageDBStack = buildAndRegisterDbs elabStage
2303+
elabSetupPackageDBStack = buildAndRegisterDbs (prevStage elabStage)
2304+
2305+
elabInplaceBuildPackageDBStack = inplacePackageDbs elabStage
2306+
elabInplaceRegisterPackageDBStack = inplacePackageDbs elabStage
2307+
elabInplaceSetupPackageDBStack = inplacePackageDbs (prevStage elabStage)
2308+
2309+
buildAndRegisterDbs stage
2310+
| shouldBuildInplaceOnly pkg = inplacePackageDbs stage
2311+
| otherwise = corePackageDbs stage
2312+
-- Same as corePackageDbs but with the addition of the in-place packagedb.
2313+
inplacePackageDbs stage = corePackageDbs stage ++ [distPackageDB (compilerId (getStage compilers stage))]
22982314

2315+
-- The project packagedbs (typically the global packagedb but others can be added) followed by the store.
2316+
corePackageDbs stage = getStage packageDbs stage ++ [storePackageDB storeDirLayout (getStage compilers stage)]
2317+
22992318
elabSetupScriptStyle = packageSetupScriptStyle elabPkgDescription
23002319
elabSetupScriptCliVersion =
23012320
packageSetupScriptSpecVersion
23022321
elabSetupScriptStyle
23032322
elabPkgDescription
23042323
libDepGraph
23052324
solverPkgLibDeps
2306-
elabSetupPackageDBStack = buildAndRegisterDbs
2307-
2308-
inplacePackageDbs = corePackageDbs ++ [distPackageDB (compilerId elabCompiler)]
2309-
2310-
corePackageDbs =
2311-
Cabal.interpretPackageDbFlags False (projectConfigPackageDBs (projectConfigToolchain sharedPackageConfig))
2312-
++ [storePackageDB storeDirLayout elabCompiler]
2313-
2314-
elabInplaceBuildPackageDBStack = inplacePackageDbs
2315-
elabInplaceRegisterPackageDBStack = inplacePackageDbs
2316-
elabInplaceSetupPackageDBStack = inplacePackageDbs
2317-
2318-
buildAndRegisterDbs
2319-
| shouldBuildInplaceOnly pkg = inplacePackageDbs
2320-
| otherwise = corePackageDbs
2321-
2325+
23222326
elabPkgDescriptionOverride = srcpkgDescrOverride
23232327

23242328
elabBuildOptions =
@@ -3928,7 +3932,7 @@ storePackageInstallDirs
39283932
:: StoreDirLayout
39293933
-> Compiler
39303934
-> InstalledPackageId
3931-
-> InstallDirs.InstallDirs FilePath
3935+
-> InstallDirs.InstallDirs FilePath
39323936
storePackageInstallDirs storeDirLayout compiler ipkgid =
39333937
storePackageInstallDirs' storeDirLayout compiler $ newSimpleUnitId ipkgid
39343938

0 commit comments

Comments
 (0)