[Hackage] #474: cabal-install needlessly reinstalls an existing package

#474: cabal-install needlessly reinstalls an existing package ---------------------------------+------------------------------------------ Reporter: judah | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: cabal-install tool | Version: 1.6.0.1 Severity: normal | Keywords: Difficulty: unknown | Ghcversion: Platform: | ---------------------------------+------------------------------------------ With ghc-6.10.1, Cabal-1.6.0.1 and cabal-install-0.6 (or HEAD): {{{ $ cabal install cabal-install --dry-run -v [..] Reading available packages... Resolving dependencies... [..] selecting Cabal-1.6.0.1 (installed or hackage) [..] selecting process-1.0.1.1 (installed or hackage) and discarding filepath-1.0, process-1.0.0.0 and 1.0.1.0 [..] In order, the following would be installed: Cabal-1.6.0.1 (reinstall) changes: process-1.0.1.0 -> 1.0.1.1 cabal-install-0.6.0 (new package) }}} The `ghc` package depends on `Cabal-1.6.0.1` and `process-1.0.1.0`, so rebuilding `Cabal` to depend on `process-1.0.1.1` causes `ghc` to have inconsistent dependencies. In particular: {{{ $ cabal install cabal-install [succeeds, but reinstalls Cabal-1.6.0.1] $ cabal install ghci-haskeline Resolving dependencies... cabal: dependencies conflict: ghc-6.10.1 requires process ==1.0.1.0 however process-1.0.1.0 was excluded because ghc-6.10.1 requires process ==1.0.1.1 }}} It seems like the right thing to do would be to use `process-1.0.1.0` when building `cabal-install`. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/474 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#474: cabal-install needlessly reinstalls an existing package ---------------------------------+------------------------------------------ Reporter: judah | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: cabal-install tool | Version: 1.6.0.1 Severity: normal | Resolution: Keywords: | Difficulty: unknown Ghcversion: | Platform: ---------------------------------+------------------------------------------ Comment (by judah): See also #470. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/474#comment:1 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#474: cabal-install needlessly reinstalls an existing package ---------------------------------+------------------------------------------ Reporter: judah | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: cabal-install tool | Version: 1.6.0.1 Severity: normal | Resolution: Keywords: | Difficulty: unknown Ghcversion: | Platform: ---------------------------------+------------------------------------------ Comment (by duncan): Please would you paste or attach the output of `ghc-pkg list`. I suspect it is the same problem as in #470, that there is overlap in the global and user package databases. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/474#comment:2 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#474: cabal-install needlessly reinstalls an existing package ---------------------------------+------------------------------------------ Reporter: judah | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: cabal-install tool | Version: 1.6.0.1 Severity: normal | Resolution: Keywords: | Difficulty: unknown Ghcversion: | Platform: ---------------------------------+------------------------------------------ Comment (by judah): I removed the only overlapping packages (haskell98-1.0.1.0 and Cabal-1.6.0.1) in the user db that I could see and tried again, and got the same error as above. ghc-pkg output is attached. Incidentally, I'm pretty sure that those two overlaps were caused by this issue (rather than being the cause of it), since `cabal install cabal- install` will install a new Cabal-1.6.0.1 in the user DB (as I mentioned above). -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/474#comment:3 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#474: cabal-install needlessly reinstalls an existing package ---------------------------------+------------------------------------------ Reporter: judah | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: cabal-install tool | Version: 1.6.0.1 Severity: normal | Resolution: Keywords: | Difficulty: unknown Ghcversion: | Platform: ---------------------------------+------------------------------------------ Comment (by duncan): Yes you're quite right. I can reproduce it. It's not the same as #470 though it does lead to that situation as you say. So we pick Cabal and then process. We have not committed to picking the installed version of either yet. We end up picking the highest version of process. That then forces the choice of Cabal, we have to pick the available version because the installed version uses an older version of process. We already try to pick the installed versions of packages however that heuristic is not enough here because there are multiple installed versions of process. To pick between them we should pick the one that would let us use the installed version of another package that we have already picked where we still have the choice of installed or available. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/474#comment:4 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#474: cabal-install needlessly reinstalls an existing package ---------------------------------+------------------------------------------ Reporter: judah | Owner: Type: defect | Status: new Priority: normal | Milestone: cabal-install-0.8 Component: cabal-install tool | Version: 1.6.0.1 Severity: normal | Resolution: Keywords: | Difficulty: unknown Ghcversion: | Platform: ---------------------------------+------------------------------------------ Changes (by duncan): * milestone: => cabal-install-0.8 -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/474#comment:5 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#474: cabal-install needlessly reinstalls an existing package ---------------------------------+------------------------------------------ Reporter: judah | Owner: Type: defect | Status: new Priority: normal | Milestone: cabal-install-0.6 Component: cabal-install tool | Version: 1.6.0.1 Severity: normal | Resolution: Keywords: | Difficulty: unknown Ghcversion: | Platform: ---------------------------------+------------------------------------------ Changes (by duncan): * milestone: cabal-install-0.8 => cabal-install-0.6 Comment: Actually, I think we can do this in another 0.6.x point release, probably 0.6.4. So that's not the immediate next point release which will be 0.6.2. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/474#comment:6 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects
participants (1)
-
Hackage