[Haskell-beginners] cabal dependencies question

Daniel Fischer daniel.is.fischer at googlemail.com
Wed Mar 23 22:31:31 CET 2011

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  So I ran `cabal unpack
> mime`, edited mime.cabal to say "base <=" 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- and base- However none of them are available.
>    base- was excluded because base- 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 <=

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, save
$ cabal install

Now you have mime- 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


More information about the Beginners mailing list