Why does it happen?
If you look at the full output of cabal install darcsden
, you will find several lines that look like this:
binary-0.5.1.0 -bytestring-in-base (reinstall) changes: array-0.4.0.0 ->
0.3.0.3, containers-0.4.2.1 -> 0.4.1.0
This means that cabal
has found an install plan that involves (destructively) reinstalling packages that you already have on your system.
Now, GHC packages are rather sensitive when it comes to their (reflexive) dependencies, and generally only work if exactly the right version of all dependencies is available, compiled against the right versions of their dependencies and so on. Therefore, replacing an already installed package with a new version of changed dependencies can cause some packages on your system to become unusable. Since version 0.14.0, cabal
warns you about such a situation in advance to prevent you from accidentally breaking your system.
In your case, ghc
and bin-package-db
are among the potentially broken packages, because they depend on binary
which gets reinstalled. So you should not try to use the --force-reinstalls
flag, because it might really break your GHC.
What can you do?
If you scan what is going to be reinstalled, you see that quite a few dependencies are downgraded. This hints at the fact that the package you are trying to install might not be properly updated to GHC 7.4.1 yet.
You can in general try to call cabal install darcsden --avoid-reinstalls
to explicitly try to find an install plan that has no reinstalls. Unfortunately, in this case, it fails (for me).
I've briefly looked at the darcsden
package description, but it looks like quite a few dependencies of darcsden
need to be updated. So the remaining options are: Convince the author(s) of darcsden
to release an updated version, or install darcsden
using an older version of GHC (such as 7.0.4), which should just work.