Skip to content

Bug fixes for creating and using bootstrap mirrors on air-gapped systems#48252

Merged
alalazo merged 12 commits intospack:developfrom
climbfuji:bugfix/bootstrap_airgapped
Jan 27, 2025
Merged

Bug fixes for creating and using bootstrap mirrors on air-gapped systems#48252
alalazo merged 12 commits intospack:developfrom
climbfuji:bugfix/bootstrap_airgapped

Conversation

@climbfuji
Copy link
Copy Markdown
Contributor

@climbfuji climbfuji commented Dec 20, 2024

Note

CI style checks currently fail with an error that is very likely unrelated to this PR:

/home/runner/work/spack/spack/pyproject.toml: [mypy]: python_version: Python 3.7 is not supported (must be 3.8 or higher). You may need to put quotes around your Python version
==> Error: spack style found errors

Description

Fixes #48163. Credits to @alalazo for the suggested bug fixes.

In #48163, I referred to two bugs:

  1. Update v0.4 to v0.5 in the URLs in bootstrap.py. This was already fixed for spack develop with an update to v0.6 in bootstrap mirror: fix references from v0.4 to v0.6 #48235. My suggestion is to backport a modified version that uses v0.5 instead of v0.6 to v0.23, but I defer to the spack developers for what the right course of action is.

  2. Convert the URL in the bootstrap mirror's sources/metadata.yaml to an absolute path when needed in spack bootstrap now (or when triggered implicitly) - this PR. Note that in order to backport this change to v0.23, we must replace

self.url = spack.mirrors.mirror.Mirror(maybe_url).fetch_url

with

self.url = spack.mirror.Mirror(maybe_url).fetch_url
  1. Update documentation to include an update of the bootstrap binary cache

@spackbot-app spackbot-app bot added commands core PR affects Spack core functionality labels Dec 20, 2024
@climbfuji
Copy link
Copy Markdown
Contributor Author

@alalazo Would you mind taking a look at this? I'd like to hear your opinion on the solution adopted here versus the alternative solution (see item 3 in the above list). Thanks!

@alalazo
Copy link
Copy Markdown
Member

alalazo commented Dec 24, 2024

Point 4 shouldn't be needed, but I need to double check if we can still construct a bootstrap mirror somewhere with a new-ish Python interpreter, and still consume it on an older distro with Python 3.6

For item 3: we used relative paths exactly because of the reason you mention, so I'd continue with that.

I'm also trying to figure out how we can test this subcommand in CI, so it doesn't rot with time. I'll probably submit a separate PR, maybe depending on this one, to add some nightly job testing the entire workflow.

@alalazo alalazo self-assigned this Dec 24, 2024
@climbfuji
Copy link
Copy Markdown
Contributor Author

climbfuji commented Dec 26, 2024

Point 4 shouldn't be needed, but I need to double check if we can still construct a bootstrap mirror somewhere with a new-ish Python interpreter, and still consume it on an older distro with Python 3.6

For item 3: we used relative paths exactly because of the reason you mention, so I'd continue with that.

I'm also trying to figure out how we can test this subcommand in CI, so it doesn't rot with time. I'll probably submit a separate PR, maybe depending on this one, to add some nightly job testing the entire workflow.

Thanks @alalazo. But 3 as it stands doesn't work. Please take a close look at the error reported in #48163 (comment), specifically the section on the air-gapped system.

What the series of commands show is that spack bootstrap now fails because the directory bootstrap_cache cannot be found. I used exactly the commands in the documentation to create and transfer the mirror to location

/p/work1/heinzell/spack-stack/bootstrap-mirror

which means bootstrap_cache is a directory in /p/work1/heinzell/spack-stack/bootstrap-mirror. Then, I register the mirror following the instructions as

> spack bootstrap add --trust local-sources /p/work1/heinzell/spack-stack/bootstrap-mirror/metadata/sources
==> New bootstrapping source "local-sources" added in the "user" configuration scope
==> "local-sources" is now enabled for bootstrapping
> spack bootstrap add --trust local-binaries /p/work1/heinzell/spack-stack/bootstrap-mirror/metadata/binaries
==> New bootstrapping source "local-binaries" added in the "user" configuration scope
==> "local-binaries" is now enabled for bootstrapping

and sure enough, it's registered as follows:

> spack bootstrap list
Name: local-binaries ENABLED

  Type: buildcache

  Info:
    url: ../../bootstrap_cache
    homepage: https://github.com/spack/spack-bootstrap-mirrors
    releases: https://github.com/spack/spack-bootstrap-mirrors/releases
    tarball: https://github.com/spack/spack-bootstrap-mirrors/releases/download/v0.5/bootstrap-buildcache.tar.gz

  Description:
    Buildcache copied from a public tarball available on Github.The sha256 checksum of binaries is checked before installation.

Name: local-sources ENABLED

  Type: install

  Info:
    url: ../../bootstrap_cache

  Description:
    Mirror with software needed to bootstrap Spack

Name: github-actions-v0.6 ENABLED
...

When I try to boostrap, it fails because it cannot find directory /p/work1/heinzell/bootstrap_cache - which is wrong, because the directory is in /p/work1/heinzell/spack-stack/bootstrap-mirror/bootstrap_cache, and the metadata.yaml files as shown above in /p/work1/heinzell/spack-stack/bootstrap-mirror/metadata/sources/metadata.yaml. This means that the relative path ../../bootstrap_cache in the metadata.yaml file is interpreted relative to directory in which bootstrap-mirror is located (which is /p/work1/heinzell/spack-stack/spack-dev-20241217), not relative to metadata.yaml (which I believe was the intention).

Therefore, the following workaround allows me to bootstrap successfully (this is all in the issue linked above):

# This is the directory where the actual bootstrap_cache directory resides
> pwd
/p/work1/heinzell/spack-stack/spack-dev-20241217/bootstrap-mirror

> cd /p/work1/heinzell/
> ln -sf spack-stack/bootstrap-mirror/bootstrap_cache .
heinzell@cole01:/p/work1/heinzell> ls -l
total 8
lrwxrwxrwx  1 heinzell 0379GYH2   44 Dec 17 15:32 bootstrap_cache -> spack-stack/bootstrap-mirror/bootstrap_cache

And this is the problem - I shouldn't have to create a symbolic link from two levels above boostrap-mirror into bootstrap-mirror to make the boostrapping work.

@climbfuji climbfuji force-pushed the bugfix/bootstrap_airgapped branch from 63ed793 to 186251d Compare January 15, 2025 03:30
@climbfuji climbfuji force-pushed the bugfix/bootstrap_airgapped branch from 186251d to 5c62bb8 Compare January 15, 2025 03:31
@alalazo
Copy link
Copy Markdown
Member

alalazo commented Jan 15, 2025

@climbfuji I think this is what is needed to fix most of the issues:

diff --git a/lib/spack/spack/bootstrap/core.py b/lib/spack/spack/bootstrap/core.py
index 725cc671a0..b90247f665 100644
--- a/lib/spack/spack/bootstrap/core.py
+++ b/lib/spack/spack/bootstrap/core.py
@@ -96,8 +96,12 @@ def __init__(self, conf: ConfigDictionary) -> None:
         self.name = conf["name"]
         self.metadata_dir = spack.util.path.canonicalize_path(conf["metadata"])
 
-        # Promote (relative) paths to file urls
-        self.url = spack.mirrors.mirror.Mirror(conf["info"]["url"]).fetch_url
+        # Check for relative paths, and turn them into absolute paths
+        # root is the metadata_dir
+        maybe_url = conf["info"]["url"]
+        if spack.util.url.is_path_instead_of_url(maybe_url) and not os.path.isabs(maybe_url):
+            maybe_url = os.path.join(self.metadata_dir, maybe_url)
+        self.url = spack.mirrors.mirror.Mirror(maybe_url).fetch_url
 
     @property
     def mirror_scope(self) -> spack.config.InternalConfigScope:

This regressed in #47126, and got unnoticed because we have no tests stressing the creation of a buildcache on a machine + bootstrapping on another. I think we should add some e2e tests to ensure this doesn't regress again. It can be done either in this PR or in a following one.

@spackbot-app spackbot-app bot added the documentation Improvements or additions to documentation label Jan 16, 2025
@climbfuji climbfuji marked this pull request as ready for review January 16, 2025 00:21
@climbfuji climbfuji requested a review from alalazo January 16, 2025 00:21
@alalazo
Copy link
Copy Markdown
Member

alalazo commented Jan 16, 2025

This is currently missing an import:

lib/spack/spack/bootstrap/core.py: missing import: spack.util.url (spack.util.url.is_path_instead_of_url)

@climbfuji
Copy link
Copy Markdown
Contributor Author

This is currently missing an import:

lib/spack/spack/bootstrap/core.py: missing import: spack.util.url (spack.util.url.is_path_instead_of_url)

I only tested the v0.23 version and that worked without. I'll add it in.

@alalazo
Copy link
Copy Markdown
Member

alalazo commented Jan 20, 2025

@climbfuji If you're fine with that, I can push to this PR to fix the last few issues.

@climbfuji
Copy link
Copy Markdown
Contributor Author

@climbfuji If you're fine with that, I can push to this PR to fix the last few issues.

That's totally fine, otherwise it's on my list for today. Sorry for the delay.

@climbfuji
Copy link
Copy Markdown
Contributor Author

@alalazo I fixed the missing import statement, and I confirmed that the code changes here work fine on my air-gapped system. But CI is still failing because the bootstrap cache for github-actions-v0.6 is empty: https://github.com/spack/spack/actions/runs/12897628840/job/35963432297?pr=48252

@climbfuji
Copy link
Copy Markdown
Contributor Author

@alalazo I fixed the missing import statement, and I confirmed that the code changes here work fine on my air-gapped system. But CI is still failing because the bootstrap cache for github-actions-v0.6 is empty: https://github.com/spack/spack/actions/runs/12897628840/job/35963432297?pr=48252

Would you be able to help with this? I am a little unsure. The scripts that are getting called don't make it obvious how to run spack buildcache update-index. Thanks very much in advance ...

@alalazo
Copy link
Copy Markdown
Member

alalazo commented Jan 22, 2025

Would you be able to help with this? I am a little unsure. The scripts that are getting called don't make it obvious how to run spack buildcache update-index. Thanks very much in advance ...

I'll have a look going to the end of the week

climbfuji added a commit to climbfuji/spack that referenced this pull request Jan 23, 2025
…ping.rst, lib/spack/spack/bootstrap/core.py, lib/spack/spack/cmd/bootstrap.py
@alalazo
Copy link
Copy Markdown
Member

alalazo commented Jan 27, 2025

Ci was failing because:

oci://ghcr.io/spack/bootstrap-buildcache-v1

was interpreted as a path by spack.util.url.is_path_instead_of_url I have some idea on how to make this function more robust (i.e. check that both scheme and netloc are set after urlparse), but I'll submit that in a following PR, along with some tests to avoid this functionality breaks again.

@climbfuji
Copy link
Copy Markdown
Contributor Author

Ci was failing because:

oci://ghcr.io/spack/bootstrap-buildcache-v1

was interpreted as a path by spack.util.url.is_path_instead_of_url I have some idea on how to make this function more robust (i.e. check that both scheme and netloc are set after urlparse), but I'll submit that in a following PR, along with some tests to avoid this functionality breaks again.

Thanks very much for fixing this! Would have taken me forever to track down.

@alalazo alalazo enabled auto-merge (squash) January 27, 2025 22:32
@alalazo alalazo merged commit 22ba366 into spack:develop Jan 27, 2025
@climbfuji
Copy link
Copy Markdown
Contributor Author

Yay! Thanks very much for your help @alalazo.

@climbfuji climbfuji deleted the bugfix/bootstrap_airgapped branch January 27, 2025 22:46
teaguesterling pushed a commit to teaguesterling/spack that referenced this pull request Feb 5, 2025
Regressed in spack#47126 

Spack was not interpreting mirrors using relative path with respect to the
metadata directory.

---------

Co-authored-by: Massimiliano Culpo <[email protected]>
github-merge-queue bot pushed a commit to ROCm/rocm-spack that referenced this pull request Feb 7, 2025
* Update elk to versions 8.8, 9.6, 10.2 (spack#48583)

* py-executing: support python 3.13 (spack#48604)

* mypy: update python version to avoid error/warning (spack#48593)

* pyproject: remove mypy python version option since defaults to python used to run it (spack#48593)

* hard: new package (spack#48595)

* spec.py: make hashing of extra_attributes order independent (spack#48615)

* Stable splice-topo order for resolving splicing (spack#48605)

Co-authored-by: Massimiliano Culpo <[email protected]>

* poppler: many improvements (spack#48627)

* poppler: many improvements

* Strangely I did not have the proper comment header

* Add a maintainer

* Fix two instances of duplicate 'https://' in URLs (spack#48628)

* compat with mypy 1.14 (spack#48626)

* OSError.errno apparently is int | None, but already part of __str__ anyway so drop

* fix disambiguate_spec_from_hashes

* List[Spec].sort() complains, ignore it

* fix typing of KnownCompiler, and use it in asp.py

* hepmc3: extend python when the python bindings are enabled (spack#47836)

Co-authored-by: jmcarcell <[email protected]>

* py-numpy: add v2.1.3, v2.2.1, v2.2.2 (spack#48640)

* root: depends_on r-rcpp@:1.0.12 when @:6.32.02 (spack#48625)

* mapl: add v2.52.0 (spack#48629)

* dealii: add  v9.6.1, and v9.6.2 (spack#48620)

* openPMD-api: add v0.16.1 (spack#48601)

* openpmd-api: add v0.16.1

Add the latest release of openPMD-api.

* TOML11: Latest Versions

* scorep: update configure opts for libbfd (spack#48614)

* ngspice: add v44 (spack#48611)

* Change llvm-amdgpu to a build dependency of rocm (spack#48612)

* spack_yaml.py / spec.py: use dict instead of OrderedDict (spack#48616)

* for config: let `syaml_dict` inherit from `dict` instead of `OrderedDict`. `syaml_dict` now only exists as a mutable wrapper for yaml related metadata.
* for spec serialization / hashing: use `dict` directly

This is possible since we only support cpython 3.6+ in which dicts are ordered.

This improves performance of hash computation a bit. For a larger spec I'm getting 9.22ms instead of 11.9ms, so 22.5% reduction in runtime.

* rsync: add v3.4.0, v3.4.1 (spack#48607)

* jsonschema: use draft7 validator and simplify schemas (spack#48621)

* octave: new version 9.3.0 (spack#48606)

* flux-sched: add v0.41.0(spack#48599)

Co-authored-by: github-actions <[email protected]>

* flux-pmix: add v0.6.0 (spack#48600)

Co-authored-by: github-actions <[email protected]>

* dorado: fixing typo on version restriction for hdf5 (spack#48591)

Signed-off-by: Shane Nehring <[email protected]>

* spfft: add v1.1.1 (spack#48643)

* py-virtualenvwrapper: add v6.0.0, v6.1.0, v6.1.1 (spack#47785)

* fusion-io: new package (spack#47699)

* justbuild: add version 1.4.2 (spack#48581)

* nvtx: fix missing import (spack#48580)

* cgns: add v4.5.0 (spack#48490)

* Metall: add v0.29 and v0.30 (spack#48564)

Co-authored-by: Keita Iwabuchi <[email protected]>

* py-pyscf: add v2.8.0 (spack#48571)

* gnina: add v1.3 (spack#47711)

* gnina: add v1.3

* Update var/spack/repos/builtin/packages/gnina/package.py

Co-authored-by: Mikael Simberg <[email protected]>

* Update var/spack/repos/builtin/packages/gnina/package.py

Co-authored-by: Mikael Simberg <[email protected]>

* Update var/spack/repos/builtin/packages/gnina/package.py

Co-authored-by: Mikael Simberg <[email protected]>

* use github patch

* update

---------

Co-authored-by: Mikael Simberg <[email protected]>

* archive.py: fix include_parent_directories=True with path_to_name (spack#48570)

* r: add v4.4.2 (spack#48329)

* r: add v4.4.2

* r-rcpp: add v1.0.13-1 spot release; conflict 1.0.13 with [email protected]

* libslirp: add v4.8.0 (spack#48561)

* lhapdf: add v6.5.5 (spack#48336)

* py-mplhep: add v0.3.55 (spack#48338)

* add affinity package (spack#48589)

* openldap: fix build (spack#48646)

* pythia8: correct with_or_without prefix for +openmpi (spack#48131)

* pythia8: correct with_or_without prefix for +openmpi

* pythia8: fix style

* pythia8: fix style

* npm, node-js, typescript: add external find (spack#48587)

* npm: add external find

* node-js: add external find

* Add external for typescript

* Match full executable string

* Fix style

* indicators: new package (spack#47786)

* indicators: new package

Indicators is a new package which aims to add easy-to-use progress bars
to modern C++.

* Update header

* Update dependencies

* netlib-lapack: add v3.12.1 (spack#48318)


Co-authored-by: Wouter Deconinck <[email protected]>

* gpi-space: add v24.12 (spack#48361)

* BF+ENH: Add wxwidgets 3.2.6 and py-wxpython 4.2.2, missing pkgconfig dep (spack#48597)

* BF+ENH: Add wxwidgets 3.2.6 and py-wxpython 4.2.2

Improves compat with newer Python (>3.9) and numpy.

Fix error during configure step (even on at least some older
versions) by including 'pkgconfig' as a build dep so gtk+ is found.

* BF: Make wxpython use spack built wxwidgets instead of rebuilding

* Update var/spack/repos/builtin/packages/py-wxpython/package.py

Avoid using too new version of py-setuptools as license file format is currently not compatible.

Co-authored-by: Wouter Deconinck <[email protected]>

---------

Co-authored-by: Wouter Deconinck <[email protected]>

* relocate.py, binary_distribution.py: cleanup (spack#48651)

* PackageBase.detect_dev_src_change: speed up (spack#48618)

* e4s ci stacks: add libceed (spack#48668)

* sirius: libxc 7 forward compat (spack#48663)

* autotools.py: set lt_cv_apple_cc_single_mod=yes (spack#48671)

Since macOS 15 `ld -single_module` warns with a deprecation message,
which makes configure scripts believe the flag is unsupported. That
in turn triggers a code path where `archive_cmds` is set to

```
$CC -r -keep_private_externs -nostdlib ... -dynamiclib
```

instead of just

```
$CC -dynamiclib ...
```

This code path was meant to trigger only on ancient macOS <= 14.4 where
libtool had to add `-single_module`, which is the default since macos
14.4, and is now apparently deprecated because the flag is a no-op for
more than 15 years.

The wrong `archive_cmds` causes actual problems combined with a bug in
OpenMPI's compiler wrapper (`CC=mpicc`), which appends `-rpath` flags,
which cause an error when combined with the `-r` flag added by the
autotools.

Spack's compiler wrapper doesn't do this, but it's likely there are
other compiler wrappers out there that are not aware that `-r` and
`-rpath` cannot be combined.

The fix is to change defaults: `lt_cv_apple_cc_single_mod=yes`.

* pmdk: add cmake dependency back (spack#48664)

* bootstrap/status.py: remove make (spack#48677)

* bootstrap: do not show disabled sources as errors if enabled sources fail (spack#48676)

* Address quoting issue impacting dev_paths containing @ symbols (spack#48555)

* Address quoting issue that casuses dev_paths containing @ symbols to parse as versions

* Fix additional location were dev_path was imporperly constructed

The dev_path must be quoted to avoid parsing issues when
paths contain '@' symbols. Also add tests to catch
regression of this behavior

* Format to fix line length

* fix failing tests

* Fix whitespace error

* Add binary_compatibility fixture to test

* Change string formatting to avoid multiline f string

* Update lib/spack/spack/test/concretization/core.py

* Add tmate debug session

* Revert "Add tmate debug session"

This reverts commit 24e2f77.

* Move test and refactor to use env methods

* Update lib/spack/spack/test/cmd/develop.py

---------

Co-authored-by: psakievich <[email protected]>

* Celeritas: new version 0.5.1 (spack#48678)

* Celeritas: add version 0.5

* Fix style

* Un-deprecate non-awful versions

* Add OpenMP dependency to Kokkos and KokkosKernels (spack#48455)

* Add OpenMP dependency to Kokkos and KokkosKernels

* Add Chris' suggestions

* alps: add new package (spack#48183)

* Use gcc toolchain when using hip and gcc host compiler (spack#48632)

* gaudi: add v39.2; CUDA support (spack#48557)

* gaudi: add v39.2; CUDA support
* gaudi: CUDAPackage -> CudaPackage

* fmt: add v11.1.{1,2}; spdlog: add v1.15.0 (spack#48402)

* fmt: add v11.1.1

* spdlog: add v1.15.0

* spdlog: terminate string

* fmt: add v11.1.2

* spdlog: apply fmt-11.1 support patch up to 1.15.0

* spdlog: add prereq patch to ensure intended patch applies cleanly

* spdlog: fix patch checksum

* build_environment.py: clear CONFIG_SITE for configure scripts (spack#48690)

Should be sufficient to set CONFIG_SITE to /dev/null before running configure to 
prevent any config site file to be loaded, which currently causes non-determinism in builds.

Setting the variable CONFIG_SITE prevents configure files to check $prefix/share/config.site, 
$prefix/etc/config.site, $ac_default_prefix/share/config.site, $ac_default_prefix/etc/config.site 
so we don't have to patch a block of code.

* Improve `spack.build_systems` typing (spack#48590)

* Define the DB index file name in a single place (spack#48681)

* pandoramonitoring: add patch for compiling with C++20 (spack#48659)

* pandoramonitoring: add patch for compiling with C++20

* Fix patch for PandoraMonitoring

---------

Co-authored-by: jmcarcell <[email protected]>

* gaudi: set GAUDI_PLUGIN_PATH for runtime on macos (spack#48039)

* set GAUDI_PLUGIN_PATH

* [@spackbot] updating style on behalf of vvolkl

---------

Co-authored-by: vvolkl <[email protected]>

* SIPPackage: add gmake as a build dependency to be able to build py-pyqt5 (spack#48660)

* openmpi: do not pass --with-wrapper-ldflags (spack#48673)

On macOS you cannot unconditionally pass `-rpath`, it can conflict with
`-r`.

mpicc is not the place to inject rpaths to compiler runtime
libraries. That's up to the compiler's config files (spec files in gcc,
config files in llvm).

Also remove some patches that are redundant in newer versions of
openmpi.

* Fix var/spack/repos/builtin/packages/ectrans/package.py: instead of declaring a conflict with Intel LLVM compilers, apply patch from upstream (spack#48687)

* py-awkward: add dependency for py-importlib-metadata (spack#47027)

* py-awkward: add dependency on py-importlib-metadata and py-fsspec
* Implement suggested constraint and dependency type changes

---------

Co-authored-by: jmcarcell <[email protected]>

* Allow scipy to be built with AOCC again (spack#48505)

Co-authored-by: Phil Tooley <[email protected]>

* Revert "pika: Add conflict between HIP and GCC (libstdc++) >= 13 (spack#46291)" (spack#48693)

The conflict is too strict and prevents usable combinations from being
concretized. Some packages depend on pika, but do not include pika
headers in HIP device code files, and can thus be compiled even with the
bad combination of HIP and GCC versions.

* Remove unused Tokenizer.full_match (spack#48650)

* hpcviewer: add version 2025.01 (spack#48670)

* mapl: add v2.53.0 (spack#48712)

* New Package: PUMGen (spack#48705)

* add pumgen package
* remove netcdf variant
* remove scorec variant, move zoltan dep
* fix license

* yosys: add v0.49 (spack#48700)

* verible: v0.0.3929 (spack#48701)

* filesystem.py: fix recursive_mtime_greater_than (spack#48718)

* rewiring.py: eliminate code duplication from bindist (spack#48723)

* Force rocm dependency on hipfft with +rocm is given (spack#48211)

Make sure that hipfft+rocm is explicit when +rocm is true.

Co-authored-by: Rocco Meli <[email protected]>

* Improve error handling in urlopen / socket read (spack#48707)

* Backward compat with Python 3.9 for socket.timeout
* Forward compat with Python [unknown] as HTTPResponse.geturl is deprecated
* Catch timeout etc from .read()
* Some minor simplifications: json.load(...) takes file object in binary mode.
* Fix CDash code which does error handling wrong: non-2XX responses raise.

* py-scikit-image: add v0.25.1 (spack#48728)

* py-timm: add v1.0.14 (spack#48648)

* Initialize deque with path string (spack#48734)

* GoPackage: respect -j concurrency (spack#48421)

* Go build system: reduce resulting installation sizes (spack#47943)

* Reduce the size of outputted go built binaries
* Remove unused import from go package
* go: remove comment from setup dependents build env
* Add back missing imports after rebase

* fmt: Add 11.1.3 (spack#48726)

* Allowing environment variables to be set in a spack.yaml (spack#47587)

This adds a new configuration section called `env_vars:` that can be set in an environment.

It looks very similar to the existing `environment:` section that can be added to `modules.yaml`,
but it is global for an entire spack environment. It's called `env_vars:` to deconflate it with spack
environments (the term was too overloaded).

The syntax looks like this:

```yaml
spack:
  specs:
    - cmake%gcc
  env_vars:
    set:
      ENVAR_SET_IN_ENV_LOAD: "True"
```

Any of our standard environment modifications can be added to the `env_vars` section, e.g.
`prepend_path:`, `unset:`, `append_path:`, etc.  Operations in `env_vars:` are performed
on `spack env activate` and undone on `spack env deactivate`.

* zfp: add smoke test (spack#48598)

* vtk: fix incorrect detection of -fvisibility (spack#48737)

* dealii: add vtk backward compat bound (spack#48744)

* librdkafka: added version 2.6.1 and 2.8.0 (spack#48725)

* fairmq: add v1.9.1 (spack#48724)

* geomodel: Add version 6.8.0 (spack#48727)

This commit adds version 6.8.0 of GeoModel. As far as I can tell from
the change notes, there are no changes required to the build
configuration or dependencies.

* Fix a few minor issues in tests (spack#48735)

* test_no_matching_compiler_specs: does not need mock_low_high_config,
  since mutable_config is already used at class level
* bindist.py: setup a configuration that doesn't super-impose builtin.mock
  over builtin
* builder.py: use a mock configuration for the tests

* Fix creating a bootstrap mirrors (spack#48252)

Regressed in spack#47126 

Spack was not interpreting mirrors using relative path with respect to the
metadata directory.

---------

Co-authored-by: Massimiliano Culpo <[email protected]>

* Add nanobind 2.4.0 (spack#48721)

* mapl: fix too strict oneapi conflict (spack#48743)

* mapl: fix too strict oneapi conflict
* Use older style
* Add diag-disable flag
* Updates from Dom

* Improve definition of a few placeholder packages (spack#48730)

* Improve definition of a few placeholder packages
   These packages are placeholders for vendor provided software,
   that is not buildable, and should be declared as external.
* ibm-java: remove package, as asked by maintainer

* py-ogb: update version (spack#48740)

* import os.path -> os (spack#48709)

* dftd4, mctc-lib: enable cmake builds and add multicharge package (spack#48594)

* enable cmake builds

* [@spackbot] updating style on behalf of RMeli

* Update var/spack/repos/builtin/packages/dftd4/package.py

Co-authored-by: Sebastian Ehlert <[email protected]>

* Update var/spack/repos/builtin/packages/mctc-lib/package.py

* include

* fix

* use sha256

* update

---------

Co-authored-by: RMeli <[email protected]>
Co-authored-by: Sebastian Ehlert <[email protected]>

* damaris: add v1.12.0, update maintainers (spack#48674)

Co-authored-by: Etienne Ndamlabin <[email protected]>

* Bump up the version for rocm-6.3.1 release (spack#48440)

This PR updates the versions for the rocm recipes for rocm-6.3.1 release.

* py-flash-attn: add missing triton dependency (spack#48645)

* hep stack: additional event generator packages (spack#48565)

* hep stack: additional event generator packages

* hep: adidtional packages

* hep: collier doesn't have +pic +shared

* py-awkward-cpp: fix scikit-build-core range of applicability

* hep: disable agile

* hep: disable garfieldpp and genie

* py-wxpython: depends_on pkgconfig even if using external wxwidgets

* hep: disable professor

* papi: fix error finding gmake during post-install testing (spack#48592)

* JAX: add v0.4.32+ (spack#46346)

* JAX: add v0.4.34

* Disable search for clang

* Update CUDA flags

* Add py-jax 0.4.33, comment out until py-jaxlib 0.4.33 is also released

* Fix GCC build

* Try TF_NVCC_CLANG

* py-jax: add v0.4.34

* jax no longer has separate tags for jaxlib

* Install compiled wheel

* Join path before glob

* Wheel is in spack stage, not tmp path

* Add 0.4.35

* Add newer versions

* Build system has been refactored yet again

* Drop clang

* Fix build with source tarball, rocm support

* Support GCC

* Remove clang-specific compiler flags

* enable_cuda flag was removed

* Fix logic

* py-jax: add v0.4.38

* Add patch to fix GCC support

* Patch no longer needed

* Skip patching, directly pass flags

* New flags

* Remove unused import

* Patch changed

* Use older version of patch

* Newer patch

* Add CUDA symlink

* Symlink more directories

* Recursive symlink

* Import function

* Recursive search

* Undo cuda changes

* Add v0.5.0

* I quit

* py-geemap: add new package (spack#48602)

* easi: add v1.5.1; relax yaml-cpp and lua requirements (spack#48675)

* thepeg: extend the rivet@:3 dependency up to version 2.3 (spack#48691)

Co-authored-by: jmcarcell <[email protected]>

* py-ipyrad: adding version 0.9.102 (spack#48686)

Signed-off-by: Shane Nehring <[email protected]>

* autodock-vina: adding version 1.2.6 (spack#48684)

Signed-off-by: Shane Nehring <[email protected]>

* toybox: add v0.8.12 (spack#48657)

* Changes for NVIDIA HPC SDK 25.1 (spack#48696)

* update hypre version and add new memalign for petsc (spack#47831)

* petsc+rocm: add dependency on hipblas-common (spack#48644)

* spec.py: fix ArchSpec.intersects (spack#48741)

fixes a bug where `x86_64:` and `ppc64le:` intersected, and x86_64: and :haswell did not.

* ucx: adding 1.18.0 (spack#48742)

* Adding UCX 1.18.0
* Verified and correct hash.

* MAGMA: add v2.9.0 (spack#48750)

* Deprecate frontend/backend os/target (spack#47756)

* package api: drop wildcard re-export (spack#48760)

* package api: drop wildcard re-export

To ensure package repos are forward/backward compatibility with Spack,
we should explicitly export all symbols we want to expose in the public
package API, and drop `from spack.something import *` because
removal/addition to the public API will go unnoticed.

Also `llnl.util.filesystem` has some methods that shouldn't be exposed
in the package API, so better to enumerate a subset explicitly.

* remove flatten_dependencies / install_dependency_symlinks

* py-cmake: remove. remove deprecated cmake versions (spack#48763)

* Remove pipelines and images based on ppc64le (spack#48767)

* petsc: only conflict with [email protected]: if it is enabled (spack#48698)

* hpctoolkit: Add `+docs` variant and manpages (spack#48566)

* py-mdit-py-plugins: Add new versions 0.3.5, 0.4.2
  Signed-off-by: Jonathon Anderson <[email protected]>
* py-myst-parser: Add new versions 0.19.0 to 4.0.0
  Signed-off-by: Jonathon Anderson <[email protected]>
* hpctoolkit: Add +docs variant and manpages
   This commit unconditionally enables manpages for the HPCToolkit tools.
   The new `+docs` variant enables additional documentation, specifically
   the user's manual. Both require new build-time dependencies.
  Signed-off-by: Jonathon Anderson <[email protected]>

---------

Signed-off-by: Jonathon Anderson <[email protected]>

* fmt: simplify +pic (spack#48766)

Co-authored-by: Harmen Stoppels <[email protected]>

* Docs/bugfix: correct return for Adding flags to configure (spack#48434)

* binutils: conflict on configuration with build issues (spack#42949)

* Create SALT package.py (spack#48758)

* Create SALT package.py

Added a package for the SALT Source AnaLysis Toolkit
@zbeekman

* [@spackbot] updating style on behalf of wspear

* Update package.py

Line wrap

---------

Co-authored-by: wspear <[email protected]>

* smee-client: add v2.0.4 (spack#48384)

* CMake: add v3.31.5, v3.30.7 (spack#48759)

* builtin: remove redundant imports (spack#48765)

* builtin: remove redundant llnl.util.filesystem import
* remove redundant import spack.version
* unsorted fixes
* more spack.version

* abinit: pass flag correctly (spack#48788)

* Add py-zarr 3, which includes a new required package py-donfig, and a bug fix to the patch range with numcodecs (spack#48786)

* libxc: add CMake builder (spack#48772)

* libsmeagol

* libxc cmake

* cmake support

* revert changes

* make spackbot happy

* fix

* Update package.py

* hipblaslt: update cmake dependency (spack#48637)

* hipblaslt: update cmake dependency

1 error found in build log:
  >> 3    CMake Error at CMakeLists.txt:24 (cmake_minimum_required):
     4      CMake 3.25.2 or higher is required.  You are running version 3.22.1
     5
     6
     7    -- Configuring incomplete, errors occurred!

See build log for details:
  /scratch/svcpetsc/spack-rocm/spack-stage/spack-stage-hipblaslt-6.3.0-pabb7t4rheqkz74lfzbsnqi6vnpiqwlq/spack-build-out.txt

* Update var/spack/repos/builtin/packages/hipblaslt/package.py

Co-authored-by: afzpatel <[email protected]>

---------

Co-authored-by: afzpatel <[email protected]>

* Move from python2 compliant IOError and EnvironmentError to python3-only  OSError (spack#48764)

* IOError -> OSError

* also do EnvironmentError

* py-sphinx: mark Python compatibility (spack#48796)

* spack.package: wrap llnl.util.tty (spack#48793)

avoid import of llnl.util.tty in packages

* spack.package: re-export EnvironmentModifications / Prefix (spack#48792)

* Remove unused values (spack#48795)

Signed-off-by: Todd Gamblin <[email protected]>
Co-authored-by: Todd Gamblin <[email protected]>

* petsc, py-petsc4py: add v3.22.3 (spack#48785)

* libsmeagol (spack#48776)

* libsmeagol

* add support for intel and add conflicts

* cp2k

* Bug Fix: Better incremental check for CMake (spack#48775)

* Bug Fix: Better incremental check for CMake

* Fix syntax error

* Ensure match of config artifact with generator

* add [email protected] (spack#48801)

* Added salt variant to tau (spack#48782)

* Added salt variant to tau

* Update package.py

* [@spackbot] updating style on behalf of wspear

---------

Co-authored-by: wspear <[email protected]>

* Remove patch on main (spack#48798)

Patch got merged: natefoo/slurm-drmaa#62

* kokkos-nvcc-wrapper: add version 4.5.00 and 4.5.01 (spack#48802)

* env create: create copies of relative include files in envs created from manifest (spack#48689)

Currently, environments created from manifest files with relative includes result in broken
references to config files.

This PR modifies `spack env create` to create local copies in the new environment of any local
config files from relative paths in the environment manifest passed as an init file.

This PR does not change the behavior if the include is an absolute path or if the include is from
a relative path outside the environment directory, but it does warn about missing relative includes if
they are inside the environment directory.

Includes regression test and short blurb in docs.

* py-sphinx-rtd-theme: add v2.0.0, v3.0.0 (spack#48756)

* Add versions 2 and 3 of py-sphinx-rtd-theme.
   Allow for versions of py-sphinx greater than 6.
   Fix the Python version for older versions that depend on distutils.
   Get the py-docutils dependency from the py-sphinx recipe.
* Depend purely on the py-docutils dependency in py-sphinx.
* More refined dependency versioning.
* Fixed versioning for py-sphinx and py-docutils.

* CP2K: add 2025.1 version and DFTD4 support (spack#48489)

* cp2k: add dftd4 variant

* better conflict and make support

* typo

* Update var/spack/repos/builtin/packages/cp2k/package.py

* Update var/spack/repos/builtin/packages/cp2k/package.py

* oci/opener.py: respect system proxy settings (spack#48783)

* vtk-m: CMAKE_CXX_COMPILER is not a BOOL (spack#48813)

* gcc: remove --with-ld=ld-classic (spack#48826)

* nanotron: add new package (spack#48582)

* nanotron: add new package

Also, update some dependencies and add missing ones.

* Add variant +examples needed to execute example scripts

* fix: add missing branch attribute

* Remove master version

* fix: use Github hash

* embree: fix tests by building tutorial's embree_viewer for tests (spack#48392)

* import-check: improve how problematic imports are displayed (spack#48825)

The import-check action now presents problematic import statements
introduced by the PR better.

The idea is roughly:

* Let (V₁, E₁) be the graph of modules as vertices and import statements
  as edges before the change
* Let (V₂, E₂) be the graph after the code change, which is typically a small
  perturbation of (V₁, E₁).
* X₁ = FAS(V₁, E₁) is the feedback arc set before (a minimal set of edges to
  delete to make it acyclic)
* X₂ = FAS(V₂, E₂ ∖ X₁) is the feedback arc set after deletion of the minimal
  set of edges that made the old graph acyclic.
* X₃ = FAS(V₂, E₂) is the feedback arc set after

Previously I displayed X₁ and X₃ and users had to diff themselves.

Now, I'm showing X₂, which is a small set, typically directly related to
code changes.

However, it can be that a small code change adding say 2 problematic imports
creates a completely different solution X₃ that only requires deletion of just 1
different import. In that case the user is informed that they can potentially do
less work.

So for PR spack#48784 the output is now:

> The overall number of problematic import statements increased by 1 from 31 to 32.
> This is likely a direct consequence of the following import statements:
> 
> ```
> spack/config imports: spack.spec, spack.util.path, spack.util.remote_file_cache
> ```
> 
> However, instead of removing 3 import statements, it is sufficient to remove only 1
> import statement from the following list:
> 
> ```
> spack/concretize imports: spack.bootstrap, spack.solver.asp
> spack/environment imports: spack.bootstrap, spack.environment
> spack/fetch_strategy imports: spack.version.git_ref_lookup
> spack/install_test imports: spack.build_environment, spack.package_base
> spack/modules imports: spack.modules
> spack/platforms imports: spack.config
> spack/relocate imports: spack.bootstrap
> spack/repo imports: spack.package_base, spack.patch, spack.tag
> spack/spec imports: spack.binary_distribution, spack.compiler, spack.compilers, spack.concretize, spack.environment, spack.hash_types, spack.provider_index, spack.repo, spack.spec_parser, spack.store, spack.traverse, spack.variant, spack.version.git_ref_lookup
> spack/subprocess_context imports: spack.environment
> spack/util/gpg imports: spack.bootstrap
> spack/util/package_hash imports: spack.package_base
> spack/util/path imports: spack.config, spack.environment
> spack/util/remote_file_cache imports: spack.util.web
> ```

from which the user can figure out that
`spack/util/remote_file_cache imports: spack.util.web` is the "bottleneck" now.

* spack_yaml: use unambiguous variable name (spack#48832)

* style: fix `not in` and `is not` (spack#48831)

These are some changes that `ruff check --fix` would make that the current
`spack style` also agrees with.  Make the changes now so that the `ruff`
change is less disruptive.

Signed-off-by: Todd Gamblin <[email protected]>

* Set version to v1.0.0.dev0 (spack#48791)

* import-check: enable color output (spack#48842)

* berkeleygw: add -o flag to tar extraction (spack#48816)

when extracting as root user, avoid that tar attempts to change file ownership

* llvm: deprecate old patch releases (spack#48762)

* cuda: add v12.8 (spack#48708)

* sirius: patch pugixml (spack#48841)

* ziatest: add new package (spack#48809)

* gitlab: remove isc stacks (spack#48811)

* gcc: deprecate old patch releases (spack#48761)

* CP2K: use libxc@7 for master/next release (spack#48808)

* packge_base.py: remove _patches_by_hash (spack#48768)

* cdash: avoid build_opener (spack#48846)

* g4vg: new package (spack#48844)

* g4vg: new package

* [@spackbot] updating style on behalf of sethrj

* r-dmrcate: add v2.16.0, v3.0.0, v3.2.0 (spack#48158)

* r-dmrcate: add new versions
* r-dmrcate: require `[email protected]` for v2.99.0+
* r-dmrcate: update dependencies

* py-tensorflow: add 2.18.0-rocm-enhanced (spack#48711)

* py-tensorflow: add 2.18.0-rocm-enhanced

* fix style

* fix style

* fix style

* review changes

* review changes

* remove hipblaslt dependency

* remove ci changes and force ROCm 6.3.1 for newest TF

* remove rocm 6.3.1 dependency

* simplify configure fix

* rocm-examples and rocjpeg: new packages (spack#47695)

* new package: rocm-examples
* add new package rocjpeg and update rocm-examples for 6.3.0
* fix licenses
* add versions 6.3.1
* change homepage and git
* add f-string

* Tesseract v5.5.0 (spack#48866)

* leptonica: adding v1.85.0
  Signed-off-by: Shane Nehring <[email protected]>
* tesseract: adding v5.5.0
  Signed-off-by: Shane Nehring <[email protected]>

---------

Signed-off-by: Shane Nehring <[email protected]>

* py-geojson: Add new package  (spack#48847)

* Add new package py-geojson
* fix when

* isa-l: add v2.31.1 (spack#48859)

* Add new package func (spack#48849)

* icu4c: add v75.1, v76.1 (spack#48858)

* Add new package py-metis (spack#48848)

* cppgsl: add v4.1.0 (spack#48864)

* libdrm: add v2.4.124 (spack#48860)

* amrex: add v25.02 (spack#48853)

* sherpa: support cxxstd=20 when=@3: (spack#48829)

* sherpa: support cxxstd=20 when=@3:

* hep: sherpa cxxstd=20

* netlib-scalapack: Update version (spack#48667)

* Update scalapack version

Signed-off-by: Mathieu Taillefumier <[email protected]>

* use url_for_version

Signed-off-by: Mathieu Taillefumier <[email protected]>

* use spec.satisfies instead of version()

---------

Signed-off-by: Mathieu Taillefumier <[email protected]>
Co-authored-by: Mathieu Taillefumier <[email protected]>

* fcgi: add v2.4.3, v2.4.4 (spack#48856)

* update pyproject.toml for `ruff format` (spack#48823)

Add ruff configuration to `pyproject.toml`.

This allows `ruff format` in the Spack repository to format all the files we care about, 
with our line length of 99, the exceptions we already put in place, and excluding things
we don't auto-format, like vendored dependencies.

Right now it'll reformat 175 or so files, but only slightly, in places where `ruff` differs from
`black`. For the most part I like the ruff format decisions better than `black`, but none of
the changes seem too severe.

This does not change `spack style` -- I figure that can come later but this at least will
let people start playing with `ruff`.

---------

Signed-off-by: Todd Gamblin <[email protected]>

* dd4hep: add v1.31 (spack#48850)

* libsm: add v1.2.5 (spack#48862)

* Apply workaround for oneAPI compiler for upcxx problem with a template argument list (spack#48843)

* Fix upcxx problem with  a template argument list is expected after a name prefixed by the template keyword

* Revert "Fix upcxx problem with  a template argument list is expected after a name prefixed by the template keyword"

This reverts commit faf9b8c.

* Apply workaround for oneAPI compiler

* style problem resolved

* use spec.satisfies syntax

---------

Co-authored-by: eugeneswalker <[email protected]>

* Remove ISC stacks environment files (spack#48851)

Follow-up to spack#48811

* Remove variable from cmake.py (spack#48824)

* Remove variable from cmake.py

spack#48775 left a dangling variable that was not caught in CI but by the eyes of @haampie. Restructure variable to local method.

* [@spackbot] updating style on behalf of psakievich

* Update cmake.py

* Update lib/spack/spack/build_systems/cmake.py

* Update lib/spack/spack/build_systems/cmake.py

---------

Co-authored-by: psakievich <[email protected]>

* sirius: add v7.6.2 (spack#48797)

Co-authored-by: Mathieu Taillefumier <[email protected]>
Co-authored-by: Rocco Meli <[email protected]>

* gha: standalone import-check (spack#48873)

* ci: add codecov token secret to coverage upload job (spack#48880)

Codecov needs to see the token secret when uploading, so we have to
add this line to the workflow YAML:

```yaml
  with:
    token: ${{ secrets.CODECOV_TOKEN }}
```

Signed-off-by: Todd Gamblin <[email protected]>

* ci: bump import-check (spack#48883)

* pfind: new package (spack#48685)

* py-elevation: new package (spack#48836)

* spec.py: fix hash change due to None vs {} (spack#48854)

* Fix hash change due to None vs {}

* Enforce null for empty list of external_modules

* nnn: new package (spack#46174)

Co-authored-by: Bernhard Kaindl <[email protected]>

* Fix esmf usage, add new version (spack#48835)

* bash: add autotools dependencies (spack#48874)

* Scotch: add v7.0.6, add testing option (spack#48781)

* code-server: update to v4.96.4 (spack#48828)

* acts: add v39.0.0 (spack#48839)

This commit adds version 39.0.0 of the ACTS package which, as far as I
can tell, doesn't require any dependency updates.

* spec.py: ensure spec.extra_attributes is {} if is null in json (spack#48896)

* harfbuzz: add v10.2.0 (spack#48857)

* libice: add v1.1.2 (spack#48861)

* relocate.py: don't warn about symlinks (spack#48904)

`relocate_links` warns when the target is absolute and not matched by
any prefix from the prefix to prefix map.

This can lead to false positives, cause the prefix to prefix map does
not contain trivial/identity entries whenever a package is installed to
its original location.

Since relocate_links is the odd one out there (we don't warn about
similar issues with rpaths, etc), just remove the warning.

* hip-tests: new package (spack#47273)

* hip-tests: add new package
* remove hip-tests from hip recipe
* remove old versions
* fix style
* add missing import
* bump hip-tests to 6.3.1
* fix style

* flecsi: new version 2.3.1 (spack#48867)

* flecsi: add new version 2.3.1, remove develop
* flecsi: remove kokkos and openmp variants moving forward
* flecsi: propagate cuda and rocm settings from kokkos
* Update var/spack/repos/builtin/packages/flecsi/package.py
   Co-authored-by: Davis Herring <[email protected]>
* flecsi: remove redundant depends_on lines
* flecsi: correct legion dependency
* flecsi: deprecate v2.0.0 and v2.1.0
* flecsi: force +openmp if ^kokkos+openmp

---------

Co-authored-by: Davis Herring <[email protected]>

* Update py-arch, py-statsmodels (add 0.14.1), py-patsy (add 0.5.4) to be able to use py-cython@3 (spack#48769)

* Add [email protected]
* Correct py-numpy dependency in py-arch
* Add [email protected] and update dependencies
* Add climbfuji as maintainer for py-patsy
* Add climbfuji as maintainer for py-statsmodels
* Update var/spack/repos/builtin/packages/py-statsmodels/package.py

* enzyme: add v0.0.172 (spack#48881)

* spec.py: ensure == is false if true modulo precomputed dag hash (spack#48889)

* llvm: fix @15 %apple-clang@16 (spack#48887)

* spiner: add v1.6.3 (spack#48871)

* spiner: update package logic

* singularity-eos: remove spiner cuda_arch propagation

* spiner: add version 1.6.3

* sherpa: +hepmc3root only when +root (spack#48827)

* sherpa: +hepmc3root only when +root

* sherpa: fix style

* salt: add v0.3.0 (spack#48877)

* salt: Add v0.3.0 of SALT

This version contains important bug fixes for building and parsing
projects containing Fortran

* salt: Be more explicit about dependency types

 - llvm+clang+flang is needed at build, link and runtime for the
   correct operation of SALT
 - Testing with llvm@master ( llvm > 19.x ) shows that SALT is
   currently incompatible with the latest llvm API so an updated salt
   will be required when LLVM 20 is released

* openturbine: add new package (spack#48683)

* PyTorch: add v2.6.0 (spack#48794)

* mummer4: patching to allow building with %gcc@13: (spack#38292)

Co-authored-by: LMS Bioinformatics <[email protected]>
Co-authored-by: Massimiliano Culpo <[email protected]>

* fms: add 2025.01, 2024.03 (spack#48812)

* py-shapely: add v2.0.7 (spack#48810)

* spectre: add v2025.01.30 (spack#48803)

Co-authored-by: sxs-bot <[email protected]>

* py-numba: Add version 0.61  (spack#48837)

* amdfftw: fix broken build, adjust flags for performance tuning (spack#48754)

With CFLAGS, the code path in the amdfftw build system will bypass the logic around AMD_ARCH.

---------

Co-authored-by: vijay kallesh <[email protected]>

* justbuild: add v1.4.3 (spack#48898)

* nvpl-blas, nvpl-lapack: add v0.4.0.1, v0.3.0 (spack#48901)

* hep stack: build also with cuda and rocm where possible (spack#48528)

* lcio: add v2.22.4 (spack#48895)

* Add a message for CMake incremental build (spack#48905)

* Add a message for CMake incremental build

Requested message to explain CMake phase is getting skipped.

* [@spackbot] updating style on behalf of psakievich

* Update import

---------

Co-authored-by: psakievich <[email protected]>

* dcap: depends_on libxcrypt (spack#48903)

* Add new version of r-curl (spack#48912)

* pika: Add 0.32.0 (spack#48897)

* icu4c: no cxxstd flag option on Windows (spack#48510)

* ICU4C: Don't reference a spec variant on a platform on which it's not defined

* icu4c: no cxx flag on Windows

* dla-future-fortran: add v0.3.0 (spack#48900)

* simgrid: add v3.36 (spack#48909)

* dyninst: cleanup package (spack#47637)

* Use more idiomatic construct, shorten recipe
* Remove deprecated versions, and associated patches
* Remove v10.0.0

* Windows: Update default config for stage location (spack#48511)

Current location is within the Spack prefix, which causes builds to
pollute VCS with stage artifacts and generally inflates the Spack
install prefix.

This PR moves it to the user cache location now that we can
consistently support paths with spaces on Windows.

* py-maturin: add v1.8.2 and refined dependencies (spack#48915)

* clingo-bootstrap: fix +optimized build (spack#48931)

* fix regression `apple-clang` vs `%apple-clang`
* use f-strings
* remove --verbose flag from LDFLAGS

* Fix regression due to dyninst update (spack#48935)

* trexio: fix issues with autotools build system (spack#48923)

* package_base.py: remove use_cray_compiler_names (spack#48932)

* Apply workarounds for oneAPI compiler for ascent problem with build (spack#48918)

* Apply workarounds for oneAPI compiler for ascent problem with build

* Use the way with use patch through the PR address

* stylecheck - missing comma

---------

Signed-off-by: Shane Nehring <[email protected]>
Signed-off-by: Jonathon Anderson <[email protected]>
Signed-off-by: Todd Gamblin <[email protected]>
Signed-off-by: Mathieu Taillefumier <[email protected]>
Co-authored-by: acastanedam <[email protected]>
Co-authored-by: Harmen Stoppels <[email protected]>
Co-authored-by: Tamara Dahlgren <[email protected]>
Co-authored-by: Julien Loiseau <[email protected]>
Co-authored-by: John Gouwar <[email protected]>
Co-authored-by: Massimiliano Culpo <[email protected]>
Co-authored-by: Olivier Cessenat <[email protected]>
Co-authored-by: Anna Rift <[email protected]>
Co-authored-by: Juan Miguel Carceller <[email protected]>
Co-authored-by: jmcarcell <[email protected]>
Co-authored-by: Adam J. Stewart <[email protected]>
Co-authored-by: Wouter Deconinck <[email protected]>
Co-authored-by: Matt Thompson <[email protected]>
Co-authored-by: Luca Heltai <[email protected]>
Co-authored-by: Axel Huebl <[email protected]>
Co-authored-by: jgraciahlrs <[email protected]>
Co-authored-by: Tara Drwenski <[email protected]>
Co-authored-by: Vanessasaurus <[email protected]>
Co-authored-by: github-actions <[email protected]>
Co-authored-by: snehring <[email protected]>
Co-authored-by: Simon Frasch <[email protected]>
Co-authored-by: Alberto Invernizzi <[email protected]>
Co-authored-by: Chang Liu <[email protected]>
Co-authored-by: Alberto Sartori <[email protected]>
Co-authored-by: Thomas Bouvier <[email protected]>
Co-authored-by: Mickael PHILIT <[email protected]>
Co-authored-by: Keita Iwabuchi <[email protected]>
Co-authored-by: Keita Iwabuchi <[email protected]>
Co-authored-by: Paul R. C. Kent <[email protected]>
Co-authored-by: Rocco Meli <[email protected]>
Co-authored-by: Mikael Simberg <[email protected]>
Co-authored-by: dmagdavector <[email protected]>
Co-authored-by: Nathan Hanford <[email protected]>
Co-authored-by: Seth R. Johnson <[email protected]>
Co-authored-by: Stephen Nicholas Swatman <[email protected]>
Co-authored-by: Mirko Rahn <[email protected]>
Co-authored-by: moloney <[email protected]>
Co-authored-by: eugeneswalker <[email protected]>
Co-authored-by: Taillefumier Mathieu <[email protected]>
Co-authored-by: Matthieu Dorier <[email protected]>
Co-authored-by: jnhealy2 <[email protected]>
Co-authored-by: psakievich <[email protected]>
Co-authored-by: Victor A. P. Magri <[email protected]>
Co-authored-by: Sinan <[email protected]>
Co-authored-by: Valentin Volkl <[email protected]>
Co-authored-by: vvolkl <[email protected]>
Co-authored-by: Dom Heinzeller <[email protected]>
Co-authored-by: AMD Toolchain Support <[email protected]>
Co-authored-by: Phil Tooley <[email protected]>
Co-authored-by: Mark W. Krentel <[email protected]>
Co-authored-by: Thomas-Ulrich <[email protected]>
Co-authored-by: Dave Keeshan <[email protected]>
Co-authored-by: Greg Becker <[email protected]>
Co-authored-by: Alec Scott <[email protected]>
Co-authored-by: Joe <[email protected]>
Co-authored-by: Vicente Bolea <[email protected]>
Co-authored-by: Dennis Klein <[email protected]>
Co-authored-by: Garth N. Wells <[email protected]>
Co-authored-by: Benjamin Meyers <[email protected]>
Co-authored-by: RMeli <[email protected]>
Co-authored-by: Sebastian Ehlert <[email protected]>
Co-authored-by: Etienne Ndamlabin <[email protected]>
Co-authored-by: Etienne Ndamlabin <[email protected]>
Co-authored-by: Sreenivasa Murthy Kolam <[email protected]>
Co-authored-by: G-Ragghianti <[email protected]>
Co-authored-by: David Schneller <[email protected]>
Co-authored-by: Buldram <[email protected]>
Co-authored-by: jmuddnv <[email protected]>
Co-authored-by: Satish Balay <[email protected]>
Co-authored-by: Filippo Spiga <[email protected]>
Co-authored-by: Richard Berger <[email protected]>
Co-authored-by: Jonathon Anderson <[email protected]>
Co-authored-by: Harmen Stoppels <[email protected]>
Co-authored-by: Eric Berquist <[email protected]>
Co-authored-by: wspear <[email protected]>
Co-authored-by: wspear <[email protected]>
Co-authored-by: John W. Parent <[email protected]>
Co-authored-by: Todd Gamblin <[email protected]>
Co-authored-by: Chris Marsh <[email protected]>
Co-authored-by: Brian Spilner <[email protected]>
Co-authored-by: Dominic Hofer <[email protected]>
Co-authored-by: danielsjensen1 <[email protected]>
Co-authored-by: Till Ehrengruber <[email protected]>
Co-authored-by: Henri Menke <[email protected]>
Co-authored-by: pauleonix <[email protected]>
Co-authored-by: Mosè Giordano <[email protected]>
Co-authored-by: Zack Galbreath <[email protected]>
Co-authored-by: Weiqun Zhang <[email protected]>
Co-authored-by: Mathieu Taillefumier <[email protected]>
Co-authored-by: Piotr Sacharuk <[email protected]>
Co-authored-by: eugeneswalker <[email protected]>
Co-authored-by: psakievich <[email protected]>
Co-authored-by: rfbgo <[email protected]>
Co-authored-by: Felix Thaler <[email protected]>
Co-authored-by: Bernhard Kaindl <[email protected]>
Co-authored-by: japlews <[email protected]>
Co-authored-by: George Young <[email protected]>
Co-authored-by: Davis Herring <[email protected]>
Co-authored-by: Izaak "Zaak" Beekman <[email protected]>
Co-authored-by: ddement <[email protected]>
Co-authored-by: LMS Bioinformatics <[email protected]>
Co-authored-by: SXS Bot <[email protected]>
Co-authored-by: sxs-bot <[email protected]>
Co-authored-by: vijay kallesh <[email protected]>
Co-authored-by: Thomas Madlener <[email protected]>
Co-authored-by: Vinícius <[email protected]>
Co-authored-by: Teague Sterling <[email protected]>
mrmundt pushed a commit to mrmundt/spack that referenced this pull request Feb 17, 2025
Regressed in spack#47126 

Spack was not interpreting mirrors using relative path with respect to the
metadata directory.

---------

Co-authored-by: Massimiliano Culpo <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

commands core PR affects Spack core functionality documentation Improvements or additions to documentation fetching utilities

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Two bugs that prevent creating and using bootstrap mirrors with spack develop as of 2024/12/27 (and v0.23)

2 participants