kahl at cas.mcmaster.ca
kahl at cas.mcmaster.ca
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