[Haskell-cafe] GitIt

Andrew Coppin andrewcoppin at btinternet.com
Fri Nov 19 15:20:23 EST 2010

The other day, I did a slightly foolish thing. I uttered the command

   cabal install gitit

Actually, while I was "foolish", it actually worked better than you'd 
think. It wanted to install several thousand billion packages, but all 
of them compiled without issue.

Well, all except one. You see, for reasons that I have yet to determine, 
cabal is *convinced* that gitit transitively requires the "unix" 
package. Astonishingly, this doesn't work on Windows. :-P

Question: Why does 90% of the network-related stuff on Hackage require 
the unix package? What's in there that's so network-related? I don't 
understand. We've *got* a portable "network" package that works on all 
platforms, so...?

Anyway, on further investigation, it appears that the culprit is 
"cautious-file". If a certain CPP flag it set, "unix" gets added to the 
Build-Depends: field. Except... I didn't set any CPP flags! What the hell?

So I manually edit the package description (!), and now it builds and 
installs perfectly happily. So now I tell cabal to install gitit 
again... and it immediately tries to install unix, even though the only 
package that (it thinks) requires unix is already installed? Wuh?

So I unpack gitit and tell cabal to build it. Building takes about 30 
seconds. *Linking* takes about 4 minutes (??!) And then it fails due to 
some missing symbols. (No, I don't remember off the top of my head what 
they were.)

At this point, I am completely lost. Does anybody have any ideas on how 
I can make GitIt work, short of installing Linux? I've searched and 
searched and I can't see a pre-built binary anywhere.

More information about the Haskell-Cafe mailing list