(→Steps) |
|||
Line 1: | Line 1: | ||
= SOP for updating GHC in Fedora = | = SOP for updating GHC in Fedora = | ||
'' | ''This is a draft and work in progress.'' | ||
Updating GHC to a new version is a heavy operation and should be done with due care and consideration. | Updating GHC to a new version is a heavy operation and should be done with due care and consideration. |
Latest revision as of 09:20, 9 September 2013
SOP for updating GHC in Fedora
This is a draft and work in progress.
Updating GHC to a new version is a heavy operation and should be done with due care and consideration. You probably also need to be a provenpackager or at least have commit access to most of the haskell-sig packages and/or coordinate with haskell-sig contributors. Note further that the current stable haskell-platform release dictates the current stable version of ghc.
Generally we do not update ghc version in stable releases without a good reason because of the large overhead of rebuilding everything.
For a branched release a version update and all consequent rebuilds of ghc-* etc needs to be done in a separate buildroot dist-fX-ghc to avoid disruption and repo breakage.
Steps
Sketch of steps for bootstrapping new ghc version into fedora. Needs some updating to be current.
- Build the new ghc version (in dist-fX-ghc if it is for a branched release)
- Wait for the buildroot to update:
- for rawhide:
koji wait-repo dist-fX-build --build=ghc-ver-rel
- for dist-fX-ghc: need to check the newRepo createrepo.log by hand.
- for rawhide:
- Build hscolour with bootstrapping enabled against the new ghc
- Wait for it to appear in the buildroot as above.
- Rebuild the new ghc version against itself to fix the ABI (note particularly the ghc API lib seems particularly ABI sensitive)
- Wait for the buildroot for the new ghc build.
- Chain-build ghc-transformers and ghc-mtl
- Wait for the buildroot.
- Chain-build haskell-platform stack (use haskell-sig/rebuild rebuild.sh)
- Wait for the buildroot.
- Rebuild ghc-mtl (maybe also ghc-utf8-string)
- :