packaging options for Mac OS X

Mark Lentczner markl at glyphic.com
Wed Nov 24 00:58:08 EST 2010


I've been asked, and am willing to take over maintenance of the Mac OS X installer from George.

In preparation for that, I've been digging into how both GHC and Haskell Platform are currently packaged for Mac OS X, and how they might be in the future. I've generated some crazy ideas here, and thought I'd run them by all of you, especially since I have no idea what approaches are used for Windows and various Linux environments.

[Terminology warning: "installer package" means a Mac OS installer package that the user opens to install. "haskell package" means a package that cabal can build and install]

For Mac, GHC creates their own installer package that installs GHC and the base libraries. The central issue is how to deliver that along with the Haskell Platform components. Currently we give the user the stock GHC installer package, and a second H.P. installer package. They install these (in order) and off they go. It would be nicer to have just one installer package... Here are some ideas

1) Deliver the GHC installer package, but with a different postinstall script that downloads, compiles and installs the Haskell Platform. (!) This would be essentially the build.sh script from the Haskell Platform repo.

2) Like #1, but include the source trees or tarballs of all the haskell packages in the installer package, and have the build.sh script build from those sources.

1&2 Result in only one framework (GHC) being installed on the Mac, and the H.P. haskell packages are just managed by ghc-pkg & cabal just like any other haskell packages the user installs. Further, while these take longer to install, they guarantee that the packages are built in a way best for the user's system.

3) Unpack the GHC installer package, build and install the Haskell Platform haskell packages into that tree, and then re-create the installer package. This results in a single installed framework on the Mac (which could be called GHC, or GHC-HP, or some such).

4) Build an independent Haskell Platform framework, containing the haskell packages built and installed. Take apart the GHC installer package, and build a new, single installer package that installs both the H.P. framework and the GHC framework. This give two frameworks installed on the Mac, and the GHC one is the same as what GHC's installer package would install, but gives the user a single installer experience.

I'm looking for thoughts on this, both Mac specific, and what other distributions for H.P. have choosen to do, since these questions must be similar:
1) Use the installers GHC produces untouched? Rebundle them? Scrap them and build a new installer as needed?
2) Maintain compatibility with GHC's choice of platform packaging and installation? or not?
3) Dynamically build the Haskell Platform components at install time or not?

	- Mark

Mark Lentczner
http://www.ozonehouse.com/mark/
IRC: mtnviewmark






More information about the Haskell-platform mailing list