-
Notifications
You must be signed in to change notification settings - Fork 697
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cabal cross-matches versions #2438
Comments
This happens because of the difference between the internal and external setup methods. Normally for One solution is to install the matching version of the Cabal library, or to ship an older version of cabal-install. Haskell Platform does the latter. |
@23Skidoo, that's pretty bad. If @snoyberg and I ship an old version then as soon as someone does |
I still regularly run into bugs and confusion around this. I don't remember what the last issue was I commented on regarding this problem, but I'd love if this situation was improved. |
This was removed recently.
That's how I implemented it initially, but @dcoutts thought that the patch was too intrusive. Why can't you ship a new version of Cabal if you are already shipping a new IIRC @ttuegel was looking into making reconfigure happen automatically when the Cabal version has changed (#2214). |
Mmm, the fact that it switches back and forth due to using parallel or not is pretty bad in terms of knock-on consequences. Though having picked an older one ideally we shouldn't then insist on switching back again. |
Installing the newer Cabal and switching back seems undesirable - the old Cabal doesn't work for many of the things I want to do (including generate documentation, as my Haddock is somewhere with a space in it). Wouldn't just having a submode to cabal so that cabal install in parallel uses the compiled version work better? I think the original design by @23Skidoo sounds preferable. We are aiming to ship a vanilla GHC release with some extra binaries that should have been in the GHC binary all along (e.g. cabal). Upgrading the packages inside GHC isn't feasible, because we are just repackaging. |
This is a duplicate of #1938. |
#2633 fixes this:
So as you can see no setup executable is built and cabal just calls itself. |
This fixes issues when the version of Cabal that cabal-install was built against differs from the one registered in the local package DB. Normally we compile an external setup against the local Cabal library, which could lead to failures or inconsistent results compared to using the internal method. This fixes #2438 and fixes #1938.
This fixes issues when the version of Cabal that cabal-install was built against differs from the one registered in the local package DB. Normally we compile an external setup against the local Cabal library, which could lead to failures or inconsistent results compared to using the internal method. This fixes haskell#2438 and fixes haskell#1938.
This fixes issues when the version of Cabal that cabal-install was built against differs from the one registered in the local package DB. Normally we compile an external setup against the local Cabal library, which could lead to failures or inconsistent results compared to using the internal method. This fixes haskell#2438 and fixes haskell#1938.
On Windows, with the MinGHC install, with
cabal --version
:Picking the
ghcid
project (just because it was handy), when I docabal install --verbose
I see:So because
ghc-pkg list
givesCabal-1.18.1.3
, thencabal
has decided to pick that. It gets even more confusing when I do:So while
cabal install
compiles a simple setup binary (which seems unnecessary, given its simple style), the haddock doesn't use that simple binary, so you get a version clash. It seems if I then docabal configure
that configures with 1.20, but acabal install
then has to reconfigure it.In addition, I think because my location of Haddock has a space in it,
Cabal-1.18
fails to install the docs butCabal-1.20
succeeds.The text was updated successfully, but these errors were encountered: