[[ My point is on cabal, but I had to give some examples. I'm very sorry for the authors of the packages listed below. ]]
The story is :
I was trying to install a package from hackage [holumbus-mapreduce]. I use ghc-7.2.1 and had a hard time to install the packages that depends on.
[holumbus-mapreduce] depends on [holumbus-distribution]. [holumbus-distribution] depends on [hxt] and [hxt-regex-xmlschema]. etc.. There are tens of depends that drive me into an infinite 'step in'.
If the dependence mechanism of cabal packages is good enough and the author of the package built it, the success can be repeat. but it not.
a example:
1.
There are hxt packages with version 9.* in hackage now.
[holumbus-distribution] says that it depends on "hxt >= 8.2".
But I had to add "< 9" to make it compiled. Maybe when holumbus-distribution was released, there was no hxt 9.*.
2.
some packages depends on "haskell98 <2"
I just removed this line, and it compiled, and id I use "haskell98", the newer "haskell98-2.*" will clash with new "base"
3.
here is a piece of message from `runhaskell Setup configure`
"""
Configuring Holumbus-Distribution-0.1.1...
Warning: This package indirectly depends on multiple versions of the same
package readline-1.0.1.0 requires process-1.0.1.5
package hslogger-1.1.5 requires process-1.0.1.5
package haskell98-2.0.0.0 requires process-1.1.0.0
"""
but finally I found that "readline" does not refuse to be compiled with newer "process" at all, I use --reinstall to adjust "readline" and "hslogger" play with "process-1.1.0.0"
It is like C++'s multi-deriving or something like that, I'm not sure of the technique word. A what to contain B,C ; B contains D' and C contains D'' ; but there can be only One D in A.
All I did is download the all packages, edit its depends: and compile and install it.
If Cabal can remember some certain package-version combination of the successful builds, Sure It will make hackage more available to users.
based on some success build, it can also try to make promotion to depends-packages, and provides newest & can build packages.
Cheers!
--
Wu Xingbo