Don't solve for executables in legacy code path.
There is a bug in `cabal configure`'s invocation of the solver in
Distribution/Client/Configure.hs:
standardInstallPolicy
installedPkgIndex
(SourcePackageDb mempty packagePrefs)
[SpecificSourcePackage localPkg]
We can see that the solver is given an EMPTY source package database.
This is because we assume that everything you need from cabal configure
is taken from the installed package index.
But this is NOT true for executables, which never have an entry in the
installed package index. So we SHOULD NOT solve for
executables in the legacy codepath, since there isn't anything useful we
can do with the info anyway. This gets toggled using a new solver
parameter SolveExecutables.
I didn't bother with a test because this will be obsoleted by
nix-local-build.
Fixes #3875
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
Showing
- cabal-install/Distribution/Client/Configure.hs 9 additions, 0 deletionscabal-install/Distribution/Client/Configure.hs
- cabal-install/Distribution/Client/Dependency.hs 16 additions, 2 deletionscabal-install/Distribution/Client/Dependency.hs
- cabal-install/Distribution/Solver/Modular.hs 1 addition, 1 deletioncabal-install/Distribution/Solver/Modular.hs
- cabal-install/Distribution/Solver/Modular/IndexConversion.hs 25 additions, 17 deletionscabal-install/Distribution/Solver/Modular/IndexConversion.hs
- cabal-install/Distribution/Solver/Modular/Solver.hs 1 addition, 0 deletionscabal-install/Distribution/Solver/Modular/Solver.hs
- cabal-install/Distribution/Solver/Types/Settings.hs 5 additions, 0 deletionscabal-install/Distribution/Solver/Types/Settings.hs
Loading
Please register or sign in to comment