Clone the Shady packages
PlaySpace Online depends on two Haskell packages that are in active development:
shady-graphics. First clone these two repositories from the links before and, in both repositories, check out the
$ cd /path/to/shady-gen $ git checkout playspace-online $ cd /path/to/shady-graphics $ git checkout playspace-online
$ cabal install cabal-dev
A short note on the .cabal file.
This web application depends on a lot of packages. Unfortunately, my experience is that specifying
the version numbers loosely leads to mixed results on many architectures. Hence, every single
package this application depends on is specified exactly in the
.cabal file. This is okay, since
no other package will ever depend on this application.
Thus, it will only build with GHC version 6.12.3. You may have noticed a file called
play-space-online.cabal.ghc-6.12.3. In future there will be multiple
like this which you can copy over the real one in order to build with alternative versions of GHC.
After you have checked out this repo:
$ cabal-dev add-source /path/to/shady-gen $ cabal-dev add-source /path/to/shady-graphics $ cabal-dev install --flags=production
Building again: an important note on cabal-dev
Perhaps you will hack on package
shady-graphics and want to rebuild
PlaySpace Online afterwards. If you do this be sure to run these commands again:
$ cabal-dev add-source /path/to/shady-gen $ cabal-dev add-source /path/to/shady-graphics
cabal-dev tarballs up the packages at a particular point in time. If you change the
cabal-dev has no way of knowing.
Creating a .cabal file for other GHC versions
The way I discovered all the packages that PlaySpace Online depends on was to
- build it successfully by tinkering a lot.
cabal installwith the
-vflag and dump the output to a file.
grepfor all lines beginning with
sed munging later I had a very long list of dependencies which I copy and pasted into the
If a contributor would like to do the same thing for other versions of GHC I'd be very grateful.