How to build the dSS

Used libraries

In the dSS we're relying on some external libraries. To build it from source you'll need to install the following libraries and their corresponding headers:

  • boost
  • poco
  • gsoap
  • libical
  • spidermonkey

UbuntuSetup
Ts7800Setup
Mac OS X

Compiling

Get the source as explained here.

mkdir dss/build
cd dss/build
cmake ..
make

If you're compiling the dSS for development it's recommended that you set the data-directory to data/:

cmake .. -DWITH_DATADIR=data/

Options for CMake

  • -DWITH_DATADIR=path
    specifies the default location of the data directory (default: /usr/share/dss/data).
  • -DWITH_TESTS=[yes|no]
    include tests in the build (default: yes).
  • -DWITH_SIM=[yes|no]
    include the simulation in the build (default: yes)
  • -DCMAKE_BUILD_TYPE=[Release|Debug]
    default: Release

Configuring

As of version 0.7.7 the web server is using SSL, therefore you need to generate a private key and a certificate. A helper script that will do this for you is provided, it will generate a private key, a self signed certificate and it will put them in a file called dsscert.pem. The script is called in create_cert.sh and is located in the tools directory in the source tree, make sure that openssl is installed on your system and run the create_cert.sh script without any parameters. After that, copy the dsscert.pem file to your dss config directory.

All options are published in the internal property tree. This tree can be accessed through the webbrowser at [http://yourhost:8080/browse/].

Note, that the SOAP interface is also using SSL, by default it is configured to use the default dsscert.pem file from the dss config directory.

Building webpages

git submodule update --init
websrc/tools/build_and_copy_weblibs.sh websrc/ data/webroot/js/

Note: This step is not needed for release tarballs since it is performed as part of the tarball creation process

Building a debian package

Run the following command to build a debian package (from the dss root source directory)

  $ dpkg-buildpackage -rfakeroot

Signed debian package

If you're intending to distribute the package, you might want to sign it using your GNUPG key:

  $ dpkg-buildpackage -rfakeroot -k<GNUPG key>

Not that you'll have to pass your GnuPG key ID to this command, unless you have a key in your keychain which matches the last changelog entry

Running tests

The make target test runs the full test-suite. Since some of our test are still relying on a data directory to be present you have to create a symlink from your build/test directory to the data directory from git:

ln -s /path/to/your/datadir build/tests/data

After that symlink has been created you should be able to run the test by issuing the following line in your build directory:

make test

Also available in: HTML TXT