diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 88d1bd9ab6d3737e0d0b3dfb98810e8661c62253..4d4fec3165db6e6fca3df3a25eec6fd7702fae17 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -204,7 +204,7 @@ status:pending: - mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc ; for arch in aarch64 ; do if ! grep -q enabled /proc/sys/fs/binfmt_misc/qemu-$arch ; then - docker run --rm --privileged multiarch/qemu-user-static --persistent yes ; + docker run --rm --privileged multiarch/qemu-user-static --reset --persistent yes ; fi ; done - docker context create context diff --git a/containers/debian/base.Dockerfile b/containers/debian/base.Dockerfile index d7bc84ee2989cfd2c610be75aa50ac8e0c7713d9..0eeb0b1a0b1af949b9b521ad48f1f668990eb8a9 100644 --- a/containers/debian/base.Dockerfile +++ b/containers/debian/base.Dockerfile @@ -46,8 +46,10 @@ apt-get -yqq install --no-install-recommends \ less \ libc6-dbg \ libcbor-xs-perl \ + libegl-dev \ libjson-xs-perl \ libgl-dev \ + libglew-dev \ libglx-dev \ libopengl-dev \ locales \ diff --git a/containers/jug/dev.Dockerfile b/containers/jug/dev.Dockerfile index 984c6a344d0665cf273c595828cabd2c160132ce..216b22a5730e7e8e18151cddf823e6a63c9b4c0d 100644 --- a/containers/jug/dev.Dockerfile +++ b/containers/jug/dev.Dockerfile @@ -54,6 +54,7 @@ if [ -n "${SPACK_CHERRYPICKS}" ] ; then fi done fi +sed -i 's/timeout=60/timeout=None/' $SPACK_ROOT/lib/spack/spack/stage.py ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash /usr/bin/docker-shell ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash /usr/bin/interactive-shell ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash /usr/bin/spack-env @@ -182,12 +183,12 @@ export CCACHE_DIR=/ccache spack env activate --dir ${SPACK_ENV} if [ "${EDM4EIC_VERSION}" != "8aeb507f93a93257c99985efbce0ec1371e0b331" ] ; then export EDM4EIC_VERSION=$(jq -r .sha /tmp/edm4eic.json) - sed -i "/# EDM4EIC_VERSION$/ s/@[^\s']*/@git.${EDM4EIC_VERSION}=main/" /opt/spack-environment/packages.yaml + sed -i "/# EDM4EIC_VERSION$/ s/@[^' ]*/@git.${EDM4EIC_VERSION}=main/" /opt/spack-environment/packages.yaml spack deconcretize -y --all edm4eic fi if [ "${EICRECON_VERSION}" != "28108da4a1e8919a05dfdb5f11e114800a2cbe96" ] ; then export EICRECON_VERSION=$(jq -r .sha /tmp/eicrecon.json) - sed -i "/# EICRECON_VERSION$/ s/@[^\s']*/@git.${EICRECON_VERSION}=main/" /opt/spack-environment/packages.yaml + sed -i "/# EICRECON_VERSION$/ s/@[^' ]*/@git.${EICRECON_VERSION}=main/" /opt/spack-environment/packages.yaml spack deconcretize -y --all eicrecon fi if [ "${EPIC_VERSION}" != "c1827f05430b2051df8a0b421db1cbab87165e0b" ] ; then @@ -198,14 +199,13 @@ if [ "${EPIC_VERSION}" != "c1827f05430b2051df8a0b421db1cbab87165e0b" ] ; then fi if [ "${JUGGLER_VERSION}" != "df87bf1f8643afa8e80bece9d36d6dc26dfe8132" ] ; then export JUGGLER_VERSION=$(jq -r .sha /tmp/juggler.json) - sed -i "/# JUGGLER_VERSION$/ s/@[^\s']*/@git.${JUGGLER_VERSION}=main/" /opt/spack-environment/packages.yaml + sed -i "/# JUGGLER_VERSION$/ s/@[^' ]*/@git.${JUGGLER_VERSION}=main/" /opt/spack-environment/packages.yaml spack deconcretize -y --all juggler fi spack concretize --fresh --force make --jobs ${jobs} --keep-going --directory /opt/spack-environment \ SPACK_ENV=${SPACK_ENV} \ BUILDCACHE_OCI_FINAL="eicweb" \ - BUILDCACHE_OCI_FINAL="ghcr" \ BUILDCACHE_S3_FINAL="eics3rw" spack find --implicit --no-groups \ | sed -e '1,/Installed packages/d;s/\([^@]*\).*/\1/g' \ @@ -276,7 +276,7 @@ RUN <<EOF set -ex spack debug report | sed "s/^/ - /" | sed "s/\* \*\*//" | sed "s/\*\*//" >> /etc/jug_info spack find --no-groups --long --variants | sed "s/^/ - /" >> /etc/jug_info -spack graph --dot --installed > /opt/spack-environment/env.dot +spack graph --dot > /opt/spack-environment/env.dot EOF ## Copy custom content diff --git a/eic-spack.sh b/eic-spack.sh index 2c3968004c5a9ce823fbc02abf8484d17f76f403..26d20b2915937fe8c13f5479a056687d74fd1a8e 100644 --- a/eic-spack.sh +++ b/eic-spack.sh @@ -3,4 +3,4 @@ EICSPACK_ORGREPO="eic/eic-spack" ## EIC spack commit hash or github version, e.g. v0.19.7 ## note: nightly builds could use a branch e.g. releases/v0.19 -EICSPACK_VERSION="d166c4d4179b97d34774ff334635bc759d0f7931" +EICSPACK_VERSION="307252ffdba29f806cebf16b88f71c9800c8b185" diff --git a/spack-environment/dev/spack.yaml b/spack-environment/dev/spack.yaml index de08d4e4cb87cbf4aefa93343e6b2ada08f3f771..659f7cc271319565cd13c9e574c90d125782c0c0 100644 --- a/spack-environment/dev/spack.yaml +++ b/spack-environment/dev/spack.yaml @@ -63,6 +63,7 @@ spack: - opencascade - osg-ca-certs - phonebook-cli + - podio - prmon - pythia8 - py-awkward @@ -96,7 +97,7 @@ spack: - py-uproot - py-wurlitzer - py-yapf - - root + - root +opengl +webgui +x - snakemake - spdlog - stow diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index d4e84bf3e6e082dd6bcb6ae06cc6adcb0ef84890..c58d8e82a946e262b3f618234fc2ba7cefff216c 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -37,6 +37,9 @@ packages: blas: require: - openblas + boost: + require: + - '@1.84.0' cairo: require: - '@1.16.0' @@ -58,7 +61,7 @@ packages: - '@2.3.2' cmake: require: - - '@3.27.7' + - '@3.27.9' cnpy: require: - '@master' @@ -74,7 +77,7 @@ packages: dd4hep: require: - '@1.28' - - +ddg4 +ddcad +hepmc3 +xercesc + - +ddg4 +ddcad +hepmc3 +utilityapps +xercesc - any_of: [+ddeve, -ddeve] dpmjet: require: @@ -90,6 +93,11 @@ packages: require: - '@0.10.3' - cxxstd=20 + egl: + buildable: False + externals: + - spec: egl@1.5.0 + prefix: /usr eic-smear: require: - '@1.1.12' @@ -120,8 +128,8 @@ packages: - +shared cxxstd=17 gaudi: require: - - '@37.1' - - +aida + - '@38.1' + - +aida +gaudialg gdb: require: - '@12.1' @@ -135,6 +143,9 @@ packages: - '@11.2.1.east' - cxxstd=20 -vecgeom +threads -vtk - any_of: [+opengl +qt +x11, -opengl -qt -x11] + glew: + require: + - gl=glx gloo: require: - '@2023-05-19' @@ -167,14 +178,14 @@ packages: - -ipo +podio +root +zmq juggler: require: - - '@14.0.0' # JUGGLER_VERSION + - '@14.0.3' # JUGGLER_VERSION - cxxstd=20 k4actstracking: require: - '@main' k4fwcore: require: - - '@1.0pre17' + - '@1.0pre19' lapack: require: - openblas @@ -217,6 +228,7 @@ packages: - '@7.7.1' - +application_framework -vtk opengl: + buildable: False externals: - spec: opengl@4.6 prefix: /usr @@ -232,7 +244,7 @@ packages: - '@1.0.0' podio: require: - - '@0.17.3' + - '@0.99' - cxxstd=20 prmon: require: @@ -358,7 +370,6 @@ packages: spdlog: require: - '@1.11.0' - - +fmt_external stow: require: - '@2.3.1' diff --git a/spack.sh b/spack.sh index 30562dbdcb84008d329938e02498f95ec78b6239..11a69ab856924131be079dffdc66510590f57538 100644 --- a/spack.sh +++ b/spack.sh @@ -3,135 +3,21 @@ SPACK_ORGREPO="spack/spack" ## Spack github version, e.g. v0.18.1 or commit hash ## note: nightly builds will use e.g. releases/v0.19 -SPACK_VERSION="v0.21.0" +SPACK_VERSION="v0.22.0" ## Space-separated list of spack cherry-picks read -r -d '' SPACK_CHERRYPICKS <<- \ --- || true -ed8ecc469e7b87842a876323878831e301f136a2 -53a45c820c983867e8b05cab3df34e98b468f932 -4991a60eacb5df289383f755e40702b720ed0513 -81e73b4dd4ea0bf6c6947359d3cee9d4270df13d -c485709f625429a88a184a099373d76c9438f8e3 -6f08daf67020289e6a5ed1df9783ac5b2919e477 -50051b56199992eb4395b8ff22913c1995311a8c -f01774f1d41781bc4b9e5abb5469e234168da663 -16f4c53cd4cfb4bc6c9390f6e65217fc9ccc58c9 -d171f314c77ba61b3cd780f159afe6abced5707d -b111064e221aae83e62226672cd8bf9a7524423d -3c54177c5d9032cb36cf154b553d739cbeb2d024 -375bc6fc9443082fd28e4bbcad44d1f627a452eb -7a0c4e8017033430e5f15ed628be6b539e935ba9 -48fcfda1e7c1781cab4cada6d099823b263ab0cc -8c29e90fa9962f4a44f39f47217b46c85176af28 -1255620a14afa3ad4aad681a847a3a1704141976 -963e2ca82883cdc1287f1035c15d1a7e9a6fe612 -d3c796f2ce1da2dda198707def297aeab702d33c -9c47ecaeb25300ac2a6a2609628ecd4c928fcf49 -19c20563cc86140aaf352d72079bd9de292be0ac -d50f8d7b19e07f25a3ce8de28ff9b352fd926d7f -9e4fab277b8a5b9ec5587c8a8b6514f12c8042a4 -8f4f691e2b2a6263f661fb0a455bcaf73e90036a -ef4274ed2ee9545eab399a6249346b56b66415a4 -42b739d6d5b69b825e7992cd88b0b076a9bf0a9e -c264cf12a21c44358739fbe1fa674d2cb497ab5d -2d71c6bb8e9816464f14f8878d1777e209784ad3 -a0cd63c21067af59d6a976cc3e7b26c723e49373 -c5e0270ef006b2b04d2f3f89bcaa6bf4d492faae -bcc5ded2051788d8d0800391d09379417c1caeb7 -eb57d96ea94b0543a8d5ba943444e77e414cc82e -16d1ed35914262eea27cf41a2c99aea497adc17d -c352db764598cc4d04299913646bb55d7613eb8a -c31a998abb9f0b82a59bbfbf55b8111847aac8cb -c5b8d5c92a88707d0c949b2bd507b2dfc1b79506 -d7e756a26b9450d7f4e94dac1747a729011e2140 -6986e708775afbddbe6e8239fb2d8745931a0410 -70fb0b35e55f8f9b3182b091bc8c40b8770041b7 -86730c7b175369ac0490b096401a2912f087a6e9 -b6d69bfad215a62b9d8078c6216ec50931f848eb -5140a9b6a3588d9e44a98a6a1f3993e7687ef2fe -98162aa2e1574b2e8a2a43976ad27eda92e5c65e -85c6d6dbab88f4cb40a20cf13204263c59c640e9 -72f8611d3e6296691c128ced4f55776042813cc0 -9ffe1799346fce7615eb03483545a08d7023b2ce -e8ae9a403ca7db7738d36bf41bf99977b9c88a84 -5a52780f7cf09973c431f89713db1c571ddd2ccc -28d02dff6090b72e070c5b9497cd1f4372b4723f -6008ae0c607560e4320dad5dcb35aaa4e1bc5d50 -62132919e1465a40e3522e40278e4bbc8ec32978 -946c539dbd95cd78ababda66e58a1c3f8953c95a -519dd0a6ff9f76384b3f19fa884fd6397cf79ac9 -f1ec4859c8bfd47ff1565d1eb74bcaab22a7ea16 -bbcd4224fa1edfa1fb91e101b58596f30b79b85f -c2eef8bab26adb00b250992e29d697b4706356a0 -0df27bc0f7c45cee4009f1b8894b45b7e6bfd888 +09f75ee426a2e05e0543570821582480ff823ba5 +f6d50f790ee8b123f7775429f6ca6394170e6de9 +63f6e6079aacc99078386e5c8ff06173841b9595 --- ## Optional hash table with comma-separated file list read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ --- || true -[70fb0b35e55f8f9b3182b091bc8c40b8770041b7]=var/spack/repos/builtin/packages/py-fsspec/package.py -[5140a9b6a3588d9e44a98a6a1f3993e7687ef2fe]=var/spack/repos/builtin/packages/py-jax/package.py,var/spack/repos/builtin/packages/py-jaxlib/package.py -[9c47ecaeb25300ac2a6a2609628ecd4c928fcf49]=lib/spack/spack/directives.py -[19c20563cc86140aaf352d72079bd9de292be0ac]=var/spack/repos/builtin/packages/abseil-cpp/package.py,var/spack/repos/builtin/packages/acts/package.py,var/spack/repos/builtin/packages/actsvg/package.py,var/spack/repos/builtin/packages/dd4hep/package.py,var/spack/repos/builtin/packages/fontconfig/package.py,var/spack/repos/builtin/packages/hepmc3/package.py,var/spack/repos/builtin/packages/protobuf/package.py,var/spack/repos/builtin/packages/pythia8/package.py,var/spack/repos/builtin/packages/py-aiobotocore/package.py,var/spack/repos/builtin/packages/py-cdsapi/package.py,var/spack/repos/builtin/packages/py-cfgrib/package.py,var/spack/repos/builtin/packages/py-chex/package.py,var/spack/repos/builtin/packages/py-dm-haiku/package.py,var/spack/repos/builtin/packages/py-etils/package.py,var/spack/repos/builtin/packages/py-flit-core/package.py,var/spack/repos/builtin/packages/py-fsspec/package.py,var/spack/repos/builtin/packages/py-gcsfs/package.py,var/spack/repos/builtin/packages/py-h5netcdf/package.py,var/spack/repos/builtin/packages/py-importlib-metadata/package.py,var/spack/repos/builtin/packages/py-jax/package.py,var/spack/repos/builtin/packages/py-jaxlib/package.py,var/spack/repos/builtin/packages/py-netcdf4/package.py,var/spack/repos/builtin/packages/py-onnx/package.py,var/spack/repos/builtin/packages/py-onnxruntime/package.py,var/spack/repos/builtin/packages/py-pytest-asyncio/package.py,var/spack/repos/builtin/packages/py-pytest-timeout/package.py,var/spack/repos/builtin/packages/py-python-dotenv/package.py,var/spack/repos/builtin/packages/py-s3fs/package.py,var/spack/repos/builtin/packages/py-zarr/package.py,var/spack/repos/builtin/packages/xrootd/package.py -[f1ec4859c8bfd47ff1565d1eb74bcaab22a7ea16]=var/spack/repos/builtin/packages/fontconfig/package.py -[bbcd4224fa1edfa1fb91e101b58596f30b79b85f]=var/spack/repos/builtin/packages/fontconfig/package.py --- ## Ref: https://github.com/spack/spack/commit/[hash] ## [hash]: [description] -## ed8ecc469e7b87842a876323878831e301f136a2: podio: Add the latest tag (0.17.2) -## 53a45c820c983867e8b05cab3df34e98b468f932: docker entrypoint.sh: fail multi-line RUN on first error with set -e -## 4991a60eacb5df289383f755e40702b720ed0513: podio: Add latest tag 0.17.3 -## 81e73b4dd4ea0bf6c6947359d3cee9d4270df13d: root: new version 6.30.00 -## c485709f625429a88a184a099373d76c9438f8e3: iwyu: new versions up 0.21 (depends_on llvm-17) -## 6f08daf67020289e6a5ed1df9783ac5b2919e477: root: add a webgui patch -## 50051b56199992eb4395b8ff22913c1995311a8c: geant4: new version 11.1.3 -## f01774f1d41781bc4b9e5abb5469e234168da663: hepmc3: fix from_variant -> self.define -## 16f4c53cd4cfb4bc6c9390f6e65217fc9ccc58c9: py-bokeh: new version 3.3.1, and supporting packages -## d171f314c77ba61b3cd780f159afe6abced5707d: py-pygithub: new versions, dependencies -## b111064e221aae83e62226672cd8bf9a7524423d: py-htgettoken: use os.environ, avoid AttributeError -## 3c54177c5d9032cb36cf154b553d739cbeb2d024: edm4hep: add latest tag for 0.10.2 -## 375bc6fc9443082fd28e4bbcad44d1f627a452eb: py-torch: set env OpenBLAS_HOME -## 7a0c4e8017033430e5f15ed628be6b539e935ba9: acts: new versions 31.* -## 48fcfda1e7c1781cab4cada6d099823b263ab0cc: setup-env.sh: if exe contains qemu, use /proc/$$/comm instead -## 8c29e90fa9962f4a44f39f47217b46c85176af28: Build cache: make signed/unsigned a mirror property -## 1255620a14afa3ad4aad681a847a3a1704141976: Fix infinite recursion when computing concretization errors -## 963e2ca82883cdc1287f1035c15d1a7e9a6fe612: edm4hep: add latest tag 0.10.3 -## d3c796f2ce1da2dda198707def297aeab702d33c: pythia8: new version 8.310 -## 9c47ecaeb25300ac2a6a2609628ecd4c928fcf49: directives: add checked_by field to license(), add some license checks -## 19c20563cc86140aaf352d72079bd9de292be0ac: Initial License Checkin -## d50f8d7b19e07f25a3ce8de28ff9b352fd926d7f: root: sha256 change on latest versions -## 9e4fab277b8a5b9ec5587c8a8b6514f12c8042a4: [root] New variants, patches -## 8f4f691e2b2a6263f661fb0a455bcaf73e90036a: hepmc3: add v3.2.7 -## ef4274ed2ee9545eab399a6249346b56b66415a4: podio: Add latest tag 0.17.4 -## 42b739d6d5b69b825e7992cd88b0b076a9bf0a9e: podio: depends_on py-graphviz type run (for podio-vis) -## c264cf12a21c44358739fbe1fa674d2cb497ab5d: dd4hep: avoid IndexError in setup_run_environment -## 2d71c6bb8e9816464f14f8878d1777e209784ad3: dd4hep: add v1.27.1 -## a0cd63c21067af59d6a976cc3e7b26c723e49373: dd4hep: new version 1.27.2 -## c5e0270ef006b2b04d2f3f89bcaa6bf4d492faae: dd4hep: remove self-referential dependencies -## bcc5ded2051788d8d0800391d09379417c1caeb7: dd4hep: new version 1.28 -## eb57d96ea94b0543a8d5ba943444e77e414cc82e: geant4/geant4-data: add v10.0.4 -## 16d1ed35914262eea27cf41a2c99aea497adc17d: geant4: new version 11.2.0 -## c352db764598cc4d04299913646bb55d7613eb8a: vecgeom: Use correct checksum for version 1.2.5 -## c31a998abb9f0b82a59bbfbf55b8111847aac8cb: VecGeom: new version 1.2.7 and fix URLs -## c5b8d5c92a88707d0c949b2bd507b2dfc1b79506: geant4: new version v11.2.1 -## d7e756a26b9450d7f4e94dac1747a729011e2140: onnxruntime: fix the call to as_string() operator -## 6986e708775afbddbe6e8239fb2d8745931a0410: [abseil-cpp] New version 20230802.1 -## 70fb0b35e55f8f9b3182b091bc8c40b8770041b7: py-transformers: add v4.35.2 -## 86730c7b175369ac0490b096401a2912f087a6e9: py-fsspec: fix import tests -## b6d69bfad215a62b9d8078c6216ec50931f848eb: py-flit-core: fix import tests -## 5140a9b6a3588d9e44a98a6a1f3993e7687ef2fe: py-keras: add v3.0.5 -## 98162aa2e1574b2e8a2a43976ad27eda92e5c65e: py-earth2mip: add new package -## 85c6d6dbab88f4cb40a20cf13204263c59c640e9: (py-)onnx: new version 1.14.{0,1}, 1.15.0 -## 72f8611d3e6296691c128ced4f55776042813cc0: acts: new version 32.0.0 -## 9ffe1799346fce7615eb03483545a08d7023b2ce: acts: fix self-referential dependencies -## e8ae9a403ca7db7738d36bf41bf99977b9c88a84: acts: depends_on py-onnxruntime when +onnx for @23.3: -## 5a52780f7cf09973c431f89713db1c571ddd2ccc: acts: new version 33.1.0 -## 28d02dff6090b72e070c5b9497cd1f4372b4723f: pythia8: new version 8.311 -## 6008ae0c607560e4320dad5dcb35aaa4e1bc5d50: geant4-data: fix versions for 11.2 -## 62132919e1465a40e3522e40278e4bbc8ec32978: xrootd: new version 5.6.9 -## 946c539dbd95cd78ababda66e58a1c3f8953c95a: osg-ca-certs: new version osg-1.119 igtf-1.128 -## 519dd0a6ff9f76384b3f19fa884fd6397cf79ac9: pythia8: patch latest 8.311 for upstream bug -## f1ec4859c8bfd47ff1565d1eb74bcaab22a7ea16: unmaintained packages: add new versions -## bbcd4224fa1edfa1fb91e101b58596f30b79b85f: py-matplotlib: add v3.8.4 -## c2eef8bab26adb00b250992e29d697b4706356a0: fontconfig: depends_on gperf when 2.11.1: -## 0df27bc0f7c45cee4009f1b8894b45b7e6bfd888: nopayloadclient: new package +## 09f75ee426a2e05e0543570821582480ff823ba5: setup-env.sh: if exe contains qemu, use /proc/$$/comm instead +## f6d50f790ee8b123f7775429f6ca6394170e6de9: gaudi: Add version 38.1 +## 63f6e6079aacc99078386e5c8ff06173841b9595: gaudi: upstream patch when @38.1 for missing #include <list>