[ANNOUNCE] Shaking up GHC

Matthias Kilian kili at outback.escape.de
Sat Jan 23 21:25:31 UTC 2016


On Sat, Jan 23, 2016 at 08:09:32PM +0100, Karel Gardas wrote:
> On 01/23/16 06:21 PM, Tuncer Ayaz wrote:
> >If there's a good way in 8.x (with new Cabal and Shake) to avoid
> >bundling, while using Shake for ghc --make, then I'm all for it. My
> >concern is that it has to be as simple as it's currently to install
> >ghc on a random Linux distro, in order for someone to use a Shakefile.
> Not only random Linux distro please! GHC supports a lot of other nice OSes
> and it would be a pity if shake-based build does not support them too.

Thanks, Karel, for pointing that out ;-)

First, I don't know Shake, and I didn't follow this thread too
closely, but let me describe the way packages for OpenBSD are built
and used (as I'm the guy who tries to keep ghc and some tools
implemented in Haskell running on that system). This may help
understanding the requirements at least OpenBSD (but probably other
disstributions) have.

- Users install packages (like ghc, darcs, xmonad or the
  haskell-platform, which is a meta-package) with OpenBSDs pkg_add(1).
  Those packages are fetched from official OpenBSD mirrors. In
  porticular, users are *not* expected to build anything themselves (but
  of course they may if they want).

- Oficcial binary packages are built for releases and regularly for
  OpenBSD-current ('HEAD') on dedicated build machines run by OpenBSD

- Package builds start *from scratch* with only the OpenBSD base system
  installed, and whenever the build of one package depends on another
  package, the latter has to be built from scratch first.

- Those builds are done from upstream source distributions (like
  ghc-7.10.3b-src.tar.bz2); preexisting binaries from external
  sources are frowned upon. 

- It is, however, acceptable, that a port maintainer supplies
  additional distfiles containing precompiled stuff. For example,
  for ghc, i provide trimmed down binary builds of ghc for boostrapping.
  Here's a proble, because people have to trust me that i'm not
  creating a bootstraper doing evil things.

So, in short, the requirements for a system like OpenBSD supporting
ghc as a binary package are self-contained ghc source distrivutions
(with all files needed to build it from source) and a way to create
a ghc bindist that can be used for building ghc from its source


More information about the ghc-devs mailing list