
I recently had some (well actually a lot of) troubles with cabal install which are not over. I installed ghc-6.10 on Windows with Cygwin and the fetched cabal-install 0.6.0. When I then tried to install a package it had regex-posix as dependency it fails to install the newest version package. This was because it doesn't find the c header files. So I tried to use the --extra-include-dirs=PATH flag, but this didn't help, and I guess it was because it was the c2hs preprocessor which didn't get it. So I did a manual install of the package and somehow did it. But although ghc-pkg listed the package, when I next time called cabal install it started with installing the package that was already installed. When called with a verbose flag I saw that cabal-install detected that the package was not installed by cabal install. However why does it try to reinstall an already installed package? How does it know, which packages are installed with cabal install? I then changed the version of the required regex-posix package to the exact version of the lib pre-installed with ghc on Windows. Yet I can never use cabal upgrade again, because it will always fail. Is their any way to exclude a package from the cabal install process? I realised as well that there is no way to ever un-install a package installed with cabal-install, as far as I see. This is not satisfactory, right? I regret as well that no option exist to have the source code expanded (I mean from tar.gz), which can be useful if you want to look up some library code later, which I happen to do frequently. I regret as well that there is no way to adopt a cabal file to my needs when using cabal install, which I find sometimes necessary. As cabal install is supposed to become a standard way of installing Haskell packages, at least for developers, it would be necessary to have some documentation on it, other then just explaining command line parameters. E.g. if you install some packages as user, which it does by default, it will later not be possible to install other packages global, which anyone using cabal install should know. (Or am I wrong) So please help us from spending our time with stupid install problems, and make the road for new Haskell users as smooth as possible, and installation is a big issue for them. Jürgen