[Hackage] #649: better warning messages for why dependencies are
missing / cannot be selected
Hackage
trac at galois.com
Fri Mar 26 18:42:48 EDT 2010
#649: better warning messages for why dependencies are missing / cannot be
selected
---------------------------------+------------------------------------------
Reporter: duncan | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone:
Component: cabal-install tool | Version: HEAD
Severity: normal | Keywords:
Difficulty: unknown | Ghcversion:
Platform: |
---------------------------------+------------------------------------------
The cabal-install constraint solver should be given all packages but if
some are unsable (e.g. due to broken dependencies) then it should be given
constraints to avoid them. That way when it finds it needed the broken
package it can give a suitable error message.
Consider the following (real) confusing scenario:
* usual core global packages
* mtl as user package
* gtk etc in a local package db
`ghc-pkg list --global -f local gtk` reports that gtk is installed and
deps are ok.
`cabal install --global --package-db=local hsclock` reports
{{{
cabal: cannot configure hsclock-1.0. It requires cairo -any and gtk -any
There is no available version of cairo that satisfies -any
There is no available version of gtk that satisfies -any
}}}
How can this be? It is because when we use --global and --package-db then
we are excluding the user package db. But gtk depends on mtl from the user
package db. Hence Cabal detects gtk as broken. We did not notice because
`ghc-pkg --global` still includes the `--user` package db. If we use `ghc-
pkg --global --no-user-package-conf -f local list` then indeed gtk etc are
reported as broken.
The point is, cabal should tell us not that gtk isn't installed, but that
it was excluded because it is broken, missing dependencies.
--
Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/649>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects
More information about the cabal-devel
mailing list