November 19, 2020

OpenBSD: GW-related software

Installation of LAL from git on -current

# –> stands for the root prompt
$ –> stands for the user prompt

Install software

You will need gmake, gcc, hdf5, gsl etc but you find all of these on pkg_add. I only mention here software not trivial to install or obsolete.

Install the frame library

$ cd /tmp
$ wget http://lappweb.in2p3.fr/virgo/FrameL/libframe-8.30.tar.gz
$ tar xvfz libframe-8.30.tar.gz
$ cd /tmp/libframe-8.30
$ ./configure
$ gmake
# gmake install

Install metaio

$ cd /tmp
$ wget http://software.ligo.org/lscsoft/source/metaio-8.4.0.tar.gz
$ tar xvfz metaio-8.4.0.tar.gz
$ cd metaio-8.4.0
$ ./configure
$ gmake
# gmake install

Clone the repo

$ cd /your/fav/path/
$ git clone https://git.ligo.org/lscsoft/lalsuite

Update automake and autoconf

(automake 1.16 is buggy and prior versions will give trouble)

$ cd /tmp
$ wget http://ftp.gnu.org/gnu/automake/automake-1.16.1.tar.gz
$ tar xvfz automake-1.16.1.tar.gz
$ cd automake-1.16.1
$ ./configure
$ gmake
# gmake install
$ cd /tmp
$ wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
$ tar xvfz autoconf-2.69.tar.gz
$ cd autoconf-2.69
$ ./configure
$ gmake
# gmake install

Run boot and configure it

$ cd /your/fav/path/lalsuite

You need to declare the version of autoconf and automake before running 00boot:

$ export AUTOCONF_VERSION=2.69
$ export AUTOMAKE_VERSION=1.16.1
$ ./00boot

After this, you need to disable the includes of alloca.h in

lalsuite/lalsimulation/src

which isn’t really needed as stdlib.h includes this header if appropriate. And
on OpenBSD is seems that this isn’t appropriate:

https://man.openbsd.org/alloca.3

$ sed -i '/\#include /d' ./lalsimulation/src/*.c
$ sed -i '/\#include /d' ./lalinference/src/*.c

Note the --disable-gcc-flags when you configure it.

$ ./configure --prefix=/your/fav/path/lal --disable-gcc-flags

Make it and install it

$ gmake
$ gmake install

Add path to your zshrc

. /your/fav/path/lal/etc/lalsuite-user-env.sh

Installation of jupyter and pycbc on -current

After the installation of lalsuite, this is as easy as running

$ pip install pycbc jupyter --user

(as of now, with python 2.7 … we’ll see with 3x)

After that, do not forget to add ~/.local/bin to your path.

To launch jupyter:

jupyter-notebook --browser="chrome"

EMRI_Kludge_Suite

Clone the suite wherever you want to have it

$ mkdir /home/pau/path/to/
$ cd /home/pau/path/to/
$ git clone https://github.com/alvincjk/EMRI_Kludge_Suite.git

Fetch gsl and install it locally under the EMRI_Kludge_Suite directory

$ wget -c ftp://ftp.gnu.org/pub/gnu/gsl/gsl-latest.tar.gz
$ tar xvfz gsl-latest.tar.gz -C /tmp
$ export GSLROOT=/home/pau/path/to/EMRI_Kludge_Suite/gsl
$ cd /tmp/gsl-*
$ ./configure --prefix=${GSLROOT} --disable-shared
$ gmake
$ gmake install

Same with fftw

Check the webpage for updates. I’m using here 3.3.8 as an example. Unfortunately they do not have a “latest” link.

$ wget -c http://www.fftw.org/fftw-3.3.8.tar.gz
$ tar xvfz fftw-3.3.8.tar.gz -C /tmp
$ cd /tmp/fftw-*
$ mkdir /home/pau/path/to/EMRI_Kludge_Suite/fftw
$ ./configure --prefix=/home/pau/path/to/EMRI_Kludge_Suite/fftw
$ gmake
$ gmake install

Install the suite

Modify Makefile to have GSL_ and FFTW_ lib and include like this:

GSL_LIB = ./gsl/lib
GSL_INCLUDE = ./gsl/include

FFTW_INCLUDE = ./fftw/include
FFTW_LIB = ./fftw/lib

Build it

$ cd /home/pau/path/to/EMRI_Kludge_Suite/
$ gmake clean
$ gmake

matplotlib and seaborn

Fetch the latest version of pip:

# wget https://bootstrap.pypa.io/get-pip.py
# python3.6 get-pip.py

Note that we require it to be python3.X

This will install pip3.X. After that, it is a matter of running

$ pip3.6 install numpy --user
$ pip3.6 install matplotlib --user
$ pip3.6 install seaborn--user

to install them locally as a normal user in $HOME/.local

To make sure that pip can install scipy (as required by seaborn), make sure your system is using gfortran and not g77:

# pkg_delete g77
# pkg_add g95