From f645224cdb086f7e217304ee2c7b4862e75cc34c Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 29 Jan 2026 11:53:51 -0700 Subject: [PATCH 01/16] Update .gitmodules and submodule pointer for repos/builtin for code review and testing --- .gitmodules | 6 ++++-- repos/builtin | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 2f6cb0566..7b96a63e1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,5 +4,7 @@ branch = spack-stack-dev [submodule "repos/builtin"] path = repos/builtin - url = https://github.com/jcsda/spack-packages - branch = spack-stack-dev + #url = https://github.com/jcsda/spack-packages + #branch = spack-stack-dev + url = https://github.com/climbfuji/spack-packages + branch = bugfix/gh_disable_cgo \ No newline at end of file diff --git a/repos/builtin b/repos/builtin index 70baff9fe..ffa33b2c3 160000 --- a/repos/builtin +++ b/repos/builtin @@ -1 +1 @@ -Subproject commit 70baff9fea93d96f35d86b476978d22945ac1f57 +Subproject commit ffa33b2c39f1f1afa396194ab6eecad7e03c450b From 9c503cdea51875710d12ec8f1531d64bf1dc9172 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 29 Jan 2026 14:44:33 -0700 Subject: [PATCH 02/16] Comment out local-source mirrors and revert temporary spack-v1 build cache locations for all NRL systems --- configs/sites/tier1/atlantis/mirrors.yaml | 4 ++-- configs/sites/tier1/blueback/mirrors.yaml | 4 ++-- configs/sites/tier1/narwhal/mirrors.yaml | 4 ++-- configs/sites/tier1/nautilus/mirrors.yaml | 4 ++-- configs/sites/tier1/navy-aws/mirrors.yaml | 3 +-- configs/sites/tier2/blackpearl/mirrors.yaml | 4 ++-- configs/sites/tier2/bounty/mirrors.yaml | 4 ++-- configs/sites/tier2/cole/mirrors.yaml | 2 +- configs/sites/tier2/jean/mirrors.yaml | 4 ++-- configs/sites/tier2/tusk/mirrors.yaml | 2 +- configs/sites/tier2/wheat/mirrors.yaml | 4 ++-- 11 files changed, 19 insertions(+), 20 deletions(-) diff --git a/configs/sites/tier1/atlantis/mirrors.yaml b/configs/sites/tier1/atlantis/mirrors.yaml index 3d46a2a85..4ca39f75b 100644 --- a/configs/sites/tier1/atlantis/mirrors.yaml +++ b/configs/sites/tier1/atlantis/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - local-source: file:///neptune_diagnostics/spack-stack/source-cache - local-binary: file:///neptune_diagnostics/spack-stack/build-cache-spack-v1 + #local-source: file:///neptune_diagnostics/spack-stack/source-cache + local-binary: file:///neptune_diagnostics/spack-stack/build-cache diff --git a/configs/sites/tier1/blueback/mirrors.yaml b/configs/sites/tier1/blueback/mirrors.yaml index 89b596407..37519ec6c 100644 --- a/configs/sites/tier1/blueback/mirrors.yaml +++ b/configs/sites/tier1/blueback/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - local-source: file:///p/cwfs/projects/NEPTUNE/spack-stack/source-cache - local-binary: file:///p/cwfs/projects/NEPTUNE/spack-stack/build-cache-spack-v1 + #local-source: file:///p/cwfs/projects/NEPTUNE/spack-stack/source-cache + local-binary: file:///p/cwfs/projects/NEPTUNE/spack-stack/build-cache diff --git a/configs/sites/tier1/narwhal/mirrors.yaml b/configs/sites/tier1/narwhal/mirrors.yaml index 89b596407..37519ec6c 100644 --- a/configs/sites/tier1/narwhal/mirrors.yaml +++ b/configs/sites/tier1/narwhal/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - local-source: file:///p/cwfs/projects/NEPTUNE/spack-stack/source-cache - local-binary: file:///p/cwfs/projects/NEPTUNE/spack-stack/build-cache-spack-v1 + #local-source: file:///p/cwfs/projects/NEPTUNE/spack-stack/source-cache + local-binary: file:///p/cwfs/projects/NEPTUNE/spack-stack/build-cache diff --git a/configs/sites/tier1/nautilus/mirrors.yaml b/configs/sites/tier1/nautilus/mirrors.yaml index 89b596407..37519ec6c 100644 --- a/configs/sites/tier1/nautilus/mirrors.yaml +++ b/configs/sites/tier1/nautilus/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - local-source: file:///p/cwfs/projects/NEPTUNE/spack-stack/source-cache - local-binary: file:///p/cwfs/projects/NEPTUNE/spack-stack/build-cache-spack-v1 + #local-source: file:///p/cwfs/projects/NEPTUNE/spack-stack/source-cache + local-binary: file:///p/cwfs/projects/NEPTUNE/spack-stack/build-cache diff --git a/configs/sites/tier1/navy-aws/mirrors.yaml b/configs/sites/tier1/navy-aws/mirrors.yaml index 696c473d2..41b4fab1b 100644 --- a/configs/sites/tier1/navy-aws/mirrors.yaml +++ b/configs/sites/tier1/navy-aws/mirrors.yaml @@ -1,4 +1,3 @@ mirrors: - local-source: file:///project/spack-stack/source-cache + #local-source: file:///project/spack-stack/source-cache local-binary: file:///project/spack-stack/build-cache - diff --git a/configs/sites/tier2/blackpearl/mirrors.yaml b/configs/sites/tier2/blackpearl/mirrors.yaml index a8199be76..254b546c5 100644 --- a/configs/sites/tier2/blackpearl/mirrors.yaml +++ b/configs/sites/tier2/blackpearl/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - local-source: file:///home/dom/prod/spack-source-cache - local-binary: file:///home/dom/prod/spack-build-cache-spack-v1 + #local-source: file:///home/dom/prod/spack-source-cache + local-binary: file:///home/dom/prod/spack-build-cache diff --git a/configs/sites/tier2/bounty/mirrors.yaml b/configs/sites/tier2/bounty/mirrors.yaml index a8199be76..254b546c5 100644 --- a/configs/sites/tier2/bounty/mirrors.yaml +++ b/configs/sites/tier2/bounty/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - local-source: file:///home/dom/prod/spack-source-cache - local-binary: file:///home/dom/prod/spack-build-cache-spack-v1 + #local-source: file:///home/dom/prod/spack-source-cache + local-binary: file:///home/dom/prod/spack-build-cache diff --git a/configs/sites/tier2/cole/mirrors.yaml b/configs/sites/tier2/cole/mirrors.yaml index be229b0ec..fd36ba542 100644 --- a/configs/sites/tier2/cole/mirrors.yaml +++ b/configs/sites/tier2/cole/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - local-source: file:///p/work1/heinzell/spack-stack/source-cache + #local-source: file:///p/work1/heinzell/spack-stack/source-cache local-binary: file:///p/work1/heinzell/spack-stack/build-cache diff --git a/configs/sites/tier2/jean/mirrors.yaml b/configs/sites/tier2/jean/mirrors.yaml index 781f20a16..b48b41cae 100644 --- a/configs/sites/tier2/jean/mirrors.yaml +++ b/configs/sites/tier2/jean/mirrors.yaml @@ -1,4 +1,4 @@ mirrors: # DH* 20250616 TEMPORARY PATHS! - local-source: file:///p/work1/heinzell/spst-jean/source-cache - local-binary: file:///p/work1/heinzell/spst-jean/build-cache-spack-v1 + #local-source: file:///p/work1/heinzell/spst-jean/source-cache + local-binary: file:///p/work1/heinzell/spst-jean/build-cache diff --git a/configs/sites/tier2/tusk/mirrors.yaml b/configs/sites/tier2/tusk/mirrors.yaml index be229b0ec..fd36ba542 100644 --- a/configs/sites/tier2/tusk/mirrors.yaml +++ b/configs/sites/tier2/tusk/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - local-source: file:///p/work1/heinzell/spack-stack/source-cache + #local-source: file:///p/work1/heinzell/spack-stack/source-cache local-binary: file:///p/work1/heinzell/spack-stack/build-cache diff --git a/configs/sites/tier2/wheat/mirrors.yaml b/configs/sites/tier2/wheat/mirrors.yaml index 6fe7e540c..93e20271a 100644 --- a/configs/sites/tier2/wheat/mirrors.yaml +++ b/configs/sites/tier2/wheat/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - local-source: file:///p/global/Projects/NEPTUNE/spack-stack/source-cache - local-binary: file:///p/global/Projects/NEPTUNE/spack-stack/build-cache-spack-v1 + #local-source: file:///p/global/Projects/NEPTUNE/spack-stack/source-cache + local-binary: file:///p/global/Projects/NEPTUNE/spack-stack/build-cache From 8e6bc009650c375abb55a803695ddc99b19f7974 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 29 Jan 2026 14:44:54 -0700 Subject: [PATCH 03/16] Add logic to add temporary source caches after concretization --- util/nrl/batch_install.sh | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/util/nrl/batch_install.sh b/util/nrl/batch_install.sh index 604861e6b..c567c8161 100755 --- a/util/nrl/batch_install.sh +++ b/util/nrl/batch_install.sh @@ -115,6 +115,7 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="lmod" SPACK_STACK_BOOTSTRAP_MIRROR="/neptune_diagnostics/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/neptune_diagnostics/spack-stack/cargo-mirror" + SPACK_STACK_SOURCE_MIRROR="/neptune_diagnostics/spack-stack/source-cache" ;; blueback) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2025.0.4" "gcc@=13.3.0") # oneapi@=2025.2.1 @@ -122,6 +123,7 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/cargo-mirror" + SPACK_STACK_SOURCE_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/source-cache" ;; cole) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2024.2.1" "gcc@=12.3.0") @@ -129,6 +131,7 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/p/work1/heinzell/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/p/work1/heinzell/spack-stack/cargo-mirror" + SPACK_STACK_SOURCE_MIRROR="/p/work1/heinzell/spack-stack/source-cache" ;; narwhal) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2024.2.0" "gcc@=12.2.0") @@ -136,6 +139,7 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/cargo-mirror" + SPACK_STACK_SOURCE_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/source-cache" ;; nautilus) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2025.3.0" "gcc@=13.3.1") @@ -143,6 +147,7 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/cargo-mirror" + SPACK_STACK_SOURCE_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/source-cache" ;; navy-aws) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2025.3.0" "gcc@=13.4.0") @@ -150,6 +155,7 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/project/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/project/spack-stack/cargo-mirror" + SPACK_STACK_SOURCE_MIRROR="/project/spack-stack/source-cache" ;; tusk) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2024.2.0" "gcc@=12.1.0") @@ -157,6 +163,7 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/p/work1/heinzell/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/p/work1/heinzell/spack-stack/cargo-mirror" + SPACK_STACK_SOURCE_MIRROR="/p/work1/heinzell/spack-stack/source-cache" ;; blackpearl) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2024.2.1" "gcc@=13.2.1") @@ -164,6 +171,7 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/home/dom/prod/spack-bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/home/dom/prod/spack-cargo-mirror" + SPACK_STACK_SOURCE_MIRROR="/home/dom/prod/source-cache" ;; bounty) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2025.3.0" "gcc@=13.3.1" "clang@=21.1.1") @@ -171,6 +179,7 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/home/dom/prod/spack-bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/home/dom/prod/spack-cargo-mirror" + SPACK_STACK_SOURCE_MIRROR="/home/dom/prod/source-cache" ;; *) echo "ERROR, host ${SPACK_STACK_BATCH_HOST} not configured" @@ -279,6 +288,7 @@ module_choice=${SPACK_STACK_MODULE_CHOICE} bootstrap_mirror_path=${SPACK_STACK_BOOTSTRAP_MIRROR} cargo_mirror_path=${SPACK_STACK_CARGO_MIRROR} export CARGO_HOME=${cargo_mirror_path} +source_mirror_path=${SPACK_STACK_SOURCE_MIRROR} if [[ -z ${SPACK_STACK_ENVIRONMENT_DIRS} ]]; then environment_dirs=${PWD}/envs @@ -523,13 +533,6 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do set -e fi - # Check that the site has mirrors configured for local source and build caches, - # and extract the local path on disk. Need to strip leading "file://" from path - result=$(spack mirror list | grep local-source) || \ - (echo "ERROR, no local source cache configured" && exit 1) - source_mirror_path=$(echo ${result} | cut -d " " -f 3) - source_mirror_path=${source_mirror_path:7} - echo "Spack source mirror path: ${source_mirror_path}" # For build caches, additional logic is needed. If buildcache_dir is defined, # update the location of the default build cache to this directory. result=$(spack mirror list | grep local-binary) || \ @@ -563,6 +566,10 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do # Check for duplicate packages ./util/show_duplicate_packages.py -i crtm -i crtm-fix -i esmf -i mapl -i neptune-env -i py-cython -i ip -i fms + # Add the source mirror/cache to the environment + echo "Spack source mirror path: ${source_mirror_path}" + spack mirror add local-source file://${source_mirror_path} + # Update local source cache if requested if [[ "${update_source_cache}" == "true"* ]]; then echo "Updating local source cache ..." From 06628d01394b1637a7dbc00f4d0bb011a9b0a562 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 29 Jan 2026 20:35:28 -0700 Subject: [PATCH 04/16] Bug fix in util/nrl/batch_install.sh --- util/nrl/batch_install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/nrl/batch_install.sh b/util/nrl/batch_install.sh index c567c8161..55b63455d 100755 --- a/util/nrl/batch_install.sh +++ b/util/nrl/batch_install.sh @@ -171,7 +171,7 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/home/dom/prod/spack-bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/home/dom/prod/spack-cargo-mirror" - SPACK_STACK_SOURCE_MIRROR="/home/dom/prod/source-cache" + SPACK_STACK_SOURCE_MIRROR="/home/dom/prod/spack-source-cache" ;; bounty) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2025.3.0" "gcc@=13.3.1" "clang@=21.1.1") @@ -179,7 +179,7 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/home/dom/prod/spack-bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/home/dom/prod/spack-cargo-mirror" - SPACK_STACK_SOURCE_MIRROR="/home/dom/prod/source-cache" + SPACK_STACK_SOURCE_MIRROR="/home/dom/prod/spack-source-cache" ;; *) echo "ERROR, host ${SPACK_STACK_BATCH_HOST} not configured" From e8448e2e6e047312d63493df120b45e87c4be52f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 30 Jan 2026 07:54:11 -0700 Subject: [PATCH 05/16] Revert spack source-cache changes for NRL sites --- configs/sites/tier1/atlantis/mirrors.yaml | 2 +- configs/sites/tier1/blueback/mirrors.yaml | 2 +- configs/sites/tier1/narwhal/mirrors.yaml | 2 +- configs/sites/tier1/nautilus/mirrors.yaml | 2 +- configs/sites/tier1/navy-aws/mirrors.yaml | 2 +- configs/sites/tier2/blackpearl/mirrors.yaml | 2 +- configs/sites/tier2/bounty/mirrors.yaml | 2 +- configs/sites/tier2/cole/mirrors.yaml | 2 +- configs/sites/tier2/jean/mirrors.yaml | 2 +- configs/sites/tier2/tusk/mirrors.yaml | 2 +- configs/sites/tier2/wheat/mirrors.yaml | 2 +- util/nrl/batch_install.sh | 21 +++++++-------------- 12 files changed, 18 insertions(+), 25 deletions(-) diff --git a/configs/sites/tier1/atlantis/mirrors.yaml b/configs/sites/tier1/atlantis/mirrors.yaml index 4ca39f75b..d2371749e 100644 --- a/configs/sites/tier1/atlantis/mirrors.yaml +++ b/configs/sites/tier1/atlantis/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - #local-source: file:///neptune_diagnostics/spack-stack/source-cache + local-source: file:///neptune_diagnostics/spack-stack/source-cache local-binary: file:///neptune_diagnostics/spack-stack/build-cache diff --git a/configs/sites/tier1/blueback/mirrors.yaml b/configs/sites/tier1/blueback/mirrors.yaml index 37519ec6c..5b06fc3fb 100644 --- a/configs/sites/tier1/blueback/mirrors.yaml +++ b/configs/sites/tier1/blueback/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - #local-source: file:///p/cwfs/projects/NEPTUNE/spack-stack/source-cache + local-source: file:///p/cwfs/projects/NEPTUNE/spack-stack/source-cache local-binary: file:///p/cwfs/projects/NEPTUNE/spack-stack/build-cache diff --git a/configs/sites/tier1/narwhal/mirrors.yaml b/configs/sites/tier1/narwhal/mirrors.yaml index 37519ec6c..5b06fc3fb 100644 --- a/configs/sites/tier1/narwhal/mirrors.yaml +++ b/configs/sites/tier1/narwhal/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - #local-source: file:///p/cwfs/projects/NEPTUNE/spack-stack/source-cache + local-source: file:///p/cwfs/projects/NEPTUNE/spack-stack/source-cache local-binary: file:///p/cwfs/projects/NEPTUNE/spack-stack/build-cache diff --git a/configs/sites/tier1/nautilus/mirrors.yaml b/configs/sites/tier1/nautilus/mirrors.yaml index 37519ec6c..5b06fc3fb 100644 --- a/configs/sites/tier1/nautilus/mirrors.yaml +++ b/configs/sites/tier1/nautilus/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - #local-source: file:///p/cwfs/projects/NEPTUNE/spack-stack/source-cache + local-source: file:///p/cwfs/projects/NEPTUNE/spack-stack/source-cache local-binary: file:///p/cwfs/projects/NEPTUNE/spack-stack/build-cache diff --git a/configs/sites/tier1/navy-aws/mirrors.yaml b/configs/sites/tier1/navy-aws/mirrors.yaml index 41b4fab1b..bb4f7fcd6 100644 --- a/configs/sites/tier1/navy-aws/mirrors.yaml +++ b/configs/sites/tier1/navy-aws/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - #local-source: file:///project/spack-stack/source-cache + local-source: file:///project/spack-stack/source-cache local-binary: file:///project/spack-stack/build-cache diff --git a/configs/sites/tier2/blackpearl/mirrors.yaml b/configs/sites/tier2/blackpearl/mirrors.yaml index 254b546c5..24277c0eb 100644 --- a/configs/sites/tier2/blackpearl/mirrors.yaml +++ b/configs/sites/tier2/blackpearl/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - #local-source: file:///home/dom/prod/spack-source-cache + local-source: file:///home/dom/prod/spack-source-cache local-binary: file:///home/dom/prod/spack-build-cache diff --git a/configs/sites/tier2/bounty/mirrors.yaml b/configs/sites/tier2/bounty/mirrors.yaml index 254b546c5..24277c0eb 100644 --- a/configs/sites/tier2/bounty/mirrors.yaml +++ b/configs/sites/tier2/bounty/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - #local-source: file:///home/dom/prod/spack-source-cache + local-source: file:///home/dom/prod/spack-source-cache local-binary: file:///home/dom/prod/spack-build-cache diff --git a/configs/sites/tier2/cole/mirrors.yaml b/configs/sites/tier2/cole/mirrors.yaml index fd36ba542..be229b0ec 100644 --- a/configs/sites/tier2/cole/mirrors.yaml +++ b/configs/sites/tier2/cole/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - #local-source: file:///p/work1/heinzell/spack-stack/source-cache + local-source: file:///p/work1/heinzell/spack-stack/source-cache local-binary: file:///p/work1/heinzell/spack-stack/build-cache diff --git a/configs/sites/tier2/jean/mirrors.yaml b/configs/sites/tier2/jean/mirrors.yaml index b48b41cae..0c98ed72a 100644 --- a/configs/sites/tier2/jean/mirrors.yaml +++ b/configs/sites/tier2/jean/mirrors.yaml @@ -1,4 +1,4 @@ mirrors: # DH* 20250616 TEMPORARY PATHS! - #local-source: file:///p/work1/heinzell/spst-jean/source-cache + local-source: file:///p/work1/heinzell/spst-jean/source-cache local-binary: file:///p/work1/heinzell/spst-jean/build-cache diff --git a/configs/sites/tier2/tusk/mirrors.yaml b/configs/sites/tier2/tusk/mirrors.yaml index fd36ba542..be229b0ec 100644 --- a/configs/sites/tier2/tusk/mirrors.yaml +++ b/configs/sites/tier2/tusk/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - #local-source: file:///p/work1/heinzell/spack-stack/source-cache + local-source: file:///p/work1/heinzell/spack-stack/source-cache local-binary: file:///p/work1/heinzell/spack-stack/build-cache diff --git a/configs/sites/tier2/wheat/mirrors.yaml b/configs/sites/tier2/wheat/mirrors.yaml index 93e20271a..5a8e80489 100644 --- a/configs/sites/tier2/wheat/mirrors.yaml +++ b/configs/sites/tier2/wheat/mirrors.yaml @@ -1,3 +1,3 @@ mirrors: - #local-source: file:///p/global/Projects/NEPTUNE/spack-stack/source-cache + local-source: file:///p/global/Projects/NEPTUNE/spack-stack/source-cache local-binary: file:///p/global/Projects/NEPTUNE/spack-stack/build-cache diff --git a/util/nrl/batch_install.sh b/util/nrl/batch_install.sh index 55b63455d..604861e6b 100755 --- a/util/nrl/batch_install.sh +++ b/util/nrl/batch_install.sh @@ -115,7 +115,6 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="lmod" SPACK_STACK_BOOTSTRAP_MIRROR="/neptune_diagnostics/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/neptune_diagnostics/spack-stack/cargo-mirror" - SPACK_STACK_SOURCE_MIRROR="/neptune_diagnostics/spack-stack/source-cache" ;; blueback) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2025.0.4" "gcc@=13.3.0") # oneapi@=2025.2.1 @@ -123,7 +122,6 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/cargo-mirror" - SPACK_STACK_SOURCE_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/source-cache" ;; cole) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2024.2.1" "gcc@=12.3.0") @@ -131,7 +129,6 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/p/work1/heinzell/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/p/work1/heinzell/spack-stack/cargo-mirror" - SPACK_STACK_SOURCE_MIRROR="/p/work1/heinzell/spack-stack/source-cache" ;; narwhal) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2024.2.0" "gcc@=12.2.0") @@ -139,7 +136,6 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/cargo-mirror" - SPACK_STACK_SOURCE_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/source-cache" ;; nautilus) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2025.3.0" "gcc@=13.3.1") @@ -147,7 +143,6 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/cargo-mirror" - SPACK_STACK_SOURCE_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/source-cache" ;; navy-aws) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2025.3.0" "gcc@=13.4.0") @@ -155,7 +150,6 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/project/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/project/spack-stack/cargo-mirror" - SPACK_STACK_SOURCE_MIRROR="/project/spack-stack/source-cache" ;; tusk) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2024.2.0" "gcc@=12.1.0") @@ -163,7 +157,6 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/p/work1/heinzell/spack-stack/bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/p/work1/heinzell/spack-stack/cargo-mirror" - SPACK_STACK_SOURCE_MIRROR="/p/work1/heinzell/spack-stack/source-cache" ;; blackpearl) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2024.2.1" "gcc@=13.2.1") @@ -171,7 +164,6 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/home/dom/prod/spack-bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/home/dom/prod/spack-cargo-mirror" - SPACK_STACK_SOURCE_MIRROR="/home/dom/prod/spack-source-cache" ;; bounty) SPACK_STACK_BATCH_COMPILERS=("oneapi@=2025.3.0" "gcc@=13.3.1" "clang@=21.1.1") @@ -179,7 +171,6 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/home/dom/prod/spack-bootstrap-mirror" SPACK_STACK_CARGO_MIRROR="/home/dom/prod/spack-cargo-mirror" - SPACK_STACK_SOURCE_MIRROR="/home/dom/prod/spack-source-cache" ;; *) echo "ERROR, host ${SPACK_STACK_BATCH_HOST} not configured" @@ -288,7 +279,6 @@ module_choice=${SPACK_STACK_MODULE_CHOICE} bootstrap_mirror_path=${SPACK_STACK_BOOTSTRAP_MIRROR} cargo_mirror_path=${SPACK_STACK_CARGO_MIRROR} export CARGO_HOME=${cargo_mirror_path} -source_mirror_path=${SPACK_STACK_SOURCE_MIRROR} if [[ -z ${SPACK_STACK_ENVIRONMENT_DIRS} ]]; then environment_dirs=${PWD}/envs @@ -533,6 +523,13 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do set -e fi + # Check that the site has mirrors configured for local source and build caches, + # and extract the local path on disk. Need to strip leading "file://" from path + result=$(spack mirror list | grep local-source) || \ + (echo "ERROR, no local source cache configured" && exit 1) + source_mirror_path=$(echo ${result} | cut -d " " -f 3) + source_mirror_path=${source_mirror_path:7} + echo "Spack source mirror path: ${source_mirror_path}" # For build caches, additional logic is needed. If buildcache_dir is defined, # update the location of the default build cache to this directory. result=$(spack mirror list | grep local-binary) || \ @@ -566,10 +563,6 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do # Check for duplicate packages ./util/show_duplicate_packages.py -i crtm -i crtm-fix -i esmf -i mapl -i neptune-env -i py-cython -i ip -i fms - # Add the source mirror/cache to the environment - echo "Spack source mirror path: ${source_mirror_path}" - spack mirror add local-source file://${source_mirror_path} - # Update local source cache if requested if [[ "${update_source_cache}" == "true"* ]]; then echo "Updating local source cache ..." From af42f4ad5045f75206bf07653d30d17d1f91187b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 30 Jan 2026 08:52:27 -0700 Subject: [PATCH 06/16] Revert .gitmodules and update submodule pointer for repos/builtin --- .gitmodules | 6 ++---- repos/builtin | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index 7b96a63e1..630ba9256 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,7 +4,5 @@ branch = spack-stack-dev [submodule "repos/builtin"] path = repos/builtin - #url = https://github.com/jcsda/spack-packages - #branch = spack-stack-dev - url = https://github.com/climbfuji/spack-packages - branch = bugfix/gh_disable_cgo \ No newline at end of file + url = https://github.com/jcsda/spack-packages + branch = spack-stack-dev \ No newline at end of file diff --git a/repos/builtin b/repos/builtin index ffa33b2c3..7d6c16b4e 160000 --- a/repos/builtin +++ b/repos/builtin @@ -1 +1 @@ -Subproject commit ffa33b2c39f1f1afa396194ab6eecad7e03c450b +Subproject commit 7d6c16b4e46c65c962d6a2770835bee61f9a5737 From 33c9103821e4901d3dc002cc33704329a742924a Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 30 Jan 2026 09:20:47 -0700 Subject: [PATCH 07/16] Apply suggestion from @climbfuji --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 630ba9256..2f6cb0566 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,4 +5,4 @@ [submodule "repos/builtin"] path = repos/builtin url = https://github.com/jcsda/spack-packages - branch = spack-stack-dev \ No newline at end of file + branch = spack-stack-dev From 586ef760178b39bfa44e83885761cb423ac7bf58 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 30 Jan 2026 10:40:08 -0700 Subject: [PATCH 08/16] [skip ci] Update util/nrl/batch_install.sh: create bootstrap mirror separately from the environments --- util/nrl/batch_install.sh | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/util/nrl/batch_install.sh b/util/nrl/batch_install.sh index 604861e6b..412f29db7 100755 --- a/util/nrl/batch_install.sh +++ b/util/nrl/batch_install.sh @@ -481,6 +481,22 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do source setup.sh spack clean -a + # Update bootstrap mirror if requested before creating any + # environments. It is sufficient to do this one time only. + if [[ "${update_bootstrap_mirror}" == "true"* ]]; then + tmp_bootstrap_mirror_path=${PWD}/tmp-bootstrap-mirror + echo "Creating bootstrap mirror ${tmp_bootstrap_mirror_path} ..." + rm -fr ${tmp_bootstrap_mirror_path} + spack bootstrap mirror --binary-packages ${tmp_bootstrap_mirror_path} 2>&1 | tee log.bootstrap-mirror.001 + rsync -a ${tmp_bootstrap_mirror_path}/ ${bootstrap_mirror_path}/ + rm -fr ${tmp_bootstrap_mirror_path} + # Update buildcache index + spack buildcache update-index ${bootstrap_mirror_path}/bootstrap_cache + # Fix permissions for the bootstrap mirror + fix_permissions ${host} ${bootstrap_mirror_path} 0 + update_bootstrap_mirror="false" + fi + if [[ ! ${env_exists} == "true" ]]; then spack stack create env --name=${env_name} \ --site=${host} \ @@ -495,18 +511,6 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do # Workaround for ParallelWorks (no NRL Enterprise GitHub access yet) sed -i 's/+adp/~adp/g' ${env_dir}/spack.yaml - # Update bootstrap mirror if requested - if [[ "${update_bootstrap_mirror}" == "true"* ]]; then - tmp_bootstrap_mirror_path=${PWD}/tmp-bootstrap-mirror-${env_name} - echo "Creating bootstrap mirror ${tmp_bootstrap_mirror_path} ..." - rm -fr ${tmp_bootstrap_mirror_path} - spack bootstrap mirror --binary-packages ${tmp_bootstrap_mirror_path} 2>&1 | tee log.bootstrap-mirror.${env_name}.001 - rsync -a ${tmp_bootstrap_mirror_path}/ ${bootstrap_mirror_path}/ - rm -fr ${tmp_bootstrap_mirror_path} - # Update buildcache index - spack buildcache update-index ${bootstrap_mirror_path}/bootstrap_cache - fi - echo "Registering bootstrap mirror ${bootstrap_mirror_path} ..." if [[ ! -d ${bootstrap_mirror_path} ]]; then echo "ERROR, directory ${bootstrap_mirror_path} not found" @@ -610,9 +614,6 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do # When creating or updating buildcaches, fix permissions for mirrors. # Mirrors do not contain executables, therefore skip looking for them. - if [[ "${update_bootstrap_mirror}" == "true" ]]; then - fix_permissions ${host} ${bootstrap_mirror_path} 0 - fi if [[ "${update_source_cache}" == "true" ]]; then fix_permissions ${host} ${source_mirror_path} 0 fi From 10ec4c2e37cf00f8dd268dbc950fe68fed3c7c62 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 2 Feb 2026 10:25:08 -0700 Subject: [PATCH 09/16] Add configs/sites/tier1/nautilus/packages_oneapi-2024.2.1.yaml --- .../nautilus/packages_oneapi-2024.2.1.yaml | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 configs/sites/tier1/nautilus/packages_oneapi-2024.2.1.yaml diff --git a/configs/sites/tier1/nautilus/packages_oneapi-2024.2.1.yaml b/configs/sites/tier1/nautilus/packages_oneapi-2024.2.1.yaml new file mode 100644 index 000000000..95166c31d --- /dev/null +++ b/configs/sites/tier1/nautilus/packages_oneapi-2024.2.1.yaml @@ -0,0 +1,57 @@ +packages: + all: + require: + - any_of: ['%intel-oneapi-compilers@=2024.2.1'] + when: '%intel-oneapi-compilers' + - any_of: ['%gcc@=11.2.1'] + when: '%gcc' + mpi: + buildable: false + require: + - intel-oneapi-mpi@2021.13 + intel-oneapi-compilers: + buildable: false + externals: + - spec: intel-oneapi-compilers@2024.2.1 + prefix: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1 + modules: + - tbb/2021.13 + - compiler-rt/2024.2.1 + - compiler/2024.2.1 + extra_attributes: + compilers: + c: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1/compiler/2024.2/bin/icx + cxx: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1/compiler/2024.2/bin/icpx + fortran: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1/compiler/2024.2/bin/ifort + environment: + prepend_path: + PATH: /opt/rh/gcc-toolset-11/root/usr/bin + CPATH: /opt/rh/gcc-toolset-11/root/usr/include + extra_rpaths: + - /opt/rh/gcc-toolset-11/root/usr/lib64 + - /opt/rh/gcc-toolset-11/root/usr/lib + gcc: + buildable: false + externals: + - spec: gcc@11.2.1 languages:='c,c++' + prefix: /opt/rh/gcc-toolset-11/root/usr + modules: + - scl/gcc-toolset-11 + extra_attributes: + compilers: + c: /opt/rh/gcc-toolset-11/root/usr/bin/gcc + cxx: /opt/rh/gcc-toolset-11/root/usr/bin/g++ + fortran: /opt/rh/gcc-toolset-11/root/usr/bin/gfortran + intel-oneapi-mpi: + buildable: false + externals: + - spec: intel-oneapi-mpi@2021.13 + prefix: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1 + modules: + - mpi/2021.13 + - slurm + intel-oneapi-mkl: + buildable: false + externals: + - spec: intel-oneapi-mkl@2024.2 + prefix: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1 From 8e18d7e5464c50a555c64886ed8481b24d550cd0 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 2 Feb 2026 10:25:51 -0700 Subject: [PATCH 10/16] Update NRL sites: pin compilers to specific versions --- configs/sites/tier1/atlantis/packages_clang-21.1.0.yaml | 4 ++++ configs/sites/tier1/atlantis/packages_gcc-13.4.0.yaml | 4 ++++ configs/sites/tier1/atlantis/packages_oneapi-2024.2.1.yaml | 6 ++++++ configs/sites/tier1/atlantis/packages_oneapi-2025.3.0.yaml | 6 ++++++ configs/sites/tier1/blueback/packages_gcc-13.3.0.yaml | 4 ++++ configs/sites/tier1/blueback/packages_oneapi-2025.0.4.yaml | 6 ++++++ configs/sites/tier1/narwhal/packages_gcc-12.2.0.yaml | 4 ++++ configs/sites/tier1/narwhal/packages_oneapi-2024.2.0.yaml | 6 ++++++ configs/sites/tier1/nautilus/packages_gcc-13.3.1.yaml | 4 ++++ configs/sites/tier1/nautilus/packages_oneapi-2025.3.0.yaml | 6 ++++++ configs/sites/tier2/blackpearl/packages_gcc-13.2.1.yaml | 4 ++++ .../sites/tier2/blackpearl/packages_oneapi-2024.2.1.yaml | 6 ++++++ configs/sites/tier2/bounty/packages_clang-21.1.1.yaml | 4 ++++ configs/sites/tier2/bounty/packages_gcc-13.3.1.yaml | 4 ++++ configs/sites/tier2/bounty/packages_oneapi-2025.3.0.yaml | 6 ++++++ 15 files changed, 74 insertions(+) diff --git a/configs/sites/tier1/atlantis/packages_clang-21.1.0.yaml b/configs/sites/tier1/atlantis/packages_clang-21.1.0.yaml index 2ee2afaf6..221d2f1d0 100644 --- a/configs/sites/tier1/atlantis/packages_clang-21.1.0.yaml +++ b/configs/sites/tier1/atlantis/packages_clang-21.1.0.yaml @@ -1,4 +1,8 @@ packages: + all: + require: + - any_of: ['%llvm@=21.1.0'] + when: '%llvm' mpi: buildable: False require: diff --git a/configs/sites/tier1/atlantis/packages_gcc-13.4.0.yaml b/configs/sites/tier1/atlantis/packages_gcc-13.4.0.yaml index 3adfb1dcc..f679ce2bf 100644 --- a/configs/sites/tier1/atlantis/packages_gcc-13.4.0.yaml +++ b/configs/sites/tier1/atlantis/packages_gcc-13.4.0.yaml @@ -1,4 +1,8 @@ packages: + all: + require: + - any_of: ['%gcc@=13.4.0'] + when: '%gcc' mpi: buildable: False require: diff --git a/configs/sites/tier1/atlantis/packages_oneapi-2024.2.1.yaml b/configs/sites/tier1/atlantis/packages_oneapi-2024.2.1.yaml index 25e83ccf6..bf6bd097f 100644 --- a/configs/sites/tier1/atlantis/packages_oneapi-2024.2.1.yaml +++ b/configs/sites/tier1/atlantis/packages_oneapi-2024.2.1.yaml @@ -1,4 +1,10 @@ packages: + all: + require: + - any_of: ['%intel-oneapi-compilers@=2024.2.1'] + when: '%intel-oneapi-compilers' + - any_of: ['%gcc@=11.2.0'] + when: '%gcc' mpi: buildable: false require: diff --git a/configs/sites/tier1/atlantis/packages_oneapi-2025.3.0.yaml b/configs/sites/tier1/atlantis/packages_oneapi-2025.3.0.yaml index ca673fce0..40749709b 100644 --- a/configs/sites/tier1/atlantis/packages_oneapi-2025.3.0.yaml +++ b/configs/sites/tier1/atlantis/packages_oneapi-2025.3.0.yaml @@ -1,4 +1,10 @@ packages: + all: + require: + - any_of: ['%intel-oneapi-compilers@=2025.3.0'] + when: '%intel-oneapi-compilers' + - any_of: ['%gcc@=11.2.0'] + when: '%gcc' mpi: buildable: false require: diff --git a/configs/sites/tier1/blueback/packages_gcc-13.3.0.yaml b/configs/sites/tier1/blueback/packages_gcc-13.3.0.yaml index 78fb81ee6..1c49a5fa4 100644 --- a/configs/sites/tier1/blueback/packages_gcc-13.3.0.yaml +++ b/configs/sites/tier1/blueback/packages_gcc-13.3.0.yaml @@ -1,4 +1,8 @@ packages: + all: + require: + - any_of: ['%gcc@=13.3.0'] + when: '%gcc' mpi: buildable: false require: diff --git a/configs/sites/tier1/blueback/packages_oneapi-2025.0.4.yaml b/configs/sites/tier1/blueback/packages_oneapi-2025.0.4.yaml index 0924a7055..13fe28a26 100644 --- a/configs/sites/tier1/blueback/packages_oneapi-2025.0.4.yaml +++ b/configs/sites/tier1/blueback/packages_oneapi-2025.0.4.yaml @@ -1,4 +1,10 @@ packages: + all: + require: + - any_of: ['%intel-oneapi-compilers@=2025.0.4'] + when: '%intel-oneapi-compilers' + - any_of: ['%gcc@=13.3.0'] + when: '%gcc' mpi: buildable: false require: diff --git a/configs/sites/tier1/narwhal/packages_gcc-12.2.0.yaml b/configs/sites/tier1/narwhal/packages_gcc-12.2.0.yaml index eddc18aff..6aee77338 100644 --- a/configs/sites/tier1/narwhal/packages_gcc-12.2.0.yaml +++ b/configs/sites/tier1/narwhal/packages_gcc-12.2.0.yaml @@ -1,4 +1,8 @@ packages: + all: + require: + - any_of: ['%gcc@=12.2.0'] + when: '%gcc' mpi: buildable: false require: diff --git a/configs/sites/tier1/narwhal/packages_oneapi-2024.2.0.yaml b/configs/sites/tier1/narwhal/packages_oneapi-2024.2.0.yaml index f4484548c..a290e967a 100644 --- a/configs/sites/tier1/narwhal/packages_oneapi-2024.2.0.yaml +++ b/configs/sites/tier1/narwhal/packages_oneapi-2024.2.0.yaml @@ -1,4 +1,10 @@ packages: + all: + require: + - any_of: ['%intel-oneapi-compilers@=2024.2.0'] + when: '%intel-oneapi-compilers' + - any_of: ['%gcc@=12.2.0'] + when: '%gcc' mpi: buildable: false require: diff --git a/configs/sites/tier1/nautilus/packages_gcc-13.3.1.yaml b/configs/sites/tier1/nautilus/packages_gcc-13.3.1.yaml index 3a4a8adee..faf514071 100644 --- a/configs/sites/tier1/nautilus/packages_gcc-13.3.1.yaml +++ b/configs/sites/tier1/nautilus/packages_gcc-13.3.1.yaml @@ -1,4 +1,8 @@ packages: + all: + require: + - any_of: ['%gcc@=13.3.1'] + when: '%gcc' mpi: buildable: False require: diff --git a/configs/sites/tier1/nautilus/packages_oneapi-2025.3.0.yaml b/configs/sites/tier1/nautilus/packages_oneapi-2025.3.0.yaml index 3cc64c1ac..1698fe453 100644 --- a/configs/sites/tier1/nautilus/packages_oneapi-2025.3.0.yaml +++ b/configs/sites/tier1/nautilus/packages_oneapi-2025.3.0.yaml @@ -1,4 +1,10 @@ packages: + all: + require: + - any_of: ['%intel-oneapi-compilers@=2025.3.0'] + when: '%intel-oneapi-compilers' + - any_of: ['%gcc@=11.2.1'] + when: '%gcc' mpi: buildable: false require: diff --git a/configs/sites/tier2/blackpearl/packages_gcc-13.2.1.yaml b/configs/sites/tier2/blackpearl/packages_gcc-13.2.1.yaml index 695941343..c9cb6577b 100644 --- a/configs/sites/tier2/blackpearl/packages_gcc-13.2.1.yaml +++ b/configs/sites/tier2/blackpearl/packages_gcc-13.2.1.yaml @@ -1,4 +1,8 @@ packages: + all: + require: + - any_of: ['%gcc@=13.2.1'] + when: '%gcc' mpi: require: - "openmpi@=5.0.8" diff --git a/configs/sites/tier2/blackpearl/packages_oneapi-2024.2.1.yaml b/configs/sites/tier2/blackpearl/packages_oneapi-2024.2.1.yaml index ff2b795b0..19c6c965b 100644 --- a/configs/sites/tier2/blackpearl/packages_oneapi-2024.2.1.yaml +++ b/configs/sites/tier2/blackpearl/packages_oneapi-2024.2.1.yaml @@ -1,4 +1,10 @@ packages: + all: + require: + - any_of: ['%intel-oneapi-compilers@=2024.2.1'] + when: '%intel-oneapi-compilers' + - any_of: ['%gcc@=11.4.1'] + when: '%gcc' mpi: buildable: False require: diff --git a/configs/sites/tier2/bounty/packages_clang-21.1.1.yaml b/configs/sites/tier2/bounty/packages_clang-21.1.1.yaml index 567b19442..74f856b4c 100644 --- a/configs/sites/tier2/bounty/packages_clang-21.1.1.yaml +++ b/configs/sites/tier2/bounty/packages_clang-21.1.1.yaml @@ -1,4 +1,8 @@ packages: + all: + require: + - any_of: ['%llvm@=21.1.1'] + when: '%llvm' mpi: require: - "openmpi@=5.0.8" diff --git a/configs/sites/tier2/bounty/packages_gcc-13.3.1.yaml b/configs/sites/tier2/bounty/packages_gcc-13.3.1.yaml index f7e40520c..7d7a68dc9 100644 --- a/configs/sites/tier2/bounty/packages_gcc-13.3.1.yaml +++ b/configs/sites/tier2/bounty/packages_gcc-13.3.1.yaml @@ -1,4 +1,8 @@ packages: + all: + require: + - any_of: ['%gcc@=13.3.1'] + when: '%gcc' mpi: require: - "openmpi@=5.0.8" diff --git a/configs/sites/tier2/bounty/packages_oneapi-2025.3.0.yaml b/configs/sites/tier2/bounty/packages_oneapi-2025.3.0.yaml index 398fa1c5a..86fd28a86 100644 --- a/configs/sites/tier2/bounty/packages_oneapi-2025.3.0.yaml +++ b/configs/sites/tier2/bounty/packages_oneapi-2025.3.0.yaml @@ -1,4 +1,10 @@ packages: + all: + require: + - any_of: ['%intel-oneapi-compilers@=2025.3.0'] + when: '%intel-oneapi-compilers' + - any_of: ['%gcc@=11.5.0'] + when: '%gcc' mpi: buildable: False require: From f355e6ec2e482e98a5472bc4502a7d1b225fe3af Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 2 Feb 2026 10:26:23 -0700 Subject: [PATCH 11/16] [skip ci] util/nrl/batch_install.sh: Nautilus with oneapi@2024.2.1 --- util/nrl/batch_install.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/util/nrl/batch_install.sh b/util/nrl/batch_install.sh index 412f29db7..aee088eef 100755 --- a/util/nrl/batch_install.sh +++ b/util/nrl/batch_install.sh @@ -138,7 +138,7 @@ case ${SPACK_STACK_BATCH_HOST} in SPACK_STACK_CARGO_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/cargo-mirror" ;; nautilus) - SPACK_STACK_BATCH_COMPILERS=("oneapi@=2025.3.0" "gcc@=13.3.1") + SPACK_STACK_BATCH_COMPILERS=("oneapi@=2024.2.1" "oneapi@=2025.3.0" "gcc@=13.3.1") SPACK_STACK_BATCH_TEMPLATES=("neptune-dev" "unified-dev" "cylc-dev") SPACK_STACK_MODULE_CHOICE="tcl" SPACK_STACK_BOOTSTRAP_MIRROR="/p/cwfs/projects/NEPTUNE/spack-stack/bootstrap-mirror" @@ -445,6 +445,14 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do nautilus) umask 0022 module purge + case ${compiler} in + oneapi@=2024.2.1) + module use /gpfs/neptune/spack-stack/oneapi-2024.2.1/modulefiles + ;; + oneapi@=2025.3.0) + module use /gpfs/neptune/spack-stack/oneapi-2025.3.0/modulefiles + ;; + esac ;; navy-aws) umask 0022 From d2132e0be62c846b6710d5011a0e415d03506083 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 2 Feb 2026 10:50:51 -0700 Subject: [PATCH 12/16] [skip ci] Fix wrong paths in util/nrl/batch_install.sh --- util/nrl/batch_install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/nrl/batch_install.sh b/util/nrl/batch_install.sh index aee088eef..b1c0e6fe7 100755 --- a/util/nrl/batch_install.sh +++ b/util/nrl/batch_install.sh @@ -447,10 +447,10 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do module purge case ${compiler} in oneapi@=2024.2.1) - module use /gpfs/neptune/spack-stack/oneapi-2024.2.1/modulefiles + module use /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.2.1/modulefiles ;; oneapi@=2025.3.0) - module use /gpfs/neptune/spack-stack/oneapi-2025.3.0/modulefiles + module use /p/app/projects/NEPTUNE/spack-stack/oneapi-2025.3.0/modulefiles ;; esac ;; From e9a91f2ff2b5b4b5dec653a6258eda745a42235d Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 2 Feb 2026 17:12:20 -0700 Subject: [PATCH 13/16] Require parallelio +pnetcdf --- configs/common/packages.yaml | 1 + configs/templates/neptune-dev-llvm/spack.yaml | 4 ---- configs/templates/neptune-dev/spack.yaml | 4 ---- configs/templates/neptune-ops/spack.yaml | 4 ---- 4 files changed, 1 insertion(+), 12 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 85ed7e4cb..ea53088b1 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -286,6 +286,7 @@ packages: parallelio: require: - '@2.6.2' + - +pnetcdf # DH* CAN WE UPDATE? NEED A NEW SHARED-INTEL PATCH? parallel-netcdf: require: diff --git a/configs/templates/neptune-dev-llvm/spack.yaml b/configs/templates/neptune-dev-llvm/spack.yaml index a01ce9c4c..a305e9639 100644 --- a/configs/templates/neptune-dev-llvm/spack.yaml +++ b/configs/templates/neptune-dev-llvm/spack.yaml @@ -29,7 +29,3 @@ spack: esmf: require: - +python - # Avoid duplicate builds of parallelio +pnetcdf and ~pnetcdf - parallelio: - require: - - ~pnetcdf diff --git a/configs/templates/neptune-dev/spack.yaml b/configs/templates/neptune-dev/spack.yaml index fb7d251eb..105c9f9d4 100644 --- a/configs/templates/neptune-dev/spack.yaml +++ b/configs/templates/neptune-dev/spack.yaml @@ -22,7 +22,3 @@ spack: esmf: require: - +python - # Avoid duplicate builds of parallelio +pnetcdf and ~pnetcdf - parallelio: - require: - - ~pnetcdf diff --git a/configs/templates/neptune-ops/spack.yaml b/configs/templates/neptune-ops/spack.yaml index 36ac735b4..51b7264b2 100644 --- a/configs/templates/neptune-ops/spack.yaml +++ b/configs/templates/neptune-ops/spack.yaml @@ -15,7 +15,3 @@ spack: esmf: require: - ~python - # Avoid duplicate builds of parallelio +pnetcdf and ~pnetcdf - parallelio: - require: - - ~pnetcdf From c445f5ada3b6784f2209630d9e9c5ca904d8eb4a Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 3 Feb 2026 07:40:34 -0700 Subject: [PATCH 14/16] Speed up util/nrl/batch_install.sh and prevent misleading error messages --- util/nrl/batch_install.sh | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/util/nrl/batch_install.sh b/util/nrl/batch_install.sh index b1c0e6fe7..61365b5b2 100755 --- a/util/nrl/batch_install.sh +++ b/util/nrl/batch_install.sh @@ -333,6 +333,7 @@ fi ignore_env_exist=${SPACK_STACK_IGNORE_ENV_EXIST:-false} # Loop through all compilers and templates for this host +first_pass="true" for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do if [[ ! ${compiler} == *"@="* ]]; then @@ -487,7 +488,12 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do module li source setup.sh - spack clean -a + if [[ "${first_pass}" == "true" ]]; then + spack clean -a + else + # Don't remove software and configuration needed to bootstrap Spack + spack clean -d -f -m -p -s + fi # Update bootstrap mirror if requested before creating any # environments. It is sufficient to do this one time only. @@ -524,16 +530,10 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do echo "ERROR, directory ${bootstrap_mirror_path} not found" exit 1 fi - # If the environment already existed, then it is possible that the bootstrap - # sources were already added. In this case, ignore errors from these commands. - if [[ ${env_exists} == "true" ]]; then - set +e - fi - spack bootstrap add --trust local-sources ${bootstrap_mirror_path}/metadata/sources - spack bootstrap add --trust local-binaries ${bootstrap_mirror_path}/metadata/binaries - if [[ ${env_exists} == "true" ]]; then - set -e - fi + spack bootstrap list | grep local-sources || \ + spack bootstrap add --trust local-sources ${bootstrap_mirror_path}/metadata/sources + spack bootstrap list | grep local-binaries || \ + spack bootstrap add --trust local-binaries ${bootstrap_mirror_path}/metadata/binaries # Check that the site has mirrors configured for local source and build caches, # and extract the local path on disk. Need to strip leading "file://" from path @@ -632,9 +632,10 @@ for compiler in "${SPACK_STACK_BATCH_COMPILERS[@]}"; do fix_permissions ${host} ${cargo_mirror_path} 0 fi - # Clean up - spack clean -a + # Clean up (don't remove software and configuration needed to bootstrap Spack) + spack clean -d -f -m -p -s spack env deactivate + first_pass="false" done From 1a079e564c1ff5de38c4af10d933cdc6528c6d2e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 3 Feb 2026 07:48:34 -0700 Subject: [PATCH 15/16] Update .gitmodules and submodule pointer for spack for code review and testing --- .gitmodules | 6 ++++-- spack | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 2f6cb0566..c6a62412c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,9 @@ [submodule "spack"] path = spack - url = https://github.com/jcsda/spack - branch = spack-stack-dev + #url = https://github.com/jcsda/spack + #branch = spack-stack-dev + url = https://github.com/climbfuji/spack + branch = feature/no_errors_as_warnings_for_nonexistent_buildcache_index [submodule "repos/builtin"] path = repos/builtin url = https://github.com/jcsda/spack-packages diff --git a/spack b/spack index 459bb8abc..96ad721a2 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit 459bb8abcfbfd33b5b9f097f88ca594b92232d2f +Subproject commit 96ad721a239bb8a4317533a2d6c7e27f7cb88e2a From d842f5eb87f591202a80777f97dbb708f7ea0305 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 3 Feb 2026 10:57:40 -0700 Subject: [PATCH 16/16] Revert .gitmodules and update submodule pointer for spack --- .gitmodules | 6 ++---- spack | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index c6a62412c..2f6cb0566 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,7 @@ [submodule "spack"] path = spack - #url = https://github.com/jcsda/spack - #branch = spack-stack-dev - url = https://github.com/climbfuji/spack - branch = feature/no_errors_as_warnings_for_nonexistent_buildcache_index + url = https://github.com/jcsda/spack + branch = spack-stack-dev [submodule "repos/builtin"] path = repos/builtin url = https://github.com/jcsda/spack-packages diff --git a/spack b/spack index 96ad721a2..45341d881 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit 96ad721a239bb8a4317533a2d6c7e27f7cb88e2a +Subproject commit 45341d881fe198be63a8bc7e89929355b2b3bba0