
Hi there.
First of all: I'm aware that the current situation with cabal-install
is suboptimal and a new release it desperately needed.
Still, some general advice and attempts at explaining strange behaviour:
On Wed, Feb 1, 2012 at 8:05 AM, Evan Laforge
So it embarrasses me to admit it, but I'm having the same problem I always have when I install a new ghc, and that's cabal and cabal install.
Whenever you install GHC successfully, you *have* a version of Cabal (the library) already. It's used by GHC to build GHC. There shouldn't be any need to touch it. For the current GHC 7.4.1 release candidate, that version is 1.14.0. About cabal-install:
I downloaded the latest cabal-install from http://hackage.haskell.org/package/cabal-install and that was a mistake right off.
Assuming you upgraded, you probably had an old version of cabal-install. You should be able to keep using it for the time being. The cabal binary picks up the GHC that's currently in path (or the one you explicitly specify via --with-ghc). There's no requirement to use it with the GHC version that it has been built with.
After fiddling around I figured out I apparently need the one bundled with ghc... and sure enough, the source version has a cabal-install-0.13.3.
The current development version is indeed at 0.13.3, but since it's in development, your copy might or might not have the latest patches. The definitive darcs repository for both Cabal and cabal-install is at: darcs get http://darcs.haskell.org/cabal/
This one has newer but also has out of date dependencies:
Configuring cabal-install-0.13.3... Setup.hs: At least the following dependencies are missing: Cabal >=1.13.3 && <1.14, base >=2.0 && <2.2, filepath >=1.0 && <1.3, time >=1.1 && <1.3,
This seems to indicate that you haven't tried with the current development version of cabal-install. The dependency ranges have been updated to allow building with the ghc-7.4.1 release candidate.
But shouldn't cabal-install be updated for the version of ghc it's with? I cloned branch 7.4 and did a ./sync-all pull so I should have the latest version, right?
I wasn't actually aware that cabal-install is included in the ghc tree and can be pulled via sync-all. I'll try to reproduce what you did and see if there's anything wrong.
And how are other people testing this out if cabal-install has out of date dependencies? And strangest, why is the 'base' dependency so old?
That's a consequence of how Cabal tries to resolve dependencies. There are multiple flags in the .cabal file (to allow it to build with older or strange configurations), and once the default flag settings fail, Cabal will automatically try other assignments. If all assignments fail, it will complain about the missing dependencies for the flag assignment it tried last. So there isn't really a dependency on such an old version of base.
And while I'm wondering about cabal, why on earth is it that so many Setup.hs files are actually Setup.lhs and with no actual literate contents?
Does it really matter? Cheers, Andres