diff --git a/cmake/toolchain/heptools-dev-base.cmake b/cmake/toolchain/heptools-dev-base.cmake index 6109808d2841db99d765a30b94e96b1849cf1d07..fb9cdfd4ffa808b16add2daa1cc648cc7a4a7e05 100644 --- a/cmake/toolchain/heptools-dev-base.cmake +++ b/cmake/toolchain/heptools-dev-base.cmake @@ -169,8 +169,8 @@ LCG_AA_project(EDM4hep 00.02.01 # Externals LCG_external_package(lcgenv 1.3.15 ) LCG_external_package(absl_py 0.7.1 ) -if(${LCG_COMP} STREQUAL gcc AND NOT ${LCG_COMPVERS} VERSION_LESS 8 AND NOT ${LCG_COMPVERS} VERSION_EQUAL 62) - LCG_external_package(acts_core 0.10.05 ) +if(${LCG_COMP} STREQUAL gcc AND NOT ${LCG_COMPVERS} VERSION_LESS 8) + LCG_external_package(acts 3.0.0 ) endif() LCG_external_package(AIDA 3.2.1 ) LCG_external_package(alpaka 0.5.0 ) diff --git a/cmake/toolchain/heptools-dev3.cmake b/cmake/toolchain/heptools-dev3.cmake index 817b7fb411469973dbfa358af0f98ae9690e95be..f49f9f98db4013b3ea24dbb7639f9597dd4c4cda 100644 --- a/cmake/toolchain/heptools-dev3.cmake +++ b/cmake/toolchain/heptools-dev3.cmake @@ -24,3 +24,6 @@ if(APPLE) # We cannot build ROOT (HEAD) and R together because RConfig.h file endif() LCG_external_package(pythia8 303 ${MCGENPATH}/pythia8 ) LCG_external_package(madgraph5amc 2.8.0.atlas ${MCGENPATH}/madgraph5amc author=2.8.0) + +# Requires a fix in DD4hep +LCG_remove_package(acts) diff --git a/cmake/toolchain/heptools-dev3cuda.cmake b/cmake/toolchain/heptools-dev3cuda.cmake index 3c27fe1d60823a0cb1aaf2911833862c4f0717a1..b556a7279536fbd8529388cae3972aa46405b0b8 100644 --- a/cmake/toolchain/heptools-dev3cuda.cmake +++ b/cmake/toolchain/heptools-dev3cuda.cmake @@ -11,6 +11,9 @@ LCG_remove_package(Garfield++) LCG_remove_package(COOL) LCG_remove_package(CORAL) +# Requires a fix in DD4hep +LCG_remove_package(acts) + #---Overwrites and additional packages ---------------------------- LCG_external_package(Python 3.7.6 ) LCG_external_package(ROOT HEAD GIT=http://root.cern.ch/git/root.git ) diff --git a/cmake/toolchain/heptools-dev3python2.cmake b/cmake/toolchain/heptools-dev3python2.cmake index 901f125b3d5815496d55e21beecdd732a3f52b73..60981e4e65c3f215e4ddb7656e615172914380f4 100644 --- a/cmake/toolchain/heptools-dev3python2.cmake +++ b/cmake/toolchain/heptools-dev3python2.cmake @@ -15,3 +15,6 @@ endif() LCG_remove_package(Gaudi) LCG_external_package(pythia8 303 ${MCGENPATH}/pythia8 ) LCG_external_package(madgraph5amc 3.0.3.beta ${MCGENPATH}/madgraph5amc author=3.0.3.beta) + +# Requires a fix in DD4hep +LCG_remove_package(acts) diff --git a/jenkins/Jenkinsfile-nightly b/jenkins/Jenkinsfile-nightly index 1051330bb74acb5b8d896d912a9f01e7c34da82e..b00e182182efdb6b4df48d8b32c2c3307da23b97 100644 --- a/jenkins/Jenkinsfile-nightly +++ b/jenkins/Jenkinsfile-nightly @@ -18,7 +18,7 @@ def getCDashTrack() { return params.LCG_VERSION =~ 'dev' ? params.LCG_VERSION : def getTarget() { return params.TARGET != 'all' ? params.TARGET : params.LCG_VERSION =~ 'ARM' ? 'top_packages' : 'all' } def getIgnoreModules() { modules = 'future#winreg jpype#jpypex ROOT#JsMVA importlib_resources#importlib_resources' - if (params.LCG_VERSION =~ 'py3|python3|cuda|ARM') modules += ' agile#AGILe gosam#golem QMtest#qm' + if (params.LCG_VERSION =~ 'py3|python3|cuda|ARM|dev[3,4]$') modules += ' agile#AGILe gosam#golem QMtest#qm' if (params.LCG_VERSION =~ 'cuda') modules += ' hepdata_converter#hepdata_converter' if (params.TARGET != 'all') modules += ' ROOT#JupyROOT' return modules diff --git a/jenkins/cvmfs_install.sh b/jenkins/cvmfs_install.sh index 2c90aac47c22f1db018ace4011e3ff14795d9a34..94900ab2ad053de20dacc13c130d20c03e33efa9 100755 --- a/jenkins/cvmfs_install.sh +++ b/jenkins/cvmfs_install.sh @@ -61,8 +61,8 @@ if [[ "${BUILDMODE}" == "nightly" ]]; then rm /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/${LCG_VERSION}/$weekday/isDone-unstable-$PLATFORM rm /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/${LCG_VERSION}/$weekday/LCG_externals_$PLATFORM.txt rm /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/${LCG_VERSION}/$weekday/LCG_generators_$PLATFORM.txt - echo "$WORKSPACE/lcgcmake/jenkins/lcginstall.py -y -u http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/nightlies/${LCG_VERSION}/$weekday -r ${LCG_VERSION} -d LCG_${LCG_VERSION}_$PLATFORM.txt -p /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/${LCG_VERSION}/$weekday/ -e cvmfs" - $WORKSPACE/lcgcmake/jenkins/lcginstall.py -y -u http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/nightlies/${LCG_VERSION}/$weekday -r ${LCG_VERSION} -d LCG_${LCG_VERSION}_$PLATFORM.txt -p /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/${LCG_VERSION}/$weekday/ -e cvmfs + echo "$WORKSPACE/lcgcmake/jenkins/lcginstall.py -y -u https://lcgpackages.web.cern.ch/tarFiles/nightlies/${LCG_VERSION}/$weekday -r ${LCG_VERSION} -d LCG_${LCG_VERSION}_$PLATFORM.txt -p /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/${LCG_VERSION}/$weekday/ -e cvmfs" + $WORKSPACE/lcgcmake/jenkins/lcginstall.py -y -u https://lcgpackages.web.cern.ch/tarFiles/nightlies/${LCG_VERSION}/$weekday -r ${LCG_VERSION} -d LCG_${LCG_VERSION}_$PLATFORM.txt -p /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/${LCG_VERSION}/$weekday/ -e cvmfs if [ "\$?" == "0" ]; then echo "Installation script has worked, we go on" else @@ -70,8 +70,8 @@ if [[ "${BUILDMODE}" == "nightly" ]]; then fi cd /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/${LCG_VERSION}/$weekday/ - wget https://lcgpackages.web.cern.ch/lcgpackages/tarFiles/nightlies/${LCG_VERSION}/$weekday/isDone-$PLATFORM - wget https://lcgpackages.web.cern.ch/lcgpackages/tarFiles/nightlies/${LCG_VERSION}/$weekday/isDone-unstable-$PLATFORM + wget https://lcgpackages.web.cern.ch/tarFiles/nightlies/${LCG_VERSION}/$weekday/isDone-$PLATFORM + wget https://lcgpackages.web.cern.ch/tarFiles/nightlies/${LCG_VERSION}/$weekday/isDone-unstable-$PLATFORM $WORKSPACE/lcgcmake/jenkins/extract_LCG_summary.py /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/${LCG_VERSION}/$weekday $PLATFORM ${LCG_VERSION} RELEASE if [ -f "/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/${LCG_VERSION}/$weekday/isDone-$PLATFORM" ] && [ xtrue = "x${VIEWS_CREATION}" ]; then echo "The installation of the nightly is completed with all packages, let's go for the view creation" @@ -93,9 +93,9 @@ if [[ "${BUILDMODE}" == "nightly" ]]; then elif [[ "${BUILDMODE}" == "release" ]]; then if [[ "${UPDATELINKS}" == "false" ]]; then - $WORKSPACE/lcgcmake/jenkins/lcginstall.py -u http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/releases -a http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/layered_releases -r ${LCG_VERSION} -d LCG_${LCG_VERSION}_$PLATFORM.txt -p /cvmfs/sft.cern.ch/lcg/releases -e cvmfs + $WORKSPACE/lcgcmake/jenkins/lcginstall.py -u https://lcgpackages.web.cern.ch/tarFiles/releases -a https://lcgpackages.web.cern.ch/tarFiles/layered_releases -r ${LCG_VERSION} -d LCG_${LCG_VERSION}_$PLATFORM.txt -p /cvmfs/sft.cern.ch/lcg/releases -e cvmfs else - $WORKSPACE/lcgcmake/jenkins/lcginstall.py -u http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/releases -a http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/layered_releases -r ${LCG_VERSION} -d LCG_${LCG_VERSION}_$PLATFORM.txt -p /cvmfs/sft.cern.ch/lcg/releases -e cvmfs --update + $WORKSPACE/lcgcmake/jenkins/lcginstall.py -u https://lcgpackages.web.cern.ch/tarFiles/releases -a https://lcgpackages.web.cern.ch/tarFiles/layered_releases -r ${LCG_VERSION} -d LCG_${LCG_VERSION}_$PLATFORM.txt -p /cvmfs/sft.cern.ch/lcg/releases -e cvmfs --update fi if [ "\$?" == "0" ]; then @@ -127,9 +127,9 @@ elif [[ "${BUILDMODE}" == "release" ]]; then elif [[ "${BUILDMODE}" == "limited" ]]; then if [[ "${UPDATELINKS}" == "false" ]]; then - $WORKSPACE/lcgcmake/jenkins/lcginstall.py -o -u http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/releases -r ${LCG_VERSION} -d LCG_${LCG_VERSION}_$PLATFORM.txt -p /cvmfs/sft.cern.ch/lcg/releases -e cvmfs + $WORKSPACE/lcgcmake/jenkins/lcginstall.py -o -u https://lcgpackages.web.cern.ch/tarFiles/releases -r ${LCG_VERSION} -d LCG_${LCG_VERSION}_$PLATFORM.txt -p /cvmfs/sft.cern.ch/lcg/releases -e cvmfs else - $WORKSPACE/lcgcmake/jenkins/lcginstall.py -o -u http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/releases -r ${LCG_VERSION} -d LCG_${LCG_VERSION}_$PLATFORM.txt --update -p /cvmfs/sft.cern.ch/lcg/releases -e cvmfs + $WORKSPACE/lcgcmake/jenkins/lcginstall.py -o -u https://lcgpackages.web.cern.ch/tarFiles/releases -r ${LCG_VERSION} -d LCG_${LCG_VERSION}_$PLATFORM.txt --update -p /cvmfs/sft.cern.ch/lcg/releases -e cvmfs fi if [ "\$?" == "0" ]; then diff --git a/jenkins/jk-setup.sh b/jenkins/jk-setup.sh index c91d22f485c793f7eef2a31071c6f26f20c1650b..6c27e04394847a64ace3bb0cfa6b9cf78b1cbce7 100644 --- a/jenkins/jk-setup.sh +++ b/jenkins/jk-setup.sh @@ -37,9 +37,12 @@ fi if [[ $PLATFORM == *centos7* ]]; then LABEL_COMPILER=centos7 fi +if [[ $PLATFORM == *centos8* ]]; then + LABEL_COMPILER=centos8 +fi # setup CMake -----(the default version is often very old)------------------------- -if [[ $PLATFORM == *slc6* || $PLATFORM == *cc7* || $PLATFORM == *centos7* || $PLATFORM == *ubuntu* || $PLATFORM == *fedora* ]]; then +if [[ $PLATFORM == *slc6* || $PLATFORM == *cc7* || $PLATFORM == *centos* || $PLATFORM == *ubuntu* || $PLATFORM == *fedora* ]]; then if [[ ${ARCH} == *i686* ]]; then # i686 special case: the newer cmake is a link to x86_64, might cause problems!! export PATH=/cvmfs/sft.cern.ch/lcg/contrib/CMake/3.3.2/Linux-i686/bin:${PATH} diff --git a/jenkins/lcginstall.py b/jenkins/lcginstall.py index 71441e19c7aabb0d87abb4038a4ae058930360ec..937d14d34f9986c3d834c67e744bace184709a97 100755 --- a/jenkins/lcginstall.py +++ b/jenkins/lcginstall.py @@ -13,7 +13,7 @@ import buildinfo2json GCCPATHS = {'AFS': '/afs/cern.ch/sw/lcg/contrib/gcc', 'CVMFS': '/cvmfs/sft.cern.ch/lcg/contrib/gcc/', 'EOS': '/cvmfs/sft.cern.ch/lcg/contrib/gcc/'} RELEASEPATHS = {'AFS': '/afs/cern.ch/sw/lcg/releases', 'CVMFS': '/cvmfs/sft.cern.ch/lcg/releases', 'EOS': '/cvmfs/sft.cern.ch/lcg/releases'} -ReleasesURL = 'http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/releases' +ReleasesURL = 'https://lcgpackages.web.cern.ch/tarFiles/releases' def getCompilerPath(version, platform, fstype=None): global GCCPATHS @@ -40,7 +40,7 @@ def checkURL(url): if "file://" in url: return True if os.system('stat {0} 1>/dev/null 2>/dev/null'.format(url.replace('file://', ''))) == 0 else False ret = requests.head(url) - return ret.status_code == 200 + return ret.status_code in (200, 301, 302) class Package: @@ -164,7 +164,7 @@ class InstallProcess: url = str(alturl) if not checkURL(url): raise RuntimeError("URL {0} not found.".format(url)) - p = subprocess.Popen(['curl', '-s', url], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p = subprocess.Popen(['curl', '-L', '-s', url], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = p.communicate() if p.returncode == 0: return stdout.strip() @@ -181,7 +181,7 @@ class InstallProcess: p = subprocess.Popen(['find', url.replace('file://', ''), '-type', 'f', '-name', 'LCG_*.txt'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) else: - p = subprocess.Popen(['curl', '-s', url], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p = subprocess.Popen(['curl', '-L', '-s', url], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = p.communicate() if p.returncode == 0: if "file://" in url: @@ -301,7 +301,7 @@ class InstallProcess: filename = os.path.join(self.alternativeurl, package.getPackageFilename()) if self.nightly and not checkURL(filename): filename = os.path.join(ReleasesURL, package.getPackageFilename()) - p = subprocess.Popen('curl -s {0} | tar {1} -C {2} -f -'.format(filename, opts, self.prefix), + p = subprocess.Popen('curl -L -s {0} | tar {1} -C {2} -f -'.format(filename, opts, self.prefix), stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) stdout, stderr = p.communicate() @@ -320,7 +320,7 @@ class InstallProcess: return True else: print " ERROR: cannot properly run the following command:" - print ' curl -s', filename, ' | tar', opts, '-C', self.prefix, '-f', '-' + print ' curl -L -s', filename, ' | tar', opts, '-C', self.prefix, '-f', '-' print stderr if len(stdout.strip()) != 0: tarprefix = sorted(stdout.strip().split('\n'))[0] @@ -386,9 +386,9 @@ def main(): parser.add_argument('-d', '--description', help="Description name", default='', dest='description') parser.add_argument('-p', '--prefix', help="Installation prefix", default='.', dest='prefix') parser.add_argument('-u', '--release-url', help="URL of release area for tarfiles (use file:// for local ones)", - default='http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/releases', dest='releaseurl') + default='https://lcgpackages.web.cern.ch/tarFiles/releases', dest='releaseurl') parser.add_argument('-a', '--alt-url', help="URL of alternative area for tarfiles", - default='http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/latest', dest='alternativeurl') + default='https://lcgpackages.web.cern.ch/tarFiles/latest', dest='alternativeurl') parser.add_argument('-r', '--release-number', help="Release number", default='auto', dest='releasever') parser.add_argument('-f', '--force-install', help="Force untar selected packages", default=[], dest='force', nargs='*') @@ -403,7 +403,7 @@ def main(): args = parser.parse_args() args.prefix = os.path.abspath(args.prefix) - # def __init__(self, releaseurl = 'http://lcgpackages.cern.ch/tarFiles/releases', description, prefix = '.', lcgversion = 'test'): + # def __init__(self, releaseurl = 'https://lcgpackages.cern.ch/tarFiles/releases', description, prefix = '.', lcgversion = 'test'): # Check the installation type to execute installType = None diff --git a/projects/CMakeLists.txt b/projects/CMakeLists.txt index 6be02be02f1a7efdb2d1062fc9fa23ae4444dade..13faab2b3d7da94c61c3ff4ebba2a7c953e8910c 100644 --- a/projects/CMakeLists.txt +++ b/projects/CMakeLists.txt @@ -587,6 +587,7 @@ LCGPackage_Add( ) #--- Acts_core -------------------------------------------------------------------------------------- +# Kept for legacy LCGPackage_add( acts_core URL ${GenURL}/acts-core-${acts_core_native_version}.tar.gz @@ -603,3 +604,19 @@ LCGPackage_add( ${Boost_extra_configuration} DEPENDS Boost eigen ROOT DD4hep ) + +#--- Acts ------------------------------------------------------------------------------------------- +LCGPackage_add( + acts + URL ${GenURL}/acts-${acts_native_version}.tar.gz + CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> + -DACTS_BUILD_PLUGIN_IDENTIFICATION=ON + -DACTS_BUILD_PLUGIN_DIGITIZATION=ON + -DACTS_BUILD_PLUGIN_DD4HEP=ON + -DACTS_BUILD_PLUGIN_TGEO=ON + -DACTS_BUILD_UNITTESTS=OFF + "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -I${XercesC_home}/include -I${eigen_home}/include/eigen3" + ${Boost_extra_configuration} + DEPENDS Boost eigen ROOT DD4hep +) diff --git a/projects/patches/DD4hep-01.14.01.patch b/projects/patches/DD4hep-01.14.01.patch new file mode 100644 index 0000000000000000000000000000000000000000..292dc27c56686781ec896808dd45d9b48c6e5b71 --- /dev/null +++ b/projects/patches/DD4hep-01.14.01.patch @@ -0,0 +1,11 @@ +--- DD4hepConfig.cmake.in.orig 2020-10-05 16:44:58.000000000 +0200 ++++ cmake/DD4hepConfig.cmake.in 2020-11-23 12:31:21.944618088 +0100 +@@ -73,5 +73,5 @@ + + if(DD4HEP_USE_TBB) + MESSAGE(STATUS "@CMAKE_PROJECT_NAME@ uses TBB") +- find_dependency(TBB REQUIRED) ++ find_dependency(TBB REQUIRED CONFIG) + endif() + + if(NOT CMAKE_PROJECT_NAME STREQUAL @CMAKE_PROJECT_NAME@)