packaging options for Mac OS X
greg at gregorycollins.net
Wed Nov 24 02:46:25 EST 2010
On Wed, Nov 24, 2010 at 6:58 AM, Mark Lentczner <markl at glyphic.com> wrote:
> 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.
I think it would be better to bundle them.
> 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.
I think most users would prefer binaries but this would eliminate a
whole class of problems.
> 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).
If you can get it working, this would be the best way, but I've never
managed to unpack the GHC installer and successfully convince the OSX
installer tools to use the package inside.
> 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 think this is the way you'll ultimately end up going if you have the
patience to do it "right".
Gregory Collins <greg at gregorycollins.net>
More information about the Haskell-platform