# -*- coding: utf-8 -*-
#+TITLE: Installing Spot
#+SETUPFILE: setup.org
#+HTML_LINK_UP: index.html

* Installing from a tarball

The latest release of Spot is version {{{LASTRELEASE}}}:

- {{{LASTTARBALL}}} (see also the {{{LASTNEWS}}})

Past releases can be found [[https://www.lrde.epita.fr/dload/spot/][in the same directory]].  If you are
interested in /future/ releases, you can always peek at the [[http://teamcity.lrde.epita.fr/viewLog.html?buildTypeId%3Dbt16&buildId%3DlastFinished&buildBranch%3Dnext&tab%3Dartifacts&guest%3D1][last
successful development build]].

** Requirements

Spot requires a C++11-compliant compiler.  =g++= 4.8 or later, as well
as =clang++= 3.5 or later should work.

Spot expects a complete installation of Python (version 3.2 or later).
Especially, Python's headers files should be installed.  If you don't
have Python installed, and do NOT want to install it, you should run
=./configure= with the =--disable-python= option.

** Installation

The installation follows the usual =./configure=, =make=, =make install= steps.

Please *do* install Spot somewhere: while skipping =make install= and
running the command-line tools directly from the build directory
should work, it will be slower than if you run =make install= and run
the installed binaries.

By default, =make install= will install everything under
=/usr/local/=, so unless you have write access to this directory you
will either have to run =sudo make install=, or choose another
installation prefix.

For instance to install Spot in =~/usr= (i.e., in your home
directory), use

#+BEGIN_SRC sh
./configure --prefix ~/usr
make
make install
#+END_SRC

Files =INSTALL= and =README= included in the tarball contains more
explanations about the various options you can use during this
process.

* Installing the Debian packages

We build Debian packages for amd64 and i386, for both releases and the
development versions.  Packages for releases are built for Debian
Jessie (a.k.a. Debian stable) while packages for development are built
for Sid (a.k.a. Debian unstable).

Here is how to install the stable packages:

#+BEGIN_SRC sh
echo 'deb http://www.lrde.epita.fr/repo/debian/ stable/' >> /etc/apt/sources.list
apt-get update
apt-get install spot libspot-dev spot-doc python3-spot # Or a subset of those
#+END_SRC

Here is how to install the unstable packages:

#+BEGIN_SRC sh
echo 'deb http://www.lrde.epita.fr/repo/debian/ unstable/' >> /etc/apt/sources.list
apt-get update
apt-get install spot libspot-dev spot-doc python3-spot # Or a subset of those
#+END_SRC

The package =spot= contains the [[file:tools.org][command-line tools]]. =libspot-dev=
contains the header files if you plan to use Spot in a C++11
program. =spot-doc= contains some html (including these pages) and pdf
documentation. Finally =python3-spot= contains some Python bindings
(this package also installs some ipython notebooks that you can use as
examples).  The packages containing the libraries (=libspot0=,
=libbddx0=, =libspotltsmin0=) are automatically installed as
dependencies of the previous packages.

The stable packages should work in a recent *Ubuntu* as well, provided you
also add a path to a repository that distributes the GCC 4.9 runtime.
You can do that for instance with:

#+BEGIN_SRC sh
add-apt-repository -y ppa:ubuntu-toolchain-r/test
#+END_SRC

* Installing from git

The =master= branch of the git repository contains the code for the
latest released version, possibly with a few yet-to-be-released
bugfixes.  The =next= branch is the main development branch, and contains
the (working) code that should be part of the next major release.

To clone the git repository, use

#+BEGIN_SRC sh
git clone https://gitlab.lrde.epita.fr/spot/spot.git
#+END_SRC

This should put you on the =next= branch by default.  From there, read
the [[https://gitlab.lrde.epita.fr/spot/spot/blob/next/HACKING][HACKING]] file that should be at the top of your cloned repository:
it lists all the tools you should install before attempting to compile
the source tree.
