Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • containers/eic_container
  • wdconinc/eic_container
  • tooba/eic_container
3 results
Show changes
Commits on Source (40)
......@@ -2,11 +2,10 @@ image: alpine
variables:
## External images
DOCKER_IMAGE: docker.io/docker:25.0.5
DOCKER_IMAGE: docker.io/docker:27.2.0
SINGULARITY_IMAGE: quay.io/singularity/singularity:v3.11.5
## Default versions are specified in packages.yaml but can be overridden
## note: nightly builds will always use the master/main branch
EDM4EIC_VERSION: ""
EICRECON_VERSION: ""
EPIC_VERSION: ""
......@@ -40,6 +39,8 @@ variables:
## Internal tag used for the CI
INTERNAL_TAG: "pipeline-${CI_PIPELINE_ID}"
PIPELINE_NAME: "$CI_COMMIT_TITLE"
stages:
- status-pending
- config
......@@ -269,8 +270,10 @@ base:
needs:
- version
script:
- attempts=0
- nocache=""
- while !
docker buildx build --push ${BUILD_OPTIONS}
docker buildx build --push ${BUILD_OPTIONS} ${nocache}
--tag ${CI_REGISTRY}/${CI_PROJECT_PATH}/${BUILD_IMAGE}:${INTERNAL_TAG}
${EXPORT_TAG:+
${CI_PUSH:+--tag ${CI_REGISTRY}/${CI_PROJECT_PATH}/${BUILD_IMAGE}:${EXPORT_TAG}}
......@@ -286,10 +289,15 @@ base:
2>&1 | tee build.log
; do
if grep "unknown blob" build.log ; then
BUILD_OPTIONS="--no-cache ${BUILD_OPTIONS}" ;
nocache="--no-cache" ;
else
exit 1 ;
fi
fi ;
if test ${attempts} -ge 1 ; then
echo "Failed to build on second attempt!" ;
exit 1 ;
fi ;
let attempts=$attempts+1 ;
done
......@@ -353,8 +361,10 @@ eic:
source eic-spack.sh ;
export SPACK_VERSION ;
cat mirrors.yaml.in | envsubst > mirrors.yaml
- attempts=0
- nocache=""
- while !
docker buildx build --push ${BUILD_OPTIONS}
docker buildx build --push ${BUILD_OPTIONS} ${nocache}
--tag ${CI_REGISTRY}/${CI_PROJECT_PATH}/${BUILD_IMAGE}${ENV}:${INTERNAL_TAG}-${BUILD_TYPE}
--tag ${CI_REGISTRY}/${CI_PROJECT_PATH}/${BUILD_IMAGE/eic/jug}${ENV}:${INTERNAL_TAG}-${BUILD_TYPE}
${EXPORT_TAG:+
......@@ -427,10 +437,10 @@ eic:
${JUGGLER_VERSION:+--build-arg JUGGLER_VERSION=${JUGGLER_VERSION}}
}
${IF_BUILD_NIGHTLY+
--build-arg EDM4EIC_VERSION=main
--build-arg EICRECON_VERSION=main
--build-arg EPIC_VERSION=main
--build-arg JUGGLER_VERSION=main
--build-arg EDM4EIC_VERSION=${EDM4EIC_VERSION:-main}
--build-arg EICRECON_VERSION=${EICRECON_VERSION:-main}
--build-arg EPIC_VERSION=${EPIC_VERSION:-main}
--build-arg JUGGLER_VERSION=${JUGGLER_VERSION:-main}
}
--build-arg ENV=${ENV}
--build-arg jobs=${JOBS}
......@@ -441,10 +451,15 @@ eic:
2>&1 | tee build.log
; do
if grep "unknown blob" build.log ; then
BUILD_OPTIONS="--no-cache ${BUILD_OPTIONS}" ;
nocache="--no-cache" ;
else
exit 1 ;
fi
fi ;
if test ${attempts} -ge 1 ; then
echo "Failed to build on second attempt!" ;
exit 1 ;
fi ;
let attempts=$attempts+1 ;
done
.singularity:
......@@ -507,7 +522,7 @@ jug_xl:singularity:nightly:
DETECTOR_REPOSITORYURL: 'https://github.com/eic/epic.git'
BENCHMARKS_CONTAINER: "eic_xl"
BENCHMARKS_REGISTRY: "$CI_REGISTRY_IMAGE"
PIPELINE_NAME: "$PIPELINE_NAME"
PIPELINE_NAME: "eic_container: $CI_PIPELINE_NAME"
allow_failure: false
benchmarks:detector:default:
......@@ -681,7 +696,9 @@ clean_pipeline:
--filter=reference=${registry}/*:pipeline-*
--format "{{.ID}} {{.Repository}} {{.Tag}} {{.CreatedSince}}" ;
done
- for registry in
- # prevent grep exit code 1 when no match
mygrep() { grep "$@" || test $? = 1; } ;
for registry in
eicweb
eicweb.phy.anl.gov:4567/containers/eic_container
; do
......@@ -689,8 +706,8 @@ clean_pipeline:
--filter=reference=${registry}/*:pipeline-*
--format "{{.ID}} {{.Repository}} {{.Tag}} {{.CreatedSince}}" ;
done
| grep -v ${CI_PIPELINE_ID}
| grep -v "hours ago"
| mygrep -v ${CI_PIPELINE_ID}
| mygrep -v "hours ago"
| sed -n -E 's/pipeline-([0-9]+)(-.*){0,1}\s+.*$/\1 &/p'
| while read id repository pipeline_id tag N durations ago ; do
echo "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/pipelines/${pipeline_id}" ;
......
......@@ -6,7 +6,7 @@ ARG RUNTIME_IMAGE="debian_stable_base"
ARG INTERNAL_TAG="testing"
## ========================================================================================
## STAGE0: spack image
## STAGE 0: spack image
## EIC spack image with spack and eic-spack repositories
## ========================================================================================
FROM ${DOCKER_REGISTRY}${BUILDER_IMAGE}:${INTERNAL_TAG} as spack
......@@ -56,6 +56,7 @@ if [ -n "${SPACK_CHERRYPICKS}" ] ; then
fi
done
fi
git -C $SPACK_ROOT gc --prune=all --aggressive
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
......@@ -132,7 +133,7 @@ EOF
## ========================================================================================
## STAGE1: builder
## STAGE 1: builder
## EIC builder image with spack environment
## ========================================================================================
FROM spack as builder
......@@ -157,11 +158,12 @@ make --jobs ${jobs} --keep-going --directory /opt/spack-environment \
SPACK_ENV=${SPACK_ENV} \
BUILDCACHE_OCI_PROMPT="eicweb" \
BUILDCACHE_OCI_FINAL="ghcr"
spack find --implicit --no-groups \
spack gc --yes-to-all
spack find --long --no-groups \
| sed -e '1,/Installed packages/d;s/\([^@]*\).*/\1/g' \
| uniq -d | grep -v py-pip | grep -v py-cython \
| uniq -D -f1 | grep -v -w -e "\(epic\|py-pip\|py-cython\)" \
| tee /tmp/duplicates.txt
test -s /tmp/duplicates.txt && exit 1
test -s /tmp/duplicates.txt && ( cat /tmp/duplicates.txt | while read hash spec ; do spack spec --long /${hash} ; done ) && exit 1
ccache --show-stats
ccache --zero-stats
EOF
......@@ -208,11 +210,12 @@ spack concretize --fresh --force
make --jobs ${jobs} --keep-going --directory /opt/spack-environment \
SPACK_ENV=${SPACK_ENV} \
BUILDCACHE_OCI_FINAL="eicweb"
spack find --implicit --no-groups \
spack gc --yes-to-all
spack find --long --no-groups \
| sed -e '1,/Installed packages/d;s/\([^@]*\).*/\1/g' \
| uniq -d | grep -v py-pip | grep -v py-cython \
| uniq -D -f1 | grep -v -w -e "\(epic\|py-pip\|py-cython\)" \
| tee /tmp/duplicates.txt
test -s /tmp/duplicates.txt && exit 1
test -s /tmp/duplicates.txt && ( cat /tmp/duplicates.txt | while read hash spec ; do spack spec --long /${hash} ; done ) && exit 1
ccache --show-stats
ccache --zero-stats
EOF
......@@ -241,35 +244,16 @@ set -e
spack env activate --sh --dir ${SPACK_ENV} > /etc/profile.d/z10_spack_environment.sh
EOF
## make sure we have the entrypoints setup correctly
ENTRYPOINT []
CMD ["bash", "--rcfile", "/etc/profile", "-l"]
USER 0
WORKDIR /
## ========================================================================================
## STAGE 2: staging image with unnecessariy packages removed and stripped binaries
## ========================================================================================
FROM builder as staging
# Garbage collect in environment
RUN spack -e ${SPACK_ENV} gc -y
# Garbage collect in git
#RUN git -C $SPACK_ROOT gc --prune=all --aggressive
## Bugfix to address issues loading the Qt5 libraries on Linux kernels prior to 3.15
## See
#https://askubuntu.com/questions/1034313/ubuntu-18-4-libqt5core-so-5-cannot-open-shared-object-file-no-such-file-or-dir
## and links therin for more info
## Fixup /opt/detector/epic-git.fcf90937193c983c0af2acf1251e01f2e2c3a259_main
RUN <<EOF
set -ex
if [ -f /opt/local/lib/libQt5Core.so ] ; then
strip --remove-section=.note.ABI-tag /opt/local/lib/libQt5Core.so
fi
shopt -s nullglob
cd /opt/detector
for detector in epic-git.*_* ; do
ln -s ${detector} epic-${detector/*_/}
done
EOF
## Fill jug_info
RUN <<EOF
set -ex
spack debug report | sed "s/^/ - /" | sed "s/\* \*\*//" | sed "s/\*\*//" >> /etc/jug_info
......@@ -286,15 +270,6 @@ COPY profile.d/a00_cleanup.sh /etc/profile.d
COPY profile.d/z11_jug_env.sh /etc/profile.d
COPY singularity.d /.singularity.d
## Fixup /opt/detector/epic-git.fcf90937193c983c0af2acf1251e01f2e2c3a259_main
RUN <<EOF
shopt -s nullglob
cd /opt/detector
for detector in epic-git.*_* ; do
ln -s ${detector} epic-${detector/*_/}
done
EOF
## Add minio client into /opt/local/bin
ADD --chmod=0755 https://dl.min.io/client/mc/release/linux-amd64/mc /opt/local/bin/mc-amd64
ADD --chmod=0755 https://dl.min.io/client/mc/release/linux-arm64/mc /opt/local/bin/mc-arm64
......@@ -308,9 +283,15 @@ for t in ${target[*]} ; do
done
EOF
## make sure we have the entrypoints setup correctly
ENTRYPOINT []
CMD ["bash", "--rcfile", "/etc/profile", "-l"]
USER 0
WORKDIR /
## ========================================================================================
## STAGE 3
## STAGE 2
## Lean target image
## ========================================================================================
FROM ${DOCKER_REGISTRY}${RUNTIME_IMAGE}:${INTERNAL_TAG} as runtime
......@@ -320,17 +301,17 @@ LABEL maintainer="Sylvester Joosten <sjoosten@anl.gov>" \
name="jug_xl" \
march="$TARGETPLATFORM"
## copy over everything we need from staging
COPY --from=staging /opt/spack /opt/spack
COPY --from=staging /opt/spack-environment /opt/spack-environment
COPY --from=staging /opt/software /opt/software
COPY --from=staging /opt/._local /opt/._local
COPY --from=staging /opt/._detector /opt/._detector
COPY --from=staging /etc/profile.d /etc/profile.d
COPY --from=staging /etc/jug_info /etc/jug_info
COPY --from=staging /etc/eic-env.sh /etc/eic-env.sh
COPY --from=staging /.singularity.d /.singularity.d
COPY --from=staging /usr/bin/docker-shell /usr/bin/docker-shell
## copy over everything we need from builder
COPY --from=builder /opt/spack /opt/spack
COPY --from=builder /opt/spack-environment /opt/spack-environment
COPY --from=builder /opt/software /opt/software
COPY --from=builder /opt/._local /opt/._local
COPY --from=builder /opt/._detector /opt/._detector
COPY --from=builder /etc/profile.d /etc/profile.d
COPY --from=builder /etc/jug_info /etc/jug_info
COPY --from=builder /etc/eic-env.sh /etc/eic-env.sh
COPY --from=builder /.singularity.d /.singularity.d
COPY --from=builder /usr/bin/docker-shell /usr/bin/docker-shell
## Use spack entrypoint. NOTE: Requires `set -ex` in all multi-line scripts!
ENV SPACK_ROOT=/opt/spack
......
......@@ -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="c8429aea4cb76c3dc40b301b4a5b375976fce674"
EICSPACK_VERSION="bd66c9c7ff9f720567f12f13b49233198efa5132"
......@@ -22,7 +22,7 @@ mirrors:
- ${GITHUB_REGISTRY_USER}
- ${GITHUB_REGISTRY_TOKEN}
eics3rw:
autopush: true
autopush: false
signed: false
fetch:
url: s3://eictest/EPIC/spack/${SPACK_VERSION}
......
MAKEFLAGS += -Orecurse
SPACK ?= spack
SPACK ?= spack --backtrace
SPACK_INSTALL_FLAGS += --no-check-signature --show-log-on-error
export SPACK_COLOR = always
......@@ -22,15 +22,15 @@ include $(SPACK_ENV)/spack.mk
endif
$(SPACK_ENV)/push: $(addprefix $(SPACK_ENV)/push/,$($(SPACK_ENV)/SPACK_PACKAGE_IDS))
$(foreach buildcache, $(BUILDCACHE_S3_FINAL), $(SPACK) buildcache push --unsigned $(buildcache) ;)
$(foreach buildcache, $(BUILDCACHE_S3_FINAL), $(SPACK) buildcache push --private --unsigned $(buildcache) ;)
$(foreach buildcache, $(BUILDCACHE_S3_FINAL), $(SPACK) buildcache update-index $(buildcache) ;)
$(foreach buildcache, $(BUILDCACHE_S3_PROMPT), $(SPACK) buildcache update-index $(buildcache) ;)
$(foreach buildcache, $(BUILDCACHE_OCI_FINAL), $(SPACK) buildcache push --unsigned --base-image $(BUILDCACHE_OCI_BASE_IMAGE) $(buildcache) | grep -v "Using cached archive" ;)
$(foreach buildcache, $(BUILDCACHE_OCI_FINAL), $(SPACK) buildcache push --private --unsigned --base-image $(BUILDCACHE_OCI_BASE_IMAGE) $(buildcache) | grep -v "Using cached archive" ;)
$(SPACK_ENV)/push/%: $(SPACK_ENV)/install/%
@mkdir -p $(dir $@)
$(foreach buildcache, $(BUILDCACHE_S3_PROMPT), $(SPACK) buildcache push --unsigned --only=package $(buildcache) /$(HASH) ;) # push $(SPEC)
$(foreach buildcache, $(BUILDCACHE_OCI_PROMPT), $(SPACK) buildcache push --unsigned --base-image $(BUILDCACHE_OCI_BASE_IMAGE) $(buildcache) /$(HASH) | grep -v "Using cached archive" ;) # push $(SPEC)
$(foreach buildcache, $(BUILDCACHE_S3_PROMPT), $(SPACK) buildcache push --private --unsigned --only=package $(buildcache) /$(HASH) ;) # push $(SPEC)
$(foreach buildcache, $(BUILDCACHE_OCI_PROMPT), $(SPACK) buildcache push --private --unsigned --base-image $(BUILDCACHE_OCI_BASE_IMAGE) $(buildcache) /$(HASH) | grep -v "Using cached archive" ;) # push $(SPEC)
@touch $@
$(SPACK_ENV)/spack.lock: $(SPACK_ENV)/spack.yaml Makefile
......
......@@ -28,11 +28,11 @@ spack:
- eigen
- emacs
- epic@main # EPIC_VERSION
- epic@24.04.0
- epic@24.05.0
- epic@24.05.2
- epic@24.06.0
- epic@24.07.0
- epic@24.08.0
- fastjet
- fjcontrib
- fmt
......
......@@ -14,12 +14,13 @@ packages:
require:
- '%gcc'
- any_of: [+ipo, '@:']
- any_of: [build_system=cmake, '@:']
- any_of: [build_type=Release, '@:']
- any_of: [^py-pip@23.1.2, '@:']
acts:
require:
- '@31.2.0'
- cxxstd=20 +binaries +dd4hep +edm4hep +examples +fatras +geant4 +identification +json +onnx +podio +python +tgeo
- '%clang'
- '@33.1.0'
- cxxstd=20 +dd4hep +edm4hep +examples +fatras +geant4 +identification +json +onnx +podio +python +tgeo
actsvg:
require:
- '@0.4.26'
......@@ -87,7 +88,7 @@ packages:
- '@656aa3192b097a631ddd1e0380e80c26fd6644a7'
edm4eic:
require:
- '@6.0.1' # EDM4EIC_VERSION
- '@7.0.0' # EDM4EIC_VERSION
- cxxstd=20
edm4hep:
require:
......@@ -103,7 +104,8 @@ packages:
- '@1.1.12'
eicrecon:
require:
- '@1.15.0' # EICRECON_VERSION
- '%clang'
- '@1.17.0' # EICRECON_VERSION
eigen:
require:
- '@3.4.0'
......@@ -127,6 +129,9 @@ packages:
require:
- '@9.1.0'
- +shared cxxstd=17
freetype:
require:
- build_system=autotools
gaudi:
require:
- '@38.1'
......@@ -136,27 +141,31 @@ packages:
- '@12.1'
- -debuginfod
g4ndl:
buildable: False
externals:
- spec: g4ndl@4.7
- spec: g4ndl@4.7.1
prefix: /opt/software/externals/g4ndl
geant4:
require:
- '@11.2.1.east'
- '@11.2.2.east'
- cxxstd=20 -vecgeom +threads -vtk
- any_of: [+opengl +qt +x11, -opengl -qt -x11]
glew:
gettext:
require:
- +libxml2
gl:
require:
- gl=glx
- glx
gloo:
require:
- '@2023-05-19'
graphviz:
require:
- '@8.0.1'
- '@12.1.0'
- +expat +pangocairo
hepmc3:
require:
- '@3.2.7'
- '@3.3.0'
- +python +rootio
heppdt:
require:
......@@ -175,11 +184,11 @@ packages:
- '@0.20'
jana2:
require:
- '@2.2.1-rc1'
- '@2.3.1'
- -ipo +podio +root +zmq
juggler:
require:
- '@14.0.3' # JUGGLER_VERSION
- '@14.2.0' # JUGGLER_VERSION
- cxxstd=20
k4actstracking:
require:
......@@ -251,6 +260,9 @@ packages:
require:
- '@3.0.2'
- +plot
protobuf:
require:
- '@3.21.12'
pythia8:
require:
- '@8.311'
......@@ -272,7 +284,16 @@ packages:
- '@2023.4.1'
py-epic-capybara:
require:
- '@git.c388cecce90d06f2db75e45bb0427816db04c836'
- '@git.c8d357028a96f72215bcba516000ea81db4842a6'
py-hepunits:
require:
- '@2.3.2'
py-hist:
require:
- '@2.6.1'
py-histoprint:
require:
- '@2.4.0'
py-ipython:
require:
- '@8.11.0'
......@@ -315,12 +336,18 @@ packages:
py-pandas:
require:
- '@1.5.3'
py-particle:
require:
- '@0.23.0'
py-pip:
require:
- any_of: ['@23.1.2', '@23.0']
py-pre-commit:
require:
- '@3.3.3'
py-protobuf:
require:
- '@4.21.9'
py-pygithub:
require:
- '@2.1.1'
......@@ -346,25 +373,37 @@ packages:
py-uproot:
require:
- '@5.0.5'
py-vector:
require:
- '@1.4.1'
py-wurlitzer:
require:
- '@3.0.2'
py-yapf:
require:
- '@0.30.0'
qmake:
require:
- qt-base
qt:
require:
- '@5.15.12'
- +opengl
qt-base:
require:
- '@6.7.2'
- +opengl
root:
require:
- '@6.30.02'
- cxxstd=20 +fftw +fortran +gdml +http -ipo +mlp +python +root7 +tmva +tmva-sofie +vc +xrootd +ssl
- any_of: [+opengl +webgui +x, -opengl -webgui -x]
simsipm:
require:
- '@2.0.2'
snakemake:
require:
- '@7.22.0'
- +http +s3
- '@7.32.4'
spdlog:
require:
- '@1.11.0'
......@@ -380,7 +419,7 @@ packages:
- '@3.20.0'
xrootd:
require:
- '@5.6.9'
- '@5.7.0'
- cxxstd=20 -davix +python +scitokens-cpp
zlib-api:
require:
......
view:
default:
root: /opt/local
exclude: [epic]
exclude:
- epic
- py-pip@23.0
link_type: symlink
detectors:
root: /opt/detector
select: [epic]
select:
- epic
projections:
all: '{name}-{version}'
link: roots
......
......@@ -28,17 +28,17 @@ spack:
- eigen
- emacs
- epic@main # EPIC_VERSION
- epic@24.04.0
- epic@24.05.0
- epic@24.05.2
- epic@24.06.0
- epic@24.07.0
- epic@24.08.0
- epic@24.08.1
- epic@24.09.0
- fastjet
- fjcontrib
- fmt
- gaudi
- gdb
- geant4
- geant4 +opengl
- graphviz
- hepmc3
- heppdt
......@@ -68,6 +68,9 @@ spack:
- py-dask
- py-deepdiff
- py-epic-capybara
- py-hepunits
- py-hist
- py-histoprint
- py-ipython
- py-jinja2
- py-jinja2-cli
......@@ -82,6 +85,7 @@ spack:
- py-onnx
- py-onnxruntime
- py-pandas
- py-particle
- py-pip
- py-pre-commit
- py-pycairo
......@@ -91,9 +95,11 @@ spack:
- py-toml
- py-torch
- py-uproot
- py-vector
- py-wurlitzer
- py-yapf
- root +opengl +webgui +x
- simsipm
- snakemake
- spdlog
- stow
......
......@@ -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/v0.19
SPACK_VERSION="v0.22.0"
SPACK_VERSION="v0.22.1"
## Space-separated list of spack cherry-picks
read -r -d '' SPACK_CHERRYPICKS <<- \
......@@ -11,11 +11,24 @@ read -r -d '' SPACK_CHERRYPICKS <<- \
09f75ee426a2e05e0543570821582480ff823ba5
f6d50f790ee8b123f7775429f6ca6394170e6de9
63f6e6079aacc99078386e5c8ff06173841b9595
9bcc43c4c158639fa6cb575c6106595a34682081
9f3e45ddbee24aaa7993e575297827e0aed2e6fe
092dc96e6c87a9c043e4421e1a524e23ec649f60
85f13442d2a7486daba81fdd9a3b6a1182ba11f6
f73d7d2dce226857cbc774e942454bad2992969e
cbab451c1a342523ed75e9be1098615a597a9b59
4fe5f35c2fff6288e4c05e5946798ad2191a2c40
4c60deb9921ff2cbbfa6771f4f63ff812a8a5840
b894acf1fca8eb5cc52d2267b0c4c187065998c0
8b45fa089e24c6ab7de2eaf614977369e69daa54
2d8ca8af6932dfd50204d1e4f6fe587dec7beef5
d3bf1e04fca844abb7c1eeac38dda4e126c81b67
81125c3bd80e71a2e57c7fcff8e02c4b3add5b90
8b2fec61f23a7b8230c0ed0378d90d04d8f590d8
2242da65fdc06e7ac04c43613dc7795164b3a7a3
1dc63dbea6c1d42aabf0e14b51439dcc46423e79
3b59817ea7be35f4222dc88313734f7a30733ad7
737b70cbbfacb3fba8054426e9b5bf8ede6d8faf
a66586d749197841bd74e289802126f2359287a8
7503a417731910d918a7863d1862f62c9b76429d
---
## Optional hash table with comma-separated file list
read -r -d '' SPACK_CHERRYPICKS_FILES <<- \
......@@ -26,8 +39,21 @@ read -r -d '' SPACK_CHERRYPICKS_FILES <<- \
## 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>
## 9bcc43c4c158639fa6cb575c6106595a34682081: protobuf: update hash for patch needed when="@3.4:3.21"
## 9f3e45ddbee24aaa7993e575297827e0aed2e6fe: acts: pass cuda_arch to CMAKE_CUDA_ARCHITECTURES
## 092dc96e6c87a9c043e4421e1a524e23ec649f60: acts: pass cuda_arch to CMAKE_CUDA_ARCHITECTURES
## 85f13442d2a7486daba81fdd9a3b6a1182ba11f6: Consolidate concretization output for environments
## f73d7d2dce226857cbc774e942454bad2992969e: dd4hep: cleanup recipe, remove deprecated versions and patches
## cbab451c1a342523ed75e9be1098615a597a9b59: dd4hep: Add version 1.29
## 4fe5f35c2fff6288e4c05e5946798ad2191a2c40: xrootd: add v5.7.0
## 4c60deb9921ff2cbbfa6771f4f63ff812a8a5840: xrootd: add github as secondary url to avoid SSL issues
## b894acf1fca8eb5cc52d2267b0c4c187065998c0: geant4: add v11.2.2, incl g4ndl v4.7.1
## 8b45fa089e24c6ab7de2eaf614977369e69daa54: geant4: support Qt5 and Qt6
## 2d8ca8af6932dfd50204d1e4f6fe587dec7beef5: qt-*: add v6.7.1, v6.7.2
## d3bf1e04fca844abb7c1eeac38dda4e126c81b67: py-vector: add through v1.4.1 (switch to hatchling)
## 81125c3bd80e71a2e57c7fcff8e02c4b3add5b90: hepmc3: pass root variant cxxstd as HEPMC3_CXX_STANDARD
## 8b2fec61f23a7b8230c0ed0378d90d04d8f590d8: hepmc3: add v3.3.0
## 2242da65fdc06e7ac04c43613dc7795164b3a7a3: graphviz: add through v12.1.0
## 1dc63dbea6c1d42aabf0e14b51439dcc46423e79: acts: add v34.1.0, v35.0.0 (identification, sycl variants changes)
## 3b59817ea7be35f4222dc88313734f7a30733ad7: deal with TimeoutError from ssl.py
## 737b70cbbfacb3fba8054426e9b5bf8ede6d8faf: Buildcache: remove deprecated --allow-root and preview subcommand
## a66586d749197841bd74e289802126f2359287a8: spack buildcache push: best effort
## 7503a417731910d918a7863d1862f62c9b76429d: cuda: add v12.4.1