From 70514e398e127030c8ffae6db8d61401f1ec7cae Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Fri, 14 Nov 2025 18:29:52 -0600 Subject: [PATCH 01/24] Upgrade spack to v1.1.0 --- spack.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack.sh b/spack.sh index 45e5a83f..5aedca8e 100644 --- a/spack.sh +++ b/spack.sh @@ -3,7 +3,7 @@ SPACK_ORGREPO="spack/spack" ## Spack github version, e.g. v0.18.1 or commit hash ## note: nightly builds will use e.g. releases/v1.0 -SPACK_VERSION="v1.0.2" +SPACK_VERSION="v1.1.0" ## Space-separated list of spack cherry-picks read -r -d '' SPACK_CHERRYPICKS <<- \ From 78cd012156d041f1b14ce50e39723b9a613fba86 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sat, 15 Nov 2025 20:53:35 -0600 Subject: [PATCH 02/24] Create directory for Spack user scope configuration --- containers/debian/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/containers/debian/Dockerfile b/containers/debian/Dockerfile index 4546e083..2bc0586b 100644 --- a/containers/debian/Dockerfile +++ b/containers/debian/Dockerfile @@ -239,6 +239,7 @@ target=${target[${TARGETPLATFORM}]} spack config --scope site add "packages:all:require:[target=${target}]" spack config --scope site add "packages:all:target:[${target}]" spack config blame packages +mkdir -p $HOME/.spack/ spack config --scope user add "config:suppress_gpg_warnings:true" spack config --scope user add "config:build_jobs:${jobs}" spack config --scope user add "config:db_lock_timeout:${jobs}00" From 020b020617cf4804a25f9116eb251a00b957a960 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 13:50:41 -0600 Subject: [PATCH 03/24] fix: concretize: unify: when_possible for new compiler treatment --- spack-environment/ci/spack.yaml | 2 ++ spack-environment/xl/spack.yaml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/spack-environment/ci/spack.yaml b/spack-environment/ci/spack.yaml index eeb95abf..047eda5f 100644 --- a/spack-environment/ci/spack.yaml +++ b/spack-environment/ci/spack.yaml @@ -3,6 +3,8 @@ spack: - ../concretizer.yaml - ../packages.yaml - ../view.yaml + concretizer: + unify: when_possible # FIXME Using mixture of gcc and clang specs: - acts - actsvg diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index 2384ec06..af35d111 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -4,7 +4,7 @@ spack: - ../packages.yaml - ../view.yaml concretizer: - unify: when_possible # multiple epic versions + unify: when_possible # FIXME Using mixture of gcc and clang specs: - acts - actsvg From 20564fb0a222cee8ff1d9ee65b3d2b3629102588 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 13:52:13 -0600 Subject: [PATCH 04/24] fix: spack cherry-pick: py-flatbuffers: add v25.9.23 --- spack-packages.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spack-packages.sh b/spack-packages.sh index cab6991c..a465de68 100644 --- a/spack-packages.sh +++ b/spack-packages.sh @@ -45,6 +45,7 @@ c4d983b764d7b1ee2b63da79f5f25365ac61ce7a 44da889cc86bb8a5315c729a7c79f2c002c9c951 5c37f836753e8f9683fdc547f3661c5045abcbd1 c75e10845431600b163c597545bd099e427c62f5 +2ba80e697faf80613b038615b2345b7a777cc438 --- ## Optional hash table with comma-separated file list read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ @@ -90,4 +91,5 @@ read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ ## c4d983b764d7b1ee2b63da79f5f25365ac61ce7a: Julia: add v1.11.6 ## 44da889cc86bb8a5315c729a7c79f2c002c9c951: Julia: add v1.11.7 ## 5c37f836753e8f9683fdc547f3661c5045abcbd1: root: require openblas ~ilp64 symbol_suffix=none when ^openblas -## c75e10845431600b163c597545bd099e427c62f5: dd4hep: v1.33 \ No newline at end of file +## c75e10845431600b163c597545bd099e427c62f5: dd4hep: v1.33 +## 2ba80e697faf80613b038615b2345b7a777cc438: py-flatbuffers: add v25.9.23 From c5e3f9ce8880e096cf5a4cf19c3f7730856d5f02 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 13:52:38 -0600 Subject: [PATCH 05/24] fix: packages: py-flatbuffers: require: @25.9.23 for py-setuptools --- spack-environment/packages.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index 7b5be222..9b8cae5d 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -356,6 +356,9 @@ packages: py-epic-capybara: require: - '@git.ef2a8790312b9b697655b28a07b353e601bfa3b8' + py-flatbuffers: + require: + - '@25.9.23:' py-hepunits: require: - '@2.3.2:' From c6ec90cab2774e70e4e9e9e9a4932601e45bc3be Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 18:39:33 -0600 Subject: [PATCH 06/24] doc: add comment indicating reason for ~/.spack --- containers/debian/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/containers/debian/Dockerfile b/containers/debian/Dockerfile index 2bc0586b..28792437 100644 --- a/containers/debian/Dockerfile +++ b/containers/debian/Dockerfile @@ -239,7 +239,7 @@ target=${target[${TARGETPLATFORM}]} spack config --scope site add "packages:all:require:[target=${target}]" spack config --scope site add "packages:all:target:[${target}]" spack config blame packages -mkdir -p $HOME/.spack/ +mkdir -p $HOME/.spack/ # https://github.com/spack/spack/issues/51564 spack config --scope user add "config:suppress_gpg_warnings:true" spack config --scope user add "config:build_jobs:${jobs}" spack config --scope user add "config:db_lock_timeout:${jobs}00" From 0bfb8a836587c41996fde0722191e09b031cbc86 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 18:39:53 -0600 Subject: [PATCH 07/24] fix: add extra hinting for dd4hep to avoid duplication --- spack-environment/ci/spack.yaml | 4 ++-- spack-environment/xl/spack.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spack-environment/ci/spack.yaml b/spack-environment/ci/spack.yaml index 047eda5f..e289136e 100644 --- a/spack-environment/ci/spack.yaml +++ b/spack-environment/ci/spack.yaml @@ -11,7 +11,7 @@ spack: - afterburner - cmake - covfie - - dd4hep -ddeve + - dd4hep -ddeve -utilityapps - edm4hep - eigen - fastjet @@ -31,7 +31,7 @@ spack: - iwyu - jana2 - nopayloadclient - - npsim -geocad + - npsim -geocad ^dd4hep -ddeve -utilityapps - onnx - osg-ca-certs - podio diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index af35d111..47712942 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -23,7 +23,7 @@ spack: - cppcoro - dawn - dawncut - - dd4hep +ddeve + - dd4hep +ddeve +utilityapps - east - edm4hep - eic-smear @@ -60,7 +60,7 @@ spack: - nano - ninja - nopayloadclient - - npsim + - npsim ^dd4hep +ddeve +utilityapps - onnx - opencascade - osg-ca-certs From 275a1baf55a6683daca01485f9cbf8198f012940 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 19:29:01 -0600 Subject: [PATCH 08/24] Disable fail-fast in build-push workflow --- .github/workflows/build-push.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-push.yml b/.github/workflows/build-push.yml index 4c102408..8f8d28cb 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -71,6 +71,7 @@ jobs: PLATFORM: linux/arm64 runner: ubuntu-24.04-arm arch: arm64 + fail-fast: false steps: - name: Checkout uses: actions/checkout@v4 @@ -297,6 +298,7 @@ jobs: - arch: arm64 runner: ubuntu-24.04-arm PLATFORM: linux/arm64 + fail-fast: false steps: - name: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@v1.3.1 From fdeb63c9ca82d25711eba154bad2d924ec588ce4 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 20:51:33 -0600 Subject: [PATCH 09/24] fix: add extra hinting for dd4hep to avoid duplication --- spack-environment/ci/spack.yaml | 2 +- spack-environment/xl/spack.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spack-environment/ci/spack.yaml b/spack-environment/ci/spack.yaml index e289136e..a3c0acf2 100644 --- a/spack-environment/ci/spack.yaml +++ b/spack-environment/ci/spack.yaml @@ -6,7 +6,7 @@ spack: concretizer: unify: when_possible # FIXME Using mixture of gcc and clang specs: - - acts + - acts ^dd4hep -ddeve -utilityapps - actsvg - afterburner - cmake diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index 47712942..39983364 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -6,7 +6,7 @@ spack: concretizer: unify: when_possible # FIXME Using mixture of gcc and clang specs: - - acts + - acts ^dd4hep +ddeve +utilityapps - actsvg - afterburner - autoconf From 62a7f90c33f5be4dd6a6fbe41675bfff2b0f19f0 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 19 Nov 2025 21:31:37 -0600 Subject: [PATCH 10/24] fix: mv spec hints to package section --- spack-environment/ci/spack.yaml | 10 +++++++--- spack-environment/xl/spack.yaml | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/spack-environment/ci/spack.yaml b/spack-environment/ci/spack.yaml index a3c0acf2..f2328191 100644 --- a/spack-environment/ci/spack.yaml +++ b/spack-environment/ci/spack.yaml @@ -6,12 +6,12 @@ spack: concretizer: unify: when_possible # FIXME Using mixture of gcc and clang specs: - - acts ^dd4hep -ddeve -utilityapps + - acts - actsvg - afterburner - cmake - covfie - - dd4hep -ddeve -utilityapps + - dd4hep - edm4hep - eigen - fastjet @@ -31,7 +31,7 @@ spack: - iwyu - jana2 - nopayloadclient - - npsim -geocad ^dd4hep -ddeve -utilityapps + - npsim -geocad - onnx - osg-ca-certs - podio @@ -72,3 +72,7 @@ spack: - snakemake - spdlog - xrootd + packages: + dd4hep: + require: + - -ddeve -utilityapps diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index 39983364..af2f12a5 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -6,7 +6,7 @@ spack: concretizer: unify: when_possible # FIXME Using mixture of gcc and clang specs: - - acts ^dd4hep +ddeve +utilityapps + - acts - actsvg - afterburner - autoconf @@ -23,7 +23,7 @@ spack: - cppcoro - dawn - dawncut - - dd4hep +ddeve +utilityapps + - dd4hep - east - edm4hep - eic-smear @@ -60,7 +60,7 @@ spack: - nano - ninja - nopayloadclient - - npsim ^dd4hep +ddeve +utilityapps + - npsim - onnx - opencascade - osg-ca-certs @@ -127,3 +127,7 @@ spack: - valgrind - xrootd - xeyes + packages: + dd4hep: + require: + - +ddeve +utilityapps From 654b1d0a909a26337955c8a8a3610811bae5af68 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 20 Nov 2025 11:29:18 -0600 Subject: [PATCH 11/24] fix: separate root requirements and apply per environment --- spack-environment/ci/spack.yaml | 7 ++----- spack-environment/packages_root_with_opengl.yaml | 4 ++++ spack-environment/packages_root_without_opengl.yaml | 4 ++++ spack-environment/xl/spack.yaml | 7 ++----- 4 files changed, 12 insertions(+), 10 deletions(-) create mode 100644 spack-environment/packages_root_with_opengl.yaml create mode 100644 spack-environment/packages_root_without_opengl.yaml diff --git a/spack-environment/ci/spack.yaml b/spack-environment/ci/spack.yaml index f2328191..01191362 100644 --- a/spack-environment/ci/spack.yaml +++ b/spack-environment/ci/spack.yaml @@ -2,6 +2,7 @@ spack: include: - ../concretizer.yaml - ../packages.yaml + - ../packages_root_without_opengl.yaml - ../view.yaml concretizer: unify: when_possible # FIXME Using mixture of gcc and clang @@ -68,11 +69,7 @@ spack: - py-toml - py-uproot - py-vector - - root -opengl -webgui + - root - snakemake - spdlog - xrootd - packages: - dd4hep: - require: - - -ddeve -utilityapps diff --git a/spack-environment/packages_root_with_opengl.yaml b/spack-environment/packages_root_with_opengl.yaml new file mode 100644 index 00000000..ced3cc10 --- /dev/null +++ b/spack-environment/packages_root_with_opengl.yaml @@ -0,0 +1,4 @@ +packages: + root: + require: + - +opengl +webgui diff --git a/spack-environment/packages_root_without_opengl.yaml b/spack-environment/packages_root_without_opengl.yaml new file mode 100644 index 00000000..e57a100c --- /dev/null +++ b/spack-environment/packages_root_without_opengl.yaml @@ -0,0 +1,4 @@ +packages: + root: + require: + - ~opengl ~webgui diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index af2f12a5..fe57b784 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -2,6 +2,7 @@ spack: include: - ../concretizer.yaml - ../packages.yaml + - ../packages_root_with_opengl.yaml - ../view.yaml concretizer: unify: when_possible # FIXME Using mixture of gcc and clang @@ -116,7 +117,7 @@ spack: - py-wurlitzer - py-yapf - rivet - - root +opengl +webgui +x + - root - sherpa - simsipm - slurm sysconfdir=/etc/slurm @@ -127,7 +128,3 @@ spack: - valgrind - xrootd - xeyes - packages: - dd4hep: - require: - - +ddeve +utilityapps From 54db1ce16ea91d812e7edf4a30aa6498d5b62732 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 20 Nov 2025 12:52:30 -0600 Subject: [PATCH 12/24] fix: avoid py-urllib3 where not desired --- spack-environment/packages.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index 9b8cae5d..f77cd06e 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -350,6 +350,10 @@ packages: py-dask: require: - '@2024.7.1:' + - '^py-urllib3@2.3.0:' # avoid py-urllib3 needed by pyppeteer + py-dask-awkward: + require: + - '^py-urllib3@2.3.0:' # avoid py-urllib3 needed by pyppeteer py-dask-histogram: require: - '@2025.2.0:' @@ -439,6 +443,9 @@ packages: py-pyyaml: require: - '@6.0.2:' + py-requests: + require: + - '^py-urllib3@2.3.0:' # avoid py-urllib3 needed by pyppeteer py-rucio-clients: require: - '@37.3.0:' From 534f0804c6d9c3b96bb75767806c73378f6380e9 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 20 Nov 2025 16:07:23 -0600 Subject: [PATCH 13/24] fix: build argument for spack duplicates --- containers/eic/Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/containers/eic/Dockerfile b/containers/eic/Dockerfile index 833e3040..51053729 100644 --- a/containers/eic/Dockerfile +++ b/containers/eic/Dockerfile @@ -46,6 +46,7 @@ ARG ENV=xl ENV SPACK_ENV=/opt/spack-environment/${ENV} ARG SPACK_FLAGS="--backtrace" ARG SPACK_INSTALL_FLAGS="--no-check-signature --show-log-on-error --yes-to-all" +ARG SPACK_DUPLICATE_ALLOWLIST="epic|llvm|py-setuptools|py-urllib3|py-dask|py-dask-awkward|py-dask-histogram|py-distributed|py-requests" ENV SPACK_COLOR="always" ENV GIT_TERMINAL_PROMPT=0 @@ -57,7 +58,7 @@ spack external find --not-buildable --scope env:${SPACK_ENV} --path /usr/local/c spack external find --scope env:${SPACK_ENV} llvm spack concretize --force spack --color=never find --long --no-groups --show-concretized --format "{name}" \ -| uniq -D -f2 | grep -v -w -e "\(epic\|llvm\|py-setuptools\|py-urllib3\)" \ +| uniq -D -f2 | grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" \ | tee /tmp/duplicates.txt if [ -s /tmp/duplicates.txt ] ; then echo "Duplicate packages found" @@ -193,7 +194,7 @@ if [ -n "${JUGGLER_SHA}" ] ; then fi spack concretize --force spack --color=never find --long --no-groups --show-concretized --format "{name}" \ -| uniq -D -f2 | grep -v -w -e "\(epic\|llvm\|py-setuptools\|py-urllib3\)" \ +| uniq -D -f2 | grep -Evw "(${SPACK_DUPLICATE_ALLOWLIST})" \ | tee /tmp/duplicates.txt if [ -s /tmp/duplicates.txt ] ; then echo "Duplicate packages found" From f240f0b3d443392f15433dd8fc0463e0a416cc80 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 20 Nov 2025 16:14:57 -0600 Subject: [PATCH 14/24] fix: remove py-urllib3 version requirements again --- spack-environment/packages.yaml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index f77cd06e..9b8cae5d 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -350,10 +350,6 @@ packages: py-dask: require: - '@2024.7.1:' - - '^py-urllib3@2.3.0:' # avoid py-urllib3 needed by pyppeteer - py-dask-awkward: - require: - - '^py-urllib3@2.3.0:' # avoid py-urllib3 needed by pyppeteer py-dask-histogram: require: - '@2025.2.0:' @@ -443,9 +439,6 @@ packages: py-pyyaml: require: - '@6.0.2:' - py-requests: - require: - - '^py-urllib3@2.3.0:' # avoid py-urllib3 needed by pyppeteer py-rucio-clients: require: - '@37.3.0:' From fac818744bb6ac384709ddb1db46aa909b5df3a8 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 24 Nov 2025 20:48:17 -0600 Subject: [PATCH 15/24] fix: packages: pyrobird ~batch Removed batch requirement for pyrobird and added xrootd. --- spack-environment/packages.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index 9b8cae5d..2f7b5afa 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -330,7 +330,8 @@ packages: pyrobird: require: - '@0.1.23:' - - +batch +xrootd + - +xrootd + - ~batch # until 0.2.6, +batch requires py-pyppeteer which requires py-urllib3@1 pythia8: require: - '@8.315' From a9bb4e3f320e8e54b09c3717666cea660b3651f6 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Tue, 25 Nov 2025 16:08:51 -0600 Subject: [PATCH 16/24] Remove llvm gold requirement from packages.yaml Removed llvm package requirement for gold. --- spack-environment/packages.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index 2f7b5afa..f9920f41 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -251,9 +251,6 @@ packages: require: - '@6.5.5' - +python - llvm: - require: - - ~gold madx: require: - '@5.08.01:' From 2715ad471862372a1251293a2d30cbd121b9d1cc Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Tue, 25 Nov 2025 19:59:13 -0600 Subject: [PATCH 17/24] fix: concretizer: unify: true in ci and xl --- spack-environment/ci/spack.yaml | 2 -- spack-environment/xl/spack.yaml | 2 -- 2 files changed, 4 deletions(-) diff --git a/spack-environment/ci/spack.yaml b/spack-environment/ci/spack.yaml index 01191362..33faa091 100644 --- a/spack-environment/ci/spack.yaml +++ b/spack-environment/ci/spack.yaml @@ -4,8 +4,6 @@ spack: - ../packages.yaml - ../packages_root_without_opengl.yaml - ../view.yaml - concretizer: - unify: when_possible # FIXME Using mixture of gcc and clang specs: - acts - actsvg diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index fe57b784..b6873026 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -4,8 +4,6 @@ spack: - ../packages.yaml - ../packages_root_with_opengl.yaml - ../view.yaml - concretizer: - unify: when_possible # FIXME Using mixture of gcc and clang specs: - acts - actsvg From 15ec3995903970738668ca63891a5e7ded6fc3c1 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Tue, 25 Nov 2025 20:19:45 -0600 Subject: [PATCH 18/24] Add docs on duplicate allow list Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- containers/eic/Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/containers/eic/Dockerfile b/containers/eic/Dockerfile index 51053729..001cf933 100644 --- a/containers/eic/Dockerfile +++ b/containers/eic/Dockerfile @@ -46,6 +46,13 @@ ARG ENV=xl ENV SPACK_ENV=/opt/spack-environment/${ENV} ARG SPACK_FLAGS="--backtrace" ARG SPACK_INSTALL_FLAGS="--no-check-signature --show-log-on-error --yes-to-all" +# The SPACK_DUPLICATE_ALLOWLIST specifies packages that are allowed to have duplicate concretizations. +# This is necessary for certain packages (e.g., epic, llvm, py-setuptools, py-urllib3, py-dask) due to +# their complex dependency trees or compatibility requirements. The new additions (py-dask-awkward, +# py-dask-histogram, py-distributed, py-requests) are included because they may be required in multiple +# versions or configurations by different packages in the environment, and allowing duplicates prevents +# build failures or conflicts during concretization. This list should be reviewed periodically to ensure +# only necessary packages are included. ARG SPACK_DUPLICATE_ALLOWLIST="epic|llvm|py-setuptools|py-urllib3|py-dask|py-dask-awkward|py-dask-histogram|py-distributed|py-requests" ENV SPACK_COLOR="always" ENV GIT_TERMINAL_PROMPT=0 From 7c160d3fdfd868db77930279ff16c4bbe9fbf8c7 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Tue, 25 Nov 2025 20:20:31 -0600 Subject: [PATCH 19/24] Add +x to root with opengl Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- spack-environment/packages_root_with_opengl.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack-environment/packages_root_with_opengl.yaml b/spack-environment/packages_root_with_opengl.yaml index ced3cc10..5c27ef16 100644 --- a/spack-environment/packages_root_with_opengl.yaml +++ b/spack-environment/packages_root_with_opengl.yaml @@ -1,4 +1,4 @@ packages: root: require: - - +opengl +webgui + - +opengl +webgui +x From 8061f8578bfbae6011ce32d02a8aba6a4cc7e3b2 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 26 Nov 2025 08:12:49 -0600 Subject: [PATCH 20/24] Add root ~x requirement to root_without_opengl --- spack-environment/packages_root_without_opengl.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack-environment/packages_root_without_opengl.yaml b/spack-environment/packages_root_without_opengl.yaml index e57a100c..17275e55 100644 --- a/spack-environment/packages_root_without_opengl.yaml +++ b/spack-environment/packages_root_without_opengl.yaml @@ -1,4 +1,4 @@ packages: root: require: - - ~opengl ~webgui + - ~opengl ~webgui ~x From 620b1e18e2abc452d25cfbf3b831dda669fe0507 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 26 Nov 2025 08:26:15 -0600 Subject: [PATCH 21/24] Update ~/.spack comment with more context Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- containers/debian/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/containers/debian/Dockerfile b/containers/debian/Dockerfile index 28792437..7a2bdbad 100644 --- a/containers/debian/Dockerfile +++ b/containers/debian/Dockerfile @@ -239,7 +239,7 @@ target=${target[${TARGETPLATFORM}]} spack config --scope site add "packages:all:require:[target=${target}]" spack config --scope site add "packages:all:target:[${target}]" spack config blame packages -mkdir -p $HOME/.spack/ # https://github.com/spack/spack/issues/51564 +mkdir -p $HOME/.spack/ # workaround for Spack not creating config directory automatically in some versions (see https://github.com/spack/spack/issues/51564) spack config --scope user add "config:suppress_gpg_warnings:true" spack config --scope user add "config:build_jobs:${jobs}" spack config --scope user add "config:db_lock_timeout:${jobs}00" From 484734490b2dbea0d99b3a6f16de69aaafb18b82 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 27 Nov 2025 13:58:39 -0600 Subject: [PATCH 22/24] Add spack clean command to install step in Dockerfile --- containers/eic/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/containers/eic/Dockerfile b/containers/eic/Dockerfile index 001cf933..fc47722b 100644 --- a/containers/eic/Dockerfile +++ b/containers/eic/Dockerfile @@ -106,6 +106,7 @@ export CCACHE_DIR=/ccache mkdir -p /var/cache/spack/blobs/sha256/ find /var/cache/spack/blobs/sha256/ -ignore_readdir_race -atime +7 -delete spack ${SPACK_FLAGS} install ${SPACK_INSTALL_FLAGS} +spack clean --downloads --stage ccache --show-stats ccache --zero-stats EOF @@ -240,6 +241,7 @@ RUN --mount=type=cache,target=/ccache,id=ccache-${TARGETPLATFORM} \ set -e export CCACHE_DIR=/ccache spack ${SPACK_FLAGS} install ${SPACK_INSTALL_FLAGS} +spack clean --downloads --stage spack gc --yes-to-all go go-bootstrap rust rust-bootstrap py-setuptools-rust py-maturin ccache --show-stats ccache --zero-stats From 8f0e3e5b42991107e64f6e40dda88e3fc047c6e7 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 27 Nov 2025 18:35:24 -0600 Subject: [PATCH 23/24] fix: packages: root: remove +/~x in root_with(out)_opengl --- spack-environment/packages_root_with_opengl.yaml | 2 +- spack-environment/packages_root_without_opengl.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spack-environment/packages_root_with_opengl.yaml b/spack-environment/packages_root_with_opengl.yaml index 5c27ef16..ced3cc10 100644 --- a/spack-environment/packages_root_with_opengl.yaml +++ b/spack-environment/packages_root_with_opengl.yaml @@ -1,4 +1,4 @@ packages: root: require: - - +opengl +webgui +x + - +opengl +webgui diff --git a/spack-environment/packages_root_without_opengl.yaml b/spack-environment/packages_root_without_opengl.yaml index 17275e55..e57a100c 100644 --- a/spack-environment/packages_root_without_opengl.yaml +++ b/spack-environment/packages_root_without_opengl.yaml @@ -1,4 +1,4 @@ packages: root: require: - - ~opengl ~webgui ~x + - ~opengl ~webgui From 9c84e7491732388db76b70b71135fa44bfafbfd0 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 27 Nov 2025 18:39:18 -0600 Subject: [PATCH 24/24] fix: packages: pyrobird: ~batch with when clause --- spack-environment/packages.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index f9920f41..b8d53faa 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -328,7 +328,9 @@ packages: require: - '@0.1.23:' - +xrootd - - ~batch # until 0.2.6, +batch requires py-pyppeteer which requires py-urllib3@1 + - spec: ~batch + when: '@:0.2.6' + message: "through at least 0.2.6, +batch requires py-pyppeteer which requires py-urllib3@1" pythia8: require: - '@8.315'