6
votes

Haskell package dependencies continue to be a problem but I don't know how to get around this one. My environment:

  • Ubuntu 10.10, new install
  • apt-get install ghc6 cabal-install
  • cabal update && cabal install cabal-install

Then:

  • cabal install yesod

And I get this:

$ cabal install yesod
cabal: Error: some packages failed to install:
persistent-0.3.1.2 failed during the building phase. The exception was:
ExitFailure 1
yesod-0.6.6 depends on persistent-0.3.1.2 which failed to install.
$ cabal install persistent-0.3.1.2
Resolving dependencies...
cabal: cannot configure blaze-builder-0.2.0.2. It requires text ==0.10.*
For the dependency on text ==0.10.* there are these packages: text-0.10.0.0,
text-0.10.0.1 and text-0.10.0.2. However none of them are available.
text-0.10.0.0 was excluded because enumerator-0.4.3.1 requires text ==0.11.*
text-0.10.0.1 was excluded because enumerator-0.4.3.1 requires text ==0.11.*
text-0.10.0.2 was excluded because enumerator-0.4.3.1 requires text ==0.11.*

How do I get yesod installed?

4
Simon Meier just uploaded a new version of blaze-builder, which should fix the problem. Can you cabal update and try installing again?Michael Snoyman

4 Answers

4
votes

To see more details, add -v (or even -v2 or -v3) and perhaps --dry-run. Also it's useful to see what's currently installed, with ghc-pkg list.

When you upgrade persistent, cabal decides it should also rebuild your existing yesod which depends on it. This triggers a blaze-builder upgrade. blaze-builder requires an older text than enumerator which is also being installed.

http://hackage.haskell.org/package/enumerator claims to support older text versions as well as 0.11. But cabal has been outwitted somehow. The verbose output may tell more, or see if you can help it along with a --constraint or two. Or by first uninstalling some related packages, like yesod. And of course be sure you have done cabal update.

2
votes

yesod is under heavy development. email michael snoyman (contact info can be found here), he is very responsive to requests

1
votes

There is a dependency-break. Report this as an error to the author of the package. Consider downloading and installing an older version of enumerator manually, too.

1
votes

I found some information about a better install process here:

https://github.com/yesodweb/yesod

Look for the section about cabal-src.

I'm in the process of trying it out.

I'll report back, and let people know if it works.