From d7b3e4352e59aa569bf992c36379908c04fd04fc Mon Sep 17 00:00:00 2001 From: Evan Parker Date: Mon, 10 Aug 2026 20:30:16 +0000 Subject: [PATCH 1/9] some updates for python 3.12 --- configs/common/packages.yaml | 10 ++++---- configs/sites/tier2/aws-ubuntu2404/README.md | 25 +++++++++++-------- .../sites/tier2/aws-ubuntu2404/packages.yaml | 4 ++- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index bf329f21d..bf38be453 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -377,7 +377,7 @@ packages: # are removed, which itself is problematic. python: require: - - '@3.11' + - '@3.12' - ~crypt # Not sure about the exact version requirements, but earlier # versions (definitely 4.5.3 and earlier) don't work with newer @@ -426,7 +426,7 @@ packages: # To avoid duplicate packages py-numpy: require: - - '@1' + - '@2' # Restrict py-pandas to older versions compatible with py-numpy and py-xarray py-pandas: require: @@ -470,9 +470,9 @@ packages: - '@0.17.16' # https://github.com/JCSDA/spack-stack/issues/1942 # https://github.com/spack/spack-packages/issues/3695 - py-setuptools: - require: - - '@73.0.1' + # NOTE: py-setuptools was pinned @73.0.1 for the py3.11 stack; removed for the + # py3.12/numpy2 migration since modern packages (e.g. py-xarray@2025.7) require + # py-setuptools@77.0.3:. Re-evaluate issue #3695 if setuptools duplicates recur. # See py-pycparser py-sphinxcontrib-bibtex: require: diff --git a/configs/sites/tier2/aws-ubuntu2404/README.md b/configs/sites/tier2/aws-ubuntu2404/README.md index 981a3d6a5..a93e192da 100644 --- a/configs/sites/tier2/aws-ubuntu2404/README.md +++ b/configs/sites/tier2/aws-ubuntu2404/README.md @@ -1,6 +1,6 @@ ## spack-stack AMI (Ubuntu 24.04) -This document is to go over the the running and usage of this specific AMI for Ubuntu 24.04 LTS. This image has two environments: gnu (gcc-12.3), and intel (intel@2021.10.0). You can use either one of these environments for development purposes. +This document is to go over the the running and usage of this specific AMI for Ubuntu 24.04 LTS. This image has two environments: gnu (gcc-13.3.0), and intel (intel-oneapi 2025.3.0). You can use either one of these environments for development purposes. ### Using the Snapshot @@ -120,7 +120,7 @@ exit ```bash cd /opt -sudo git clone -b release/2.0 --depth 1 --recursive https://github.com/jcsda/spack-stack.git +sudo git clone -b release/2.1 --depth 1 --recursive https://github.com/jcsda/spack-stack.git ``` ## Install Spack-Stack Steps by Compiler @@ -147,9 +147,12 @@ spack external find --scope system \ spack compiler find --scope system export SPACK_DISABLE_LOCAL_CONFIG=true unset SPACK_SYSTEM_CONFIG_PATH -# ACTION: Edit the site/compilers.yaml with the following. -# 1) Delete or comment gcc-13 refs and preserve only gcc-12 -# 2) Delete or comment clang refs. +# ACTION: Edit the generated compiler config (site/compilers.yaml and/or the +# compiler entries in site/packages.yaml) with the following. +# 1) Keep a single gcc@13.3.0 spec (the system compiler installed above); +# delete any empty or duplicate gcc specs. Redundant/empty specs cause +# cryptic build errors later. +# 2) Delete or comment clang/llvm refs. # Continue configuration. spack config add "packages:all:prefer:['%gcc']" @@ -173,7 +176,7 @@ spack stack setup-meta-modules # Add a number of default module locations to the lmod startup script. cat << 'EOF' >> /etc/profile.d/z01_lmod.sh -module use /opt/spack-stack/envs/unified-env-gcc/install/modulefiles/Core +module use /opt/spack-stack/envs/unified-gcc/install/modulefiles/Core EOF ``` @@ -379,7 +382,7 @@ spack module lmod refresh && \ spack stack setup-meta-modules cat << 'EOF' >> /etc/profile.d/z01_lmod.sh -module use /opt/spack-stack/envs/unified-env-oneapi/install/modulefiles/Core +module use /opt/spack-stack/envs/unified-oneapi/install/modulefiles/Core EOF ``` @@ -392,9 +395,9 @@ EOF ```bash # Example given for building jedi-bundle -module use /opt/spack-stack/envs/unified-dev-gcc/install/modulefiles/Core -module load stack-gcc/11.4.0 -module load stack-openmpi/5.0.5 +module use /opt/spack-stack/envs/unified-gcc/install/modulefiles/Core +module load stack-gcc/13.3.0 +module load stack-openmpi/5.0.8 module load base-env module load jedi-mpas-env module load jedi-fv3-env @@ -419,7 +422,7 @@ ctest ```bash # Build jedi-bundle with oneapi -module use /opt/spack-stack/envs/unified-env-oneapi/install/modulefiles/Core +module use /opt/spack-stack/envs/unified-oneapi/install/modulefiles/Core module load stack-intel-oneapi-compilers/2025.3.0 module load stack-intel-oneapi-mpi/2021.17 module load base-env diff --git a/configs/sites/tier2/aws-ubuntu2404/packages.yaml b/configs/sites/tier2/aws-ubuntu2404/packages.yaml index 436375666..7cd0837ff 100644 --- a/configs/sites/tier2/aws-ubuntu2404/packages.yaml +++ b/configs/sites/tier2/aws-ubuntu2404/packages.yaml @@ -94,9 +94,11 @@ packages: externals: - spec: sed@4.9 prefix: /usr - tar: + tar:: + buildable: false externals: - spec: tar@1.35 + prefix: /usr wget:: buildable: false externals: From a386b319a4b495b8658d5a2bd3117e6b2d29a4f2 Mon Sep 17 00:00:00 2001 From: Evan Parker Date: Tue, 11 Aug 2026 22:47:50 +0000 Subject: [PATCH 2/9] Python 3.12 changes --- configs/common/packages.yaml | 12 ++++++++++-- configs/sites/tier2/aws-ubuntu2404/modules.yaml | 1 - 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index bf38be453..2be412036 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -401,6 +401,14 @@ packages: py-cryptography: require: - '@42' + # No tutorials extras; prevent py-pandas-datareader dep with broken configparser call + py-arch: + require: + - ~tutorial + # Exclude @:2021.3.0 (broken configparser call), which its default +bag/+delayed variants select + py-dask: + require: + - '@2023.4.1:' py-h5py: require: - ~mpi @@ -486,10 +494,10 @@ packages: require: - '@1.26.20' # OR - '@1.26.12' ? - # To avoid duplicate packages + # Not '@=0.28'; py-pyogrio needs 0.28 and py-partd/py-dask 0.29, build-only so a split is fine py-versioneer: require: - - '@=0.28' + - '@0.28:' # On a per-site basis, either set qt to buildable: false # or add requirement to build with gcc for Intel oneAPI qt: diff --git a/configs/sites/tier2/aws-ubuntu2404/modules.yaml b/configs/sites/tier2/aws-ubuntu2404/modules.yaml index 2aa34ac0e..3b7f4a363 100644 --- a/configs/sites/tier2/aws-ubuntu2404/modules.yaml +++ b/configs/sites/tier2/aws-ubuntu2404/modules.yaml @@ -8,7 +8,6 @@ modules: - apple-clang - gcc - intel-oneapi-compilers - - llvm # MPI modules - cray-mpich - intel-mpi From 1899d4f8faedb0df05e060f0a38260f2068c3ccf Mon Sep 17 00:00:00 2001 From: Evan Parker Date: Thu, 13 Aug 2026 18:13:11 +0000 Subject: [PATCH 3/9] More config changes for python 3.13 --- configs/common/packages.yaml | 20 ++++++++----------- .../sites/tier2/aws-ubuntu2404/packages.yaml | 12 +++++++++++ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 2be412036..45ad70b72 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -103,9 +103,9 @@ packages: - +netcdf - +png - +tools + # uwtools@2.17: needs ecflow@5.16:; leave the version to the concretizer ecflow: require: - - '@5.11.4' - +ui eckit: require: @@ -377,8 +377,11 @@ packages: # are removed, which itself is problematic. python: require: - - '@3.12' - - ~crypt + - '@3.13' + # The crypt variant only exists for python<=3.12 since the module was dropped. + # An unconditional ~crypt caps python at 3.12 + - spec: ~crypt + when: '@:3.12' # Not sure about the exact version requirements, but earlier # versions (definitely 4.5.3 and earlier) don't work with newer # py-setuptools (version 68 and later) because of a breaking @@ -397,10 +400,6 @@ packages: py-colorama: require: - '@0.4.6' - # Pin to version 42 to avoid maturin dependency that breaks Intel oneAPI builds - py-cryptography: - require: - - '@42' # No tutorials extras; prevent py-pandas-datareader dep with broken configparser call py-arch: require: @@ -469,10 +468,6 @@ packages: require: - '@2' # To avoid duplicate packages - py-requests: - require: - - '@2.32.3' - # To avoid duplicate packages py-ruamel-yaml: require: - '@0.17.16' @@ -538,9 +533,10 @@ packages: upp: require: - '@10.0.10' + # Upper bound keeps the branch version 'main' out; spack sorts it above 2.x uwtools: require: - - '@2.7.2' + - '@2.17:2' w3emc: require: - '@2.13.0' diff --git a/configs/sites/tier2/aws-ubuntu2404/packages.yaml b/configs/sites/tier2/aws-ubuntu2404/packages.yaml index 7cd0837ff..e4372adb1 100644 --- a/configs/sites/tier2/aws-ubuntu2404/packages.yaml +++ b/configs/sites/tier2/aws-ubuntu2404/packages.yaml @@ -56,6 +56,10 @@ packages: externals: - spec: gawk@5.2.1 prefix: /usr + gettext: + externals: + - spec: gettext@0.21 + prefix: /usr git: externals: - spec: git@2.43.0~tcltk @@ -68,10 +72,18 @@ packages: externals: - spec: grep@3.11 prefix: /usr + gmake: + externals: + - spec: gmake@4.3 + prefix: /usr groff: externals: - spec: groff@1.23.0 prefix: /usr + libtool: + externals: + - spec: libtool@2.4.7 + prefix: /usr m4: externals: - spec: m4@1.4.19 From ce2828324ca55775c1bc57ce85413ac1ae0f6b5f Mon Sep 17 00:00:00 2001 From: Evan Parker Date: Fri, 14 Aug 2026 19:19:20 +0000 Subject: [PATCH 4/9] All the oneapi fixes --- configs/common/packages.yaml | 17 +++ configs/common/packages_oneapi.yaml | 4 + configs/sites/tier2/aws-ubuntu2404/README.md | 106 ++++++++++-------- .../tier2/aws-ubuntu2404/packages_oneapi.yaml | 45 +++++--- 4 files changed, 109 insertions(+), 63 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 45ad70b72..fcb5f4eec 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -58,6 +58,13 @@ packages: require: - '@0.0.5' - +python + # cairo@1.18.0: is uses the meson recipe. The meson build enforces variants + # that are all-enabled or all-disabled. The "all-enabled" variants are set to help + # the concretizer resolve the correct version without disabling all variants. + cairo: + require: + - '@1.18:' + - +zlib+ft+fc+png+pdf cdo: require: - ~openmp @@ -107,6 +114,7 @@ packages: ecflow: require: - +ui + - '@5.18:' eckit: require: - '@1.32.3' @@ -438,6 +446,11 @@ packages: py-pandas: require: - '@:2' + # py-versioneer is unavoidably duplicated by pins in py-pyogrio (@0.28) and + # py-partd (@0.29). py-pandas is unconstrained and can further cascade splits + # into py-xarray/met/metplus/jedi-base-env. This constraints py-pandas to @0.28 + # (shared with py-pyogrio) so only py-versioneer itself is duplicated. + - ^py-versioneer@0.28 # To avoid duplicate packages py-poetry-core: require: @@ -467,6 +480,10 @@ packages: py-python-dateutil: require: - '@2' + # To avoid duplicate packages, pin to recent version. + py-requests: + require: + - '@2.32:' # To avoid duplicate packages py-ruamel-yaml: require: diff --git a/configs/common/packages_oneapi.yaml b/configs/common/packages_oneapi.yaml index ad4ea0e5d..ce9150d2e 100644 --- a/configs/common/packages_oneapi.yaml +++ b/configs/common/packages_oneapi.yaml @@ -56,6 +56,10 @@ packages: nco: require: - '%c,cxx=gcc' + # The py-numpy cannot be built with oneAPI. + py-numpy: + require: + - '%c,cxx=gcc' oops: require: - +mkl diff --git a/configs/sites/tier2/aws-ubuntu2404/README.md b/configs/sites/tier2/aws-ubuntu2404/README.md index a93e192da..654ba0993 100644 --- a/configs/sites/tier2/aws-ubuntu2404/README.md +++ b/configs/sites/tier2/aws-ubuntu2404/README.md @@ -1,6 +1,6 @@ ## spack-stack AMI (Ubuntu 24.04) -This document is to go over the the running and usage of this specific AMI for Ubuntu 24.04 LTS. This image has two environments: gnu (gcc-13.3.0), and intel (intel-oneapi 2025.3.0). You can use either one of these environments for development purposes. +This document is to go over the the running and usage of this specific AMI for Ubuntu 24.04 LTS. This image has two environments: gnu (gcc-13.3.0), and intel (intel-oneapi 2026.1.1). You can use either one of these environments for development purposes. ### Using the Snapshot @@ -193,7 +193,7 @@ sudo su - wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | tee /etc/apt/sources.list.d/oneAPI.list apt update -apt install intel-oneapi-compiler-dpcpp-cpp-2025.3 intel-oneapi-compiler-fortran-2025.3 intel-oneapi-mpi-devel-2021.17 intel-oneapi-tbb-devel-2022.3 intel-oneapi-mkl-devel-2025.3 -y +apt install intel-oneapi-compiler-dpcpp-cpp-2026.1 intel-oneapi-compiler-fortran-2026.1 intel-oneapi-mpi-devel-2021.18 intel-oneapi-tbb-devel-2023.1 intel-oneapi-mkl-devel-2026.1 -y exit ``` @@ -211,33 +211,40 @@ cat << 'EOF' >> /etc/profile.d/z01_lmod.sh module use /opt/intel/oneapi/modulefiles EOF -# Create combined module file. +# Create combined module file. Note that the compiler modulefile has a "tcm" +# prerequisite; omitting it fails the load with "Cannot load module +# compiler/2026.1.1. At least one of these module(s) must be loaded: tcm". mkdir /opt/intel/oneapi/modulefiles/intel-oneapi-full-env/ -cat << 'EOF' >> /opt/intel/oneapi/modulefiles/intel-oneapi-full-env/2025.3.0 +cat << 'EOF' >> /opt/intel/oneapi/modulefiles/intel-oneapi-full-env/2026.1.1 #%Module1.0 ## -## intel-oneapi-full-env/2025.3.0 +## intel-oneapi-full-env/2026.1.1 ## Intel oneAPI full module environment proc ModulesHelp { } { puts stderr "intel-oneapi-full-env defines the entire module set used for spack-stack intel builds" } module-whatis "intel-oneapi-full-env defines the entire module set used for spack-stack intel builds" -module load umf/1.0.2 -module load tbb/2022.3 -module load compiler-rt/2025.3.0 -module load compiler/2025.3.0 -module load mkl/2025.3 -module load compiler-intel-llvm/2025.3.0 +module load umf/1.1.0 +module load tcm/1.5 +module load tbb/2023.1 +module load compiler-rt/2026.1.1 +module load compiler/2026.1.1 +module load mkl/2026.1 +module load compiler-intel-llvm/2026.1.1 EOF ``` #### Install Intel OneAPI Spack-Stack Environment +The steps below are how this site config was generated. Note that the oneAPI +modules must **not** be loaded during `spack install` -- see "The module-load +trap" at the end of this section. + ```bash sudo su - -module load intel-oneapi-full-env/2025.3.0 +module load intel-oneapi-full-env/2026.1.1 export FC=ifx export CXX=icpx export CC=icx @@ -250,16 +257,6 @@ cd envs/unified-oneapi spack env activate -p . -# Before finding packages you need to go into ./common/packages.yaml -# and comment out gmake requirements to prevent gmake from being -# over-constrained. -# pico ./common/packages.yaml -# Near the top of the file find and comment out these three lines. -# gmake: -# require: -# - '%gcc' - - # Find external packages for the site config. unset SPACK_DISABLE_LOCAL_CONFIG export SPACK_SYSTEM_CONFIG_PATH="$(pwd)/site" @@ -276,31 +273,30 @@ cat << 'EOF' >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml intel-oneapi-runtime: buildable: false externals: - - spec: intel-oneapi-runtime@2025.3.0 + - spec: intel-oneapi-runtime@2026.1.1 prefix: /opt/intel/oneapi modules: - - compiler-rt/2025.3.0 + - compiler-rt/2026.1.1 intel-oneapi-mkl: buildable: false externals: - - spec: intel-oneapi-mkl@2025.3 + # No "modules:" here on purpose - see "The module-load trap" below. + - spec: intel-oneapi-mkl@2026.1 prefix: /opt/intel/oneapi - modules: - - mkl/2025.3 intel-oneapi-mpi: buildable: false externals: - - spec: intel-oneapi-mpi@2021.17 + - spec: intel-oneapi-mpi@2021.18 prefix: /opt/intel/oneapi modules: - - mpi/2021.17 + - mpi/2021.18 intel-oneapi-tbb: buildable: false externals: - - spec: intel-oneapi-tbb@2022.3 + - spec: intel-oneapi-tbb@2023.1 prefix: /opt/intel/oneapi modules: - - tbb/2022.3 + - tbb/2023.1 EOF spack compiler find --scope system @@ -318,28 +314,27 @@ pico ${PWD}/site/packages.yaml # intel-oneapi-compilers: # buildable: false # externals: -# - spec: intel-oneapi-compilers@2025.3.0 +# - spec: intel-oneapi-compilers@2026.1.1 # prefix: /opt/intel/oneapi # modules: -# - umf/1.0.2 -# - tbb/2022.3 -# - compiler-rt/2025.3.0 -# - compiler/2025.3.0 +# - umf/1.1.0 +# - tcm/1.5 +# - tbb/2023.1 +# - compiler-rt/2026.1.1 +# - compiler/2026.1.1 # extra_attributes: # compilers: -# c: /opt/intel/oneapi/compiler/2025.3/bin/icx -# fortran: /opt/intel/oneapi/compiler/2025.3/bin/ifx -# cxx: /opt/intel/oneapi/compiler/2025.3/bin/icpx +# c: /opt/intel/oneapi/compiler/2026.1/bin/icx +# fortran: /opt/intel/oneapi/compiler/2026.1/bin/ifx +# cxx: /opt/intel/oneapi/compiler/2026.1/bin/icpx # gcc: # buildable: false # externals: # - spec: gcc@13.3.0 languages:='c,c++,fortran' # .... -export SPACK_DISABLE_LOCAL_CONFIG=true -unset SPACK_SYSTEM_CONFIG_PATH - -# Edit the spack.yaml to include these clauses. +# Edit the spack.yaml to include these clauses. Note this must happen before +# SPACK_SYSTEM_CONFIG_PATH is unset, or it writes to /packages.yaml. cat << 'EOF' >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml all: prefer: @@ -354,7 +349,7 @@ cat << 'EOF' >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml - '%fortran=gcc %c,cxx=oneapi' - '%fortran=gcc %c=oneapi' providers: - mpi: [intel-oneapi-mpi@2021.17] + mpi: [intel-oneapi-mpi@2021.18] met: variants: +python +grib2 +graphics +lidar2nc +modis openmpi: @@ -375,6 +370,12 @@ cat << 'EOF' >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml - +libyaml EOF +export SPACK_DISABLE_LOCAL_CONFIG=true +unset SPACK_SYSTEM_CONFIG_PATH + +# Purge the oneAPI modules before installing - see the trap below. +module purge + spack concretize 2>&1 | tee log.concretize ${SPACK_STACK_DIR}/util/show_duplicate_packages.py spack install --fail-fast -j 12 2>&1 | tee log.install @@ -386,6 +387,19 @@ module use /opt/spack-stack/envs/unified-oneapi/install/modulefiles/Core EOF ``` +#### The module-load trap + +Spack loads an external's `modules:` itself and treats a load that does not change +`LOADEDMODULES` as a failure. So any oneAPI module already loaded in your shell +makes `spack install` die with a misleading `ModuleLoadError` partway through. +Purge before installing, and let spack do the loading. + +For the same reason no two externals may list the same module. That is why +`intel-oneapi-mkl` above has no `modules:`: it would load before the compilers +entry and miss its `tbb`/`compiler-rt` prereqs, but listing those on mkl collides +with the compilers entry. It needs neither -- the recipe sets `MKLROOT` from +`prefix`. + ## Test Installation @@ -423,8 +437,8 @@ ctest ```bash # Build jedi-bundle with oneapi module use /opt/spack-stack/envs/unified-oneapi/install/modulefiles/Core -module load stack-intel-oneapi-compilers/2025.3.0 -module load stack-intel-oneapi-mpi/2021.17 +module load stack-intel-oneapi-compilers/2026.1.1 +module load stack-intel-oneapi-mpi/2021.18 module load base-env module load jedi-mpas-env module load jedi-fv3-env diff --git a/configs/sites/tier2/aws-ubuntu2404/packages_oneapi.yaml b/configs/sites/tier2/aws-ubuntu2404/packages_oneapi.yaml index a8a255671..55149ad0a 100644 --- a/configs/sites/tier2/aws-ubuntu2404/packages_oneapi.yaml +++ b/configs/sites/tier2/aws-ubuntu2404/packages_oneapi.yaml @@ -14,23 +14,25 @@ packages: - '%fortran=gcc %c,cxx=oneapi' - '%fortran=gcc %c=oneapi' providers: - mpi:: [intel-oneapi-mpi@2021.17] + mpi:: [intel-oneapi-mpi@2021.18] intel-oneapi-compilers: buildable: false externals: - - spec: intel-oneapi-compilers@2025.3.0 + - spec: intel-oneapi-compilers@2026.1.1 prefix: /opt/intel/oneapi modules: - - umf/1.0.2 - - tbb/2022.3 - - compiler-rt/2025.3.0 - - compiler/2025.3.0 + - umf/1.1.0 + # 2026.1's compiler modulefile adds a "tcm" prereq that 2025.3 lacks + - tcm/1.5 + - tbb/2023.1 + - compiler-rt/2026.1.1 + - compiler/2026.1.1 extra_attributes: compilers: - fortran: /opt/intel/oneapi/compiler/2025.3/bin/ifx - c: /opt/intel/oneapi/compiler/2025.3/bin/icx - cxx: /opt/intel/oneapi/compiler/2025.3/bin/icpx + fortran: /opt/intel/oneapi/compiler/2026.1/bin/ifx + c: /opt/intel/oneapi/compiler/2026.1/bin/icx + cxx: /opt/intel/oneapi/compiler/2026.1/bin/icpx openmpi: buildable: false mpich: @@ -38,7 +40,7 @@ packages: mpi: buildable: false require: - - intel-oneapi-mpi@2021.17 + - intel-oneapi-mpi@2021.18 gcc: externals: - spec: gcc@13.3.0 languages:='c,c++,fortran' @@ -52,24 +54,33 @@ packages: intel-oneapi-mkl: buildable: false externals: - - spec: intel-oneapi-mkl@2025.3 + # Deliberately NO "modules:" here. The mkl/2026.1 modulefile declares prereqs + # on tbb and compiler-rt, and spack loads externals in DAG order -- for e.g. + # "ip" it loads intel-oneapi-mkl BEFORE intel-oneapi-compilers, so mkl would + # be loaded without its prereqs and fail with + # ModuleLoadError: Module 'mkl/2026.1' could not be loaded. + # Adding tbb/compiler-rt here instead collides with the compilers entry + # below: spack's load_module() treats an already-loaded module (no change to + # LOADEDMODULES) as a failure, so the second load of tbb would error. + # None of it is needed -- the intel-oneapi-mkl package sets MKLROOT and + # PKG_CONFIG_PATH from component_prefix (= prefix/mkl/) under the + # default +envmods, and resolves libs/headers from prefix. + - spec: intel-oneapi-mkl@2026.1 prefix: /opt/intel/oneapi - modules: - - mkl/2025.3 intel-oneapi-mpi: buildable: false externals: - - spec: intel-oneapi-mpi@2021.17 + - spec: intel-oneapi-mpi@2021.18 modules: - - mpi/2021.17 + - mpi/2021.18 prefix: /opt/intel/oneapi intel-oneapi-tbb: buildable: false externals: - - spec: intel-oneapi-tbb@2022.3 + - spec: intel-oneapi-tbb@2023.1 prefix: /opt/intel/oneapi modules: - - tbb/2022.3 + - tbb/2023.1 # Package constraints. jedi-base-env: From 8a0c5425d983672ce9cf1f2008de07b5493b0618 Mon Sep 17 00:00:00 2001 From: Evan Parker Date: Mon, 14 Sep 2026 17:24:28 +0000 Subject: [PATCH 5/9] Constrain ecflow@5.18 to py-pybind11@:2 ecFlow 5.18 configures its Python bindings with pybind11. Built against pybind11 3.x, a bare "import ecflow" completes and then aborts during garbage collection at interpreter teardown: munmap_chunk(): invalid pointer -> SIGABRT, exit 134 The work itself succeeds, so this surfaces as scripts and CI steps failing on exit status after doing their job; "uw --version" prints correctly and then dies the same way. The recipe carried this bound as py-pybind11@2.10.3:2 in spack-packages b141387c8d, but bb52369c42 ("Fix for ecflow") dropped the upper bound. That revert reached develop via spack-packages PR #82 (spack-stack cd20203c), which is why this only appears after merging develop. Verified on aws-ubuntu2404 with unified-dev/gcc-13.3.0: same ecflow 5.18.0 and python 3.13.13, only pybind11 differing -- 3.0.2 exits 134, 2.13.6 exits 0. Full 419-spec env rebuilds and concretizes clean with the bound. --- configs/common/packages.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index ef73d88d1..b09247e3a 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -117,10 +117,12 @@ packages: - +png - +tools # uwtools@2.17: needs ecflow@5.16:; leave the version to the concretizer + # ecflow@5.18 is not compatible with py-pybind11@3.0: ecflow: require: - +ui - '@5.18:' + - ^py-pybind11@:2 eckit: require: - '@2.0.7' From 18067becc6a112efbf20b8685301f1b79c456ea7 Mon Sep 17 00:00:00 2001 From: Evan Parker Date: Mon, 14 Sep 2026 21:21:18 +0000 Subject: [PATCH 6/9] Site spack updates with numpy 2.0 overrides and other fixes --- configs/sites/tier1/acorn/packages.yaml | 2 +- configs/sites/tier1/acorn/packages_intel-19.1.3.304.yaml | 2 +- configs/sites/tier1/acorn/packages_oneapi-2024.2.1.yaml | 2 +- configs/sites/tier1/aws-pcluster/packages_intel.yaml | 1 + configs/sites/tier1/hera/packages_intel.yaml | 1 + configs/sites/tier1/hera/packages_oneapi.yaml | 2 +- configs/sites/tier1/noaa-gcloud/packages_intel.yaml | 1 + configs/sites/tier1/noaa-gcloud/packages_oneapi.yaml | 2 +- configs/sites/tier1/wcoss2/packages.yaml | 2 +- .../sites/tier1/wcoss2/packages_intel-19.1.3.304.yaml | 2 +- configs/sites/tier1/wcoss2/packages_oneapi-2024.2.1.yaml | 2 +- configs/sites/tier2/casper/packages.yaml | 3 +++ configs/sites/tier2/frontera/packages.yaml | 3 +++ configs/sites/tier2/gaea-c5/packages_intel.yaml | 2 +- configs/sites/tier2/s4/packages_intel.yaml | 2 +- configs/sites/tier2/s4/packages_oneapi.yaml | 2 +- configs/sites/tier2/ubuntu2404-nvhpc/packages.yaml | 9 ++------- 17 files changed, 22 insertions(+), 18 deletions(-) diff --git a/configs/sites/tier1/acorn/packages.yaml b/configs/sites/tier1/acorn/packages.yaml index db9201d45..ffd2b98ea 100644 --- a/configs/sites/tier1/acorn/packages.yaml +++ b/configs/sites/tier1/acorn/packages.yaml @@ -41,7 +41,7 @@ packages: require:: ['%oneapi'] py-colorama:: {} py-pandas: - require:: ['~excel'] + require:: ['~excel', '@:2', '^py-versioneer@0.28'] subversion: require: ['~serf', '+pic'] zlib-ng: diff --git a/configs/sites/tier1/acorn/packages_intel-19.1.3.304.yaml b/configs/sites/tier1/acorn/packages_intel-19.1.3.304.yaml index 08c35eb50..df583b53c 100644 --- a/configs/sites/tier1/acorn/packages_intel-19.1.3.304.yaml +++ b/configs/sites/tier1/acorn/packages_intel-19.1.3.304.yaml @@ -107,7 +107,7 @@ packages: py-maturin: require: ['%gcc'] py-numpy: - require:: ['@1.26', '%gcc'] + require:: ['@2', '%gcc'] py-scipy: require: ['@1.10.1'] qt: diff --git a/configs/sites/tier1/acorn/packages_oneapi-2024.2.1.yaml b/configs/sites/tier1/acorn/packages_oneapi-2024.2.1.yaml index 4d1b37299..642326857 100644 --- a/configs/sites/tier1/acorn/packages_oneapi-2024.2.1.yaml +++ b/configs/sites/tier1/acorn/packages_oneapi-2024.2.1.yaml @@ -86,7 +86,7 @@ packages: proj: require: ['@9.4.1'] py-numpy:: - require:: ['@1.26'] + require:: ['@2'] subversion: require: ['%gcc'] zlib-ng: diff --git a/configs/sites/tier1/aws-pcluster/packages_intel.yaml b/configs/sites/tier1/aws-pcluster/packages_intel.yaml index 31c14bbc5..0cf3518a6 100644 --- a/configs/sites/tier1/aws-pcluster/packages_intel.yaml +++ b/configs/sites/tier1/aws-pcluster/packages_intel.yaml @@ -31,5 +31,6 @@ packages: - '@1.4.2 ~mkl' py-numpy: require:: + - '@2' - '^openblas' # *DH diff --git a/configs/sites/tier1/hera/packages_intel.yaml b/configs/sites/tier1/hera/packages_intel.yaml index 06035f33c..95c19f289 100644 --- a/configs/sites/tier1/hera/packages_intel.yaml +++ b/configs/sites/tier1/hera/packages_intel.yaml @@ -30,5 +30,6 @@ packages: - '@1.4.2 ~mkl' py-numpy: require:: + - '@2' - '^openblas' # *DH diff --git a/configs/sites/tier1/hera/packages_oneapi.yaml b/configs/sites/tier1/hera/packages_oneapi.yaml index fa2a4812c..05a175144 100644 --- a/configs/sites/tier1/hera/packages_oneapi.yaml +++ b/configs/sites/tier1/hera/packages_oneapi.yaml @@ -32,7 +32,7 @@ packages: - '@1.4.2 ~mkl' py-numpy: require:: - - '@1.26' + - '@2' - '^openblas' # *DH cdo: diff --git a/configs/sites/tier1/noaa-gcloud/packages_intel.yaml b/configs/sites/tier1/noaa-gcloud/packages_intel.yaml index cace7469e..8bde60079 100644 --- a/configs/sites/tier1/noaa-gcloud/packages_intel.yaml +++ b/configs/sites/tier1/noaa-gcloud/packages_intel.yaml @@ -30,5 +30,6 @@ packages: - '@1.4.2 ~mkl' py-numpy: require:: + - '@2' - '^openblas' # *DH diff --git a/configs/sites/tier1/noaa-gcloud/packages_oneapi.yaml b/configs/sites/tier1/noaa-gcloud/packages_oneapi.yaml index a77da5d3c..20a7b4b9f 100644 --- a/configs/sites/tier1/noaa-gcloud/packages_oneapi.yaml +++ b/configs/sites/tier1/noaa-gcloud/packages_oneapi.yaml @@ -32,7 +32,7 @@ packages: - '@1.4.2 ~mkl' py-numpy: require:: - - '@1.26' + - '@2' - '^openblas' # *DH cdo: diff --git a/configs/sites/tier1/wcoss2/packages.yaml b/configs/sites/tier1/wcoss2/packages.yaml index a266b09dd..c39e6c586 100644 --- a/configs/sites/tier1/wcoss2/packages.yaml +++ b/configs/sites/tier1/wcoss2/packages.yaml @@ -57,7 +57,7 @@ packages: require:: ['@4.9.2', '+mpi', '~parallel-netcdf', '~dap', '~blosc', '~szip'] py-colorama:: {} py-pandas: - require:: ['~excel'] + require:: ['~excel', '@:2', '^py-versioneer@0.28'] scotch: require:: - '@7.0.7' diff --git a/configs/sites/tier1/wcoss2/packages_intel-19.1.3.304.yaml b/configs/sites/tier1/wcoss2/packages_intel-19.1.3.304.yaml index b4e126b83..ceb8dc248 100644 --- a/configs/sites/tier1/wcoss2/packages_intel-19.1.3.304.yaml +++ b/configs/sites/tier1/wcoss2/packages_intel-19.1.3.304.yaml @@ -106,7 +106,7 @@ packages: py-maturin: require: ['%gcc'] py-numpy: - require:: ['@1.26', '%gcc'] + require:: ['@2', '%gcc'] py-scipy: require: ['@1.10.1'] qt: diff --git a/configs/sites/tier1/wcoss2/packages_oneapi-2024.2.1.yaml b/configs/sites/tier1/wcoss2/packages_oneapi-2024.2.1.yaml index 71d3368d0..6a9ef92e5 100644 --- a/configs/sites/tier1/wcoss2/packages_oneapi-2024.2.1.yaml +++ b/configs/sites/tier1/wcoss2/packages_oneapi-2024.2.1.yaml @@ -103,7 +103,7 @@ packages: proj: require: ['@9.4.1'] py-numpy:: - require:: ['@1.26'] + require:: ['@2'] subversion: require: ['%gcc'] zlib-ng: diff --git a/configs/sites/tier2/casper/packages.yaml b/configs/sites/tier2/casper/packages.yaml index 8666e071b..271240e7f 100644 --- a/configs/sites/tier2/casper/packages.yaml +++ b/configs/sites/tier2/casper/packages.yaml @@ -193,6 +193,9 @@ packages: externals: - spec: texlive@20130530 prefix: /usr + # Site ecflow is an external at 5.8.4; uwtools@2.17 requires ecflow@5.16:. + uwtools: + require:: ['@2.11'] wget: externals: - spec: wget@1.14 diff --git a/configs/sites/tier2/frontera/packages.yaml b/configs/sites/tier2/frontera/packages.yaml index 51436f078..4218f3664 100644 --- a/configs/sites/tier2/frontera/packages.yaml +++ b/configs/sites/tier2/frontera/packages.yaml @@ -212,6 +212,9 @@ packages: externals: - spec: texinfo@5.1 prefix: /usr + # Site ecflow is an external at 5.8.4; uwtools@2.17 requires ecflow@5.16:. + uwtools: + require:: ['@2.11'] wget: externals: - spec: wget@1.14 diff --git a/configs/sites/tier2/gaea-c5/packages_intel.yaml b/configs/sites/tier2/gaea-c5/packages_intel.yaml index bc722db8a..7962f62ef 100644 --- a/configs/sites/tier2/gaea-c5/packages_intel.yaml +++ b/configs/sites/tier2/gaea-c5/packages_intel.yaml @@ -33,5 +33,5 @@ packages: - '@1.4.2 ~mkl' py-numpy: require:: - - '@1.26' + - '@2' - '^openblas' diff --git a/configs/sites/tier2/s4/packages_intel.yaml b/configs/sites/tier2/s4/packages_intel.yaml index 76cb3d1ce..f3ef01fb9 100644 --- a/configs/sites/tier2/s4/packages_intel.yaml +++ b/configs/sites/tier2/s4/packages_intel.yaml @@ -37,7 +37,7 @@ packages: - '@1.4.2 ~mkl' py-numpy: require:: - - '@1.26' + - '@2' - '^openblas' # *DH zlib-ng: diff --git a/configs/sites/tier2/s4/packages_oneapi.yaml b/configs/sites/tier2/s4/packages_oneapi.yaml index cdc560b5f..1f70e3418 100644 --- a/configs/sites/tier2/s4/packages_oneapi.yaml +++ b/configs/sites/tier2/s4/packages_oneapi.yaml @@ -37,7 +37,7 @@ packages: - '@1.4.2 ~mkl' py-numpy: require:: - - '@1.26' + - '@2' - '^openblas' # *DH zlib-ng: diff --git a/configs/sites/tier2/ubuntu2404-nvhpc/packages.yaml b/configs/sites/tier2/ubuntu2404-nvhpc/packages.yaml index 757078cfe..c4241e9ca 100644 --- a/configs/sites/tier2/ubuntu2404-nvhpc/packages.yaml +++ b/configs/sites/tier2/ubuntu2404-nvhpc/packages.yaml @@ -115,13 +115,8 @@ packages: buildable: False pkg-config: buildable: False - python: - externals: - - spec: python@3.12.3+bz2+crypt+ctypes+dbm+lzma~nis+pyexpat~pythoncmd+readline+sqlite3+ssl~tkinter+uuid+zlib - prefix: /usr - require: - - '@3.12.3' - buildable: False + # No system python external: Ubuntu 24.04 ships 3.12 and common requires + # python@3.13, so spack builds it (as on aws-ubuntu2404). sed: externals: - spec: sed@4.9 From 0e5254395ddad313922cdbad75e32fd9809aa664 Mon Sep 17 00:00:00 2001 From: Evan Parker Date: Mon, 14 Sep 2026 22:34:56 +0000 Subject: [PATCH 7/9] integration tests ignore duplicate py-versioneer --- .github/workflows/ubuntu-ci-x86_64-gnu.yaml | 4 ++-- .github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml | 4 ++-- .github/workflows/ubuntu-ci-x86_64-oneapi.yaml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ubuntu-ci-x86_64-gnu.yaml b/.github/workflows/ubuntu-ci-x86_64-gnu.yaml index a2332ac82..99ee212e9 100644 --- a/.github/workflows/ubuntu-ci-x86_64-gnu.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-gnu.yaml @@ -110,7 +110,7 @@ jobs: # Concretize, check for duplicates and for correct compilers being used spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME} - ${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip + ${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip -i py-versioneer spack stack check-preferred-compiler 2>&1 | tee log.check-preferred-compiler.${ENVNAME} # Add and update source cache @@ -182,7 +182,7 @@ jobs: # Concretize, check for duplicates and for correct compilers being used spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME} - ${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip + ${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip -i py-versioneer spack stack check-preferred-compiler 2>&1 | tee log.check-preferred-compiler.${ENVNAME} # Install from cache diff --git a/.github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml b/.github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml index f83169624..182a8dd6c 100644 --- a/.github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml @@ -126,7 +126,7 @@ jobs: # Concretize, check for duplicates and for correct compilers being used spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME} - ${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip + ${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip -i py-versioneer spack stack check-preferred-compiler 2>&1 | tee log.check-preferred-compiler.${ENVNAME} # Add and update source cache @@ -201,7 +201,7 @@ jobs: # Concretize, check for duplicates and for correct compilers being used spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME} - ${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip + ${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip -i py-versioneer spack stack check-preferred-compiler 2>&1 | tee log.check-preferred-compiler.${ENVNAME} # Install from cache diff --git a/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml b/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml index 4b962814f..c6b9d436b 100644 --- a/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml @@ -126,7 +126,7 @@ jobs: # Concretize, check for duplicates and for correct compilers being used spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME} - ${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip + ${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip -i py-versioneer spack stack check-preferred-compiler 2>&1 | tee log.check-preferred-compiler.${ENVNAME} # Add and update source cache @@ -201,7 +201,7 @@ jobs: # Concretize, check for duplicates and for correct compilers being used spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME} - ${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip + ${SPACK_STACK_DIR}/util/show_duplicate_packages.py -i fms -i crtm -i crtm-fix -i esmf -i mapl -i py-cython -i neptune-env -i fms -i ip -i py-versioneer spack stack check-preferred-compiler 2>&1 | tee log.check-preferred-compiler.${ENVNAME} # Install from cache From 4971939755fa4ccb11daf8df9075ed5036e6f668 Mon Sep 17 00:00:00 2001 From: Evan Parker Date: Tue, 15 Sep 2026 00:29:41 +0000 Subject: [PATCH 8/9] Fix acorn --- configs/sites/tier1/acorn/packages.yaml | 2 +- configs/sites/tier1/acorn/packages_intel-19.1.3.304.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/sites/tier1/acorn/packages.yaml b/configs/sites/tier1/acorn/packages.yaml index ffd2b98ea..8d66a49ad 100644 --- a/configs/sites/tier1/acorn/packages.yaml +++ b/configs/sites/tier1/acorn/packages.yaml @@ -41,7 +41,7 @@ packages: require:: ['%oneapi'] py-colorama:: {} py-pandas: - require:: ['~excel', '@:2', '^py-versioneer@0.28'] + require: ['~excel'] subversion: require: ['~serf', '+pic'] zlib-ng: diff --git a/configs/sites/tier1/acorn/packages_intel-19.1.3.304.yaml b/configs/sites/tier1/acorn/packages_intel-19.1.3.304.yaml index df583b53c..efadee022 100644 --- a/configs/sites/tier1/acorn/packages_intel-19.1.3.304.yaml +++ b/configs/sites/tier1/acorn/packages_intel-19.1.3.304.yaml @@ -107,7 +107,7 @@ packages: py-maturin: require: ['%gcc'] py-numpy: - require:: ['@2', '%gcc'] + require: ['%gcc'] py-scipy: require: ['@1.10.1'] qt: From c75190af6383f19ada31f650f3986266d95ed797 Mon Sep 17 00:00:00 2001 From: Evan Parker Date: Tue, 15 Sep 2026 18:37:02 +0000 Subject: [PATCH 9/9] Simplify constraints, remove unnecessary constraints --- configs/common/packages.yaml | 29 ------------------- configs/common/packages_oneapi.yaml | 10 +++++++ .../tier1/acorn/packages_oneapi-2024.2.1.yaml | 2 -- configs/sites/tier1/container/packages.yaml | 3 -- .../wcoss2/packages_oneapi-2024.2.1.yaml | 2 -- .../sites/tier2/aws-ubuntu2404/packages.yaml | 3 -- 6 files changed, 10 insertions(+), 39 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index b09247e3a..4b794b303 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -429,10 +429,6 @@ packages: py-cartopy: require: - +plotting - # See py-pycparser - py-click: - require: - - '@8.1.8' # Pin py-colorama to avoid duplicate packages, hopefully can be removed soon py-colorama: require: @@ -480,39 +476,18 @@ packages: # into py-xarray/met/metplus/jedi-base-env. This constraints py-pandas to @0.28 # (shared with py-pyogrio) so only py-versioneer itself is duplicated. - ^py-versioneer@0.28 - # See py-pycparser - py-pandas-datareader: - require: - - '@:0.10' # To avoid duplicate packages py-poetry-core: require: - '@1.7' - # See py-pycparser - py-pooch: - require: - - '@1.7.0' - # Need older version of py-pycparser until we can update setuputils to >= 77 ? - # https://github.com/pydata/xarray/issues/10588 - py-pycparser: - require: - - '@2.21' # Need at least py-pygithub@2.7 for self-hosted runner management py-pygithub: require: - '@2.7:' - # See py-pycparser - py-imageio: - require: - - '@2.37.0' # This version builds with Intel oneAPI compilers, newer versions don't py-pyogrio: require: - '@0.9.0' - # See py-pycparser - py-pyparsing: - require: - - '@3.1.2' # To avoid duplicate packages py-python-dateutil: require: @@ -530,10 +505,6 @@ packages: # NOTE: py-setuptools was pinned @73.0.1 for the py3.11 stack; removed for the # py3.12/numpy2 migration since modern packages (e.g. py-xarray@2025.7) require # py-setuptools@77.0.3:. Re-evaluate issue #3695 if setuptools duplicates recur. - # See py-pycparser - py-sphinxcontrib-bibtex: - require: - - '@2.5.0' py-torch: require: - +custom-protobuf diff --git a/configs/common/packages_oneapi.yaml b/configs/common/packages_oneapi.yaml index ce9150d2e..50cb126dd 100644 --- a/configs/common/packages_oneapi.yaml +++ b/configs/common/packages_oneapi.yaml @@ -26,6 +26,11 @@ packages: bison: require: - '%c,cxx=gcc' + # pango/harfbuzz/gobject-introspection need cairo+gobject; without pinning it + # the concretizer builds cairo both ways and the two collide on one modulefile. + cairo: + require: + - +gobject cmake: require: - '%c,cxx=gcc' @@ -69,6 +74,11 @@ packages: patchelf: require: - '%c=gcc' + # Require a recent py-sphinx; unpinned the concretizer prefers 6.X. The old sphinx creates version + # splits in py-attrs, py-docutils, and py-eccodes affecting jedi-base-env and jedi-fv3-env. + py-sphinx: + require: + - '@9:' py-maturin: require: - '%c=gcc' diff --git a/configs/sites/tier1/acorn/packages_oneapi-2024.2.1.yaml b/configs/sites/tier1/acorn/packages_oneapi-2024.2.1.yaml index 642326857..1c5eddbb4 100644 --- a/configs/sites/tier1/acorn/packages_oneapi-2024.2.1.yaml +++ b/configs/sites/tier1/acorn/packages_oneapi-2024.2.1.yaml @@ -85,8 +85,6 @@ packages: require: ['build_system=meson'] proj: require: ['@9.4.1'] - py-numpy:: - require:: ['@2'] subversion: require: ['%gcc'] zlib-ng: diff --git a/configs/sites/tier1/container/packages.yaml b/configs/sites/tier1/container/packages.yaml index 67b50165a..82869920b 100644 --- a/configs/sites/tier1/container/packages.yaml +++ b/configs/sites/tier1/container/packages.yaml @@ -1,9 +1,6 @@ packages: all: target: [x86_64_v3] - awscli-v2: - require: - - "@2.22.4" cairo: variants: +pic ewok-env: diff --git a/configs/sites/tier1/wcoss2/packages_oneapi-2024.2.1.yaml b/configs/sites/tier1/wcoss2/packages_oneapi-2024.2.1.yaml index 6a9ef92e5..e511d7101 100644 --- a/configs/sites/tier1/wcoss2/packages_oneapi-2024.2.1.yaml +++ b/configs/sites/tier1/wcoss2/packages_oneapi-2024.2.1.yaml @@ -102,8 +102,6 @@ packages: require: ['build_system=meson'] proj: require: ['@9.4.1'] - py-numpy:: - require:: ['@2'] subversion: require: ['%gcc'] zlib-ng: diff --git a/configs/sites/tier2/aws-ubuntu2404/packages.yaml b/configs/sites/tier2/aws-ubuntu2404/packages.yaml index e4372adb1..bb4ad8a49 100644 --- a/configs/sites/tier2/aws-ubuntu2404/packages.yaml +++ b/configs/sites/tier2/aws-ubuntu2404/packages.yaml @@ -1,8 +1,5 @@ packages: # Package constraints. - awscli-v2: - require: - - "@2.22.4" ewok-env: require: - +ecflow