Building/installing OS X application bundles for GUIs - cabal-macosx

Andy Gimblett haskell at
Wed Feb 24 07:54:51 EST 2010

Hi all,

Last week I quietly released v0.1.0 of cabal-macosx, providing support  
for building OSX application bundles (e.g. and in particular for GUIs  
created using wxHaskell and gtk2hs - hence all the cross-posting):

I'm now soliciting input on how to handle the install stage, leading  
(I hope) to a loudly-announcable release soon. :-)

The current package provides a post-build hook which creates an  
application bundle at dist/build/ (for example).  It seems to  
work well.  See the source repository for examples.

However, running "runghc Setup install" copies the bare executable at  
dist/build/foo/foo (rather than the bundle) to the install  
location, which is no good.  So I need to put in some install  
infrastructure to copy the .app, not the bare executable, to the right  

That raises the question: what is the right place?  It seems to me  
that the defaults are not the right defaults for this case.  --global  
should probably go to /Applications, and --user should perhaps go to ~/ 
Applications (though I'm less sure about that).  Of course, end-users  
can explicitly set this on a per-install basis, but it seems that for  
bundles we'd want to override the default.

Thus I'm currently asking:

* What do people think about the default installation question?

* Can anyone advise me on the right way to handle this (installing  
the .app, and overriding the default locations) with Cabal?  I'm  
hoping I can just tweak part of the LocalBuildInfo and let the default  
machinery then handle the work, but at present it's not clear to me  
how to do that, and rather than spend ages trying to figure it out,  
perhaps someone who knows can help me out?  I'm hoping I'm not going  
to have to completely override the install machinery - that would feel  
somewhat self-defeating.

Many thanks,


Andy Gimblett

More information about the cabal-devel mailing list