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 diff --git a/containers/debian/Dockerfile b/containers/debian/Dockerfile index 4546e083..28792437 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/ # 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" 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" diff --git a/spack-environment/ci/spack.yaml b/spack-environment/ci/spack.yaml index eeb95abf..01191362 100644 --- a/spack-environment/ci/spack.yaml +++ b/spack-environment/ci/spack.yaml @@ -2,14 +2,17 @@ spack: include: - ../concretizer.yaml - ../packages.yaml + - ../packages_root_without_opengl.yaml - ../view.yaml + concretizer: + unify: when_possible # FIXME Using mixture of gcc and clang specs: - acts - actsvg - afterburner - cmake - covfie - - dd4hep -ddeve + - dd4hep - edm4hep - eigen - fastjet @@ -66,7 +69,7 @@ spack: - py-toml - py-uproot - py-vector - - root -opengl -webgui + - root - snakemake - spdlog - xrootd diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index b13d8bfd..5dcab29c 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' @@ -356,6 +357,9 @@ packages: py-epic-capybara: require: - '@git.ef2a8790312b9b697655b28a07b353e601bfa3b8' + py-flatbuffers: + require: + - '@25.9.23:' py-hepunits: require: - '@2.3.2:' 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 2384ec06..fe57b784 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -2,9 +2,10 @@ spack: include: - ../concretizer.yaml - ../packages.yaml + - ../packages_root_with_opengl.yaml - ../view.yaml concretizer: - unify: when_possible # multiple epic versions + unify: when_possible # FIXME Using mixture of gcc and clang specs: - acts - actsvg @@ -23,7 +24,7 @@ spack: - cppcoro - dawn - dawncut - - dd4hep +ddeve + - dd4hep - east - edm4hep - eic-smear @@ -116,7 +117,7 @@ spack: - py-wurlitzer - py-yapf - rivet - - root +opengl +webgui +x + - root - sherpa - simsipm - slurm sysconfdir=/etc/slurm diff --git a/spack-packages.sh b/spack-packages.sh index c304adae..8d41f0a8 100644 --- a/spack-packages.sh +++ b/spack-packages.sh @@ -44,6 +44,7 @@ bc25e5eb2f8f7a8733cdc10d92e9787358c82cfa c4d983b764d7b1ee2b63da79f5f25365ac61ce7a 44da889cc86bb8a5315c729a7c79f2c002c9c951 5c37f836753e8f9683fdc547f3661c5045abcbd1 +4f8d5f08c5b74e3be124f6180515cd78080d3b9f --- ## Optional hash table with comma-separated file list read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ @@ -89,3 +90,4 @@ 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 +## 4f8d5f08c5b74e3be124f6180515cd78080d3b9f: py-flatbuffers: add v25.9.23 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 <<- \