POETS Installation

Oprettelsesdato: 16-06-2010 11:33:53

This post will be rather technical, and therefore in english.

POETS server

Installing the POETS framework on a fresh linux machine requires some leg work. First of all, there are a number of direct dependencies for the POETS server:

    • Haskell ghc 6.12+
    • Cabal 1.8+
    • Thrift

ghc and cabal can be installed using normal package managers. The Flex package is needed for thrift, so we'll install this now:

sudo apt-get install ghc6 cabal-install git libghc6-zlib-dev automake libtool libboost-all-dev happy bison flex

After this, cabal needs to be updated and configured:

cabal update

Before any packages are installed using cabal, we need to install the newest version of parsec. This is because many packages depend on parsec, but they depend on version 2. POETS uses version 3, so installing version 3 after all other packages can lead to inconsistencies. This is done using:

cabal install "parsec>3"

At the time of writing, a there exists a newer version of cabal, than the one present in the Ubuntu package manager. This is easily fixed by:

cabal install cabal-install

Thrift must be built. First get the source using Git (Git must be installed if not already present)

git clone git://github.com/dreiss/thrift.git

Install it using:

cd thrift
./boostrap.sh
./configure
make
sudo make install

There is a bug in the Thrift inplementation for ghc 6.12 because "rec" is a keyword. Open lib/hs/src/Thrift.hs and replace "rec" with "trec".

Now thrift must be installed for Haskell:

cd lib/hs
cabal configure
cabal install

POETS uses the Generic Discrimination library by Henglein et. al. and this needs to be installed. It is not publicly available, but can be downloaded from DIKU's system. Assuming we are in the root of the library folder:

cabal configure
cabal install

Now. POETS uses many packages from the Hackage repository made available through cabal. These are:

haskell98, derive, ConfigFile, network, hslogger, time, old-locale, base >= 4, directory, filepath, stm, ghc >= 6.12, ghc-paths, split, binary, containers, mtl, wl-pprint, parsec, xml, datetime >= 0.2, xsd, MissingH, array

and must be installed using cabal install. Now the POETS server can be installed using (assuming we are in the haskell folder of the poets repository):

cabal configure
cabal build
cabal install

The server can be started using:

./dist/build/poetsserver/poetsserver <config file>

User interfaces

There currently exists two UI implementations, one based on JavaFX and one based on the Android API.

For the JavaFX implementation, javacc and javafx 1.3+ are needed. These are available from the Internet.

For the Android API, the Eclipse with android is needed. This is available from the developer.android.com website.