
#470: identify and exclude broken or unusable packages when constructing and merging package dbs ---------------------------------+------------------------------------------ Reporter: guest | Owner: kosmikus Type: defect | Status: new Priority: normal | Milestone: cabal-install-0.14 Component: cabal-install tool | Version: 1.6.0.1 Severity: normal | Keywords: solver Difficulty: hard (< 1 day) | Ghcversion: Platform: | ---------------------------------+------------------------------------------ Comment(by kosmikus): This turned out to be trickier than I first expected. The problem is that the underlying shadowing is an incredibly subtle thing. Here are a few facts: * The new modular solver produces a better error message. * Unlike the old (topdown) solver, the modular solver will just consider multiple installed instances of a package to all be available, even if they have the same version. * It's possible to install packages with cabal-install that ghc/ghci will not be able to load with a simple -package flag, because GHC applies shadowing in such a situation. However, explicitly selecting the packages with -package-id should help in such a case. * It's possible for Cabal to fail at build time because currently, the interface between cabal-install and the build process is suboptimal. We only pass version constraints to the individual package builds, not the exact package identities, even if we have them. * I've added functionality to the modular solver so that it can, if desired, apply shadowing itself, by disabling packages from the installed package index. * Broken packages with missing dependencies should be disabled now in the solver. * Applying shadowing seems like the wrong thing to do, though, and despite the lossy flag passing to the builder, the situations that fail are rare (fewer than would be rejected if shadowing was enabled in the index). So I've disabled shadowing for now. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/470#comment:5 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects