Arch Linux

This document describes the installation of dependencies needed for icetray on Arch Linux via its package manager pacman. Arch is not an officially supported platform for icetray, but it is known to work on Arch. If you are unsure what linux distro to use, do not pick Arch based on the existence of this page, you will almost certainly be happier with Ubuntu. Feel free to ask questions about using icetray on Arch, but do not act entitled to support.

Many of the dependencies are available from the official Arch repositories. However, some icetray dependencies are only available through the Arch user repositories (AUR), so you will need an AUR helper. This tutorial assumes that paru is your AUR helper. If you prefer a different AUR helper, please make the appropriate substitutions. Installing an AUR helper is beyond the scope of this document.

Note

If you are on a machine that has more than one core, you can increase the speed that AUR packages are compiled by enabling parallel builds: add MAKEFLAGS="-j$(nproc)" to your makepkg.conf before compiling.

Base Dependencies

First install the basic dependencies:

pacman -S base-devel cmake boost python zstd gsl cfitsio\
  hdf5 zeromq fftw blas-openblas suitesparse\
  python-numpy python-scipy python-matplotlib

Icetray depends on BLAS library of which there are several implementations. By default Arch installs reference implementation of BLAS, which is quite slow. OpenBLAS is much faster. If you get a prompt saying that blas-openblas is in conflict with blas, cblas, or lapack and asking if you want to replace it, you can safely say yes.

Steamshovel

The following packages are needed for Steamshovel:

pacman -S qt5-base freeglut python-qtconsole

Note

steamshovel now uses QT5 for it’s graphical interface which has builtin detection in cmake. However, it is still necessary to have the old detection mechanism for QT4 present. This may cause a message like “Found unsuitable Qt version "5.X.X" from /bin/qmake”, don’t worry this can be safely ignored. As long as the steamshovel project configures without any error messages, steamshovel will be build with QT5.

Building Documentation

If you want to build icetray documentation you will need doxygen, sphinx, breathe and sphinx:

paru -S doxygen python-sphinx python-breathe\
  python-sphinxcontrib-napoleon

OpenCL

icetray needs OpenCL for clsim and ppc. Arch has a number of OpenCL implementations, you need to pick the one specific to your machine’s GPU:

For NVIDIA use:

pacman -S opencl-nvidia

For AMD/Radeon use:

pacman -S opencl-mesa

For Intel Iris use:

pacman -s intel-compute-runtime ocl-icd

If you don’t have a GPU (possibly because you are in a virtual machine), a software implementation is available but slow:

pacman -S pocl

There are other alternatives available for different hardware in the AUR see the ArchWiki for more details.

Regardless of which implementation you pick you will also need the opencl-headers:

pacman -S opencl-headers

Geant4

geant4 is available in the AUR but the datafiles are in different packages. The ones that are needed for icetray are:

paru -S geant4 geant4-ensdfstatedata geant4-levelgammadata\
  geant4-ledata geant4-particlexsdata

and you need to set the environment variables:

export G4LEVELGAMMADATA=/usr/share/geant4-levelgammadata/PhotonEvaporation5.7
export G4ENSDFSTATEDATA=/usr/share/geant4-ensdfstatedata/G4ENSDFSTATE2.3
export G4LEDATA=/usr/share/geant4-ledata/G4EMLOW7.13/
export G4PARTICLEXSDATA=/usr/share/geant4-particlexsdata/G4PARTICLEXS3.1

ROOT

ROOT is available in extra but it is an optional dependency and not necessary for most functionality in icetray.

Unsupported Packages

multinest remains unsupported at this time.