
On Wednesday 23 March 2011 22:08:25, Rob Nikander wrote:
Hi,
I was unable to normally install the "mime" package -- I got an error that it needed "base <= 4". I have 4.3.1.0. So I ran `cabal unpack mime`, edited mime.cabal to say "base <= 4.3.1.0" and from that file's directory ran `cabal install'. It appeared to install it okay. But when I try to install another package that needs mime, I get the same
kind of error:
cabal install http-server
Resolving dependencies... cabal: cannot configure mime-0.3.2. It requires base >=3 && <=4 For the dependency on base >=3 && <=4 there are these packages: base-3.0.3.1 and base-3.0.3.2. However none of them are available. base-3.0.3.1 was excluded because base-4.3.1.0 was selected instead
I'm wondering why it thinks the mime package wants base <= 4 when I just installed with a .cabal file that says base <= 4.3.1.0.
Because it tries to make a consistent install plan for the packages incuding mime-0.3.2. For that it looks at the dependencies listed in the package-index (because it knows where that is). That says mime-0.3.2 needs base <= 4, so for a consistent install it would have to reinstall mime-0.3.2, since a missing dependency indicates a broken package. The solution (apart from prodding the maintainer to release a new version compatible with base-4.3) is to bump the version of mime in your local install, so $ cd mime -- edit mime.cabal to say the version is 0.3.2.1, save $ cabal install Now you have mime-0.3.2.1 installed and the package-index doesn't know about that package, so cabal assumes that one is okay for further installs. It won't work if the packages specify a dependency mime <= 0.3.2, in which case you'd have to edit their .cabal files too (and don't forget to do a minor-minor version bump for those). Remember, everyone: if you edit a .cabal file to repair the build-depends, bump the version or cabal-install will think it's broken.
??
thanks, Rob
HTH, Daniel