From Fedora Project Wiki

(→‎Steps: hscolour without)
Line 17: Line 17:
#* for rawhide: <code>koji wait-repo dist-fX-build --build=ghc-ver-rel</code>
#* for rawhide: <code>koji wait-repo dist-fX-build --build=ghc-ver-rel</code>
#* for dist-fX-ghc: need to check the newRepo createrepo.log by hand.
#* for dist-fX-ghc: need to check the newRepo createrepo.log by hand.
# hscolour with <code>%global without_hscolour 1</code> against the new ghc
# Rebuild hscolour with <code>%global without_hscolour 1</code> against the new ghc
# Wait for it to appear in the buildroot as above.
# 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)
# Rebuild the new ghc version against ''itself'' to fix the ABI (note particularly the ghc API lib seems particularly ABI sensitive)

Revision as of 06:34, 25 March 2011

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

  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. Rebuild hscolour with %global without_hscolour 1 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.