From Fedora Project Wiki

 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
= SOP for updating GHC in Fedora =
= SOP for updating GHC in Fedora =


''Note this page is still a draft and work in progress.''
''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.
Line 12: Line 12:


== Steps ==
== 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)
# Build the new ghc version (in dist-fX-ghc if it is for a branched release)
Line 17: Line 20:
#* 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.
# Rebuild hscolour with <code>%global without_hscolour 1</code> against the new ghc
# Build hscolour with bootstrapping enabled 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)
Line 23: Line 26:
# Chain-build ghc-transformers and ghc-mtl
# Chain-build ghc-transformers and ghc-mtl
# Wait for the buildroot.
# Wait for the buildroot.
# Chain-build haskell-platform stack (use haskell-sig/rebuild/rebuild.sh)
# Chain-build haskell-platform stack (use [http://git.fedorahosted.org/git/?p=haskell-sig.git;a=tree;f=rebuild haskell-sig/rebuild] rebuild.sh)
# Wait for the buildroot.
# Wait for the buildroot.
#
# Rebuild ghc-mtl (maybe also ghc-utf8-string)
# :

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.

  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. :