I’ve been thinking about GHC recently. (A quick reminder: there are binary versions [1], but we can’t use them because some binaries point to ‘/bin/sh’.) I believe the following should work for x86_64 and i686: 1. We fetch the source version [2] (manually), adjust ‘/bin/sh’, and build everything using a non-Guix GHC. 2. Then we copy the needed binaries somewhere. 3. After that we write a build recipe. It should fetch the binary version of GHC [1], fix ‘/bin/sh’, and replace some binaries with the binaries from the second step. Questions: 1. We’d have to host the binaries (step 2) somewhere and repeat the process whenever the hash of ‘/bin/sh’ changes. How often will this happen? 2. Does Guix allow to fetch files from multiple places? Is it possible to use ‘url-fetch’ plus a local file? Could you show an example? [1] http://www.haskell.org/ghc/dist/7.0.1/ghc-7.0.1-i386-unknown-linux.tar.bz2 [2] http://www.haskell.org/ghc/dist/7.0.1/ghc-7.0.1-src.tar.bz2