From 644afd13b4fcde03342f9a160bc162be15b7ad43 Mon Sep 17 00:00:00 2001
From: Wouter Deconinck <wdconinc@gmail.com>
Date: Wed, 28 Jun 2023 13:44:48 +0000
Subject: [PATCH] chore: spack-0.20.0

---
 containers/jug/dev.Dockerfile    | 11 +++--
 eic-spack.sh                     |  4 +-
 spack-environment/Makefile       |  8 +---
 spack-environment/dev/spack.yaml | 64 +++++++++++++--------------
 spack.sh                         | 74 +++-----------------------------
 5 files changed, 45 insertions(+), 116 deletions(-)

diff --git a/containers/jug/dev.Dockerfile b/containers/jug/dev.Dockerfile
index 7ee3f9643..c390af8bb 100644
--- a/containers/jug/dev.Dockerfile
+++ b/containers/jug/dev.Dockerfile
@@ -1,5 +1,5 @@
 #syntax=docker/dockerfile:1.4
-ARG DOCKER_REGISTRY="eicweb"
+ARG DOCKER_REGISTRY="eicweb/"
 ARG BASE_IMAGE="debian_stable_base"
 ARG INTERNAL_TAG="testing"
 
@@ -26,7 +26,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=${TARGETPLATFORM}
 ## Setup spack
 ENV SPACK_ROOT=/opt/spack
 ARG SPACK_ORGREPO="spack/spack"
-ARG SPACK_VERSION="releases/v0.19"
+ARG SPACK_VERSION="releases/v0.20"
 ARG SPACK_CHERRYPICKS=""
 ADD https://api.github.com/repos/${SPACK_ORGREPO}/commits/${SPACK_VERSION} /tmp/spack.json
 RUN git clone https://github.com/${SPACK_ORGREPO}.git ${SPACK_ROOT}     \
@@ -63,8 +63,8 @@ RUN declare -A target=(                                                 \
 
 ## Setup local buildcache mirrors
 RUN --mount=type=cache,target=/var/cache/spack-mirror                   \
-    spack mirror add docker /var/cache/spack-mirror/${SPACK_VERSION}    \
- && spack buildcache update-index -d /var/cache/spack-mirror/${SPACK_VERSION} \
+    spack mirror add local /var/cache/spack-mirror/${SPACK_VERSION}     \
+ && spack buildcache update-index local                                 \
  && spack mirror list
 
 ## Setup eics3 buildcache mirrors
@@ -112,8 +112,7 @@ RUN --mount=type=cache,target=/ccache,id=${TARGETPLATFORM}              \
  && spack env activate --dir ${SPACK_ENV}                               \
  && make --jobs ${jobs} --keep-going --directory /opt/spack-environment \
     SPACK_ENV=${SPACK_ENV}                                              \
-    BUILDCACHE_DIR=/var/cache/spack-mirror/${SPACK_VERSION}             \
-    BUILDCACHE_MIRROR=eics3rw                                           \
+    BUILDCACHE_MIRROR="local eics3rw"                                   \
  && ccache --show-stats
 
 ## Create view at /usr/local
diff --git a/eic-spack.sh b/eic-spack.sh
index efe0e8279..587b52fec 100644
--- a/eic-spack.sh
+++ b/eic-spack.sh
@@ -3,13 +3,11 @@ EICSPACK_ORGREPO="eic/eic-spack"
 
 ## EIC spack github version, e.g. v0.19.7 or commit hash
 ## note: nightly builds will use e.g. releases/v0.19
-EICSPACK_VERSION="v0.19.5"
+EICSPACK_VERSION="v0.20.3"
 
 ## Space-separated list of eic-spack cherry-picks
 read -r -d '' EICSPACK_CHERRYPICKS <<- \
 --- || true
-f892e2b5d7ea9d1f2e43741499e899ce21dd3d5a
 ---
 ## Ref: https://github.com/eic/eic-spack/commit/[hash]
 ## [hash]: [description]
-## f892e2b5d7ea9d1f2e43741499e899ce21dd3d5a: py-minkowskiengine: new package
diff --git a/spack-environment/Makefile b/spack-environment/Makefile
index 8f4dba412..7312a3318 100644
--- a/spack-environment/Makefile
+++ b/spack-environment/Makefile
@@ -7,7 +7,6 @@ export SPACK_COLOR = always
 
 SPACK_ENV ?= dev
 
-BUILDCACHE_DIR := $(SPACK_ENV)/cache
 BUILDCACHE_MIRROR :=
 
 .PHONY: all clean
@@ -19,14 +18,11 @@ include $(SPACK_ENV)/spack.mk
 endif
 
 $(SPACK_ENV)/push: $(addprefix $(SPACK_ENV)/push/,$($(SPACK_ENV)/SPACK_PACKAGE_IDS))
-	@mkdir -p $(BUILDCACHE_DIR)
-	$(foreach buildcache, $(BUILDCACHE_DIR), $(SPACK) buildcache update-index --mirror-url $(buildcache) ;)
-	$(foreach buildcache, $(BUILDCACHE_MIRROR), $(SPACK) buildcache update-index --mirror-url $(buildcache) ;)
+	$(foreach buildcache, $(BUILDCACHE_MIRROR), $(SPACK) buildcache update-index $(buildcache) ;)
 
 $(SPACK_ENV)/push/%: $(SPACK_ENV)/install/%
 	@mkdir -p $(dir $@)
-	$(foreach buildcache, $(BUILDCACHE_DIR), $(SPACK) buildcache create --allow-root --only=package --unsigned --directory $(buildcache) /$(HASH) ;) # push $(SPEC)
-	$(foreach buildcache, $(BUILDCACHE_MIRROR), $(SPACK) buildcache create --allow-root --only=package --unsigned --mirror-name $(buildcache) /$(HASH) ;) # push $(SPEC)
+	$(foreach buildcache, $(BUILDCACHE_MIRROR), $(SPACK) buildcache create --allow-root --only=package --unsigned $(buildcache) /$(HASH) ;) # push $(SPEC)
 	@touch $@
 
 $(SPACK_ENV)/spack.lock: $(SPACK_ENV)/spack.yaml Makefile
diff --git a/spack-environment/dev/spack.yaml b/spack-environment/dev/spack.yaml
index becad13a9..8f5ca7a4b 100644
--- a/spack-environment/dev/spack.yaml
+++ b/spack-environment/dev/spack.yaml
@@ -1,85 +1,85 @@
 spack:
-  include: 
+  include:
   - ../concretizer.yaml
   - ../packages.yaml
   specs:
-    - acts@21.1.0 +dd4hep +identification +json +tgeo +examples +fatras +geant4 +python
+    - acts@21.1.1 +dd4hep +examples +fatras +geant4 +identification +json +python +tgeo
     - actsvg@0.4.26 +examples
     - acts-dd4hep@1.0.1
     - afterburner@0.1.2 +root +zlib
     - cairo@1.16.0 +fc+ft+X+pdf+gobject
     - catch2@3.0.1 -ipo
     - cernlib@2022.11.08.0-free
-    - clhep@2.4.6.0 cxxstd=17
-    - cli11@2.1.1
-    - cmake@3.24.3
+    - clhep@2.4.6.4 cxxstd=17
+    - cli11@2.3.2
+    - cmake@3.26.3
     - cnpy@master
-    - cppcoro@git.10bbcdbf2be3ad3aa56febcf4c7662d771460a99
+    #- cppcoro@git.10bbcdbf2be3ad3aa56febcf4c7662d771460a99
     - dawn@3_91a
     - dawncut@1_54a
     - dd4hep@1.25.1 +ddg4 +ddcad -frames +hepmc3 +lcio +xercesc
     - dpmjet@19.3.5
     - edm4eic@2.0.0 cxxstd=17
-    - edm4hep@0.7 cxxstd=17
+    - edm4hep@=0.7 cxxstd=17
     - eic-smear@1.1.10
     - eigen@3.4.0
     - emacs@28.2
     - fastjet@3.4.0
-    - fjcontrib@1.045
-    - fmt@8.1.1 +shared cxxstd=17
-    - gaudi@36.7 +aida
+    - fjcontrib@1.051
+    - fmt@9.1.0 +shared cxxstd=17
+    - gaudi@36.10 +aida
+    - gdb@12.1 -debuginfod
     - geant4@11.1.1 cxxstd=17 +opengl -vecgeom +x11 +qt +threads
-    - hepmc3@3.2.5 +python +rootio
+    - hepmc3@3.2.6 +python +rootio
     - heppdt@2.06.01
     - imagemagick@7.0.8-7
     - intel-tbb@2020.3
     - irt@1.0.6
     - jana2@2.1.0 -ipo +podio +root +zmq
-    - lcov@1.15
+    - lcov@1.16
     - lhapdf@6.5.1 +python
     - madx@5.08.01
-    - mesa@22.1.2 +glx -llvm +opengl +opengles +osmesa
+    - mesa@22.1.6 +glx -llvm +opengl +opengles +osmesa
     - nlohmann-json@3.11.2
     - npsim@1.1.0 +geocad +http
-    - onnx@1.12.0
-    - opencascade@7.6.3
+    - onnx@1.13.1
+    - opencascade@7.7.1
     - osg-ca-certs@1.109.igtf.1.117
     - phonebook-cli@1.0.0
-    - pkg-config@0.29.2
     - podio@0.16.5
     - prmon@3.0.2 +plot
-    - pythia8@8.306 +fastjet
-    - python@3.10.8
-    - py-awkward@1.9.0
+    - pythia8@8.309 +fastjet
+    - python@3.10.10
+    - py-awkward@2.1.1
     - py-dask@2021.6.2
-    - py-boto3@1.18.12
-    - py-ipython@8.5.0
+    - py-boto3@1.26.26
+    - py-ipython@8.11.0
     - py-jinja2@3.1.2
     - py-jinja2-cli@0.8.2
-    - py-jupyter@1.0.0
-    - py-jupyterlab@3.2.9
+    - py-jupyter-console@6.4.4
+    - py-jupyterlab@3.4.8
     - py-lmfit@1.0.2
     - py-lxml@4.9.1
-    - py-matplotlib@3.6.2
+    - py-matplotlib@3.7.1
     - py-mplhep@0.3.26
     - py-htgettoken@1.16-33-g3788bb4
     - py-numpy@1.23.4
-    - py-pandas@1.5.1
-    - py-pip@22.2.2
+    - py-pandas@1.5.3
+    - py-pip@23.0
     - py-pre-commit@2.20.0
     - py-pycairo@1.20.0
     - py-pyyaml@6.0
-    - py-scipy@1.9.3
-    - py-seaborn@0.12.0
+    - py-scipy@1.10.1
+    - py-seaborn@0.12.2
     - py-toml@0.10.2
-    - py-uproot@4.3.5
+    - py-uproot@5.0.5
     - py-yapf@0.30.0
-    - qt@5.15.5 +opengl
+    - qt@5.15.9 +opengl
     - root@6.26.10 cxxstd=17 
           +fftw +fortran +gdml +http -ipo +mlp +pythia8 
           +root7 +tmva +vc -webgui +xrootd +ssl 
-    - spdlog@1.10.0 +fmt_external
+    - spdlog@1.11.0 +fmt_external
     - stow@2.3.1
     - tensorflow-lite@2.8.0 -xnnpack
-    - xrootd@5.5.1 cxxstd=17 +python +scitokens-cpp
+    - xrootd@5.5.5 cxxstd=17 -davix +python +scitokens-cpp
   view: false
diff --git a/spack.sh b/spack.sh
index 6ab006c6d..dffdb2d6d 100644
--- a/spack.sh
+++ b/spack.sh
@@ -3,81 +3,17 @@ 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.19.2"
+SPACK_VERSION="v0.20.0"
 
 ## Space-separated list of spack cherry-picks
 read -r -d '' SPACK_CHERRYPICKS <<- \
 --- || true
-b5ef5c2eb5145020f9de1bcb964626ce6ac2d02e
-99056e03bd3e903b222e300636ec484d85d4b3fb
-f3f8b31be54280c6ef0b5f95ab85604aba3dff30
-0ea81affd18820933640279bbc687038b3296a4e
-dceb4c9d655d0529e112b8929558be60973b39f7
-f2b0c1deab87da3b5aa4c1f2ef4d6af06fa4e32d
-2f057d729da61e8c12828df44377f0a93fed820f
-39a1f1462b0abf12dfaccd33f84142c852c4b56e
-4b12d015e1c316b4837e02ae37e2c69a8a647180
-f83d47442dade012b1019840181b8dd459fd8edd
-7f1467e795b1cab8b4855e019910c509896ea0e1
-ebc24b7063ba9a8eb43b4424aac5143cf958d76f
-a47ebe57841f13239e881ed69eab4949b1d98c32
-ab999d5af90f1bff644b5134bb370b2716e1bcf0
-62da76cb5dca4d52c43bee06230cca6a5882f05d
-cc2ae9f270befa554ba8b09c68e89bb8248ea650
-ae98d2ba2fcefa9d027e2d6ccc6e7558a32e7228
-ae189cfab8d9036e8d39bbd3f1b61b400d1fcd5b
-3afe6f1adcc24335cbca9a9c03ffea188f802766
-559c3de213707b5d52d899fd0382495f2cc8508d
-8e84dcd7ef999e2659822b34372515175f1723c4
-65bd9b9ac556480b4a9dcc60f7539492af195d4a
-1a32cea11495cbdd699fea4fe622babab83e630d
-6edc4807369a05786e36f63b5d959588ae94a1fa
-af74680405c931dab16c6674f9b97a32bf3f1122
-0a952f8b7bf6f70009dd5821bccbaf9170c73d07
-f050b1cf7835fd31992b020e1061c52294ff7330
-a419ffcf501134faed24253ccc83e6c71f9659f9
-c3e41153ac92f6ef92414024a8386d4ceec2615c
-42a452d54c8a25f9f415fef8cf9e3a5c64b7a46a
-a7b5f2ef39543f047f587d778579a958bbd0be45
-44f7363fbe48d516112cb5bcaabf3778b665f800
-6fefb924136da4814e96525dd6b2d73a523ca5dc
-0c2aafec33fbd3418dc731c987f43573a7610439
+9ee2d79de172de14477a78e5d407548a63eea33a
+776ab132760d63eab0703b7c0ebebc72a8443f5b
 188168c476eabe99764634db8d78eb3f9ea2a927
 ---
 ## Ref: https://github.com/spack/spack/commit/[hash]
 ## [hash]: [description]
-## b5ef5c2eb5145020f9de1bcb964626ce6ac2d02e: geant4: version bumps for Geant4 11.1.0
-## 99056e03bd3e903b222e300636ec484d85d4b3fb: acts: new versions 19.11.0, 21.0.0, 21.1.0
-## f3f8b31be54280c6ef0b5f95ab85604aba3dff30: XRootD: add checksum + patch for 5.5.1 
-## 0ea81affd18820933640279bbc687038b3296a4e: py-torch: fix build with gcc@12:
-## dceb4c9d655d0529e112b8929558be60973b39f7: Update PyTorch ecosystem
-## f2b0c1deab87da3b5aa4c1f2ef4d6af06fa4e32d: py-minkowskiengine: new package (sparse tensor autodiff by Nvidia)
-## 2f057d729da61e8c12828df44377f0a93fed820f: py-scipy: add v1.9
-## 39a1f1462b0abf12dfaccd33f84142c852c4b56e: SIP build system: fix "python not defined in builder"
-## 4b12d015e1c316b4837e02ae37e2c69a8a647180: py-jinja2-cli: new package
-## f83d47442dade012b1019840181b8dd459fd8edd: dd4hep: depends_on root +x +opengl when +utilityapps
-## 7f1467e795b1cab8b4855e019910c509896ea0e1: dd4hep: new version 1.24, depends_on podio@0.16:
-## ebc24b7063ba9a8eb43b4424aac5143cf958d76f: dd4hep: extend conflict on CMake
-## a47ebe57841f13239e881ed69eab4949b1d98c32: dd4hep: new versions 1.25, 1.25.1
-## ab999d5af90f1bff644b5134bb370b2716e1bcf0: dd4hep: depends_on root +webgui when +ddeve ^root @6.28:
-## 62da76cb5dca4d52c43bee06230cca6a5882f05d: directives: depends_on should not admit anonymous specs
-## cc2ae9f270befa554ba8b09c68e89bb8248ea650: Add a "maintainer" directive
-## ae98d2ba2fcefa9d027e2d6ccc6e7558a32e7228: Support packages for using scitokens on OSG
-## ae189cfab8d9036e8d39bbd3f1b61b400d1fcd5b: geant4: new version 11.1.1
-## 3afe6f1adcc24335cbca9a9c03ffea188f802766: ROOT: add math/gsl conflict and change version-dependent features to conditional variants
-## 559c3de213707b5d52d899fd0382495f2cc8508d: ROOT: new versions and associated dependency constraints
-## 8e84dcd7ef999e2659822b34372515175f1723c4: root: new version 6.28.00
-## 65bd9b9ac556480b4a9dcc60f7539492af195d4a: podio, edm4hep: add v0.7.2 and v0.16.1 respectively
-## 1a32cea11495cbdd699fea4fe622babab83e630d: podio: add v0.16.2
-## 6edc4807369a05786e36f63b5d959588ae94a1fa: podio: Add version 0.16.3
-## af74680405c931dab16c6674f9b97a32bf3f1122: depfile: improve tab completion
-## 0a952f8b7bf6f70009dd5821bccbaf9170c73d07: docs updates for spack env depfile
-## f050b1cf7835fd31992b020e1061c52294ff7330: depfile: variable with all identifiers
-## a419ffcf501134faed24253ccc83e6c71f9659f9: osg-ca-certs: igtf link should point to version, not 'current'
-## c3e41153ac92f6ef92414024a8386d4ceec2615c: Package requirements: allow single specs in requirement lists
-## 42a452d54c8a25f9f415fef8cf9e3a5c64b7a46a: estarlight, dpmjet: new packages
-## a7b5f2ef39543f047f587d778579a958bbd0be45: Add the very first version of cernlib package
-## 44f7363fbe48d516112cb5bcaabf3778b665f800: cernlib: depends_on libxaw libxt
-## 6fefb924136da4814e96525dd6b2d73a523ca5dc: cernlib: depends_on freetype, libnsl, libxcrypt, openssl; and patch
-## 0c2aafec33fbd3418dc731c987f43573a7610439: cernlib: depends_on openssl when platform=linux
+## 9ee2d79de172de14477a78e5d407548a63eea33a: libxpm package: fix RHEL8 build with libintl
+## 776ab132760d63eab0703b7c0ebebc72a8443f5b: [xrootd] New variants, new version, improve build config
 ## 188168c476eabe99764634db8d78eb3f9ea2a927: podio: Add 0.16.5 tag
-- 
GitLab