
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.