cabal: confusing dependencies conflict between ghc-6.10.1 and process

Hello, I get a confusing message when trying to install 'vacuum' from Hackage: $ cabal install vacuum Resolving dependencies... cabal: dependencies conflict: ghc-6.10.1 requires process ==1.0.1.1 however process-1.0.1.1 was excluded because ghc-6.10.1 requires process ==1.0.1.0 There is something wrong: according to this message, the package ghc-6.10.1 requires both process==1.0.1.1 and process==1.0.1.0. According to ghc-pkg, the package ghc-6.10.1 requires process==1.0.1.0: $ ghc-pkg describe ghc name: ghc version: 6.10.1 [...] depends: Cabal-1.6.0.1 array-0.2.0.0 base-4.0.0.0 bytestring-0.9.1.4 containers-0.2.0.0 directory-1.0.0.2 editline-0.2.1.0 filepath-1.1.0.1 haskell98-1.0.1.0 hpc-0.5.0.2 old-time-1.0.0.1 process-1.0.1.0 template-haskell-2.3.0.0 unix-2.3.1.0 [...] Why does cabal think that ghc-6.10.1 requires process==1.0.1.1? I use $ ghc --version The Glorious Glasgow Haskell Compilation System, version 6.10.1 $ cabal --version cabal-install version 0.6.2 using version 1.6.0.2 of the Cabal library Is it a problem that cabal uses version 1.6.0.2 of the Cabala library but the package ghc-6.10.1 requires version 1.6.0.1? Cheers, Sebastian

Hi Sebastian, Sebastian Fischer wrote:
There is something wrong: according to this message, the package ghc-6.10.1 requires both process==1.0.1.1 and process==1.0.1.0.
Please see Duncan's email [1]. Hope this helps! Martijn. [1] http://www.mail-archive.com/haskell-cafe@haskell.org/msg52659.html

Hi Martijn,
There is something wrong: according to this message, the package ghc-6.10.1 requires both process==1.0.1.1 and process==1.0.1.0.
Please see Duncan's email [1].
Thanks for the hint! Unregistering QuickCheck-1.2.0.0 and haskell98-1.0.1.0 from the user package db (those packages are present in the global package db with the same version) solved this problem for me. Sebastian

On Apr 3, 2009, at 12:20 PM, Sebastian Fischer wrote:
There is something wrong: according to this message, the package ghc-6.10.1 requires both process==1.0.1.1 and process==1.0.1.0.
Please see Duncan's email [1].
Thanks for the hint! Unregistering QuickCheck-1.2.0.0 and haskell98-1.0.1.0 from the user package db (those packages are present in the global package db with the same version) solved this problem for me.
I ran into this problem again. Tired of parsing the output of 'ghc-pkg list' manually for duplicates, I wrote the following script that may be of use for others too: ---------- #! /usr/bin/env runhaskell
import Data.List ( intersect ) import Control.Monad ( liftM ) import System.Process ( system, readProcess )
main = do global <- list "global" user <- list "user" mapM_ unregister $ intersect global user where list db = liftM words $ readProcess "ghc-pkg" ["--simple-output","--"+ +db,"list"] ""
unregister pkg = system $ "ghc-pkg --user unregister " ++ pkg
---------- You can save it as executable literate Haskell file. It will unregister those packages from the user database that are present in the global package database with the exact same version. Cheers, Sebastian -- Underestimating the novelty of the future is a time-honored tradition. (D.G.)

On Fri, 2009-04-03 at 11:56 +0200, Martijn van Steenbergen wrote:
Hi Sebastian,
Sebastian Fischer wrote:
There is something wrong: according to this message, the package ghc-6.10.1 requires both process==1.0.1.1 and process==1.0.1.0.
Please see Duncan's email [1].
For future reference this is now in the new Cabal FAQ: http://haskell.org/cabal/FAQ.html which is now linked from the cabal home page. Duncan
participants (3)
-
Duncan Coutts
-
Martijn van Steenbergen
-
Sebastian Fischer