GHC Update SOP

From FedoraProject

Jump to: navigation, search

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.

  1. Build the new ghc version (in dist-fX-ghc if it is for a branched release)
  2. 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.
  3. Build hscolour with bootstrapping enabled against the new ghc
  4. Wait for it to appear in the buildroot as above.
  5. Rebuild the new ghc version against itself to fix the ABI (note particularly the ghc API lib seems particularly ABI sensitive)
  6. Wait for the buildroot for the new ghc build.
  7. Chain-build ghc-transformers and ghc-mtl
  8. Wait for the buildroot.
  9. Chain-build haskell-platform stack (use haskell-sig/rebuild rebuild.sh)
  10. Wait for the buildroot.
  11. Rebuild ghc-mtl (maybe also ghc-utf8-string)
  12.  :