# Questions for Spack meeting

**URL:** <https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856>\
**Category:** spack\
**Created:** [31 October 2024 01:23 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856 "2024-10-31T01:23:38Z")\
**Posts on this page:** 15\
**Page:** 2

<div class="post-metadata">

**Author:** ![Aidan](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/aidan/32/42_2.png) [@Aidan](https://forum.access-hive.org.au/u/Aidan)\
**Post date:** [3 June 2025 01:05 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/21 "2025-06-03T01:05:17Z")

</div>

Can we get some more info about this issue?

> <https://github.com/spack/spack/issues/50712>
>
> \### Steps to reproduce
> 
> An environment is being rebuilt(\`spack install\`) with mi…nor changes to the \`flags\` very soon after the previous build. All other dependencies are unchanged, so we expect that those unchanged dependencies would not need to be rebuilt. 
> 
> However the concretization resolves to a different hash for the dependencies, so they are rebuilt, which means the build is taking substantially longer than it should. It appears the ordering of compilation flags is not deterministic, and can change from one build to the next.
> 
> I can try and make an MRE, but this is a complex build, so I don't know if that will work. However there are two build logs available in GitHub actions which provide a lot of detail.
> 
> Specifically 
> 
> 1. https://github.com/ACCESS-NRI/ACCESS-ESM1.6/actions/runs/15337260423/job/43156769782#step:11:630
> 2. https://github.com/ACCESS-NRI/ACCESS-ESM1.6/actions/runs/15339465156/job/43162794023#step:11:638
> 
> The difference between the commits for 1 and 2 is
> 
> https://github.com/ACCESS-NRI/ACCESS-ESM1.6/compare/8618e3c...01b39d1
> 
> 
> 
> \### Error message
> 
> The respective concretization graphs
> 
> \<details\>
> 
> \<summary\>concretization for 1: 15337260423 \</summary\>
> 
> 
> ==\> \[2025-05-30-11:41:59.811318\] Concretized access-esm1p6
> - hsi4r4g access-esm1p6@latest%oneapi@2025.0.4+generic-tracers build\_system=bundle cice=4 um=access-esm1.6 arch=linux-rocky8-x86\_64\_v3
> - susieal ^cice4@git.access-esm1.6-2025.04.000=access-esm1.5%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-g3 -xCORE-AVX2 -fprotect-parens' fflags='-xCORE-AVX2 -fprotect-parens -g3 -traceback -assume nan\_compares -assume ieee\_compares' build\_system=makefile arch=linux-rocky8-x86\_64\_v3
> \[+\] 7jm5ui5 ^gmake@4.4.1%oneapi@2025.0.4~guile build\_system=generic arch=linux-rocky8-x86\_64\_v3
> - spafzdb ^netcdf-fortran@4.5.2%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-xCORE-AVX2 -fprotect-parens -g3' fflags='-traceback -xCORE-AVX2 -assume ieee\_compares -g3 -fprotect-parens -assume nan\_compares' ~doc+pic+shared build\_system=autotools patches=b050dbd arch=linux-rocky8-x86\_64\_v3
> - 3e4ypaa ^oasis3-mct@git.7036f26ece68c26083fec2fe96e3cb1faed7559d=access-esm1.5%oneapi@2025.0.4 cflags='-g3 -xCORE-AVX2 -fprotect-parens' cxxflags='-fprotect-parens -g3 -xCORE-AVX2' fflags='-g3 -traceback -fprotect-parens -xCORE-AVX2 -assume nan\_compares -assume ieee\_compares' ~deterministic~optimisation\_report build\_system=makefile arch=linux-rocky8-x86\_64\_v3
> \[e\] 6rciua3 ^openmpi@4.1.5%oneapi@2025.0.4 cflags='-xCORE-AVX2 -fprotect-parens -g3' cxxflags='-g3 -xCORE-AVX2 -fprotect-parens' fflags='-fprotect-parens -xCORE-AVX2 -traceback -assume ieee\_compares -g3 -assume nan\_compares' ~atomics~cuda~cxx~cxx\_exceptions~gpfs~internal-hwloc~internal-libevent~internal-pmix~java~legacylaunchers~lustre~memchecker~openshmem~orterunprefix~romio+rsh~singularity~static+vt+wrapper-rpath build\_system=autotools fabrics=none romio-filesystem=none schedulers=none arch=linux-rocky8-x86\_64\_v3
> \[e\] aehs5ds ^glibc@2.28%gcc@14.1.0 build\_system=autotools arch=linux-rocky8-x86\_64\_v3
> \[+\] a5p6o3a ^intel-oneapi-runtime@2025.0.4%oneapi@2025.0.4 build\_system=generic arch=linux-rocky8-x86\_64\_v3
> \[+\] thbbu3x ^gcc-runtime@14.1.0%gcc@14.1.0 build\_system=generic arch=linux-rocky8-x86\_64\_v3
> - z5nav4f ^mom5@git.7f3317663cd7ade995476c4e0dc09d361ad3bd36=access-esm1.6%oneapi@2025.0.4 cflags='-xCORE-AVX2 -fprotect-parens -g3' cxxflags='-xCORE-AVX2 -g3 -fprotect-parens' fflags='-xCORE-AVX2 -assume dummy\_aliases -g3 -assume nan\_compares -traceback -assume ieee\_compares -fprotect-parens' +access-gtracers~deterministic~optimisation\_report+restart\_repro build\_system=makefile type=ACCESS-ESM arch=linux-rocky8-x86\_64\_v3
> - qay6cql ^access-fms@git.mom5-2025.04.001=2025.04.001%oneapi@2025.0.4 cflags='-xCORE-AVX2 -g3 -fprotect-parens' cxxflags='-xCORE-AVX2 -g3 -fprotect-parens' fflags='-g3 -traceback -fprotect-parens -assume ieee\_compares -xCORE-AVX2 -assume nan\_compares' +gfs\_phys+internal\_file\_nml~ipo~large\_file build\_system=cmake build\_type=Release generator=make arch=linux-rocky8-x86\_64\_v3
> \[e\] c5j7mps ^cmake@3.24.2%oneapi@2025.0.4~doc+ncurses+ownlibs build\_system=generic build\_type=Release arch=linux-rocky8-x86\_64\_v3
> - m4c2x7l ^access-generic-tracers@git.dev-2025.04.001=2025.04.001%oneapi@2025.0.4 cflags='-xCORE-AVX2 -fprotect-parens -g3' cxxflags='-xCORE-AVX2 -fprotect-parens -g3' fflags='-assume ieee\_compares -traceback -g3 -assume nan\_compares -fprotect-parens -xCORE-AVX2' ~ipo build\_system=cmake build\_type=Release generator=make arch=linux-rocky8-x86\_64\_v3
> - 4dfqajn ^access-mocsy@git.2017.12.0=2017.12.0%oneapi@2025.0.4 cflags='-g3 -xCORE-AVX2 -fprotect-parens' cxxflags='-fprotect-parens -g3 -xCORE-AVX2' fflags='-g3 -traceback -assume nan\_compares -assume ieee\_compares -fprotect-parens -xCORE-AVX2' build\_system=makefile arch=linux-rocky8-x86\_64\_v3
> - pzg2ki2 ^netcdf-c@4.7.4%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-g3 -xCORE-AVX2 -fprotect-parens' fflags='-assume nan\_compares -assume ieee\_compares -xCORE-AVX2 -fprotect-parens -traceback -g3' ~blosc~byterange~dap~fsync~hdf4~jna+mpi~nczarr\_zip+optimize~parallel-netcdf+pic+shared~szip~zstd build\_system=autotools arch=linux-rocky8-x86\_64\_v3
> - np6elcb ^hdf5@1.10.11%oneapi@2025.0.4 cflags='-xCORE-AVX2 -fprotect-parens -g3' cxxflags='-g3 -fprotect-parens -xCORE-AVX2' fflags='-fprotect-parens -assume nan\_compares -traceback -assume ieee\_compares -xCORE-AVX2 -g3' ~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build\_system=cmake build\_type=Release generator=make arch=linux-rocky8-x86\_64\_v3
> \[+\] fv4gd6w ^pkgconf@2.2.0%oneapi@2025.0.4 build\_system=autotools arch=linux-rocky8-x86\_64\_v3
> \[+\] 7zrg4uj ^zlib-ng@2.1.6%oneapi@2025.0.4+compat+new\_strategies+opt+pic+shared build\_system=autotools arch=linux-rocky8-x86\_64\_v3
> - aagxavo ^um7@git.1ea43190add8627fb317906d257f278763b55125=access-esm1.6%oneapi@2025.0.4 cflags='-g3 -fprotect-parens -xCORE-AVX2' cxxflags='-xCORE-AVX2 -g3 -fprotect-parens' fflags='-g3 -traceback -assume nan\_compares -xCORE-AVX2 -fprotect-parens -assume ieee\_compares' build\_system=generic optim=high arch=linux-rocky8-x86\_64\_v3
> \[+\] p3e3j56 ^dummygrib@1.0%oneapi@2025.0.4 build\_system=makefile arch=linux-rocky8-x86\_64\_v3
> \[+\] 537j3rk ^fcm@2021.05.0%oneapi@2025.0.4 build\_system=generic site=none arch=linux-rocky8-x86\_64\_v3
> - etg42ku ^gcom4@git.0f17657a3b21cda9c0f3c403d99667e436062e38=access-esm1.5%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-fprotect-parens -xCORE-AVX2 -g3' fflags='-g3 -assume ieee\_compares -assume nan\_compares -traceback -xCORE-AVX2 -fprotect-parens' +mpi build\_system=generic arch=linux-rocky8-x86\_64\_v3
> \</details\>
> 
> \<details\>
> \<summary\>concretization for 2: 15339465156\</summary\>
> \`\`\`
> ==\> \[2025-05-30-14:55:09.632509\] Concretized access-esm1p6
> - canaqei access-esm1p6@latest%oneapi@2025.0.4+generic-tracers build\_system=bundle cice=4 um=access-esm1.6 arch=linux-rocky8-x86\_64\_v3
> - qljzx7x ^cice4@git.access-esm1.6-2025.04.000=access-esm1.5%oneapi@2025.0.4 cflags='-xCORE-AVX2 -g3 -fprotect-parens' cxxflags='-fprotect-parens -g3 -xCORE-AVX2' fflags='-xCORE-AVX2 -fprotect-parens -g3 -assume nan\_compares -traceback -assume ieee\_compares' build\_system=makefile arch=linux-rocky8-x86\_64\_v3
> \[+\] 7jm5ui5 ^gmake@4.4.1%oneapi@2025.0.4~guile build\_system=generic arch=linux-rocky8-x86\_64\_v3
> - vqb6dyd ^netcdf-fortran@4.5.2%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-g3 -fprotect-parens -xCORE-AVX2' fflags='-xCORE-AVX2 -assume ieee\_compares -assume nan\_compares -fprotect-parens -g3 -traceback' ~doc+pic+shared build\_system=autotools patches=b050dbd arch=linux-rocky8-x86\_64\_v3
> - 6quqwyb ^oasis3-mct@git.7036f26ece68c26083fec2fe96e3cb1faed7559d=access-esm1.5%oneapi@2025.0.4 cflags='-g3 -fprotect-parens -xCORE-AVX2' cxxflags='-fprotect-parens -g3 -xCORE-AVX2' fflags='-assume nan\_compares -fprotect-parens -g3 -assume ieee\_compares -traceback -xCORE-AVX2' ~deterministic~optimisation\_report build\_system=makefile arch=linux-rocky8-x86\_64\_v3
> \[e\] xid2pum ^openmpi@4.1.5%oneapi@2025.0.4 cflags='-g3 -xCORE-AVX2 -fprotect-parens' cxxflags='-xCORE-AVX2 -g3 -fprotect-parens' fflags='-assume ieee\_compares -traceback -g3 -assume nan\_compares -xCORE-AVX2 -fprotect-parens' ~atomics~cuda~cxx~cxx\_exceptions~gpfs~internal-hwloc~internal-libevent~internal-pmix~java~legacylaunchers~lustre~memchecker~openshmem~orterunprefix~romio+rsh~singularity~static+vt+wrapper-rpath build\_system=autotools fabrics=none romio-filesystem=none schedulers=none arch=linux-rocky8-x86\_64\_v3
> \[e\] aehs5ds ^glibc@2.28%gcc@14.1.0 build\_system=autotools arch=linux-rocky8-x86\_64\_v3
> \[+\] a5p6o3a ^intel-oneapi-runtime@2025.0.4%oneapi@2025.0.4 build\_system=generic arch=linux-rocky8-x86\_64\_v3
> \[+\] thbbu3x ^gcc-runtime@14.1.0%gcc@14.1.0 build\_system=generic arch=linux-rocky8-x86\_64\_v3
> - pasoao7 ^mom5@git.003c8a80bd223d2722b4aaca4174b3e3a21d87e6=access-esm1.6%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-xCORE-AVX2 -fprotect-parens -g3' fflags='-fprotect-parens -g3 -traceback -xCORE-AVX2 -assume ieee\_compares -assume nan\_compares' +access-gtracers~deterministic~optimisation\_report+restart\_repro build\_system=makefile type=ACCESS-ESM arch=linux-rocky8-x86\_64\_v3
> - finlfac ^access-fms@git.mom5-2025.04.001=2025.04.001%oneapi@2025.0.4 cflags='-xCORE-AVX2 -g3 -fprotect-parens' cxxflags='-xCORE-AVX2 -g3 -fprotect-parens' fflags='-assume nan\_compares -traceback -xCORE-AVX2 -assume ieee\_compares -g3 -fprotect-parens' +gfs\_phys+internal\_file\_nml~ipo~large\_file build\_system=cmake build\_type=Release generator=make arch=linux-rocky8-x86\_64\_v3
> \[e\] c5j7mps ^cmake@3.24.2%oneapi@2025.0.4~doc+ncurses+ownlibs build\_system=generic build\_type=Release arch=linux-rocky8-x86\_64\_v3
> - z2t66eo ^access-generic-tracers@git.dev-2025.04.001=2025.04.001%oneapi@2025.0.4 cflags='-fprotect-parens -g3 -xCORE-AVX2' cxxflags='-xCORE-AVX2 -fprotect-parens -g3' fflags='-g3 -traceback -assume nan\_compares -xCORE-AVX2 -assume ieee\_compares -fprotect-parens' ~ipo build\_system=cmake build\_type=Release generator=make arch=linux-rocky8-x86\_64\_v3
> - meqj55h ^access-mocsy@git.2017.12.0=2017.12.0%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-xCORE-AVX2 -fprotect-parens -g3' fflags='-fprotect-parens -assume nan\_compares -assume ieee\_compares -traceback -g3 -xCORE-AVX2' build\_system=makefile arch=linux-rocky8-x86\_64\_v3
> - dpqjhl3 ^netcdf-c@4.7.4%oneapi@2025.0.4 cflags='-xCORE-AVX2 -fprotect-parens -g3' cxxflags='-g3 -fprotect-parens -xCORE-AVX2' fflags='-traceback -xCORE-AVX2 -g3 -fprotect-parens -assume ieee\_compares -assume nan\_compares' ~blosc~byterange~dap~fsync~hdf4~jna+mpi~nczarr\_zip+optimize~parallel-netcdf+pic+shared~szip~zstd build\_system=autotools arch=linux-rocky8-x86\_64\_v3
> - v7qxufc ^hdf5@1.10.11%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-g3 -xCORE-AVX2 -fprotect-parens' fflags='-assume ieee\_compares -xCORE-AVX2 -assume nan\_compares -fprotect-parens -g3 -traceback' ~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build\_system=cmake build\_type=Release generator=make arch=linux-rocky8-x86\_64\_v3
> \[+\] fv4gd6w ^pkgconf@2.2.0%oneapi@2025.0.4 build\_system=autotools arch=linux-rocky8-x86\_64\_v3
> \[+\] 7zrg4uj ^zlib-ng@2.1.6%oneapi@2025.0.4+compat+new\_strategies+opt+pic+shared build\_system=autotools arch=linux-rocky8-x86\_64\_v3
> - rjo4gre ^um7@git.1ea43190add8627fb317906d257f278763b55125=access-esm1.6%oneapi@2025.0.4 cflags='-xCORE-AVX2 -g3 -fprotect-parens' cxxflags='-xCORE-AVX2 -g3 -fprotect-parens' fflags='-g3 -xCORE-AVX2 -fprotect-parens -assume nan\_compares -assume ieee\_compares -traceback' build\_system=generic optim=high arch=linux-rocky8-x86\_64\_v3
> \[+\] p3e3j56 ^dummygrib@1.0%oneapi@2025.0.4 build\_system=makefile arch=linux-rocky8-x86\_64\_v3
> \[+\] 537j3rk ^fcm@2021.05.0%oneapi@2025.0.4 build\_system=generic site=none arch=linux-rocky8-x86\_64\_v3
> - 4ahbikn ^gcom4@git.0f17657a3b21cda9c0f3c403d99667e436062e38=access-esm1.5%oneapi@2025.0.4 cflags='-g3 -xCORE-AVX2 -fprotect-parens' cxxflags='-fprotect-parens -g3 -xCORE-AVX2' fflags='-xCORE-AVX2 -g3 -assume nan\_compares -traceback -fprotect-parens -assume ieee\_compares' +mpi build\_system=generic arch=linux-rocky8-x86\_64\_v3
> \`\`\`
> \</details\>
> 
> Many of the dependencies have altered hashes, even though there was no change to the dependency requirements in the \`spack.yaml\`.
> 
> It seems the issue is ordering of the \`FFLAGS\` in the resolved spec, e.g.
> 
> 1: 
> \`\`\`
> susieal ^cice4@git.access-esm1.6-2025.04.000=access-esm1.5%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-g3 -xCORE-AVX2 -fprotect-parens' fflags='-xCORE-AVX2 -fprotect-parens -g3 -traceback -assume nan\_compares -assume ieee\_compares' build\_system=makefile arch=linux-rocky8-x86\_64\_v3
> \`\`\`
> 
> 2: 
> \`\`\`
> qljzx7x ^cice4@git.access-esm1.6-2025.04.000=access-esm1.5%oneapi@2025.0.4 cflags='-xCORE-AVX2 -g3 -fprotect-parens' cxxflags='-fprotect-parens -g3 -xCORE-AVX2' fflags='-xCORE-AVX2 -fprotect-parens -g3 -assume nan\_compares -traceback -assume ieee\_compares' build\_system=makefile arch=linux-rocky8-x86\_64\_v3
> \`\`\`
> 
> the changes are
> 
> 1. \`cflags='-fprotect-parens -xCORE-AVX2 -g3'\`
> 2. \`cflags='-xCORE-AVX2 -g3 -fprotect-parens'\`
> 
> 1. \`cxxflags='-g3 -xCORE-AVX2 -fprotect-parens'\`
> 2. \`cxxflags='-fprotect-parens -g3 -xCORE-AVX2'\`
> 
> 1. \`fflags='-xCORE-AVX2 -fprotect-parens -g3 -traceback -assume nan\_compares -assume ieee\_compares'\`
> 2. \`fflags='-xCORE-AVX2 -fprotect-parens -g3 -assume nan\_compares -traceback -assume ieee\_compares'\`
> 
> So the flags haven't changed, but the ordering has, which results in a different \`spec\` and therefore hash.
> 
> \### Information on your system
> 
> \* \*\*Spack:\*\* 0.22.2 (d7cf46c839d49af84dac543cf7bd315e6df3ae9b)
> \* \*\*Python:\*\* 3.6.8
> \* \*\*Platform:\*\* linux-rocky8-cascadelake
> \* \*\*Concretizer:\*\* clingo
> 
> Note that we're using \*very\* lightly updated version of 0.22.2 to backport some package fixes
> 
> https://github.com/spack/spack/compare/releases/v0.22...ACCESS-NRI:spack:releases/v0.22
> 
> These are builds for the \`gadi\` HPC system at NCI (Australia). The system specific config is here:
> 
> https://github.com/ACCESS-NRI/spack-config/tree/main/v0.22/gadi
> 
> and the spack-packages repo is here
> 
> https://github.com/ACCESS-NRI/spack-packages
> 
> \### General information
> 
> \- \[x\] I have run \`spack debug report\` and reported the version of Spack/Python/Platform
> \- \[x\] I have searched the issues of this repo and believe this is not a duplicate
> \- \[x\] I have run the failing commands in debug mode and reported the output

Seems like it has been acknowledged as something to be fixed?

---

<div class="post-metadata">

**Author:** ![Aidan](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/aidan/32/42_2.png) [@Aidan](https://forum.access-hive.org.au/u/Aidan)\
**Post date:** [3 June 2025 06:09 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/22 "2025-06-03T06:09:49Z")

</div>

As a work-around to above I’ve tried to use the `spack hash` to force package reuse as recommended in a previous telecom, but this does not seem to work

> <https://github.com/spack/spack/issues/38955#issuecomment-2933606948>
>
> \### Steps to reproduce
> 
> \`\`\`console
> $ # install some package
> $ spack install fi…ndutils%gcc@9.4.0
> \[...\]
> $ spack find -ldv
> \-- linux-ubuntu20.04-x86\_64\_v3 / gcc@9.4.0 ----------------------
> akqxr5c findutils@4.9.0 build\_system=autotools patches=440b954
> ==\> 1 installed package
> $ # create an environment
> $ spack env create test
> \[...\]
> $ # add the known findutils version
> $ spack -e test add findutils/akqxr5c
> $ # add something that depends on it with a different compiler (just to trigger the problem)
> $ spack -e test add flex%gcc@11.4.0
> $ # This results in the following simple environment spack.yaml:
> $ cat $SPACK\_ROOT/var/spack/environments/test/spack.yaml
> \# This is a Spack Environment file.
> \#
> \# It describes a set of packages to be installed, along with
> \# configuration settings.
> spack:
> # add package specs to the \`specs\` list
> specs:
> - findutils/akqxr5c
> - flex%gcc@11.4.0
> view: true
> concretizer:
> unify: true
> \# concretize with fresh flag (to trigger the problem)
> $ spack -e test concretize -U
> ==\> Concretized findutils/akqxr5c
> - pxmo3cc flex@2.6.3%gcc@11.4.0+lex~nls build\_system=autotools arch=linux-ubuntu20.04-x86\_64\_v3
> - xowvb7r ^bison@3.8.2%gcc@11.4.0 build\_system=autotools arch=linux-ubuntu20.04-x86\_64\_v3
> - dl4cry5 ^perl@5.36.0%gcc@11.4.0+cpanm+open+shared+threads build\_system=generic arch=linux-ubuntu20.04-x86\_64\_v3
> - k2fvyiq ^berkeley-db@18.1.40%gcc@11.4.0+cxx~docs+stl build\_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu20.04-x86\_64\_v3
> - prfn7g7 ^bzip2@1.0.8%gcc@11.4.0~debug~pic+shared build\_system=generic arch=linux-ubuntu20.04-x86\_64\_v3
> - vpjhxv6 ^gdbm@1.23%gcc@11.4.0 build\_system=autotools arch=linux-ubuntu20.04-x86\_64\_v3
> - xxolw6e ^readline@8.2%gcc@11.4.0 build\_system=autotools patches=bbf97f1 arch=linux-ubuntu20.04-x86\_64\_v3
> - umdrpve ^ncurses@6.4%gcc@11.4.0~symlinks+termlib abi=none build\_system=autotools arch=linux-ubuntu20.04-x86\_64\_v3
> - t2ic332 ^pkgconf@1.9.5%gcc@11.4.0 build\_system=autotools arch=linux-ubuntu20.04-x86\_64\_v3
> - jg4hpwc ^zlib@1.2.13%gcc@11.4.0+optimize+pic+shared build\_system=makefile arch=linux-ubuntu20.04-x86\_64\_v3
> - fam3ymf ^diffutils@3.9%gcc@11.4.0 build\_system=autotools arch=linux-ubuntu20.04-x86\_64\_v3
> - vulkfaz ^libiconv@1.17%gcc@11.4.0 build\_system=autotools libs=shared,static arch=linux-ubuntu20.04-x86\_64\_v3
> - zzi557h ^findutils@4.9.0%gcc@11.4.0 build\_system=autotools patches=440b954 arch=linux-ubuntu20.04-x86\_64\_v3
> - ubuuf53 ^m4@1.4.19%gcc@11.4.0+sigsegv build\_system=autotools patches=9dc5fbd,bfdffa7 arch=linux-ubuntu20.04-x86\_64\_v3
> - 6gsrgnj ^libsigsegv@2.14%gcc@11.4.0 build\_system=autotools arch=linux-ubuntu20.04-x86\_64\_v3
> \`\`\`
> 
> I have a similar case in a more complex environment with an explicit hash for llvm where spack concretizes a different llvm:
> \`\`\`console
> $ spack -e PrgEnv-llvm16-mpich concretize
> ==\> Starting concretization pool with 16 processes
> ==\> Environment concretized in 23.61 seconds.
> ==\> Concretized llvm/wuwxxxqrm3ync3lkgad72yyn2pax7es4
> - aze3pqz llvm@16.0.6%gcc@13.1.0+clang+compiler-rt~cuda+flang~gold+internal\_unwind~ipo+libcxx~link\_llvm\_dylib+lld+lldb+llvm\_dylib~mlir+omp\_as\_runtime~omp\_debug~omp\_tsan+polly~python~split\_dwarf~z3~zstd build\_system=cmake build\_type=Release generator=ninja shlib\_symbol\_version=none targets=none version\_suffix=none arch=linux-ubuntu20.04-x86\_64\_v3
> \[...\]
> - t6acmue ^ninja@1.11.1%gcc@13.1.0+re2c build\_system=generic arch=linux-ubuntu20.04-x86\_64\_v3
> \[...\]
> \`\`\`
> because it chooses to recompile ninja with a different compiler: so there is no problem here using the specified llvm version.
> And if there was a problem, this should abort with an error and not silently continue with a different hash.
> 
> This worked completely as expected in v0.19.2 with the same spack.yaml (or steps) from above with \`- name/hash\` lines.
> 
> Thinks for looking into this!
> 
> \### Error message
> 
> \_No response\_
> 
> \### Information on your system
> 
> \* \*\*Spack:\*\* 0.20.1 (e8658d6493887ef702dd38f0e9ee5870a1651c1e)
> \* \*\*Python:\*\* 3.8.10
> \* \*\*Platform:\*\* linux-ubuntu20.04-icelake
> \* \*\*Concretizer:\*\* clingo
> 
> \### General information
> 
> \- \[X\] I have run \`spack debug report\` and reported the version of Spack/Python/Platform
> \- \[X\] I have searched the issues of this repo and believe this is not a duplicate
> \- \[X\] I have run the failing commands in debug mode and reported the output

See

> <https://gist.github.com/aidanheerdegen/96d4d567aeae9bf7a1bede4ac043a5e2>

---

<div class="post-metadata">

**Author:** ![harshula](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/harshula/32/256_2.png) [@harshula](https://forum.access-hive.org.au/u/harshula)\
**Post date:** [29 June 2025 23:28 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/23 "2025-06-29T23:28:29Z")

</div>

Can a variant support an arbitrary string as user input? e.g. `variant(var, default="none", description=var, values="*", multi=False)`

Answer: Dynamic variants: we don’t seem to document this anywhere I can find, and I don’t see any examples in our builtin repo, but we do have a test which basically does what you are doing in [spack-packages/packages/um/package.py at 9e984d69c91580748fc05b5af46dd5a9566f565a · ACCESS-NRI/spack-packages · GitHub](https://github.com/ACCESS-NRI/spack-packages/blob/9e984d69c91580748fc05b5af46dd5a9566f565a/packages/um/package.py#L108), so we are enforcing it at the test level (FWIW that test is called `test_wild_card_valued_variants_equivalent_to_str`)

---

<div class="post-metadata">

**Author:** ![harshula](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/harshula/32/256_2.png) [@harshula](https://forum.access-hive.org.au/u/harshula)\
**Post date:** [4 July 2025 02:05 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/24 "2025-07-04T02:05:21Z")

</div>

Can the compiler wrapper output be put in the `.spack` directory when a standard `spack install`is executed? We are using Spack v0.22 and we need to run `spack -d install` and the output (spack-cc\*.out) files are in the working directory.

---

<div class="post-metadata">

**Author:** ![harshula](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/harshula/32/256_2.png) [@harshula](https://forum.access-hive.org.au/u/harshula)\
**Post date:** [15 July 2025 00:05 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/25 "2025-07-15T00:05:33Z")

</div>

Can Spack provide a command to `cd` into a package’s build log directory? e.g. `spack -e access-esm1p6-pr94-14 cd --logs um7`

---

<div class="post-metadata">

**Author:** ![TommyGatti](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/tommygatti/32/2353_2.png) [@TommyGatti](https://forum.access-hive.org.au/u/TommyGatti)\
**Post date:** [5 August 2025 01:01 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/26 "2025-08-05T01:01:42Z")

</div>

Are there any ways to enforce a single compiler down a dependency chain (for example, with `spack.packages.all.require: [%gcc@13.2.0]`), but also allow good reuse of packages?

Some attempts:

```yaml
spack:
  specs:
  # In which the below first-level deps use the gcc@13.2.0 compiler
  - cable ^cmake/bbw5qer ^gmake/nql6rht ^netcdf-c/o343qzy ^openmpi/mglfhd

```

This led to most dependencies down the chain using `%gcc` (or a version of it), but not all.

---

<div class="post-metadata">

**Author:** ![harshula](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/harshula/32/256_2.png) [@harshula](https://forum.access-hive.org.au/u/harshula)\
**Post date:** [11 August 2025 02:53 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/27 "2025-08-11T02:53:34Z")

</div>

Should an SPR define `url` or `url_for_version`? Would Spack accept an SPR with neither into the upstream repository?

---

<div class="post-metadata">

**Author:** ![harshula](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/harshula/32/256_2.png) [@harshula](https://forum.access-hive.org.au/u/harshula)\
**Post date:** [1 September 2025 02:44 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/29 "2025-09-01T02:44:28Z")

</div>

Can the behaviour of `vcheck` in the compiler wrapper be changed? ([Do not use -V in fflags: it fools the Spack compiler wrapper by penguian · Pull Request #315 · ACCESS-NRI/spack-packages · GitHub](https://github.com/ACCESS-NRI/spack-packages/pull/315))

---

<div class="post-metadata">

**Author:** ![harshula](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/harshula/32/256_2.png) [@harshula](https://forum.access-hive.org.au/u/harshula)\
**Post date:** [2 September 2025 01:05 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/30 "2025-09-02T01:05:45Z")

</div>

Can Spack be configured to use an external module file instead of generating its own?

---

<div class="post-metadata">

**Author:** ![harshula](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/harshula/32/256_2.png) [@harshula](https://forum.access-hive.org.au/u/harshula)\
**Post date:** [26 September 2025 00:00 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/31 "2025-09-26T00:00:10Z")

</div>

> <https://github.com/ACCESS-NRI/spack-packages/pull/301>
>
> closes #300

---

<div class="post-metadata">

**Author:** ![TommyGatti](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/tommygatti/32/2353_2.png) [@TommyGatti](https://forum.access-hive.org.au/u/TommyGatti)\
**Post date:** [7 October 2025 23:49 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/32 "2025-10-07T23:49:26Z")

</div>

In terms of provenance/build recreation/disaster recovery for builds in `spack 1.0`, is the following all that is required to rebuild exactly?

- The `spack.lock` file
- The git hash of `spack` used to build the above lockfile
- The git hash of [`spack-config`](https://github.com/ACCESS-NRI/spack-config) used to modify `spack`s configuration for ACCESS-NRI’s instances
- The git hash of spacks [`spack-packages`](https://github.com/spack/spack-packages) repository
- The git hash of ACCESS-NRI’s [`spack-packages`](https://github.com/ACCESS-NRI/spack-packages) repository

---

<div class="post-metadata">

**Author:** ![harshula](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/harshula/32/256_2.png) [@harshula](https://forum.access-hive.org.au/u/harshula)\
**Post date:** [27 February 2026 14:04 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/33 "2026-02-27T14:04:14Z")

</div>

Ask about Spack v0.22 with oneapi@2025.2.0 not inserting `march`/`mtune` args, whereas Spack v1.1 does.

---

<div class="post-metadata">

**Author:** ![TommyGatti](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/tommygatti/32/2353_2.png) [@TommyGatti](https://forum.access-hive.org.au/u/TommyGatti)\
**Post date:** [3 March 2026 22:54 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/34 "2026-03-03T22:54:40Z")

</div>

Ask about the interactions with the following:

```yaml
spack:
  # ...
  packages:
    oasis3-mct:
      require:
      - target=x86_64_v2
    all:
      prefer:
      # ... compiler defs ...
      - target=x86_64_v4
    

```

For example:

> <https://github.com/ACCESS-NRI/ACCESS-ESM1.6/actions/runs/22598839949/job/65475858352#step:15:914>

---

<div class="post-metadata">

**Author:** ![harshula](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/harshula/32/256_2.png) [@harshula](https://forum.access-hive.org.au/u/harshula)\
**Post date:** [10 March 2026 03:42 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/35 "2026-03-10T03:42:45Z")

</div>

@TommyGatti & I were chatting, we were wondering what QA is run by the Spack project on upstream `spack-packages` `develop` branch and the `releases/<version>` branches?

---

<div class="post-metadata">

**Author:** ![TommyGatti](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.access-hive.org.au/tommygatti/32/2353_2.png) [@TommyGatti](https://forum.access-hive.org.au/u/TommyGatti)\
**Post date:** [28 May 2026 01:02 UTC](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856/36 "2026-05-28T01:02:07Z")

</div>

Concretization sometimes takes quite a while. Is it possible to have a progress bar/loading symbol?

[Previous page](https://forum.access-hive.org.au/t/questions-for-spack-meeting/3856.md?page=1)
