I've used the cabal package manager for Haskell programs to install libraries and new projects that I've cloned from some repositories. More often than not, I keep running into problems. Most projects make installing them seem super easy, but in my case that's not always true - sometimes they are very hard to get running. Some are so hard, in fact, that I've lost interest in the project solely because of not being able to install it.
So instead of complaining, I'd like to ask what I should do to better this situation. I'd like to use my most recent problem as an example.
I'm interested in trying out the Gitit project. It's a promising looking personal wiki that runs on various version control systems.
So here's what I've done:
Clone from Github
run cabal install in the project directory like I'm told on the project install page:
mika@eka:~/git/gitit$ ls
BLUETRIP-LICENSE CHANGES HCAR-gitit.tex LICENSE Network README.markdown RELANN-0.6.1 Setup.lhs TANGOICONS YUI-LICENSE data expireGititCache.hs gitit.cabal gitit.hs plugins
mika@eka:~/git/gitit$ cabal install
Resolving dependencies...
cabal: cannot configure happstack-server-7.0.7. It requires base64-bytestring
==1.0.*
For the dependency on base64-bytestring ==1.0.* there are these packages:
base64-bytestring-1.0.0.0. However none of them are available.
base64-bytestring-1.0.0.0 was excluded because gitit-0.10 requires
base64-bytestring ==0.1.*
mika@eka:~/git/gitit$
So now I'm thinking: well, I'll install happstack-server on its own, maybe that will work:
mika@eka:~/git/gitit$ cabal install happstack-server
Resolving dependencies...
Warning: happstack-server.cabal: Ignoring unknown section type: test-suite
Configuring happstack-server-7.0.7...
cabal: At least the following dependencies are missing:
blaze-html ==0.5.*,
hslogger >=1.0.2,
monad-control ==0.3.*,
network >=2.2.3,
sendfile >=0.7.1 && <0.8,
system-filepath >=0.3.1,
text >=0.10 && <0.12,
threads >=0.5,
transformers-base ==0.4.*
cabal: Error: some packages failed to install:
happstack-server-7.0.7 failed during the configure step. The exception was:
ExitFailure 1
So looks like there are some dependencies missing. But isn't installing these dependencies the whole point of using cabal in the first place?
What should I do? File bug reports (to which project?), install the dependencies manually or something else?
Bonus points for explaining what causes these kinds of problems.