cabal: confusing dependencies conflict between ghc-6.10.1 and process

Sebastian Fischer sebf at informatik.uni-kiel.de
Fri May 29 08:10:15 EDT 2009


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.)





More information about the Libraries mailing list