Sjoerd Visscher | 27 Jun 17:29 2012

cabal doens't forget old dependencies

Hi all,

I tried to install reactive-banana. This failed due to a dependency conflict, and then I noticed there was a
newer version of reactive-banana. So I did cabal update, and tried to install again. But whatever I do,
cabal keeps trying to install fclabels, but fclabels is no longer a dependency of
reactive-banana-0.6.0.0! How can I let cabal forget this dependency?

Thanks,
--
Sjoerd Visscher
https://github.com/sjoerdvisscher/blog
Andres Löh | 27 Jun 17:51 2012

Re: cabal doens't forget old dependencies

Hi.

> I tried to install reactive-banana. This failed due to a dependency conflict, and then I noticed there was
a newer version of reactive-banana. So I did cabal update, and tried to install again. But whatever I do,
cabal keeps trying to install fclabels, but fclabels is no longer a dependency of
reactive-banana-0.6.0.0! How can I let cabal forget this dependency?

From the reactive-banana Cabal file:

    if flag(UseExtensions)
        extensions:     TypeFamilies, GADTs, MultiParamTypeClasses,
                        BangPatterns, TupleSections,
                        EmptyDataDecls
        build-depends:  QuickCheck >= 1.2 && < 2.5,
                        fclabels == 1.1.*,
                        unordered-containers >= 0.2.1.0 && < 0.3,
                        hashable == 1.1.*
        CPP-options:    -DUseExtensions

So try "-f-UseExtensions" if you really want that?

Cheers,
  Andres

--

-- 
Andres Löh, Haskell Consultant
Well-Typed LLP, http://www.well-typed.com
Sjoerd Visscher | 27 Jun 18:14 2012

Re: cabal doens't forget old dependencies

Ah, ok. I wasn't aware how flags work in Cabal, thanks.

Makes me wonder why that flag was turned off on hackage.
http://hackage.haskell.org/package/reactive-banana

On Jun 27, 2012, at 5:51 PM, Andres Löh wrote:

> Hi.
> 
>> I tried to install reactive-banana. This failed due to a dependency conflict, and then I noticed there
was a newer version of reactive-banana. So I did cabal update, and tried to install again. But whatever I
do, cabal keeps trying to install fclabels, but fclabels is no longer a dependency of
reactive-banana-0.6.0.0! How can I let cabal forget this dependency?
> 
> From the reactive-banana Cabal file:
> 
>    if flag(UseExtensions)
>        extensions:     TypeFamilies, GADTs, MultiParamTypeClasses,
>                        BangPatterns, TupleSections,
>                        EmptyDataDecls
>        build-depends:  QuickCheck >= 1.2 && < 2.5,
>                        fclabels == 1.1.*,
>                        unordered-containers >= 0.2.1.0 && < 0.3,
>                        hashable == 1.1.*
>        CPP-options:    -DUseExtensions
> 
> So try "-f-UseExtensions" if you really want that?
> 
> Cheers,
>  Andres
(Continue reading)

Andres Löh | 27 Jun 19:35 2012

Re: cabal doens't forget old dependencies

Hi.

On Wed, Jun 27, 2012 at 6:14 PM, Sjoerd Visscher <sjoerd <at> w3future.com> wrote:
> Ah, ok. I wasn't aware how flags work in Cabal, thanks.
>
> Makes me wonder why that flag was turned off on hackage.
> http://hackage.haskell.org/package/reactive-banana

I'm not sure "it was turned off". I see that it lists only some of the
dependencies. It's a general phenomenon. I don't understand the way
Hackage lists package dependencies. I'd appreciate if it'd actually
show the whole conditional tree of dependencies.

Cheers,
  Andres

--

-- 
Andres Löh, Haskell Consultant
Well-Typed LLP, http://www.well-typed.com
Albert Y. C. Lai | 27 Jun 18:07 2012
Picon

Re: cabal doens't forget old dependencies

On 12-06-27 11:29 AM, Sjoerd Visscher wrote:
> I tried to install reactive-banana. This failed due to a dependency conflict, and then I noticed there was
a newer version of reactive-banana. So I did cabal update, and tried to install again. But whatever I do,
cabal keeps trying to install fclabels, but fclabels is no longer a dependency of
reactive-banana-0.6.0.0! How can I let cabal forget this dependency?

In 
http://hackage.haskell.org/packages/archive/reactive-banana/0.6.0.0/reactive-banana.cabal 
:

if flag(UseExtensions)
         extensions:     TypeFamilies, GADTs, MultiParamTypeClasses,
                         BangPatterns, TupleSections,
                         EmptyDataDecls
         build-depends:  QuickCheck >= 1.2 && < 2.5,
                         fclabels == 1.1.*,
                         unordered-containers >= 0.2.1.0 && < 0.3,
                         hashable == 1.1.*
         CPP-options:    -DUseExtensions

Recall that the semantics of "if flag" is like Prolog not Pascal: if the 
packages under build-depends could be installed, then UseExtensions is 
set to true. Unless you manually override.

Gmane