Feedback of hscPipe 7.9.1 installation in Fedora 30

In the past few months, I encountered issues and asked various questions for installation of hscPipe 7.9.1 in Fedora 30, which default compiler is gcc 9.2.1 (see the topics I asked: libicudata.so, undefined symbol, libiomp5.so). With help from a project scientist here, we figured out that most of the issues are related to gcc version, which had been noted at pipeline prerequisites. However, the devtoolset-6 seems unavailable in Fedora 30 for now, and user-installation of gcc 6.3.1 (or later) is somehow difficult and takes time. We think that Conda should be able to handle/solve issues (I think, this is also the reason for using Conda in lsstpipe/hscPipe). Here I share the settings for the installation of hscPipe 7.9.1 in Fedora 30.

bash
bash newinstall.sh

source loadLSST.bash
export INCLUDE="${CONDA_PREFIX}/include"
export LD_LIBRARY_PATH="${CONDA_PREFIX}/lib"
export LD_RUN_PATH="${LD_LIBRARY_PATH}"
conda install -c anaconda gxx_linux-64=7.3.0
conda install -c anaconda libstdcxx-ng=7.3.0
conda install -c anaconda make
conda install -c anaconda pkgconfig
conda install -c anaconda cmake
conda install -c anaconda flex
conda install -c anaconda bison
conda install -c anaconda boost=1.67.0
conda install -c anaconda boost-cpp=1.67.0
conda install -c anaconda cairo

cd $CONDA_PREFIX/bin
ln -s x86_64-conda_cos6-linux-gnu-gcc gcc
ln -s x86_64-conda_cos6-linux-gnu-g++ g++
ln -s x86_64-conda_cos6-linux-gnu-c++ c++
ln -s x86_64-conda_cos6-linux-gnu-cc cc
ln -s x86_64-conda_cos6-linux-gnu-ld ld
ln -s x86_64-conda_cos6-linux-gnu-ar ar

eups distrib install hscPipe 7.9.1

Then installation will die at [ 52/97 ] sconsUtils 7.0-hsc, which has a checking procedure for compiler name (current $CC is x86_64-conda_cos6-linux-gnu-cc). If you don’t want to manually install sconsUtils via eups, the quick solution for sconsUtils is

export CC=gcc
export CXX=g++
eups distrib install sconsUtils 7.0-hsc
source loadLSST.bash

The step of “source loadLSST.bash” again is necessary, otherwise the following installations will be confused with gcc in OS, and encounter ld path issue.

However, the checking procedure in installed sconsUtils is still called by following package installations, which will raise the “Unrecognised compiler” error again. So you need to
1. open [install directory]/stack/miniconda3-4.5.12-1172c30/Linux64/sconsUtils/7.0-hsc/python/lsst/sconsUtils/state.py
2. remove the character “^” in front of gcc, icc, clang, and cc, i.e. these in line 336-349.

After the fix of sconsUtils, just start the installation of hscPipe again

eups distrib install hscPipe 7.9.1

Then everything should go smoothly.

Some inputs:

  1. Using the compilers in Conda is an alternative solution for OS without devtoolset.
  2. We suggest modifying the code of compiler checking in sconsUtils.
  3. We notice that, in the installations of some packages, eups will export PATH=/bin:$PATH (something like that, I forgot the exact codes), which forces the installation to use gcc in OS (9.2.1 for Fedora 30). Fortunately, we don’t encounter the issue of GLIBCXX version in these packages.