
Hi, 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 people. - 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 distribution. Ciao, Kili