HEADS UP: Running cabal install with the latest GHC

Hey all, SPJ pointed out to me today that if you try to run: cabal install --with-ghc=/path/to/inplace/bin/ghc-stage2 with the latest GHC HEAD, this probably will not actually work, because your system installed version of Cabal is probably too old to deal with the new package key stuff in HEAD. So, how do you get a version of cabal-install (and Cabal) which is new enough to do what you need it to? The trick is to compile Cabal using your /old/ GHC. Step-by-step, this involves cd'ing into libraries/Cabal/Cabal and running `cabal install` (or install it in a sandbox, if you like) and then cd'ing to libraries/Cabal/cabal-install and cabal install'ing that. Cabal devs, is cutting a new release of Cabal and cabal-install in the near future possible? In that case, users can just cabal update; cabal install cabal-install and get a version of Cabal which will work for them. Cheers, Edward

I'm not again putting out another release, but I'd prefer to make it on top
of 1.20 if possible. Making a 1.22 release takes much more work (RC time,
etc). Which are the patches in question. Can they easily be cherry-picked
onto the 1.20 branch? Are there any risk of breakages?
On Fri, Aug 8, 2014 at 2:00 PM, Edward Z. Yang
Hey all,
SPJ pointed out to me today that if you try to run:
cabal install --with-ghc=/path/to/inplace/bin/ghc-stage2
with the latest GHC HEAD, this probably will not actually work, because your system installed version of Cabal is probably too old to deal with the new package key stuff in HEAD. So, how do you get a version of cabal-install (and Cabal) which is new enough to do what you need it to?
The trick is to compile Cabal using your /old/ GHC. Step-by-step, this involves cd'ing into libraries/Cabal/Cabal and running `cabal install` (or install it in a sandbox, if you like) and then cd'ing to libraries/Cabal/cabal-install and cabal install'ing that.
Cabal devs, is cutting a new release of Cabal and cabal-install in the near future possible? In that case, users can just cabal update; cabal install cabal-install and get a version of Cabal which will work for them.
Cheers, Edward _______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel

They would be: 2b50d0a Fix regression for V09 test library handling. d3a696a Disable reinstalls with distinct package keys for now. 1d33c8f Add $pkgkey template variable, and use it for install paths. 41610a0 Implement package keys, distinguishing packages built with different deps/flags Unfortunately, these patches fuzz a bit without this next patch: 62450f9 Implement "reexported-modules" field, towards fixing GHC bug #8407. When you include that patch, there is only one piece of fuzz from 41610a0. One important caveat is that these patches do rearrange some of the API, so you wouldn't be able to build GHC 7.8 against these patches. So maybe we don't want to. If we had a way of releasing experimental, non-default picked up versions, that would be nice (i.e. Cabal 1.21). No warranty, but easy enough for GHC devs to say 'cabal install Cabal-1.21 cabal-install-1.21' or something. Edward Excerpts from Johan Tibell's message of 2014-08-08 22:02:25 +0100:
I'm not again putting out another release, but I'd prefer to make it on top of 1.20 if possible. Making a 1.22 release takes much more work (RC time, etc). Which are the patches in question. Can they easily be cherry-picked onto the 1.20 branch? Are there any risk of breakages?
On Fri, Aug 8, 2014 at 2:00 PM, Edward Z. Yang
wrote: Hey all,
SPJ pointed out to me today that if you try to run:
cabal install --with-ghc=/path/to/inplace/bin/ghc-stage2
with the latest GHC HEAD, this probably will not actually work, because your system installed version of Cabal is probably too old to deal with the new package key stuff in HEAD. So, how do you get a version of cabal-install (and Cabal) which is new enough to do what you need it to?
The trick is to compile Cabal using your /old/ GHC. Step-by-step, this involves cd'ing into libraries/Cabal/Cabal and running `cabal install` (or install it in a sandbox, if you like) and then cd'ing to libraries/Cabal/cabal-install and cabal install'ing that.
Cabal devs, is cutting a new release of Cabal and cabal-install in the near future possible? In that case, users can just cabal update; cabal install cabal-install and get a version of Cabal which will work for them.
Cheers, Edward _______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel

Edward made some changes so that GHC 7.10 is backwards compatible with
older cabals (older cabals just can't use the new goodies, that's all),
which means that we won't need an earlier release. I'm still aiming for
another major release before 7.10? When's 7.10 scheduled before?
On Fri, Aug 8, 2014 at 11:17 PM, Edward Z. Yang
They would be:
2b50d0a Fix regression for V09 test library handling. d3a696a Disable reinstalls with distinct package keys for now. 1d33c8f Add $pkgkey template variable, and use it for install paths. 41610a0 Implement package keys, distinguishing packages built with different deps/flags
Unfortunately, these patches fuzz a bit without this next patch:
62450f9 Implement "reexported-modules" field, towards fixing GHC bug #8407.
When you include that patch, there is only one piece of fuzz from 41610a0.
One important caveat is that these patches do rearrange some of the API, so you wouldn't be able to build GHC 7.8 against these patches. So maybe we don't want to.
If we had a way of releasing experimental, non-default picked up versions, that would be nice (i.e. Cabal 1.21). No warranty, but easy enough for GHC devs to say 'cabal install Cabal-1.21 cabal-install-1.21' or something.
Edward
Excerpts from Johan Tibell's message of 2014-08-08 22:02:25 +0100:
I'm not again putting out another release, but I'd prefer to make it on top of 1.20 if possible. Making a 1.22 release takes much more work (RC time, etc). Which are the patches in question. Can they easily be cherry-picked onto the 1.20 branch? Are there any risk of breakages?
On Fri, Aug 8, 2014 at 2:00 PM, Edward Z. Yang
wrote: Hey all,
SPJ pointed out to me today that if you try to run:
cabal install --with-ghc=/path/to/inplace/bin/ghc-stage2
with the latest GHC HEAD, this probably will not actually work, because your system installed version of Cabal is probably too old to deal with the new package key stuff in HEAD. So, how do you get a version of cabal-install (and Cabal) which is new enough to do what you need it to?
The trick is to compile Cabal using your /old/ GHC. Step-by-step, this involves cd'ing into libraries/Cabal/Cabal and running `cabal install` (or install it in a sandbox, if you like) and then cd'ing to libraries/Cabal/cabal-install and cabal install'ing that.
Cabal devs, is cutting a new release of Cabal and cabal-install in the near future possible? In that case, users can just cabal update; cabal install cabal-install and get a version of Cabal which will work for them.
Cheers, Edward _______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel

Hi,
On 13 August 2014 16:22, Mikhail Glushenkov
End of the year, I think.
Correction: https://ghc.haskell.org/trac/ghc/wiki/Status/GHC-7.10.1 says "February 2015".

On Fri, Aug 8, 2014 at 8:00 AM, Edward Z. Yang
Hey all,
SPJ pointed out to me today that if you try to run:
cabal install --with-ghc=/path/to/inplace/bin/ghc-stage2
with the latest GHC HEAD, this probably will not actually work, because your system installed version of Cabal is probably too old to deal with the new package key stuff in HEAD. So, how do you get a version of cabal-install (and Cabal) which is new enough to do what you need it to?
The trick is to compile Cabal using your /old/ GHC. Step-by-step, this involves cd'ing into libraries/Cabal/Cabal and running `cabal install` (or install it in a sandbox, if you like) and then cd'ing to libraries/Cabal/cabal-install and cabal install'ing that.
Hi all, The new cabal-install I built last month following the instructions above started failing with recent GHC HEAD with messages like ghc: ghc no longer supports single-file style package databases (dist/package.conf.inplace) use 'ghc-pkg init' to create the database with the correct format. I found that repeating these steps with the latest libraries/Cabal submodule gave me a cabal-install that, so far, appears to be working with GHC HEAD. So if your cabal-install has stopped working with HEAD, try building the latest version as outlined in Edward's email. Cabal wizards, any gotchas with current Cabal & GHC HEAD I should be aware of? Regards, Reid Barton

Currently released cabal-install on hackage doesn't know how to do linkery
for ghc head afaik, but I could be wrong
On Sat, Sep 27, 2014 at 12:26 PM, Reid Barton
On Fri, Aug 8, 2014 at 8:00 AM, Edward Z. Yang
wrote: Hey all,
SPJ pointed out to me today that if you try to run:
cabal install --with-ghc=/path/to/inplace/bin/ghc-stage2
with the latest GHC HEAD, this probably will not actually work, because your system installed version of Cabal is probably too old to deal with the new package key stuff in HEAD. So, how do you get a version of cabal-install (and Cabal) which is new enough to do what you need it to?
The trick is to compile Cabal using your /old/ GHC. Step-by-step, this involves cd'ing into libraries/Cabal/Cabal and running `cabal install` (or install it in a sandbox, if you like) and then cd'ing to libraries/Cabal/cabal-install and cabal install'ing that.
Hi all,
The new cabal-install I built last month following the instructions above started failing with recent GHC HEAD with messages like
ghc: ghc no longer supports single-file style package databases (dist/package.conf.inplace) use 'ghc-pkg init' to create the database with the correct format.
I found that repeating these steps with the latest libraries/Cabal submodule gave me a cabal-install that, so far, appears to be working with GHC HEAD. So if your cabal-install has stopped working with HEAD, try building the latest version as outlined in Edward's email.
Cabal wizards, any gotchas with current Cabal & GHC HEAD I should be aware of?
Regards, Reid Barton
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

Hi Reid,
Ah yes, this is fallout from
commit da7289882610ccae3f16c74be7440d19c29ecd20
Author: Duncan Coutts
On Fri, Aug 8, 2014 at 8:00 AM, Edward Z. Yang
wrote: Hey all,
SPJ pointed out to me today that if you try to run:
cabal install --with-ghc=/path/to/inplace/bin/ghc-stage2
with the latest GHC HEAD, this probably will not actually work, because your system installed version of Cabal is probably too old to deal with the new package key stuff in HEAD. So, how do you get a version of cabal-install (and Cabal) which is new enough to do what you need it to?
The trick is to compile Cabal using your /old/ GHC. Step-by-step, this involves cd'ing into libraries/Cabal/Cabal and running `cabal install` (or install it in a sandbox, if you like) and then cd'ing to libraries/Cabal/cabal-install and cabal install'ing that.
Hi all,
The new cabal-install I built last month following the instructions above started failing with recent GHC HEAD with messages like
ghc: ghc no longer supports single-file style package databases (dist/package.conf.inplace) use 'ghc-pkg init' to create the database with the correct format.
I found that repeating these steps with the latest libraries/Cabal submodule gave me a cabal-install that, so far, appears to be working with GHC HEAD. So if your cabal-install has stopped working with HEAD, try building the latest version as outlined in Edward's email.
Cabal wizards, any gotchas with current Cabal & GHC HEAD I should be aware of?
Regards, Reid Barton
participants (5)
-
Carter Schonwald
-
Edward Z. Yang
-
Johan Tibell
-
Mikhail Glushenkov
-
Reid Barton