Hepsoft

The hepsoft release shall facilitate the usage of the PH/SFT provided software stack, i.e. usage without configuration management tools. This is achieved by placing a coherent set of packages under one root directory with the usually used sub-directories, e.g. "bin", "lib", "lib64", "include", "share", etc. The dependencies of packages within a release are either on the hepsoft release or on the system level (for basic dependencies, e.g. X11, glibc, ...). The advantage of this model is that not a complete stack needs to be rebuilt but only the bits which are either not present on the host system or would need to be upgraded to later versions. The installation of a certain release is placed in a directory:
<basedir>/hepsoft/<hepsoftversion>/<platform>

where

<basedir> :
A hepsoft release is relocatable and this directory can always be changed. It also implies that it should be possible to copy a whole release into other afs locations or on a local disk. If the location is changed, the only necessary adaption would be to change the values of the base directory in the setup.(c)sh scripts ( see below). 
At the time of writing, the location is "/afs/cern.ch/sw/lcg/hepsoft"

<hepsoftversion>:
A version number for a given hepsoft release. The different platform installations under this release are equivalent in the scope of list of packages and their versions. Currently releases of PH/SFT are described on a web page lcgsoft.cern.ch. In order to facilitate the retrieval of information of a given hepsoft release this information can be included there.

<platform>:
The platform name is made of the following constituents
<architecture>-<operating system>-<compiler version>-<optimization level>
(e.g. x86_64-slc5-gcc44-opt). 
All requested platforms per release will be added on this level. Below is a list of possible values for the different parts:

  • architecture : one of "x86_64", "i686"
  • platform : e.g. "slc4", "slc5", "mac106", "winxp"
  • compiler : e.g. "gcc34", "gcc44", "icc11", "llvm26"
  • optimization : one of "opt", "dbg" (although debug installations "dbg" can only be provided for a subset of the packages for the time being)

 

How to use Hepsoft

In each binary directory two setup scripts for bash and tcsh shells are provided.  For the e.g. "0.4" release and "x86_64-slc5-gcc44-opt" platform those can be sourced like:

  • bash: . /afs/cern.ch/sw/lcg/hepsoft/0.4/x86_64-slc5-gcc44-opt/setup.sh
  • tcsh: source /afs/cern.ch/sw/lcg/hepsoft/0.4/x86_64-slc5-gcc44-opt/setup.csh

These scripts will create/set the following environment variables

  • HEPROOT will be set to the root directory of the installation, in the example above this will be /afs/cern.ch/sw/lcg/hepsoft/0.4/x86_64-slc5-gcc44-opt
  • ROOTSYS is an variable needed for usage of the ROOT program, it's value will be $HEPROOT

The following variables will be changed:

  • PATH will be prepended with $HEPROOT/bin
  • LD_LIBRARY_PATH will be prepended with $HEPROOT/lib64 for 64bit platforms or $HEPROOT/lib for 32bit
  • MANPATH will be prepended with $HEPROOT/share/man

After sourcing the setup scripts all executables of the release can be run. 
In order to compile against the stack we recommend using the $HEPROOT variable to locate the lib and include directories. 
e.g. a C/C++ compile statement could look line :

gcc -I${HEPROOT}/include -L${HEPROOT}/lib64 -l<somehepsoftlibrary> myfile.cpp