[Haskell-cafe] circular dependencies in cabal

Valentyn Kamyshenko kamysh at kamysh.org
Sun Feb 1 22:10:11 EST 2009


So, in practical terms, you suggest that no new version of the package  
that ghc package depends on (directly or indirectly) should ever be  
installed?
For example, as soon as process-1.0.1.1 is installed on my computer,  
I'll have this problem with every package that depends on "process"?
Another question: would not cabal-install automatically fetch the most  
recent version of the "process" package, as soon as I will try to  
install
a package that depends on it (such as, for example, "plugins")?

-- Valentyn.

On Feb 1, 2009, at 6:53 AM, Duncan Coutts wrote:

> On Sun, 2009-02-01 at 01:33 -0800, Valentyn Kamyshenko wrote:
>> Hello all,
>>
>> when I tried to install plugins package with cabal, I've got the
>> following error:
>>
>> # sudo cabal install plugins --global
>> 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
>
> For the most part I refer you to:
>
> http://haskell.org/pipermail/haskell-cafe/2009-January/054523.html
>
> However the difference is that you've got this problem only within the
> global package db rather than due to overlap in the global and user
> package db.
>
>> It looks like both versions of process package are currently  
>> required:
>
> It looks like you installed process-1.0.1.1 and then rebuilt almost
> every other package against it. Of course you cannot rebuild the ghc
> package but you did rebuild some of its dependencies which is why it  
> now
> depends on multiple versions of the process package.
>
> Generally rebuilding a package without also rebuilding the packages  
> that
> depend on it is a bit dodgy (it can lead to linker errors or  
> segfaults).
> Unfortunately cabal-install does not prevent you from shooting  
> yourself
> in the foot in these circumstances.
>
>> Any suggestions?
>
> Aim for a situation where you only have one version of the various  
> core
> packages. If you do not need to install packages globally then
> installing them per-user means you at least cannot break the global
> packages.
>
> Duncan
>



More information about the Haskell-Cafe mailing list