From be73daadd0fba6f73b951127eaf7e586a0bd5bb4 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Sun, 9 Aug 2026 12:11:43 -0600 Subject: [PATCH 01/27] test: point spack.sh at debuggable-installations fork/branch for local validation --- spack.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/spack.sh b/spack.sh index f3509ca49..1d6d2db8a 100644 --- a/spack.sh +++ b/spack.sh @@ -1,17 +1,15 @@ # shellcheck shell=bash # shellcheck disable=SC2034 # Variables are used by scripts that source this file ## Spack organization and repository, e.g. spack/spack -SPACK_ORGREPO="spack/spack" +SPACK_ORGREPO="SebastianPaucar/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.2.2" +SPACK_VERSION="feature/debuggable-installations-v1.2.2" ## Space-separated list of spack cherry-picks read -r -d '' SPACK_CHERRYPICKS <<- \ --- || true -292b0dcaba3b2a5e3f9668d205d39fee2c715721 -678e506a95b319c573ba7e84703b06d7275ab80e --- ## Optional hash table with comma-separated file list read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ From 8cc586283bb01afea16a0c793c2a37a1c1c5f89f Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Sun, 9 Aug 2026 19:12:10 -0600 Subject: [PATCH 02/27] added: spack.sh description --- spack.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spack.sh b/spack.sh index 1d6d2db8a..23687f9cc 100644 --- a/spack.sh +++ b/spack.sh @@ -15,6 +15,10 @@ read -r -d '' SPACK_CHERRYPICKS <<- \ read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ --- || true --- +## Ref: this branch is v1.2.2 + the two upstream fixes below, cherry-picked +## directly onto the branch (since SPACK_ORGREPO no longer points at +## spack/spack, the normal cherry-pick mechanism can't fetch them) + the +## debuggable-installations feature work. ## Ref: https://github.com/spack/spack/commit/[hash] ## [hash]: [description] ## 292b0dcaba3b2a5e3f9668d205d39fee2c715721: fix: write created time field with OCI buildcache config From 7199564eb3566280e150e9f528b9a44489b48917 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Mon, 10 Aug 2026 14:15:05 -0600 Subject: [PATCH 03/27] base flags plus debug capture for the dbg environment --- scripts/build-eic.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/scripts/build-eic.sh b/scripts/build-eic.sh index 8ebdb6325..4196936f4 100755 --- a/scripts/build-eic.sh +++ b/scripts/build-eic.sh @@ -180,6 +180,13 @@ done ## Enable xtrace and pipefail for the build loop set -o xtrace -o pipefail +## Compute install flags: base flags plus debug capture for the dbg environment +SPACK_INSTALL_FLAGS="--no-check-signature --show-log-on-error --yes-to-all" +if [ "${ENV}" = "dbg" ]; then + SPACK_INSTALL_FLAGS="${SPACK_INSTALL_FLAGS} --debug-source --debug-symbols" +fi +build_cmd+=(--build-arg "SPACK_INSTALL_FLAGS=${SPACK_INSTALL_FLAGS}") + ## Build each type sequentially; the shared base Docker stages (default env concretization ## and installation) are reused from BuildKit's layer cache after the first build. for build_type in "${BUILD_TYPES[@]}"; do From 08b7e87db30b8e88eaab49c1cc0fee399782ff31 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Tue, 11 Aug 2026 00:35:17 -0600 Subject: [PATCH 04/27] fix: debug flags inside the loop and compiler-wrapper@1.1.0-build-id in dbg/spack.yaml --- scripts/build-eic.sh | 14 +++++++------- spack-environment/dbg/spack.yaml | 4 ++++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/scripts/build-eic.sh b/scripts/build-eic.sh index 4196936f4..6e65613e1 100755 --- a/scripts/build-eic.sh +++ b/scripts/build-eic.sh @@ -180,13 +180,6 @@ done ## Enable xtrace and pipefail for the build loop set -o xtrace -o pipefail -## Compute install flags: base flags plus debug capture for the dbg environment -SPACK_INSTALL_FLAGS="--no-check-signature --show-log-on-error --yes-to-all" -if [ "${ENV}" = "dbg" ]; then - SPACK_INSTALL_FLAGS="${SPACK_INSTALL_FLAGS} --debug-source --debug-symbols" -fi -build_cmd+=(--build-arg "SPACK_INSTALL_FLAGS=${SPACK_INSTALL_FLAGS}") - ## Build each type sequentially; the shared base Docker stages (default env concretization ## and installation) are reused from BuildKit's layer cache after the first build. for build_type in "${BUILD_TYPES[@]}"; do @@ -211,6 +204,13 @@ for build_type in "${BUILD_TYPES[@]}"; do # shellcheck disable=SC2206 # word splitting is intentional: BUILD_OPTIONS is a space-separated list build_cmd+=(${BUILD_OPTIONS}) + ## Compute install flags: base flags plus debug capture for the dbg environment + SPACK_INSTALL_FLAGS="--no-check-signature --show-log-on-error --yes-to-all" + if [ "${ENV}" = "dbg" ]; then + SPACK_INSTALL_FLAGS="${SPACK_INSTALL_FLAGS} --debug-source --debug-symbols" + fi + build_cmd+=(--build-arg "SPACK_INSTALL_FLAGS=${SPACK_INSTALL_FLAGS}") + ## Output mode: push-by-digest in all CI modes; load locally if [ "${CI_MODE}" != "local" ]; then ## Push by digest; CI wrapper creates final tags via imagetools create. diff --git a/spack-environment/dbg/spack.yaml b/spack-environment/dbg/spack.yaml index b544d7fb3..3dcb43b24 100644 --- a/spack-environment/dbg/spack.yaml +++ b/spack-environment/dbg/spack.yaml @@ -5,6 +5,10 @@ spack: - ../packages.yaml - ../packages_root_without_opengl.yaml - ../view.yaml + packages: + compiler-wrapper: + require: + - '@1.1.0-build-id' specs: - acts build_type=Debug - cmake From f2ade37b4fb48eaab34a14d93aa7c7f50a66482d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 11 Aug 2026 06:35:37 +0000 Subject: [PATCH 05/27] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- scripts/build-eic.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build-eic.sh b/scripts/build-eic.sh index 6e65613e1..9dde12d12 100755 --- a/scripts/build-eic.sh +++ b/scripts/build-eic.sh @@ -210,7 +210,7 @@ for build_type in "${BUILD_TYPES[@]}"; do SPACK_INSTALL_FLAGS="${SPACK_INSTALL_FLAGS} --debug-source --debug-symbols" fi build_cmd+=(--build-arg "SPACK_INSTALL_FLAGS=${SPACK_INSTALL_FLAGS}") - + ## Output mode: push-by-digest in all CI modes; load locally if [ "${CI_MODE}" != "local" ]; then ## Push by digest; CI wrapper creates final tags via imagetools create. From 3edc5d12153e521b70d848a58550a1072e78f2bc Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Wed, 19 Aug 2026 13:16:59 -0600 Subject: [PATCH 06/27] --no-cache for dbg installs and debug mode compiler-wrapper against epic/spack.yaml --- scripts/build-eic.sh | 2 +- spack-environment/dbg/epic/spack.yaml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/build-eic.sh b/scripts/build-eic.sh index 9dde12d12..a0e823619 100755 --- a/scripts/build-eic.sh +++ b/scripts/build-eic.sh @@ -207,7 +207,7 @@ for build_type in "${BUILD_TYPES[@]}"; do ## Compute install flags: base flags plus debug capture for the dbg environment SPACK_INSTALL_FLAGS="--no-check-signature --show-log-on-error --yes-to-all" if [ "${ENV}" = "dbg" ]; then - SPACK_INSTALL_FLAGS="${SPACK_INSTALL_FLAGS} --debug-source --debug-symbols" + SPACK_INSTALL_FLAGS="${SPACK_INSTALL_FLAGS} --no-cache --debug-source --debug-symbols" fi build_cmd+=(--build-arg "SPACK_INSTALL_FLAGS=${SPACK_INSTALL_FLAGS}") diff --git a/spack-environment/dbg/epic/spack.yaml b/spack-environment/dbg/epic/spack.yaml index 26fe88789..578ab4135 100644 --- a/spack-environment/dbg/epic/spack.yaml +++ b/spack-environment/dbg/epic/spack.yaml @@ -5,6 +5,10 @@ spack: - ../../config.yaml - ../../packages.yaml - ../../view.yaml + packages: + compiler-wrapper: + require: + - '@1.1.0-build-id' specs: - algorithms build_type=Debug - edm4eic build_type=Debug From 566670e2b4c50d49110aacba1e0bec0457a5fb67 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Wed, 19 Aug 2026 15:45:07 -0600 Subject: [PATCH 07/27] SPACK_BUILDER_INSTALL_FLAGS for from-source debuggable installations --- containers/eic/Dockerfile | 5 +++-- scripts/build-eic.sh | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/containers/eic/Dockerfile b/containers/eic/Dockerfile index 1d212b74a..8f57fbe9a 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_BUILDER_INSTALL_FLAGS="${SPACK_INSTALL_FLAGS}" ENV SPACK_COLOR="always" ENV GIT_TERMINAL_PROMPT=0 @@ -79,7 +80,7 @@ RUN --mount=type=cache,target=/ccache,id=ccache-${TARGETPLATFORM} \ < Date: Tue, 25 Aug 2026 15:13:13 -0600 Subject: [PATCH 08/27] spack-packages.sh: cherry-pick compiler-wrapper@1.1.0-build-id prototype. spack.sh: cherry-pick full debuggable framework --- spack-packages.sh | 2 ++ spack.sh | 13 +++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/spack-packages.sh b/spack-packages.sh index ffe3a8697..35ca842e3 100644 --- a/spack-packages.sh +++ b/spack-packages.sh @@ -48,6 +48,7 @@ c44cd71db91d6e6c68cb604dcb87311b49b1bedb 9385426b49d2c49d026629cb5e96bb5893824e3d d1bfcea155bb51220a4baddfcc75a0ba4d4b972c f3085a0fd9c327692475fbb72b8b9f738c541358 +2700b8c7c7902cc9b3d19af1a57183bdeaf21c44 --- ## Optional hash table with comma-separated file list ## For these commits, the cherry-pick will be restricted to the listed files only. @@ -93,3 +94,4 @@ read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ ## 9385426b49d2c49d026629cb5e96bb5893824e3d: opencascade: add v7.9.2, v7.9.3 ## d1bfcea155bb51220a4baddfcc75a0ba4d4b972c: opencascade: add v8.0.0, v8.0.0.p1 ## f3085a0fd9c327692475fbb72b8b9f738c541358: opencascade: pass tcl library paths to the cmake build to fix mac builds +## 2700b8c7c7902cc9b3d19af1a57183bdeaf21c44: compiler-wrapper: add 1.1.0-build-id prototype version (spack-packages#6214) diff --git a/spack.sh b/spack.sh index 23687f9cc..7a55dfcfc 100644 --- a/spack.sh +++ b/spack.sh @@ -1,25 +1,26 @@ # shellcheck shell=bash # shellcheck disable=SC2034 # Variables are used by scripts that source this file ## Spack organization and repository, e.g. spack/spack -SPACK_ORGREPO="SebastianPaucar/spack" +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="feature/debuggable-installations-v1.2.2" +SPACK_VERSION="v1.2.2" ## Space-separated list of spack cherry-picks read -r -d '' SPACK_CHERRYPICKS <<- \ --- || true +292b0dcaba3b2a5e3f9668d205d39fee2c715721 +678e506a95b319c573ba7e84703b06d7275ab80e +2484c2b9387853ee3f81bb7b10d9bfd4c79cf190 --- ## Optional hash table with comma-separated file list read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ --- || true --- -## Ref: this branch is v1.2.2 + the two upstream fixes below, cherry-picked -## directly onto the branch (since SPACK_ORGREPO no longer points at -## spack/spack, the normal cherry-pick mechanism can't fetch them) + the -## debuggable-installations feature work. ## Ref: https://github.com/spack/spack/commit/[hash] ## [hash]: [description] ## 292b0dcaba3b2a5e3f9668d205d39fee2c715721: fix: write created time field with OCI buildcache config ## 678e506a95b319c573ba7e84703b06d7275ab80e: fix: don't map prefix to view root for pkgs excluded from view +## 2484c2b9387853ee3f81bb7b10d9bfd4c79cf190: feat: debuggable installations (source hook, symbol +## splitting, gdbinit, OCI autopush), squashed and cherry-picked via open draft PR spack/spack#52949 From af89a01434d84f14981933b9d3174e28f2fb836a Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Fri, 28 Aug 2026 15:38:50 -0600 Subject: [PATCH 09/27] debuginfod and elfutils related cherry-picks added --- spack-packages.sh | 4 ++++ spack.sh | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/spack-packages.sh b/spack-packages.sh index 35ca842e3..d35d4b9b0 100644 --- a/spack-packages.sh +++ b/spack-packages.sh @@ -49,6 +49,8 @@ c44cd71db91d6e6c68cb604dcb87311b49b1bedb d1bfcea155bb51220a4baddfcc75a0ba4d4b972c f3085a0fd9c327692475fbb72b8b9f738c541358 2700b8c7c7902cc9b3d19af1a57183bdeaf21c44 +4b54f295bed925f1a33f3954bd05903e53142406 +0d28d22b92a113cd15bee2c7d474bef002de901b --- ## Optional hash table with comma-separated file list ## For these commits, the cherry-pick will be restricted to the listed files only. @@ -95,3 +97,5 @@ read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ ## d1bfcea155bb51220a4baddfcc75a0ba4d4b972c: opencascade: add v8.0.0, v8.0.0.p1 ## f3085a0fd9c327692475fbb72b8b9f738c541358: opencascade: pass tcl library paths to the cmake build to fix mac builds ## 2700b8c7c7902cc9b3d19af1a57183bdeaf21c44: compiler-wrapper: add 1.1.0-build-id prototype version (spack-packages#6214) +## 4b54f295bed925f1a33f3954bd05903e53142406: compiler-wrapper: add 1.1.0-build-id prototype version (spack-packages#6214) +## 0d28d22b92a113cd15bee2c7d474bef002de901b: elfutils: patch debuginfod_find_source to accept ./-relative filenames (spack-packages #6259) diff --git a/spack.sh b/spack.sh index 7a55dfcfc..caf5c836f 100644 --- a/spack.sh +++ b/spack.sh @@ -12,7 +12,7 @@ read -r -d '' SPACK_CHERRYPICKS <<- \ --- || true 292b0dcaba3b2a5e3f9668d205d39fee2c715721 678e506a95b319c573ba7e84703b06d7275ab80e -2484c2b9387853ee3f81bb7b10d9bfd4c79cf190 +5c3ac95eb728653e677f5e6caee39f34f8ae8249 --- ## Optional hash table with comma-separated file list read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ @@ -22,5 +22,6 @@ read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ ## [hash]: [description] ## 292b0dcaba3b2a5e3f9668d205d39fee2c715721: fix: write created time field with OCI buildcache config ## 678e506a95b319c573ba7e84703b06d7275ab80e: fix: don't map prefix to view root for pkgs excluded from view -## 2484c2b9387853ee3f81bb7b10d9bfd4c79cf190: feat: debuggable installations (source hook, symbol -## splitting, gdbinit, OCI autopush), squashed and cherry-picked via open draft PR spack/spack#52949 +## 5c3ac95eb728653e677f5e6caee39f34f8ae8249: feat: debuggable installations (source hook, symbol +## splitting, gdbinit, OCI autopush) plus debuginfod, squashed and cherry-picked via open draft +## PR spack/spack#52949 From a25c378108f5b34962523e8068e230fa6e66140c Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Fri, 28 Aug 2026 23:01:29 -0600 Subject: [PATCH 10/27] patch debuginfod_find_source plus elfutils@0.194+debuginfod in specs --- spack-environment/dbg/spack.yaml | 2 +- spack-packages.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spack-environment/dbg/spack.yaml b/spack-environment/dbg/spack.yaml index 3dcb43b24..54a8fa4f0 100644 --- a/spack-environment/dbg/spack.yaml +++ b/spack-environment/dbg/spack.yaml @@ -14,7 +14,7 @@ spack: - cmake - dd4hep build_type=Debug - edm4hep build_type=Debug - - gdb + - gdb ^elfutils@0.194+debuginfod - irt build_type=Debug - jana2 build_type=Debug - valgrind diff --git a/spack-packages.sh b/spack-packages.sh index d35d4b9b0..4baed0f40 100644 --- a/spack-packages.sh +++ b/spack-packages.sh @@ -50,7 +50,7 @@ d1bfcea155bb51220a4baddfcc75a0ba4d4b972c f3085a0fd9c327692475fbb72b8b9f738c541358 2700b8c7c7902cc9b3d19af1a57183bdeaf21c44 4b54f295bed925f1a33f3954bd05903e53142406 -0d28d22b92a113cd15bee2c7d474bef002de901b +5945d81a8359eed559ec60b1be9151de57473f51 --- ## Optional hash table with comma-separated file list ## For these commits, the cherry-pick will be restricted to the listed files only. @@ -98,4 +98,4 @@ read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ ## f3085a0fd9c327692475fbb72b8b9f738c541358: opencascade: pass tcl library paths to the cmake build to fix mac builds ## 2700b8c7c7902cc9b3d19af1a57183bdeaf21c44: compiler-wrapper: add 1.1.0-build-id prototype version (spack-packages#6214) ## 4b54f295bed925f1a33f3954bd05903e53142406: compiler-wrapper: add 1.1.0-build-id prototype version (spack-packages#6214) -## 0d28d22b92a113cd15bee2c7d474bef002de901b: elfutils: patch debuginfod_find_source to accept ./-relative filenames (spack-packages #6259) +## 5945d81a8359eed559ec60b1be9151de57473f51: elfutils: patch debuginfod_find_source to accept ./-relative filenames (spack-packages #6259) From 61482c28868d62411f323e6ac96efd94be58f03b Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Sat, 29 Aug 2026 18:54:25 -0600 Subject: [PATCH 11/27] spack-packages.sh: remove stale compiler-wrapper cherry-pick hash (2700b8c7 predates amend, 4b54f295 is current PR #6214 head) --- spack-packages.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spack-packages.sh b/spack-packages.sh index 4baed0f40..762ee184a 100644 --- a/spack-packages.sh +++ b/spack-packages.sh @@ -48,7 +48,6 @@ c44cd71db91d6e6c68cb604dcb87311b49b1bedb 9385426b49d2c49d026629cb5e96bb5893824e3d d1bfcea155bb51220a4baddfcc75a0ba4d4b972c f3085a0fd9c327692475fbb72b8b9f738c541358 -2700b8c7c7902cc9b3d19af1a57183bdeaf21c44 4b54f295bed925f1a33f3954bd05903e53142406 5945d81a8359eed559ec60b1be9151de57473f51 --- @@ -96,6 +95,6 @@ read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ ## 9385426b49d2c49d026629cb5e96bb5893824e3d: opencascade: add v7.9.2, v7.9.3 ## d1bfcea155bb51220a4baddfcc75a0ba4d4b972c: opencascade: add v8.0.0, v8.0.0.p1 ## f3085a0fd9c327692475fbb72b8b9f738c541358: opencascade: pass tcl library paths to the cmake build to fix mac builds -## 2700b8c7c7902cc9b3d19af1a57183bdeaf21c44: compiler-wrapper: add 1.1.0-build-id prototype version (spack-packages#6214) ## 4b54f295bed925f1a33f3954bd05903e53142406: compiler-wrapper: add 1.1.0-build-id prototype version (spack-packages#6214) ## 5945d81a8359eed559ec60b1be9151de57473f51: elfutils: patch debuginfod_find_source to accept ./-relative filenames (spack-packages #6259) + From 367e09032a8a5525136ee34baccd98e3b9e8a10a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 30 Aug 2026 00:56:40 +0000 Subject: [PATCH 12/27] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- spack-packages.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/spack-packages.sh b/spack-packages.sh index 762ee184a..dc19395f5 100644 --- a/spack-packages.sh +++ b/spack-packages.sh @@ -97,4 +97,3 @@ read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ ## f3085a0fd9c327692475fbb72b8b9f738c541358: opencascade: pass tcl library paths to the cmake build to fix mac builds ## 4b54f295bed925f1a33f3954bd05903e53142406: compiler-wrapper: add 1.1.0-build-id prototype version (spack-packages#6214) ## 5945d81a8359eed559ec60b1be9151de57473f51: elfutils: patch debuginfod_find_source to accept ./-relative filenames (spack-packages #6259) - From a64422ec93633261016929a7646cde81e349540c Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Mon, 7 Sep 2026 22:44:25 -0600 Subject: [PATCH 13/27] moving debuggable spack installations framework into xl env for root, geant4 and their xl dependents --- scripts/build-eic.sh | 2 +- spack-environment/xl/spack.yaml | 39 ++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/scripts/build-eic.sh b/scripts/build-eic.sh index f9a5d3b5a..9794d8ea6 100755 --- a/scripts/build-eic.sh +++ b/scripts/build-eic.sh @@ -207,7 +207,7 @@ for build_type in "${BUILD_TYPES[@]}"; do ## Compute install flags: base flags plus debug capture for the dbg environment SPACK_INSTALL_FLAGS="--no-check-signature --show-log-on-error --yes-to-all" SPACK_BUILDER_INSTALL_FLAGS="${SPACK_INSTALL_FLAGS}" - if [ "${ENV}" = "dbg" ]; then + if [ "${ENV}" = "dbg" ] || [ "${ENV}" = "xl" ]; then SPACK_BUILDER_INSTALL_FLAGS="${SPACK_BUILDER_INSTALL_FLAGS} --no-cache --debug-source --debug-symbols" fi build_cmd+=(--build-arg "SPACK_INSTALL_FLAGS=${SPACK_INSTALL_FLAGS}") diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index 4a4452b45..3134fd6dc 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -5,6 +5,43 @@ spack: - ../packages.yaml - ../packages_root_with_opengl.yaml - ../view.yaml + packages: + compiler-wrapper: + require: + - '@1.1.0-build-id' + root: + require: + - build_type=RelWithDebInfo + geant4: + require: + - build_type=RelWithDebInfo + acts: + require: + - build_type=RelWithDebInfo + celeritas: + require: + - build_type=RelWithDebInfo + dd4hep: + require: + - build_type=RelWithDebInfo + edm4hep: + require: + - build_type=RelWithDebInfo + hepmc3: + require: + - build_type=RelWithDebInfo + podio: + require: + - build_type=RelWithDebInfo + professor: + require: + - build_type=RelWithDebInfo + pythia8: + require: + - build_type=RelWithDebInfo + sherpa: + require: + - build_type=RelWithDebInfo specs: - acts - actsvg @@ -38,7 +75,7 @@ spack: - fjcontrib - fmt - g4occt - - gdb + - gdb ^elfutils@0.194+debuginfod - geant4 +opengl - gfal2 - gfal2-util From a564552d5eb264389c851ac2133f30ecf557ec06 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Mon, 7 Sep 2026 22:53:54 -0600 Subject: [PATCH 14/27] update debuggable installations Spack commit --- spack.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spack.sh b/spack.sh index caf5c836f..af9d6e762 100644 --- a/spack.sh +++ b/spack.sh @@ -12,7 +12,7 @@ read -r -d '' SPACK_CHERRYPICKS <<- \ --- || true 292b0dcaba3b2a5e3f9668d205d39fee2c715721 678e506a95b319c573ba7e84703b06d7275ab80e -5c3ac95eb728653e677f5e6caee39f34f8ae8249 +64cb800bb1fe61afa4b410c370e7039fadcae91c --- ## Optional hash table with comma-separated file list read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ @@ -22,6 +22,6 @@ read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ ## [hash]: [description] ## 292b0dcaba3b2a5e3f9668d205d39fee2c715721: fix: write created time field with OCI buildcache config ## 678e506a95b319c573ba7e84703b06d7275ab80e: fix: don't map prefix to view root for pkgs excluded from view -## 5c3ac95eb728653e677f5e6caee39f34f8ae8249: feat: debuggable installations (source hook, symbol +## 64cb800bb1fe61afa4b410c370e7039fadcae91c: feat: debuggable installations (source hook, symbol ## splitting, gdbinit, OCI autopush) plus debuginfod, squashed and cherry-picked via open draft ## PR spack/spack#52949 From 1f35a963757f2e8e63114cfa5673783805cd776f Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Tue, 8 Sep 2026 11:49:22 -0600 Subject: [PATCH 15/27] update debuggable installations Spack commit (tty fixed) --- spack.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spack.sh b/spack.sh index af9d6e762..4b22d3115 100644 --- a/spack.sh +++ b/spack.sh @@ -12,7 +12,7 @@ read -r -d '' SPACK_CHERRYPICKS <<- \ --- || true 292b0dcaba3b2a5e3f9668d205d39fee2c715721 678e506a95b319c573ba7e84703b06d7275ab80e -64cb800bb1fe61afa4b410c370e7039fadcae91c +afe2123c9d3a3f3b172202a70ea019b81bc78bfd --- ## Optional hash table with comma-separated file list read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ @@ -22,6 +22,6 @@ read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ ## [hash]: [description] ## 292b0dcaba3b2a5e3f9668d205d39fee2c715721: fix: write created time field with OCI buildcache config ## 678e506a95b319c573ba7e84703b06d7275ab80e: fix: don't map prefix to view root for pkgs excluded from view -## 64cb800bb1fe61afa4b410c370e7039fadcae91c: feat: debuggable installations (source hook, symbol +## afe2123c9d3a3f3b172202a70ea019b81bc78bfd: feat: debuggable installations (source hook, symbol ## splitting, gdbinit, OCI autopush) plus debuginfod, squashed and cherry-picked via open draft ## PR spack/spack#52949 From d4d7fe42c6037b7fddc1ebff49b924653fb58235 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Tue, 8 Sep 2026 12:20:39 -0600 Subject: [PATCH 16/27] update debuggable installations Spack commit (syntax error fixed) --- spack.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spack.sh b/spack.sh index 4b22d3115..00d202525 100644 --- a/spack.sh +++ b/spack.sh @@ -12,7 +12,7 @@ read -r -d '' SPACK_CHERRYPICKS <<- \ --- || true 292b0dcaba3b2a5e3f9668d205d39fee2c715721 678e506a95b319c573ba7e84703b06d7275ab80e -afe2123c9d3a3f3b172202a70ea019b81bc78bfd +59bbd5bf2a292486dd2bd21fb8963fb3bfd1000f --- ## Optional hash table with comma-separated file list read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ @@ -22,6 +22,6 @@ read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ ## [hash]: [description] ## 292b0dcaba3b2a5e3f9668d205d39fee2c715721: fix: write created time field with OCI buildcache config ## 678e506a95b319c573ba7e84703b06d7275ab80e: fix: don't map prefix to view root for pkgs excluded from view -## afe2123c9d3a3f3b172202a70ea019b81bc78bfd: feat: debuggable installations (source hook, symbol +## 59bbd5bf2a292486dd2bd21fb8963fb3bfd1000f: feat: debuggable installations (source hook, symbol ## splitting, gdbinit, OCI autopush) plus debuginfod, squashed and cherry-picked via open draft ## PR spack/spack#52949 From 7c8c736e80d36a4ce0282c223708ea79ffa016d5 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Tue, 8 Sep 2026 13:36:01 -0600 Subject: [PATCH 17/27] fix: cflags instead of build_type for non-CMake spack packages --- spack-environment/xl/spack.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index 3134fd6dc..024d09b2d 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -35,10 +35,12 @@ spack: - build_type=RelWithDebInfo professor: require: - - build_type=RelWithDebInfo + - cflags=-g + - cxxflags=-g pythia8: require: - - build_type=RelWithDebInfo + - cflags=-g + - cxxflags=-g sherpa: require: - build_type=RelWithDebInfo From 982d0b332db5c2bb84a390c3a83841c626b8e399 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Tue, 8 Sep 2026 15:01:10 -0600 Subject: [PATCH 18/27] update debuggable installations Spack commit (writegdbinit identation fixed) --- spack.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spack.sh b/spack.sh index 00d202525..0a7619c27 100644 --- a/spack.sh +++ b/spack.sh @@ -12,7 +12,7 @@ read -r -d '' SPACK_CHERRYPICKS <<- \ --- || true 292b0dcaba3b2a5e3f9668d205d39fee2c715721 678e506a95b319c573ba7e84703b06d7275ab80e -59bbd5bf2a292486dd2bd21fb8963fb3bfd1000f +2ba3505dd8985a0fc86695e43cae0020fc50daa8 --- ## Optional hash table with comma-separated file list read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ @@ -22,6 +22,6 @@ read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ ## [hash]: [description] ## 292b0dcaba3b2a5e3f9668d205d39fee2c715721: fix: write created time field with OCI buildcache config ## 678e506a95b319c573ba7e84703b06d7275ab80e: fix: don't map prefix to view root for pkgs excluded from view -## 59bbd5bf2a292486dd2bd21fb8963fb3bfd1000f: feat: debuggable installations (source hook, symbol +## 2ba3505dd8985a0fc86695e43cae0020fc50daa8: feat: debuggable installations (source hook, symbol ## splitting, gdbinit, OCI autopush) plus debuginfod, squashed and cherry-picked via open draft ## PR spack/spack#52949 From 3b5d1db693a16af6bb7f74aa9169329572e9951c Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Wed, 9 Sep 2026 11:54:03 -0600 Subject: [PATCH 19/27] fix: drop --no-cache (no needed for xl) --- scripts/build-eic.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build-eic.sh b/scripts/build-eic.sh index 9794d8ea6..63ab33071 100755 --- a/scripts/build-eic.sh +++ b/scripts/build-eic.sh @@ -208,7 +208,7 @@ for build_type in "${BUILD_TYPES[@]}"; do SPACK_INSTALL_FLAGS="--no-check-signature --show-log-on-error --yes-to-all" SPACK_BUILDER_INSTALL_FLAGS="${SPACK_INSTALL_FLAGS}" if [ "${ENV}" = "dbg" ] || [ "${ENV}" = "xl" ]; then - SPACK_BUILDER_INSTALL_FLAGS="${SPACK_BUILDER_INSTALL_FLAGS} --no-cache --debug-source --debug-symbols" + SPACK_BUILDER_INSTALL_FLAGS="${SPACK_BUILDER_INSTALL_FLAGS} --debug-source --debug-symbols" fi build_cmd+=(--build-arg "SPACK_INSTALL_FLAGS=${SPACK_INSTALL_FLAGS}") build_cmd+=(--build-arg "SPACK_BUILDER_INSTALL_FLAGS=${SPACK_BUILDER_INSTALL_FLAGS}") From 0b19df2b63a1e7bf5e74c730b649ba760b3cb622 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Thu, 10 Sep 2026 23:04:52 -0600 Subject: [PATCH 20/27] keep compiler-wrapper safe version + build_type=RelWithDebInfo in xl/epic/spack.yaml --- spack-environment/xl/epic/spack.yaml | 27 +++++++++++++++++++++++++++ spack-packages.sh | 4 ++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/spack-environment/xl/epic/spack.yaml b/spack-environment/xl/epic/spack.yaml index 9b1893160..0ccc00a2b 100644 --- a/spack-environment/xl/epic/spack.yaml +++ b/spack-environment/xl/epic/spack.yaml @@ -11,9 +11,34 @@ spack: max_dupes: epic: 10 packages: + compiler-wrapper: + require: + - '@1.1.0-build-id' + root: + require: + - build_type=RelWithDebInfo geant4: require: - +opengl + - build_type=RelWithDebInfo + acts: + require: + - build_type=RelWithDebInfo + celeritas: + require: + - build_type=RelWithDebInfo + dd4hep: + require: + - build_type=RelWithDebInfo + edm4hep: + require: + - build_type=RelWithDebInfo + hepmc3: + require: + - build_type=RelWithDebInfo + podio: + require: + - build_type=RelWithDebInfo specs: - algorithms - edm4eic @@ -25,3 +50,5 @@ spack: - epic@26.07.1 - epic@26.07.2 - epic@26.08.0 + repos: + builtin_local: /uufs/chpc.utah.edu/common/home/u6059911/GIT/spack-packages/repos/spack_repo/builtin_local diff --git a/spack-packages.sh b/spack-packages.sh index dc19395f5..817309bbc 100644 --- a/spack-packages.sh +++ b/spack-packages.sh @@ -48,7 +48,7 @@ c44cd71db91d6e6c68cb604dcb87311b49b1bedb 9385426b49d2c49d026629cb5e96bb5893824e3d d1bfcea155bb51220a4baddfcc75a0ba4d4b972c f3085a0fd9c327692475fbb72b8b9f738c541358 -4b54f295bed925f1a33f3954bd05903e53142406 +fdd30418cfd404a8de135c5fcfc349d5de87f84b 5945d81a8359eed559ec60b1be9151de57473f51 --- ## Optional hash table with comma-separated file list @@ -95,5 +95,5 @@ read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ ## 9385426b49d2c49d026629cb5e96bb5893824e3d: opencascade: add v7.9.2, v7.9.3 ## d1bfcea155bb51220a4baddfcc75a0ba4d4b972c: opencascade: add v8.0.0, v8.0.0.p1 ## f3085a0fd9c327692475fbb72b8b9f738c541358: opencascade: pass tcl library paths to the cmake build to fix mac builds -## 4b54f295bed925f1a33f3954bd05903e53142406: compiler-wrapper: add 1.1.0-build-id prototype version (spack-packages#6214) +## fdd30418cfd404a8de135c5fcfc349d5de87f84b: compiler-wrapper: add 1.1.0-build-id prototype version (spack-packages#6214) ## 5945d81a8359eed559ec60b1be9151de57473f51: elfutils: patch debuginfod_find_source to accept ./-relative filenames (spack-packages #6259) From 58656bc8c226b34f41bbed8f4caf53217aa560b8 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Sun, 13 Sep 2026 23:12:33 -0600 Subject: [PATCH 21/27] deleting line previosly added during testing --- spack-environment/xl/epic/spack.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/spack-environment/xl/epic/spack.yaml b/spack-environment/xl/epic/spack.yaml index 0ccc00a2b..bb2dc6e25 100644 --- a/spack-environment/xl/epic/spack.yaml +++ b/spack-environment/xl/epic/spack.yaml @@ -50,5 +50,3 @@ spack: - epic@26.07.1 - epic@26.07.2 - epic@26.08.0 - repos: - builtin_local: /uufs/chpc.utah.edu/common/home/u6059911/GIT/spack-packages/repos/spack_repo/builtin_local From 62e2f91ffcb25131e20d20f583e08a4884bc73e0 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Mon, 14 Sep 2026 16:04:27 -0600 Subject: [PATCH 22/27] add debuggable installations for spack packages (doc) --- docs/README.md | 1 + docs/debuggable-installations.md | 174 +++++++++++++++++++++++++++++++ 2 files changed, 175 insertions(+) create mode 100644 docs/debuggable-installations.md diff --git a/docs/README.md b/docs/README.md index 79af4e9f9..a3b87826f 100644 --- a/docs/README.md +++ b/docs/README.md @@ -12,6 +12,7 @@ The EIC container infrastructure provides scientific software environments for t - [Build Pipeline](build-pipeline.md) - GitHub Actions workflow details - [Building Locally](building-locally.md) - Instructions for local builds with caching - [Spack Environment](spack-environment.md) - Spack configuration and packages +- [Debuggable Installations](debuggable-installations.md) - Debugging mechanism for Spack packages ## Container Images diff --git a/docs/debuggable-installations.md b/docs/debuggable-installations.md new file mode 100644 index 000000000..578872400 --- /dev/null +++ b/docs/debuggable-installations.md @@ -0,0 +1,174 @@ +# Debuggable Installations & OCI-backed debuginfod + +This document explains the debuggable-installations framework used by the `dbg` and `xl` Spack environments: + +* **Capture**: Spack captures DWARF-referenced sources and symbols during installation. +* **Store**: The artifacts are pushed to existing OCI registries (EIC's GHCR/eicweb). +* **Retrieve**: `gdb`/`debuginfod` fetches them on demand, without requiring the original build directory. + +## Why this exists + +Debug info embeds the machine-specific, build-time source path in the binary's DWARF data. Spack removes its temporary build directory after installation, leaving that path invalid and making the binary difficult to debug later, while making the debug info non-redistributable due to machine-specific metadata. + +Linux distributions address this with `debuginfod`, which serves debug symbols and source from filesystem-based package archives. Spack's buildcache is stored in OCI registries (GHCR/eicweb), which debuginfod cannot access directly. + +```mermaid +flowchart LR + subgraph Debian["Debian / Ubuntu / Fedora"] + direction TB + A1[Package archive
filesystem] + A2[debuginfod
scans it directly] + A3[gdb fetches over HTTP] + A1 --> A2 --> A3 + end + + subgraph Spack["Spack, before this framework"] + direction TB + B1[Binaries in OCI registry
GHCR / eicweb] + B2[debuginfod: can't scan
a registry] + B3[gdb: no source, no symbols] + B1 --> B2 --> B3 + end + + Debian ~~~ Spack +``` + +This framework closes that gap: + +* Makes DWARF paths machine-agnostic. +* Captures source and symbol data at install time and after the fact. +* Stores it in the same OCI registries used by the build cache, tagged by build ID. +* Resolves GDB build-ID lookups against OCI data over HTTPS via a lightweight debuginfod-compatible adapter. + +## Cherry-picks + +Enabled via `spack.sh` and `spack-packages.sh`: + +```bash +# spack.sh +## 2ba3505dd8985a0fc86695e43cae0020fc50daa8: feat: debuggable installations (source hook, symbol +## splitting, gdbinit, OCI autopush) plus debuginfod, squashed and cherry-picked via open draft +## PR spack/spack#52949 + +# spack-packages.sh +## fdd30418cfd404a8de135c5fcfc349d5de87f84b: compiler-wrapper: add 1.1.0-build-id prototype version (spack-packages#6214) +## 5945d81a8359eed559ec60b1be9151de57473f51: elfutils: patch debuginfod_find_source to accept ./-relative filenames (spack-packages#6259) +``` + +## Environment wiring + +`compiler-wrapper@1.1.0-build-id` and `RelWithDebInfo` overrides for ROOT/Geant4 and dependents in `xl/spack.yaml` and `xl/epic/spack.yaml`, with `elfutils@0.194+debuginfod` GDB support: + +```yaml +packages: + compiler-wrapper: + require: + - '@1.1.0-build-id' + root: + require: + - build_type=RelWithDebInfo + geant4: + require: + - build_type=RelWithDebInfo + acts: + require: + - build_type=RelWithDebInfo + # ...similarly for celeritas, dd4hep, edm4hep, hepmc3, podio, sherpa + professor: + require: + - cflags=-g + - cxxflags=-g + pythia8: + require: + - cflags=-g + - cxxflags=-g +specs: +- gdb ^elfutils@0.194+debuginfod +- ... +``` + +## Full pipeline + +```mermaid +flowchart TB + subgraph Build["scripts/build-eic.sh (ENV=dbg or xl)"] + F1["SPACK_BUILDER_INSTALL_FLAGS =
SPACK_INSTALL_FLAGS + --debug-source --debug-symbols"] + end + + Build -->|--build-arg| Docker + + subgraph Env["spack.yaml (dbg/xl)"] + E1["compiler-wrapper:
require '@1.1.0-build-id'
(cherry-pick spack/spack-packages#6214)"] + end + + subgraph Wrapper["spack/compiler-wrapper#19, cc.sh"] + W1["intercepts every compile/link call"] + W2["injects -ffile-prefix-map"] + W3["injects --build-id / -Wl,--build-id"] + W1 --> W2 + W1 --> W3 + end + + E1 -.->|pins version used by| Wrapper + + subgraph Docker["containers/eic/Dockerfile — builder track"] + D1["spack install $SPACK_BUILDER_INSTALL_FLAGS
(compiles for real, dbg/xl-scoped)"] + D2["new_installer.py phase.execute()
(cherry-pick spack/spack#52949)
routed through cc.sh"] + D3["install_debug_artifacts()
split_debug_symbols()
write_gdbinit()
(cherry-pick spack/spack#52949)"] + D1 --> D2 + D2 -->|"machine-agnostic DWARF paths + build-id already embedded)"| D3 + end + + Wrapper -.->|"cc.sh invoked for
every compile unit"| D2 + + D3 -->|writes to| Cache["~/.spack/debug-sources/<pkg>-<ver>-<hash>/
captured source tree, symbols/.build-id/, gdbinit"] + + Cache -->|install completes| Hook["hooks/autopush.py :: post_install()
(cherry-pick spack/spack#52949)"] + + subgraph Hook_detail["for each autopush:true mirror (eicweb, ghcr)"] + H1["1. uploader.push_or_raise()
tag: pkg-ver-hash.spack (always)"] + H2["2. push_debug_artifacts()
tag: debuginfo-build-id (cherry-pick spack/spack#52949)"] + end + + Hook --> Hook_detail + Hook_detail -->|OCI push| Registry[("GHCR / eicweb
OCI registry")] + + Registry --> R1["pkg-ver-hash.spack
(regular buildcache)"] + Registry --> R2["debuginfo-build-id
layers: .debug + source.tar.gz (new)"] + + R1 -->|"--use-buildcache only
(unchanged behavior)"| Runtime["Runtime image stages
(all environments)"] + + R2 -->|"spack debug fetch
or spack debug serve"| Adapter + + subgraph Adapter["debuginfod-compatible adapter (spack debug serve)"] + A1["ThreadingHTTPServer
127.0.0.1:8002"] + A2["resolves /buildid/<id>/{debuginfo,source}
against OCI manifest"] + A1 --> A2 + end + + subgraph Elfutils["elfutils, libdebuginfod client"] + EL1["patched: accepts ./-relative
DWARF filenames
(cherry-pick spack/spack-packages#6259)"] + end + + Elfutils -.->|"required on the gdb host
to even send the source request"| GDB + + Adapter -->|"HTTPS: symbols + source"| GDB["gdb, DEBUGINFOD_URLS=http://127.0.0.1:8002
no rebuild needed"] +``` + +## Why this is safe for shared infrastructure + +* **Opt-in only.** `--debug-source` and `--debug-symbols` are enabled only for `dbg`/`xl`; `push_debug_artifacts` runs only when `debug_source_dir(spec)` exists. `ci`, `prod`, and other environments are unaffected. +* **Reuses existing infrastructure.** Uses the existing OCI registries (`eicweb`, `ghcr`), `autopush` hook, and credentials from `mirrors.yaml.in`. No new services, registries, or access models. +* **Build-ID-based keying.** Debug artifacts are keyed by build ID, so the same binary always resolves to the same debug data, regardless of concretization. + + +## Current scope and open questions + +* `spack debug serve` is local/on-demand (`--start-daemon`, `--stop-daemon`, `--status`), not a persistent service. +* A shared persistent debuginfod service vs. local `spack debug serve` instances using shared OCI registries remains an open infrastructure decision. + +## Related Documentation + +- [Architecture Overview](architecture.md) - Build system structure +- [Spack Environment](spack-environment.md) - Spack configuration and packages +- [Build Pipeline](build-pipeline.md) - CI workflow details \ No newline at end of file From 6ad5a7811ed06afc12372860899e9c99ecb68670 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 14 Sep 2026 22:04:51 +0000 Subject: [PATCH 23/27] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/debuggable-installations.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/debuggable-installations.md b/docs/debuggable-installations.md index 578872400..d1d11de05 100644 --- a/docs/debuggable-installations.md +++ b/docs/debuggable-installations.md @@ -145,7 +145,7 @@ flowchart TB A2["resolves /buildid/<id>/{debuginfo,source}
against OCI manifest"] A1 --> A2 end - + subgraph Elfutils["elfutils, libdebuginfod client"] EL1["patched: accepts ./-relative
DWARF filenames
(cherry-pick spack/spack-packages#6259)"] end @@ -171,4 +171,4 @@ flowchart TB - [Architecture Overview](architecture.md) - Build system structure - [Spack Environment](spack-environment.md) - Spack configuration and packages -- [Build Pipeline](build-pipeline.md) - CI workflow details \ No newline at end of file +- [Build Pipeline](build-pipeline.md) - CI workflow details From 330c8e21891c8fe8bd63eaf80e07bbf9e97a7a92 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Mon, 14 Sep 2026 16:22:34 -0600 Subject: [PATCH 24/27] fixing identation in flowchart --- docs/debuggable-installations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/debuggable-installations.md b/docs/debuggable-installations.md index d1d11de05..1d96d2776 100644 --- a/docs/debuggable-installations.md +++ b/docs/debuggable-installations.md @@ -115,7 +115,7 @@ flowchart TB D1["spack install $SPACK_BUILDER_INSTALL_FLAGS
(compiles for real, dbg/xl-scoped)"] D2["new_installer.py phase.execute()
(cherry-pick spack/spack#52949)
routed through cc.sh"] D3["install_debug_artifacts()
split_debug_symbols()
write_gdbinit()
(cherry-pick spack/spack#52949)"] - D1 --> D2 + D1 --> D2 D2 -->|"machine-agnostic DWARF paths + build-id already embedded)"| D3 end From 58da878081c4190f4879323fb0ec801c7e21654f Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Thu, 17 Sep 2026 16:05:03 -0600 Subject: [PATCH 25/27] bump debug-source autopush logging to tty.msg for CI visibility --- spack.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spack.sh b/spack.sh index 0a7619c27..6376f6c1d 100644 --- a/spack.sh +++ b/spack.sh @@ -12,7 +12,7 @@ read -r -d '' SPACK_CHERRYPICKS <<- \ --- || true 292b0dcaba3b2a5e3f9668d205d39fee2c715721 678e506a95b319c573ba7e84703b06d7275ab80e -2ba3505dd8985a0fc86695e43cae0020fc50daa8 +8d7657135a510c66add669b67cf02e01822f414f --- ## Optional hash table with comma-separated file list read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ @@ -22,6 +22,6 @@ read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ ## [hash]: [description] ## 292b0dcaba3b2a5e3f9668d205d39fee2c715721: fix: write created time field with OCI buildcache config ## 678e506a95b319c573ba7e84703b06d7275ab80e: fix: don't map prefix to view root for pkgs excluded from view -## 2ba3505dd8985a0fc86695e43cae0020fc50daa8: feat: debuggable installations (source hook, symbol +## 8d7657135a510c66add669b67cf02e01822f414f: feat: debuggable installations (source hook, symbol ## splitting, gdbinit, OCI autopush) plus debuginfod, squashed and cherry-picked via open draft ## PR spack/spack#52949 From 739953938aa621f50808831dda6fb9cbee707d87 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Thu, 17 Sep 2026 16:33:02 -0600 Subject: [PATCH 26/27] fixing else in new_installer.py for framework triggering --- spack.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spack.sh b/spack.sh index 6376f6c1d..6fa11ea4c 100644 --- a/spack.sh +++ b/spack.sh @@ -12,7 +12,7 @@ read -r -d '' SPACK_CHERRYPICKS <<- \ --- || true 292b0dcaba3b2a5e3f9668d205d39fee2c715721 678e506a95b319c573ba7e84703b06d7275ab80e -8d7657135a510c66add669b67cf02e01822f414f +a346767b52f3fed1eb8d33ffdbbec6b2dfd2d7d7 --- ## Optional hash table with comma-separated file list read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ @@ -22,6 +22,6 @@ read -r -d '' SPACK_CHERRYPICKS_FILES <<- \ ## [hash]: [description] ## 292b0dcaba3b2a5e3f9668d205d39fee2c715721: fix: write created time field with OCI buildcache config ## 678e506a95b319c573ba7e84703b06d7275ab80e: fix: don't map prefix to view root for pkgs excluded from view -## 8d7657135a510c66add669b67cf02e01822f414f: feat: debuggable installations (source hook, symbol +## a346767b52f3fed1eb8d33ffdbbec6b2dfd2d7d7: feat: debuggable installations (source hook, symbol ## splitting, gdbinit, OCI autopush) plus debuginfod, squashed and cherry-picked via open draft ## PR spack/spack#52949 From 02cf2750a341e4d92db193167b2f5d88b0bf6a77 Mon Sep 17 00:00:00 2001 From: SebastianPaucar Date: Fri, 18 Sep 2026 15:09:45 -0600 Subject: [PATCH 27/27] diag: force fresh rebuild of debug-scoped packages via yq, bypassing buildcache --- containers/eic/Dockerfile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/containers/eic/Dockerfile b/containers/eic/Dockerfile index 8f57fbe9a..1a3b85460 100644 --- a/containers/eic/Dockerfile +++ b/containers/eic/Dockerfile @@ -80,6 +80,12 @@ RUN --mount=type=cache,target=/ccache,id=ccache-${TARGETPLATFORM} \ <