[Haskell-cafe] Re: Sifflet dependencies

gdweber at iue.edu gdweber at iue.edu
Thu Aug 19 14:55:28 EDT 2010

Short answer: I had reasons for constraining gtk, etc., to be == 0.11.0.
I will check whether the suggested changes work, and if they do,
include them in the next release of sifflet and sifflet-lib.

Longer answer (quoting parts of 3 different messages):

From: Don Stewart <dons at galois.com>

> 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.*

"'sifflet' requires ... pango" confused me at first.
Neither sifflet nor sifflet-lib 1.0 requires pango explicitly.  
However, they both require gtk == 0.11.0, and gtk 0.11.0 requires pango 0.11.*.
Okay, so that must be how pango got involved in this.

Your suggestion, then, is for me ("the sifflet author") to change
{sifflet,sifflet-lib}.cabal files to read in part:

    cairo == 0.11.*,
    glib == 0.11.*,
    gtk == 0.11.*,

In the past, I've gotten into trouble with looser version constraints
on the gtk2hs package(s), that is, gtk, cairo, glib, and associates.  
I had written a function for changing
the cursor (the image that shows where the mouse is pointing),
because this function was not present in the then current
version of gtk2hs.  Then I got a new version of gtk2hs
which added the missing function, and so broke my code because
we now had multiple definitions of the same-named functions.
However, this new version of gtk2hs did *not* have a significantly
different version number from the old.  So I became very cautious
about the upper bounds for the version numbers of the gtk2hs package(s).

(In fact, the situation was even a little crazier!  This happened when I
switched from Fedora to Arch Linux, and the Arch Linux package
I believe was pulling the code from a darcs or subversion
repository that was "in advance" of the latest "released"
package.  In effect, the *version* had changed, but the version
*number* had not changed!)

From: Andrew Coppin <andrewcoppin at btinternet.com>

> Uh... it seemed to build just fine for me (when I did it all
> manually). I'm not sure I see what the problem is here. I made Cabal
> install 0.11.0 of each package, by hand, one at a time, and it never
> complained of any unfulfilled dependencies, and the end result was a
> runnable program. So I'm just puzzled why it couldn't figure out that
> you can do that by itself.

Glad that it worked that way, at least, but sorry you had to
go to such trouble.  I was about to ask you to tinker with the
cabal files for me and see if 0.11.* or 0.11.2 also work,
but since the Arch Linux User Repository now has these versions
available for me, I will do the tinkering myself.

From: Iavor Diatchki <iavor.diatchki at gmail.com>

>  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.

I believe you are suggesting something like

   gtk >= 0.11.0 && < 0.11.3  ??


> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

   ___   ___  __     _      
  / _ \ / _ \| |    | |     Gregory D. Weber, Associate Professor
 / /_\// / | | | /\ | |     Indiana University East
/ /_\\/ /__| | |/  \| |     http://mypage.iu.edu/~gdweber/
\____/\_____/\___/\__/      Tel. (765) 973-8420; FAX (765) 973-8550

More information about the Haskell-Cafe mailing list