Bad error message from Cabal

Simon Peyton-Jones simonpj at
Wed Jun 9 08:31:46 EDT 2010

Duncan et al

A few times recently I've tripped badly over this:

* Cabal complains of missing dependencies
* But the "missing" package is definitely installed

Example below.

The reason is: the "missing" package is installed for this user, but I didn't say "--user" when saying "setup configure".  

Confusingly, saying "cabal configure" works fine.  But "cabal configure --global " fails with the missing dependency.

So there are two infelicities, which combined to leave me stumped:

1. "setup configure" and "cabal configure" use different defaults.  The former defaults to "--global" while the latter defaults to "--user".  I suggest both default to --user.

2. The missing-package error message does not mention that it's looking only in the global packages.  When (but only when) looking in the global packages only, the error should say:

	Setup: At least the following dependencies are missing:
	primitive ==0.3.*
	NB: setup is looking only in the globally-installed packages.
	If you want to include your per-user installed packages, use --user

As a refinement, only suggest --user if that would actually resolve the problem.



bash-3.2$ ./Setup configure --with-ghc=$head2
Configuring vector-0.6...
Setup: At least the following dependencies are missing:
primitive ==0.3.*

bash-3.2$ ghc-pkg list



More information about the cabal-devel mailing list