
#220: detect inconsistent package dependencies ----------------------------+----------------------------------------------- Reporter: duncan | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Component: Cabal library | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: hard (< 1 day) Ghcversion: 6.8.2 | Platform: ----------------------------+----------------------------------------------- Comment (by duncan): This is a serious problem, package developers have responed by hard-coding package versions which they happen to know work with ghc-6.8.2 without hitting this problem. For example [http://hackage.haskell.org/cgi-bin/hackage- scripts/package/yi-0.3 yi-0.3] specifies: {{{ build-depends: bytestring ==0.9.0.1 -- >= 0.9 && < 0.9.0.4 }}} It is clear that the real dependency is {{{>= 0.9 && < 0.9.1}}} because the API is exactly the same for the `0.9.0.x` series. However because `yi` depends on the `ghc` package, with `ghc-6.8.2` we would hit the problem that the `ghc` package is built with `bytestring-0.9.0.1`. So hard coding the `bytestring` version is a quick fix but it means of course that this package will not work with any other version of ghc and cannot take advantage of rebuilding the ghc package to use a different bytestring version. The solution is for the package manger to resolve this problem and not for packages to hard code binary dependencies, they should stick to api dependencies. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/220#comment:2 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects