
Dear Cabal-Install developers, I looked again into possibly using cabal-install, and noticed (again...) the following problems: * The hackage page of cabal-install, http://hackage.haskell.org/package/cabal-install points as home page to the Cabal home page http://www.haskell.org/cabal/ which does not even mention cabal-install. * The cabal-install home page http://haskell.org/haskellwiki/Cabal-Install points under ``See also'' to http://hackage.haskell.org/trac/hackage/wiki/CabalInstall which comes a bit closer to actually providing documentation for cabal-install. However, that page links back to the ``cabal page'' http://www.haskell.org/cabal/ ``for more complete usage information'', which is misleading, first because that is the home page for Cabal, not for cabal-install, and second because the cabal-install home page only indirectly reachable from there (as mentioned above) actually contains less complete usage information. * There is, in my opinion, too little documentation what the state is that cabal-install maintains, and where it maintains that state. As a consequence, I have no good mental model of what cabal-install does, and therefore avoid using it. (My students who did use it didn't develop a good mental model either, and kept running into problems with user versus global installations.) There is apparently no documentation about the configuration file ~/.cabal/config outside that file, and producing that file apparently requires allowing heavy side-effects with ``cabal update''. (``cabal --help'' did not produce that file, and showed no other command that sensibly might produce it.) I would like to be able to configure before going on the network and downloading the whole database. * At least I find ~/.cabal/config not sufficiently self-documenting. What exactly does scratchdir and user-install mean? What is ``remote-build-reporting''? To me, this sounds like it deserves prominent documentation... What is kept in ``local-repo''? Is that managed by cabal-install, or only accessed? * I am used to downloading and compiling as a standard user, and installing as root. Is this supported in any way? In particular I do not want ANY packages EVER installed under the non-root user's home directory. It seems that ``user-install: False'' might go into that direction, but I find no documentation about this, and I wonder whether root will then need to do ``cabal update'' separately to be able to finish the installation? (I will want to install into /usr/local/packages/ghc-X.Y.Z where I keep each GHC version and all its packages. I normally do ./Setup configure --prefix=/usr/local/packages/ghc-X.Y.Z for that, and I am also not sure how to configure that for cabal-install --- since it is right beside ``program-suffix'', the option ``program-prefix'' is probably not meant for that, or is it? ) * Not related with cabal-install, only with Cabal: I noticed somewhat accidentally that ./Setup configure --help does not output information about flags defined in the .cabal file. I would expect it to, in analogy to the enable/disable flags documented by the ``./configure --help'' from autoconf. (I routinely call both kinds of configure with ``--help'' to pick up this kind of thing.) As long as it does not, I apparently will have to manually inspect each .cabal file to see what flags might be relevant, and I wouldn't have thought that the .cabal file is even intended to be read by human installers in the normal case. (The example that alerted me: haskeline warns about POSIX without terminfo, but does not say how to include terminfo.) (The cabal Trac claims it sent me an e-mail with a new password about half an hour ago, but I haven't received it yet.) Wolfram