From f1ff66e78ed1530563a1393a0df148d95401e957 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 24 Jun 2026 12:45:26 +0200 Subject: [PATCH 01/24] fix spack latest images --- .github/workflows/spack_docker_images.yml | 2 +- spack/2-spackbase/Dockerfile | 3 +- spack/3-baselibs/Dockerfile | 65 +++++++++++++---------- spack/3-baselibs/clang.lst | 2 +- spack/4-mini/Dockerfile | 14 ++++- spack/5-all/Dockerfile | 5 +- spack/6-finalize/Dockerfile | 15 ++---- 7 files changed, 59 insertions(+), 47 deletions(-) diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index a5683ce..36595e2 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -1,7 +1,7 @@ name: Spack images on: schedule: [ { cron: "50 23 * * 0" } ] # run every Sunday 23h50 - push: { branches: [ main, 'v*' ] } + push: { branches: [ main, 'v*', fix-spack-images ] } pull_request: workflow_dispatch: inputs: diff --git a/spack/2-spackbase/Dockerfile b/spack/2-spackbase/Dockerfile index 14138cb..f7060f5 100644 --- a/spack/2-spackbase/Dockerfile +++ b/spack/2-spackbase/Dockerfile @@ -1,6 +1,7 @@ ARG IMAGE_TAG +ARG REGISTRY=ghcr.io/pdidev/test_env -FROM ghcr.io/pdidev/test_env/base:${IMAGE_TAG} +FROM ${REGISTRY}/base:${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 11af49c..fd7c3dd 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -1,12 +1,12 @@ ARG VERSION ARG COMPILER ARG IMAGE_TAG +ARG REGISTRY=ghcr.io/pdidev/test_env -FROM ghcr.io/pdidev/test_env/spackbase:${IMAGE_TAG} +FROM ${REGISTRY}/spackbase:${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" - ARG VERSION # Download spack @@ -36,18 +36,24 @@ ARG COMPILER ARG SPACK_INSTALL_ARGS="--show-log-on-error --fail-fast" # Install the spack compiler with our latest system compiler -COPY ${COMPILER}.lst compilerpkg.lst -RUN spack solve -I -U \ - "$(cat compilerpkg.lst)%$(spack compilers | tr ' ' '\n' | grep @)" \ - && spack install ${SPACK_INSTALL_ARGS} -U \ - "$(cat compilerpkg.lst)%$(spack compilers | tr ' ' '\n' | grep @)" - - +COPY ${COMPILER}.lst compilerpkg.lst +RUN < Date: Wed, 24 Jun 2026 12:52:35 +0200 Subject: [PATCH 02/24] branch name typo to trigger CI --- .github/workflows/spack_docker_images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index 36595e2..334eac3 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -1,7 +1,7 @@ name: Spack images on: schedule: [ { cron: "50 23 * * 0" } ] # run every Sunday 23h50 - push: { branches: [ main, 'v*', fix-spack-images ] } + push: { branches: [ main, 'v*', fix_spack_images ] } pull_request: workflow_dispatch: inputs: From ea0fc3ee75f2d53d355563485ce42830f258074a Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 24 Jun 2026 16:50:51 +0200 Subject: [PATCH 03/24] avoid double applying the patch --- .github/workflows/spack_docker_images.yml | 2 +- spack/4-mini/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index 334eac3..7fb7bc6 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -1,7 +1,7 @@ name: Spack images on: schedule: [ { cron: "50 23 * * 0" } ] # run every Sunday 23h50 - push: { branches: [ main, 'v*', fix_spack_images ] } + push: { branches: [ main, 'v*'] } pull_request: workflow_dispatch: inputs: diff --git a/spack/4-mini/Dockerfile b/spack/4-mini/Dockerfile index ac59316..fb41ae8 100644 --- a/spack/4-mini/Dockerfile +++ b/spack/4-mini/Dockerfile @@ -18,7 +18,7 @@ RUN <<'EORUN' set -e if [ "${COMPILER}" = gcc ] && [ "${MPI}" = openmpi ] && spack --version | grep -qs '^1\.'; then # Use main branch of openmpi because it contains fix to issue #13756 that is still unreleased. - spack -e pdienv add -l mpi "openmpi@main" + spack -e pdienv add -l mpi "openmpi" else spack -e pdienv add -l mpi "${MPI}" fi From c176f6ad543294a0e2b1d0b39268db37f35be91c Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 25 Jun 2026 17:24:11 +0200 Subject: [PATCH 04/24] remove useless syntax after new spack release --- spack/4-mini/Dockerfile | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/spack/4-mini/Dockerfile b/spack/4-mini/Dockerfile index fb41ae8..0789108 100644 --- a/spack/4-mini/Dockerfile +++ b/spack/4-mini/Dockerfile @@ -14,15 +14,7 @@ ARG COMPILER ARG SPACK_INSTALL_ARGS="--show-log-on-error --fail-fast" # Add our MPI of choice and base MPI-dependant libs to the environment and install it -RUN <<'EORUN' -set -e -if [ "${COMPILER}" = gcc ] && [ "${MPI}" = openmpi ] && spack --version | grep -qs '^1\.'; then -# Use main branch of openmpi because it contains fix to issue #13756 that is still unreleased. - spack -e pdienv add -l mpi "openmpi" -else - spack -e pdienv add -l mpi "${MPI}" -fi -EORUN +RUN spack -e pdienv add -l mpi "${MPI}" RUN . deps.sh && spack -e pdienv add -l mpilibs ${BASE_MPILIBS} RUN spack -e pdienv concretize -f --reuse RUN spack -e pdienv install ${SPACK_INSTALL_ARGS} From 9c43f41a5317e10e4dfbb6febc2e729e0f91fb19 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Fri, 26 Jun 2026 08:45:45 +0200 Subject: [PATCH 05/24] Fixes #34 - remove extra ARG no longer needed [skip ci] --- spack/4-mini/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/spack/4-mini/Dockerfile b/spack/4-mini/Dockerfile index 0789108..1bf0216 100644 --- a/spack/4-mini/Dockerfile +++ b/spack/4-mini/Dockerfile @@ -10,7 +10,6 @@ LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" ARG MPI -ARG COMPILER ARG SPACK_INSTALL_ARGS="--show-log-on-error --fail-fast" # Add our MPI of choice and base MPI-dependant libs to the environment and install it From e7a14294a528258e4d9da6236a10eee7ccfdd1c7 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 30 Jun 2026 15:11:32 +0200 Subject: [PATCH 06/24] using llvm native linker rather than gold plugin --- spack/3-baselibs/clang.lst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack/3-baselibs/clang.lst b/spack/3-baselibs/clang.lst index d6c3948..bb03dfc 100644 --- a/spack/3-baselibs/clang.lst +++ b/spack/3-baselibs/clang.lst @@ -1 +1 @@ -llvm+llvm_dylib+link_llvm_dylib~lldb+gold +llvm+llvm_dylib+link_llvm_dylib+lld~lldb From e449b3a089ac749c112903d63fe85e8cb8f6911f Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 30 Jun 2026 16:28:51 +0200 Subject: [PATCH 07/24] Apply review comments : drop COMPILER_REF pin and refactor BOOT name to COMPILER_SPECIFIC_VARIANTS --- spack/3-baselibs/Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index fd7c3dd..eb30e2e 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -44,11 +44,11 @@ SPACK_VERSION="$(spack compilers | tr ' ' '\n' | grep @)" # Select the ~bootstrap gcc variant as the 3-stage bootstrap fails on latest spack if [[ "$COMPILER_PKG" == gcc* ]] then - BOOT="~bootstrap" + COMPILER_SPECIFIC_VARIANTS="~bootstrap" else - BOOT="" + COMPILER_SPECIFIC_VARIANTS="" fi -spack install ${SPACK_INSTALL_ARGS} -U "${COMPILER_PKG}${BOOT}%${SPACK_VERSION}" +spack install ${SPACK_INSTALL_ARGS} -U "${COMPILER_PKG}${COMPILER_SPECIFIC_VARIANTS}%${SPACK_VERSION}" EORUN # Prevent building any new compiler RUN spack config --scope site add 'packages:llvm:buildable: false' @@ -120,7 +120,7 @@ then COMPILER_REF="%pditoolchain" else COMPILER_REF="%$(spack compilers | tr ' ' '\n' | grep @)" fi for p in ${BASE_BUILDDEPS}; do - spack -e pdienv add -l buildeps "$p ${COMPILER_REF}" + spack -e pdienv add -l buildeps "$p" done for p in ${BASE_LIBS}; do spack -e pdienv add -l libs "$p ${COMPILER_REF}" From d96d6ab4c15582962551409a07f3ccdb8ffcb656 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 30 Jun 2026 16:30:01 +0200 Subject: [PATCH 08/24] fix indentation --- spack/3-baselibs/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index eb30e2e..9120fa1 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -120,7 +120,7 @@ then COMPILER_REF="%pditoolchain" else COMPILER_REF="%$(spack compilers | tr ' ' '\n' | grep @)" fi for p in ${BASE_BUILDDEPS}; do - spack -e pdienv add -l buildeps "$p" + spack -e pdienv add -l buildeps "$p" done for p in ${BASE_LIBS}; do spack -e pdienv add -l libs "$p ${COMPILER_REF}" From cde58a9c0bf76198fc6714580219c33eea01353a Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 1 Jul 2026 11:24:56 +0200 Subject: [PATCH 09/24] add spec to use lld linker for latest spack and clang image --- spack/3-baselibs/Dockerfile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 9120fa1..a47981d 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -63,18 +63,20 @@ if ( spack --version | grep -qs '^1\.' ) then # get the name of the just built spack compiler COMPILER="$(spack find -x --format '{name}@{version}' "$(cat compilerpkg.lst)")" - # if using LLVM, add the system compiler as fortran compiler + # if using LLVM, add the system compiler as fortran compiler and use LLD linker if spack find llvm &>/dev/null then FCMP="$(spack find -e --format '{name}@{version}' gcc)" + LTOSPEC=" ldflags=-fuse-ld=lld" else FCMP="${COMPILER}" + LTOSPEC="" fi # generate a toolchain with those cat<<-EOF > "$(spack config --scope site edit --print-file toolchains)" toolchains: pditoolchain: - - spec: "%c=${COMPILER}" + - spec: "%c=${COMPILER}${LTOSPEC}" when: "%c" - - spec: "%cxx=${COMPILER}" + - spec: "%cxx=${COMPILER}${LTOSPEC}" when: "%cxx" - spec: "%fortran=${FCMP}" when: "%fortran" From c7ada364516c3e5ae099ec450a1d1a2276a6e4da Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 2 Jul 2026 14:54:11 +0200 Subject: [PATCH 10/24] try unify when possible in concretizer --- spack/3-baselibs/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index a47981d..e35388c 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -98,6 +98,8 @@ EORUN COPY <<'EOCOPY' spack.yaml spack: view: false + concretizer: + unify: when_possible definitions: - buildeps: [] - libs: [] From f42369bb0aaaed154374a82b7137ba127191792b Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Fri, 3 Jul 2026 10:25:16 +0200 Subject: [PATCH 11/24] inject build flags only in the build of doxygen package --- .github/workflows/spack_docker_images.yml | 12 +++++----- spack/3-baselibs/Dockerfile | 28 +++++++++++++++++------ 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index 7fb7bc6..c426958 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -39,8 +39,8 @@ jobs: strategy: fail-fast: false matrix: - version: ['latest', 'oldest'] - compiler: ['gcc', 'clang'] + version: ['latest'] + compiler: ['clang'] needs: step_1_base_2_spackbase runs-on: ubuntu-latest steps: @@ -60,8 +60,8 @@ jobs: strategy: fail-fast: false matrix: - version: ['latest', 'oldest'] - compiler: ['gcc', 'clang'] + version: ['latest'] + compiler: ['clang'] mpi: ['openmpi','mpich'] needs: step_3_baselibs runs-on: ubuntu-latest @@ -94,8 +94,8 @@ jobs: strategy: fail-fast: false matrix: - version: ['latest', 'oldest'] - compiler: ['gcc', 'clang'] + version: ['latest'] + compiler: ['clang'] mpi: ['openmpi','mpich'] level: ['mini', 'all'] needs: step_4_mini_5_all diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index e35388c..6622ed0 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -50,9 +50,25 @@ else fi spack install ${SPACK_INSTALL_ARGS} -U "${COMPILER_PKG}${COMPILER_SPECIFIC_VARIANTS}%${SPACK_VERSION}" EORUN -# Prevent building any new compiler -RUN spack config --scope site add 'packages:llvm:buildable: false' -RUN spack config --scope site add 'packages:gcc:buildable: false' + +# Prevent building any new compiler and set compiler flags for doxygen to support LTO +RUN < "$(spack config --scope site edit --print-file packages)" + packages: + llvm: + buildable: false + gcc: + buildable: false + all: + require: + - spec: "ldflags=-fuse-ld=lld" + when: "%c=${COMPILER}" + - spec: "ldflags=-fuse-ld=lld" + when: "%cxx=${COMPILER}" +EOF +EORUN # Generate a compiler ref # * before 1.0, rely on the compilers section and generate a mixed compiler for llvm @@ -66,17 +82,15 @@ then # if using LLVM, add the system compiler as fortran compiler and use LLD linker if spack find llvm &>/dev/null then FCMP="$(spack find -e --format '{name}@{version}' gcc)" - LTOSPEC=" ldflags=-fuse-ld=lld" else FCMP="${COMPILER}" - LTOSPEC="" fi # generate a toolchain with those cat<<-EOF > "$(spack config --scope site edit --print-file toolchains)" toolchains: pditoolchain: - - spec: "%c=${COMPILER}${LTOSPEC}" + - spec: "%c=${COMPILER}" when: "%c" - - spec: "%cxx=${COMPILER}${LTOSPEC}" + - spec: "%cxx=${COMPILER}$" when: "%cxx" - spec: "%fortran=${FCMP}" when: "%fortran" From 3f5a1685b77375bc43397d46353e35c7b8e7d071 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Fri, 3 Jul 2026 13:42:12 +0200 Subject: [PATCH 12/24] fix typo --- spack/3-baselibs/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 6622ed0..03059d3 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -90,7 +90,7 @@ then pditoolchain: - spec: "%c=${COMPILER}" when: "%c" - - spec: "%cxx=${COMPILER}$" + - spec: "%cxx=${COMPILER}" when: "%cxx" - spec: "%fortran=${FCMP}" when: "%fortran" From 1a5b5fbec82012be0685cb4d8fe202a11c37ce5d Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Fri, 10 Jul 2026 14:14:10 +0200 Subject: [PATCH 13/24] add the additional syntax to packages.yaml rather than overwriting it --- spack/3-baselibs/Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 03059d3..43cc347 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -48,14 +48,15 @@ then else COMPILER_SPECIFIC_VARIANTS="" fi -spack install ${SPACK_INSTALL_ARGS} -U "${COMPILER_PKG}${COMPILER_SPECIFIC_VARIANTS}%${SPACK_VERSION}" +spack solve -I -U ${COMPILER_PKG}${COMPILER_SPECIFIC_VARIANTS}%${SPACK_VERSION} +&& spack install ${SPACK_INSTALL_ARGS} -U "${COMPILER_PKG}${COMPILER_SPECIFIC_VARIANTS}%${SPACK_VERSION}" EORUN # Prevent building any new compiler and set compiler flags for doxygen to support LTO RUN < "$(spack config --scope site edit --print-file packages)" +cat<<-EOF | spack config --scope site add -f - packages: llvm: buildable: false From 3eb932a518bfb167b76a985af5f8d1cb68731ba5 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Fri, 10 Jul 2026 14:39:42 +0200 Subject: [PATCH 14/24] fix syntax error --- spack/3-baselibs/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 43cc347..ef321b3 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -48,8 +48,8 @@ then else COMPILER_SPECIFIC_VARIANTS="" fi -spack solve -I -U ${COMPILER_PKG}${COMPILER_SPECIFIC_VARIANTS}%${SPACK_VERSION} -&& spack install ${SPACK_INSTALL_ARGS} -U "${COMPILER_PKG}${COMPILER_SPECIFIC_VARIANTS}%${SPACK_VERSION}" +spack solve -I -U ${COMPILER_PKG}${COMPILER_SPECIFIC_VARIANTS}%${SPACK_VERSION} \ + && spack install ${SPACK_INSTALL_ARGS} -U "${COMPILER_PKG}${COMPILER_SPECIFIC_VARIANTS}%${SPACK_VERSION}" EORUN # Prevent building any new compiler and set compiler flags for doxygen to support LTO From 33b7e57d247bac95529c8a1234983bccbb4ca983 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 15 Jul 2026 09:56:01 +0200 Subject: [PATCH 15/24] change packages.yaml to only support LTO for doxygen package --- spack/3-baselibs/Dockerfile | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index ef321b3..a327328 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -55,20 +55,17 @@ EORUN # Prevent building any new compiler and set compiler flags for doxygen to support LTO RUN </dev/null +then cat<<-EOF | spack config --scope site add -f - packages: - llvm: - buildable: false - gcc: - buildable: false - all: + doxygen: require: - spec: "ldflags=-fuse-ld=lld" - when: "%c=${COMPILER}" - - spec: "ldflags=-fuse-ld=lld" - when: "%cxx=${COMPILER}" EOF +fi EORUN # Generate a compiler ref @@ -80,7 +77,7 @@ if ( spack --version | grep -qs '^1\.' ) then # get the name of the just built spack compiler COMPILER="$(spack find -x --format '{name}@{version}' "$(cat compilerpkg.lst)")" - # if using LLVM, add the system compiler as fortran compiler and use LLD linker + # if using LLVM, add the system compiler as fortran compiler if spack find llvm &>/dev/null then FCMP="$(spack find -e --format '{name}@{version}' gcc)" else FCMP="${COMPILER}" From ca817da40d3de8cd5a2b42b8f1e27567fad1d6c8 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 15 Jul 2026 16:21:14 +0200 Subject: [PATCH 16/24] skip the YAML heredoc entirely and use spack config add's dotted-path form --- .github/workflows/spack_docker_images.yml | 12 ++++++------ spack/3-baselibs/Dockerfile | 7 +------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index c426958..7fb7bc6 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -39,8 +39,8 @@ jobs: strategy: fail-fast: false matrix: - version: ['latest'] - compiler: ['clang'] + version: ['latest', 'oldest'] + compiler: ['gcc', 'clang'] needs: step_1_base_2_spackbase runs-on: ubuntu-latest steps: @@ -60,8 +60,8 @@ jobs: strategy: fail-fast: false matrix: - version: ['latest'] - compiler: ['clang'] + version: ['latest', 'oldest'] + compiler: ['gcc', 'clang'] mpi: ['openmpi','mpich'] needs: step_3_baselibs runs-on: ubuntu-latest @@ -94,8 +94,8 @@ jobs: strategy: fail-fast: false matrix: - version: ['latest'] - compiler: ['clang'] + version: ['latest', 'oldest'] + compiler: ['gcc', 'clang'] mpi: ['openmpi','mpich'] level: ['mini', 'all'] needs: step_4_mini_5_all diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index a327328..036242a 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -59,12 +59,7 @@ spack config --scope site add "packages:llvm:buildable:false" spack config --scope site add "packages:gcc:buildable:false" if spack find llvm &>/dev/null then -cat<<-EOF | spack config --scope site add -f - - packages: - doxygen: - require: - - spec: "ldflags=-fuse-ld=lld" -EOF + spack config --scope site add "packages:doxygen:require:ldflags=-fuse-ld=lld" fi EORUN From c1a8e5dbd514aea6f102803bd4b8899c0268925f Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 15 Jul 2026 19:16:17 +0200 Subject: [PATCH 17/24] Add quotes to EORUNs and add condition to set LTO flags to doxygen package only for the latest version of spack --- spack/3-baselibs/Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 036242a..5b720a1 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -37,7 +37,7 @@ ARG SPACK_INSTALL_ARGS="--show-log-on-error --fail-fast" # Install the spack compiler with our latest system compiler COPY ${COMPILER}.lst compilerpkg.lst -RUN </dev/null +if spack --version | grep -qs '^1\.' && spack find llvm &>/dev/null then spack config --scope site add "packages:doxygen:require:ldflags=-fuse-ld=lld" fi @@ -66,7 +66,7 @@ EORUN # Generate a compiler ref # * before 1.0, rely on the compilers section and generate a mixed compiler for llvm # * from spack 1.0 on, define a toolchain -RUN < Date: Thu, 16 Jul 2026 09:48:25 +0200 Subject: [PATCH 18/24] change codename of debian release --- .github/workflows/debuntu_docker_images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 1725881..b947c07 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - base: ['ubuntu/jammy', 'ubuntu/rolling', 'debian/bookworm', 'debian/unstable'] + base: ['ubuntu/jammy', 'ubuntu/rolling', 'debian/trixie', 'debian/unstable'] mpi: ['openmpi', 'mpich'] variant: ['mini', 'all', 'pdi'] runs-on: ubuntu-latest From bdcfa8426656b3990e1c90f40c7245ee71e48a4d Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 16 Jul 2026 11:07:39 +0200 Subject: [PATCH 19/24] post review changes -- removing registry as an argument and restoring previous debian layer --- .github/workflows/debuntu_docker_images.yml | 2 +- .github/workflows/spack_docker_images.yml | 3 ++- spack/2-spackbase/Dockerfile | 2 +- spack/3-baselibs/Dockerfile | 6 ++---- spack/4-mini/Dockerfile | 2 +- spack/5-all/Dockerfile | 7 ++++--- spack/6-finalize/Dockerfile | 17 ++++++++++++----- 7 files changed, 23 insertions(+), 16 deletions(-) diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index b947c07..1725881 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - base: ['ubuntu/jammy', 'ubuntu/rolling', 'debian/trixie', 'debian/unstable'] + base: ['ubuntu/jammy', 'ubuntu/rolling', 'debian/bookworm', 'debian/unstable'] mpi: ['openmpi', 'mpich'] variant: ['mini', 'all', 'pdi'] runs-on: ubuntu-latest diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index 7fb7bc6..83a52e0 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -1,7 +1,7 @@ name: Spack images on: schedule: [ { cron: "50 23 * * 0" } ] # run every Sunday 23h50 - push: { branches: [ main, 'v*'] } + push: { branches: [ main, 'v*' ] } pull_request: workflow_dispatch: inputs: @@ -141,3 +141,4 @@ jobs: LIBS=${{ matrix.level }} tags: | ${{ steps.info.outputs.fullspack }} + \ No newline at end of file diff --git a/spack/2-spackbase/Dockerfile b/spack/2-spackbase/Dockerfile index f7060f5..4a08b3e 100644 --- a/spack/2-spackbase/Dockerfile +++ b/spack/2-spackbase/Dockerfile @@ -1,7 +1,7 @@ ARG IMAGE_TAG ARG REGISTRY=ghcr.io/pdidev/test_env -FROM ${REGISTRY}/base:${IMAGE_TAG} +FROM ghcr.io/pdidev/test_env/base:${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 5b720a1..5421daf 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -3,7 +3,7 @@ ARG COMPILER ARG IMAGE_TAG ARG REGISTRY=ghcr.io/pdidev/test_env -FROM ${REGISTRY}/spackbase:${IMAGE_TAG} +FROM ghcr.io/pdidev/test_env/base:${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" @@ -72,7 +72,7 @@ if ( spack --version | grep -qs '^1\.' ) then # get the name of the just built spack compiler COMPILER="$(spack find -x --format '{name}@{version}' "$(cat compilerpkg.lst)")" - # if using LLVM, add the system compiler as fortran compiler + # if using LLVM, add the system compiler as fortran compiler if spack find llvm &>/dev/null then FCMP="$(spack find -e --format '{name}@{version}' gcc)" else FCMP="${COMPILER}" @@ -105,8 +105,6 @@ EORUN COPY <<'EOCOPY' spack.yaml spack: view: false - concretizer: - unify: when_possible definitions: - buildeps: [] - libs: [] diff --git a/spack/4-mini/Dockerfile b/spack/4-mini/Dockerfile index 1bf0216..0ffd1fc 100644 --- a/spack/4-mini/Dockerfile +++ b/spack/4-mini/Dockerfile @@ -4,7 +4,7 @@ ARG MPI ARG IMAGE_TAG ARG REGISTRY=ghcr.io/pdidev/test_env -FROM ${REGISTRY}/builder:${VERSION}-${COMPILER}-baselibs-${IMAGE_TAG} +FROM ghcr.io/pdidev/test_env/base:${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" diff --git a/spack/5-all/Dockerfile b/spack/5-all/Dockerfile index 6c24c72..04624d0 100644 --- a/spack/5-all/Dockerfile +++ b/spack/5-all/Dockerfile @@ -2,12 +2,12 @@ ARG VERSION ARG COMPILER ARG MPI ARG IMAGE_TAG -ARG REGISTRY=ghcr.io/pdidev/test_env -FROM ${REGISTRY}/builder:${VERSION}-${COMPILER}-${MPI}-mini-${IMAGE_TAG} +FROM ghcr.io/pdidev/test_env/builder:${VERSION}-${COMPILER}-${MPI}-mini-${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" + # before 1.0, add the external repo for paraconf RUN < Date: Thu, 16 Jul 2026 11:09:51 +0200 Subject: [PATCH 20/24] remove unused registry arg --- spack/2-spackbase/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/spack/2-spackbase/Dockerfile b/spack/2-spackbase/Dockerfile index 4a08b3e..14138cb 100644 --- a/spack/2-spackbase/Dockerfile +++ b/spack/2-spackbase/Dockerfile @@ -1,5 +1,4 @@ ARG IMAGE_TAG -ARG REGISTRY=ghcr.io/pdidev/test_env FROM ghcr.io/pdidev/test_env/base:${IMAGE_TAG} From 393f34ccaab6b938a73c84d130dbd644b8640690 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 16 Jul 2026 11:10:38 +0200 Subject: [PATCH 21/24] removed unused registry arg --- spack/3-baselibs/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 5421daf..26984a6 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -1,7 +1,6 @@ ARG VERSION ARG COMPILER ARG IMAGE_TAG -ARG REGISTRY=ghcr.io/pdidev/test_env FROM ghcr.io/pdidev/test_env/base:${IMAGE_TAG} From 3e26a3c83eb6fa36c90ce7839bd916cd40fa4488 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 16 Jul 2026 11:11:13 +0200 Subject: [PATCH 22/24] fix from import --- spack/3-baselibs/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 26984a6..29c835a 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -2,7 +2,7 @@ ARG VERSION ARG COMPILER ARG IMAGE_TAG -FROM ghcr.io/pdidev/test_env/base:${IMAGE_TAG} +FROM ghcr.io/pdidev/test_env/spackbase:${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" From f33be62ef893498a8b89de5286d781b7be77e100 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 16 Jul 2026 11:12:24 +0200 Subject: [PATCH 23/24] restore deleted line --- spack/3-baselibs/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 29c835a..4085f9a 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -6,6 +6,7 @@ FROM ghcr.io/pdidev/test_env/spackbase:${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" + ARG VERSION # Download spack From 9ce34e55a100fbf9f1ab43b57aa2e8568a298209 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 16 Jul 2026 11:23:02 +0200 Subject: [PATCH 24/24] remove registry arg --- spack/4-mini/Dockerfile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/spack/4-mini/Dockerfile b/spack/4-mini/Dockerfile index 0ffd1fc..5f91f20 100644 --- a/spack/4-mini/Dockerfile +++ b/spack/4-mini/Dockerfile @@ -2,9 +2,8 @@ ARG VERSION ARG COMPILER ARG MPI ARG IMAGE_TAG -ARG REGISTRY=ghcr.io/pdidev/test_env -FROM ghcr.io/pdidev/test_env/base:${IMAGE_TAG} +FROM ghcr.io/pdidev/test_env/builder:${VERSION}-${COMPILER}-baselibs-${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" @@ -13,7 +12,7 @@ ARG MPI ARG SPACK_INSTALL_ARGS="--show-log-on-error --fail-fast" # Add our MPI of choice and base MPI-dependant libs to the environment and install it -RUN spack -e pdienv add -l mpi "${MPI}" +RUN spack -e pdienv add -l mpi "${MPI}" RUN . deps.sh && spack -e pdienv add -l mpilibs ${BASE_MPILIBS} RUN spack -e pdienv concretize -f --reuse -RUN spack -e pdienv install ${SPACK_INSTALL_ARGS} +RUN spack -e pdienv install ${SPACK_INSTALL_ARGS} \ No newline at end of file