From bff29c28ce603c55901242b152f0b6a2e3b42a6f Mon Sep 17 00:00:00 2001
From: Klaus Rabbertz <klaus.rabbertz@cern.ch>
Date: Fri, 21 Mar 2025 22:24:07 +0100
Subject: [PATCH] Updated install script

---
 tools/fnlosrc_install.csh | 120 ++++++++++++--------------------------
 1 file changed, 37 insertions(+), 83 deletions(-)

diff --git a/tools/fnlosrc_install.csh b/tools/fnlosrc_install.csh
index 73293a54..b5747cd2 100755
--- a/tools/fnlosrc_install.csh
+++ b/tools/fnlosrc_install.csh
@@ -43,13 +43,9 @@
 #    Examples are the GCC compiler collection, an MPI installation like OpenMPI or
 #    MPICH(2), the GNU scientific library GSL, or SWIG for Python interfaces to
 #    the C++ libraries.
-#    Starting with revision 2411 of the fastNLO packages, full C++11 compatibility
-#    of the compiler is enforced, which requires at least version 4.8.1 of the
+#    Starting with revision 3055 of the fastNLO packages, full C++17 compatibility
+#    of the compiler is enforced, which requires at least version 11 of the
 #    GNU compiler collection.
-#    To avoid recurring issues with incompatible versions of the Boost C++ libraries,
-#    it is strongly recommended to use LHAPDF version 6.2.0 or newer and, if desired,
-#    YODA >= version 1.6.7 and Rivet >= version 2.5.4. Using these or newer versions
-#    the use of the Boost C++ libraries can be avoided altogether!
 #
 #    Most problems encountered here are NOT because of fastNLO itself, but
 #    because of requirements of other packages! For example, fastNLO itself
@@ -96,19 +92,16 @@
 #      the one from ${base}/bin.
 #    Usually, this is set up via defining the PATH environment variable appropriately.
 #
-# 2. If the system compiler is not recent enough, is not C++11 compatible, or
+# 2. If the system compiler is not recent enough, is not C++17 compatible, or
 #    otherwise incompatible with the selected packages, another GCC compiler
 #    collection from /cvmfs can be used:
-#       In case of CMS e.g. "/cvmfs/cms.cern.ch/slc6_amd64_gcc481" can be used with
-#          source ${MYCVMFS}/external/gcc/4.8.1/etc/profile.d/init.csh
-#
-#       The LCG versions like in "/cvmfs/sft.cern.ch/lcg/contrib/gcc/4.8.4"
-#       have not been tested. They would require e.g.
-#          source ${MYCVMFS}/x86_64-cc7/setup.csh
-#       and do set the FC, CXX, and CC environment variables, which is not advisable,
-#       because these variables should be left for the end user to modify as is done
-#       in some command lines here. Beware, since this might lead to conflicts!
+#       For example, the LCG views 105  for Centos7 with GCC 11 or
+#                                  105a for Alma9   with GCC 11
+#        "/cvmfs/sft.cern.ch/lcg/views/LCG_105/x86_64-centos7-gcc11-opt/setup.sh"
+#        "/cvmfs/sft.cern.ch/lcg/views/LCG_105a/x86_64-el9-gcc11-opt/setup.sh"
+#       have been tested successfully.
 #
+### DEPRECATED, PLEASE IGNORE
 # 3. If you want to install BlackHat 0.9.9 for use within Sherpa-->MCGrid-->fastNLO:
 #    - Compilation with gcc-4.8.x or newer gives compile errors -->
 #      you must use the patched version blackhat-0.9.9-patched.tar.gz you should have
@@ -125,22 +118,13 @@
 #      By default only the ppjj process is downloaded, see below.
 #      ATTENTION: You need to be online to download and install processes!
 #
-# 5. If you switch to a newer compiler via the "module" command,
-#    "module load compiler/gnu/4.8"
-#    and you still use Boost-dependent packages it might be necessary to
-#    also activate a newer boost library (>= 1.48.0) used e.g. by older LHAPDF (< 6.2.0),
-#    YODA (1.4.x < YODA < 1.6.x), or RIVET (2.3.x < Rivet < 2.5.x) packages:
-#    "module load lib/boost/1.56.0"
-#    In that case configure the packages by specifying additional include
-#    paths with CPPFLAGS="-I${INCLUDE}" or more explicitly
-#    by CPPFLAGS="-I/add/include/path1 -I/add/include/path2".
-#
-# 6. SHERPA can be used with MPI for parallel processing if desired. In that case,
+# 5. SHERPA can be used with MPI for parallel processing if desired. In that case,
 #    the proper MPICH or OpenMPI software needs to be installed or activated, e.g.
 #    via "module load mpi/openmpi/version". In that case set below withmpi to "1".
 #    Please note that by default CXX support is not available in standard
 #    installations of OpenMPI version 2. OpenMPI v2 is usable only if compiled
 #    with --enable-mpi-cxx!
+### END OF DEPRECATED
 #
 #==============================================================================
 # Check command line arguments
@@ -150,16 +134,20 @@ if ( $#argv < 2 ) then
    echo "#=============================================================================="
    echo "Usage: $0 basedir [optional_argument_2] [optional_argument_3] ..."
    echo "  1st argument: Base dir for installations, absolute path to e.g. ${HOME}/local"
-   echo "  2nd optional argument: Base path to additional software to be taken from cvmfs,"
-   echo "                         e.g. /cvmfs/cms.cern.ch/slc6_amd64_gcc700"
-   echo "                         or   /cvmfs/sft.cern.ch/lcg/contrib/gcc/4.8"
-   echo "                         Set to _ to only use your local system and skip this setting."
-   echo "  3rd optional argument: Sub path to GCC setup script in cvmfs software distribution."
-   echo "                         The minimally required version is gcc 4.8.1(!)"
-   echo "                         e.g. external/gcc/7.0.0-omkpbe2/etc/profile.d/init"
-   echo "                         or   x86_64-slc6/setup"
-   echo "                         (.csh or .sh are added automatically)."
-   echo "                         Set to _ to use your system compiler and skip this setting."
+   echo "  2nd optional argument: Deprecated, just use _ for now."
+   echo "  3rd optional argument: Deprecated, just use _ for now."
+### DEPRECATED, PLEASE IGNORE
+#   echo "  2nd optional argument: Base path to additional software to be taken from cvmfs,"
+#   echo "                         e.g. /cvmfs/cms.cern.ch/slc6_amd64_gcc700"
+#   echo "                         or   /cvmfs/sft.cern.ch/lcg/contrib/gcc/4.8"
+#   echo "                         Set to _ to only use your local system and skip this setting."
+#   echo "  3rd optional argument: Sub path to GCC setup script in cvmfs software distribution."
+#   echo "                         The minimally required version is gcc 4.8.1(!)"
+#   echo "                         e.g. external/gcc/7.0.0-omkpbe2/etc/profile.d/init"
+#   echo "                         or   x86_64-slc6/setup"
+#   echo "                         (.csh or .sh are added automatically)."
+#   echo "                         Set to _ to use your system compiler and skip this setting."
+### END OF DEPRECATED
    echo "  4th optional argument: Include LHAPDF6 from CVMFS? def.=0"
    echo "                         By default this script installs its own version of LHAPDF."
    echo "                         Give path to desired bin/lhapdf-config in cvmfs to try using another one,"
@@ -674,20 +662,6 @@ endif
 # Version 3.0.0 uses cmake and gives errors while compiling with ROOT v5.34.25!
 #------------------------------------------------------------------------------
 if ( $withoptional ) then
-#   set arc="HepMC-2.06.09"
-#   if ( ! -e ${arc}_installed  ) then
-#      tar xzf ${arc}.tar.gz
-#      cd ${arc}
-#      ./configure --prefix=${base} --with-momentum=GEV --with-length=MM
-#      make -j${cores} install
-#      cd ..
-#      touch ${arc}_installed
-#   endif
-#
-# HepMC3 (needed by Rivet-3.x.x):
-# Python is enabled by default. Requires cmake version 3.
-#------------------------------------------------------------------------------
-#   set arc="HepMC3-3.2.2"
    set arc="HepMC3-3.2.7"
    if ( ! -e ${arc}_installed  ) then
       tar xzf ${arc}.tar.gz
@@ -718,15 +692,11 @@ if ( $withoptional ) then
       touch ${arc}_installed
    endif
 #
-# YODA (>= 1.6.7 is recommended; needed by Rivet):
+# YODA (>= 2.1.x is recommended; needed by Rivet 4):
 # Python is enabled by default. If Python with ROOT interfacing is desired, use "--enable-root".
 #------------------------------------------------------------------------------
-#   set arc="YODA-1.6.7"
-#   set arc="YODA-1.8.3"
-#   set arc="YODA-1.9.6"
-#   set arc="YODA-1.9.7"
-   set arc="YODA-1.9.10"
-#   set arc="YODA-2.0.0" # Required by Rivet 4.0.0
+#   set arc="YODA-1.9.11"
+   set arc="YODA-2.1.0"
    if ( ! -e ${arc}_installed  ) then
       tar xzf ${arc}.tar.gz
       cd ${arc}
@@ -736,29 +706,16 @@ if ( $withoptional ) then
       touch ${arc}_installed
    endif
 #
-# Rivet (>= 2.5.4 is recommended; v1 is too old):
+# Rivet (>= 4.1.x is recommended):
 # Python is enabled by default.
 #------------------------------------------------------------------------------
 #   set arc="Rivet-2.5.4"
-#   set arc="Rivet-3.1.4" # Needs HepMC3 and fastjet contrib
-#   set arc="Rivet-3.1.6" # Needs HepMC3 and fastjet contrib
-#   set arc="Rivet-3.1.7" # Needs HepMC3 and fastjet contrib and fastjet >= 3.4.0
-   set arc="Rivet-3.1.10" # Needs HepMC3 and fastjet contrib and fastjet >= 3.4.0
-#
-# Rivet 4.0.0 configuration failing even when using --without-hdf5
-# configure: HDF5 include flags:  ::: -I/usr/include -I/usr/include/hdf5/serial
-# configure: HDF5 lib flags:  -L/usr/lib/x86_64-linux-gnu/hdf5/serial ::: -lhdf5_hl -lhdf5  -lcrypto -lcurl -lpthread -lsz -lz -ldl -lm
-# configure: WARNING: highfive header directory was not found
-# configure: error: highfive (HDF5 for C++) is required
-# Do not use yet!
-#   set arc="Rivet-4.0.0"
+#   set arc="Rivet-3.1.11" # Needs HepMC3 and fastjet contrib and fastjet >= 3.4.0
+   set arc="Rivet-4.1.0"
    if ( ! -e ${arc}_installed  ) then
       tar xzf ${arc}.tar.gz
       cd ${arc}
 #      ./configure --prefix=${base} ${pyextopt} CPPFLAGS="${MYCPPFLAGS}"
-# ATTENTION: Remove analysis giving compile errors
-      rm -f analyses/pluginATLAS/*2663725*
-#      rehash
       ./configure --prefix=${base} ${pyextopt} --with-hepmc3=`${base}/bin/HepMC3-config --prefix` CPPFLAGS="${MYCPPFLAGS}"
       make -j${cores} install
       cp -p rivetenv.*sh ..
@@ -821,17 +778,10 @@ endif
 # fastNLO Toolkit:
 #------------------------------------------------------------------------------
 if ( ! $mpnnlo ) then
-#   set arc="fastnlo_toolkit-2.3.1-2585"
-#   set arc="fastnlo_toolkit-2.3.1-2657"
-#   set arc="fastnlo_toolkit-2.3.1-2753"
 #   set arc="fastnlo_toolkit-2.3.1-2771"
-#   set arc="fastnlo_toolkit-2.5.0-2826"
-#   set arc="fastnlo_toolkit-2.5.0-2848"
 #   set arc="fastnlo_toolkit-2.5.0-2856"
-#   set arc="fastnlo_toolkit-2.5.1-2890"
-#   set arc="fastnlo_toolkit-2.5.1-3022"
 #   set arc="fastnlo_toolkit-2.5.1-3034"
-   set arc="fastnlo_toolkit-2.6.0-3055"
+   set arc="fastnlo_toolkit-2.6.0-3067"
    set rev=""
    if ( ! -e ${arc}_installed  ) then
       tar xzf ${arc}${rev}.tar.gz
@@ -928,7 +878,9 @@ if ( $withnnlojet ) then
 # NNLOJET modules2 production candidate
 #      set arc="nnlo-bridge-1.0.0"
 # NNLOJET interface update with rev7902
-      set arc="nnlo-bridge-1.0.2"
+#      set arc="nnlo-bridge-1.0.2"
+# NNLOJET interface update with rev7902_newbridge
+      set arc="nnlo-bridge-1.0.3"
 # NNLOJET modules2 APPLfast2 test
 #      set arc="nnlo-bridge-2.0.3"
       if ( ! -e ${arc}_installed  ) then
@@ -965,8 +917,10 @@ if ( $withnnlojet ) then
 #   tar xzf ${arc}.tar.gz
 # Fixed makefile for gcc11 of revision 5918, or bridge updates for revision 6591
 # Patches required?
+#     set rev=""
 #     set rev="_multicore"
 #     set rev="_newcombine" # Has newer nnlojet-combine python code
+     set rev="_newbridge"  # Has latest modifications from Mark
      tar xzf ${arc}${rev}.tar.gz
    cd ${arc}/driver
 # Skip depend for now for modules 2 revisions
-- 
GitLab