Cabal: top level dependency base -any

Hi, Could anyone shed light on the meaning of this error message? cabal: cannot configure xmonad-0.9.1 It requires base ==3.* For the dependency on base ==3.* there are these packages: base-3.0.3.1 and base-3.0.3.2. However none of them are available. base-3.0.3.1 was excluded because of the top level dependency base -any base-3.0.3.2 was excluded because of the top level dependency base -any My guess is that "-any" would mean either that any version is acceptable (in which case should always work, including this time) or that "-any" means that any version is unacceptable, in which case it would never work, which is daft. So clearly I don't understand what it is trying to say. Any hints? Is this documented anywhere? Thanks.

Hi.
Could anyone shed light on the meaning of this error message?
cabal: cannot configure xmonad-0.9.1 It requires base ==3.* For the dependency on base ==3.* there are these packages: base-3.0.3.1 and base-3.0.3.2. However none of them are available. base-3.0.3.1 was excluded because of the top level dependency base -any base-3.0.3.2 was excluded because of the top level dependency base -any
It's not a great error message. Yes, xmonad-0.9.1 requires base ==3.*. So far, so good. Now, base is a special package. It comes with ghc, and cannot be upgraded. That's why Cabal will rule out all base versions but the one you already have installed. If you have a recent ghc, that'll be base-4. So Cabal is correct to fail in this case: you cannot install this version of xmonad with this version of ghc. But yes, the error message could (and hopefully soon will) be improved. Cheers, Andres

On 2011 May 24, at 09:28, Andres Loeh wrote:
Hi.
Could anyone shed light on the meaning of this error message?
cabal: cannot configure xmonad-0.9.1 It requires base ==3.* For the dependency on base ==3.* there are these packages: base-3.0.3.1 and base-3.0.3.2. However none of them are available. base-3.0.3.1 was excluded because of the top level dependency base - any base-3.0.3.2 was excluded because of the top level dependency base - any
It's not a great error message. Yes, xmonad-0.9.1 requires base ==3.*. So far, so good. Now, base is a special package. It comes with ghc, and cannot be upgraded. That's why Cabal will rule out all base versions but the one you already have installed. If you have a recent ghc, that'll be base-4.
So Cabal is correct to fail in this case: you cannot install this version of xmonad with this version of ghc.
That makes sense. Thanks your the explanation. So would it be correct to infer that the -any restriction will only (and always) come into play with special packages such as base? Are there any other special packages besides base?

Hi.
So would it be correct to infer that the -any restriction will only (and always) come into play with special packages such as base?
No. Unfortunately, -any really means "any version is allowed", so that's why the error message is really misleading.
Are there any other special packages besides base?
W.r.t. Cabal's dependency resolution? No. Cheers, Andres

On 24 May 2011 18:13, Andres Loeh
Hi.
So would it be correct to infer that the -any restriction will only (and always) come into play with special packages such as base?
No. Unfortunately, -any really means "any version is allowed", so that's why the error message is really misleading.
Are there any other special packages besides base?
W.r.t. Cabal's dependency resolution? No.
Well, don't other boot libraries have similar mis-behaviour? -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

On 24 May 2011 16:57, Jacek Generowicz
Hi,
Could anyone shed light on the meaning of this error message?
cabal: cannot configure xmonad-0.9.1 It requires base ==3.* For the dependency on base ==3.* there are these packages: base-3.0.3.1 and base-3.0.3.2. However none of them are available. base-3.0.3.1 was excluded because of the top level dependency base -any base-3.0.3.2 was excluded because of the top level dependency base -any
My guess is that "-any" would mean either that any version is acceptable (in which case should always work, including this time) or that "-any" means that any version is unacceptable, in which case it would never work, which is daft. So clearly I don't understand what it is trying to say.
Any hints?
Yes: use xmonad-0.9,2 instead! It supports base-4, which is probably what you have (with GHC-7.0.*). -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

On 2011 May 24, at 09:28, Ivan Lazar Miljenovic wrote:
On 24 May 2011 16:57, Jacek Generowicz
wrote: Hi,
Could anyone shed light on the meaning of this error message?
cabal: cannot configure xmonad-0.9.1 It requires base ==3.* For the dependency on base ==3.* there are these packages: base-3.0.3.1 and base-3.0.3.2. However none of them are available. base-3.0.3.1 was excluded because of the top level dependency base - any base-3.0.3.2 was excluded because of the top level dependency base - any [...] Any hints?
Yes: use xmonad-0.9,2 instead! It supports base-4, which is probably what you have (with GHC-7.0.*).
Indeed, I discovered that to be the solution in the meantime, as I noticed that on my other system xmonad-0.9.2 was being installed by cabal install. Doing a cabal update made everything go through (with xmonad-0.9.2). Which makes me wonder why the two systems had different ideas of what the most recent xmonad version was, as I installed both of them yesterday afternoon. I seem to be discovering a rule of thumb: do a cabal update *every time* you want to cabal install. Anyway, thanks for the hint.
participants (3)
-
Andres Loeh
-
Ivan Lazar Miljenovic
-
Jacek Generowicz