From 7027dab5259e8814bf66143b74f115598c3e3eab Mon Sep 17 00:00:00 2001 From: Paul Gessinger Date: Tue, 20 Aug 2024 11:48:42 +0200 Subject: [PATCH] Remove all of the HEP dependencies (#121) --- .github/workflows/build-images.yml | 2 - {format14 => archive/format14}/Dockerfile | 0 {format18 => archive/format18}/Dockerfile | 0 .../ubuntu2204_cpp17}/Dockerfile | 0 ...llow-finding-newer-versions-of-podio.patch | 31 ---- ubuntu2204/Dockerfile | 138 ----------------- ubuntu2204/pythia8307_cpp20.patch | 129 ---------------- ...llow-finding-newer-versions-of-podio.patch | 31 ---- ubuntu2204_clang/Dockerfile | 138 ----------------- ubuntu2204_clang/download_geant4_data.sh | 26 ---- ubuntu2204_clang/podio_cpp20.patch | 15 -- ubuntu2204_clang/pythia8307_cpp20.patch | 129 ---------------- ubuntu2204_cpp17/download_geant4_data.sh | 26 ---- ubuntu2204_cuda_oneapi/Dockerfile | 1 + ubuntu2204_exatrkx/Dockerfile | 36 +---- ubuntu2204_rocm_clang/Dockerfile | 120 -------------- ubuntu2204_rocm_clang/download_geant4_data.sh | 26 ---- ...llow-finding-newer-versions-of-podio.patch | 31 ---- ubuntu2204_rocm_clang_cxx20/Dockerfile | 120 -------------- .../download_geant4_data.sh | 26 ---- ...llow-finding-newer-versions-of-podio.patch | 31 ---- ubuntu2404/Dockerfile | 146 ------------------ ubuntu2404/download_geant4_data.sh | 26 ---- ubuntu2404/podio_cpp20.patch | 15 -- ubuntu2404/pythia8307_cpp20.patch | 129 ---------------- ubuntu2404_cuda/Dockerfile | 1 + ubuntu2404_cuda_oneapi/Dockerfile | 1 + ubuntu2404_oneapi/Dockerfile | 1 + ubuntu2404_rocm_oneapi/Dockerfile | 1 + 29 files changed, 8 insertions(+), 1368 deletions(-) rename {format14 => archive/format14}/Dockerfile (100%) rename {format18 => archive/format18}/Dockerfile (100%) rename {ubuntu2204_cpp17 => archive/ubuntu2204_cpp17}/Dockerfile (100%) delete mode 100644 ubuntu2204/0001-CMake-allow-finding-newer-versions-of-podio.patch delete mode 100644 ubuntu2204/pythia8307_cpp20.patch delete mode 100644 ubuntu2204_clang/0001-CMake-allow-finding-newer-versions-of-podio.patch delete mode 100755 ubuntu2204_clang/download_geant4_data.sh delete mode 100644 ubuntu2204_clang/podio_cpp20.patch delete mode 100644 ubuntu2204_clang/pythia8307_cpp20.patch delete mode 100755 ubuntu2204_cpp17/download_geant4_data.sh delete mode 100644 ubuntu2204_rocm_clang/download_geant4_data.sh delete mode 100644 ubuntu2204_rocm_clang_cxx20/0001-CMake-allow-finding-newer-versions-of-podio.patch delete mode 100644 ubuntu2204_rocm_clang_cxx20/download_geant4_data.sh delete mode 100644 ubuntu2404/0001-CMake-allow-finding-newer-versions-of-podio.patch delete mode 100755 ubuntu2404/download_geant4_data.sh delete mode 100644 ubuntu2404/podio_cpp20.patch delete mode 100644 ubuntu2404/pythia8307_cpp20.patch diff --git a/.github/workflows/build-images.yml b/.github/workflows/build-images.yml index c6111ac..a9f9849 100644 --- a/.github/workflows/build-images.yml +++ b/.github/workflows/build-images.yml @@ -17,13 +17,11 @@ jobs: strategy: matrix: context: - - format18 - ubuntu2204_exatrkx - ubuntu2204 - ubuntu2204_cuda - ubuntu2204_cuda_oneapi - ubuntu2204_clang - - ubuntu2204_cpp17 - ubuntu2204_rocm_clang - ubuntu2204_rocm_clang_cxx20 - ubuntu2404 diff --git a/format14/Dockerfile b/archive/format14/Dockerfile similarity index 100% rename from format14/Dockerfile rename to archive/format14/Dockerfile diff --git a/format18/Dockerfile b/archive/format18/Dockerfile similarity index 100% rename from format18/Dockerfile rename to archive/format18/Dockerfile diff --git a/ubuntu2204_cpp17/Dockerfile b/archive/ubuntu2204_cpp17/Dockerfile similarity index 100% rename from ubuntu2204_cpp17/Dockerfile rename to archive/ubuntu2204_cpp17/Dockerfile diff --git a/ubuntu2204/0001-CMake-allow-finding-newer-versions-of-podio.patch b/ubuntu2204/0001-CMake-allow-finding-newer-versions-of-podio.patch deleted file mode 100644 index 2c90a28..0000000 --- a/ubuntu2204/0001-CMake-allow-finding-newer-versions-of-podio.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 76bbcc713a5ef93502b23ed59a68f96dd87318b6 Mon Sep 17 00:00:00 2001 -From: Andre Sailer -Date: Mon, 24 Jun 2024 15:51:35 +0200 -Subject: [PATCH] CMake: allow finding newer versions of podio - ---- - CMakeLists.txt | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e80779bb..50d167c2 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -155,7 +155,13 @@ endif() - - if(DD4HEP_USE_EDM4HEP) - find_package(EDM4HEP REQUIRED) -- find_package(podio 0.16.3 REQUIRED) -+ # we need podio with Frame support (>=0.16.3) -+ # podio is "SameMajorVersion" compatible -+ find_package(podio 0.16.3) # this will not find 1.0 and newer -+ if(NOT podio_FOUND) -+ # we try to find a newer version now -+ find_package(podio 1.0 REQUIRED) -+ endif() - # DD4HEP_SETUP_EDM4HEP_TARGETS() - endif() - --- -2.39.3 - diff --git a/ubuntu2204/Dockerfile b/ubuntu2204/Dockerfile index 82233a8..8b950dd 100644 --- a/ubuntu2204/Dockerfile +++ b/ubuntu2204/Dockerfile @@ -54,149 +54,11 @@ ENV GET curl --location --silent --create-dirs ENV UNPACK_TO_SRC tar -xz --strip-components=1 --directory src ENV PREFIX /usr/local -ENV GEANT4_VERSION=11.1.1 -ENV HEPMC3_VERSION=3.2.5 -ENV PYTHIA8_VERSION=312 -ENV JSON_VERSION=3.11.2 -ENV ROOT_VERSION=6.28.06 -ENV PODIO_VERSION=01-00-01 -ENV EDM4HEP_VERSION=00-10-01 -ENV DD4HEP_VERSION=01-29 ENV ONNXRUNTIME_VERSION=1.18.1 -ENV GEOMODEL_VERSION=6.3.0 RUN ${GET} https://github.com/Kitware/CMake/releases/download/v3.30.0/cmake-3.30.0-Linux-x86_64.tar.gz \ | tar -xz --strip-components=1 --directory ${PREFIX} -# Geant4 -RUN mkdir src \ - && ${GET} https://gitlab.cern.ch/geant4/geant4/-/archive/v${GEANT4_VERSION}/geant4-v${GEANT4_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -DGEANT4_BUILD_TLS_MODEL=global-dynamic \ - -DGEANT4_INSTALL_DATA=OFF \ - -DGEANT4_USE_GDML=ON \ - -DGEANT4_USE_SYSTEM_EXPAT=ON \ - -DGEANT4_USE_SYSTEM_ZLIB=ON \ - -DGEANT4_INSTALL_PACKAGE_CACHE=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# HepMC3 -RUN mkdir src \ - && ${GET} https://gitlab.cern.ch/hepmc/HepMC3/-/archive/${HEPMC3_VERSION}/HepMC3-${HEPMC3_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DHEPMC3_BUILD_STATIC_LIBS=OFF \ - -DHEPMC3_ENABLE_PYTHON=OFF \ - -DHEPMC3_ENABLE_ROOTIO=OFF \ - -DHEPMC3_ENABLE_SEARCH=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# Pythia8 -# requires rsync; installation uses `rsync` instead of `install` -RUN mkdir src \ - && ${GET} https://pythia.org/download/pythia83/pythia8${PYTHIA8_VERSION}.tgz\ - | ${UNPACK_TO_SRC} \ - && cd src \ - && ./configure --enable-shared --prefix=${PREFIX} --cxx-common="-O2 -std=c++20 -pedantic -W -Wall -Wshadow -fPIC -pthread"\ - && make -j$(nproc) install \ - && cd .. \ - && rm -rf src - -# nlohmann's JSON -RUN mkdir src \ - && ${GET} https://github.com/nlohmann/json/archive/refs/tags/v${JSON_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja -DJSON_BuildTests=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# GeoModel -RUN mkdir src \ - && ${GET} https://gitlab.cern.ch/GeoModelDev/GeoModel/-/archive/${GEOMODEL_VERSION}/GeoModel-${GEOMODEL_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -DGEOMODEL_BUILD_GEOMODELG4=ON \ - && cmake --build build -- install \ - && rm -rf build src - -# ROOT -RUN mkdir src \ - && ${GET} https://root.cern/download/root_v${ROOT_VERSION}.source.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_STANDARD=20 \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -Dfail-on-missing=ON \ - -Dgminimal=ON \ - -Dgdml=ON \ - -Dopengl=ON \ - -Dpyroot=ON \ - -Ddataframe=ON \ - -Droot7=ON \ - && cmake --build build -- install \ - && rm -rf build src - -# environment variables needed to find ROOT libraries -ENV LD_LIBRARY_PATH /usr/local/lib -ENV PYTHON_PATH /usr/local/lib - -# podio -RUN mkdir src \ - && ${GET} https://github.com/AIDASoft/podio/archive/refs/tags/v${PODIO_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DBUILD_TESTING=OFF \ - -USE_EXTERNAL_CATCH2=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# EDM4hep -RUN pip3 install jinja2 pyyaml \ - && mkdir src \ - && ${GET} https://github.com/key4hep/EDM4hep/archive/refs/tags/v${EDM4HEP_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DBUILD_TESTING=OFF \ - -DUSE_EXTERNAL_CATCH2=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# DD4hep -# requires Geant4 and ROOT and must come last -ADD 0001-CMake-allow-finding-newer-versions-of-podio.patch . -RUN mkdir src \ - && ${GET} https://github.com/AIDASoft/DD4hep/archive/v${DD4HEP_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && patch -p1 -d src < 0001-CMake-allow-finding-newer-versions-of-podio.patch \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_STANDARD=20 \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_PREFIX_PATH=${PREFIX} \ - -DBUILD_TESTING=OFF \ - -DDD4HEP_BUILD_PACKAGES="DDG4 DDDetectors DDRec UtilityApps" \ - -DDD4HEP_USE_GEANT4=ON \ - -DDD4HEP_USE_XERCESC=ON \ - -DDD4HEP_USE_EDM4HEP=ON \ - && cmake --build build -- install \ - && rm -rf build src - # Onnx (download of tar.gz does not work out of the box, since the build.sh script requires a git repository) RUN git clone https://github.com/microsoft/onnxruntime src \ && (cd src && git checkout v${ONNXRUNTIME_VERSION}) \ diff --git a/ubuntu2204/pythia8307_cpp20.patch b/ubuntu2204/pythia8307_cpp20.patch deleted file mode 100644 index c6a1890..0000000 --- a/ubuntu2204/pythia8307_cpp20.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 09ef584f1ca797d84c1c0af18ec06b33d6c0d2d0 Mon Sep 17 00:00:00 2001 -From: Paul Gessinger -Date: Thu, 24 Mar 2022 16:08:26 +0100 -Subject: [PATCH] fixes for C++20 build - ---- - include/Pythia8/SusyLesHouches.h | 6 +++--- - src/HadronWidths.cc | 8 ++++---- - src/NucleonExcitations.cc | 8 ++++---- - src/PythiaParallel.cc | 2 +- - 4 files changed, 12 insertions(+), 12 deletions(-) - -diff --git a/include/Pythia8/SusyLesHouches.h b/include/Pythia8/SusyLesHouches.h -index 2f1d9fd..5090c00 100644 ---- a/include/Pythia8/SusyLesHouches.h -+++ b/include/Pythia8/SusyLesHouches.h -@@ -28,7 +28,7 @@ namespace Pythia8 { - public: - - //Constructor. -- LHblock() : idnow(0), qDRbar(), i(), val() {} ; -+ LHblock() : idnow(0), qDRbar(), i(), val() {} ; - - //Does block exist? - bool exists() { return int(entry.size()) == 0 ? false : true ; }; -@@ -129,7 +129,7 @@ namespace Pythia8 { - template class LHmatrixBlock { - public: - //Constructor. Set uninitialized and explicitly zero. -- LHmatrixBlock() : entry(), qDRbar(), val() { -+ LHmatrixBlock() : entry(), qDRbar(), val() { - initialized=false; - for (i=1;i<=size;i++) { - for (j=1;j<=size;j++) { -@@ -208,7 +208,7 @@ namespace Pythia8 { - template class LHtensor3Block { - public: - //Constructor. Set uninitialized and explicitly zero. -- LHtensor3Block() : entry(), qDRbar(), val() { -+ LHtensor3Block() : entry(), qDRbar(), val() { - initialized=false; - for (i=1;i<=size;i++) { - for (j=1;j<=size;j++) { -diff --git a/src/HadronWidths.cc b/src/HadronWidths.cc -index ccc5c72..95a5cb1 100644 ---- a/src/HadronWidths.cc -+++ b/src/HadronWidths.cc -@@ -867,7 +867,7 @@ double HadronWidths::psSize(double eCM, ParticleDataEntryPtr prodA, - return 0.; - - // Integrate mass of A. -- auto f = [=](double mA) { -+ auto f = [=,this](double mA) { - return pow(pCMS(eCM, mA, m0B), lType) * mDistr(idA, mA); }; - if (!integrateGauss(result, f, mMinA, min(mMaxA, eCM - m0B))) - success = false; -@@ -879,7 +879,7 @@ double HadronWidths::psSize(double eCM, ParticleDataEntryPtr prodA, - return 0.; - - // Integrate mass of B. -- auto f = [=](double mB) { -+ auto f = [=,this](double mB) { - return pow(pCMS(eCM, m0A, mB), lType) * mDistr(idB, mB); }; - if (!integrateGauss(result, f, mMinB, min(mMaxB, eCM - m0A))) - success = false; -@@ -891,10 +891,10 @@ double HadronWidths::psSize(double eCM, ParticleDataEntryPtr prodA, - return 0.; - - // Define integrand of outer integral. -- auto I = [=, &success](double mA) { -+ auto I = [=, &success, this](double mA) { - - // Define integrand of inner integral. -- auto f = [=](double mB) { -+ auto f = [=,this](double mB) { - return pow(pCMS(eCM, mA, mB), lType) - * mDistr(idA, mA) * mDistr(idB, mB); }; - double res; -diff --git a/src/NucleonExcitations.cc b/src/NucleonExcitations.cc -index b5eef8f..a82383a 100644 ---- a/src/NucleonExcitations.cc -+++ b/src/NucleonExcitations.cc -@@ -502,7 +502,7 @@ double NucleonExcitations::psSize(double eCM, ParticleDataEntry& prodA, - return 0.; - - // Integrate mass of A. -- auto f = [=](double mA) { -+ auto f = [=, this](double mA) { - return pCMS(eCM, mA, m0B) * hadronWidthsPtr->mDistr(idA, mA); }; - if (!integrateGauss(result, f, mMinA, min(mMaxA, eCM - m0B))) - success = false; -@@ -514,7 +514,7 @@ double NucleonExcitations::psSize(double eCM, ParticleDataEntry& prodA, - return 0.; - - // Integrate mass of B. -- auto f = [=](double mB) { -+ auto f = [=,this](double mB) { - return pCMS(eCM, m0A, mB) * hadronWidthsPtr->mDistr(idB, mB); }; - if (!integrateGauss(result, f, mMinB, min(mMaxB, eCM - m0A))) - success = false; -@@ -526,10 +526,10 @@ double NucleonExcitations::psSize(double eCM, ParticleDataEntry& prodA, - return 0.; - - // Define integrand of outer integral. -- auto I = [=, &success](double mA) { -+ auto I = [=, &success, this](double mA) { - - // Define integrand of inner integral. -- auto f = [=](double mB) { -+ auto f = [=,this](double mB) { - return pCMS(eCM, mA, mB) - * hadronWidthsPtr->mDistr(idA, mA) - * hadronWidthsPtr->mDistr(idB, mB); }; -diff --git a/src/PythiaParallel.cc b/src/PythiaParallel.cc -index 81450e2..7ec3a92 100644 ---- a/src/PythiaParallel.cc -+++ b/src/PythiaParallel.cc -@@ -106,7 +106,7 @@ bool PythiaParallel::init(function customInit) { - bool initSuccess = true; - - for (int iPythia = 0; iPythia < numThreads; iPythia += 1) { -- initThreads.emplace_back([=, &seeds, &initSuccess]() { -+ initThreads.emplace_back([=, &seeds, &initSuccess, this]() { - Pythia* pythiaPtr = new Pythia(settings, particleData, false); - pythiaObjects[iPythia] = unique_ptr(pythiaPtr); - pythiaObjects[iPythia]->settings.flag("Print:quiet", true); --- -2.31.1 - diff --git a/ubuntu2204_clang/0001-CMake-allow-finding-newer-versions-of-podio.patch b/ubuntu2204_clang/0001-CMake-allow-finding-newer-versions-of-podio.patch deleted file mode 100644 index 2c90a28..0000000 --- a/ubuntu2204_clang/0001-CMake-allow-finding-newer-versions-of-podio.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 76bbcc713a5ef93502b23ed59a68f96dd87318b6 Mon Sep 17 00:00:00 2001 -From: Andre Sailer -Date: Mon, 24 Jun 2024 15:51:35 +0200 -Subject: [PATCH] CMake: allow finding newer versions of podio - ---- - CMakeLists.txt | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e80779bb..50d167c2 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -155,7 +155,13 @@ endif() - - if(DD4HEP_USE_EDM4HEP) - find_package(EDM4HEP REQUIRED) -- find_package(podio 0.16.3 REQUIRED) -+ # we need podio with Frame support (>=0.16.3) -+ # podio is "SameMajorVersion" compatible -+ find_package(podio 0.16.3) # this will not find 1.0 and newer -+ if(NOT podio_FOUND) -+ # we try to find a newer version now -+ find_package(podio 1.0 REQUIRED) -+ endif() - # DD4HEP_SETUP_EDM4HEP_TARGETS() - endif() - --- -2.39.3 - diff --git a/ubuntu2204_clang/Dockerfile b/ubuntu2204_clang/Dockerfile index 647a1b8..404c5d8 100644 --- a/ubuntu2204_clang/Dockerfile +++ b/ubuntu2204_clang/Dockerfile @@ -60,141 +60,3 @@ ENV PREFIX /usr/local # use clang by default ENV CC clang ENV CXX clang++ - -ENV GEANT4_VERSION=11.1.1 -ENV HEPMC3_VERSION=3.2.5 -ENV PYTHIA8_VERSION=312 -ENV JSON_VERSION=3.11.2 -ENV ROOT_VERSION=6.28.06 -ENV PODIO_VERSION=01-00-01 -ENV EDM4HEP_VERSION=00-10-01 -ENV DD4HEP_VERSION=01-29 -ENV GEOMODEL_VERSION=6.3.0 - -# Geant4 -RUN mkdir src \ - && ${GET} https://gitlab.cern.ch/geant4/geant4/-/archive/v${GEANT4_VERSION}/geant4-v${GEANT4_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -DGEANT4_BUILD_TLS_MODEL=global-dynamic \ - -DGEANT4_INSTALL_DATA=OFF \ - -DGEANT4_USE_GDML=ON \ - -DGEANT4_USE_SYSTEM_EXPAT=ON \ - -DGEANT4_USE_SYSTEM_ZLIB=ON \ - && cmake --build build -- install \ - && rm -rf build src - -# HepMC3 -RUN mkdir src \ - && ${GET} https://gitlab.cern.ch/hepmc/HepMC3/-/archive/${HEPMC3_VERSION}/HepMC3-${HEPMC3_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DHEPMC3_BUILD_STATIC_LIBS=OFF \ - -DHEPMC3_ENABLE_PYTHON=OFF \ - -DHEPMC3_ENABLE_ROOTIO=OFF \ - -DHEPMC3_ENABLE_SEARCH=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# Pythia8 -# requires rsync; installation uses `rsync` instead of `install` -RUN mkdir src \ - && ${GET} https://pythia.org/download/pythia83/pythia8${PYTHIA8_VERSION}.tgz\ - | ${UNPACK_TO_SRC} \ - && cd src \ - && ./configure --enable-shared --prefix=${PREFIX} --cxx-common="-O2 -std=c++20 -pedantic -W -Wall -Wshadow -fPIC -pthread"\ - && make -j$(nproc) install \ - && cd .. \ - && rm -rf src - -# nlohmann's JSON -RUN mkdir src \ - && ${GET} https://github.com/nlohmann/json/archive/refs/tags/v${JSON_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja -DJSON_BuildTests=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# GeoModel -RUN mkdir src \ - && ${GET} https://gitlab.cern.ch/GeoModelDev/GeoModel/-/archive/${GEOMODEL_VERSION}/GeoModel-${GEOMODEL_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -DGEOMODEL_BUILD_GEOMODELG4=ON \ - && cmake --build build -- install \ - && rm -rf build src - -# ROOT -RUN mkdir src \ - && ${GET} https://root.cern/download/root_v${ROOT_VERSION}.source.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_STANDARD=20 \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -Dfail-on-missing=ON \ - -Dgminimal=ON \ - -Dgdml=ON \ - -Dopengl=ON \ - -Dpyroot=ON \ - -Ddataframe=ON \ - -Droot7=ON \ - && cmake --build build -- install \ - && rm -rf build src - -# environment variables needed to find ROOT libraries -ENV LD_LIBRARY_PATH /usr/local/lib -ENV PYTHON_PATH /usr/local/lib - -# podio -RUN mkdir src \ - && ${GET} https://github.com/AIDASoft/podio/archive/refs/tags/v${PODIO_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DBUILD_TESTING=OFF \ - -USE_EXTERNAL_CATCH2=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# EDM4hep -RUN pip3 install jinja2 pyyaml \ - && mkdir src \ - && ${GET} https://github.com/key4hep/EDM4hep/archive/refs/tags/v${EDM4HEP_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DBUILD_TESTING=OFF \ - -DUSE_EXTERNAL_CATCH2=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# DD4hep -# requires Geant4 and ROOT and must come last -ADD 0001-CMake-allow-finding-newer-versions-of-podio.patch . -RUN mkdir src \ - && ${GET} https://github.com/AIDASoft/DD4hep/archive/v${DD4HEP_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && patch -p1 -d src < 0001-CMake-allow-finding-newer-versions-of-podio.patch \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_STANDARD=20 \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_PREFIX_PATH=${PREFIX} \ - -DBUILD_TESTING=OFF \ - -DDD4HEP_BUILD_PACKAGES="DDG4 DDDetectors DDRec UtilityApps" \ - -DDD4HEP_USE_GEANT4=ON \ - -DDD4HEP_USE_XERCESC=ON \ - -DDD4HEP_USE_EDM4HEP=ON \ - && cmake --build build -- install \ - && rm -rf build src diff --git a/ubuntu2204_clang/download_geant4_data.sh b/ubuntu2204_clang/download_geant4_data.sh deleted file mode 100755 index 73dbc4a..0000000 --- a/ubuntu2204_clang/download_geant4_data.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -set -e - -data_dir=/usr/local/share/Geant4-10.6.1/data - -mkdir $data_dir -cd $data_dir - - -function dl { - url=$1 - echo "Downloading $url" - curl --location $url | tar -xz -} - -dl https://geant4-data.web.cern.ch/datasets/G4NDL.4.6.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4EMLOW.7.9.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4PhotonEvaporation.5.5.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4RadioactiveDecay.5.4.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4PARTICLEXS.2.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4PII.1.3.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4RealSurface.2.1.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4SAIDDATA.2.0.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4ABLA.3.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4INCL.1.0.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4ENSDFSTATE.2.2.tar.gz \ No newline at end of file diff --git a/ubuntu2204_clang/podio_cpp20.patch b/ubuntu2204_clang/podio_cpp20.patch deleted file mode 100644 index 4491547..0000000 --- a/ubuntu2204_clang/podio_cpp20.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e8a943b..c4f3a96 100755 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -77,8 +77,8 @@ find_package(ROOT REQUIRED COMPONENTS RIO Tree) - - # Check that root is compiled with a modern enough c++ standard - get_target_property(ROOT_COMPILE_FEATURES ROOT::Core INTERFACE_COMPILE_FEATURES) --if (NOT "cxx_std_17" IN_LIST ROOT_COMPILE_FEATURES) -- message(FATAL_ERROR "You are trying to build podio against a version of ROOT that has not been built with a sufficient c++ standard. podio requires c++17") -+if (NOT "cxx_std_17" IN_LIST ROOT_COMPILE_FEATURES AND NOT "cxx_std_20" IN_LIST ROOT_COMPILE_FEATURES) -+ message(FATAL_ERROR "You are trying to build podio against a version of ROOT that has not been built with a sufficient c++ standard. podio requires c++17 or higher") - endif() - #Check if Python version detected matches the version used to build ROOT - SET(Python_FIND_FRAMEWORK LAST) diff --git a/ubuntu2204_clang/pythia8307_cpp20.patch b/ubuntu2204_clang/pythia8307_cpp20.patch deleted file mode 100644 index c6a1890..0000000 --- a/ubuntu2204_clang/pythia8307_cpp20.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 09ef584f1ca797d84c1c0af18ec06b33d6c0d2d0 Mon Sep 17 00:00:00 2001 -From: Paul Gessinger -Date: Thu, 24 Mar 2022 16:08:26 +0100 -Subject: [PATCH] fixes for C++20 build - ---- - include/Pythia8/SusyLesHouches.h | 6 +++--- - src/HadronWidths.cc | 8 ++++---- - src/NucleonExcitations.cc | 8 ++++---- - src/PythiaParallel.cc | 2 +- - 4 files changed, 12 insertions(+), 12 deletions(-) - -diff --git a/include/Pythia8/SusyLesHouches.h b/include/Pythia8/SusyLesHouches.h -index 2f1d9fd..5090c00 100644 ---- a/include/Pythia8/SusyLesHouches.h -+++ b/include/Pythia8/SusyLesHouches.h -@@ -28,7 +28,7 @@ namespace Pythia8 { - public: - - //Constructor. -- LHblock() : idnow(0), qDRbar(), i(), val() {} ; -+ LHblock() : idnow(0), qDRbar(), i(), val() {} ; - - //Does block exist? - bool exists() { return int(entry.size()) == 0 ? false : true ; }; -@@ -129,7 +129,7 @@ namespace Pythia8 { - template class LHmatrixBlock { - public: - //Constructor. Set uninitialized and explicitly zero. -- LHmatrixBlock() : entry(), qDRbar(), val() { -+ LHmatrixBlock() : entry(), qDRbar(), val() { - initialized=false; - for (i=1;i<=size;i++) { - for (j=1;j<=size;j++) { -@@ -208,7 +208,7 @@ namespace Pythia8 { - template class LHtensor3Block { - public: - //Constructor. Set uninitialized and explicitly zero. -- LHtensor3Block() : entry(), qDRbar(), val() { -+ LHtensor3Block() : entry(), qDRbar(), val() { - initialized=false; - for (i=1;i<=size;i++) { - for (j=1;j<=size;j++) { -diff --git a/src/HadronWidths.cc b/src/HadronWidths.cc -index ccc5c72..95a5cb1 100644 ---- a/src/HadronWidths.cc -+++ b/src/HadronWidths.cc -@@ -867,7 +867,7 @@ double HadronWidths::psSize(double eCM, ParticleDataEntryPtr prodA, - return 0.; - - // Integrate mass of A. -- auto f = [=](double mA) { -+ auto f = [=,this](double mA) { - return pow(pCMS(eCM, mA, m0B), lType) * mDistr(idA, mA); }; - if (!integrateGauss(result, f, mMinA, min(mMaxA, eCM - m0B))) - success = false; -@@ -879,7 +879,7 @@ double HadronWidths::psSize(double eCM, ParticleDataEntryPtr prodA, - return 0.; - - // Integrate mass of B. -- auto f = [=](double mB) { -+ auto f = [=,this](double mB) { - return pow(pCMS(eCM, m0A, mB), lType) * mDistr(idB, mB); }; - if (!integrateGauss(result, f, mMinB, min(mMaxB, eCM - m0A))) - success = false; -@@ -891,10 +891,10 @@ double HadronWidths::psSize(double eCM, ParticleDataEntryPtr prodA, - return 0.; - - // Define integrand of outer integral. -- auto I = [=, &success](double mA) { -+ auto I = [=, &success, this](double mA) { - - // Define integrand of inner integral. -- auto f = [=](double mB) { -+ auto f = [=,this](double mB) { - return pow(pCMS(eCM, mA, mB), lType) - * mDistr(idA, mA) * mDistr(idB, mB); }; - double res; -diff --git a/src/NucleonExcitations.cc b/src/NucleonExcitations.cc -index b5eef8f..a82383a 100644 ---- a/src/NucleonExcitations.cc -+++ b/src/NucleonExcitations.cc -@@ -502,7 +502,7 @@ double NucleonExcitations::psSize(double eCM, ParticleDataEntry& prodA, - return 0.; - - // Integrate mass of A. -- auto f = [=](double mA) { -+ auto f = [=, this](double mA) { - return pCMS(eCM, mA, m0B) * hadronWidthsPtr->mDistr(idA, mA); }; - if (!integrateGauss(result, f, mMinA, min(mMaxA, eCM - m0B))) - success = false; -@@ -514,7 +514,7 @@ double NucleonExcitations::psSize(double eCM, ParticleDataEntry& prodA, - return 0.; - - // Integrate mass of B. -- auto f = [=](double mB) { -+ auto f = [=,this](double mB) { - return pCMS(eCM, m0A, mB) * hadronWidthsPtr->mDistr(idB, mB); }; - if (!integrateGauss(result, f, mMinB, min(mMaxB, eCM - m0A))) - success = false; -@@ -526,10 +526,10 @@ double NucleonExcitations::psSize(double eCM, ParticleDataEntry& prodA, - return 0.; - - // Define integrand of outer integral. -- auto I = [=, &success](double mA) { -+ auto I = [=, &success, this](double mA) { - - // Define integrand of inner integral. -- auto f = [=](double mB) { -+ auto f = [=,this](double mB) { - return pCMS(eCM, mA, mB) - * hadronWidthsPtr->mDistr(idA, mA) - * hadronWidthsPtr->mDistr(idB, mB); }; -diff --git a/src/PythiaParallel.cc b/src/PythiaParallel.cc -index 81450e2..7ec3a92 100644 ---- a/src/PythiaParallel.cc -+++ b/src/PythiaParallel.cc -@@ -106,7 +106,7 @@ bool PythiaParallel::init(function customInit) { - bool initSuccess = true; - - for (int iPythia = 0; iPythia < numThreads; iPythia += 1) { -- initThreads.emplace_back([=, &seeds, &initSuccess]() { -+ initThreads.emplace_back([=, &seeds, &initSuccess, this]() { - Pythia* pythiaPtr = new Pythia(settings, particleData, false); - pythiaObjects[iPythia] = unique_ptr(pythiaPtr); - pythiaObjects[iPythia]->settings.flag("Print:quiet", true); --- -2.31.1 - diff --git a/ubuntu2204_cpp17/download_geant4_data.sh b/ubuntu2204_cpp17/download_geant4_data.sh deleted file mode 100755 index 73dbc4a..0000000 --- a/ubuntu2204_cpp17/download_geant4_data.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -set -e - -data_dir=/usr/local/share/Geant4-10.6.1/data - -mkdir $data_dir -cd $data_dir - - -function dl { - url=$1 - echo "Downloading $url" - curl --location $url | tar -xz -} - -dl https://geant4-data.web.cern.ch/datasets/G4NDL.4.6.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4EMLOW.7.9.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4PhotonEvaporation.5.5.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4RadioactiveDecay.5.4.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4PARTICLEXS.2.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4PII.1.3.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4RealSurface.2.1.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4SAIDDATA.2.0.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4ABLA.3.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4INCL.1.0.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4ENSDFSTATE.2.2.tar.gz \ No newline at end of file diff --git a/ubuntu2204_cuda_oneapi/Dockerfile b/ubuntu2204_cuda_oneapi/Dockerfile index e19c565..7f285df 100644 --- a/ubuntu2204_cuda_oneapi/Dockerfile +++ b/ubuntu2204_cuda_oneapi/Dockerfile @@ -5,6 +5,7 @@ # Mozilla Public License Version 2.0 # Start from the (at the time of writing) latest Acts Ubuntu 24.04 image. +# @TODO: Change this FROM ghcr.io/acts-project/ubuntu2204:55 # Some description for the image. diff --git a/ubuntu2204_exatrkx/Dockerfile b/ubuntu2204_exatrkx/Dockerfile index b523333..fce0f2d 100644 --- a/ubuntu2204_exatrkx/Dockerfile +++ b/ubuntu2204_exatrkx/Dockerfile @@ -1,4 +1,3 @@ - FROM nvidia/cuda:12.1.0-cudnn8-devel-ubuntu22.04 LABEL description="Ubuntu 20.04 with Acts dependencies for the Exa.TrkX Plugin" LABEL maintainer="Paul Gessinger -Date: Mon, 24 Jun 2024 15:51:35 +0200 -Subject: [PATCH] CMake: allow finding newer versions of podio - ---- - CMakeLists.txt | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e80779bb..50d167c2 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -155,7 +155,13 @@ endif() - - if(DD4HEP_USE_EDM4HEP) - find_package(EDM4HEP REQUIRED) -- find_package(podio 0.16.3 REQUIRED) -+ # we need podio with Frame support (>=0.16.3) -+ # podio is "SameMajorVersion" compatible -+ find_package(podio 0.16.3) # this will not find 1.0 and newer -+ if(NOT podio_FOUND) -+ # we try to find a newer version now -+ find_package(podio 1.0 REQUIRED) -+ endif() - # DD4HEP_SETUP_EDM4HEP_TARGETS() - endif() - --- -2.39.3 - diff --git a/ubuntu2204_rocm_clang_cxx20/Dockerfile b/ubuntu2204_rocm_clang_cxx20/Dockerfile index 0551404..1d3772c 100644 --- a/ubuntu2204_rocm_clang_cxx20/Dockerfile +++ b/ubuntu2204_rocm_clang_cxx20/Dockerfile @@ -77,123 +77,3 @@ RUN mkdir src \ && make install \ ) \ && rm -rf src - -# Geant4 -RUN mkdir src \ - && ${GET} https://gitlab.cern.ch/geant4/geant4/-/archive/v11.1.1/geant4-v11.1.1.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -DGEANT4_BUILD_TLS_MODEL=global-dynamic \ - -DGEANT4_INSTALL_DATA=OFF \ - -DGEANT4_USE_GDML=ON \ - -DGEANT4_USE_SYSTEM_EXPAT=ON \ - -DGEANT4_USE_SYSTEM_ZLIB=ON \ - -DGEANT4_INSTALL_PACKAGE_CACHE=OFF \ - && cmake --build build -- -j $(nproc) install \ - && rm -rf build src - -# HepMC3 -RUN mkdir src \ - && ${GET} https://gitlab.cern.ch/hepmc/HepMC3/-/archive/3.2.5/HepMC3-3.2.5.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DHEPMC3_BUILD_STATIC_LIBS=OFF \ - -DHEPMC3_ENABLE_PYTHON=OFF \ - -DHEPMC3_ENABLE_ROOTIO=OFF \ - -DHEPMC3_ENABLE_SEARCH=OFF \ - && cmake --build build -- -j $(nproc) install \ - && rm -rf build src - -# Pythia8 -# requires rsync; installation uses `rsync` instead of `install` -RUN mkdir src \ - && ${GET} https://pythia.org/download/pythia83/pythia8309.tgz\ - | ${UNPACK_TO_SRC} \ - && cd src \ - && ./configure --enable-shared --prefix=${PREFIX} \ - && make -j$(nproc) install \ - && cd .. \ - && rm -rf src - -# nlohmann's JSON -RUN mkdir src \ - && ${GET} https://github.com/nlohmann/json/archive/refs/tags/v3.11.2.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DJSON_BuildTests=OFF \ - && cmake --build build -- -j $(nproc) install \ - && rm -rf build src - -# ROOT -RUN mkdir src \ - && ${GET} https://root.cern/download/root_v6.28.06.source.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -Dfail-on-missing=ON \ - -Dgminimal=ON \ - -Dgdml=ON \ - -Dopengl=ON \ - -Dpyroot=ON \ - -Droot7=ON \ - && cmake --build build -- -j $(nproc) install \ - && rm -rf build src - -# environment variables needed to find ROOT libraries -ENV LD_LIBRARY_PATH /usr/local/lib -ENV PYTHON_PATH /usr/local/lib - -# podio -RUN mkdir src \ - && ${GET} https://github.com/AIDASoft/podio/archive/refs/tags/v01-00-01.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DBUILD_TESTING=OFF \ - -USE_EXTERNAL_CATCH2=OFF \ - && cmake --build build -- -j $(nproc) install \ - && rm -rf build src - -# EDM4hep -RUN pip3 install jinja2 pyyaml \ - && mkdir src \ - && ${GET} https://github.com/key4hep/EDM4hep/archive/refs/tags/v00-10-05.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DBUILD_TESTING=OFF \ - -DUSE_EXTERNAL_CATCH2=OFF \ - && cmake --build build -- -j $(nproc) install \ - && rm -rf build src - -# DD4hep -# requires Geant4 and ROOT and must come last -ADD 0001-CMake-allow-finding-newer-versions-of-podio.patch . -RUN mkdir src \ - && ${GET} https://github.com/AIDASoft/DD4hep/archive/v01-29.tar.gz \ - | ${UNPACK_TO_SRC} \ - && patch -p1 -d src < 0001-CMake-allow-finding-newer-versions-of-podio.patch \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_STANDARD=20 \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_PREFIX_PATH=${PREFIX} \ - -DBUILD_TESTING=OFF \ - -DDD4HEP_BUILD_PACKAGES="DDG4 DDDetectors DDRec UtilityApps" \ - -DDD4HEP_IGNORE_GEANT4_TLS=ON \ - -DDD4HEP_USE_GEANT4=ON \ - -DDD4HEP_USE_XERCESC=ON \ - -DDD4HEP_USE_EDM4HEP=ON \ - && cmake --build build -- -j $(nproc) install \ - && rm -rf build src - -COPY download_geant4_data.sh /usr/local/bin diff --git a/ubuntu2204_rocm_clang_cxx20/download_geant4_data.sh b/ubuntu2204_rocm_clang_cxx20/download_geant4_data.sh deleted file mode 100644 index 73dbc4a..0000000 --- a/ubuntu2204_rocm_clang_cxx20/download_geant4_data.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -set -e - -data_dir=/usr/local/share/Geant4-10.6.1/data - -mkdir $data_dir -cd $data_dir - - -function dl { - url=$1 - echo "Downloading $url" - curl --location $url | tar -xz -} - -dl https://geant4-data.web.cern.ch/datasets/G4NDL.4.6.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4EMLOW.7.9.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4PhotonEvaporation.5.5.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4RadioactiveDecay.5.4.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4PARTICLEXS.2.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4PII.1.3.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4RealSurface.2.1.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4SAIDDATA.2.0.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4ABLA.3.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4INCL.1.0.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4ENSDFSTATE.2.2.tar.gz \ No newline at end of file diff --git a/ubuntu2404/0001-CMake-allow-finding-newer-versions-of-podio.patch b/ubuntu2404/0001-CMake-allow-finding-newer-versions-of-podio.patch deleted file mode 100644 index 2c90a28..0000000 --- a/ubuntu2404/0001-CMake-allow-finding-newer-versions-of-podio.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 76bbcc713a5ef93502b23ed59a68f96dd87318b6 Mon Sep 17 00:00:00 2001 -From: Andre Sailer -Date: Mon, 24 Jun 2024 15:51:35 +0200 -Subject: [PATCH] CMake: allow finding newer versions of podio - ---- - CMakeLists.txt | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e80779bb..50d167c2 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -155,7 +155,13 @@ endif() - - if(DD4HEP_USE_EDM4HEP) - find_package(EDM4HEP REQUIRED) -- find_package(podio 0.16.3 REQUIRED) -+ # we need podio with Frame support (>=0.16.3) -+ # podio is "SameMajorVersion" compatible -+ find_package(podio 0.16.3) # this will not find 1.0 and newer -+ if(NOT podio_FOUND) -+ # we try to find a newer version now -+ find_package(podio 1.0 REQUIRED) -+ endif() - # DD4HEP_SETUP_EDM4HEP_TARGETS() - endif() - --- -2.39.3 - diff --git a/ubuntu2404/Dockerfile b/ubuntu2404/Dockerfile index 840a93b..f18a908 100644 --- a/ubuntu2404/Dockerfile +++ b/ubuntu2404/Dockerfile @@ -56,16 +56,7 @@ ENV GET curl --location --silent --create-dirs ENV UNPACK_TO_SRC tar -xz --strip-components=1 --directory src ENV PREFIX /usr/local -ENV GEANT4_VERSION=11.1.1 -ENV HEPMC3_VERSION=3.2.5 -ENV PYTHIA8_VERSION=310 -ENV JSON_VERSION=3.11.2 -ENV ROOT_VERSION=6.28.06 -ENV PODIO_VERSION=01-00-01 -ENV EDM4HEP_VERSION=00-10-01 -ENV DD4HEP_VERSION=01-29 ENV ONNXRUNTIME_VERSION=1.18.1 -ENV GEOMODEL_VERSION=6.3.0 ENV VIRTUAL_ENV=/opt/venv RUN python3 -m venv $VIRTUAL_ENV @@ -74,143 +65,6 @@ ENV PATH="$VIRTUAL_ENV/bin:$PATH" RUN ${GET} https://github.com/Kitware/CMake/releases/download/v3.30.0/cmake-3.30.0-Linux-x86_64.tar.gz \ | tar -xz --strip-components=1 --directory ${PREFIX} -# Geant4 -RUN mkdir src \ - && ${GET} https://gitlab.cern.ch/geant4/geant4/-/archive/v${GEANT4_VERSION}/geant4-v${GEANT4_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -DGEANT4_BUILD_TLS_MODEL=global-dynamic \ - -DGEANT4_INSTALL_DATA=OFF \ - -DGEANT4_USE_GDML=ON \ - -DGEANT4_USE_SYSTEM_EXPAT=ON \ - -DGEANT4_USE_SYSTEM_ZLIB=ON \ - -DGEANT4_INSTALL_PACKAGE_CACHE=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# HepMC3 -RUN mkdir src \ - && ${GET} https://gitlab.cern.ch/hepmc/HepMC3/-/archive/${HEPMC3_VERSION}/HepMC3-${HEPMC3_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -DHEPMC3_BUILD_STATIC_LIBS=OFF \ - -DHEPMC3_ENABLE_PYTHON=OFF \ - -DHEPMC3_ENABLE_ROOTIO=OFF \ - -DHEPMC3_ENABLE_SEARCH=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# Pythia8 -# requires rsync; installation uses `rsync` instead of `install` -RUN mkdir src \ - && ${GET} https://pythia.org/download/pythia83/pythia8${PYTHIA8_VERSION}.tgz\ - | ${UNPACK_TO_SRC} \ - && cd src \ - && ./configure --enable-shared --prefix=${PREFIX} --cxx-common="-O2 -std=c++20 -pedantic -W -Wall -Wshadow -fPIC -pthread"\ - && make -j$(nproc) install \ - && cd .. \ - && rm -rf src - -# nlohmann's JSON -RUN mkdir src \ - && ${GET} https://github.com/nlohmann/json/archive/refs/tags/v${JSON_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -DJSON_BuildTests=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# GeoModel -RUN mkdir src \ - && ${GET} https://gitlab.cern.ch/GeoModelDev/GeoModel/-/archive/${GEOMODEL_VERSION}/GeoModel-${GEOMODEL_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -DGEOMODEL_BUILD_GEOMODELG4=ON \ - && cmake --build build -- install \ - && rm -rf build src - -# ROOT -RUN mkdir src \ - && ${GET} https://root.cern/download/root_v${ROOT_VERSION}.source.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -Dfail-on-missing=ON \ - -Dgminimal=ON \ - -Dgdml=ON \ - -Dopengl=ON \ - -Dpyroot=ON \ - -Droot7=ON \ - && cmake --build build -- install \ - && rm -rf build src - -# environment variables needed to find ROOT libraries -ENV LD_LIBRARY_PATH /usr/local/lib -ENV PYTHON_PATH /usr/local/lib - -# podio -RUN mkdir src \ - && ${GET} https://github.com/AIDASoft/podio/archive/refs/tags/v${PODIO_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -DBUILD_TESTING=OFF \ - -USE_EXTERNAL_CATCH2=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# EDM4hep -ENV EDM4HEP_VERSION=00-10-05 -RUN pip3 install jinja2 pyyaml \ - && mkdir src \ - && ${GET} https://github.com/key4hep/EDM4hep/archive/refs/tags/v${EDM4HEP_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -DBUILD_TESTING=OFF \ - -DUSE_EXTERNAL_CATCH2=OFF \ - && cmake --build build -- install \ - && rm -rf build src - -# DD4hep -# requires Geant4 and ROOT and must come last -ADD 0001-CMake-allow-finding-newer-versions-of-podio.patch . -RUN mkdir src \ - && ${GET} https://github.com/AIDASoft/DD4hep/archive/v${DD4HEP_VERSION}.tar.gz \ - | ${UNPACK_TO_SRC} \ - && patch -p1 -d src < 0001-CMake-allow-finding-newer-versions-of-podio.patch \ - && cmake -B build -S src -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_PREFIX_PATH=${PREFIX} \ - -DCMAKE_CXX_STANDARD=20 \ - -DBUILD_TESTING=OFF \ - -DDD4HEP_BUILD_PACKAGES="DDG4 DDDetectors DDRec UtilityApps" \ - -DDD4HEP_IGNORE_GEANT4_TLS=ON \ - -DDD4HEP_USE_GEANT4=ON \ - -DDD4HEP_USE_XERCESC=ON \ - -DDD4HEP_USE_EDM4HEP=ON \ - && cmake --build build -- install \ - && rm -rf build src - RUN pip3 install setuptools # Onnx (download of tar.gz does not work out of the box, since the build.sh script requires a git repository) diff --git a/ubuntu2404/download_geant4_data.sh b/ubuntu2404/download_geant4_data.sh deleted file mode 100755 index 73dbc4a..0000000 --- a/ubuntu2404/download_geant4_data.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -set -e - -data_dir=/usr/local/share/Geant4-10.6.1/data - -mkdir $data_dir -cd $data_dir - - -function dl { - url=$1 - echo "Downloading $url" - curl --location $url | tar -xz -} - -dl https://geant4-data.web.cern.ch/datasets/G4NDL.4.6.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4EMLOW.7.9.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4PhotonEvaporation.5.5.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4RadioactiveDecay.5.4.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4PARTICLEXS.2.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4PII.1.3.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4RealSurface.2.1.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4SAIDDATA.2.0.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4ABLA.3.1.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4INCL.1.0.tar.gz -dl https://geant4-data.web.cern.ch/datasets/G4ENSDFSTATE.2.2.tar.gz \ No newline at end of file diff --git a/ubuntu2404/podio_cpp20.patch b/ubuntu2404/podio_cpp20.patch deleted file mode 100644 index 4491547..0000000 --- a/ubuntu2404/podio_cpp20.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e8a943b..c4f3a96 100755 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -77,8 +77,8 @@ find_package(ROOT REQUIRED COMPONENTS RIO Tree) - - # Check that root is compiled with a modern enough c++ standard - get_target_property(ROOT_COMPILE_FEATURES ROOT::Core INTERFACE_COMPILE_FEATURES) --if (NOT "cxx_std_17" IN_LIST ROOT_COMPILE_FEATURES) -- message(FATAL_ERROR "You are trying to build podio against a version of ROOT that has not been built with a sufficient c++ standard. podio requires c++17") -+if (NOT "cxx_std_17" IN_LIST ROOT_COMPILE_FEATURES AND NOT "cxx_std_20" IN_LIST ROOT_COMPILE_FEATURES) -+ message(FATAL_ERROR "You are trying to build podio against a version of ROOT that has not been built with a sufficient c++ standard. podio requires c++17 or higher") - endif() - #Check if Python version detected matches the version used to build ROOT - SET(Python_FIND_FRAMEWORK LAST) diff --git a/ubuntu2404/pythia8307_cpp20.patch b/ubuntu2404/pythia8307_cpp20.patch deleted file mode 100644 index c6a1890..0000000 --- a/ubuntu2404/pythia8307_cpp20.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 09ef584f1ca797d84c1c0af18ec06b33d6c0d2d0 Mon Sep 17 00:00:00 2001 -From: Paul Gessinger -Date: Thu, 24 Mar 2022 16:08:26 +0100 -Subject: [PATCH] fixes for C++20 build - ---- - include/Pythia8/SusyLesHouches.h | 6 +++--- - src/HadronWidths.cc | 8 ++++---- - src/NucleonExcitations.cc | 8 ++++---- - src/PythiaParallel.cc | 2 +- - 4 files changed, 12 insertions(+), 12 deletions(-) - -diff --git a/include/Pythia8/SusyLesHouches.h b/include/Pythia8/SusyLesHouches.h -index 2f1d9fd..5090c00 100644 ---- a/include/Pythia8/SusyLesHouches.h -+++ b/include/Pythia8/SusyLesHouches.h -@@ -28,7 +28,7 @@ namespace Pythia8 { - public: - - //Constructor. -- LHblock() : idnow(0), qDRbar(), i(), val() {} ; -+ LHblock() : idnow(0), qDRbar(), i(), val() {} ; - - //Does block exist? - bool exists() { return int(entry.size()) == 0 ? false : true ; }; -@@ -129,7 +129,7 @@ namespace Pythia8 { - template class LHmatrixBlock { - public: - //Constructor. Set uninitialized and explicitly zero. -- LHmatrixBlock() : entry(), qDRbar(), val() { -+ LHmatrixBlock() : entry(), qDRbar(), val() { - initialized=false; - for (i=1;i<=size;i++) { - for (j=1;j<=size;j++) { -@@ -208,7 +208,7 @@ namespace Pythia8 { - template class LHtensor3Block { - public: - //Constructor. Set uninitialized and explicitly zero. -- LHtensor3Block() : entry(), qDRbar(), val() { -+ LHtensor3Block() : entry(), qDRbar(), val() { - initialized=false; - for (i=1;i<=size;i++) { - for (j=1;j<=size;j++) { -diff --git a/src/HadronWidths.cc b/src/HadronWidths.cc -index ccc5c72..95a5cb1 100644 ---- a/src/HadronWidths.cc -+++ b/src/HadronWidths.cc -@@ -867,7 +867,7 @@ double HadronWidths::psSize(double eCM, ParticleDataEntryPtr prodA, - return 0.; - - // Integrate mass of A. -- auto f = [=](double mA) { -+ auto f = [=,this](double mA) { - return pow(pCMS(eCM, mA, m0B), lType) * mDistr(idA, mA); }; - if (!integrateGauss(result, f, mMinA, min(mMaxA, eCM - m0B))) - success = false; -@@ -879,7 +879,7 @@ double HadronWidths::psSize(double eCM, ParticleDataEntryPtr prodA, - return 0.; - - // Integrate mass of B. -- auto f = [=](double mB) { -+ auto f = [=,this](double mB) { - return pow(pCMS(eCM, m0A, mB), lType) * mDistr(idB, mB); }; - if (!integrateGauss(result, f, mMinB, min(mMaxB, eCM - m0A))) - success = false; -@@ -891,10 +891,10 @@ double HadronWidths::psSize(double eCM, ParticleDataEntryPtr prodA, - return 0.; - - // Define integrand of outer integral. -- auto I = [=, &success](double mA) { -+ auto I = [=, &success, this](double mA) { - - // Define integrand of inner integral. -- auto f = [=](double mB) { -+ auto f = [=,this](double mB) { - return pow(pCMS(eCM, mA, mB), lType) - * mDistr(idA, mA) * mDistr(idB, mB); }; - double res; -diff --git a/src/NucleonExcitations.cc b/src/NucleonExcitations.cc -index b5eef8f..a82383a 100644 ---- a/src/NucleonExcitations.cc -+++ b/src/NucleonExcitations.cc -@@ -502,7 +502,7 @@ double NucleonExcitations::psSize(double eCM, ParticleDataEntry& prodA, - return 0.; - - // Integrate mass of A. -- auto f = [=](double mA) { -+ auto f = [=, this](double mA) { - return pCMS(eCM, mA, m0B) * hadronWidthsPtr->mDistr(idA, mA); }; - if (!integrateGauss(result, f, mMinA, min(mMaxA, eCM - m0B))) - success = false; -@@ -514,7 +514,7 @@ double NucleonExcitations::psSize(double eCM, ParticleDataEntry& prodA, - return 0.; - - // Integrate mass of B. -- auto f = [=](double mB) { -+ auto f = [=,this](double mB) { - return pCMS(eCM, m0A, mB) * hadronWidthsPtr->mDistr(idB, mB); }; - if (!integrateGauss(result, f, mMinB, min(mMaxB, eCM - m0A))) - success = false; -@@ -526,10 +526,10 @@ double NucleonExcitations::psSize(double eCM, ParticleDataEntry& prodA, - return 0.; - - // Define integrand of outer integral. -- auto I = [=, &success](double mA) { -+ auto I = [=, &success, this](double mA) { - - // Define integrand of inner integral. -- auto f = [=](double mB) { -+ auto f = [=,this](double mB) { - return pCMS(eCM, mA, mB) - * hadronWidthsPtr->mDistr(idA, mA) - * hadronWidthsPtr->mDistr(idB, mB); }; -diff --git a/src/PythiaParallel.cc b/src/PythiaParallel.cc -index 81450e2..7ec3a92 100644 ---- a/src/PythiaParallel.cc -+++ b/src/PythiaParallel.cc -@@ -106,7 +106,7 @@ bool PythiaParallel::init(function customInit) { - bool initSuccess = true; - - for (int iPythia = 0; iPythia < numThreads; iPythia += 1) { -- initThreads.emplace_back([=, &seeds, &initSuccess]() { -+ initThreads.emplace_back([=, &seeds, &initSuccess, this]() { - Pythia* pythiaPtr = new Pythia(settings, particleData, false); - pythiaObjects[iPythia] = unique_ptr(pythiaPtr); - pythiaObjects[iPythia]->settings.flag("Print:quiet", true); --- -2.31.1 - diff --git a/ubuntu2404_cuda/Dockerfile b/ubuntu2404_cuda/Dockerfile index 9e1d615..c3fb02d 100644 --- a/ubuntu2404_cuda/Dockerfile +++ b/ubuntu2404_cuda/Dockerfile @@ -1,3 +1,4 @@ +# @TODO: Update this FROM ghcr.io/acts-project/ubuntu2404:53 LABEL description="Ubuntu 24.04 with Acts dependencies and CUDA" diff --git a/ubuntu2404_cuda_oneapi/Dockerfile b/ubuntu2404_cuda_oneapi/Dockerfile index f017c2f..b957f66 100644 --- a/ubuntu2404_cuda_oneapi/Dockerfile +++ b/ubuntu2404_cuda_oneapi/Dockerfile @@ -5,6 +5,7 @@ # Mozilla Public License Version 2.0 # Start from the (at the time of writing) latest Acts Ubuntu 24.04 image. +# @TODO: Update this FROM ghcr.io/acts-project/ubuntu2404:53 # Some description for the image. diff --git a/ubuntu2404_oneapi/Dockerfile b/ubuntu2404_oneapi/Dockerfile index 07d2bda..7d6a6ff 100644 --- a/ubuntu2404_oneapi/Dockerfile +++ b/ubuntu2404_oneapi/Dockerfile @@ -5,6 +5,7 @@ # Mozilla Public License Version 2.0 # Start from the (at the time of writing) latest Acts Ubuntu 24.04 image. +# @TODO: Update this FROM ghcr.io/acts-project/ubuntu2404:53 # Some description for the image. diff --git a/ubuntu2404_rocm_oneapi/Dockerfile b/ubuntu2404_rocm_oneapi/Dockerfile index 46240cb..d353443 100644 --- a/ubuntu2404_rocm_oneapi/Dockerfile +++ b/ubuntu2404_rocm_oneapi/Dockerfile @@ -5,6 +5,7 @@ # Mozilla Public License Version 2.0 # Start from the (at the time of writing) latest Acts Ubuntu 24.04 image. +# @TODO: Update this FROM ghcr.io/acts-project/ubuntu2404:53 # Some description for the image.