[Haskell-cafe] Sifflet dependencies
Iavor Diatchki
iavor.diatchki at gmail.com
Mon Aug 16 17:08:12 EDT 2010
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 <dons at galois.com> 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
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
More information about the Haskell-Cafe
mailing list