[Haskell-cafe] A new cabal odissey: cabal-1.8 breaking its own
neck by updating its dependencies
p.giarrusso at gmail.com
Sat Sep 11 19:26:11 EDT 2010
A further pitfall I just discovered:
$ cabal install --dry cabal-install leksah-0.8.0.6
cabal: cannot configure cabal-install-0.8.2. It requires Cabal ==1.8.*
For the dependency on Cabal ==1.8.* there are these packages: Cabal-18.104.22.168,
Cabal-22.214.171.124 and Cabal-126.96.36.199. However none of them are available.
Cabal-188.8.131.52 was excluded because Cabal-184.108.40.206 was selected instead
Cabal-220.127.116.11 was excluded because ghc-6.10.4 requires Cabal ==18.104.22.168
Cabal-22.214.171.124 was excluded because Cabal-126.96.36.199 was selected instead
Cabal-188.8.131.52 was excluded because ghc-6.10.4 requires Cabal ==184.108.40.206
Cabal-220.127.116.11 was excluded because Cabal-18.104.22.168 was selected instead
Cabal-22.214.171.124 was excluded because ghc-6.10.4 requires Cabal ==126.96.36.199
That's on ghc-6.10.4 with Cabal-188.8.131.52.
However, trying to install cabal-install and leksah separately works quite well.
Indeed, they are already installed, but since they are not tracked by
ghc-pkg, cabal forgot that it installed them, and keeps forgetting
that (as I just discovered).
I believe the pitfall is that since cabal is trying to install both
packages at once, it is trying to figure out dependencies for them
together. The behavior might even be perfectly valid if there are
interdependencies between the two packages, but that's not the case
here; maybe cabal should not try to detect that the packages are not
related and can be installed separately. Or maybe, it should just
allow using two different versions of the same package, for packages
which are not linked together.
Paolo Giarrusso - Ph.D. Student
More information about the Haskell-Cafe