diff --git a/doc/source/installation.rst b/doc/source/installation.rst index 4cdb2ddae5d91f246b32d03d2dc93ce63e572422..c9e7543a5a380eaf5fa3a0d4be6971a10332762b 100644 --- a/doc/source/installation.rst +++ b/doc/source/installation.rst @@ -72,31 +72,62 @@ GstLAL is also available on the IGWN Conda Distrubution in a variety of pre-pack Building from source ^^^^^^^^^^^^^^^^^^^^^ -You can get a development copy of the gstlal software suite from git. +Building from source is required for development (bug fixes, new features, documentation improvements). You can check out the latest source of GstLAL from git: - * https://git.ligo.org/lscsoft/gstlal +.. code:: bash + + $ git clone https://git.ligo.org/lscsoft/gstlal.git + $ cd gstlal -Source tarballs for GstLAL packages and all the LIGO/Virgo software dependencies are available here: http://software.igwn.org/lscsoft/source/ -Building and installing from source follows the normal GNU build procedures -involving: +Building and installing from source follows the normal GNU build procedures involving: 1. ./00init.sh 2. ./configure 3. make - 4. make install. - -You should build the packages in order of gstlal, gstlal-ugly, -gstlal-calibration, gstlal-inspiral. If you are building to a non FHS place -(e.g., your home directory) you will need to ensure some environment variables -are set so that your installation will function. The following five variables -must be set. As **just an example**:: - - GI_TYPELIB_PATH="/path/to/your/installation/lib/girepository-1.0:${GI_TYPELIB_PATH}" - GST_PLUGIN_PATH="/path/to/your/installation/lib/gstreamer-0.10:${GST_PLUGIN_PATH}" - PATH="/path/to/your/installation/bin:${PATH}" - # Debian systems need lib, RH systems need lib64, including both doesn't hurt - PKG_CONFIG_PATH="/path/to/your/installation/lib/pkgconfig:/path/to/your/installation/lib64/pkgconfig:${PKG_CONFIG_PATH}" - # Debian systems need lib, RH systems need lib and lib64 - PYTHONPATH="/path/to/your/installation/lib64/python2.7/site-packages:/path/to/your/installation/lib/python2.7/site-packages:$PYTHONPATH" + 4. make install + +Since GstLAL is a collection of packages, there is a required build order to install the packages: + + 1. gstlal + 2. gstlal-ugly + 3. gstlal-burst / gstlal-calibration / gstlal-inspiral (any order) + +If you are building from source, you will also need to install all dependencies before building GstLAL, including: + + * fftw + * gsl + * gstreamer + * lalsuite + * ldas-tools-framecpp + * numpy + * pygobject + * python-ligo-lw + * scipy + +These dependencies can be installed in various ways, including conda, your favorite package manager (apt/yum), or from source. We also provide containers that are suitable for development. + +Singularity container +"""""""""""""""""""""" + +A development container is provided with all necessary dependencies to install GstLAL from source. Singularity also has extra features that make it possible to create writable containers, making it easy to get started with development: + +.. code:: bash + + $ singularity build --sandbox --fix-perms gstlal-dev docker://containers.ligo.org/lscsoft/gstlal:master + +This will pull a container from the container registry from the main branch and builds it in 'sandbox' mode into ``/gstlal-dev``, which allows one to invoke it in writable mode once it's built, and is needed to install software into the container. This may take a few minutes to set up compared to a normal pull. + +Once that's finished, you can enter the container in writable mode to install GstLAL from source: + +.. code:: bash + + $ singularity run --writable gstlal-dev + $ git clone https://git.ligo.org/lscsoft/gstlal.git + $ cd gstlal + +Now you can follow the normal GNU build procedures to build and install GstLAL. It is also recommended to install GstLAL into the container's ``/usr`` directory, done at the configure step, e.g. + +.. code:: bash + $ ./configure --prefix /usr