Hi, according to this page: http://hackage.haskell.org/package/pango-0.11.0 pango should work with cairo 0.11.0 (or any other 0.11.* version)
So it seems that the problem is that cabal tried to use pango-0.11.1, and I am guessing that it does not backtrack and try an older version if a build fails (which is reasonable). So why did Cabal choose pango-0.11.1? Because gtk-0.11.0 claims to work with _any_ 0.11.* version of pango and cairo, so Cabal just picked the latest one. Therefore, the problem seems to be with the dependencies of gtk-0.11.0 and pango-0.11.0 (indeed, later versions of gtk have more precise dependencies). Unfortunately, we have no way of improving the dependencies of a package without changing its version, which suggests that it is never safe to depend on gtk-0.11.0. This might be something that we should look into, but in the meantime, it may be better to make sifflet depend on a later specific version of "gtk" (e.g., 0.11.2) rather then claiming that works with any 0.11.* version. By the way, it is unfortunate that packages which only differ in their third version field (e.g., 0.11.0 vs 0.11.1) are incompatible with each other, I thought that the recommendation was to increase the second version field to avoid that. -Iavor On Mon, Aug 16, 2010 at 12:56 PM, Don Stewart <[email protected]> wrote: > $ cabal update > Downloading the latest package list from hackage.haskell.org > > $ cabal install sifflet > Resolving dependencies... > cabal: cannot configure pango-0.11.1. It requires cairo >=0.11.1 && <0.12 > and glib >=0.11.1 && <0.12 > For the dependency on cairo >=0.11.1 && <0.12 there are these packages: > > cairo-0.11.1. However none of them are available. > cairo-0.11.1 was excluded because sifflet-lib-1.0 requires cairo ==0.11.0 > cairo-0.11.1 was excluded because cairo-0.11.0 was selected instead > cairo-0.11.1 was excluded because sifflet-1.0 requires cairo ==0.11.0 > > For the dependency on glib >=0.11.1 && <0.12 there are these packages: > glib-0.11.1. However none of them are available. > glib-0.11.1 was excluded because sifflet-lib-1.0 requires glib ==0.11.0 > glib-0.11.1 was excluded because glib-0.11.0 was selected instead > glib-0.11.1 was excluded because sifflet-1.0 requires glib ==0.11.0 > > > So that's pretty simple. 'sifflet' requires cairo ==0.11.0 and pango. But > since > pango doesn't work with cairo 0.11.0, the package can't be built. The solution > is to ask the sifflet author to adjust the dependencies to be more flexible. > > http://hackage.haskell.org/package/sifflet > > Those specific versions of packages are overly constrained. They should > follow the PVP, and be thus, > > 0.11.* > > -- Don > _______________________________________________ > Haskell-Cafe mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
