[Haskell-cafe] Re: Why cabal forces reinstallation of happstack-utils?

Henning Thielemann schlepptop at henning-thielemann.de
Thu May 6 04:03:25 EDT 2010


Daniel Fischer schrieb:
> On Wednesday 05 May 2010 15:45:38, Henning Thielemann wrote:
>> Surprisingly using plain Cabal (runhaskell Setup configure; runhaskell
>> Setup build; runhaskell Setup install) often works in these cases.
> 
> That's not surprising.
> runhaskell ./Setup.hs configure
> can only go by what the .cabal file in the current directory and ghc-pkg 
> say. If you edit the .cabal file to install e.g. happstack-util-0.5.0 with 
> parsec-3, the changed .cabal file and the ghc-pkg output are consistent, so 
> Cabal sees no reason to reinstall.
> 
> cabal-install presumably looks at the downloaded index from Hackage (it 
> must recursively follow the dependencies to see which of them must be 
> installed before [and in which order]).
> The happstack-util .cabal file there says parsec < 3.
> But ghc-pkg says
> - there is no parsec < 3 installed
> or
> - happstack-util-0.5.0 was built with parsec-3.*
> (don't know which check comes first if both are made).
> That is inconsistent with what cabal-install knows from other sources, 
> hence it assumes it's broken.

This makes sense. It would be certainly better if cabal-install would
alert about the found inconsistency instead of trying to fix it. Then
there might an additional cabal-install flag, that makes cabal-install
prefer the output of ghc-pkg over the hackage database 00-index.tar in
case of inconsistencies.

Could the problem also be solved by changing the version of packages
with locally modified cabal files from a.b.c.d to a.b.c.d+1 ?


More information about the Haskell-Cafe mailing list