#649: better warning messages for why dependencies are missing / cannot be selected ---------------------------------+------------------------------------------ Reporter: duncan | Owner: kosmikus Type: enhancement | Status: closed Priority: normal | Milestone: cabal-install-0.14 Component: cabal-install tool | Version: HEAD Severity: normal | Resolution: fixed Keywords: solver | Difficulty: unknown Ghcversion: | Platform: ---------------------------------+------------------------------------------ Changes (by kosmikus):
* status: new => closed * resolution: => fixed Comment: Here's the error message the modular solver reports in a similar situation. I added a number of flags to prevent other solutions from being found: {{{ $ cabal install --global --package-db=local aeson-0.6.0.2 --constraint ="unordered-containers installed" --dry-run cabal: Could not resolve dependencies: trying: aeson-0.6.0.2 (user goal) next goal: unordered-containers (dependency of aeson-0.6.0.2) rejecting: unordered-containers-0.2.1.0/installed-171... (package is broken) rejecting: unordered-containers-0.2.1.0, 0.2.0.1, 0.2.0.0, 0.1.4.6, 0.1.4.5, 0.1.4.4, 0.1.4.3, 0.1.4.2, 0.1.4.1, 0.1.4.0, 0.1.3.0, 0.1.2.0, 0.1.1.0, 0.1.0.0 (global constraint requires installed instance) }}} The `unordered-containers-0.2.1.0` version is installed in the local package DB, but depends on `hashable` which is installed in the user DB. If we add the `--user` flag, it works: {{{ $ cabal install --global --user --package-db=local aeson-0.6.0.2 --constraint="unordered-containers installed" --dry-run Resolving dependencies... In order, the following would be installed (use -v for more details): blaze-builder-0.3.1.0 primitive-0.4.1 vector-0.9.1 aeson-0.6.0.2 }}} The error message for the installed constraint is implicitly shown above as well. Here's another example: {{{ $ ~/.cabal/bin/cabal install repa-3.1.0.1 --dry-run Resolving dependencies... cabal: Could not resolve dependencies: trying: repa-3.1.0.1 (user goal) next goal: base (dependency of repa-3.1.0.1) rejecting: base-3.0.3.2, 3.0.3.1 (global constraint requires installed instance) rejecting: base-4.3.1.0/installed-20f... (conflict: repa => base==4.5.*) rejecting: base-4.5.0.0, 4.4.1.0, 4.4.0.0, 4.3.1.0, 4.3.0.0, 4.2.0.2, 4.2.0.1, 4.2.0.0, 4.1.0.0, 4.0.0.0 (global constraint requires installed instance) }}} This still lists all versions of `base`, but lists very clearly that we can't use any version but 4.3.1.0 because they're not installed, and we can't use 4.3.1.0 because repa requires 4.5. Closing this bug. -- Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/649#comment:5> Hackage <http://haskell.org/cabal/> Hackage: Cabal and related projects _______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel