Subject: CVS commit: pkgsrc/lang/ghc-bootstrap
From: David A. Holland
Date: 2013-12-15 03:00:07
Message id: 20131215020007.B76AF96@cvs.netbsd.org

Log Message:
Add a ghc-bootstrap package for making ghc binary bootstrap kits.
This is a ghc 6.8.3 package based on lang/ghc.

As of ghc 7.something, the old system of bootstrapping ghc from
generated C sources has been deprecated. While in theory we could move
pkgsrc up to that point using C bootstrap kits like the one currently
used by lang/ghc, there are several reasons not to: (1) it's a dead
end; (2) there is no available infrastructure for building such kits,
as in the past it was done by hand by the package maintainer; (3)
building ghc from C sources wasn't ever really fully supported anyway
and usually requires fiddling to make it work.

For this reason, by the power invested in me as one of the few people
who actually uses ghc for something nontrivial (much as I perhaps
regret doing so)... we will switch to binary bootstrap kits now.

The bootstrap kits generated here are just installable ghc packages
under a different name. This package depends on lang/ghc and uses the
installed ghc to build another copy; then that copy becomes the
bootstrap kit. That is, the bootstrap kit is the pkgsrc package you
get by doing 'make package' in this directory.

I have a (tested and working) patch to switch lang/ghc to use a new
bootstrap kit generated here, but I am intentionally holding off on
committing it until after 2013q4 is branched. That way anyone who
wants a bootstrap kit for a platform currently supported by lang/ghc
can get one by checking out 2013q4, building ghc, and then building
ghc-bootstrap.

Note that these bootstrap kits cannot be used with the wip/ghc
package; it uses a built but not installed ghc source tree as the
bootstrap kit. You can capture one of these from here if you really
want to by doing 'make' and then tarring up work/ghc-6.8.3... I think.
I haven't tested that, and for now it won't work anyway as wip/ghc is
too many versions ahead for such a build to be supported.

Because ghc can only be built with a recent ghc, updating lang/ghc to
a recent version will require a ping/pong process with ghc and
ghc-bootstrap. This is the chief reason to have a separate
ghc-bootstrap package; it should be perfectly possible to build
lang/ghc with a lang/ghc package as the bootstrap too.

Files:
RevisionActionfile
1.1addpkgsrc/lang/ghc-bootstrap/DESCR
1.1addpkgsrc/lang/ghc-bootstrap/Makefile
1.1addpkgsrc/lang/ghc-bootstrap/PLIST
1.1addpkgsrc/lang/ghc-bootstrap/distinfo
1.1addpkgsrc/lang/ghc-bootstrap/patches/patch-ac
1.1addpkgsrc/lang/ghc-bootstrap/patches/patch-ad
1.1addpkgsrc/lang/ghc-bootstrap/patches/patch-aj
1.1addpkgsrc/lang/ghc-bootstrap/patches/patch-ak
1.1addpkgsrc/lang/ghc-bootstrap/patches/patch-al
1.1addpkgsrc/lang/ghc-bootstrap/patches/patch-am
1.1addpkgsrc/lang/ghc-bootstrap/patches/patch-an
1.1addpkgsrc/lang/ghc-bootstrap/patches/patch-ao
1.1addpkgsrc/lang/ghc-bootstrap/patches/patch-ar
1.1addpkgsrc/lang/ghc-bootstrap/patches/patch-as
1.1addpkgsrc/lang/ghc-bootstrap/patches/patch-mk_bootstrap.mk