SOP for updating GHC in Fedora
Note this page is still 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
- 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
%global without_hscolour 1
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.