Fix extra-prog-path propagation in the codebase.
commit46df8ba712470ef8f80ef1256861b1e0a37a0976
authorJavier Sagredo <javier.sagredo@iohk.io>
Fri, 15 Dec 2023 16:11:08 +0000 (15 17:11 +0100)
committerMikolaj <281893+Mikolaj@users.noreply.github.com>
Thu, 18 Jan 2024 18:42:25 +0000 (18 18:42 +0000)
treeee4d9b4a63d6ac0c6c3602ed895a1431b5c4a433
parent28e2926e40e04eb0b6ca4377e2e394400f6263d6
Fix extra-prog-path propagation in the codebase.

Extra prog paths were being handled in many different ways all thorugh
the codebase. This PR introduces a unified way to look at them.

Aiming for traceability, the addition of extra paths is now traced via
`logExtraProgramSearchPath`. All appearances of
`modifyProgramSearchPath` are replaced with `appendProgramSearchPath`
which traces the added paths.

`progInvokePathEnv` was only being set by GHC for some paths to
executables in components and only under certain circumstances. Now
every `ghcInvocation` sets the extra paths directly into `pkgInvokeEnv`.

In particular this fixes PATH issues when running MinGW cabal in
PowerShell, as usually for other OSes the system path contains most of
the expected directories.
23 files changed:
Cabal/src/Distribution/Simple/Configure.hs
Cabal/src/Distribution/Simple/ConfigureScript.hs
Cabal/src/Distribution/Simple/GHC.hs
Cabal/src/Distribution/Simple/GHCJS.hs
Cabal/src/Distribution/Simple/Program/Db.hs
Cabal/src/Distribution/Simple/Program/Find.hs
Cabal/src/Distribution/Simple/Program/GHC.hs
Cabal/src/Distribution/Simple/Program/Run.hs
Cabal/src/Distribution/Simple/Program/Types.hs
cabal-install/src/Distribution/Client/CmdExec.hs
cabal-install/src/Distribution/Client/CmdInstall.hs
cabal-install/src/Distribution/Client/CmdRun.hs
cabal-install/src/Distribution/Client/Config.hs
cabal-install/src/Distribution/Client/Get.hs
cabal-install/src/Distribution/Client/HttpUtils.hs
cabal-install/src/Distribution/Client/ProjectConfig.hs
cabal-install/src/Distribution/Client/ProjectOrchestration.hs
cabal-install/src/Distribution/Client/ProjectPlanning.hs
cabal-install/src/Distribution/Client/SetupWrapper.hs
cabal-install/src/Distribution/Client/VCS.hs
cabal-install/tests/UnitTests/Distribution/Client/Get.hs
cabal-install/tests/UnitTests/Distribution/Client/VCS.hs
changelog.d/propagate-extra-prog-path [new file with mode: 0644]