AFS phaseout

As part of the AFS Phase-Out, announced and discussed in ITUM meetings and tracked in a dedicated Twiki page, starting with 1st February 2019 the area /afs/cern.ch/sw/lcg is unavailable, except for a very restricted number of volumes previously agreed (see also the dedicated JIRA project). 
As described in OTG0047749, the preferred replacement for software distribution is CernVM-FS:

  • /cvmfs/sft.cern.ch/lcg for all what relates to the LCG releases and ROOT;
  • /cvmfs/geant4.cern.ch/ for Geant4 releases;
  • /cvmfs/grid.cern.ch/ for Grid related stuff maintained by IT.

The /cvmfs/sft.cern.ch/lcg area

The /cvmfs/sft.cern.ch/lcg area is currently the main area of deployment for the LCG releases. The LCG releases are complex software stacks containing many of the packages typically required by experiments. The LCG releases are numbered sequentially and the release pace follows the releases of ROOT. Details about the latest releases and their content can be found at LCGInfo. The following subpaths of ​/cvmfs/sft.cern.ch/lcg are worth mentioning:

/cvmfs/sft.cern.ch/lcg/releases

The area is the equivalent of /​afs/cern.ch/sw/lcg/releases, containing both the packages required by a releases and the meta information build up the release. 

/cvmfs/sft.cern.ch/lcg/views

The area is the equivalent of /​afs/cern.ch/sw/lcg/views, containing the views for the releases, a way to bring the whole content of a releases under a {bin, include, lib, lib64, etc, share} typical structure.

/cvmfs/sft.cern.ch/lcg/contrib

The area is the equivalent of /​afs/cern.ch/sw/lcg/contrib, containing the tools, typically the compilers, CMake, ... required by the releases, but not only.

/cvmfs/sft.cern.ch/lcg/external

The area is the equivalent of /​afs/cern.ch/sw/lcg/external, containing other external packages.

/cvmfs/sft.cern.ch/lcg/app

The area is the equivalent of /​afs/cern.ch/sw/lcg/app, containing standalone builds of specific applications, e.g. ROOT.

How to use the /cvmfs/sft.cern.ch/lcg area

Using views

Views are convenient when a coherent set of packages is required. The script  /cvmfs/sft.cern.ch/lcg/views/setupViews.sh (/cvmfs/sft.cern.ch/lcg/views/setupViews.csh) is provided to enable a view. The script has to be sourced with two parameters: the LCG_xx version and the architecture-OS-compiler-buildtype label.
For example:
 

$ source /cvmfs/sft.cern.ch/lcg/views/setupViews.sh LCG_94 ​x86_64-centos7-gcc7-opt

to setup the view for the optimized version of LCG_94 built with gcc 7. Available architecture-OS-compiler-buildtype​ combinations can be found under /cvmfs/sft.cern.ch/lcg/views/LCG_xx;
for example:
 

$ ls /cvmfs/sft.cern.ch/lcg/views/LCG_94
x86_64-centos7-gcc62-dbg  x86_64-centos7-gcc7-dbg  x86_64-centos7-gcc8-dbg  x86_64-slc6-gcc62-dbg  
x86_64-slc6-gcc7-dbg  x86_64-slc6-gcc8-dbg  x86_64-ubuntu1604-gcc54-opt
x86_64-centos7-gcc62-opt  x86_64-centos7-gcc7-opt  x86_64-centos7-gcc8-opt  x86_64-slc6-gcc62-opt  
x86_64-slc6-gcc7-opt  x86_64-slc6-gcc8-opt  x86_64-ubuntu1804-gcc7-opt

Using compilers, CMake, ... from /cvmfs/sft.cern.ch/contrib 

The are /cvmfs/sft.cern.ch/lcg/contrib contains non native versions of compilers and other tools. These are used by the releases and setup automatically by the scripts mentioned above. However, they can be used also in standalone using the setup scripts available in the relevant directories; for example, the setup gcc8 on CentOS7
 
$ source /cvmfs/sft.cern.ch/lcg/contrib/gcc/8/x86_64-centos7/setup.sh  

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/cvmfs/sft.cern.ch/lcg/releases/gcc/8.2.0-3fa06/x86_64-centos7/bin/../libexec/gcc/x86_64-pc-linux-gnu/8.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ........
Thread model: posix
gcc version 8.2.0 (GCC)

 

Using single packages

Single packages available under releases can also be setup individually with the <package>-env.sh script available under each package.
For example, ROOT v6.14.04, available in LCG_94, can be setup with:
 
$ source /cvmfs/sft.cern.ch/lcg/releases/LCG_94/ROOT/6.14.04/x86_64-centos7-gcc7-opt/ROOT-env.sh


setting up all what needed:
 

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/cvmfs/sft.cern.ch/lcg/releases/gcc/7.3.0-cb1ee/x86_64-centos7/bin/../libexec/gcc/x86_64-pc-linux-gnu/7.3.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GCC/build/contrib/gcc-7.3.0/src/gcc/7.3.0/configure --prefix=/afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GCC/lcgcmake-install/gcc/7.3.0/x86_64-centos7 -with-system-zlib --disable-multilib --enable-languages=all --with-gnu-ld --with-ld=/afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GCC/lcgcmake-install/binutils/2.28/x86_64-centos7/bin/ld --with-gnu-as --with-as=/afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GCC/lcgcmake-install/binutils/2.28/x86_64-centos7/bin/as
Thread model: posix
gcc version 7.3.0 (GCC)

$ which root

/cvmfs/sft.cern.ch/lcg/releases/LCG_94/ROOT/6.14.04/x86_64-centos7-gcc7-opt/bin/root


Standalone ROOT

Standalone builds of the ROOT package are available for the native compilers under /cvmfs/sft.cern.ch/lcg/app/releases/ROOT . In this case, the usual way to setup ROOT shoudl be used. For example,
 
$ source /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.14.04/x86_64-centos7-gcc48-opt/root/bin/thisroot.sh

​sets up v6.14.04 on CentOS7 (native compiler gcc48).

Uncovered use cases

For products and versions not yet found on CVMFS, users are invited to contact their (experiment) software coordinator, to see whether these version are still recommended. If so, please file a ticket to AFS support (please state the experiment, affected group/use case, possible end date, as well as a contact person).