cabal-install woes...

kahl at kahl at
Wed Jul 14 20:59:33 EDT 2010

Dear Cabal-Install developers,

  I looked again into possibly using cabal-install,
and noticed (again...) the following problems:

* The hackage page of cabal-install,

   points as home page to the Cabal home page

   which does not even mention cabal-install.

* The cabal-install home page

   points under ``See also'' to

   which comes a bit closer to actually providing documentation for
   cabal-install. However, that page links back to the ``cabal page''

   ``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

 * 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.)


More information about the cabal-devel mailing list