diff --git a/.github/workflows/audit.yaml b/.github/workflows/audit.yaml
index 749e6f526aa4b1..2120d82b733461 100644
--- a/.github/workflows/audit.yaml
+++ b/.github/workflows/audit.yaml
@@ -23,7 +23,7 @@ jobs:
operating_system: ["ubuntu-latest", "macos-latest"]
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # @v2
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # @v2
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # @v2
with:
python-version: ${{inputs.python_version}}
- name: Install Python packages
diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml
index fd863b6abb8726..21c1b2f0ba3f1d 100644
--- a/.github/workflows/bootstrap.yml
+++ b/.github/workflows/bootstrap.yml
@@ -159,7 +159,7 @@ jobs:
brew install cmake bison@2.7 tree
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # @v2
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # @v2
with:
python-version: "3.12"
- name: Bootstrap clingo
diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml
index 880cf9c64495f5..066b65f84ccac6 100644
--- a/.github/workflows/build-containers.yml
+++ b/.github/workflows/build-containers.yml
@@ -57,7 +57,7 @@ jobs:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # @v2
- - uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934
+ - uses: docker/metadata-action@dbef88086f6cef02e264edb7dbf63250c17cef6c
id: docker_meta
with:
images: |
@@ -113,7 +113,7 @@ jobs:
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build & Deploy ${{ matrix.dockerfile[0] }}
- uses: docker/build-push-action@0565240e2d4ab88bba5387d719585280857ece09
+ uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56
with:
context: dockerfiles/${{ matrix.dockerfile[0] }}
platforms: ${{ matrix.dockerfile[1] }}
diff --git a/.github/workflows/nightly-win-builds.yml b/.github/workflows/nightly-win-builds.yml
index 511316a2a35504..e93e80e3e44e75 100644
--- a/.github/workflows/nightly-win-builds.yml
+++ b/.github/workflows/nightly-win-builds.yml
@@ -17,7 +17,7 @@ jobs:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
fetch-depth: 0
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c
with:
python-version: 3.9
- name: Install Python packages
diff --git a/.github/workflows/style/requirements.txt b/.github/workflows/style/requirements.txt
index 0822ba39339737..d662c32fb0c5c4 100644
--- a/.github/workflows/style/requirements.txt
+++ b/.github/workflows/style/requirements.txt
@@ -1,7 +1,7 @@
-black==23.10.1
+black==23.12.1
clingo==5.6.2
-flake8==6.1.0
-isort==5.12.0
-mypy==1.6.1
+flake8==7.0.0
+isort==5.13.2
+mypy==1.8.0
types-six==1.16.21.9
-vermin==1.5.2
+vermin==1.6.0
diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml
index ec2b5aa52c2764..1bdf98ba7c0b04 100644
--- a/.github/workflows/unit_tests.yaml
+++ b/.github/workflows/unit_tests.yaml
@@ -66,7 +66,7 @@ jobs:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # @v2
with:
fetch-depth: 0
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # @v2
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # @v2
with:
python-version: ${{ matrix.python-version }}
- name: Install System packages
@@ -117,7 +117,7 @@ jobs:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # @v2
with:
fetch-depth: 0
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # @v2
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # @v2
with:
python-version: '3.10'
- name: Install System packages
@@ -184,7 +184,7 @@ jobs:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # @v2
with:
fetch-depth: 0
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # @v2
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # @v2
with:
python-version: '3.10'
- name: Install System packages
@@ -223,7 +223,7 @@ jobs:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # @v2
with:
fetch-depth: 0
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # @v2
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # @v2
with:
python-version: ${{ matrix.python-version }}
- name: Install Python packages
@@ -248,7 +248,7 @@ jobs:
$(which spack) bootstrap disable spack-install
$(which spack) solve zlib
common_args=(--dist loadfile --tx '4*popen//python=./bin/spack-tmpconfig python -u ./bin/spack python' -x)
- $(which spack) unit-test --cov --cov-config=pyproject.toml --cov-report=xml:coverage.xml "${common_args[@]}"
+ $(which spack) unit-test --verbose --cov --cov-config=pyproject.toml --cov-report=xml:coverage.xml "${common_args[@]}"
- uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d
with:
flags: unittests,macos
diff --git a/.github/workflows/valid-style.yml b/.github/workflows/valid-style.yml
index 80aa5b2a4f1ff1..4440eebfb55244 100644
--- a/.github/workflows/valid-style.yml
+++ b/.github/workflows/valid-style.yml
@@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c
with:
python-version: '3.11'
cache: 'pip'
@@ -47,7 +47,7 @@ jobs:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
fetch-depth: 0
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c
with:
python-version: '3.11'
cache: 'pip'
diff --git a/.github/workflows/windows_python.yml b/.github/workflows/windows_python.yml
index 137c00a9bdbc70..b1e4f72f2cbdf5 100644
--- a/.github/workflows/windows_python.yml
+++ b/.github/workflows/windows_python.yml
@@ -18,7 +18,7 @@ jobs:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
fetch-depth: 0
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c
with:
python-version: 3.9
- name: Install Python packages
@@ -42,7 +42,7 @@ jobs:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
fetch-depth: 0
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c
with:
python-version: 3.9
- name: Install Python packages
@@ -66,7 +66,7 @@ jobs:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
fetch-depth: 0
- - uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c
with:
python-version: 3.9
- name: Install Python packages
diff --git a/CITATION.cff b/CITATION.cff
index 16f42d01651f19..59888b51ce29e1 100644
--- a/CITATION.cff
+++ b/CITATION.cff
@@ -31,13 +31,17 @@ type: software
message: "If you are referencing Spack in a publication, please cite the paper below."
title: "The Spack Package Manager: Bringing Order to HPC Software Chaos"
abstract: >-
- Large HPC centers spend considerable time supporting software for thousands of users, but the complexity of HPC software is quickly outpacing the capabilities of existing software management tools.
- Scientific applications require specific versions of compilers, MPI, and other dependency libraries, so using a single, standard software stack is infeasible.
- However, managing many configurations is difficult because the configuration space is combinatorial in size.
- We introduce Spack, a tool used at Lawrence Livermore National Laboratory to manage this complexity.
- Spack provides a novel, re- cursive specification syntax to invoke parametric builds of packages and dependencies.
- It allows any number of builds to coexist on the same system, and it ensures that installed packages can find their dependencies, regardless of the environment.
- We show through real-world use cases that Spack supports diverse and demanding applications, bringing order to HPC software chaos.
+ Large HPC centers spend considerable time supporting software for thousands of users, but the
+ complexity of HPC software is quickly outpacing the capabilities of existing software management
+ tools. Scientific applications require specific versions of compilers, MPI, and other dependency
+ libraries, so using a single, standard software stack is infeasible. However, managing many
+ configurations is difficult because the configuration space is combinatorial in size. We
+ introduce Spack, a tool used at Lawrence Livermore National Laboratory to manage this complexity.
+ Spack provides a novel, re- cursive specification syntax to invoke parametric builds of packages
+ and dependencies. It allows any number of builds to coexist on the same system, and it ensures
+ that installed packages can find their dependencies, regardless of the environment. We show
+ through real-world use cases that Spack supports diverse and demanding applications, bringing
+ order to HPC software chaos.
preferred-citation:
title: "The Spack Package Manager: Bringing Order to HPC Software Chaos"
type: conference-paper
@@ -71,7 +75,7 @@ preferred-citation:
type: doi
value: 10.1145/2807591.2807623
- description: "The DOE Document Release Number of the work"
- type: other
+ type: other
value: "LLNL-CONF-669890"
authors:
- family-names: "Gamblin"
diff --git a/LICENSE-MIT b/LICENSE-MIT
index 54bef34ec5a051..8d8e1325df3389 100644
--- a/LICENSE-MIT
+++ b/LICENSE-MIT
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2013-2023 LLNS, LLC and other Spack Project Developers.
+Copyright (c) 2013-2024 LLNS, LLC and other Spack Project Developers.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index d048140ec1badc..0bb54035f5cf1b 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,34 @@
-#
Spack
+
Spack is a multi-platform package manager that builds and installs
multiple versions and configurations of software. It works on Linux,
@@ -66,10 +87,11 @@ Resources:
* **Matrix space**: [#spack-space:matrix.org](https://matrix.to/#/#spack-space:matrix.org):
[bridged](https://github.com/matrix-org/matrix-appservice-slack#matrix-appservice-slack) to Slack.
* [**Github Discussions**](https://github.com/spack/spack/discussions):
- not just for discussions, but also Q&A.
-* **Mailing list**: [groups.google.com/d/forum/spack](https://groups.google.com/d/forum/spack)
+ for Q&A and discussions. Note the pinned discussions for announcements.
* **Twitter**: [@spackpm](https://twitter.com/spackpm). Be sure to
`@mention` us!
+* **Mailing list**: [groups.google.com/d/forum/spack](https://groups.google.com/d/forum/spack):
+ only for announcements. Please use other venues for discussions.
Contributing
------------------------
diff --git a/bin/haspywin.py b/bin/haspywin.py
index da9e5ab7de7b09..538286819f68fd 100644
--- a/bin/haspywin.py
+++ b/bin/haspywin.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/bin/sbang b/bin/sbang
index 727a3bbce6d31a..47275348124637 100755
--- a/bin/sbang
+++ b/bin/sbang
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# sbang project developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/bin/spack b/bin/spack
index a94faad09b12ac..44ad33f35a4fbb 100755
--- a/bin/spack
+++ b/bin/spack
@@ -1,7 +1,7 @@
#!/bin/sh
# -*- python -*-
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/bin/spack-python b/bin/spack-python
index 30196d46c164e3..ff555aa93b2d34 100755
--- a/bin/spack-python
+++ b/bin/spack-python
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/bin/spack.bat b/bin/spack.bat
index b067256cf90ef7..832801359967b3 100644
--- a/bin/spack.bat
+++ b/bin/spack.bat
@@ -1,4 +1,4 @@
-:: Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+:: Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
:: Spack Project Developers. See the top-level COPYRIGHT file for details.
::
:: SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/bin/spack.ps1 b/bin/spack.ps1
index e08f1fc53d7204..5a82b0b620cfee 100644
--- a/bin/spack.ps1
+++ b/bin/spack.ps1
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/bin/spack_pwsh.ps1 b/bin/spack_pwsh.ps1
index 0f5f0725496b18..6340aa8e86e705 100644
--- a/bin/spack_pwsh.ps1
+++ b/bin/spack_pwsh.ps1
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/etc/spack/defaults/darwin/packages.yaml b/etc/spack/defaults/darwin/packages.yaml
index 63f85bbbd98b65..9fd54f2e6e0991 100644
--- a/etc/spack/defaults/darwin/packages.yaml
+++ b/etc/spack/defaults/darwin/packages.yaml
@@ -50,4 +50,4 @@ packages:
# Apple bundles libuuid in libsystem_c version 1353.100.2,
# although the version number used here isn't critical
- spec: apple-libuuid@1353.100.2
- prefix: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
+ prefix: /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
diff --git a/lib/spack/docs/_pygments/style.py b/lib/spack/docs/_pygments/style.py
index 0d7c386463d7fe..23104f95656f0c 100644
--- a/lib/spack/docs/_pygments/style.py
+++ b/lib/spack/docs/_pygments/style.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/basic_usage.rst b/lib/spack/docs/basic_usage.rst
index 52054a9405653e..a866d80fa80224 100644
--- a/lib/spack/docs/basic_usage.rst
+++ b/lib/spack/docs/basic_usage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/binary_caches.rst b/lib/spack/docs/binary_caches.rst
index eeb6c4b783c8d1..27d72877a7eb15 100644
--- a/lib/spack/docs/binary_caches.rst
+++ b/lib/spack/docs/binary_caches.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -153,7 +153,43 @@ keyring, and trusting all downloaded keys.
List of popular build caches
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-* `Extreme-scale Scientific Software Stack (E4S) `_: `build cache `_
+* `Extreme-scale Scientific Software Stack (E4S) `_: `build cache `_'
+
+-------------------
+Build cache signing
+-------------------
+
+By default, Spack will add a cryptographic signature to each package pushed to
+a build cache, and verifies the signature when installing from a build cache.
+
+Keys for signing can be managed with the :ref:`spack gpg ` command,
+as well as ``spack buildcache keys`` as mentioned above.
+
+You can disable signing when pushing with ``spack buildcache push --unsigned``,
+and disable verification when installing from any build cache with
+``spack install --no-check-signature``.
+
+Alternatively, signing and verification can be enabled or disabled on a per build cache
+basis:
+
+.. code-block:: console
+
+ $ spack mirror add --signed # enable signing and verification
+ $ spack mirror add --unsigned # disable signing and verification
+
+ $ spack mirror set --signed # enable signing and verification for an existing mirror
+ $ spack mirror set --unsigned # disable signing and verification for an existing mirror
+
+Or you can directly edit the ``mirrors.yaml`` configuration file:
+
+.. code-block:: yaml
+
+ mirrors:
+ :
+ url:
+ signed: false # disable signing and verification
+
+See also :ref:`mirrors`.
----------
Relocation
@@ -182,6 +218,7 @@ section of the configuration:
padded_length: 128
+.. _binary_caches_oci:
-----------------------------------------
OCI / Docker V2 registries as build cache
@@ -250,87 +287,13 @@ To significantly speed up Spack in GitHub Actions, binaries can be cached in
GitHub Packages. This service is an OCI registry that can be linked to a GitHub
repository.
-A typical workflow is to include a ``spack.yaml`` environment in your repository
-that specifies the packages to install, the target architecture, and the build
-cache to use under ``mirrors``:
-
-.. code-block:: yaml
-
- spack:
- specs:
- - python@3.11
- config:
- install_tree:
- root: /opt/spack
- padded_length: 128
- packages:
- all:
- require: target=x86_64_v2
- mirrors:
- local-buildcache: oci://ghcr.io//
-
-A GitHub action can then be used to install the packages and push them to the
-build cache:
-
-.. code-block:: yaml
-
- name: Install Spack packages
-
- on: push
-
- env:
- SPACK_COLOR: always
-
- jobs:
- example:
- runs-on: ubuntu-22.04
- permissions:
- packages: write
- steps:
- - name: Checkout
- uses: actions/checkout@v3
-
- - name: Checkout Spack
- uses: actions/checkout@v3
- with:
- repository: spack/spack
- path: spack
-
- - name: Setup Spack
- run: echo "$PWD/spack/bin" >> "$GITHUB_PATH"
-
- - name: Concretize
- run: spack -e . concretize
-
- - name: Install
- run: spack -e . install --no-check-signature
-
- - name: Run tests
- run: ./my_view/bin/python3 -c 'print("hello world")'
-
- - name: Push to buildcache
- run: |
- spack -e . mirror set --oci-username ${{ github.actor }} --oci-password "${{ secrets.GITHUB_TOKEN }}" local-buildcache
- spack -e . buildcache push --base-image ubuntu:22.04 --unsigned --update-index local-buildcache
- if: ${{ !cancelled() }}
-
-The first time this action runs, it will build the packages from source and
-push them to the build cache. Subsequent runs will pull the binaries from the
-build cache. The concretizer will ensure that prebuilt binaries are favored
-over source builds.
-
-The build cache entries appear in the GitHub Packages section of your repository,
-and contain instructions for pulling and running them with ``docker`` or ``podman``.
-
-
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Using Spack's public build cache for GitHub Actions
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
Spack offers a public build cache for GitHub Actions with a set of common packages,
which lets you get started quickly. See the following resources for more information:
-* `spack/github-actions-buildcache `_
+* `spack/setup-spack `_ for setting up Spack in GitHub
+ Actions
+* `spack/github-actions-buildcache `_ for
+ more details on the public build cache
.. _cmd-spack-buildcache:
diff --git a/lib/spack/docs/bootstrapping.rst b/lib/spack/docs/bootstrapping.rst
index 8eca492413c998..621f888c678805 100644
--- a/lib/spack/docs/bootstrapping.rst
+++ b/lib/spack/docs/bootstrapping.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_settings.rst b/lib/spack/docs/build_settings.rst
index 0f53355a81dd80..f58c9f4c9772e7 100644
--- a/lib/spack/docs/build_settings.rst
+++ b/lib/spack/docs/build_settings.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_systems.rst b/lib/spack/docs/build_systems.rst
index f659d63e4a322d..c13c82a34115fb 100644
--- a/lib/spack/docs/build_systems.rst
+++ b/lib/spack/docs/build_systems.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_systems/autotoolspackage.rst b/lib/spack/docs/build_systems/autotoolspackage.rst
index 8b8ccb8f35c1c7..c0adcda178bb42 100644
--- a/lib/spack/docs/build_systems/autotoolspackage.rst
+++ b/lib/spack/docs/build_systems/autotoolspackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_systems/bundlepackage.rst b/lib/spack/docs/build_systems/bundlepackage.rst
index 323a13d47206b8..3339de630ddfe9 100644
--- a/lib/spack/docs/build_systems/bundlepackage.rst
+++ b/lib/spack/docs/build_systems/bundlepackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_systems/cachedcmakepackage.rst b/lib/spack/docs/build_systems/cachedcmakepackage.rst
index 7d0b8ff7e8d0c5..17b005f6bc46bc 100644
--- a/lib/spack/docs/build_systems/cachedcmakepackage.rst
+++ b/lib/spack/docs/build_systems/cachedcmakepackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_systems/cmakepackage.rst b/lib/spack/docs/build_systems/cmakepackage.rst
index fc1de918fd925b..140fa34e3e34a8 100644
--- a/lib/spack/docs/build_systems/cmakepackage.rst
+++ b/lib/spack/docs/build_systems/cmakepackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -82,7 +82,7 @@ class already contains:
.. code-block:: python
- depends_on('cmake', type='build')
+ depends_on("cmake", type="build")
If you need to specify a particular version requirement, you can
@@ -90,7 +90,7 @@ override this in your package:
.. code-block:: python
- depends_on('cmake@2.8.12:', type='build')
+ depends_on("cmake@2.8.12:", type="build")
^^^^^^^^^^^^^^^^^^^
@@ -137,10 +137,10 @@ and without the :meth:`~spack.build_systems.cmake.CMakeBuilder.define` and
def cmake_args(self):
args = [
- '-DWHATEVER:STRING=somevalue',
- self.define('ENABLE_BROKEN_FEATURE', False),
- self.define_from_variant('DETECT_HDF5', 'hdf5'),
- self.define_from_variant('THREADS'), # True if +threads
+ "-DWHATEVER:STRING=somevalue",
+ self.define("ENABLE_BROKEN_FEATURE", False),
+ self.define_from_variant("DETECT_HDF5", "hdf5"),
+ self.define_from_variant("THREADS"), # True if +threads
]
return args
@@ -151,10 +151,10 @@ and CMake simply ignores the empty command line argument. For example the follow
.. code-block:: python
- variant('example', default=True, when='@2.0:')
+ variant("example", default=True, when="@2.0:")
def cmake_args(self):
- return [self.define_from_variant('EXAMPLE', 'example')]
+ return [self.define_from_variant("EXAMPLE", "example")]
will generate ``'cmake' '-DEXAMPLE=ON' ...`` when `@2.0: +example` is met, but will
result in ``'cmake' '' ...`` when the spec version is below ``2.0``.
@@ -193,9 +193,9 @@ a variant to control this:
.. code-block:: python
- variant('build_type', default='RelWithDebInfo',
- description='CMake build type',
- values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
+ variant("build_type", default="RelWithDebInfo",
+ description="CMake build type",
+ values=("Debug", "Release", "RelWithDebInfo", "MinSizeRel"))
However, not every CMake package accepts all four of these options.
Grep the ``CMakeLists.txt`` file to see if the default values are
@@ -205,9 +205,9 @@ package overrides the default variant with:
.. code-block:: python
- variant('build_type', default='DebugRelease',
- description='The build type to build',
- values=('Debug', 'Release', 'DebugRelease'))
+ variant("build_type", default="DebugRelease",
+ description="The build type to build",
+ values=("Debug", "Release", "DebugRelease"))
For more information on ``CMAKE_BUILD_TYPE``, see:
https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html
@@ -250,7 +250,7 @@ generator is Ninja. To switch to the Ninja generator, simply add:
.. code-block:: python
- generator = 'Ninja'
+ generator = "Ninja"
``CMakePackage`` defaults to "Unix Makefiles". If you switch to the
@@ -258,7 +258,7 @@ Ninja generator, make sure to add:
.. code-block:: python
- depends_on('ninja', type='build')
+ depends_on("ninja", type="build")
to the package as well. Aside from that, you shouldn't need to do
anything else. Spack will automatically detect that you are using
@@ -288,7 +288,7 @@ like so:
.. code-block:: python
- root_cmakelists_dir = 'src'
+ root_cmakelists_dir = "src"
Note that this path is relative to the root of the extracted tarball,
@@ -304,7 +304,7 @@ different sub-directory, simply override ``build_directory`` like so:
.. code-block:: python
- build_directory = 'my-build'
+ build_directory = "my-build"
^^^^^^^^^^^^^^^^^^^^^^^^^
Build and install targets
@@ -324,8 +324,8 @@ library or build the documentation, you can add these like so:
.. code-block:: python
- build_targets = ['all', 'docs']
- install_targets = ['install', 'docs']
+ build_targets = ["all", "docs"]
+ install_targets = ["install", "docs"]
^^^^^^^
Testing
diff --git a/lib/spack/docs/build_systems/cudapackage.rst b/lib/spack/docs/build_systems/cudapackage.rst
index 79c98dd52c94f1..34686b8b629482 100644
--- a/lib/spack/docs/build_systems/cudapackage.rst
+++ b/lib/spack/docs/build_systems/cudapackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_systems/custompackage.rst b/lib/spack/docs/build_systems/custompackage.rst
index 5175a0df4df703..35475fc8ecb2f6 100644
--- a/lib/spack/docs/build_systems/custompackage.rst
+++ b/lib/spack/docs/build_systems/custompackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_systems/inteloneapipackage.rst b/lib/spack/docs/build_systems/inteloneapipackage.rst
index e9fd26690f9ddb..feae03a280d24d 100644
--- a/lib/spack/docs/build_systems/inteloneapipackage.rst
+++ b/lib/spack/docs/build_systems/inteloneapipackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -53,18 +53,24 @@ Install the oneAPI compilers::
Add the compilers to your ``compilers.yaml`` so spack can use them::
- spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/linux/bin/intel64
- spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/linux/bin
+ spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/bin
Verify that the compilers are available::
spack compiler list
+Note that 2024 and later releases do not include ``icc``. Before 2024,
+the package layout was different::
+
+ spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/linux/bin/intel64
+ spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/linux/bin
+
The ``intel-oneapi-compilers`` package includes 2 families of
compilers:
* ``intel``: ``icc``, ``icpc``, ``ifort``. Intel's *classic*
- compilers.
+ compilers. 2024 and later releases contain ``ifort``, but not
+ ``icc`` and ``icpc``.
* ``oneapi``: ``icx``, ``icpx``, ``ifx``. Intel's new generation of
compilers based on LLVM.
@@ -89,8 +95,8 @@ Install the oneAPI compilers::
Add the compilers to your ``compilers.yaml`` so Spack can use them::
- spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/linux/bin/intel64
- spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/linux/bin
+ spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/bin
+ spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/bin
Verify that the compilers are available::
@@ -146,8 +152,7 @@ Compilers
To use the compilers, add some information about the installation to
``compilers.yaml``. For most users, it is sufficient to do::
- spack compiler add /opt/intel/oneapi/compiler/latest/linux/bin/intel64
- spack compiler add /opt/intel/oneapi/compiler/latest/linux/bin
+ spack compiler add /opt/intel/oneapi/compiler/latest/bin
Adapt the paths above if you did not install the tools in the default
location. After adding the compilers, using them is the same
@@ -156,6 +161,12 @@ Another option is to manually add the configuration to
``compilers.yaml`` as described in :ref:`Compiler configuration
`.
+Before 2024, the directory structure was different::
+
+ spack compiler add /opt/intel/oneapi/compiler/latest/linux/bin/intel64
+ spack compiler add /opt/intel/oneapi/compiler/latest/linux/bin
+
+
Libraries
---------
diff --git a/lib/spack/docs/build_systems/intelpackage.rst b/lib/spack/docs/build_systems/intelpackage.rst
index 9afe1a8b919543..b2159d88cf32fa 100644
--- a/lib/spack/docs/build_systems/intelpackage.rst
+++ b/lib/spack/docs/build_systems/intelpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -90,7 +90,7 @@ and optimizers do require a paid license. In Spack, they are packaged as:
TODO: Confirm and possible change(!) the scope of MPI components (runtime
vs. devel) in current (and previous?) *cluster/professional/composer*
editions, i.e., presence in downloads, possibly subject to license
- coverage(!); see `disussion in PR #4300
+ coverage(!); see `discussion in PR #4300
`_. [NB:
An "mpi" subdirectory is not indicative of the full MPI SDK being present
(i.e., ``mpicc``, ..., and header files). The directory may just as well
@@ -934,9 +934,9 @@ a *virtual* ``mkl`` package is declared in Spack.
.. code-block:: python
# Examples for absolute and conditional dependencies:
- depends_on('mkl')
- depends_on('mkl', when='+mkl')
- depends_on('mkl', when='fftw=mkl')
+ depends_on("mkl")
+ depends_on("mkl", when="+mkl")
+ depends_on("mkl", when="fftw=mkl")
The ``MKLROOT`` environment variable (part of the documented API) will be set
during all stages of client package installation, and is available to both
@@ -972,8 +972,8 @@ a *virtual* ``mkl`` package is declared in Spack.
def configure_args(self):
args = []
...
- args.append('--with-blas=%s' % self.spec['blas'].libs.ld_flags)
- args.append('--with-lapack=%s' % self.spec['lapack'].libs.ld_flags)
+ args.append("--with-blas=%s" % self.spec["blas"].libs.ld_flags)
+ args.append("--with-lapack=%s" % self.spec["lapack"].libs.ld_flags)
...
.. tip::
@@ -989,13 +989,13 @@ a *virtual* ``mkl`` package is declared in Spack.
.. code-block:: python
- self.spec['blas'].headers.include_flags
+ self.spec["blas"].headers.include_flags
and to generate linker options (``-L -llibname ...``), use the same as above,
.. code-block:: python
- self.spec['blas'].libs.ld_flags
+ self.spec["blas"].libs.ld_flags
See
:ref:`MakefilePackage `
diff --git a/lib/spack/docs/build_systems/luapackage.rst b/lib/spack/docs/build_systems/luapackage.rst
index 71a0c3962c6100..a900507442ca3d 100644
--- a/lib/spack/docs/build_systems/luapackage.rst
+++ b/lib/spack/docs/build_systems/luapackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -88,7 +88,7 @@ override the ``luarocks_args`` method like so:
.. code-block:: python
def luarocks_args(self):
- return ['flag1', 'flag2']
+ return ["flag1", "flag2"]
One common use of this is to override warnings or flags for newer compilers, as in:
diff --git a/lib/spack/docs/build_systems/makefilepackage.rst b/lib/spack/docs/build_systems/makefilepackage.rst
index af027aab1c69c7..c6d6300ccce320 100644
--- a/lib/spack/docs/build_systems/makefilepackage.rst
+++ b/lib/spack/docs/build_systems/makefilepackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -88,13 +88,13 @@ command-line. However, Makefiles that use ``?=`` for assignment honor
environment variables. Since Spack already sets ``CC``, ``CXX``, ``F77``,
and ``FC``, you won't need to worry about setting these variables. If
there are any other variables you need to set, you can do this in the
-``edit`` method:
+``setup_build_environment`` method:
.. code-block:: python
- def edit(self, spec, prefix):
- env["PREFIX"] = prefix
- env["BLASLIB"] = spec["blas"].libs.ld_flags
+ def setup_build_environment(self, env):
+ env.set("PREFIX", prefix)
+ env.set("BLASLIB", spec["blas"].libs.ld_flags)
`cbench `_
@@ -140,7 +140,7 @@ Edit Makefile
Some Makefiles are just plain stubborn and will ignore command-line
variables. The only way to ensure that these packages build correctly
is to directly edit the Makefile. Spack provides a ``FileFilter`` class
-and a ``filter_file`` method to help with this. For example:
+and a ``filter`` method to help with this. For example:
.. code-block:: python
diff --git a/lib/spack/docs/build_systems/mavenpackage.rst b/lib/spack/docs/build_systems/mavenpackage.rst
index 70c57024acfb33..5b0a7cf6d7f130 100644
--- a/lib/spack/docs/build_systems/mavenpackage.rst
+++ b/lib/spack/docs/build_systems/mavenpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -48,8 +48,8 @@ class automatically adds the following dependencies:
.. code-block:: python
- depends_on('java', type=('build', 'run'))
- depends_on('maven', type='build')
+ depends_on("java", type=("build", "run"))
+ depends_on("maven", type="build")
In the ``pom.xml`` file, you may see sections like:
@@ -72,8 +72,8 @@ should add:
.. code-block:: python
- depends_on('java@7:', type='build')
- depends_on('maven@3.5.4:', type='build')
+ depends_on("java@7:", type="build")
+ depends_on("maven@3.5.4:", type="build")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -88,9 +88,9 @@ the build phase. For example:
def build_args(self):
return [
- '-Pdist,native',
- '-Dtar',
- '-Dmaven.javadoc.skip=true'
+ "-Pdist,native",
+ "-Dtar",
+ "-Dmaven.javadoc.skip=true"
]
diff --git a/lib/spack/docs/build_systems/mesonpackage.rst b/lib/spack/docs/build_systems/mesonpackage.rst
index e2f2e0a99eba63..f19aa78151900e 100644
--- a/lib/spack/docs/build_systems/mesonpackage.rst
+++ b/lib/spack/docs/build_systems/mesonpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -86,8 +86,8 @@ the ``MesonPackage`` base class already contains:
.. code-block:: python
- depends_on('meson', type='build')
- depends_on('ninja', type='build')
+ depends_on("meson", type="build")
+ depends_on("ninja", type="build")
If you need to specify a particular version requirement, you can
@@ -95,8 +95,8 @@ override this in your package:
.. code-block:: python
- depends_on('meson@0.43.0:', type='build')
- depends_on('ninja', type='build')
+ depends_on("meson@0.43.0:", type="build")
+ depends_on("ninja", type="build")
^^^^^^^^^^^^^^^^^^^
@@ -121,7 +121,7 @@ override the ``meson_args`` method like so:
.. code-block:: python
def meson_args(self):
- return ['--warnlevel=3']
+ return ["--warnlevel=3"]
This method can be used to pass flags as well as variables.
diff --git a/lib/spack/docs/build_systems/octavepackage.rst b/lib/spack/docs/build_systems/octavepackage.rst
index 2679a1dacc4b99..8bf0ee010af201 100644
--- a/lib/spack/docs/build_systems/octavepackage.rst
+++ b/lib/spack/docs/build_systems/octavepackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_systems/perlpackage.rst b/lib/spack/docs/build_systems/perlpackage.rst
index c29dfaad55caf3..49fb874525492f 100644
--- a/lib/spack/docs/build_systems/perlpackage.rst
+++ b/lib/spack/docs/build_systems/perlpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -118,7 +118,7 @@ so ``PerlPackage`` contains:
.. code-block:: python
- extends('perl')
+ extends("perl")
If your package requires a specific version of Perl, you should
@@ -132,14 +132,14 @@ properly. If your package uses ``Makefile.PL`` to build, add:
.. code-block:: python
- depends_on('perl-extutils-makemaker', type='build')
+ depends_on("perl-extutils-makemaker", type="build")
If your package uses ``Build.PL`` to build, add:
.. code-block:: python
- depends_on('perl-module-build', type='build')
+ depends_on("perl-module-build", type="build")
^^^^^^^^^^^^^^^^^
@@ -165,11 +165,11 @@ arguments to ``Makefile.PL`` or ``Build.PL`` by overriding
.. code-block:: python
def configure_args(self):
- expat = self.spec['expat'].prefix
+ expat = self.spec["expat"].prefix
return [
- 'EXPATLIBPATH={0}'.format(expat.lib),
- 'EXPATINCPATH={0}'.format(expat.include),
+ "EXPATLIBPATH={0}".format(expat.lib),
+ "EXPATINCPATH={0}".format(expat.include),
]
diff --git a/lib/spack/docs/build_systems/pythonpackage.rst b/lib/spack/docs/build_systems/pythonpackage.rst
index 168ff5dc88223c..372d4ad47c5ce7 100644
--- a/lib/spack/docs/build_systems/pythonpackage.rst
+++ b/lib/spack/docs/build_systems/pythonpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_systems/qmakepackage.rst b/lib/spack/docs/build_systems/qmakepackage.rst
index 98d625ede08b6a..be66c4a1cfaeef 100644
--- a/lib/spack/docs/build_systems/qmakepackage.rst
+++ b/lib/spack/docs/build_systems/qmakepackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -83,7 +83,7 @@ base class already contains:
.. code-block:: python
- depends_on('qt', type='build')
+ depends_on("qt", type="build")
If you want to specify a particular version requirement, or need to
@@ -91,7 +91,7 @@ link to the ``qt`` libraries, you can override this in your package:
.. code-block:: python
- depends_on('qt@5.6.0:')
+ depends_on("qt@5.6.0:")
^^^^^^^^^^^^^^^^^^^^^^^^^^
Passing arguments to qmake
@@ -103,7 +103,7 @@ override the ``qmake_args`` method like so:
.. code-block:: python
def qmake_args(self):
- return ['-recursive']
+ return ["-recursive"]
This method can be used to pass flags as well as variables.
@@ -118,7 +118,7 @@ sub-directory by adding the following to the package:
.. code-block:: python
- build_directory = 'src'
+ build_directory = "src"
^^^^^^^^^^^^^^^^^^^^^^
diff --git a/lib/spack/docs/build_systems/racketpackage.rst b/lib/spack/docs/build_systems/racketpackage.rst
index 8e0611af413185..cd94b9fc4b574a 100644
--- a/lib/spack/docs/build_systems/racketpackage.rst
+++ b/lib/spack/docs/build_systems/racketpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_systems/rocmpackage.rst b/lib/spack/docs/build_systems/rocmpackage.rst
index 8f90794dfb7df5..fb517fe21bf0db 100644
--- a/lib/spack/docs/build_systems/rocmpackage.rst
+++ b/lib/spack/docs/build_systems/rocmpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_systems/rpackage.rst b/lib/spack/docs/build_systems/rpackage.rst
index a5a5fcee3182e2..b2ac27f72a2503 100644
--- a/lib/spack/docs/build_systems/rpackage.rst
+++ b/lib/spack/docs/build_systems/rpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -163,28 +163,28 @@ attributes that can be used to set ``homepage``, ``url``, ``list_url``, and
.. code-block:: python
- cran = 'caret'
+ cran = "caret"
is equivalent to:
.. code-block:: python
- homepage = 'https://cloud.r-project.org/package=caret'
- url = 'https://cloud.r-project.org/src/contrib/caret_6.0-86.tar.gz'
- list_url = 'https://cloud.r-project.org/src/contrib/Archive/caret'
+ homepage = "https://cloud.r-project.org/package=caret"
+ url = "https://cloud.r-project.org/src/contrib/caret_6.0-86.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/caret"
Likewise, the following ``bioc`` attribute:
.. code-block:: python
- bioc = 'BiocVersion'
+ bioc = "BiocVersion"
is equivalent to:
.. code-block:: python
- homepage = 'https://bioconductor.org/packages/BiocVersion/'
- git = 'https://git.bioconductor.org/packages/BiocVersion'
+ homepage = "https://bioconductor.org/packages/BiocVersion/"
+ git = "https://git.bioconductor.org/packages/BiocVersion"
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -200,7 +200,7 @@ base class contains:
.. code-block:: python
- extends('r')
+ extends("r")
Take a close look at the homepage for ``caret``. If you look at the
@@ -209,7 +209,7 @@ You should add this to your package like so:
.. code-block:: python
- depends_on('r@3.2.0:', type=('build', 'run'))
+ depends_on("r@3.2.0:", type=("build", "run"))
^^^^^^^^^^^^^^
@@ -227,7 +227,7 @@ and list all of their dependencies in the following sections:
* LinkingTo
As far as Spack is concerned, all 3 of these dependency types
-correspond to ``type=('build', 'run')``, so you don't have to worry
+correspond to ``type=("build", "run")``, so you don't have to worry
about the details. If you are curious what they mean,
https://github.com/spack/spack/issues/2951 has a pretty good summary:
@@ -330,7 +330,7 @@ the dependency:
.. code-block:: python
- depends_on('r-lattice@0.20:', type=('build', 'run'))
+ depends_on("r-lattice@0.20:", type=("build", "run"))
^^^^^^^^^^^^^^^^^^
@@ -361,20 +361,20 @@ like so:
.. code-block:: python
def configure_args(self):
- mpi_name = self.spec['mpi'].name
+ mpi_name = self.spec["mpi"].name
# The type of MPI. Supported values are:
# OPENMPI, LAM, MPICH, MPICH2, or CRAY
- if mpi_name == 'openmpi':
- Rmpi_type = 'OPENMPI'
- elif mpi_name == 'mpich':
- Rmpi_type = 'MPICH2'
+ if mpi_name == "openmpi":
+ Rmpi_type = "OPENMPI"
+ elif mpi_name == "mpich":
+ Rmpi_type = "MPICH2"
else:
- raise InstallError('Unsupported MPI type')
+ raise InstallError("Unsupported MPI type")
return [
- '--with-Rmpi-type={0}'.format(Rmpi_type),
- '--with-mpi={0}'.format(spec['mpi'].prefix),
+ "--with-Rmpi-type={0}".format(Rmpi_type),
+ "--with-mpi={0}".format(spec["mpi"].prefix),
]
diff --git a/lib/spack/docs/build_systems/rubypackage.rst b/lib/spack/docs/build_systems/rubypackage.rst
index d5c38b863b9478..c30ed9bec26ee7 100644
--- a/lib/spack/docs/build_systems/rubypackage.rst
+++ b/lib/spack/docs/build_systems/rubypackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -84,8 +84,8 @@ The ``*.gemspec`` file may contain something like:
.. code-block:: ruby
- summary = 'An implementation of the AsciiDoc text processor and publishing toolchain'
- description = 'A fast, open source text processor and publishing toolchain for converting AsciiDoc content to HTML 5, DocBook 5, and other formats.'
+ summary = "An implementation of the AsciiDoc text processor and publishing toolchain"
+ description = "A fast, open source text processor and publishing toolchain for converting AsciiDoc content to HTML 5, DocBook 5, and other formats."
Either of these can be used for the description of the Spack package.
@@ -98,7 +98,7 @@ The ``*.gemspec`` file may contain something like:
.. code-block:: ruby
- homepage = 'https://asciidoctor.org'
+ homepage = "https://asciidoctor.org"
This should be used as the official homepage of the Spack package.
@@ -112,21 +112,21 @@ the base class contains:
.. code-block:: python
- extends('ruby')
+ extends("ruby")
The ``*.gemspec`` file may contain something like:
.. code-block:: ruby
- required_ruby_version = '>= 2.3.0'
+ required_ruby_version = ">= 2.3.0"
This can be added to the Spack package using:
.. code-block:: python
- depends_on('ruby@2.3.0:', type=('build', 'run'))
+ depends_on("ruby@2.3.0:", type=("build", "run"))
^^^^^^^^^^^^^^^^^
diff --git a/lib/spack/docs/build_systems/sconspackage.rst b/lib/spack/docs/build_systems/sconspackage.rst
index a17e1271b86d3b..8200d0998d73eb 100644
--- a/lib/spack/docs/build_systems/sconspackage.rst
+++ b/lib/spack/docs/build_systems/sconspackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_systems/sippackage.rst b/lib/spack/docs/build_systems/sippackage.rst
index a4f52bf18648c4..5d4dc21f14495f 100644
--- a/lib/spack/docs/build_systems/sippackage.rst
+++ b/lib/spack/docs/build_systems/sippackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -124,7 +124,7 @@ are wrong, you can provide the names yourself by overriding
.. code-block:: python
- import_modules = ['PyQt5']
+ import_modules = ["PyQt5"]
These tests often catch missing dependencies and non-RPATHed
diff --git a/lib/spack/docs/build_systems/sourceforgepackage.rst b/lib/spack/docs/build_systems/sourceforgepackage.rst
index 944c660eff69d1..ad3c191b3d22ff 100644
--- a/lib/spack/docs/build_systems/sourceforgepackage.rst
+++ b/lib/spack/docs/build_systems/sourceforgepackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/build_systems/wafpackage.rst b/lib/spack/docs/build_systems/wafpackage.rst
index c9bbf8bb5a42c2..ff69d5e9018ee1 100644
--- a/lib/spack/docs/build_systems/wafpackage.rst
+++ b/lib/spack/docs/build_systems/wafpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -63,8 +63,8 @@ run package-specific unit tests.
.. code-block:: python
def installtest(self):
- with working_dir('test'):
- pytest = which('py.test')
+ with working_dir("test"):
+ pytest = which("py.test")
pytest()
@@ -93,7 +93,7 @@ the following dependency automatically:
.. code-block:: python
- depends_on('python@2.5:', type='build')
+ depends_on("python@2.5:", type="build")
Waf only supports Python 2.5 and up.
@@ -113,7 +113,7 @@ phase, you can use:
args = []
if self.run_tests:
- args.append('--test')
+ args.append("--test")
return args
diff --git a/lib/spack/docs/chain.rst b/lib/spack/docs/chain.rst
index 0fef1e6e1a7ef3..e4a275df662f47 100644
--- a/lib/spack/docs/chain.rst
+++ b/lib/spack/docs/chain.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/conf.py b/lib/spack/docs/conf.py
index 250a600e7f75ec..8f52edb89caeac 100644
--- a/lib/spack/docs/conf.py
+++ b/lib/spack/docs/conf.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -215,6 +215,7 @@ def setup(sphinx):
("py:class", "spack.spec.InstallStatus"),
("py:class", "spack.spec.SpecfileReaderBase"),
("py:class", "spack.install_test.Pb"),
+ ("py:class", "spack.filesystem_view.SimpleFilesystemView"),
]
# The reST default role (used for this markup: `text`) to use for all documents.
diff --git a/lib/spack/docs/config_yaml.rst b/lib/spack/docs/config_yaml.rst
index d54977bebab21c..4781597d1a49a4 100644
--- a/lib/spack/docs/config_yaml.rst
+++ b/lib/spack/docs/config_yaml.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/configuration.rst b/lib/spack/docs/configuration.rst
index ab56817b77ee00..a4b60e43e32f38 100644
--- a/lib/spack/docs/configuration.rst
+++ b/lib/spack/docs/configuration.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -243,9 +243,11 @@ lower-precedence settings. Completely ignoring higher-level configuration
options is supported with the ``::`` notation for keys (see
:ref:`config-overrides` below).
-There are also special notations for string concatenation and precendense override.
-Using the ``+:`` notation can be used to force *prepending* strings or lists. For lists, this is identical
-to the default behavior. Using the ``-:`` works similarly, but for *appending* values.
+There are also special notations for string concatenation and precendense override:
+
+* ``+:`` will force *prepending* strings or lists. For lists, this is the default behavior.
+* ``-:`` works similarly, but for *appending* values.
+
:ref:`config-prepend-append`
^^^^^^^^^^^
diff --git a/lib/spack/docs/containers.rst b/lib/spack/docs/containers.rst
index 64ca1df926bbec..50d96f65370fa1 100644
--- a/lib/spack/docs/containers.rst
+++ b/lib/spack/docs/containers.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -9,24 +9,96 @@
Container Images
================
-Spack :ref:`environments` are a great tool to create container images, but
-preparing one that is suitable for production requires some more boilerplate
-than just:
+Spack :ref:`environments` can easily be turned into container images. This page
+outlines two ways in which this can be done:
+
+1. By installing the environment on the host system, and copying the installations
+ into the container image. This approach does not require any tools like Docker
+ or Singularity to be installed.
+2. By generating a Docker or Singularity recipe that can be used to build the
+ container image. In this approach, Spack builds the software inside the
+ container runtime, not on the host system.
+
+The first approach is easiest if you already have an installed environment,
+the second approach gives more control over the container image.
+
+---------------------------
+From existing installations
+---------------------------
+
+If you already have a Spack environment installed on your system, you can
+share the binaries as an OCI compatible container image. To get started you
+just have to configure and OCI registry and run ``spack buildcache push``.
+
+.. code-block:: console
+
+ # Create and install an environment in the current directory
+ spack env create -d .
+ spack -e . add pkg-a pkg-b
+ spack -e . install
+
+ # Configure the registry
+ spack -e . mirror add --oci-username ... --oci-password ... container-registry oci://example.com/name/image
+
+ # Push the image
+ spack -e . buildcache push --update-index --base-image ubuntu:22.04 --tag my_env container-registry
+
+The resulting container image can then be run as follows:
+
+.. code-block:: console
+
+ $ docker run -it example.com/name/image:my_env
+
+The image generated by Spack consists of the specified base image with each package from the
+environment as a separate layer on top. The image is minimal by construction, it only contains the
+environment roots and its runtime dependencies.
+
+.. note::
+
+ When using registries like GHCR and Docker Hub, the ``--oci-password`` flag is not
+ the password for your account, but a personal access token you need to generate separately.
+
+The specified ``--base-image`` should have a libc that is compatible with the host system.
+For example if your host system is Ubuntu 20.04, you can use ``ubuntu:20.04``, ``ubuntu:22.04``
+or newer: the libc in the container image must be at least the version of the host system,
+assuming ABI compatibility. It is also perfectly fine to use a completely different
+Linux distribution as long as the libc is compatible.
+
+For convenience, Spack also turns the OCI registry into a :ref:`build cache `,
+so that future ``spack install`` of the environment will simply pull the binaries from the
+registry instead of doing source builds. The flag ``--update-index`` is needed to make Spack
+take the build cache into account when concretizing.
+
+.. note::
+
+ When generating container images in CI, the approach above is recommended when CI jobs
+ already run in a sandboxed environment. You can simply use ``spack`` directly
+ in the CI job and push the resulting image to a registry. Subsequent CI jobs should
+ run faster because Spack can install from the same registry instead of rebuilding from
+ sources.
+
+---------------------------------------------
+Generating recipes for Docker and Singularity
+---------------------------------------------
+
+Apart from copying existing installations into container images, Spack can also
+generate recipes for container images. This is useful if you want to run Spack
+itself in a sandboxed environment instead of on the host system.
+
+Since recipes need a little bit more boilerplate than
.. code-block:: docker
COPY spack.yaml /environment
RUN spack -e /environment install
-Additional actions may be needed to minimize the size of the
-container, or to update the system software that is installed in the base
-image, or to set up a proper entrypoint to run the image. These tasks are
-usually both necessary and repetitive, so Spack comes with a command
-to generate recipes for container images starting from a ``spack.yaml``.
+Spack provides a command to generate customizable recipes for container images. Customizations
+include minimizing the size of the image, installing packages in the base image using the system
+package manager, and setting up a proper entrypoint to run the image.
---------------------
+~~~~~~~~~~~~~~~~~~~~
A Quick Introduction
---------------------
+~~~~~~~~~~~~~~~~~~~~
Consider having a Spack environment like the following:
@@ -37,8 +109,8 @@ Consider having a Spack environment like the following:
- gromacs+mpi
- mpich
-Producing a ``Dockerfile`` from it is as simple as moving to the directory
-where the ``spack.yaml`` file is stored and giving the following command:
+Producing a ``Dockerfile`` from it is as simple as changing directories to
+where the ``spack.yaml`` file is stored and running the following command:
.. code-block:: console
@@ -104,9 +176,9 @@ configuration are discussed in details in the sections below.
.. _container_spack_images:
---------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~
Spack Images on Docker Hub
---------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~
Docker images with Spack preinstalled and ready to be used are
built when a release is tagged, or nightly on ``develop``. The images
@@ -176,9 +248,9 @@ by Spack use them as default base images for their ``build`` stage,
even though handles to use custom base images provided by users are
available to accommodate complex use cases.
----------------------------------
-Creating Images From Environments
----------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Configuring the Container Recipe
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Any Spack Environment can be used for the automatic generation of container
recipes. Sensible defaults are provided for things like the base image or the
@@ -219,18 +291,18 @@ under the ``container`` attribute of environments:
A detailed description of the options available can be found in the :ref:`container_config_options` section.
--------------------
+~~~~~~~~~~~~~~~~~~~
Setting Base Images
--------------------
+~~~~~~~~~~~~~~~~~~~
The ``images`` subsection is used to select both the image where
Spack builds the software and the image where the built software
is installed. This attribute can be set in different ways and
which one to use depends on the use case at hand.
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+""""""""""""""""""""""""""""""""""""""""
Use Official Spack Images From Dockerhub
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+""""""""""""""""""""""""""""""""""""""""
To generate a recipe that uses an official Docker image from the
Spack organization to build the software and the corresponding official OS image
@@ -435,9 +507,9 @@ responsibility to ensure that:
Therefore we don't recommend its use in cases that can be otherwise
covered by the simplified mode shown first.
-----------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Singularity Definition Files
-----------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In addition to producing recipes in ``Dockerfile`` format Spack can produce
Singularity Definition Files by just changing the value of the ``format``
@@ -458,9 +530,9 @@ attribute:
The minimum version of Singularity required to build a SIF (Singularity Image Format)
image from the recipes generated by Spack is ``3.5.3``.
-------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Extending the Jinja2 Templates
-------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The Dockerfile and the Singularity definition file that Spack can generate are based on
a few Jinja2 templates that are rendered according to the environment being containerized.
@@ -581,9 +653,9 @@ The recipe that gets generated contains the two extra instruction that we added
.. _container_config_options:
------------------------
+~~~~~~~~~~~~~~~~~~~~~~~
Configuration Reference
------------------------
+~~~~~~~~~~~~~~~~~~~~~~~
The tables below describe all the configuration options that are currently supported
to customize the generation of container recipes:
@@ -680,13 +752,13 @@ to customize the generation of container recipes:
- Description string
- No
---------------
+~~~~~~~~~~~~~~
Best Practices
---------------
+~~~~~~~~~~~~~~
-^^^
+"""
MPI
-^^^
+"""
Due to the dependency on Fortran for OpenMPI, which is the spack default
implementation, consider adding ``gfortran`` to the ``apt-get install`` list.
@@ -697,9 +769,9 @@ For execution on HPC clusters, it can be helpful to import the docker
image into Singularity in order to start a program with an *external*
MPI. Otherwise, also add ``openssh-server`` to the ``apt-get install`` list.
-^^^^
+""""
CUDA
-^^^^
+""""
Starting from CUDA 9.0, Nvidia provides minimal CUDA images based on
Ubuntu. Please see `their instructions `_.
Avoid double-installing CUDA by adding, e.g.
@@ -718,9 +790,9 @@ to your ``spack.yaml``.
Users will either need ``nvidia-docker`` or e.g. Singularity to *execute*
device kernels.
-^^^^^^^^^^^^^^^^^^^^^^^^^
+"""""""""""""""""""""""""
Docker on Windows and OSX
-^^^^^^^^^^^^^^^^^^^^^^^^^
+"""""""""""""""""""""""""
On Mac OS and Windows, docker runs on a hypervisor that is not allocated much
memory by default, and some spack packages may fail to build due to lack of
diff --git a/lib/spack/docs/contribution_guide.rst b/lib/spack/docs/contribution_guide.rst
index ec9234aa461ab5..68a381be9f7f80 100644
--- a/lib/spack/docs/contribution_guide.rst
+++ b/lib/spack/docs/contribution_guide.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/developer_guide.rst b/lib/spack/docs/developer_guide.rst
index 4dc8d1249dfc92..440fe018803dc1 100644
--- a/lib/spack/docs/developer_guide.rst
+++ b/lib/spack/docs/developer_guide.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/environments.rst b/lib/spack/docs/environments.rst
index a96e7259c9323a..93db76b332d0b8 100644
--- a/lib/spack/docs/environments.rst
+++ b/lib/spack/docs/environments.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -142,6 +142,21 @@ user's prompt to begin with the environment name in brackets.
$ spack env activate -p myenv
[myenv] $ ...
+The ``activate`` command can also be used to create a new environment, if it is
+not already defined, by adding the ``--create`` flag. Managed and anonymous
+environments, anonymous environments are explained in the next section,
+can both be created using the same flags that `spack env create` accepts.
+If an environment already exists then spack will simply activate it and ignore the
+create specific flags.
+
+.. code-block:: console
+
+ $ spack env activate --create -p myenv
+ # ...
+ # [creates if myenv does not exist yet]
+ # ...
+ [myenv] $ ...
+
To deactivate an environment, use the command:
.. code-block:: console
diff --git a/lib/spack/docs/extensions.rst b/lib/spack/docs/extensions.rst
index bc5b3a762f95ed..2d82c2ba84002c 100644
--- a/lib/spack/docs/extensions.rst
+++ b/lib/spack/docs/extensions.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -9,46 +9,42 @@
Custom Extensions
=================
-*Spack extensions* permit you to extend Spack capabilities by deploying your
+*Spack extensions* allow you to extend Spack capabilities by deploying your
own custom commands or logic in an arbitrary location on your filesystem.
This might be extremely useful e.g. to develop and maintain a command whose purpose is
too specific to be considered for reintegration into the mainline or to
evolve a command through its early stages before starting a discussion to merge
it upstream.
+
From Spack's point of view an extension is any path in your filesystem which
-respects a prescribed naming and layout for files:
+respects the following naming and layout for files:
.. code-block:: console
spack-scripting/ # The top level directory must match the format 'spack-{extension_name}'
├── pytest.ini # Optional file if the extension ships its own tests
├── scripting # Folder that may contain modules that are needed for the extension commands
- │ └── cmd # Folder containing extension commands
- │ └── filter.py # A new command that will be available
- ├── tests # Tests for this extension
+ │ ├── cmd # Folder containing extension commands
+ │ │ └── filter.py # A new command that will be available
+ │ └── functions.py # Module with internal details
+ └── tests # Tests for this extension
│ ├── conftest.py
│ └── test_filter.py
└── templates # Templates that may be needed by the extension
-In the example above the extension named *scripting* adds an additional command (``filter``)
-and unit tests to verify its behavior. The code for this example can be
-obtained by cloning the corresponding git repository:
+In the example above, the extension is named *scripting*. It adds an additional command
+(``spack filter``) and unit tests to verify its behavior.
-.. TODO: write an ad-hoc "hello world" extension and make it part of the spack organization
+The extension can import any core Spack module in its implementation. When loaded by
+the ``spack`` command, the extension itself is imported as a Python package in the
+``spack.extensions`` namespace. In the example above, since the extension is named
+"scripting", the corresponding Python module is ``spack.extensions.scripting``.
-.. code-block:: console
+The code for this example extension can be obtained by cloning the corresponding git repository:
- $ cd ~/
- $ mkdir tmp && cd tmp
- $ git clone https://github.com/alalazo/spack-scripting.git
- Cloning into 'spack-scripting'...
- remote: Counting objects: 11, done.
- remote: Compressing objects: 100% (7/7), done.
- remote: Total 11 (delta 0), reused 11 (delta 0), pack-reused 0
- Receiving objects: 100% (11/11), done.
+.. code-block:: console
-As you can see by inspecting the sources, Python modules that are part of the extension
-can import any core Spack module.
+ $ git -C /tmp clone https://github.com/spack/spack-scripting.git
---------------------------------
Configure Spack to Use Extensions
@@ -61,7 +57,7 @@ paths to ``config.yaml``. In the case of our example this means ensuring that:
config:
extensions:
- - ~/tmp/spack-scripting
+ - /tmp/spack-scripting
is part of your configuration file. Once this is setup any command that the extension provides
will be available from the command line:
@@ -86,37 +82,32 @@ will be available from the command line:
--implicit select specs that are not installed or were installed implicitly
--output OUTPUT where to dump the result
-The corresponding unit tests can be run giving the appropriate options
-to ``spack unit-test``:
+The corresponding unit tests can be run giving the appropriate options to ``spack unit-test``:
.. code-block:: console
$ spack unit-test --extension=scripting
-
- ============================================================== test session starts ===============================================================
- platform linux2 -- Python 2.7.15rc1, pytest-3.2.5, py-1.4.34, pluggy-0.4.0
- rootdir: /home/mculpo/tmp/spack-scripting, inifile: pytest.ini
+ ========================================== test session starts ===========================================
+ platform linux -- Python 3.11.5, pytest-7.4.3, pluggy-1.3.0
+ rootdir: /home/culpo/github/spack-scripting
+ configfile: pytest.ini
+ testpaths: tests
+ plugins: xdist-3.5.0
collected 5 items
- tests/test_filter.py ...XX
- ============================================================ short test summary info =============================================================
- XPASS tests/test_filter.py::test_filtering_specs[flags3-specs3-expected3]
- XPASS tests/test_filter.py::test_filtering_specs[flags4-specs4-expected4]
-
- =========================================================== slowest 20 test durations ============================================================
- 3.74s setup tests/test_filter.py::test_filtering_specs[flags0-specs0-expected0]
- 0.17s call tests/test_filter.py::test_filtering_specs[flags3-specs3-expected3]
- 0.16s call tests/test_filter.py::test_filtering_specs[flags2-specs2-expected2]
- 0.15s call tests/test_filter.py::test_filtering_specs[flags1-specs1-expected1]
- 0.13s call tests/test_filter.py::test_filtering_specs[flags4-specs4-expected4]
- 0.08s call tests/test_filter.py::test_filtering_specs[flags0-specs0-expected0]
- 0.04s teardown tests/test_filter.py::test_filtering_specs[flags4-specs4-expected4]
- 0.00s setup tests/test_filter.py::test_filtering_specs[flags4-specs4-expected4]
- 0.00s setup tests/test_filter.py::test_filtering_specs[flags3-specs3-expected3]
- 0.00s setup tests/test_filter.py::test_filtering_specs[flags1-specs1-expected1]
- 0.00s setup tests/test_filter.py::test_filtering_specs[flags2-specs2-expected2]
- 0.00s teardown tests/test_filter.py::test_filtering_specs[flags2-specs2-expected2]
- 0.00s teardown tests/test_filter.py::test_filtering_specs[flags1-specs1-expected1]
- 0.00s teardown tests/test_filter.py::test_filtering_specs[flags0-specs0-expected0]
- 0.00s teardown tests/test_filter.py::test_filtering_specs[flags3-specs3-expected3]
- ====================================================== 3 passed, 2 xpassed in 4.51 seconds =======================================================
+ tests/test_filter.py ..... [100%]
+
+ ========================================== slowest 30 durations ==========================================
+ 2.31s setup tests/test_filter.py::test_filtering_specs[kwargs0-specs0-expected0]
+ 0.57s call tests/test_filter.py::test_filtering_specs[kwargs2-specs2-expected2]
+ 0.56s call tests/test_filter.py::test_filtering_specs[kwargs4-specs4-expected4]
+ 0.54s call tests/test_filter.py::test_filtering_specs[kwargs3-specs3-expected3]
+ 0.54s call tests/test_filter.py::test_filtering_specs[kwargs1-specs1-expected1]
+ 0.48s call tests/test_filter.py::test_filtering_specs[kwargs0-specs0-expected0]
+ 0.01s setup tests/test_filter.py::test_filtering_specs[kwargs4-specs4-expected4]
+ 0.01s setup tests/test_filter.py::test_filtering_specs[kwargs2-specs2-expected2]
+ 0.01s setup tests/test_filter.py::test_filtering_specs[kwargs1-specs1-expected1]
+ 0.01s setup tests/test_filter.py::test_filtering_specs[kwargs3-specs3-expected3]
+
+ (5 durations < 0.005s hidden. Use -vv to show these durations.)
+ =========================================== 5 passed in 5.06s ============================================
diff --git a/lib/spack/docs/features.rst b/lib/spack/docs/features.rst
index c39075fe10678c..25153d0d7af9d7 100644
--- a/lib/spack/docs/features.rst
+++ b/lib/spack/docs/features.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/frequently_asked_questions.rst b/lib/spack/docs/frequently_asked_questions.rst
index 345fa1a81a816a..2ae663524a804e 100644
--- a/lib/spack/docs/frequently_asked_questions.rst
+++ b/lib/spack/docs/frequently_asked_questions.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/getting_started.rst b/lib/spack/docs/getting_started.rst
index 70d7cb497a4ac1..7c53a077444f18 100644
--- a/lib/spack/docs/getting_started.rst
+++ b/lib/spack/docs/getting_started.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/gpu_configuration.rst b/lib/spack/docs/gpu_configuration.rst
index 1f807bb3b8a82e..fd35ae25f053a0 100644
--- a/lib/spack/docs/gpu_configuration.rst
+++ b/lib/spack/docs/gpu_configuration.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -111,3 +111,28 @@ CUDA is split into fewer components and is simpler to specify:
prefix: /opt/cuda/cuda-11.0.2/
where ``/opt/cuda/cuda-11.0.2/lib/`` contains ``libcudart.so``.
+
+
+
+-----------------------------------
+Using an External OpenGL API
+-----------------------------------
+Depending on whether we have a graphics card or not, we may choose to use OSMesa or GLX to implement the OpenGL API.
+
+If a graphics card is unavailable, OSMesa is recommended and can typically be built with Spack.
+However, if we prefer to utilize the system GLX tailored to our graphics card, we need to declare it as an external. Here's how to do it:
+
+
+.. code-block:: yaml
+
+ packages:
+ libglx:
+ require: [opengl]
+ opengl:
+ buildable: false
+ externals:
+ - prefix: /usr/
+ spec: opengl@4.6
+
+Note that prefix has to be the root of both the libraries and the headers, using is /usr not the path the the lib.
+To know which spec for opengl is available use ``cd /usr/include/GL && grep -Ri gl_version``.
diff --git a/lib/spack/docs/index.rst b/lib/spack/docs/index.rst
index 7607181ada5947..410cb8e41c77bd 100644
--- a/lib/spack/docs/index.rst
+++ b/lib/spack/docs/index.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/mirrors.rst b/lib/spack/docs/mirrors.rst
index 2f376c095e656f..8b01263cbbbd7e 100644
--- a/lib/spack/docs/mirrors.rst
+++ b/lib/spack/docs/mirrors.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/module_file_support.rst b/lib/spack/docs/module_file_support.rst
index f6b292e7553dab..9ba9c3710de5e7 100644
--- a/lib/spack/docs/module_file_support.rst
+++ b/lib/spack/docs/module_file_support.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/packages_yaml.rst b/lib/spack/docs/packages_yaml.rst
index e08f51e612a318..e33291909472f2 100644
--- a/lib/spack/docs/packages_yaml.rst
+++ b/lib/spack/docs/packages_yaml.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -97,6 +97,35 @@ Each package version and compiler listed in an external should
have entries in Spack's packages and compiler configuration, even
though the package and compiler may not ever be built.
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Extra attributes for external packages
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Sometimes external packages require additional attributes to be used
+effectively. This information can be defined on a per-package basis
+and stored in the ``extra_attributes`` section of the external package
+configuration. In addition to per-package information, this section
+can be used to define environment modifications to be performed
+whenever the package is used. For example, if an external package is
+built without ``rpath`` support, it may require ``LD_LIBRARY_PATH``
+settings to find its dependencies. This could be configured as
+follows:
+
+.. code-block:: yaml
+
+ packages:
+ mpich:
+ externals:
+ - spec: mpich@3.3 %clang@12.0.0 +hwloc
+ prefix: /path/to/mpich
+ extra_attributes:
+ environment:
+ prepend_path:
+ LD_LIBRARY_PATH: /path/to/hwloc/lib64
+
+See :ref:`configuration_environment_variables` for more information on
+how to configure environment modifications in Spack config files.
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Prevent packages from being built from sources
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -383,7 +412,33 @@ like this:
which means every spec will be required to use ``clang`` as a compiler.
-Note that in this case ``all`` represents a *default set of requirements* -
+Requirements on variants for all packages are possible too, but note that they
+are only enforced for those packages that define these variants, otherwise they
+are disregarded. For example:
+
+.. code-block:: yaml
+
+ packages:
+ all:
+ require:
+ - "+shared"
+ - "+cuda"
+
+will just enforce ``+shared`` on ``zlib``, which has a boolean ``shared`` variant but
+no ``cuda`` variant.
+
+Constraints in a single spec literal are always considered as a whole, so in a case like:
+
+.. code-block:: yaml
+
+ packages:
+ all:
+ require: "+shared +cuda"
+
+the default requirement will be enforced only if a package has both a ``cuda`` and
+a ``shared`` variant, and will never be partially enforced.
+
+Finally, ``all`` represents a *default set of requirements* -
if there are specific package requirements, then the default requirements
under ``all`` are disregarded. For example, with a configuration like this:
@@ -391,12 +446,18 @@ under ``all`` are disregarded. For example, with a configuration like this:
packages:
all:
- require: '%clang'
+ require:
+ - 'build_type=Debug'
+ - '%clang'
cmake:
- require: '%gcc'
+ require:
+ - 'build_type=Debug'
+ - '%gcc'
Spack requires ``cmake`` to use ``gcc`` and all other nodes (including ``cmake``
-dependencies) to use ``clang``.
+dependencies) to use ``clang``. If enforcing ``build_type=Debug`` is needed also
+on ``cmake``, it must be repeated in the specific ``cmake`` requirements.
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Setting requirements on virtual specs
@@ -426,6 +487,56 @@ present. For instance with a configuration like:
you will use ``mvapich2~cuda %gcc`` as an ``mpi`` provider.
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Conflicts and strong preferences
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If the semantic of requirements is too strong, you can also express "strong preferences" and "conflicts"
+from configuration files:
+
+.. code-block:: yaml
+
+ packages:
+ all:
+ prefer:
+ - '%clang'
+ conflict:
+ - '+shared'
+
+The ``prefer`` and ``conflict`` sections can be used whenever a ``require`` section is allowed.
+The argument is always a list of constraints, and each constraint can be either a simple string,
+or a more complex object:
+
+.. code-block:: yaml
+
+ packages:
+ all:
+ conflict:
+ - spec: '%clang'
+ when: 'target=x86_64_v3'
+ message: 'reason why clang cannot be used'
+
+The ``spec`` attribute is mandatory, while both ``when`` and ``message`` are optional.
+
+.. note::
+
+ Requirements allow for expressing both "strong preferences" and "conflicts".
+ The syntax for doing so, though, may not be immediately clear. For
+ instance, if we want to prevent any package from using ``%clang``, we can set:
+
+ .. code-block:: yaml
+
+ packages:
+ all:
+ require:
+ - one_of: ['%clang', '@:']
+
+ Since only one of the requirements must hold, and ``@:`` is always true, the rule above is
+ equivalent to a conflict. For "strong preferences" we need to substitute the ``one_of`` policy
+ with ``any_of``.
+
+
+
.. _package-preferences:
-------------------
diff --git a/lib/spack/docs/packaging_guide.rst b/lib/spack/docs/packaging_guide.rst
index 3dd1c7952d12e7..0fa8e4dce31941 100644
--- a/lib/spack/docs/packaging_guide.rst
+++ b/lib/spack/docs/packaging_guide.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -237,7 +237,7 @@ for details):
.. code-block:: python
:linenos:
- # Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+ # Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -2337,7 +2337,7 @@ window while a batch job is running ``spack install`` on the same or
overlapping dependencies without any process trying to re-do the work of
another.
-For example, if you are using SLURM, you could launch an installation
+For example, if you are using Slurm, you could launch an installation
of ``mpich`` using the following command:
.. code-block:: console
@@ -4379,10 +4379,16 @@ implementation was selected for this build:
elif "mvapich" in spec:
configure_args.append("--with-mvapich")
-It's also a bit more concise than satisfies. The difference between
-the two functions is that ``satisfies()`` tests whether spec
-constraints overlap at all, while ``in`` tests whether a spec or any
-of its dependencies satisfy the provided spec.
+It's also a bit more concise than satisfies.
+
+.. note::
+
+ The ``satisfies()`` method tests whether this spec has, at least, all the constraints of the argument spec,
+ while ``in`` tests whether a spec or any of its dependencies satisfy the provided spec.
+
+ If the provided spec is anonymous (e.g., ":1.2:", "+shared") or has the
+ same name as the spec being checked, then ``in`` works the same as
+ ``satisfies()``; however, use of ``satisfies()`` is more intuitive.
^^^^^^^^^^^^^^^^^^^^^^^
Architecture specifiers
@@ -5284,7 +5290,7 @@ installed example.
example = which(self.prefix.bin.example)
example()
-Output showing the identification of each test part after runnig the tests
+Output showing the identification of each test part after running the tests
is illustrated below.
.. code-block:: console
@@ -5781,7 +5787,7 @@ with those implemented in the package itself.
* - `Cxx
`_
- Compiles and runs several ``hello`` programs
- * - `Fortan
+ * - `Fortran
`_
- Compiles and runs ``hello`` programs (``F`` and ``f90``)
* - `Mpi
@@ -6973,3 +6979,18 @@ you probably care most about are:
You may also care about `license exceptions
`_ that use the ``WITH`` operator,
e.g. ``Apache-2.0 WITH LLVM-exception``.
+
+Many of the licenses that are currently in the spack repositories have been
+automatically determined. While this is great for bulk adding license
+information and is most likely correct, there are sometimes edge cases that
+require manual intervention. To determine which licenses are validated and
+which are not, there is the `checked_by` parameter in the license directive:
+
+.. code-block:: python
+
+ license("", when="", checked_by="")
+
+When you have validated a github license, either when doing so explicitly or
+as part of packaging a new package, please set the `checked_by` parameter
+to your Github username to signal that the license has been manually
+verified.
diff --git a/lib/spack/docs/pipelines.rst b/lib/spack/docs/pipelines.rst
index 4ebe90fb0b6de4..0bed42ffd6429e 100644
--- a/lib/spack/docs/pipelines.rst
+++ b/lib/spack/docs/pipelines.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/replace_conda_homebrew.rst b/lib/spack/docs/replace_conda_homebrew.rst
index c0d2060c703b96..e4b3de0ec114c7 100644
--- a/lib/spack/docs/replace_conda_homebrew.rst
+++ b/lib/spack/docs/replace_conda_homebrew.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/repositories.rst b/lib/spack/docs/repositories.rst
index 9cb93af21f716f..5a4cf1c1084c18 100644
--- a/lib/spack/docs/repositories.rst
+++ b/lib/spack/docs/repositories.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/docs/requirements.txt b/lib/spack/docs/requirements.txt
index 10e19f093e5eec..18e2a26f13ffc6 100644
--- a/lib/spack/docs/requirements.txt
+++ b/lib/spack/docs/requirements.txt
@@ -1,13 +1,13 @@
sphinx==7.2.6
sphinxcontrib-programoutput==0.17
sphinx_design==0.5.0
-sphinx-rtd-theme==1.3.0
+sphinx-rtd-theme==2.0.0
python-levenshtein==0.23.0
-docutils==0.18.1
-pygments==2.16.1
-urllib3==2.0.7
-pytest==7.4.3
-isort==5.12.0
-black==23.10.1
-flake8==6.1.0
-mypy==1.6.1
+docutils==0.20.1
+pygments==2.17.2
+urllib3==2.1.0
+pytest==7.4.4
+isort==5.13.2
+black==23.12.1
+flake8==7.0.0
+mypy==1.8.0
diff --git a/lib/spack/docs/signing.rst b/lib/spack/docs/signing.rst
index dc44eaec1d8678..8927f874ceb58a 100644
--- a/lib/spack/docs/signing.rst
+++ b/lib/spack/docs/signing.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -142,7 +142,7 @@ Reputational Key
----------------
The Reputational Key is the public facing key used to sign complete groups of
-development and release packages. Only one key pair exsits in this class of
+development and release packages. Only one key pair exists in this class of
keys. In contrast to the Intermediate CI Key the Reputational Key *should* be
used to verify package integrity. At the end of develop and release pipeline a
final pipeline job pulls down all signed package metadata built by the pipeline,
@@ -272,7 +272,7 @@ Internal Implementation
The technical implementation of the pipeline signing process includes components
defined in Amazon Web Services, the Kubernetes cluster, at affilicated
-institutions, and the GitLab/GitLab Runner deployment. We present the techincal
+institutions, and the GitLab/GitLab Runner deployment. We present the technical
implementation in two interdependent sections. The first addresses how secrets
are managed through the lifecycle of a develop or release pipeline. The second
section describes how Gitlab Runner and pipelines are configured and managed to
@@ -295,7 +295,7 @@ infrastructure.
-----------------------
Multiple intermediate CI signing keys exist, one Intermediate CI Key for jobs
-run in AWS, and one key for each affiliated institution (e.g. Univerity of
+run in AWS, and one key for each affiliated institution (e.g. University of
Oregon). Here we describe how the Intermediate CI Key is managed in AWS:
The Intermediate CI Key (including the Signing Intermediate CI Private Key is
@@ -305,7 +305,7 @@ contains an ASCII-armored export of just the *public* components of the
Reputational Key. This secret also contains the *public* components of each of
the affiliated institutions' Intermediate CI Key. These are potentially needed
to verify dependent packages which may have been found in the public mirror or
-built by a protected job running on an affiliated institution's infrastrcuture
+built by a protected job running on an affiliated institution's infrastructure
in an earlier stage of the pipeline.
Procedurally the ``spack-intermediate-ci-signing-key`` secret is used in
diff --git a/lib/spack/docs/spack.yaml b/lib/spack/docs/spack.yaml
index 924280bc04ee8f..4fe4090c8122a2 100644
--- a/lib/spack/docs/spack.yaml
+++ b/lib/spack/docs/spack.yaml
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/env/cc b/lib/spack/env/cc
index 360a0de8bcc2a3..f72a6663a37bb3 100755
--- a/lib/spack/env/cc
+++ b/lib/spack/env/cc
@@ -1,7 +1,7 @@
#!/bin/sh -f
# shellcheck disable=SC2034 # evals in this script fool shellcheck
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/external/__init__.py b/lib/spack/external/__init__.py
index 2e8bf3a4f8b80b..cb88b0c867f6e9 100644
--- a/lib/spack/external/__init__.py
+++ b/lib/spack/external/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/external/archspec/cpu/detect.py b/lib/spack/external/archspec/cpu/detect.py
index 85e1f4677f1ccb..305bf9d9d67435 100644
--- a/lib/spack/external/archspec/cpu/detect.py
+++ b/lib/spack/external/archspec/cpu/detect.py
@@ -101,17 +101,9 @@ def _machine():
).strip()
if "Apple" in output:
- # Need to distinguish between running in Rosetta2 emulator
- # mode for x86_64, and native mode for aarch64.
- output = _check_output(
- ["arch"], env=_ensure_bin_usrbin_in_path()
- ).strip()
# Note that a native Python interpreter on Apple M1 would return
# "arm64" instead of "aarch64". Here we normalize to the latter.
- if "arm64" in output:
- return "aarch64"
- else:
- return "x86_64"
+ return "aarch64"
return "x86_64"
@@ -125,29 +117,17 @@ def sysctl(*args):
return _check_output(["sysctl"] + list(args), env=child_environment).strip()
if _machine() == "x86_64":
- # Rosetta 2 emulator
- if "Apple" in sysctl("-n", "machdep.cpu.brand_string"):
- flags = (
- sysctl("-n", "machdep.cpu.features").lower()
- )
- info = {
- "vendor_id": "Apple",
- "flags": flags,
- "model": "m1",
- "model name": sysctl("-n", "machdep.cpu.brand_string"),
- }
- else:
- flags = (
- sysctl("-n", "machdep.cpu.features").lower()
- + " "
- + sysctl("-n", "machdep.cpu.leaf7_features").lower()
- )
- info = {
- "vendor_id": sysctl("-n", "machdep.cpu.vendor"),
- "flags": flags,
- "model": sysctl("-n", "machdep.cpu.model"),
- "model name": sysctl("-n", "machdep.cpu.brand_string"),
- }
+ flags = (
+ sysctl("-n", "machdep.cpu.features").lower()
+ + " "
+ + sysctl("-n", "machdep.cpu.leaf7_features").lower()
+ )
+ info = {
+ "vendor_id": sysctl("-n", "machdep.cpu.vendor"),
+ "flags": flags,
+ "model": sysctl("-n", "machdep.cpu.model"),
+ "model name": sysctl("-n", "machdep.cpu.brand_string"),
+ }
else:
model = "unknown"
model_str = sysctl("-n", "machdep.cpu.brand_string").lower()
diff --git a/lib/spack/llnl/__init__.py b/lib/spack/llnl/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/llnl/__init__.py
+++ b/lib/spack/llnl/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/path.py b/lib/spack/llnl/path.py
index bef9e14adac4c2..18f9b6e9a24eb6 100644
--- a/lib/spack/llnl/path.py
+++ b/lib/spack/llnl/path.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/string.py b/lib/spack/llnl/string.py
index a203be8d3468b6..d2995f34c1b6a9 100644
--- a/lib/spack/llnl/string.py
+++ b/lib/spack/llnl/string.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/url.py b/lib/spack/llnl/url.py
index 40e7606506c6d2..28f3187dd9b459 100644
--- a/lib/spack/llnl/url.py
+++ b/lib/spack/llnl/url.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/util/__init__.py b/lib/spack/llnl/util/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/llnl/util/__init__.py
+++ b/lib/spack/llnl/util/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/util/argparsewriter.py b/lib/spack/llnl/util/argparsewriter.py
index 60a404abd438ff..54911b4f03b79c 100644
--- a/lib/spack/llnl/util/argparsewriter.py
+++ b/lib/spack/llnl/util/argparsewriter.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/util/filesystem.py b/lib/spack/llnl/util/filesystem.py
index 47c66248b53aee..75d2023c16f1e2 100644
--- a/lib/spack/llnl/util/filesystem.py
+++ b/lib/spack/llnl/util/filesystem.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/util/lang.py b/lib/spack/llnl/util/lang.py
index 607b093de8b406..4f14a29ef8feb0 100644
--- a/lib/spack/llnl/util/lang.py
+++ b/lib/spack/llnl/util/lang.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -1047,9 +1047,9 @@ def __bool__(self):
"""Whether any exceptions were handled."""
return bool(self.exceptions)
- def forward(self, context: str) -> "GroupedExceptionForwarder":
+ def forward(self, context: str, base: type = BaseException) -> "GroupedExceptionForwarder":
"""Return a contextmanager which extracts tracebacks and prefixes a message."""
- return GroupedExceptionForwarder(context, self)
+ return GroupedExceptionForwarder(context, self, base)
def _receive_forwarded(self, context: str, exc: Exception, tb: List[str]):
self.exceptions.append((context, exc, tb))
@@ -1072,15 +1072,18 @@ class GroupedExceptionForwarder:
"""A contextmanager to capture exceptions and forward them to a
GroupedExceptionHandler."""
- def __init__(self, context: str, handler: GroupedExceptionHandler):
+ def __init__(self, context: str, handler: GroupedExceptionHandler, base: type):
self._context = context
self._handler = handler
+ self._base = base
def __enter__(self):
return None
def __exit__(self, exc_type, exc_value, tb):
if exc_value is not None:
+ if not issubclass(exc_type, self._base):
+ return False
self._handler._receive_forwarded(self._context, exc_value, traceback.format_tb(tb))
# Suppress any exception from being re-raised:
diff --git a/lib/spack/llnl/util/link_tree.py b/lib/spack/llnl/util/link_tree.py
index 816c9049b11bd0..8ae1b0ab293717 100644
--- a/lib/spack/llnl/util/link_tree.py
+++ b/lib/spack/llnl/util/link_tree.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/util/lock.py b/lib/spack/llnl/util/lock.py
index 156300b891b528..08c90b21ce89f7 100644
--- a/lib/spack/llnl/util/lock.py
+++ b/lib/spack/llnl/util/lock.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/util/multiproc.py b/lib/spack/llnl/util/multiproc.py
index d67427218fa18e..ae7f09482f4915 100644
--- a/lib/spack/llnl/util/multiproc.py
+++ b/lib/spack/llnl/util/multiproc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/util/symlink.py b/lib/spack/llnl/util/symlink.py
index 4f4f965f139e59..229f3f8115fc52 100644
--- a/lib/spack/llnl/util/symlink.py
+++ b/lib/spack/llnl/util/symlink.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/util/tty/__init__.py b/lib/spack/llnl/util/tty/__init__.py
index ec7bd665374c08..7a322a6e48c21a 100644
--- a/lib/spack/llnl/util/tty/__init__.py
+++ b/lib/spack/llnl/util/tty/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/util/tty/colify.py b/lib/spack/llnl/util/tty/colify.py
index eb493aec33236a..719b480e4a0827 100644
--- a/lib/spack/llnl/util/tty/colify.py
+++ b/lib/spack/llnl/util/tty/colify.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/util/tty/color.py b/lib/spack/llnl/util/tty/color.py
index 67bd129eabf254..bef7af8e58d968 100644
--- a/lib/spack/llnl/util/tty/color.py
+++ b/lib/spack/llnl/util/tty/color.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -204,17 +204,23 @@ def color_when(value):
class match_to_ansi:
- def __init__(self, color=True, enclose=False):
+ def __init__(self, color=True, enclose=False, zsh=False):
self.color = _color_when_value(color)
self.enclose = enclose
+ self.zsh = zsh
def escape(self, s):
"""Returns a TTY escape sequence for a color"""
if self.color:
- if self.enclose:
- return r"\[\033[%sm\]" % s
+ if self.zsh:
+ result = rf"\e[0;{s}m"
else:
- return "\033[%sm" % s
+ result = f"\033[{s}m"
+
+ if self.enclose:
+ result = rf"\[{result}\]"
+
+ return result
else:
return ""
@@ -261,9 +267,11 @@ def colorize(string, **kwargs):
codes, for output to non-console devices.
enclose (bool): If True, enclose ansi color sequences with
square brackets to prevent misestimation of terminal width.
+ zsh (bool): If True, use zsh ansi codes instead of bash ones (for variables like PS1)
"""
color = _color_when_value(kwargs.get("color", get_color_when()))
- string = re.sub(color_re, match_to_ansi(color, kwargs.get("enclose")), string)
+ zsh = kwargs.get("zsh", False)
+ string = re.sub(color_re, match_to_ansi(color, kwargs.get("enclose")), string, zsh)
string = string.replace("}}", "}")
return string
diff --git a/lib/spack/llnl/util/tty/log.py b/lib/spack/llnl/util/tty/log.py
index 8f685442a2079f..16fe45edfc7267 100644
--- a/lib/spack/llnl/util/tty/log.py
+++ b/lib/spack/llnl/util/tty/log.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/llnl/util/tty/pty.py b/lib/spack/llnl/util/tty/pty.py
index 60d5eee8796b1b..1d9fe724fcde91 100644
--- a/lib/spack/llnl/util/tty/pty.py
+++ b/lib/spack/llnl/util/tty/pty.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/__init__.py b/lib/spack/spack/__init__.py
index 32d8192bcb0ea1..2e2342ac803a71 100644
--- a/lib/spack/spack/__init__.py
+++ b/lib/spack/spack/__init__.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
#: PEP440 canonical ... string
-__version__ = "0.21.1.dev0"
+__version__ = "0.22.0.dev0"
spack_version = __version__
diff --git a/lib/spack/spack/abi.py b/lib/spack/spack/abi.py
index dd12d6dbafe484..33bc6293f5d561 100644
--- a/lib/spack/spack/abi.py
+++ b/lib/spack/spack/abi.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/audit.py b/lib/spack/spack/audit.py
index 970e4a3b367ff9..070062c6bbea7c 100644
--- a/lib/spack/spack/audit.py
+++ b/lib/spack/spack/audit.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -244,7 +244,7 @@ def _search_duplicate_specs_in_externals(error_cls):
+ lines
+ ["as they might result in non-deterministic hashes"]
)
- except TypeError:
+ except (TypeError, AttributeError):
details = []
errors.append(error_cls(summary=error_msg, details=details))
@@ -292,12 +292,6 @@ def _avoid_mismatched_variants(error_cls):
errors = []
packages_yaml = spack.config.CONFIG.get_config("packages")
- def make_error(config_data, summary):
- s = io.StringIO()
- s.write("Occurring in the following file:\n")
- syaml.dump_config(config_data, stream=s, blame=True)
- return error_cls(summary=summary, details=[s.getvalue()])
-
for pkg_name in packages_yaml:
# 'all:' must be more forgiving, since it is setting defaults for everything
if pkg_name == "all" or "variants" not in packages_yaml[pkg_name]:
@@ -317,7 +311,7 @@ def make_error(config_data, summary):
f"Setting a preference for the '{pkg_name}' package to the "
f"non-existing variant '{variant.name}'"
)
- errors.append(make_error(preferences, summary))
+ errors.append(_make_config_error(preferences, summary, error_cls=error_cls))
continue
# Variant cannot accept this value
@@ -329,11 +323,41 @@ def make_error(config_data, summary):
f"Setting the variant '{variant.name}' of the '{pkg_name}' package "
f"to the invalid value '{str(variant)}'"
)
- errors.append(make_error(preferences, summary))
+ errors.append(_make_config_error(preferences, summary, error_cls=error_cls))
+
+ return errors
+
+
+@config_packages
+def _wrongly_named_spec(error_cls):
+ """Warns if the wrong name is used for an external spec"""
+ errors = []
+ packages_yaml = spack.config.CONFIG.get_config("packages")
+ for pkg_name in packages_yaml:
+ if pkg_name == "all":
+ continue
+ externals = packages_yaml[pkg_name].get("externals", [])
+ is_virtual = spack.repo.PATH.is_virtual(pkg_name)
+ for entry in externals:
+ spec = spack.spec.Spec(entry["spec"])
+ regular_pkg_is_wrong = not is_virtual and pkg_name != spec.name
+ virtual_pkg_is_wrong = is_virtual and not any(
+ p.name == spec.name for p in spack.repo.PATH.providers_for(pkg_name)
+ )
+ if regular_pkg_is_wrong or virtual_pkg_is_wrong:
+ summary = f"Wrong external spec detected for '{pkg_name}': {spec}"
+ errors.append(_make_config_error(entry, summary, error_cls=error_cls))
return errors
+def _make_config_error(config_data, summary, error_cls):
+ s = io.StringIO()
+ s.write("Occurring in the following file:\n")
+ syaml.dump_config(config_data, stream=s, blame=True)
+ return error_cls(summary=summary, details=[s.getvalue()])
+
+
#: Sanity checks on package directives
package_directives = AuditClass(
group="packages",
@@ -667,8 +691,8 @@ def _unknown_variants_in_directives(pkgs, error_cls):
pkg_cls = spack.repo.PATH.get_pkg_class(pkg_name)
# Check "conflicts" directive
- for conflict, triggers in pkg_cls.conflicts.items():
- for trigger, _ in triggers:
+ for trigger, conflicts in pkg_cls.conflicts.items():
+ for conflict, _ in conflicts:
vrn = spack.spec.Spec(conflict)
try:
vrn.constrain(trigger)
@@ -694,25 +718,21 @@ def _unknown_variants_in_directives(pkgs, error_cls):
)
# Check "depends_on" directive
- for _, triggers in pkg_cls.dependencies.items():
- triggers = list(triggers)
- for trigger in list(triggers):
- vrn = spack.spec.Spec(trigger)
- errors.extend(
- _analyze_variants_in_directive(
- pkg_cls, vrn, directive="depends_on", error_cls=error_cls
- )
+ for trigger in pkg_cls.dependencies:
+ vrn = spack.spec.Spec(trigger)
+ errors.extend(
+ _analyze_variants_in_directive(
+ pkg_cls, vrn, directive="depends_on", error_cls=error_cls
)
+ )
- # Check "patch" directive
- for _, triggers in pkg_cls.provided.items():
- triggers = [spack.spec.Spec(x) for x in triggers]
- for vrn in triggers:
- errors.extend(
- _analyze_variants_in_directive(
- pkg_cls, vrn, directive="patch", error_cls=error_cls
- )
+ # Check "provides" directive
+ for when_spec in pkg_cls.provided:
+ errors.extend(
+ _analyze_variants_in_directive(
+ pkg_cls, when_spec, directive="provides", error_cls=error_cls
)
+ )
# Check "resource" directive
for vrn in pkg_cls.resources:
@@ -726,47 +746,82 @@ def _unknown_variants_in_directives(pkgs, error_cls):
@package_directives
-def _unknown_variants_in_dependencies(pkgs, error_cls):
- """Report unknown dependencies and wrong variants for dependencies"""
+def _issues_in_depends_on_directive(pkgs, error_cls):
+ """Reports issues with 'depends_on' directives.
+
+ Issues might be unknown dependencies, unknown variants or variant values, or declaration
+ of nested dependencies.
+ """
errors = []
for pkg_name in pkgs:
pkg_cls = spack.repo.PATH.get_pkg_class(pkg_name)
filename = spack.repo.PATH.filename_for_package_name(pkg_name)
- for dependency_name, dependency_data in pkg_cls.dependencies.items():
- # No need to analyze virtual packages
- if spack.repo.PATH.is_virtual(dependency_name):
- continue
- try:
- dependency_pkg_cls = spack.repo.PATH.get_pkg_class(dependency_name)
- except spack.repo.UnknownPackageError:
- # This dependency is completely missing, so report
- # and continue the analysis
- summary = pkg_name + ": unknown package '{0}' in " "'depends_on' directive".format(
- dependency_name
- )
- details = [" in " + filename]
- errors.append(error_cls(summary=summary, details=details))
- continue
+ for when, deps_by_name in pkg_cls.dependencies.items():
+ for dep_name, dep in deps_by_name.items():
+ # Check if there are nested dependencies declared. We don't want directives like:
+ #
+ # depends_on('foo+bar ^fee+baz')
+ #
+ # but we'd like to have two dependencies listed instead.
+ nested_dependencies = dep.spec.dependencies()
+ if nested_dependencies:
+ summary = f"{pkg_name}: nested dependency declaration '{dep.spec}'"
+ ndir = len(nested_dependencies) + 1
+ details = [
+ f"split depends_on('{dep.spec}', when='{when}') into {ndir} directives",
+ f"in {filename}",
+ ]
+ errors.append(error_cls(summary=summary, details=details))
+
+ def check_virtual_with_variants(spec, msg):
+ if not spec.virtual or not spec.variants:
+ return
+ error = error_cls(
+ f"{pkg_name}: {msg}",
+ f"remove variants from '{spec}' in depends_on directive in {filename}",
+ )
+ errors.append(error)
+
+ check_virtual_with_variants(dep.spec, "virtual dependency cannot have variants")
+ check_virtual_with_variants(dep.spec, "virtual when= spec cannot have variants")
+
+ # No need to analyze virtual packages
+ if spack.repo.PATH.is_virtual(dep_name):
+ continue
- for _, dependency_edge in dependency_data.items():
- dependency_variants = dependency_edge.spec.variants
+ # check for unknown dependencies
+ try:
+ dependency_pkg_cls = spack.repo.PATH.get_pkg_class(dep_name)
+ except spack.repo.UnknownPackageError:
+ # This dependency is completely missing, so report
+ # and continue the analysis
+ summary = (
+ f"{pkg_name}: unknown package '{dep_name}' in " "'depends_on' directive"
+ )
+ details = [f" in {filename}"]
+ errors.append(error_cls(summary=summary, details=details))
+ continue
+
+ # check variants
+ dependency_variants = dep.spec.variants
for name, value in dependency_variants.items():
try:
v, _ = dependency_pkg_cls.variants[name]
v.validate_or_raise(value, pkg_cls=dependency_pkg_cls)
except Exception as e:
summary = (
- pkg_name + ": wrong variant used for a "
- "dependency in a 'depends_on' directive"
+ f"{pkg_name}: wrong variant used for dependency in 'depends_on()'"
)
- error_msg = str(e).strip()
+
if isinstance(e, KeyError):
- error_msg = "the variant {0} does not " "exist".format(error_msg)
- error_msg += " in package '" + dependency_name + "'"
+ error_msg = (
+ f"variant {str(e).strip()} does not exist in package {dep_name}"
+ )
+ error_msg += f" in package '{dep_name}'"
errors.append(
- error_cls(summary=summary, details=[error_msg, "in " + filename])
+ error_cls(summary=summary, details=[error_msg, f"in {filename}"])
)
return errors
@@ -833,14 +888,17 @@ def _version_constraints_are_satisfiable_by_some_version_in_repo(pkgs, error_cls
for pkg_name in pkgs:
pkg_cls = spack.repo.PATH.get_pkg_class(pkg_name)
filename = spack.repo.PATH.filename_for_package_name(pkg_name)
+
dependencies_to_check = []
- for dependency_name, dependency_data in pkg_cls.dependencies.items():
- # Skip virtual dependencies for the time being, check on
- # their versions can be added later
- if spack.repo.PATH.is_virtual(dependency_name):
- continue
- dependencies_to_check.extend([edge.spec for edge in dependency_data.values()])
+ for _, deps_by_name in pkg_cls.dependencies.items():
+ for dep_name, dep in deps_by_name.items():
+ # Skip virtual dependencies for the time being, check on
+ # their versions can be added later
+ if spack.repo.PATH.is_virtual(dep_name):
+ continue
+
+ dependencies_to_check.append(dep.spec)
host_architecture = spack.spec.ArchSpec.default_arch()
for s in dependencies_to_check:
@@ -912,39 +970,53 @@ def _named_specs_in_when_arguments(pkgs, error_cls):
for pkg_name in pkgs:
pkg_cls = spack.repo.PATH.get_pkg_class(pkg_name)
+ def _refers_to_pkg(when):
+ when_spec = spack.spec.Spec(when)
+ return when_spec.name is None or when_spec.name == pkg_name
+
+ def _error_items(when_dict):
+ for when, elts in when_dict.items():
+ if not _refers_to_pkg(when):
+ yield when, elts, [f"using '{when}', should be '^{when}'"]
+
def _extracts_errors(triggers, summary):
_errors = []
for trigger in list(triggers):
- when_spec = spack.spec.Spec(trigger)
- if when_spec.name is not None and when_spec.name != pkg_name:
+ if not _refers_to_pkg(trigger):
details = [f"using '{trigger}', should be '^{trigger}'"]
_errors.append(error_cls(summary=summary, details=details))
return _errors
- for dname, triggers in pkg_cls.dependencies.items():
- summary = f"{pkg_name}: wrong 'when=' condition for the '{dname}' dependency"
- errors.extend(_extracts_errors(triggers, summary))
+ for when, dnames, details in _error_items(pkg_cls.dependencies):
+ errors.extend(
+ error_cls(f"{pkg_name}: wrong 'when=' condition for '{dname}' dependency", details)
+ for dname in dnames
+ )
for vname, (variant, triggers) in pkg_cls.variants.items():
summary = f"{pkg_name}: wrong 'when=' condition for the '{vname}' variant"
errors.extend(_extracts_errors(triggers, summary))
- for provided, triggers in pkg_cls.provided.items():
- summary = f"{pkg_name}: wrong 'when=' condition for the '{provided}' virtual"
- errors.extend(_extracts_errors(triggers, summary))
+ for when, providers, details in _error_items(pkg_cls.provided):
+ errors.extend(
+ error_cls(f"{pkg_name}: wrong 'when=' condition for '{provided}' virtual", details)
+ for provided in providers
+ )
- for _, triggers in pkg_cls.requirements.items():
- triggers = [when_spec for when_spec, _, _ in triggers]
- summary = f"{pkg_name}: wrong 'when=' condition in 'requires' directive"
- errors.extend(_extracts_errors(triggers, summary))
+ for when, requirements, details in _error_items(pkg_cls.requirements):
+ errors.append(
+ error_cls(f"{pkg_name}: wrong 'when=' condition in 'requires' directive", details)
+ )
- triggers = list(pkg_cls.patches)
- summary = f"{pkg_name}: wrong 'when=' condition in 'patch' directives"
- errors.extend(_extracts_errors(triggers, summary))
+ for when, _, details in _error_items(pkg_cls.patches):
+ errors.append(
+ error_cls(f"{pkg_name}: wrong 'when=' condition in 'patch' directives", details)
+ )
- triggers = list(pkg_cls.resources)
- summary = f"{pkg_name}: wrong 'when=' condition in 'resource' directives"
- errors.extend(_extracts_errors(triggers, summary))
+ for when, _, details in _error_items(pkg_cls.resources):
+ errors.append(
+ error_cls(f"{pkg_name}: wrong 'when=' condition in 'resource' directives", details)
+ )
return llnl.util.lang.dedupe(errors)
diff --git a/lib/spack/spack/binary_distribution.py b/lib/spack/spack/binary_distribution.py
index 8cfb891640026c..6f401e4a97df7b 100644
--- a/lib/spack/spack/binary_distribution.py
+++ b/lib/spack/spack/binary_distribution.py
@@ -1,11 +1,10 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import codecs
import collections
-import errno
import hashlib
import io
import itertools
@@ -23,9 +22,8 @@
import urllib.parse
import urllib.request
import warnings
-from contextlib import closing, contextmanager
-from gzip import GzipFile
-from typing import Dict, List, NamedTuple, Optional, Set, Tuple
+from contextlib import closing
+from typing import Dict, Iterable, List, NamedTuple, Optional, Set, Tuple
from urllib.error import HTTPError, URLError
import llnl.util.filesystem as fsys
@@ -50,6 +48,7 @@
import spack.stage
import spack.store
import spack.traverse as traverse
+import spack.util.archive
import spack.util.crypto
import spack.util.file_cache as file_cache
import spack.util.gpg
@@ -68,7 +67,10 @@
BUILD_CACHE_RELATIVE_PATH = "build_cache"
BUILD_CACHE_KEYS_RELATIVE_PATH = "_pgp"
-CURRENT_BUILD_CACHE_LAYOUT_VERSION = 1
+
+#: The build cache layout version that this version of Spack creates.
+#: Version 2: includes parent directories of the package prefix in the tarball
+CURRENT_BUILD_CACHE_LAYOUT_VERSION = 2
class BuildCacheDatabase(spack_db.Database):
@@ -230,7 +232,11 @@ def _associate_built_specs_with_mirror(self, cache_key, mirror_url):
)
return
- spec_list = db.query_local(installed=False, in_buildcache=True)
+ spec_list = [
+ s
+ for s in db.query_local(installed=any, in_buildcache=any)
+ if s.external or db.query_local_by_spec_hash(s.dag_hash()).in_buildcache
+ ]
for indexed_spec in spec_list:
dag_hash = indexed_spec.dag_hash()
@@ -1126,195 +1132,46 @@ def generate_key_index(key_prefix, tmpdir=None):
shutil.rmtree(tmpdir)
-@contextmanager
-def gzip_compressed_tarfile(path):
- """Create a reproducible, compressed tarfile"""
- # Create gzip compressed tarball of the install prefix
- # 1) Use explicit empty filename and mtime 0 for gzip header reproducibility.
- # If the filename="" is dropped, Python will use fileobj.name instead.
- # This should effectively mimick `gzip --no-name`.
- # 2) On AMD Ryzen 3700X and an SSD disk, we have the following on compression speed:
- # compresslevel=6 gzip default: llvm takes 4mins, roughly 2.1GB
- # compresslevel=9 python default: llvm takes 12mins, roughly 2.1GB
- # So we follow gzip.
- with open(path, "wb") as f, ChecksumWriter(f) as inner_checksum, closing(
- GzipFile(filename="", mode="wb", compresslevel=6, mtime=0, fileobj=inner_checksum)
- ) as gzip_file, ChecksumWriter(gzip_file) as outer_checksum, tarfile.TarFile(
- name="", mode="w", fileobj=outer_checksum
- ) as tar:
- yield tar, inner_checksum, outer_checksum
-
-
-def _tarinfo_name(absolute_path: str, *, _path=pathlib.PurePath) -> str:
- """Compute tarfile entry name as the relative path from the (system) root."""
- return _path(*_path(absolute_path).parts[1:]).as_posix()
-
-
def tarfile_of_spec_prefix(tar: tarfile.TarFile, prefix: str) -> None:
"""Create a tarfile of an install prefix of a spec. Skips existing buildinfo file.
- Only adds regular files, symlinks and dirs. Skips devices, fifos. Preserves hardlinks.
- Normalizes permissions like git. Tar entries are added in depth-first pre-order, with
- dir entries partitioned by file | dir, and sorted alphabetically, for reproducibility.
- Partitioning ensures only one dir is in memory at a time, and sorting improves compression.
Args:
tar: tarfile object to add files to
prefix: absolute install prefix of spec"""
if not os.path.isabs(prefix) or not os.path.isdir(prefix):
raise ValueError(f"prefix '{prefix}' must be an absolute path to a directory")
- hardlink_to_tarinfo_name: Dict[Tuple[int, int], str] = dict()
stat_key = lambda stat: (stat.st_dev, stat.st_ino)
try: # skip buildinfo file if it exists
files_to_skip = [stat_key(os.lstat(buildinfo_file_name(prefix)))]
+ skip = lambda entry: stat_key(entry.stat(follow_symlinks=False)) in files_to_skip
except OSError:
- files_to_skip = []
-
- dir_stack = [prefix]
- while dir_stack:
- dir = dir_stack.pop()
-
- # Add the dir before its contents
- dir_info = tarfile.TarInfo(_tarinfo_name(dir))
- dir_info.type = tarfile.DIRTYPE
- dir_info.mode = 0o755
- tar.addfile(dir_info)
-
- # Sort by name: reproducible & improves compression
- with os.scandir(dir) as it:
- entries = sorted(it, key=lambda entry: entry.name)
-
- new_dirs = []
- for entry in entries:
- if entry.is_dir(follow_symlinks=False):
- new_dirs.append(entry.path)
- continue
-
- file_info = tarfile.TarInfo(_tarinfo_name(entry.path))
-
- s = entry.stat(follow_symlinks=False)
-
- # Skip existing binary distribution files.
- id = stat_key(s)
- if id in files_to_skip:
- continue
-
- # Normalize the mode
- file_info.mode = 0o644 if s.st_mode & 0o100 == 0 else 0o755
-
- if entry.is_symlink():
- file_info.type = tarfile.SYMTYPE
- file_info.linkname = os.readlink(entry.path)
- tar.addfile(file_info)
-
- elif entry.is_file(follow_symlinks=False):
- # Deduplicate hardlinks
- if s.st_nlink > 1:
- if id in hardlink_to_tarinfo_name:
- file_info.type = tarfile.LNKTYPE
- file_info.linkname = hardlink_to_tarinfo_name[id]
- tar.addfile(file_info)
- continue
- hardlink_to_tarinfo_name[id] = file_info.name
-
- # If file not yet seen, copy it.
- file_info.type = tarfile.REGTYPE
- file_info.size = s.st_size
-
- with open(entry.path, "rb") as f:
- tar.addfile(file_info, f)
-
- dir_stack.extend(reversed(new_dirs)) # we pop, so reverse to stay alphabetical
-
-
-class ChecksumWriter(io.BufferedIOBase):
- """Checksum writer computes a checksum while writing to a file."""
-
- myfileobj = None
-
- def __init__(self, fileobj, algorithm=hashlib.sha256):
- self.fileobj = fileobj
- self.hasher = algorithm()
- self.length = 0
-
- def hexdigest(self):
- return self.hasher.hexdigest()
-
- def write(self, data):
- if isinstance(data, (bytes, bytearray)):
- length = len(data)
- else:
- data = memoryview(data)
- length = data.nbytes
-
- if length > 0:
- self.fileobj.write(data)
- self.hasher.update(data)
-
- self.length += length
-
- return length
-
- def read(self, size=-1):
- raise OSError(errno.EBADF, "read() on write-only object")
-
- def read1(self, size=-1):
- raise OSError(errno.EBADF, "read1() on write-only object")
-
- def peek(self, n):
- raise OSError(errno.EBADF, "peek() on write-only object")
-
- @property
- def closed(self):
- return self.fileobj is None
-
- def close(self):
- fileobj = self.fileobj
- if fileobj is None:
- return
- self.fileobj.close()
- self.fileobj = None
-
- def flush(self):
- self.fileobj.flush()
-
- def fileno(self):
- return self.fileobj.fileno()
-
- def rewind(self):
- raise OSError("Can't rewind while computing checksum")
-
- def readable(self):
- return False
-
- def writable(self):
- return True
-
- def seekable(self):
- return True
-
- def tell(self):
- return self.fileobj.tell()
-
- def seek(self, offset, whence=io.SEEK_SET):
- # In principle forward seek is possible with b"0" padding,
- # but this is not implemented.
- if offset == 0 and whence == io.SEEK_CUR:
- return
- raise OSError("Can't seek while computing checksum")
-
- def readline(self, size=-1):
- raise OSError(errno.EBADF, "readline() on write-only object")
+ skip = lambda entry: False
+
+ spack.util.archive.reproducible_tarfile_from_prefix(
+ tar,
+ prefix,
+ # Spack <= 0.21 did not include parent directories, leading to issues when tarballs are
+ # used in runtimes like AWS lambda.
+ include_parent_directories=True,
+ skip=skip,
+ )
def _do_create_tarball(tarfile_path: str, binaries_dir: str, buildinfo: dict):
- with gzip_compressed_tarfile(tarfile_path) as (tar, inner_checksum, outer_checksum):
+ with spack.util.archive.gzip_compressed_tarfile(tarfile_path) as (
+ tar,
+ inner_checksum,
+ outer_checksum,
+ ):
# Tarball the install prefix
tarfile_of_spec_prefix(tar, binaries_dir)
# Serialize buildinfo for the tarball
bstring = syaml.dump(buildinfo, default_flow_style=True).encode("utf-8")
- tarinfo = tarfile.TarInfo(name=_tarinfo_name(buildinfo_file_name(binaries_dir)))
+ tarinfo = tarfile.TarInfo(
+ name=spack.util.archive.default_path_to_name(buildinfo_file_name(binaries_dir))
+ )
tarinfo.type = tarfile.REGTYPE
tarinfo.size = len(bstring)
tarinfo.mode = 0o644
@@ -1601,14 +1458,14 @@ def _get_valid_spec_file(path: str, max_supported_layout: int) -> Tuple[Dict, in
return spec_dict, layout_version
-def download_tarball(spec, unsigned=False, mirrors_for_spec=None):
+def download_tarball(spec, unsigned: Optional[bool] = False, mirrors_for_spec=None):
"""
Download binary tarball for given package into stage area, returning
path to downloaded tarball if successful, None otherwise.
Args:
spec (spack.spec.Spec): Concrete spec
- unsigned (bool): Whether or not to require signed binaries
+ unsigned: if ``True`` or ``False`` override the mirror signature verification defaults
mirrors_for_spec (list): Optional list of concrete specs and mirrors
obtained by calling binary_distribution.get_mirrors_for_spec().
These will be checked in order first before looking in other
@@ -1629,7 +1486,9 @@ def download_tarball(spec, unsigned=False, mirrors_for_spec=None):
"signature_verified": "true-if-binary-pkg-was-already-verified"
}
"""
- configured_mirrors = spack.mirror.MirrorCollection(binary=True).values()
+ configured_mirrors: Iterable[spack.mirror.Mirror] = spack.mirror.MirrorCollection(
+ binary=True
+ ).values()
if not configured_mirrors:
tty.die("Please add a spack mirror to allow download of pre-compiled packages.")
@@ -1647,8 +1506,16 @@ def download_tarball(spec, unsigned=False, mirrors_for_spec=None):
# mirror for the spec twice though.
try_first = [i["mirror_url"] for i in mirrors_for_spec] if mirrors_for_spec else []
try_next = [i.fetch_url for i in configured_mirrors if i.fetch_url not in try_first]
+ mirror_urls = try_first + try_next
- mirrors = try_first + try_next
+ # TODO: turn `mirrors_for_spec` into a list of Mirror instances, instead of doing that here.
+ def fetch_url_to_mirror(url):
+ for mirror in configured_mirrors:
+ if mirror.fetch_url == url:
+ return mirror
+ return spack.mirror.Mirror(url)
+
+ mirrors = [fetch_url_to_mirror(url) for url in mirror_urls]
tried_to_verify_sigs = []
@@ -1657,14 +1524,17 @@ def download_tarball(spec, unsigned=False, mirrors_for_spec=None):
# we remove support for deprecated spec formats and buildcache layouts.
for try_signed in (True, False):
for mirror in mirrors:
+ # Override mirror's default if
+ currently_unsigned = unsigned if unsigned is not None else not mirror.signed
+
# If it's an OCI index, do things differently, since we cannot compose URLs.
- parsed = urllib.parse.urlparse(mirror)
+ fetch_url = mirror.fetch_url
# TODO: refactor this to some "nice" place.
- if parsed.scheme == "oci":
- ref = spack.oci.image.ImageReference.from_string(mirror[len("oci://") :]).with_tag(
- spack.oci.image.default_tag(spec)
- )
+ if fetch_url.startswith("oci://"):
+ ref = spack.oci.image.ImageReference.from_string(
+ fetch_url[len("oci://") :]
+ ).with_tag(spack.oci.image.default_tag(spec))
# Fetch the manifest
try:
@@ -1701,7 +1571,7 @@ def download_tarball(spec, unsigned=False, mirrors_for_spec=None):
except InvalidMetadataFile as e:
tty.warn(
f"Ignoring binary package for {spec.name}/{spec.dag_hash()[:7]} "
- f"from {mirror} due to invalid metadata file: {e}"
+ f"from {fetch_url} due to invalid metadata file: {e}"
)
local_specfile_stage.destroy()
continue
@@ -1723,13 +1593,16 @@ def download_tarball(spec, unsigned=False, mirrors_for_spec=None):
"tarball_stage": tarball_stage,
"specfile_stage": local_specfile_stage,
"signature_verified": False,
+ "signature_required": not currently_unsigned,
}
else:
ext = "json.sig" if try_signed else "json"
- specfile_path = url_util.join(mirror, BUILD_CACHE_RELATIVE_PATH, specfile_prefix)
+ specfile_path = url_util.join(
+ fetch_url, BUILD_CACHE_RELATIVE_PATH, specfile_prefix
+ )
specfile_url = f"{specfile_path}.{ext}"
- spackfile_url = url_util.join(mirror, BUILD_CACHE_RELATIVE_PATH, tarball)
+ spackfile_url = url_util.join(fetch_url, BUILD_CACHE_RELATIVE_PATH, tarball)
local_specfile_stage = try_fetch(specfile_url)
if local_specfile_stage:
local_specfile_path = local_specfile_stage.save_filename
@@ -1742,21 +1615,21 @@ def download_tarball(spec, unsigned=False, mirrors_for_spec=None):
except InvalidMetadataFile as e:
tty.warn(
f"Ignoring binary package for {spec.name}/{spec.dag_hash()[:7]} "
- f"from {mirror} due to invalid metadata file: {e}"
+ f"from {fetch_url} due to invalid metadata file: {e}"
)
local_specfile_stage.destroy()
continue
- if try_signed and not unsigned:
+ if try_signed and not currently_unsigned:
# If we found a signed specfile at the root, try to verify
# the signature immediately. We will not download the
# tarball if we could not verify the signature.
tried_to_verify_sigs.append(specfile_url)
signature_verified = try_verify(local_specfile_path)
if not signature_verified:
- tty.warn("Failed to verify: {0}".format(specfile_url))
+ tty.warn(f"Failed to verify: {specfile_url}")
- if unsigned or signature_verified or not try_signed:
+ if currently_unsigned or signature_verified or not try_signed:
# We will download the tarball in one of three cases:
# 1. user asked for --no-check-signature
# 2. user didn't ask for --no-check-signature, but we
@@ -1779,6 +1652,7 @@ def download_tarball(spec, unsigned=False, mirrors_for_spec=None):
"tarball_stage": tarball_stage,
"specfile_stage": local_specfile_stage,
"signature_verified": signature_verified,
+ "signature_required": not currently_unsigned,
}
local_specfile_stage.destroy()
@@ -1977,7 +1851,7 @@ def is_backup_file(file):
relocate.relocate_text(text_names, prefix_to_prefix_text)
-def _extract_inner_tarball(spec, filename, extract_to, unsigned, remote_checksum):
+def _extract_inner_tarball(spec, filename, extract_to, signature_required: bool, remote_checksum):
stagepath = os.path.dirname(filename)
spackfile_name = tarball_name(spec, ".spack")
spackfile_path = os.path.join(stagepath, spackfile_name)
@@ -1997,7 +1871,7 @@ def _extract_inner_tarball(spec, filename, extract_to, unsigned, remote_checksum
else:
raise ValueError("Cannot find spec file for {0}.".format(extract_to))
- if not unsigned:
+ if signature_required:
if os.path.exists("%s.asc" % specfile_path):
suppress = config.get("config:suppress_gpg_warnings", False)
try:
@@ -2026,11 +1900,12 @@ def _extract_inner_tarball(spec, filename, extract_to, unsigned, remote_checksum
def _tar_strip_component(tar: tarfile.TarFile, prefix: str):
- """Strip the top-level directory `prefix` from the member names in a tarfile."""
+ """Yield all members of tarfile that start with given prefix, and strip that prefix (including
+ symlinks)"""
# Including trailing /, otherwise we end up with absolute paths.
regex = re.compile(re.escape(prefix) + "/*")
- # Remove the top-level directory from the member (link)names.
+ # Only yield members in the package prefix.
# Note: when a tarfile is created, relative in-prefix symlinks are
# expanded to matching member names of tarfile entries. So, we have
# to ensure that those are updated too.
@@ -2038,15 +1913,17 @@ def _tar_strip_component(tar: tarfile.TarFile, prefix: str):
# them.
for m in tar.getmembers():
result = regex.match(m.name)
- assert result is not None
+ if not result:
+ continue
m.name = m.name[result.end() :]
if m.linkname:
result = regex.match(m.linkname)
if result:
m.linkname = m.linkname[result.end() :]
+ yield m
-def extract_tarball(spec, download_result, unsigned=False, force=False, timer=timer.NULL_TIMER):
+def extract_tarball(spec, download_result, force=False, timer=timer.NULL_TIMER):
"""
extract binary tarball for given package into install area
"""
@@ -2072,7 +1949,8 @@ def extract_tarball(spec, download_result, unsigned=False, force=False, timer=ti
bchecksum = spec_dict["binary_cache_checksum"]
filename = download_result["tarball_stage"].save_filename
- signature_verified = download_result["signature_verified"]
+ signature_verified: bool = download_result["signature_verified"]
+ signature_required: bool = download_result["signature_required"]
tmpdir = None
if layout_version == 0:
@@ -2081,12 +1959,14 @@ def extract_tarball(spec, download_result, unsigned=False, force=False, timer=ti
# and another tarball containing the actual install tree.
tmpdir = tempfile.mkdtemp()
try:
- tarfile_path = _extract_inner_tarball(spec, filename, tmpdir, unsigned, bchecksum)
+ tarfile_path = _extract_inner_tarball(
+ spec, filename, tmpdir, signature_required, bchecksum
+ )
except Exception as e:
_delete_staged_downloads(download_result)
shutil.rmtree(tmpdir)
raise e
- elif layout_version == 1:
+ elif 1 <= layout_version <= 2:
# Newer buildcache layout: the .spack file contains just
# in the install tree, the signature, if it exists, is
# wrapped around the spec.json at the root. If sig verify
@@ -2094,9 +1974,10 @@ def extract_tarball(spec, download_result, unsigned=False, force=False, timer=ti
# the tarball.
tarfile_path = filename
- if not unsigned and not signature_verified:
+ if signature_required and not signature_verified:
raise UnsignedPackageException(
- "To install unsigned packages, use the --no-check-signature option."
+ "To install unsigned packages, use the --no-check-signature option, "
+ "or configure the mirror with signed: false."
)
# compute the sha256 checksum of the tarball
@@ -2113,8 +1994,10 @@ def extract_tarball(spec, download_result, unsigned=False, force=False, timer=ti
try:
with closing(tarfile.open(tarfile_path, "r")) as tar:
# Remove install prefix from tarfil to extract directly into spec.prefix
- _tar_strip_component(tar, prefix=_ensure_common_prefix(tar))
- tar.extractall(path=spec.prefix)
+ tar.extractall(
+ path=spec.prefix,
+ members=_tar_strip_component(tar, prefix=_ensure_common_prefix(tar)),
+ )
except Exception:
shutil.rmtree(spec.prefix, ignore_errors=True)
_delete_staged_downloads(download_result)
@@ -2149,20 +2032,47 @@ def extract_tarball(spec, download_result, unsigned=False, force=False, timer=ti
def _ensure_common_prefix(tar: tarfile.TarFile) -> str:
- # Get the shortest length directory.
- common_prefix = min((e.name for e in tar.getmembers() if e.isdir()), key=len, default=None)
+ # Find the lowest `binary_distribution` file (hard-coded forward slash is on purpose).
+ binary_distribution = min(
+ (
+ e.name
+ for e in tar.getmembers()
+ if e.isfile() and e.name.endswith(".spack/binary_distribution")
+ ),
+ key=len,
+ default=None,
+ )
+
+ if binary_distribution is None:
+ raise ValueError("Tarball is not a Spack package, missing binary_distribution file")
+
+ pkg_path = pathlib.PurePosixPath(binary_distribution).parent.parent
+
+ # Even the most ancient Spack version has required to list the dir of the package itself, so
+ # guard against broken tarballs where `path.parent.parent` is empty.
+ if pkg_path == pathlib.PurePosixPath():
+ raise ValueError("Invalid tarball, missing package prefix dir")
- if common_prefix is None:
- raise ValueError("Tarball does not contain a common prefix")
+ pkg_prefix = str(pkg_path)
- # Validate that each file starts with the prefix
+ # Ensure all tar entries are in the pkg_prefix dir, and if they're not, they should be parent
+ # dirs of it.
+ has_prefix = False
for member in tar.getmembers():
- if not member.name.startswith(common_prefix):
- raise ValueError(
- f"Tarball contains file {member.name} outside of prefix {common_prefix}"
- )
+ stripped = member.name.rstrip("/")
+ if not (
+ stripped.startswith(pkg_prefix) or member.isdir() and pkg_prefix.startswith(stripped)
+ ):
+ raise ValueError(f"Tarball contains file {stripped} outside of prefix {pkg_prefix}")
+ if member.isdir() and stripped == pkg_prefix:
+ has_prefix = True
+
+ # This is technically not required, but let's be defensive about the existence of the package
+ # prefix dir.
+ if not has_prefix:
+ raise ValueError(f"Tarball does not contain a common prefix {pkg_prefix}")
- return common_prefix
+ return pkg_prefix
def install_root_node(spec, unsigned=False, force=False, sha256=None):
@@ -2209,7 +2119,7 @@ def install_root_node(spec, unsigned=False, force=False, sha256=None):
# don't print long padded paths while extracting/relocating binaries
with spack.util.path.filter_padding():
tty.msg('Installing "{0}" from a buildcache'.format(spec.format()))
- extract_tarball(spec, download_result, unsigned, force)
+ extract_tarball(spec, download_result, force)
spack.hooks.post_install(spec, False)
spack.store.STORE.db.add(spec, spack.store.STORE.layout)
diff --git a/lib/spack/spack/bootstrap/__init__.py b/lib/spack/spack/bootstrap/__init__.py
index 1f2f239de3d844..d6844ac14d3b2c 100644
--- a/lib/spack/spack/bootstrap/__init__.py
+++ b/lib/spack/spack/bootstrap/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/bootstrap/_common.py b/lib/spack/spack/bootstrap/_common.py
index 0b8192f77f807d..08bb9377b7c325 100644
--- a/lib/spack/spack/bootstrap/_common.py
+++ b/lib/spack/spack/bootstrap/_common.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,7 @@
import llnl.util.filesystem as fs
from llnl.util import tty
+import spack.platforms
import spack.store
import spack.util.environment
import spack.util.executable
@@ -206,17 +207,19 @@ def _root_spec(spec_str: str) -> str:
"""Add a proper compiler and target to a spec used during bootstrapping.
Args:
- spec_str (str): spec to be bootstrapped. Must be without compiler and target.
+ spec_str: spec to be bootstrapped. Must be without compiler and target.
"""
- # Add a proper compiler hint to the root spec. We use GCC for
- # everything but MacOS and Windows.
- if str(spack.platforms.host()) == "darwin":
+ # Add a compiler requirement to the root spec.
+ platform = str(spack.platforms.host())
+ if platform == "darwin":
spec_str += " %apple-clang"
- elif str(spack.platforms.host()) == "windows":
+ elif platform == "windows":
# TODO (johnwparent): Remove version constraint when clingo patch is up
spec_str += " %msvc@:19.37"
- else:
+ elif platform == "linux":
spec_str += " %gcc"
+ elif platform == "freebsd":
+ spec_str += " %clang"
target = archspec.cpu.host().family
spec_str += f" target={target}"
diff --git a/lib/spack/spack/bootstrap/config.py b/lib/spack/spack/bootstrap/config.py
index 6786bc0d3ead00..10c5a3db4b1cec 100644
--- a/lib/spack/spack/bootstrap/config.py
+++ b/lib/spack/spack/bootstrap/config.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/bootstrap/core.py b/lib/spack/spack/bootstrap/core.py
index 5f73c7bfaf49c8..6ff18db8433997 100644
--- a/lib/spack/spack/bootstrap/core.py
+++ b/lib/spack/spack/bootstrap/core.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -386,7 +386,7 @@ def ensure_module_importable_or_raise(module: str, abstract_spec: Optional[str]
exception_handler = GroupedExceptionHandler()
for current_config in bootstrapping_sources():
- with exception_handler.forward(current_config["name"]):
+ with exception_handler.forward(current_config["name"], Exception):
source_is_enabled_or_raise(current_config)
current_bootstrapper = create_bootstrapper(current_config)
if current_bootstrapper.try_import(module, abstract_spec):
@@ -441,7 +441,7 @@ def ensure_executables_in_path_or_raise(
exception_handler = GroupedExceptionHandler()
for current_config in bootstrapping_sources():
- with exception_handler.forward(current_config["name"]):
+ with exception_handler.forward(current_config["name"], Exception):
source_is_enabled_or_raise(current_config)
current_bootstrapper = create_bootstrapper(current_config)
if current_bootstrapper.try_search_path(executables, abstract_spec):
diff --git a/lib/spack/spack/bootstrap/environment.py b/lib/spack/spack/bootstrap/environment.py
index 2a2fc37b454afa..1f8fbe80974a80 100644
--- a/lib/spack/spack/bootstrap/environment.py
+++ b/lib/spack/spack/bootstrap/environment.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,7 +19,6 @@
import spack.tengine
import spack.util.cpus
import spack.util.executable
-from spack.environment import depfile
from ._common import _root_spec
from .config import root_path, spec_for_current_python, store_path
@@ -86,12 +85,9 @@ def __init__(self) -> None:
super().__init__(self.environment_root())
def update_installations(self) -> None:
- """Update the installations of this environment.
-
- The update is done using a depfile on Linux and macOS, and using the ``install_all``
- method of environments on Windows.
- """
- with tty.SuppressOutput(msg_enabled=False, warn_enabled=False):
+ """Update the installations of this environment."""
+ log_enabled = tty.is_debug() or tty.is_verbose()
+ with tty.SuppressOutput(msg_enabled=log_enabled, warn_enabled=log_enabled):
specs = self.concretize()
if specs:
colorized_specs = [
@@ -100,11 +96,9 @@ def update_installations(self) -> None:
]
tty.msg(f"[BOOTSTRAPPING] Installing dependencies ({', '.join(colorized_specs)})")
self.write(regenerate=False)
- if sys.platform == "win32":
+ with tty.SuppressOutput(msg_enabled=log_enabled, warn_enabled=log_enabled):
self.install_all()
- else:
- self._install_with_depfile()
- self.write(regenerate=True)
+ self.write(regenerate=True)
def update_syspath_and_environ(self) -> None:
"""Update ``sys.path`` and the PATH, PYTHONPATH environment variables to point to
@@ -122,25 +116,6 @@ def update_syspath_and_environ(self) -> None:
+ [str(x) for x in self.pythonpaths()]
)
- def _install_with_depfile(self) -> None:
- model = depfile.MakefileModel.from_env(self)
- template = spack.tengine.make_environment().get_template(
- os.path.join("depfile", "Makefile")
- )
- makefile = self.environment_root() / "Makefile"
- makefile.write_text(template.render(model.to_dict()))
- make = spack.util.executable.which("make")
- kwargs = {}
- if not tty.is_debug():
- kwargs = {"output": os.devnull, "error": os.devnull}
- make(
- "-C",
- str(self.environment_root()),
- "-j",
- str(spack.util.cpus.determine_number_of_jobs(parallel=True)),
- **kwargs,
- )
-
def _write_spack_yaml_file(self) -> None:
tty.msg(
"[BOOTSTRAPPING] Spack has missing dependencies, creating a bootstrapping environment"
@@ -161,7 +136,7 @@ def _write_spack_yaml_file(self) -> None:
def isort_root_spec() -> str:
"""Return the root spec used to bootstrap isort"""
- return _root_spec("py-isort@4.3.5:")
+ return _root_spec("py-isort@5")
def mypy_root_spec() -> str:
diff --git a/lib/spack/spack/bootstrap/status.py b/lib/spack/spack/bootstrap/status.py
index 39caa9eac261f6..37b6bc37da925e 100644
--- a/lib/spack/spack/bootstrap/status.py
+++ b/lib/spack/spack/bootstrap/status.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -66,7 +66,6 @@ def _core_requirements() -> List[RequiredResponseType]:
_core_system_exes = {
"make": _missing("make", "required to build software from sources"),
"patch": _missing("patch", "required to patch source code before building"),
- "bash": _missing("bash", "required for Spack compiler wrapper"),
"tar": _missing("tar", "required to manage code archives"),
"gzip": _missing("gzip", "required to compress/decompress code archives"),
"unzip": _missing("unzip", "required to compress/decompress code archives"),
diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py
index 20d8e75f9bc47b..68369cbe059f30 100644
--- a/lib/spack/spack/build_environment.py
+++ b/lib/spack/spack/build_environment.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -217,6 +217,9 @@ def clean_environment():
env.unset("R_HOME")
env.unset("R_ENVIRON")
+ env.unset("LUA_PATH")
+ env.unset("LUA_CPATH")
+
# Affects GNU make, can e.g. indirectly inhibit enabling parallel build
# env.unset('MAKEFLAGS')
@@ -552,58 +555,55 @@ def set_package_py_globals(pkg, context: Context = Context.BUILD):
"""
module = ModuleChangePropagator(pkg)
- m = module
-
if context == Context.BUILD:
- jobs = determine_number_of_jobs(parallel=pkg.parallel)
- m.make_jobs = jobs
-
- # TODO: make these build deps that can be installed if not found.
- m.make = MakeExecutable("make", jobs)
- m.gmake = MakeExecutable("gmake", jobs)
- m.ninja = MakeExecutable("ninja", jobs, supports_jobserver=False)
- # TODO: johnwparent: add package or builder support to define these build tools
- # for now there is no entrypoint for builders to define these on their
- # own
- if sys.platform == "win32":
- m.nmake = Executable("nmake")
- m.msbuild = Executable("msbuild")
- # analog to configure for win32
- m.cscript = Executable("cscript")
-
- # Find the configure script in the archive path
- # Don't use which for this; we want to find it in the current dir.
- m.configure = Executable("./configure")
-
- # Standard CMake arguments
- m.std_cmake_args = spack.build_systems.cmake.CMakeBuilder.std_args(pkg)
- m.std_meson_args = spack.build_systems.meson.MesonBuilder.std_args(pkg)
- m.std_pip_args = spack.build_systems.python.PythonPipBuilder.std_args(pkg)
+ module.std_cmake_args = spack.build_systems.cmake.CMakeBuilder.std_args(pkg)
+ module.std_meson_args = spack.build_systems.meson.MesonBuilder.std_args(pkg)
+ module.std_pip_args = spack.build_systems.python.PythonPipBuilder.std_args(pkg)
+
+ jobs = determine_number_of_jobs(parallel=pkg.parallel)
+ module.make_jobs = jobs
+
+ # TODO: make these build deps that can be installed if not found.
+ module.make = MakeExecutable("make", jobs)
+ module.gmake = MakeExecutable("gmake", jobs)
+ module.ninja = MakeExecutable("ninja", jobs, supports_jobserver=False)
+ # TODO: johnwparent: add package or builder support to define these build tools
+ # for now there is no entrypoint for builders to define these on their
+ # own
+ if sys.platform == "win32":
+ module.nmake = Executable("nmake")
+ module.msbuild = Executable("msbuild")
+ # analog to configure for win32
+ module.cscript = Executable("cscript")
+
+ # Find the configure script in the archive path
+ # Don't use which for this; we want to find it in the current dir.
+ module.configure = Executable("./configure")
# Put spack compiler paths in module scope. (Some packages use it
# in setup_run_environment etc, so don't put it context == build)
link_dir = spack.paths.build_env_path
- m.spack_cc = os.path.join(link_dir, pkg.compiler.link_paths["cc"])
- m.spack_cxx = os.path.join(link_dir, pkg.compiler.link_paths["cxx"])
- m.spack_f77 = os.path.join(link_dir, pkg.compiler.link_paths["f77"])
- m.spack_fc = os.path.join(link_dir, pkg.compiler.link_paths["fc"])
+ module.spack_cc = os.path.join(link_dir, pkg.compiler.link_paths["cc"])
+ module.spack_cxx = os.path.join(link_dir, pkg.compiler.link_paths["cxx"])
+ module.spack_f77 = os.path.join(link_dir, pkg.compiler.link_paths["f77"])
+ module.spack_fc = os.path.join(link_dir, pkg.compiler.link_paths["fc"])
# Useful directories within the prefix are encapsulated in
# a Prefix object.
- m.prefix = pkg.prefix
+ module.prefix = pkg.prefix
# Platform-specific library suffix.
- m.dso_suffix = dso_suffix
+ module.dso_suffix = dso_suffix
def static_to_shared_library(static_lib, shared_lib=None, **kwargs):
- compiler_path = kwargs.get("compiler", m.spack_cc)
+ compiler_path = kwargs.get("compiler", module.spack_cc)
compiler = Executable(compiler_path)
return _static_to_shared_library(
pkg.spec.architecture, compiler, static_lib, shared_lib, **kwargs
)
- m.static_to_shared_library = static_to_shared_library
+ module.static_to_shared_library = static_to_shared_library
module.propagate_changes_to_mro()
@@ -972,8 +972,8 @@ def __init__(self, *specs: spack.spec.Spec, context: Context) -> None:
self.should_set_package_py_globals = (
self.should_setup_dependent_build_env | self.should_setup_run_env | UseMode.ROOT
)
- # In a build context, the root and direct build deps need build-specific globals set.
- self.needs_build_context = UseMode.ROOT | UseMode.BUILDTIME_DIRECT
+ # In a build context, the root needs build-specific globals set.
+ self.needs_build_context = UseMode.ROOT
def set_all_package_py_globals(self):
"""Set the globals in modules of package.py files."""
@@ -1032,6 +1032,11 @@ def get_env_modifications(self) -> EnvironmentModifications:
if id(spec) in self.nodes_in_subdag:
pkg.setup_dependent_run_environment(run_env_mods, spec)
pkg.setup_run_environment(run_env_mods)
+
+ external_env = (dspec.extra_attributes or {}).get("environment", {})
+ if external_env:
+ run_env_mods.extend(spack.schema.environment.parse(external_env))
+
if self.context == Context.BUILD:
# Don't let the runtime environment of comiler like dependencies leak into the
# build env
@@ -1333,7 +1338,7 @@ def make_stack(tb, stack=None):
# don't provide context if the code is actually in the base classes.
obj = frame.f_locals["self"]
func = getattr(obj, tb.tb_frame.f_code.co_name, "")
- if func:
+ if func and hasattr(func, "__qualname__"):
typename, *_ = func.__qualname__.partition(".")
if isinstance(obj, CONTEXT_BASES) and typename not in basenames:
break
diff --git a/lib/spack/spack/build_systems/__init__.py b/lib/spack/spack/build_systems/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/spack/build_systems/__init__.py
+++ b/lib/spack/spack/build_systems/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/_checks.py b/lib/spack/spack/build_systems/_checks.py
index 38fada308f5aed..dfda043fad08ef 100644
--- a/lib/spack/spack/build_systems/_checks.py
+++ b/lib/spack/spack/build_systems/_checks.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/aspell_dict.py b/lib/spack/spack/build_systems/aspell_dict.py
index 1bc8c663f13b4e..e9fc4e14978e9e 100644
--- a/lib/spack/spack/build_systems/aspell_dict.py
+++ b/lib/spack/spack/build_systems/aspell_dict.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/autotools.py b/lib/spack/spack/build_systems/autotools.py
index 760faf307bbc65..d3b7893bfec5e6 100644
--- a/lib/spack/spack/build_systems/autotools.py
+++ b/lib/spack/spack/build_systems/autotools.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/bundle.py b/lib/spack/spack/build_systems/bundle.py
index 403c521968aa85..357513176a58d6 100644
--- a/lib/spack/spack/build_systems/bundle.py
+++ b/lib/spack/spack/build_systems/bundle.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/cached_cmake.py b/lib/spack/spack/build_systems/cached_cmake.py
index d85c2b7e199352..ca9eae52b40400 100644
--- a/lib/spack/spack/build_systems/cached_cmake.py
+++ b/lib/spack/spack/build_systems/cached_cmake.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -9,6 +9,7 @@
import llnl.util.filesystem as fs
import llnl.util.tty as tty
+import spack.build_environment
import spack.builder
from .cmake import CMakeBuilder, CMakePackage
@@ -34,6 +35,11 @@ def cmake_cache_option(name, boolean_value, comment="", force=False):
return 'set({0} {1} CACHE BOOL "{2}"{3})\n'.format(name, value, comment, force_str)
+def cmake_cache_filepath(name, value, comment=""):
+ """Generate a string for a cmake cache variable of type FILEPATH"""
+ return 'set({0} "{1}" CACHE FILEPATH "{2}")\n'.format(name, value, comment)
+
+
class CachedCMakeBuilder(CMakeBuilder):
#: Phases of a Cached CMake package
#: Note: the initconfig phase is used for developer builds as a final phase to stop on
@@ -193,6 +199,8 @@ def initconfig_mpi_entries(self):
mpiexec = "/usr/bin/srun"
else:
mpiexec = os.path.join(spec["slurm"].prefix.bin, "srun")
+ elif hasattr(spec["mpi"].package, "mpiexec"):
+ mpiexec = spec["mpi"].package.mpiexec
else:
mpiexec = os.path.join(spec["mpi"].prefix.bin, "mpirun")
if not os.path.exists(mpiexec):
@@ -257,6 +265,15 @@ def initconfig_hardware_entries(self):
entries.append(
cmake_cache_path("HIP_CXX_COMPILER", "{0}".format(self.spec["hip"].hipcc))
)
+ llvm_bin = spec["llvm-amdgpu"].prefix.bin
+ llvm_prefix = spec["llvm-amdgpu"].prefix
+ # Some ROCm systems seem to point to //rocm-/ and
+ # others point to //rocm-/llvm
+ if os.path.basename(os.path.normpath(llvm_prefix)) != "llvm":
+ llvm_bin = os.path.join(llvm_prefix, "llvm/bin/")
+ entries.append(
+ cmake_cache_filepath("CMAKE_HIP_COMPILER", os.path.join(llvm_bin, "clang++"))
+ )
archs = self.spec.variants["amdgpu_target"].value
if archs[0] != "none":
arch_str = ";".join(archs)
@@ -271,13 +288,29 @@ def initconfig_hardware_entries(self):
def std_initconfig_entries(self):
cmake_prefix_path_env = os.environ["CMAKE_PREFIX_PATH"]
cmake_prefix_path = cmake_prefix_path_env.replace(os.pathsep, ";")
+ cmake_rpaths_env = spack.build_environment.get_rpaths(self.pkg)
+ cmake_rpaths_path = ";".join(cmake_rpaths_env)
+ complete_rpath_list = cmake_rpaths_path
+ if "SPACK_COMPILER_EXTRA_RPATHS" in os.environ:
+ spack_extra_rpaths_env = os.environ["SPACK_COMPILER_EXTRA_RPATHS"]
+ spack_extra_rpaths_path = spack_extra_rpaths_env.replace(os.pathsep, ";")
+ complete_rpath_list = "{0};{1}".format(complete_rpath_list, spack_extra_rpaths_path)
+
+ if "SPACK_COMPILER_IMPLICIT_RPATHS" in os.environ:
+ spack_implicit_rpaths_env = os.environ["SPACK_COMPILER_IMPLICIT_RPATHS"]
+ spack_implicit_rpaths_path = spack_implicit_rpaths_env.replace(os.pathsep, ";")
+ complete_rpath_list = "{0};{1}".format(complete_rpath_list, spack_implicit_rpaths_path)
+
return [
"#------------------{0}".format("-" * 60),
"# !!!! This is a generated file, edit at own risk !!!!",
"#------------------{0}".format("-" * 60),
"# CMake executable path: {0}".format(self.pkg.spec["cmake"].command.path),
"#------------------{0}\n".format("-" * 60),
- cmake_cache_path("CMAKE_PREFIX_PATH", cmake_prefix_path),
+ cmake_cache_string("CMAKE_PREFIX_PATH", cmake_prefix_path),
+ cmake_cache_string("CMAKE_INSTALL_RPATH_USE_LINK_PATH", "ON"),
+ cmake_cache_string("CMAKE_BUILD_RPATH", complete_rpath_list),
+ cmake_cache_string("CMAKE_INSTALL_RPATH", complete_rpath_list),
self.define_cmake_cache_from_variant("CMAKE_BUILD_TYPE", "build_type"),
]
diff --git a/lib/spack/spack/build_systems/cargo.py b/lib/spack/spack/build_systems/cargo.py
new file mode 100644
index 00000000000000..0aa31b48555a97
--- /dev/null
+++ b/lib/spack/spack/build_systems/cargo.py
@@ -0,0 +1,89 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+import inspect
+
+import llnl.util.filesystem as fs
+
+import spack.builder
+import spack.package_base
+from spack.directives import build_system, depends_on
+from spack.multimethod import when
+
+from ._checks import BaseBuilder, execute_install_time_tests
+
+
+class CargoPackage(spack.package_base.PackageBase):
+ """Specialized class for packages built using a Makefiles."""
+
+ #: This attribute is used in UI queries that need to know the build
+ #: system base class
+ build_system_class = "CargoPackage"
+
+ build_system("cargo")
+
+ with when("build_system=cargo"):
+ depends_on("rust", type="build")
+
+
+@spack.builder.builder("cargo")
+class CargoBuilder(BaseBuilder):
+ """The Cargo builder encodes the most common way of building software with
+ a rust Cargo.toml file. It has two phases that can be overridden, if need be:
+
+ 1. :py:meth:`~.CargoBuilder.build`
+ 2. :py:meth:`~.CargoBuilder.install`
+
+ For a finer tuning you may override:
+
+ +-----------------------------------------------+----------------------+
+ | **Method** | **Purpose** |
+ +===============================================+======================+
+ | :py:meth:`~.CargoBuilder.build_args` | Specify arguments |
+ | | to ``cargo install`` |
+ +-----------------------------------------------+----------------------+
+ | :py:meth:`~.CargoBuilder.check_args` | Specify arguments |
+ | | to ``cargo test`` |
+ +-----------------------------------------------+----------------------+
+ """
+
+ phases = ("build", "install")
+
+ #: Callback names for install-time test
+ install_time_test_callbacks = ["check"]
+
+ @property
+ def build_directory(self):
+ """Return the directory containing the main Cargo.toml."""
+ return self.pkg.stage.source_path
+
+ @property
+ def build_args(self):
+ """Arguments for ``cargo build``."""
+ return []
+
+ @property
+ def check_args(self):
+ """Argument for ``cargo test`` during check phase"""
+ return []
+
+ def build(self, pkg, spec, prefix):
+ """Runs ``cargo install`` in the source directory"""
+ with fs.working_dir(self.build_directory):
+ inspect.getmodule(pkg).cargo(
+ "install", "--root", "out", "--path", ".", *self.build_args
+ )
+
+ def install(self, pkg, spec, prefix):
+ """Copy build files into package prefix."""
+ with fs.working_dir(self.build_directory):
+ fs.install_tree("out", prefix)
+
+ spack.builder.run_after("install")(execute_install_time_tests)
+
+ def check(self):
+ """Run "cargo test"."""
+ with fs.working_dir(self.build_directory):
+ inspect.getmodule(self.pkg).cargo("test", *self.check_args)
diff --git a/lib/spack/spack/build_systems/cmake.py b/lib/spack/spack/build_systems/cmake.py
index 1859e40fe51d20..d66d531694b4b0 100644
--- a/lib/spack/spack/build_systems/cmake.py
+++ b/lib/spack/spack/build_systems/cmake.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,7 @@
import spack.build_environment
import spack.builder
+import spack.deptypes as dt
import spack.package_base
from spack.directives import build_system, conflicts, depends_on, variant
from spack.multimethod import when
@@ -31,8 +32,68 @@ def _extract_primary_generator(generator):
primary generator from the generator string which may contain an
optional secondary generator.
"""
- primary_generator = _primary_generator_extractor.match(generator).group(1)
- return primary_generator
+ return _primary_generator_extractor.match(generator).group(1)
+
+
+def _maybe_set_python_hints(pkg: spack.package_base.PackageBase, args: List[str]) -> None:
+ """Set the PYTHON_EXECUTABLE, Python_EXECUTABLE, and Python3_EXECUTABLE CMake variables
+ if the package has Python as build or link dep and ``find_python_hints`` is set to True. See
+ ``find_python_hints`` for context."""
+ if not getattr(pkg, "find_python_hints", False):
+ return
+ pythons = pkg.spec.dependencies("python", dt.BUILD | dt.LINK)
+ if len(pythons) != 1:
+ return
+ try:
+ python_executable = pythons[0].package.command.path
+ except RuntimeError:
+ return
+
+ args.extend(
+ [
+ CMakeBuilder.define("PYTHON_EXECUTABLE", python_executable),
+ CMakeBuilder.define("Python_EXECUTABLE", python_executable),
+ CMakeBuilder.define("Python3_EXECUTABLE", python_executable),
+ ]
+ )
+
+
+def _conditional_cmake_defaults(pkg: spack.package_base.PackageBase, args: List[str]) -> None:
+ """Set a few default defines for CMake, depending on its version."""
+ cmakes = pkg.spec.dependencies("cmake", dt.BUILD)
+
+ if len(cmakes) != 1:
+ return
+
+ cmake = cmakes[0]
+
+ # CMAKE_INTERPROCEDURAL_OPTIMIZATION only exists for CMake >= 3.9
+ try:
+ ipo = pkg.spec.variants["ipo"].value
+ except KeyError:
+ ipo = False
+
+ if cmake.satisfies("@3.9:"):
+ args.append(CMakeBuilder.define("CMAKE_INTERPROCEDURAL_OPTIMIZATION", ipo))
+
+ # Disable Package Registry: export(PACKAGE) may put files in the user's home directory, and
+ # find_package may search there. This is not what we want.
+
+ # Do not populate CMake User Package Registry
+ if cmake.satisfies("@3.15:"):
+ # see https://cmake.org/cmake/help/latest/policy/CMP0090.html
+ args.append(CMakeBuilder.define("CMAKE_POLICY_DEFAULT_CMP0090", "NEW"))
+ elif cmake.satisfies("@3.1:"):
+ # see https://cmake.org/cmake/help/latest/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.html
+ args.append(CMakeBuilder.define("CMAKE_EXPORT_NO_PACKAGE_REGISTRY", True))
+
+ # Do not use CMake User/System Package Registry
+ # https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#disabling-the-package-registry
+ if cmake.satisfies("@3.16:"):
+ args.append(CMakeBuilder.define("CMAKE_FIND_USE_PACKAGE_REGISTRY", False))
+ elif cmake.satisfies("@3.1:3.15"):
+ args.append(CMakeBuilder.define("CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY", False))
+ args.append(CMakeBuilder.define("CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY", False))
def generator(*names: str, default: Optional[str] = None):
@@ -86,6 +147,13 @@ class CMakePackage(spack.package_base.PackageBase):
#: Legacy buildsystem attribute used to deserialize and install old specs
legacy_buildsystem = "cmake"
+ #: When this package depends on Python and ``find_python_hints`` is set to True, pass the
+ #: defines {Python3,Python,PYTHON}_EXECUTABLE explicitly, so that CMake locates the right
+ #: Python in its builtin FindPython3, FindPython, and FindPythonInterp modules. Spack does
+ #: CMake's job because CMake's modules by default only search for Python versions known at the
+ #: time of release.
+ find_python_hints = True
+
build_system("cmake")
with when("build_system=cmake"):
@@ -241,9 +309,9 @@ def std_cmake_args(self):
"""Standard cmake arguments provided as a property for
convenience of package writers
"""
- std_cmake_args = CMakeBuilder.std_args(self.pkg, generator=self.generator)
- std_cmake_args += getattr(self.pkg, "cmake_flag_args", [])
- return std_cmake_args
+ args = CMakeBuilder.std_args(self.pkg, generator=self.generator)
+ args += getattr(self.pkg, "cmake_flag_args", [])
+ return args
@staticmethod
def std_args(pkg, generator=None):
@@ -263,11 +331,6 @@ def std_args(pkg, generator=None):
except KeyError:
build_type = "RelWithDebInfo"
- try:
- ipo = pkg.spec.variants["ipo"].value
- except KeyError:
- ipo = False
-
define = CMakeBuilder.define
args = [
"-G",
@@ -276,10 +339,6 @@ def std_args(pkg, generator=None):
define("CMAKE_BUILD_TYPE", build_type),
]
- # CMAKE_INTERPROCEDURAL_OPTIMIZATION only exists for CMake >= 3.9
- if pkg.spec.satisfies("^cmake@3.9:"):
- args.append(define("CMAKE_INTERPROCEDURAL_OPTIMIZATION", ipo))
-
if primary_generator == "Unix Makefiles":
args.append(define("CMAKE_VERBOSE_MAKEFILE", True))
@@ -288,6 +347,9 @@ def std_args(pkg, generator=None):
[define("CMAKE_FIND_FRAMEWORK", "LAST"), define("CMAKE_FIND_APPBUNDLE", "LAST")]
)
+ _conditional_cmake_defaults(pkg, args)
+ _maybe_set_python_hints(pkg, args)
+
# Set up CMake rpath
args.extend(
[
diff --git a/lib/spack/spack/build_systems/cuda.py b/lib/spack/spack/build_systems/cuda.py
index 4a07c8b2c4cf44..4311df3a1746c7 100644
--- a/lib/spack/spack/build_systems/cuda.py
+++ b/lib/spack/spack/build_systems/cuda.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -136,12 +136,12 @@ def cuda_flags(arch_list):
conflicts("%gcc@11:", when="+cuda ^cuda@:11.4.0")
conflicts("%gcc@11.2:", when="+cuda ^cuda@:11.5")
conflicts("%gcc@12:", when="+cuda ^cuda@:11.8")
- conflicts("%gcc@13:", when="+cuda ^cuda@:12.1")
+ conflicts("%gcc@13:", when="+cuda ^cuda@:12.3")
conflicts("%clang@12:", when="+cuda ^cuda@:11.4.0")
conflicts("%clang@13:", when="+cuda ^cuda@:11.5")
conflicts("%clang@14:", when="+cuda ^cuda@:11.7")
conflicts("%clang@15:", when="+cuda ^cuda@:12.0")
- conflicts("%clang@16:", when="+cuda ^cuda@:12.1")
+ conflicts("%clang@16:", when="+cuda ^cuda@:12.3")
# https://gist.github.com/ax3l/9489132#gistcomment-3860114
conflicts("%gcc@10", when="+cuda ^cuda@:11.4.0")
diff --git a/lib/spack/spack/build_systems/generic.py b/lib/spack/spack/build_systems/generic.py
index 1e5759ae5669c4..5a0446a4ad6e7f 100644
--- a/lib/spack/spack/build_systems/generic.py
+++ b/lib/spack/spack/build_systems/generic.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/gnu.py b/lib/spack/spack/build_systems/gnu.py
index 77adfcb9c22e21..2d747c59c53385 100644
--- a/lib/spack/spack/build_systems/gnu.py
+++ b/lib/spack/spack/build_systems/gnu.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/go.py b/lib/spack/spack/build_systems/go.py
new file mode 100644
index 00000000000000..95472642f68695
--- /dev/null
+++ b/lib/spack/spack/build_systems/go.py
@@ -0,0 +1,98 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+import inspect
+
+import llnl.util.filesystem as fs
+
+import spack.builder
+import spack.package_base
+from spack.directives import build_system, extends
+from spack.multimethod import when
+
+from ._checks import BaseBuilder, execute_install_time_tests
+
+
+class GoPackage(spack.package_base.PackageBase):
+ """Specialized class for packages built using the Go toolchain."""
+
+ #: This attribute is used in UI queries that need to know the build
+ #: system base class
+ build_system_class = "GoPackage"
+
+ #: Legacy buildsystem attribute used to deserialize and install old specs
+ legacy_buildsystem = "go"
+
+ build_system("go")
+
+ with when("build_system=go"):
+ # TODO: this seems like it should be depends_on, see
+ # setup_dependent_build_environment in go for why I kept it like this
+ extends("go@1.14:", type="build")
+
+
+@spack.builder.builder("go")
+class GoBuilder(BaseBuilder):
+ """The Go builder encodes the most common way of building software with
+ a golang go.mod file. It has two phases that can be overridden, if need be:
+
+ 1. :py:meth:`~.GoBuilder.build`
+ 2. :py:meth:`~.GoBuilder.install`
+
+ For a finer tuning you may override:
+
+ +-----------------------------------------------+--------------------+
+ | **Method** | **Purpose** |
+ +===============================================+====================+
+ | :py:meth:`~.GoBuilder.build_args` | Specify arguments |
+ | | to ``go build`` |
+ +-----------------------------------------------+--------------------+
+ | :py:meth:`~.GoBuilder.check_args` | Specify arguments |
+ | | to ``go test`` |
+ +-----------------------------------------------+--------------------+
+ """
+
+ phases = ("build", "install")
+
+ #: Callback names for install-time test
+ install_time_test_callbacks = ["check"]
+
+ def setup_build_environment(self, env):
+ env.set("GO111MODULE", "on")
+ env.set("GOTOOLCHAIN", "local")
+
+ @property
+ def build_directory(self):
+ """Return the directory containing the main go.mod."""
+ return self.pkg.stage.source_path
+
+ @property
+ def build_args(self):
+ """Arguments for ``go build``."""
+ # Pass ldflags -s = --strip-all and -w = --no-warnings by default
+ return ["-ldflags", "-s -w", "-o", f"{self.pkg.name}"]
+
+ @property
+ def check_args(self):
+ """Argument for ``go test`` during check phase"""
+ return []
+
+ def build(self, pkg, spec, prefix):
+ """Runs ``go build`` in the source directory"""
+ with fs.working_dir(self.build_directory):
+ inspect.getmodule(pkg).go("build", *self.build_args)
+
+ def install(self, pkg, spec, prefix):
+ """Install built binaries into prefix bin."""
+ with fs.working_dir(self.build_directory):
+ fs.mkdirp(prefix.bin)
+ fs.install(pkg.name, prefix.bin)
+
+ spack.builder.run_after("install")(execute_install_time_tests)
+
+ def check(self):
+ """Run ``go test .`` in the source directory"""
+ with fs.working_dir(self.build_directory):
+ inspect.getmodule(self.pkg).go("test", *self.check_args)
diff --git a/lib/spack/spack/build_systems/intel.py b/lib/spack/spack/build_systems/intel.py
index dbb8313acfef04..0dfe4ede2606df 100644
--- a/lib/spack/spack/build_systems/intel.py
+++ b/lib/spack/spack/build_systems/intel.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/lua.py b/lib/spack/spack/build_systems/lua.py
index ad67f50825e60b..d862604e9015ed 100644
--- a/lib/spack/spack/build_systems/lua.py
+++ b/lib/spack/spack/build_systems/lua.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/makefile.py b/lib/spack/spack/build_systems/makefile.py
index 25eec07095b176..baae2308a2fcbb 100644
--- a/lib/spack/spack/build_systems/makefile.py
+++ b/lib/spack/spack/build_systems/makefile.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/maven.py b/lib/spack/spack/build_systems/maven.py
index 4b63efbdf6d4f6..809258d5dff2c5 100644
--- a/lib/spack/spack/build_systems/maven.py
+++ b/lib/spack/spack/build_systems/maven.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/meson.py b/lib/spack/spack/build_systems/meson.py
index 38939dc7adc323..2c2bc0d1a0ca40 100644
--- a/lib/spack/spack/build_systems/meson.py
+++ b/lib/spack/spack/build_systems/meson.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -149,7 +149,7 @@ def std_args(pkg):
else:
default_library = "shared"
- args = [
+ return [
"-Dprefix={0}".format(pkg.prefix),
# If we do not specify libdir explicitly, Meson chooses something
# like lib/x86_64-linux-gnu, which causes problems when trying to
@@ -163,8 +163,6 @@ def std_args(pkg):
"-Dwrap_mode=nodownload",
]
- return args
-
@property
def build_dirname(self):
"""Returns the directory name to use when building the package."""
diff --git a/lib/spack/spack/build_systems/msbuild.py b/lib/spack/spack/build_systems/msbuild.py
index 90c4018de8169e..4de8c86e0ac28c 100644
--- a/lib/spack/spack/build_systems/msbuild.py
+++ b/lib/spack/spack/build_systems/msbuild.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/nmake.py b/lib/spack/spack/build_systems/nmake.py
index 3349ff892966f7..b9148dcd9fbb18 100644
--- a/lib/spack/spack/build_systems/nmake.py
+++ b/lib/spack/spack/build_systems/nmake.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/octave.py b/lib/spack/spack/build_systems/octave.py
index ba0770812ee738..64958ce94179a9 100644
--- a/lib/spack/spack/build_systems/octave.py
+++ b/lib/spack/spack/build_systems/octave.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/oneapi.py b/lib/spack/spack/build_systems/oneapi.py
index 4c432c0cace6d6..f1e63761bc97b0 100644
--- a/lib/spack/spack/build_systems/oneapi.py
+++ b/lib/spack/spack/build_systems/oneapi.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -7,9 +7,9 @@
import os
import platform
import shutil
-from os.path import basename, dirname, isdir
+from os.path import basename, isdir
-from llnl.util.filesystem import find_headers, find_libraries, join_path, mkdirp
+from llnl.util.filesystem import HeaderList, find_libraries, join_path, mkdirp
from llnl.util.link_tree import LinkTree
from spack.directives import conflicts, variant
@@ -55,10 +55,21 @@ def component_dir(self):
"""Subdirectory for this component in the install prefix."""
raise NotImplementedError
+ @property
+ def v2_layout_versions(self):
+ """Version that implements the v2 directory layout."""
+ raise NotImplementedError
+
+ @property
+ def v2_layout(self):
+ """Returns true if this version implements the v2 directory layout."""
+ return self.spec.satisfies(self.v2_layout_versions)
+
@property
def component_prefix(self):
"""Path to component //."""
- return self.prefix.join(join_path(self.component_dir, self.spec.version))
+ v = self.spec.version.up_to(2) if self.v2_layout else self.spec.version
+ return self.prefix.join(self.component_dir).join(str(v))
@property
def env_script_args(self):
@@ -112,8 +123,9 @@ def install_component(self, installer_path):
shutil.rmtree("/var/intel/installercache", ignore_errors=True)
# Some installers have a bug and do not return an error code when failing
- if not isdir(join_path(self.prefix, self.component_dir)):
- raise RuntimeError("install failed")
+ install_dir = self.component_prefix
+ if not isdir(install_dir):
+ raise RuntimeError("install failed to directory: {0}".format(install_dir))
def setup_run_environment(self, env):
"""Adds environment variables to the generated module file.
@@ -128,7 +140,7 @@ def setup_run_environment(self, env):
if "~envmods" not in self.spec:
env.extend(
EnvironmentModifications.from_sourcing_file(
- join_path(self.component_prefix, "env", "vars.sh"), *self.env_script_args
+ self.component_prefix.env.join("vars.sh"), *self.env_script_args
)
)
@@ -167,16 +179,40 @@ class IntelOneApiLibraryPackage(IntelOneApiPackage):
"""
+ def header_directories(self, dirs):
+ h = HeaderList([])
+ h.directories = dirs
+ return h
+
+ @property
+ def headers(self):
+ return self.header_directories(
+ [self.component_prefix.include, self.component_prefix.include.join(self.component_dir)]
+ )
+
+ @property
+ def libs(self):
+ # for v2_layout all libraries are in the top level, v1 sometimes put them in intel64
+ return find_libraries("*", root=self.component_prefix.lib, recursive=not self.v2_layout)
+
+
+class IntelOneApiLibraryPackageWithSdk(IntelOneApiPackage):
+ """Base class for Intel oneAPI library packages with SDK components.
+
+ Contains some convenient default implementations for libraries
+ that expose functionality in sdk subdirectories.
+ Implement the method directly in the package if something
+ different is needed.
+
+ """
+
@property
def headers(self):
- include_path = join_path(self.component_prefix, "include")
- return find_headers("*", include_path, recursive=True)
+ return self.header_directories([self.component_prefix.sdk.include])
@property
def libs(self):
- lib_path = join_path(self.component_prefix, "lib", "intel64")
- lib_path = lib_path if isdir(lib_path) else dirname(lib_path)
- return find_libraries("*", root=lib_path, shared=True, recursive=True)
+ return find_libraries("*", self.component_prefix.sdk.lib64)
class IntelOneApiStaticLibraryList:
diff --git a/lib/spack/spack/build_systems/perl.py b/lib/spack/spack/build_systems/perl.py
index 53787316c45d92..ff28bfe672a898 100644
--- a/lib/spack/spack/build_systems/perl.py
+++ b/lib/spack/spack/build_systems/perl.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -10,13 +10,12 @@
import spack.builder
import spack.package_base
from spack.directives import build_system, extends
-from spack.package_base import PackageBase
from spack.util.executable import Executable
from ._checks import BaseBuilder, execute_build_time_tests
-class PerlPackage(PackageBase):
+class PerlPackage(spack.package_base.PackageBase):
"""Specialized class for packages that are built using Perl."""
#: This attribute is used in UI queries that need to know the build
@@ -61,6 +60,30 @@ class PerlBuilder(BaseBuilder):
#: Callback names for build-time test
build_time_test_callbacks = ["check"]
+ @property
+ def build_method(self):
+ """Searches the package for either a Makefile.PL or Build.PL.
+
+ Raises:
+ RuntimeError: if neither Makefile.PL nor Build.PL exist
+ """
+ if os.path.isfile("Makefile.PL"):
+ build_method = "Makefile.PL"
+ elif os.path.isfile("Build.PL"):
+ build_method = "Build.PL"
+ else:
+ raise RuntimeError("Unknown build_method for perl package")
+ return build_method
+
+ @property
+ def build_executable(self):
+ """Returns the executable method to build the perl package"""
+ if self.build_method == "Makefile.PL":
+ build_executable = inspect.getmodule(self.pkg).make
+ elif self.build_method == "Build.PL":
+ build_executable = Executable(os.path.join(self.pkg.stage.source_path, "Build"))
+ return build_executable
+
def configure_args(self):
"""List of arguments passed to :py:meth:`~.PerlBuilder.configure`.
@@ -73,19 +96,7 @@ def configure(self, pkg, spec, prefix):
"""Run Makefile.PL or Build.PL with arguments consisting of
an appropriate installation base directory followed by the
list returned by :py:meth:`~.PerlBuilder.configure_args`.
-
- Raises:
- RuntimeError: if neither Makefile.PL nor Build.PL exist
"""
- if os.path.isfile("Makefile.PL"):
- self.build_method = "Makefile.PL"
- self.build_executable = inspect.getmodule(self.pkg).make
- elif os.path.isfile("Build.PL"):
- self.build_method = "Build.PL"
- self.build_executable = Executable(os.path.join(self.pkg.stage.source_path, "Build"))
- else:
- raise RuntimeError("Unknown build_method for perl package")
-
if self.build_method == "Makefile.PL":
options = ["Makefile.PL", "INSTALL_BASE={0}".format(prefix)]
elif self.build_method == "Build.PL":
diff --git a/lib/spack/spack/build_systems/python.py b/lib/spack/spack/build_systems/python.py
index 521994b1ec95f7..39dc7519e8c63e 100644
--- a/lib/spack/spack/build_systems/python.py
+++ b/lib/spack/spack/build_systems/python.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,13 +6,14 @@
import os
import re
import shutil
-from typing import Optional
+from typing import Iterable, List, Mapping, Optional
import archspec
import llnl.util.filesystem as fs
import llnl.util.lang as lang
import llnl.util.tty as tty
+from llnl.util.filesystem import HeaderList, LibraryList
import spack.builder
import spack.config
@@ -25,14 +26,18 @@
from spack.directives import build_system, depends_on, extends, maintainers
from spack.error import NoHeadersError, NoLibrariesError
from spack.install_test import test_part
+from spack.spec import Spec
+from spack.util.prefix import Prefix
from ._checks import BaseBuilder, execute_install_time_tests
-def _flatten_dict(dictionary):
+def _flatten_dict(dictionary: Mapping[str, object]) -> Iterable[str]:
"""Iterable that yields KEY=VALUE paths through a dictionary.
+
Args:
dictionary: Possibly nested dictionary of arbitrary keys and values.
+
Yields:
A single path through the dictionary.
"""
@@ -50,7 +55,7 @@ class PythonExtension(spack.package_base.PackageBase):
maintainers("adamjstewart")
@property
- def import_modules(self):
+ def import_modules(self) -> Iterable[str]:
"""Names of modules that the Python package provides.
These are used to test whether or not the installation succeeded.
@@ -65,7 +70,7 @@ def import_modules(self):
detected, this property can be overridden by the package.
Returns:
- list: list of strings of module names
+ List of strings of module names.
"""
modules = []
pkg = self.spec["python"].package
@@ -102,14 +107,14 @@ def import_modules(self):
return modules
@property
- def skip_modules(self):
+ def skip_modules(self) -> Iterable[str]:
"""Names of modules that should be skipped when running tests.
These are a subset of import_modules. If a module has submodules,
they are skipped as well (meaning a.b is skipped if a is contained).
Returns:
- list: list of strings of module names
+ List of strings of module names.
"""
return []
@@ -185,12 +190,12 @@ def remove_files_from_view(self, view, merge_map):
view.remove_files(to_remove)
- def test_imports(self):
+ def test_imports(self) -> None:
"""Attempts to import modules of the installed package."""
# Make sure we are importing the installed modules,
# not the ones in the source directory
- python = inspect.getmodule(self).python
+ python = inspect.getmodule(self).python # type: ignore[union-attr]
for module in self.import_modules:
with test_part(
self,
@@ -315,24 +320,27 @@ class PythonPackage(PythonExtension):
py_namespace: Optional[str] = None
@lang.classproperty
- def homepage(cls):
+ def homepage(cls) -> Optional[str]: # type: ignore[override]
if cls.pypi:
name = cls.pypi.split("/")[0]
- return "https://pypi.org/project/" + name + "/"
+ return f"https://pypi.org/project/{name}/"
+ return None
@lang.classproperty
- def url(cls):
+ def url(cls) -> Optional[str]:
if cls.pypi:
- return "https://files.pythonhosted.org/packages/source/" + cls.pypi[0] + "/" + cls.pypi
+ return f"https://files.pythonhosted.org/packages/source/{cls.pypi[0]}/{cls.pypi}"
+ return None
@lang.classproperty
- def list_url(cls):
+ def list_url(cls) -> Optional[str]: # type: ignore[override]
if cls.pypi:
name = cls.pypi.split("/")[0]
- return "https://pypi.org/simple/" + name + "/"
+ return f"https://pypi.org/simple/{name}/"
+ return None
@property
- def headers(self):
+ def headers(self) -> HeaderList:
"""Discover header files in platlib."""
# Remove py- prefix in package name
@@ -350,7 +358,7 @@ def headers(self):
raise NoHeadersError(msg.format(self.spec.name, include, platlib))
@property
- def libs(self):
+ def libs(self) -> LibraryList:
"""Discover libraries in platlib."""
# Remove py- prefix in package name
@@ -384,7 +392,7 @@ class PythonPipBuilder(BaseBuilder):
install_time_test_callbacks = ["test"]
@staticmethod
- def std_args(cls):
+ def std_args(cls) -> List[str]:
return [
# Verbose
"-vvv",
@@ -409,7 +417,7 @@ def std_args(cls):
]
@property
- def build_directory(self):
+ def build_directory(self) -> str:
"""The root directory of the Python package.
This is usually the directory containing one of the following files:
@@ -420,51 +428,51 @@ def build_directory(self):
"""
return self.pkg.stage.source_path
- def config_settings(self, spec, prefix):
+ def config_settings(self, spec: Spec, prefix: Prefix) -> Mapping[str, object]:
"""Configuration settings to be passed to the PEP 517 build backend.
Requires pip 22.1 or newer for keys that appear only a single time,
or pip 23.1 or newer if the same key appears multiple times.
Args:
- spec (spack.spec.Spec): build spec
- prefix (spack.util.prefix.Prefix): installation prefix
+ spec: Build spec.
+ prefix: Installation prefix.
Returns:
- dict: Possibly nested dictionary of KEY, VALUE settings
+ Possibly nested dictionary of KEY, VALUE settings.
"""
return {}
- def install_options(self, spec, prefix):
+ def install_options(self, spec: Spec, prefix: Prefix) -> Iterable[str]:
"""Extra arguments to be supplied to the setup.py install command.
Requires pip 23.0 or older.
Args:
- spec (spack.spec.Spec): build spec
- prefix (spack.util.prefix.Prefix): installation prefix
+ spec: Build spec.
+ prefix: Installation prefix.
Returns:
- list: list of options
+ List of options.
"""
return []
- def global_options(self, spec, prefix):
+ def global_options(self, spec: Spec, prefix: Prefix) -> Iterable[str]:
"""Extra global options to be supplied to the setup.py call before the install
or bdist_wheel command.
Deprecated in pip 23.1.
Args:
- spec (spack.spec.Spec): build spec
- prefix (spack.util.prefix.Prefix): installation prefix
+ spec: Build spec.
+ prefix: Installation prefix.
Returns:
- list: list of options
+ List of options.
"""
return []
- def install(self, pkg, spec, prefix):
+ def install(self, pkg: PythonPackage, spec: Spec, prefix: Prefix) -> None:
"""Install everything from build directory."""
args = PythonPipBuilder.std_args(pkg) + [f"--prefix={prefix}"]
diff --git a/lib/spack/spack/build_systems/qmake.py b/lib/spack/spack/build_systems/qmake.py
index 538054f3b05643..a1e679b50c609f 100644
--- a/lib/spack/spack/build_systems/qmake.py
+++ b/lib/spack/spack/build_systems/qmake.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/r.py b/lib/spack/spack/build_systems/r.py
index f2e7e095b7c7c4..5154f5a42dd3a4 100644
--- a/lib/spack/spack/build_systems/r.py
+++ b/lib/spack/spack/build_systems/r.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/racket.py b/lib/spack/spack/build_systems/racket.py
index 50c4944a5d7ccb..facac62032cf54 100644
--- a/lib/spack/spack/build_systems/racket.py
+++ b/lib/spack/spack/build_systems/racket.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/rocm.py b/lib/spack/spack/build_systems/rocm.py
index a1c6d661f50549..f6ea0537fd5a00 100644
--- a/lib/spack/spack/build_systems/rocm.py
+++ b/lib/spack/spack/build_systems/rocm.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -108,6 +108,8 @@ class ROCmPackage(PackageBase):
"gfx90a:xnack+",
"gfx90c",
"gfx940",
+ "gfx941",
+ "gfx942",
"gfx1010",
"gfx1011",
"gfx1012",
@@ -168,6 +170,8 @@ def hip_flags(amdgpu_target):
depends_on("llvm-amdgpu@4.3.0:", when="amdgpu_target=gfx90a:xnack-")
depends_on("llvm-amdgpu@4.3.0:", when="amdgpu_target=gfx90a:xnack+")
depends_on("llvm-amdgpu@5.2.0:", when="amdgpu_target=gfx940")
+ depends_on("llvm-amdgpu@5.7.0:", when="amdgpu_target=gfx941")
+ depends_on("llvm-amdgpu@5.7.0:", when="amdgpu_target=gfx942")
depends_on("llvm-amdgpu@4.5.0:", when="amdgpu_target=gfx1013")
depends_on("llvm-amdgpu@3.8.0:", when="amdgpu_target=gfx1030")
depends_on("llvm-amdgpu@3.9.0:", when="amdgpu_target=gfx1031")
diff --git a/lib/spack/spack/build_systems/ruby.py b/lib/spack/spack/build_systems/ruby.py
index ef99259f86d0ad..0f069e99f28fcc 100644
--- a/lib/spack/spack/build_systems/ruby.py
+++ b/lib/spack/spack/build_systems/ruby.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/scons.py b/lib/spack/spack/build_systems/scons.py
index a8adee8959a800..0d2ea175a12358 100644
--- a/lib/spack/spack/build_systems/scons.py
+++ b/lib/spack/spack/build_systems/scons.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/sip.py b/lib/spack/spack/build_systems/sip.py
index 884c740d561d4f..5d93e23ac2d52d 100644
--- a/lib/spack/spack/build_systems/sip.py
+++ b/lib/spack/spack/build_systems/sip.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/sourceforge.py b/lib/spack/spack/build_systems/sourceforge.py
index 35bb10e5bd18a9..76c9a059af12a9 100644
--- a/lib/spack/spack/build_systems/sourceforge.py
+++ b/lib/spack/spack/build_systems/sourceforge.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/sourceware.py b/lib/spack/spack/build_systems/sourceware.py
index d88a179dd3a226..f95c5c5a15d928 100644
--- a/lib/spack/spack/build_systems/sourceware.py
+++ b/lib/spack/spack/build_systems/sourceware.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/waf.py b/lib/spack/spack/build_systems/waf.py
index bf146cb350ea1b..0fd78d48da7ea7 100644
--- a/lib/spack/spack/build_systems/waf.py
+++ b/lib/spack/spack/build_systems/waf.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/build_systems/xorg.py b/lib/spack/spack/build_systems/xorg.py
index 81de9aef866fa2..f4a9c2b372b890 100644
--- a/lib/spack/spack/build_systems/xorg.py
+++ b/lib/spack/spack/build_systems/xorg.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/builder.py b/lib/spack/spack/builder.py
index ebd52ff101f832..4119062ab6bc55 100644
--- a/lib/spack/spack/builder.py
+++ b/lib/spack/spack/builder.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/caches.py b/lib/spack/spack/caches.py
index 14c7571f4832db..81a16ea5d8f2d4 100644
--- a/lib/spack/spack/caches.py
+++ b/lib/spack/spack/caches.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/ci.py b/lib/spack/spack/ci.py
index afad3b7a45197e..7c2f3f2eb6dbc8 100644
--- a/lib/spack/spack/ci.py
+++ b/lib/spack/spack/ci.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -46,7 +46,22 @@
from spack.reporters import CDash, CDashConfiguration
from spack.reporters.cdash import build_stamp as cdash_build_stamp
-JOB_RETRY_CONDITIONS = ["always"]
+# See https://docs.gitlab.com/ee/ci/yaml/#retry for descriptions of conditions
+JOB_RETRY_CONDITIONS = [
+ # "always",
+ "unknown_failure",
+ "script_failure",
+ "api_failure",
+ "stuck_or_timeout_failure",
+ "runner_system_failure",
+ "runner_unsupported",
+ "stale_schedule",
+ # "job_execution_timeout",
+ "archived_failure",
+ "unmet_prerequisites",
+ "scheduler_failure",
+ "data_integrity_failure",
+]
TEMP_STORAGE_MIRROR_NAME = "ci_temporary_mirror"
SPACK_RESERVED_TAGS = ["public", "protected", "notary"]
@@ -1238,6 +1253,7 @@ def main_script_replacements(cmd):
op=lambda cmd: cmd.replace("mirror_prefix", temp_storage_url_prefix),
)
+ cleanup_job["dependencies"] = []
output_object["cleanup"] = cleanup_job
if (
@@ -1261,6 +1277,7 @@ def main_script_replacements(cmd):
if buildcache_destination
else remote_mirror_override or remote_mirror_url
)
+ signing_job["dependencies"] = []
output_object["sign-pkgs"] = signing_job
@@ -1281,6 +1298,7 @@ def main_script_replacements(cmd):
final_job["when"] = "always"
final_job["retry"] = service_job_retries
final_job["interruptible"] = True
+ final_job["dependencies"] = []
output_object["rebuild-index"] = final_job
diff --git a/lib/spack/spack/ci_needs_workaround.py b/lib/spack/spack/ci_needs_workaround.py
index 99597edb2e80f8..e026b5c4fdbca2 100644
--- a/lib/spack/spack/ci_needs_workaround.py
+++ b/lib/spack/spack/ci_needs_workaround.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/ci_optimization.py b/lib/spack/spack/ci_optimization.py
index bb9e5eec1600ad..7d799fc907e172 100644
--- a/lib/spack/spack/ci_optimization.py
+++ b/lib/spack/spack/ci_optimization.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/__init__.py b/lib/spack/spack/cmd/__init__.py
index c26ab181c10230..b30c6360d9fc5f 100644
--- a/lib/spack/spack/cmd/__init__.py
+++ b/lib/spack/spack/cmd/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,10 +6,8 @@
import argparse
import os
import re
-import shlex
import sys
-from textwrap import dedent
-from typing import List, Match, Tuple
+from typing import List, Union
import llnl.string
import llnl.util.tty as tty
@@ -147,89 +145,37 @@ def get_command(cmd_name):
return getattr(get_module(cmd_name), pname)
-class _UnquotedFlags:
- """Use a heuristic in `.extract()` to detect whether the user is trying to set
- multiple flags like the docker ENV attribute allows (e.g. 'cflags=-Os -pipe').
+def quote_kvp(string: str) -> str:
+ """For strings like ``name=value`` or ``name==value``, quote and escape the value if needed.
- If the heuristic finds a match (which can be checked with `__bool__()`), a warning
- message explaining how to quote multiple flags correctly can be generated with
- `.report()`.
+ This is a compromise to respect quoting of key-value pairs on the CLI. The shell
+ strips quotes from quoted arguments, so we cannot know *exactly* how CLI arguments
+ were quoted. To compensate, we re-add quotes around anything staritng with ``name=``
+ or ``name==``, and we assume the rest of the argument is the value. This covers the
+ common cases of passign flags, e.g., ``cflags="-O2 -g"`` on the command line.
"""
+ match = spack.parser.SPLIT_KVP.match(string)
+ if not match:
+ return string
- flags_arg_pattern = re.compile(
- r'^({0})=([^\'"].*)$'.format("|".join(spack.spec.FlagMap.valid_compiler_flags()))
- )
+ key, delim, value = match.groups()
+ return f"{key}{delim}{spack.parser.quote_if_needed(value)}"
- def __init__(self, all_unquoted_flag_pairs: List[Tuple[Match[str], str]]):
- self._flag_pairs = all_unquoted_flag_pairs
-
- def __bool__(self) -> bool:
- return bool(self._flag_pairs)
-
- @classmethod
- def extract(cls, sargs: str) -> "_UnquotedFlags":
- all_unquoted_flag_pairs: List[Tuple[Match[str], str]] = []
- prev_flags_arg = None
- for arg in shlex.split(sargs):
- if prev_flags_arg is not None:
- all_unquoted_flag_pairs.append((prev_flags_arg, arg))
- prev_flags_arg = cls.flags_arg_pattern.match(arg)
- return cls(all_unquoted_flag_pairs)
-
- def report(self) -> str:
- single_errors = [
- "({0}) {1} {2} => {3}".format(
- i + 1,
- match.group(0),
- next_arg,
- '{0}="{1} {2}"'.format(match.group(1), match.group(2), next_arg),
- )
- for i, (match, next_arg) in enumerate(self._flag_pairs)
- ]
- return dedent(
- """\
- Some compiler or linker flags were provided without quoting their arguments,
- which now causes spack to try to parse the *next* argument as a spec component
- such as a variant instead of an additional compiler or linker flag. If the
- intent was to set multiple flags, try quoting them together as described below.
-
- Possible flag quotation errors (with the correctly-quoted version after the =>):
- {0}"""
- ).format("\n".join(single_errors))
-
-
-def parse_specs(args, **kwargs):
+
+def parse_specs(
+ args: Union[str, List[str]], concretize: bool = False, tests: bool = False
+) -> List[spack.spec.Spec]:
"""Convenience function for parsing arguments from specs. Handles common
exceptions and dies if there are errors.
"""
- concretize = kwargs.get("concretize", False)
- normalize = kwargs.get("normalize", False)
- tests = kwargs.get("tests", False)
-
- sargs = args
- if not isinstance(args, str):
- sargs = " ".join(args)
- unquoted_flags = _UnquotedFlags.extract(sargs)
+ args = [args] if isinstance(args, str) else args
+ arg_string = " ".join([quote_kvp(arg) for arg in args])
- try:
- specs = spack.parser.parse(sargs)
- for spec in specs:
- if concretize:
- spec.concretize(tests=tests) # implies normalize
- elif normalize:
- spec.normalize(tests=tests)
- return specs
-
- except spack.error.SpecError as e:
- msg = e.message
- if e.long_message:
- msg += e.long_message
- # Unquoted flags will be read as a variant or hash
- if unquoted_flags and ("variant" in msg or "hash" in msg):
- msg += "\n\n"
- msg += unquoted_flags.report()
-
- raise spack.error.SpackError(msg) from e
+ specs = spack.parser.parse(arg_string)
+ for spec in specs:
+ if concretize:
+ spec.concretize(tests=tests)
+ return specs
def matching_spec_from_env(spec):
diff --git a/lib/spack/spack/cmd/add.py b/lib/spack/spack/cmd/add.py
index 53544ad40a110c..c0b982868e6030 100644
--- a/lib/spack/spack/cmd/add.py
+++ b/lib/spack/spack/cmd/add.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,7 +6,7 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
+from spack.cmd.common import arguments
description = "add a spec to an environment"
section = "environments"
diff --git a/lib/spack/spack/cmd/arch.py b/lib/spack/spack/cmd/arch.py
index b1845cf19d30dd..56f597d778d1d4 100644
--- a/lib/spack/spack/cmd/arch.py
+++ b/lib/spack/spack/cmd/arch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/audit.py b/lib/spack/spack/cmd/audit.py
index 58d7a5362cf56d..c8cef494ef749b 100644
--- a/lib/spack/spack/cmd/audit.py
+++ b/lib/spack/spack/cmd/audit.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/blame.py b/lib/spack/spack/cmd/blame.py
index c7e34904858dd1..af0126fb43adf7 100644
--- a/lib/spack/spack/cmd/blame.py
+++ b/lib/spack/spack/cmd/blame.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/bootstrap.py b/lib/spack/spack/cmd/bootstrap.py
index 71c3d3a04526e7..5221a980c78b3a 100644
--- a/lib/spack/spack/cmd/bootstrap.py
+++ b/lib/spack/spack/cmd/bootstrap.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,13 +15,13 @@
import spack.bootstrap
import spack.bootstrap.config
import spack.bootstrap.core
-import spack.cmd.common.arguments
import spack.config
import spack.main
import spack.mirror
import spack.spec
import spack.stage
import spack.util.path
+from spack.cmd.common import arguments
description = "manage bootstrap configuration"
section = "system"
@@ -68,12 +68,8 @@
def _add_scope_option(parser):
- scopes = spack.config.scopes()
parser.add_argument(
- "--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- help="configuration scope to read/modify",
+ "--scope", action=arguments.ConfigScope, help="configuration scope to read/modify"
)
@@ -106,7 +102,7 @@ def setup_parser(subparser):
disable.add_argument("name", help="name of the source to be disabled", nargs="?", default=None)
reset = sp.add_parser("reset", help="reset bootstrapping configuration to Spack defaults")
- spack.cmd.common.arguments.add_common_arguments(reset, ["yes_to_all"])
+ arguments.add_common_arguments(reset, ["yes_to_all"])
root = sp.add_parser("root", help="get/set the root bootstrap directory")
_add_scope_option(root)
diff --git a/lib/spack/spack/cmd/build_env.py b/lib/spack/spack/cmd/build_env.py
index f5efca6e230484..2083b4a5b2673a 100644
--- a/lib/spack/spack/cmd/build_env.py
+++ b/lib/spack/spack/cmd/build_env.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/buildcache.py b/lib/spack/spack/cmd/buildcache.py
index 94cce16030be32..46279cd06a3ccc 100644
--- a/lib/spack/spack/cmd/buildcache.py
+++ b/lib/spack/spack/cmd/buildcache.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -7,13 +7,14 @@
import glob
import hashlib
import json
+import multiprocessing
import multiprocessing.pool
import os
import shutil
import sys
import tempfile
import urllib.request
-from typing import Dict, List, Optional, Tuple
+from typing import Dict, List, Optional, Tuple, Union
import llnl.util.tty as tty
from llnl.string import plural
@@ -21,7 +22,6 @@
import spack.binary_distribution as bindist
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment as ev
import spack.error
@@ -38,8 +38,10 @@
import spack.util.crypto
import spack.util.url as url_util
import spack.util.web as web_util
+from spack import traverse
from spack.build_environment import determine_number_of_jobs
from spack.cmd import display_specs
+from spack.cmd.common import arguments
from spack.oci.image import (
Digest,
ImageReference,
@@ -76,7 +78,19 @@ def setup_parser(subparser: argparse.ArgumentParser):
)
push_sign = push.add_mutually_exclusive_group(required=False)
push_sign.add_argument(
- "--unsigned", "-u", action="store_true", help="push unsigned buildcache tarballs"
+ "--unsigned",
+ "-u",
+ action="store_false",
+ dest="signed",
+ default=None,
+ help="push unsigned buildcache tarballs",
+ )
+ push_sign.add_argument(
+ "--signed",
+ action="store_true",
+ dest="signed",
+ default=None,
+ help="push signed buildcache tarballs",
)
push_sign.add_argument(
"--key", "-k", metavar="key", type=str, default=None, help="key for signing"
@@ -110,7 +124,14 @@ def setup_parser(subparser: argparse.ArgumentParser):
help="stop pushing on first failure (default is best effort)",
)
push.add_argument(
- "--base-image", default=None, help="specify the base image for the buildcache. "
+ "--base-image", default=None, help="specify the base image for the buildcache"
+ )
+ push.add_argument(
+ "--tag",
+ "-t",
+ default=None,
+ help="when pushing to an OCI registry, tag an image containing all root specs and their "
+ "runtime dependencies",
)
arguments.add_common_arguments(push, ["specs", "jobs"])
push.set_defaults(func=push_fn)
@@ -182,23 +203,22 @@ def setup_parser(subparser: argparse.ArgumentParser):
)
# used to construct scope arguments below
- scopes = spack.config.scopes()
-
check.add_argument(
"--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=spack.config.default_modify_scope(),
+ action=arguments.ConfigScope,
+ default=lambda: spack.config.default_modify_scope(),
help="configuration scope containing mirrors to check",
)
- check_spec_or_specfile = check.add_mutually_exclusive_group(required=True)
- check_spec_or_specfile.add_argument(
+ # Unfortunately there are 3 ways to do the same thing here:
+ check_specs = check.add_mutually_exclusive_group()
+ check_specs.add_argument(
"-s", "--spec", help="check single spec instead of release specs file"
)
- check_spec_or_specfile.add_argument(
+ check_specs.add_argument(
"--spec-file",
help="check single spec from json or yaml file instead of release specs file",
)
+ arguments.add_common_arguments(check, ["specs"])
check.set_defaults(func=check_fn)
@@ -307,8 +327,30 @@ def _progress(i: int, total: int):
return ""
-def _make_pool():
- return multiprocessing.pool.Pool(determine_number_of_jobs(parallel=True))
+class NoPool:
+ def map(self, func, args):
+ return [func(a) for a in args]
+
+ def starmap(self, func, args):
+ return [func(*a) for a in args]
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, *args):
+ pass
+
+
+MaybePool = Union[multiprocessing.pool.Pool, NoPool]
+
+
+def _make_pool() -> MaybePool:
+ """Can't use threading because it's unsafe, and can't use spawned processes because of globals.
+ That leaves only forking"""
+ if multiprocessing.get_start_method() == "fork":
+ return multiprocessing.pool.Pool(determine_number_of_jobs(parallel=True))
+ else:
+ return NoPool()
def push_fn(args):
@@ -320,26 +362,36 @@ def push_fn(args):
)
if args.specs or args.spec_file:
- specs = _matching_specs(spack.cmd.parse_specs(args.specs or args.spec_file))
+ roots = _matching_specs(spack.cmd.parse_specs(args.specs or args.spec_file))
else:
- specs = spack.cmd.require_active_env("buildcache push").all_specs()
+ roots = spack.cmd.require_active_env(cmd_name="buildcache push").concrete_roots()
if args.allow_root:
tty.warn(
"The flag `--allow-root` is the default in Spack 0.21, will be removed in Spack 0.22"
)
+ mirror: spack.mirror.Mirror = args.mirror
+
# Check if this is an OCI image.
try:
- image_ref = spack.oci.oci.image_from_mirror(args.mirror)
+ target_image = spack.oci.oci.image_from_mirror(mirror)
except ValueError:
- image_ref = None
+ target_image = None
+
+ push_url = mirror.push_url
+
+ # When neither --signed, --unsigned nor --key are specified, use the mirror's default.
+ if args.signed is None and not args.key:
+ unsigned = not mirror.signed
+ else:
+ unsigned = not (args.key or args.signed)
# For OCI images, we require dependencies to be pushed for now.
- if image_ref:
+ if target_image:
if "dependencies" not in args.things_to_install:
tty.die("Dependencies must be pushed for OCI images.")
- if not args.unsigned:
+ if not unsigned:
tty.warn(
"Code signing is currently not supported for OCI images. "
"Use --unsigned to silence this warning."
@@ -347,26 +399,48 @@ def push_fn(args):
# This is a list of installed, non-external specs.
specs = bindist.specs_to_be_packaged(
- specs,
+ roots,
root="package" in args.things_to_install,
dependencies="dependencies" in args.things_to_install,
)
- url = args.mirror.push_url
-
# When pushing multiple specs, print the url once ahead of time, as well as how
# many specs are being pushed.
if len(specs) > 1:
- tty.info(f"Selected {len(specs)} specs to push to {url}")
+ tty.info(f"Selected {len(specs)} specs to push to {push_url}")
failed = []
# TODO: unify this logic in the future.
- if image_ref:
+ if target_image:
+ base_image = ImageReference.from_string(args.base_image) if args.base_image else None
with tempfile.TemporaryDirectory(
dir=spack.stage.get_stage_root()
) as tmpdir, _make_pool() as pool:
- skipped = _push_oci(args, image_ref, specs, tmpdir, pool)
+ skipped, base_images, checksums = _push_oci(
+ target_image=target_image,
+ base_image=base_image,
+ installed_specs_with_deps=specs,
+ force=args.force,
+ tmpdir=tmpdir,
+ pool=pool,
+ )
+
+ # Apart from creating manifests for each individual spec, we allow users to create a
+ # separate image tag for all root specs and their runtime dependencies.
+ if args.tag:
+ tagged_image = target_image.with_tag(args.tag)
+ # _push_oci may not populate base_images if binaries were already in the registry
+ for spec in roots:
+ _update_base_images(
+ base_image=base_image,
+ target_image=target_image,
+ spec=spec,
+ base_image_cache=base_images,
+ )
+ _put_manifest(base_images, checksums, tagged_image, tmpdir, None, None, *roots)
+ tty.info(f"Tagged {tagged_image}")
+
else:
skipped = []
@@ -374,10 +448,10 @@ def push_fn(args):
try:
bindist.push_or_raise(
spec,
- url,
+ push_url,
bindist.PushOptions(
force=args.force,
- unsigned=args.unsigned,
+ unsigned=unsigned,
key=args.key,
regenerate_index=args.update_index,
),
@@ -385,7 +459,7 @@ def push_fn(args):
msg = f"{_progress(i, len(specs))}Pushed {_format_spec(spec)}"
if len(specs) == 1:
- msg += f" to {url}"
+ msg += f" to {push_url}"
tty.info(msg)
except bindist.NoOverwriteException:
@@ -427,11 +501,11 @@ def push_fn(args):
# Update the index if requested
# TODO: remove update index logic out of bindist; should be once after all specs are pushed
# not once per spec.
- if image_ref and len(skipped) < len(specs) and args.update_index:
+ if target_image and len(skipped) < len(specs) and args.update_index:
with tempfile.TemporaryDirectory(
dir=spack.stage.get_stage_root()
) as tmpdir, _make_pool() as pool:
- _update_index_oci(image_ref, tmpdir, pool)
+ _update_index_oci(target_image, tmpdir, pool)
def _get_spack_binary_blob(image_ref: ImageReference) -> Optional[spack.oci.oci.Blob]:
@@ -497,17 +571,21 @@ def _archspec_to_gooarch(spec: spack.spec.Spec) -> str:
def _put_manifest(
base_images: Dict[str, Tuple[dict, dict]],
checksums: Dict[str, spack.oci.oci.Blob],
- spec: spack.spec.Spec,
image_ref: ImageReference,
tmpdir: str,
+ extra_config: Optional[dict],
+ annotations: Optional[dict],
+ *specs: spack.spec.Spec,
):
- architecture = _archspec_to_gooarch(spec)
+ architecture = _archspec_to_gooarch(specs[0])
dependencies = list(
reversed(
list(
s
- for s in spec.traverse(order="topo", deptype=("link", "run"), root=True)
+ for s in traverse.traverse_nodes(
+ specs, order="topo", deptype=("link", "run"), root=True
+ )
if not s.external
)
)
@@ -516,7 +594,7 @@ def _put_manifest(
base_manifest, base_config = base_images[architecture]
env = _retrieve_env_dict_from_config(base_config)
- spack.user_environment.environment_modifications_for_specs(spec).apply_modifications(env)
+ spack.user_environment.environment_modifications_for_specs(*specs).apply_modifications(env)
# Create an oci.image.config file
config = copy.deepcopy(base_config)
@@ -528,20 +606,14 @@ def _put_manifest(
# Set the environment variables
config["config"]["Env"] = [f"{k}={v}" for k, v in env.items()]
- # From the OCI v1.0 spec:
- # > Any extra fields in the Image JSON struct are considered implementation
- # > specific and MUST be ignored by any implementations which are unable to
- # > interpret them.
- # We use this to store the Spack spec, so we can use it to create an index.
- spec_dict = spec.to_dict(hash=ht.dag_hash)
- spec_dict["buildcache_layout_version"] = 1
- spec_dict["binary_cache_checksum"] = {
- "hash_algorithm": "sha256",
- "hash": checksums[spec.dag_hash()].compressed_digest.digest,
- }
- config.update(spec_dict)
+ if extra_config:
+ # From the OCI v1.0 spec:
+ # > Any extra fields in the Image JSON struct are considered implementation
+ # > specific and MUST be ignored by any implementations which are unable to
+ # > interpret them.
+ config.update(extra_config)
- config_file = os.path.join(tmpdir, f"{spec.dag_hash()}.config.json")
+ config_file = os.path.join(tmpdir, f"{specs[0].dag_hash()}.config.json")
with open(config_file, "w") as f:
json.dump(config, f, separators=(",", ":"))
@@ -572,48 +644,69 @@ def _put_manifest(
for s in dependencies
),
],
- "annotations": {"org.opencontainers.image.description": spec.format()},
}
- image_ref_for_spec = image_ref.with_tag(default_tag(spec))
+ if annotations:
+ oci_manifest["annotations"] = annotations
# Finally upload the manifest
- upload_manifest_with_retry(image_ref_for_spec, oci_manifest=oci_manifest)
+ upload_manifest_with_retry(image_ref, oci_manifest=oci_manifest)
# delete the config file
os.unlink(config_file)
- return image_ref_for_spec
+
+def _update_base_images(
+ *,
+ base_image: Optional[ImageReference],
+ target_image: ImageReference,
+ spec: spack.spec.Spec,
+ base_image_cache: Dict[str, Tuple[dict, dict]],
+):
+ """For a given spec and base image, copy the missing layers of the base image with matching
+ arch to the registry of the target image. If no base image is specified, create a dummy
+ manifest and config file."""
+ architecture = _archspec_to_gooarch(spec)
+ if architecture in base_image_cache:
+ return
+ if base_image is None:
+ base_image_cache[architecture] = (
+ default_manifest(),
+ default_config(architecture, "linux"),
+ )
+ else:
+ base_image_cache[architecture] = copy_missing_layers_with_retry(
+ base_image, target_image, architecture
+ )
def _push_oci(
- args,
- image_ref: ImageReference,
+ *,
+ target_image: ImageReference,
+ base_image: Optional[ImageReference],
installed_specs_with_deps: List[Spec],
tmpdir: str,
- pool: multiprocessing.pool.Pool,
-) -> List[str]:
+ pool: MaybePool,
+ force: bool = False,
+) -> Tuple[List[str], Dict[str, Tuple[dict, dict]], Dict[str, spack.oci.oci.Blob]]:
"""Push specs to an OCI registry
Args:
- args: The command line arguments.
- image_ref: The image reference.
+ image_ref: The target OCI image
+ base_image: Optional base image, which will be copied to the target registry.
installed_specs_with_deps: The installed specs to push, excluding externals,
including deps, ordered from roots to leaves.
+ force: Whether to overwrite existing layers and manifests in the buildcache.
Returns:
- List[str]: The list of skipped specs (already in the buildcache).
+ A tuple consisting of the list of skipped specs already in the build cache,
+ a dictionary mapping architectures to base image manifests and configs,
+ and a dictionary mapping each spec's dag hash to a blob.
"""
# Reverse the order
installed_specs_with_deps = list(reversed(installed_specs_with_deps))
- # The base image to use for the package. When not set, we use
- # the OCI registry only for storage, and do not use any base image.
- base_image_ref: Optional[ImageReference] = (
- ImageReference.from_string(args.base_image) if args.base_image else None
- )
-
# Spec dag hash -> blob
checksums: Dict[str, spack.oci.oci.Blob] = {}
@@ -623,11 +716,11 @@ def _push_oci(
# Specs not uploaded because they already exist
skipped = []
- if not args.force:
+ if not force:
tty.info("Checking for existing specs in the buildcache")
to_be_uploaded = []
- tags_to_check = (image_ref.with_tag(default_tag(s)) for s in installed_specs_with_deps)
+ tags_to_check = (target_image.with_tag(default_tag(s)) for s in installed_specs_with_deps)
available_blobs = pool.map(_get_spack_binary_blob, tags_to_check)
for spec, maybe_blob in zip(installed_specs_with_deps, available_blobs):
@@ -640,46 +733,63 @@ def _push_oci(
to_be_uploaded = installed_specs_with_deps
if not to_be_uploaded:
- return skipped
+ return skipped, base_images, checksums
tty.info(
- f"{len(to_be_uploaded)} specs need to be pushed to {image_ref.domain}/{image_ref.name}"
+ f"{len(to_be_uploaded)} specs need to be pushed to "
+ f"{target_image.domain}/{target_image.name}"
)
# Upload blobs
new_blobs = pool.starmap(
- _push_single_spack_binary_blob, ((image_ref, spec, tmpdir) for spec in to_be_uploaded)
+ _push_single_spack_binary_blob, ((target_image, spec, tmpdir) for spec in to_be_uploaded)
)
# And update the spec to blob mapping
for spec, blob in zip(to_be_uploaded, new_blobs):
checksums[spec.dag_hash()] = blob
- # Copy base image layers, probably fine to do sequentially.
+ # Copy base images if necessary
for spec in to_be_uploaded:
- architecture = _archspec_to_gooarch(spec)
- # Get base image details, if we don't have them yet
- if architecture in base_images:
- continue
- if base_image_ref is None:
- base_images[architecture] = (default_manifest(), default_config(architecture, "linux"))
- else:
- base_images[architecture] = copy_missing_layers_with_retry(
- base_image_ref, image_ref, architecture
- )
+ _update_base_images(
+ base_image=base_image,
+ target_image=target_image,
+ spec=spec,
+ base_image_cache=base_images,
+ )
+
+ def extra_config(spec: Spec):
+ spec_dict = spec.to_dict(hash=ht.dag_hash)
+ spec_dict["buildcache_layout_version"] = 1
+ spec_dict["binary_cache_checksum"] = {
+ "hash_algorithm": "sha256",
+ "hash": checksums[spec.dag_hash()].compressed_digest.digest,
+ }
+ return spec_dict
# Upload manifests
tty.info("Uploading manifests")
- pushed_image_ref = pool.starmap(
+ pool.starmap(
_put_manifest,
- ((base_images, checksums, spec, image_ref, tmpdir) for spec in to_be_uploaded),
+ (
+ (
+ base_images,
+ checksums,
+ target_image.with_tag(default_tag(spec)),
+ tmpdir,
+ extra_config(spec),
+ {"org.opencontainers.image.description": spec.format()},
+ spec,
+ )
+ for spec in to_be_uploaded
+ ),
)
# Print the image names of the top-level specs
- for spec, ref in zip(to_be_uploaded, pushed_image_ref):
- tty.info(f"Pushed {_format_spec(spec)} to {ref}")
+ for spec in to_be_uploaded:
+ tty.info(f"Pushed {_format_spec(spec)} to {target_image.with_tag(default_tag(spec))}")
- return skipped
+ return skipped, base_images, checksums
def _config_from_tag(image_ref: ImageReference, tag: str) -> Optional[dict]:
@@ -692,11 +802,10 @@ def _config_from_tag(image_ref: ImageReference, tag: str) -> Optional[dict]:
return config if "spec" in config else None
-def _update_index_oci(
- image_ref: ImageReference, tmpdir: str, pool: multiprocessing.pool.Pool
-) -> None:
- response = spack.oci.opener.urlopen(urllib.request.Request(url=image_ref.tags_url()))
- spack.oci.opener.ensure_status(response, 200)
+def _update_index_oci(image_ref: ImageReference, tmpdir: str, pool: MaybePool) -> None:
+ request = urllib.request.Request(url=image_ref.tags_url())
+ response = spack.oci.opener.urlopen(request)
+ spack.oci.opener.ensure_status(request, response, 200)
tags = json.load(response)["tags"]
# Fetch all image config files in parallel
@@ -816,15 +925,24 @@ def check_fn(args: argparse.Namespace):
exit code is non-zero, then at least one of the indicated specs needs to be rebuilt
"""
if args.spec_file:
+ specs_arg = (
+ args.spec_file if os.path.sep in args.spec_file else os.path.join(".", args.spec_file)
+ )
tty.warn(
"The flag `--spec-file` is deprecated and will be removed in Spack 0.22. "
- "Use --spec instead."
+ f"Use `spack buildcache check {specs_arg}` instead."
)
+ elif args.spec:
+ specs_arg = args.spec
+ tty.warn(
+ "The flag `--spec` is deprecated and will be removed in Spack 0.23. "
+ f"Use `spack buildcache check {specs_arg}` instead."
+ )
+ else:
+ specs_arg = args.specs
- specs = spack.cmd.parse_specs(args.spec or args.spec_file)
-
- if specs:
- specs = _matching_specs(specs)
+ if specs_arg:
+ specs = _matching_specs(spack.cmd.parse_specs(specs_arg))
else:
specs = spack.cmd.require_active_env("buildcache check").all_specs()
diff --git a/lib/spack/spack/cmd/cd.py b/lib/spack/spack/cmd/cd.py
index f85be7f2d86c6a..237eb2b51340e1 100644
--- a/lib/spack/spack/cmd/cd.py
+++ b/lib/spack/spack/cmd/cd.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/change.py b/lib/spack/spack/cmd/change.py
index 0a57cb6da5b5be..9807d5cc55786c 100644
--- a/lib/spack/spack/cmd/change.py
+++ b/lib/spack/spack/cmd/change.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import spack.cmd
-import spack.cmd.common.arguments as arguments
+from spack.cmd.common import arguments
description = "change an existing spec in an environment"
section = "environments"
diff --git a/lib/spack/spack/cmd/checksum.py b/lib/spack/spack/cmd/checksum.py
index f927d2d922a26d..e3e9c1a30807c0 100644
--- a/lib/spack/spack/cmd/checksum.py
+++ b/lib/spack/spack/cmd/checksum.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import re
import sys
+from typing import Dict, Optional
import llnl.string
import llnl.util.lang
@@ -17,10 +18,15 @@
import spack.util.crypto
import spack.util.web as web_util
from spack.cmd.common import arguments
-from spack.package_base import PackageBase, deprecated_version, preferred_version
+from spack.package_base import (
+ ManualDownloadRequiredError,
+ PackageBase,
+ deprecated_version,
+ preferred_version,
+)
from spack.util.editor import editor
from spack.util.format import get_version_lines
-from spack.version import Version
+from spack.version import StandardVersion, Version
description = "checksum available versions of a package"
section = "packaging"
@@ -84,28 +90,30 @@ def checksum(parser, args):
spec = spack.spec.Spec(args.package)
# Get the package we're going to generate checksums for
- pkg = spack.repo.PATH.get_pkg_class(spec.name)(spec)
+ pkg: PackageBase = spack.repo.PATH.get_pkg_class(spec.name)(spec)
- versions = [Version(v) for v in args.versions]
+ # Skip manually downloaded packages
+ if pkg.manual_download:
+ raise ManualDownloadRequiredError(pkg.download_instr)
- # Define placeholder for remote versions.
- # This'll help reduce redundant work if we need to check for the existance
- # of remote versions more than once.
- remote_versions = None
+ versions = [StandardVersion.from_string(v) for v in args.versions]
+
+ # Define placeholder for remote versions. This'll help reduce redundant work if we need to
+ # check for the existence of remote versions more than once.
+ remote_versions: Optional[Dict[StandardVersion, str]] = None
# Add latest version if requested
if args.latest:
- remote_versions = pkg.fetch_remote_versions(args.jobs)
+ remote_versions = pkg.fetch_remote_versions(concurrency=args.jobs)
if len(remote_versions) > 0:
- latest_version = sorted(remote_versions.keys(), reverse=True)[0]
- versions.append(latest_version)
+ versions.append(max(remote_versions.keys()))
- # Add preferred version if requested
+ # Add preferred version if requested (todo: exclude git versions)
if args.preferred:
versions.append(preferred_version(pkg))
# Store a dict of the form version -> URL
- url_dict = {}
+ url_dict: Dict[StandardVersion, str] = {}
for version in versions:
if deprecated_version(pkg, version):
@@ -115,16 +123,16 @@ def checksum(parser, args):
if url is not None:
url_dict[version] = url
continue
- # if we get here, it's because no valid url was provided by the package
- # do expensive fallback to try to recover
+ # If we get here, it's because no valid url was provided by the package. Do expensive
+ # fallback to try to recover
if remote_versions is None:
- remote_versions = pkg.fetch_remote_versions(args.jobs)
+ remote_versions = pkg.fetch_remote_versions(concurrency=args.jobs)
if version in remote_versions:
url_dict[version] = remote_versions[version]
if len(versions) <= 0:
if remote_versions is None:
- remote_versions = pkg.fetch_remote_versions(args.jobs)
+ remote_versions = pkg.fetch_remote_versions(concurrency=args.jobs)
url_dict = remote_versions
# A spidered URL can differ from the package.py *computed* URL, pointing to different tarballs.
diff --git a/lib/spack/spack/cmd/ci.py b/lib/spack/spack/cmd/ci.py
index 6c573193026fbf..1b0eab888c761f 100644
--- a/lib/spack/spack/cmd/ci.py
+++ b/lib/spack/spack/cmd/ci.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,7 @@
import spack.cmd.buildcache as buildcache
import spack.config as cfg
import spack.environment as ev
+import spack.environment.depfile
import spack.hash_types as ht
import spack.mirror
import spack.util.gpg as gpg_util
@@ -606,7 +607,9 @@ def ci_rebuild(args):
"SPACK_INSTALL_FLAGS={}".format(args_to_string(deps_install_args)),
"-j$(nproc)",
"install-deps/{}".format(
- ev.depfile.MakefileSpec(job_spec).safe_format("{name}-{version}-{hash}")
+ spack.environment.depfile.MakefileSpec(job_spec).safe_format(
+ "{name}-{version}-{hash}"
+ )
),
],
spack_cmd + ["install"] + root_install_args,
diff --git a/lib/spack/spack/cmd/clean.py b/lib/spack/spack/cmd/clean.py
index 5a1831cda5a43d..3a9a7f32abc546 100644
--- a/lib/spack/spack/cmd/clean.py
+++ b/lib/spack/spack/cmd/clean.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,13 +12,13 @@
import spack.bootstrap
import spack.caches
-import spack.cmd.common.arguments as arguments
import spack.cmd.test
import spack.config
import spack.repo
import spack.stage
import spack.store
import spack.util.path
+from spack.cmd.common import arguments
from spack.paths import lib_path, var_path
description = "remove temporary build files and/or downloaded archives"
diff --git a/lib/spack/spack/cmd/clone.py b/lib/spack/spack/cmd/clone.py
index ade3c2a7390658..21ab0f8791ca41 100644
--- a/lib/spack/spack/cmd/clone.py
+++ b/lib/spack/spack/cmd/clone.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/commands.py b/lib/spack/spack/cmd/commands.py
index 25e1a24d0077d0..f9979339edb644 100644
--- a/lib/spack/spack/cmd/commands.py
+++ b/lib/spack/spack/cmd/commands.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/common/__init__.py b/lib/spack/spack/cmd/common/__init__.py
index 51329a1b6c3241..d530bd61769709 100644
--- a/lib/spack/spack/cmd/common/__init__.py
+++ b/lib/spack/spack/cmd/common/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/common/arguments.py b/lib/spack/spack/cmd/common/arguments.py
index 9aa3edac479f50..12f9e5b0d70c50 100644
--- a/lib/spack/spack/cmd/common/arguments.py
+++ b/lib/spack/spack/cmd/common/arguments.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -67,12 +67,13 @@ class ConstraintAction(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None):
# Query specs from command line
- self.values = values
- namespace.constraint = values
+ self.constraint = namespace.constraint = values
+ self.constraint_specs = namespace.constraint_specs = []
namespace.specs = self._specs
def _specs(self, **kwargs):
- qspecs = spack.cmd.parse_specs(self.values)
+ # store parsed specs in spec.constraint after a call to specs()
+ self.constraint_specs[:] = spack.cmd.parse_specs(self.constraint)
# If an environment is provided, we'll restrict the search to
# only its installed packages.
@@ -81,12 +82,12 @@ def _specs(self, **kwargs):
kwargs["hashes"] = set(env.all_hashes())
# return everything for an empty query.
- if not qspecs:
+ if not self.constraint_specs:
return spack.store.STORE.db.query(**kwargs)
# Return only matching stuff otherwise.
specs = {}
- for spec in qspecs:
+ for spec in self.constraint_specs:
for s in spack.store.STORE.db.query(spec, **kwargs):
# This is fast for already-concrete specs
specs[s.dag_hash()] = s
@@ -124,6 +125,33 @@ def __call__(self, parser, namespace, values, option_string=None):
setattr(namespace, self.dest, deptype)
+class ConfigScope(argparse.Action):
+ """Pick the currently configured config scopes."""
+
+ def __init__(self, *args, **kwargs) -> None:
+ kwargs.setdefault("metavar", spack.config.SCOPES_METAVAR)
+ super().__init__(*args, **kwargs)
+
+ @property
+ def default(self):
+ return self._default() if callable(self._default) else self._default
+
+ @default.setter
+ def default(self, value):
+ self._default = value
+
+ @property
+ def choices(self):
+ return spack.config.scopes().keys()
+
+ @choices.setter
+ def choices(self, value):
+ pass
+
+ def __call__(self, parser, namespace, values, option_string=None):
+ setattr(namespace, self.dest, values)
+
+
def _cdash_reporter(namespace):
"""Helper function to create a CDash reporter. This function gets an early reference to the
argparse namespace under construction, so it can later use it to create the object.
@@ -357,10 +385,11 @@ def install_status():
"--install-status",
action="store_true",
default=True,
- help="show install status of packages\n\npackages can be: "
- "installed [+], missing and needed by an installed package [-], "
- "installed in an upstream instance [^], "
- "or not installed (no annotation)",
+ help=(
+ "show install status of packages\n"
+ "[+] installed [^] installed in an upstream\n"
+ " - not installed [-] missing dep of installed package\n"
+ ),
)
diff --git a/lib/spack/spack/cmd/common/confirmation.py b/lib/spack/spack/cmd/common/confirmation.py
index 8a5cd2592b44e9..8033e776b9ba07 100644
--- a/lib/spack/spack/cmd/common/confirmation.py
+++ b/lib/spack/spack/cmd/common/confirmation.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,10 +21,11 @@ def confirm_action(specs: List[spack.spec.Spec], participle: str, noun: str):
participle: action expressed as a participle, e.g. "uninstalled"
noun: action expressed as a noun, e.g. "uninstallation"
"""
- tty.msg(f"The following {len(specs)} packages will be {participle}:\n")
spack.cmd.display_specs(specs, **display_args)
- print("")
- answer = tty.get_yes_or_no("Do you want to proceed?", default=False)
+ print()
+ answer = tty.get_yes_or_no(
+ f"{len(specs)} packages will be {participle}. Do you want to proceed?", default=False
+ )
if not answer:
tty.msg(f"Aborting {noun}")
sys.exit(0)
diff --git a/lib/spack/spack/cmd/common/env_utility.py b/lib/spack/spack/cmd/common/env_utility.py
index b8a6338d924f83..1d04e199d9cced 100644
--- a/lib/spack/spack/cmd/common/env_utility.py
+++ b/lib/spack/spack/cmd/common/env_utility.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -8,13 +8,13 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.deptypes as dt
import spack.error
import spack.paths
import spack.spec
import spack.store
from spack import build_environment, traverse
+from spack.cmd.common import arguments
from spack.context import Context
from spack.util.environment import dump_environment, pickle_environment
diff --git a/lib/spack/spack/cmd/compiler.py b/lib/spack/spack/cmd/compiler.py
index 76eb8d31508a67..006c6a79a75d9c 100644
--- a/lib/spack/spack/cmd/compiler.py
+++ b/lib/spack/spack/cmd/compiler.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,7 @@
import spack.compilers
import spack.config
import spack.spec
+from spack.cmd.common import arguments
description = "manage compilers"
section = "system"
@@ -23,8 +24,6 @@
def setup_parser(subparser):
sp = subparser.add_subparsers(metavar="SUBCOMMAND", dest="compiler_command")
- scopes = spack.config.scopes()
-
# Find
find_parser = sp.add_parser(
"find",
@@ -47,9 +46,8 @@ def setup_parser(subparser):
find_parser.add_argument("add_paths", nargs=argparse.REMAINDER)
find_parser.add_argument(
"--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=spack.config.default_modify_scope("compilers"),
+ action=arguments.ConfigScope,
+ default=lambda: spack.config.default_modify_scope("compilers"),
help="configuration scope to modify",
)
@@ -60,32 +58,20 @@ def setup_parser(subparser):
)
remove_parser.add_argument("compiler_spec")
remove_parser.add_argument(
- "--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=None,
- help="configuration scope to modify",
+ "--scope", action=arguments.ConfigScope, default=None, help="configuration scope to modify"
)
# List
list_parser = sp.add_parser("list", help="list available compilers")
list_parser.add_argument(
- "--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=spack.config.default_list_scope(),
- help="configuration scope to read from",
+ "--scope", action=arguments.ConfigScope, help="configuration scope to read from"
)
# Info
info_parser = sp.add_parser("info", help="show compiler paths")
info_parser.add_argument("compiler_spec")
info_parser.add_argument(
- "--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=spack.config.default_list_scope(),
- help="configuration scope to read from",
+ "--scope", action=arguments.ConfigScope, help="configuration scope to read from"
)
diff --git a/lib/spack/spack/cmd/compilers.py b/lib/spack/spack/cmd/compilers.py
index 6d0ff43ea2e88d..f38c958539ab7d 100644
--- a/lib/spack/spack/cmd/compilers.py
+++ b/lib/spack/spack/cmd/compilers.py
@@ -1,9 +1,9 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-import spack.config
+from spack.cmd.common import arguments
from spack.cmd.compiler import compiler_list
description = "list available compilers"
@@ -12,13 +12,8 @@
def setup_parser(subparser):
- scopes = spack.config.scopes()
-
subparser.add_argument(
- "--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- help="configuration scope to read/modify",
+ "--scope", action=arguments.ConfigScope, help="configuration scope to read/modify"
)
diff --git a/lib/spack/spack/cmd/concretize.py b/lib/spack/spack/cmd/concretize.py
index 47cccef9ba2bbf..e07c0eb18ccfd4 100644
--- a/lib/spack/spack/cmd/concretize.py
+++ b/lib/spack/spack/cmd/concretize.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/config.py b/lib/spack/spack/cmd/config.py
index 14514400a86ceb..61b27bcdfe7f2d 100644
--- a/lib/spack/spack/cmd/config.py
+++ b/lib/spack/spack/cmd/config.py
@@ -1,16 +1,16 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import collections
import os
import shutil
+import sys
from typing import List
import llnl.util.filesystem as fs
import llnl.util.tty as tty
-import spack.cmd.common.arguments
import spack.config
import spack.environment as ev
import spack.repo
@@ -18,6 +18,7 @@
import spack.schema.packages
import spack.store
import spack.util.spack_yaml as syaml
+from spack.cmd.common import arguments
from spack.util.editor import editor
description = "get and set configuration options"
@@ -26,14 +27,9 @@
def setup_parser(subparser):
- scopes = spack.config.scopes()
-
# User can only choose one
subparser.add_argument(
- "--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- help="configuration scope to read/modify",
+ "--scope", action=arguments.ConfigScope, help="configuration scope to read/modify"
)
sp = subparser.add_subparsers(metavar="SUBCOMMAND", dest="config_command")
@@ -53,6 +49,7 @@ def setup_parser(subparser):
blame_parser.add_argument(
"section",
help="configuration section to print\n\noptions: %(choices)s",
+ nargs="?",
metavar="section",
choices=spack.config.SECTION_SCHEMAS,
)
@@ -79,6 +76,10 @@ def setup_parser(subparser):
)
add_parser.add_argument("-f", "--file", help="file from which to set all config values")
+ change_parser = sp.add_parser("change", help="swap variants etc. on specs in config")
+ change_parser.add_argument("path", help="colon-separated path to config section with specs")
+ change_parser.add_argument("--match-spec", help="only change constraints that match this")
+
prefer_upstream_parser = sp.add_parser(
"prefer-upstream", help="set package preferences from upstream"
)
@@ -101,13 +102,13 @@ def setup_parser(subparser):
setup_parser.add_parser = add_parser
update = sp.add_parser("update", help="update configuration files to the latest format")
- spack.cmd.common.arguments.add_common_arguments(update, ["yes_to_all"])
+ arguments.add_common_arguments(update, ["yes_to_all"])
update.add_argument("section", help="section to update")
revert = sp.add_parser(
"revert", help="revert configuration files to their state before update"
)
- spack.cmd.common.arguments.add_common_arguments(revert, ["yes_to_all"])
+ arguments.add_common_arguments(revert, ["yes_to_all"])
revert.add_argument("section", help="section to update")
@@ -121,7 +122,7 @@ def _get_scope_and_section(args):
if not section and not scope:
env = ev.active_environment()
if env:
- scope = env.env_file_config_scope_name()
+ scope = env.scope_name
# set scope defaults
elif not scope:
@@ -136,32 +137,50 @@ def _get_scope_and_section(args):
return scope, section
+def print_configuration(args, *, blame: bool) -> None:
+ if args.scope and args.section is None:
+ tty.die(f"the argument --scope={args.scope} requires specifying a section.")
+
+ if args.section is not None:
+ spack.config.CONFIG.print_section(args.section, blame=blame, scope=args.scope)
+ return
+
+ print_flattened_configuration(blame=blame)
+
+
+def print_flattened_configuration(*, blame: bool) -> None:
+ """Prints to stdout a flattened version of the configuration.
+
+ Args:
+ blame: if True, shows file provenance for each entry in the configuration.
+ """
+ env = ev.active_environment()
+ if env is not None:
+ pristine = env.manifest.pristine_yaml_content
+ flattened = pristine.copy()
+ flattened[spack.schema.env.TOP_LEVEL_KEY] = pristine[spack.schema.env.TOP_LEVEL_KEY].copy()
+ else:
+ flattened = syaml.syaml_dict()
+ flattened[spack.schema.env.TOP_LEVEL_KEY] = syaml.syaml_dict()
+
+ for config_section in spack.config.SECTION_SCHEMAS:
+ current = spack.config.get(config_section)
+ flattened[spack.schema.env.TOP_LEVEL_KEY][config_section] = current
+ syaml.dump_config(flattened, stream=sys.stdout, default_flow_style=False, blame=blame)
+
+
def config_get(args):
"""Dump merged YAML configuration for a specific section.
With no arguments and an active environment, print the contents of
the environment's manifest file (spack.yaml).
"""
- scope, section = _get_scope_and_section(args)
-
- if section is not None:
- spack.config.CONFIG.print_section(section)
-
- elif scope and scope.startswith("env:"):
- config_file = spack.config.CONFIG.get_config_filename(scope, section)
- if os.path.exists(config_file):
- with open(config_file) as f:
- print(f.read())
- else:
- tty.die("environment has no %s file" % ev.manifest_name)
-
- else:
- tty.die("`spack config get` requires a section argument or an active environment.")
+ print_configuration(args, blame=False)
def config_blame(args):
"""Print out line-by-line blame of merged YAML."""
- spack.config.CONFIG.print_section(args.section, blame=True)
+ print_configuration(args, blame=True)
def config_edit(args):
@@ -248,6 +267,98 @@ def _can_update_config_file(scope: spack.config.ConfigScope, cfg_file):
return fs.can_write_to_dir(scope.path) and fs.can_access(cfg_file)
+def _config_change_requires_scope(path, spec, scope, match_spec=None):
+ """Return whether or not anything changed."""
+ require = spack.config.get(path, scope=scope)
+ if not require:
+ return False
+
+ changed = False
+
+ def override_cfg_spec(spec_str):
+ nonlocal changed
+
+ init_spec = spack.spec.Spec(spec_str)
+ # Overridden spec cannot be anonymous
+ init_spec.name = spec.name
+ if match_spec and not init_spec.satisfies(match_spec):
+ # If there is a match_spec, don't change constraints that
+ # don't match it
+ return spec_str
+ elif not init_spec.intersects(spec):
+ changed = True
+ return str(spack.spec.Spec.override(init_spec, spec))
+ else:
+ # Don't override things if they intersect, otherwise we'd
+ # be e.g. attaching +debug to every single version spec
+ return spec_str
+
+ if isinstance(require, str):
+ new_require = override_cfg_spec(require)
+ else:
+ new_require = []
+ for item in require:
+ if "one_of" in item:
+ item["one_of"] = [override_cfg_spec(x) for x in item["one_of"]]
+ elif "any_of" in item:
+ item["any_of"] = [override_cfg_spec(x) for x in item["any_of"]]
+ elif "spec" in item:
+ item["spec"] = override_cfg_spec(item["spec"])
+ elif isinstance(item, str):
+ item = override_cfg_spec(item)
+ else:
+ raise ValueError(f"Unexpected requirement: ({type(item)}) {str(item)}")
+ new_require.append(item)
+
+ spack.config.set(path, new_require, scope=scope)
+ return changed
+
+
+def _config_change(config_path, match_spec_str=None):
+ all_components = spack.config.process_config_path(config_path)
+ key_components = all_components[:-1]
+ key_path = ":".join(key_components)
+
+ spec = spack.spec.Spec(syaml.syaml_str(all_components[-1]))
+
+ match_spec = None
+ if match_spec_str:
+ match_spec = spack.spec.Spec(match_spec_str)
+
+ if key_components[-1] == "require":
+ # Extract the package name from the config path, which allows
+ # args.spec to be anonymous if desired
+ pkg_name = key_components[1]
+ spec.name = pkg_name
+
+ changed = False
+ for scope in spack.config.writable_scope_names():
+ changed |= _config_change_requires_scope(key_path, spec, scope, match_spec=match_spec)
+
+ if not changed:
+ existing_requirements = spack.config.get(key_path)
+ if isinstance(existing_requirements, str):
+ raise spack.config.ConfigError(
+ "'config change' needs to append a requirement,"
+ " but existing require: config is not a list"
+ )
+
+ ideal_scope_to_modify = None
+ for scope in spack.config.writable_scope_names():
+ if spack.config.get(key_path, scope=scope):
+ ideal_scope_to_modify = scope
+ break
+
+ update_path = f"{key_path}:[{str(spec)}]"
+ spack.config.add(update_path, scope=ideal_scope_to_modify)
+ else:
+ raise ValueError("'config change' can currently only change 'require' sections")
+
+
+def config_change(args):
+ _config_change(args.path, args.match_spec)
+
+
def config_update(args):
# Read the configuration files
spack.config.CONFIG.get_config(args.section, scope=args.scope)
@@ -475,5 +586,6 @@ def config(parser, args):
"update": config_update,
"revert": config_revert,
"prefer-upstream": config_prefer_upstream,
+ "change": config_change,
}
action[args.config_command](args)
diff --git a/lib/spack/spack/cmd/containerize.py b/lib/spack/spack/cmd/containerize.py
index b34b7783b68829..abb13d68c19bc4 100644
--- a/lib/spack/spack/cmd/containerize.py
+++ b/lib/spack/spack/cmd/containerize.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/create.py b/lib/spack/spack/cmd/create.py
index 946e9bc8b960d3..49f4ae217786e5 100644
--- a/lib/spack/spack/cmd/create.py
+++ b/lib/spack/spack/cmd/create.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -27,7 +27,7 @@
package_template = '''\
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -64,8 +64,9 @@ class {class_name}({base_class_name}):
# maintainers("github_user1", "github_user2")
# FIXME: Add the SPDX identifier of the project's license below.
- # See https://spdx.org/licenses/ for a list.
- license("UNKNOWN")
+ # See https://spdx.org/licenses/ for a list. Upon manually verifying
+ # the license, set checked_by to your Github username.
+ license("UNKNOWN", checked_by="github_user1")
{versions}
@@ -172,6 +173,14 @@ def configure_args(self):
return args"""
+class CargoPackageTemplate(PackageTemplate):
+ """Provides appropriate overrides for cargo-based packages"""
+
+ base_class_name = "CargoPackage"
+
+ body_def = ""
+
+
class CMakePackageTemplate(PackageTemplate):
"""Provides appropriate overrides for CMake-based packages"""
@@ -186,6 +195,14 @@ def cmake_args(self):
return args"""
+class GoPackageTemplate(PackageTemplate):
+ """Provides appropriate overrides for Go-module-based packages"""
+
+ base_class_name = "GoPackage"
+
+ body_def = ""
+
+
class LuaPackageTemplate(PackageTemplate):
"""Provides appropriate overrides for LuaRocks-based packages"""
@@ -575,28 +592,30 @@ def __init__(self, name, *args, **kwargs):
templates = {
- "autotools": AutotoolsPackageTemplate,
"autoreconf": AutoreconfPackageTemplate,
- "cmake": CMakePackageTemplate,
+ "autotools": AutotoolsPackageTemplate,
+ "bazel": BazelPackageTemplate,
"bundle": BundlePackageTemplate,
- "qmake": QMakePackageTemplate,
+ "cargo": CargoPackageTemplate,
+ "cmake": CMakePackageTemplate,
+ "generic": PackageTemplate,
+ "go": GoPackageTemplate,
+ "intel": IntelPackageTemplate,
+ "lua": LuaPackageTemplate,
+ "makefile": MakefilePackageTemplate,
"maven": MavenPackageTemplate,
- "scons": SconsPackageTemplate,
- "waf": WafPackageTemplate,
- "bazel": BazelPackageTemplate,
+ "meson": MesonPackageTemplate,
+ "octave": OctavePackageTemplate,
+ "perlbuild": PerlbuildPackageTemplate,
+ "perlmake": PerlmakePackageTemplate,
"python": PythonPackageTemplate,
+ "qmake": QMakePackageTemplate,
"r": RPackageTemplate,
"racket": RacketPackageTemplate,
- "perlmake": PerlmakePackageTemplate,
- "perlbuild": PerlbuildPackageTemplate,
- "octave": OctavePackageTemplate,
"ruby": RubyPackageTemplate,
- "makefile": MakefilePackageTemplate,
- "intel": IntelPackageTemplate,
- "meson": MesonPackageTemplate,
- "lua": LuaPackageTemplate,
+ "scons": SconsPackageTemplate,
"sip": SIPPackageTemplate,
- "generic": PackageTemplate,
+ "waf": WafPackageTemplate,
}
@@ -679,6 +698,8 @@ def __call__(self, stage, url):
clues = [
(r"/CMakeLists\.txt$", "cmake"),
(r"/NAMESPACE$", "r"),
+ (r"/Cargo\.toml$", "cargo"),
+ (r"/go\.mod$", "go"),
(r"/configure$", "autotools"),
(r"/configure\.(in|ac)$", "autoreconf"),
(r"/Makefile\.am$", "autoreconf"),
diff --git a/lib/spack/spack/cmd/debug.py b/lib/spack/spack/cmd/debug.py
index 7f729ad83eb114..1c9fb214f41fa9 100644
--- a/lib/spack/spack/cmd/debug.py
+++ b/lib/spack/spack/cmd/debug.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/deconcretize.py b/lib/spack/spack/cmd/deconcretize.py
index dbcf72ea8b3a29..ffb05eebe71ffa 100644
--- a/lib/spack/spack/cmd/deconcretize.py
+++ b/lib/spack/spack/cmd/deconcretize.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -10,10 +10,10 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.cmd.common.confirmation as confirmation
import spack.environment as ev
import spack.spec
+from spack.cmd.common import arguments
description = "remove specs from the concretized lockfile of an environment"
section = "environments"
diff --git a/lib/spack/spack/cmd/dependencies.py b/lib/spack/spack/cmd/dependencies.py
index ed85d47d2266d0..676da2f089f8f5 100644
--- a/lib/spack/spack/cmd/dependencies.py
+++ b/lib/spack/spack/cmd/dependencies.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -9,11 +9,11 @@
from llnl.util.tty.colify import colify
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.package_base
import spack.repo
import spack.store
+from spack.cmd.common import arguments
description = "show dependencies of a package"
section = "basic"
diff --git a/lib/spack/spack/cmd/dependents.py b/lib/spack/spack/cmd/dependents.py
index 733feaf71559b9..4cbb7cdd3cdc51 100644
--- a/lib/spack/spack/cmd/dependents.py
+++ b/lib/spack/spack/cmd/dependents.py
@@ -1,18 +1,19 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+import collections
import sys
import llnl.util.tty as tty
from llnl.util.tty.colify import colify
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.repo
import spack.store
+from spack.cmd.common import arguments
description = "show packages that depend on another"
section = "basic"
@@ -49,15 +50,25 @@ def inverted_dependencies():
dag = {}
for pkg_cls in spack.repo.PATH.all_package_classes():
dag.setdefault(pkg_cls.name, set())
- for dep in pkg_cls.dependencies:
+ for dep in pkg_cls.dependencies_by_name():
deps = [dep]
# expand virtuals if necessary
if spack.repo.PATH.is_virtual(dep):
deps += [s.name for s in spack.repo.PATH.providers_for(dep)]
- for d in deps:
- dag.setdefault(d, set()).add(pkg_cls.name)
+ dag = collections.defaultdict(set)
+ for pkg_cls in spack.repo.PATH.all_package_classes():
+ for _, deps_by_name in pkg_cls.dependencies.items():
+ for dep in deps_by_name:
+ deps = [dep]
+
+ # expand virtuals if necessary
+ if spack.repo.PATH.is_virtual(dep):
+ deps += [s.name for s in spack.repo.PATH.providers_for(dep)]
+
+ for d in deps:
+ dag[d].add(pkg_cls.name)
return dag
diff --git a/lib/spack/spack/cmd/deprecate.py b/lib/spack/spack/cmd/deprecate.py
index dca9b49756b501..dd61b0915ba49d 100644
--- a/lib/spack/spack/cmd/deprecate.py
+++ b/lib/spack/spack/cmd/deprecate.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,9 +20,9 @@
from llnl.util.symlink import symlink
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.store
+from spack.cmd.common import arguments
from spack.database import InstallStatuses
from spack.error import SpackError
diff --git a/lib/spack/spack/cmd/dev_build.py b/lib/spack/spack/cmd/dev_build.py
index 90008c8b3ef601..fbd8a78f092584 100644
--- a/lib/spack/spack/cmd/dev_build.py
+++ b/lib/spack/spack/cmd/dev_build.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -9,9 +9,9 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.repo
+from spack.cmd.common import arguments
description = "developer build: build from code in current working directory"
section = "build"
diff --git a/lib/spack/spack/cmd/develop.py b/lib/spack/spack/cmd/develop.py
index ac7e89596fa851..13a265af12580e 100644
--- a/lib/spack/spack/cmd/develop.py
+++ b/lib/spack/spack/cmd/develop.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -8,10 +8,10 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.spec
import spack.util.path
import spack.version
+from spack.cmd.common import arguments
from spack.error import SpackError
description = "add a spec to an environment's dev-build information"
@@ -45,10 +45,41 @@ def setup_parser(subparser):
arguments.add_common_arguments(subparser, ["spec"])
-def develop(parser, args):
- env = spack.cmd.require_active_env(cmd_name="develop")
+def _update_config(spec, path):
+ find_fn = lambda section: spec.name in section
+
+ entry = {"spec": str(spec)}
+ if path != spec.name:
+ entry["path"] = path
+
+ def change_fn(section):
+ section[spec.name] = entry
+
+ spack.config.change_or_add("develop", find_fn, change_fn)
+
+
+def _retrieve_develop_source(spec, abspath):
+ # "steal" the source code via staging API. We ask for a stage
+ # to be created, then copy it afterwards somewhere else. It would be
+ # better if we can create the `source_path` directly into its final
+ # destination.
+ pkg_cls = spack.repo.PATH.get_pkg_class(spec.name)
+ # We construct a package class ourselves, rather than asking for
+ # Spec.package, since Spec only allows this when it is concrete
+ package = pkg_cls(spec)
+ if isinstance(package.stage[0].fetcher, spack.fetch_strategy.GitFetchStrategy):
+ package.stage[0].fetcher.get_full_repo = True
+ # If we retrieved this version before and cached it, we may have
+ # done so without cloning the full git repo; likewise, any
+ # mirror might store an instance with truncated history.
+ package.stage[0].disable_mirrors()
+ package.stage.steal_source(abspath)
+
+
+def develop(parser, args):
if not args.spec:
+ env = spack.cmd.require_active_env(cmd_name="develop")
if args.clone is False:
raise SpackError("No spec provided to spack develop command")
@@ -66,7 +97,7 @@ def develop(parser, args):
# Both old syntax `spack develop pkg@x` and new syntax `spack develop pkg@=x`
# are currently supported.
spec = spack.spec.parse_with_version_concrete(entry["spec"])
- env.develop(spec=spec, path=path, clone=True)
+ _retrieve_develop_source(spec, abspath)
if not env.dev_specs:
tty.warn("No develop specs to download")
@@ -81,12 +112,16 @@ def develop(parser, args):
version = spec.versions.concrete_range_as_version
if not version:
raise SpackError("Packages to develop must have a concrete version")
-
spec.versions = spack.version.VersionList([version])
- # default path is relative path to spec.name
+ # If user does not specify --path, we choose to create a directory in the
+ # active environment's directory, named after the spec
path = args.path or spec.name
- abspath = spack.util.path.canonicalize_path(path, default_wd=env.path)
+ if not os.path.isabs(path):
+ env = spack.cmd.require_active_env(cmd_name="develop")
+ abspath = spack.util.path.canonicalize_path(path, default_wd=env.path)
+ else:
+ abspath = path
# clone default: only if the path doesn't exist
clone = args.clone
@@ -96,15 +131,24 @@ def develop(parser, args):
if not clone and not os.path.exists(abspath):
raise SpackError("Provided path %s does not exist" % abspath)
- if clone and os.path.exists(abspath):
- if args.force:
- shutil.rmtree(abspath)
- else:
- msg = "Path %s already exists and cannot be cloned to." % abspath
- msg += " Use `spack develop -f` to overwrite."
- raise SpackError(msg)
-
+ if clone:
+ if os.path.exists(abspath):
+ if args.force:
+ shutil.rmtree(abspath)
+ else:
+ msg = "Path %s already exists and cannot be cloned to." % abspath
+ msg += " Use `spack develop -f` to overwrite."
+ raise SpackError(msg)
+
+ _retrieve_develop_source(spec, abspath)
+
+ # Note: we could put develop specs in any scope, but I assume
+ # users would only ever want to do this for either (a) an active
+ # env or (b) a specified config file (e.g. that is included by
+ # an environment)
+ # TODO: when https://github.com/spack/spack/pull/35307 is merged,
+ # an active env is not required if a scope is specified
+ env = spack.cmd.require_active_env(cmd_name="develop")
+ tty.debug("Updating develop config for {0} transactionally".format(env.name))
with env.write_transaction():
- changed = env.develop(spec, path, clone)
- if changed:
- env.write()
+ _update_config(spec, path)
diff --git a/lib/spack/spack/cmd/diff.py b/lib/spack/spack/cmd/diff.py
index c654f6a5b8c6db..a841986355b71f 100644
--- a/lib/spack/spack/cmd/diff.py
+++ b/lib/spack/spack/cmd/diff.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -10,11 +10,11 @@
from llnl.util.tty.color import cprint, get_color_when
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.solver.asp as asp
import spack.util.environment
import spack.util.spack_json as sjson
+from spack.cmd.common import arguments
description = "compare two specs"
section = "basic"
@@ -44,6 +44,9 @@ def setup_parser(subparser):
action="append",
help="select the attributes to show (defaults to all)",
)
+ subparser.add_argument(
+ "--ignore", action="append", help="omit diffs related to these dependencies"
+ )
def shift(asp_function):
@@ -54,7 +57,7 @@ def shift(asp_function):
return asp.AspFunction(first, rest)
-def compare_specs(a, b, to_string=False, color=None):
+def compare_specs(a, b, to_string=False, color=None, ignore_packages=None):
"""
Generate a comparison, including diffs (for each side) and an intersection.
@@ -73,6 +76,14 @@ def compare_specs(a, b, to_string=False, color=None):
if color is None:
color = get_color_when()
+ a = a.copy()
+ b = b.copy()
+
+ if ignore_packages:
+ for pkg_name in ignore_packages:
+ a.trim(pkg_name)
+ b.trim(pkg_name)
+
# Prepare a solver setup to parse differences
setup = asp.SpackSolverSetup()
@@ -200,6 +211,8 @@ def diff(parser, args):
specs = []
for spec in spack.cmd.parse_specs(args.specs):
+ # If the spec has a hash, check it before disambiguating
+ spec.replace_hash()
if spec.concrete:
specs.append(spec)
else:
@@ -207,7 +220,7 @@ def diff(parser, args):
# Calculate the comparison (c)
color = False if args.dump_json else get_color_when()
- c = compare_specs(specs[0], specs[1], to_string=True, color=color)
+ c = compare_specs(specs[0], specs[1], to_string=True, color=color, ignore_packages=args.ignore)
# Default to all attributes
attributes = args.attribute or ["all"]
diff --git a/lib/spack/spack/cmd/docs.py b/lib/spack/spack/cmd/docs.py
index d386fb97319763..d0107a35ef23a4 100644
--- a/lib/spack/spack/cmd/docs.py
+++ b/lib/spack/spack/cmd/docs.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/edit.py b/lib/spack/spack/cmd/edit.py
index 79f441a67adf57..0134a522d82153 100644
--- a/lib/spack/spack/cmd/edit.py
+++ b/lib/spack/spack/cmd/edit.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/env.py b/lib/spack/spack/cmd/env.py
index bb1ad13ec2b985..ae5b320b19a8fb 100644
--- a/lib/spack/spack/cmd/env.py
+++ b/lib/spack/spack/cmd/env.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,7 +20,6 @@
import spack.cmd
import spack.cmd.common
import spack.cmd.common.arguments
-import spack.cmd.common.arguments as arguments
import spack.cmd.install
import spack.cmd.modules
import spack.cmd.uninstall
@@ -31,6 +30,7 @@
import spack.schema.env
import spack.spec
import spack.tengine
+from spack.cmd.common import arguments
from spack.util.environment import EnvironmentModifications
description = "manage virtual environments"
@@ -54,6 +54,104 @@
]
+#
+# env create
+#
+def env_create_setup_parser(subparser):
+ """create a new environment"""
+ subparser.add_argument(
+ "env_name",
+ metavar="env",
+ help=(
+ "name of managed environment or directory of the anonymous env "
+ "(when using --dir/-d) to activate"
+ ),
+ )
+ subparser.add_argument(
+ "-d", "--dir", action="store_true", help="create an environment in a specific directory"
+ )
+ subparser.add_argument(
+ "--keep-relative",
+ action="store_true",
+ help="copy relative develop paths verbatim into the new environment"
+ " when initializing from envfile",
+ )
+ view_opts = subparser.add_mutually_exclusive_group()
+ view_opts.add_argument(
+ "--without-view", action="store_true", help="do not maintain a view for this environment"
+ )
+ view_opts.add_argument(
+ "--with-view",
+ help="specify that this environment should maintain a view at the"
+ " specified path (by default the view is maintained in the"
+ " environment directory)",
+ )
+ subparser.add_argument(
+ "envfile",
+ nargs="?",
+ default=None,
+ help="either a lockfile (must end with '.json' or '.lock') or a manifest file",
+ )
+
+
+def env_create(args):
+ if args.with_view:
+ # Expand relative paths provided on the command line to the current working directory
+ # This way we interpret `spack env create --with-view ./view --dir ./env` as
+ # a view in $PWD/view, not $PWD/env/view. This is different from specifying a relative
+ # path in the manifest, which is resolved relative to the manifest file's location.
+ with_view = os.path.abspath(args.with_view)
+ elif args.without_view:
+ with_view = False
+ else:
+ # Note that 'None' means unspecified, in which case the Environment
+ # object could choose to enable a view by default. False means that
+ # the environment should not include a view.
+ with_view = None
+
+ env = _env_create(
+ args.env_name,
+ init_file=args.envfile,
+ dir=args.dir,
+ with_view=with_view,
+ keep_relative=args.keep_relative,
+ )
+
+ # Generate views, only really useful for environments created from spack.lock files.
+ env.regenerate_views()
+
+
+def _env_create(name_or_path, *, init_file=None, dir=False, with_view=None, keep_relative=False):
+ """Create a new environment, with an optional yaml description.
+
+ Arguments:
+ name_or_path (str): name of the environment to create, or path to it
+ init_file (str or file): optional initialization file -- can be
+ a JSON lockfile (*.lock, *.json) or YAML manifest file
+ dir (bool): if True, create an environment in a directory instead
+ of a named environment
+ keep_relative (bool): if True, develop paths are copied verbatim into
+ the new environment file, otherwise they may be made absolute if the
+ new environment is in a different location
+ """
+ if not dir:
+ env = ev.create(
+ name_or_path, init_file=init_file, with_view=with_view, keep_relative=keep_relative
+ )
+ tty.msg("Created environment '%s' in %s" % (name_or_path, env.path))
+ tty.msg("You can activate this environment with:")
+ tty.msg(" spack env activate %s" % (name_or_path))
+ return env
+
+ env = ev.create_in_dir(
+ name_or_path, init_file=init_file, with_view=with_view, keep_relative=keep_relative
+ )
+ tty.msg("Created environment in %s" % env.path)
+ tty.msg("You can activate this environment with:")
+ tty.msg(" spack env activate %s" % env.path)
+ return env
+
+
#
# env activate
#
@@ -118,22 +216,46 @@ def env_activate_setup_parser(subparser):
help="decorate the command line prompt when activating",
)
- env_options = subparser.add_mutually_exclusive_group()
- env_options.add_argument(
+ subparser.add_argument(
"--temp",
action="store_true",
default=False,
help="create and activate an environment in a temporary directory",
)
- env_options.add_argument(
- "-d", "--dir", default=None, help="activate the environment in this directory"
+ subparser.add_argument(
+ "--create",
+ action="store_true",
+ default=False,
+ help="create and activate the environment if it doesn't exist",
+ )
+ subparser.add_argument(
+ "--envfile",
+ nargs="?",
+ default=None,
+ help="either a lockfile (must end with '.json' or '.lock') or a manifest file",
+ )
+ subparser.add_argument(
+ "--keep-relative",
+ action="store_true",
+ help="copy relative develop paths verbatim into the new environment"
+ " when initializing from envfile",
)
- env_options.add_argument(
+ subparser.add_argument(
+ "-d",
+ "--dir",
+ default=False,
+ action="store_true",
+ help="activate environment based on the directory supplied",
+ )
+ subparser.add_argument(
metavar="env",
- dest="activate_env",
+ dest="env_name",
nargs="?",
default=None,
- help="name of environment to activate",
+ help=(
+ "name of managed environment or directory of the anonymous env"
+ " (when using --dir/-d) to activate"
+ ),
)
@@ -162,11 +284,17 @@ def env_activate(args):
if args.env or args.no_env or args.env_dir:
tty.die("Calling spack env activate with --env, --env-dir and --no-env is ambiguous")
- env_name_or_dir = args.activate_env or args.dir
+ # special parser error handling relative to the --temp flag
+ temp_conflicts = iter([args.keep_relative, args.dir, args.env_name, args.with_view])
+ if args.temp and any(temp_conflicts):
+ tty.die(
+ "spack env activate --temp cannot be combined with managed environments, --with-view,"
+ " --keep-relative, or --dir."
+ )
# When executing `spack env activate` without further arguments, activate
# the default environment. It's created when it doesn't exist yet.
- if not env_name_or_dir and not args.temp:
+ if not args.env_name and not args.temp:
short_name = "default"
if not ev.exists(short_name):
ev.create(short_name)
@@ -185,17 +313,25 @@ def env_activate(args):
_tty_info(f"Created and activated temporary environment in {env_path}")
# Managed environment
- elif ev.exists(env_name_or_dir) and not args.dir:
- env_path = ev.root(env_name_or_dir)
- short_name = env_name_or_dir
+ elif ev.exists(args.env_name) and not args.dir:
+ env_path = ev.root(args.env_name)
+ short_name = args.env_name
# Environment directory
- elif ev.is_env_dir(env_name_or_dir):
- env_path = os.path.abspath(env_name_or_dir)
+ elif ev.is_env_dir(args.env_name):
+ env_path = os.path.abspath(args.env_name)
short_name = os.path.basename(env_path)
+ # create if user requested, and then recall recursively
+ elif args.create:
+ tty.set_msg_enabled(False)
+ env_create(args)
+ tty.set_msg_enabled(True)
+ env_activate(args)
+ return
+
else:
- tty.die("No such environment: '%s'" % env_name_or_dir)
+ tty.die("No such environment: '%s'" % args.env_name)
env_prompt = "[%s]" % short_name
@@ -290,97 +426,6 @@ def env_deactivate(args):
sys.stdout.write(cmds)
-#
-# env create
-#
-def env_create_setup_parser(subparser):
- """create a new environment"""
- subparser.add_argument("create_env", metavar="env", help="name of environment to create")
- subparser.add_argument(
- "-d", "--dir", action="store_true", help="create an environment in a specific directory"
- )
- subparser.add_argument(
- "--keep-relative",
- action="store_true",
- help="copy relative develop paths verbatim into the new environment"
- " when initializing from envfile",
- )
- view_opts = subparser.add_mutually_exclusive_group()
- view_opts.add_argument(
- "--without-view", action="store_true", help="do not maintain a view for this environment"
- )
- view_opts.add_argument(
- "--with-view",
- help="specify that this environment should maintain a view at the"
- " specified path (by default the view is maintained in the"
- " environment directory)",
- )
- subparser.add_argument(
- "envfile",
- nargs="?",
- default=None,
- help="either a lockfile (must end with '.json' or '.lock') or a manifest file",
- )
-
-
-def env_create(args):
- if args.with_view:
- # Expand relative paths provided on the command line to the current working directory
- # This way we interpret `spack env create --with-view ./view --dir ./env` as
- # a view in $PWD/view, not $PWD/env/view. This is different from specifying a relative
- # path in the manifest, which is resolved relative to the manifest file's location.
- with_view = os.path.abspath(args.with_view)
- elif args.without_view:
- with_view = False
- else:
- # Note that 'None' means unspecified, in which case the Environment
- # object could choose to enable a view by default. False means that
- # the environment should not include a view.
- with_view = None
-
- env = _env_create(
- args.create_env,
- init_file=args.envfile,
- dir=args.dir,
- with_view=with_view,
- keep_relative=args.keep_relative,
- )
-
- # Generate views, only really useful for environments created from spack.lock files.
- env.regenerate_views()
-
-
-def _env_create(name_or_path, *, init_file=None, dir=False, with_view=None, keep_relative=False):
- """Create a new environment, with an optional yaml description.
-
- Arguments:
- name_or_path (str): name of the environment to create, or path to it
- init_file (str or file): optional initialization file -- can be
- a JSON lockfile (*.lock, *.json) or YAML manifest file
- dir (bool): if True, create an environment in a directory instead
- of a named environment
- keep_relative (bool): if True, develop paths are copied verbatim into
- the new environment file, otherwise they may be made absolute if the
- new environment is in a different location
- """
- if not dir:
- env = ev.create(
- name_or_path, init_file=init_file, with_view=with_view, keep_relative=keep_relative
- )
- tty.msg("Created environment '%s' in %s" % (name_or_path, env.path))
- tty.msg("You can activate this environment with:")
- tty.msg(" spack env activate %s" % (name_or_path))
- return env
-
- env = ev.create_in_dir(
- name_or_path, init_file=init_file, with_view=with_view, keep_relative=keep_relative
- )
- tty.msg("Created environment in %s" % env.path)
- tty.msg("You can activate this environment with:")
- tty.msg(" spack env activate %s" % env.path)
- return env
-
-
#
# env remove
#
diff --git a/lib/spack/spack/cmd/extensions.py b/lib/spack/spack/cmd/extensions.py
index 1bf5c9ecffc4d9..51527a10285f42 100644
--- a/lib/spack/spack/cmd/extensions.py
+++ b/lib/spack/spack/cmd/extensions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -10,10 +10,10 @@
from llnl.util.tty.colify import colify
import spack.cmd as cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.repo
import spack.store
+from spack.cmd.common import arguments
description = "list extensions for package"
section = "extensions"
diff --git a/lib/spack/spack/cmd/external.py b/lib/spack/spack/cmd/external.py
index 081ec8039438bd..29be54ba643806 100644
--- a/lib/spack/spack/cmd/external.py
+++ b/lib/spack/spack/cmd/external.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,12 +14,12 @@
import spack
import spack.cmd
-import spack.cmd.common.arguments
import spack.config
import spack.cray_manifest as cray_manifest
import spack.detection
import spack.error
import spack.util.environment
+from spack.cmd.common import arguments
description = "manage external packages in Spack configuration"
section = "config"
@@ -29,8 +29,6 @@
def setup_parser(subparser):
sp = subparser.add_subparsers(metavar="SUBCOMMAND", dest="external_command")
- scopes = spack.config.scopes()
-
find_parser = sp.add_parser("find", help="add external packages to packages.yaml")
find_parser.add_argument(
"--not-buildable",
@@ -48,15 +46,14 @@ def setup_parser(subparser):
)
find_parser.add_argument(
"--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=spack.config.default_modify_scope("packages"),
+ action=arguments.ConfigScope,
+ default=lambda: spack.config.default_modify_scope("packages"),
help="configuration scope to modify",
)
find_parser.add_argument(
"--all", action="store_true", help="search for all packages that Spack knows about"
)
- spack.cmd.common.arguments.add_common_arguments(find_parser, ["tags", "jobs"])
+ arguments.add_common_arguments(find_parser, ["tags", "jobs"])
find_parser.add_argument("packages", nargs=argparse.REMAINDER)
find_parser.epilog = (
'The search is by default on packages tagged with the "build-tools" or '
diff --git a/lib/spack/spack/cmd/fetch.py b/lib/spack/spack/cmd/fetch.py
index 227f7e89732a27..383c722ad664bb 100644
--- a/lib/spack/spack/cmd/fetch.py
+++ b/lib/spack/spack/cmd/fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,11 +6,11 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment as ev
import spack.repo
import spack.traverse
+from spack.cmd.common import arguments
description = "fetch archives for packages"
section = "build"
diff --git a/lib/spack/spack/cmd/find.py b/lib/spack/spack/cmd/find.py
index a0570038456018..070ac9bd0e7ff9 100644
--- a/lib/spack/spack/cmd/find.py
+++ b/lib/spack/spack/cmd/find.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,9 +12,9 @@
import spack.bootstrap
import spack.cmd as cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.repo
+from spack.cmd.common import arguments
from spack.database import InstallStatuses
description = "list and search installed packages"
@@ -261,10 +261,8 @@ def find(parser, args):
# Exit early with an error code if no package matches the constraint
if not results and args.constraint:
- msg = "No package matches the query: {0}"
- msg = msg.format(" ".join(args.constraint))
- tty.msg(msg)
- raise SystemExit(1)
+ constraint_str = " ".join(str(s) for s in args.constraint_specs)
+ tty.die(f"No package matches the query: {constraint_str}")
# If tags have been specified on the command line, filter by tags
if args.tags:
diff --git a/lib/spack/spack/cmd/gc.py b/lib/spack/spack/cmd/gc.py
index 9918bf7479fd05..7e55dc42406f56 100644
--- a/lib/spack/spack/cmd/gc.py
+++ b/lib/spack/spack/cmd/gc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -8,6 +8,7 @@
import spack.cmd.common.arguments
import spack.cmd.common.confirmation
import spack.cmd.uninstall
+import spack.deptypes as dt
import spack.environment as ev
import spack.store
@@ -17,31 +18,91 @@
def setup_parser(subparser):
+ subparser.add_argument(
+ "-E",
+ "--except-any-environment",
+ action="store_true",
+ help="remove everything unless needed by an environment",
+ )
+ subparser.add_argument(
+ "-e",
+ "--except-environment",
+ metavar="ENV",
+ action="append",
+ default=[],
+ help="remove everything unless needed by specified environment\n"
+ "you can list multiple environments, or specify directory\n"
+ "environments by path.",
+ )
+ subparser.add_argument(
+ "-b",
+ "--keep-build-dependencies",
+ action="store_true",
+ help="do not remove installed build-only dependencies of roots\n"
+ "(default is to keep only link & run dependencies)",
+ )
spack.cmd.common.arguments.add_common_arguments(subparser, ["yes_to_all"])
+def roots_from_environments(args, active_env):
+ # if we're using -E or -e, make a list of environments whose roots we should consider.
+ all_environments = []
+
+ # -E will garbage collect anything not needed by any env, including the current one
+ if args.except_any_environment:
+ all_environments += list(ev.all_environments())
+ if active_env:
+ all_environments.append(active_env)
+
+ # -e says "also preserve things needed by this particular env"
+ for env_name_or_dir in args.except_environment:
+ print("HMM", env_name_or_dir)
+ if ev.exists(env_name_or_dir):
+ env = ev.read(env_name_or_dir)
+ elif ev.is_env_dir(env_name_or_dir):
+ env = ev.Environment(env_name_or_dir)
+ else:
+ tty.die(f"No such environment: '{env_name_or_dir}'")
+ all_environments.append(env)
+
+ # add root hashes from all considered environments to list of roots
+ root_hashes = set()
+ for env in all_environments:
+ root_hashes |= set(env.concretized_order)
+
+ return root_hashes
+
+
def gc(parser, args):
- specs = spack.store.STORE.db.unused_specs
-
- # Restrict garbage collection to the active environment
- # speculating over roots that are yet to be installed
- env = ev.active_environment()
- if env:
- msg = 'Restricting the garbage collection to the "{0}" environment'
- tty.msg(msg.format(env.name))
- env.concretize()
- roots = [s for s in env.roots()]
- all_hashes = set([s.dag_hash() for r in roots for s in r.traverse()])
- lr_hashes = set([s.dag_hash() for r in roots for s in r.traverse(deptype=("link", "run"))])
- maybe_to_be_removed = all_hashes - lr_hashes
- specs = [s for s in specs if s.dag_hash() in maybe_to_be_removed]
-
- if not specs:
- msg = "There are no unused specs. Spack's store is clean."
- tty.msg(msg)
- return
-
- if not args.yes_to_all:
- spack.cmd.common.confirmation.confirm_action(specs, "uninstalled", "uninstallation")
-
- spack.cmd.uninstall.do_uninstall(specs, force=False)
+ deptype = dt.LINK | dt.RUN
+ if args.keep_build_dependencies:
+ deptype |= dt.BUILD
+
+ active_env = ev.active_environment()
+
+ # wrap the whole command with a read transaction to avoid multiple
+ with spack.store.STORE.db.read_transaction():
+ if args.except_environment or args.except_any_environment:
+ # if either of these is specified, we ignore the active environment and garbage
+ # collect anything NOT in specified environments.
+ root_hashes = roots_from_environments(args, active_env)
+
+ elif active_env:
+ # only gc what's in current environment
+ tty.msg(f"Restricting garbage collection to environment '{active_env.name}'")
+ root_hashes = set(spack.store.STORE.db.all_hashes()) # keep everything
+ root_hashes -= set(active_env.all_hashes()) # except this env
+ root_hashes |= set(active_env.concretized_order) # but keep its roots
+ else:
+ # consider all explicit specs roots (the default for db.unused_specs())
+ root_hashes = None
+
+ specs = spack.store.STORE.db.unused_specs(root_hashes=root_hashes, deptype=deptype)
+ if not specs:
+ tty.msg("There are no unused specs. Spack's store is clean.")
+ return
+
+ if not args.yes_to_all:
+ spack.cmd.common.confirmation.confirm_action(specs, "uninstalled", "uninstall")
+
+ spack.cmd.uninstall.do_uninstall(specs, force=False)
diff --git a/lib/spack/spack/cmd/gpg.py b/lib/spack/spack/cmd/gpg.py
index 0bce5f473664c5..d05db0a61e9493 100644
--- a/lib/spack/spack/cmd/gpg.py
+++ b/lib/spack/spack/cmd/gpg.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -7,11 +7,11 @@
import os
import spack.binary_distribution
-import spack.cmd.common.arguments as arguments
import spack.mirror
import spack.paths
import spack.util.gpg
import spack.util.url
+from spack.cmd.common import arguments
description = "handle GPG actions for spack"
section = "packaging"
diff --git a/lib/spack/spack/cmd/graph.py b/lib/spack/spack/cmd/graph.py
index 4122d8d58894e2..36a49a1ea06611 100644
--- a/lib/spack/spack/cmd/graph.py
+++ b/lib/spack/spack/cmd/graph.py
@@ -1,14 +1,14 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from llnl.util import tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment as ev
import spack.store
+from spack.cmd.common import arguments
from spack.graph import DAGWithDependencyTypes, SimpleDAG, graph_ascii, graph_dot, static_graph_dot
description = "generate graphs of package dependency relationships"
@@ -18,7 +18,14 @@
def setup_parser(subparser):
setup_parser.parser = subparser
+ subparser.epilog = """
+Outside of an environment, the command concretizes specs and graphs them, unless the
+--installed option is given. In that case specs are matched from the current DB.
+If an environment is active, specs are matched from the currently available concrete specs
+in the lockfile.
+
+"""
method = subparser.add_mutually_exclusive_group()
method.add_argument(
"-a", "--ascii", action="store_true", help="draw graph as ascii to stdout (default)"
@@ -41,39 +48,40 @@ def setup_parser(subparser):
)
subparser.add_argument(
- "-i",
- "--installed",
- action="store_true",
- help="graph installed specs, or specs in the active env (implies --dot)",
+ "-i", "--installed", action="store_true", help="graph specs from the DB"
)
arguments.add_common_arguments(subparser, ["deptype", "specs"])
def graph(parser, args):
- if args.installed and args.specs:
- tty.die("cannot specify specs with --installed")
+ env = ev.active_environment()
+ if args.installed and env:
+ tty.die("cannot use --installed with an active environment")
if args.color and not args.dot:
tty.die("the --color option can be used only with --dot")
if args.installed:
- args.dot = True
- env = ev.active_environment()
- if env:
- specs = env.concrete_roots()
- else:
+ if not args.specs:
specs = spack.store.STORE.db.query()
+ else:
+ result = []
+ for item in args.specs:
+ result.extend(spack.store.STORE.db.query(item))
+ specs = list(set(result))
+ elif env:
+ specs = env.concrete_roots()
+ if args.specs:
+ specs = env.all_matching_specs(*args.specs)
else:
specs = spack.cmd.parse_specs(args.specs, concretize=not args.static)
if not specs:
- setup_parser.parser.print_help()
- return 1
+ tty.die("no spec matching the query")
if args.static:
- args.dot = True
static_graph_dot(specs, depflag=args.deptype)
return
diff --git a/lib/spack/spack/cmd/help.py b/lib/spack/spack/cmd/help.py
index eeba15b431a851..d8e053f8ae03ad 100644
--- a/lib/spack/spack/cmd/help.py
+++ b/lib/spack/spack/cmd/help.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/info.py b/lib/spack/spack/cmd/info.py
index af03fd93975baf..b007c6051639e8 100644
--- a/lib/spack/spack/cmd/info.py
+++ b/lib/spack/spack/cmd/info.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,13 +11,13 @@
import llnl.util.tty.color as color
from llnl.util.tty.colify import colify
-import spack.cmd.common.arguments as arguments
import spack.deptypes as dt
import spack.fetch_strategy as fs
import spack.install_test
import spack.repo
import spack.spec
import spack.version
+from spack.cmd.common import arguments
from spack.package_base import preferred_version
description = "get detailed information on a particular package"
@@ -139,7 +139,7 @@ def lines(self):
yield " " + self.fmt % t
-def print_dependencies(pkg):
+def print_dependencies(pkg, args):
"""output build, link, and run package dependencies"""
for deptype in ("build", "link", "run"):
@@ -152,7 +152,7 @@ def print_dependencies(pkg):
color.cprint(" None")
-def print_detectable(pkg):
+def print_detectable(pkg, args):
"""output information on external detection"""
color.cprint("")
@@ -180,7 +180,7 @@ def print_detectable(pkg):
color.cprint(" False")
-def print_maintainers(pkg):
+def print_maintainers(pkg, args):
"""output package maintainers"""
if len(pkg.maintainers) > 0:
@@ -189,7 +189,7 @@ def print_maintainers(pkg):
color.cprint(section_title("Maintainers: ") + mnt)
-def print_phases(pkg):
+def print_phases(pkg, args):
"""output installation phases"""
if hasattr(pkg.builder, "phases") and pkg.builder.phases:
@@ -201,7 +201,7 @@ def print_phases(pkg):
color.cprint(phase_str)
-def print_tags(pkg):
+def print_tags(pkg, args):
"""output package tags"""
color.cprint("")
@@ -213,7 +213,7 @@ def print_tags(pkg):
color.cprint(" None")
-def print_tests(pkg):
+def print_tests(pkg, args):
"""output relevant build-time and stand-alone tests"""
# Some built-in base packages (e.g., Autotools) define callback (e.g.,
@@ -407,12 +407,15 @@ def print_variants_by_name(pkg):
sys.stdout.write("\n")
-def print_variants(pkg):
+def print_variants(pkg, args):
"""output variants"""
- print_variants_grouped_by_when(pkg)
+ if args.variants_by_name:
+ print_variants_by_name(pkg)
+ else:
+ print_variants_grouped_by_when(pkg)
-def print_versions(pkg):
+def print_versions(pkg, args):
"""output versions"""
color.cprint("")
@@ -465,19 +468,13 @@ def get_url(version):
color.cprint(line)
-def print_virtuals(pkg):
+def print_virtuals(pkg, args):
"""output virtual packages"""
color.cprint("")
color.cprint(section_title("Virtual Packages: "))
if pkg.provided:
- inverse_map = {}
- for spec, whens in pkg.provided.items():
- for when in whens:
- if when not in inverse_map:
- inverse_map[when] = set()
- inverse_map[when].add(spec)
- for when, specs in reversed(sorted(inverse_map.items())):
+ for when, specs in reversed(sorted(pkg.provided.items())):
line = " %s provides %s" % (
when.colorized(),
", ".join(s.colorized() for s in specs),
@@ -488,7 +485,7 @@ def print_virtuals(pkg):
color.cprint(" None")
-def print_licenses(pkg):
+def print_licenses(pkg, args):
"""Output the licenses of the project."""
color.cprint("")
@@ -523,17 +520,13 @@ def info(parser, args):
if getattr(pkg, "homepage"):
color.cprint(section_title("Homepage: ") + pkg.homepage)
- _print_variants = (
- print_variants_by_name if args.variants_by_name else print_variants_grouped_by_when
- )
-
# Now output optional information in expected order
sections = [
(args.all or args.maintainers, print_maintainers),
(args.all or args.detectable, print_detectable),
(args.all or args.tags, print_tags),
(args.all or not args.no_versions, print_versions),
- (args.all or not args.no_variants, _print_variants),
+ (args.all or not args.no_variants, print_variants),
(args.all or args.phases, print_phases),
(args.all or not args.no_dependencies, print_dependencies),
(args.all or args.virtuals, print_virtuals),
@@ -542,6 +535,6 @@ def info(parser, args):
]
for print_it, func in sections:
if print_it:
- func(pkg)
+ func(pkg, args)
color.cprint("")
diff --git a/lib/spack/spack/cmd/install.py b/lib/spack/spack/cmd/install.py
index b74f982755115b..9c66c661a071b5 100644
--- a/lib/spack/spack/cmd/install.py
+++ b/lib/spack/spack/cmd/install.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,7 +14,6 @@
import spack.build_environment
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment as ev
import spack.fetch_strategy
@@ -23,6 +22,7 @@
import spack.report
import spack.spec
import spack.store
+from spack.cmd.common import arguments
from spack.error import SpackError
from spack.installer import PackageInstaller
@@ -162,8 +162,8 @@ def setup_parser(subparser):
"--no-check-signature",
action="store_true",
dest="unsigned",
- default=False,
- help="do not check signatures of binary packages",
+ default=None,
+ help="do not check signatures of binary packages (override mirror config)",
)
subparser.add_argument(
"--show-log-on-error",
@@ -290,11 +290,11 @@ def require_user_confirmation_for_overwrite(concrete_specs, args):
def _dump_log_on_error(e: spack.build_environment.InstallError):
e.print_context()
assert e.pkg, "Expected InstallError to include the associated package"
- if not os.path.exists(e.pkg.build_log_path):
+ if not os.path.exists(e.pkg.log_path):
tty.error("'spack install' created no log.")
else:
sys.stderr.write("Full build log:\n")
- with open(e.pkg.build_log_path, errors="replace") as log:
+ with open(e.pkg.log_path, errors="replace") as log:
shutil.copyfileobj(log, sys.stderr)
diff --git a/lib/spack/spack/cmd/license.py b/lib/spack/spack/cmd/license.py
index 9326ca1b4dfe37..7e2caf1b55bc9a 100644
--- a/lib/spack/spack/cmd/license.py
+++ b/lib/spack/spack/cmd/license.py
@@ -1,8 +1,9 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+import datetime
import os
import re
from collections import defaultdict
@@ -26,15 +27,22 @@
licensed_files = [
# spack scripts
r"^bin/spack$",
+ r"^bin/spack\.bat$",
+ r"^bin/spack\.ps1$",
+ r"^bin/spack_pwsh\.ps1$",
+ r"^bin/sbang$",
r"^bin/spack-python$",
+ r"^bin/haspywin\.py$",
# all of spack core except unparse
+ r"^lib/spack/spack_installable/main\.py$",
r"^lib/spack/spack/(?!(test/)?util/unparse).*\.py$",
r"^lib/spack/spack/.*\.sh$",
r"^lib/spack/spack/.*\.lp$",
r"^lib/spack/llnl/.*\.py$",
r"^lib/spack/env/cc$",
- # special case this test data file, which has a license header
+ # special case some test data files that have license headers
r"^lib/spack/spack/test/data/style/broken.dummy",
+ r"^lib/spack/spack/test/data/unparse/.*\.txt",
# rst files in documentation
r"^lib/spack/docs/(?!command_index|spack|llnl).*\.rst$",
r"^lib/spack/docs/.*\.py$",
@@ -46,6 +54,7 @@
r"^share/spack/.*\.bash$",
r"^share/spack/.*\.csh$",
r"^share/spack/.*\.fish$",
+ r"share/spack/setup-env\.ps1$",
r"^share/spack/qa/run-[^/]*$",
r"^share/spack/bash/spack-completion.in$",
# action workflows
@@ -88,14 +97,14 @@ def list_files(args):
OLD_LICENSE, SPDX_MISMATCH, GENERAL_MISMATCH = range(1, 4)
#: Latest year that copyright applies. UPDATE THIS when bumping copyright.
-latest_year = 2023
+latest_year = datetime.date.today().year
strict_date = r"Copyright 2013-%s" % latest_year
#: regexes for valid license lines at tops of files
license_line_regexes = [
r"Copyright 2013-(%d|%d) Lawrence Livermore National Security, LLC and other"
% (latest_year - 1, latest_year), # allow a little leeway: current or last year
- r"Spack Project Developers\. See the top-level COPYRIGHT file for details.",
+ r"(Spack|sbang) [Pp]roject [Dd]evelopers\. See the top-level COPYRIGHT file for details.",
r"SPDX-License-Identifier: \(Apache-2\.0 OR MIT\)",
]
@@ -127,7 +136,7 @@ def _check_license(lines, path):
found = []
for line in lines:
- line = re.sub(r"^[\s#\%\.]*", "", line)
+ line = re.sub(r"^[\s#\%\.\:]*", "", line)
line = line.rstrip()
for i, line_regex in enumerate(license_line_regexes):
if re.match(line_regex, line):
diff --git a/lib/spack/spack/cmd/list.py b/lib/spack/spack/cmd/list.py
index a46d7fa5e079c6..eb34e388419c97 100644
--- a/lib/spack/spack/cmd/list.py
+++ b/lib/spack/spack/cmd/list.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,9 +15,9 @@
import llnl.util.tty as tty
from llnl.util.tty.colify import colify
-import spack.cmd.common.arguments as arguments
import spack.deptypes as dt
import spack.repo
+from spack.cmd.common import arguments
from spack.version import VersionList
description = "list and search available packages"
@@ -40,6 +40,16 @@ def setup_parser(subparser):
nargs=argparse.REMAINDER,
help="optional case-insensitive glob patterns to filter results",
)
+ subparser.add_argument(
+ "-r",
+ "--repo",
+ "-N",
+ "--namespace",
+ dest="repos",
+ action="append",
+ default=[],
+ help="only list packages from the specified repo/namespace",
+ )
subparser.add_argument(
"-d",
"--search-description",
@@ -307,7 +317,11 @@ def list(parser, args):
formatter = formatters[args.format]
# Retrieve the names of all the packages
- pkgs = set(spack.repo.all_package_names(args.virtuals))
+ repos = [spack.repo.PATH]
+ if args.repos:
+ repos = [spack.repo.PATH.get_repo(name) for name in args.repos]
+ pkgs = set().union(*[set(repo.all_package_names(args.virtuals)) for repo in repos])
+
# Filter the set appropriately
sorted_packages = filter_by_name(pkgs, args)
diff --git a/lib/spack/spack/cmd/load.py b/lib/spack/spack/cmd/load.py
index 5cdd2909c7ae40..a34b72ebb202d8 100644
--- a/lib/spack/spack/cmd/load.py
+++ b/lib/spack/spack/cmd/load.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -8,12 +8,12 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.cmd.find
import spack.environment as ev
import spack.store
import spack.user_environment as uenv
import spack.util.environment
+from spack.cmd.common import arguments
description = "add package to the user environment"
section = "user environment"
@@ -98,15 +98,15 @@ def load(parser, args):
spack.cmd.display_specs(results)
return
+ constraint_specs = spack.cmd.parse_specs(args.constraint)
specs = [
- spack.cmd.disambiguate_spec(spec, env, first=args.load_first)
- for spec in spack.cmd.parse_specs(args.constraint)
+ spack.cmd.disambiguate_spec(spec, env, first=args.load_first) for spec in constraint_specs
]
if not args.shell:
- specs_str = " ".join(args.constraint) or "SPECS"
+ specs_str = " ".join(str(s) for s in constraint_specs) or "SPECS"
spack.cmd.common.shell_init_instructions(
- "spack load", " eval `spack load {sh_arg} %s`" % specs_str
+ "spack load", f" eval `spack load {{sh_arg}} {specs_str}`"
)
return 1
diff --git a/lib/spack/spack/cmd/location.py b/lib/spack/spack/cmd/location.py
index b4bbaf54b82a8a..d2bac9b9ba3227 100644
--- a/lib/spack/spack/cmd/location.py
+++ b/lib/spack/spack/cmd/location.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -9,11 +9,11 @@
import spack.builder
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.paths
import spack.repo
import spack.stage
+from spack.cmd.common import arguments
description = "print out locations of packages and spack directories"
section = "basic"
diff --git a/lib/spack/spack/cmd/log_parse.py b/lib/spack/spack/cmd/log_parse.py
index 6746ef11ffe2cf..e64e56ae491207 100644
--- a/lib/spack/spack/cmd/log_parse.py
+++ b/lib/spack/spack/cmd/log_parse.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/maintainers.py b/lib/spack/spack/cmd/maintainers.py
index 80140f6291f014..6875fa15669b98 100644
--- a/lib/spack/spack/cmd/maintainers.py
+++ b/lib/spack/spack/cmd/maintainers.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/make_installer.py b/lib/spack/spack/cmd/make_installer.py
index 986631d39f778d..dbca577118b02d 100644
--- a/lib/spack/spack/cmd/make_installer.py
+++ b/lib/spack/spack/cmd/make_installer.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/mark.py b/lib/spack/spack/cmd/mark.py
index 61939c9458322c..cf816a21f544cf 100644
--- a/lib/spack/spack/cmd/mark.py
+++ b/lib/spack/spack/cmd/mark.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -8,11 +8,11 @@
from llnl.util import tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.error
import spack.package_base
import spack.repo
import spack.store
+from spack.cmd.common import arguments
from spack.database import InstallStatuses
description = "mark packages as explicitly or implicitly installed"
diff --git a/lib/spack/spack/cmd/mirror.py b/lib/spack/spack/cmd/mirror.py
index 1036dcbe917e35..fe9cafd54550f8 100644
--- a/lib/spack/spack/cmd/mirror.py
+++ b/lib/spack/spack/cmd/mirror.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,7 +11,6 @@
import spack.caches
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.concretize
import spack.config
import spack.environment as ev
@@ -20,6 +19,7 @@
import spack.spec
import spack.util.path
import spack.util.web as web_util
+from spack.cmd.common import arguments
from spack.error import SpackError
description = "manage mirrors (source and binary)"
@@ -88,18 +88,14 @@ def setup_parser(subparser):
"--mirror-url", metavar="mirror_url", type=str, help="find mirror to destroy by url"
)
- # used to construct scope arguments below
- scopes = spack.config.scopes()
-
# Add
add_parser = sp.add_parser("add", help=mirror_add.__doc__)
add_parser.add_argument("name", help="mnemonic name for mirror", metavar="mirror")
add_parser.add_argument("url", help="url of mirror directory from 'spack mirror create'")
add_parser.add_argument(
"--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=spack.config.default_modify_scope(),
+ action=arguments.ConfigScope,
+ default=lambda: spack.config.default_modify_scope(),
help="configuration scope to modify",
)
add_parser.add_argument(
@@ -111,15 +107,31 @@ def setup_parser(subparser):
"and source use `--type binary --type source` (default)"
),
)
+ add_parser_signed = add_parser.add_mutually_exclusive_group(required=False)
+ add_parser_signed.add_argument(
+ "--unsigned",
+ help="do not require signing and signature verification when pushing and installing from "
+ "this build cache",
+ action="store_false",
+ default=None,
+ dest="signed",
+ )
+ add_parser_signed.add_argument(
+ "--signed",
+ help="require signing and signature verification when pushing and installing from this "
+ "build cache",
+ action="store_true",
+ default=None,
+ dest="signed",
+ )
arguments.add_connection_args(add_parser, False)
# Remove
remove_parser = sp.add_parser("remove", aliases=["rm"], help=mirror_remove.__doc__)
remove_parser.add_argument("name", help="mnemonic name for mirror", metavar="mirror")
remove_parser.add_argument(
"--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=spack.config.default_modify_scope(),
+ action=arguments.ConfigScope,
+ default=lambda: spack.config.default_modify_scope(),
help="configuration scope to modify",
)
@@ -136,9 +148,8 @@ def setup_parser(subparser):
)
set_url_parser.add_argument(
"--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=spack.config.default_modify_scope(),
+ action=arguments.ConfigScope,
+ default=lambda: spack.config.default_modify_scope(),
help="configuration scope to modify",
)
arguments.add_connection_args(set_url_parser, False)
@@ -163,11 +174,27 @@ def setup_parser(subparser):
),
)
set_parser.add_argument("--url", help="url of mirror directory from 'spack mirror create'")
+ set_parser_unsigned = set_parser.add_mutually_exclusive_group(required=False)
+ set_parser_unsigned.add_argument(
+ "--unsigned",
+ help="do not require signing and signature verification when pushing and installing from "
+ "this build cache",
+ action="store_false",
+ default=None,
+ dest="signed",
+ )
+ set_parser_unsigned.add_argument(
+ "--signed",
+ help="require signing and signature verification when pushing and installing from this "
+ "build cache",
+ action="store_true",
+ default=None,
+ dest="signed",
+ )
set_parser.add_argument(
"--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=spack.config.default_modify_scope(),
+ action=arguments.ConfigScope,
+ default=lambda: spack.config.default_modify_scope(),
help="configuration scope to modify",
)
arguments.add_connection_args(set_parser, False)
@@ -175,11 +202,7 @@ def setup_parser(subparser):
# List
list_parser = sp.add_parser("list", help=mirror_list.__doc__)
list_parser.add_argument(
- "--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=spack.config.default_list_scope(),
- help="configuration scope to read from",
+ "--scope", action=arguments.ConfigScope, help="configuration scope to read from"
)
@@ -194,6 +217,7 @@ def mirror_add(args):
or args.type
or args.oci_username
or args.oci_password
+ or args.signed is not None
):
connection = {"url": args.url}
if args.s3_access_key_id and args.s3_access_key_secret:
@@ -209,6 +233,8 @@ def mirror_add(args):
if args.type:
connection["binary"] = "binary" in args.type
connection["source"] = "source" in args.type
+ if args.signed is not None:
+ connection["signed"] = args.signed
mirror = spack.mirror.Mirror(connection, name=args.name)
else:
mirror = spack.mirror.Mirror(args.url, name=args.name)
@@ -241,6 +267,8 @@ def _configure_mirror(args):
changes["endpoint_url"] = args.s3_endpoint_url
if args.oci_username and args.oci_password:
changes["access_pair"] = [args.oci_username, args.oci_password]
+ if getattr(args, "signed", None) is not None:
+ changes["signed"] = args.signed
# argparse cannot distinguish between --binary and --no-binary when same dest :(
# notice that set-url does not have these args, so getattr
diff --git a/lib/spack/spack/cmd/module.py b/lib/spack/spack/cmd/module.py
index c7735149ab774d..26bb9636ab762b 100644
--- a/lib/spack/spack/cmd/module.py
+++ b/lib/spack/spack/cmd/module.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/modules/__init__.py b/lib/spack/spack/cmd/modules/__init__.py
index 65b174a06f6628..1cb04189b9278a 100644
--- a/lib/spack/spack/cmd/modules/__init__.py
+++ b/lib/spack/spack/cmd/modules/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,11 +14,11 @@
from llnl.util.tty import color
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.modules
import spack.modules.common
import spack.repo
+from spack.cmd.common import arguments
description = "manipulate module files"
section = "environment"
@@ -388,21 +388,15 @@ def modules_cmd(parser, args, module_type, callbacks=callbacks):
callbacks[args.subparser_name](module_type, specs, args)
except MultipleSpecsMatch:
- msg = "the constraint '{query}' matches multiple packages:\n"
+ query = " ".join(str(s) for s in args.constraint_specs)
+ msg = f"the constraint '{query}' matches multiple packages:\n"
for s in specs:
spec_fmt = "{hash:7} {name}{@version}{%compiler}"
spec_fmt += "{compiler_flags}{variants}{arch=architecture}"
msg += "\t" + s.cformat(spec_fmt) + "\n"
- tty.error(msg.format(query=args.constraint))
- tty.die(
- "In this context exactly **one** match is needed: "
- "please specify your constraints better."
- )
+ tty.die(msg, "In this context exactly *one* match is needed.")
except NoSpecMatches:
- msg = "the constraint '{query}' matches no package."
- tty.error(msg.format(query=args.constraint))
- tty.die(
- "In this context exactly **one** match is needed: "
- "please specify your constraints better."
- )
+ query = " ".join(str(s) for s in args.constraint_specs)
+ msg = f"the constraint '{query}' matches no package."
+ tty.die(msg, "In this context exactly *one* match is needed.")
diff --git a/lib/spack/spack/cmd/modules/lmod.py b/lib/spack/spack/cmd/modules/lmod.py
index f973e9b51534f8..4fd6992a47a97d 100644
--- a/lib/spack/spack/cmd/modules/lmod.py
+++ b/lib/spack/spack/cmd/modules/lmod.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/modules/tcl.py b/lib/spack/spack/cmd/modules/tcl.py
index 09f9e1d6c92d7f..4ca8ece704479e 100644
--- a/lib/spack/spack/cmd/modules/tcl.py
+++ b/lib/spack/spack/cmd/modules/tcl.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/patch.py b/lib/spack/spack/cmd/patch.py
index 2d2596c9c53e57..e9aac661a2bcb8 100644
--- a/lib/spack/spack/cmd/patch.py
+++ b/lib/spack/spack/cmd/patch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,12 +6,12 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment as ev
import spack.package_base
import spack.repo
import spack.traverse
+from spack.cmd.common import arguments
description = "patch expanded archive sources in preparation for install"
section = "build"
diff --git a/lib/spack/spack/cmd/pkg.py b/lib/spack/spack/cmd/pkg.py
index 9bbd34ca812ae5..e4e616db563f13 100644
--- a/lib/spack/spack/cmd/pkg.py
+++ b/lib/spack/spack/cmd/pkg.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,11 +12,11 @@
from llnl.util.tty.colify import colify
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.paths
import spack.repo
import spack.util.executable as exe
import spack.util.package_hash as ph
+from spack.cmd.common import arguments
description = "query packages associated with particular git revisions"
section = "developer"
diff --git a/lib/spack/spack/cmd/providers.py b/lib/spack/spack/cmd/providers.py
index 8efd5c2a66bee6..1a3f8893b6c5ba 100644
--- a/lib/spack/spack/cmd/providers.py
+++ b/lib/spack/spack/cmd/providers.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/pydoc.py b/lib/spack/spack/cmd/pydoc.py
index 33a01f0a10776a..cca82ec1a4efd1 100644
--- a/lib/spack/spack/cmd/pydoc.py
+++ b/lib/spack/spack/cmd/pydoc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/python.py b/lib/spack/spack/cmd/python.py
index 2e7b490a63708f..71ce88eed6f85a 100644
--- a/lib/spack/spack/cmd/python.py
+++ b/lib/spack/spack/cmd/python.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/reindex.py b/lib/spack/spack/cmd/reindex.py
index e2fd0d559af3e0..3c7af5fbbdbe2c 100644
--- a/lib/spack/spack/cmd/reindex.py
+++ b/lib/spack/spack/cmd/reindex.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/remove.py b/lib/spack/spack/cmd/remove.py
index 4fdb36a5e53b05..b574582d8f7696 100644
--- a/lib/spack/spack/cmd/remove.py
+++ b/lib/spack/spack/cmd/remove.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,7 +6,7 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
+from spack.cmd.common import arguments
description = "remove specs from an environment"
section = "environments"
diff --git a/lib/spack/spack/cmd/repo.py b/lib/spack/spack/cmd/repo.py
index 7953f227e51bc4..68af91cd918fc4 100644
--- a/lib/spack/spack/cmd/repo.py
+++ b/lib/spack/spack/cmd/repo.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,6 +11,7 @@
import spack.config
import spack.repo
import spack.util.path
+from spack.cmd.common import arguments
description = "manage package source repositories"
section = "config"
@@ -19,7 +20,6 @@
def setup_parser(subparser):
sp = subparser.add_subparsers(metavar="SUBCOMMAND", dest="repo_command")
- scopes = spack.config.scopes()
# Create
create_parser = sp.add_parser("create", help=repo_create.__doc__)
@@ -42,11 +42,7 @@ def setup_parser(subparser):
# List
list_parser = sp.add_parser("list", help=repo_list.__doc__)
list_parser.add_argument(
- "--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=spack.config.default_list_scope(),
- help="configuration scope to read from",
+ "--scope", action=arguments.ConfigScope, help="configuration scope to read from"
)
# Add
@@ -54,9 +50,8 @@ def setup_parser(subparser):
add_parser.add_argument("path", help="path to a Spack package repository directory")
add_parser.add_argument(
"--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=spack.config.default_modify_scope(),
+ action=arguments.ConfigScope,
+ default=lambda: spack.config.default_modify_scope(),
help="configuration scope to modify",
)
@@ -67,9 +62,8 @@ def setup_parser(subparser):
)
remove_parser.add_argument(
"--scope",
- choices=scopes,
- metavar=spack.config.SCOPES_METAVAR,
- default=spack.config.default_modify_scope(),
+ action=arguments.ConfigScope,
+ default=lambda: spack.config.default_modify_scope(),
help="configuration scope to modify",
)
diff --git a/lib/spack/spack/cmd/resource.py b/lib/spack/spack/cmd/resource.py
index 7e3bb04706410a..aed399ae438aa9 100644
--- a/lib/spack/spack/cmd/resource.py
+++ b/lib/spack/spack/cmd/resource.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/restage.py b/lib/spack/spack/cmd/restage.py
index ab4d68dcc9460b..a21317405c459a 100644
--- a/lib/spack/spack/cmd/restage.py
+++ b/lib/spack/spack/cmd/restage.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,8 +6,8 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.repo
+from spack.cmd.common import arguments
description = "revert checked out package source code"
section = "build"
diff --git a/lib/spack/spack/cmd/solve.py b/lib/spack/spack/cmd/solve.py
index 4a30b1694b9ac2..9b03e596ed12de 100644
--- a/lib/spack/spack/cmd/solve.py
+++ b/lib/spack/spack/cmd/solve.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,12 +12,12 @@
import spack
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment
import spack.hash_types as ht
import spack.package_base
import spack.solver.asp as asp
+from spack.cmd.common import arguments
description = "concretize a specs using an ASP solver"
section = "developer"
diff --git a/lib/spack/spack/cmd/spec.py b/lib/spack/spack/cmd/spec.py
index 0abd63ff6a69b6..e2d5cb10557eff 100644
--- a/lib/spack/spack/cmd/spec.py
+++ b/lib/spack/spack/cmd/spec.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -10,11 +10,11 @@
import spack
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.hash_types as ht
import spack.spec
import spack.store
+from spack.cmd.common import arguments
description = "show what would be installed, given a spec"
section = "build"
diff --git a/lib/spack/spack/cmd/stage.py b/lib/spack/spack/cmd/stage.py
index 4405ddedca47c9..8e74bcafca5b06 100644
--- a/lib/spack/spack/cmd/stage.py
+++ b/lib/spack/spack/cmd/stage.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -8,13 +8,13 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment as ev
import spack.package_base
import spack.repo
import spack.stage
import spack.traverse
+from spack.cmd.common import arguments
description = "expand downloaded archive in preparation for install"
section = "build"
diff --git a/lib/spack/spack/cmd/style.py b/lib/spack/spack/cmd/style.py
index adc880f1bdae52..d16ff342770d16 100644
--- a/lib/spack/spack/cmd/style.py
+++ b/lib/spack/spack/cmd/style.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/tags.py b/lib/spack/spack/cmd/tags.py
index 0fbc91b6f4980d..a4f9786b93de34 100644
--- a/lib/spack/spack/cmd/tags.py
+++ b/lib/spack/spack/cmd/tags.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/test.py b/lib/spack/spack/cmd/test.py
index 99c2e906047fc5..e84df8c74a3804 100644
--- a/lib/spack/spack/cmd/test.py
+++ b/lib/spack/spack/cmd/test.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,12 +15,12 @@
from llnl.util.tty import colify
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.install_test
import spack.package_base
import spack.repo
import spack.report
+from spack.cmd.common import arguments
description = "run spack's tests for an install"
section = "admin"
diff --git a/lib/spack/spack/cmd/test_env.py b/lib/spack/spack/cmd/test_env.py
index 070b766248d8dc..aa3691f111a522 100644
--- a/lib/spack/spack/cmd/test_env.py
+++ b/lib/spack/spack/cmd/test_env.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/tutorial.py b/lib/spack/spack/cmd/tutorial.py
index 5759912b66ffc7..e0c49c831d4356 100644
--- a/lib/spack/spack/cmd/tutorial.py
+++ b/lib/spack/spack/cmd/tutorial.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -10,11 +10,11 @@
from llnl.util.filesystem import working_dir
import spack
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.paths
import spack.util.git
import spack.util.gpg
+from spack.cmd.common import arguments
from spack.util.spack_yaml import syaml_dict
description = "set up spack for our tutorial (WARNING: modifies config!)"
diff --git a/lib/spack/spack/cmd/undevelop.py b/lib/spack/spack/cmd/undevelop.py
index f633a6d0d6652f..539ddb850d0d8a 100644
--- a/lib/spack/spack/cmd/undevelop.py
+++ b/lib/spack/spack/cmd/undevelop.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,7 +6,7 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
+from spack.cmd.common import arguments
description = "remove specs from an environment"
section = "environments"
@@ -17,21 +17,51 @@ def setup_parser(subparser):
subparser.add_argument(
"-a", "--all", action="store_true", help="remove all specs from (clear) the environment"
)
+
arguments.add_common_arguments(subparser, ["specs"])
-def undevelop(parser, args):
- env = spack.cmd.require_active_env(cmd_name="undevelop")
+def _update_config(specs_to_remove, remove_all=False):
+ def change_fn(dev_config):
+ modified = False
+ for spec in specs_to_remove:
+ if spec.name in dev_config:
+ tty.msg("Undevelop: removing {0}".format(spec.name))
+ del dev_config[spec.name]
+ modified = True
+ if remove_all and dev_config:
+ dev_config.clear()
+ modified = True
+ return modified
+ spack.config.update_all("develop", change_fn)
+
+
+def undevelop(parser, args):
+ remove_specs = None
+ remove_all = False
if args.all:
- specs = env.dev_specs.keys()
+ remove_all = True
else:
- specs = spack.cmd.parse_specs(args.specs)
+ remove_specs = spack.cmd.parse_specs(args.specs)
+ # TODO: when https://github.com/spack/spack/pull/35307 is merged,
+ # an active env is not required if a scope is specified
+ env = spack.cmd.require_active_env(cmd_name="undevelop")
with env.write_transaction():
- changed = False
- for spec in specs:
- tty.msg("Removing %s from environment %s development specs" % (spec, env.name))
- changed |= env.undevelop(spec)
- if changed:
- env.write()
+ _update_config(remove_specs, remove_all)
+
+ updated_all_dev_specs = set(spack.config.get("develop"))
+ remove_spec_names = set(x.name for x in remove_specs)
+
+ if remove_all:
+ not_fully_removed = updated_all_dev_specs
+ else:
+ not_fully_removed = updated_all_dev_specs & remove_spec_names
+
+ if not_fully_removed:
+ tty.msg(
+ "The following specs could not be removed as develop specs"
+ " - see `spack config blame develop` to locate files requiring"
+ f" manual edits: {', '.join(not_fully_removed)}"
+ )
diff --git a/lib/spack/spack/cmd/uninstall.py b/lib/spack/spack/cmd/uninstall.py
index 3288404151d230..62a7ac1f327e0f 100644
--- a/lib/spack/spack/cmd/uninstall.py
+++ b/lib/spack/spack/cmd/uninstall.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -10,13 +10,13 @@
from llnl.util.tty.colify import colify
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.cmd.common.confirmation as confirmation
import spack.environment as ev
import spack.package_base
import spack.spec
import spack.store
import spack.traverse as traverse
+from spack.cmd.common import arguments
from spack.database import InstallStatuses
description = "remove installed packages"
@@ -277,7 +277,7 @@ def uninstall_specs(args, specs):
return
if not args.yes_to_all:
- confirmation.confirm_action(uninstall_list, "uninstalled", "uninstallation")
+ confirmation.confirm_action(uninstall_list, "uninstalled", "uninstall")
# Uninstall everything on the list
do_uninstall(uninstall_list, args.force)
diff --git a/lib/spack/spack/cmd/unit_test.py b/lib/spack/spack/cmd/unit_test.py
index 4963ad14c64c28..2931be5e748bc8 100644
--- a/lib/spack/spack/cmd/unit_test.py
+++ b/lib/spack/spack/cmd/unit_test.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -227,9 +227,7 @@ def unit_test(parser, args, unknown_args):
# has been used, then test that extension.
pytest_root = spack.paths.spack_root
if args.extension:
- target = args.extension
- extensions = spack.extensions.get_extension_paths()
- pytest_root = spack.extensions.path_for_extension(target, *extensions)
+ pytest_root = spack.extensions.load_extension(args.extension)
# pytest.ini lives in the root of the spack repository.
with llnl.util.filesystem.working_dir(pytest_root):
diff --git a/lib/spack/spack/cmd/unload.py b/lib/spack/spack/cmd/unload.py
index 7fe634c56de91e..3bafe5e8c62d83 100644
--- a/lib/spack/spack/cmd/unload.py
+++ b/lib/spack/spack/cmd/unload.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -7,10 +7,10 @@
import sys
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.error
import spack.user_environment as uenv
import spack.util.environment
+from spack.cmd.common import arguments
description = "remove package from the user environment"
section = "user environment"
diff --git a/lib/spack/spack/cmd/url.py b/lib/spack/spack/cmd/url.py
index 25f8ad382a6058..38dd6a4aeb05d1 100644
--- a/lib/spack/spack/cmd/url.py
+++ b/lib/spack/spack/cmd/url.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/verify.py b/lib/spack/spack/cmd/verify.py
index 88a52b691858f4..383e9e046baaaf 100644
--- a/lib/spack/spack/cmd/verify.py
+++ b/lib/spack/spack/cmd/verify.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cmd/versions.py b/lib/spack/spack/cmd/versions.py
index 9ac6c9e4da72ba..fb1a303713cd9f 100644
--- a/lib/spack/spack/cmd/versions.py
+++ b/lib/spack/spack/cmd/versions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -8,9 +8,9 @@
import llnl.util.tty as tty
from llnl.util.tty.colify import colify
-import spack.cmd.common.arguments as arguments
import spack.repo
import spack.spec
+from spack.cmd.common import arguments
from spack.version import infinity_versions, ver
description = "list available versions of a package"
diff --git a/lib/spack/spack/cmd/view.py b/lib/spack/spack/cmd/view.py
index de847bd9f655fe..586a9c6eb41fca 100644
--- a/lib/spack/spack/cmd/view.py
+++ b/lib/spack/spack/cmd/view.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compiler.py b/lib/spack/spack/compiler.py
index 70da3ca2c42712..30511d90db5fbe 100644
--- a/lib/spack/spack/compiler.py
+++ b/lib/spack/spack/compiler.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/__init__.py b/lib/spack/spack/compilers/__init__.py
index be9edeecb4226a..c58bc4996c2948 100644
--- a/lib/spack/spack/compilers/__init__.py
+++ b/lib/spack/spack/compilers/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/aocc.py b/lib/spack/spack/compilers/aocc.py
index 326522c93cfc91..ad67e173380e47 100644
--- a/lib/spack/spack/compilers/aocc.py
+++ b/lib/spack/spack/compilers/aocc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -40,7 +40,6 @@ def debug_flags(self):
"-gdwarf-5",
"-gline-tables-only",
"-gmodules",
- "-gz",
"-g",
]
diff --git a/lib/spack/spack/compilers/apple_clang.py b/lib/spack/spack/compilers/apple_clang.py
index e81703b2d2d4f5..9201b164027e48 100644
--- a/lib/spack/spack/compilers/apple_clang.py
+++ b/lib/spack/spack/compilers/apple_clang.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/arm.py b/lib/spack/spack/compilers/arm.py
index 9b4648ec1b3e27..3bf40aec200519 100644
--- a/lib/spack/spack/compilers/arm.py
+++ b/lib/spack/spack/compilers/arm.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/cce.py b/lib/spack/spack/compilers/cce.py
index 283f1b55085b63..e9377a0bb1bab7 100644
--- a/lib/spack/spack/compilers/cce.py
+++ b/lib/spack/spack/compilers/cce.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,16 +20,16 @@ def __init__(self, *args, **kwargs):
self.version_argument = "-V"
# Subclasses use possible names of C compiler
- cc_names = ["craycc", "cc"]
+ cc_names = ["craycc"]
# Subclasses use possible names of C++ compiler
- cxx_names = ["crayCC", "CC"]
+ cxx_names = ["crayCC"]
# Subclasses use possible names of Fortran 77 compiler
- f77_names = ["crayftn", "ftn"]
+ f77_names = ["crayftn"]
# Subclasses use possible names of Fortran 90 compiler
- fc_names = ["crayftn", "ftn"]
+ fc_names = ["crayftn"]
# MacPorts builds gcc versions with prefixes and -mp-X.Y suffixes.
suffixes = [r"-mp-\d\.\d"]
diff --git a/lib/spack/spack/compilers/clang.py b/lib/spack/spack/compilers/clang.py
index 71837bfe5e1c81..88154a19219987 100644
--- a/lib/spack/spack/compilers/clang.py
+++ b/lib/spack/spack/compilers/clang.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -55,7 +55,6 @@ def debug_flags(self):
"-gdwarf-5",
"-gline-tables-only",
"-gmodules",
- "-gz",
"-g",
]
diff --git a/lib/spack/spack/compilers/dpcpp.py b/lib/spack/spack/compilers/dpcpp.py
index a88545325f40e3..392817fd39fc1d 100644
--- a/lib/spack/spack/compilers/dpcpp.py
+++ b/lib/spack/spack/compilers/dpcpp.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/fj.py b/lib/spack/spack/compilers/fj.py
index 3b33d15686e8be..a9df7d2c23cfe9 100644
--- a/lib/spack/spack/compilers/fj.py
+++ b/lib/spack/spack/compilers/fj.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/gcc.py b/lib/spack/spack/compilers/gcc.py
index adef8a8277dd2f..6d635523ae4e74 100644
--- a/lib/spack/spack/compilers/gcc.py
+++ b/lib/spack/spack/compilers/gcc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/intel.py b/lib/spack/spack/compilers/intel.py
index d4ff7c5ebc9067..c7b0d8033c6eaa 100644
--- a/lib/spack/spack/compilers/intel.py
+++ b/lib/spack/spack/compilers/intel.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/msvc.py b/lib/spack/spack/compilers/msvc.py
index 3699a65481dd60..e6cd29c57087d3 100644
--- a/lib/spack/spack/compilers/msvc.py
+++ b/lib/spack/spack/compilers/msvc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/nag.py b/lib/spack/spack/compilers/nag.py
index 18b7ac4db3a77d..c12ccec7bfa1b8 100644
--- a/lib/spack/spack/compilers/nag.py
+++ b/lib/spack/spack/compilers/nag.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/nvhpc.py b/lib/spack/spack/compilers/nvhpc.py
index 8fba575472da3d..1078e921081af9 100644
--- a/lib/spack/spack/compilers/nvhpc.py
+++ b/lib/spack/spack/compilers/nvhpc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/oneapi.py b/lib/spack/spack/compilers/oneapi.py
index fde6fa677ae7ad..ecba99081a4b95 100644
--- a/lib/spack/spack/compilers/oneapi.py
+++ b/lib/spack/spack/compilers/oneapi.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,6 +6,8 @@
import os
from os.path import dirname
+from llnl.util import tty
+
from spack.compiler import Compiler
@@ -135,3 +137,13 @@ def setup_custom_environment(self, pkg, env):
# Executable "sycl-post-link" doesn't exist!
if self.cxx:
env.prepend_path("PATH", dirname(self.cxx))
+
+ # 2024 release bumped the libsycl version because of an ABI
+ # change, 2024 compilers are required. You will see this
+ # error:
+ #
+ # /usr/bin/ld: warning: libsycl.so.7, needed by ...., not found
+ if pkg.spec.satisfies("%oneapi@:2023"):
+ for c in ["dnn"]:
+ if pkg.spec.satisfies(f"^intel-oneapi-{c}@2024:"):
+ tty.warn(f"intel-oneapi-{c}@2024 SYCL APIs requires %oneapi@2024:")
diff --git a/lib/spack/spack/compilers/pgi.py b/lib/spack/spack/compilers/pgi.py
index 77a0db7860f714..1e8656fd3fbfb3 100644
--- a/lib/spack/spack/compilers/pgi.py
+++ b/lib/spack/spack/compilers/pgi.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/rocmcc.py b/lib/spack/spack/compilers/rocmcc.py
index 07dc87b16da846..863d3c2cbfbd6b 100644
--- a/lib/spack/spack/compilers/rocmcc.py
+++ b/lib/spack/spack/compilers/rocmcc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/xl.py b/lib/spack/spack/compilers/xl.py
index db7241cb0fc8b7..1c1be0e41b4378 100644
--- a/lib/spack/spack/compilers/xl.py
+++ b/lib/spack/spack/compilers/xl.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/compilers/xl_r.py b/lib/spack/spack/compilers/xl_r.py
index 238d43cea15d32..15bcb7234f89b3 100644
--- a/lib/spack/spack/compilers/xl_r.py
+++ b/lib/spack/spack/compilers/xl_r.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/concretize.py b/lib/spack/spack/concretize.py
index 6e85d66b154f51..bfa3c133b787a5 100644
--- a/lib/spack/spack/concretize.py
+++ b/lib/spack/spack/concretize.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py
index cd1be71c9d0a33..be6aeea7f0dc36 100644
--- a/lib/spack/spack/config.py
+++ b/lib/spack/spack/config.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -35,12 +35,9 @@
import os
import re
import sys
-from contextlib import contextmanager
-from typing import Dict, List, Optional, Union
+from typing import Any, Callable, Dict, Generator, List, Optional, Tuple, Type, Union
-import llnl.util.lang
-import llnl.util.tty as tty
-from llnl.util.filesystem import mkdirp, rename
+from llnl.util import filesystem, lang, tty
import spack.compilers
import spack.paths
@@ -70,6 +67,7 @@
"compilers": spack.schema.compilers.schema,
"concretizer": spack.schema.concretizer.schema,
"definitions": spack.schema.definitions.schema,
+ "develop": spack.schema.develop.schema,
"mirrors": spack.schema.mirrors.schema,
"repos": spack.schema.repos.schema,
"packages": spack.schema.packages.schema,
@@ -113,28 +111,34 @@
#: Base name for the (internal) overrides scope.
_OVERRIDES_BASE_NAME = "overrides-"
+#: Type used for raw YAML configuration
+YamlConfigDict = Dict[str, Any]
+
class ConfigScope:
"""This class represents a configuration scope.
A scope is one directory containing named configuration files.
- Each file is a config "section" (e.g., mirrors, compilers, etc).
+ Each file is a config "section" (e.g., mirrors, compilers, etc.).
"""
- def __init__(self, name, path):
+ def __init__(self, name, path) -> None:
self.name = name # scope name.
self.path = path # path to directory containing configs.
self.sections = syaml.syaml_dict() # sections read from config files.
@property
- def is_platform_dependent(self):
+ def is_platform_dependent(self) -> bool:
+ """Returns true if the scope name is platform specific"""
return os.sep in self.name
- def get_section_filename(self, section):
+ def get_section_filename(self, section: str) -> str:
+ """Returns the filename associated with a given section"""
_validate_section_name(section)
- return os.path.join(self.path, "%s.yaml" % section)
+ return os.path.join(self.path, f"{section}.yaml")
- def get_section(self, section):
+ def get_section(self, section: str) -> Optional[YamlConfigDict]:
+ """Returns the data associated with a given section"""
if section not in self.sections:
path = self.get_section_filename(section)
schema = SECTION_SCHEMAS[section]
@@ -142,39 +146,44 @@ def get_section(self, section):
self.sections[section] = data
return self.sections[section]
- def _write_section(self, section):
+ def _write_section(self, section: str) -> None:
filename = self.get_section_filename(section)
data = self.get_section(section)
+ if data is None:
+ return
# We copy data here to avoid adding defaults at write time
validate_data = copy.deepcopy(data)
validate(validate_data, SECTION_SCHEMAS[section])
try:
- mkdirp(self.path)
+ filesystem.mkdirp(self.path)
with open(filename, "w") as f:
syaml.dump_config(data, stream=f, default_flow_style=False)
- except (syaml.SpackYAMLError, IOError) as e:
+ except (syaml.SpackYAMLError, OSError) as e:
raise ConfigFileError(f"cannot write to '{filename}'") from e
- def clear(self):
+ def clear(self) -> None:
"""Empty cached config information."""
self.sections = syaml.syaml_dict()
- def __repr__(self):
- return "" % (self.name, self.path)
+ def __repr__(self) -> str:
+ return f""
class SingleFileScope(ConfigScope):
"""This class represents a configuration scope in a single YAML file."""
- def __init__(self, name, path, schema, yaml_path=None):
+ def __init__(
+ self, name: str, path: str, schema: YamlConfigDict, yaml_path: Optional[List[str]] = None
+ ) -> None:
"""Similar to ``ConfigScope`` but can be embedded in another schema.
Arguments:
schema (dict): jsonschema for the file to read
yaml_path (list): path in the schema where config data can be
found.
+
If the schema accepts the following yaml data, the yaml_path
would be ['outer', 'inner']
@@ -186,18 +195,18 @@ def __init__(self, name, path, schema, yaml_path=None):
install_tree: $spack/opt/spack
"""
super().__init__(name, path)
- self._raw_data = None
+ self._raw_data: Optional[YamlConfigDict] = None
self.schema = schema
self.yaml_path = yaml_path or []
@property
- def is_platform_dependent(self):
+ def is_platform_dependent(self) -> bool:
return False
- def get_section_filename(self, section):
+ def get_section_filename(self, section) -> str:
return self.path
- def get_section(self, section):
+ def get_section(self, section: str) -> Optional[YamlConfigDict]:
# read raw data from the file, which looks like:
# {
# 'config': {
@@ -246,8 +255,8 @@ def get_section(self, section):
return self.sections.get(section, None)
- def _write_section(self, section):
- data_to_write = self._raw_data
+ def _write_section(self, section: str) -> None:
+ data_to_write: Optional[YamlConfigDict] = self._raw_data
# If there is no existing data, this section SingleFileScope has never
# been written to disk. We need to construct the portion of the data
@@ -277,18 +286,18 @@ def _write_section(self, section):
validate(data_to_write, self.schema)
try:
parent = os.path.dirname(self.path)
- mkdirp(parent)
+ filesystem.mkdirp(parent)
- tmp = os.path.join(parent, ".%s.tmp" % os.path.basename(self.path))
+ tmp = os.path.join(parent, f".{os.path.basename(self.path)}.tmp")
with open(tmp, "w") as f:
syaml.dump_config(data_to_write, stream=f, default_flow_style=False)
- rename(tmp, self.path)
+ filesystem.rename(tmp, self.path)
- except (syaml.SpackYAMLError, IOError) as e:
+ except (syaml.SpackYAMLError, OSError) as e:
raise ConfigFileError(f"cannot write to config file {str(e)}") from e
- def __repr__(self):
- return "" % (self.name, self.path)
+ def __repr__(self) -> str:
+ return f""
class ImmutableConfigScope(ConfigScope):
@@ -297,11 +306,11 @@ class ImmutableConfigScope(ConfigScope):
This is used for ConfigScopes passed on the command line.
"""
- def _write_section(self, section):
- raise ConfigError("Cannot write to immutable scope %s" % self)
+ def _write_section(self, section) -> None:
+ raise ConfigError(f"Cannot write to immutable scope {self}")
- def __repr__(self):
- return "" % (self.name, self.path)
+ def __repr__(self) -> str:
+ return f""
class InternalConfigScope(ConfigScope):
@@ -312,56 +321,58 @@ class InternalConfigScope(ConfigScope):
override settings from files.
"""
- def __init__(self, name, data=None):
+ def __init__(self, name: str, data: Optional[YamlConfigDict] = None) -> None:
super().__init__(name, None)
self.sections = syaml.syaml_dict()
- if data:
+ if data is not None:
data = InternalConfigScope._process_dict_keyname_overrides(data)
for section in data:
dsec = data[section]
validate({section: dsec}, SECTION_SCHEMAS[section])
self.sections[section] = _mark_internal(syaml.syaml_dict({section: dsec}), name)
- def get_section_filename(self, section):
+ def get_section_filename(self, section: str) -> str:
raise NotImplementedError("Cannot get filename for InternalConfigScope.")
- def get_section(self, section):
+ def get_section(self, section: str) -> Optional[YamlConfigDict]:
"""Just reads from an internal dictionary."""
if section not in self.sections:
self.sections[section] = None
return self.sections[section]
- def _write_section(self, section):
+ def _write_section(self, section: str) -> None:
"""This only validates, as the data is already in memory."""
data = self.get_section(section)
if data is not None:
validate(data, SECTION_SCHEMAS[section])
self.sections[section] = _mark_internal(data, self.name)
- def __repr__(self):
- return "" % self.name
+ def __repr__(self) -> str:
+ return f""
- def clear(self):
+ def clear(self) -> None:
# no cache to clear here.
pass
@staticmethod
- def _process_dict_keyname_overrides(data):
+ def _process_dict_keyname_overrides(data: YamlConfigDict) -> YamlConfigDict:
"""Turn a trailing `:' in a key name into an override attribute."""
- result = {}
+ # Below we have a lot of type directives, since we hack on types and monkey-patch them
+ # by adding attributes that otherwise they won't have.
+ result: YamlConfigDict = {}
for sk, sv in data.items():
if sk.endswith(":"):
key = syaml.syaml_str(sk[:-1])
- key.override = True
+ key.override = True # type: ignore[attr-defined]
elif sk.endswith("+"):
key = syaml.syaml_str(sk[:-1])
- key.prepend = True
+ key.prepend = True # type: ignore[attr-defined]
elif sk.endswith("-"):
key = syaml.syaml_str(sk[:-1])
- key.append = True
+ key.append = True # type: ignore[attr-defined]
else:
- key = sk
+ key = sk # type: ignore[assignment]
if isinstance(sv, dict):
result[key] = InternalConfigScope._process_dict_keyname_overrides(sv)
@@ -394,7 +405,7 @@ class Configuration:
# convert to typing.OrderedDict when we drop 3.6, or OrderedDict when we reach 3.9
scopes: Dict[str, ConfigScope]
- def __init__(self, *scopes: ConfigScope):
+ def __init__(self, *scopes: ConfigScope) -> None:
"""Initialize a configuration with an initial list of scopes.
Args:
@@ -405,26 +416,26 @@ def __init__(self, *scopes: ConfigScope):
self.scopes = collections.OrderedDict()
for scope in scopes:
self.push_scope(scope)
- self.format_updates: Dict[str, List[str]] = collections.defaultdict(list)
+ self.format_updates: Dict[str, List[ConfigScope]] = collections.defaultdict(list)
@_config_mutator
- def push_scope(self, scope: ConfigScope):
+ def push_scope(self, scope: ConfigScope) -> None:
"""Add a higher precedence scope to the Configuration."""
- tty.debug("[CONFIGURATION: PUSH SCOPE]: {}".format(str(scope)), level=2)
+ tty.debug(f"[CONFIGURATION: PUSH SCOPE]: {str(scope)}", level=2)
self.scopes[scope.name] = scope
@_config_mutator
def pop_scope(self) -> ConfigScope:
"""Remove the highest precedence scope and return it."""
name, scope = self.scopes.popitem(last=True) # type: ignore[call-arg]
- tty.debug("[CONFIGURATION: POP SCOPE]: {}".format(str(scope)), level=2)
+ tty.debug(f"[CONFIGURATION: POP SCOPE]: {str(scope)}", level=2)
return scope
@_config_mutator
def remove_scope(self, scope_name: str) -> Optional[ConfigScope]:
"""Remove scope by name; has no effect when ``scope_name`` does not exist"""
scope = self.scopes.pop(scope_name, None)
- tty.debug("[CONFIGURATION: POP SCOPE]: {}".format(str(scope)), level=2)
+ tty.debug(f"[CONFIGURATION: POP SCOPE]: {str(scope)}", level=2)
return scope
@property
@@ -481,16 +492,16 @@ def _validate_scope(self, scope: Optional[str]) -> ConfigScope:
else:
raise ValueError(
- "Invalid config scope: '%s'. Must be one of %s" % (scope, self.scopes.keys())
+ f"Invalid config scope: '{scope}'. Must be one of {self.scopes.keys()}"
)
- def get_config_filename(self, scope, section) -> str:
+ def get_config_filename(self, scope: str, section: str) -> str:
"""For some scope and section, get the name of the configuration file."""
scope = self._validate_scope(scope)
return scope.get_section_filename(section)
@_config_mutator
- def clear_caches(self):
+ def clear_caches(self) -> None:
"""Clears the caches for configuration files,
This will cause files to be re-read upon the next request."""
@@ -500,7 +511,7 @@ def clear_caches(self):
@_config_mutator
def update_config(
self, section: str, update_data: Dict, scope: Optional[str] = None, force: bool = False
- ):
+ ) -> None:
"""Update the configuration file for a particular scope.
Overwrites contents of a section in a scope with update_data,
@@ -514,10 +525,10 @@ def update_config(
format will fail to update unless ``force`` is True.
Args:
- section (str): section of the configuration to be updated
- update_data (dict): data to be used for the update
- scope (str): scope to be updated
- force (str): force the update
+ section: section of the configuration to be updated
+ update_data: data to be used for the update
+ scope: scope to be updated
+ force: force the update
"""
if self.format_updates.get(section) and not force:
msg = (
@@ -546,7 +557,7 @@ def update_config(
scope._write_section(section)
- def get_config(self, section, scope=None):
+ def get_config(self, section: str, scope: Optional[str] = None) -> YamlConfigDict:
"""Get configuration settings for a section.
If ``scope`` is ``None`` or not provided, return the merged contents
@@ -573,12 +584,12 @@ def get_config(self, section, scope=None):
"""
return self._get_config_memoized(section, scope)
- @llnl.util.lang.memoized
- def _get_config_memoized(self, section, scope):
+ @lang.memoized
+ def _get_config_memoized(self, section: str, scope: Optional[str]) -> YamlConfigDict:
_validate_section_name(section)
if scope is None:
- scopes = self.scopes.values()
+ scopes = list(self.scopes.values())
else:
scopes = [self._validate_scope(scope)]
@@ -613,7 +624,7 @@ def _get_config_memoized(self, section, scope):
ret = syaml.syaml_dict(ret)
return ret
- def get(self, path, default=None, scope=None):
+ def get(self, path: str, default: Optional[Any] = None, scope: Optional[str] = None) -> Any:
"""Get a config section or a single value from one.
Accepts a path syntax that allows us to grab nested config map
@@ -627,7 +638,6 @@ def get(self, path, default=None, scope=None):
We use ``:`` as the separator, like YAML objects.
"""
- # TODO: Currently only handles maps. Think about lists if needed.
parts = process_config_path(path)
section = parts.pop(0)
@@ -644,7 +654,7 @@ def get(self, path, default=None, scope=None):
return value
@_config_mutator
- def set(self, path, value, scope=None):
+ def set(self, path: str, value: Any, scope: Optional[str] = None) -> None:
"""Convenience function for setting single values in config files.
Accepts the path syntax described in ``get()``.
@@ -686,21 +696,22 @@ def set(self, path, value, scope=None):
def __iter__(self):
"""Iterate over scopes in this configuration."""
- for scope in self.scopes.values():
- yield scope
+ yield from self.scopes.values()
- def print_section(self, section, blame=False):
+ def print_section(self, section: str, blame: bool = False, *, scope=None) -> None:
"""Print a configuration to stdout."""
try:
data = syaml.syaml_dict()
- data[section] = self.get_config(section)
+ data[section] = self.get_config(section, scope=scope)
syaml.dump_config(data, stream=sys.stdout, default_flow_style=False, blame=blame)
- except (syaml.SpackYAMLError, IOError) as e:
+ except (syaml.SpackYAMLError, OSError) as e:
raise ConfigError(f"cannot read '{section}' configuration") from e
-@contextmanager
-def override(path_or_scope, value=None):
+@contextlib.contextmanager
+def override(
+ path_or_scope: Union[ConfigScope, str], value: Optional[Any] = None
+) -> Generator[Union[lang.Singleton, Configuration], None, None]:
"""Simple way to override config settings within a context.
Arguments:
@@ -718,10 +729,10 @@ def override(path_or_scope, value=None):
else:
base_name = _OVERRIDES_BASE_NAME
# Ensure the new override gets a unique scope name
- current_overrides = [s.name for s in CONFIG.matching_scopes(r"^{0}".format(base_name))]
+ current_overrides = [s.name for s in CONFIG.matching_scopes(rf"^{base_name}")]
num_overrides = len(current_overrides)
while True:
- scope_name = "{0}{1}".format(base_name, num_overrides)
+ scope_name = f"{base_name}{num_overrides}"
if scope_name in current_overrides:
num_overrides += 1
else:
@@ -738,12 +749,13 @@ def override(path_or_scope, value=None):
assert scope is overrides
-#: configuration scopes added on the command line
-#: set by ``spack.main.main()``.
+#: configuration scopes added on the command line set by ``spack.main.main()``
COMMAND_LINE_SCOPES: List[str] = []
-def _add_platform_scope(cfg, scope_type, name, path):
+def _add_platform_scope(
+ cfg: Union[Configuration, lang.Singleton], scope_type: Type[ConfigScope], name: str, path: str
+) -> None:
"""Add a platform-specific subdirectory for the current platform."""
platform = spack.platforms.host().name
plat_name = os.path.join(name, platform)
@@ -751,7 +763,9 @@ def _add_platform_scope(cfg, scope_type, name, path):
cfg.push_scope(scope_type(plat_name, plat_path))
-def _add_command_line_scopes(cfg, command_line_scopes):
+def _add_command_line_scopes(
+ cfg: Union[Configuration, lang.Singleton], command_line_scopes: List[str]
+) -> None:
"""Add additional scopes from the --config-scope argument.
Command line scopes are named after their position in the arg list.
@@ -760,26 +774,22 @@ def _add_command_line_scopes(cfg, command_line_scopes):
# We ensure that these scopes exist and are readable, as they are
# provided on the command line by the user.
if not os.path.isdir(path):
- raise ConfigError("config scope is not a directory: '%s'" % path)
+ raise ConfigError(f"config scope is not a directory: '{path}'")
elif not os.access(path, os.R_OK):
- raise ConfigError("config scope is not readable: '%s'" % path)
+ raise ConfigError(f"config scope is not readable: '{path}'")
# name based on order on the command line
- name = "cmd_scope_%d" % i
+ name = f"cmd_scope_{i:d}"
cfg.push_scope(ImmutableConfigScope(name, path))
_add_platform_scope(cfg, ImmutableConfigScope, name, path)
-def create():
+def create() -> Configuration:
"""Singleton Configuration instance.
This constructs one instance associated with this module and returns
it. It is bundled inside a function so that configuration can be
initialized lazily.
-
- Return:
- (Configuration): object for accessing spack configuration
-
"""
cfg = Configuration()
@@ -828,16 +838,25 @@ def create():
#: This is the singleton configuration instance for Spack.
-CONFIG: Union[Configuration, llnl.util.lang.Singleton] = llnl.util.lang.Singleton(create)
+CONFIG: Union[Configuration, lang.Singleton] = lang.Singleton(create)
-def add_from_file(filename, scope=None):
+def add_from_file(filename: str, scope: Optional[str] = None) -> None:
"""Add updates to a config from a filename"""
# Extract internal attributes, if we are dealing with an environment
data = read_config_file(filename)
+ if data is None:
+ return
+
if spack.schema.env.TOP_LEVEL_KEY in data:
data = data[spack.schema.env.TOP_LEVEL_KEY]
+ msg = (
+ "unexpected 'None' value when retrieving configuration. "
+ "Please submit a bug-report at https://github.com/spack/spack/issues"
+ )
+ assert data is not None, msg
+
# update all sections from config dict
# We have to iterate on keys to keep overrides from the file
for section in data.keys():
@@ -855,7 +874,7 @@ def add_from_file(filename, scope=None):
CONFIG.set(section, new, scope)
-def add(fullpath, scope=None):
+def add(fullpath: str, scope: Optional[str] = None) -> None:
"""Add the given configuration to the specified config scope.
Add accepts a path. If you want to add from a filename, use add_from_file"""
components = process_config_path(fullpath)
@@ -863,7 +882,9 @@ def add(fullpath, scope=None):
has_existing_value = True
path = ""
override = False
- value = syaml.load_config(components[-1])
+ value = components[-1]
+ if not isinstance(value, syaml.syaml_str):
+ value = syaml.load_config(value)
for idx, name in enumerate(components[:-1]):
# First handle double colons in constructing path
colon = "::" if override else ":" if path else ""
@@ -885,7 +906,7 @@ def add(fullpath, scope=None):
# construct value from this point down
for component in reversed(components[idx + 1 : -1]):
- value = {component: value}
+ value: Dict[str, str] = {component: value} # type: ignore[no-redef]
break
if override:
@@ -896,19 +917,19 @@ def add(fullpath, scope=None):
# append values to lists
if isinstance(existing, list) and not isinstance(value, list):
- value = [value]
+ value: List[str] = [value] # type: ignore[no-redef]
# merge value into existing
new = merge_yaml(existing, value)
CONFIG.set(path, new, scope)
-def get(path, default=None, scope=None):
+def get(path: str, default: Optional[Any] = None, scope: Optional[str] = None) -> Any:
"""Module-level wrapper for ``Configuration.get()``."""
return CONFIG.get(path, default, scope)
-def set(path, value, scope=None):
+def set(path: str, value: Any, scope: Optional[str] = None) -> None:
"""Convenience function for setting single values in config files.
Accepts the path syntax described in ``get()``.
@@ -916,32 +937,114 @@ def set(path, value, scope=None):
return CONFIG.set(path, value, scope)
-def add_default_platform_scope(platform):
+def add_default_platform_scope(platform: str) -> None:
plat_name = os.path.join("defaults", platform)
plat_path = os.path.join(CONFIGURATION_DEFAULTS_PATH[1], platform)
CONFIG.push_scope(ConfigScope(plat_name, plat_path))
-def scopes():
+def scopes() -> Dict[str, ConfigScope]:
"""Convenience function to get list of configuration scopes."""
return CONFIG.scopes
-def _validate_section_name(section):
+def writable_scopes() -> List[ConfigScope]:
+ """
+ Return list of writable scopes. Higher-priority scopes come first in the
+ list.
+ """
+ return list(
+ reversed(
+ list(
+ x
+ for x in CONFIG.scopes.values()
+ if not isinstance(x, (InternalConfigScope, ImmutableConfigScope))
+ )
+ )
+ )
+
+
+def writable_scope_names() -> List[str]:
+ return list(x.name for x in writable_scopes())
+
+
+def matched_config(cfg_path: str) -> List[Tuple[str, Any]]:
+ return [(scope, get(cfg_path, scope=scope)) for scope in writable_scope_names()]
+
+
+def change_or_add(
+ section_name: str, find_fn: Callable[[str], bool], update_fn: Callable[[str], None]
+) -> None:
+ """Change or add a subsection of config, with additional logic to
+ select a reasonable scope where the change is applied.
+
+ Search through config scopes starting with the highest priority:
+ the first matching a criteria (determined by ``find_fn``) is updated;
+ if no such config exists, find the first config scope that defines
+ any config for the named section; if no scopes define any related
+ config, then update the highest-priority config scope.
+ """
+ configs_by_section = matched_config(section_name)
+
+ found = False
+ for scope, section in configs_by_section:
+ found = find_fn(section)
+ if found:
+ break
+
+ if found:
+ update_fn(section)
+ spack.config.set(section_name, section, scope=scope)
+ return
+
+ # If no scope meets the criteria specified by ``find_fn``,
+ # then look for a scope that has any content (for the specified
+ # section name)
+ for scope, section in configs_by_section:
+ if section:
+ update_fn(section)
+ found = True
+ break
+
+ if found:
+ spack.config.set(section_name, section, scope=scope)
+ return
+
+ # If no scopes define any config for the named section, then
+ # modify the highest-priority scope.
+ scope, section = configs_by_section[0]
+ update_fn(section)
+ spack.config.set(section_name, section, scope=scope)
+
+
+def update_all(section_name: str, change_fn: Callable[[str], bool]) -> None:
+ """Change a config section, which may have details duplicated
+ across multiple scopes.
+ """
+ configs_by_section = matched_config("develop")
+
+ for scope, section in configs_by_section:
+ modified = change_fn(section)
+ if modified:
+ spack.config.set(section_name, section, scope=scope)
+
+
+def _validate_section_name(section: str) -> None:
"""Exit if the section is not a valid section."""
if section not in SECTION_SCHEMAS:
raise ConfigSectionError(
- "Invalid config section: '%s'. Options are: %s"
- % (section, " ".join(SECTION_SCHEMAS.keys()))
+ f"Invalid config section: '{section}'. Options are: {' '.join(SECTION_SCHEMAS.keys())}"
)
-def validate(data, schema, filename=None):
+def validate(
+ data: YamlConfigDict, schema: YamlConfigDict, filename: Optional[str] = None
+) -> YamlConfigDict:
"""Validate data read in from a Spack YAML file.
Arguments:
- data (dict or list): data read from a Spack YAML file
- schema (dict or list): jsonschema to validate data
+ data: data read from a Spack YAML file
+ schema: jsonschema to validate data
This leverages the line information (start_mark, end_mark) stored
on Spack YAML structures.
@@ -964,7 +1067,9 @@ def validate(data, schema, filename=None):
return test_data
-def read_config_file(filename, schema=None):
+def read_config_file(
+ filename: str, schema: Optional[YamlConfigDict] = None
+) -> Optional[YamlConfigDict]:
"""Read a YAML configuration file.
User can provide a schema for validation. If no schema is provided,
@@ -976,17 +1081,17 @@ def read_config_file(filename, schema=None):
if not os.path.exists(filename):
# Ignore nonexistent files.
- tty.debug("Skipping nonexistent config path {0}".format(filename), level=3)
+ tty.debug(f"Skipping nonexistent config path {filename}", level=3)
return None
elif not os.path.isfile(filename):
- raise ConfigFileError("Invalid configuration. %s exists but is not a file." % filename)
+ raise ConfigFileError(f"Invalid configuration. {filename} exists but is not a file.")
elif not os.access(filename, os.R_OK):
- raise ConfigFileError("Config file is not readable: {0}".format(filename))
+ raise ConfigFileError(f"Config file is not readable: {filename}")
try:
- tty.debug("Reading config from file {0}".format(filename))
+ tty.debug(f"Reading config from file {filename}")
with open(filename) as f:
data = syaml.load_config(f)
@@ -1004,11 +1109,11 @@ def read_config_file(filename, schema=None):
except syaml.SpackYAMLError as e:
raise ConfigFileError(str(e)) from e
- except IOError as e:
+ except OSError as e:
raise ConfigFileError(f"Error reading configuration file {filename}: {str(e)}") from e
-def _override(string):
+def _override(string: str) -> bool:
"""Test if a spack YAML string is an override.
See ``spack_yaml`` for details. Keys in Spack YAML can end in `::`,
@@ -1019,7 +1124,7 @@ def _override(string):
return hasattr(string, "override") and string.override
-def _append(string):
+def _append(string: str) -> bool:
"""Test if a spack YAML string is an override.
See ``spack_yaml`` for details. Keys in Spack YAML can end in `+:`,
@@ -1033,7 +1138,7 @@ def _append(string):
return getattr(string, "append", False)
-def _prepend(string):
+def _prepend(string: str) -> bool:
"""Test if a spack YAML string is an override.
See ``spack_yaml`` for details. Keys in Spack YAML can end in `+:`,
@@ -1105,7 +1210,7 @@ def get_valid_type(path):
return types[schema_type]()
else:
return type(None)
- raise ConfigError("Cannot determine valid type for path '%s'." % path)
+ raise ConfigError(f"Cannot determine valid type for path '{path}'.")
def remove_yaml(dest, source):
@@ -1233,62 +1338,147 @@ def they_are(t):
return copy.copy(source)
-def process_config_path(path):
+class ConfigPath:
+ quoted_string = "(?:\"[^\"]+\")|(?:'[^']+')"
+ unquoted_string = "[^:'\"]+"
+ element = rf"(?:(?:{quoted_string})|(?:{unquoted_string}))"
+ next_key_pattern = rf"({element}[+-]?)(?:\:|$)"
+
+ @staticmethod
+ def _split_front(string, extract):
+ m = re.match(extract, string)
+ if not m:
+ return None, None
+ token = m.group(1)
+ return token, string[len(token) :]
+
+ @staticmethod
+ def _validate(path):
+ """Example valid config paths:
+
+ x:y:z
+ x:"y":z
+ x:y+:z
+ x:y::z
+ x:y+::z
+ x:y:
+ x:y::
+ """
+ first_key, path = ConfigPath._split_front(path, ConfigPath.next_key_pattern)
+ if not first_key:
+ raise ValueError(f"Config path does not start with a parse-able key: {path}")
+ path_elements = [first_key]
+ path_index = 1
+ while path:
+ separator, path = ConfigPath._split_front(path, r"(\:+)")
+ if not separator:
+ raise ValueError(f"Expected separator for {path}")
+
+ path_elements[path_index - 1] += separator
+ if not path:
+ break
+
+ element, remainder = ConfigPath._split_front(path, ConfigPath.next_key_pattern)
+ if not element:
+ # If we can't parse something as a key, then it must be a
+ # value (if it's valid).
+ try:
+ syaml.load_config(path)
+ except spack.util.spack_yaml.SpackYAMLError as e:
+ raise ValueError(
+ "Remainder of path is not a valid key"
+ f" and does not parse as a value {path}"
+ ) from e
+ element = path
+ path = None # The rest of the path was consumed into the value
+ else:
+ path = remainder
+
+ path_elements.append(element)
+ path_index += 1
+
+ return path_elements
+
+ @staticmethod
+ def process(path):
+ result = []
+ quote = "['\"]"
+ seen_override_in_path = False
+
+ path_elements = ConfigPath._validate(path)
+ last_element_idx = len(path_elements) - 1
+ for i, element in enumerate(path_elements):
+ override = False
+ append = False
+ prepend = False
+ quoted = False
+ if element.endswith("::") or (element.endswith(":") and i == last_element_idx):
+ if seen_override_in_path:
+ raise syaml.SpackYAMLError(
+ "Meaningless second override indicator `::' in path `{0}'".format(path), ""
+ )
+ override = True
+ seen_override_in_path = True
+ element = element.rstrip(":")
+
+ if element.endswith("+"):
+ prepend = True
+ elif element.endswith("-"):
+ append = True
+ element = element.rstrip("+-")
+
+ if re.match(f"^{quote}", element):
+ quoted = True
+ element = element.strip("'\"")
+
+ if any([append, prepend, override, quoted]):
+ element = syaml.syaml_str(element)
+ if append:
+ element.append = True
+ if prepend:
+ element.prepend = True
+ if override:
+ element.override = True
+
+ result.append(element)
+
+ return result
+
+
+def process_config_path(path: str) -> List[str]:
"""Process a path argument to config.set() that may contain overrides ('::' or
trailing ':')
- Note: quoted value path components will be processed as a single value (escaping colons)
- quoted path components outside of the value will be considered ill formed and will
- raise.
- e.g. `this:is:a:path:'value:with:colon'` will yield:
+ Colons will be treated as static strings if inside of quotes,
+ e.g. `this:is:a:path:'value:with:colon'` will yield:
- [this, is, a, path, value:with:colon]
- """
- result = []
- if path.startswith(":"):
- raise syaml.SpackYAMLError("Illegal leading `:' in path `{0}'".format(path), "")
- seen_override_in_path = False
- while path:
- front, sep, path = path.partition(":")
- if (sep and not path) or path.startswith(":"):
- if seen_override_in_path:
- raise syaml.SpackYAMLError(
- "Meaningless second override" " indicator `::' in path `{0}'".format(path), ""
- )
- path = path.lstrip(":")
- front = syaml.syaml_str(front)
- front.override = True
- seen_override_in_path = True
-
- elif front.endswith("+"):
- front = front.rstrip("+")
- front = syaml.syaml_str(front)
- front.prepend = True
-
- elif front.endswith("-"):
- front = front.rstrip("-")
- front = syaml.syaml_str(front)
- front.append = True
-
- result.append(front)
+ [this, is, a, path, value:with:colon]
- quote = "['\"]"
- not_quote = "[^'\"]"
+ The path may consist only of keys (e.g. for a `get`) or may end in a value.
+ Keys are always strings: if a user encloses a key in quotes, the quotes
+ should be removed. Values with quotes should be treated as strings,
+ but without quotes, may be parsed as a different yaml object (e.g.
+ '{}' is a dict, but '"{}"' is a string).
- if re.match(f"^{quote}", path):
- m = re.match(rf"^({quote}{not_quote}+{quote})$", path)
- if not m:
- raise ValueError("Quotes indicate value, but there are additional path entries")
- result.append(m.group(1))
- break
+ This function does not know whether the final element of the path is a
+ key or value, so:
- return result
+ * It must strip the quotes, in case it is a key (so we look for "key" and
+ not '"key"'))
+ * It must indicate somehow that the quotes were stripped, in case it is a
+ value (so that we don't process '"{}"' as a YAML dict)
+
+ Therefore, all elements with quotes are stripped, and then also converted
+ to ``syaml_str`` (if treating the final element as a value, the caller
+ should not parse it in this case).
+ """
+ return ConfigPath.process(path)
#
# Settings for commands that modify configuration
#
-def default_modify_scope(section="config"):
+def default_modify_scope(section: str = "config") -> str:
"""Return the config scope that commands should modify by default.
Commands that modify configuration by default modify the *highest*
@@ -1304,23 +1494,15 @@ def default_modify_scope(section="config"):
return CONFIG.highest_precedence_non_platform_scope().name
-def default_list_scope():
- """Return the config scope that is listed by default.
-
- Commands that list configuration list *all* scopes (merged) by default.
- """
- return None
-
-
-def _update_in_memory(data, section):
+def _update_in_memory(data: YamlConfigDict, section: str) -> bool:
"""Update the format of the configuration data in memory.
This function assumes the section is valid (i.e. validation
is responsibility of the caller)
Args:
- data (dict): configuration data
- section (str): section of the configuration to update
+ data: configuration data
+ section: section of the configuration to update
Returns:
True if the data was changed, False otherwise
@@ -1330,14 +1512,14 @@ def _update_in_memory(data, section):
return changed
-def ensure_latest_format_fn(section):
+def ensure_latest_format_fn(section: str) -> Callable[[YamlConfigDict], bool]:
"""Return a function that takes as input a dictionary read from
a configuration file and update it to the latest format.
The function returns True if there was any update, False otherwise.
Args:
- section (str): section of the configuration e.g. "packages",
+ section: section of the configuration e.g. "packages",
"config", etc.
"""
# The line below is based on the fact that every module we need
@@ -1348,7 +1530,9 @@ def ensure_latest_format_fn(section):
@contextlib.contextmanager
-def use_configuration(*scopes_or_paths):
+def use_configuration(
+ *scopes_or_paths: Union[ConfigScope, str]
+) -> Generator[Configuration, None, None]:
"""Use the configuration scopes passed as arguments within the
context manager.
@@ -1372,8 +1556,8 @@ def use_configuration(*scopes_or_paths):
CONFIG = saved_config
-@llnl.util.lang.memoized
-def _config_from(scopes_or_paths):
+@lang.memoized
+def _config_from(scopes_or_paths: List[Union[ConfigScope, str]]) -> Configuration:
scopes = []
for scope_or_path in scopes_or_paths:
# If we have a config scope we are already done
@@ -1383,7 +1567,7 @@ def _config_from(scopes_or_paths):
# Otherwise we need to construct it
path = os.path.normpath(scope_or_path)
- assert os.path.isdir(path), '"{0}" must be a directory'.format(path)
+ assert os.path.isdir(path), f'"{path}" must be a directory'
name = os.path.basename(path)
scopes.append(ConfigScope(name, path))
@@ -1391,13 +1575,14 @@ def _config_from(scopes_or_paths):
return configuration
-def raw_github_gitlab_url(url):
+def raw_github_gitlab_url(url: str) -> str:
"""Transform a github URL to the raw form to avoid undesirable html.
Args:
url: url to be converted to raw form
- Returns: (str) raw github/gitlab url or the original url
+ Returns:
+ Raw github/gitlab url or the original url
"""
# Note we rely on GitHub to redirect the 'raw' URL returned here to the
# actual URL under https://raw.githubusercontent.com/ with '/blob'
@@ -1450,7 +1635,7 @@ def fetch_remote_configs(url: str, dest_dir: str, skip_existing: bool = True) ->
def _fetch_file(url):
raw = raw_github_gitlab_url(url)
- tty.debug("Reading config from url {0}".format(raw))
+ tty.debug(f"Reading config from url {raw}")
return web_util.fetch_url_text(raw, dest_dir=dest_dir)
if not url:
@@ -1466,8 +1651,8 @@ def _fetch_file(url):
basename = os.path.basename(config_url)
if skip_existing and basename in existing_files:
tty.warn(
- "Will not fetch configuration from {0} since a version already"
- "exists in {1}".format(config_url, dest_dir)
+ f"Will not fetch configuration from {config_url} since a "
+ f"version already exists in {dest_dir}"
)
path = os.path.join(dest_dir, basename)
else:
@@ -1479,7 +1664,50 @@ def _fetch_file(url):
if paths:
return dest_dir if len(paths) > 1 else paths[0]
- raise ConfigFileError("Cannot retrieve configuration (yaml) from {0}".format(url))
+ raise ConfigFileError(f"Cannot retrieve configuration (yaml) from {url}")
+
+
+def get_mark_from_yaml_data(obj):
+ """Try to get ``spack.util.spack_yaml`` mark from YAML data.
+
+ We try the object, and if that fails we try its first member (if it's a container).
+
+ Returns:
+ mark if one is found, otherwise None.
+ """
+ # mark of object itelf
+ mark = getattr(obj, "_start_mark", None)
+ if mark:
+ return mark
+
+ # mark of first member if it is a container
+ if isinstance(obj, (list, dict)):
+ first_member = next(iter(obj), None)
+ if first_member:
+ mark = getattr(first_member, "_start_mark", None)
+
+ return mark
+
+
+def parse_spec_from_yaml_string(string: str) -> "spack.spec.Spec":
+ """Parse a spec from YAML and add file/line info to errors, if it's available.
+
+ Parse a ``Spec`` from the supplied string, but also intercept any syntax errors and
+ add file/line information for debugging using file/line annotations from the string.
+
+ Arguments:
+ string: a string representing a ``Spec`` from config YAML.
+
+ """
+ try:
+ spec = spack.spec.Spec(string)
+ return spec
+ except spack.parser.SpecSyntaxError as e:
+ mark = spack.config.get_mark_from_yaml_data(string)
+ if mark:
+ msg = f"{mark.name}:{mark.line + 1}: {str(e)}"
+ raise spack.parser.SpecSyntaxError(msg) from e
+ raise e
class ConfigError(SpackError):
@@ -1497,7 +1725,13 @@ class ConfigFileError(ConfigError):
class ConfigFormatError(ConfigError):
"""Raised when a configuration format does not match its schema."""
- def __init__(self, validation_error, data, filename=None, line=None):
+ def __init__(
+ self,
+ validation_error,
+ data: YamlConfigDict,
+ filename: Optional[str] = None,
+ line: Optional[int] = None,
+ ) -> None:
# spack yaml has its own file/line marks -- try to find them
# we prioritize these over the inputs
self.validation_error = validation_error
@@ -1511,33 +1745,19 @@ def __init__(self, validation_error, data, filename=None, line=None):
# construct location
location = ""
if filename:
- location = "%s" % filename
+ location = f"{filename}"
if line is not None:
- location += ":%d" % line
+ location += f":{line:d}"
- message = "%s: %s" % (location, validation_error.message)
+ message = f"{location}: {validation_error.message}"
super().__init__(message)
def _get_mark(self, validation_error, data):
"""Get the file/line mark fo a validation error from a Spack YAML file."""
- def _get_mark_or_first_member_mark(obj):
- # mark of object itelf
- mark = getattr(obj, "_start_mark", None)
- if mark:
- return mark
-
- # mark of first member if it is a container
- if isinstance(obj, (list, dict)):
- first_member = next(iter(obj), None)
- if first_member:
- mark = getattr(first_member, "_start_mark", None)
- if mark:
- return mark
-
# Try various places, starting with instance and parent
for obj in (validation_error.instance, validation_error.parent):
- mark = _get_mark_or_first_member_mark(obj)
+ mark = get_mark_from_yaml_data(obj)
if mark:
return mark
diff --git a/lib/spack/spack/container/__init__.py b/lib/spack/spack/container/__init__.py
index 988849d5f2eb1c..1c333f721f3b83 100644
--- a/lib/spack/spack/container/__init__.py
+++ b/lib/spack/spack/container/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/container/images.py b/lib/spack/spack/container/images.py
index 476fbab1db3614..6ff4f456af24d8 100644
--- a/lib/spack/spack/container/images.py
+++ b/lib/spack/spack/container/images.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/container/writers/__init__.py b/lib/spack/spack/container/writers/__init__.py
index 60e6dc61ea4f7d..1be85aaf2ae051 100644
--- a/lib/spack/spack/container/writers/__init__.py
+++ b/lib/spack/spack/container/writers/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/container/writers/docker.py b/lib/spack/spack/container/writers/docker.py
index 98b9bef75b4ca7..287ef9d1ac79cc 100644
--- a/lib/spack/spack/container/writers/docker.py
+++ b/lib/spack/spack/container/writers/docker.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/container/writers/singularity.py b/lib/spack/spack/container/writers/singularity.py
index d54eb935cfa2a2..5cbb055fd3fd5f 100644
--- a/lib/spack/spack/container/writers/singularity.py
+++ b/lib/spack/spack/container/writers/singularity.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/context.py b/lib/spack/spack/context.py
index de3311da22b0ff..4eb8740753b1d9 100644
--- a/lib/spack/spack/context.py
+++ b/lib/spack/spack/context.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/cray_manifest.py b/lib/spack/spack/cray_manifest.py
index 48ec52d782d3bb..eb26b3e6b99ac3 100644
--- a/lib/spack/spack/cray_manifest.py
+++ b/lib/spack/spack/cray_manifest.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/database.py b/lib/spack/spack/database.py
index ecda8c36b0f0ba..a854b864da7831 100644
--- a/lib/spack/spack/database.py
+++ b/lib/spack/spack/database.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -25,9 +25,20 @@
import socket
import sys
import time
-from typing import Any, Callable, Dict, Generator, List, NamedTuple, Set, Type, Union
-
-import spack.deptypes as dt
+from typing import (
+ Any,
+ Callable,
+ Container,
+ Dict,
+ Generator,
+ List,
+ NamedTuple,
+ Optional,
+ Set,
+ Tuple,
+ Type,
+ Union,
+)
try:
import uuid
@@ -37,13 +48,13 @@
_use_uuid = False
pass
-from typing import Optional, Tuple
-
import llnl.util.filesystem as fs
import llnl.util.tty as tty
+import spack.deptypes as dt
import spack.hash_types as ht
import spack.spec
+import spack.traverse as tr
import spack.util.lock as lk
import spack.util.spack_json as sjson
import spack.version as vn
@@ -297,7 +308,7 @@ def __reduce__(self):
end_date (datetime.datetime or None): filters the query discarding
specs that have been installed after ``end_date``.
- hashes (typing.Container): list or set of hashes that we can use to
+ hashes (Container): list or set of hashes that we can use to
restrict the search
in_buildcache (bool or None): Specs that are marked in
@@ -1648,31 +1659,35 @@ def is_occupied_install_prefix(self, path):
with self.read_transaction():
return path in self._installed_prefixes
- @property
- def unused_specs(self):
- """Return all the specs that are currently installed but not needed
- at runtime to satisfy user's requests.
-
- Specs in the return list are those which are not either:
- 1. Installed on an explicit user request
- 2. Installed as a "run" or "link" dependency (even transitive) of
- a spec at point 1.
- """
- needed, visited = set(), set()
+ def all_hashes(self):
+ """Return dag hash of every spec in the database."""
with self.read_transaction():
- for key, rec in self._data.items():
- if not rec.explicit:
- continue
+ return list(self._data.keys())
- # recycle `visited` across calls to avoid redundantly traversing
- for spec in rec.spec.traverse(visited=visited, deptype=("link", "run")):
- needed.add(spec.dag_hash())
+ def unused_specs(
+ self,
+ root_hashes: Optional[Container[str]] = None,
+ deptype: Union[dt.DepFlag, dt.DepTypes] = dt.LINK | dt.RUN,
+ ) -> "List[spack.spec.Spec]":
+ """Return all specs that are currently installed but not needed by root specs.
- unused = [
- rec.spec for key, rec in self._data.items() if key not in needed and rec.installed
- ]
+ By default, roots are all explicit specs in the database. If a set of root
+ hashes are passed in, they are instead used as the roots.
- return unused
+ Arguments:
+ root_hashes: optional list of roots to consider when evaluating needed installations.
+ deptype: if a spec is reachable from a root via these dependency types, it is
+ considered needed. By default only link and run dependency types are considered.
+ """
+
+ def root(key, record):
+ """Whether a DB record is a root for garbage collection."""
+ return key in root_hashes if root_hashes is not None else record.explicit
+
+ with self.read_transaction():
+ roots = [rec.spec for key, rec in self._data.items() if root(key, rec)]
+ needed = set(id(spec) for spec in tr.traverse_nodes(roots, deptype=deptype))
+ return [rec.spec for rec in self._data.values() if id(rec.spec) not in needed]
def update_explicit(self, spec, explicit):
"""
diff --git a/lib/spack/spack/dependency.py b/lib/spack/spack/dependency.py
index 3bb2df791b91b3..d8dd7b941fa71d 100644
--- a/lib/spack/spack/dependency.py
+++ b/lib/spack/spack/dependency.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -79,4 +79,7 @@ def merge(self, other: "Dependency"):
def __repr__(self) -> str:
types = dt.flag_to_chars(self.depflag)
- return f" {self.spec} [{types}]>"
+ if self.patches:
+ return f" {self.spec} [{types}, {self.patches}]>"
+ else:
+ return f" {self.spec} [{types}]>"
diff --git a/lib/spack/spack/deptypes.py b/lib/spack/spack/deptypes.py
index 91ac6907908df3..af196bd4ad00a3 100644
--- a/lib/spack/spack/deptypes.py
+++ b/lib/spack/spack/deptypes.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/detection/__init__.py b/lib/spack/spack/detection/__init__.py
index 7c54fb9d49ba76..44225ef0620087 100644
--- a/lib/spack/spack/detection/__init__.py
+++ b/lib/spack/spack/detection/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/detection/common.py b/lib/spack/spack/detection/common.py
index 6fba021b336b0c..516bd11c8d506b 100644
--- a/lib/spack/spack/detection/common.py
+++ b/lib/spack/spack/detection/common.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -309,10 +309,14 @@ def find_windows_kit_roots() -> List[str]:
return glob.glob(kit_base)
@staticmethod
- def find_windows_kit_bin_paths(kit_base: Optional[str] = None) -> List[str]:
+ def find_windows_kit_bin_paths(
+ kit_base: Union[Optional[str], Optional[list]] = None
+ ) -> List[str]:
"""Returns Windows kit bin directory per version"""
kit_base = WindowsKitExternalPaths.find_windows_kit_roots() if not kit_base else kit_base
assert kit_base, "Unexpectedly empty value for Windows kit base path"
+ if isinstance(kit_base, str):
+ kit_base = kit_base.split(";")
kit_paths = []
for kit in kit_base:
kit_bin = os.path.join(kit, "bin")
@@ -320,10 +324,14 @@ def find_windows_kit_bin_paths(kit_base: Optional[str] = None) -> List[str]:
return kit_paths
@staticmethod
- def find_windows_kit_lib_paths(kit_base: Optional[str] = None) -> List[str]:
+ def find_windows_kit_lib_paths(
+ kit_base: Union[Optional[str], Optional[list]] = None
+ ) -> List[str]:
"""Returns Windows kit lib directory per version"""
kit_base = WindowsKitExternalPaths.find_windows_kit_roots() if not kit_base else kit_base
assert kit_base, "Unexpectedly empty value for Windows kit base path"
+ if isinstance(kit_base, str):
+ kit_base = kit_base.split(";")
kit_paths = []
for kit in kit_base:
kit_lib = os.path.join(kit, "Lib")
diff --git a/lib/spack/spack/detection/path.py b/lib/spack/spack/detection/path.py
index f5da02bede1842..514d1c13e28b47 100644
--- a/lib/spack/spack/detection/path.py
+++ b/lib/spack/spack/detection/path.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/detection/test.py b/lib/spack/spack/detection/test.py
index f33040f2929e86..a9a03115201407 100644
--- a/lib/spack/spack/detection/test.py
+++ b/lib/spack/spack/detection/test.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/directives.py b/lib/spack/spack/directives.py
index fcd72d5bfcc12d..25245624280b79 100644
--- a/lib/spack/spack/directives.py
+++ b/lib/spack/spack/directives.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -29,6 +29,7 @@ class OpenMpi(Package):
* ``requires``
"""
+import collections
import collections.abc
import functools
import os.path
@@ -83,7 +84,14 @@ class OpenMpi(Package):
_patch_order_index = 0
-def make_when_spec(value):
+SpecType = Union["spack.spec.Spec", str]
+DepType = Union[Tuple[str, ...], str]
+WhenType = Optional[Union["spack.spec.Spec", str, bool]]
+Patcher = Callable[[Union["spack.package_base.PackageBase", Dependency]], None]
+PatchesType = Optional[Union[Patcher, str, List[Union[Patcher, str]]]]
+
+
+def _make_when_spec(value: WhenType) -> Optional["spack.spec.Spec"]:
"""Create a ``Spec`` that indicates when a directive should be applied.
Directives with ``when`` specs, e.g.:
@@ -106,7 +114,7 @@ def make_when_spec(value):
as part of concretization.
Arguments:
- value (spack.spec.Spec or bool): a conditional Spec or a constant ``bool``
+ value: a conditional Spec, constant ``bool``, or None if not supplied
value indicating when a directive should be applied.
"""
@@ -116,7 +124,7 @@ def make_when_spec(value):
# Unsatisfiable conditions are discarded by the caller, and never
# added to the package class
if value is False:
- return False
+ return None
# If there is no constraint, the directive should always apply;
# represent this by returning the unconstrained `Spec()`, which is
@@ -175,8 +183,8 @@ def __init__(cls, name, bases, attr_dict):
# that the directives are called to set it up.
if "spack.pkg" in cls.__module__:
- # Ensure the presence of the dictionaries associated
- # with the directives
+ # Ensure the presence of the dictionaries associated with the directives.
+ # All dictionaries are defaultdicts that create lists for missing keys.
for d in DirectiveMeta._directive_dict_names:
setattr(cls, d, {})
@@ -455,8 +463,15 @@ def _execute_version(pkg, ver, **kwargs):
pkg.versions[version] = kwargs
-def _depends_on(pkg, spec, when=None, type=dt.DEFAULT_TYPES, patches=None):
- when_spec = make_when_spec(when)
+def _depends_on(
+ pkg: "spack.package_base.PackageBase",
+ spec: SpecType,
+ *,
+ when: WhenType = None,
+ type: DepType = dt.DEFAULT_TYPES,
+ patches: PatchesType = None,
+):
+ when_spec = _make_when_spec(when)
if not when_spec:
return
@@ -467,7 +482,6 @@ def _depends_on(pkg, spec, when=None, type=dt.DEFAULT_TYPES, patches=None):
raise CircularReferenceError("Package '%s' cannot depend on itself." % pkg.name)
depflag = dt.canonicalize(type)
- conditions = pkg.dependencies.setdefault(dep_spec.name, {})
# call this patches here for clarity -- we want patch to be a list,
# but the caller doesn't have to make it one.
@@ -495,11 +509,13 @@ def _depends_on(pkg, spec, when=None, type=dt.DEFAULT_TYPES, patches=None):
assert all(callable(p) for p in patches)
# this is where we actually add the dependency to this package
- if when_spec not in conditions:
+ deps_by_name = pkg.dependencies.setdefault(when_spec, {})
+ dependency = deps_by_name.get(dep_spec.name)
+
+ if not dependency:
dependency = Dependency(pkg, dep_spec, depflag=depflag)
- conditions[when_spec] = dependency
+ deps_by_name[dep_spec.name] = dependency
else:
- dependency = conditions[when_spec]
dependency.spec.constrain(dep_spec, deps=False)
dependency.depflag |= depflag
@@ -509,7 +525,7 @@ def _depends_on(pkg, spec, when=None, type=dt.DEFAULT_TYPES, patches=None):
@directive("conflicts")
-def conflicts(conflict_spec, when=None, msg=None):
+def conflicts(conflict_spec: SpecType, when: WhenType = None, msg: Optional[str] = None):
"""Allows a package to define a conflict.
Currently, a "conflict" is a concretized configuration that is known
@@ -529,30 +545,35 @@ def conflicts(conflict_spec, when=None, msg=None):
msg (str): optional user defined message
"""
- def _execute_conflicts(pkg):
+ def _execute_conflicts(pkg: "spack.package_base.PackageBase"):
# If when is not specified the conflict always holds
- when_spec = make_when_spec(when)
+ when_spec = _make_when_spec(when)
if not when_spec:
return
# Save in a list the conflicts and the associated custom messages
- when_spec_list = pkg.conflicts.setdefault(conflict_spec, [])
+ conflict_spec_list = pkg.conflicts.setdefault(when_spec, [])
msg_with_name = f"{pkg.name}: {msg}" if msg is not None else msg
- when_spec_list.append((when_spec, msg_with_name))
+ conflict_spec_list.append((spack.spec.Spec(conflict_spec), msg_with_name))
return _execute_conflicts
@directive(("dependencies"))
-def depends_on(spec, when=None, type=dt.DEFAULT_TYPES, patches=None):
+def depends_on(
+ spec: SpecType,
+ when: WhenType = None,
+ type: DepType = dt.DEFAULT_TYPES,
+ patches: PatchesType = None,
+):
"""Creates a dict of deps with specs defining when they apply.
Args:
- spec (spack.spec.Spec or str): the package and constraints depended on
- when (spack.spec.Spec or str): when the dependent satisfies this, it has
+ spec: the package and constraints depended on
+ when: when the dependent satisfies this, it has
the dependency represented by ``spec``
- type (str or tuple): str or tuple of legal Spack deptypes
- patches (typing.Callable or list): single result of ``patch()`` directive, a
+ type: str or tuple of legal Spack deptypes
+ patches: single result of ``patch()`` directive, a
``str`` to be passed to ``patch``, or a list of these
This directive is to be used inside a Package definition to declare
@@ -561,14 +582,14 @@ def depends_on(spec, when=None, type=dt.DEFAULT_TYPES, patches=None):
"""
- def _execute_depends_on(pkg):
+ def _execute_depends_on(pkg: "spack.package_base.PackageBase"):
_depends_on(pkg, spec, when=when, type=type, patches=patches)
return _execute_depends_on
@directive(("extendees", "dependencies"))
-def extends(spec, type=("build", "run"), **kwargs):
+def extends(spec, when=None, type=("build", "run"), patches=None):
"""Same as depends_on, but also adds this package to the extendee list.
keyword arguments can be passed to extends() so that extension
@@ -578,20 +599,21 @@ def extends(spec, type=("build", "run"), **kwargs):
"""
def _execute_extends(pkg):
- when = kwargs.get("when")
- when_spec = make_when_spec(when)
+ when_spec = _make_when_spec(when)
if not when_spec:
return
- _depends_on(pkg, spec, when=when, type=type)
+ _depends_on(pkg, spec, when=when, type=type, patches=patches)
spec_obj = spack.spec.Spec(spec)
- pkg.extendees[spec_obj.name] = (spec_obj, kwargs)
+
+ # TODO: the values of the extendees dictionary are not used. Remove in next refactor.
+ pkg.extendees[spec_obj.name] = (spec_obj, None)
return _execute_extends
@directive(dicts=("provided", "provided_together"))
-def provides(*specs, when: Optional[str] = None):
+def provides(*specs: SpecType, when: WhenType = None):
"""Allows packages to provide a virtual dependency.
If a package provides "mpi", other packages can declare that they depend on "mpi",
@@ -602,16 +624,17 @@ def provides(*specs, when: Optional[str] = None):
when: condition when this provides clause needs to be considered
"""
- def _execute_provides(pkg):
+ def _execute_provides(pkg: "spack.package_base.PackageBase"):
import spack.parser # Avoid circular dependency
- when_spec = make_when_spec(when)
+ when_spec = _make_when_spec(when)
if not when_spec:
return
# ``when`` specs for ``provides()`` need a name, as they are used
# to build the ProviderIndex.
when_spec.name = pkg.name
+
spec_objs = [spack.spec.Spec(x) for x in specs]
spec_names = [x.name for x in spec_objs]
if len(spec_names) > 1:
@@ -621,36 +644,38 @@ def _execute_provides(pkg):
if pkg.name == provided_spec.name:
raise CircularReferenceError("Package '%s' cannot provide itself." % pkg.name)
- if provided_spec not in pkg.provided:
- pkg.provided[provided_spec] = set()
- pkg.provided[provided_spec].add(when_spec)
+ provided_set = pkg.provided.setdefault(when_spec, set())
+ provided_set.add(provided_spec)
return _execute_provides
@directive("patches")
-def patch(url_or_filename, level=1, when=None, working_dir=".", **kwargs):
+def patch(
+ url_or_filename: str,
+ level: int = 1,
+ when: WhenType = None,
+ working_dir: str = ".",
+ sha256: Optional[str] = None,
+ archive_sha256: Optional[str] = None,
+) -> Patcher:
"""Packages can declare patches to apply to source. You can
optionally provide a when spec to indicate that a particular
patch should only be applied when the package's spec meets
certain conditions (e.g. a particular version).
Args:
- url_or_filename (str): url or relative filename of the patch
- level (int): patch level (as in the patch shell command)
- when (spack.spec.Spec): optional anonymous spec that specifies when to apply
- the patch
- working_dir (str): dir to change to before applying
-
- Keyword Args:
- sha256 (str): sha256 sum of the patch, used to verify the patch
- (only required for URL patches)
- archive_sha256 (str): sha256 sum of the *archive*, if the patch
- is compressed (only required for compressed URL patches)
+ url_or_filename: url or relative filename of the patch
+ level: patch level (as in the patch shell command)
+ when: optional anonymous spec that specifies when to apply the patch
+ working_dir: dir to change to before applying
+ sha256: sha256 sum of the patch, used to verify the patch (only required for URL patches)
+ archive_sha256: sha256 sum of the *archive*, if the patch is compressed (only required for
+ compressed URL patches)
"""
- def _execute_patch(pkg_or_dep):
+ def _execute_patch(pkg_or_dep: Union["spack.package_base.PackageBase", Dependency]):
pkg = pkg_or_dep
if isinstance(pkg, Dependency):
pkg = pkg.pkg
@@ -660,7 +685,7 @@ def _execute_patch(pkg_or_dep):
"Patches are not allowed in {0}: package has no code.".format(pkg.name)
)
- when_spec = make_when_spec(when)
+ when_spec = _make_when_spec(when)
if not when_spec:
return
@@ -672,9 +697,16 @@ def _execute_patch(pkg_or_dep):
ordering_key = (pkg.name, _patch_order_index)
_patch_order_index += 1
+ patch: spack.patch.Patch
if "://" in url_or_filename:
patch = spack.patch.UrlPatch(
- pkg, url_or_filename, level, working_dir, ordering_key=ordering_key, **kwargs
+ pkg,
+ url_or_filename,
+ level,
+ working_dir,
+ ordering_key=ordering_key,
+ sha256=sha256,
+ archive_sha256=archive_sha256,
)
else:
patch = spack.patch.FilePatch(
@@ -781,7 +813,7 @@ def _raise_default_not_set(pkg):
description = str(description).strip()
def _execute_variant(pkg):
- when_spec = make_when_spec(when)
+ when_spec = _make_when_spec(when)
when_specs = [when_spec]
if not re.match(spack.spec.IDENTIFIER_RE, name):
@@ -823,7 +855,7 @@ def resource(**kwargs):
def _execute_resource(pkg):
when = kwargs.get("when")
- when_spec = make_when_spec(when)
+ when_spec = _make_when_spec(when)
if not when_spec:
return
@@ -889,17 +921,17 @@ def _execute_maintainer(pkg):
def _execute_license(pkg, license_identifier: str, when):
# If when is not specified the license always holds
- when_spec = make_when_spec(when)
+ when_spec = _make_when_spec(when)
if not when_spec:
return
for other_when_spec in pkg.licenses:
if when_spec.intersects(other_when_spec):
when_message = ""
- if when_spec != make_when_spec(None):
+ if when_spec != _make_when_spec(None):
when_message = f"when {when_spec}"
other_when_message = ""
- if other_when_spec != make_when_spec(None):
+ if other_when_spec != _make_when_spec(None):
other_when_message = f"when {other_when_spec}"
err_msg = (
f"{pkg.name} is specified as being licensed as {license_identifier} "
@@ -912,21 +944,28 @@ def _execute_license(pkg, license_identifier: str, when):
@directive("licenses")
-def license(license_identifier: str, when=None):
+def license(
+ license_identifier: str,
+ checked_by: Optional[Union[str, List[str]]] = None,
+ when: Optional[Union[str, bool]] = None,
+):
"""Add a new license directive, to specify the SPDX identifier the software is
distributed under.
Args:
- license_identifiers: A list of SPDX identifiers specifying the licenses
- the software is distributed under.
+ license_identifiers: SPDX identifier specifying the license(s) the software
+ is distributed under.
+ checked_by: string or list of strings indicating which github user checked the
+ license (if any).
when: A spec specifying when the license applies.
+ when: A spec specifying when the license applies.
"""
return lambda pkg: _execute_license(pkg, license_identifier, when)
@directive("requirements")
-def requires(*requirement_specs, policy="one_of", when=None, msg=None):
+def requires(*requirement_specs: str, policy="one_of", when=None, msg=None):
"""Allows a package to request a configuration to be present in all valid solutions.
For instance, a package that is known to compile only with GCC can declare:
@@ -945,7 +984,7 @@ def requires(*requirement_specs, policy="one_of", when=None, msg=None):
msg: optional user defined message
"""
- def _execute_requires(pkg):
+ def _execute_requires(pkg: "spack.package_base.PackageBase"):
if policy not in ("one_of", "any_of"):
err_msg = (
f"the 'policy' argument of the 'requires' directive in {pkg.name} is set "
@@ -953,14 +992,15 @@ def _execute_requires(pkg):
)
raise DirectiveError(err_msg)
- when_spec = make_when_spec(when)
+ when_spec = _make_when_spec(when)
if not when_spec:
return
# Save in a list the requirements and the associated custom messages
- when_spec_list = pkg.requirements.setdefault(tuple(requirement_specs), [])
+ requirement_list = pkg.requirements.setdefault(when_spec, [])
msg_with_name = f"{pkg.name}: {msg}" if msg is not None else msg
- when_spec_list.append((when_spec, policy, msg_with_name))
+ requirements = tuple(spack.spec.Spec(s) for s in requirement_specs)
+ requirement_list.append((requirements, policy, msg_with_name))
return _execute_requires
diff --git a/lib/spack/spack/directory_layout.py b/lib/spack/spack/directory_layout.py
index c0741a037c0a03..b7a9b93431ce00 100644
--- a/lib/spack/spack/directory_layout.py
+++ b/lib/spack/spack/directory_layout.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/environment/__init__.py b/lib/spack/spack/environment/__init__.py
index 2f293d9eb8f81b..e6521aed871bdf 100644
--- a/lib/spack/spack/environment/__init__.py
+++ b/lib/spack/spack/environment/__init__.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/environment/depfile.py b/lib/spack/spack/environment/depfile.py
index 34e2481fa916c3..06dc8f157d05ec 100644
--- a/lib/spack/spack/environment/depfile.py
+++ b/lib/spack/spack/environment/depfile.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/environment/environment.py b/lib/spack/spack/environment/environment.py
index 5d6273506ec9c6..2a6cc6e77440d5 100644
--- a/lib/spack/spack/environment/environment.py
+++ b/lib/spack/spack/environment/environment.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,7 +16,7 @@
import urllib.parse
import urllib.request
import warnings
-from typing import Any, Dict, Iterable, List, Optional, Set, Tuple, Union
+from typing import Dict, Iterable, List, Optional, Set, Tuple, Union
import llnl.util.filesystem as fs
import llnl.util.tty as tty
@@ -83,17 +83,30 @@
lockfile_name = "spack.lock"
-#: Name of the directory where environments store repos, logs, views
+#: Name of the directory where environments store repos, logs, views, configs
env_subdir_name = ".spack-env"
-def env_root_path():
+def env_root_path() -> str:
"""Override default root path if the user specified it"""
return spack.util.path.canonicalize_path(
spack.config.get("config:environments_root", default=default_env_path)
)
+def environment_name(path: Union[str, pathlib.Path]) -> str:
+ """Human-readable representation of the environment.
+
+ This is the path for directory environments, and just the name
+ for managed environments.
+ """
+ path_str = str(path)
+ if path_str.startswith(env_root_path()):
+ return os.path.basename(path_str)
+ else:
+ return path_str
+
+
def check_disallowed_env_config_mods(scopes):
for scope in scopes:
with spack.config.use_configuration(scope):
@@ -179,9 +192,8 @@ def validate_env_name(name):
def activate(env, use_env_repo=False):
"""Activate an environment.
- To activate an environment, we add its configuration scope to the
- existing Spack configuration, and we set active to the current
- environment.
+ To activate an environment, we add its manifest's configuration scope to the
+ existing Spack configuration, and we set active to the current environment.
Arguments:
env (Environment): the environment to activate
@@ -198,7 +210,7 @@ def activate(env, use_env_repo=False):
# below.
install_tree_before = spack.config.get("config:install_tree")
upstreams_before = spack.config.get("upstreams")
- prepare_config_scope(env)
+ env.manifest.prepare_config_scope()
install_tree_after = spack.config.get("config:install_tree")
upstreams_after = spack.config.get("upstreams")
if install_tree_before != install_tree_after or upstreams_before != upstreams_after:
@@ -226,7 +238,7 @@ def deactivate():
if hasattr(_active_environment, "store_token"):
spack.store.restore(_active_environment.store_token)
delattr(_active_environment, "store_token")
- deactivate_config_scope(_active_environment)
+ _active_environment.manifest.deactivate_config_scope()
# use _repo so we only remove if a repo was actually constructed
if _active_environment._repo:
@@ -307,7 +319,7 @@ def create(
def create_in_dir(
- manifest_dir: Union[str, pathlib.Path],
+ root: Union[str, pathlib.Path],
init_file: Optional[Union[str, pathlib.Path]] = None,
with_view: Optional[Union[str, pathlib.Path, bool]] = None,
keep_relative: bool = False,
@@ -318,35 +330,72 @@ def create_in_dir(
are considered manifest files.
Args:
- manifest_dir: directory where to create the environment.
+ root: directory where to create the environment.
init_file: either a lockfile, a manifest file, or None
with_view: whether a view should be maintained for the environment. If the value is a
string, it specifies the path to the view
keep_relative: if True, develop paths are copied verbatim into the new environment file,
otherwise they are made absolute
"""
- initialize_environment_dir(manifest_dir, envfile=init_file)
+ initialize_environment_dir(root, envfile=init_file)
if with_view is None and keep_relative:
- return Environment(manifest_dir)
+ return Environment(root)
try:
- manifest = EnvironmentManifestFile(manifest_dir)
+ manifest = EnvironmentManifestFile(root)
if with_view is not None:
manifest.set_default_view(with_view)
- if not keep_relative and init_file is not None and str(init_file).endswith(manifest_name):
- init_file = pathlib.Path(init_file)
- manifest.absolutify_dev_paths(init_file.parent)
-
manifest.flush()
except (spack.config.ConfigFormatError, SpackEnvironmentConfigError) as e:
- shutil.rmtree(manifest_dir)
+ shutil.rmtree(root)
raise e
- return Environment(manifest_dir)
+ env = Environment(root)
+
+ if init_file:
+ init_file_dir = os.path.abspath(os.path.dirname(init_file))
+
+ if not keep_relative:
+ if env.path != init_file_dir:
+ # If we are here, we are creating an environment based on an
+ # spack.yaml file in another directory, and moreover we want
+ # dev paths in this environment to refer to their original
+ # locations.
+ _rewrite_relative_dev_paths_on_relocation(env, init_file_dir)
+
+ return env
+
+
+def _rewrite_relative_dev_paths_on_relocation(env, init_file_dir):
+ """When initializing the environment from a manifest file and we plan
+ to store the environment in a different directory, we have to rewrite
+ relative paths to absolute ones."""
+ with env:
+ dev_specs = spack.config.get("develop", default={}, scope=env.scope_name)
+ if not dev_specs:
+ return
+ for name, entry in dev_specs.items():
+ dev_path = entry["path"]
+ expanded_path = os.path.normpath(os.path.join(init_file_dir, entry["path"]))
+
+ # Skip if the expanded path is the same (e.g. when absolute)
+ if dev_path == expanded_path:
+ continue
+
+ tty.debug("Expanding develop path for {0} to {1}".format(name, expanded_path))
+
+ dev_specs[name]["path"] = expanded_path
+
+ spack.config.set("develop", dev_specs, scope=env.scope_name)
+
+ env._dev_specs = None
+ # If we changed the environment's spack.yaml scope, that will not be reflected
+ # in the manifest that we read
+ env._re_read()
def environment_dir_from_name(name: str, exists_ok: bool = True) -> str:
@@ -562,39 +611,33 @@ def content_hash(self, specs):
return spack.util.hash.b32_hash(contents)
def get_projection_for_spec(self, spec):
- """Get projection for spec relative to view root
-
- Getting the projection from the underlying root will get the temporary
- projection. This gives the permanent projection relative to the root
- symlink.
- """
- view = self.view()
- view_path = view.get_projection_for_spec(spec)
- rel_path = os.path.relpath(view_path, self._current_root)
- return os.path.join(self.root, rel_path)
+ """Get projection for spec. This function does not require the view
+ to exist on the filesystem."""
+ return self._view(self.root).get_projection_for_spec(spec)
- def view(self, new=None):
+ def view(self, new: Optional[str] = None) -> SimpleFilesystemView:
"""
- Generate the FilesystemView object for this ViewDescriptor
-
- By default, this method returns a FilesystemView object rooted at the
- current underlying root of this ViewDescriptor (self._current_root)
+ Returns a view object for the *underlying* view directory. This means that the
+ self.root symlink is followed, and that the view has to exist on the filesystem
+ (unless ``new``). This function is useful when writing to the view.
Raise if new is None and there is no current view
Arguments:
- new (str or None): If a string, create a FilesystemView
- rooted at that path. Default None. This should only be used to
- regenerate the view, and cannot be used to access specs.
+ new: If a string, create a FilesystemView rooted at that path. Default None. This
+ should only be used to regenerate the view, and cannot be used to access specs.
"""
root = new if new else self._current_root
if not root:
# This can only be hit if we write a future bug
- msg = (
+ raise SpackEnvironmentViewError(
"Attempting to get nonexistent view from environment. "
- "View root is at %s" % self.root
+ f"View root is at {self.root}"
)
- raise SpackEnvironmentViewError(msg)
+ return self._view(root)
+
+ def _view(self, root: str) -> SimpleFilesystemView:
+ """Returns a view object for a given root dir."""
return SimpleFilesystemView(
root,
spack.store.STORE.layout,
@@ -732,6 +775,17 @@ def _create_environment(path):
return Environment(path)
+def env_subdir_path(manifest_dir: Union[str, pathlib.Path]) -> str:
+ """Path to where the environment stores repos, logs, views, configs.
+
+ Args:
+ manifest_dir: directory containing the environment manifest file
+
+ Returns: directory the environment uses to manage its files
+ """
+ return os.path.join(str(manifest_dir), env_subdir_name)
+
+
class Environment:
"""A Spack environment, which bundles together configuration and a list of specs."""
@@ -743,32 +797,38 @@ def __init__(self, manifest_dir: Union[str, pathlib.Path]) -> None:
manifest_dir: directory with the "spack.yaml" associated with the environment
"""
self.path = os.path.abspath(str(manifest_dir))
+ self.name = environment_name(self.path)
+ self.env_subdir_path = env_subdir_path(self.path)
self.txlock = lk.Lock(self._transaction_lock_path)
self._unify = None
self.new_specs: List[Spec] = []
- self.new_installs: List[Spec] = []
self.views: Dict[str, ViewDescriptor] = {}
#: Specs from "spack.yaml"
self.spec_lists: Dict[str, SpecList] = {user_speclist_name: SpecList()}
- #: Dev-build specs from "spack.yaml"
- self.dev_specs: Dict[str, Any] = {}
#: User specs from the last concretization
self.concretized_user_specs: List[Spec] = []
#: Roots associated with the last concretization, in order
- self.concretized_order: List[Spec] = []
+ self.concretized_order: List[str] = []
#: Concretized specs by hash
self.specs_by_hash: Dict[str, Spec] = {}
#: Repository for this environment (memoized)
self._repo = None
#: Previously active environment
self._previous_active = None
+ self._dev_specs = None
+
+ # Load the manifest file contents into memory
+ self._load_manifest_file()
+ def _load_manifest_file(self):
+ """Instantiate and load the manifest file contents into memory."""
with lk.ReadTransaction(self.txlock):
- self.manifest = EnvironmentManifestFile(manifest_dir)
- self._read()
+ self.manifest = EnvironmentManifestFile(self.path)
+ with self.manifest.use_config():
+ self._read()
@property
def unify(self):
@@ -786,19 +846,10 @@ def __reduce__(self):
def _re_read(self):
"""Reinitialize the environment object."""
self.clear(re_read=True)
- self.manifest = EnvironmentManifestFile(self.path)
- self._read(re_read=True)
+ self._load_manifest_file()
- def _read(self, re_read=False):
- # If the manifest has included files, then some of the information
- # (e.g., definitions) MAY be in those files. So we need to ensure
- # the config is populated with any associated spec lists in order
- # to fully construct the manifest state.
- includes = self.manifest[TOP_LEVEL_KEY].get("include", [])
- if includes and not re_read:
- prepare_config_scope(self)
-
- self._construct_state_from_manifest(re_read)
+ def _read(self):
+ self._construct_state_from_manifest()
if os.path.exists(self.lock_path):
with open(self.lock_path) as f:
@@ -825,18 +876,14 @@ def _process_definition(self, item):
else:
self.spec_lists[name] = user_specs
- def _construct_state_from_manifest(self, re_read=False):
- """Read manifest file and set up user specs."""
+ def _construct_state_from_manifest(self):
+ """Set up user specs and views from the manifest file."""
self.spec_lists = collections.OrderedDict()
- if not re_read:
- for item in spack.config.get("definitions", []):
- self._process_definition(item)
-
- env_configuration = self.manifest[TOP_LEVEL_KEY]
- for item in env_configuration.get("definitions", []):
+ for item in spack.config.get("definitions", []):
self._process_definition(item)
+ env_configuration = self.manifest[TOP_LEVEL_KEY]
spec_list = env_configuration.get(user_speclist_name, [])
user_specs = SpecList(
user_speclist_name, [s for s in spec_list if s], self.spec_lists.copy()
@@ -858,32 +905,40 @@ def _construct_state_from_manifest(self, re_read=False):
else:
self.views = {}
- # Retrieve dev-build packages:
- self.dev_specs = copy.deepcopy(env_configuration.get("develop", {}))
- for name, entry in self.dev_specs.items():
- # spec must include a concrete version
- assert Spec(entry["spec"]).versions.concrete_range_as_version
- # default path is the spec name
- if "path" not in entry:
- self.dev_specs[name]["path"] = name
-
@property
def user_specs(self):
return self.spec_lists[user_speclist_name]
+ @property
+ def dev_specs(self):
+ if not self._dev_specs:
+ self._dev_specs = self._read_dev_specs()
+ return self._dev_specs
+
+ def _read_dev_specs(self):
+ dev_specs = {}
+ dev_config = spack.config.get("develop", {})
+ for name, entry in dev_config.items():
+ local_entry = {"spec": str(entry["spec"])}
+ # default path is the spec name
+ if "path" not in entry:
+ local_entry["path"] = name
+ else:
+ local_entry["path"] = entry["path"]
+ dev_specs[name] = local_entry
+ return dev_specs
+
def clear(self, re_read=False):
"""Clear the contents of the environment
Arguments:
- re_read (bool): If True, do not clear ``new_specs`` nor
- ``new_installs`` values. These values cannot be read from
- yaml, and need to be maintained when re-reading an existing
- environment.
+ re_read: If ``True``, do not clear ``new_specs``. This value cannot be read from yaml,
+ and needs to be maintained when re-reading an existing environment.
"""
self.spec_lists = collections.OrderedDict()
self.spec_lists[user_speclist_name] = SpecList()
- self.dev_specs = {} # dev-build specs from yaml
+ self._dev_specs = {}
self.concretized_user_specs = [] # user specs from last concretize
self.concretized_order = [] # roots of last concretize, in order
self.specs_by_hash = {} # concretized specs by hash
@@ -892,24 +947,6 @@ def clear(self, re_read=False):
if not re_read:
# things that cannot be recreated from file
self.new_specs = [] # write packages for these on write()
- self.new_installs = [] # write modules for these on write()
-
- @property
- def internal(self):
- """Whether this environment is managed by Spack."""
- return self.path.startswith(env_root_path())
-
- @property
- def name(self):
- """Human-readable representation of the environment.
-
- This is the path for directory environments, and just the name
- for managed environments.
- """
- if self.internal:
- return os.path.basename(self.path)
- else:
- return self.path
@property
def active(self):
@@ -938,23 +975,9 @@ def _lock_backup_v1_path(self):
"""Path to backup of v1 lockfile before conversion to v2"""
return self.lock_path + ".backup.v1"
- @property
- def env_subdir_path(self):
- """Path to directory where the env stores repos, logs, views."""
- return os.path.join(self.path, env_subdir_name)
-
@property
def repos_path(self):
- return os.path.join(self.path, env_subdir_name, "repos")
-
- @property
- def log_path(self):
- return os.path.join(self.path, env_subdir_name, "logs")
-
- @property
- def config_stage_dir(self):
- """Directory for any staged configuration file(s)."""
- return os.path.join(self.env_subdir_path, "config")
+ return os.path.join(self.env_subdir_path, "repos")
@property
def view_path_default(self):
@@ -967,122 +990,10 @@ def repo(self):
self._repo = make_repo_path(self.repos_path)
return self._repo
- def included_config_scopes(self):
- """List of included configuration scopes from the environment.
-
- Scopes are listed in the YAML file in order from highest to
- lowest precedence, so configuration from earlier scope will take
- precedence over later ones.
-
- This routine returns them in the order they should be pushed onto
- the internal scope stack (so, in reverse, from lowest to highest).
- """
- scopes = []
-
- # load config scopes added via 'include:', in reverse so that
- # highest-precedence scopes are last.
- includes = self.manifest[TOP_LEVEL_KEY].get("include", [])
- missing = []
- for i, config_path in enumerate(reversed(includes)):
- # allow paths to contain spack config/environment variables, etc.
- config_path = substitute_path_variables(config_path)
-
- include_url = urllib.parse.urlparse(config_path)
-
- # Transform file:// URLs to direct includes.
- if include_url.scheme == "file":
- config_path = urllib.request.url2pathname(include_url.path)
-
- # Any other URL should be fetched.
- elif include_url.scheme in ("http", "https", "ftp"):
- # Stage any remote configuration file(s)
- staged_configs = (
- os.listdir(self.config_stage_dir)
- if os.path.exists(self.config_stage_dir)
- else []
- )
- remote_path = urllib.request.url2pathname(include_url.path)
- basename = os.path.basename(remote_path)
- if basename in staged_configs:
- # Do NOT re-stage configuration files over existing
- # ones with the same name since there is a risk of
- # losing changes (e.g., from 'spack config update').
- tty.warn(
- "Will not re-stage configuration from {0} to avoid "
- "losing changes to the already staged file of the "
- "same name.".format(remote_path)
- )
-
- # Recognize the configuration stage directory
- # is flattened to ensure a single copy of each
- # configuration file.
- config_path = self.config_stage_dir
- if basename.endswith(".yaml"):
- config_path = os.path.join(config_path, basename)
- else:
- staged_path = spack.config.fetch_remote_configs(
- config_path, self.config_stage_dir, skip_existing=True
- )
- if not staged_path:
- raise SpackEnvironmentError(
- "Unable to fetch remote configuration {0}".format(config_path)
- )
- config_path = staged_path
-
- elif include_url.scheme:
- raise ValueError(
- f"Unsupported URL scheme ({include_url.scheme}) for "
- f"environment include: {config_path}"
- )
-
- # treat relative paths as relative to the environment
- if not os.path.isabs(config_path):
- config_path = os.path.join(self.path, config_path)
- config_path = os.path.normpath(os.path.realpath(config_path))
-
- if os.path.isdir(config_path):
- # directories are treated as regular ConfigScopes
- config_name = "env:%s:%s" % (self.name, os.path.basename(config_path))
- tty.debug("Creating ConfigScope {0} for '{1}'".format(config_name, config_path))
- scope = spack.config.ConfigScope(config_name, config_path)
- elif os.path.exists(config_path):
- # files are assumed to be SingleFileScopes
- config_name = "env:%s:%s" % (self.name, config_path)
- tty.debug(
- "Creating SingleFileScope {0} for '{1}'".format(config_name, config_path)
- )
- scope = spack.config.SingleFileScope(
- config_name, config_path, spack.schema.merged.schema
- )
- else:
- missing.append(config_path)
- continue
-
- scopes.append(scope)
-
- if missing:
- msg = "Detected {0} missing include path(s):".format(len(missing))
- msg += "\n {0}".format("\n ".join(missing))
- raise spack.config.ConfigFileError(msg)
-
- return scopes
-
- def env_file_config_scope_name(self):
+ @property
+ def scope_name(self):
"""Name of the config scope of this environment's manifest file."""
- return "env:%s" % self.name
-
- def env_file_config_scope(self):
- """Get the configuration scope for the environment's manifest file."""
- config_name = self.env_file_config_scope_name()
- return spack.config.SingleFileScope(
- config_name, self.manifest_path, spack.schema.env.schema, [TOP_LEVEL_KEY]
- )
-
- def config_scopes(self):
- """A list of all configuration scopes for this environment."""
- return check_disallowed_env_config_mods(
- self.included_config_scopes() + [self.env_file_config_scope()]
- )
+ return self.manifest.scope_name
def destroy(self):
"""Remove this environment from Spack entirely."""
@@ -1182,7 +1093,7 @@ def change_existing_spec(
for idx, spec in matches:
override_spec = Spec.override(spec, change_spec)
- self.spec_lists[list_name].specs[idx] = override_spec
+ self.spec_lists[list_name].replace(idx, str(override_spec))
if list_name == user_speclist_name:
self.manifest.override_user_spec(str(override_spec), idx=idx)
else:
@@ -1190,7 +1101,6 @@ def change_existing_spec(
str(spec), override=str(override_spec), list_name=list_name
)
self.update_stale_references(from_list=list_name)
- self._construct_state_from_manifest()
def remove(self, query_spec, list_name=user_speclist_name, force=False):
"""Remove specs from an environment that match a query_spec"""
@@ -1251,82 +1161,6 @@ def remove(self, query_spec, list_name=user_speclist_name, force=False):
del self.concretized_order[i]
del self.specs_by_hash[dag_hash]
- def develop(self, spec: Spec, path: str, clone: bool = False) -> bool:
- """Add dev-build info for package
-
- Args:
- spec: Set constraints on development specs. Must include a
- concrete version.
- path: Path to find code for developer builds. Relative
- paths will be resolved relative to the environment.
- clone: Clone the package code to the path.
- If clone is False Spack will assume the code is already present
- at ``path``.
-
- Return:
- (bool): True iff the environment was changed.
- """
- spec = spec.copy() # defensive copy since we access cached attributes
-
- if not spec.versions.concrete:
- raise SpackEnvironmentError("Cannot develop spec %s without a concrete version" % spec)
-
- for name, entry in self.dev_specs.items():
- if name == spec.name:
- e_spec = Spec(entry["spec"])
- e_path = entry["path"]
-
- if e_spec == spec:
- if path == e_path:
- tty.msg("Spec %s already configured for development" % spec)
- return False
- else:
- tty.msg("Updating development path for spec %s" % spec)
- break
- else:
- msg = "Updating development spec for package "
- msg += "%s with path %s" % (spec.name, path)
- tty.msg(msg)
- break
- else:
- tty.msg("Configuring spec %s for development at path %s" % (spec, path))
-
- if clone:
- # "steal" the source code via staging API. We ask for a stage
- # to be created, then copy it afterwards somewhere else. It would be
- # better if we can create the `source_path` directly into its final
- # destination.
- abspath = spack.util.path.canonicalize_path(path, default_wd=self.path)
- pkg_cls = spack.repo.PATH.get_pkg_class(spec.name)
- # We construct a package class ourselves, rather than asking for
- # Spec.package, since Spec only allows this when it is concrete
- package = pkg_cls(spec)
- if isinstance(package.fetcher, spack.fetch_strategy.GitFetchStrategy):
- package.fetcher.get_full_repo = True
- # If we retrieved this version before and cached it, we may have
- # done so without cloning the full git repo; likewise, any
- # mirror might store an instance with truncated history.
- package.stage.disable_mirrors()
-
- package.stage.steal_source(abspath)
-
- # If it wasn't already in the list, append it
- entry = {"path": path, "spec": str(spec)}
- self.dev_specs[spec.name] = entry
- self.manifest.add_develop_spec(spec.name, entry=entry.copy())
- return True
-
- def undevelop(self, spec):
- """Remove develop info for abstract spec ``spec``.
-
- returns True on success, False if no entry existed."""
- spec = Spec(spec) # In case it's a spec object
- if spec.name in self.dev_specs:
- del self.dev_specs[spec.name]
- self.manifest.remove_develop_spec(spec.name)
- return True
- return False
-
def is_develop(self, spec):
"""Returns true when the spec is built from local sources"""
return spec.name in self.dev_specs
@@ -1837,8 +1671,8 @@ def _add_concrete_spec(self, spec, concrete, new=True):
self.concretized_order.append(h)
self.specs_by_hash[h] = concrete
- def _get_overwrite_specs(self):
- # Find all dev specs that were modified.
+ def _dev_specs_that_need_overwrite(self):
+ """Return the hashes of all specs that need to be reinstalled due to source code change."""
changed_dev_specs = [
s
for s in traverse.traverse_nodes(
@@ -1863,21 +1697,6 @@ def _get_overwrite_specs(self):
if depth == 0 or spec.installed
]
- def _install_log_links(self, spec):
- if not spec.external:
- # Make sure log directory exists
- log_path = self.log_path
- fs.mkdirp(log_path)
-
- with fs.working_dir(self.path):
- # Link the resulting log file into logs dir
- build_log_link = os.path.join(
- log_path, "%s-%s.log" % (spec.name, spec.dag_hash(7))
- )
- if os.path.lexists(build_log_link):
- os.remove(build_log_link)
- symlink(spec.package.build_log_path, build_log_link)
-
def _partition_roots_by_install_status(self):
"""Partition root specs into those that do not have to be passed to the
installer, and those that should be, taking into account development
@@ -1911,58 +1730,18 @@ def install_all(self, **install_args):
"""
self.install_specs(None, **install_args)
- def install_specs(self, specs=None, **install_args):
- tty.debug("Assessing installation status of environment packages")
- # If "spack install" is invoked repeatedly for a large environment
- # where all specs are already installed, the operation can take
- # a large amount of time due to repeatedly acquiring and releasing
- # locks. As a small optimization, drop already installed root specs.
- installed_roots, uninstalled_roots = self._partition_roots_by_install_status()
- if specs:
- specs_to_install = [s for s in specs if s not in installed_roots]
- specs_dropped = [s for s in specs if s in installed_roots]
- else:
- specs_to_install = uninstalled_roots
- specs_dropped = installed_roots
-
- # We need to repeat the work of the installer thanks to the above optimization:
- # Already installed root specs should be marked explicitly installed in the
- # database.
- if specs_dropped:
- with spack.store.STORE.db.write_transaction(): # do all in one transaction
- for spec in specs_dropped:
- spack.store.STORE.db.update_explicit(spec, True)
-
- if not specs_to_install:
- tty.msg("All of the packages are already installed")
- else:
- tty.debug("Processing {0} uninstalled specs".format(len(specs_to_install)))
+ def install_specs(self, specs: Optional[List[Spec]] = None, **install_args):
+ roots = self.concrete_roots()
+ specs = specs if specs is not None else roots
- specs_to_overwrite = self._get_overwrite_specs()
- tty.debug("{0} specs need to be overwritten".format(len(specs_to_overwrite)))
+ # Extend the set of specs to overwrite with modified dev specs and their parents
+ install_args["overwrite"] = (
+ install_args.get("overwrite", []) + self._dev_specs_that_need_overwrite()
+ )
- install_args["overwrite"] = install_args.get("overwrite", []) + specs_to_overwrite
+ installs = [(spec.package, {**install_args, "explicit": spec in roots}) for spec in specs]
- installs = []
- for spec in specs_to_install:
- pkg_install_args = install_args.copy()
- pkg_install_args["explicit"] = spec in self.roots()
- installs.append((spec.package, pkg_install_args))
-
- try:
- builder = PackageInstaller(installs)
- builder.install()
- finally:
- # Ensure links are set appropriately
- for spec in specs_to_install:
- if spec.installed:
- self.new_installs.append(spec)
- try:
- self._install_log_links(spec)
- except OSError as e:
- tty.warn(
- "Could not install log links for {0}: {1}".format(spec.name, str(e))
- )
+ PackageInstaller(installs).install()
def all_specs_generator(self) -> Iterable[Spec]:
"""Returns a generator for all concrete specs"""
@@ -2285,11 +2064,7 @@ def write(self, regenerate: bool = True) -> None:
self.regenerate_views()
spack.hooks.post_env_write(self)
- self._reset_new_specs_and_installs()
-
- def _reset_new_specs_and_installs(self) -> None:
- self.new_specs = []
- self.new_installs = []
+ self.new_specs.clear()
def update_lockfile(self) -> None:
with fs.write_tmp_and_move(self.lock_path) as f:
@@ -2487,18 +2262,6 @@ def make_repo_path(root):
return path
-def prepare_config_scope(env):
- """Add env's scope to the global configuration search path."""
- for scope in env.config_scopes():
- spack.config.CONFIG.push_scope(scope)
-
-
-def deactivate_config_scope(env):
- """Remove any scopes from env from the global config path."""
- for scope in env.config_scopes():
- spack.config.CONFIG.remove_scope(scope.name)
-
-
def manifest_file(env_name_or_dir):
"""Return the absolute path to a manifest file given the environment
name or directory.
@@ -2677,8 +2440,9 @@ def from_lockfile(manifest_dir: Union[pathlib.Path, str]) -> "EnvironmentManifes
already existing in the directory.
Args:
- manifest_dir: directory where the lockfile is
+ manifest_dir: directory containing the manifest and lockfile
"""
+ # TBD: Should this be the abspath?
manifest_dir = pathlib.Path(manifest_dir)
lockfile = manifest_dir / lockfile_name
with lockfile.open("r") as f:
@@ -2696,6 +2460,8 @@ def from_lockfile(manifest_dir: Union[pathlib.Path, str]) -> "EnvironmentManifes
def __init__(self, manifest_dir: Union[pathlib.Path, str]) -> None:
self.manifest_dir = pathlib.Path(manifest_dir)
self.manifest_file = self.manifest_dir / manifest_name
+ self.scope_name = f"env:{environment_name(self.manifest_dir)}"
+ self.config_stage_dir = os.path.join(env_subdir_path(manifest_dir), "config")
if not self.manifest_file.exists():
msg = f"cannot find '{manifest_name}' in {self.manifest_dir}"
@@ -2901,57 +2667,6 @@ def remove_default_view(self) -> None:
self.set_default_view(view=False)
- def add_develop_spec(self, pkg_name: str, entry: Dict[str, str]) -> None:
- """Adds a develop spec to the manifest file
-
- Args:
- pkg_name: name of the package to be developed
- entry: spec and path of the developed package
- """
- # The environment sets the path to pkg_name is that is implicit
- if entry["path"] == pkg_name:
- entry.pop("path")
-
- self.pristine_configuration.setdefault("develop", {}).setdefault(pkg_name, {}).update(
- entry
- )
- self.configuration.setdefault("develop", {}).setdefault(pkg_name, {}).update(entry)
- self.changed = True
-
- def remove_develop_spec(self, pkg_name: str) -> None:
- """Removes a develop spec from the manifest file
-
- Args:
- pkg_name: package to be removed from development
-
- Raises:
- SpackEnvironmentError: if there is nothing to remove
- """
- try:
- del self.pristine_configuration["develop"][pkg_name]
- except KeyError as e:
- msg = f"cannot remove '{pkg_name}' from develop specs in {self}, entry does not exist"
- raise SpackEnvironmentError(msg) from e
- del self.configuration["develop"][pkg_name]
- self.changed = True
-
- def absolutify_dev_paths(self, init_file_dir: Union[str, pathlib.Path]) -> None:
- """Normalizes the dev paths in the environment with respect to the directory where the
- initialization file resides.
-
- Args:
- init_file_dir: directory with the "spack.yaml" used to initialize the environment.
- """
- init_file_dir = pathlib.Path(init_file_dir).absolute()
- for _, entry in self.pristine_configuration.get("develop", {}).items():
- expanded_path = os.path.normpath(str(init_file_dir / entry["path"]))
- entry["path"] = str(expanded_path)
-
- for _, entry in self.configuration.get("develop", {}).items():
- expanded_path = os.path.normpath(str(init_file_dir / entry["path"]))
- entry["path"] = str(expanded_path)
- self.changed = True
-
def flush(self) -> None:
"""Synchronizes the object with the manifest file on disk."""
if not self.changed:
@@ -2983,6 +2698,145 @@ def __iter__(self):
def __str__(self):
return str(self.manifest_file)
+ @property
+ def included_config_scopes(self) -> List[spack.config.ConfigScope]:
+ """List of included configuration scopes from the manifest.
+
+ Scopes are listed in the YAML file in order from highest to
+ lowest precedence, so configuration from earlier scope will take
+ precedence over later ones.
+
+ This routine returns them in the order they should be pushed onto
+ the internal scope stack (so, in reverse, from lowest to highest).
+
+ Returns: Configuration scopes associated with the environment manifest
+
+ Raises:
+ SpackEnvironmentError: if the manifest includes a remote file but
+ no configuration stage directory has been identified
+ """
+ scopes = []
+
+ # load config scopes added via 'include:', in reverse so that
+ # highest-precedence scopes are last.
+ includes = self[TOP_LEVEL_KEY].get("include", [])
+ env_name = environment_name(self.manifest_dir)
+ missing = []
+ for i, config_path in enumerate(reversed(includes)):
+ # allow paths to contain spack config/environment variables, etc.
+ config_path = substitute_path_variables(config_path)
+
+ include_url = urllib.parse.urlparse(config_path)
+
+ # Transform file:// URLs to direct includes.
+ if include_url.scheme == "file":
+ config_path = urllib.request.url2pathname(include_url.path)
+
+ # Any other URL should be fetched.
+ elif include_url.scheme in ("http", "https", "ftp"):
+ # Stage any remote configuration file(s)
+ staged_configs = (
+ os.listdir(self.config_stage_dir)
+ if os.path.exists(self.config_stage_dir)
+ else []
+ )
+ remote_path = urllib.request.url2pathname(include_url.path)
+ basename = os.path.basename(remote_path)
+ if basename in staged_configs:
+ # Do NOT re-stage configuration files over existing
+ # ones with the same name since there is a risk of
+ # losing changes (e.g., from 'spack config update').
+ tty.warn(
+ "Will not re-stage configuration from {0} to avoid "
+ "losing changes to the already staged file of the "
+ "same name.".format(remote_path)
+ )
+
+ # Recognize the configuration stage directory
+ # is flattened to ensure a single copy of each
+ # configuration file.
+ config_path = self.config_stage_dir
+ if basename.endswith(".yaml"):
+ config_path = os.path.join(config_path, basename)
+ else:
+ staged_path = spack.config.fetch_remote_configs(
+ config_path, str(self.config_stage_dir), skip_existing=True
+ )
+ if not staged_path:
+ raise SpackEnvironmentError(
+ "Unable to fetch remote configuration {0}".format(config_path)
+ )
+ config_path = staged_path
+
+ elif include_url.scheme:
+ raise ValueError(
+ f"Unsupported URL scheme ({include_url.scheme}) for "
+ f"environment include: {config_path}"
+ )
+
+ # treat relative paths as relative to the environment
+ if not os.path.isabs(config_path):
+ config_path = os.path.join(self.manifest_dir, config_path)
+ config_path = os.path.normpath(os.path.realpath(config_path))
+
+ if os.path.isdir(config_path):
+ # directories are treated as regular ConfigScopes
+ config_name = "env:%s:%s" % (env_name, os.path.basename(config_path))
+ tty.debug("Creating ConfigScope {0} for '{1}'".format(config_name, config_path))
+ scope = spack.config.ConfigScope(config_name, config_path)
+ elif os.path.exists(config_path):
+ # files are assumed to be SingleFileScopes
+ config_name = "env:%s:%s" % (env_name, config_path)
+ tty.debug(
+ "Creating SingleFileScope {0} for '{1}'".format(config_name, config_path)
+ )
+ scope = spack.config.SingleFileScope(
+ config_name, config_path, spack.schema.merged.schema
+ )
+ else:
+ missing.append(config_path)
+ continue
+
+ scopes.append(scope)
+
+ if missing:
+ msg = "Detected {0} missing include path(s):".format(len(missing))
+ msg += "\n {0}".format("\n ".join(missing))
+ raise spack.config.ConfigFileError(msg)
+
+ return scopes
+
+ @property
+ def env_config_scopes(self) -> List[spack.config.ConfigScope]:
+ """A list of all configuration scopes for the environment manifest.
+
+ Returns: All configuration scopes associated with the environment
+ """
+ config_name = self.scope_name
+ env_scope = spack.config.SingleFileScope(
+ config_name, str(self.manifest_file), spack.schema.env.schema, [TOP_LEVEL_KEY]
+ )
+
+ return check_disallowed_env_config_mods(self.included_config_scopes + [env_scope])
+
+ def prepare_config_scope(self) -> None:
+ """Add the manifest's scopes to the global configuration search path."""
+ for scope in self.env_config_scopes:
+ spack.config.CONFIG.push_scope(scope)
+
+ def deactivate_config_scope(self) -> None:
+ """Remove any of the manifest's scopes from the global config path."""
+ for scope in self.env_config_scopes:
+ spack.config.CONFIG.remove_scope(scope.name)
+
+ @contextlib.contextmanager
+ def use_config(self):
+ """Ensure only the manifest's configuration scopes are global."""
+ with no_active_environment():
+ self.prepare_config_scope()
+ yield
+ self.deactivate_config_scope()
+
class SpackEnvironmentError(spack.error.SpackError):
"""Superclass for all errors to do with Spack environments."""
diff --git a/lib/spack/spack/environment/shell.py b/lib/spack/spack/environment/shell.py
index a4f9634a8da051..b1d87a48fd7649 100644
--- a/lib/spack/spack/environment/shell.py
+++ b/lib/spack/spack/environment/shell.py
@@ -1,8 +1,9 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
+import textwrap
from typing import Optional
import llnl.util.tty as tty
@@ -54,22 +55,35 @@ def activate_header(env, shell, prompt=None, view: Optional[str] = None):
if view:
cmds += "$Env:SPACK_ENV_VIEW='%s'\n" % view
else:
- if "color" in os.getenv("TERM", "") and prompt:
- prompt = colorize("@G{%s}" % prompt, color=True, enclose=True)
+ bash_color_prompt = colorize(f"@G{{{prompt}}}", color=True, enclose=True)
+ zsh_color_prompt = colorize(f"@G{{{prompt}}}", color=True, enclose=False, zsh=True)
cmds += "export SPACK_ENV=%s;\n" % env.path
if view:
cmds += "export SPACK_ENV_VIEW=%s;\n" % view
cmds += "alias despacktivate='spack env deactivate';\n"
if prompt:
- cmds += "if [ -z ${SPACK_OLD_PS1+x} ]; then\n"
- cmds += " if [ -z ${PS1+x} ]; then\n"
- cmds += " PS1='$$$$';\n"
- cmds += " fi;\n"
- cmds += ' export SPACK_OLD_PS1="${PS1}";\n'
- cmds += "fi;\n"
- cmds += 'export PS1="%s ${PS1}";\n' % prompt
-
+ cmds += textwrap.dedent(
+ rf"""
+ if [ -z ${{SPACK_OLD_PS1+x}} ]; then
+ if [ -z ${{PS1+x}} ]; then
+ PS1='$$$$';
+ fi;
+ export SPACK_OLD_PS1="${{PS1}}";
+ fi;
+ if [ -n "${{TERM:-}}" ] && [ "${{TERM#*color}}" != "${{TERM}}" ] && \
+ [ -n "${{BASH:-}}" ];
+ then
+ export PS1="{bash_color_prompt} ${{PS1}}";
+ elif [ -n "${{TERM:-}}" ] && [ "${{TERM#*color}}" != "${{TERM}}" ] && \
+ [ -n "${{ZSH_NAME:-}}" ];
+ then
+ export PS1="{zsh_color_prompt} ${{PS1}}";
+ else
+ export PS1="{prompt} ${{PS1}}";
+ fi
+ """
+ ).lstrip("\n")
return cmds
diff --git a/lib/spack/spack/error.py b/lib/spack/spack/error.py
index 8c9015ed6d9de7..804dc6867b20f1 100644
--- a/lib/spack/spack/error.py
+++ b/lib/spack/spack/error.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/extensions.py b/lib/spack/spack/extensions.py
index 0ee01a22a12a99..b7b30e135c83ba 100644
--- a/lib/spack/spack/extensions.py
+++ b/lib/spack/spack/extensions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,11 +6,13 @@
for Spack's command extensions.
"""
import difflib
+import glob
import importlib
import os
import re
import sys
import types
+from typing import List
import llnl.util.lang
@@ -75,6 +77,15 @@ def load_command_extension(command, path):
if not os.path.exists(cmd_path):
return None
+ ensure_extension_loaded(extension, path=path)
+
+ module = importlib.import_module(module_name)
+ sys.modules[module_name] = module
+
+ return module
+
+
+def ensure_extension_loaded(extension, *, path):
def ensure_package_creation(name):
package_name = "{0}.{1}".format(__name__, name)
if package_name in sys.modules:
@@ -100,10 +111,22 @@ def ensure_package_creation(name):
ensure_package_creation(extension)
ensure_package_creation(extension + ".cmd")
- module = importlib.import_module(module_name)
- sys.modules[module_name] = module
- return module
+def load_extension(name: str) -> str:
+ """Loads a single extension into the 'spack.extensions' package.
+
+ Args:
+ name: name of the extension
+ """
+ extension_root = path_for_extension(name, paths=get_extension_paths())
+ ensure_extension_loaded(name, path=extension_root)
+ commands = glob.glob(
+ os.path.join(extension_root, extension_name(extension_root), "cmd", "*.py")
+ )
+ commands = [os.path.basename(x).rstrip(".py") for x in commands]
+ for command in commands:
+ load_command_extension(command, extension_root)
+ return extension_root
def get_extension_paths():
@@ -125,7 +148,7 @@ def get_command_paths():
return command_paths
-def path_for_extension(target_name, *paths):
+def path_for_extension(target_name: str, *, paths: List[str]) -> str:
"""Return the test root dir for a given extension.
Args:
diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py
index a922d9caf4c085..93df10c98f0f37 100644
--- a/lib/spack/spack/fetch_strategy.py
+++ b/lib/spack/spack/fetch_strategy.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -30,6 +30,7 @@
import shutil
import urllib.error
import urllib.parse
+from pathlib import PurePath
from typing import List, Optional
import llnl.url
@@ -37,13 +38,14 @@
import llnl.util.filesystem as fs
import llnl.util.tty as tty
from llnl.string import comma_and, quote
-from llnl.util.filesystem import get_single_file, mkdirp, temp_cwd, temp_rename, working_dir
+from llnl.util.filesystem import get_single_file, mkdirp, temp_cwd, working_dir
from llnl.util.symlink import symlink
import spack.config
import spack.error
import spack.oci.opener
import spack.url
+import spack.util.archive
import spack.util.crypto as crypto
import spack.util.git
import spack.util.url as url_util
@@ -600,29 +602,21 @@ def expand(self):
tty.debug("Source fetched with %s is already expanded." % self.url_attr)
@_needs_stage
- def archive(self, destination, **kwargs):
+ def archive(self, destination, *, exclude: Optional[str] = None):
assert llnl.url.extension_from_path(destination) == "tar.gz"
assert self.stage.source_path.startswith(self.stage.path)
-
- tar = which("tar", required=True)
-
- patterns = kwargs.get("exclude", None)
- if patterns is not None:
- if isinstance(patterns, str):
- patterns = [patterns]
- for p in patterns:
- tar.add_default_arg("--exclude=%s" % p)
-
- with working_dir(self.stage.path):
- if self.stage.srcdir:
- # Here we create an archive with the default repository name.
- # The 'tar' command has options for changing the name of a
- # directory that is included in the archive, but they differ
- # based on OS, so we temporarily rename the repo
- with temp_rename(self.stage.source_path, self.stage.srcdir):
- tar("-czf", destination, self.stage.srcdir)
- else:
- tar("-czf", destination, os.path.basename(self.stage.source_path))
+ # We need to prepend this dir name to every entry of the tarfile
+ top_level_dir = PurePath(self.stage.srcdir or os.path.basename(self.stage.source_path))
+
+ with working_dir(self.stage.source_path), spack.util.archive.gzip_compressed_tarfile(
+ destination
+ ) as (tar, _, _):
+ spack.util.archive.reproducible_tarfile_from_prefix(
+ tar=tar,
+ prefix=".",
+ skip=lambda entry: entry.name == exclude,
+ path_to_name=lambda path: (top_level_dir / PurePath(path)).as_posix(),
+ )
def __str__(self):
return "VCS: %s" % self.url
diff --git a/lib/spack/spack/filesystem_view.py b/lib/spack/spack/filesystem_view.py
index e6631fecbf66a4..6d9e85b9c43767 100644
--- a/lib/spack/spack/filesystem_view.py
+++ b/lib/spack/spack/filesystem_view.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/graph.py b/lib/spack/spack/graph.py
index 78bf38ec0e7e43..684a6061fb2038 100644
--- a/lib/spack/spack/graph.py
+++ b/lib/spack/spack/graph.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/hash_types.py b/lib/spack/spack/hash_types.py
index c1e25198cb3242..0684667528b5de 100644
--- a/lib/spack/spack/hash_types.py
+++ b/lib/spack/spack/hash_types.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/hooks/__init__.py b/lib/spack/spack/hooks/__init__.py
index e433d72ffb5029..5eb2c0bf57084c 100644
--- a/lib/spack/spack/hooks/__init__.py
+++ b/lib/spack/spack/hooks/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/hooks/absolutify_elf_sonames.py b/lib/spack/spack/hooks/absolutify_elf_sonames.py
index c0194a32664d60..d203c6d1efb926 100644
--- a/lib/spack/spack/hooks/absolutify_elf_sonames.py
+++ b/lib/spack/spack/hooks/absolutify_elf_sonames.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/hooks/drop_redundant_rpaths.py b/lib/spack/spack/hooks/drop_redundant_rpaths.py
index a32d435e388617..0c43fc1b5a78b9 100644
--- a/lib/spack/spack/hooks/drop_redundant_rpaths.py
+++ b/lib/spack/spack/hooks/drop_redundant_rpaths.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/hooks/licensing.py b/lib/spack/spack/hooks/licensing.py
index e21445c302c5be..000a5ef9ce4a29 100644
--- a/lib/spack/spack/hooks/licensing.py
+++ b/lib/spack/spack/hooks/licensing.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/hooks/module_file_generation.py b/lib/spack/spack/hooks/module_file_generation.py
index 1a2bbfdfe42d5c..485861d27c4a46 100644
--- a/lib/spack/spack/hooks/module_file_generation.py
+++ b/lib/spack/spack/hooks/module_file_generation.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -34,21 +34,8 @@ def _for_each_enabled(
def post_install(spec, explicit: bool):
- import spack.environment as ev # break import cycle
-
- if ev.active_environment():
- # If the installed through an environment, we skip post_install
- # module generation and generate the modules on env_write so Spack
- # can manage interactions between env views and modules
- return
-
_for_each_enabled(spec, "write", explicit)
def post_uninstall(spec):
_for_each_enabled(spec, "remove")
-
-
-def post_env_write(env):
- for spec in env.new_installs:
- _for_each_enabled(spec, "write")
diff --git a/lib/spack/spack/hooks/permissions_setters.py b/lib/spack/spack/hooks/permissions_setters.py
index fbd8079783ee90..3b1a822696489a 100644
--- a/lib/spack/spack/hooks/permissions_setters.py
+++ b/lib/spack/spack/hooks/permissions_setters.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/hooks/sbang.py b/lib/spack/spack/hooks/sbang.py
index 11e2d12f74b74b..83968603d59b02 100644
--- a/lib/spack/spack/hooks/sbang.py
+++ b/lib/spack/spack/hooks/sbang.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -229,6 +229,8 @@ def post_install(spec, explicit=None):
$spack_prefix/bin/sbang instead of something longer than the
shebang limit.
"""
+ if sys.platform == "win32":
+ return
if spec.external:
tty.debug("SKIP: shebang filtering [external package]")
return
diff --git a/lib/spack/spack/hooks/write_install_manifest.py b/lib/spack/spack/hooks/write_install_manifest.py
index fc796fb4b4295f..1921d8bc5c0d5f 100644
--- a/lib/spack/spack/hooks/write_install_manifest.py
+++ b/lib/spack/spack/hooks/write_install_manifest.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/install_test.py b/lib/spack/spack/install_test.py
index 662a1536c4b827..c27e8ea60ada33 100644
--- a/lib/spack/spack/install_test.py
+++ b/lib/spack/spack/install_test.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/installer.py b/lib/spack/spack/installer.py
index 51f70341761835..b2d2da0d8aa7f2 100644
--- a/lib/spack/spack/installer.py
+++ b/lib/spack/spack/installer.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -36,6 +36,7 @@
import sys
import time
from collections import defaultdict
+from gzip import GzipFile
from typing import Dict, Iterator, List, Optional, Set, Tuple
import llnl.util.filesystem as fs
@@ -357,7 +358,8 @@ def _print_installed_pkg(message: str) -> None:
Args:
message (str): message to be output
"""
- print(colorize("@*g{[+]} ") + spack.util.path.debug_padded_filter(message))
+ if tty.msg_enabled():
+ print(colorize("@*g{[+]} ") + spack.util.path.debug_padded_filter(message))
def print_install_test_log(pkg: "spack.package_base.PackageBase") -> None:
@@ -380,18 +382,16 @@ def _print_timer(pre: str, pkg_id: str, timer: timer.BaseTimer) -> None:
def _install_from_cache(
- pkg: "spack.package_base.PackageBase", cache_only: bool, explicit: bool, unsigned: bool = False
+ pkg: "spack.package_base.PackageBase", explicit: bool, unsigned: Optional[bool] = False
) -> bool:
"""
- Extract the package from binary cache
+ Install the package from binary cache
Args:
pkg: package to install from the binary cache
- cache_only: only extract from binary cache
explicit: ``True`` if installing the package was explicitly
requested by the user, otherwise, ``False``
- unsigned: ``True`` if binary package signatures to be checked,
- otherwise, ``False``
+ unsigned: if ``True`` or ``False`` override the mirror signature verification defaults
Return: ``True`` if the package was extract from binary cache, ``False`` otherwise
"""
@@ -399,15 +399,11 @@ def _install_from_cache(
installed_from_cache = _try_install_from_binary_cache(
pkg, explicit, unsigned=unsigned, timer=t
)
- pkg_id = package_id(pkg)
if not installed_from_cache:
- pre = f"No binary for {pkg_id} found"
- if cache_only:
- tty.die(f"{pre} when cache-only specified")
-
- tty.msg(f"{pre}: installing from source")
return False
t.stop()
+
+ pkg_id = package_id(pkg)
tty.debug(f"Successfully extracted {pkg_id} from binary cache")
_write_timer_json(pkg, t, True)
@@ -461,7 +457,7 @@ def _process_external_package(pkg: "spack.package_base.PackageBase", explicit: b
def _process_binary_cache_tarball(
pkg: "spack.package_base.PackageBase",
explicit: bool,
- unsigned: bool,
+ unsigned: Optional[bool],
mirrors_for_spec: Optional[list] = None,
timer: timer.BaseTimer = timer.NULL_TIMER,
) -> bool:
@@ -471,8 +467,7 @@ def _process_binary_cache_tarball(
Args:
pkg: the package being installed
explicit: the package was explicitly requested by the user
- unsigned: ``True`` if binary package signatures to be checked,
- otherwise, ``False``
+ unsigned: if ``True`` or ``False`` override the mirror signature verification defaults
mirrors_for_spec: Optional list of concrete specs and mirrors
obtained by calling binary_distribution.get_mirrors_for_spec().
timer: timer to keep track of binary install phases.
@@ -492,9 +487,7 @@ def _process_binary_cache_tarball(
tty.msg(f"Extracting {package_id(pkg)} from binary cache")
with timer.measure("install"), spack.util.path.filter_padding():
- binary_distribution.extract_tarball(
- pkg.spec, download_result, unsigned=unsigned, force=False, timer=timer
- )
+ binary_distribution.extract_tarball(pkg.spec, download_result, force=False, timer=timer)
pkg.installed_from_binary_cache = True
spack.store.STORE.db.add(pkg.spec, spack.store.STORE.layout, explicit=explicit)
@@ -504,7 +497,7 @@ def _process_binary_cache_tarball(
def _try_install_from_binary_cache(
pkg: "spack.package_base.PackageBase",
explicit: bool,
- unsigned: bool = False,
+ unsigned: Optional[bool] = None,
timer: timer.BaseTimer = timer.NULL_TIMER,
) -> bool:
"""
@@ -513,8 +506,7 @@ def _try_install_from_binary_cache(
Args:
pkg: package to be extracted from binary cache
explicit: the package was explicitly requested by the user
- unsigned: ``True`` if binary package signatures to be checked,
- otherwise, ``False``
+ unsigned: if ``True`` or ``False`` override the mirror signature verification defaults
timer: timer to keep track of binary install phases.
"""
# Early exit if no binary mirrors are configured.
@@ -647,13 +639,12 @@ def archive_install_logs(pkg: "spack.package_base.PackageBase", phase_log_dir: s
pkg: the package that was built and installed
phase_log_dir: path to the archive directory
"""
- # Archive the whole stdout + stderr for the package
- fs.install(pkg.log_path, pkg.install_log_path)
-
- # Archive all phase log paths
- for phase_log in pkg.phase_log_files:
- log_file = os.path.basename(phase_log)
- fs.install(phase_log, os.path.join(phase_log_dir, log_file))
+ # Copy a compressed version of the install log
+ with open(pkg.log_path, "rb") as f, open(pkg.install_log_path, "wb") as g:
+ # Use GzipFile directly so we can omit filename / mtime in header
+ gzip_file = GzipFile(filename="", mode="wb", compresslevel=6, mtime=0, fileobj=g)
+ shutil.copyfileobj(f, gzip_file)
+ gzip_file.close()
# Archive the install-phase test log, if present
pkg.archive_install_test_log()
@@ -824,7 +815,7 @@ def _add_default_args(self) -> None:
("restage", False),
("skip_patch", False),
("tests", False),
- ("unsigned", False),
+ ("unsigned", None),
("verbose", False),
]:
_ = self.install_args.setdefault(arg, default)
@@ -1335,7 +1326,6 @@ def _prepare_for_install(self, task: BuildTask) -> None:
"""
install_args = task.request.install_args
keep_prefix = install_args.get("keep_prefix")
- restage = install_args.get("restage")
# Make sure the package is ready to be locally installed.
self._ensure_install_ready(task.pkg)
@@ -1367,10 +1357,6 @@ def _prepare_for_install(self, task: BuildTask) -> None:
else:
tty.debug(f"{task.pkg_id} is partially installed")
- # Destroy the stage for a locally installed, non-DIYStage, package
- if restage and task.pkg.stage.managed_by_spack:
- task.pkg.stage.destroy()
-
if (
rec
and installed_in_db
@@ -1662,7 +1648,7 @@ def _install_task(self, task: BuildTask, install_status: InstallStatus) -> None:
use_cache = task.use_cache
tests = install_args.get("tests", False)
assert isinstance(tests, (bool, list)) # make mypy happy.
- unsigned = bool(install_args.get("unsigned"))
+ unsigned: Optional[bool] = install_args.get("unsigned")
pkg, pkg_id = task.pkg, task.pkg_id
@@ -1671,11 +1657,16 @@ def _install_task(self, task: BuildTask, install_status: InstallStatus) -> None:
task.status = STATUS_INSTALLING
# Use the binary cache if requested
- if use_cache and _install_from_cache(pkg, cache_only, explicit, unsigned):
- self._update_installed(task)
- if task.compiler:
- self._add_compiler_package_to_config(pkg)
- return
+ if use_cache:
+ if _install_from_cache(pkg, explicit, unsigned):
+ self._update_installed(task)
+ if task.compiler:
+ self._add_compiler_package_to_config(pkg)
+ return
+ elif cache_only:
+ raise InstallError("No binary found when cache-only was specified", pkg=pkg)
+ else:
+ tty.msg(f"No binary for {pkg_id} found: installing from source")
pkg.run_tests = tests if isinstance(tests, bool) else pkg.name in tests
@@ -1691,6 +1682,10 @@ def _install_task(self, task: BuildTask, install_status: InstallStatus) -> None:
try:
self._setup_install_dir(pkg)
+ # Create stage object now and let it be serialized for the child process. That
+ # way monkeypatch in tests works correctly.
+ pkg.stage
+
# Create a child process to do the actual installation.
# Preserve verbosity settings across installs.
spack.package_base.PackageBase._verbose = spack.build_environment.start_build_process(
@@ -2007,7 +2002,9 @@ def install(self) -> None:
# Only enable the terminal status line when we're in a tty without debug info
# enabled, so that the output does not get cluttered.
- term_status = TermStatusLine(enabled=sys.stdout.isatty() and not tty.is_debug())
+ term_status = TermStatusLine(
+ enabled=sys.stdout.isatty() and tty.msg_enabled() and not tty.is_debug()
+ )
while self.build_pq:
task = self._pop_task()
@@ -2223,11 +2220,6 @@ def install(self) -> None:
if not keep_prefix and not action == InstallAction.OVERWRITE:
pkg.remove_prefix()
- # The subprocess *may* have removed the build stage. Mark it
- # not created so that the next time pkg.stage is invoked, we
- # check the filesystem for it.
- pkg.stage.created = False
-
# Perform basic task cleanup for the installed spec to
# include downgrading the write to a read lock
self._cleanup_task(pkg)
@@ -2297,6 +2289,9 @@ def __init__(self, pkg: "spack.package_base.PackageBase", install_args: dict):
# whether to keep the build stage after installation
self.keep_stage = install_args.get("keep_stage", False)
+ # whether to restage
+ self.restage = install_args.get("restage", False)
+
# whether to skip the patch phase
self.skip_patch = install_args.get("skip_patch", False)
@@ -2327,9 +2322,13 @@ def __init__(self, pkg: "spack.package_base.PackageBase", install_args: dict):
def run(self) -> bool:
"""Main entry point from ``build_process`` to kick off install in child."""
- self.pkg.stage.keep = self.keep_stage
+ stage = self.pkg.stage
+ stage.keep = self.keep_stage
+
+ if self.restage:
+ stage.destroy()
- with self.pkg.stage:
+ with stage:
self.timer.start("stage")
if not self.fake:
diff --git a/lib/spack/spack/main.py b/lib/spack/spack/main.py
index 56a4dc0e33534c..5d78e354d1caec 100644
--- a/lib/spack/spack/main.py
+++ b/lib/spack/spack/main.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/mirror.py b/lib/spack/spack/mirror.py
index d5425772cdd3be..2f1b9966ce2155 100644
--- a/lib/spack/spack/mirror.py
+++ b/lib/spack/spack/mirror.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -133,6 +133,10 @@ def binary(self):
def source(self):
return isinstance(self._data, str) or self._data.get("source", True)
+ @property
+ def signed(self) -> bool:
+ return isinstance(self._data, str) or self._data.get("signed", True)
+
@property
def fetch_url(self):
"""Get the valid, canonicalized fetch URL"""
@@ -146,7 +150,7 @@ def push_url(self):
def _update_connection_dict(self, current_data: dict, new_data: dict, top_level: bool):
keys = ["url", "access_pair", "access_token", "profile", "endpoint_url"]
if top_level:
- keys += ["binary", "source"]
+ keys += ["binary", "source", "signed"]
changed = False
for key in keys:
if key in new_data and current_data.get(key) != new_data[key]:
diff --git a/lib/spack/spack/mixins.py b/lib/spack/spack/mixins.py
index 189c3947efc1e9..e0e25f42bb4530 100644
--- a/lib/spack/spack/mixins.py
+++ b/lib/spack/spack/mixins.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -93,7 +93,7 @@ def _filter_compiler_wrappers_impl(pkg_or_builder):
replacements = []
for idx, (env_var, compiler_path) in enumerate(compiler_vars):
- if env_var in os.environ:
+ if env_var in os.environ and compiler_path is not None:
# filter spack wrapper and links to spack wrapper in case
# build system runs realpath
wrapper = os.environ[env_var]
diff --git a/lib/spack/spack/modules/__init__.py b/lib/spack/spack/modules/__init__.py
index dde8b74a5c285e..b466b2aafb428a 100644
--- a/lib/spack/spack/modules/__init__.py
+++ b/lib/spack/spack/modules/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/modules/common.py b/lib/spack/spack/modules/common.py
index 2ad5bb51bc002b..c13c04dcc9dcbd 100644
--- a/lib/spack/spack/modules/common.py
+++ b/lib/spack/spack/modules/common.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -43,6 +43,7 @@
import spack.build_environment
import spack.config
+import spack.deptypes as dt
import spack.environment
import spack.error
import spack.modules.common
@@ -53,6 +54,7 @@
import spack.spec
import spack.store
import spack.tengine as tengine
+import spack.user_environment
import spack.util.environment
import spack.util.file_permissions as fp
import spack.util.path
@@ -62,7 +64,7 @@
#: config section for this file
def configuration(module_set_name):
- config_path = "modules:%s" % module_set_name
+ config_path = f"modules:{module_set_name}"
return spack.config.get(config_path, {})
@@ -96,10 +98,10 @@ def _check_tokens_are_valid(format_string, message):
named_tokens = re.findall(r"{(\w*)}", format_string)
invalid_tokens = [x for x in named_tokens if x.lower() not in _valid_tokens]
if invalid_tokens:
- msg = message
- msg += " [{0}]. ".format(", ".join(invalid_tokens))
- msg += 'Did you check your "modules.yaml" configuration?'
- raise RuntimeError(msg)
+ raise RuntimeError(
+ f"{message} [{', '.join(invalid_tokens)}]. "
+ f"Did you check your 'modules.yaml' configuration?"
+ )
def update_dictionary_extending_lists(target, update):
@@ -219,7 +221,7 @@ def root_path(name, module_set_name):
"""
defaults = {"lmod": "$spack/share/spack/lmod", "tcl": "$spack/share/spack/modules"}
# Root folders where the various module files should be written
- roots = spack.config.get("modules:%s:roots" % module_set_name, {})
+ roots = spack.config.get(f"modules:{module_set_name}:roots", {})
# Merge config values into the defaults so we prefer configured values
roots = spack.config.merge_yaml(defaults, roots)
@@ -262,7 +264,7 @@ def read_module_index(root):
index_path = os.path.join(root, "module-index.yaml")
if not os.path.exists(index_path):
return {}
- with open(index_path, "r") as index_file:
+ with open(index_path) as index_file:
return _read_module_index(index_file)
@@ -310,21 +312,21 @@ def upstream_module(self, spec, module_type):
if db_for_spec in self.upstream_dbs:
db_index = self.upstream_dbs.index(db_for_spec)
elif db_for_spec:
- raise spack.error.SpackError("Unexpected: {0} is installed locally".format(spec))
+ raise spack.error.SpackError(f"Unexpected: {spec} is installed locally")
else:
- raise spack.error.SpackError("Unexpected: no install DB found for {0}".format(spec))
+ raise spack.error.SpackError(f"Unexpected: no install DB found for {spec}")
module_index = self.module_indices[db_index]
module_type_index = module_index.get(module_type, {})
if not module_type_index:
tty.debug(
- "No {0} modules associated with the Spack instance where"
- " {1} is installed".format(module_type, spec)
+ f"No {module_type} modules associated with the Spack instance "
+ f"where {spec} is installed"
)
return None
if spec.dag_hash() in module_type_index:
return module_type_index[spec.dag_hash()]
else:
- tty.debug("No module is available for upstream package {0}".format(spec))
+ tty.debug(f"No module is available for upstream package {spec}")
return None
@@ -603,7 +605,7 @@ def filename(self):
# Just the name of the file
filename = self.use_name
if self.extension:
- filename = "{0}.{1}".format(self.use_name, self.extension)
+ filename = f"{self.use_name}.{self.extension}"
# Architecture sub-folder
arch_folder_conf = spack.config.get("modules:%s:arch_folder" % self.conf.name, True)
if arch_folder_conf:
@@ -671,7 +673,7 @@ def configure_options(self):
return msg
if os.path.exists(pkg.install_configure_args_path):
- with open(pkg.install_configure_args_path, "r") as args_file:
+ with open(pkg.install_configure_args_path) as args_file:
return spack.util.path.padding_filter(args_file.read())
# Returning a false-like value makes the default templates skip
@@ -695,28 +697,33 @@ def environment_modifications(self):
)
spack.config.merge_yaml(
prefix_inspections,
- spack.config.get("modules:%s:prefix_inspections" % self.conf.name, {}),
+ spack.config.get(f"modules:{self.conf.name}:prefix_inspections", {}),
)
- use_view = spack.config.get("modules:%s:use_view" % self.conf.name, False)
+ use_view = spack.config.get(f"modules:{self.conf.name}:use_view", False)
- spec = self.spec.copy() # defensive copy before setting prefix
- if use_view:
- if use_view is True:
- use_view = spack.environment.default_view_name
+ assert isinstance(use_view, (bool, str))
+ if use_view:
env = spack.environment.active_environment()
if not env:
raise spack.environment.SpackEnvironmentViewError(
"Module generation with views requires active environment"
)
- view = env.views[use_view]
+ view_name = spack.environment.default_view_name if use_view is True else use_view
+
+ if not env.has_view(view_name):
+ raise spack.environment.SpackEnvironmentViewError(
+ f"View {view_name} not found in environment {env.name} when generating modules"
+ )
- spec.prefix = view.get_projection_for_spec(spec)
+ view = env.views[view_name]
+ else:
+ view = None
env = spack.util.environment.inspect_path(
- spec.prefix, prefix_inspections, exclude=spack.util.environment.is_system_path
+ self.spec.prefix, prefix_inspections, exclude=spack.util.environment.is_system_path
)
# Let the extendee/dependency modify their extensions/dependencies
@@ -726,13 +733,19 @@ def environment_modifications(self):
# whole chain of setup_dependent_package has to be followed from leaf to spec.
# So: just run it here, but don't collect env mods.
spack.build_environment.SetupContext(
- spec, context=Context.RUN
+ self.spec, context=Context.RUN
).set_all_package_py_globals()
# Then run setup_dependent_run_environment before setup_run_environment.
- for dep in spec.dependencies(deptype=("link", "run")):
- dep.package.setup_dependent_run_environment(env, spec)
- spec.package.setup_run_environment(env)
+ for dep in self.spec.dependencies(deptype=("link", "run")):
+ dep.package.setup_dependent_run_environment(env, self.spec)
+ self.spec.package.setup_run_environment(env)
+
+ # Project the environment variables from prefix to view if needed
+ if view and self.spec in view:
+ spack.user_environment.project_env_mods(
+ *self.spec.traverse(deptype=dt.LINK | dt.RUN), view=view, env=env
+ )
# Modifications required from modules.yaml
env.extend(self.conf.env)
@@ -754,11 +767,11 @@ def environment_modifications(self):
msg = "some tokens cannot be expanded in an environment variable name"
_check_tokens_are_valid(x.name, message=msg)
# Transform them
- x.name = spec.format(x.name, transform=transform)
+ x.name = self.spec.format(x.name, transform=transform)
if self.modification_needs_formatting(x):
try:
# Not every command has a value
- x.value = spec.format(x.value)
+ x.value = self.spec.format(x.value)
except AttributeError:
pass
x.name = str(x.name).replace("-", "_")
@@ -886,7 +899,7 @@ def _get_template(self):
# 2. template specified in a package directly
# 3. default template (must be defined, check in __init__)
module_system_name = str(self.module.__name__).split(".")[-1]
- package_attribute = "{0}_template".format(module_system_name)
+ package_attribute = f"{module_system_name}_template"
choices = [
self.conf.template,
getattr(self.spec.package, package_attribute, None),
@@ -952,7 +965,7 @@ def write(self, overwrite=False):
# Attribute from package
module_name = str(self.module.__name__).split(".")[-1]
- attr_name = "{0}_context".format(module_name)
+ attr_name = f"{module_name}_context"
pkg_update = getattr(self.spec.package, attr_name, {})
context.update(pkg_update)
@@ -1002,7 +1015,7 @@ def update_module_hiddenness(self, remove=False):
if modulerc_exists:
# retrieve modulerc content
- with open(modulerc_path, "r") as f:
+ with open(modulerc_path) as f:
content = f.readlines()
content = "".join(content).split("\n")
# remove last empty item if any
diff --git a/lib/spack/spack/modules/lmod.py b/lib/spack/spack/modules/lmod.py
index 5e042259c3a418..270ab43c0fd7cc 100644
--- a/lib/spack/spack/modules/lmod.py
+++ b/lib/spack/spack/modules/lmod.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/modules/tcl.py b/lib/spack/spack/modules/tcl.py
index 6d7f49b3309f33..c9a0ec8ca85eb8 100644
--- a/lib/spack/spack/modules/tcl.py
+++ b/lib/spack/spack/modules/tcl.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/multimethod.py b/lib/spack/spack/multimethod.py
index 0c661172424751..4c21da3c9101f6 100644
--- a/lib/spack/spack/multimethod.py
+++ b/lib/spack/spack/multimethod.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/oci/__init__.py b/lib/spack/spack/oci/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/spack/oci/__init__.py
+++ b/lib/spack/spack/oci/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/oci/image.py b/lib/spack/spack/oci/image.py
index b61591b7bed0d0..6973b90fa9bcaa 100644
--- a/lib/spack/spack/oci/image.py
+++ b/lib/spack/spack/oci/image.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/oci/oci.py b/lib/spack/spack/oci/oci.py
index 4e5e196cd10db9..ce9e3b9ded0c03 100644
--- a/lib/spack/spack/oci/oci.py
+++ b/lib/spack/spack/oci/oci.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -134,7 +134,7 @@ def upload_blob(
return True
# Otherwise, do another PUT request.
- spack.oci.opener.ensure_status(response, 202)
+ spack.oci.opener.ensure_status(request, response, 202)
assert "Location" in response.headers
# Can be absolute or relative, joining handles both
@@ -143,19 +143,16 @@ def upload_blob(
)
f.seek(0)
- response = _urlopen(
- Request(
- url=upload_url,
- method="PUT",
- data=f,
- headers={
- "Content-Type": "application/octet-stream",
- "Content-Length": str(file_size),
- },
- )
+ request = Request(
+ url=upload_url,
+ method="PUT",
+ data=f,
+ headers={"Content-Type": "application/octet-stream", "Content-Length": str(file_size)},
)
- spack.oci.opener.ensure_status(response, 201)
+ response = _urlopen(request)
+
+ spack.oci.opener.ensure_status(request, response, 201)
# print elapsed time and # MB/s
_log_upload_progress(digest, file_size, time.time() - start)
@@ -189,16 +186,16 @@ def upload_manifest(
if not tag:
ref = ref.with_digest(digest)
- response = _urlopen(
- Request(
- url=ref.manifest_url(),
- method="PUT",
- data=data,
- headers={"Content-Type": oci_manifest["mediaType"]},
- )
+ request = Request(
+ url=ref.manifest_url(),
+ method="PUT",
+ data=data,
+ headers={"Content-Type": oci_manifest["mediaType"]},
)
- spack.oci.opener.ensure_status(response, 201)
+ response = _urlopen(request)
+
+ spack.oci.opener.ensure_status(request, response, 201)
return digest, size
diff --git a/lib/spack/spack/oci/opener.py b/lib/spack/spack/oci/opener.py
index 792598578d3204..182e60eb94054b 100644
--- a/lib/spack/spack/oci/opener.py
+++ b/lib/spack/spack/oci/opener.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -310,19 +310,15 @@ def http_error_401(self, req: Request, fp, code, msg, headers):
# Login failed, avoid infinite recursion where we go back and
# forth between auth server and registry
if hasattr(req, "login_attempted"):
- raise urllib.error.HTTPError(
- req.full_url, code, f"Failed to login to {req.full_url}: {msg}", headers, fp
+ raise spack.util.web.DetailedHTTPError(
+ req, code, f"Failed to login: {msg}", headers, fp
)
# On 401 Unauthorized, parse the WWW-Authenticate header
# to determine what authentication is required
if "WWW-Authenticate" not in headers:
- raise urllib.error.HTTPError(
- req.full_url,
- code,
- "Cannot login to registry, missing WWW-Authenticate header",
- headers,
- fp,
+ raise spack.util.web.DetailedHTTPError(
+ req, code, "Cannot login to registry, missing WWW-Authenticate header", headers, fp
)
header_value = headers["WWW-Authenticate"]
@@ -330,8 +326,8 @@ def http_error_401(self, req: Request, fp, code, msg, headers):
try:
challenge = get_bearer_challenge(parse_www_authenticate(header_value))
except ValueError as e:
- raise urllib.error.HTTPError(
- req.full_url,
+ raise spack.util.web.DetailedHTTPError(
+ req,
code,
f"Cannot login to registry, malformed WWW-Authenticate header: {header_value}",
headers,
@@ -340,8 +336,8 @@ def http_error_401(self, req: Request, fp, code, msg, headers):
# If there is no bearer challenge, we can't handle it
if not challenge:
- raise urllib.error.HTTPError(
- req.full_url,
+ raise spack.util.web.DetailedHTTPError(
+ req,
code,
f"Cannot login to registry, unsupported authentication scheme: {header_value}",
headers,
@@ -356,8 +352,8 @@ def http_error_401(self, req: Request, fp, code, msg, headers):
timeout=req.timeout,
)
except ValueError as e:
- raise urllib.error.HTTPError(
- req.full_url,
+ raise spack.util.web.DetailedHTTPError(
+ req,
code,
f"Cannot login to registry, failed to obtain bearer token: {e}",
headers,
@@ -412,13 +408,13 @@ def create_opener():
return opener
-def ensure_status(response: HTTPResponse, status: int):
+def ensure_status(request: urllib.request.Request, response: HTTPResponse, status: int):
"""Raise an error if the response status is not the expected one."""
if response.status == status:
return
- raise urllib.error.HTTPError(
- response.geturl(), response.status, response.reason, response.info(), None
+ raise spack.util.web.DetailedHTTPError(
+ request, response.status, response.reason, response.info(), None
)
diff --git a/lib/spack/spack/operating_systems/__init__.py b/lib/spack/spack/operating_systems/__init__.py
index 7caf70324b2270..22a5ea48e78a14 100644
--- a/lib/spack/spack/operating_systems/__init__.py
+++ b/lib/spack/spack/operating_systems/__init__.py
@@ -1,15 +1,24 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from ._operating_system import OperatingSystem
from .cray_backend import CrayBackend
from .cray_frontend import CrayFrontend
+from .freebsd import FreeBSDOs
from .linux_distro import LinuxDistro
from .mac_os import MacOs
from .windows_os import WindowsOs
-__all__ = ["OperatingSystem", "LinuxDistro", "MacOs", "CrayFrontend", "CrayBackend", "WindowsOs"]
+__all__ = [
+ "OperatingSystem",
+ "LinuxDistro",
+ "MacOs",
+ "CrayFrontend",
+ "CrayBackend",
+ "WindowsOs",
+ "FreeBSDOs",
+]
#: List of all the Operating Systems known to Spack
-operating_systems = [LinuxDistro, MacOs, CrayFrontend, CrayBackend, WindowsOs]
+operating_systems = [LinuxDistro, MacOs, CrayFrontend, CrayBackend, WindowsOs, FreeBSDOs]
diff --git a/lib/spack/spack/operating_systems/_operating_system.py b/lib/spack/spack/operating_systems/_operating_system.py
index b9b82cdae1699b..bd9f6aaff77af9 100644
--- a/lib/spack/spack/operating_systems/_operating_system.py
+++ b/lib/spack/spack/operating_systems/_operating_system.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/operating_systems/cray_backend.py b/lib/spack/spack/operating_systems/cray_backend.py
index 9312e653a649ef..6657020dfffbc3 100644
--- a/lib/spack/spack/operating_systems/cray_backend.py
+++ b/lib/spack/spack/operating_systems/cray_backend.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/operating_systems/cray_frontend.py b/lib/spack/spack/operating_systems/cray_frontend.py
index 090e99e4744657..d6fa4fd2fae2fd 100644
--- a/lib/spack/spack/operating_systems/cray_frontend.py
+++ b/lib/spack/spack/operating_systems/cray_frontend.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/operating_systems/freebsd.py b/lib/spack/spack/operating_systems/freebsd.py
new file mode 100644
index 00000000000000..41ab69547f1d9d
--- /dev/null
+++ b/lib/spack/spack/operating_systems/freebsd.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+import platform as py_platform
+
+from spack.version import Version
+
+from ._operating_system import OperatingSystem
+
+
+class FreeBSDOs(OperatingSystem):
+ def __init__(self):
+ release = py_platform.release().split("-", 1)[0]
+ super().__init__("freebsd", Version(release))
diff --git a/lib/spack/spack/operating_systems/linux_distro.py b/lib/spack/spack/operating_systems/linux_distro.py
index a5e958711598f4..0d170fc3a3d430 100644
--- a/lib/spack/spack/operating_systems/linux_distro.py
+++ b/lib/spack/spack/operating_systems/linux_distro.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/operating_systems/mac_os.py b/lib/spack/spack/operating_systems/mac_os.py
index d52885fd5460e5..799f183d11f391 100644
--- a/lib/spack/spack/operating_systems/mac_os.py
+++ b/lib/spack/spack/operating_systems/mac_os.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/operating_systems/windows_os.py b/lib/spack/spack/operating_systems/windows_os.py
index fa767d71fb1c22..073a654eed9be1 100755
--- a/lib/spack/spack/operating_systems/windows_os.py
+++ b/lib/spack/spack/operating_systems/windows_os.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py
index 16b1216acb6e1b..ac56cf1e1ae0f7 100644
--- a/lib/spack/spack/package.py
+++ b/lib/spack/spack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -32,14 +32,17 @@
from spack.build_systems.bundle import BundlePackage
from spack.build_systems.cached_cmake import (
CachedCMakePackage,
+ cmake_cache_filepath,
cmake_cache_option,
cmake_cache_path,
cmake_cache_string,
)
+from spack.build_systems.cargo import CargoPackage
from spack.build_systems.cmake import CMakePackage, generator
from spack.build_systems.cuda import CudaPackage
from spack.build_systems.generic import Package
from spack.build_systems.gnu import GNUMirrorPackage
+from spack.build_systems.go import GoPackage
from spack.build_systems.intel import IntelPackage
from spack.build_systems.lua import LuaPackage
from spack.build_systems.makefile import MakefilePackage
@@ -51,6 +54,7 @@
from spack.build_systems.oneapi import (
INTEL_MATH_LIBRARIES,
IntelOneApiLibraryPackage,
+ IntelOneApiLibraryPackageWithSdk,
IntelOneApiPackage,
IntelOneApiStaticLibraryList,
)
diff --git a/lib/spack/spack/package_base.py b/lib/spack/spack/package_base.py
index 416b16cefc0621..8066c1b70f8a12 100644
--- a/lib/spack/spack/package_base.py
+++ b/lib/spack/spack/package_base.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -24,8 +24,9 @@
import textwrap
import time
import traceback
+import typing
import warnings
-from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, Type, TypeVar
+from typing import Any, Callable, Dict, Iterable, List, Optional, Set, Tuple, Type, TypeVar, Union
import llnl.util.filesystem as fsys
import llnl.util.tty as tty
@@ -66,7 +67,7 @@
from spack.stage import DIYStage, ResourceStage, Stage, StageComposite, compute_stage_name
from spack.util.executable import ProcessError, which
from spack.util.package_hash import package_hash
-from spack.version import GitVersion, StandardVersion, Version
+from spack.version import GitVersion, StandardVersion
FLAG_HANDLER_RETURN_TYPE = Tuple[
Optional[Iterable[str]], Optional[Iterable[str]], Optional[Iterable[str]]
@@ -93,29 +94,26 @@
spack_times_log = "install_times.json"
-def deprecated_version(pkg, version):
- """Return True if the version is deprecated, False otherwise.
+def deprecated_version(pkg: "PackageBase", version: Union[str, StandardVersion]) -> bool:
+ """Return True iff the version is deprecated.
Arguments:
- pkg (PackageBase): The package whose version is to be checked.
- version (str or spack.version.StandardVersion): The version being checked
+ pkg: The package whose version is to be checked.
+ version: The version being checked
"""
if not isinstance(version, StandardVersion):
- version = Version(version)
+ version = StandardVersion.from_string(version)
- for k, v in pkg.versions.items():
- if version == k and v.get("deprecated", False):
- return True
+ details = pkg.versions.get(version)
+ return details is not None and details.get("deprecated", False)
- return False
-
-def preferred_version(pkg):
+def preferred_version(pkg: "PackageBase"):
"""
Returns a sorted list of the preferred versions of the package.
Arguments:
- pkg (PackageBase): The package whose versions are to be assessed.
+ pkg: The package whose versions are to be assessed.
"""
# Here we sort first on the fact that a version is marked
# as preferred in the package, then on the fact that the
@@ -432,6 +430,43 @@ def remove_files_from_view(self, view, merge_map):
Pb = TypeVar("Pb", bound="PackageBase")
+WhenDict = Dict[spack.spec.Spec, Dict[str, Any]]
+NameValuesDict = Dict[str, List[Any]]
+NameWhenDict = Dict[str, Dict[spack.spec.Spec, List[Any]]]
+
+
+def _by_name(
+ when_indexed_dictionary: WhenDict, when: bool = False
+) -> Union[NameValuesDict, NameWhenDict]:
+ """Convert a dict of dicts keyed by when/name into a dict of lists keyed by name.
+
+ Optional Arguments:
+ when: if ``True``, don't discared the ``when`` specs; return a 2-level dictionary
+ keyed by name and when spec.
+ """
+ # very hard to define this type to be conditional on `when`
+ all_by_name: Dict[str, Any] = {}
+
+ for when_spec, by_name in when_indexed_dictionary.items():
+ for name, value in by_name.items():
+ if when:
+ when_dict = all_by_name.setdefault(name, {})
+ when_dict.setdefault(when_spec, []).append(value)
+ else:
+ all_by_name.setdefault(name, []).append(value)
+
+ return dict(sorted(all_by_name.items()))
+
+
+def _names(when_indexed_dictionary):
+ """Get sorted names from dicts keyed by when/name."""
+ all_names = set()
+ for when, by_name in when_indexed_dictionary.items():
+ for name in by_name:
+ all_names.add(name)
+
+ return sorted(all_names)
+
class PackageBase(WindowsRPath, PackageViewMixin, metaclass=PackageMeta):
"""This is the superclass for all spack packages.
@@ -523,9 +558,14 @@ class PackageBase(WindowsRPath, PackageViewMixin, metaclass=PackageMeta):
# Declare versions dictionary as placeholder for values.
# This allows analysis tools to correctly interpret the class attributes.
versions: dict
-
- # Same for dependencies
- dependencies: dict
+ dependencies: Dict["spack.spec.Spec", Dict[str, "spack.dependency.Dependency"]]
+ conflicts: Dict["spack.spec.Spec", List[Tuple["spack.spec.Spec", Optional[str]]]]
+ requirements: Dict[
+ "spack.spec.Spec", List[Tuple[Tuple["spack.spec.Spec", ...], str, Optional[str]]]
+ ]
+ provided: Dict["spack.spec.Spec", Set["spack.spec.Spec"]]
+ provided_together: Dict["spack.spec.Spec", List[Set[str]]]
+ patches: Dict["spack.spec.Spec", List["spack.patch.Patch"]]
#: By default, packages are not virtual
#: Virtual packages override this attribute
@@ -679,16 +719,24 @@ def __init__(self, spec):
super().__init__()
+ @classmethod
+ def dependency_names(cls):
+ return _names(cls.dependencies)
+
+ @classmethod
+ def dependencies_by_name(cls, when: bool = False):
+ return _by_name(cls.dependencies, when=when)
+
@classmethod
def possible_dependencies(
cls,
- transitive=True,
- expand_virtuals=True,
+ transitive: bool = True,
+ expand_virtuals: bool = True,
depflag: dt.DepFlag = dt.ALL,
- visited=None,
- missing=None,
- virtuals=None,
- ):
+ visited: Optional[dict] = None,
+ missing: Optional[dict] = None,
+ virtuals: Optional[set] = None,
+ ) -> Dict[str, Set[str]]:
"""Return dict of possible dependencies of this package.
Args:
@@ -727,11 +775,12 @@ def possible_dependencies(
visited.setdefault(cls.name, set())
- for name, conditions in cls.dependencies.items():
+ for name, conditions in cls.dependencies_by_name(when=True).items():
# check whether this dependency could be of the type asked for
depflag_union = 0
- for dep in conditions.values():
- depflag_union |= dep.depflag
+ for deplist in conditions.values():
+ for dep in deplist:
+ depflag_union |= dep.depflag
if not (depflag & depflag_union):
continue
@@ -851,22 +900,16 @@ def version(self):
@classmethod
@memoized
- def version_urls(cls):
- """OrderedDict of explicitly defined URLs for versions of this package.
+ def version_urls(cls) -> Dict[StandardVersion, str]:
+ """Dict of explicitly defined URLs for versions of this package.
Return:
- An OrderedDict (version -> URL) different versions of this
- package, sorted by version.
+ An dict mapping version to url, ordered by version.
- A version's URL only appears in the result if it has an an
- explicitly defined ``url`` argument. So, this list may be empty
- if a package only defines ``url`` at the top level.
+ A version's URL only appears in the result if it has an an explicitly defined ``url``
+ argument. So, this list may be empty if a package only defines ``url`` at the top level.
"""
- version_urls = collections.OrderedDict()
- for v, args in sorted(cls.versions.items()):
- if "url" in args:
- version_urls[v] = args["url"]
- return version_urls
+ return {v: args["url"] for v, args in sorted(cls.versions.items()) if "url" in args}
def nearest_url(self, version):
"""Finds the URL with the "closest" version to ``version``.
@@ -909,36 +952,39 @@ def update_external_dependencies(self, extendee_spec=None):
"""
pass
- def all_urls_for_version(self, version):
+ def all_urls_for_version(self, version: StandardVersion) -> List[str]:
"""Return all URLs derived from version_urls(), url, urls, and
list_url (if it contains a version) in a package in that order.
Args:
- version (spack.version.Version): the version for which a URL is sought
+ version: the version for which a URL is sought
"""
uf = None
if type(self).url_for_version != PackageBase.url_for_version:
uf = self.url_for_version
return self._implement_all_urls_for_version(version, uf)
- def _implement_all_urls_for_version(self, version, custom_url_for_version=None):
- if not isinstance(version, StandardVersion):
- version = Version(version)
+ def _implement_all_urls_for_version(
+ self,
+ version: Union[str, StandardVersion],
+ custom_url_for_version: Optional[Callable[[StandardVersion], Optional[str]]] = None,
+ ) -> List[str]:
+ version = StandardVersion.from_string(version) if isinstance(version, str) else version
- urls = []
+ urls: List[str] = []
# If we have a specific URL for this version, don't extrapolate.
- version_urls = self.version_urls()
- if version in version_urls:
- urls.append(version_urls[version])
+ url = self.version_urls().get(version)
+ if url:
+ urls.append(url)
# if there is a custom url_for_version, use it
if custom_url_for_version is not None:
u = custom_url_for_version(version)
- if u not in urls and u is not None:
+ if u is not None and u not in urls:
urls.append(u)
- def sub_and_add(u):
+ def sub_and_add(u: Optional[str]) -> None:
if u is None:
return
# skip the url if there is no version to replace
@@ -946,9 +992,7 @@ def sub_and_add(u):
spack.url.parse_version(u)
except spack.url.UndetectableVersionError:
return
- nu = spack.url.substitute_version(u, self.url_version(version))
-
- urls.append(nu)
+ urls.append(spack.url.substitute_version(u, self.url_version(version)))
# If no specific URL, use the default, class-level URL
sub_and_add(getattr(self, "url", None))
@@ -1035,15 +1079,26 @@ def _make_stage(self):
# To fetch the current version
source_stage = self._make_root_stage(self.fetcher)
- # Extend it with all resources and patches
+ # all_stages is source + resources + patches
all_stages = StageComposite()
all_stages.append(source_stage)
all_stages.extend(
self._make_resource_stage(source_stage, r) for r in self._get_needed_resources()
)
- all_stages.extend(
- p.stage for p in self.spec.patches if isinstance(p, spack.patch.UrlPatch)
- )
+ if self.spec.concrete:
+ all_stages.extend(
+ p.stage for p in self.spec.patches if isinstance(p, spack.patch.UrlPatch)
+ )
+ else:
+ # The only code path that gets here is spack mirror create --all which just needs all
+ # matching patches.
+ all_stages.extend(
+ p.stage
+ for when_spec, patch_list in self.patches.items()
+ if self.spec.intersects(when_spec)
+ for p in patch_list
+ if isinstance(p, spack.patch.UrlPatch)
+ )
return all_stages
@property
@@ -1068,13 +1123,7 @@ def stage(self, stage):
@property
def env_path(self):
"""Return the build environment file path associated with staging."""
- # Backward compatibility: Return the name of an existing log path;
- # otherwise, return the current install env path name.
- old_filename = os.path.join(self.stage.path, "spack-build.env")
- if os.path.exists(old_filename):
- return old_filename
- else:
- return os.path.join(self.stage.path, _spack_build_envfile)
+ return os.path.join(self.stage.path, _spack_build_envfile)
@property
def env_mods_path(self):
@@ -1105,13 +1154,6 @@ def install_env_path(self):
@property
def log_path(self):
"""Return the build log file path associated with staging."""
- # Backward compatibility: Return the name of an existing log path.
- for filename in ["spack-build.out", "spack-build.txt"]:
- old_log = os.path.join(self.stage.path, filename)
- if os.path.exists(old_log):
- return old_log
-
- # Otherwise, return the current log path name.
return os.path.join(self.stage.path, _spack_build_logfile)
@property
@@ -1124,15 +1166,15 @@ def phase_log_files(self):
@property
def install_log_path(self):
- """Return the build log file path on successful installation."""
+ """Return the (compressed) build log file path on successful installation"""
# Backward compatibility: Return the name of an existing install log.
- for filename in ["build.out", "build.txt"]:
+ for filename in [_spack_build_logfile, "build.out", "build.txt"]:
old_log = os.path.join(self.metadata_dir, filename)
if os.path.exists(old_log):
return old_log
# Otherwise, return the current install log path name.
- return os.path.join(self.metadata_dir, _spack_build_logfile)
+ return os.path.join(self.metadata_dir, _spack_build_logfile + ".gz")
@property
def configure_args_path(self):
@@ -1208,7 +1250,7 @@ def fetcher(self, f):
@classmethod
def dependencies_of_type(cls, deptypes: dt.DepFlag):
- """Get dependencies that can possibly have these deptypes.
+ """Get names of dependencies that can possibly have these deptypes.
This analyzes the package and determines which dependencies *can*
be a certain kind of dependency. Note that they may not *always*
@@ -1216,11 +1258,11 @@ def dependencies_of_type(cls, deptypes: dt.DepFlag):
so something may be a build dependency in one configuration and a
run dependency in another.
"""
- return dict(
- (name, conds)
- for name, conds in cls.dependencies.items()
- if any(deptypes & cls.dependencies[name][cond].depflag for cond in conds)
- )
+ return {
+ name
+ for name, dependencies in cls.dependencies_by_name().items()
+ if any(deptypes & dep.depflag for dep in dependencies)
+ }
# TODO: allow more than one active extendee.
@property
@@ -1249,21 +1291,9 @@ def extendee_spec(self):
else:
# If it's not concrete, then return the spec from the
# extends() directive since that is all we know so far.
- spec_str, kwargs = next(iter(self.extendees.items()))
+ spec_str = next(iter(self.extendees))
return spack.spec.Spec(spec_str)
- @property
- def extendee_args(self):
- """
- Spec of the extendee of this package, or None if it is not an extension
- """
- if not self.extendees:
- return None
-
- # TODO: allow multiple extendees.
- name = next(iter(self.extendees))
- return self.extendees[name][1]
-
@property
def is_extension(self):
# if it is concrete, it's only an extension if it actually
@@ -1294,9 +1324,9 @@ def provides(self, vpkg_name):
True if this package provides a virtual package with the specified name
"""
return any(
- any(self.spec.intersects(c) for c in constraints)
- for s, constraints in self.provided.items()
- if s.name == vpkg_name
+ any(spec.name == vpkg_name for spec in provided)
+ for when_spec, provided in self.provided.items()
+ if self.spec.intersects(when_spec)
)
@property
@@ -1306,10 +1336,16 @@ def virtuals_provided(self):
"""
return [
vspec
- for vspec, constraints in self.provided.items()
- if any(self.spec.satisfies(c) for c in constraints)
+ for when_spec, provided in self.provided.items()
+ for vspec in provided
+ if self.spec.satisfies(when_spec)
]
+ @classmethod
+ def provided_virtual_names(cls):
+ """Return sorted list of names of virtuals that can be provided by this package."""
+ return sorted(set(vpkg.name for virtuals in cls.provided.values() for vpkg in virtuals))
+
@property
def prefix(self):
"""Get the prefix into which this package should be installed."""
@@ -1356,13 +1392,9 @@ def download_instr(self):
(str): default manual download instructions
"""
required = (
- "Manual download is required for {0}. ".format(self.spec.name)
- if self.manual_download
- else ""
- )
- return "{0}Refer to {1} for download instructions.".format(
- required, self.spec.package.homepage
+ f"Manual download is required for {self.spec.name}. " if self.manual_download else ""
)
+ return f"{required}Refer to {self.homepage} for download instructions."
def do_fetch(self, mirror_only=False):
"""
@@ -1743,28 +1775,16 @@ def _if_ninja_target_execute(self, target, *args, **kwargs):
inspect.getmodule(self).ninja(target, *args, **kwargs)
def _get_needed_resources(self):
- resources = []
- # Select the resources that are needed for this build
- if self.spec.concrete:
- for when_spec, resource_list in self.resources.items():
- if when_spec in self.spec:
- resources.extend(resource_list)
- else:
- for when_spec, resource_list in self.resources.items():
- # Note that variant checking is always strict for specs where
- # the name is not specified. But with strict variant checking,
- # only variants mentioned in 'other' are checked. Here we only
- # want to make sure that no constraints in when_spec
- # conflict with the spec, so we need to invoke
- # when_spec.satisfies(self.spec) vs.
- # self.spec.satisfies(when_spec)
- if when_spec.intersects(self.spec):
- resources.extend(resource_list)
- # Sorts the resources by the length of the string representing their
- # destination. Since any nested resource must contain another
- # resource's name in its path, it seems that should work
- resources = sorted(resources, key=lambda res: len(res.destination))
- return resources
+ # We use intersects here cause it would also work if self.spec is abstract
+ resources = [
+ resource
+ for when_spec, resource_list in self.resources.items()
+ if self.spec.intersects(when_spec)
+ for resource in resource_list
+ ]
+ # Sorts the resources by the length of the string representing their destination. Since any
+ # nested resource must contain another resource's path, that should work
+ return sorted(resources, key=lambda res: len(res.destination))
def _resource_stage(self, resource):
pieces = ["resource", resource.name, self.spec.dag_hash()]
@@ -2047,15 +2067,6 @@ def unit_test_check(self):
"""
return True
- @property
- def build_log_path(self):
- """
- Return the expected (or current) build log file path. The path points
- to the staging build file until the software is successfully installed,
- when it points to the file in the installation directory.
- """
- return self.install_log_path if self.spec.installed else self.log_path
-
@classmethod
def inject_flags(cls: Type[Pb], name: str, flags: Iterable[str]) -> FLAG_HANDLER_RETURN_TYPE:
"""
@@ -2339,15 +2350,14 @@ def format_doc(cls, **kwargs):
return results.getvalue()
@property
- def all_urls(self):
+ def all_urls(self) -> List[str]:
"""A list of all URLs in a package.
Check both class-level and version-specific URLs.
- Returns:
- list: a list of URLs
+ Returns a list of URLs
"""
- urls = []
+ urls: List[str] = []
if hasattr(self, "url") and self.url:
urls.append(self.url)
@@ -2360,7 +2370,9 @@ def all_urls(self):
urls.append(args["url"])
return urls
- def fetch_remote_versions(self, concurrency=None):
+ def fetch_remote_versions(
+ self, concurrency: Optional[int] = None
+ ) -> Dict[StandardVersion, str]:
"""Find remote versions of this package.
Uses ``list_url`` and any other URLs listed in the package file.
@@ -2449,14 +2461,21 @@ def flatten_dependencies(spec, flat_dir):
dep_files.merge(flat_dir + "/" + name)
-def possible_dependencies(*pkg_or_spec, **kwargs):
+def possible_dependencies(
+ *pkg_or_spec: Union[str, spack.spec.Spec, typing.Type[PackageBase]],
+ transitive: bool = True,
+ expand_virtuals: bool = True,
+ depflag: dt.DepFlag = dt.ALL,
+ missing: Optional[dict] = None,
+ virtuals: Optional[set] = None,
+) -> Dict[str, Set[str]]:
"""Get the possible dependencies of a number of packages.
See ``PackageBase.possible_dependencies`` for details.
"""
packages = []
for pos in pkg_or_spec:
- if isinstance(pos, PackageMeta):
+ if isinstance(pos, PackageMeta) and issubclass(pos, PackageBase):
packages.append(pos)
continue
@@ -2469,9 +2488,16 @@ def possible_dependencies(*pkg_or_spec, **kwargs):
else:
packages.append(pos.package_class)
- visited = {}
+ visited: Dict[str, Set[str]] = {}
for pkg in packages:
- pkg.possible_dependencies(visited=visited, **kwargs)
+ pkg.possible_dependencies(
+ visited=visited,
+ transitive=transitive,
+ expand_virtuals=expand_virtuals,
+ depflag=depflag,
+ missing=missing,
+ virtuals=virtuals,
+ )
return visited
@@ -2519,3 +2545,7 @@ class DependencyConflictError(spack.error.SpackError):
def __init__(self, conflict):
super().__init__("%s conflicts with another file in the flattened directory." % (conflict))
+
+
+class ManualDownloadRequiredError(InvalidPackageOpError):
+ """Raised when attempting an invalid operation on a package that requires a manual download."""
diff --git a/lib/spack/spack/package_prefs.py b/lib/spack/spack/package_prefs.py
index c2997034feeaf4..117308e84e2f19 100644
--- a/lib/spack/spack/package_prefs.py
+++ b/lib/spack/spack/package_prefs.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/package_test.py b/lib/spack/spack/package_test.py
index e5b0cb576e9dab..abc85ae8c3fb7a 100644
--- a/lib/spack/spack/package_test.py
+++ b/lib/spack/spack/package_test.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/parser.py b/lib/spack/spack/parser.py
index c69918b41905b5..29e335d65e7ad1 100644
--- a/lib/spack/spack/parser.py
+++ b/lib/spack/spack/parser.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -58,6 +58,7 @@
expansion when it is the first character in an id typed on the command line.
"""
import enum
+import json
import pathlib
import re
import sys
@@ -95,13 +96,55 @@
else:
FILENAME = WINDOWS_FILENAME
+#: These are legal values that *can* be parsed bare, without quotes on the command line.
VALUE = r"(?:[a-zA-Z_0-9\-+\*.,:=\~\/\\]+)"
-QUOTED_VALUE = r"[\"']+(?:[a-zA-Z_0-9\-+\*.,:=\~\/\\\s]+)[\"']+"
+
+#: Variant/flag values that match this can be left unquoted in Spack output
+NO_QUOTES_NEEDED = re.compile(r"^[a-zA-Z0-9,/_.-]+$")
+
+#: Quoted values can be *anything* in between quotes, including escaped quotes.
+QUOTED_VALUE = r"(?:'(?:[^']|(?<=\\)')*'|\"(?:[^\"]|(?<=\\)\")*\")"
VERSION = r"=?(?:[a-zA-Z0-9_][a-zA-Z_0-9\-\.]*\b)"
VERSION_RANGE = rf"(?:(?:{VERSION})?:(?:{VERSION}(?!\s*=))?)"
VERSION_LIST = rf"(?:{VERSION_RANGE}|{VERSION})(?:\s*,\s*(?:{VERSION_RANGE}|{VERSION}))*"
+#: Regex with groups to use for splitting (optionally propagated) key-value pairs
+SPLIT_KVP = re.compile(rf"^({NAME})(==?)(.*)$")
+
+#: Regex to strip quotes. Group 2 will be the unquoted string.
+STRIP_QUOTES = re.compile(r"^(['\"])(.*)\1$")
+
+
+def strip_quotes_and_unescape(string: str) -> str:
+ """Remove surrounding single or double quotes from string, if present."""
+ match = STRIP_QUOTES.match(string)
+ if not match:
+ return string
+
+ # replace any escaped quotes with bare quotes
+ quote, result = match.groups()
+ return result.replace(rf"\{quote}", quote)
+
+
+def quote_if_needed(value: str) -> str:
+ """Add quotes around the value if it requires quotes.
+
+ This will add quotes around the value unless it matches ``NO_QUOTES_NEEDED``.
+
+ This adds:
+ * single quotes by default
+ * double quotes around any value that contains single quotes
+
+ If double quotes are used, we json-escpae the string. That is, we escape ``\\``,
+ ``"``, and control codes.
+
+ """
+ if NO_QUOTES_NEEDED.match(value):
+ return value
+
+ return json.dumps(value) if "'" in value else f"'{value}'"
+
class TokenBase(enum.Enum):
"""Base class for an enum type with a regex value"""
@@ -138,8 +181,8 @@ class TokenType(TokenBase):
# Variants
PROPAGATED_BOOL_VARIANT = rf"(?:(?:\+\+|~~|--)\s*{NAME})"
BOOL_VARIANT = rf"(?:[~+-]\s*{NAME})"
- PROPAGATED_KEY_VALUE_PAIR = rf"(?:{NAME}\s*==\s*(?:{VALUE}|{QUOTED_VALUE}))"
- KEY_VALUE_PAIR = rf"(?:{NAME}\s*=\s*(?:{VALUE}|{QUOTED_VALUE}))"
+ PROPAGATED_KEY_VALUE_PAIR = rf"(?:{NAME}==(?:{VALUE}|{QUOTED_VALUE}))"
+ KEY_VALUE_PAIR = rf"(?:{NAME}=(?:{VALUE}|{QUOTED_VALUE}))"
# Compilers
COMPILER_AND_VERSION = rf"(?:%\s*(?:{NAME})(?:[\s]*)@\s*(?:{VERSION_LIST}))"
COMPILER = rf"(?:%\s*(?:{NAME}))"
@@ -206,11 +249,15 @@ def tokenize(text: str) -> Iterator[Token]:
scanner = ALL_TOKENS.scanner(text) # type: ignore[attr-defined]
match: Optional[Match] = None
for match in iter(scanner.match, None):
+ # The following two assertions are to help mypy
+ msg = (
+ "unexpected value encountered during parsing. Please submit a bug report "
+ "at https://github.com/spack/spack/issues/new/choose"
+ )
+ assert match is not None, msg
+ assert match.lastgroup is not None, msg
yield Token(
- TokenType.__members__[match.lastgroup], # type: ignore[attr-defined]
- match.group(), # type: ignore[attr-defined]
- match.start(), # type: ignore[attr-defined]
- match.end(), # type: ignore[attr-defined]
+ TokenType.__members__[match.lastgroup], match.group(), match.start(), match.end()
)
if match is None and not text:
@@ -347,12 +394,14 @@ def parse(
# accept another package name afterwards in a node
if self.ctx.accept(TokenType.UNQUALIFIED_PACKAGE_NAME):
initial_spec.name = self.ctx.current_token.value
+
elif self.ctx.accept(TokenType.FULLY_QUALIFIED_PACKAGE_NAME):
parts = self.ctx.current_token.value.split(".")
name = parts[-1]
namespace = ".".join(parts[:-1])
initial_spec.name = name
initial_spec.namespace = namespace
+
elif self.ctx.accept(TokenType.FILENAME):
return FileParser(self.ctx).parse(initial_spec)
@@ -366,6 +415,7 @@ def parse(
compiler_name = self.ctx.current_token.value[1:]
initial_spec.compiler = spack.spec.CompilerSpec(compiler_name.strip(), ":")
self.has_compiler = True
+
elif self.ctx.accept(TokenType.COMPILER_AND_VERSION):
if self.has_compiler:
raise spack.spec.DuplicateCompilerSpecError(
@@ -377,6 +427,7 @@ def parse(
compiler_name.strip(), compiler_version
)
self.has_compiler = True
+
elif (
self.ctx.accept(TokenType.VERSION_HASH_PAIR)
or self.ctx.accept(TokenType.GIT_VERSION)
@@ -391,31 +442,39 @@ def parse(
)
initial_spec.attach_git_version_lookup()
self.has_version = True
+
elif self.ctx.accept(TokenType.BOOL_VARIANT):
variant_value = self.ctx.current_token.value[0] == "+"
initial_spec._add_flag(
self.ctx.current_token.value[1:].strip(), variant_value, propagate=False
)
+
elif self.ctx.accept(TokenType.PROPAGATED_BOOL_VARIANT):
variant_value = self.ctx.current_token.value[0:2] == "++"
initial_spec._add_flag(
self.ctx.current_token.value[2:].strip(), variant_value, propagate=True
)
+
elif self.ctx.accept(TokenType.KEY_VALUE_PAIR):
- name, value = self.ctx.current_token.value.split("=", maxsplit=1)
- name = name.strip("'\" ")
- value = value.strip("'\" ")
- initial_spec._add_flag(name, value, propagate=False)
+ match = SPLIT_KVP.match(self.ctx.current_token.value)
+ assert match, "SPLIT_KVP and KEY_VALUE_PAIR do not agree."
+
+ name, delim, value = match.groups()
+ initial_spec._add_flag(name, strip_quotes_and_unescape(value), propagate=False)
+
elif self.ctx.accept(TokenType.PROPAGATED_KEY_VALUE_PAIR):
- name, value = self.ctx.current_token.value.split("==", maxsplit=1)
- name = name.strip("'\" ")
- value = value.strip("'\" ")
- initial_spec._add_flag(name, value, propagate=True)
+ match = SPLIT_KVP.match(self.ctx.current_token.value)
+ assert match, "SPLIT_KVP and PROPAGATED_KEY_VALUE_PAIR do not agree."
+
+ name, delim, value = match.groups()
+ initial_spec._add_flag(name, strip_quotes_and_unescape(value), propagate=True)
+
elif self.ctx.expect(TokenType.DAG_HASH):
if initial_spec.abstract_hash:
break
self.ctx.accept(TokenType.DAG_HASH)
initial_spec.abstract_hash = self.ctx.current_token.value[1:]
+
else:
break
diff --git a/lib/spack/spack/patch.py b/lib/spack/spack/patch.py
index 7e2fcaff103ef3..75d1ab7f37e166 100644
--- a/lib/spack/spack/patch.py
+++ b/lib/spack/spack/patch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -389,10 +389,9 @@ def _index_patches(pkg_class, repository):
patch_dict.pop("sha256") # save some space
index[patch.sha256] = {pkg_class.fullname: patch_dict}
- # and patches on dependencies
- for name, conditions in pkg_class.dependencies.items():
- for cond, dependency in conditions.items():
- for pcond, patch_list in dependency.patches.items():
+ for deps_by_name in pkg_class.dependencies.values():
+ for dependency in deps_by_name.values():
+ for patch_list in dependency.patches.values():
for patch in patch_list:
dspec_cls = repository.get_pkg_class(dependency.spec.name)
patch_dict = patch.to_dict()
diff --git a/lib/spack/spack/paths.py b/lib/spack/spack/paths.py
index 4e66adf11a6a1f..aa642764215117 100644
--- a/lib/spack/spack/paths.py
+++ b/lib/spack/spack/paths.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/platforms/__init__.py b/lib/spack/spack/platforms/__init__.py
index 1a41d26971ac15..54d3e6eae52c63 100644
--- a/lib/spack/spack/platforms/__init__.py
+++ b/lib/spack/spack/platforms/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -8,6 +8,7 @@
from ._platform import Platform
from .cray import Cray
from .darwin import Darwin
+from .freebsd import FreeBSD
from .linux import Linux
from .test import Test
from .windows import Windows
@@ -17,6 +18,7 @@
"Cray",
"Darwin",
"Linux",
+ "FreeBSD",
"Test",
"Windows",
"platforms",
diff --git a/lib/spack/spack/platforms/_functions.py b/lib/spack/spack/platforms/_functions.py
index bfd035c375a7f5..d04f2587b0cdea 100644
--- a/lib/spack/spack/platforms/_functions.py
+++ b/lib/spack/spack/platforms/_functions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -10,12 +10,13 @@
from .cray import Cray
from .darwin import Darwin
+from .freebsd import FreeBSD
from .linux import Linux
from .test import Test
from .windows import Windows
#: List of all the platform classes known to Spack
-platforms = [Cray, Darwin, Linux, Windows, Test]
+platforms = [Cray, Darwin, Linux, Windows, FreeBSD, Test]
@llnl.util.lang.memoized
diff --git a/lib/spack/spack/platforms/_platform.py b/lib/spack/spack/platforms/_platform.py
index d313b624c1bf42..c165cf9f3375af 100644
--- a/lib/spack/spack/platforms/_platform.py
+++ b/lib/spack/spack/platforms/_platform.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/platforms/cray.py b/lib/spack/spack/platforms/cray.py
index af40510b2c0469..180af15435eaf6 100644
--- a/lib/spack/spack/platforms/cray.py
+++ b/lib/spack/spack/platforms/cray.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/platforms/darwin.py b/lib/spack/spack/platforms/darwin.py
index 74226728027906..1b7a5927f43ac2 100644
--- a/lib/spack/spack/platforms/darwin.py
+++ b/lib/spack/spack/platforms/darwin.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/platforms/freebsd.py b/lib/spack/spack/platforms/freebsd.py
new file mode 100644
index 00000000000000..4485550789726e
--- /dev/null
+++ b/lib/spack/spack/platforms/freebsd.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+import platform
+
+import archspec.cpu
+
+import spack.target
+from spack.operating_systems.freebsd import FreeBSDOs
+
+from ._platform import Platform
+
+
+class FreeBSD(Platform):
+ priority = 102
+
+ def __init__(self):
+ super().__init__("freebsd")
+
+ for name in archspec.cpu.TARGETS:
+ self.add_target(name, spack.target.Target(name))
+
+ # Get specific default
+ self.default = archspec.cpu.host().name
+ self.front_end = self.default
+ self.back_end = self.default
+
+ os = FreeBSDOs()
+ self.default_os = str(os)
+ self.front_os = self.default_os
+ self.back_os = self.default_os
+ self.add_operating_system(str(os), os)
+
+ @classmethod
+ def detect(cls):
+ return platform.system().lower() == "freebsd"
diff --git a/lib/spack/spack/platforms/linux.py b/lib/spack/spack/platforms/linux.py
index 60624a800935e9..2be5b51cb295e2 100644
--- a/lib/spack/spack/platforms/linux.py
+++ b/lib/spack/spack/platforms/linux.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/platforms/test.py b/lib/spack/spack/platforms/test.py
index 89ac57dc0581f7..9ead66ab273191 100644
--- a/lib/spack/spack/platforms/test.py
+++ b/lib/spack/spack/platforms/test.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/platforms/windows.py b/lib/spack/spack/platforms/windows.py
index d37a644e278c30..c00382e1980d17 100755
--- a/lib/spack/spack/platforms/windows.py
+++ b/lib/spack/spack/platforms/windows.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/projections.py b/lib/spack/spack/projections.py
index 58f7b9bb7131a4..b11c9c2a6d4262 100644
--- a/lib/spack/spack/projections.py
+++ b/lib/spack/spack/projections.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/provider_index.py b/lib/spack/spack/provider_index.py
index 32ace00a1669e7..29c32ce1b5a43b 100644
--- a/lib/spack/spack/provider_index.py
+++ b/lib/spack/spack/provider_index.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -128,8 +128,8 @@ def update(self, spec):
assert not self.repository.is_virtual_safe(spec.name), msg
pkg_provided = self.repository.get_pkg_class(spec.name).provided
- for provided_spec, provider_specs in pkg_provided.items():
- for provider_spec_readonly in provider_specs:
+ for provider_spec_readonly, provided_specs in pkg_provided.items():
+ for provided_spec in provided_specs:
# TODO: fix this comment.
# We want satisfaction other than flags
provider_spec = provider_spec_readonly.copy()
diff --git a/lib/spack/spack/relocate.py b/lib/spack/spack/relocate.py
index 756e3fa9dc60d1..6fcb4e98bc4feb 100644
--- a/lib/spack/spack/relocate.py
+++ b/lib/spack/spack/relocate.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/relocate_text.py b/lib/spack/spack/relocate_text.py
index fced612d7b64e6..95aee0d12661ef 100644
--- a/lib/spack/spack/relocate_text.py
+++ b/lib/spack/spack/relocate_text.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/repo.py b/lib/spack/spack/repo.py
index 5918454005df85..307654d328489d 100644
--- a/lib/spack/spack/repo.py
+++ b/lib/spack/spack/repo.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -490,7 +490,7 @@ def read(self, stream):
self.index = spack.tag.TagIndex.from_json(stream, self.repository)
def update(self, pkg_fullname):
- self.index.update_package(pkg_fullname)
+ self.index.update_package(pkg_fullname.split(".")[-1])
def write(self, stream):
self.index.to_json(stream)
diff --git a/lib/spack/spack/report.py b/lib/spack/spack/report.py
index f7d16b5e293811..9c56e7edbe0722 100644
--- a/lib/spack/spack/report.py
+++ b/lib/spack/spack/report.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,6 +6,7 @@
import collections
import contextlib
import functools
+import gzip
import os
import time
import traceback
@@ -190,9 +191,13 @@ def on_success(self, pkg, kwargs, package_record):
def fetch_log(self, pkg):
try:
- with open(pkg.build_log_path, "r", encoding="utf-8") as stream:
- return "".join(stream.readlines())
- except Exception:
+ if os.path.exists(pkg.install_log_path):
+ stream = gzip.open(pkg.install_log_path, "rt")
+ else:
+ stream = open(pkg.log_path)
+ with stream as f:
+ return f.read()
+ except OSError:
return f"Cannot open log for {pkg.spec.cshort_spec}"
def extract_package_from_signature(self, instance, *args, **kwargs):
diff --git a/lib/spack/spack/reporters/__init__.py b/lib/spack/spack/reporters/__init__.py
index f752eadc6324ec..0fa7d73e8dc164 100644
--- a/lib/spack/spack/reporters/__init__.py
+++ b/lib/spack/spack/reporters/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/reporters/base.py b/lib/spack/spack/reporters/base.py
index f1c10286066014..31cb02f1751c82 100644
--- a/lib/spack/spack/reporters/base.py
+++ b/lib/spack/spack/reporters/base.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/reporters/cdash.py b/lib/spack/spack/reporters/cdash.py
index 4517530751ac36..c65feb35d8ad4d 100644
--- a/lib/spack/spack/reporters/cdash.py
+++ b/lib/spack/spack/reporters/cdash.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -32,13 +32,26 @@
from .extract import extract_test_parts
# Mapping Spack phases to the corresponding CTest/CDash phase.
+# TODO: Some of the phases being lumped into configure in the CDash tables
+# TODO: really belong in a separate column, such as "Setup".
+# TODO: Would also be nice to have `stage` as a separate phase that could
+# TODO: be lumped into that new column instead of configure, for example.
MAP_PHASES_TO_CDASH = {
- "autoreconf": "configure",
- "cmake": "configure",
- "configure": "configure",
- "edit": "configure",
+ "autoreconf": "configure", # AutotoolsBuilder
+ "bootstrap": "configure", # CMakeBuilder
"build": "build",
+ "build_processes": "build", # Openloops
+ "cmake": "configure", # CMakeBuilder
+ "configure": "configure",
+ "edit": "configure", # MakefileBuilder
+ "generate_luarocks_config": "configure", # LuaBuilder
+ "hostconfig": "configure", # Lvarray
+ "initconfig": "configure", # CachedCMakeBuilder
"install": "build",
+ "meson": "configure", # MesonBuilder
+ "preprocess": "configure", # LuaBuilder
+ "qmake": "configure", # QMakeBuilder
+ "unpack": "configure", # LuaBuilder
}
# Initialize data structures common to each phase's report.
@@ -92,11 +105,12 @@ def __init__(self, configuration: CDashConfiguration):
self.osname = platform.system()
self.osrelease = platform.release()
self.target = spack.platforms.host().target("default_target")
- self.endtime = int(time.time())
+ self.starttime = int(time.time())
+ self.endtime = self.starttime
self.buildstamp = (
configuration.buildstamp
if configuration.buildstamp
- else build_stamp(configuration.track, self.endtime)
+ else build_stamp(configuration.track, self.starttime)
)
self.buildIds: Dict[str, str] = {}
self.revision = ""
@@ -125,7 +139,7 @@ def build_report_for_package(self, report_dir, package, duration):
report_data[phase] = {}
report_data[phase]["loglines"] = []
report_data[phase]["status"] = 0
- report_data[phase]["endtime"] = self.endtime
+ report_data[phase]["starttime"] = self.starttime
# Track the phases we perform so we know what reports to create.
# We always report the update step because this is how we tell CDash
@@ -153,6 +167,25 @@ def build_report_for_package(self, report_dir, package, duration):
elif cdash_phase:
report_data[cdash_phase]["loglines"].append(xml.sax.saxutils.escape(line))
+ # something went wrong pre-cdash "configure" phase b/c we have an exception and only
+ # "update" was encounterd.
+ # dump the report in the configure line so teams can see what the issue is
+ if len(phases_encountered) == 1 and package["exception"]:
+ # TODO this mapping is not ideal since these are pre-configure errors
+ # we need to determine if a more appropriate cdash phase can be utilized
+ # for now we will add a message to the log explaining this
+ cdash_phase = "configure"
+ phases_encountered.append(cdash_phase)
+
+ log_message = (
+ "Pre-configure errors occured in Spack's process that terminated the "
+ "build process prematurely.\nSpack output::\n{0}".format(
+ xml.sax.saxutils.escape(package["exception"])
+ )
+ )
+
+ report_data[cdash_phase]["loglines"].append(log_message)
+
# Move the build phase to the front of the list if it occurred.
# This supports older versions of CDash that expect this phase
# to be reported before all others.
@@ -160,9 +193,9 @@ def build_report_for_package(self, report_dir, package, duration):
build_pos = phases_encountered.index("build")
phases_encountered.insert(0, phases_encountered.pop(build_pos))
- self.starttime = self.endtime - duration
+ self.endtime = self.starttime + duration
for phase in phases_encountered:
- report_data[phase]["starttime"] = self.starttime
+ report_data[phase]["endtime"] = self.endtime
report_data[phase]["log"] = "\n".join(report_data[phase]["loglines"])
errors, warnings = parse_log_events(report_data[phase]["loglines"])
@@ -309,7 +342,7 @@ def test_report_for_package(self, report_dir, package, duration):
self.buildname = "{0}-{1}".format(self.current_package_name, package["id"])
else:
self.buildname = self.report_build_name(self.current_package_name)
- self.starttime = self.endtime - duration
+ self.endtime = self.starttime + duration
report_data = self.initialize_report(report_dir)
report_data["hostname"] = socket.gethostname()
@@ -354,7 +387,7 @@ def concretization_report(self, report_dir, msg):
self.buildname = self.base_buildname
report_data = self.initialize_report(report_dir)
report_data["update"] = {}
- report_data["update"]["starttime"] = self.endtime
+ report_data["update"]["starttime"] = self.starttime
report_data["update"]["endtime"] = self.endtime
report_data["update"]["revision"] = self.revision
report_data["update"]["log"] = msg
diff --git a/lib/spack/spack/reporters/extract.py b/lib/spack/spack/reporters/extract.py
index 5b912610f0d298..5554d89f0a2799 100644
--- a/lib/spack/spack/reporters/extract.py
+++ b/lib/spack/spack/reporters/extract.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/reporters/junit.py b/lib/spack/spack/reporters/junit.py
index dcc3bc635b10f0..ad13db61e4ce7b 100644
--- a/lib/spack/spack/reporters/junit.py
+++ b/lib/spack/spack/reporters/junit.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/resource.py b/lib/spack/spack/resource.py
index 4fc2898adae188..ba855cbb6388ed 100644
--- a/lib/spack/spack/resource.py
+++ b/lib/spack/spack/resource.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/rewiring.py b/lib/spack/spack/rewiring.py
index 2c18827e872294..297b0bd232ca2f 100644
--- a/lib/spack/spack/rewiring.py
+++ b/lib/spack/spack/rewiring.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/__init__.py b/lib/spack/spack/schema/__init__.py
index bdb1a272d03754..d6df072117615b 100644
--- a/lib/spack/spack/schema/__init__.py
+++ b/lib/spack/spack/schema/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/bootstrap.py b/lib/spack/spack/schema/bootstrap.py
index 73882c43c95942..0007852d1ccbb0 100644
--- a/lib/spack/spack/schema/bootstrap.py
+++ b/lib/spack/spack/schema/bootstrap.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/buildcache_spec.py b/lib/spack/spack/schema/buildcache_spec.py
index 7c74c7f4eba012..e04a8e9519fe48 100644
--- a/lib/spack/spack/schema/buildcache_spec.py
+++ b/lib/spack/spack/schema/buildcache_spec.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/cdash.py b/lib/spack/spack/schema/cdash.py
index f0178babc00552..42d40a5c3aac02 100644
--- a/lib/spack/spack/schema/cdash.py
+++ b/lib/spack/spack/schema/cdash.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/ci.py b/lib/spack/spack/schema/ci.py
index 9ba65b26820830..9cc9baf385b929 100644
--- a/lib/spack/spack/schema/ci.py
+++ b/lib/spack/spack/schema/ci.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/compilers.py b/lib/spack/spack/schema/compilers.py
index 924fee7a21ff76..831ef9ad2b788e 100644
--- a/lib/spack/spack/schema/compilers.py
+++ b/lib/spack/spack/schema/compilers.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/concretizer.py b/lib/spack/spack/schema/concretizer.py
index a4bd82e267c190..57f0c06b54d5cc 100644
--- a/lib/spack/spack/schema/concretizer.py
+++ b/lib/spack/spack/schema/concretizer.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/config.py b/lib/spack/spack/schema/config.py
index 6818cd78f39079..add66118f718d1 100644
--- a/lib/spack/spack/schema/config.py
+++ b/lib/spack/spack/schema/config.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/container.py b/lib/spack/spack/schema/container.py
index ef409c3d56bf0e..c5f0516966125f 100644
--- a/lib/spack/spack/schema/container.py
+++ b/lib/spack/spack/schema/container.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/cray_manifest.py b/lib/spack/spack/schema/cray_manifest.py
index 39529fc48f96ab..c922bb2c31f690 100644
--- a/lib/spack/spack/schema/cray_manifest.py
+++ b/lib/spack/spack/schema/cray_manifest.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/database_index.py b/lib/spack/spack/schema/database_index.py
index 021146f92a4c40..4b25b415a3225d 100644
--- a/lib/spack/spack/schema/database_index.py
+++ b/lib/spack/spack/schema/database_index.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/definitions.py b/lib/spack/spack/schema/definitions.py
index 470eb7e8989ce4..81579811b28c6e 100644
--- a/lib/spack/spack/schema/definitions.py
+++ b/lib/spack/spack/schema/definitions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/develop.py b/lib/spack/spack/schema/develop.py
new file mode 100644
index 00000000000000..7fa2ec5b0790f6
--- /dev/null
+++ b/lib/spack/spack/schema/develop.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+properties = {
+ "develop": {
+ "type": "object",
+ "default": {},
+ "additionalProperties": False,
+ "patternProperties": {
+ r"\w[\w-]*": {
+ "type": "object",
+ "additionalProperties": False,
+ "properties": {"spec": {"type": "string"}, "path": {"type": "string"}},
+ }
+ },
+ }
+}
+
+
+def update(data):
+ return False
+
+
+#: Full schema with metadata
+schema = {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Spack repository configuration file schema",
+ "type": "object",
+ "additionalProperties": False,
+ "properties": properties,
+}
diff --git a/lib/spack/spack/schema/env.py b/lib/spack/spack/schema/env.py
index 463c6680f0d47e..b5f1294722f31d 100644
--- a/lib/spack/spack/schema/env.py
+++ b/lib/spack/spack/schema/env.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -37,21 +37,6 @@
# extra environment schema properties
{
"include": {"type": "array", "default": [], "items": {"type": "string"}},
- "develop": {
- "type": "object",
- "default": {},
- "additionalProperties": False,
- "patternProperties": {
- r"\w[\w-]*": {
- "type": "object",
- "additionalProperties": False,
- "properties": {
- "spec": {"type": "string"},
- "path": {"type": "string"},
- },
- }
- },
- },
"specs": spack.schema.spec_list_schema,
"view": {
"anyOf": [
diff --git a/lib/spack/spack/schema/environment.py b/lib/spack/spack/schema/environment.py
index a65a4eaf1485f1..1c5070092eb9db 100644
--- a/lib/spack/spack/schema/environment.py
+++ b/lib/spack/spack/schema/environment.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/gitlab_ci.py b/lib/spack/spack/schema/gitlab_ci.py
index 2f2e51c8318c48..c95cd674d9d337 100644
--- a/lib/spack/spack/schema/gitlab_ci.py
+++ b/lib/spack/spack/schema/gitlab_ci.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/merged.py b/lib/spack/spack/schema/merged.py
index 7ceb6494108d0e..f4d70f8241a356 100644
--- a/lib/spack/spack/schema/merged.py
+++ b/lib/spack/spack/schema/merged.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,7 @@
import spack.schema.config
import spack.schema.container
import spack.schema.definitions
+import spack.schema.develop
import spack.schema.mirrors
import spack.schema.modules
import spack.schema.packages
@@ -34,6 +35,7 @@
spack.schema.container.properties,
spack.schema.ci.properties,
spack.schema.definitions.properties,
+ spack.schema.develop.properties,
spack.schema.mirrors.properties,
spack.schema.modules.properties,
spack.schema.packages.properties,
diff --git a/lib/spack/spack/schema/mirrors.py b/lib/spack/spack/schema/mirrors.py
index 8001172afd4b64..13ed1c746e9d30 100644
--- a/lib/spack/spack/schema/mirrors.py
+++ b/lib/spack/spack/schema/mirrors.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -42,6 +42,7 @@
"properties": {
"source": {"type": "boolean"},
"binary": {"type": "boolean"},
+ "signed": {"type": "boolean"},
"fetch": fetch_and_push,
"push": fetch_and_push,
**connection, # type: ignore
diff --git a/lib/spack/spack/schema/modules.py b/lib/spack/spack/schema/modules.py
index fb4130d345d02b..48db98c485cfdb 100644
--- a/lib/spack/spack/schema/modules.py
+++ b/lib/spack/spack/schema/modules.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/packages.py b/lib/spack/spack/schema/packages.py
index 2802f8952947aa..365536990e58c4 100644
--- a/lib/spack/spack/schema/packages.py
+++ b/lib/spack/spack/schema/packages.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -7,6 +7,7 @@
.. literalinclude:: _spack_root/lib/spack/spack/schema/packages.py
:lines: 13-
"""
+import spack.schema.environment
permissions = {
"type": "object",
@@ -53,6 +54,24 @@
]
}
+prefer_and_conflict = {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "additionalProperties": False,
+ "properties": {
+ "spec": {"type": "string"},
+ "message": {"type": "string"},
+ "when": {"type": "string"},
+ },
+ },
+ {"type": "string"},
+ ]
+ },
+}
+
permissions = {
"type": "object",
"additionalProperties": False,
@@ -84,6 +103,8 @@
"additionalProperties": False,
"properties": {
"require": requirements,
+ "prefer": prefer_and_conflict,
+ "conflict": prefer_and_conflict,
"version": {}, # Here only to warn users on ignored properties
"target": {
"type": "array",
@@ -132,6 +153,8 @@
"additionalProperties": False,
"properties": {
"require": requirements,
+ "prefer": prefer_and_conflict,
+ "conflict": prefer_and_conflict,
"version": {
"type": "array",
"default": [],
@@ -155,7 +178,13 @@
"spec": {"type": "string"},
"prefix": {"type": "string"},
"modules": {"type": "array", "items": {"type": "string"}},
- "extra_attributes": {"type": "object"},
+ "extra_attributes": {
+ "type": "object",
+ "additionalProperties": True,
+ "properties": {
+ "environment": spack.schema.environment.definition
+ },
+ },
},
"additionalProperties": True,
"required": ["spec"],
@@ -179,7 +208,6 @@
}
}
-
#: Full schema with metadata
schema = {
"$schema": "http://json-schema.org/draft-07/schema#",
diff --git a/lib/spack/spack/schema/projections.py b/lib/spack/spack/schema/projections.py
index a28df1c5b5cd4d..00f28d8bf98fb6 100644
--- a/lib/spack/spack/schema/projections.py
+++ b/lib/spack/spack/schema/projections.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/repos.py b/lib/spack/spack/schema/repos.py
index e846285ca16a2e..46f775fb4e85d9 100644
--- a/lib/spack/spack/schema/repos.py
+++ b/lib/spack/spack/schema/repos.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/spec.py b/lib/spack/spack/schema/spec.py
index 8d2390b2f3e958..3cbb8a65d278ad 100644
--- a/lib/spack/spack/schema/spec.py
+++ b/lib/spack/spack/schema/spec.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/schema/upstreams.py b/lib/spack/spack/schema/upstreams.py
index e45d492d5fa586..eee9d050ba5c02 100644
--- a/lib/spack/spack/schema/upstreams.py
+++ b/lib/spack/spack/schema/upstreams.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/solver/__init__.py b/lib/spack/spack/solver/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/spack/solver/__init__.py
+++ b/lib/spack/spack/solver/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py
index 0e298bfb4e92f3..151aef20a6e289 100644
--- a/lib/spack/spack/solver/asp.py
+++ b/lib/spack/spack/solver/asp.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,13 +11,19 @@
import pathlib
import pprint
import re
+import sys
import types
+import typing
import warnings
from typing import Callable, Dict, List, NamedTuple, Optional, Sequence, Set, Tuple, Union
import archspec.cpu
+import spack.config as sc
import spack.deptypes as dt
+import spack.parser
+import spack.paths as sp
+import spack.util.path as sup
try:
import clingo # type: ignore[import]
@@ -27,6 +33,36 @@
except ImportError:
clingo = None # type: ignore
clingo_cffi = False
+except AttributeError:
+ # Reaching this point indicates a broken clingo installation
+ # If Spack derived clingo, suggest user re-run bootstrap
+ # if non-spack, suggest user investigate installation
+
+ # assume Spack is not responsibe for broken clingo
+ msg = (
+ f"Clingo installation at {clingo.__file__} is incomplete or invalid."
+ "Please repair installation or re-install. "
+ "Alternatively, consider installing clingo via Spack."
+ )
+ # check whether Spack is responsible
+ if (
+ pathlib.Path(
+ sup.canonicalize_path(sc.get("bootstrap:root", sp.default_user_bootstrap_path))
+ )
+ in pathlib.Path(clingo.__file__).parents
+ ):
+ # Spack is responsible for the broken clingo
+ msg = (
+ "Spack bootstrapped copy of Clingo is broken, "
+ "please re-run the bootstrapping process via command `spack bootstrap now`."
+ " If this issue persists, please file a bug at: github.com/spack/spack"
+ )
+ raise RuntimeError(
+ "Clingo installation may be broken or incomplete, "
+ "please verify clingo has been installed correctly"
+ "\n\nClingo does not provide symbol clingo.Symbol"
+ f"{msg}"
+ )
import llnl.util.lang
import llnl.util.tty as tty
@@ -61,6 +97,8 @@
ASTType = None
parse_files = None
+#: Enable the addition of a runtime node
+WITH_RUNTIME = sys.platform != "win32"
#: Data class that contain configuration on what a
#: clingo solve should output.
@@ -122,6 +160,8 @@ class Provenance(enum.IntEnum):
PACKAGE_PY = enum.auto()
# An installed spec
INSTALLED = enum.auto()
+ # A runtime injected from another package (e.g. a compiler)
+ RUNTIME = enum.auto()
def __str__(self):
return f"{self._name_.lower()}"
@@ -379,7 +419,7 @@ def check_packages_exist(specs):
for spec in specs:
for s in spec.traverse():
try:
- check_passed = repo.exists(s.name) or repo.is_virtual(s.name)
+ check_passed = repo.repo_for_pkg(s).exists(s.name) or repo.is_virtual(s.name)
except Exception as e:
msg = "Cannot find package: {0}".format(str(e))
check_passed = False
@@ -824,9 +864,13 @@ def on_model(model):
#: Data class to collect information on a requirement
-RequirementRule = collections.namedtuple(
- "RequirementRule", ["pkg_name", "policy", "requirements", "condition", "kind", "message"]
-)
+class RequirementRule(NamedTuple):
+ pkg_name: str
+ policy: str
+ requirements: List["spack.spec.Spec"]
+ condition: "spack.spec.Spec"
+ kind: RequirementKind
+ message: Optional[str]
class PyclingoDriver:
@@ -1132,6 +1176,7 @@ def __init__(self, tests=False):
# Set during the call to setup
self.pkgs = None
+ self.explicitly_required_namespaces = {}
def pkg_version_rules(self, pkg):
"""Output declared versions of a package.
@@ -1144,7 +1189,9 @@ def key_fn(version):
# Origins are sorted by "provenance" first, see the Provenance enumeration above
return version.origin, version.idx
- pkg = packagize(pkg)
+ if isinstance(pkg, str):
+ pkg = self.pkg_class(pkg)
+
declared_versions = self.declared_versions[pkg.name]
partially_sorted_versions = sorted(set(declared_versions), key=key_fn)
@@ -1196,29 +1243,30 @@ def target_ranges(self, spec, single_target_fn):
return [fn.attr("node_target_satisfies", spec.name, target)]
def conflict_rules(self, pkg):
- default_msg = "{0}: '{1}' conflicts with '{2}'"
- no_constraint_msg = "{0}: conflicts with '{1}'"
- for trigger, constraints in pkg.conflicts.items():
- trigger_msg = f"conflict is triggered when {str(trigger)}"
- trigger_spec = spack.spec.Spec(trigger)
- trigger_id = self.condition(
- trigger_spec, name=trigger_spec.name or pkg.name, msg=trigger_msg
- )
+ for when_spec, conflict_specs in pkg.conflicts.items():
+ when_spec_msg = "conflict constraint %s" % str(when_spec)
+ when_spec_id = self.condition(when_spec, name=pkg.name, msg=when_spec_msg)
- for constraint, conflict_msg in constraints:
+ for conflict_spec, conflict_msg in conflict_specs:
+ conflict_spec = spack.spec.Spec(conflict_spec)
if conflict_msg is None:
- if constraint == spack.spec.Spec():
- conflict_msg = no_constraint_msg.format(pkg.name, trigger)
+ conflict_msg = f"{pkg.name}: "
+ if when_spec == spack.spec.Spec():
+ conflict_msg += f"conflicts with '{conflict_spec}'"
else:
- conflict_msg = default_msg.format(pkg.name, trigger, constraint)
-
- spec_for_msg = (
- spack.spec.Spec(pkg.name) if constraint == spack.spec.Spec() else constraint
+ conflict_msg += f"'{conflict_spec}' conflicts with '{when_spec}'"
+
+ spec_for_msg = conflict_spec
+ if conflict_spec == spack.spec.Spec():
+ spec_for_msg = spack.spec.Spec(pkg.name)
+ conflict_spec_msg = f"conflict is triggered when {str(spec_for_msg)}"
+ conflict_spec_id = self.condition(
+ conflict_spec, name=conflict_spec.name or pkg.name, msg=conflict_spec_msg
)
- constraint_msg = f"conflict applies to spec {str(spec_for_msg)}"
- constraint_id = self.condition(constraint, name=pkg.name, msg=constraint_msg)
self.gen.fact(
- fn.pkg_fact(pkg.name, fn.conflict(trigger_id, constraint_id, conflict_msg))
+ fn.pkg_fact(
+ pkg.name, fn.conflict(conflict_spec_id, when_spec_id, conflict_msg)
+ )
)
self.gen.newline()
@@ -1258,85 +1306,14 @@ def compiler_facts(self):
self.gen.fact(f)
def package_requirement_rules(self, pkg):
- rules = self.requirement_rules_from_package_py(pkg)
- rules.extend(self.requirement_rules_from_packages_yaml(pkg))
- self.emit_facts_from_requirement_rules(rules)
-
- def requirement_rules_from_package_py(self, pkg):
- rules = []
- for requirements, conditions in pkg.requirements.items():
- for when_spec, policy, message in conditions:
- rules.append(
- RequirementRule(
- pkg_name=pkg.name,
- policy=policy,
- requirements=requirements,
- kind=RequirementKind.PACKAGE,
- condition=when_spec,
- message=message,
- )
- )
- return rules
-
- def requirement_rules_from_packages_yaml(self, pkg):
- pkg_name = pkg.name
- config = spack.config.get("packages")
- requirements = config.get(pkg_name, {}).get("require", [])
- kind = RequirementKind.PACKAGE
- if not requirements:
- requirements = config.get("all", {}).get("require", [])
- kind = RequirementKind.DEFAULT
- return self._rules_from_requirements(pkg_name, requirements, kind=kind)
-
- def _rules_from_requirements(self, pkg_name: str, requirements, *, kind: RequirementKind):
- """Manipulate requirements from packages.yaml, and return a list of tuples
- with a uniform structure (name, policy, requirements).
- """
- if isinstance(requirements, str):
- rules = [self._rule_from_str(pkg_name, requirements, kind)]
- else:
- rules = []
- for requirement in requirements:
- if isinstance(requirement, str):
- # A string represents a spec that must be satisfied. It is
- # equivalent to a one_of group with a single element
- rules.append(self._rule_from_str(pkg_name, requirement, kind))
- else:
- for policy in ("spec", "one_of", "any_of"):
- if policy in requirement:
- constraints = requirement[policy]
-
- # "spec" is for specifying a single spec
- if policy == "spec":
- constraints = [constraints]
- policy = "one_of"
-
- rules.append(
- RequirementRule(
- pkg_name=pkg_name,
- policy=policy,
- requirements=constraints,
- kind=kind,
- message=requirement.get("message"),
- condition=requirement.get("when"),
- )
- )
- return rules
-
- def _rule_from_str(
- self, pkg_name: str, requirements: str, kind: RequirementKind
- ) -> RequirementRule:
- return RequirementRule(
- pkg_name=pkg_name,
- policy="one_of",
- requirements=[requirements],
- kind=kind,
- condition=None,
- message=None,
- )
+ parser = RequirementParser(spack.config.CONFIG)
+ self.emit_facts_from_requirement_rules(parser.rules(pkg))
def pkg_rules(self, pkg, tests):
- pkg = packagize(pkg)
+ pkg = self.pkg_class(pkg)
+
+ # Namespace of the package
+ self.gen.fact(fn.pkg_fact(pkg.name, fn.namespace(pkg.namespace)))
# versions
self.pkg_version_rules(pkg)
@@ -1558,19 +1535,20 @@ def impose(self, condition_id, imposed_spec, node=True, name=None, body=False):
self.gen.fact(fn.imposed_constraint(condition_id, *pred.args))
def package_provider_rules(self, pkg):
- for provider_name in sorted(set(s.name for s in pkg.provided.keys())):
- if provider_name not in self.possible_virtuals:
+ for vpkg_name in pkg.provided_virtual_names():
+ if vpkg_name not in self.possible_virtuals:
continue
- self.gen.fact(fn.pkg_fact(pkg.name, fn.possible_provider(provider_name)))
+ self.gen.fact(fn.pkg_fact(pkg.name, fn.possible_provider(vpkg_name)))
- for provided, whens in pkg.provided.items():
- if provided.name not in self.possible_virtuals:
- continue
- for when in whens:
- msg = "%s provides %s when %s" % (pkg.name, provided, when)
- condition_id = self.condition(when, provided, pkg.name, msg)
+ for when, provided in pkg.provided.items():
+ for vpkg in provided:
+ if vpkg.name not in self.possible_virtuals:
+ continue
+
+ msg = f"{pkg.name} provides {vpkg} when {when}"
+ condition_id = self.condition(when, vpkg, pkg.name, msg)
self.gen.fact(
- fn.pkg_fact(when.name, fn.provider_condition(condition_id, provided.name))
+ fn.pkg_fact(when.name, fn.provider_condition(condition_id, vpkg.name))
)
self.gen.newline()
@@ -1587,8 +1565,8 @@ def package_provider_rules(self, pkg):
def package_dependencies_rules(self, pkg):
"""Translate 'depends_on' directives into ASP logic."""
- for _, conditions in sorted(pkg.dependencies.items()):
- for cond, dep in sorted(conditions.items()):
+ for cond, deps_by_name in sorted(pkg.dependencies.items()):
+ for _, dep in sorted(deps_by_name.items()):
depflag = dep.depflag
# Skip test dependencies if they're not requested
if not self.tests:
@@ -1662,16 +1640,14 @@ def provider_requirements(self):
"Internal Error: possible_virtuals is not populated. Please report to the spack"
" maintainers"
)
- packages_yaml = spack.config.CONFIG.get("packages")
+ parser = RequirementParser(spack.config.CONFIG)
assert self.possible_virtuals is not None, msg
for virtual_str in sorted(self.possible_virtuals):
- requirements = packages_yaml.get(virtual_str, {}).get("require", [])
- rules = self._rules_from_requirements(
- virtual_str, requirements, kind=RequirementKind.VIRTUAL
- )
- self.emit_facts_from_requirement_rules(rules)
- self.trigger_rules()
- self.effect_rules()
+ rules = parser.rules_from_virtual(virtual_str)
+ if rules:
+ self.emit_facts_from_requirement_rules(rules)
+ self.trigger_rules()
+ self.effect_rules()
def emit_facts_from_requirement_rules(self, rules: List[RequirementRule]):
"""Generate facts to enforce requirements.
@@ -1683,19 +1659,13 @@ def emit_facts_from_requirement_rules(self, rules: List[RequirementRule]):
virtual = rule.kind == RequirementKind.VIRTUAL
pkg_name, policy, requirement_grp = rule.pkg_name, rule.policy, rule.requirements
-
requirement_weight = 0
- main_requirement_condition = spack.directives.make_when_spec(rule.condition)
- if main_requirement_condition is False:
- continue
# Write explicitly if a requirement is conditional or not
- if main_requirement_condition != spack.spec.Spec():
+ if rule.condition != spack.spec.Spec():
msg = f"condition to activate requirement {requirement_grp_id}"
try:
- main_condition_id = self.condition(
- main_requirement_condition, name=pkg_name, msg=msg
- )
+ main_condition_id = self.condition(rule.condition, name=pkg_name, msg=msg)
except Exception as e:
if rule.kind != RequirementKind.DEFAULT:
raise RuntimeError(
@@ -1713,8 +1683,8 @@ def emit_facts_from_requirement_rules(self, rules: List[RequirementRule]):
self.gen.fact(fn.requirement_message(pkg_name, requirement_grp_id, rule.message))
self.gen.newline()
- for spec_str in requirement_grp:
- spec = spack.spec.Spec(spec_str)
+ for input_spec in requirement_grp:
+ spec = spack.spec.Spec(input_spec)
if not spec.name:
spec.name = pkg_name
spec.attach_git_version_lookup()
@@ -1734,7 +1704,7 @@ def emit_facts_from_requirement_rules(self, rules: List[RequirementRule]):
imposed_spec=spec,
name=pkg_name,
transform_imposed=transform,
- msg=f"{spec_str} is a requirement for package {pkg_name}",
+ msg=f"{input_spec} is a requirement for package {pkg_name}",
)
except Exception as e:
# Do not raise if the rule comes from the 'all' subsection, since usability
@@ -1798,15 +1768,12 @@ def external_packages(self):
for local_idx, spec in enumerate(external_specs):
msg = "%s available as external when satisfying %s" % (spec.name, spec)
- def external_imposition(input_spec, _):
- return [fn.attr("external_conditions_hold", input_spec.name, local_idx)]
+ def external_imposition(input_spec, requirements):
+ return requirements + [
+ fn.attr("external_conditions_hold", input_spec.name, local_idx)
+ ]
- self.condition(
- spec,
- spack.spec.Spec(spec.name),
- msg=msg,
- transform_imposed=external_imposition,
- )
+ self.condition(spec, spec, msg=msg, transform_imposed=external_imposition)
self.possible_versions[spec.name].add(spec.version)
self.gen.newline()
@@ -1973,7 +1940,7 @@ class Body:
if not spec.concrete:
reserved_names = spack.directives.reserved_names
if not spec.virtual and vname not in reserved_names:
- pkg_cls = spack.repo.PATH.get_pkg_class(spec.name)
+ pkg_cls = self.pkg_class(spec.name)
try:
variant_def, _ = pkg_cls.variants[vname]
except KeyError:
@@ -2005,7 +1972,9 @@ class Body:
f.node_compiler_version(spec.name, spec.compiler.name, spec.compiler.version)
)
- elif spec.compiler.versions:
+ elif spec.compiler.versions and spec.compiler.versions != vn.any_version:
+ # The condition above emits a facts only if we have an actual constraint
+ # on the compiler version, and avoids emitting them if any version is fine
clauses.append(
fn.attr(
"node_compiler_version_satisfies",
@@ -2092,7 +2061,7 @@ def define_package_versions_and_validate_preferences(
"""Declare any versions in specs not declared in packages."""
packages_yaml = spack.config.get("packages")
for pkg_name in possible_pkgs:
- pkg_cls = spack.repo.PATH.get_pkg_class(pkg_name)
+ pkg_cls = self.pkg_class(pkg_name)
# All the versions from the corresponding package.py file. Since concepts
# like being a "develop" version or being preferred exist only at a
@@ -2554,12 +2523,13 @@ def setup(
"""
check_packages_exist(specs)
- self.possible_virtuals = set(x.name for x in specs if x.virtual)
-
node_counter = _create_counter(specs, tests=self.tests)
self.possible_virtuals = node_counter.possible_virtuals()
self.pkgs = node_counter.possible_dependencies()
+ runtimes = spack.repo.PATH.packages_with_tags("runtime")
+ self.pkgs.update(set(runtimes))
+
# Fail if we already know an unreachable node is requested
for spec in specs:
missing_deps = [
@@ -2568,6 +2538,10 @@ def setup(
if missing_deps:
raise spack.spec.InvalidDependencyError(spec.name, missing_deps)
+ for node in spack.traverse.traverse_nodes(specs):
+ if node.namespace is not None:
+ self.explicitly_required_namespaces[node.name] = node.namespace
+
# driver is used by all the functions below to add facts and
# rules to generate an ASP program.
self.gen = driver
@@ -2660,6 +2634,10 @@ def setup(
self.gen.h1("Variant Values defined in specs")
self.define_variant_values()
+ if WITH_RUNTIME:
+ self.gen.h1("Runtimes")
+ self.define_runtime_constraints()
+
self.gen.h1("Version Constraints")
self.collect_virtual_constraints()
self.define_version_constraints()
@@ -2670,6 +2648,21 @@ def setup(
self.gen.h1("Target Constraints")
self.define_target_constraints()
+ def define_runtime_constraints(self):
+ """Define the constraints to be imposed on the runtimes"""
+ recorder = RuntimePropertyRecorder(self)
+ for compiler in self.possible_compilers:
+ if compiler.name != "gcc":
+ continue
+ try:
+ compiler_cls = spack.repo.PATH.get_pkg_class(compiler.name)
+ except spack.repo.UnknownPackageError:
+ continue
+ if hasattr(compiler_cls, "runtime_constraints"):
+ compiler_cls.runtime_constraints(compiler=compiler, pkg=recorder)
+
+ recorder.consume_facts()
+
def literal_specs(self, specs):
for spec in specs:
self.gen.h2("Spec: %s" % str(spec))
@@ -2777,6 +2770,341 @@ def _specs_from_requires(self, pkg_name, section):
for s in spec_group[key]:
yield _spec_with_default_name(s, pkg_name)
+ def pkg_class(self, pkg_name: str) -> typing.Type["spack.package_base.PackageBase"]:
+ request = pkg_name
+ if pkg_name in self.explicitly_required_namespaces:
+ namespace = self.explicitly_required_namespaces[pkg_name]
+ request = f"{namespace}.{pkg_name}"
+ return spack.repo.PATH.get_pkg_class(request)
+
+
+class RequirementParser:
+ """Parses requirements from package.py files and configuration, and returns rules."""
+
+ def __init__(self, configuration):
+ self.config = configuration
+
+ def rules(self, pkg: "spack.package_base.PackageBase") -> List[RequirementRule]:
+ result = []
+ result.extend(self.rules_from_package_py(pkg))
+ result.extend(self.rules_from_require(pkg))
+ result.extend(self.rules_from_prefer(pkg))
+ result.extend(self.rules_from_conflict(pkg))
+ return result
+
+ def rules_from_package_py(self, pkg) -> List[RequirementRule]:
+ rules = []
+ for when_spec, requirement_list in pkg.requirements.items():
+ for requirements, policy, message in requirement_list:
+ rules.append(
+ RequirementRule(
+ pkg_name=pkg.name,
+ policy=policy,
+ requirements=requirements,
+ kind=RequirementKind.PACKAGE,
+ condition=when_spec,
+ message=message,
+ )
+ )
+ return rules
+
+ def rules_from_virtual(self, virtual_str: str) -> List[RequirementRule]:
+ requirements = self.config.get("packages", {}).get(virtual_str, {}).get("require", [])
+ return self._rules_from_requirements(
+ virtual_str, requirements, kind=RequirementKind.VIRTUAL
+ )
+
+ def rules_from_require(self, pkg: "spack.package_base.PackageBase") -> List[RequirementRule]:
+ kind, requirements = self._raw_yaml_data(pkg, section="require")
+ return self._rules_from_requirements(pkg.name, requirements, kind=kind)
+
+ def rules_from_prefer(self, pkg: "spack.package_base.PackageBase") -> List[RequirementRule]:
+ result = []
+ kind, preferences = self._raw_yaml_data(pkg, section="prefer")
+ for item in preferences:
+ spec, condition, message = self._parse_prefer_conflict_item(item)
+ result.append(
+ # A strong preference is defined as:
+ #
+ # require:
+ # - any_of: [spec_str, "@:"]
+ RequirementRule(
+ pkg_name=pkg.name,
+ policy="any_of",
+ requirements=[spec, spack.spec.Spec("@:")],
+ kind=kind,
+ message=message,
+ condition=condition,
+ )
+ )
+ return result
+
+ def rules_from_conflict(self, pkg: "spack.package_base.PackageBase") -> List[RequirementRule]:
+ result = []
+ kind, conflicts = self._raw_yaml_data(pkg, section="conflict")
+ for item in conflicts:
+ spec, condition, message = self._parse_prefer_conflict_item(item)
+ result.append(
+ # A conflict is defined as:
+ #
+ # require:
+ # - one_of: [spec_str, "@:"]
+ RequirementRule(
+ pkg_name=pkg.name,
+ policy="one_of",
+ requirements=[spec, spack.spec.Spec("@:")],
+ kind=kind,
+ message=message,
+ condition=condition,
+ )
+ )
+ return result
+
+ def _parse_prefer_conflict_item(self, item):
+ # The item is either a string or an object with at least a "spec" attribute
+ if isinstance(item, str):
+ spec = sc.parse_spec_from_yaml_string(item)
+ condition = spack.spec.Spec()
+ message = None
+ else:
+ spec = sc.parse_spec_from_yaml_string(item["spec"])
+ condition = spack.spec.Spec(item.get("when"))
+ message = item.get("message")
+ return spec, condition, message
+
+ def _raw_yaml_data(self, pkg: "spack.package_base.PackageBase", *, section: str):
+ config = self.config.get("packages")
+ data = config.get(pkg.name, {}).get(section, [])
+ kind = RequirementKind.PACKAGE
+ if not data:
+ data = config.get("all", {}).get(section, [])
+ kind = RequirementKind.DEFAULT
+ return kind, data
+
+ def _rules_from_requirements(
+ self, pkg_name: str, requirements, *, kind: RequirementKind
+ ) -> List[RequirementRule]:
+ """Manipulate requirements from packages.yaml, and return a list of tuples
+ with a uniform structure (name, policy, requirements).
+ """
+ if isinstance(requirements, str):
+ requirements = [requirements]
+
+ rules = []
+ for requirement in requirements:
+ # A string is equivalent to a one_of group with a single element
+ if isinstance(requirement, str):
+ requirement = {"one_of": [requirement]}
+
+ for policy in ("spec", "one_of", "any_of"):
+ if policy not in requirement:
+ continue
+
+ constraints = requirement[policy]
+ # "spec" is for specifying a single spec
+ if policy == "spec":
+ constraints = [constraints]
+ policy = "one_of"
+
+ # validate specs from YAML first, and fail with line numbers if parsing fails.
+ constraints = [
+ sc.parse_spec_from_yaml_string(constraint) for constraint in constraints
+ ]
+ when_str = requirement.get("when")
+ when = sc.parse_spec_from_yaml_string(when_str) if when_str else spack.spec.Spec()
+
+ constraints = [
+ x
+ for x in constraints
+ if not self.reject_requirement_constraint(pkg_name, constraint=x, kind=kind)
+ ]
+ if not constraints:
+ continue
+
+ rules.append(
+ RequirementRule(
+ pkg_name=pkg_name,
+ policy=policy,
+ requirements=constraints,
+ kind=kind,
+ message=requirement.get("message"),
+ condition=when,
+ )
+ )
+ return rules
+
+ def reject_requirement_constraint(
+ self, pkg_name: str, *, constraint: spack.spec.Spec, kind: RequirementKind
+ ) -> bool:
+ """Returns True if a requirement constraint should be rejected"""
+ if kind == RequirementKind.DEFAULT:
+ # Requirements under all: are applied only if they are satisfiable considering only
+ # package rules, so e.g. variants must exist etc. Otherwise, they are rejected.
+ try:
+ s = spack.spec.Spec(pkg_name)
+ s.constrain(constraint)
+ s.validate_or_raise()
+ except spack.error.SpackError as e:
+ tty.debug(
+ f"[SETUP] Rejecting the default '{constraint}' requirement "
+ f"on '{pkg_name}': {str(e)}",
+ level=2,
+ )
+ return True
+ return False
+
+
+class RuntimePropertyRecorder:
+ """An object of this class is injected in callbacks to compilers, to let them declare
+ properties of the runtimes they support and of the runtimes they provide, and to add
+ runtime dependencies to the nodes using said compiler.
+
+ The usage of the object is the following. First, a runtime package name or the wildcard
+ "*" are passed as an argument to __call__, to set which kind of package we are referring to.
+ Then we can call one method with a directive-like API.
+
+ Examples:
+ >>> pkg = RuntimePropertyRecorder(setup)
+ >>> # Every package compiled with %gcc has a link dependency on 'gcc-runtime'
+ >>> pkg("*").depends_on(
+ ... "gcc-runtime",
+ ... when="%gcc",
+ ... type="link",
+ ... description="If any package uses %gcc, it depends on gcc-runtime"
+ ... )
+ >>> # The version of gcc-runtime is the same as the %gcc used to "compile" it
+ >>> pkg("gcc-runtime").requires("@=9.4.0", when="%gcc@=9.4.0")
+ """
+
+ def __init__(self, setup):
+ self._setup = setup
+ self.rules = []
+ self.runtime_conditions = set()
+ # State of this object set in the __call__ method, and reset after
+ # each directive-like method
+ self.current_package = None
+
+ def __call__(self, package_name: str) -> "RuntimePropertyRecorder":
+ """Sets a package name for the next directive-like method call"""
+ assert self.current_package is None, f"state was already set to '{self.current_package}'"
+ self.current_package = package_name
+ return self
+
+ def reset(self):
+ """Resets the current state."""
+ self.current_package = None
+
+ def depends_on(self, dependency_str: str, *, when: str, type: str, description: str) -> None:
+ """Injects conditional dependencies on packages.
+
+ Args:
+ dependency_str: the dependency spec to inject
+ when: anonymous condition to be met on a package to have the dependency
+ type: dependency type
+ description: human-readable description of the rule for adding the dependency
+ """
+ # TODO: The API for this function is not final, and is still subject to change. At
+ # TODO: the moment, we implemented only the features strictly needed for the
+ # TODO: functionality currently provided by Spack, and we assert nothing else is required.
+ msg = "the 'depends_on' method can be called only with pkg('*')"
+ assert self.current_package == "*", msg
+
+ when_spec = spack.spec.Spec(when)
+ assert when_spec.name is None, "only anonymous when specs are accepted"
+
+ dependency_spec = spack.spec.Spec(dependency_str)
+ if dependency_spec.versions != vn.any_version:
+ self._setup.version_constraints.add((dependency_spec.name, dependency_spec.versions))
+
+ placeholder = "XXX"
+ node_variable = "node(ID, Package)"
+ when_spec.name = placeholder
+
+ body_clauses = self._setup.spec_clauses(when_spec, body=True)
+ body_str = (
+ f" {f',{os.linesep} '.join(str(x) for x in body_clauses)},\n"
+ f" not external({node_variable}),\n"
+ f" not runtime(Package)"
+ ).replace(f'"{placeholder}"', f"{node_variable}")
+ head_clauses = self._setup.spec_clauses(dependency_spec, body=False)
+
+ runtime_pkg = dependency_spec.name
+ main_rule = (
+ f"% {description}\n"
+ f'1 {{ attr("depends_on", {node_variable}, node(0..X-1, "{runtime_pkg}"), "{type}") :'
+ f' max_dupes("gcc-runtime", X)}} 1:-\n'
+ f"{body_str}.\n\n"
+ )
+ self.rules.append(main_rule)
+ for clause in head_clauses:
+ if clause.args[0] == "node":
+ continue
+ runtime_node = f'node(RuntimeID, "{runtime_pkg}")'
+ head_str = str(clause).replace(f'"{runtime_pkg}"', runtime_node)
+ rule = (
+ f"{head_str} :-\n"
+ f' attr("depends_on", {node_variable}, {runtime_node}, "{type}"),\n'
+ f"{body_str}.\n\n"
+ )
+ self.rules.append(rule)
+
+ self.reset()
+
+ def requires(self, impose: str, *, when: str):
+ """Injects conditional requirements on a given package.
+
+ Args:
+ impose: constraint to be imposed
+ when: condition triggering the constraint
+ """
+ msg = "the 'requires' method cannot be called with pkg('*') or without setting the package"
+ assert self.current_package is not None and self.current_package != "*", msg
+
+ imposed_spec = spack.spec.Spec(f"{self.current_package}{impose}")
+ when_spec = spack.spec.Spec(f"{self.current_package}{when}")
+
+ assert imposed_spec.versions.concrete, f"{impose} must have a concrete version"
+ assert when_spec.compiler.concrete, f"{when} must have a concrete compiler"
+
+ # Add versions to possible versions
+ for s in (imposed_spec, when_spec):
+ if not s.versions.concrete:
+ continue
+ self._setup.possible_versions[s.name].add(s.version)
+ self._setup.declared_versions[s.name].append(
+ DeclaredVersion(version=s.version, idx=0, origin=Provenance.RUNTIME)
+ )
+
+ self.runtime_conditions.add((imposed_spec, when_spec))
+ self.reset()
+
+ def consume_facts(self):
+ """Consume the facts collected by this object, and emits rules and
+ facts for the runtimes.
+ """
+ self._setup.gen.h2("Runtimes: rules")
+ self._setup.gen.newline()
+ for rule in self.rules:
+ if not isinstance(self._setup.gen.out, llnl.util.lang.Devnull):
+ self._setup.gen.out.write(rule)
+ self._setup.gen.control.add("base", [], rule)
+
+ self._setup.gen.h2("Runtimes: conditions")
+ for runtime_pkg in spack.repo.PATH.packages_with_tags("runtime"):
+ self._setup.gen.fact(fn.runtime(runtime_pkg))
+ self._setup.gen.fact(fn.possible_in_link_run(runtime_pkg))
+ self._setup.gen.newline()
+ # Inject version rules for runtimes (versions are declared based
+ # on the available compilers)
+ self._setup.pkg_version_rules(runtime_pkg)
+
+ for imposed_spec, when_spec in self.runtime_conditions:
+ msg = f"{when_spec} requires {imposed_spec} at runtime"
+ _ = self._setup.condition(when_spec, imposed_spec=imposed_spec, msg=msg)
+
+ self._setup.trigger_rules()
+ self._setup.effect_rules()
+
class SpecBuilder:
"""Class with actions to rebuild a spec from ASP results."""
@@ -2836,6 +3164,9 @@ def _arch(self, node):
self._specs[node].architecture = arch
return arch
+ def namespace(self, node, namespace):
+ self._specs[node].namespace = namespace
+
def node_platform(self, node, platform):
self._arch(node).platform = platform
@@ -3050,14 +3381,6 @@ def build_specs(self, function_tuples):
action(*args)
- # namespace assignment is done after the fact, as it is not
- # currently part of the solve
- for spec in self._specs.values():
- if spec.namespace:
- continue
- repo = spack.repo.PATH.repo_for_pkg(spec)
- spec.namespace = repo.namespace
-
# fix flags after all specs are constructed
self.reorder_flags()
@@ -3116,6 +3439,49 @@ def _develop_specs_from_env(spec, env):
spec.constrain(dev_info["spec"])
+def _is_reusable(spec: spack.spec.Spec, packages, local: bool) -> bool:
+ """A spec is reusable if it's not a dev spec, it's imported from the cray manifest, it's not
+ external, or it's external with matching packages.yaml entry. The latter prevents two issues:
+
+ 1. Externals in build caches: avoid installing an external on the build machine not
+ available on the target machine
+ 2. Local externals: avoid reusing an external if the local config changes. This helps in
+ particular when a user removes an external from packages.yaml, and expects that that
+ takes effect immediately.
+
+ Arguments:
+ spec: the spec to check
+ packages: the packages configuration
+ """
+ if "dev_path" in spec.variants:
+ return False
+
+ if not spec.external:
+ return True
+
+ # Cray external manifest externals are always reusable
+ if local:
+ _, record = spack.store.STORE.db.query_by_spec_hash(spec.dag_hash())
+ if record and record.origin == "external-db":
+ return True
+
+ try:
+ provided = spack.repo.PATH.get(spec).provided_virtual_names()
+ except spack.repo.RepoError:
+ provided = []
+
+ for name in {spec.name, *provided}:
+ for entry in packages.get(name, {}).get("externals", []):
+ if (
+ spec.satisfies(entry["spec"])
+ and spec.external_path == entry.get("prefix")
+ and spec.external_modules == entry.get("modules")
+ ):
+ return True
+
+ return False
+
+
class Solver:
"""This is the main external interface class for solving.
@@ -3151,20 +3517,22 @@ def _check_input_and_extract_concrete_specs(specs):
def _reusable_specs(self, specs):
reusable_specs = []
if self.reuse:
+ packages = spack.config.get("packages")
# Specs from the local Database
with spack.store.STORE.db.read_transaction():
reusable_specs.extend(
- [
- s
- for s in spack.store.STORE.db.query(installed=True)
- if not s.satisfies("dev_path=*")
- ]
+ s
+ for s in spack.store.STORE.db.query(installed=True)
+ if _is_reusable(s, packages, local=True)
)
# Specs from buildcaches
try:
- index = spack.binary_distribution.update_cache_and_get_specs()
- reusable_specs.extend(index)
+ reusable_specs.extend(
+ s
+ for s in spack.binary_distribution.update_cache_and_get_specs()
+ if _is_reusable(s, packages, local=False)
+ )
except (spack.binary_distribution.FetchCacheError, IndexError):
# this is raised when no mirrors had indices.
# TODO: update mirror configuration so it can indicate that the
diff --git a/lib/spack/spack/solver/concretize.lp b/lib/spack/spack/solver/concretize.lp
index d5f24ddc3b33f0..c8d96eed9c6613 100644
--- a/lib/spack/spack/solver/concretize.lp
+++ b/lib/spack/spack/solver/concretize.lp
@@ -1,4 +1,4 @@
-% Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+% Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
% Spack Project Developers. See the top-level COPYRIGHT file for details.
%
% SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,7 +20,7 @@
% Integrity constraints on DAG nodes
:- attr("root", PackageNode), not attr("node", PackageNode).
:- attr("version", PackageNode, _), not attr("node", PackageNode), not attr("virtual_node", PackageNode).
-:- attr("node_version_satisfies", PackageNode), not attr("node", PackageNode).
+:- attr("node_version_satisfies", PackageNode, _), not attr("node", PackageNode), not attr("virtual_node", PackageNode).
:- attr("hash", PackageNode, _), not attr("node", PackageNode).
:- attr("node_platform", PackageNode, _), not attr("node", PackageNode).
:- attr("node_os", PackageNode, _), not attr("node", PackageNode).
@@ -45,6 +45,9 @@
:- attr("depends_on", node(min_dupe_id, Package), node(ID, _), "link"), ID != min_dupe_id, unification_set("root", node(min_dupe_id, Package)), internal_error("link dependency out of the root unification set").
:- attr("depends_on", node(min_dupe_id, Package), node(ID, _), "run"), ID != min_dupe_id, unification_set("root", node(min_dupe_id, Package)), internal_error("run dependency out of the root unification set").
+% Namespaces are statically assigned by a package fact
+attr("namespace", node(ID, Package), Namespace) :- attr("node", node(ID, Package)), pkg_fact(Package, namespace(Namespace)).
+
% Rules on "unification sets", i.e. on sets of nodes allowing a single configuration of any given package
unify(SetID, PackageName) :- unification_set(SetID, node(_, PackageName)).
:- 2 { unification_set(SetID, node(_, PackageName)) }, unify(SetID, PackageName).
@@ -695,6 +698,18 @@ requirement_group_satisfied(node(ID, Package), X) :-
activate_requirement(node(ID, Package), X),
requirement_group(Package, X).
+% When we have a required provider, we need to ensure that the provider/2 facts respect
+% the requirement. This is particularly important for packages that could provide multiple
+% virtuals independently
+required_provider(Provider, Virtual)
+ :- requirement_group_member(ConditionID, Virtual, RequirementID),
+ condition_holds(ConditionID, _),
+ virtual(Virtual),
+ pkg_fact(Virtual, condition_effect(ConditionID, EffectID)),
+ imposed_constraint(EffectID, "node", Provider).
+
+:- provider(node(Y, Package), node(X, Virtual)), required_provider(Provider, Virtual), Package != Provider.
+
% TODO: the following two choice rules allow the solver to add compiler
% flags if their only source is from a requirement. This is overly-specific
% and should use a more-generic approach like in https://github.com/spack/spack/pull/37180
diff --git a/lib/spack/spack/solver/counter.py b/lib/spack/spack/solver/counter.py
index 28883817dfe564..632740da05091e 100644
--- a/lib/spack/spack/solver/counter.py
+++ b/lib/spack/spack/solver/counter.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/solver/display.lp b/lib/spack/spack/solver/display.lp
index 58d04d42ea3002..358a1628aadd73 100644
--- a/lib/spack/spack/solver/display.lp
+++ b/lib/spack/spack/solver/display.lp
@@ -1,4 +1,4 @@
-% Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+% Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
% Spack Project Developers. See the top-level COPYRIGHT file for details.
%
% SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/solver/error_messages.lp b/lib/spack/spack/solver/error_messages.lp
index 7eb383860d8c75..79a9b4b7eb8aaa 100644
--- a/lib/spack/spack/solver/error_messages.lp
+++ b/lib/spack/spack/solver/error_messages.lp
@@ -1,4 +1,4 @@
-% Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+% Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
% Spack Project Developers. See the top-level COPYRIGHT file for details.
%
% SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/solver/heuristic.lp b/lib/spack/spack/solver/heuristic.lp
index cc87207047d438..71ed64b3f88690 100644
--- a/lib/spack/spack/solver/heuristic.lp
+++ b/lib/spack/spack/solver/heuristic.lp
@@ -1,4 +1,4 @@
-% Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+% Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
% Spack Project Developers. See the top-level COPYRIGHT file for details.
%
% SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/solver/heuristic_separate.lp b/lib/spack/spack/solver/heuristic_separate.lp
index caa47aa09d84d1..2b499d07984568 100644
--- a/lib/spack/spack/solver/heuristic_separate.lp
+++ b/lib/spack/spack/solver/heuristic_separate.lp
@@ -1,4 +1,4 @@
-% Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+% Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
% Spack Project Developers. See the top-level COPYRIGHT file for details.
%
% SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/solver/os_compatibility.lp b/lib/spack/spack/solver/os_compatibility.lp
index 3c0c223a868f84..2ed8a15388ecc8 100644
--- a/lib/spack/spack/solver/os_compatibility.lp
+++ b/lib/spack/spack/solver/os_compatibility.lp
@@ -1,4 +1,4 @@
-% Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+% Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
% Spack Project Developers. See the top-level COPYRIGHT file for details.
%
% SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/solver/when_possible.lp b/lib/spack/spack/solver/when_possible.lp
index b887c9175f7df6..bab0852b276734 100644
--- a/lib/spack/spack/solver/when_possible.lp
+++ b/lib/spack/spack/solver/when_possible.lp
@@ -1,4 +1,4 @@
-% Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+% Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
% Spack Project Developers. See the top-level COPYRIGHT file for details.
%
% SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index 8c15a873afc728..eb6c81a9ae36ff 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -923,19 +923,23 @@ def flags():
yield flags
def __str__(self):
- sorted_keys = [k for k in sorted(self.keys()) if self[k] != []]
- cond_symbol = " " if len(sorted_keys) > 0 else ""
- return (
- cond_symbol
- + " ".join(
- key
- + ('=="' if True in [f.propagate for f in self[key]] else '="')
- + " ".join(self[key])
- + '"'
- for key in sorted_keys
- )
- + cond_symbol
- )
+ sorted_items = sorted((k, v) for k, v in self.items() if v)
+
+ result = ""
+ for flag_type, flags in sorted_items:
+ normal = [f for f in flags if not f.propagate]
+ if normal:
+ result += f" {flag_type}={spack.parser.quote_if_needed(' '.join(normal))}"
+
+ propagated = [f for f in flags if f.propagate]
+ if propagated:
+ result += f" {flag_type}=={spack.parser.quote_if_needed(' '.join(propagated))}"
+
+ # TODO: somehow add this space only if something follows in Spec.format()
+ if sorted_items:
+ result += " "
+
+ return result
def _sort_by_dep_types(dspec: DependencySpec):
@@ -1497,7 +1501,9 @@ def edge_attributes(self) -> str:
result = f"{deptypes_str} {virtuals_str}".strip()
return f"[{result}]"
- def dependencies(self, name=None, deptype: Union[dt.DepTypes, dt.DepFlag] = dt.ALL):
+ def dependencies(
+ self, name=None, deptype: Union[dt.DepTypes, dt.DepFlag] = dt.ALL
+ ) -> List["Spec"]:
"""Return a list of direct dependencies (nodes in the DAG).
Args:
@@ -1508,7 +1514,9 @@ def dependencies(self, name=None, deptype: Union[dt.DepTypes, dt.DepFlag] = dt.A
deptype = dt.canonicalize(deptype)
return [d.spec for d in self.edges_to_dependencies(name, depflag=deptype)]
- def dependents(self, name=None, deptype: Union[dt.DepTypes, dt.DepFlag] = dt.ALL):
+ def dependents(
+ self, name=None, deptype: Union[dt.DepTypes, dt.DepFlag] = dt.ALL
+ ) -> List["Spec"]:
"""Return a list of direct dependents (nodes in the DAG).
Args:
@@ -1632,23 +1640,23 @@ def _add_dependency(self, spec: "Spec", *, depflag: dt.DepFlag, virtuals: Tuple[
self.add_dependency_edge(spec, depflag=depflag, virtuals=virtuals)
return
- # Keep the intersection of constraints when a dependency is added
- # multiple times. Currently, we only allow identical edge types.
+ # Keep the intersection of constraints when a dependency is added multiple times.
+ # The only restriction, currently, is keeping the same dependency type
orig = self._dependencies[spec.name]
try:
dspec = next(dspec for dspec in orig if depflag == dspec.depflag)
except StopIteration:
- current_deps = ", ".join(
- dt.flag_to_chars(x.depflag) + " " + x.spec.short_spec for x in orig
- )
+ edge_attrs = f"deptypes={dt.flag_to_chars(depflag).strip()}"
+ required_dep_str = f"^[{edge_attrs}] {str(spec)}"
+
raise DuplicateDependencyError(
- f"{self.short_spec} cannot depend on '{spec.short_spec}' multiple times.\n"
- f"\tRequired: {dt.flag_to_chars(depflag)}\n"
- f"\tDependency: {current_deps}"
+ f"{spec.name} is a duplicate dependency, with conflicting dependency types\n"
+ f"\t'{str(self)}' cannot depend on '{required_dep_str}'"
)
try:
dspec.spec.constrain(spec)
+ dspec.update_virtuals(virtuals=virtuals)
except spack.error.UnsatisfiableSpecError:
raise DuplicateDependencyError(
f"Cannot depend on incompatible specs '{dspec.spec}' and '{spec}'"
@@ -2764,14 +2772,16 @@ def _old_concretize(self, tests=False, deprecation_warning=True):
if self._concrete:
return
+ # take the spec apart once before starting the main concretization loop and resolving
+ # deps, but don't break dependencies during concretization as the spec is built.
+ user_spec_deps = self.flat_dependencies(disconnect=True)
+
changed = True
force = False
-
- user_spec_deps = self.flat_dependencies(copy=False)
concretizer = spack.concretize.Concretizer(self.copy())
while changed:
changes = (
- self.normalize(force, tests=tests, user_spec_deps=user_spec_deps),
+ self.normalize(force, tests, user_spec_deps, disconnect=False),
self._expand_virtual_packages(concretizer),
self._concretize_helper(concretizer),
)
@@ -2782,7 +2792,7 @@ def _old_concretize(self, tests=False, deprecation_warning=True):
for dep in self.traverse():
visited_user_specs.add(dep.name)
pkg_cls = spack.repo.PATH.get_pkg_class(dep.name)
- visited_user_specs.update(x.name for x in pkg_cls(dep).provided)
+ visited_user_specs.update(pkg_cls(dep).provided_virtual_names())
extra = set(user_spec_deps.keys()).difference(visited_user_specs)
if extra:
@@ -2817,10 +2827,11 @@ def _old_concretize(self, tests=False, deprecation_warning=True):
# external specs are already built, don't worry about whether
# it's possible to build that configuration with Spack
continue
- for conflict_spec, when_list in x.package_class.conflicts.items():
- if x.satisfies(conflict_spec):
- for when_spec, msg in when_list:
- if x.satisfies(when_spec):
+
+ for when_spec, conflict_list in x.package_class.conflicts.items():
+ if x.satisfies(when_spec):
+ for conflict_spec, msg in conflict_list:
+ if x.satisfies(conflict_spec):
when = when_spec.copy()
when.name = x.name
matches.append((x, conflict_spec, when, msg))
@@ -2870,13 +2881,14 @@ def inject_patches_variant(root):
continue
# Add any patches from the package to the spec.
- patches = []
+ patches = set()
for cond, patch_list in s.package_class.patches.items():
if s.satisfies(cond):
for patch in patch_list:
- patches.append(patch)
+ patches.add(patch)
if patches:
spec_to_patches[id(s)] = patches
+
# Also record all patches required on dependencies by
# depends_on(..., patch=...)
for dspec in root.traverse_edges(deptype=all, cover="edges", root=False):
@@ -2884,17 +2896,25 @@ def inject_patches_variant(root):
continue
pkg_deps = dspec.parent.package_class.dependencies
- if dspec.spec.name not in pkg_deps:
- continue
patches = []
- for cond, dependency in pkg_deps[dspec.spec.name].items():
+ for cond, deps_by_name in pkg_deps.items():
+ if not dspec.parent.satisfies(cond):
+ continue
+
+ dependency = deps_by_name.get(dspec.spec.name)
+ if not dependency:
+ continue
+
for pcond, patch_list in dependency.patches.items():
- if dspec.parent.satisfies(cond) and dspec.spec.satisfies(pcond):
+ if dspec.spec.satisfies(pcond):
patches.extend(patch_list)
+
if patches:
- all_patches = spec_to_patches.setdefault(id(dspec.spec), [])
- all_patches.extend(patches)
+ all_patches = spec_to_patches.setdefault(id(dspec.spec), set())
+ for patch in patches:
+ all_patches.add(patch)
+
for spec in root.traverse():
if id(spec) not in spec_to_patches:
continue
@@ -3104,47 +3124,33 @@ def concretized(self, tests=False):
clone.concretize(tests=tests)
return clone
- def flat_dependencies(self, **kwargs):
- """Return a DependencyMap containing all of this spec's
- dependencies with their constraints merged.
-
- If copy is True, returns merged copies of its dependencies
- without modifying the spec it's called on.
+ def flat_dependencies(self, disconnect: bool = False):
+ """Build DependencyMap of all of this spec's dependencies with their constraints merged.
- If copy is False, clears this spec's dependencies and
- returns them. This disconnects all dependency links including
- transitive dependencies, except for concrete specs: if a spec
- is concrete it will not be disconnected from its dependencies
- (although a non-concrete spec with concrete dependencies will
- be disconnected from those dependencies).
+ Arguments:
+ disconnect: if True, disconnect all dependents and dependencies among nodes in this
+ spec's DAG.
"""
- copy = kwargs.get("copy", True)
-
flat_deps = {}
- try:
- deptree = self.traverse(root=False)
- for spec in deptree:
- if spec.name not in flat_deps:
- if copy:
- spec = spec.copy(deps=False)
- flat_deps[spec.name] = spec
- else:
- flat_deps[spec.name].constrain(spec)
+ deptree = self.traverse(root=False)
- if not copy:
- for spec in flat_deps.values():
- if not spec.concrete:
- spec.clear_edges()
- self.clear_dependencies()
+ for spec in deptree:
+ if spec.name not in flat_deps:
+ flat_deps[spec.name] = spec
+ else:
+ try:
+ flat_deps[spec.name].constrain(spec)
+ except spack.error.UnsatisfiableSpecError as e:
+ # DAG contains two instances of the same package with inconsistent constraints.
+ raise InconsistentSpecError("Invalid Spec DAG: %s" % e.message) from e
- return flat_deps
+ if disconnect:
+ for spec in flat_deps.values():
+ if not spec.concrete:
+ spec.clear_edges()
+ self.clear_dependencies()
- except spack.error.UnsatisfiableSpecError as e:
- # Here, the DAG contains two instances of the same package
- # with inconsistent constraints. Users cannot produce
- # inconsistent specs like this on the command line: the
- # parser doesn't allow it. Spack must be broken!
- raise InconsistentSpecError("Invalid Spec DAG: %s" % e.message) from e
+ return flat_deps
def index(self, deptype="all"):
"""Return a dictionary that points to all the dependencies in this
@@ -3171,15 +3177,19 @@ def _evaluate_dependency_conditions(self, name):
If no conditions are True (and we don't depend on it), return
``(None, None)``.
"""
- conditions = self.package_class.dependencies[name]
-
vt.substitute_abstract_variants(self)
# evaluate when specs to figure out constraints on the dependency.
dep = None
- for when_spec, dependency in conditions.items():
- if self.satisfies(when_spec):
+ for when_spec, deps_by_name in self.package_class.dependencies.items():
+ if not self.satisfies(when_spec):
+ continue
+
+ for dep_name, dependency in deps_by_name.items():
+ if dep_name != name:
+ continue
+
if dep is None:
- dep = dp.Dependency(self.name, Spec(name), depflag=0)
+ dep = dp.Dependency(Spec(self.name), Spec(name), depflag=0)
try:
dep.merge(dependency)
except spack.error.UnsatisfiableSpecError as e:
@@ -3352,7 +3362,7 @@ def _normalize_helper(self, visited, spec_deps, provider_index, tests):
while changed:
changed = False
- for dep_name in self.package_class.dependencies:
+ for dep_name in self.package_class.dependency_names():
# Do we depend on dep_name? If so pkg_dep is not None.
dep = self._evaluate_dependency_conditions(dep_name)
@@ -3375,7 +3385,7 @@ def _normalize_helper(self, visited, spec_deps, provider_index, tests):
return any_change
- def normalize(self, force=False, tests=False, user_spec_deps=None):
+ def normalize(self, force=False, tests=False, user_spec_deps=None, disconnect=True):
"""When specs are parsed, any dependencies specified are hanging off
the root, and ONLY the ones that were explicitly provided are there.
Normalization turns a partial flat spec into a DAG, where:
@@ -3412,7 +3422,7 @@ def normalize(self, force=False, tests=False, user_spec_deps=None):
# user-specified dependencies are recorded separately in case they
# refer to specs which take several normalization passes to
# materialize.
- all_spec_deps = self.flat_dependencies(copy=False)
+ all_spec_deps = self.flat_dependencies(disconnect=disconnect)
if user_spec_deps:
for name, spec in user_spec_deps.items():
@@ -3437,6 +3447,14 @@ def normalize(self, force=False, tests=False, user_spec_deps=None):
any_change = self._normalize_helper(visited, all_spec_deps, provider_index, tests)
+ # remove any leftover dependents outside the spec from, e.g., pruning externals
+ valid = {id(spec) for spec in all_spec_deps.values()} | {id(self)}
+ for spec in all_spec_deps.values():
+ remove = [dep for dep in spec.dependents() if id(dep) not in valid]
+ for dep in remove:
+ del spec._dependents.edges[dep.name]
+ del dep._dependencies.edges[spec.name]
+
# Mark the spec as normal once done.
self._normal = True
return any_change
@@ -3760,11 +3778,9 @@ def intersects(self, other: Union[str, "Spec"], deps: bool = True) -> bool:
return False
if pkg.provides(virtual_spec.name):
- for provided, when_specs in pkg.provided.items():
- if any(
- non_virtual_spec.intersects(when, deps=False) for when in when_specs
- ):
- if provided.intersects(virtual_spec):
+ for when_spec, provided in pkg.provided.items():
+ if non_virtual_spec.intersects(when_spec, deps=False):
+ if any(vpkg.intersects(virtual_spec) for vpkg in provided):
return True
return False
@@ -3867,9 +3883,9 @@ def satisfies(self, other: Union[str, "Spec"], deps: bool = True) -> bool:
return False
if pkg.provides(other.name):
- for provided, when_specs in pkg.provided.items():
- if any(self.satisfies(when, deps=False) for when in when_specs):
- if provided.intersects(other):
+ for when_spec, provided in pkg.provided.items():
+ if self.satisfies(when_spec, deps=False):
+ if any(vpkg.intersects(other) for vpkg in provided):
return True
return False
@@ -4740,6 +4756,20 @@ def build_spec(self):
def build_spec(self, value):
self._build_spec = value
+ def trim(self, dep_name):
+ """
+ Remove any package that is or provides `dep_name` transitively
+ from this tree. This can also remove other dependencies if
+ they are only present because of `dep_name`.
+ """
+ for spec in list(self.traverse()):
+ new_dependencies = _EdgeMap() # A new _EdgeMap
+ for pkg_name, edge_list in spec._dependencies.items():
+ for edge in edge_list:
+ if (dep_name not in edge.virtuals) and (not dep_name == edge.spec.name):
+ new_dependencies.add(edge)
+ spec._dependencies = new_dependencies
+
def splice(self, other, transitive):
"""Splices dependency "other" into this ("target") Spec, and return the
result as a concrete Spec.
diff --git a/lib/spack/spack/spec_list.py b/lib/spack/spack/spec_list.py
index 6bb1ba8d047e9a..9779d40fe4b0e2 100644
--- a/lib/spack/spack/spec_list.py
+++ b/lib/spack/spack/spec_list.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -107,6 +107,20 @@ def remove(self, spec):
self._constraints = None
self._specs = None
+ def replace(self, idx: int, spec: str):
+ """Replace the existing spec at the index with the new one.
+
+ Args:
+ idx: index of the spec to replace in the speclist
+ spec: new spec
+ """
+ self.yaml_list[idx] = spec
+
+ # invalidate cache variables when we change the list
+ self._expanded_list = None
+ self._constraints = None
+ self._specs = None
+
def extend(self, other, copy_reference=True):
self.yaml_list.extend(other.yaml_list)
self._expanded_list = None
@@ -148,6 +162,7 @@ def _expand_references(self, yaml):
if isinstance(item, str) and item.startswith("$"):
# replace the reference and apply the sigil if needed
name, sigil = self._parse_reference(item)
+
referent = [
_sigilify(item, sigil) for item in self._reference[name].specs_as_yaml_list
]
diff --git a/lib/spack/spack/stage.py b/lib/spack/spack/stage.py
index 7418b5a44ee694..88ad0549cc8c11 100644
--- a/lib/spack/spack/stage.py
+++ b/lib/spack/spack/stage.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -1066,14 +1066,14 @@ def interactive_version_filter(
def get_checksums_for_versions(
- url_by_version: Dict[str, str],
+ url_by_version: Dict[StandardVersion, str],
package_name: str,
*,
first_stage_function: Optional[Callable[[Stage, str], None]] = None,
keep_stage: bool = False,
concurrency: Optional[int] = None,
fetch_options: Optional[Dict[str, str]] = None,
-) -> Dict[str, str]:
+) -> Dict[StandardVersion, str]:
"""Computes the checksums for each version passed in input, and returns the results.
Archives are fetched according to the usl dictionary passed as input.
diff --git a/lib/spack/spack/store.py b/lib/spack/spack/store.py
index 709074dea344eb..dc2d5de54b4372 100644
--- a/lib/spack/spack/store.py
+++ b/lib/spack/spack/store.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/subprocess_context.py b/lib/spack/spack/subprocess_context.py
index f0e004e4726e6b..c90dcf84090096 100644
--- a/lib/spack/spack/subprocess_context.py
+++ b/lib/spack/spack/subprocess_context.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/tag.py b/lib/spack/spack/tag.py
index 1b32f617c70ff5..559af56f0c8f21 100644
--- a/lib/spack/spack/tag.py
+++ b/lib/spack/spack/tag.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/target.py b/lib/spack/spack/target.py
index 22792c8c5510d5..4ce8866ac76d44 100644
--- a/lib/spack/spack/target.py
+++ b/lib/spack/spack/target.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/tengine.py b/lib/spack/spack/tengine.py
index 6f2e3fb69902f8..c30adbe639c6cc 100644
--- a/lib/spack/spack/tengine.py
+++ b/lib/spack/spack/tengine.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/__init__.py b/lib/spack/spack/test/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/spack/test/__init__.py
+++ b/lib/spack/spack/test/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/abi.py b/lib/spack/spack/test/abi.py
index 0a2cec644308cb..757b8b6861d8dc 100644
--- a/lib/spack/spack/test/abi.py
+++ b/lib/spack/spack/test/abi.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/architecture.py b/lib/spack/spack/test/architecture.py
index 7bea7a1d86a47f..f01e43ec906f2c 100644
--- a/lib/spack/spack/test/architecture.py
+++ b/lib/spack/spack/test/architecture.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -30,6 +30,8 @@ def current_host_platform():
current_platform = spack.platforms.Darwin()
elif "Windows" in platform.system():
current_platform = spack.platforms.Windows()
+ elif "FreeBSD" in platform.system():
+ current_platform = spack.platforms.FreeBSD()
return current_platform
diff --git a/lib/spack/spack/test/audit.py b/lib/spack/spack/test/audit.py
index a3d4bb8e3fbaf1..98e6ad83c85555 100644
--- a/lib/spack/spack/test/audit.py
+++ b/lib/spack/spack/test/audit.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/bindist.py b/lib/spack/spack/test/bindist.py
index ea9caf7fc031ee..0f8b0d58ce2f3b 100644
--- a/lib/spack/spack/test/bindist.py
+++ b/lib/spack/spack/test/bindist.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,7 +14,7 @@
import urllib.error
import urllib.request
import urllib.response
-from pathlib import PurePath
+from pathlib import Path, PurePath
import py
import pytest
@@ -201,6 +201,9 @@ def dummy_prefix(tmpdir):
with open(data, "w") as f:
f.write("hello world")
+ with open(p.join(".spack", "binary_distribution"), "w") as f:
+ f.write("{}")
+
os.symlink("app", relative_app_link)
os.symlink(app, absolute_app_link)
@@ -887,24 +890,29 @@ def urlopen(request: urllib.request.Request):
fetcher.conditional_fetch()
-def test_tarball_doesnt_include_buildinfo_twice(tmpdir):
+def _all_parents(prefix):
+ parts = [p for p in prefix.split("/")]
+ return ["/".join(parts[: i + 1]) for i in range(len(parts))]
+
+
+def test_tarball_doesnt_include_buildinfo_twice(tmp_path: Path):
"""When tarballing a package that was installed from a buildcache, make
sure that the buildinfo file is not included twice in the tarball."""
- p = tmpdir.mkdir("prefix")
- p.mkdir(".spack")
+ p = tmp_path / "prefix"
+ p.joinpath(".spack").mkdir(parents=True)
# Create a binary_distribution file in the .spack folder
- with open(p.join(".spack", "binary_distribution"), "w") as f:
+ with open(p / ".spack" / "binary_distribution", "w") as f:
f.write(syaml.dump({"metadata", "old"}))
# Now create a tarball, which should include a new binary_distribution file
- tarball = str(tmpdir.join("prefix.tar.gz"))
+ tarball = str(tmp_path / "prefix.tar.gz")
bindist._do_create_tarball(
- tarfile_path=tarball, binaries_dir=p.strpath, buildinfo={"metadata": "new"}
+ tarfile_path=tarball, binaries_dir=str(p), buildinfo={"metadata": "new"}
)
- expected_prefix = p.strpath.lstrip("/")
+ expected_prefix = str(p).lstrip("/")
# Verify we don't have a repeated binary_distribution file,
# and that the tarball contains the new one, not the old one.
@@ -913,21 +921,20 @@ def test_tarball_doesnt_include_buildinfo_twice(tmpdir):
"metadata": "new"
}
assert tar.getnames() == [
- f"{expected_prefix}",
+ *_all_parents(expected_prefix),
f"{expected_prefix}/.spack",
f"{expected_prefix}/.spack/binary_distribution",
]
-def test_reproducible_tarball_is_reproducible(tmpdir):
- p = tmpdir.mkdir("prefix")
- p.mkdir("bin")
- p.mkdir(".spack")
-
- app = p.join("bin", "app")
+def test_reproducible_tarball_is_reproducible(tmp_path: Path):
+ p = tmp_path / "prefix"
+ p.joinpath("bin").mkdir(parents=True)
+ p.joinpath(".spack").mkdir(parents=True)
+ app = p / "bin" / "app"
- tarball_1 = str(tmpdir.join("prefix-1.tar.gz"))
- tarball_2 = str(tmpdir.join("prefix-2.tar.gz"))
+ tarball_1 = str(tmp_path / "prefix-1.tar.gz")
+ tarball_2 = str(tmp_path / "prefix-2.tar.gz")
with open(app, "w") as f:
f.write("hello world")
@@ -936,16 +943,16 @@ def test_reproducible_tarball_is_reproducible(tmpdir):
# Create a tarball with a certain mtime of bin/app
os.utime(app, times=(0, 0))
- bindist._do_create_tarball(tarball_1, binaries_dir=p.strpath, buildinfo=buildinfo)
+ bindist._do_create_tarball(tarball_1, binaries_dir=str(p), buildinfo=buildinfo)
# Do it another time with different mtime of bin/app
os.utime(app, times=(10, 10))
- bindist._do_create_tarball(tarball_2, binaries_dir=p.strpath, buildinfo=buildinfo)
+ bindist._do_create_tarball(tarball_2, binaries_dir=str(p), buildinfo=buildinfo)
# They should be bitwise identical:
assert filecmp.cmp(tarball_1, tarball_2, shallow=False)
- expected_prefix = p.strpath.lstrip("/")
+ expected_prefix = str(p).lstrip("/")
# Sanity check for contents:
with tarfile.open(tarball_1, mode="r") as f:
@@ -954,7 +961,7 @@ def test_reproducible_tarball_is_reproducible(tmpdir):
assert m.uname == m.gname == ""
assert set(f.getnames()) == {
- f"{expected_prefix}",
+ *_all_parents(expected_prefix),
f"{expected_prefix}/bin",
f"{expected_prefix}/bin/app",
f"{expected_prefix}/.spack",
@@ -1002,8 +1009,10 @@ def test_tarball_normalized_permissions(tmpdir):
def test_tarball_common_prefix(dummy_prefix, tmpdir):
- """Tests whether Spack can figure out the package directory
- from the tarball contents, and strip them when extracting."""
+ """Tests whether Spack can figure out the package directory from the tarball contents, and
+ strip them when extracting. This test creates a CURRENT_BUILD_CACHE_LAYOUT_VERSION=1 type
+ tarball where the parent directories of the package prefix are missing. Spack should be able
+ to figure out the common prefix and extract the files into the correct location."""
# When creating a tarball, Python (and tar) use relative paths,
# Absolute paths become relative to `/`, so drop the leading `/`.
@@ -1020,11 +1029,10 @@ def test_tarball_common_prefix(dummy_prefix, tmpdir):
common_prefix = bindist._ensure_common_prefix(tar)
assert common_prefix == expected_prefix
- # Strip the prefix from the tar entries
- bindist._tar_strip_component(tar, common_prefix)
-
# Extract into prefix2
- tar.extractall(path="prefix2")
+ tar.extractall(
+ path="prefix2", members=bindist._tar_strip_component(tar, common_prefix)
+ )
# Verify files are all there at the correct level.
assert set(os.listdir("prefix2")) == {"bin", "share", ".spack"}
@@ -1044,13 +1052,30 @@ def test_tarball_common_prefix(dummy_prefix, tmpdir):
)
+def test_tarfile_missing_binary_distribution_file(tmpdir):
+ """A tarfile that does not contain a .spack/binary_distribution file cannot be
+ used to install."""
+ with tmpdir.as_cwd():
+ # An empty .spack dir.
+ with tarfile.open("empty.tar", mode="w") as tar:
+ tarinfo = tarfile.TarInfo(name="example/.spack")
+ tarinfo.type = tarfile.DIRTYPE
+ tar.addfile(tarinfo)
+
+ with pytest.raises(ValueError, match="missing binary_distribution file"):
+ bindist._ensure_common_prefix(tarfile.open("empty.tar", mode="r"))
+
+
def test_tarfile_without_common_directory_prefix_fails(tmpdir):
"""A tarfile that only contains files without a common package directory
should fail to extract, as we won't know where to put the files."""
with tmpdir.as_cwd():
# Create a broken tarball with just a file, no directories.
with tarfile.open("empty.tar", mode="w") as tar:
- tar.addfile(tarfile.TarInfo(name="example/file"), fileobj=io.BytesIO(b"hello"))
+ tar.addfile(
+ tarfile.TarInfo(name="example/.spack/binary_distribution"),
+ fileobj=io.BytesIO(b"hello"),
+ )
with pytest.raises(ValueError, match="Tarball does not contain a common prefix"):
bindist._ensure_common_prefix(tarfile.open("empty.tar", mode="r"))
@@ -1091,7 +1116,7 @@ def test_tarfile_of_spec_prefix(tmpdir):
# Verify that entries are added in depth-first pre-order, files preceding dirs,
# entries ordered alphabetically
assert tar.getnames() == [
- f"{expected_prefix}",
+ *_all_parents(expected_prefix),
f"{expected_prefix}/file",
f"{expected_prefix}/hardlink",
f"{expected_prefix}/symlink",
diff --git a/lib/spack/spack/test/bootstrap.py b/lib/spack/spack/test/bootstrap.py
index dcc8bf6495e6bd..5f11e2d381e639 100644
--- a/lib/spack/spack/test/bootstrap.py
+++ b/lib/spack/spack/test/bootstrap.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/build_distribution.py b/lib/spack/spack/test/build_distribution.py
index 2f68ba9caeba98..6ab68659e613b0 100644
--- a/lib/spack/spack/test/build_distribution.py
+++ b/lib/spack/spack/test/build_distribution.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/build_environment.py b/lib/spack/spack/test/build_environment.py
index cbccbc429eac6f..1f2d9e904fd890 100644
--- a/lib/spack/spack/test/build_environment.py
+++ b/lib/spack/spack/test/build_environment.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -285,6 +285,24 @@ def platform_pathsep(pathlist):
assert name not in os.environ
+def test_external_config_env(mock_packages, mutable_config, working_env):
+ cmake_config = {
+ "externals": [
+ {
+ "spec": "cmake@1.0",
+ "prefix": "/fake/path",
+ "extra_attributes": {"environment": {"set": {"TEST_ENV_VAR_SET": "yes it's set"}}},
+ }
+ ]
+ }
+ spack.config.set("packages:cmake", cmake_config)
+
+ cmake_client = spack.spec.Spec("cmake-client").concretized()
+ spack.build_environment.setup_package(cmake_client.package, False)
+
+ assert os.environ["TEST_ENV_VAR_SET"] == "yes it's set"
+
+
@pytest.mark.regression("9107")
def test_spack_paths_before_module_paths(config, mock_packages, monkeypatch, working_env):
s = spack.spec.Spec("cmake")
@@ -439,10 +457,10 @@ def test_parallel_false_is_not_propagating(default_mock_concretization):
# b (parallel =True)
s = default_mock_concretization("a foobar=bar")
- spack.build_environment.set_package_py_globals(s.package)
+ spack.build_environment.set_package_py_globals(s.package, context=Context.BUILD)
assert s["a"].package.module.make_jobs == 1
- spack.build_environment.set_package_py_globals(s["b"].package)
+ spack.build_environment.set_package_py_globals(s["b"].package, context=Context.BUILD)
assert s["b"].package.module.make_jobs == spack.build_environment.determine_number_of_jobs(
parallel=s["b"].package.parallel
)
@@ -667,3 +685,33 @@ def test_clear_compiler_related_runtime_variables_of_build_deps(default_mock_con
assert "FC" not in result
assert "F77" not in result
assert result["ANOTHER_VAR"] == "this-should-be-present"
+
+
+@pytest.mark.parametrize("context", [Context.BUILD, Context.RUN])
+def test_build_system_globals_only_set_on_root_during_build(default_mock_concretization, context):
+ """Test whether when setting up a build environment, the build related globals are set only
+ in the top level spec.
+
+ TODO: Since module instances are globals themselves, and Spack defines properties on them, they
+ persist across tests. In principle this is not terrible, cause the variables are mostly static.
+ But obviously it can lead to very hard to find bugs... We should get rid of those globals and
+ define them instead as a property on the package instance.
+ """
+ root = spack.spec.Spec("mpileaks").concretized()
+ build_variables = ("std_cmake_args", "std_meson_args", "std_pip_args")
+
+ # See todo above, we clear out any properties that may have been set by the previous test.
+ # Commenting this loop will make the test fail. I'm leaving it here as a reminder that those
+ # globals were always a bad idea, and we should pass them to the package instance.
+ for spec in root.traverse():
+ for variable in build_variables:
+ spec.package.module.__dict__.pop(variable, None)
+
+ spack.build_environment.SetupContext(root, context=context).set_all_package_py_globals()
+
+ # Excpect the globals to be set at the root in a build context only.
+ should_be_set = lambda depth: context == Context.BUILD and depth == 0
+
+ for depth, spec in root.traverse(depth=True, root=True):
+ for variable in build_variables:
+ assert hasattr(spec.package.module, variable) == should_be_set(depth)
diff --git a/lib/spack/spack/test/build_system_guess.py b/lib/spack/spack/test/build_system_guess.py
index bc1ad6aa1ab313..97e357b8ebe1c6 100644
--- a/lib/spack/spack/test/build_system_guess.py
+++ b/lib/spack/spack/test/build_system_guess.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/build_systems.py b/lib/spack/spack/test/build_systems.py
index ccb7a08f6cc29c..a77dfb090773ca 100644
--- a/lib/spack/spack/test/build_systems.py
+++ b/lib/spack/spack/test/build_systems.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/builder.py b/lib/spack/spack/test/builder.py
index 9be5b1ecbb338d..9a99e6ee08cf4e 100644
--- a/lib/spack/spack/test/builder.py
+++ b/lib/spack/spack/test/builder.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/buildrequest.py b/lib/spack/spack/test/buildrequest.py
index 6a022e4fb53e4e..e5bf9d3d6ee7e1 100644
--- a/lib/spack/spack/test/buildrequest.py
+++ b/lib/spack/spack/test/buildrequest.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/buildtask.py b/lib/spack/spack/test/buildtask.py
index 6e25c3d6accefa..a571e1dccd1c6a 100644
--- a/lib/spack/spack/test/buildtask.py
+++ b/lib/spack/spack/test/buildtask.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cache_fetch.py b/lib/spack/spack/test/cache_fetch.py
index f4bf0ba62ded23..12273530df24ed 100644
--- a/lib/spack/spack/test/cache_fetch.py
+++ b/lib/spack/spack/test/cache_fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cc.py b/lib/spack/spack/test/cc.py
index 6ba50004424e19..25aab774a7f183 100644
--- a/lib/spack/spack/test/cc.py
+++ b/lib/spack/spack/test/cc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/ci.py b/lib/spack/spack/test/ci.py
index 53ed8382520745..e01b970c2dabbd 100644
--- a/lib/spack/spack/test/ci.py
+++ b/lib/spack/spack/test/ci.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/__init__.py b/lib/spack/spack/test/cmd/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/spack/test/cmd/__init__.py
+++ b/lib/spack/spack/test/cmd/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/arch.py b/lib/spack/spack/test/cmd/arch.py
index 80f7195fd5d922..093d99fa44cd04 100644
--- a/lib/spack/spack/test/cmd/arch.py
+++ b/lib/spack/spack/test/cmd/arch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/audit.py b/lib/spack/spack/test/cmd/audit.py
index 493cf9ff366482..0a48c9fd228e69 100644
--- a/lib/spack/spack/test/cmd/audit.py
+++ b/lib/spack/spack/test/cmd/audit.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/blame.py b/lib/spack/spack/test/cmd/blame.py
index 05e475eed300d2..f9484e2dce0784 100644
--- a/lib/spack/spack/test/cmd/blame.py
+++ b/lib/spack/spack/test/cmd/blame.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/bootstrap.py b/lib/spack/spack/test/cmd/bootstrap.py
index 277a279222b8d7..7797aec31c7850 100644
--- a/lib/spack/spack/test/cmd/bootstrap.py
+++ b/lib/spack/spack/test/cmd/bootstrap.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/build_env.py b/lib/spack/spack/test/cmd/build_env.py
index 9a302a159c5f95..545981bd4afec6 100644
--- a/lib/spack/spack/test/cmd/build_env.py
+++ b/lib/spack/spack/test/cmd/build_env.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/buildcache.py b/lib/spack/spack/test/cmd/buildcache.py
index 55ec605913b3f4..06d0c1d751e6a3 100644
--- a/lib/spack/spack/test/cmd/buildcache.py
+++ b/lib/spack/spack/test/cmd/buildcache.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -331,3 +331,37 @@ def fake_push(node, push_url, options):
# Ensure no duplicates
assert len(set(packages_to_push)) == len(packages_to_push)
+
+
+@pytest.mark.parametrize("signed", [True, False])
+def test_push_and_install_with_mirror_marked_unsigned_does_not_require_extra_flags(
+ tmp_path, mutable_database, mock_gnupghome, signed
+):
+ """Tests whether marking a mirror as unsigned makes it possible to push and install to/from
+ it without requiring extra flags on the command line (and no signing keys configured)."""
+
+ # Create a named mirror with signed set to True or False
+ add_flag = "--signed" if signed else "--unsigned"
+ mirror("add", add_flag, "my-mirror", str(tmp_path))
+ spec = mutable_database.query_local("libelf", installed=True)[0]
+
+ # Push
+ if signed:
+ # Need to pass "--unsigned" to override the mirror's default
+ args = ["push", "--update-index", "--unsigned", "my-mirror", f"/{spec.dag_hash()}"]
+ else:
+ # No need to pass "--unsigned" if the mirror is unsigned
+ args = ["push", "--update-index", "my-mirror", f"/{spec.dag_hash()}"]
+
+ buildcache(*args)
+
+ # Install
+ if signed:
+ # Need to pass "--no-check-signature" to avoid install errors
+ kwargs = {"cache_only": True, "unsigned": True}
+ else:
+ # No need to pass "--no-check-signature" if the mirror is unsigned
+ kwargs = {"cache_only": True}
+
+ spec.package.do_uninstall(force=True)
+ spec.package.do_install(**kwargs)
diff --git a/lib/spack/spack/test/cmd/cd.py b/lib/spack/spack/test/cmd/cd.py
index 04351ee18cbb95..dcbf9bde1c825b 100644
--- a/lib/spack/spack/test/cmd/cd.py
+++ b/lib/spack/spack/test/cmd/cd.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/checksum.py b/lib/spack/spack/test/cmd/checksum.py
index 0dbaa88053070a..308940c268f948 100644
--- a/lib/spack/spack/test/cmd/checksum.py
+++ b/lib/spack/spack/test/cmd/checksum.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -8,16 +8,63 @@
import pytest
import spack.cmd.checksum
+import spack.package_base
import spack.parser
import spack.repo
import spack.spec
+import spack.stage
+import spack.util.web
from spack.main import SpackCommand
+from spack.package_base import ManualDownloadRequiredError
from spack.stage import interactive_version_filter
from spack.version import Version
spack_checksum = SpackCommand("checksum")
+@pytest.fixture
+def can_fetch_versions(monkeypatch):
+ """Fake successful version detection."""
+
+ def fetch_remote_versions(pkg, concurrency):
+ return {Version("1.0"): "https://www.example.com/pkg-1.0.tar.gz"}
+
+ def get_checksums_for_versions(url_by_version, package_name, **kwargs):
+ return {
+ v: "abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"
+ for v in url_by_version
+ }
+
+ def url_exists(url, curl=None):
+ return True
+
+ monkeypatch.setattr(
+ spack.package_base.PackageBase, "fetch_remote_versions", fetch_remote_versions
+ )
+ monkeypatch.setattr(spack.stage, "get_checksums_for_versions", get_checksums_for_versions)
+ monkeypatch.setattr(spack.util.web, "url_exists", url_exists)
+
+
+@pytest.fixture
+def cannot_fetch_versions(monkeypatch):
+ """Fake unsuccessful version detection."""
+
+ def fetch_remote_versions(pkg, concurrency):
+ return {}
+
+ def get_checksums_for_versions(url_by_version, package_name, **kwargs):
+ return {}
+
+ def url_exists(url, curl=None):
+ return False
+
+ monkeypatch.setattr(
+ spack.package_base.PackageBase, "fetch_remote_versions", fetch_remote_versions
+ )
+ monkeypatch.setattr(spack.stage, "get_checksums_for_versions", get_checksums_for_versions)
+ monkeypatch.setattr(spack.util.web, "url_exists", url_exists)
+
+
@pytest.mark.parametrize(
"arguments,expected",
[
@@ -48,7 +95,7 @@ def test_checksum_args(arguments, expected):
(["--verify", "zlib", "1.2.13"], "1.2.13 [-] No previous checksum"),
],
)
-def test_checksum(arguments, expected, mock_packages, mock_clone_repo, mock_stage):
+def test_checksum(arguments, expected, mock_packages, can_fetch_versions):
output = spack_checksum(*arguments)
assert expected in output
@@ -226,7 +273,7 @@ def test_checksum_interactive_unrecognized_command():
assert interactive_version_filter(v.copy(), input=input) == v
-def test_checksum_versions(mock_packages, mock_clone_repo, mock_fetch, mock_stage):
+def test_checksum_versions(mock_packages, can_fetch_versions):
pkg_cls = spack.repo.PATH.get_pkg_class("zlib")
versions = [str(v) for v in pkg_cls.versions]
output = spack_checksum("zlib", *versions)
@@ -237,7 +284,7 @@ def test_checksum_versions(mock_packages, mock_clone_repo, mock_fetch, mock_stag
assert "Added 0 new versions to" in output
-def test_checksum_missing_version(mock_packages, mock_clone_repo, mock_fetch, mock_stage):
+def test_checksum_missing_version(mock_packages, cannot_fetch_versions):
output = spack_checksum("preferred-test", "99.99.99", fail_on_error=False)
assert "Could not find any remote versions" in output
output = spack_checksum("--add-to-package", "preferred-test", "99.99.99", fail_on_error=False)
@@ -245,30 +292,50 @@ def test_checksum_missing_version(mock_packages, mock_clone_repo, mock_fetch, mo
assert "Added 1 new versions to" not in output
-def test_checksum_deprecated_version(mock_packages, mock_clone_repo, mock_fetch, mock_stage):
+def test_checksum_deprecated_version(mock_packages, can_fetch_versions):
output = spack_checksum("deprecated-versions", "1.1.0", fail_on_error=False)
assert "Version 1.1.0 is deprecated" in output
output = spack_checksum(
"--add-to-package", "deprecated-versions", "1.1.0", fail_on_error=False
)
assert "Version 1.1.0 is deprecated" in output
- assert "Added 0 new versions to" not in output
+ # TODO alecbcs: broken assertion.
+ # assert "Added 0 new versions to" not in output
-def test_checksum_url(mock_packages):
+def test_checksum_url(mock_packages, config):
pkg_cls = spack.repo.PATH.get_pkg_class("zlib")
with pytest.raises(spack.parser.SpecSyntaxError):
spack_checksum(f"{pkg_cls.url}")
-def test_checksum_verification_fails(install_mockery, capsys):
+def test_checksum_verification_fails(default_mock_concretization, capsys, can_fetch_versions):
spec = spack.spec.Spec("zlib").concretized()
pkg = spec.package
versions = list(pkg.versions.keys())
- version_hashes = {versions[0]: "abadhash", spack.version.Version("0.1"): "123456789"}
+ version_hashes = {versions[0]: "abadhash", Version("0.1"): "123456789"}
with pytest.raises(SystemExit):
spack.cmd.checksum.print_checksum_status(pkg, version_hashes)
out = str(capsys.readouterr())
assert out.count("Correct") == 0
assert "No previous checksum" in out
assert "Invalid checksum" in out
+
+
+def test_checksum_manual_download_fails(mock_packages, monkeypatch):
+ """Confirm that checksumming a manually downloadable package fails."""
+ name = "zlib"
+ pkg_cls = spack.repo.PATH.get_pkg_class(name)
+ versions = [str(v) for v in pkg_cls.versions]
+ monkeypatch.setattr(spack.package_base.PackageBase, "manual_download", True)
+
+ # First check that the exception is raised with the default download
+ # instructions.
+ with pytest.raises(ManualDownloadRequiredError, match=f"required for {name}"):
+ spack_checksum(name, *versions)
+
+ # Now check that the exception is raised with custom download instructions.
+ error = "Cannot calculate the checksum for a manually downloaded package."
+ monkeypatch.setattr(spack.package_base.PackageBase, "download_instr", error)
+ with pytest.raises(ManualDownloadRequiredError, match=error):
+ spack_checksum(name, *versions)
diff --git a/lib/spack/spack/test/cmd/ci.py b/lib/spack/spack/test/cmd/ci.py
index 2695b7381f612c..6fabd16cd53ac7 100644
--- a/lib/spack/spack/test/cmd/ci.py
+++ b/lib/spack/spack/test/cmd/ci.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/clean.py b/lib/spack/spack/test/cmd/clean.py
index f0cd58ee8434f2..43441c487c3af3 100644
--- a/lib/spack/spack/test/cmd/clean.py
+++ b/lib/spack/spack/test/cmd/clean.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/commands.py b/lib/spack/spack/test/cmd/commands.py
index 3288b092d4d3c0..68d28f5684352d 100644
--- a/lib/spack/spack/test/cmd/commands.py
+++ b/lib/spack/spack/test/cmd/commands.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/common/__init__.py b/lib/spack/spack/test/cmd/common/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/spack/test/cmd/common/__init__.py
+++ b/lib/spack/spack/test/cmd/common/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/common/arguments.py b/lib/spack/spack/test/cmd/common/arguments.py
index e889fe55d89e20..c1f75e99f3bdbd 100644
--- a/lib/spack/spack/test/cmd/common/arguments.py
+++ b/lib/spack/spack/test/cmd/common/arguments.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -50,8 +50,8 @@ def test_negative_integers_not_allowed_for_parallel_jobs(job_parser):
[
(['coreutils cflags="-O3 -g"'], ["-O3", "-g"], [False, False], []),
(['coreutils cflags=="-O3 -g"'], ["-O3", "-g"], [True, True], []),
- (["coreutils", "cflags=-O3 -g"], ["-O3"], [False], ["g"]),
- (["coreutils", "cflags==-O3 -g"], ["-O3"], [True], ["g"]),
+ (["coreutils", "cflags=-O3 -g"], ["-O3", "-g"], [False, False], []),
+ (["coreutils", "cflags==-O3 -g"], ["-O3", "-g"], [True, True], []),
(["coreutils", "cflags=-O3", "-g"], ["-O3"], [False], ["g"]),
],
)
diff --git a/lib/spack/spack/test/cmd/compiler.py b/lib/spack/spack/test/cmd/compiler.py
index 1cea72d3b25ad6..3a8c662a5e8aac 100644
--- a/lib/spack/spack/test/cmd/compiler.py
+++ b/lib/spack/spack/test/cmd/compiler.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/concretize.py b/lib/spack/spack/test/cmd/concretize.py
index 914f0fe6af9e8e..da3cec034d9d97 100644
--- a/lib/spack/spack/test/cmd/concretize.py
+++ b/lib/spack/spack/test/cmd/concretize.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/config.py b/lib/spack/spack/test/cmd/config.py
index 7247ce97531dcd..6bc19831a5f2b3 100644
--- a/lib/spack/spack/test/cmd/config.py
+++ b/lib/spack/spack/test/cmd/config.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -91,15 +91,10 @@ def test_config_edit(mutable_config, working_env):
def test_config_get_gets_spack_yaml(mutable_mock_env_path):
- config("get", fail_on_error=False)
- assert config.returncode == 1
-
with ev.create("test") as env:
assert "mpileaks" not in config("get")
-
env.add("mpileaks")
env.write()
-
assert "mpileaks" in config("get")
@@ -122,11 +117,6 @@ def test_config_edit_fails_correctly_with_no_env(mutable_mock_env_path):
assert "requires a section argument or an active environment" in output
-def test_config_get_fails_correctly_with_no_env(mutable_mock_env_path):
- output = config("get", fail_on_error=False)
- assert "requires a section argument or an active environment" in output
-
-
def test_config_list():
output = config("list")
assert "compilers" in output
@@ -470,7 +460,6 @@ def test_config_add_to_env(mutable_empty_config, mutable_mock_env_path):
expected = """ config:
dirty: true
-
"""
assert expected in output
@@ -497,29 +486,21 @@ def test_config_add_to_env_preserve_comments(mutable_empty_config, mutable_mock_
config("add", "config:dirty:true")
output = config("get")
- expected = manifest
- expected += """ config:
- dirty: true
-
-"""
- assert output == expected
+ assert "# comment" in output
+ assert "dirty: true" in output
def test_config_remove_from_env(mutable_empty_config, mutable_mock_env_path):
env("create", "test")
-
with ev.read("test"):
config("add", "config:dirty:true")
+ output = config("get")
+ assert "dirty: true" in output
with ev.read("test"):
config("rm", "config:dirty")
output = config("get")
-
- expected = ev.default_manifest_yaml()
- expected += """ config: {}
-
-"""
- assert output == expected
+ assert "dirty: true" not in output
def test_config_update_config(config_yaml_v015):
diff --git a/lib/spack/spack/test/cmd/create.py b/lib/spack/spack/test/cmd/create.py
index 089dc8b0c52440..9be5704b6779b5 100644
--- a/lib/spack/spack/test/cmd/create.py
+++ b/lib/spack/spack/test/cmd/create.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -27,7 +27,11 @@
[r"TestNamedPackage(Package)", r"def install(self"],
),
(["file://example.tar.gz"], "example", [r"Example(Package)", r"def install(self"]),
- (["-n", "test-license"], "test-license", [r'license("UNKNOWN")']),
+ (
+ ["-n", "test-license"],
+ "test-license",
+ [r'license("UNKNOWN", checked_by="github_user1")'],
+ ),
# Template-specific cases
(
["-t", "autoreconf", "/test-autoreconf"],
diff --git a/lib/spack/spack/test/cmd/debug.py b/lib/spack/spack/test/cmd/debug.py
index 92fe4a2d57888f..6a240a0ca7d6bc 100644
--- a/lib/spack/spack/test/cmd/debug.py
+++ b/lib/spack/spack/test/cmd/debug.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/deconcretize.py b/lib/spack/spack/test/cmd/deconcretize.py
index 30e39604bf4d4d..92553b7e535d57 100644
--- a/lib/spack/spack/test/cmd/deconcretize.py
+++ b/lib/spack/spack/test/cmd/deconcretize.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/dependencies.py b/lib/spack/spack/test/cmd/dependencies.py
index bc615c7a3a10d7..3bda72ce7a0a57 100644
--- a/lib/spack/spack/test/cmd/dependencies.py
+++ b/lib/spack/spack/test/cmd/dependencies.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/dependents.py b/lib/spack/spack/test/cmd/dependents.py
index 9d124c0a2c4ca2..0e2931860e2202 100644
--- a/lib/spack/spack/test/cmd/dependents.py
+++ b/lib/spack/spack/test/cmd/dependents.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/deprecate.py b/lib/spack/spack/test/cmd/deprecate.py
index 7584827e769c24..6669be57fe05af 100644
--- a/lib/spack/spack/test/cmd/deprecate.py
+++ b/lib/spack/spack/test/cmd/deprecate.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/dev_build.py b/lib/spack/spack/test/cmd/dev_build.py
index 85199eddd66da2..8649e174907521 100644
--- a/lib/spack/spack/test/cmd/dev_build.py
+++ b/lib/spack/spack/test/cmd/dev_build.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/develop.py b/lib/spack/spack/test/cmd/develop.py
index f80038c0edd97f..73741ddbe783a9 100644
--- a/lib/spack/spack/test/cmd/develop.py
+++ b/lib/spack/spack/test/cmd/develop.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,7 +19,7 @@
pytestmark = pytest.mark.not_on_windows("does not run on windows")
-@pytest.mark.usefixtures("mutable_mock_env_path", "mock_packages", "mock_fetch", "config")
+@pytest.mark.usefixtures("mutable_mock_env_path", "mock_packages", "mock_fetch", "mutable_config")
class TestDevelop:
def check_develop(self, env, spec, path=None):
path = path or spec.name
@@ -31,9 +31,9 @@ def check_develop(self, env, spec, path=None):
assert dev_specs_entry["spec"] == str(spec)
# check yaml representation
- yaml = env.manifest[ev.TOP_LEVEL_KEY]
- assert spec.name in yaml["develop"]
- yaml_entry = yaml["develop"][spec.name]
+ dev_config = spack.config.get("develop", {})
+ assert spec.name in dev_config
+ yaml_entry = dev_config[spec.name]
assert yaml_entry["spec"] == str(spec)
if path == spec.name:
# default paths aren't written out
@@ -102,7 +102,7 @@ def test_develop_update_spec(self):
self.check_develop(e, spack.spec.Spec("mpich@=2.0"))
assert len(e.dev_specs) == 1
- def test_develop_canonicalize_path(self, monkeypatch, config):
+ def test_develop_canonicalize_path(self, monkeypatch):
env("create", "test")
with ev.read("test") as e:
path = "../$user"
@@ -119,7 +119,7 @@ def check_path(stage, dest):
# Check modifications actually worked
assert spack.spec.Spec("mpich@1.0").concretized().satisfies("dev_path=%s" % abspath)
- def test_develop_canonicalize_path_no_args(self, monkeypatch, config):
+ def test_develop_canonicalize_path_no_args(self, monkeypatch):
env("create", "test")
with ev.read("test") as e:
path = "$user"
diff --git a/lib/spack/spack/test/cmd/diff.py b/lib/spack/spack/test/cmd/diff.py
index b90c61fbc8258a..179267425386fa 100644
--- a/lib/spack/spack/test/cmd/diff.py
+++ b/lib/spack/spack/test/cmd/diff.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -10,12 +10,150 @@
import spack.main
import spack.store
import spack.util.spack_json as sjson
+from spack.test.conftest import create_test_repo
install_cmd = spack.main.SpackCommand("install")
diff_cmd = spack.main.SpackCommand("diff")
find_cmd = spack.main.SpackCommand("find")
+_p1 = (
+ "p1",
+ """\
+class P1(Package):
+ version("1.0")
+
+ variant("p1var", default=True)
+ variant("usev1", default=True)
+
+ depends_on("p2")
+ depends_on("v1", when="+usev1")
+""",
+)
+
+
+_p2 = (
+ "p2",
+ """\
+class P2(Package):
+ version("1.0")
+
+ variant("p2var", default=True)
+
+ depends_on("p3")
+""",
+)
+
+
+_p3 = (
+ "p3",
+ """\
+class P3(Package):
+ version("1.0")
+
+ variant("p3var", default=True)
+""",
+)
+
+_i1 = (
+ "i1",
+ """\
+class I1(Package):
+ version("1.0")
+
+ provides("v1")
+
+ variant("i1var", default=True)
+
+ depends_on("p3")
+ depends_on("p4")
+""",
+)
+
+_i2 = (
+ "i2",
+ """\
+class I2(Package):
+ version("1.0")
+
+ provides("v1")
+
+ variant("i2var", default=True)
+
+ depends_on("p3")
+ depends_on("p4")
+""",
+)
+
+
+_p4 = (
+ "p4",
+ """\
+class P4(Package):
+ version("1.0")
+
+ variant("p4var", default=True)
+""",
+)
+
+
+# Note that the hash of p1 will differ depending on the variant chosen
+# we probably always want to omit that from diffs
+@pytest.fixture
+def _create_test_repo(tmpdir, mutable_config):
+ """
+ p1____
+ | \
+ p2 v1
+ | ____/ |
+ p3 p4
+
+ i1 and i2 provide v1 (and both have the same dependencies)
+
+ All packages have an associated variant
+ """
+ yield create_test_repo(tmpdir, [_p1, _p2, _p3, _i1, _i2, _p4])
+
+
+@pytest.fixture
+def test_repo(_create_test_repo, monkeypatch, mock_stage):
+ with spack.repo.use_repositories(_create_test_repo) as mock_repo_path:
+ yield mock_repo_path
+
+
+def test_diff_ignore(test_repo):
+ specA = spack.spec.Spec("p1+usev1").concretized()
+ specB = spack.spec.Spec("p1~usev1").concretized()
+
+ c1 = spack.cmd.diff.compare_specs(specA, specB, to_string=False)
+
+ def match(function, name, args):
+ limit = len(args)
+ return function.name == name and list(args[:limit]) == list(function.args[:limit])
+
+ def find(function_list, name, args):
+ return any(match(f, name, args) for f in function_list)
+
+ assert find(c1["a_not_b"], "node_os", ["p4"])
+
+ c2 = spack.cmd.diff.compare_specs(specA, specB, ignore_packages=["v1"], to_string=False)
+
+ assert not find(c2["a_not_b"], "node_os", ["p4"])
+ assert find(c2["intersect"], "node_os", ["p3"])
+
+ # Check ignoring changes on multiple packages
+
+ specA = spack.spec.Spec("p1+usev1 ^p3+p3var").concretized()
+ specA = spack.spec.Spec("p1~usev1 ^p3~p3var").concretized()
+
+ c3 = spack.cmd.diff.compare_specs(specA, specB, to_string=False)
+ assert find(c3["a_not_b"], "variant_value", ["p3", "p3var"])
+
+ c4 = spack.cmd.diff.compare_specs(specA, specB, ignore_packages=["v1", "p3"], to_string=False)
+ assert not find(c4["a_not_b"], "node_os", ["p4"])
+ assert not find(c4["a_not_b"], "variant_value", ["p3"])
+
+
def test_diff_cmd(install_mockery, mock_fetch, mock_archive, mock_packages):
"""Test that we can install two packages and diff them"""
diff --git a/lib/spack/spack/test/cmd/env.py b/lib/spack/spack/test/cmd/env.py
index 882e5f5356fc6f..c9137e6aea0bc6 100644
--- a/lib/spack/spack/test/cmd/env.py
+++ b/lib/spack/spack/test/cmd/env.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -48,11 +48,14 @@
install = SpackCommand("install")
add = SpackCommand("add")
change = SpackCommand("change")
+config = SpackCommand("config")
remove = SpackCommand("remove")
concretize = SpackCommand("concretize")
stage = SpackCommand("stage")
uninstall = SpackCommand("uninstall")
find = SpackCommand("find")
+develop = SpackCommand("develop")
+module = SpackCommand("module")
sep = os.sep
@@ -300,20 +303,6 @@ def test_activate_adds_transitive_run_deps_to_path(install_mockery, mock_fetch,
assert env_variables["DEPENDENCY_ENV_VAR"] == "1"
-def test_env_install_same_spec_twice(install_mockery, mock_fetch):
- env("create", "test")
-
- e = ev.read("test")
- with e:
- # The first installation outputs the package prefix, updates the view
- out = install("--add", "cmake-client")
- assert "Updating view at" in out
-
- # The second installation reports all packages already installed
- out = install("cmake-client")
- assert "already installed" in out
-
-
def test_env_definition_symlink(install_mockery, mock_fetch, tmpdir):
filepath = str(tmpdir.join("spack.yaml"))
filepath_mid = str(tmpdir.join("spack_mid.yaml"))
@@ -718,10 +707,10 @@ def test_env_with_config(environment_from_manifest):
assert any(x.intersects("mpileaks@2.2") for x in e._get_environment_specs())
-def test_with_config_bad_include(environment_from_manifest):
+def test_with_config_bad_include_create(environment_from_manifest):
"""Confirm missing include paths raise expected exception and error."""
with pytest.raises(spack.config.ConfigFileError, match="2 missing include path"):
- e = environment_from_manifest(
+ environment_from_manifest(
"""
spack:
include:
@@ -729,9 +718,42 @@ def test_with_config_bad_include(environment_from_manifest):
- no/such/file.yaml
"""
)
- with e:
- e.concretize()
+
+def test_with_config_bad_include_activate(environment_from_manifest, tmpdir):
+ env_root = pathlib.Path(tmpdir.ensure("env-root", dir=True))
+ include1 = env_root / "include1.yaml"
+ include1.touch()
+
+ abs_include_path = os.path.abspath(tmpdir.join("subdir").ensure("include2.yaml"))
+
+ spack_yaml = env_root / ev.manifest_name
+ spack_yaml.write_text(
+ f"""
+spack:
+ include:
+ - ./include1.yaml
+ - {abs_include_path}
+"""
+ )
+
+ e = ev.Environment(env_root)
+ with e:
+ e.concretize()
+
+ # we've created an environment with some included config files (which do
+ # in fact exist): now we remove them and check that we get a sensible
+ # error message
+
+ os.remove(abs_include_path)
+ os.remove(include1)
+ with pytest.raises(spack.config.ConfigFileError) as exc:
+ ev.activate(e)
+
+ err = exc.value.message
+ assert "missing include" in err
+ assert abs_include_path in err
+ assert "include1.yaml" in err
assert ev.active_environment() is None
@@ -834,6 +856,114 @@ def test_env_with_included_config_file(mutable_mock_env_path, packages_file):
assert any(x.satisfies("mpileaks@2.2") for x in e._get_environment_specs())
+def test_config_change_existing(mutable_mock_env_path, tmp_path, mock_packages, mutable_config):
+ """Test ``config change`` with config in the ``spack.yaml`` as well as an
+ included file scope.
+ """
+
+ included_file = "included-packages.yaml"
+ included_path = tmp_path / included_file
+ with open(included_path, "w") as f:
+ f.write(
+ """\
+packages:
+ mpich:
+ require:
+ - spec: "@3.0.2"
+ libelf:
+ require: "@0.8.10"
+ bowtie:
+ require:
+ - one_of: ["@1.3.0", "@1.2.0"]
+"""
+ )
+
+ spack_yaml = tmp_path / ev.manifest_name
+ spack_yaml.write_text(
+ f"""\
+spack:
+ packages:
+ mpich:
+ require:
+ - spec: "+debug"
+ include:
+ - {os.path.join(".", included_file)}
+ specs: []
+"""
+ )
+
+ e = ev.Environment(tmp_path)
+ with e:
+ # List of requirements, flip a variant
+ config("change", "packages:mpich:require:~debug")
+ test_spec = spack.spec.Spec("mpich").concretized()
+ assert test_spec.satisfies("@3.0.2~debug")
+
+ # List of requirements, change the version (in a different scope)
+ config("change", "packages:mpich:require:@3.0.3")
+ test_spec = spack.spec.Spec("mpich").concretized()
+ assert test_spec.satisfies("@3.0.3")
+
+ # "require:" as a single string, also try specifying
+ # a spec string that requires enclosing in quotes as
+ # part of the config path
+ config("change", 'packages:libelf:require:"@0.8.12:"')
+ spack.spec.Spec("libelf@0.8.12").concretized()
+ # No need for assert, if there wasn't a failure, we
+ # changed the requirement successfully.
+
+ # Use change to add a requirement for a package that
+ # has no requirements defined
+ config("change", "packages:fftw:require:+mpi")
+ test_spec = spack.spec.Spec("fftw").concretized()
+ assert test_spec.satisfies("+mpi")
+ config("change", "packages:fftw:require:~mpi")
+ test_spec = spack.spec.Spec("fftw").concretized()
+ assert test_spec.satisfies("~mpi")
+ config("change", "packages:fftw:require:@1.0")
+ test_spec = spack.spec.Spec("fftw").concretized()
+ assert test_spec.satisfies("@1.0~mpi")
+
+ # Use "--match-spec" to change one spec in a "one_of"
+ # list
+ config("change", "packages:bowtie:require:@1.2.2", "--match-spec", "@1.2.0")
+ spack.spec.Spec("bowtie@1.3.0").concretize()
+ spack.spec.Spec("bowtie@1.2.2").concretized()
+
+
+def test_config_change_new(mutable_mock_env_path, tmp_path, mock_packages, mutable_config):
+ spack_yaml = tmp_path / ev.manifest_name
+ spack_yaml.write_text(
+ """\
+spack:
+ specs: []
+"""
+ )
+
+ e = ev.Environment(tmp_path)
+ with e:
+ config("change", "packages:mpich:require:~debug")
+ with pytest.raises(spack.solver.asp.UnsatisfiableSpecError):
+ spack.spec.Spec("mpich+debug").concretized()
+ spack.spec.Spec("mpich~debug").concretized()
+
+ # Now check that we raise an error if we need to add a require: constraint
+ # when preexisting config manually specified it as a singular spec
+ spack_yaml.write_text(
+ """\
+spack:
+ specs: []
+ packages:
+ mpich:
+ require: "@3.0.3"
+"""
+ )
+ with e:
+ assert spack.spec.Spec("mpich").concretized().satisfies("@3.0.3")
+ with pytest.raises(spack.config.ConfigError, match="not a list"):
+ config("change", "packages:mpich:require:~debug")
+
+
def test_env_with_included_config_file_url(tmpdir, mutable_empty_config, packages_file):
"""Test configuration inclusion of a file whose path is a URL before
the environment is concretized."""
@@ -844,8 +974,6 @@ def test_env_with_included_config_file_url(tmpdir, mutable_empty_config, package
env = ev.Environment(tmpdir.strpath)
ev.activate(env)
- scopes = env.included_config_scopes()
- assert len(scopes) == 1
cfg = spack.config.get("packages")
assert cfg["mpileaks"]["version"] == ["2.2"]
@@ -1105,13 +1233,14 @@ def test_multi_env_remove(mutable_mock_env_path, monkeypatch, answer):
assert all(e in env("list") for e in environments)
-def test_env_loads(install_mockery, mock_fetch):
+def test_env_loads(install_mockery, mock_fetch, mock_modules_root):
env("create", "test")
with ev.read("test"):
add("mpileaks")
concretize()
install("--fake")
+ module("tcl", "refresh", "-y")
with ev.read("test"):
env("loads")
@@ -1171,7 +1300,7 @@ def test_env_blocks_uninstall(mock_stage, mock_fetch, install_mockery):
add("mpileaks")
install("--fake")
- out = uninstall("mpileaks", fail_on_error=False)
+ out = uninstall("-y", "mpileaks", fail_on_error=False)
assert uninstall.returncode == 1
assert "The following environments still reference these specs" in out
@@ -2841,51 +2970,51 @@ def test_modules_relative_to_views(environment_from_manifest, install_mockery, m
assert spec.prefix not in contents
-def test_multiple_modules_post_env_hook(environment_from_manifest, install_mockery, mock_fetch):
+def test_modules_exist_after_env_install(
+ environment_from_manifest, install_mockery, mock_fetch, monkeypatch
+):
+ # Some caching issue
+ monkeypatch.setattr(spack.modules.tcl, "configuration_registry", {})
environment_from_manifest(
"""
spack:
specs:
- - trivial-install-test-package
+ - mpileaks
modules:
default:
enable:: [tcl]
use_view: true
roots:
- tcl: modules
+ tcl: uses_view
full:
enable:: [tcl]
roots:
- tcl: full_modules
+ tcl: without_view
"""
)
with ev.read("test") as e:
install()
+ specs = e.all_specs()
- spec = e.specs_by_hash[e.concretized_order[0]]
- view_prefix = e.default_view.get_projection_for_spec(spec)
- modules_glob = "%s/modules/**/*/*" % e.path
- modules = glob.glob(modules_glob)
- assert len(modules) == 1
- module = modules[0]
-
- full_modules_glob = "%s/full_modules/**/*/*" % e.path
- full_modules = glob.glob(full_modules_glob)
- assert len(full_modules) == 1
- full_module = full_modules[0]
-
- with open(module, "r") as f:
- contents = f.read()
-
- with open(full_module, "r") as f:
- full_contents = f.read()
+ for module_set in ("uses_view", "without_view"):
+ modules = glob.glob(f"{e.path}/{module_set}/**/*/*")
+ assert len(modules) == len(specs), "Not all modules were generated"
+ for spec in specs:
+ module = next((m for m in modules if os.path.dirname(m).endswith(spec.name)), None)
+ assert module, f"Module for {spec} not found"
- assert view_prefix in contents
- assert spec.prefix not in contents
+ # Now verify that modules have paths pointing into the view instead of the package
+ # prefix if and only if they set use_view to true.
+ with open(module, "r") as f:
+ contents = f.read()
- assert view_prefix not in full_contents
- assert spec.prefix in full_contents
+ if module_set == "uses_view":
+ assert e.default_view.get_projection_for_spec(spec) in contents
+ assert spec.prefix not in contents
+ else:
+ assert e.default_view.get_projection_for_spec(spec) not in contents
+ assert spec.prefix in contents
@pytest.mark.regression("24148")
@@ -2900,13 +3029,15 @@ def test_virtual_spec_concretize_together(tmpdir):
assert any(s.package.provides("mpi") for _, s in e.concretized_specs())
-def test_query_develop_specs():
+def test_query_develop_specs(tmpdir):
"""Test whether a spec is develop'ed or not"""
+ srcdir = tmpdir.ensure("here")
+
env("create", "test")
with ev.read("test") as e:
e.add("mpich")
e.add("mpileaks")
- e.develop(Spec("mpich@=1"), "here", clone=False)
+ develop("--no-clone", "-p", str(srcdir), "mpich@=1")
assert e.is_develop(Spec("mpich"))
assert not e.is_develop(Spec("mpileaks"))
@@ -2918,7 +3049,9 @@ def test_query_develop_specs():
)
def test_activation_and_deactiviation_ambiguities(method, env, no_env, env_dir, capsys):
"""spack [-e x | -E | -D x/] env [activate | deactivate] y are ambiguous"""
- args = Namespace(shell="sh", activate_env="a", env=env, no_env=no_env, env_dir=env_dir)
+ args = Namespace(
+ shell="sh", env_name="a", env=env, no_env=no_env, env_dir=env_dir, keep_relative=False
+ )
with pytest.raises(SystemExit):
method(args)
_, err = capsys.readouterr()
@@ -2959,6 +3092,34 @@ def test_activate_temp(monkeypatch, tmpdir):
assert ev.is_env_dir(str(tmpdir))
+@pytest.mark.parametrize(
+ "conflict_arg", [["--dir"], ["--keep-relative"], ["--with-view", "foo"], ["env"]]
+)
+def test_activate_parser_conflicts_with_temp(conflict_arg):
+ with pytest.raises(SpackCommandError):
+ env("activate", "--sh", "--temp", *conflict_arg)
+
+
+def test_create_and_activate_managed(tmp_path):
+ with fs.working_dir(str(tmp_path)):
+ shell = env("activate", "--without-view", "--create", "--sh", "foo")
+ active_env_var = next(line for line in shell.splitlines() if ev.spack_env_var in line)
+ assert str(tmp_path) in active_env_var
+ active_ev = ev.active_environment()
+ assert "foo" == active_ev.name
+ env("deactivate")
+
+
+def test_create_and_activate_unmanaged(tmp_path):
+ with fs.working_dir(str(tmp_path)):
+ env_dir = os.path.join(str(tmp_path), "foo")
+ shell = env("activate", "--without-view", "--create", "--sh", "-d", env_dir)
+ active_env_var = next(line for line in shell.splitlines() if ev.spack_env_var in line)
+ assert str(env_dir) in active_env_var
+ assert ev.is_env_dir(env_dir)
+ env("deactivate")
+
+
def test_activate_default(monkeypatch):
"""Tests whether `spack env activate` creates / activates the default
environment"""
@@ -3507,8 +3668,6 @@ def test_env_include_packages_url(
with spack.config.override("config:url_fetch_method", "curl"):
env = ev.Environment(tmpdir.strpath)
ev.activate(env)
- scopes = env.included_config_scopes()
- assert len(scopes) == 1
cfg = spack.config.get("packages")
assert "openmpi" in cfg["all"]["providers"]["mpi"]
diff --git a/lib/spack/spack/test/cmd/extensions.py b/lib/spack/spack/test/cmd/extensions.py
index e3f82b9439c138..1f6ed95b564469 100644
--- a/lib/spack/spack/test/cmd/extensions.py
+++ b/lib/spack/spack/test/cmd/extensions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/external.py b/lib/spack/spack/test/cmd/external.py
index e9a387aac03e66..362b2360a5f886 100644
--- a/lib/spack/spack/test/cmd/external.py
+++ b/lib/spack/spack/test/cmd/external.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/fetch.py b/lib/spack/spack/test/cmd/fetch.py
index 19c5d33585ead5..cf05f4299d925e 100644
--- a/lib/spack/spack/test/cmd/fetch.py
+++ b/lib/spack/spack/test/cmd/fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/find.py b/lib/spack/spack/test/cmd/find.py
index afeb53388d495b..5d551e6df929eb 100644
--- a/lib/spack/spack/test/cmd/find.py
+++ b/lib/spack/spack/test/cmd/find.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/gc.py b/lib/spack/spack/test/cmd/gc.py
index d692628e106fe0..b9d39567f4cc39 100644
--- a/lib/spack/spack/test/cmd/gc.py
+++ b/lib/spack/spack/test/cmd/gc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,37 +11,139 @@
import spack.spec
gc = spack.main.SpackCommand("gc")
+add = spack.main.SpackCommand("add")
+install = spack.main.SpackCommand("install")
pytestmark = pytest.mark.not_on_windows("does not run on windows")
@pytest.mark.db
-def test_no_packages_to_remove(config, mutable_database, capsys):
- with capsys.disabled():
- output = gc("-y")
+def test_gc_without_build_dependency(config, mutable_database):
+ output = gc("-yb")
+ assert "There are no unused specs." in output
+
+ output = gc("-y")
assert "There are no unused specs." in output
@pytest.mark.db
-def test_packages_are_removed(config, mutable_database, capsys):
+def test_gc_with_build_dependency(config, mutable_database):
s = spack.spec.Spec("simple-inheritance")
s.concretize()
s.package.do_install(fake=True, explicit=True)
- with capsys.disabled():
- output = gc("-y")
+
+ output = gc("-yb")
+ assert "There are no unused specs." in output
+
+ output = gc("-y")
assert "Successfully uninstalled cmake" in output
@pytest.mark.db
-def test_gc_with_environment(config, mutable_database, mutable_mock_env_path, capsys):
+def test_gc_with_environment(config, mutable_database, mutable_mock_env_path):
+ s = spack.spec.Spec("simple-inheritance")
+ s.concretize()
+ s.package.do_install(fake=True, explicit=True)
+
+ e = ev.create("test_gc")
+ with e:
+ add("cmake")
+ install()
+ assert mutable_database.query_local("cmake")
+ output = gc("-y")
+ assert "Restricting garbage collection" in output
+ assert "There are no unused specs" in output
+
+
+@pytest.mark.db
+def test_gc_with_build_dependency_in_environment(config, mutable_database, mutable_mock_env_path):
s = spack.spec.Spec("simple-inheritance")
s.concretize()
s.package.do_install(fake=True, explicit=True)
e = ev.create("test_gc")
- e.add("cmake")
with e:
- with capsys.disabled():
- output = gc("-y")
- assert "Restricting the garbage collection" in output
+ add("simple-inheritance")
+ install()
+ assert mutable_database.query_local("simple-inheritance")
+ output = gc("-yb")
+ assert "Restricting garbage collection" in output
assert "There are no unused specs" in output
+
+ with e:
+ assert mutable_database.query_local("simple-inheritance")
+ output = gc("-y")
+ assert "Restricting garbage collection" in output
+ assert "Successfully uninstalled cmake" in output
+
+
+@pytest.mark.db
+def test_gc_except_any_environments(config, mutable_database, mutable_mock_env_path):
+ s = spack.spec.Spec("simple-inheritance")
+ s.concretize()
+ s.package.do_install(fake=True, explicit=True)
+
+ assert mutable_database.query_local("zmpi")
+
+ e = ev.create("test_gc")
+ with e:
+ add("simple-inheritance")
+ install()
+ assert mutable_database.query_local("simple-inheritance")
+
+ output = gc("-yE")
+ assert "Restricting garbage collection" not in output
+ assert "Successfully uninstalled zmpi" in output
+ assert not mutable_database.query_local("zmpi")
+
+ with e:
+ output = gc("-yE")
+ assert "Restricting garbage collection" not in output
+ assert "There are no unused specs" not in output
+
+
+@pytest.mark.db
+def test_gc_except_specific_environments(config, mutable_database, mutable_mock_env_path):
+ s = spack.spec.Spec("simple-inheritance")
+ s.concretize()
+ s.package.do_install(fake=True, explicit=True)
+
+ assert mutable_database.query_local("zmpi")
+
+ e = ev.create("test_gc")
+ with e:
+ add("simple-inheritance")
+ install()
+ assert mutable_database.query_local("simple-inheritance")
+
+ output = gc("-ye", "test_gc")
+ assert "Restricting garbage collection" not in output
+ assert "Successfully uninstalled zmpi" in output
+ assert not mutable_database.query_local("zmpi")
+
+
+@pytest.mark.db
+def test_gc_except_nonexisting_dir_env(config, mutable_database, mutable_mock_env_path, tmpdir):
+ output = gc("-ye", tmpdir.strpath, fail_on_error=False)
+ assert "No such environment" in output
+ gc.returncode == 1
+
+
+@pytest.mark.db
+def test_gc_except_specific_dir_env(config, mutable_database, mutable_mock_env_path, tmpdir):
+ s = spack.spec.Spec("simple-inheritance")
+ s.concretize()
+ s.package.do_install(fake=True, explicit=True)
+
+ assert mutable_database.query_local("zmpi")
+
+ e = ev.create_in_dir(tmpdir.strpath)
+ with e:
+ add("simple-inheritance")
+ install()
+ assert mutable_database.query_local("simple-inheritance")
+
+ output = gc("-ye", tmpdir.strpath)
+ assert "Restricting garbage collection" not in output
+ assert "Successfully uninstalled zmpi" in output
+ assert not mutable_database.query_local("zmpi")
diff --git a/lib/spack/spack/test/cmd/gpg.py b/lib/spack/spack/test/cmd/gpg.py
index 08749022cab360..d342897db7f800 100644
--- a/lib/spack/spack/test/cmd/gpg.py
+++ b/lib/spack/spack/test/cmd/gpg.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/graph.py b/lib/spack/spack/test/cmd/graph.py
index 079b1a53e2adc5..e3c19e4223798c 100644
--- a/lib/spack/spack/test/cmd/graph.py
+++ b/lib/spack/spack/test/cmd/graph.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/help.py b/lib/spack/spack/test/cmd/help.py
index 1e296be9e6aab5..688675be68c0b7 100644
--- a/lib/spack/spack/test/cmd/help.py
+++ b/lib/spack/spack/test/cmd/help.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/info.py b/lib/spack/spack/test/cmd/info.py
index 5748323d8cba98..e3d7b383a5e908 100644
--- a/lib/spack/spack/test/cmd/info.py
+++ b/lib/spack/spack/test/cmd/info.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -33,10 +33,11 @@ def _print(*args, **kwargs):
@pytest.mark.parametrize(
- "pkg", ["openmpi", "trilinos", "boost", "python", "dealii", "xsdk"] # a BundlePackage
+ "pkg", ["openmpi", "trilinos", "boost", "python", "dealii", "xsdk", "gasnet", "warpx"]
)
-def test_it_just_runs(pkg):
- info(pkg)
+@pytest.mark.parametrize("extra_args", [[], ["--variants-by-name"]])
+def test_it_just_runs(pkg, extra_args):
+ info(pkg, *extra_args)
def test_info_noversion(mock_packages, print_buffer):
@@ -78,7 +79,8 @@ def test_is_externally_detectable(pkg_query, expected, parser, print_buffer):
"gcc", # This should ensure --test's c_names processing loop covered
],
)
-def test_info_fields(pkg_query, parser, print_buffer):
+@pytest.mark.parametrize("extra_args", [[], ["--variants-by-name"]])
+def test_info_fields(pkg_query, extra_args, parser, print_buffer):
expected_fields = (
"Description:",
"Homepage:",
@@ -91,7 +93,7 @@ def test_info_fields(pkg_query, parser, print_buffer):
"Licenses:",
)
- args = parser.parse_args(["--all", pkg_query])
+ args = parser.parse_args(["--all", pkg_query] + extra_args)
spack.cmd.info.info(parser, args)
for text in expected_fields:
diff --git a/lib/spack/spack/test/cmd/init_py_functions.py b/lib/spack/spack/test/cmd/init_py_functions.py
index 260a719b2e2d29..4dc000edb9434d 100644
--- a/lib/spack/spack/test/cmd/init_py_functions.py
+++ b/lib/spack/spack/test/cmd/init_py_functions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/install.py b/lib/spack/spack/test/cmd/install.py
index 8eb3bfedb815c0..17a35b89735029 100644
--- a/lib/spack/spack/test/cmd/install.py
+++ b/lib/spack/spack/test/cmd/install.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import argparse
import builtins
import filecmp
+import gzip
import itertools
import os
import pathlib
@@ -137,8 +138,7 @@ def test_package_output(tmpdir, capsys, install_mockery, mock_fetch):
pkg = spec.package
pkg.do_install(verbose=True)
- log_file = pkg.build_log_path
- with open(log_file) as f:
+ with gzip.open(pkg.install_log_path, "rt") as f:
out = f.read()
# make sure that output from the actual package file appears in the
diff --git a/lib/spack/spack/test/cmd/is_git_repo.py b/lib/spack/spack/test/cmd/is_git_repo.py
index 3e1e7c287e23bc..087f69e0282f02 100644
--- a/lib/spack/spack/test/cmd/is_git_repo.py
+++ b/lib/spack/spack/test/cmd/is_git_repo.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/license.py b/lib/spack/spack/test/cmd/license.py
index 32c6f0846ddcc5..c46d73a5bcdae6 100644
--- a/lib/spack/spack/test/cmd/license.py
+++ b/lib/spack/spack/test/cmd/license.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -37,7 +37,7 @@ def test_verify(tmpdir):
with lgpl_header.open("w") as f:
f.write(
"""\
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: LGPL-2.1-only
@@ -58,7 +58,7 @@ def test_verify(tmpdir):
with correct_header.open("w") as f:
f.write(
"""\
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/list.py b/lib/spack/spack/test/cmd/list.py
index de28d7b2ee0834..a46e690cd27eb9 100644
--- a/lib/spack/spack/test/cmd/list.py
+++ b/lib/spack/spack/test/cmd/list.py
@@ -1,8 +1,9 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+import os.path
import sys
from textwrap import dedent
@@ -134,3 +135,21 @@ def test_list_count(mock_packages):
assert int(output.strip()) == len(
[name for name in spack.repo.all_package_names() if "py-" in name]
)
+
+
+# def test_list_repos(mock_packages, builder_test_repository):
+def test_list_repos():
+ with spack.repo.use_repositories(
+ os.path.join(spack.paths.repos_path, "builtin.mock"),
+ os.path.join(spack.paths.repos_path, "builder.test"),
+ ):
+ total_pkgs = len(list().strip().split())
+
+ mock_pkgs = len(list("-r", "builtin.mock").strip().split())
+ builder_pkgs = len(list("-r", "builder.test").strip().split())
+
+ assert builder_pkgs == 8
+ assert total_pkgs > mock_pkgs > builder_pkgs
+
+ both_repos = len(list("-r", "builtin.mock", "-r", "builder.test").strip().split())
+ assert both_repos == total_pkgs
diff --git a/lib/spack/spack/test/cmd/load.py b/lib/spack/spack/test/cmd/load.py
index 26fa374a05d34d..e2abe72e0e15d9 100644
--- a/lib/spack/spack/test/cmd/load.py
+++ b/lib/spack/spack/test/cmd/load.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/location.py b/lib/spack/spack/test/cmd/location.py
index 11450e8828cb84..25008e8e447b35 100644
--- a/lib/spack/spack/test/cmd/location.py
+++ b/lib/spack/spack/test/cmd/location.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/maintainers.py b/lib/spack/spack/test/cmd/maintainers.py
index 5063877a109246..3534310a9d4c02 100644
--- a/lib/spack/spack/test/cmd/maintainers.py
+++ b/lib/spack/spack/test/cmd/maintainers.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/mark.py b/lib/spack/spack/test/cmd/mark.py
index d7d93c267cdba1..0aa7b359205a20 100644
--- a/lib/spack/spack/test/cmd/mark.py
+++ b/lib/spack/spack/test/cmd/mark.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/mirror.py b/lib/spack/spack/test/cmd/mirror.py
index 029765df93b5ac..ca4c0dd8ce6f82 100644
--- a/lib/spack/spack/test/cmd/mirror.py
+++ b/lib/spack/spack/test/cmd/mirror.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -398,3 +398,12 @@ def test_mirror_set_2(mutable_config):
"url": "http://example.com",
"push": {"url": "http://example2.com", "access_pair": ["username", "password"]},
}
+
+
+def test_mirror_add_set_signed(mutable_config):
+ mirror("add", "--signed", "example", "http://example.com")
+ assert spack.config.get("mirrors:example") == {"url": "http://example.com", "signed": True}
+ mirror("set", "--unsigned", "example")
+ assert spack.config.get("mirrors:example") == {"url": "http://example.com", "signed": False}
+ mirror("set", "--signed", "example")
+ assert spack.config.get("mirrors:example") == {"url": "http://example.com", "signed": True}
diff --git a/lib/spack/spack/test/cmd/module.py b/lib/spack/spack/test/cmd/module.py
index a885de79eeab91..4c1ea784320504 100644
--- a/lib/spack/spack/test/cmd/module.py
+++ b/lib/spack/spack/test/cmd/module.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/pkg.py b/lib/spack/spack/test/cmd/pkg.py
index 56a1f1f78676e8..f37d66363e5767 100644
--- a/lib/spack/spack/test/cmd/pkg.py
+++ b/lib/spack/spack/test/cmd/pkg.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/print_shell_vars.py b/lib/spack/spack/test/cmd/print_shell_vars.py
index 31791b9749af72..994e2cdf8afba0 100644
--- a/lib/spack/spack/test/cmd/print_shell_vars.py
+++ b/lib/spack/spack/test/cmd/print_shell_vars.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/providers.py b/lib/spack/spack/test/cmd/providers.py
index 6c6467378b103e..e979f2db470f81 100644
--- a/lib/spack/spack/test/cmd/providers.py
+++ b/lib/spack/spack/test/cmd/providers.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/python.py b/lib/spack/spack/test/cmd/python.py
index b3e1edd40cea58..504f4f69b957c4 100644
--- a/lib/spack/spack/test/cmd/python.py
+++ b/lib/spack/spack/test/cmd/python.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/reindex.py b/lib/spack/spack/test/cmd/reindex.py
index e33d48aedd5e29..f8c1d8b0e9eaee 100644
--- a/lib/spack/spack/test/cmd/reindex.py
+++ b/lib/spack/spack/test/cmd/reindex.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/repo.py b/lib/spack/spack/test/cmd/repo.py
index f5326ab5f8af86..b837e58ac9d67b 100644
--- a/lib/spack/spack/test/cmd/repo.py
+++ b/lib/spack/spack/test/cmd/repo.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/resource.py b/lib/spack/spack/test/cmd/resource.py
index 8e99ce406cbe69..3edd0d475e88b6 100644
--- a/lib/spack/spack/test/cmd/resource.py
+++ b/lib/spack/spack/test/cmd/resource.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/spec.py b/lib/spack/spack/test/cmd/spec.py
index 66dfce93089718..718a5e08d45afa 100644
--- a/lib/spack/spack/test/cmd/spec.py
+++ b/lib/spack/spack/test/cmd/spec.py
@@ -1,10 +1,9 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import re
-from textwrap import dedent
import pytest
@@ -74,42 +73,6 @@ def test_spec_parse_cflags_quoting():
assert ["-flto", "-Os"] == gh_flagged.compiler_flags["cxxflags"]
-def test_spec_parse_unquoted_flags_report():
- """Verify that a useful error message is produced if unquoted compiler flags are
- provided."""
- # This should fail during parsing, since /usr/include is interpreted as a spec hash.
- with pytest.raises(spack.error.SpackError) as cm:
- # We don't try to figure out how many following args were intended to be part of
- # cflags, we just explain how to fix it for the immediate next arg.
- spec("gcc cflags=-Os -pipe -other-arg-that-gets-ignored cflags=-I /usr/include")
- # Verify that the generated error message is nicely formatted.
-
- expected_message = dedent(
- '''\
- Some compiler or linker flags were provided without quoting their arguments,
- which now causes spack to try to parse the *next* argument as a spec component
- such as a variant instead of an additional compiler or linker flag. If the
- intent was to set multiple flags, try quoting them together as described below.
-
- Possible flag quotation errors (with the correctly-quoted version after the =>):
- (1) cflags=-Os -pipe => cflags="-Os -pipe"
- (2) cflags=-I /usr/include => cflags="-I /usr/include"'''
- )
-
- assert expected_message in str(cm.value)
-
- # Verify that the same unquoted cflags report is generated in the error message even
- # if it fails during concretization, not just during parsing.
- with pytest.raises(spack.error.SpackError) as cm:
- spec("gcc cflags=-Os -pipe")
- cm = str(cm.value)
- assert cm.startswith(
- 'trying to set variant "pipe" in package "gcc", but the package has no such '
- 'variant [happened during concretization of gcc cflags="-Os" ~pipe]'
- )
- assert cm.endswith('(1) cflags=-Os -pipe => cflags="-Os -pipe"')
-
-
def test_spec_yaml():
output = spec("--yaml", "mpileaks")
diff --git a/lib/spack/spack/test/cmd/stage.py b/lib/spack/spack/test/cmd/stage.py
index cdf5ca9fb4c512..cdca18d5e7b432 100644
--- a/lib/spack/spack/test/cmd/stage.py
+++ b/lib/spack/spack/test/cmd/stage.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/style.py b/lib/spack/spack/test/cmd/style.py
index 55911169686fb0..afdb3dbb1fe2e0 100644
--- a/lib/spack/spack/test/cmd/style.py
+++ b/lib/spack/spack/test/cmd/style.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/tags.py b/lib/spack/spack/test/cmd/tags.py
index 17a63432a05847..7de107c9234be2 100644
--- a/lib/spack/spack/test/cmd/tags.py
+++ b/lib/spack/spack/test/cmd/tags.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/test.py b/lib/spack/spack/test/cmd/test.py
index 254baa253b5843..3ed5077c7857b2 100644
--- a/lib/spack/spack/test/cmd/test.py
+++ b/lib/spack/spack/test/cmd/test.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/undevelop.py b/lib/spack/spack/test/cmd/undevelop.py
index 93b7c7ef90d75b..9b5a2a5692f073 100644
--- a/lib/spack/spack/test/cmd/undevelop.py
+++ b/lib/spack/spack/test/cmd/undevelop.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,7 +17,7 @@
pytestmark = pytest.mark.not_on_windows("does not run on windows")
-def test_undevelop(tmpdir, config, mock_packages, mutable_mock_env_path):
+def test_undevelop(tmpdir, mutable_config, mock_packages, mutable_mock_env_path):
# setup environment
envdir = tmpdir.mkdir("env")
with envdir.as_cwd():
@@ -46,7 +46,7 @@ def test_undevelop(tmpdir, config, mock_packages, mutable_mock_env_path):
assert not after.satisfies("dev_path=*")
-def test_undevelop_nonexistent(tmpdir, config, mock_packages, mutable_mock_env_path):
+def test_undevelop_nonexistent(tmpdir, mutable_config, mock_packages, mutable_mock_env_path):
# setup environment
envdir = tmpdir.mkdir("env")
with envdir.as_cwd():
diff --git a/lib/spack/spack/test/cmd/uninstall.py b/lib/spack/spack/test/cmd/uninstall.py
index abad976c8f4e91..f3eca94d6501c6 100644
--- a/lib/spack/spack/test/cmd/uninstall.py
+++ b/lib/spack/spack/test/cmd/uninstall.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/unit_test.py b/lib/spack/spack/test/cmd/unit_test.py
index ea4c31e76617c9..86fe6dee612a2f 100644
--- a/lib/spack/spack/test/cmd/unit_test.py
+++ b/lib/spack/spack/test/cmd/unit_test.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/url.py b/lib/spack/spack/test/cmd/url.py
index fad65292a21e39..4d970ddd97a2e4 100644
--- a/lib/spack/spack/test/cmd/url.py
+++ b/lib/spack/spack/test/cmd/url.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/verify.py b/lib/spack/spack/test/cmd/verify.py
index 1293df78e21d7f..0ac3c136c0b8db 100644
--- a/lib/spack/spack/test/cmd/verify.py
+++ b/lib/spack/spack/test/cmd/verify.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/versions.py b/lib/spack/spack/test/cmd/versions.py
index d0803a1965aef7..8506be82216dbc 100644
--- a/lib/spack/spack/test/cmd/versions.py
+++ b/lib/spack/spack/test/cmd/versions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd/view.py b/lib/spack/spack/test/cmd/view.py
index 75840d4e6b3308..eaf6999868910c 100644
--- a/lib/spack/spack/test/cmd/view.py
+++ b/lib/spack/spack/test/cmd/view.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cmd_extensions.py b/lib/spack/spack/test/cmd_extensions.py
index fc6c6fdf990502..8af89728599cb8 100644
--- a/lib/spack/spack/test/cmd_extensions.py
+++ b/lib/spack/spack/test/cmd_extensions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/compilers/__init__.py b/lib/spack/spack/test/compilers/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/spack/test/compilers/__init__.py
+++ b/lib/spack/spack/test/compilers/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/compilers/basics.py b/lib/spack/spack/test/compilers/basics.py
index dac7622b64d036..b0bd0b402644e7 100644
--- a/lib/spack/spack/test/compilers/basics.py
+++ b/lib/spack/spack/test/compilers/basics.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -422,7 +422,6 @@ def test_clang_flags():
"-gdwarf-5",
"-gline-tables-only",
"-gmodules",
- "-gz",
"-g",
],
"clang@3.3",
@@ -445,7 +444,6 @@ def test_aocc_flags():
"-gdwarf-5",
"-gline-tables-only",
"-gmodules",
- "-gz",
"-g",
],
"aocc@2.2.0",
diff --git a/lib/spack/spack/test/compilers/detection.py b/lib/spack/spack/test/compilers/detection.py
index cf197914b9dc8e..a30d1b890685e5 100644
--- a/lib/spack/spack/test/compilers/detection.py
+++ b/lib/spack/spack/test/compilers/detection.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/concretize.py b/lib/spack/spack/test/concretize.py
index 2818aad042855b..41b0eb600fe88c 100644
--- a/lib/spack/spack/test/concretize.py
+++ b/lib/spack/spack/test/concretize.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -132,6 +132,19 @@ def current_host(request, monkeypatch):
yield target
+@pytest.fixture(scope="function", params=[True, False])
+def fuzz_dep_order(request, monkeypatch):
+ """Meta-function that tweaks the order of iteration over dependencies in a package."""
+
+ def reverser(pkg_name):
+ if request.param:
+ pkg_cls = spack.repo.PATH.get_pkg_class(pkg_name)
+ reversed_dict = dict(reversed(list(pkg_cls.dependencies.items())))
+ monkeypatch.setattr(pkg_cls, "dependencies", reversed_dict)
+
+ return reverser
+
+
@pytest.fixture()
def repo_with_changing_recipe(tmpdir_factory, mutable_mock_repo):
repo_namespace = "changing"
@@ -895,7 +908,15 @@ def test_conditional_variants_fail(self, bad_spec):
("py-extension3@1.0 ^python@3.5.1", ["patchelf@0.10"], []),
],
)
- def test_conditional_dependencies(self, spec_str, expected, unexpected):
+ def test_conditional_dependencies(self, spec_str, expected, unexpected, fuzz_dep_order):
+ """Tests that conditional dependencies are correctly attached.
+
+ The original concretizer can be sensitive to the iteration order over the dependencies of
+ a package, so we use a fuzzer function to test concretization with dependencies iterated
+ forwards and backwards.
+ """
+ fuzz_dep_order("py-extension3") # test forwards and backwards
+
s = Spec(spec_str).concretized()
for dep in expected:
@@ -1501,6 +1522,30 @@ def test_sticky_variant_in_package(self):
s = Spec("sticky-variant %clang").concretized()
assert s.satisfies("%clang") and s.satisfies("~allow-gcc")
+ @pytest.mark.regression("42172")
+ @pytest.mark.only_clingo("Original concretizer cannot use sticky variants")
+ @pytest.mark.parametrize(
+ "spec,allow_gcc",
+ [
+ ("sticky-variant@1.0+allow-gcc", True),
+ ("sticky-variant@1.0~allow-gcc", False),
+ ("sticky-variant@1.0", False),
+ ],
+ )
+ def test_sticky_variant_in_external(self, spec, allow_gcc):
+ # setup external for sticky-variant+allow-gcc
+ config = {"externals": [{"spec": spec, "prefix": "/fake/path"}], "buildable": False}
+ spack.config.set("packages:sticky-variant", config)
+
+ maybe = llnl.util.lang.nullcontext if allow_gcc else pytest.raises
+ with maybe(spack.error.SpackError):
+ s = Spec("sticky-variant-dependent%gcc").concretized()
+
+ if allow_gcc:
+ assert s.satisfies("%gcc")
+ assert s["sticky-variant"].satisfies("+allow-gcc")
+ assert s["sticky-variant"].external
+
@pytest.mark.only_clingo("Use case not supported by the original concretizer")
def test_do_not_invent_new_concrete_versions_unless_necessary(self):
# ensure we select a known satisfying version rather than creating
@@ -1817,12 +1862,14 @@ def test_git_ref_version_succeeds_with_unknown_version(self, git_ref):
@pytest.mark.regression("31484")
@pytest.mark.only_clingo("Use case not supported by the original concretizer")
- def test_installed_externals_are_reused(self, mutable_database, repo_with_changing_recipe):
+ def test_installed_externals_are_reused(
+ self, mutable_database, repo_with_changing_recipe, tmp_path
+ ):
"""Test that external specs that are in the DB can be reused."""
external_conf = {
"changing": {
"buildable": False,
- "externals": [{"spec": "changing@1.0", "prefix": "/usr"}],
+ "externals": [{"spec": "changing@1.0", "prefix": str(tmp_path)}],
}
}
spack.config.set("packages", external_conf)
@@ -1847,12 +1894,12 @@ def test_installed_externals_are_reused(self, mutable_database, repo_with_changi
@pytest.mark.regression("31484")
@pytest.mark.only_clingo("Use case not supported by the original concretizer")
- def test_user_can_select_externals_with_require(self, mutable_database):
+ def test_user_can_select_externals_with_require(self, mutable_database, tmp_path):
"""Test that users have means to select an external even in presence of reusable specs."""
external_conf = {
"mpi": {"buildable": False},
"multi-provider-mpi": {
- "externals": [{"spec": "multi-provider-mpi@2.0.0", "prefix": "/usr"}]
+ "externals": [{"spec": "multi-provider-mpi@2.0.0", "prefix": str(tmp_path)}]
},
}
spack.config.set("packages", external_conf)
@@ -1882,7 +1929,7 @@ def test_installed_specs_disregard_conflicts(self, mutable_database, monkeypatch
"""
# Add a conflict to "mpich" that match an already installed "mpich~debug"
pkg_cls = spack.repo.PATH.get_pkg_class("mpich")
- monkeypatch.setitem(pkg_cls.conflicts, "~debug", [(Spec(), None)])
+ monkeypatch.setitem(pkg_cls.conflicts, Spec(), [("~debug", None)])
# If we concretize with --fresh the conflict is taken into account
with spack.config.override("concretizer:reuse", False):
@@ -2184,6 +2231,33 @@ def test_reuse_python_from_cli_and_extension_from_db(self, mutable_database):
assert with_reuse.dag_hash() == without_reuse.dag_hash()
+ @pytest.mark.regression("35536")
+ @pytest.mark.parametrize(
+ "spec_str,expected_namespaces",
+ [
+ # Single node with fully qualified namespace
+ ("builtin.mock.gmake", {"gmake": "builtin.mock"}),
+ # Dependency with fully qualified namespace
+ ("hdf5 ^builtin.mock.gmake", {"gmake": "builtin.mock", "hdf5": "duplicates.test"}),
+ ("hdf5 ^gmake", {"gmake": "duplicates.test", "hdf5": "duplicates.test"}),
+ ],
+ )
+ @pytest.mark.only_clingo("Uses specs requiring multiple gmake specs")
+ def test_select_lower_priority_package_from_repository_stack(
+ self, spec_str, expected_namespaces
+ ):
+ """Tests that a user can explicitly select a lower priority, fully qualified dependency
+ from cli.
+ """
+ # 'builtin.mock" and "duplicates.test" share a 'gmake' package
+ additional_repo = os.path.join(spack.paths.repos_path, "duplicates.test")
+ with spack.repo.use_repositories(additional_repo, override=False):
+ s = Spec(spec_str).concretized()
+
+ for name, namespace in expected_namespaces.items():
+ assert s[name].concrete
+ assert s[name].namespace == namespace
+
@pytest.fixture()
def duplicates_test_repository():
@@ -2427,3 +2501,87 @@ def test_virtuals_provided_together_but_only_one_required_in_dag(self):
s = Spec("blas-only-client ^openblas").concretized()
assert s.satisfies("^[virtuals=blas] openblas")
assert not s.satisfies("^[virtuals=blas,lapack] openblas")
+
+
+def test_reusable_externals_match(mock_packages, tmpdir):
+ spec = Spec("mpich@4.1%gcc@13.1.0~debug build_system=generic arch=linux-ubuntu23.04-zen2")
+ spec.external_path = tmpdir.strpath
+ spec.external_modules = ["mpich/4.1"]
+ spec._mark_concrete()
+ assert spack.solver.asp._is_reusable(
+ spec,
+ {
+ "mpich": {
+ "externals": [
+ {"spec": "mpich@4.1", "prefix": tmpdir.strpath, "modules": ["mpich/4.1"]}
+ ]
+ }
+ },
+ local=False,
+ )
+
+
+def test_reusable_externals_match_virtual(mock_packages, tmpdir):
+ spec = Spec("mpich@4.1%gcc@13.1.0~debug build_system=generic arch=linux-ubuntu23.04-zen2")
+ spec.external_path = tmpdir.strpath
+ spec.external_modules = ["mpich/4.1"]
+ spec._mark_concrete()
+ assert spack.solver.asp._is_reusable(
+ spec,
+ {
+ "mpi": {
+ "externals": [
+ {"spec": "mpich@4.1", "prefix": tmpdir.strpath, "modules": ["mpich/4.1"]}
+ ]
+ }
+ },
+ local=False,
+ )
+
+
+def test_reusable_externals_different_prefix(mock_packages, tmpdir):
+ spec = Spec("mpich@4.1%gcc@13.1.0~debug build_system=generic arch=linux-ubuntu23.04-zen2")
+ spec.external_path = "/other/path"
+ spec.external_modules = ["mpich/4.1"]
+ spec._mark_concrete()
+ assert not spack.solver.asp._is_reusable(
+ spec,
+ {
+ "mpich": {
+ "externals": [
+ {"spec": "mpich@4.1", "prefix": tmpdir.strpath, "modules": ["mpich/4.1"]}
+ ]
+ }
+ },
+ local=False,
+ )
+
+
+@pytest.mark.parametrize("modules", [None, ["mpich/4.1", "libfabric/1.19"]])
+def test_reusable_externals_different_modules(mock_packages, tmpdir, modules):
+ spec = Spec("mpich@4.1%gcc@13.1.0~debug build_system=generic arch=linux-ubuntu23.04-zen2")
+ spec.external_path = tmpdir.strpath
+ spec.external_modules = modules
+ spec._mark_concrete()
+ assert not spack.solver.asp._is_reusable(
+ spec,
+ {
+ "mpich": {
+ "externals": [
+ {"spec": "mpich@4.1", "prefix": tmpdir.strpath, "modules": ["mpich/4.1"]}
+ ]
+ }
+ },
+ local=False,
+ )
+
+
+def test_reusable_externals_different_spec(mock_packages, tmpdir):
+ spec = Spec("mpich@4.1%gcc@13.1.0~debug build_system=generic arch=linux-ubuntu23.04-zen2")
+ spec.external_path = tmpdir.strpath
+ spec._mark_concrete()
+ assert not spack.solver.asp._is_reusable(
+ spec,
+ {"mpich": {"externals": [{"spec": "mpich@4.1 +debug", "prefix": tmpdir.strpath}]}},
+ local=False,
+ )
diff --git a/lib/spack/spack/test/concretize_compiler_runtimes.py b/lib/spack/spack/test/concretize_compiler_runtimes.py
new file mode 100644
index 00000000000000..f331e9a7f8f35b
--- /dev/null
+++ b/lib/spack/spack/test/concretize_compiler_runtimes.py
@@ -0,0 +1,62 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+import os
+
+import pytest
+
+import spack.paths
+import spack.repo
+import spack.solver.asp
+import spack.spec
+from spack.version import Version
+
+pytestmark = [
+ pytest.mark.only_clingo("Original concretizer does not support compiler runtimes"),
+ pytest.mark.usefixtures("enable_runtimes"),
+]
+
+
+@pytest.fixture
+def runtime_repo(config):
+ repo = os.path.join(spack.paths.repos_path, "compiler_runtime.test")
+ with spack.repo.use_repositories(repo) as mock_repo:
+ yield mock_repo
+
+
+@pytest.fixture
+def enable_runtimes():
+ original = spack.solver.asp.WITH_RUNTIME
+ spack.solver.asp.WITH_RUNTIME = True
+ yield
+ spack.solver.asp.WITH_RUNTIME = original
+
+
+def test_correct_gcc_runtime_is_injected_as_dependency(runtime_repo):
+ s = spack.spec.Spec("a%gcc@10.2.1 ^b%gcc@4.5.0").concretized()
+ a, b = s["a"], s["b"]
+
+ # Both a and b should depend on the same gcc-runtime directly
+ assert a.dependencies("gcc-runtime") == b.dependencies("gcc-runtime")
+
+ # And the gcc-runtime version should be that of the newest gcc used in the dag.
+ assert a["gcc-runtime"].version == Version("10.2.1")
+
+
+@pytest.mark.regression("41972")
+def test_external_nodes_do_not_have_runtimes(runtime_repo, mutable_config, tmp_path):
+ """Tests that external nodes don't have runtime dependencies."""
+
+ packages_yaml = {"b": {"externals": [{"spec": "b@1.0", "prefix": f"{str(tmp_path)}"}]}}
+ spack.config.set("packages", packages_yaml)
+
+ s = spack.spec.Spec("a%gcc@10.2.1").concretized()
+
+ a, b = s["a"], s["b"]
+
+ # Since b is an external, it doesn't depend on gcc-runtime
+ assert a.dependencies("gcc-runtime")
+ assert a.dependencies("b")
+ assert not b.dependencies("gcc-runtime")
diff --git a/lib/spack/spack/test/concretize_errors.py b/lib/spack/spack/test/concretize_errors.py
index 3499fe63a903de..09ac4e3b93f001 100644
--- a/lib/spack/spack/test/concretize_errors.py
+++ b/lib/spack/spack/test/concretize_errors.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/concretize_preferences.py b/lib/spack/spack/test/concretize_preferences.py
index 929ae0a9ec27a5..74549599afbdf3 100644
--- a/lib/spack/spack/test/concretize_preferences.py
+++ b/lib/spack/spack/test/concretize_preferences.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/concretize_requirements.py b/lib/spack/spack/test/concretize_requirements.py
index d5295691ce0a8b..3ef143fd365c0e 100644
--- a/lib/spack/spack/test/concretize_requirements.py
+++ b/lib/spack/spack/test/concretize_requirements.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,7 @@
import spack.version
from spack.solver.asp import InternalConcretizerError, UnsatisfiableSpecError
from spack.spec import Spec
+from spack.test.conftest import create_test_repo
from spack.util.url import path_to_file_url
pytestmark = [
@@ -92,30 +93,13 @@ class U(Package):
@pytest.fixture
-def create_test_repo(tmpdir, mutable_config):
- repo_path = str(tmpdir)
- repo_yaml = tmpdir.join("repo.yaml")
- with open(str(repo_yaml), "w") as f:
- f.write(
- """\
-repo:
- namespace: testcfgrequirements
-"""
- )
-
- packages_dir = tmpdir.join("packages")
- for pkg_name, pkg_str in [_pkgx, _pkgy, _pkgv, _pkgt, _pkgu]:
- pkg_dir = packages_dir.ensure(pkg_name, dir=True)
- pkg_file = pkg_dir.join("package.py")
- with open(str(pkg_file), "w") as f:
- f.write(pkg_str)
-
- yield spack.repo.Repo(repo_path)
+def _create_test_repo(tmpdir, mutable_config):
+ yield create_test_repo(tmpdir, [_pkgx, _pkgy, _pkgv, _pkgt, _pkgu])
@pytest.fixture
-def test_repo(create_test_repo, monkeypatch, mock_stage):
- with spack.repo.use_repositories(create_test_repo) as mock_repo_path:
+def test_repo(_create_test_repo, monkeypatch, mock_stage):
+ with spack.repo.use_repositories(_create_test_repo) as mock_repo_path:
yield mock_repo_path
@@ -530,7 +514,7 @@ def test_oneof_ordering(concretize_scope, test_repo):
assert s2.satisfies("@2.5")
-def test_reuse_oneof(concretize_scope, create_test_repo, mutable_database, fake_installs):
+def test_reuse_oneof(concretize_scope, _create_test_repo, mutable_database, fake_installs):
conf_str = """\
packages:
y:
@@ -538,7 +522,7 @@ def test_reuse_oneof(concretize_scope, create_test_repo, mutable_database, fake_
- one_of: ["@2.5", "%gcc"]
"""
- with spack.repo.use_repositories(create_test_repo):
+ with spack.repo.use_repositories(_create_test_repo):
s1 = Spec("y@2.5%gcc").concretized()
s1.package.do_install(fake=True, explicit=True)
@@ -872,6 +856,8 @@ def test_skip_requirement_when_default_requirement_condition_cannot_be_met(
def test_requires_directive(concretize_scope, mock_packages):
compilers_yaml = pathlib.Path(concretize_scope) / "compilers.yaml"
+
+ # NOTE: target is omitted here so that the test works on aarch64, as well.
compilers_yaml.write_text(
"""
compilers::
@@ -883,7 +869,6 @@ def test_requires_directive(concretize_scope, mock_packages):
f77: null
fc: null
operating_system: debian6
- target: x86_64
modules: []
"""
)
@@ -896,3 +881,255 @@ def test_requires_directive(concretize_scope, mock_packages):
# This package can only be compiled with clang
with pytest.raises(spack.error.SpackError, match="can only be compiled with Clang"):
Spec("requires_clang").concretized()
+
+
+@pytest.mark.parametrize(
+ "packages_yaml",
+ [
+ # Simple string
+ """
+ packages:
+ all:
+ require: "+shared"
+ """,
+ # List of strings
+ """
+ packages:
+ all:
+ require:
+ - "+shared"
+ """,
+ # Objects with attributes
+ """
+ packages:
+ all:
+ require:
+ - spec: "+shared"
+ """,
+ """
+ packages:
+ all:
+ require:
+ - one_of: ["+shared"]
+ """,
+ ],
+)
+def test_default_requirements_semantic(packages_yaml, concretize_scope, mock_packages):
+ """Tests that requirements under 'all:' are by default applied only if the variant/property
+ required exists, but are strict otherwise.
+
+ For example:
+
+ packages:
+ all:
+ require: "+shared"
+
+ should enforce the value of "+shared" when a Boolean variant named "shared" exists. This is
+ not overridable from the command line, so with the configuration above:
+
+ > spack spec zlib~shared
+
+ is unsatisfiable.
+ """
+ update_packages_config(packages_yaml)
+
+ # Regular zlib concretize to +shared
+ s = Spec("zlib").concretized()
+ assert s.satisfies("+shared")
+
+ # If we specify the variant we can concretize only the one matching the constraint
+ s = Spec("zlib +shared").concretized()
+ assert s.satisfies("+shared")
+ with pytest.raises(UnsatisfiableSpecError):
+ Spec("zlib ~shared").concretized()
+
+ # A spec without the shared variant still concretize
+ s = Spec("a").concretized()
+ assert not s.satisfies("a +shared")
+ assert not s.satisfies("a ~shared")
+
+
+@pytest.mark.parametrize(
+ "packages_yaml,spec_str,expected,not_expected",
+ [
+ # The package has a 'libs' mv variant defaulting to 'libs=shared'
+ (
+ """
+ packages:
+ all:
+ require: "+libs"
+ """,
+ "multivalue-variant",
+ ["libs=shared"],
+ ["libs=static", "+libs"],
+ ),
+ (
+ """
+ packages:
+ all:
+ require: "libs=foo"
+ """,
+ "multivalue-variant",
+ ["libs=shared"],
+ ["libs=static", "libs=foo"],
+ ),
+ (
+ # (TODO): revisit this case when we'll have exact value semantic for mv variants
+ """
+ packages:
+ all:
+ require: "libs=static"
+ """,
+ "multivalue-variant",
+ ["libs=static", "libs=shared"],
+ [],
+ ),
+ (
+ # Constraint apply as a whole, so having a non-existing variant
+ # invalidate the entire constraint
+ """
+ packages:
+ all:
+ require: "libs=static +feefoo"
+ """,
+ "multivalue-variant",
+ ["libs=shared"],
+ ["libs=static"],
+ ),
+ ],
+)
+def test_default_requirements_semantic_with_mv_variants(
+ packages_yaml, spec_str, expected, not_expected, concretize_scope, mock_packages
+):
+ """Tests that requirements under 'all:' are behaving correctly under cases that could stem
+ from MV variants.
+ """
+ update_packages_config(packages_yaml)
+ s = Spec(spec_str).concretized()
+
+ for constraint in expected:
+ assert s.satisfies(constraint), constraint
+
+ for constraint in not_expected:
+ assert not s.satisfies(constraint), constraint
+
+
+@pytest.mark.regression("42084")
+def test_requiring_package_on_multiple_virtuals(concretize_scope, mock_packages):
+ update_packages_config(
+ """
+ packages:
+ all:
+ providers:
+ scalapack: [netlib-scalapack]
+ blas:
+ require: intel-parallel-studio
+ lapack:
+ require: intel-parallel-studio
+ scalapack:
+ require: intel-parallel-studio
+ """
+ )
+ s = Spec("dla-future").concretized()
+
+ assert s["blas"].name == "intel-parallel-studio"
+ assert s["lapack"].name == "intel-parallel-studio"
+ assert s["scalapack"].name == "intel-parallel-studio"
+
+
+@pytest.mark.parametrize(
+ "packages_yaml,spec_str,expected,not_expected",
+ [
+ (
+ """
+ packages:
+ all:
+ prefer:
+ - "%clang"
+ compiler: [gcc]
+ """,
+ "multivalue-variant",
+ ["%clang"],
+ ["%gcc"],
+ ),
+ (
+ """
+ packages:
+ all:
+ prefer:
+ - "%clang"
+ """,
+ "multivalue-variant %gcc",
+ ["%gcc"],
+ ["%clang"],
+ ),
+ # Test parsing objects instead of strings
+ (
+ """
+ packages:
+ all:
+ prefer:
+ - spec: "%clang"
+ compiler: [gcc]
+ """,
+ "multivalue-variant",
+ ["%clang"],
+ ["%gcc"],
+ ),
+ ],
+)
+def test_strong_preferences_packages_yaml(
+ packages_yaml, spec_str, expected, not_expected, concretize_scope, mock_packages
+):
+ """Tests that "preferred" specs are stronger than usual preferences, but can be overridden."""
+ update_packages_config(packages_yaml)
+ s = Spec(spec_str).concretized()
+
+ for constraint in expected:
+ assert s.satisfies(constraint), constraint
+
+ for constraint in not_expected:
+ assert not s.satisfies(constraint), constraint
+
+
+@pytest.mark.parametrize(
+ "packages_yaml,spec_str",
+ [
+ (
+ """
+ packages:
+ all:
+ conflict:
+ - "%clang"
+ """,
+ "multivalue-variant %clang",
+ ),
+ # Use an object instead of a string in configuration
+ (
+ """
+ packages:
+ all:
+ conflict:
+ - spec: "%clang"
+ message: "cannot use clang"
+ """,
+ "multivalue-variant %clang",
+ ),
+ (
+ """
+ packages:
+ multivalue-variant:
+ conflict:
+ - spec: "%clang"
+ when: "@2"
+ message: "cannot use clang with version 2"
+ """,
+ "multivalue-variant@=2.3 %clang",
+ ),
+ ],
+)
+def test_conflict_packages_yaml(packages_yaml, spec_str, concretize_scope, mock_packages):
+ """Tests conflicts that are specified from configuration files."""
+ update_packages_config(packages_yaml)
+ with pytest.raises(UnsatisfiableSpecError):
+ Spec(spec_str).concretized()
diff --git a/lib/spack/spack/test/config.py b/lib/spack/spack/test/config.py
index 2453172bec5838..83a652cd41444b 100644
--- a/lib/spack/spack/test/config.py
+++ b/lib/spack/spack/test/config.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -284,6 +284,13 @@ def test_add_config_path(mutable_config):
set_value = spack.config.get("config")["install_tree"]["projections"]["cmake"]
assert set_value == "{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}"
+ path = 'modules:default:tcl:all:environment:set:"{name}_ROOT":"{prefix}"'
+ spack.config.add(path)
+ set_value = spack.config.get("modules")["default"]["tcl"]["all"]["environment"]["set"]
+ assert r"{name}_ROOT" in set_value
+ assert set_value[r"{name}_ROOT"] == r"{prefix}"
+ assert spack.config.get('modules:default:tcl:all:environment:set:"{name}_ROOT"') == r"{prefix}"
+
# NOTE:
# The config path: "config:install_tree:root:" is unique in that it can accept multiple
# schemas (such as a dropped "root" component) which is atypical and may lead to passing tests
@@ -502,6 +509,34 @@ def test_parse_install_tree(config_settings, expected, mutable_config):
assert projections == expected_proj
+def test_change_or_add(mutable_config, mock_packages):
+ spack.config.add("packages:a:version:['1.0']", scope="user")
+
+ spack.config.add("packages:b:version:['1.1']", scope="system")
+
+ class ChangeTest:
+ def __init__(self, pkg_name, new_version):
+ self.pkg_name = pkg_name
+ self.new_version = new_version
+
+ def find_fn(self, section):
+ return self.pkg_name in section
+
+ def change_fn(self, section):
+ pkg_section = section.get(self.pkg_name, {})
+ pkg_section["version"] = self.new_version
+ section[self.pkg_name] = pkg_section
+
+ change1 = ChangeTest("b", ["1.2"])
+ spack.config.change_or_add("packages", change1.find_fn, change1.change_fn)
+ assert "b" not in mutable_config.get("packages", scope="user")
+ assert mutable_config.get("packages")["b"]["version"] == ["1.2"]
+
+ change2 = ChangeTest("c", ["1.0"])
+ spack.config.change_or_add("packages", change2.find_fn, change2.change_fn)
+ assert "c" in mutable_config.get("packages", scope="user")
+
+
@pytest.mark.not_on_windows("Padding unsupported on Windows")
@pytest.mark.parametrize(
"config_settings,expected",
@@ -1160,7 +1195,7 @@ def test_set_dict_override(mock_low_high_config, write_config_file):
def test_set_bad_path(config):
- with pytest.raises(syaml.SpackYAMLError, match="Illegal leading"):
+ with pytest.raises(ValueError):
with spack.config.override(":bad:path", ""):
pass
@@ -1434,3 +1469,26 @@ def test_config_file_read_invalid_yaml(tmpdir, mutable_empty_config):
with pytest.raises(spack.config.ConfigFileError, match="parsing YAML"):
spack.config.read_config_file(filename)
+
+
+@pytest.mark.parametrize(
+ "path,it_should_work,expected_parsed",
+ [
+ ("x:y:z", True, ["x:", "y:", "z"]),
+ ("x+::y:z", True, ["x+::", "y:", "z"]),
+ ('x:y:"{z}"', True, ["x:", "y:", '"{z}"']),
+ ('x:"y"+:z', True, ["x:", '"y"+:', "z"]),
+ ('x:"y"trail:z', False, None),
+ ("x:y:[1.0]", True, ["x:", "y:", "[1.0]"]),
+ ("x:y:['1.0']", True, ["x:", "y:", "['1.0']"]),
+ ("x:{y}:z", True, ["x:", "{y}:", "z"]),
+ ("x:'{y}':z", True, ["x:", "'{y}':", "z"]),
+ ("x:{y}", True, ["x:", "{y}"]),
+ ],
+)
+def test_config_path_dsl(path, it_should_work, expected_parsed):
+ if it_should_work:
+ assert spack.config.ConfigPath._validate(path) == expected_parsed
+ else:
+ with pytest.raises(ValueError):
+ spack.config.ConfigPath._validate(path)
diff --git a/lib/spack/spack/test/config_values.py b/lib/spack/spack/test/config_values.py
index 618d2c40a81796..70f50f1e88b66f 100644
--- a/lib/spack/spack/test/config_values.py
+++ b/lib/spack/spack/test/config_values.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/conftest.py b/lib/spack/spack/test/conftest.py
index 73c08912199b23..1f6e0542327cb6 100644
--- a/lib/spack/spack/test/conftest.py
+++ b/lib/spack/spack/test/conftest.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,6 +6,7 @@
import collections
import datetime
import errno
+import functools
import inspect
import itertools
import json
@@ -43,6 +44,7 @@
import spack.paths
import spack.platforms
import spack.repo
+import spack.solver.asp
import spack.stage
import spack.store
import spack.subprocess_context
@@ -566,8 +568,8 @@ def mock_repo_path():
def _pkg_install_fn(pkg, spec, prefix):
# sanity_check_prefix requires something in the install directory
mkdirp(prefix.bin)
- if not os.path.exists(spec.package.build_log_path):
- touchp(spec.package.build_log_path)
+ if not os.path.exists(spec.package.install_log_path):
+ touchp(spec.package.install_log_path)
@pytest.fixture
@@ -716,13 +718,13 @@ def configuration_dir(tmpdir_factory, linux_os):
def _create_mock_configuration_scopes(configuration_dir):
"""Create the configuration scopes used in `config` and `mutable_config`."""
- scopes = [spack.config.InternalConfigScope("_builtin", spack.config.CONFIG_DEFAULTS)]
- scopes += [
- spack.config.ConfigScope(name, str(configuration_dir.join(name)))
- for name in ["site", "system", "user"]
+ return [
+ spack.config.InternalConfigScope("_builtin", spack.config.CONFIG_DEFAULTS),
+ spack.config.ConfigScope("site", str(configuration_dir.join("site"))),
+ spack.config.ConfigScope("system", str(configuration_dir.join("system"))),
+ spack.config.ConfigScope("user", str(configuration_dir.join("user"))),
+ spack.config.InternalConfigScope("command_line"),
]
- scopes += [spack.config.InternalConfigScope("command_line")]
- return scopes
@pytest.fixture(scope="session")
@@ -799,13 +801,13 @@ def mock_low_high_config(tmpdir):
def _populate(mock_db):
r"""Populate a mock database with packages.
- Here is what the mock DB looks like:
+ Here is what the mock DB looks like (explicit roots at top):
- o mpileaks o mpileaks' o mpileaks''
- |\ |\ |\
- | o callpath | o callpath' | o callpath''
- |/| |/| |/|
- o | mpich o | mpich2 o | zmpi
+ o mpileaks o mpileaks' o mpileaks'' o externaltest o trivial-smoke-test
+ |\ |\ |\ |
+ | o callpath | o callpath' | o callpath'' o externaltool
+ |/| |/| |/| |
+ o | mpich o | mpich2 o | zmpi o externalvirtual
| | o | fake
| | |
| |______________/
@@ -1950,17 +1952,37 @@ def pytest_runtest_setup(item):
@pytest.fixture(scope="function")
def disable_parallel_buildcache_push(monkeypatch):
- class MockPool:
- def map(self, func, args):
- return [func(a) for a in args]
+ """Disable process pools in tests."""
+ monkeypatch.setattr(spack.cmd.buildcache, "_make_pool", spack.cmd.buildcache.NoPool)
- def starmap(self, func, args):
- return [func(*a) for a in args]
- def __enter__(self):
- return self
+def _root_path(x, y, *, path):
+ return path
- def __exit__(self, *args):
- pass
- monkeypatch.setattr(spack.cmd.buildcache, "_make_pool", MockPool)
+@pytest.fixture
+def mock_modules_root(tmp_path, monkeypatch):
+ """Sets the modules root to a temporary directory, to avoid polluting configuration scopes."""
+ fn = functools.partial(_root_path, path=str(tmp_path))
+ monkeypatch.setattr(spack.modules.common, "root_path", fn)
+
+
+def create_test_repo(tmpdir, pkg_name_content_tuples):
+ repo_path = str(tmpdir)
+ repo_yaml = tmpdir.join("repo.yaml")
+ with open(str(repo_yaml), "w") as f:
+ f.write(
+ """\
+repo:
+ namespace: testcfgrequirements
+"""
+ )
+
+ packages_dir = tmpdir.join("packages")
+ for pkg_name, pkg_str in pkg_name_content_tuples:
+ pkg_dir = packages_dir.ensure(pkg_name, dir=True)
+ pkg_file = pkg_dir.join("package.py")
+ with open(str(pkg_file), "w") as f:
+ f.write(pkg_str)
+
+ return spack.repo.Repo(repo_path)
diff --git a/lib/spack/spack/test/container/cli.py b/lib/spack/spack/test/container/cli.py
index 1ccd47d002a990..bbd111b81eb258 100644
--- a/lib/spack/spack/test/container/cli.py
+++ b/lib/spack/spack/test/container/cli.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/container/conftest.py b/lib/spack/spack/test/container/conftest.py
index b4e48032c88799..974fe4438bf382 100644
--- a/lib/spack/spack/test/container/conftest.py
+++ b/lib/spack/spack/test/container/conftest.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/container/docker.py b/lib/spack/spack/test/container/docker.py
index 9f9f5f3a0f2a32..d23c9c6f86c105 100644
--- a/lib/spack/spack/test/container/docker.py
+++ b/lib/spack/spack/test/container/docker.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/container/images.py b/lib/spack/spack/test/container/images.py
index 8d9a831606352a..eac0f1e1faaddf 100644
--- a/lib/spack/spack/test/container/images.py
+++ b/lib/spack/spack/test/container/images.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/container/singularity.py b/lib/spack/spack/test/container/singularity.py
index 06aec57c8ec9f0..63f06657dc8894 100644
--- a/lib/spack/spack/test/container/singularity.py
+++ b/lib/spack/spack/test/container/singularity.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/cray_manifest.py b/lib/spack/spack/test/cray_manifest.py
index 123e2ac3f12fd6..3a00180da8dd0c 100644
--- a/lib/spack/spack/test/cray_manifest.py
+++ b/lib/spack/spack/test/cray_manifest.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,7 @@
import spack.compilers
import spack.config
import spack.cray_manifest as cray_manifest
+import spack.solver.asp
import spack.spec
import spack.store
from spack.cray_manifest import compiler_from_entry, entries_to_specs
@@ -488,3 +489,23 @@ def test_find_external_nonempty_default_manifest_dir(
spack.cmd.external._collect_and_consume_cray_manifest_files(ignore_default_dir=False)
specs = spack.store.STORE.db.query("hwloc")
assert any(x.dag_hash() == "hwlocfakehashaaa" for x in specs)
+
+
+def test_reusable_externals_cray_manifest(
+ tmpdir, mutable_config, mock_packages, temporary_store, manifest_content
+):
+ """The concretizer should be able to reuse specs imported from a manifest without a
+ externals config entry in packages.yaml"""
+ with tmpdir.as_cwd():
+ with open("external-db.json", "w") as f:
+ json.dump(manifest_content, f)
+ cray_manifest.read(path="external-db.json", apply_updates=True)
+
+ # Get any imported spec
+ spec = temporary_store.db.query_local()[0]
+
+ # Reusable if imported locally
+ assert spack.solver.asp._is_reusable(spec, packages={}, local=True)
+
+ # If cray manifest entries end up in a build cache somehow, they are not reusable
+ assert not spack.solver.asp._is_reusable(spec, packages={}, local=False)
diff --git a/lib/spack/spack/test/cvs_fetch.py b/lib/spack/spack/test/cvs_fetch.py
index 4cf310579988be..b5ca766d52f9a8 100644
--- a/lib/spack/spack/test/cvs_fetch.py
+++ b/lib/spack/spack/test/cvs_fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/config/modules.yaml b/lib/spack/spack/test/data/config/modules.yaml
index 28e2ec91b3d962..f217dd7eaf3379 100644
--- a/lib/spack/spack/test/data/config/modules.yaml
+++ b/lib/spack/spack/test/data/config/modules.yaml
@@ -14,12 +14,7 @@
# ~/.spack/modules.yaml
# -------------------------------------------------------------------------
modules:
- default:
- enable:
- - tcl
- roots:
- tcl: $user_cache_path/tcl
- lmod: $user_cache_path/lmod
+ default: {}
prefix_inspections:
bin:
- PATH
diff --git a/lib/spack/spack/test/data/sourceme_first.sh b/lib/spack/spack/test/data/sourceme_first.sh
index a9f52597c1ea53..bee48156de6921 100644
--- a/lib/spack/spack/test/data/sourceme_first.sh
+++ b/lib/spack/spack/test/data/sourceme_first.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/sourceme_lmod.sh b/lib/spack/spack/test/data/sourceme_lmod.sh
index 3badac8683f1dc..8d156665a71513 100644
--- a/lib/spack/spack/test/data/sourceme_lmod.sh
+++ b/lib/spack/spack/test/data/sourceme_lmod.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/sourceme_modules.sh b/lib/spack/spack/test/data/sourceme_modules.sh
index ee76b4a2aa56f3..d5b478c01f15de 100644
--- a/lib/spack/spack/test/data/sourceme_modules.sh
+++ b/lib/spack/spack/test/data/sourceme_modules.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/sourceme_parameters.sh b/lib/spack/spack/test/data/sourceme_parameters.sh
index bf0de006cfe82b..bc7e622d2a3cd1 100644
--- a/lib/spack/spack/test/data/sourceme_parameters.sh
+++ b/lib/spack/spack/test/data/sourceme_parameters.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/sourceme_second.sh b/lib/spack/spack/test/data/sourceme_second.sh
index 6d51f2a2559e9b..d2860171302aaf 100644
--- a/lib/spack/spack/test/data/sourceme_second.sh
+++ b/lib/spack/spack/test/data/sourceme_second.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/sourceme_unicode.sh b/lib/spack/spack/test/data/sourceme_unicode.sh
index 13805cc8724001..de653f9d394d30 100644
--- a/lib/spack/spack/test/data/sourceme_unicode.sh
+++ b/lib/spack/spack/test/data/sourceme_unicode.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/sourceme_unset.sh b/lib/spack/spack/test/data/sourceme_unset.sh
index a301747d90e1ca..8f96c92d2c9da6 100644
--- a/lib/spack/spack/test/data/sourceme_unset.sh
+++ b/lib/spack/spack/test/data/sourceme_unset.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/style/broken.dummy b/lib/spack/spack/test/data/style/broken.dummy
index 49112f53c9d663..dda84b53a03bf1 100644
--- a/lib/spack/spack/test/data/style/broken.dummy
+++ b/lib/spack/spack/test/data/style/broken.dummy
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/style/fixed.py b/lib/spack/spack/test/data/style/fixed.py
index f51e7325a6dfad..379044eb623a8c 100644
--- a/lib/spack/spack/test/data/style/fixed.py
+++ b/lib/spack/spack/test/data/style/fixed.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/unparse/amdfftw.txt b/lib/spack/spack/test/data/unparse/amdfftw.txt
index ddfbe1c0ff1c40..619dec56651492 100644
--- a/lib/spack/spack/test/data/unparse/amdfftw.txt
+++ b/lib/spack/spack/test/data/unparse/amdfftw.txt
@@ -1,5 +1,5 @@
# -*- python -*-
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/unparse/grads.txt b/lib/spack/spack/test/data/unparse/grads.txt
index c7c98972340362..fd8db21d3b98e4 100644
--- a/lib/spack/spack/test/data/unparse/grads.txt
+++ b/lib/spack/spack/test/data/unparse/grads.txt
@@ -1,5 +1,5 @@
# -*- python -*-
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/unparse/legion.txt b/lib/spack/spack/test/data/unparse/legion.txt
index 21800f95f09b61..d6b37e2c9a5be8 100644
--- a/lib/spack/spack/test/data/unparse/legion.txt
+++ b/lib/spack/spack/test/data/unparse/legion.txt
@@ -1,5 +1,5 @@
# -*- python -*-
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/unparse/llvm.txt b/lib/spack/spack/test/data/unparse/llvm.txt
index 834ab2dc92db00..7fef007b1ec711 100644
--- a/lib/spack/spack/test/data/unparse/llvm.txt
+++ b/lib/spack/spack/test/data/unparse/llvm.txt
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/unparse/mfem.txt b/lib/spack/spack/test/data/unparse/mfem.txt
index d8d11c7dd70c6a..20dea060358533 100644
--- a/lib/spack/spack/test/data/unparse/mfem.txt
+++ b/lib/spack/spack/test/data/unparse/mfem.txt
@@ -1,5 +1,5 @@
# -*- python -*-
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/unparse/py-torch.txt b/lib/spack/spack/test/data/unparse/py-torch.txt
index 268df1924a9918..441d1be914da37 100644
--- a/lib/spack/spack/test/data/unparse/py-torch.txt
+++ b/lib/spack/spack/test/data/unparse/py-torch.txt
@@ -1,5 +1,5 @@
# -*- python -*-
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/data/unparse/trilinos.txt b/lib/spack/spack/test/data/unparse/trilinos.txt
index 9aeccc6620d4e2..ca4564a1d6f81a 100644
--- a/lib/spack/spack/test/data/unparse/trilinos.txt
+++ b/lib/spack/spack/test/data/unparse/trilinos.txt
@@ -1,5 +1,5 @@
# -*- python -*-
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/database.py b/lib/spack/spack/test/database.py
index ee3e5da81ef679..299e908a76d2ec 100644
--- a/lib/spack/spack/test/database.py
+++ b/lib/spack/spack/test/database.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -25,6 +25,7 @@
from llnl.util.tty.colify import colify
import spack.database
+import spack.deptypes as dt
import spack.package_base
import spack.repo
import spack.spec
@@ -778,9 +779,39 @@ def test_query_unused_specs(mutable_database):
s.concretize()
s.package.do_install(fake=True, explicit=True)
- unused = spack.store.STORE.db.unused_specs
- assert len(unused) == 1
- assert unused[0].name == "cmake"
+ si = s.dag_hash()
+ ml_mpich = spack.store.STORE.db.query_one("mpileaks ^mpich").dag_hash()
+ ml_mpich2 = spack.store.STORE.db.query_one("mpileaks ^mpich2").dag_hash()
+ ml_zmpi = spack.store.STORE.db.query_one("mpileaks ^zmpi").dag_hash()
+ externaltest = spack.store.STORE.db.query_one("externaltest").dag_hash()
+ trivial_smoke_test = spack.store.STORE.db.query_one("trivial-smoke-test").dag_hash()
+
+ def check_unused(roots, deptype, expected):
+ unused = spack.store.STORE.db.unused_specs(root_hashes=roots, deptype=deptype)
+ assert set(u.name for u in unused) == set(expected)
+
+ default_dt = dt.LINK | dt.RUN
+ check_unused(None, default_dt, ["cmake"])
+ check_unused(
+ [si, ml_mpich, ml_mpich2, ml_zmpi, externaltest],
+ default_dt,
+ ["trivial-smoke-test", "cmake"],
+ )
+ check_unused(
+ [si, ml_mpich, ml_mpich2, ml_zmpi, externaltest],
+ dt.LINK | dt.RUN | dt.BUILD,
+ ["trivial-smoke-test"],
+ )
+ check_unused(
+ [si, ml_mpich, ml_mpich2, externaltest, trivial_smoke_test],
+ dt.LINK | dt.RUN | dt.BUILD,
+ ["mpileaks", "callpath", "zmpi", "fake"],
+ )
+ check_unused(
+ [si, ml_mpich, ml_mpich2, ml_zmpi],
+ default_dt,
+ ["trivial-smoke-test", "cmake", "externaltest", "externaltool", "externalvirtual"],
+ )
@pytest.mark.regression("10019")
@@ -1008,6 +1039,16 @@ def test_check_parents(spec_str, parent_name, expected_nparents, database):
assert len(edges) == expected_nparents
+def test_db_all_hashes(database):
+ # ensure we get the right number of hashes without a read transaction
+ hashes = database.all_hashes()
+ assert len(hashes) == 17
+
+ # and make sure the hashes match
+ with database.read_transaction():
+ assert set(s.dag_hash() for s in database.query()) == set(hashes)
+
+
def test_consistency_of_dependents_upon_remove(mutable_database):
# Check the initial state
s = mutable_database.query_one("dyninst")
diff --git a/lib/spack/spack/test/detection.py b/lib/spack/spack/test/detection.py
index 6218bc87578f7c..b83562e4e5d4aa 100644
--- a/lib/spack/spack/test/detection.py
+++ b/lib/spack/spack/test/detection.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/directives.py b/lib/spack/spack/test/directives.py
index 677eb043a9e6ed..a878cea6f2710a 100644
--- a/lib/spack/spack/test/directives.py
+++ b/lib/spack/spack/test/directives.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -29,8 +29,8 @@ def test_true_directives_exist(mock_packages):
cls = spack.repo.PATH.get_pkg_class("when-directives-true")
assert cls.dependencies
- assert spack.spec.Spec() in cls.dependencies["extendee"]
- assert spack.spec.Spec() in cls.dependencies["b"]
+ assert "extendee" in cls.dependencies[spack.spec.Spec()]
+ assert "b" in cls.dependencies[spack.spec.Spec()]
assert cls.resources
assert spack.spec.Spec() in cls.resources
@@ -43,10 +43,10 @@ def test_constraints_from_context(mock_packages):
pkg_cls = spack.repo.PATH.get_pkg_class("with-constraint-met")
assert pkg_cls.dependencies
- assert spack.spec.Spec("@1.0") in pkg_cls.dependencies["b"]
+ assert "b" in pkg_cls.dependencies[spack.spec.Spec("@1.0")]
assert pkg_cls.conflicts
- assert (spack.spec.Spec("+foo@1.0"), None) in pkg_cls.conflicts["%gcc"]
+ assert (spack.spec.Spec("%gcc"), None) in pkg_cls.conflicts[spack.spec.Spec("+foo@1.0")]
@pytest.mark.regression("26656")
@@ -54,7 +54,7 @@ def test_constraints_from_context_are_merged(mock_packages):
pkg_cls = spack.repo.PATH.get_pkg_class("with-constraint-met")
assert pkg_cls.dependencies
- assert spack.spec.Spec("@0.14:15 ^b@3.8:4.0") in pkg_cls.dependencies["c"]
+ assert "c" in pkg_cls.dependencies[spack.spec.Spec("@0.14:15 ^b@3.8:4.0")]
@pytest.mark.regression("27754")
@@ -101,7 +101,7 @@ def test_license_directive(config, mock_packages, package_name, expected_license
def test_duplicate_exact_range_license():
package = namedtuple("package", ["licenses", "name"])
- package.licenses = {spack.directives.make_when_spec("+foo"): "Apache-2.0"}
+ package.licenses = {spack.spec.Spec("+foo"): "Apache-2.0"}
package.name = "test_package"
msg = (
@@ -115,7 +115,7 @@ def test_duplicate_exact_range_license():
def test_overlapping_duplicate_licenses():
package = namedtuple("package", ["licenses", "name"])
- package.licenses = {spack.directives.make_when_spec("+foo"): "Apache-2.0"}
+ package.licenses = {spack.spec.Spec("+foo"): "Apache-2.0"}
package.name = "test_package"
msg = (
diff --git a/lib/spack/spack/test/directory_layout.py b/lib/spack/spack/test/directory_layout.py
index 64676bfebcb8d9..6f422818276239 100644
--- a/lib/spack/spack/test/directory_layout.py
+++ b/lib/spack/spack/test/directory_layout.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/env.py b/lib/spack/spack/test/env.py
index 21c59488d15b6b..54ac9a3732d58c 100644
--- a/lib/spack/spack/test/env.py
+++ b/lib/spack/spack/test/env.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -108,6 +108,12 @@ def test_env_change_spec_in_definition(tmp_path, mock_packages, config, mutable_
e.change_existing_spec(spack.spec.Spec("mpileaks@2.2"), list_name="desired_specs")
e.write()
+ # Ensure changed specs are in memory
+ assert any(x.intersects("mpileaks@2.2%gcc") for x in e.user_specs)
+ assert not any(x.intersects("mpileaks@2.1%gcc") for x in e.user_specs)
+
+ # Now make sure the changes can be read from the modified config
+ e = ev.read("test")
assert any(x.intersects("mpileaks@2.2%gcc") for x in e.user_specs)
assert not any(x.intersects("mpileaks@2.1%gcc") for x in e.user_specs)
diff --git a/lib/spack/spack/test/environment_modifications.py b/lib/spack/spack/test/environment_modifications.py
index c2daac3cdb5b05..377f60c54d82ea 100644
--- a/lib/spack/spack/test/environment_modifications.py
+++ b/lib/spack/spack/test/environment_modifications.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/fetch_strategy.py b/lib/spack/spack/test/fetch_strategy.py
index 59c645d4e01997..e4fee6e1a29b8e 100644
--- a/lib/spack/spack/test/fetch_strategy.py
+++ b/lib/spack/spack/test/fetch_strategy.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/flag_handlers.py b/lib/spack/spack/test/flag_handlers.py
index 3e680c1ab7d037..d2b67d63bc3eca 100644
--- a/lib/spack/spack/test/flag_handlers.py
+++ b/lib/spack/spack/test/flag_handlers.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/gcs_fetch.py b/lib/spack/spack/test/gcs_fetch.py
index 76b99714714059..3689e5780c17a4 100644
--- a/lib/spack/spack/test/gcs_fetch.py
+++ b/lib/spack/spack/test/gcs_fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/git_fetch.py b/lib/spack/spack/test/git_fetch.py
index e900628b7b983b..a68eccb2a510f2 100644
--- a/lib/spack/spack/test/git_fetch.py
+++ b/lib/spack/spack/test/git_fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/graph.py b/lib/spack/spack/test/graph.py
index 888d43d914bd5e..338690a72e4105 100644
--- a/lib/spack/spack/test/graph.py
+++ b/lib/spack/spack/test/graph.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/hg_fetch.py b/lib/spack/spack/test/hg_fetch.py
index 48c57dbe6b56ba..6d63f64dc8998a 100644
--- a/lib/spack/spack/test/hg_fetch.py
+++ b/lib/spack/spack/test/hg_fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/hooks/absolutify_elf_sonames.py b/lib/spack/spack/test/hooks/absolutify_elf_sonames.py
index b2f4a6336438be..de38d2e9cb4903 100644
--- a/lib/spack/spack/test/hooks/absolutify_elf_sonames.py
+++ b/lib/spack/spack/test/hooks/absolutify_elf_sonames.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/install.py b/lib/spack/spack/test/install.py
index 467577cead8111..2b65bc9cfb6972 100644
--- a/lib/spack/spack/test/install.py
+++ b/lib/spack/spack/test/install.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,10 +12,12 @@
import llnl.util.filesystem as fs
import spack.error
+import spack.mirror
import spack.patch
import spack.repo
import spack.store
import spack.util.spack_json as sjson
+from spack import binary_distribution
from spack.package_base import (
InstallError,
PackageBase,
@@ -118,59 +120,25 @@ def remove_prefix(self):
self.wrapped_rm_prefix()
-class MockStage:
- def __init__(self, wrapped_stage):
- self.wrapped_stage = wrapped_stage
- self.test_destroyed = False
-
- def __enter__(self):
- self.create()
- return self
-
- def __exit__(self, exc_type, exc_val, exc_tb):
- if exc_type is None:
- self.destroy()
-
- def destroy(self):
- self.test_destroyed = True
- self.wrapped_stage.destroy()
-
- def create(self):
- self.wrapped_stage.create()
-
- def __getattr__(self, attr):
- if attr == "wrapped_stage":
- # This attribute may not be defined at some point during unpickling
- raise AttributeError()
- return getattr(self.wrapped_stage, attr)
-
-
def test_partial_install_delete_prefix_and_stage(install_mockery, mock_fetch, working_env):
s = Spec("canfail").concretized()
instance_rm_prefix = s.package.remove_prefix
- try:
- s.package.remove_prefix = mock_remove_prefix
- with pytest.raises(MockInstallError):
- s.package.do_install()
- assert os.path.isdir(s.package.prefix)
- rm_prefix_checker = RemovePrefixChecker(instance_rm_prefix)
- s.package.remove_prefix = rm_prefix_checker.remove_prefix
-
- # must clear failure markings for the package before re-installing it
- spack.store.STORE.failure_tracker.clear(s, True)
-
- s.package.set_install_succeed()
- s.package.stage = MockStage(s.package.stage)
+ s.package.remove_prefix = mock_remove_prefix
+ with pytest.raises(MockInstallError):
+ s.package.do_install()
+ assert os.path.isdir(s.package.prefix)
+ rm_prefix_checker = RemovePrefixChecker(instance_rm_prefix)
+ s.package.remove_prefix = rm_prefix_checker.remove_prefix
- s.package.do_install(restage=True)
- assert rm_prefix_checker.removed
- assert s.package.stage.test_destroyed
- assert s.package.spec.installed
+ # must clear failure markings for the package before re-installing it
+ spack.store.STORE.failure_tracker.clear(s, True)
- finally:
- s.package.remove_prefix = instance_rm_prefix
+ s.package.set_install_succeed()
+ s.package.do_install(restage=True)
+ assert rm_prefix_checker.removed
+ assert s.package.spec.installed
@pytest.mark.disable_clean_stage_check
@@ -357,10 +325,8 @@ def test_partial_install_keep_prefix(install_mockery, mock_fetch, monkeypatch, w
spack.store.STORE.failure_tracker.clear(s, True)
s.package.set_install_succeed()
- s.package.stage = MockStage(s.package.stage)
s.package.do_install(keep_prefix=True)
assert s.package.spec.installed
- assert not s.package.stage.test_destroyed
def test_second_install_no_overwrite_first(install_mockery, mock_fetch, monkeypatch):
@@ -478,41 +444,15 @@ def test_nosource_pkg_install_post_install(install_mockery, mock_fetch, mock_pac
def test_pkg_build_paths(install_mockery):
# Get a basic concrete spec for the trivial install package.
spec = Spec("trivial-install-test-package").concretized()
-
- log_path = spec.package.log_path
- assert log_path.endswith(_spack_build_logfile)
-
- env_path = spec.package.env_path
- assert env_path.endswith(_spack_build_envfile)
-
- # Backward compatibility checks
- log_dir = os.path.dirname(log_path)
- fs.mkdirp(log_dir)
- with fs.working_dir(log_dir):
- # Start with the older of the previous log filenames
- older_log = "spack-build.out"
- fs.touch(older_log)
- assert spec.package.log_path.endswith(older_log)
-
- # Now check the newer log filename
- last_log = "spack-build.txt"
- fs.rename(older_log, last_log)
- assert spec.package.log_path.endswith(last_log)
-
- # Check the old environment file
- last_env = "spack-build.env"
- fs.rename(last_log, last_env)
- assert spec.package.env_path.endswith(last_env)
-
- # Cleanup
- shutil.rmtree(log_dir)
+ assert spec.package.log_path.endswith(_spack_build_logfile)
+ assert spec.package.env_path.endswith(_spack_build_envfile)
def test_pkg_install_paths(install_mockery):
# Get a basic concrete spec for the trivial install package.
spec = Spec("trivial-install-test-package").concretized()
- log_path = os.path.join(spec.prefix, ".spack", _spack_build_logfile)
+ log_path = os.path.join(spec.prefix, ".spack", _spack_build_logfile + ".gz")
assert spec.package.install_log_path == log_path
env_path = os.path.join(spec.prefix, ".spack", _spack_build_envfile)
@@ -644,3 +584,48 @@ def test_empty_install_sanity_check_prefix(
spec = Spec("failing-empty-install").concretized()
with pytest.raises(spack.build_environment.ChildError, match="Nothing was installed"):
spec.package.do_install()
+
+
+def test_install_from_binary_with_missing_patch_succeeds(
+ temporary_store: spack.store.Store, mutable_config, tmp_path, mock_packages
+):
+ """If a patch is missing in the local package repository, but was present when building and
+ pushing the package to a binary cache, installation from that binary cache shouldn't error out
+ because of the missing patch."""
+ # Create a spec s with non-existing patches
+ s = Spec("trivial-install-test-package").concretized()
+ patches = ["a" * 64]
+ s_dict = s.to_dict()
+ s_dict["spec"]["nodes"][0]["patches"] = patches
+ s_dict["spec"]["nodes"][0]["parameters"]["patches"] = patches
+ s = Spec.from_dict(s_dict)
+
+ # Create an install dir for it
+ os.makedirs(os.path.join(s.prefix, ".spack"))
+ with open(os.path.join(s.prefix, ".spack", "spec.json"), "w") as f:
+ s.to_json(f)
+
+ # And register it in the database
+ temporary_store.db.add(s, directory_layout=temporary_store.layout, explicit=True)
+
+ # Push it to a binary cache
+ build_cache = tmp_path / "my_build_cache"
+ binary_distribution.push_or_raise(
+ s,
+ build_cache.as_uri(),
+ binary_distribution.PushOptions(unsigned=True, regenerate_index=True),
+ )
+
+ # Now re-install it.
+ s.package.do_uninstall()
+ assert not temporary_store.db.query_local_by_spec_hash(s.dag_hash())
+
+ # Source install: fails, we don't have the patch.
+ with pytest.raises(spack.error.SpecError, match="Couldn't find patch for package"):
+ s.package.do_install()
+
+ # Binary install: succeeds, we don't need the patch.
+ spack.mirror.add(spack.mirror.Mirror.from_local_path(str(build_cache)))
+ s.package.do_install(package_cache_only=True, dependencies_cache_only=True, unsigned=True)
+
+ assert temporary_store.db.query_local_by_spec_hash(s.dag_hash())
diff --git a/lib/spack/spack/test/installer.py b/lib/spack/spack/test/installer.py
index d28d3f44c387bd..ebe5ec0e0021ae 100644
--- a/lib/spack/spack/test/installer.py
+++ b/lib/spack/spack/test/installer.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -165,23 +165,19 @@ def test_install_msg(monkeypatch):
assert inst.install_msg(name, pid, None) == expected
-def test_install_from_cache_errors(install_mockery, capsys):
- """Test to ensure cover _install_from_cache errors."""
+def test_install_from_cache_errors(install_mockery):
+ """Test to ensure cover install from cache errors."""
spec = spack.spec.Spec("trivial-install-test-package")
spec.concretize()
assert spec.concrete
# Check with cache-only
- with pytest.raises(SystemExit):
- inst._install_from_cache(spec.package, True, True, False)
-
- captured = str(capsys.readouterr())
- assert "No binary" in captured
- assert "found when cache-only specified" in captured
+ with pytest.raises(inst.InstallError, match="No binary found when cache-only was specified"):
+ spec.package.do_install(package_cache_only=True, dependencies_cache_only=True)
assert not spec.package.installed_from_binary_cache
# Check when don't expect to install only from binary cache
- assert not inst._install_from_cache(spec.package, False, True, False)
+ assert not inst._install_from_cache(spec.package, explicit=True, unsigned=False)
assert not spec.package.installed_from_binary_cache
@@ -192,7 +188,7 @@ def test_install_from_cache_ok(install_mockery, monkeypatch):
monkeypatch.setattr(inst, "_try_install_from_binary_cache", _true)
monkeypatch.setattr(spack.hooks, "post_install", _noop)
- assert inst._install_from_cache(spec.package, True, True, False)
+ assert inst._install_from_cache(spec.package, explicit=True, unsigned=False)
def test_process_external_package_module(install_mockery, monkeypatch, capfd):
diff --git a/lib/spack/spack/test/link_paths.py b/lib/spack/spack/test/link_paths.py
index 923637b6978228..2d62c59de61f0d 100644
--- a/lib/spack/spack/test/link_paths.py
+++ b/lib/spack/spack/test/link_paths.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/llnl/llnl_string.py b/lib/spack/spack/test/llnl/llnl_string.py
index 93d7e662c57bea..9533212a595c82 100644
--- a/lib/spack/spack/test/llnl/llnl_string.py
+++ b/lib/spack/spack/test/llnl/llnl_string.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/llnl/url.py b/lib/spack/spack/test/llnl/url.py
index 8da8e727ec5587..1afee9c05cd342 100644
--- a/lib/spack/spack/test/llnl/url.py
+++ b/lib/spack/spack/test/llnl/url.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/llnl/util/__init__.py b/lib/spack/spack/test/llnl/util/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/spack/test/llnl/util/__init__.py
+++ b/lib/spack/spack/test/llnl/util/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/llnl/util/argparsewriter.py b/lib/spack/spack/test/llnl/util/argparsewriter.py
index 433833c6a21147..1ea1a8e90604f2 100644
--- a/lib/spack/spack/test/llnl/util/argparsewriter.py
+++ b/lib/spack/spack/test/llnl/util/argparsewriter.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/llnl/util/file_list.py b/lib/spack/spack/test/llnl/util/file_list.py
index 425ce641bd135d..75ba3ae89d9aca 100644
--- a/lib/spack/spack/test/llnl/util/file_list.py
+++ b/lib/spack/spack/test/llnl/util/file_list.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/llnl/util/filesystem.py b/lib/spack/spack/test/llnl/util/filesystem.py
index eae5c732c6b302..e9c8b758d9af14 100644
--- a/lib/spack/spack/test/llnl/util/filesystem.py
+++ b/lib/spack/spack/test/llnl/util/filesystem.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/llnl/util/lang.py b/lib/spack/spack/test/llnl/util/lang.py
index 2cce9f155e4cf2..abf2c5b1346bd3 100644
--- a/lib/spack/spack/test/llnl/util/lang.py
+++ b/lib/spack/spack/test/llnl/util/lang.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -321,3 +321,18 @@ def inner():
"""
).format(__file__)
)
+
+
+def test_grouped_exception_base_type():
+ h = llnl.util.lang.GroupedExceptionHandler()
+
+ with h.forward("catch-runtime-error", RuntimeError):
+ raise NotImplementedError()
+
+ with pytest.raises(NotImplementedError):
+ with h.forward("catch-value-error", ValueError):
+ raise NotImplementedError()
+
+ message = h.grouped_message(with_tracebacks=False)
+ assert "catch-runtime-error" in message
+ assert "catch-value-error" not in message
diff --git a/lib/spack/spack/test/llnl/util/link_tree.py b/lib/spack/spack/test/llnl/util/link_tree.py
index 9d154014b174c9..febad1d7736190 100644
--- a/lib/spack/spack/test/llnl/util/link_tree.py
+++ b/lib/spack/spack/test/llnl/util/link_tree.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/llnl/util/lock.py b/lib/spack/spack/test/llnl/util/lock.py
index 9e7f3a3bde31b5..f7bf4503af7c25 100644
--- a/lib/spack/spack/test/llnl/util/lock.py
+++ b/lib/spack/spack/test/llnl/util/lock.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,7 +18,7 @@
mpirun -n 7 spack test lock
And it will test locking correctness among MPI processes. Ideally, you
-want the MPI processes to span across multiple nodes, so, e.g., for SLURM
+want the MPI processes to span across multiple nodes, so, e.g., for Slurm
you might do this::
srun -N 7 -n 7 -m cyclic spack test lock
diff --git a/lib/spack/spack/test/llnl/util/symlink.py b/lib/spack/spack/test/llnl/util/symlink.py
index bbc69473f86648..6e34c97fc4f142 100644
--- a/lib/spack/spack/test/llnl/util/symlink.py
+++ b/lib/spack/spack/test/llnl/util/symlink.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/llnl/util/tty/__init__.py b/lib/spack/spack/test/llnl/util/tty/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/spack/test/llnl/util/tty/__init__.py
+++ b/lib/spack/spack/test/llnl/util/tty/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/llnl/util/tty/log.py b/lib/spack/spack/test/llnl/util/tty/log.py
index 228c2f30448e06..b2f8cd8a9eb0f5 100644
--- a/lib/spack/spack/test/llnl/util/tty/log.py
+++ b/lib/spack/spack/test/llnl/util/tty/log.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/llnl/util/tty/tty.py b/lib/spack/spack/test/llnl/util/tty/tty.py
index ff65ce6594e578..ffbe2f07d606c0 100644
--- a/lib/spack/spack/test/llnl/util/tty/tty.py
+++ b/lib/spack/spack/test/llnl/util/tty/tty.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/main.py b/lib/spack/spack/test/main.py
index b4d831cec8e733..ed66df4c88d1fe 100644
--- a/lib/spack/spack/test/main.py
+++ b/lib/spack/spack/test/main.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/make_executable.py b/lib/spack/spack/test/make_executable.py
index 5716ca5a48dea8..0dd0109e90bff5 100644
--- a/lib/spack/spack/test/make_executable.py
+++ b/lib/spack/spack/test/make_executable.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/mirror.py b/lib/spack/spack/test/mirror.py
index 450a5b282ebc19..5e855be00aee43 100644
--- a/lib/spack/spack/test/mirror.py
+++ b/lib/spack/spack/test/mirror.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/module_parsing.py b/lib/spack/spack/test/module_parsing.py
index 6ac41847211dee..568a9846b79508 100644
--- a/lib/spack/spack/test/module_parsing.py
+++ b/lib/spack/spack/test/module_parsing.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/modules/__init__.py b/lib/spack/spack/test/modules/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/spack/test/modules/__init__.py
+++ b/lib/spack/spack/test/modules/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/modules/common.py b/lib/spack/spack/test/modules/common.py
index 11b4305b4844df..7586728a8bc126 100644
--- a/lib/spack/spack/test/modules/common.py
+++ b/lib/spack/spack/test/modules/common.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,7 +17,10 @@
from spack.modules.common import UpstreamModuleIndex
from spack.spec import Spec
-pytestmark = pytest.mark.not_on_windows("does not run on windows")
+pytestmark = [
+ pytest.mark.not_on_windows("does not run on windows"),
+ pytest.mark.usefixtures("mock_modules_root"),
+]
def test_update_dictionary_extending_list():
@@ -174,6 +177,7 @@ def test_load_installed_package_not_in_repo(install_mockery, mock_fetch, monkeyp
"""Test that installed packages that have been removed are still loadable"""
spec = Spec("trivial-install-test-package").concretized()
spec.package.do_install()
+ spack.modules.module_types["tcl"](spec, "default", True).write()
def find_nothing(*args):
raise spack.repo.UnknownPackageError("Repo package access is disabled for test")
diff --git a/lib/spack/spack/test/modules/conftest.py b/lib/spack/spack/test/modules/conftest.py
index 210a88a65f8ad3..57396da426fb30 100644
--- a/lib/spack/spack/test/modules/conftest.py
+++ b/lib/spack/spack/test/modules/conftest.py
@@ -1,7 +1,9 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+import pathlib
+
import pytest
import spack.config
@@ -13,26 +15,15 @@
@pytest.fixture()
def modulefile_content(request):
- """Returns a function that generates the content of a module file
- as a list of lines.
- """
-
+ """Returns a function that generates the content of a module file as a list of lines."""
writer_cls = getattr(request.module, "writer_cls")
def _impl(spec_str, module_set_name="default", explicit=True):
- # Write the module file
- spec = spack.spec.Spec(spec_str)
- spec.concretize()
+ spec = spack.spec.Spec(spec_str).concretized()
generator = writer_cls(spec, module_set_name, explicit)
generator.write(overwrite=True)
-
- # Get its filename
- filename = generator.layout.filename
-
- # Retrieve the content
- with open(filename) as f:
- content = f.readlines()
- content = "".join(content).split("\n")
+ written_module = pathlib.Path(generator.layout.filename)
+ content = written_module.read_text().splitlines()
generator.remove()
return content
@@ -40,27 +31,21 @@ def _impl(spec_str, module_set_name="default", explicit=True):
@pytest.fixture()
-def factory(request):
- """Function that, given a spec string, returns an instance of the writer
- and the corresponding spec.
- """
-
- # Class of the module file writer
+def factory(request, mock_modules_root):
+ """Given a spec string, returns an instance of the writer and the corresponding spec."""
writer_cls = getattr(request.module, "writer_cls")
def _mock(spec_string, module_set_name="default", explicit=True):
- spec = spack.spec.Spec(spec_string)
- spec.concretize()
+ spec = spack.spec.Spec(spec_string).concretized()
return writer_cls(spec, module_set_name, explicit), spec
return _mock
@pytest.fixture()
-def mock_module_filename(monkeypatch, tmpdir):
- filename = str(tmpdir.join("module"))
+def mock_module_filename(monkeypatch, tmp_path):
+ filename = tmp_path / "module"
# Set for both module types so we can test both
- monkeypatch.setattr(spack.modules.lmod.LmodFileLayout, "filename", filename)
- monkeypatch.setattr(spack.modules.tcl.TclFileLayout, "filename", filename)
-
- yield filename
+ monkeypatch.setattr(spack.modules.lmod.LmodFileLayout, "filename", str(filename))
+ monkeypatch.setattr(spack.modules.tcl.TclFileLayout, "filename", str(filename))
+ yield str(filename)
diff --git a/lib/spack/spack/test/modules/lmod.py b/lib/spack/spack/test/modules/lmod.py
index ecb6ae6db80992..26224378b24f19 100644
--- a/lib/spack/spack/test/modules/lmod.py
+++ b/lib/spack/spack/test/modules/lmod.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,7 +21,10 @@
#: Class of the writer tested in this module
writer_cls = spack.modules.lmod.LmodModulefileWriter
-pytestmark = pytest.mark.not_on_windows("does not run on windows")
+pytestmark = [
+ pytest.mark.not_on_windows("does not run on windows"),
+ pytest.mark.usefixtures("mock_modules_root"),
+]
@pytest.fixture(params=["clang@=12.0.0", "gcc@=10.2.1"])
diff --git a/lib/spack/spack/test/modules/tcl.py b/lib/spack/spack/test/modules/tcl.py
index b69a4482c27160..7821d631c76a50 100644
--- a/lib/spack/spack/test/modules/tcl.py
+++ b/lib/spack/spack/test/modules/tcl.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,7 +18,10 @@
#: Class of the writer tested in this module
writer_cls = spack.modules.tcl.TclModulefileWriter
-pytestmark = pytest.mark.not_on_windows("does not run on windows")
+pytestmark = [
+ pytest.mark.not_on_windows("does not run on windows"),
+ pytest.mark.usefixtures("mock_modules_root"),
+]
@pytest.mark.usefixtures("config", "mock_packages", "mock_module_filename")
@@ -285,7 +288,7 @@ def test_projections_all(self, factory, module_configuration):
projection = writer.spec.format(writer.conf.projections["all"])
assert projection in writer.layout.use_name
- def test_invalid_naming_scheme(self, factory, module_configuration, mock_module_filename):
+ def test_invalid_naming_scheme(self, factory, module_configuration):
"""Tests the evaluation of an invalid naming scheme."""
module_configuration("invalid_naming_scheme")
@@ -296,7 +299,7 @@ def test_invalid_naming_scheme(self, factory, module_configuration, mock_module_
with pytest.raises(RuntimeError):
writer.layout.use_name
- def test_invalid_token_in_env_name(self, factory, module_configuration, mock_module_filename):
+ def test_invalid_token_in_env_name(self, factory, module_configuration):
"""Tests setting environment variables with an invalid name."""
module_configuration("invalid_token_in_env_var_name")
diff --git a/lib/spack/spack/test/multimethod.py b/lib/spack/spack/test/multimethod.py
index 76e06ab3a7fa24..e4546c5139204f 100644
--- a/lib/spack/spack/test/multimethod.py
+++ b/lib/spack/spack/test/multimethod.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/namespace_trie.py b/lib/spack/spack/test/namespace_trie.py
index 39f7d3ca844cc6..6df74b461a8e10 100644
--- a/lib/spack/spack/test/namespace_trie.py
+++ b/lib/spack/spack/test/namespace_trie.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/oci/image.py b/lib/spack/spack/test/oci/image.py
index b074cc679af0a6..f16f519a147926 100644
--- a/lib/spack/spack/test/oci/image.py
+++ b/lib/spack/spack/test/oci/image.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/oci/integration_test.py b/lib/spack/spack/test/oci/integration_test.py
index b2f9366c3a5fbf..8129dd22cf2e4e 100644
--- a/lib/spack/spack/test/oci/integration_test.py
+++ b/lib/spack/spack/test/oci/integration_test.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,15 +11,18 @@
import os
from contextlib import contextmanager
+import spack.environment as ev
import spack.oci.opener
-from spack.binary_distribution import gzip_compressed_tarfile
from spack.main import SpackCommand
from spack.oci.image import Digest, ImageReference, default_config, default_manifest
from spack.oci.oci import blob_exists, get_manifest_and_config, upload_blob, upload_manifest
from spack.test.oci.mock_registry import DummyServer, InMemoryOCIRegistry, create_opener
+from spack.util.archive import gzip_compressed_tarfile
buildcache = SpackCommand("buildcache")
mirror = SpackCommand("mirror")
+env = SpackCommand("env")
+install = SpackCommand("install")
@contextmanager
@@ -53,6 +56,46 @@ def test_buildcache_push_command(mutable_database, disable_parallel_buildcache_p
assert os.path.exists(os.path.join(spec.prefix, "bin", "mpileaks"))
+def test_buildcache_tag(
+ install_mockery, mock_fetch, mutable_mock_env_path, disable_parallel_buildcache_push
+):
+ """Tests whether we can create an OCI image from a full environment with multiple roots."""
+ env("create", "test")
+ with ev.read("test"):
+ install("--add", "libelf")
+ install("--add", "trivial-install-test-package")
+
+ registry = InMemoryOCIRegistry("example.com")
+
+ with oci_servers(registry):
+ mirror("add", "oci-test", "oci://example.com/image")
+
+ with ev.read("test"):
+ buildcache("push", "--tag", "full_env", "oci-test")
+
+ name = ImageReference.from_string("example.com/image:full_env")
+
+ with ev.read("test") as e:
+ specs = e.all_specs()
+
+ manifest, config = get_manifest_and_config(name)
+
+ # without a base image, we should have one layer per spec
+ assert len(manifest["layers"]) == len(specs)
+
+ # Now create yet another tag, but with just a single selected spec as root. This should
+ # also test the case where Spack doesn't have to upload any binaries, it just has to create
+ # a new tag.
+ libelf = next(s for s in specs if s.name == "libelf")
+ with ev.read("test"):
+ # Get libelf spec
+ buildcache("push", "--tag", "single_spec", "oci-test", libelf.format("libelf{/hash}"))
+
+ name = ImageReference.from_string("example.com/image:single_spec")
+ manifest, config = get_manifest_and_config(name)
+ assert len(manifest["layers"]) == 1
+
+
def test_buildcache_push_with_base_image_command(
mutable_database, tmpdir, disable_parallel_buildcache_push
):
diff --git a/lib/spack/spack/test/oci/mock_registry.py b/lib/spack/spack/test/oci/mock_registry.py
index ec3e85c333ab7e..1bdf33a5d8bfe3 100644
--- a/lib/spack/spack/test/oci/mock_registry.py
+++ b/lib/spack/spack/test/oci/mock_registry.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/oci/urlopen.py b/lib/spack/spack/test/oci/urlopen.py
index 16efdfe12d9673..78d713f7e84af2 100644
--- a/lib/spack/spack/test/oci/urlopen.py
+++ b/lib/spack/spack/test/oci/urlopen.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/operating_system.py b/lib/spack/spack/test/operating_system.py
index 14b32c0db136a4..79c7e828dada2f 100644
--- a/lib/spack/spack/test/operating_system.py
+++ b/lib/spack/spack/test/operating_system.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/optional_deps.py b/lib/spack/spack/test/optional_deps.py
index e7a8676ab766a2..8d1c7e37e813ca 100644
--- a/lib/spack/spack/test/optional_deps.py
+++ b/lib/spack/spack/test/optional_deps.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/package_class.py b/lib/spack/spack/test/package_class.py
index 279693a529b81b..915a53400d2da7 100644
--- a/lib/spack/spack/test/package_class.py
+++ b/lib/spack/spack/test/package_class.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -71,7 +71,8 @@ def test_possible_direct_dependencies(mock_packages, mpileaks_possible_deps):
def test_possible_dependencies_virtual(mock_packages, mpi_names):
expected = dict(
- (name, set(spack.repo.PATH.get_pkg_class(name).dependencies)) for name in mpi_names
+ (name, set(dep for dep in spack.repo.PATH.get_pkg_class(name).dependencies_by_name()))
+ for name in mpi_names
)
# only one mock MPI has a dependency
@@ -268,12 +269,6 @@ def test_package_fetcher_fails():
pkg.fetcher
-def test_package_no_extendees():
- s = spack.spec.Spec("a")
- pkg = BaseTestPackage(s)
- assert pkg.extendee_args is None
-
-
def test_package_test_no_compilers(mock_packages, monkeypatch, capfd):
def compilers(compiler, arch_spec):
return None
diff --git a/lib/spack/spack/test/packages.py b/lib/spack/spack/test/packages.py
index 4a5831dce707fc..f2507ee57e1a17 100644
--- a/lib/spack/spack/test/packages.py
+++ b/lib/spack/spack/test/packages.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -61,14 +61,15 @@ def test_import_package_as(self):
import spack.pkg.builtin.mock.mpich as mp # noqa: F401
from spack.pkg.builtin import mock # noqa: F401
- def test_inheritance_of_diretives(self):
+ def test_inheritance_of_directives(self):
pkg_cls = spack.repo.PATH.get_pkg_class("simple-inheritance")
# Check dictionaries that should have been filled by directives
- assert len(pkg_cls.dependencies) == 3
- assert "cmake" in pkg_cls.dependencies
- assert "openblas" in pkg_cls.dependencies
- assert "mpi" in pkg_cls.dependencies
+ dependencies = pkg_cls.dependencies_by_name()
+ assert len(dependencies) == 3
+ assert "cmake" in dependencies
+ assert "openblas" in dependencies
+ assert "mpi" in dependencies
assert len(pkg_cls.provided) == 2
# Check that Spec instantiation behaves as we expect
diff --git a/lib/spack/spack/test/packaging.py b/lib/spack/spack/test/packaging.py
index bd49cf94aee863..92ff4f6961d6d6 100644
--- a/lib/spack/spack/test/packaging.py
+++ b/lib/spack/spack/test/packaging.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/patch.py b/lib/spack/spack/test/patch.py
index bfd918035b6ee2..e025994cced371 100644
--- a/lib/spack/spack/test/patch.py
+++ b/lib/spack/spack/test/patch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -196,16 +196,18 @@ def test_nested_directives(mock_packages):
# this ensures that results of dependency patches were properly added
# to Dependency objects.
- libelf_dep = next(iter(patcher.dependencies["libelf"].values()))
+ deps_by_name = patcher.dependencies_by_name()
+
+ libelf_dep = deps_by_name["libelf"][0]
assert len(libelf_dep.patches) == 1
assert len(libelf_dep.patches[Spec()]) == 1
- libdwarf_dep = next(iter(patcher.dependencies["libdwarf"].values()))
+ libdwarf_dep = deps_by_name["libdwarf"][0]
assert len(libdwarf_dep.patches) == 2
assert len(libdwarf_dep.patches[Spec()]) == 1
assert len(libdwarf_dep.patches[Spec("@20111030")]) == 1
- fake_dep = next(iter(patcher.dependencies["fake"].values()))
+ fake_dep = deps_by_name["fake"][0]
assert len(fake_dep.patches) == 1
assert len(fake_dep.patches[Spec()]) == 2
diff --git a/lib/spack/spack/test/pattern.py b/lib/spack/spack/test/pattern.py
index ccf43c96f1b6de..e68c59429744c6 100644
--- a/lib/spack/spack/test/pattern.py
+++ b/lib/spack/spack/test/pattern.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/permissions.py b/lib/spack/spack/test/permissions.py
index 841595c516410b..606a2ed504a55e 100644
--- a/lib/spack/spack/test/permissions.py
+++ b/lib/spack/spack/test/permissions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/provider_index.py b/lib/spack/spack/test/provider_index.py
index d11c87f2c22233..9bc2298ce503b1 100644
--- a/lib/spack/spack/test/provider_index.py
+++ b/lib/spack/spack/test/provider_index.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/relocate.py b/lib/spack/spack/test/relocate.py
index cc09730a13c51c..6c8c0b1594c948 100644
--- a/lib/spack/spack/test/relocate.py
+++ b/lib/spack/spack/test/relocate.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/relocate_text.py b/lib/spack/spack/test/relocate_text.py
index a92497ce16f2bb..ead3dc2971a21f 100644
--- a/lib/spack/spack/test/relocate_text.py
+++ b/lib/spack/spack/test/relocate_text.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/repo.py b/lib/spack/spack/test/repo.py
index eb6b12391625aa..877b4af243ac50 100644
--- a/lib/spack/spack/test/repo.py
+++ b/lib/spack/spack/test/repo.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/reporters.py b/lib/spack/spack/test/reporters.py
index 4d3103f3e3d964..d1a78f6d7e4842 100644
--- a/lib/spack/spack/test/reporters.py
+++ b/lib/spack/spack/test/reporters.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/rewiring.py b/lib/spack/spack/test/rewiring.py
index 8c0286a2436416..f082b1b1539964 100644
--- a/lib/spack/spack/test/rewiring.py
+++ b/lib/spack/spack/test/rewiring.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/s3_fetch.py b/lib/spack/spack/test/s3_fetch.py
index 241d2648b504a2..66c4cd7bc4b15a 100644
--- a/lib/spack/spack/test/s3_fetch.py
+++ b/lib/spack/spack/test/s3_fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/sbang.py b/lib/spack/spack/test/sbang.py
index 8f3396bb46180d..e409f49c61bdad 100644
--- a/lib/spack/spack/test/sbang.py
+++ b/lib/spack/spack/test/sbang.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/schema.py b/lib/spack/spack/test/schema.py
index 916e61cf26c821..2bf18f9195f26d 100644
--- a/lib/spack/spack/test/schema.py
+++ b/lib/spack/spack/test/schema.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/spack_yaml.py b/lib/spack/spack/test/spack_yaml.py
index 168a5563236f71..4f3c035724ccd9 100644
--- a/lib/spack/spack/test/spack_yaml.py
+++ b/lib/spack/spack/test/spack_yaml.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/spec_dag.py b/lib/spack/spack/test/spec_dag.py
index 3a9c0350ae48a9..da85be6d1c7e90 100644
--- a/lib/spack/spack/test/spec_dag.py
+++ b/lib/spack/spack/test/spec_dag.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -51,7 +51,7 @@ def _mock(pkg_name, spec):
cond = Spec(pkg_cls.name)
dependency = Dependency(pkg_cls, spec)
- monkeypatch.setitem(pkg_cls.dependencies, spec.name, {cond: dependency})
+ monkeypatch.setitem(pkg_cls.dependencies, cond, {spec.name: dependency})
return _mock
@@ -322,7 +322,7 @@ def test_conflicting_spec_constraints(self):
)[0].spec = Spec("mpich@2.0")
with pytest.raises(spack.spec.InconsistentSpecError):
- mpileaks.flat_dependencies(copy=False)
+ mpileaks.flat_dependencies()
def test_normalize_twice(self):
"""Make sure normalize can be run twice on the same spec,
diff --git a/lib/spack/spack/test/spec_list.py b/lib/spack/spack/test/spec_list.py
index bd72f2fe4a4753..db31146df7cc9a 100644
--- a/lib/spack/spack/test/spec_list.py
+++ b/lib/spack/spack/test/spec_list.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/spec_semantics.py b/lib/spack/spack/test/spec_semantics.py
index 08caba1518ee88..d159bf744ae95e 100644
--- a/lib/spack/spack/test/spec_semantics.py
+++ b/lib/spack/spack/test/spec_semantics.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -1288,6 +1288,17 @@ def test_call_dag_hash_on_old_dag_hash_spec(mock_packages, default_mock_concreti
spec.package_hash()
+def test_spec_trim(mock_packages, config):
+ top = Spec("dt-diamond").concretized()
+ top.trim("dt-diamond-left")
+ remaining = set(x.name for x in top.traverse())
+ assert set(["dt-diamond", "dt-diamond-right", "dt-diamond-bottom"]) == remaining
+
+ top.trim("dt-diamond-right")
+ remaining = set(x.name for x in top.traverse())
+ assert set(["dt-diamond"]) == remaining
+
+
@pytest.mark.regression("30861")
def test_concretize_partial_old_dag_hash_spec(mock_packages, config):
# create an "old" spec with no package hash
diff --git a/lib/spack/spack/test/spec_syntax.py b/lib/spack/spack/test/spec_syntax.py
index 3cbb59e69f0af2..49f6de3b65ee58 100644
--- a/lib/spack/spack/test/spec_syntax.py
+++ b/lib/spack/spack/test/spec_syntax.py
@@ -1,7 +1,8 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+import inspect
import itertools
import os
import re
@@ -9,6 +10,7 @@
import pytest
+import spack.cmd
import spack.platforms.test
import spack.spec
import spack.variant
@@ -203,7 +205,8 @@ def _specfile_for(spec_str, filename):
"mvapich_foo ^_openmpi@1.2:1.4,1.6%intel@12.1~qt_4 debug=2 ^stackwalker@8.1_1e",
),
(
- "mvapich_foo ^_openmpi@1.2:1.4,1.6%intel@12.1 cppflags=-O3 +debug~qt_4 ^stackwalker@8.1_1e", # noqa: E501
+ "mvapich_foo ^_openmpi@1.2:1.4,1.6%intel@12.1 cppflags=-O3 +debug~qt_4 "
+ "^stackwalker@8.1_1e",
[
Token(TokenType.UNQUALIFIED_PACKAGE_NAME, value="mvapich_foo"),
Token(TokenType.DEPENDENCY, value="^"),
@@ -217,7 +220,8 @@ def _specfile_for(spec_str, filename):
Token(TokenType.UNQUALIFIED_PACKAGE_NAME, value="stackwalker"),
Token(TokenType.VERSION, value="@8.1_1e"),
],
- 'mvapich_foo ^_openmpi@1.2:1.4,1.6%intel@12.1 cppflags="-O3" +debug~qt_4 ^stackwalker@8.1_1e', # noqa: E501
+ "mvapich_foo ^_openmpi@1.2:1.4,1.6%intel@12.1 cppflags=-O3 +debug~qt_4 "
+ "^stackwalker@8.1_1e",
),
# Specs containing YAML or JSON in the package name
(
@@ -424,7 +428,7 @@ def _specfile_for(spec_str, filename):
compiler_with_version_range("%gcc@10.1.0,12.2.1:"),
compiler_with_version_range("%gcc@:8.4.3,10.2.1:12.1.0"),
# Special key value arguments
- ("dev_path=*", [Token(TokenType.KEY_VALUE_PAIR, value="dev_path=*")], "dev_path=*"),
+ ("dev_path=*", [Token(TokenType.KEY_VALUE_PAIR, value="dev_path=*")], "dev_path='*'"),
(
"dev_path=none",
[Token(TokenType.KEY_VALUE_PAIR, value="dev_path=none")],
@@ -444,33 +448,28 @@ def _specfile_for(spec_str, filename):
(
"cflags=a=b=c",
[Token(TokenType.KEY_VALUE_PAIR, value="cflags=a=b=c")],
- 'cflags="a=b=c"',
+ "cflags='a=b=c'",
),
(
"cflags=a=b=c",
[Token(TokenType.KEY_VALUE_PAIR, value="cflags=a=b=c")],
- 'cflags="a=b=c"',
+ "cflags='a=b=c'",
),
(
"cflags=a=b=c+~",
[Token(TokenType.KEY_VALUE_PAIR, value="cflags=a=b=c+~")],
- 'cflags="a=b=c+~"',
+ "cflags='a=b=c+~'",
),
(
"cflags=-Wl,a,b,c",
[Token(TokenType.KEY_VALUE_PAIR, value="cflags=-Wl,a,b,c")],
- 'cflags="-Wl,a,b,c"',
+ "cflags=-Wl,a,b,c",
),
# Multi quoted
- (
- "cflags=''-Wl,a,b,c''",
- [Token(TokenType.KEY_VALUE_PAIR, value="cflags=''-Wl,a,b,c''")],
- 'cflags="-Wl,a,b,c"',
- ),
(
'cflags=="-O3 -g"',
[Token(TokenType.PROPAGATED_KEY_VALUE_PAIR, value='cflags=="-O3 -g"')],
- 'cflags=="-O3 -g"',
+ "cflags=='-O3 -g'",
),
# Whitespace is allowed in version lists
("@1.2:1.4 , 1.6 ", [Token(TokenType.VERSION, value="@1.2:1.4 , 1.6")], "@1.2:1.4,1.6"),
@@ -484,22 +483,6 @@ def _specfile_for(spec_str, filename):
],
"a@1:",
),
- (
- "@1.2: develop = foo",
- [
- Token(TokenType.VERSION, value="@1.2:"),
- Token(TokenType.KEY_VALUE_PAIR, value="develop = foo"),
- ],
- "@1.2: develop=foo",
- ),
- (
- "@1.2:develop = foo",
- [
- Token(TokenType.VERSION, value="@1.2:"),
- Token(TokenType.KEY_VALUE_PAIR, value="develop = foo"),
- ],
- "@1.2: develop=foo",
- ),
(
"% intel @ 12.1:12.6 + debug",
[
@@ -540,6 +523,23 @@ def _specfile_for(spec_str, filename):
],
"^[virtuals=mpi] openmpi",
),
+ # Allow merging attributes, if deptypes match
+ (
+ "^[virtuals=mpi] openmpi+foo ^[virtuals=lapack] openmpi+bar",
+ [
+ Token(TokenType.START_EDGE_PROPERTIES, value="^["),
+ Token(TokenType.KEY_VALUE_PAIR, value="virtuals=mpi"),
+ Token(TokenType.END_EDGE_PROPERTIES, value="]"),
+ Token(TokenType.UNQUALIFIED_PACKAGE_NAME, value="openmpi"),
+ Token(TokenType.BOOL_VARIANT, value="+foo"),
+ Token(TokenType.START_EDGE_PROPERTIES, value="^["),
+ Token(TokenType.KEY_VALUE_PAIR, value="virtuals=lapack"),
+ Token(TokenType.END_EDGE_PROPERTIES, value="]"),
+ Token(TokenType.UNQUALIFIED_PACKAGE_NAME, value="openmpi"),
+ Token(TokenType.BOOL_VARIANT, value="+bar"),
+ ],
+ "^[virtuals=lapack,mpi] openmpi+bar+foo",
+ ),
(
"^[deptypes=link,build] zlib",
[
@@ -587,8 +587,8 @@ def _specfile_for(spec_str, filename):
)
def test_parse_single_spec(spec_str, tokens, expected_roundtrip):
parser = SpecParser(spec_str)
- assert parser.tokens() == tokens
- assert str(parser.next_spec()) == expected_roundtrip
+ assert tokens == parser.tokens()
+ assert expected_roundtrip == str(parser.next_spec())
@pytest.mark.parametrize(
@@ -654,20 +654,80 @@ def test_parse_multiple_specs(text, tokens, expected_specs):
assert str(total_parser.next_spec()) == str(single_spec_parser.next_spec())
+@pytest.mark.parametrize(
+ "args,expected",
+ [
+ # Test that CLI-quoted flags/variant values are preserved
+ (["zlib", "cflags=-O3 -g", "+bar", "baz"], "zlib cflags='-O3 -g' +bar baz"),
+ # Test that CLI-quoted propagated flags/variant values are preserved
+ (["zlib", "cflags==-O3 -g", "+bar", "baz"], "zlib cflags=='-O3 -g' +bar baz"),
+ # An entire string passed on the CLI with embedded quotes also works
+ (["zlib cflags='-O3 -g' +bar baz"], "zlib cflags='-O3 -g' +bar baz"),
+ # Entire string *without* quoted flags splits -O3/-g (-g interpreted as a variant)
+ (["zlib cflags=-O3 -g +bar baz"], "zlib cflags=-O3 +bar~g baz"),
+ # If the entirety of "-O3 -g +bar baz" is quoted on the CLI, it's all taken as flags
+ (["zlib", "cflags=-O3 -g +bar baz"], "zlib cflags='-O3 -g +bar baz'"),
+ # If the string doesn't start with key=, it needs internal quotes for flags
+ (["zlib", " cflags=-O3 -g +bar baz"], "zlib cflags=-O3 +bar~g baz"),
+ # Internal quotes for quoted CLI args are considered part of *one* arg
+ (["zlib", 'cflags="-O3 -g" +bar baz'], """zlib cflags='"-O3 -g" +bar baz'"""),
+ # Use double quotes if internal single quotes are present
+ (["zlib", "cflags='-O3 -g' +bar baz"], '''zlib cflags="'-O3 -g' +bar baz"'''),
+ # Use single quotes and escape single quotes with internal single and double quotes
+ (["zlib", "cflags='-O3 -g' \"+bar baz\""], 'zlib cflags="\'-O3 -g\' \\"+bar baz\\""'),
+ # Ensure that empty strings are handled correctly on CLI
+ (["zlib", "ldflags=", "+pic"], "zlib+pic"),
+ # These flags are assumed to be quoted by the shell, but the space doesn't matter because
+ # flags are space-separated.
+ (["zlib", "ldflags= +pic"], "zlib ldflags='+pic'"),
+ (["ldflags= +pic"], "ldflags='+pic'"),
+ # If the name is not a flag name, the space is preserved verbatim, because variant values
+ # are comma-separated.
+ (["zlib", "foo= +pic"], "zlib foo=' +pic'"),
+ (["foo= +pic"], "foo=' +pic'"),
+ # You can ensure no quotes are added parse_specs() by starting your string with space,
+ # but you still need to quote empty strings properly.
+ ([" ldflags= +pic"], SpecTokenizationError),
+ ([" ldflags=", "+pic"], SpecTokenizationError),
+ ([" ldflags='' +pic"], "+pic"),
+ ([" ldflags=''", "+pic"], "+pic"),
+ # Ensure that empty strings are handled properly in quoted strings
+ (["zlib ldflags='' +pic"], "zlib+pic"),
+ # Ensure that $ORIGIN is handled correctly
+ (["zlib", "ldflags=-Wl,-rpath=$ORIGIN/_libs"], "zlib ldflags='-Wl,-rpath=$ORIGIN/_libs'"),
+ # Ensure that passing escaped quotes on the CLI raises a tokenization error
+ (["zlib", '"-g', '-O2"'], SpecTokenizationError),
+ ],
+)
+def test_cli_spec_roundtrip(args, expected):
+ if inspect.isclass(expected) and issubclass(expected, BaseException):
+ with pytest.raises(expected):
+ spack.cmd.parse_specs(args)
+ return
+
+ specs = spack.cmd.parse_specs(args)
+ output_string = " ".join(str(spec) for spec in specs)
+ assert expected == output_string
+
+
@pytest.mark.parametrize(
"text,expected_in_error",
[
- ("x@@1.2", "x@@1.2\n ^^^^^"),
- ("y ^x@@1.2", "y ^x@@1.2\n ^^^^^"),
- ("x@1.2::", "x@1.2::\n ^"),
- ("x::", "x::\n ^^"),
+ ("x@@1.2", r"x@@1.2\n ^"),
+ ("y ^x@@1.2", r"y ^x@@1.2\n ^"),
+ ("x@1.2::", r"x@1.2::\n ^"),
+ ("x::", r"x::\n ^^"),
+ ("cflags=''-Wl,a,b,c''", r"cflags=''-Wl,a,b,c''\n ^ ^ ^ ^^"),
+ ("@1.2: develop = foo", r"@1.2: develop = foo\n ^^"),
+ ("@1.2:develop = foo", r"@1.2:develop = foo\n ^^"),
],
)
def test_error_reporting(text, expected_in_error):
parser = SpecParser(text)
with pytest.raises(SpecTokenizationError) as exc:
parser.tokens()
- assert expected_in_error in str(exc), parser.tokens()
+
+ assert expected_in_error in str(exc), parser.tokens()
@pytest.mark.parametrize(
diff --git a/lib/spack/spack/test/spec_yaml.py b/lib/spack/spack/test/spec_yaml.py
index b19bb4308f9489..5dd854628af9ad 100644
--- a/lib/spack/spack/test/spec_yaml.py
+++ b/lib/spack/spack/test/spec_yaml.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/stage.py b/lib/spack/spack/test/stage.py
index 8b2b53dd05054a..f6bd267090ede0 100644
--- a/lib/spack/spack/test/stage.py
+++ b/lib/spack/spack/test/stage.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/svn_fetch.py b/lib/spack/spack/test/svn_fetch.py
index e6b1fbba8354d8..0b3750001431c1 100644
--- a/lib/spack/spack/test/svn_fetch.py
+++ b/lib/spack/spack/test/svn_fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/tag.py b/lib/spack/spack/test/tag.py
index ae950002588a2e..1f5affc549cadc 100644
--- a/lib/spack/spack/test/tag.py
+++ b/lib/spack/spack/test/tag.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/tengine.py b/lib/spack/spack/test/tengine.py
index 20ca6f0fd78f02..aa7fdac9d2c367 100644
--- a/lib/spack/spack/test/tengine.py
+++ b/lib/spack/spack/test/tengine.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/test_suite.py b/lib/spack/spack/test/test_suite.py
index cf7d32322ee07a..6af98b6f2f1bc3 100644
--- a/lib/spack/spack/test/test_suite.py
+++ b/lib/spack/spack/test/test_suite.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/traverse.py b/lib/spack/spack/test/traverse.py
index 482103e83c092c..8e440f93fb5804 100644
--- a/lib/spack/spack/test/traverse.py
+++ b/lib/spack/spack/test/traverse.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/url_fetch.py b/lib/spack/spack/test/url_fetch.py
index a3c0f7c10b5ede..406344ebfb8863 100644
--- a/lib/spack/spack/test/url_fetch.py
+++ b/lib/spack/spack/test/url_fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/url_parse.py b/lib/spack/spack/test/url_parse.py
index dd094ed230b908..2a3e3e7e727617 100644
--- a/lib/spack/spack/test/url_parse.py
+++ b/lib/spack/spack/test/url_parse.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/url_substitution.py b/lib/spack/spack/test/url_substitution.py
index c4133a3d90fec1..863afad2ea4dd4 100644
--- a/lib/spack/spack/test/url_substitution.py
+++ b/lib/spack/spack/test/url_substitution.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/__init__.py b/lib/spack/spack/test/util/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/spack/test/util/__init__.py
+++ b/lib/spack/spack/test/util/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/archive.py b/lib/spack/spack/test/util/archive.py
new file mode 100644
index 00000000000000..9688f25924da55
--- /dev/null
+++ b/lib/spack/spack/test/util/archive.py
@@ -0,0 +1,157 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+import gzip
+import hashlib
+import os
+import shutil
+import tarfile
+from pathlib import Path, PurePath
+
+import spack.util.crypto
+from spack.util.archive import gzip_compressed_tarfile, reproducible_tarfile_from_prefix
+
+
+def test_gzip_compressed_tarball_is_reproducible(tmpdir):
+ """Test gzip_compressed_tarfile and reproducible_tarfile_from_prefix for reproducibility"""
+
+ with tmpdir.as_cwd():
+ # Create a few directories
+ root = Path("root")
+ dir_a = root / "a"
+ dir_b = root / "b"
+ root.mkdir(mode=0o777)
+ dir_a.mkdir(mode=0o777)
+ dir_b.mkdir(mode=0o777)
+
+ (root / "y").touch()
+ (root / "x").touch()
+
+ (dir_a / "executable").touch(mode=0o777)
+ (dir_a / "data").touch(mode=0o666)
+ (dir_a / "symlink_file").symlink_to("data")
+ (dir_a / "symlink_dir").symlink_to(PurePath("..", "b"))
+ try:
+ os.link(dir_a / "executable", dir_a / "hardlink")
+ hardlink_support = True
+ except OSError:
+ hardlink_support = False
+
+ (dir_b / "executable").touch(mode=0o777)
+ (dir_b / "data").touch(mode=0o666)
+ (dir_b / "symlink_file").symlink_to("data")
+ (dir_b / "symlink_dir").symlink_to(PurePath("..", "a"))
+
+ # Create the first tarball
+ with gzip_compressed_tarfile("fst.tar.gz") as (tar, gzip_checksum_1, tarfile_checksum_1):
+ reproducible_tarfile_from_prefix(tar, "root")
+
+ # Expected mode for non-dirs is 644 if not executable, 755 if executable. Better to compute
+ # that as we don't know the umask of the user running the test.
+ expected_mode = (
+ lambda name: 0o755 if Path(*name.split("/")).lstat().st_mode & 0o100 else 0o644
+ )
+
+ # Verify the tarball contents
+ with tarfile.open("fst.tar.gz", "r:gz") as tar:
+ # Directories (mode is always 755)
+ for dir in ("root", "root/a", "root/b"):
+ m = tar.getmember(dir)
+ assert m.isdir()
+ assert m.mode == 0o755
+ assert m.uid == m.gid == 0
+ assert m.uname == m.gname == ""
+
+ # Non-executable regular files
+ for file in (
+ "root/x",
+ "root/y",
+ "root/a/data",
+ "root/b/data",
+ "root/a/executable",
+ "root/b/executable",
+ ):
+ m = tar.getmember(file)
+ assert m.isreg()
+ assert m.mode == expected_mode(file)
+ assert m.uid == m.gid == 0
+ assert m.uname == m.gname == ""
+
+ # Symlinks
+ for file in (
+ "root/a/symlink_file",
+ "root/a/symlink_dir",
+ "root/b/symlink_file",
+ "root/b/symlink_dir",
+ ):
+ m = tar.getmember(file)
+ assert m.issym()
+ assert m.mode == 0o755
+ assert m.uid == m.gid == m.mtime == 0
+ assert m.uname == m.gname == ""
+
+ # Verify the symlink targets. Notice that symlink targets are copied verbatim. That
+ # means the value is platform specific for relative symlinks within the current prefix,
+ # as on Windows they'd be ..\a and ..\b instead of ../a and ../b. So, reproducilility
+ # is only guaranteed per-platform currently.
+ assert PurePath(tar.getmember("root/a/symlink_file").linkname) == PurePath("data")
+ assert PurePath(tar.getmember("root/b/symlink_file").linkname) == PurePath("data")
+ assert PurePath(tar.getmember("root/a/symlink_dir").linkname) == PurePath("..", "b")
+ assert PurePath(tar.getmember("root/b/symlink_dir").linkname) == PurePath("..", "a")
+
+ # Check hardlink if supported
+ if hardlink_support:
+ m = tar.getmember("root/a/hardlink")
+ assert m.islnk()
+ assert m.mode == expected_mode("root/a/hardlink")
+ assert m.uid == m.gid == 0
+ assert m.uname == m.gname == ""
+ # Hardlink targets are always in posix format, as they reference a file that exists
+ # in the tarball.
+ assert m.linkname == "root/a/executable"
+
+ # Finally verify if entries are ordered by (is_dir, name)
+ assert [t.name for t in tar.getmembers()] == [
+ "root",
+ "root/x",
+ "root/y",
+ "root/a",
+ "root/a/data",
+ "root/a/executable",
+ *(["root/a/hardlink"] if hardlink_support else []),
+ "root/a/symlink_dir",
+ "root/a/symlink_file",
+ "root/b",
+ "root/b/data",
+ "root/b/executable",
+ "root/b/symlink_dir",
+ "root/b/symlink_file",
+ ]
+
+ # Delete the current root dir, extract the first tarball, create a second
+ shutil.rmtree(root)
+ with tarfile.open("fst.tar.gz", "r:gz") as tar:
+ tar.extractall()
+
+ # Create the second tarball
+ with gzip_compressed_tarfile("snd.tar.gz") as (tar, gzip_checksum_2, tarfile_checksum_2):
+ reproducible_tarfile_from_prefix(tar, "root")
+
+ # Verify the .tar.gz checksums are identical and correct
+ assert (
+ gzip_checksum_1.hexdigest()
+ == gzip_checksum_2.hexdigest()
+ == spack.util.crypto.checksum(hashlib.sha256, "fst.tar.gz")
+ == spack.util.crypto.checksum(hashlib.sha256, "snd.tar.gz")
+ )
+
+ # Verify the .tar checksums are identical and correct
+ with gzip.open("fst.tar.gz", "rb") as f, gzip.open("snd.tar.gz", "rb") as g:
+ assert (
+ tarfile_checksum_1.hexdigest()
+ == tarfile_checksum_2.hexdigest()
+ == spack.util.crypto.checksum_stream(hashlib.sha256, f)
+ == spack.util.crypto.checksum_stream(hashlib.sha256, g)
+ )
diff --git a/lib/spack/spack/test/util/compression.py b/lib/spack/spack/test/util/compression.py
index 29007a7e333ff5..b3f5c15861466c 100644
--- a/lib/spack/spack/test/util/compression.py
+++ b/lib/spack/spack/test/util/compression.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/editor.py b/lib/spack/spack/test/util/editor.py
index 7365bd4e4d6295..ce54bf939ae24d 100644
--- a/lib/spack/spack/test/util/editor.py
+++ b/lib/spack/spack/test/util/editor.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/elf.py b/lib/spack/spack/test/util/elf.py
index db826df1730fab..b337c00073ea33 100644
--- a/lib/spack/spack/test/util/elf.py
+++ b/lib/spack/spack/test/util/elf.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/environment.py b/lib/spack/spack/test/util/environment.py
index 21fbf4ebe62f01..ef7c151fee1a0c 100644
--- a/lib/spack/spack/test/util/environment.py
+++ b/lib/spack/spack/test/util/environment.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/executable.py b/lib/spack/spack/test/util/executable.py
index 9c49445aab2fcc..d854ec426e2ddc 100644
--- a/lib/spack/spack/test/util/executable.py
+++ b/lib/spack/spack/test/util/executable.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/file_cache.py b/lib/spack/spack/test/util/file_cache.py
index a26d688728b8f2..cd9ce1c5b8defb 100644
--- a/lib/spack/spack/test/util/file_cache.py
+++ b/lib/spack/spack/test/util/file_cache.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/ld_so_conf.py b/lib/spack/spack/test/util/ld_so_conf.py
index ceb24e25537ad0..b4352191a62eb7 100644
--- a/lib/spack/spack/test/util/ld_so_conf.py
+++ b/lib/spack/spack/test/util/ld_so_conf.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/log_parser.py b/lib/spack/spack/test/util/log_parser.py
index 8d96b21afeba0d..8626b74c2f5dbf 100644
--- a/lib/spack/spack/test/util/log_parser.py
+++ b/lib/spack/spack/test/util/log_parser.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/package_hash.py b/lib/spack/spack/test/util/package_hash.py
index 047f5df09e0f75..b613c6630d91eb 100644
--- a/lib/spack/spack/test/util/package_hash.py
+++ b/lib/spack/spack/test/util/package_hash.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/path.py b/lib/spack/spack/test/util/path.py
index db9fcce53fcb41..9d7f66c60b323a 100644
--- a/lib/spack/spack/test/util/path.py
+++ b/lib/spack/spack/test/util/path.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/prefix.py b/lib/spack/spack/test/util/prefix.py
index 58133c64433256..a50ed7e31c7210 100644
--- a/lib/spack/spack/test/util/prefix.py
+++ b/lib/spack/spack/test/util/prefix.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/spack_lock_wrapper.py b/lib/spack/spack/test/util/spack_lock_wrapper.py
index 0909ce06c339c8..9838324a03ef19 100644
--- a/lib/spack/spack/test/util/spack_lock_wrapper.py
+++ b/lib/spack/spack/test/util/spack_lock_wrapper.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/spack_yaml.py b/lib/spack/spack/test/util/spack_yaml.py
index f7c8851d27194c..d89af309b39c48 100644
--- a/lib/spack/spack/test/util/spack_yaml.py
+++ b/lib/spack/spack/test/util/spack_yaml.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/timer.py b/lib/spack/spack/test/util/timer.py
index 199b9355a7f4a7..1b584576f07731 100644
--- a/lib/spack/spack/test/util/timer.py
+++ b/lib/spack/spack/test/util/timer.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/util_gpg.py b/lib/spack/spack/test/util/util_gpg.py
index 242d9fb94805d1..8d09bc8b070bbb 100644
--- a/lib/spack/spack/test/util/util_gpg.py
+++ b/lib/spack/spack/test/util/util_gpg.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/util/util_url.py b/lib/spack/spack/test/util/util_url.py
index ec8f60627ab881..e2b403f82e2f29 100644
--- a/lib/spack/spack/test/util/util_url.py
+++ b/lib/spack/spack/test/util/util_url.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/variant.py b/lib/spack/spack/test/variant.py
index 517197654cfef8..0dad484ed9d017 100644
--- a/lib/spack/spack/test/variant.py
+++ b/lib/spack/spack/test/variant.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -734,3 +734,40 @@ def test_conditional_value_comparable_to_bool(other):
value = spack.variant.Value("98", when="@1.0")
comparison = value == other
assert comparison is False
+
+
+@pytest.mark.regression("40405")
+def test_wild_card_valued_variants_equivalent_to_str():
+ """
+ There was a bug prioro to PR 40406 in that variants with wildcard values "*"
+ were being overwritten in the variant constructor.
+ The expected/appropriate behavior is for it to behave like value=str and this
+ test demonstrates that the two are now equivalent
+ """
+ str_var = spack.variant.Variant(
+ name="str_var",
+ default="none",
+ values=str,
+ description="str variant",
+ multi=True,
+ validator=None,
+ )
+
+ wild_var = spack.variant.Variant(
+ name="wild_var",
+ default="none",
+ values="*",
+ description="* variant",
+ multi=True,
+ validator=None,
+ )
+
+ several_arbitrary_values = ("doe", "re", "mi")
+ # "*" case
+ wild_output = wild_var.make_variant(several_arbitrary_values)
+ wild_var.validate_or_raise(wild_output)
+ # str case
+ str_output = str_var.make_variant(several_arbitrary_values)
+ str_var.validate_or_raise(str_output)
+ # equivalence each instance already validated
+ assert str_output.value == wild_output.value
diff --git a/lib/spack/spack/test/verification.py b/lib/spack/spack/test/verification.py
index 9b5de54e4e8480..0cc99a70b947fd 100644
--- a/lib/spack/spack/test/verification.py
+++ b/lib/spack/spack/test/verification.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/versions.py b/lib/spack/spack/test/versions.py
index 50fcc197986353..6ee18d76b00814 100644
--- a/lib/spack/spack/test/versions.py
+++ b/lib/spack/spack/test/versions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/views.py b/lib/spack/spack/test/views.py
index 4df1da7e4080fc..68fb286f9c24c7 100644
--- a/lib/spack/spack/test/views.py
+++ b/lib/spack/spack/test/views.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/test/web.py b/lib/spack/spack/test/web.py
index ed4f693c5a539f..b7312e21866777 100644
--- a/lib/spack/spack/test/web.py
+++ b/lib/spack/spack/test/web.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/traverse.py b/lib/spack/spack/traverse.py
index 580e4877240569..3ac2bfe24cf672 100644
--- a/lib/spack/spack/traverse.py
+++ b/lib/spack/spack/traverse.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -251,7 +251,7 @@ def traverse_depth_first_edges_generator(edges, visitor, post_order=False, root=
neighbors = [EdgeAndDepth(edge=n, depth=edge.depth + 1) for n in visitor.neighbors(edge)]
# This extra branch is just for efficiency.
- if len(neighbors) >= 0:
+ if len(neighbors) > 0:
for item in traverse_depth_first_edges_generator(
neighbors, visitor, post_order, root, depth
):
diff --git a/lib/spack/spack/url.py b/lib/spack/spack/url.py
index 460c42a1af2add..e9f89b02f16ba3 100644
--- a/lib/spack/spack/url.py
+++ b/lib/spack/spack/url.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -29,6 +29,7 @@
import os
import pathlib
import re
+from typing import Any, Dict, Optional, Sequence, Union
import llnl.url
from llnl.path import convert_to_posix_path
@@ -284,20 +285,19 @@ def parse_version_offset(path):
raise UndetectableVersionError(original_path)
-def parse_version(path):
+def parse_version(path: str) -> spack.version.StandardVersion:
"""Try to extract a version string from a filename or URL.
Args:
- path (str): The filename or URL for the package
+ path: The filename or URL for the package
- Returns:
- spack.version.Version: The version of the package
+ Returns: The version of the package
Raises:
UndetectableVersionError: If the URL does not match any regexes
"""
version, start, length, i, regex = parse_version_offset(path)
- return spack.version.Version(version)
+ return spack.version.StandardVersion.from_string(version)
def parse_name_offset(path, v=None):
@@ -604,8 +604,12 @@ def color_url(path, **kwargs):
def find_versions_of_archive(
- archive_urls, list_url=None, list_depth=0, concurrency=32, reference_package=None
-):
+ archive_urls: Union[str, Sequence[str]],
+ list_url: Optional[str] = None,
+ list_depth: int = 0,
+ concurrency: Optional[int] = 32,
+ reference_package: Optional[Any] = None,
+) -> Dict[spack.version.StandardVersion, str]:
"""Scrape web pages for new versions of a tarball. This function prefers URLs in the
following order: links found on the scraped page that match a url generated by the
reference package, found and in the archive_urls list, found and derived from those
@@ -613,22 +617,18 @@ def find_versions_of_archive(
archive_urls list is included for the version.
Args:
- archive_urls (str or list or tuple): URL or sequence of URLs for
- different versions of a package. Typically these are just the
- tarballs from the package file itself. By default, this searches
- the parent directories of archives.
- list_url (str or None): URL for a listing of archives.
- Spack will scrape these pages for download links that look
- like the archive URL.
- list_depth (int): max depth to follow links on list_url pages.
- Defaults to 0.
- concurrency (int): maximum number of concurrent requests
- reference_package (spack.package_base.PackageBase or None): a spack package
- used as a reference for url detection. Uses the url_for_version
- method on the package to produce reference urls which, if found,
- are preferred.
+ archive_urls: URL or sequence of URLs for different versions of a package. Typically these
+ are just the tarballs from the package file itself. By default, this searches the
+ parent directories of archives.
+ list_url: URL for a listing of archives. Spack will scrape these pages for download links
+ that look like the archive URL.
+ list_depth: max depth to follow links on list_url pages. Defaults to 0.
+ concurrency: maximum number of concurrent requests
+ reference_package: a spack package used as a reference for url detection. Uses the
+ url_for_version method on the package to produce reference urls which, if found, are
+ preferred.
"""
- if not isinstance(archive_urls, (list, tuple)):
+ if isinstance(archive_urls, str):
archive_urls = [archive_urls]
# Generate a list of list_urls based on archive urls and any
@@ -689,7 +689,7 @@ def find_versions_of_archive(
# Build a dict version -> URL from any links that match the wildcards.
# Walk through archive_url links first.
# Any conflicting versions will be overwritten by the list_url links.
- versions = {}
+ versions: Dict[spack.version.StandardVersion, str] = {}
matched = set()
for url in sorted(links):
url = convert_to_posix_path(url)
diff --git a/lib/spack/spack/user_environment.py b/lib/spack/spack/user_environment.py
index 6e1c798e51dc1c..756b7c09a2f429 100644
--- a/lib/spack/spack/user_environment.py
+++ b/lib/spack/spack/user_environment.py
@@ -1,20 +1,16 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
+import re
import sys
-from contextlib import contextmanager
-from typing import Callable
-
-from llnl.util.lang import nullcontext
import spack.build_environment
import spack.config
import spack.error
import spack.spec
import spack.util.environment as environment
-import spack.util.prefix as prefix
from spack import traverse
from spack.context import Context
@@ -70,20 +66,18 @@ def unconditional_environment_modifications(view):
return env
-@contextmanager
-def projected_prefix(*specs: spack.spec.Spec, projection: Callable[[spack.spec.Spec], str]):
- """Temporarily replace every Spec's prefix with projection(s)"""
- prefixes = dict()
- for s in traverse.traverse_nodes(specs, key=lambda s: s.dag_hash()):
- if s.external:
- continue
- prefixes[s.dag_hash()] = s.prefix
- s.prefix = prefix.Prefix(projection(s))
-
- yield
-
- for s in traverse.traverse_nodes(specs, key=lambda s: s.dag_hash()):
- s.prefix = prefixes.get(s.dag_hash(), s.prefix)
+def project_env_mods(
+ *specs: spack.spec.Spec, view, env: environment.EnvironmentModifications
+) -> None:
+ """Given a list of environment modifications, project paths changes to the view."""
+ prefix_to_prefix = {s.prefix: view.get_projection_for_spec(s) for s in specs if not s.external}
+ # Avoid empty regex if all external
+ if not prefix_to_prefix:
+ return
+ prefix_regex = re.compile("|".join(re.escape(p) for p in prefix_to_prefix.keys()))
+ for mod in env.env_modifications:
+ if isinstance(mod, environment.NameValueModifier):
+ mod.value = prefix_regex.sub(lambda m: prefix_to_prefix[m.group(0)], mod.value)
def environment_modifications_for_specs(
@@ -102,26 +96,25 @@ def environment_modifications_for_specs(
been built on a different but compatible OS)
"""
env = environment.EnvironmentModifications()
- topo_ordered = traverse.traverse_nodes(specs, root=True, deptype=("run", "link"), order="topo")
-
+ topo_ordered = list(
+ traverse.traverse_nodes(specs, root=True, deptype=("run", "link"), order="topo")
+ )
+
+ # Static environment changes (prefix inspections)
+ for s in reversed(topo_ordered):
+ static = environment.inspect_path(
+ s.prefix, prefix_inspections(s.platform), exclude=environment.is_system_path
+ )
+ env.extend(static)
+
+ # Dynamic environment changes (setup_run_environment etc)
+ setup_context = spack.build_environment.SetupContext(*specs, context=Context.RUN)
+ if set_package_py_globals:
+ setup_context.set_all_package_py_globals()
+ env.extend(setup_context.get_env_modifications())
+
+ # Apply view projections if any.
if view:
- maybe_projected = projected_prefix(*specs, projection=view.get_projection_for_spec)
- else:
- maybe_projected = nullcontext()
-
- with maybe_projected:
- # Static environment changes (prefix inspections)
- for s in reversed(list(topo_ordered)):
- static = environment.inspect_path(
- s.prefix, prefix_inspections(s.platform), exclude=environment.is_system_path
- )
- env.extend(static)
-
- # Dynamic environment changes (setup_run_environment etc)
- setup_context = spack.build_environment.SetupContext(*specs, context=Context.RUN)
- if set_package_py_globals:
- setup_context.set_all_package_py_globals()
- dynamic = setup_context.get_env_modifications()
- env.extend(dynamic)
+ project_env_mods(*topo_ordered, view=view, env=env)
return env
diff --git a/lib/spack/spack/util/__init__.py b/lib/spack/spack/util/__init__.py
index af304aecb70f37..64a29a769cea89 100644
--- a/lib/spack/spack/util/__init__.py
+++ b/lib/spack/spack/util/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/archive.py b/lib/spack/spack/util/archive.py
new file mode 100644
index 00000000000000..8bde40017cba4d
--- /dev/null
+++ b/lib/spack/spack/util/archive.py
@@ -0,0 +1,228 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+import errno
+import hashlib
+import io
+import os
+import pathlib
+import tarfile
+from contextlib import closing, contextmanager
+from gzip import GzipFile
+from typing import Callable, Dict, Tuple
+
+
+class ChecksumWriter(io.BufferedIOBase):
+ """Checksum writer computes a checksum while writing to a file."""
+
+ myfileobj = None
+
+ def __init__(self, fileobj, algorithm=hashlib.sha256):
+ self.fileobj = fileobj
+ self.hasher = algorithm()
+ self.length = 0
+
+ def hexdigest(self):
+ return self.hasher.hexdigest()
+
+ def write(self, data):
+ if isinstance(data, (bytes, bytearray)):
+ length = len(data)
+ else:
+ data = memoryview(data)
+ length = data.nbytes
+
+ if length > 0:
+ self.fileobj.write(data)
+ self.hasher.update(data)
+
+ self.length += length
+
+ return length
+
+ def read(self, size=-1):
+ raise OSError(errno.EBADF, "read() on write-only object")
+
+ def read1(self, size=-1):
+ raise OSError(errno.EBADF, "read1() on write-only object")
+
+ def peek(self, n):
+ raise OSError(errno.EBADF, "peek() on write-only object")
+
+ @property
+ def closed(self):
+ return self.fileobj is None
+
+ def close(self):
+ fileobj = self.fileobj
+ if fileobj is None:
+ return
+ self.fileobj.close()
+ self.fileobj = None
+
+ def flush(self):
+ self.fileobj.flush()
+
+ def fileno(self):
+ return self.fileobj.fileno()
+
+ def rewind(self):
+ raise OSError("Can't rewind while computing checksum")
+
+ def readable(self):
+ return False
+
+ def writable(self):
+ return True
+
+ def seekable(self):
+ return True
+
+ def tell(self):
+ return self.fileobj.tell()
+
+ def seek(self, offset, whence=io.SEEK_SET):
+ # In principle forward seek is possible with b"0" padding,
+ # but this is not implemented.
+ if offset == 0 and whence == io.SEEK_CUR:
+ return
+ raise OSError("Can't seek while computing checksum")
+
+ def readline(self, size=-1):
+ raise OSError(errno.EBADF, "readline() on write-only object")
+
+
+@contextmanager
+def gzip_compressed_tarfile(path):
+ """Create a reproducible, gzip compressed tarfile, and keep track of shasums of both the
+ compressed and uncompressed tarfile. Reproduciblity is achived by normalizing the gzip header
+ (no file name and zero mtime).
+
+ Yields a tuple of the following:
+ tarfile.TarFile: tarfile object
+ ChecksumWriter: checksum of the gzip compressed tarfile
+ ChecksumWriter: checksum of the uncompressed tarfile
+ """
+ # Create gzip compressed tarball of the install prefix
+ # 1) Use explicit empty filename and mtime 0 for gzip header reproducibility.
+ # If the filename="" is dropped, Python will use fileobj.name instead.
+ # This should effectively mimick `gzip --no-name`.
+ # 2) On AMD Ryzen 3700X and an SSD disk, we have the following on compression speed:
+ # compresslevel=6 gzip default: llvm takes 4mins, roughly 2.1GB
+ # compresslevel=9 python default: llvm takes 12mins, roughly 2.1GB
+ # So we follow gzip.
+ with open(path, "wb") as f, ChecksumWriter(f) as gzip_checksum, closing(
+ GzipFile(filename="", mode="wb", compresslevel=6, mtime=0, fileobj=gzip_checksum)
+ ) as gzip_file, ChecksumWriter(gzip_file) as tarfile_checksum, tarfile.TarFile(
+ name="", mode="w", fileobj=tarfile_checksum
+ ) as tar:
+ yield tar, gzip_checksum, tarfile_checksum
+
+
+def default_path_to_name(path: str) -> str:
+ """Converts a path to a tarfile name, which uses posix path separators."""
+ p = pathlib.PurePath(path)
+ # Drop the leading slash on posix and the drive letter on windows, and always format as a
+ # posix path.
+ return pathlib.PurePath(*p.parts[1:]).as_posix() if p.is_absolute() else p.as_posix()
+
+
+def reproducible_tarfile_from_prefix(
+ tar: tarfile.TarFile,
+ prefix: str,
+ *,
+ include_parent_directories: bool = False,
+ skip: Callable[[os.DirEntry], bool] = lambda entry: False,
+ path_to_name: Callable[[str], str] = default_path_to_name,
+) -> None:
+ """Create a tarball from a given directory. Only adds regular files, symlinks and dirs.
+ Skips devices, fifos. Preserves hardlinks. Normalizes permissions like git. Tar entries are
+ added in depth-first pre-order, with dir entries partitioned by file | dir, and sorted
+ lexicographically, for reproducibility. Partitioning ensures only one dir is in memory at a
+ time, and sorting improves compression.
+
+ Args:
+ tar: tarfile object opened in write mode
+ prefix: path to directory to tar (either absolute or relative)
+ include_parent_directories: whether to include every directory leading up to ``prefix`` in
+ the tarball
+ skip: function that receives a DirEntry and returns True if the entry should be skipped,
+ whether it is a file or directory. Default implementation does not skip anything.
+ path_to_name: function that converts a path string to a tarfile entry name, which should be
+ in posix format. Not only is it necessary to transform paths in certain cases, such as
+ windows path to posix format, but it can also be used to prepend a directory to each
+ entry even if it does not exist on the filesystem. The default implementation drops the
+ leading slash on posix and the drive letter on windows for absolute paths, and formats
+ as a posix."""
+
+ hardlink_to_tarinfo_name: Dict[Tuple[int, int], str] = dict()
+
+ if include_parent_directories:
+ parent_dirs = reversed(pathlib.Path(prefix).parents)
+ next(parent_dirs) # skip the root: slices are supported from python 3.10
+ for parent_dir in parent_dirs:
+ dir_info = tarfile.TarInfo(path_to_name(str(parent_dir)))
+ dir_info.type = tarfile.DIRTYPE
+ dir_info.mode = 0o755
+ tar.addfile(dir_info)
+
+ dir_stack = [prefix]
+ while dir_stack:
+ dir = dir_stack.pop()
+
+ # Add the dir before its contents
+ dir_info = tarfile.TarInfo(path_to_name(dir))
+ dir_info.type = tarfile.DIRTYPE
+ dir_info.mode = 0o755
+ tar.addfile(dir_info)
+
+ # Sort by name: reproducible & improves compression
+ with os.scandir(dir) as it:
+ entries = sorted(it, key=lambda entry: entry.name)
+
+ new_dirs = []
+ for entry in entries:
+ if skip(entry):
+ continue
+
+ if entry.is_dir(follow_symlinks=False):
+ new_dirs.append(entry.path)
+ continue
+
+ file_info = tarfile.TarInfo(path_to_name(entry.path))
+
+ if entry.is_symlink():
+ file_info.type = tarfile.SYMTYPE
+ file_info.linkname = os.readlink(entry.path)
+ # According to POSIX: "the value of the file mode bits returned in the
+ # st_mode field of the stat structure is unspecified." So we set it to
+ # something sensible without lstat'ing the link.
+ file_info.mode = 0o755
+ tar.addfile(file_info)
+
+ elif entry.is_file(follow_symlinks=False):
+ # entry.stat has zero (st_ino, st_dev, st_nlink) on Windows: use lstat.
+ s = os.lstat(entry.path)
+
+ # Normalize permissions like git
+ file_info.mode = 0o755 if s.st_mode & 0o100 else 0o644
+
+ # Deduplicate hardlinks
+ if s.st_nlink > 1:
+ ident = (s.st_dev, s.st_ino)
+ if ident in hardlink_to_tarinfo_name:
+ file_info.type = tarfile.LNKTYPE
+ file_info.linkname = hardlink_to_tarinfo_name[ident]
+ tar.addfile(file_info)
+ continue
+ hardlink_to_tarinfo_name[ident] = file_info.name
+
+ # If file not yet seen, copy it
+ file_info.type = tarfile.REGTYPE
+ file_info.size = s.st_size
+
+ with open(entry.path, "rb") as f:
+ tar.addfile(file_info, f)
+
+ dir_stack.extend(reversed(new_dirs)) # we pop, so reverse to stay alphabetical
diff --git a/lib/spack/spack/util/classes.py b/lib/spack/spack/util/classes.py
index 05af353601bf68..5e0b373ef8d2c3 100644
--- a/lib/spack/spack/util/classes.py
+++ b/lib/spack/spack/util/classes.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/compression.py b/lib/spack/spack/util/compression.py
index 25ccfdf0bbcc05..1e66b3e205db83 100644
--- a/lib/spack/spack/util/compression.py
+++ b/lib/spack/spack/util/compression.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/cpus.py b/lib/spack/spack/util/cpus.py
index b8b371ebb088f2..9c98656830d338 100644
--- a/lib/spack/spack/util/cpus.py
+++ b/lib/spack/spack/util/cpus.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/crypto.py b/lib/spack/spack/util/crypto.py
index 2765a6042e26f4..283b5ebfc717c8 100644
--- a/lib/spack/spack/util/crypto.py
+++ b/lib/spack/spack/util/crypto.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/debug.py b/lib/spack/spack/util/debug.py
index baeab296a2ea24..245a83da108e31 100644
--- a/lib/spack/spack/util/debug.py
+++ b/lib/spack/spack/util/debug.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/editor.py b/lib/spack/spack/util/editor.py
index eff896f87e0d83..e2ed8b67ed5c89 100644
--- a/lib/spack/spack/util/editor.py
+++ b/lib/spack/spack/util/editor.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/elf.py b/lib/spack/spack/util/elf.py
index 6d0881f4946429..d04d7ca16caa6c 100644
--- a/lib/spack/spack/util/elf.py
+++ b/lib/spack/spack/util/elf.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/environment.py b/lib/spack/spack/util/environment.py
index d4c352b9935390..d2f56dd4a7688d 100644
--- a/lib/spack/spack/util/environment.py
+++ b/lib/spack/spack/util/environment.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/executable.py b/lib/spack/spack/util/executable.py
index 36c7e73e0638ae..f160051674609c 100644
--- a/lib/spack/spack/util/executable.py
+++ b/lib/spack/spack/util/executable.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/file_cache.py b/lib/spack/spack/util/file_cache.py
index 2b98f291996ee8..bc75704d757870 100644
--- a/lib/spack/spack/util/file_cache.py
+++ b/lib/spack/spack/util/file_cache.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/file_permissions.py b/lib/spack/spack/util/file_permissions.py
index 735373c3886cf1..9b4eefda1d81a1 100644
--- a/lib/spack/spack/util/file_permissions.py
+++ b/lib/spack/spack/util/file_permissions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/format.py b/lib/spack/spack/util/format.py
index 68fe8733cc6136..c42597a8c3f161 100644
--- a/lib/spack/spack/util/format.py
+++ b/lib/spack/spack/util/format.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/gcs.py b/lib/spack/spack/util/gcs.py
index 4e997df52bd662..318b79d7a3c796 100644
--- a/lib/spack/spack/util/gcs.py
+++ b/lib/spack/spack/util/gcs.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/git.py b/lib/spack/spack/util/git.py
index 39efdda9c3c3bb..3e6d944b2aaefb 100644
--- a/lib/spack/spack/util/git.py
+++ b/lib/spack/spack/util/git.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/gpg.py b/lib/spack/spack/util/gpg.py
index ea1e42131d91ce..beae7f707b91c1 100644
--- a/lib/spack/spack/util/gpg.py
+++ b/lib/spack/spack/util/gpg.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -334,7 +334,7 @@ def _verify_exe_or_raise(exe):
raise SpackGPGError(msg)
output = exe("--version", output=str)
- match = re.search(r"^gpg(conf)? \(GnuPG\) (.*)$", output, re.M)
+ match = re.search(r"^gpg(conf)? \(GnuPG(?:/MacGPG2)?\) (.*)$", output, re.M)
if not match:
raise SpackGPGError('Could not determine "{0}" version'.format(exe.name))
diff --git a/lib/spack/spack/util/hash.py b/lib/spack/spack/util/hash.py
index d2a32da99aa1ed..0c06ebaf12915a 100644
--- a/lib/spack/spack/util/hash.py
+++ b/lib/spack/spack/util/hash.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/ld_so_conf.py b/lib/spack/spack/util/ld_so_conf.py
index 875ee8fe7b6371..38459ec2000e30 100644
--- a/lib/spack/spack/util/ld_so_conf.py
+++ b/lib/spack/spack/util/ld_so_conf.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/lock.py b/lib/spack/spack/util/lock.py
index 0174dad0570d29..3f6480b26ae23c 100644
--- a/lib/spack/spack/util/lock.py
+++ b/lib/spack/spack/util/lock.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/log_parse.py b/lib/spack/spack/util/log_parse.py
index bf88a9635eeaf0..de6d0661438799 100644
--- a/lib/spack/spack/util/log_parse.py
+++ b/lib/spack/spack/util/log_parse.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/module_cmd.py b/lib/spack/spack/util/module_cmd.py
index 41a48f81913572..90986eb396079a 100644
--- a/lib/spack/spack/util/module_cmd.py
+++ b/lib/spack/spack/util/module_cmd.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/naming.py b/lib/spack/spack/util/naming.py
index d7f51d8645a27f..3205121f82ab4f 100644
--- a/lib/spack/spack/util/naming.py
+++ b/lib/spack/spack/util/naming.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/package_hash.py b/lib/spack/spack/util/package_hash.py
index db2c28528f6a70..a0552b13ccb881 100644
--- a/lib/spack/spack/util/package_hash.py
+++ b/lib/spack/spack/util/package_hash.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/parallel.py b/lib/spack/spack/util/parallel.py
index c8e6ef7907f584..9c0ff1ab8e75ea 100644
--- a/lib/spack/spack/util/parallel.py
+++ b/lib/spack/spack/util/parallel.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/path.py b/lib/spack/spack/util/path.py
index e2aee48df1e2cd..e0fa29dbccd904 100644
--- a/lib/spack/spack/util/path.py
+++ b/lib/spack/spack/util/path.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/pattern.py b/lib/spack/spack/util/pattern.py
index 061e31108494f4..49ef583dcb67c9 100644
--- a/lib/spack/spack/util/pattern.py
+++ b/lib/spack/spack/util/pattern.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/prefix.py b/lib/spack/spack/util/prefix.py
index e94c6526adfbf3..976653562cd473 100644
--- a/lib/spack/spack/util/prefix.py
+++ b/lib/spack/spack/util/prefix.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/s3.py b/lib/spack/spack/util/s3.py
index 796c49a8c8e6cf..5457abdca58453 100644
--- a/lib/spack/spack/util/s3.py
+++ b/lib/spack/spack/util/s3.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/spack_json.py b/lib/spack/spack/util/spack_json.py
index 579d046985133b..e6866bd8a3210f 100644
--- a/lib/spack/spack/util/spack_json.py
+++ b/lib/spack/spack/util/spack_json.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/spack_yaml.py b/lib/spack/spack/util/spack_yaml.py
index 2ca9acbed73e59..f4bec63f5cc64b 100644
--- a/lib/spack/spack/util/spack_yaml.py
+++ b/lib/spack/spack/util/spack_yaml.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/timer.py b/lib/spack/spack/util/timer.py
index ef15c7001fe7ea..f15d692a53ccbe 100644
--- a/lib/spack/spack/util/timer.py
+++ b/lib/spack/spack/util/timer.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/url.py b/lib/spack/spack/util/url.py
index 0644a17adac580..db84b03c3fcfc3 100644
--- a/lib/spack/spack/util/url.py
+++ b/lib/spack/spack/util/url.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/util/web.py b/lib/spack/spack/util/web.py
index 57158db950e917..d56078a28ed14b 100644
--- a/lib/spack/spack/util/web.py
+++ b/lib/spack/spack/util/web.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,7 +17,7 @@
import urllib.parse
from html.parser import HTMLParser
from pathlib import Path, PurePosixPath
-from typing import IO, Dict, List, Optional, Set, Union
+from typing import IO, Dict, Iterable, List, Optional, Set, Union
from urllib.error import HTTPError, URLError
from urllib.request import HTTPSHandler, Request, build_opener
@@ -554,7 +554,9 @@ def list_url(url, recursive=False):
return gcs.get_all_blobs(recursive=recursive)
-def spider(root_urls: Union[str, List[str]], depth: int = 0, concurrency: Optional[int] = None):
+def spider(
+ root_urls: Union[str, Iterable[str]], depth: int = 0, concurrency: Optional[int] = None
+):
"""Get web pages from root URLs.
If depth is specified (e.g., depth=2), then this will also follow up to levels
diff --git a/lib/spack/spack/util/windows_registry.py b/lib/spack/spack/util/windows_registry.py
index cfc16724563287..c9f2a982852dff 100644
--- a/lib/spack/spack/util/windows_registry.py
+++ b/lib/spack/spack/util/windows_registry.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/variant.py b/lib/spack/spack/variant.py
index 7b045d62628022..07aafe8945f136 100644
--- a/lib/spack/spack/variant.py
+++ b/lib/spack/spack/variant.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,7 @@
import spack.directives
import spack.error as error
+import spack.parser
special_variant_values = [None, "none", "*"]
@@ -74,7 +75,7 @@ def isa_type(v):
self.single_value_validator = isa_type
- if callable(values):
+ elif callable(values):
# If 'values' is a callable, assume it is a single value
# validator and reset the values to be explicit during debug
self.single_value_validator = values
@@ -399,13 +400,12 @@ def __contains__(self, item):
return item in self._value
def __repr__(self):
- cls = type(self)
- return "{0.__name__}({1}, {2})".format(cls, repr(self.name), repr(self._original_value))
+ return f"{type(self).__name__}({repr(self.name)}, {repr(self._original_value)})"
def __str__(self):
- if self.propagate:
- return "{0}=={1}".format(self.name, ",".join(str(x) for x in self.value))
- return "{0}={1}".format(self.name, ",".join(str(x) for x in self.value))
+ delim = "==" if self.propagate else "="
+ values = spack.parser.quote_if_needed(",".join(str(v) for v in self.value))
+ return f"{self.name}{delim}{values}"
class MultiValuedVariant(AbstractVariant):
@@ -443,15 +443,14 @@ def append(self, value):
self._original_value = ",".join(self._value)
def __str__(self):
- # Special-case patches to not print the full 64 character hashes
+ # Special-case patches to not print the full 64 character sha256
if self.name == "patches":
values_str = ",".join(x[:7] for x in self.value)
else:
values_str = ",".join(str(x) for x in self.value)
- if self.propagate:
- return "{0}=={1}".format(self.name, values_str)
- return "{0}={1}".format(self.name, values_str)
+ delim = "==" if self.propagate else "="
+ return f"{self.name}{delim}{spack.parser.quote_if_needed(values_str)}"
class SingleValuedVariant(AbstractVariant):
@@ -467,9 +466,8 @@ def _value_setter(self, value):
self._value = str(self._value[0])
def __str__(self):
- if self.propagate:
- return "{0}=={1}".format(self.name, self.value)
- return "{0}={1}".format(self.name, self.value)
+ delim = "==" if self.propagate else "="
+ return f"{self.name}{delim}{spack.parser.quote_if_needed(self.value)}"
@implicit_variant_conversion
def satisfies(self, other):
@@ -916,7 +914,7 @@ def __init__(self, spec, variants):
variant_str = "variant" if len(variants) == 1 else "variants"
msg = (
'trying to set {0} "{1}" in package "{2}", but the package'
- " has no such {0} [happened during concretization of {3}]"
+ " has no such {0} [happened when validating '{3}']"
)
msg = msg.format(variant_str, comma_or(variants), spec.name, spec.root)
super().__init__(msg)
diff --git a/lib/spack/spack/verify.py b/lib/spack/spack/verify.py
index 01ca96fc7a4997..10d6f91da0f3a5 100644
--- a/lib/spack/spack/verify.py
+++ b/lib/spack/spack/verify.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/version/__init__.py b/lib/spack/spack/version/__init__.py
index b25048f0523f9b..30dd71ea622fab 100644
--- a/lib/spack/spack/version/__init__.py
+++ b/lib/spack/spack/version/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/version/common.py b/lib/spack/spack/version/common.py
index 28dced815c3329..3afa218d4dd6ae 100644
--- a/lib/spack/spack/version/common.py
+++ b/lib/spack/spack/version/common.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/version/git_ref_lookup.py b/lib/spack/spack/version/git_ref_lookup.py
index 946cd03a187f04..e6c47194fee33b 100644
--- a/lib/spack/spack/version/git_ref_lookup.py
+++ b/lib/spack/spack/version/git_ref_lookup.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/version/lookup.py b/lib/spack/spack/version/lookup.py
index e33b5c217691ac..d7bb096a4d6b46 100644
--- a/lib/spack/spack/version/lookup.py
+++ b/lib/spack/spack/version/lookup.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack/version/version_types.py b/lib/spack/spack/version/version_types.py
index 87f4d26308cfff..35e826c2194f12 100644
--- a/lib/spack/spack/version/version_types.py
+++ b/lib/spack/spack/version/version_types.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/lib/spack/spack_installable/main.py b/lib/spack/spack_installable/main.py
index af4355f69bbe2f..3fc809aa422d00 100644
--- a/lib/spack/spack_installable/main.py
+++ b/lib/spack/spack_installable/main.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -7,19 +7,24 @@
from os.path import dirname as dn
+def get_spack_sys_paths(spack_prefix):
+ """Given a spack prefix, return all the paths Spack needs to function."""
+ spack_libs = os.path.join(spack_prefix, "lib", "spack")
+ external_libs = os.path.join(spack_libs, "external")
+ vendored_libs = os.path.join(external_libs, "_vendoring")
+
+ # spack externals take precedence, then vendored packages, then spack itself
+ return [external_libs, vendored_libs, spack_libs]
+
+
def main(argv=None):
# Find spack's location and its prefix.
this_file = os.path.realpath(os.path.expanduser(__file__))
spack_prefix = dn(dn(dn(dn(this_file))))
- # Allow spack libs to be imported in our scripts
- spack_lib_path = os.path.join(spack_prefix, "lib", "spack")
- sys.path.insert(0, spack_lib_path)
+ # Add all the sys paths that allow spack libs to be imported
+ sys.path[:0] = get_spack_sys_paths(spack_prefix)
- # Add external libs
- spack_external_libs = os.path.join(spack_lib_path, "external")
- sys.path.insert(0, os.path.join(spack_external_libs, "_vendoring"))
- sys.path.insert(0, spack_external_libs)
# Here we delete ruamel.yaml in case it has been already imported from site
# (see #9206 for a broader description of the issue).
#
diff --git a/pyproject.toml b/pyproject.toml
index d33b27a99c20ac..0a4d094d1aab03 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -171,7 +171,7 @@ ignore_missing_imports = true
useLibraryCodeForTypes = true
reportMissingImports = true
reportWildcardImportFromLibrary = false
-include = ['lib/spack']
+include = ['lib/spack', 'var/spack/repos']
ignore = ['lib/spack/external']
extraPaths = ['lib/spack', 'lib/spack/external']
diff --git a/share/spack/bash/spack-completion.bash b/share/spack/bash/spack-completion.bash
index 9a5b367be7a49a..e8159bdba5acbb 100755
--- a/share/spack/bash/spack-completion.bash
+++ b/share/spack/bash/spack-completion.bash
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/csh/pathadd.csh b/share/spack/csh/pathadd.csh
index 3e77489f97719a..df46b00f3f6ec8 100644
--- a/share/spack/csh/pathadd.csh
+++ b/share/spack/csh/pathadd.csh
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -25,8 +25,8 @@ if ($_pa_set == 1) then
eval set _pa_old_value='$'$_pa_varname
endif
-# Do the actual prepending here, if it is a dir and not already in the path
-if ( -d $_pa_new_path && \:$_pa_old_value\: !~ *\:$_pa_new_path\:* ) then
+# Do the actual prepending here, if it is a dir and not first in the path
+if ( -d $_pa_new_path && $_pa_old_value\: !~ $_pa_new_path\:* ) then
if ("x$_pa_old_value" == "x") then
setenv $_pa_varname $_pa_new_path
else
diff --git a/share/spack/csh/spack.csh b/share/spack/csh/spack.csh
index e344d589f8f7a9..5df90e41a8c946 100644
--- a/share/spack/csh/spack.csh
+++ b/share/spack/csh/spack.csh
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/docker/entrypoint.bash b/share/spack/docker/entrypoint.bash
index 98869fdfcaa803..21393d2229f39e 100755
--- a/share/spack/docker/entrypoint.bash
+++ b/share/spack/docker/entrypoint.bash
@@ -1,6 +1,6 @@
#! /usr/bin/env bash
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/docker/package-index/split.sh b/share/spack/docker/package-index/split.sh
index 33e5ea9f51e662..dfec1f4139a6d0 100755
--- a/share/spack/docker/package-index/split.sh
+++ b/share/spack/docker/package-index/split.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/docs/docker/module-file-tutorial/spack.sh b/share/spack/docs/docker/module-file-tutorial/spack.sh
index dd04ef96fc4197..c1780a61fd0d6d 100644
--- a/share/spack/docs/docker/module-file-tutorial/spack.sh
+++ b/share/spack/docs/docker/module-file-tutorial/spack.sh
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/fish/spack-completion.fish b/share/spack/fish/spack-completion.fish
index ee06dade57340b..a85dec612f5a08 100644
--- a/share/spack/fish/spack-completion.fish
+++ b/share/spack/fish/spack-completion.fish
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
index 880aeb6811a1d0..c3fc05a2e4d6e7 100644
--- a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
+++ b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
@@ -59,6 +59,11 @@ default:
SPACK_TARGET_PLATFORM: "linux"
SPACK_TARGET_ARCH: "neoverse_v1"
+.linux_neoverse_v2:
+ variables:
+ SPACK_TARGET_PLATFORM: "linux"
+ SPACK_TARGET_ARCH: "neoverse_v2"
+
.linux_aarch64:
variables:
SPACK_TARGET_PLATFORM: "linux"
@@ -86,8 +91,6 @@ default:
SPACK_PIPELINE_TYPE: "spack_protected_branch"
SPACK_COPY_BUILDCACHE: "${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}"
SPACK_REQUIRE_SIGNING: "True"
- AWS_ACCESS_KEY_ID: ${PROTECTED_MIRRORS_AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY: ${PROTECTED_MIRRORS_AWS_SECRET_ACCESS_KEY}
OIDC_TOKEN_AUDIENCE: "protected_binary_mirror"
- if: $CI_COMMIT_REF_NAME =~ /^releases\/v.*/
# Pipelines on release branches always rebuild everything
@@ -98,8 +101,6 @@ default:
SPACK_PRUNE_UNTOUCHED: "False"
SPACK_PRUNE_UP_TO_DATE: "False"
SPACK_REQUIRE_SIGNING: "True"
- AWS_ACCESS_KEY_ID: ${PROTECTED_MIRRORS_AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY: ${PROTECTED_MIRRORS_AWS_SECRET_ACCESS_KEY}
OIDC_TOKEN_AUDIENCE: "protected_binary_mirror"
- if: $CI_COMMIT_TAG =~ /^develop-[\d]{4}-[\d]{2}-[\d]{2}$/ || $CI_COMMIT_TAG =~ /^v.*/
# Pipelines on tags (release or dev snapshots) only copy binaries from one mirror to another
@@ -108,8 +109,6 @@ default:
SPACK_PIPELINE_TYPE: "spack_copy_only"
SPACK_COPY_BUILDCACHE: "${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}"
PIPELINE_MIRROR_TEMPLATE: "copy-only-protected-mirrors.yaml.in"
- AWS_ACCESS_KEY_ID: ${PROTECTED_MIRRORS_AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY: ${PROTECTED_MIRRORS_AWS_SECRET_ACCESS_KEY}
OIDC_TOKEN_AUDIENCE: "protected_binary_mirror"
- if: $CI_COMMIT_REF_NAME =~ /^pr[\d]+_.*$/
# Pipelines on PR branches rebuild only what's missing, and do extra pruning
@@ -126,8 +125,6 @@ default:
# TODO: far gitlab doesn't support that.
PR_TARGET_REF_NAME: "develop"
PIPELINE_MIRROR_TEMPLATE: "multi-src-mirrors.yaml.in"
- AWS_ACCESS_KEY_ID: ${PR_MIRRORS_AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY: ${PR_MIRRORS_AWS_SECRET_ACCESS_KEY}
OIDC_TOKEN_AUDIENCE: "pr_binary_mirror"
.generate-common:
@@ -136,6 +133,8 @@ default:
- uname -a || true
- grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
- nproc || true
+ - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
- . "./share/spack/setup-env.sh"
- spack --version
- cd share/spack/gitlab/cloud_pipelines/stacks/${SPACK_CI_STACK_NAME}
@@ -147,9 +146,22 @@ default:
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}/${SPACK_TARGET_ARCH}"
${CI_STACK_CONFIG_SCOPES}
compiler find
+ - spack
+ --config-scope "${SPACK_CI_CONFIG_ROOT}"
+ --config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}"
+ --config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}/${SPACK_TARGET_ARCH}"
+ ${CI_STACK_CONFIG_SCOPES}
+ audit configs
- spack python -c "import os,sys; print(os.path.expandvars(sys.stdin.read()))"
< "${SPACK_CI_CONFIG_ROOT}/${PIPELINE_MIRROR_TEMPLATE}" > "${SPACK_CI_CONFIG_ROOT}/mirrors.yaml"
- spack config add -f "${SPACK_CI_CONFIG_ROOT}/mirrors.yaml"
+ - mkdir -p "${CI_PROJECT_DIR}/jobs_scratch_dir"
+ - spack
+ --config-scope "${SPACK_CI_CONFIG_ROOT}"
+ --config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}"
+ --config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}/${SPACK_TARGET_ARCH}"
+ ${CI_STACK_CONFIG_SCOPES}
+ config blame > "${CI_PROJECT_DIR}/jobs_scratch_dir/spack.yaml.blame"
- spack -v --color=always
--config-scope "${SPACK_CI_CONFIG_ROOT}"
--config-scope "${SPACK_CI_CONFIG_ROOT}/${SPACK_TARGET_PLATFORM}"
@@ -160,6 +172,7 @@ default:
--output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/cloud-ci-pipeline.yml"
after_script:
- cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
artifacts:
paths:
- "${CI_PROJECT_DIR}/jobs_scratch_dir"
@@ -192,6 +205,10 @@ default:
extends: [ ".generate-base" ]
tags: ["spack", "public", "medium", "aarch64", "graviton3"]
+.generate-neoverse-v2:
+ extends: [ ".generate-base" ]
+ tags: ["spack", "public", "medium", "neoverse_v2"]
+
.generate-deprecated:
extends: [ ".base-job" ]
stage: generate
@@ -199,6 +216,8 @@ default:
- uname -a || true
- grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
- nproc || true
+ - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
- . "./share/spack/setup-env.sh"
- spack --version
- cd share/spack/gitlab/cloud_pipelines/stacks/${SPACK_CI_STACK_NAME}
@@ -210,6 +229,7 @@ default:
--output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/cloud-ci-pipeline.yml"
after_script:
- cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
artifacts:
paths:
- "${CI_PROJECT_DIR}/jobs_scratch_dir"
@@ -244,8 +264,6 @@ protected-publish:
variables:
SPACK_COPY_BUILDCACHE: "${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}"
SPACK_PIPELINE_TYPE: "spack_protected_branch"
- AWS_ACCESS_KEY_ID: ${PROTECTED_MIRRORS_AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY: ${PROTECTED_MIRRORS_AWS_SECRET_ACCESS_KEY}
KUBERNETES_CPU_REQUEST: 4000m
KUBERNETES_MEMORY_REQUEST: 16G
script:
@@ -321,6 +339,29 @@ e4s-build:
- artifacts: True
job: e4s-generate
+########################################
+# E4S Neoverse V2
+########################################
+.e4s-neoverse-v2:
+ extends: [ ".linux_neoverse_v2" ]
+ variables:
+ SPACK_CI_STACK_NAME: e4s-neoverse-v2
+
+e4s-neoverse-v2-generate:
+ extends: [ ".e4s-neoverse-v2", ".generate-neoverse-v2" ]
+ image: ghcr.io/spack/ubuntu22.04-runner-arm64-gcc-11.4:2024.01.01
+
+e4s-neoverse-v2-build:
+ extends: [ ".e4s-neoverse-v2", ".build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: e4s-neoverse-v2-generate
+ strategy: depend
+ needs:
+ - artifacts: True
+ job: e4s-neoverse-v2-generate
+
########################################
# E4S Neoverse V1 pipeline
########################################
@@ -370,25 +411,25 @@ e4s-rocm-external-build:
########################################
# GPU Testing Pipeline
########################################
-.gpu-tests:
- extends: [ ".linux_x86_64_v3" ]
- variables:
- SPACK_CI_STACK_NAME: gpu-tests
+# .gpu-tests:
+# extends: [ ".linux_x86_64_v3" ]
+# variables:
+# SPACK_CI_STACK_NAME: gpu-tests
-gpu-tests-generate:
- extends: [ ".gpu-tests", ".generate-x86_64"]
- image: ghcr.io/spack/ubuntu20.04-runner-x86_64:2023-01-01
+# gpu-tests-generate:
+# extends: [ ".gpu-tests", ".generate-x86_64"]
+# image: ghcr.io/spack/ubuntu20.04-runner-x86_64:2023-01-01
-gpu-tests-build:
- extends: [ ".gpu-tests", ".build" ]
- trigger:
- include:
- - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
- job: gpu-tests-generate
- strategy: depend
- needs:
- - artifacts: True
- job: gpu-tests-generate
+# gpu-tests-build:
+# extends: [ ".gpu-tests", ".build" ]
+# trigger:
+# include:
+# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+# job: gpu-tests-generate
+# strategy: depend
+# needs:
+# - artifacts: True
+# job: gpu-tests-generate
########################################
# E4S OneAPI Pipeline
@@ -400,7 +441,7 @@ gpu-tests-build:
e4s-oneapi-generate:
extends: [ ".e4s-oneapi", ".generate-x86_64"]
- image: ghcr.io/spack/ubuntu20.04-runner-amd64-oneapi-2023.2.1:2023.08.01
+ image: ghcr.io/spack/ubuntu22.04-runner-amd64-oneapi-2024.0.0:2024.01.16b
e4s-oneapi-build:
extends: [ ".e4s-oneapi", ".build" ]
@@ -461,6 +502,28 @@ build_systems-build:
- artifacts: True
job: build_systems-generate
+###########################################
+# Build tests for different developer tools
+###########################################
+.developer-tools:
+ extends: [ ".linux_x86_64_v3" ]
+ variables:
+ SPACK_CI_STACK_NAME: developer-tools
+
+developer-tools-generate:
+ extends: [ ".developer-tools", ".generate-x86_64"]
+
+developer-tools-build:
+ extends: [ ".developer-tools", ".build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: developer-tools-generate
+ strategy: depend
+ needs:
+ - artifacts: True
+ job: developer-tools-generate
+
#########################################
# RADIUSS
#########################################
@@ -894,16 +957,16 @@ e4s-cray-rhel-build:
variables:
SPACK_CI_STACK_NAME: e4s-cray-sles
-# e4s-cray-sles-generate:
-# extends: [ ".generate-cray-sles", ".e4s-cray-sles" ]
+e4s-cray-sles-generate:
+ extends: [ ".generate-cray-sles", ".e4s-cray-sles" ]
-# e4s-cray-sles-build:
-# extends: [ ".build", ".e4s-cray-sles" ]
-# trigger:
-# include:
-# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
-# job: e4s-cray-sles-generate
-# strategy: depend
-# needs:
-# - artifacts: True
-# job: e4s-cray-sles-generate
+e4s-cray-sles-build:
+ extends: [ ".build", ".e4s-cray-sles" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: e4s-cray-sles-generate
+ strategy: depend
+ needs:
+ - artifacts: True
+ job: e4s-cray-sles-generate
diff --git a/share/spack/gitlab/cloud_pipelines/configs/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/ci.yaml
index 29dc993a15578c..c8c8af6edbcddb 100644
--- a/share/spack/gitlab/cloud_pipelines/configs/ci.yaml
+++ b/share/spack/gitlab/cloud_pipelines/configs/ci.yaml
@@ -4,12 +4,15 @@ ci:
broken-tests-packages:
- gptune
- superlu-dist # srun -n 4 hangs
+ - papyrus
broken-specs-url: "https://dummy.io" # s3://spack-binaries/broken-specs"
pipeline-gen:
- build-job:
before_script-:
+ - - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
- - spack list --count # ensure that spack's cache is populated
- - spack env activate --without-view ${SPACK_CONCRETE_ENV_DIR}
- spack compiler list
@@ -24,11 +27,12 @@ ci:
- - spack config blame mirrors
- spack --color=always --backtrace ci rebuild --tests > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2)
- - spack python ${CI_PROJECT_DIR}/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py
- --prefix /home/software/spack:${CI_PROJECT_DIR}
+ --prefix /home/software/spack:${CI_PROJECT_DIR}/opt/spack
--log install_times.json
${SPACK_ARTIFACTS_ROOT}/user_data/install_times.json
after_script:
- - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
variables:
CI_JOB_SIZE: "default"
CI_GPG_KEY_ROOT: /mnt/key
diff --git a/share/spack/gitlab/cloud_pipelines/configs/linux/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/linux/ci.yaml
index 86340421014601..986277bfdde5fd 100644
--- a/share/spack/gitlab/cloud_pipelines/configs/linux/ci.yaml
+++ b/share/spack/gitlab/cloud_pipelines/configs/linux/ci.yaml
@@ -193,7 +193,6 @@ ci:
- blt
- bzip2
- camp
- - cmake
- curl
- czmq
- darshan-util
diff --git a/share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_v2/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_v2/ci.yaml
new file mode 100644
index 00000000000000..b5136835b2def9
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/configs/linux/neoverse_v2/ci.yaml
@@ -0,0 +1,7 @@
+ci:
+ pipeline-gen:
+ - any-job:
+ variables:
+ SPACK_TARGET_ARCH: neoverse_v2
+ - build-job:
+ tags: ["neoverse_v2"]
diff --git a/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py b/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py
index 9adab64e576a0c..ec40c4c230ce3f 100644
--- a/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py
+++ b/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py
@@ -28,9 +28,17 @@ def find_logs(prefix, filename):
# Aggregate the install timers into a single json
data = []
+
+ # Look in the CWD for logs
+ local_log_path = os.path.join(os.getcwd(), args.log)
+ if os.path.exists(local_log_path):
+ with open(local_log_path) as fd:
+ data.append(json.load(fd))
+
+ # Look in the list of prefixes for logs
for prefix in prefixes:
- time_logs = find_logs(prefix, args.log)
- for log in time_logs:
+ logs = find_logs(prefix, args.log)
+ for log in logs:
with open(log) as fd:
data.append(json.load(fd))
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml
index abd8f4d0242df2..d20d054f5bfd5a 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64/spack.yaml
@@ -21,7 +21,7 @@ spack:
version:
- 1.8.20
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
hdf5:
variants: +fortran +hl +shared
libfabric:
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc/spack.yaml
index 038761ac1873fa..a04f22cb6da608 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/aws-isc/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/aws-isc/spack.yaml
@@ -21,7 +21,7 @@ spack:
version:
- 1.8.20
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
hdf5:
variants: +fortran +hl +shared
libfabric:
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/deprecated/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/deprecated/spack.yaml
index 0c6bf0b05baad5..17d5447c4d1e27 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/deprecated/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/deprecated/spack.yaml
@@ -35,6 +35,8 @@ spack:
- . "./share/spack/setup-env.sh"
- spack --version
- spack arch
+ - cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
script:
- spack compiler find
- cd ${SPACK_CONCRETE_ENV_DIR}
@@ -54,6 +56,7 @@ spack:
2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2)
after_script:
- cat /proc/loadavg || true
+ - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true
match_behavior: first
mappings:
- match:
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/developer-tools/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/developer-tools/spack.yaml
new file mode 100644
index 00000000000000..e322387a1e638e
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/developer-tools/spack.yaml
@@ -0,0 +1,69 @@
+spack:
+ view: false
+ packages:
+ all:
+ require: target=x86_64_v3
+ concretizer:
+ unify: true
+ definitions:
+ - default_specs:
+ # editors
+ - neovim~no_luajit
+ - py-pynvim
+ - emacs@29.1+json+native+treesitter # note, pulls in gcc
+ # - tree-sitter is a dep, should also have cli but no package
+ - nano # just in case
+ # tags and scope search helpers
+ - universal-ctags # only maintained ctags, works better with c++
+ - direnv
+ # runtimes and compilers
+ - python
+ - llvm+link_llvm_dylib~lld~lldb~polly+python build_type=MinSizeRel # for clangd, clang-format
+ - node-js # for editor plugins etc., pyright language server
+ - npm
+ - go # to build fzf, gh, hub
+ - rust+dev # fd, ripgrep, hyperfine, exa, rust-analyzer
+ - binutils+ld+gold+plugins # support linking with built gcc
+ # styling and lints
+ - astyle
+ - cppcheck
+ - uncrustify
+ - py-fprettify
+ - py-fortran-language-server
+ - py-python-lsp-server
+ # cli dev tools
+ - ripgrep
+ - gh
+ - fd
+ - bfs
+ - fzf
+ - tree
+ - jq
+ - py-yq
+ - hub
+ - ncdu
+ - eza
+ - lsd
+ - hyperfine
+ - htop
+ - tmux
+ - ccache
+ # ensure we can use a jobserver build and do this fast
+ - gmake
+ - ninja # should be @kitware, can't be because of meson requirement
+ - "openssl certs=system" # must be this, system external does not work
+ - arch:
+ - '%gcc target=x86_64_v3'
+
+ specs:
+ - matrix:
+ - - $default_specs
+ - - $arch
+
+ ci:
+ pipeline-gen:
+ - build-job:
+ image: "ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4:2023.08.01"
+
+ cdash:
+ build-group: Developer Tools
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-rhel/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-rhel/spack.yaml
index 413fdf34eb28f9..1c5ac370ce2ad5 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-rhel/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-rhel/spack.yaml
@@ -10,7 +10,8 @@ spack:
packages:
all:
- require: '%cce'
+ prefer:
+ - "%cce"
compiler: [cce]
providers:
blas: [cray-libsci]
@@ -30,7 +31,9 @@ spack:
cuda:
version: [11.7.0]
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
+ require: "%gcc"
+ gcc-runtime:
require: "%gcc"
hdf5:
variants: +fortran +hl +shared
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-sles/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-sles/spack.yaml
index c141cd9bf9233a..96e2e1ec8dba28 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-sles/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-cray-sles/spack.yaml
@@ -29,7 +29,7 @@ spack:
cuda:
version: [11.7.0]
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
require: "%gcc"
hdf5:
variants: +fortran +hl +shared
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse-v2/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse-v2/spack.yaml
new file mode 100644
index 00000000000000..5b34695b591796
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse-v2/spack.yaml
@@ -0,0 +1,338 @@
+spack:
+ view: false
+
+ concretizer:
+ reuse: false
+ unify: false
+
+ packages:
+ all:
+ require: '%gcc@11.4.0 target=neoverse_v2'
+ providers:
+ blas: [openblas]
+ mpi: [mpich]
+ variants: +mpi
+ binutils:
+ variants: +ld +gold +headers +libiberty ~nls
+ elfutils:
+ variants: ~nls
+ hdf5:
+ variants: +fortran +hl +shared
+ libfabric:
+ variants: fabrics=sockets,tcp,udp,rxm
+ libunwind:
+ variants: +pic +xz
+ openblas:
+ variants: threads=openmp
+ trilinos:
+ variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext
+ +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
+ +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos
+ +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
+ xz:
+ variants: +pic
+ mesa:
+ version: [21.3.8]
+ mpi:
+ require: mpich
+ mpich:
+ require: '~wrapperrpath ~hwloc'
+ ncurses:
+ require: '@6.3 +termlib'
+ tbb:
+ require: intel-tbb
+ boost:
+ version: [1.79.0]
+ variants: +atomic +chrono +container +date_time +exception +filesystem +graph
+ +iostreams +locale +log +math +mpi +multithreaded +program_options +random
+ +regex +serialization +shared +signals +stacktrace +system +test +thread +timer
+ cxxstd=17 visibility=global
+ libffi:
+ require: "@3.4.4"
+ vtk-m:
+ require: "+examples"
+ cuda:
+ version: [11.8.0]
+
+ specs:
+ # CPU
+ - adios
+ - alquimia
+ - aml
+ - amrex
+ - arborx
+ - argobots
+ - ascent # ecp dav
+ - axom
+ - bolt
+ - boost
+ - butterflypack
+ - cabana
+ - caliper
+ - chai ~benchmarks ~tests
+ - charliecloud
+ - conduit
+ - datatransferkit
+ - dyninst
+ - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +visit: ?
+ - exaworks
+ - flecsi
+ - flit
+ - flux-core
+ - fortrilinos
+ - gasnet
+ - ginkgo
+ - globalarrays
+ - gmp
+ - gotcha
+ - gptune ~mpispawn
+ - gromacs +cp2k ^cp2k build_system=cmake
+ - h5bench
+ - hdf5-vol-async
+ - hdf5-vol-cache
+ - hdf5-vol-log
+ - heffte +fftw
+ - hpctoolkit
+ - hpx networking=mpi
+ - hypre
+ - kokkos +openmp
+ - kokkos-kernels +openmp
+ - lammps
+ - lbann
+ - legion
+ - libnrm
+ - libquo
+ - libunwind
+ - loki
+ - mercury
+ - metall
+ - mfem
+ - mgard +serial +openmp +timing +unstructured ~cuda
+ - mpark-variant
+ - mpifileutils ~xattr
+ - nccmp
+ - nco
+ - netlib-scalapack
+ - nrm
+ - nvhpc
+ - omega-h
+ - openfoam
+ - openmpi
+ - openpmd-api
+ - papi
+ - papyrus
+ - parsec ~cuda
+ - pdt
+ - petsc
+ - phist
+ - plasma
+ - plumed
+ - precice
+ - pruners-ninja
+ - pumi
+ - py-h5py
+ - py-jupyterhub
+ - py-libensemble
+ - py-petsc4py
+ - py-warpx
+ - qthreads scheduler=distrib
+ - quantum-espresso
+ - raja
+ - rempi
+ - scr
+ - slate ~cuda
+ - slepc
+ - stc
+ - strumpack ~slate
+ - sundials
+ - superlu
+ - superlu-dist
+ - swig@4.0.2-fortran
+ - sz3
+ - tasmanian
+ - tau +mpi +python +syscall
+ - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
+ - turbine
+ - umap
+ - umpire
+ - upcxx
+ - wannier90
+ - xyce +mpi +shared +pymi +pymi_static_tpls
+ # INCLUDED IN ECP DAV CPU
+ - adios2
+ - darshan-runtime
+ - darshan-util
+ - faodel
+ - hdf5
+ - libcatalyst
+ - parallel-netcdf
+ - paraview
+ - py-cinemasci
+ - sz
+ - unifyfs
+ - veloc
+ # - visit # silo: https://github.com/spack/spack/issues/39538
+ - vtk-m
+ - zfp
+ # --
+ # - archer # part of llvm +omp_tsan
+ # - bricks ~cuda # not respecting target=aarch64?
+ # - dealii # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
+ # - geopm # geopm: https://github.com/spack/spack/issues/38795
+ # - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp # py-numcodecs@0.7.3: gcc: error: unrecognized command-line option '-mno-sse2'
+ # - variorum # variorum: https://github.com/spack/spack/issues/38786
+
+ # CUDA NOARCH
+ - flux-core +cuda
+ - hpctoolkit +cuda
+ - papi +cuda
+ - tau +mpi +cuda +syscall
+ # --
+ # - bricks +cuda # not respecting target=aarch64?
+ # - legion +cuda # legion: needs NVIDIA driver
+
+ # CUDA 75
+ - amrex +cuda cuda_arch=75
+ - arborx +cuda cuda_arch=75 ^kokkos +wrapper
+ - cabana +cuda cuda_arch=75 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=75
+ - caliper +cuda cuda_arch=75
+ - chai ~benchmarks ~tests +cuda cuda_arch=75 ^umpire ~shared
+ - flecsi +cuda cuda_arch=75
+ - ginkgo +cuda cuda_arch=75
+ - gromacs +cuda cuda_arch=75
+ - heffte +cuda cuda_arch=75
+ - hpx +cuda cuda_arch=75
+ - hypre +cuda cuda_arch=75
+ - kokkos +wrapper +cuda cuda_arch=75
+ - kokkos-kernels +cuda cuda_arch=75 ^kokkos +wrapper +cuda cuda_arch=75
+ - magma +cuda cuda_arch=75
+ - mfem +cuda cuda_arch=75
+ - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=75
+ - omega-h +cuda cuda_arch=75
+ - parsec +cuda cuda_arch=75
+ - petsc +cuda cuda_arch=75
+ - raja +cuda cuda_arch=75
+ - slate +cuda cuda_arch=75
+ - strumpack ~slate +cuda cuda_arch=75
+ - sundials +cuda cuda_arch=75
+ - superlu-dist +cuda cuda_arch=75
+ - tasmanian +cuda cuda_arch=75
+ - trilinos +cuda cuda_arch=75
+ - umpire ~shared +cuda cuda_arch=75
+ # INCLUDED IN ECP DAV CUDA
+ - adios2 +cuda cuda_arch=75
+ - paraview +cuda cuda_arch=75
+ - vtk-m +cuda cuda_arch=75
+ - zfp +cuda cuda_arch=75
+ # --
+ # - ascent +cuda cuda_arch=75 # ascent: https://github.com/spack/spack/issues/38045
+ # - axom +cuda cuda_arch=75 # axom: https://github.com/spack/spack/issues/29520
+ # - cusz +cuda cuda_arch=75 # cusz: https://github.com/spack/spack/issues/38787
+ # - dealii +cuda cuda_arch=75 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
+ # - ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=75 # embree: https://github.com/spack/spack/issues/39534
+ # - lammps +cuda cuda_arch=75 # lammps: needs NVIDIA driver
+ # - lbann +cuda cuda_arch=75 # lbann: https://github.com/spack/spack/issues/38788
+ # - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf ~cusz +mgard +cuda cuda_arch=75 # libpressio: CMake Error at CMakeLists.txt:498 (find_library): Could not find CUFile_LIBRARY using the following names: cufile ; +cusz: https://github.com/spack/spack/issues/38787
+ # - py-torch +cuda cuda_arch=75 # skipped, installed by other means
+ # - slepc +cuda cuda_arch=75 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
+ # - upcxx +cuda cuda_arch=75 # upcxx: needs NVIDIA driver
+
+ # CUDA 80
+ - amrex +cuda cuda_arch=80
+ - arborx +cuda cuda_arch=80 ^kokkos +wrapper
+ - cabana +cuda cuda_arch=80 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=80
+ - caliper +cuda cuda_arch=80
+ - chai ~benchmarks ~tests +cuda cuda_arch=80 ^umpire ~shared
+ - flecsi +cuda cuda_arch=80
+ - ginkgo +cuda cuda_arch=80
+ - gromacs +cuda cuda_arch=80
+ - heffte +cuda cuda_arch=80
+ - hpx +cuda cuda_arch=80
+ - hypre +cuda cuda_arch=80
+ - kokkos +wrapper +cuda cuda_arch=80
+ - kokkos-kernels +cuda cuda_arch=80 ^kokkos +wrapper +cuda cuda_arch=80
+ - magma +cuda cuda_arch=80
+ - mfem +cuda cuda_arch=80
+ - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=80
+ - omega-h +cuda cuda_arch=80
+ - parsec +cuda cuda_arch=80
+ - petsc +cuda cuda_arch=80
+ - raja +cuda cuda_arch=80
+ - slate +cuda cuda_arch=80
+ - strumpack ~slate +cuda cuda_arch=80
+ - sundials +cuda cuda_arch=80
+ - superlu-dist +cuda cuda_arch=80
+ - tasmanian +cuda cuda_arch=80
+ - trilinos +cuda cuda_arch=80
+ - umpire ~shared +cuda cuda_arch=80
+ # INCLUDED IN ECP DAV CUDA
+ - adios2 +cuda cuda_arch=80
+ - paraview +cuda cuda_arch=80
+ - vtk-m +cuda cuda_arch=80
+ - zfp +cuda cuda_arch=80
+ # --
+ # - ascent +cuda cuda_arch=80 # ascent: https://github.com/spack/spack/issues/38045
+ # - axom +cuda cuda_arch=80 # axom: https://github.com/spack/spack/issues/29520
+ # - cusz +cuda cuda_arch=80 # cusz: https://github.com/spack/spack/issues/38787
+ # - dealii +cuda cuda_arch=80 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
+ # - ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=80 # embree: https://github.com/spack/spack/issues/39534
+ # - lammps +cuda cuda_arch=80 # lammps: needs NVIDIA driver
+ # - lbann +cuda cuda_arch=80 # lbann: https://github.com/spack/spack/issues/38788
+ # - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf ~cusz +mgard +cuda cuda_arch=80 # libpressio: CMake Error at CMakeLists.txt:498 (find_library): Could not find CUFile_LIBRARY using the following names: cufile ; +cusz: https://github.com/spack/spack/issues/38787
+ # - py-torch +cuda cuda_arch=80 # skipped, installed by other means
+ # - slepc +cuda cuda_arch=80 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
+ # - upcxx +cuda cuda_arch=80 # upcxx: needs NVIDIA driver
+
+ # CUDA 90
+ - amrex +cuda cuda_arch=90
+ - arborx +cuda cuda_arch=90 ^kokkos +wrapper
+ - cabana +cuda cuda_arch=90 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=90
+ - caliper +cuda cuda_arch=90
+ - chai ~benchmarks ~tests +cuda cuda_arch=90 ^umpire ~shared
+ - flecsi +cuda cuda_arch=90
+ - ginkgo +cuda cuda_arch=90
+ - gromacs +cuda cuda_arch=90
+ - heffte +cuda cuda_arch=90
+ - hpx +cuda cuda_arch=90
+ - kokkos +wrapper +cuda cuda_arch=90
+ - kokkos-kernels +cuda cuda_arch=90 ^kokkos +wrapper +cuda cuda_arch=90
+ - magma +cuda cuda_arch=90
+ - mfem +cuda cuda_arch=90
+ - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=90
+ - parsec +cuda cuda_arch=90
+ - petsc +cuda cuda_arch=90
+ - raja +cuda cuda_arch=90
+ - slate +cuda cuda_arch=90
+ - strumpack ~slate +cuda cuda_arch=90
+ - sundials +cuda cuda_arch=90
+ - superlu-dist +cuda cuda_arch=90
+ - trilinos +cuda cuda_arch=90
+ - umpire ~shared +cuda cuda_arch=90
+ # INCLUDED IN ECP DAV CUDA
+ - adios2 +cuda cuda_arch=90
+ # - paraview +cuda cuda_arch=90 # paraview: InstallError: Incompatible cuda_arch=90
+ - vtk-m +cuda cuda_arch=90
+ - zfp +cuda cuda_arch=90
+ # --
+ # - ascent +cuda cuda_arch=90 # ascent: https://github.com/spack/spack/issues/38045
+ # - axom +cuda cuda_arch=90 # axom: https://github.com/spack/spack/issues/29520
+ # - cusz +cuda cuda_arch=90 # cusz: https://github.com/spack/spack/issues/38787
+ # - dealii +cuda cuda_arch=90 # dealii: https://github.com/spack/spack/issues/39532
+ # - ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=90 # embree: https://github.com/spack/spack/issues/39534
+ # - hypre +cuda cuda_arch=90 # concretizer: hypre +cuda requires cuda@:11, but cuda_arch=90 requires cuda@12:
+ # - lammps +cuda cuda_arch=90 # lammps: needs NVIDIA driver
+ # - lbann +cuda cuda_arch=90 # concretizer: Cannot select a single "version" for package "lbann"
+ # - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf ~cusz +mgard +cuda cuda_arch=90 # libpressio: CMake Error at CMakeLists.txt:498 (find_library): Could not find CUFile_LIBRARY using the following names: cufile ; +cusz: https://github.com/spack/spack/issues/38787
+ # - omega-h +cuda cuda_arch=90 # omega-h: https://github.com/spack/spack/issues/39535
+ # - py-torch +cuda cuda_arch=90 # skipped, installed by other means
+ # - slepc +cuda cuda_arch=90 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
+ # - tasmanian +cuda cuda_arch=90 # tasmanian: conflicts with cuda@12
+ # - upcxx +cuda cuda_arch=90 # upcxx: needs NVIDIA driver
+
+ ci:
+ pipeline-gen:
+ - build-job:
+ image: "ghcr.io/spack/ubuntu22.04-runner-arm64-gcc-11.4:2024.01.01"
+
+ cdash:
+ build-group: E4S ARM Neoverse V2
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml
index 82a1f07c8d4186..207412cb7a17c0 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml
@@ -15,7 +15,7 @@ spack:
binutils:
variants: +ld +gold +headers +libiberty ~nls
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
hdf5:
variants: +fortran +hl +shared
libfabric:
@@ -31,8 +31,6 @@ spack:
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
xz:
variants: +pic
- mesa:
- version: [21.3.8]
mpi:
require: mpich
mpich:
@@ -199,6 +197,7 @@ spack:
- chai ~benchmarks ~tests +cuda cuda_arch=75 ^umpire ~shared
- flecsi +cuda cuda_arch=75
- ginkgo +cuda cuda_arch=75
+ - gromacs +cuda cuda_arch=75
- heffte +cuda cuda_arch=75
- hpx +cuda cuda_arch=75
- hypre +cuda cuda_arch=75
@@ -244,6 +243,7 @@ spack:
- chai ~benchmarks ~tests +cuda cuda_arch=80 ^umpire ~shared
- flecsi +cuda cuda_arch=80
- ginkgo +cuda cuda_arch=80
+ - gromacs +cuda cuda_arch=80
- heffte +cuda cuda_arch=80
- hpx +cuda cuda_arch=80
- hypre +cuda cuda_arch=80
@@ -289,6 +289,7 @@ spack:
- chai ~benchmarks ~tests +cuda cuda_arch=90 ^umpire ~shared
- flecsi +cuda cuda_arch=90
- ginkgo +cuda cuda_arch=90
+ - gromacs +cuda cuda_arch=90
- heffte +cuda cuda_arch=90
- hpx +cuda cuda_arch=90
- kokkos +wrapper +cuda cuda_arch=90
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml
index 8c872240f9e608..c135c2f95de250 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml
@@ -7,14 +7,19 @@ spack:
packages:
all:
- require: '%oneapi target=x86_64_v3'
+ require:
+ - "target=x86_64_v3"
+ prefer:
+ - "%oneapi"
providers:
blas: [openblas]
mpi: [mpich]
tbb: [intel-tbb]
variants: +mpi
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
+ gcc-runtime:
+ require: "%gcc"
hdf5:
require: "%gcc"
variants: +fortran +hl +shared
@@ -68,14 +73,12 @@ spack:
specs:
# CPU
- adios
- - aml
- amrex
- arborx
- argobots
- axom
- bolt
- boost
- - bricks ~cuda
- butterflypack
- cabana
- caliper
@@ -95,6 +98,7 @@ spack:
- gmp
- gotcha
- gptune ~mpispawn
+ - gromacs
- h5bench
- hdf5-vol-async
- hdf5-vol-cache
@@ -126,7 +130,6 @@ spack:
- papi
- papyrus
- parsec ~cuda
- - pdt
- petsc
- phist
- plasma
@@ -140,7 +143,6 @@ spack:
- py-petsc4py
- py-warpx
- qthreads scheduler=distrib
- - quantum-espresso
- raja
- rempi
- scr
@@ -153,7 +155,6 @@ spack:
- superlu-dist
- sz3
- tasmanian
- - tau +mpi +python +syscall
- trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
- turbine
- umap
@@ -179,39 +180,49 @@ spack:
- vtk-m ~openmp # https://github.com/spack/spack/issues/31830
- zfp
# --
- # - alquimia # pflotran: https://github.com/spack/spack/issues/39474
- # - archer # subsumed under llvm +libomp_tsan
- # - dealii # dealii: https://github.com/spack/spack/issues/39482
- # - dxt-explorer # r: https://github.com/spack/spack/issues/40257
+ # - alquimia # pflotran: https://github.com/spack/spack/issues/39474
+ # - dealii # dealii: https://github.com/spack/spack/issues/39482
+ # - dxt-explorer # r: https://github.com/spack/spack/issues/40257
# - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc +visit +vtkm +zfp # embree: CMake Error at CMakeLists.txt:215 (MESSAGE): Unsupported compiler: IntelLLVM; qt: qtbase/src/corelib/global/qendian.h:333:54: error: incomplete type 'std::numeric_limits' used in nested name specifier
- # - geopm # geopm issue: https://github.com/spack/spack/issues/38795
- # - hpctoolkit # dyninst@12.3.0%gcc: /usr/bin/ld: libiberty/./d-demangle.c:142: undefined reference to `_intel_fast_memcpy'; can't mix intel-tbb@%oneapi with dyninst%gcc
- # - mgard +serial +openmp +timing +unstructured ~cuda # mgard: mgard.tpp:63:48: error: non-constant-expression cannot be narrowed from type 'int' to 'unsigned long' in initializer list [-Wc++11-narrowing]
- # - openfoam # cgal: https://github.com/spack/spack/issues/39481
- # - openpmd-api # mgard: mgard.tpp:63:48: error: non-constant-expression cannot be narrowed from type 'int' to 'unsigned long' in initializer list [-Wc++11-narrowing]
- # - swig@4.0.2-fortran # ?
- # - upcxx # upcxx: /opt/intel/oneapi/mpi/2021.10.0//libfabric/bin/fi_info: error while loading shared libraries: libfabric.so.1: cannot open shared object file: No such file or directory
+ # - geopm # geopm issue: https://github.com/spack/spack/issues/38795
+ # - hpctoolkit # dyninst@12.3.0%gcc: /usr/bin/ld: libiberty/./d-demangle.c:142: undefined reference to `_intel_fast_memcpy'; can't mix intel-tbb@%oneapi with dyninst%gcc
+ # - mgard +serial +openmp +timing +unstructured ~cuda # mgard: mgard.tpp:63:48: error: non-constant-expression cannot be narrowed from type 'int' to 'unsigned long' in initializer list [-Wc++11-narrowing]
+ # - openfoam # cgal: https://github.com/spack/spack/issues/39481
+ # - openpmd-api # mgard: mgard.tpp:63:48: error: non-constant-expression cannot be narrowed from type 'int' to 'unsigned long' in initializer list [-Wc++11-narrowing]
+ # - swig@4.0.2-fortran # ?
+ # - upcxx # upcxx: /opt/intel/oneapi/mpi/2021.10.0//libfabric/bin/fi_info: error while loading shared libraries: libfabric.so.1: cannot open shared object file: No such file or directory
+ # --
+ # - bricks ~cuda # bricks: /opt/intel/oneapi/compiler/2024.0/bin/sycl-post-link: error while loading shared libraries: libonnxruntime.1.12.22.721.so: cannot open shared object file: No such file or directory
+ # - pdt # pdt: pdbType.cc:193:21: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
+ # - quantum-espresso # quantum-espresso@7.2 /i3fqdx5: warning: :0:0: loop not unroll-and-jammed: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering
+ # - tau +mpi +python +syscall # pdt: pdbType.cc:193:21: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
# GPU
- - aml +ze
- amrex +sycl
- - arborx +sycl ^kokkos +sycl +openmp cxxstd=17 +tests +examples
- - cabana +sycl ^kokkos +sycl +openmp cxxstd=17 +tests +examples
- - kokkos +sycl +openmp cxxstd=17 +tests +examples
- - kokkos-kernels build_type=Release %oneapi ^kokkos +sycl +openmp cxxstd=17 +tests +examples
- - slate +sycl
- - sundials +sycl cxxstd=17 +examples-install
- - tau +mpi +opencl +level_zero ~pdt +syscall # tau: requires libdrm.so to be installed
+ - tau +mpi +opencl +level_zero ~pdt +syscall # requires libdrm.so to be installed
+ - upcxx +level_zero
# --
- # - ginkgo +oneapi # InstallError: Ginkgo's oneAPI backend requires theDPC++ compiler as main CXX compiler.
# - hpctoolkit +level_zero # dyninst@12.3.0%gcc: /usr/bin/ld: libiberty/./d-demangle.c:142: undefined reference to `_intel_fast_memcpy'; can't mix intel-tbb@%oneapi with dyninst%gcc
+ # - warpx compute=sycl # warpx: spack-build-wzp6vvo/_deps/fetchedamrex-src/Src/Base/AMReX_RandomEngine.H:18:10: fatal error: 'oneapi/mkl/rng/device.hpp' file not found
+ # --
+ - aml # aml: /opt/intel/oneapi/compiler/2024.0/bin/sycl-post-link: error while loading shared libraries: libonnxruntime.1.12.22.721.so: cannot open shared object file: No such file or directory
+ - aml +ze # aml: /opt/intel/oneapi/compiler/2024.0/bin/sycl-post-link: error while loading shared libraries: libonnxruntime.1.12.22.721.so: cannot open shared object file: No such file or directory
+ - arborx +sycl ^kokkos +sycl +openmp cxxstd=17 +examples # kokkos@4.2.00: CMake Error at cmake/Modules/FindTPLONEDPL.cmake:31 (FIND_PACKAGE):
+ - cabana +sycl ^kokkos +sycl +openmp cxxstd=17 +examples # kokkos@4.2.00: CMake Error at cmake/Modules/FindTPLONEDPL.cmake:31 (FIND_PACKAGE):
+ - ginkgo +sycl # ginkgo: Could NOT find PAPI (missing: PAPI_LIBRARY PAPI_INCLUDE_DIR sde) (Required is at least version "7.0.1.0") SYCL feature test compile failed! compile output is: CMake Error at /opt/intel/oneapi/compiler/2024.0/lib/cmake/IntelSYCL/IntelSYCLConfig.cmake:282 (SYCL_FEATURE_TEST_EXTRACT): SYCL_FEATURE_TEST_EXTRACT Function invoked with incorrect arguments for
+ - heffte +sycl # heffte: /opt/intel/oneapi/compiler/2024.0/bin/sycl-post-link: error while loading shared libraries: libonnxruntime.1.12.22.721.so: cannot open shared object file: No such file or directory
+ - kokkos +sycl +openmp cxxstd=17 +examples # kokkos@4.2.00: CMake Error at cmake/Modules/FindTPLONEDPL.cmake:31 (FIND_PACKAGE):
+ - kokkos-kernels build_type=Release %oneapi ^kokkos +sycl +openmp cxxstd=17 +examples # kokkos@4.0.00: tpls/desul/include/desul/atomics/Adapt_SYCL.hpp:83:7: error: no template named 'sycl_memory_scope'
+ - petsc +sycl # kokkos@4.0.00: tpls/desul/include/desul/atomics/Adapt_SYCL.hpp:83:7: error: no template named 'sycl_memory_scope'
+ # - slate +sycl # blaspp: CMake Error at CMakeLists.txt:313 (find_package): ... set MKL_FOUND to FALSE so package "MKL" is considered to be NOT FOUND.
+ - sundials +sycl cxxstd=17 +examples-install # sundials@6.6.2 /cakfnxs: CMake: could NOT find MPI_CXX (missing: MPI_CXX_WORKS) (Required is at least version "2.0.0")
- py-scipy
ci:
pipeline-gen:
- build-job:
- image: ghcr.io/spack/ubuntu20.04-runner-amd64-oneapi-2023.2.1:2023.08.01
+ image: ghcr.io/spack/ubuntu22.04-runner-amd64-oneapi-2024.0.0:2024.01.16b
cdash:
build-group: E4S OneAPI
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml
index 511f48e7459408..a8eefa4de71519 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-power/spack.yaml
@@ -16,7 +16,7 @@ spack:
binutils:
variants: +ld +gold +headers +libiberty ~nls
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
hdf5:
variants: +fortran +hl +shared
libfabric:
@@ -202,6 +202,7 @@ spack:
- exago +mpi +python +raja +hiop ~rocm +cuda cuda_arch=70 ~ipopt ^hiop@1.0.0 ~sparse +mpi +raja ~rocm +cuda cuda_arch=70 #^raja@0.14.0
- flecsi +cuda cuda_arch=70
- ginkgo +cuda cuda_arch=70
+ - gromacs +cuda cuda_arch=70
- heffte +cuda cuda_arch=70
- hpx +cuda cuda_arch=70
- hypre +cuda cuda_arch=70
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-rocm-external/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-rocm-external/spack.yaml
index 8f902aa6a8d4f4..1f63578998e365 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-rocm-external/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-rocm-external/spack.yaml
@@ -15,7 +15,7 @@ spack:
binutils:
variants: +ld +gold +headers +libiberty ~nls
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
hdf5:
variants: +fortran +hl +shared
libfabric:
@@ -91,7 +91,7 @@ spack:
miopen-hip:
buildable: false
externals:
- - spec: hip-rocclr@5.4.3
+ - spec: miopen-hip@5.4.3
prefix: /opt/rocm-5.4.3/
miopengemm:
buildable: false
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
index 11396a768f7cb1..e905ea3f2a163e 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
@@ -15,7 +15,7 @@ spack:
binutils:
variants: +ld +gold +headers +libiberty ~nls
elfutils:
- variants: +bzip2 ~nls +xz
+ variants: ~nls
hdf5:
variants: +fortran +hl +shared
libfabric:
@@ -103,6 +103,7 @@ spack:
- hpctoolkit
- hpx networking=mpi
- hypre
+ - julia ^llvm ~clang ~gold ~polly targets=amdgpu,bpf,nvptx,webassembly
- kokkos +openmp
- kokkos-kernels +openmp
- lammps
@@ -210,6 +211,7 @@ spack:
- exago +mpi +python +raja +hiop ~rocm +cuda cuda_arch=80 ~ipopt ^hiop@1.0.0 ~sparse +mpi +raja ~rocm +cuda cuda_arch=80 #^raja@0.14.0
- flecsi +cuda cuda_arch=80
- ginkgo +cuda cuda_arch=80
+ - gromacs +cuda cuda_arch=80
- heffte +cuda cuda_arch=80
- hpx +cuda cuda_arch=80
- hypre +cuda cuda_arch=80
@@ -253,6 +255,7 @@ spack:
- cusz +cuda cuda_arch=90
- flecsi +cuda cuda_arch=90
- ginkgo +cuda cuda_arch=90
+ - gromacs +cuda cuda_arch=90
- heffte +cuda cuda_arch=90
- hpx +cuda cuda_arch=90
- kokkos +wrapper +cuda cuda_arch=90
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/ml-darwin-aarch64-mps/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/ml-darwin-aarch64-mps/spack.yaml
index 0905305113f083..0526a4a12f5954 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/ml-darwin-aarch64-mps/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/ml-darwin-aarch64-mps/spack.yaml
@@ -24,7 +24,9 @@ spack:
# Keras
# Bazel codesign issues
- # - py-keras
+ # - py-keras backend=tensorflow
+ # - py-keras backend=jax
+ - py-keras backend=torch
- py-keras-applications
- py-keras-preprocessing
- py-keras2onnx
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cpu/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cpu/spack.yaml
index 71670d5a91568d..fdce7f9bb4f840 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cpu/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cpu/spack.yaml
@@ -19,7 +19,9 @@ spack:
- py-jaxlib
# Keras
- - py-keras
+ # - py-keras backend=tensorflow
+ - py-keras backend=jax
+ - py-keras backend=torch
- py-keras-applications
- py-keras-preprocessing
- py-keras2onnx
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cuda/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cuda/spack.yaml
index 88291690382784..1a64d838113b73 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cuda/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cuda/spack.yaml
@@ -22,7 +22,9 @@ spack:
- py-jaxlib
# Keras
- - py-keras
+ # - py-keras backend=tensorflow
+ - py-keras backend=jax
+ - py-keras backend=torch
- py-keras-applications
- py-keras-preprocessing
- py-keras2onnx
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-rocm/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-rocm/spack.yaml
index 620a95715b41e5..5633d9846a4c19 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-rocm/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-rocm/spack.yaml
@@ -24,7 +24,9 @@ spack:
- py-jaxlib
# Keras
- - py-keras
+ # - py-keras backend=tensorflow
+ - py-keras backend=jax
+ # - py-keras backend=torch
- py-keras-applications
- py-keras-preprocessing
- py-keras2onnx
diff --git a/share/spack/qa/completion-test.sh b/share/spack/qa/completion-test.sh
index 1071ed36dbeac2..020f8a9c07964a 100755
--- a/share/spack/qa/completion-test.sh
+++ b/share/spack/qa/completion-test.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/qa/run-build-tests b/share/spack/qa/run-build-tests
index 4c159bd678b667..1f9d9c54f141c1 100755
--- a/share/spack/qa/run-build-tests
+++ b/share/spack/qa/run-build-tests
@@ -1,6 +1,6 @@
#!/bin/bash -e
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/qa/run-shell-tests b/share/spack/qa/run-shell-tests
index 898f6eebb42328..d7debc9f34f510 100755
--- a/share/spack/qa/run-shell-tests
+++ b/share/spack/qa/run-shell-tests
@@ -1,6 +1,6 @@
#!/bin/bash -e
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/qa/run-style-tests b/share/spack/qa/run-style-tests
index 9b372c205263b3..6a4cbb8c6d9be8 100755
--- a/share/spack/qa/run-style-tests
+++ b/share/spack/qa/run-style-tests
@@ -1,6 +1,6 @@
#!/bin/bash -e
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/qa/run-unit-tests b/share/spack/qa/run-unit-tests
index 61638a53e0f7e9..6808e18bdbe867 100755
--- a/share/spack/qa/run-unit-tests
+++ b/share/spack/qa/run-unit-tests
@@ -1,6 +1,6 @@
#!/bin/bash -e
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/qa/setup-env-test.csh b/share/spack/qa/setup-env-test.csh
index f7a153ca3e188a..39eb8545321a7d 100755
--- a/share/spack/qa/setup-env-test.csh
+++ b/share/spack/qa/setup-env-test.csh
@@ -1,6 +1,6 @@
#!/bin/csh
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/qa/setup-env-test.fish b/share/spack/qa/setup-env-test.fish
index 589f4cbfa8c353..d57158f84221c7 100755
--- a/share/spack/qa/setup-env-test.fish
+++ b/share/spack/qa/setup-env-test.fish
@@ -1,6 +1,6 @@
#!/usr/bin/env fish
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/qa/setup-env-test.sh b/share/spack/qa/setup-env-test.sh
index b26619b9cde0a0..ec24166d52dae6 100755
--- a/share/spack/qa/setup-env-test.sh
+++ b/share/spack/qa/setup-env-test.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/qa/setup.sh b/share/spack/qa/setup.sh
index 13e8e25b157846..9e0083f982a155 100755
--- a/share/spack/qa/setup.sh
+++ b/share/spack/qa/setup.sh
@@ -1,6 +1,6 @@
#!/bin/bash -e
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/qa/test-env-cfg.sh b/share/spack/qa/test-env-cfg.sh
index 37f9affdf92906..f689f238d59d83 100755
--- a/share/spack/qa/test-env-cfg.sh
+++ b/share/spack/qa/test-env-cfg.sh
@@ -1,6 +1,6 @@
#!/bin/bash
#
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/qa/test-framework.sh b/share/spack/qa/test-framework.sh
index e18e95262138d6..173f27514ba98f 100755
--- a/share/spack/qa/test-framework.sh
+++ b/share/spack/qa/test-framework.sh
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/setup-env.csh b/share/spack/setup-env.csh
index ad20d346d17607..14dcee56b79fca 100755
--- a/share/spack/setup-env.csh
+++ b/share/spack/setup-env.csh
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,38 +17,37 @@ if ($?_sp_initializing) then
endif
setenv _sp_initializing true
-# If SPACK_ROOT is not set, we'll try to find it ourselves.
+# find SPACK_ROOT.
# csh/tcsh don't have a built-in way to do this, but both keep files
# they are sourcing open. We use /proc on linux and lsof on macs to
# find this script's full path in the current process's open files.
-if (! $?SPACK_ROOT) then
- # figure out a command to list open files
- if (-d /proc/$$/fd) then
- set _sp_lsof = "ls -l /proc/$$/fd"
- else
- which lsof > /dev/null
- if ($? == 0) then
- set _sp_lsof = "lsof -p $$"
- endif
- endif
- # filter this script out of list of open files
- if ( $?_sp_lsof ) then
- set _sp_source_file = `$_sp_lsof | sed -e 's/^[^/]*//' | grep "/setup-env.csh"`
+# figure out a command to list open files
+if (-d /proc/$$/fd) then
+ set _sp_lsof = "ls -l /proc/$$/fd"
+else
+ which lsof > /dev/null
+ if ($? == 0) then
+ set _sp_lsof = "lsof -p $$"
endif
+endif
- # This script is in $SPACK_ROOT/share/spack; get the root with dirname
- if ($?_sp_source_file) then
- set _sp_share_spack = `dirname "$_sp_source_file"`
- set _sp_share = `dirname "$_sp_share_spack"`
- setenv SPACK_ROOT `dirname "$_sp_share"`
- endif
+# filter this script out of list of open files
+if ( $?_sp_lsof ) then
+ set _sp_source_file = `$_sp_lsof | sed -e 's/^[^/]*//' | grep "/setup-env.csh"`
+endif
- if (! $?SPACK_ROOT) then
- echo "==> Error: setup-env.csh couldn't figure out where spack lives."
- echo " Set SPACK_ROOT to the root of your spack installation and try again."
- exit 1
- endif
+# This script is in $SPACK_ROOT/share/spack; get the root with dirname
+if ($?_sp_source_file) then
+ set _sp_share_spack = `dirname "$_sp_source_file"`
+ set _sp_share = `dirname "$_sp_share_spack"`
+ setenv SPACK_ROOT `dirname "$_sp_share"`
+endif
+
+if (! $?SPACK_ROOT) then
+ echo "==> Error: setup-env.csh couldn't figure out where spack lives."
+ echo " Set SPACK_ROOT to the root of your spack installation and try again."
+ exit 1
endif
# Command aliases point at separate source files
diff --git a/share/spack/setup-env.fish b/share/spack/setup-env.fish
index 482c3eaa684c06..a7aac674309bcc 100755
--- a/share/spack/setup-env.fish
+++ b/share/spack/setup-env.fish
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -648,10 +648,10 @@ function spack_pathadd -d "Add path to specified variable (defaults to PATH)"
# passed to regular expression matching (`string match -r`)
set -l _a "$pa_oldvalue"
- # skip path if it is already contained in the variable
+ # skip path if it is already the first in the variable
# note spaces in regular expression: we're matching to a space delimited
# list of paths
- if not echo $_a | string match -q -r " *$pa_new_path *"
+ if not echo $_a | string match -q -r "^$pa_new_path *"
if test -n "$pa_oldvalue"
set $pa_varname $pa_new_path $pa_oldvalue
else
diff --git a/share/spack/setup-env.ps1 b/share/spack/setup-env.ps1
index d3bed93d9ba3f2..d67e39f85bc471 100644
--- a/share/spack/setup-env.ps1
+++ b/share/spack/setup-env.ps1
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/setup-env.sh b/share/spack/setup-env.sh
index a42882266cf9fa..f3e87fe514b1c0 100755
--- a/share/spack/setup-env.sh
+++ b/share/spack/setup-env.sh
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -214,9 +214,9 @@ _spack_pathadd() {
# Do the actual prepending here.
eval "_pa_oldvalue=\${${_pa_varname}:-}"
- _pa_canonical=":$_pa_oldvalue:"
+ _pa_canonical="$_pa_oldvalue:"
if [ -d "$_pa_new_path" ] && \
- [ "${_pa_canonical#*:${_pa_new_path}:}" = "${_pa_canonical}" ];
+ [ "${_pa_canonical#$_pa_new_path:}" = "$_pa_canonical" ];
then
if [ -n "$_pa_oldvalue" ]; then
eval "export $_pa_varname=\"$_pa_new_path:$_pa_oldvalue\""
diff --git a/share/spack/setup-tutorial-env.sh b/share/spack/setup-tutorial-env.sh
index 13f181500d0840..6979da532979e4 100755
--- a/share/spack/setup-tutorial-env.sh
+++ b/share/spack/setup-tutorial-env.sh
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash
index a54f7db414e409..abc6db10d1e3c3 100755
--- a/share/spack/spack-completion.bash
+++ b/share/spack/spack-completion.bash
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -571,7 +571,7 @@ _spack_buildcache() {
_spack_buildcache_push() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -f --force --allow-root -a --unsigned -u --key -k --update-index --rebuild-index --spec-file --only --fail-fast --base-image -j --jobs"
+ SPACK_COMPREPLY="-h --help -f --force --allow-root -a --unsigned -u --signed --key -k --update-index --rebuild-index --spec-file --only --fail-fast --base-image --tag -t -j --jobs"
else
_mirrors
fi
@@ -580,7 +580,7 @@ _spack_buildcache_push() {
_spack_buildcache_create() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -f --force --allow-root -a --unsigned -u --key -k --update-index --rebuild-index --spec-file --only --fail-fast --base-image -j --jobs"
+ SPACK_COMPREPLY="-h --help -f --force --allow-root -a --unsigned -u --signed --key -k --update-index --rebuild-index --spec-file --only --fail-fast --base-image --tag -t -j --jobs"
else
_mirrors
fi
@@ -618,7 +618,12 @@ _spack_buildcache_preview() {
}
_spack_buildcache_check() {
- SPACK_COMPREPLY="-h --help -m --mirror-url -o --output-file --scope -s --spec --spec-file"
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help -m --mirror-url -o --output-file --scope -s --spec --spec-file"
+ else
+ _all_packages
+ fi
}
_spack_buildcache_download() {
@@ -819,7 +824,7 @@ _spack_config() {
then
SPACK_COMPREPLY="-h --help --scope"
else
- SPACK_COMPREPLY="get blame edit list add prefer-upstream remove rm update revert"
+ SPACK_COMPREPLY="get blame edit list add change prefer-upstream remove rm update revert"
fi
}
@@ -863,6 +868,15 @@ _spack_config_add() {
fi
}
+_spack_config_change() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help --match-spec"
+ else
+ SPACK_COMPREPLY=""
+ fi
+}
+
_spack_config_prefer_upstream() {
SPACK_COMPREPLY="-h --help --local"
}
@@ -994,7 +1008,7 @@ _spack_develop() {
_spack_diff() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --json --first -a --attribute"
+ SPACK_COMPREPLY="-h --help --json --first -a --attribute --ignore"
else
_all_packages
fi
@@ -1025,7 +1039,7 @@ _spack_env() {
_spack_env_activate() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --sh --csh --fish --bat --pwsh --with-view -v --without-view -V -p --prompt --temp -d --dir"
+ SPACK_COMPREPLY="-h --help --sh --csh --fish --bat --pwsh --with-view -v --without-view -V -p --prompt --temp --create --envfile --keep-relative -d --dir"
else
_environments
fi
@@ -1172,7 +1186,7 @@ _spack_find() {
}
_spack_gc() {
- SPACK_COMPREPLY="-h --help -y --yes-to-all"
+ SPACK_COMPREPLY="-h --help -E --except-any-environment -e --except-environment -b --keep-build-dependencies -y --yes-to-all"
}
_spack_gpg() {
@@ -1315,7 +1329,7 @@ _spack_license_update_copyright_year() {
_spack_list() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -d --search-description --format -v --virtuals -t --tag --count --update"
+ SPACK_COMPREPLY="-h --help -r --repo -N --namespace -d --search-description --format -v --virtuals -t --tag --count --update"
else
_all_packages
fi
@@ -1400,7 +1414,7 @@ _spack_mirror_destroy() {
_spack_mirror_add() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --scope --type --s3-access-key-id --s3-access-key-secret --s3-access-token --s3-profile --s3-endpoint-url --oci-username --oci-password"
+ SPACK_COMPREPLY="-h --help --scope --type --unsigned --signed --s3-access-key-id --s3-access-key-secret --s3-access-token --s3-profile --s3-endpoint-url --oci-username --oci-password"
else
_mirrors
fi
@@ -1436,7 +1450,7 @@ _spack_mirror_set_url() {
_spack_mirror_set() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --push --fetch --type --url --scope --s3-access-key-id --s3-access-key-secret --s3-access-token --s3-profile --s3-endpoint-url --oci-username --oci-password"
+ SPACK_COMPREPLY="-h --help --push --fetch --type --url --unsigned --signed --scope --s3-access-key-id --s3-access-key-secret --s3-access-token --s3-profile --s3-endpoint-url --oci-username --oci-password"
else
_mirrors
fi
diff --git a/share/spack/spack-completion.fish b/share/spack/spack-completion.fish
index 1029fa6b45e06c..5a12414d7633aa 100755
--- a/share/spack/spack-completion.fish
+++ b/share/spack/spack-completion.fish
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -697,7 +697,7 @@ complete -c spack -n '__fish_spack_using_command buildcache' -s h -l help -f -a
complete -c spack -n '__fish_spack_using_command buildcache' -s h -l help -d 'show this help message and exit'
# spack buildcache push
-set -g __fish_spack_optspecs_spack_buildcache_push h/help f/force a/allow-root u/unsigned k/key= update-index spec-file= only= fail-fast base-image= j/jobs=
+set -g __fish_spack_optspecs_spack_buildcache_push h/help f/force a/allow-root u/unsigned signed k/key= update-index spec-file= only= fail-fast base-image= t/tag= j/jobs=
complete -c spack -n '__fish_spack_using_command_pos_remainder 1 buildcache push' -f -k -a '(__fish_spack_specs)'
complete -c spack -n '__fish_spack_using_command buildcache push' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command buildcache push' -s h -l help -d 'show this help message and exit'
@@ -705,8 +705,10 @@ complete -c spack -n '__fish_spack_using_command buildcache push' -s f -l force
complete -c spack -n '__fish_spack_using_command buildcache push' -s f -l force -d 'overwrite tarball if it exists'
complete -c spack -n '__fish_spack_using_command buildcache push' -l allow-root -s a -f -a allow_root
complete -c spack -n '__fish_spack_using_command buildcache push' -l allow-root -s a -d 'allow install root string in binary files after RPATH substitution'
-complete -c spack -n '__fish_spack_using_command buildcache push' -l unsigned -s u -f -a unsigned
+complete -c spack -n '__fish_spack_using_command buildcache push' -l unsigned -s u -f -a signed
complete -c spack -n '__fish_spack_using_command buildcache push' -l unsigned -s u -d 'push unsigned buildcache tarballs'
+complete -c spack -n '__fish_spack_using_command buildcache push' -l signed -f -a signed
+complete -c spack -n '__fish_spack_using_command buildcache push' -l signed -d 'push signed buildcache tarballs'
complete -c spack -n '__fish_spack_using_command buildcache push' -l key -s k -r -f -a key
complete -c spack -n '__fish_spack_using_command buildcache push' -l key -s k -r -d 'key for signing'
complete -c spack -n '__fish_spack_using_command buildcache push' -l update-index -l rebuild-index -f -a update_index
@@ -718,12 +720,14 @@ complete -c spack -n '__fish_spack_using_command buildcache push' -l only -r -d
complete -c spack -n '__fish_spack_using_command buildcache push' -l fail-fast -f -a fail_fast
complete -c spack -n '__fish_spack_using_command buildcache push' -l fail-fast -d 'stop pushing on first failure (default is best effort)'
complete -c spack -n '__fish_spack_using_command buildcache push' -l base-image -r -f -a base_image
-complete -c spack -n '__fish_spack_using_command buildcache push' -l base-image -r -d 'specify the base image for the buildcache. '
+complete -c spack -n '__fish_spack_using_command buildcache push' -l base-image -r -d 'specify the base image for the buildcache'
+complete -c spack -n '__fish_spack_using_command buildcache push' -l tag -s t -r -f -a tag
+complete -c spack -n '__fish_spack_using_command buildcache push' -l tag -s t -r -d 'when pushing to an OCI registry, tag an image containing all root specs and their runtime dependencies'
complete -c spack -n '__fish_spack_using_command buildcache push' -s j -l jobs -r -f -a jobs
complete -c spack -n '__fish_spack_using_command buildcache push' -s j -l jobs -r -d 'explicitly set number of parallel jobs'
# spack buildcache create
-set -g __fish_spack_optspecs_spack_buildcache_create h/help f/force a/allow-root u/unsigned k/key= update-index spec-file= only= fail-fast base-image= j/jobs=
+set -g __fish_spack_optspecs_spack_buildcache_create h/help f/force a/allow-root u/unsigned signed k/key= update-index spec-file= only= fail-fast base-image= t/tag= j/jobs=
complete -c spack -n '__fish_spack_using_command_pos_remainder 1 buildcache create' -f -k -a '(__fish_spack_specs)'
complete -c spack -n '__fish_spack_using_command buildcache create' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command buildcache create' -s h -l help -d 'show this help message and exit'
@@ -731,8 +735,10 @@ complete -c spack -n '__fish_spack_using_command buildcache create' -s f -l forc
complete -c spack -n '__fish_spack_using_command buildcache create' -s f -l force -d 'overwrite tarball if it exists'
complete -c spack -n '__fish_spack_using_command buildcache create' -l allow-root -s a -f -a allow_root
complete -c spack -n '__fish_spack_using_command buildcache create' -l allow-root -s a -d 'allow install root string in binary files after RPATH substitution'
-complete -c spack -n '__fish_spack_using_command buildcache create' -l unsigned -s u -f -a unsigned
+complete -c spack -n '__fish_spack_using_command buildcache create' -l unsigned -s u -f -a signed
complete -c spack -n '__fish_spack_using_command buildcache create' -l unsigned -s u -d 'push unsigned buildcache tarballs'
+complete -c spack -n '__fish_spack_using_command buildcache create' -l signed -f -a signed
+complete -c spack -n '__fish_spack_using_command buildcache create' -l signed -d 'push signed buildcache tarballs'
complete -c spack -n '__fish_spack_using_command buildcache create' -l key -s k -r -f -a key
complete -c spack -n '__fish_spack_using_command buildcache create' -l key -s k -r -d 'key for signing'
complete -c spack -n '__fish_spack_using_command buildcache create' -l update-index -l rebuild-index -f -a update_index
@@ -744,7 +750,9 @@ complete -c spack -n '__fish_spack_using_command buildcache create' -l only -r -
complete -c spack -n '__fish_spack_using_command buildcache create' -l fail-fast -f -a fail_fast
complete -c spack -n '__fish_spack_using_command buildcache create' -l fail-fast -d 'stop pushing on first failure (default is best effort)'
complete -c spack -n '__fish_spack_using_command buildcache create' -l base-image -r -f -a base_image
-complete -c spack -n '__fish_spack_using_command buildcache create' -l base-image -r -d 'specify the base image for the buildcache. '
+complete -c spack -n '__fish_spack_using_command buildcache create' -l base-image -r -d 'specify the base image for the buildcache'
+complete -c spack -n '__fish_spack_using_command buildcache create' -l tag -s t -r -f -a tag
+complete -c spack -n '__fish_spack_using_command buildcache create' -l tag -s t -r -d 'when pushing to an OCI registry, tag an image containing all root specs and their runtime dependencies'
complete -c spack -n '__fish_spack_using_command buildcache create' -s j -l jobs -r -f -a jobs
complete -c spack -n '__fish_spack_using_command buildcache create' -s j -l jobs -r -d 'explicitly set number of parallel jobs'
@@ -797,6 +805,7 @@ complete -c spack -n '__fish_spack_using_command buildcache preview' -s h -l hel
# spack buildcache check
set -g __fish_spack_optspecs_spack_buildcache_check h/help m/mirror-url= o/output-file= scope= s/spec= spec-file=
+complete -c spack -n '__fish_spack_using_command_pos_remainder 0 buildcache check' -f -k -a '(__fish_spack_specs)'
complete -c spack -n '__fish_spack_using_command buildcache check' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command buildcache check' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command buildcache check' -s m -l mirror-url -r -f -a mirror_url
@@ -1156,6 +1165,7 @@ complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a blame -d 'p
complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a edit -d 'edit configuration file'
complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a list -d 'list configuration sections'
complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a add -d 'add configuration parameters'
+complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a change -d 'swap variants etc. on specs in config'
complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a prefer-upstream -d 'set package preferences from upstream'
complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a remove -d 'remove configuration parameters'
complete -c spack -n '__fish_spack_using_command_pos 0 config' -f -a rm -d 'remove configuration parameters'
@@ -1168,19 +1178,19 @@ complete -c spack -n '__fish_spack_using_command config' -l scope -r -d 'configu
# spack config get
set -g __fish_spack_optspecs_spack_config_get h/help
-complete -c spack -n '__fish_spack_using_command_pos 0 config get' -f -a 'bootstrap cdash ci compilers concretizer config definitions mirrors modules packages repos upstreams'
+complete -c spack -n '__fish_spack_using_command_pos 0 config get' -f -a 'bootstrap cdash ci compilers concretizer config definitions develop mirrors modules packages repos upstreams'
complete -c spack -n '__fish_spack_using_command config get' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command config get' -s h -l help -d 'show this help message and exit'
# spack config blame
set -g __fish_spack_optspecs_spack_config_blame h/help
-complete -c spack -n '__fish_spack_using_command_pos 0 config blame' -f -a 'bootstrap cdash ci compilers concretizer config definitions mirrors modules packages repos upstreams'
+complete -c spack -n '__fish_spack_using_command_pos 0 config blame' -f -a 'bootstrap cdash ci compilers concretizer config definitions develop mirrors modules packages repos upstreams'
complete -c spack -n '__fish_spack_using_command config blame' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command config blame' -s h -l help -d 'show this help message and exit'
# spack config edit
set -g __fish_spack_optspecs_spack_config_edit h/help print-file
-complete -c spack -n '__fish_spack_using_command_pos 0 config edit' -f -a 'bootstrap cdash ci compilers concretizer config definitions mirrors modules packages repos upstreams'
+complete -c spack -n '__fish_spack_using_command_pos 0 config edit' -f -a 'bootstrap cdash ci compilers concretizer config definitions develop mirrors modules packages repos upstreams'
complete -c spack -n '__fish_spack_using_command config edit' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command config edit' -s h -l help -d 'show this help message and exit'
complete -c spack -n '__fish_spack_using_command config edit' -l print-file -f -a print_file
@@ -1199,6 +1209,14 @@ complete -c spack -n '__fish_spack_using_command config add' -s h -l help -d 'sh
complete -c spack -n '__fish_spack_using_command config add' -s f -l file -r -f -a file
complete -c spack -n '__fish_spack_using_command config add' -s f -l file -r -d 'file from which to set all config values'
+# spack config change
+set -g __fish_spack_optspecs_spack_config_change h/help match-spec=
+complete -c spack -n '__fish_spack_using_command_pos 0 config change' -f -a '(__fish_spack_colon_path)'
+complete -c spack -n '__fish_spack_using_command config change' -s h -l help -f -a help
+complete -c spack -n '__fish_spack_using_command config change' -s h -l help -d 'show this help message and exit'
+complete -c spack -n '__fish_spack_using_command config change' -l match-spec -r -f -a match_spec
+complete -c spack -n '__fish_spack_using_command config change' -l match-spec -r -d 'only change constraints that match this'
+
# spack config prefer-upstream
set -g __fish_spack_optspecs_spack_config_prefer_upstream h/help local
complete -c spack -n '__fish_spack_using_command config prefer-upstream' -s h -l help -f -a help
@@ -1261,7 +1279,7 @@ complete -c spack -n '__fish_spack_using_command create' -l keep-stage -f -a kee
complete -c spack -n '__fish_spack_using_command create' -l keep-stage -d 'don\'t clean up staging area when command completes'
complete -c spack -n '__fish_spack_using_command create' -s n -l name -r -f -a name
complete -c spack -n '__fish_spack_using_command create' -s n -l name -r -d 'name of the package to create'
-complete -c spack -n '__fish_spack_using_command create' -s t -l template -r -f -a 'autoreconf autotools bazel bundle cmake generic intel lua makefile maven meson octave perlbuild perlmake python qmake r racket ruby scons sip waf'
+complete -c spack -n '__fish_spack_using_command create' -s t -l template -r -f -a 'autoreconf autotools bazel bundle cargo cmake generic go intel lua makefile maven meson octave perlbuild perlmake python qmake r racket ruby scons sip waf'
complete -c spack -n '__fish_spack_using_command create' -s t -l template -r -d 'build system template to use'
complete -c spack -n '__fish_spack_using_command create' -s r -l repo -r -f -a repo
complete -c spack -n '__fish_spack_using_command create' -s r -l repo -r -d 'path to a repository where the package should be created'
@@ -1400,7 +1418,7 @@ complete -c spack -n '__fish_spack_using_command develop' -s f -l force -r -f -a
complete -c spack -n '__fish_spack_using_command develop' -s f -l force -r -d 'remove any files or directories that block cloning source code'
# spack diff
-set -g __fish_spack_optspecs_spack_diff h/help json first a/attribute=
+set -g __fish_spack_optspecs_spack_diff h/help json first a/attribute= ignore=
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 diff' -f -a '(__fish_spack_installed_specs)'
complete -c spack -n '__fish_spack_using_command diff' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command diff' -s h -l help -d 'show this help message and exit'
@@ -1410,6 +1428,8 @@ complete -c spack -n '__fish_spack_using_command diff' -l first -f -a load_first
complete -c spack -n '__fish_spack_using_command diff' -l first -d 'load the first match if multiple packages match the spec'
complete -c spack -n '__fish_spack_using_command diff' -s a -l attribute -r -f -a attribute
complete -c spack -n '__fish_spack_using_command diff' -s a -l attribute -r -d 'select the attributes to show (defaults to all)'
+complete -c spack -n '__fish_spack_using_command diff' -l ignore -r -f -a ignore
+complete -c spack -n '__fish_spack_using_command diff' -l ignore -r -d 'omit diffs related to these dependencies'
# spack docs
set -g __fish_spack_optspecs_spack_docs h/help
@@ -1456,7 +1476,7 @@ complete -c spack -n '__fish_spack_using_command env' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command env' -s h -l help -d 'show this help message and exit'
# spack env activate
-set -g __fish_spack_optspecs_spack_env_activate h/help sh csh fish bat pwsh v/with-view= V/without-view p/prompt temp d/dir=
+set -g __fish_spack_optspecs_spack_env_activate h/help sh csh fish bat pwsh v/with-view= V/without-view p/prompt temp create envfile= keep-relative d/dir
complete -c spack -n '__fish_spack_using_command_pos 0 env activate' -f -a '(__fish_spack_environments)'
complete -c spack -n '__fish_spack_using_command env activate' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command env activate' -s h -l help -d 'show this help message and exit'
@@ -1478,8 +1498,14 @@ complete -c spack -n '__fish_spack_using_command env activate' -s p -l prompt -f
complete -c spack -n '__fish_spack_using_command env activate' -s p -l prompt -d 'decorate the command line prompt when activating'
complete -c spack -n '__fish_spack_using_command env activate' -l temp -f -a temp
complete -c spack -n '__fish_spack_using_command env activate' -l temp -d 'create and activate an environment in a temporary directory'
-complete -c spack -n '__fish_spack_using_command env activate' -s d -l dir -r -f -a dir
-complete -c spack -n '__fish_spack_using_command env activate' -s d -l dir -r -d 'activate the environment in this directory'
+complete -c spack -n '__fish_spack_using_command env activate' -l create -f -a create
+complete -c spack -n '__fish_spack_using_command env activate' -l create -d 'create and activate the environment if it doesn\'t exist'
+complete -c spack -n '__fish_spack_using_command env activate' -l envfile -r -f -a envfile
+complete -c spack -n '__fish_spack_using_command env activate' -l envfile -r -d 'either a lockfile (must end with \'.json\' or \'.lock\') or a manifest file'
+complete -c spack -n '__fish_spack_using_command env activate' -l keep-relative -f -a keep_relative
+complete -c spack -n '__fish_spack_using_command env activate' -l keep-relative -d 'copy relative develop paths verbatim into the new environment when initializing from envfile'
+complete -c spack -n '__fish_spack_using_command env activate' -s d -l dir -f -a dir
+complete -c spack -n '__fish_spack_using_command env activate' -s d -l dir -d 'activate environment based on the directory supplied'
# spack env deactivate
set -g __fish_spack_optspecs_spack_env_deactivate h/help sh csh fish bat pwsh
@@ -1736,9 +1762,15 @@ complete -c spack -n '__fish_spack_using_command find' -l end-date -r -f -a end_
complete -c spack -n '__fish_spack_using_command find' -l end-date -r -d 'latest date of installation [YYYY-MM-DD]'
# spack gc
-set -g __fish_spack_optspecs_spack_gc h/help y/yes-to-all
+set -g __fish_spack_optspecs_spack_gc h/help E/except-any-environment e/except-environment= b/keep-build-dependencies y/yes-to-all
complete -c spack -n '__fish_spack_using_command gc' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command gc' -s h -l help -d 'show this help message and exit'
+complete -c spack -n '__fish_spack_using_command gc' -s E -l except-any-environment -f -a except_any_environment
+complete -c spack -n '__fish_spack_using_command gc' -s E -l except-any-environment -d 'remove everything unless needed by an environment'
+complete -c spack -n '__fish_spack_using_command gc' -s e -l except-environment -r -f -a except_environment
+complete -c spack -n '__fish_spack_using_command gc' -s e -l except-environment -r -d 'remove everything unless needed by specified environment'
+complete -c spack -n '__fish_spack_using_command gc' -s b -l keep-build-dependencies -f -a keep_build_dependencies
+complete -c spack -n '__fish_spack_using_command gc' -s b -l keep-build-dependencies -d 'do not remove installed build-only dependencies of roots'
complete -c spack -n '__fish_spack_using_command gc' -s y -l yes-to-all -f -a yes_to_all
complete -c spack -n '__fish_spack_using_command gc' -s y -l yes-to-all -d 'assume "yes" is the answer to every confirmation request'
@@ -1853,7 +1885,7 @@ complete -c spack -n '__fish_spack_using_command graph' -s s -l static -d 'graph
complete -c spack -n '__fish_spack_using_command graph' -s c -l color -f -a color
complete -c spack -n '__fish_spack_using_command graph' -s c -l color -d 'use different colors for different dependency types'
complete -c spack -n '__fish_spack_using_command graph' -s i -l installed -f -a installed
-complete -c spack -n '__fish_spack_using_command graph' -s i -l installed -d 'graph installed specs, or specs in the active env (implies --dot)'
+complete -c spack -n '__fish_spack_using_command graph' -s i -l installed -d 'graph specs from the DB'
complete -c spack -n '__fish_spack_using_command graph' -l deptype -r -f -a deptype
complete -c spack -n '__fish_spack_using_command graph' -l deptype -r -d 'comma-separated list of deptypes to traverse (default=build,link,run,test)'
@@ -1927,7 +1959,7 @@ complete -c spack -n '__fish_spack_using_command install' -l use-buildcache -r -
complete -c spack -n '__fish_spack_using_command install' -l include-build-deps -f -a include_build_deps
complete -c spack -n '__fish_spack_using_command install' -l include-build-deps -d 'include build deps when installing from cache, useful for CI pipeline troubleshooting'
complete -c spack -n '__fish_spack_using_command install' -l no-check-signature -f -a unsigned
-complete -c spack -n '__fish_spack_using_command install' -l no-check-signature -d 'do not check signatures of binary packages'
+complete -c spack -n '__fish_spack_using_command install' -l no-check-signature -d 'do not check signatures of binary packages (override mirror config)'
complete -c spack -n '__fish_spack_using_command install' -l show-log-on-error -f -a show_log_on_error
complete -c spack -n '__fish_spack_using_command install' -l show-log-on-error -d 'print full build log to stderr if build fails'
complete -c spack -n '__fish_spack_using_command install' -l source -f -a install_source
@@ -2000,10 +2032,12 @@ complete -c spack -n '__fish_spack_using_command license update-copyright-year'
complete -c spack -n '__fish_spack_using_command license update-copyright-year' -s h -l help -d 'show this help message and exit'
# spack list
-set -g __fish_spack_optspecs_spack_list h/help d/search-description format= v/virtuals t/tag= count update=
+set -g __fish_spack_optspecs_spack_list h/help r/repo= d/search-description format= v/virtuals t/tag= count update=
complete -c spack -n '__fish_spack_using_command_pos_remainder 0 list' -f -a '(__fish_spack_packages)'
complete -c spack -n '__fish_spack_using_command list' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command list' -s h -l help -d 'show this help message and exit'
+complete -c spack -n '__fish_spack_using_command list' -s r -l repo -s N -l namespace -r -f -a repos
+complete -c spack -n '__fish_spack_using_command list' -s r -l repo -s N -l namespace -r -d 'only list packages from the specified repo/namespace'
complete -c spack -n '__fish_spack_using_command list' -s d -l search-description -f -a search_description
complete -c spack -n '__fish_spack_using_command list' -s d -l search-description -d 'filtering will also search the description for a match'
complete -c spack -n '__fish_spack_using_command list' -l format -r -f -a 'name_only version_json html'
@@ -2170,7 +2204,7 @@ complete -c spack -n '__fish_spack_using_command mirror destroy' -l mirror-url -
complete -c spack -n '__fish_spack_using_command mirror destroy' -l mirror-url -r -d 'find mirror to destroy by url'
# spack mirror add
-set -g __fish_spack_optspecs_spack_mirror_add h/help scope= type= s3-access-key-id= s3-access-key-secret= s3-access-token= s3-profile= s3-endpoint-url= oci-username= oci-password=
+set -g __fish_spack_optspecs_spack_mirror_add h/help scope= type= unsigned signed s3-access-key-id= s3-access-key-secret= s3-access-token= s3-profile= s3-endpoint-url= oci-username= oci-password=
complete -c spack -n '__fish_spack_using_command_pos 0 mirror add' -f
complete -c spack -n '__fish_spack_using_command mirror add' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command mirror add' -s h -l help -d 'show this help message and exit'
@@ -2178,6 +2212,10 @@ complete -c spack -n '__fish_spack_using_command mirror add' -l scope -r -f -a '
complete -c spack -n '__fish_spack_using_command mirror add' -l scope -r -d 'configuration scope to modify'
complete -c spack -n '__fish_spack_using_command mirror add' -l type -r -f -a 'binary source'
complete -c spack -n '__fish_spack_using_command mirror add' -l type -r -d 'specify the mirror type: for both binary and source use `--type binary --type source` (default)'
+complete -c spack -n '__fish_spack_using_command mirror add' -l unsigned -f -a signed
+complete -c spack -n '__fish_spack_using_command mirror add' -l unsigned -d 'do not require signing and signature verification when pushing and installing from this build cache'
+complete -c spack -n '__fish_spack_using_command mirror add' -l signed -f -a signed
+complete -c spack -n '__fish_spack_using_command mirror add' -l signed -d 'require signing and signature verification when pushing and installing from this build cache'
complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-key-id -r -f -a s3_access_key_id
complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-key-id -r -d 'ID string to use to connect to this S3 mirror'
complete -c spack -n '__fish_spack_using_command mirror add' -l s3-access-key-secret -r -f -a s3_access_key_secret
@@ -2236,7 +2274,7 @@ complete -c spack -n '__fish_spack_using_command mirror set-url' -l oci-password
complete -c spack -n '__fish_spack_using_command mirror set-url' -l oci-password -r -d 'password to use to connect to this OCI mirror'
# spack mirror set
-set -g __fish_spack_optspecs_spack_mirror_set h/help push fetch type= url= scope= s3-access-key-id= s3-access-key-secret= s3-access-token= s3-profile= s3-endpoint-url= oci-username= oci-password=
+set -g __fish_spack_optspecs_spack_mirror_set h/help push fetch type= url= unsigned signed scope= s3-access-key-id= s3-access-key-secret= s3-access-token= s3-profile= s3-endpoint-url= oci-username= oci-password=
complete -c spack -n '__fish_spack_using_command_pos 0 mirror set' -f -a '(__fish_spack_mirrors)'
complete -c spack -n '__fish_spack_using_command mirror set' -s h -l help -f -a help
complete -c spack -n '__fish_spack_using_command mirror set' -s h -l help -d 'show this help message and exit'
@@ -2248,6 +2286,10 @@ complete -c spack -n '__fish_spack_using_command mirror set' -l type -r -f -a 'b
complete -c spack -n '__fish_spack_using_command mirror set' -l type -r -d 'specify the mirror type: for both binary and source use `--type binary --type source`'
complete -c spack -n '__fish_spack_using_command mirror set' -l url -r -f -a url
complete -c spack -n '__fish_spack_using_command mirror set' -l url -r -d 'url of mirror directory from \'spack mirror create\''
+complete -c spack -n '__fish_spack_using_command mirror set' -l unsigned -f -a signed
+complete -c spack -n '__fish_spack_using_command mirror set' -l unsigned -d 'do not require signing and signature verification when pushing and installing from this build cache'
+complete -c spack -n '__fish_spack_using_command mirror set' -l signed -f -a signed
+complete -c spack -n '__fish_spack_using_command mirror set' -l signed -d 'require signing and signature verification when pushing and installing from this build cache'
complete -c spack -n '__fish_spack_using_command mirror set' -l scope -r -f -a '_builtin defaults system site user command_line'
complete -c spack -n '__fish_spack_using_command mirror set' -l scope -r -d 'configuration scope to modify'
complete -c spack -n '__fish_spack_using_command mirror set' -l s3-access-key-id -r -f -a s3_access_key_id
diff --git a/share/spack/templates/bootstrap/spack.yaml b/share/spack/templates/bootstrap/spack.yaml
index 251977d0c5b4e3..8a178d03620459 100644
--- a/share/spack/templates/bootstrap/spack.yaml
+++ b/share/spack/templates/bootstrap/spack.yaml
@@ -17,6 +17,8 @@ spack:
root: {{ store_path }}
padded_length: 0
+ install_status: false
+
packages:
python:
buildable: false
diff --git a/share/spack/templates/container/Dockerfile b/share/spack/templates/container/Dockerfile
index ee9ad6ffae03be..58d11d0a73daf0 100644
--- a/share/spack/templates/container/Dockerfile
+++ b/share/spack/templates/container/Dockerfile
@@ -20,7 +20,8 @@ RUN {% if os_package_update %}{{ os_packages_build.update }} \
# What we want to install and how we want to install it
# is specified in a manifest file (spack.yaml)
-RUN mkdir {{ paths.environment }} \
+RUN mkdir -p {{ paths.environment }} && \
+set -o noclobber \
{{ manifest }} > {{ paths.environment }}/spack.yaml
# Install the software, remove unnecessary deps
diff --git a/share/spack/templates/container/singularity.def b/share/spack/templates/container/singularity.def
index 4d9fdd617c912d..3b8f57dfb1b86e 100644
--- a/share/spack/templates/container/singularity.def
+++ b/share/spack/templates/container/singularity.def
@@ -13,11 +13,6 @@ Stage: build
{{ os_packages_build.clean }}
{% endif %}
-
- {% if extra_instructions.pre_build %}
- {{ extra_instructions.pre_build }}
- {% endif %}
-
# Create the manifest file for the installation in /opt/spack-environment
mkdir {{ paths.environment }} && cd {{ paths.environment }}
cat << EOF > spack.yaml
@@ -72,9 +67,6 @@ Stage: final
ln -s {{ paths.view }} {{ paths.former_view }}
{% block final_stage %}
-{% if extra_instructions.pre_final %}
- {{ extra_instructions.pre_final }}
-{% endif %}
{% if os_packages_final.list %}
# Update, install and cleanup of system packages needed at run-time
{% if os_package_update %}
diff --git a/share/spack/templates/modules/modulefile.tcl b/share/spack/templates/modules/modulefile.tcl
index d1593b88280e65..b162e3f62eb863 100644
--- a/share/spack/templates/modules/modulefile.tcl
+++ b/share/spack/templates/modules/modulefile.tcl
@@ -4,7 +4,7 @@
## {{ spec.short_spec }}
##
{% if configure_options %}
-## Configure options: {{ configure_options }}
+## Configure options: {{ configure_options | wordwrap(8192 - 23, True, "\n## ", 0) }}
##
{% endif %}
diff --git a/var/spack/repos/builder.test/packages/callbacks/package.py b/var/spack/repos/builder.test/packages/callbacks/package.py
index 1e5fa97ef2f3fe..cbb4ce6896817c 100644
--- a/var/spack/repos/builder.test/packages/callbacks/package.py
+++ b/var/spack/repos/builder.test/packages/callbacks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builder.test/packages/custom-phases/package.py b/var/spack/repos/builder.test/packages/custom-phases/package.py
index cc63250a04b395..feb50248fccfb6 100644
--- a/var/spack/repos/builder.test/packages/custom-phases/package.py
+++ b/var/spack/repos/builder.test/packages/custom-phases/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builder.test/packages/gmake/package.py b/var/spack/repos/builder.test/packages/gmake/package.py
index b3d5c50086e291..5fc2748deec17e 100644
--- a/var/spack/repos/builder.test/packages/gmake/package.py
+++ b/var/spack/repos/builder.test/packages/gmake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builder.test/packages/gnuconfig/package.py b/var/spack/repos/builder.test/packages/gnuconfig/package.py
index ecf32e21374166..02b56896dd8af2 100644
--- a/var/spack/repos/builder.test/packages/gnuconfig/package.py
+++ b/var/spack/repos/builder.test/packages/gnuconfig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builder.test/packages/inheritance/package.py b/var/spack/repos/builder.test/packages/inheritance/package.py
index a3028ac412f93a..241cb895a0acd3 100644
--- a/var/spack/repos/builder.test/packages/inheritance/package.py
+++ b/var/spack/repos/builder.test/packages/inheritance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builder.test/packages/old-style-autotools/package.py b/var/spack/repos/builder.test/packages/old-style-autotools/package.py
index 4ace87076802f5..847be1f5672d4f 100644
--- a/var/spack/repos/builder.test/packages/old-style-autotools/package.py
+++ b/var/spack/repos/builder.test/packages/old-style-autotools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builder.test/packages/old-style-custom-phases/package.py b/var/spack/repos/builder.test/packages/old-style-custom-phases/package.py
index a2f2040d1f23d1..dda28ba9ea8574 100644
--- a/var/spack/repos/builder.test/packages/old-style-custom-phases/package.py
+++ b/var/spack/repos/builder.test/packages/old-style-custom-phases/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builder.test/packages/old-style-derived/package.py b/var/spack/repos/builder.test/packages/old-style-derived/package.py
index 352ddae0759038..2f4c1e19e406ff 100644
--- a/var/spack/repos/builder.test/packages/old-style-derived/package.py
+++ b/var/spack/repos/builder.test/packages/old-style-derived/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/a/package.py b/var/spack/repos/builtin.mock/packages/a/package.py
index ba6064bd594233..3cc214461074c5 100644
--- a/var/spack/repos/builtin.mock/packages/a/package.py
+++ b/var/spack/repos/builtin.mock/packages/a/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/adios2/package.py b/var/spack/repos/builtin.mock/packages/adios2/package.py
index fb2f43ea0e154a..89d1a8d81c03c8 100644
--- a/var/spack/repos/builtin.mock/packages/adios2/package.py
+++ b/var/spack/repos/builtin.mock/packages/adios2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/archive-files/package.py b/var/spack/repos/builtin.mock/packages/archive-files/package.py
index 9c6fe207df06b6..457df3b5ddfcd0 100644
--- a/var/spack/repos/builtin.mock/packages/archive-files/package.py
+++ b/var/spack/repos/builtin.mock/packages/archive-files/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/ascent/package.py b/var/spack/repos/builtin.mock/packages/ascent/package.py
index 9a8db472dc07ab..cebedba94851f2 100644
--- a/var/spack/repos/builtin.mock/packages/ascent/package.py
+++ b/var/spack/repos/builtin.mock/packages/ascent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/attributes-foo-app/package.py b/var/spack/repos/builtin.mock/packages/attributes-foo-app/package.py
index 890b06807d0949..fbc44c2cf3c3a8 100644
--- a/var/spack/repos/builtin.mock/packages/attributes-foo-app/package.py
+++ b/var/spack/repos/builtin.mock/packages/attributes-foo-app/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/attributes-foo/package.py b/var/spack/repos/builtin.mock/packages/attributes-foo/package.py
index 5ae2c2c387f2d5..31c88f4b08564a 100644
--- a/var/spack/repos/builtin.mock/packages/attributes-foo/package.py
+++ b/var/spack/repos/builtin.mock/packages/attributes-foo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/autotools-conditional-variants-test/package.py b/var/spack/repos/builtin.mock/packages/autotools-conditional-variants-test/package.py
index 67e22a5591b687..736506bee791a3 100644
--- a/var/spack/repos/builtin.mock/packages/autotools-conditional-variants-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/autotools-conditional-variants-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/autotools-config-replacement/package.py b/var/spack/repos/builtin.mock/packages/autotools-config-replacement/package.py
index ab2dc017f3c2d4..d07edd9ea8f0ae 100644
--- a/var/spack/repos/builtin.mock/packages/autotools-config-replacement/package.py
+++ b/var/spack/repos/builtin.mock/packages/autotools-config-replacement/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/b/package.py b/var/spack/repos/builtin.mock/packages/b/package.py
index 1685711825f9ea..f5d212d3d439ed 100644
--- a/var/spack/repos/builtin.mock/packages/b/package.py
+++ b/var/spack/repos/builtin.mock/packages/b/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/boost/package.py b/var/spack/repos/builtin.mock/packages/boost/package.py
index b0717a0dc8153c..7959105e956482 100644
--- a/var/spack/repos/builtin.mock/packages/boost/package.py
+++ b/var/spack/repos/builtin.mock/packages/boost/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-a/package.py b/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-a/package.py
index 1366b99b37ba24..a6c623081d150e 100644
--- a/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-a/package.py
+++ b/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-a/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-b/package.py b/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-b/package.py
index 1636f27fb874b5..c913cf9f8d3370 100644
--- a/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-b/package.py
+++ b/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-b/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-c/package.py b/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-c/package.py
index bfb33eac6d1736..1c642a4e78e202 100644
--- a/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-c/package.py
+++ b/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/bowtie/package.py b/var/spack/repos/builtin.mock/packages/bowtie/package.py
index 91a0d148bf366e..ba5c60223bf3f5 100644
--- a/var/spack/repos/builtin.mock/packages/bowtie/package.py
+++ b/var/spack/repos/builtin.mock/packages/bowtie/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/brillig/package.py b/var/spack/repos/builtin.mock/packages/brillig/package.py
index 56ff394c7dbd0e..6b141f2e7f3629 100644
--- a/var/spack/repos/builtin.mock/packages/brillig/package.py
+++ b/var/spack/repos/builtin.mock/packages/brillig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/build-env-compiler-var-a/package.py b/var/spack/repos/builtin.mock/packages/build-env-compiler-var-a/package.py
index ea6f0f34e8ee6d..001f32469de86e 100644
--- a/var/spack/repos/builtin.mock/packages/build-env-compiler-var-a/package.py
+++ b/var/spack/repos/builtin.mock/packages/build-env-compiler-var-a/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/build-env-compiler-var-b/package.py b/var/spack/repos/builtin.mock/packages/build-env-compiler-var-b/package.py
index 7905869b344de6..6854daa9331799 100644
--- a/var/spack/repos/builtin.mock/packages/build-env-compiler-var-b/package.py
+++ b/var/spack/repos/builtin.mock/packages/build-env-compiler-var-b/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/build-error/package.py b/var/spack/repos/builtin.mock/packages/build-error/package.py
index 2df3699822640f..71ad84a10b7fba 100644
--- a/var/spack/repos/builtin.mock/packages/build-error/package.py
+++ b/var/spack/repos/builtin.mock/packages/build-error/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/build-warnings/package.py b/var/spack/repos/builtin.mock/packages/build-warnings/package.py
index ce4af309b93e0e..55152ddfeab4da 100644
--- a/var/spack/repos/builtin.mock/packages/build-warnings/package.py
+++ b/var/spack/repos/builtin.mock/packages/build-warnings/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/bzip2/package.py b/var/spack/repos/builtin.mock/packages/bzip2/package.py
index 326533ac5ea117..c703594de19f61 100644
--- a/var/spack/repos/builtin.mock/packages/bzip2/package.py
+++ b/var/spack/repos/builtin.mock/packages/bzip2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/c/package.py b/var/spack/repos/builtin.mock/packages/c/package.py
index 0ef4e2f80ac69a..2e066242af60e5 100644
--- a/var/spack/repos/builtin.mock/packages/c/package.py
+++ b/var/spack/repos/builtin.mock/packages/c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/callpath/package.py b/var/spack/repos/builtin.mock/packages/callpath/package.py
index b3343fb69255ce..a960f9866a0f44 100644
--- a/var/spack/repos/builtin.mock/packages/callpath/package.py
+++ b/var/spack/repos/builtin.mock/packages/callpath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/canfail/package.py b/var/spack/repos/builtin.mock/packages/canfail/package.py
index 70125ec1cb3dfe..965e57d0e93c5e 100644
--- a/var/spack/repos/builtin.mock/packages/canfail/package.py
+++ b/var/spack/repos/builtin.mock/packages/canfail/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/client-not-foo/package.py b/var/spack/repos/builtin.mock/packages/client-not-foo/package.py
index 03c9374b3acce1..95b60d873233f9 100644
--- a/var/spack/repos/builtin.mock/packages/client-not-foo/package.py
+++ b/var/spack/repos/builtin.mock/packages/client-not-foo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/cmake-client-inheritor/package.py b/var/spack/repos/builtin.mock/packages/cmake-client-inheritor/package.py
index 51c56da50f78ba..b5714a23ed3a9d 100644
--- a/var/spack/repos/builtin.mock/packages/cmake-client-inheritor/package.py
+++ b/var/spack/repos/builtin.mock/packages/cmake-client-inheritor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/cmake-client/package.py b/var/spack/repos/builtin.mock/packages/cmake-client/package.py
index a0694f2d6d7221..b196e089911f89 100644
--- a/var/spack/repos/builtin.mock/packages/cmake-client/package.py
+++ b/var/spack/repos/builtin.mock/packages/cmake-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/cmake-conditional-variants-test/package.py b/var/spack/repos/builtin.mock/packages/cmake-conditional-variants-test/package.py
index a024086438633d..54cd8bc5322360 100644
--- a/var/spack/repos/builtin.mock/packages/cmake-conditional-variants-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/cmake-conditional-variants-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/cmake/package.py b/var/spack/repos/builtin.mock/packages/cmake/package.py
index a9e21a63eeffc6..670c170eebb7a8 100644
--- a/var/spack/repos/builtin.mock/packages/cmake/package.py
+++ b/var/spack/repos/builtin.mock/packages/cmake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/conditional-constrained-dependencies/package.py b/var/spack/repos/builtin.mock/packages/conditional-constrained-dependencies/package.py
index fe87ae39c40dcb..2d9109b91e3491 100644
--- a/var/spack/repos/builtin.mock/packages/conditional-constrained-dependencies/package.py
+++ b/var/spack/repos/builtin.mock/packages/conditional-constrained-dependencies/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/conditional-provider/package.py b/var/spack/repos/builtin.mock/packages/conditional-provider/package.py
index d55f7ad694a0fc..25d3d69f371a88 100644
--- a/var/spack/repos/builtin.mock/packages/conditional-provider/package.py
+++ b/var/spack/repos/builtin.mock/packages/conditional-provider/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/conditional-values-in-variant/package.py b/var/spack/repos/builtin.mock/packages/conditional-values-in-variant/package.py
index 52bb12d6a16d25..c955b8b8b122c2 100644
--- a/var/spack/repos/builtin.mock/packages/conditional-values-in-variant/package.py
+++ b/var/spack/repos/builtin.mock/packages/conditional-values-in-variant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/conditional-variant-pkg/package.py b/var/spack/repos/builtin.mock/packages/conditional-variant-pkg/package.py
index 76a1abd08fb41d..3b664bed99324f 100644
--- a/var/spack/repos/builtin.mock/packages/conditional-variant-pkg/package.py
+++ b/var/spack/repos/builtin.mock/packages/conditional-variant-pkg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/conditional-virtual-dependency/package.py b/var/spack/repos/builtin.mock/packages/conditional-virtual-dependency/package.py
index c975acf8a30bb5..b01000163f973e 100644
--- a/var/spack/repos/builtin.mock/packages/conditional-virtual-dependency/package.py
+++ b/var/spack/repos/builtin.mock/packages/conditional-virtual-dependency/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/conditionally-patch-dependency/package.py b/var/spack/repos/builtin.mock/packages/conditionally-patch-dependency/package.py
index 7c0b1f7d627ef5..320d47c8cb261d 100644
--- a/var/spack/repos/builtin.mock/packages/conditionally-patch-dependency/package.py
+++ b/var/spack/repos/builtin.mock/packages/conditionally-patch-dependency/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/configure-warning/package.py b/var/spack/repos/builtin.mock/packages/configure-warning/package.py
index 9c4b349f6cb367..492025c13df480 100644
--- a/var/spack/repos/builtin.mock/packages/configure-warning/package.py
+++ b/var/spack/repos/builtin.mock/packages/configure-warning/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/conflict-parent/package.py b/var/spack/repos/builtin.mock/packages/conflict-parent/package.py
index 58f581e477b2db..65179dd59f9e55 100644
--- a/var/spack/repos/builtin.mock/packages/conflict-parent/package.py
+++ b/var/spack/repos/builtin.mock/packages/conflict-parent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/conflict/package.py b/var/spack/repos/builtin.mock/packages/conflict/package.py
index 9897cec4b32db2..a2b6bacae9aeb5 100644
--- a/var/spack/repos/builtin.mock/packages/conflict/package.py
+++ b/var/spack/repos/builtin.mock/packages/conflict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/conflicting-dependent/package.py b/var/spack/repos/builtin.mock/packages/conflicting-dependent/package.py
index c62144a09b5973..06e9cedb671c53 100644
--- a/var/spack/repos/builtin.mock/packages/conflicting-dependent/package.py
+++ b/var/spack/repos/builtin.mock/packages/conflicting-dependent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/corge/package.py b/var/spack/repos/builtin.mock/packages/corge/package.py
index 3321e9bba14d4a..1da5d31850420e 100644
--- a/var/spack/repos/builtin.mock/packages/corge/package.py
+++ b/var/spack/repos/builtin.mock/packages/corge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/cumulative-vrange-bottom/package.py b/var/spack/repos/builtin.mock/packages/cumulative-vrange-bottom/package.py
index fc04be3c1d6f9a..27722541ac8733 100644
--- a/var/spack/repos/builtin.mock/packages/cumulative-vrange-bottom/package.py
+++ b/var/spack/repos/builtin.mock/packages/cumulative-vrange-bottom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/cumulative-vrange-middle/package.py b/var/spack/repos/builtin.mock/packages/cumulative-vrange-middle/package.py
index b3deb4bda2e720..93c2382094fb06 100644
--- a/var/spack/repos/builtin.mock/packages/cumulative-vrange-middle/package.py
+++ b/var/spack/repos/builtin.mock/packages/cumulative-vrange-middle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/cumulative-vrange-root/package.py b/var/spack/repos/builtin.mock/packages/cumulative-vrange-root/package.py
index 95e4c7827c0291..0648b1de12b552 100644
--- a/var/spack/repos/builtin.mock/packages/cumulative-vrange-root/package.py
+++ b/var/spack/repos/builtin.mock/packages/cumulative-vrange-root/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/cvs-test/package.py b/var/spack/repos/builtin.mock/packages/cvs-test/package.py
index 84a616c359622d..7edd3437108011 100644
--- a/var/spack/repos/builtin.mock/packages/cvs-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/cvs-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/define-cmake-prefix-paths/package.py b/var/spack/repos/builtin.mock/packages/define-cmake-prefix-paths/package.py
index a3f68b6a3d82c5..5996ea4a5cefd7 100644
--- a/var/spack/repos/builtin.mock/packages/define-cmake-prefix-paths/package.py
+++ b/var/spack/repos/builtin.mock/packages/define-cmake-prefix-paths/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/package.py b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/package.py
index 0f2330584a809f..2310c23f18c51a 100644
--- a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/package.py
+++ b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid2/package.py b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid2/package.py
index 725897a78abe2d..a373a0bdf4be5f 100644
--- a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid2/package.py
+++ b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/package.py b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/package.py
index 58a8c4222c6c23..3b71266e1f7892 100644
--- a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/package.py
+++ b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop-root/package.py b/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop-root/package.py
index 8b8532b10acc7f..8a1ccc5c6da425 100644
--- a/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop-root/package.py
+++ b/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop-root/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop/package.py b/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop/package.py
index 012deca6d2d5f7..46a4d6af21e1eb 100644
--- a/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop/package.py
+++ b/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dep-with-variants/package.py b/var/spack/repos/builtin.mock/packages/dep-with-variants/package.py
index 84637c22719268..a769416439c11a 100644
--- a/var/spack/repos/builtin.mock/packages/dep-with-variants/package.py
+++ b/var/spack/repos/builtin.mock/packages/dep-with-variants/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/depb/package.py b/var/spack/repos/builtin.mock/packages/depb/package.py
index 1d9a12ad835263..7022e3472b408e 100644
--- a/var/spack/repos/builtin.mock/packages/depb/package.py
+++ b/var/spack/repos/builtin.mock/packages/depb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dependency-foo-bar/package.py b/var/spack/repos/builtin.mock/packages/dependency-foo-bar/package.py
index 21e67f8a61bc12..5d7f5e98170c78 100644
--- a/var/spack/repos/builtin.mock/packages/dependency-foo-bar/package.py
+++ b/var/spack/repos/builtin.mock/packages/dependency-foo-bar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dependency-install/package.py b/var/spack/repos/builtin.mock/packages/dependency-install/package.py
index 790163b9a87611..6e373654674b84 100644
--- a/var/spack/repos/builtin.mock/packages/dependency-install/package.py
+++ b/var/spack/repos/builtin.mock/packages/dependency-install/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dependent-install/package.py b/var/spack/repos/builtin.mock/packages/dependent-install/package.py
index c51ad7bd686d75..0bcee77d1b9f3e 100644
--- a/var/spack/repos/builtin.mock/packages/dependent-install/package.py
+++ b/var/spack/repos/builtin.mock/packages/dependent-install/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py b/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py
index e987b9258c145a..ba587837d3c9c1 100644
--- a/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py
+++ b/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/depends-on-define-cmake-prefix-paths/package.py b/var/spack/repos/builtin.mock/packages/depends-on-define-cmake-prefix-paths/package.py
index 51fec539904ee2..accaa6b220c661 100644
--- a/var/spack/repos/builtin.mock/packages/depends-on-define-cmake-prefix-paths/package.py
+++ b/var/spack/repos/builtin.mock/packages/depends-on-define-cmake-prefix-paths/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/depends-on-develop/package.py b/var/spack/repos/builtin.mock/packages/depends-on-develop/package.py
index 8f221c98343a89..b11ce555224f3f 100644
--- a/var/spack/repos/builtin.mock/packages/depends-on-develop/package.py
+++ b/var/spack/repos/builtin.mock/packages/depends-on-develop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/depends-on-openmpi/package.py b/var/spack/repos/builtin.mock/packages/depends-on-openmpi/package.py
index c269e0ff452e34..c80b3dcdebb350 100644
--- a/var/spack/repos/builtin.mock/packages/depends-on-openmpi/package.py
+++ b/var/spack/repos/builtin.mock/packages/depends-on-openmpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/depends-on-run-env/package.py b/var/spack/repos/builtin.mock/packages/depends-on-run-env/package.py
index 8e5cd9d20a4ebc..b5a40e526d2856 100644
--- a/var/spack/repos/builtin.mock/packages/depends-on-run-env/package.py
+++ b/var/spack/repos/builtin.mock/packages/depends-on-run-env/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/deprecated-versions/package.py b/var/spack/repos/builtin.mock/packages/deprecated-versions/package.py
index 1d0c562bc6b7ab..909da5c0264787 100644
--- a/var/spack/repos/builtin.mock/packages/deprecated-versions/package.py
+++ b/var/spack/repos/builtin.mock/packages/deprecated-versions/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,5 +11,9 @@ class DeprecatedVersions(Package):
homepage = "http://www.example.com"
url = "http://www.example.com/c-1.0.tar.gz"
- version("1.1.0", md5="0123456789abcdef0123456789abcdef", deprecated=True)
- version("1.0.0", md5="0123456789abcdef0123456789abcdef")
+ version(
+ "1.1.0",
+ sha256="abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
+ deprecated=True,
+ )
+ version("1.0.0", sha256="abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890")
diff --git a/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py b/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py
index 9bb02d0fd23043..c1932a1d1576c0 100644
--- a/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py
+++ b/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dev-build-test-install-phases/package.py b/var/spack/repos/builtin.mock/packages/dev-build-test-install-phases/package.py
index f67a39551636b1..223945e6b9b5de 100644
--- a/var/spack/repos/builtin.mock/packages/dev-build-test-install-phases/package.py
+++ b/var/spack/repos/builtin.mock/packages/dev-build-test-install-phases/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dev-build-test-install/package.py b/var/spack/repos/builtin.mock/packages/dev-build-test-install/package.py
index 1e0927620f7600..66490f531e0bd7 100644
--- a/var/spack/repos/builtin.mock/packages/dev-build-test-install/package.py
+++ b/var/spack/repos/builtin.mock/packages/dev-build-test-install/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/develop-branch-version/package.py b/var/spack/repos/builtin.mock/packages/develop-branch-version/package.py
index 16d94ec34f5f2e..a81cc8f70c6944 100644
--- a/var/spack/repos/builtin.mock/packages/develop-branch-version/package.py
+++ b/var/spack/repos/builtin.mock/packages/develop-branch-version/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/develop-test/package.py b/var/spack/repos/builtin.mock/packages/develop-test/package.py
index 9d1665725183a8..da986b3116b552 100644
--- a/var/spack/repos/builtin.mock/packages/develop-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/develop-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/develop-test2/package.py b/var/spack/repos/builtin.mock/packages/develop-test2/package.py
index 81a299c58a19b5..9cdc139d44718b 100644
--- a/var/spack/repos/builtin.mock/packages/develop-test2/package.py
+++ b/var/spack/repos/builtin.mock/packages/develop-test2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/diamond-link-bottom/package.py b/var/spack/repos/builtin.mock/packages/diamond-link-bottom/package.py
index ba3d2d339725f9..9af8aab5389d62 100644
--- a/var/spack/repos/builtin.mock/packages/diamond-link-bottom/package.py
+++ b/var/spack/repos/builtin.mock/packages/diamond-link-bottom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/diamond-link-left/package.py b/var/spack/repos/builtin.mock/packages/diamond-link-left/package.py
index 4d0f310d22c34b..f4d141ea254727 100644
--- a/var/spack/repos/builtin.mock/packages/diamond-link-left/package.py
+++ b/var/spack/repos/builtin.mock/packages/diamond-link-left/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/diamond-link-right/package.py b/var/spack/repos/builtin.mock/packages/diamond-link-right/package.py
index f12213248cf762..84a02c336c8d82 100644
--- a/var/spack/repos/builtin.mock/packages/diamond-link-right/package.py
+++ b/var/spack/repos/builtin.mock/packages/diamond-link-right/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/diamond-link-top/package.py b/var/spack/repos/builtin.mock/packages/diamond-link-top/package.py
index e40d70f5bcb5be..916fbcd098d41b 100644
--- a/var/spack/repos/builtin.mock/packages/diamond-link-top/package.py
+++ b/var/spack/repos/builtin.mock/packages/diamond-link-top/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/direct-mpich/package.py b/var/spack/repos/builtin.mock/packages/direct-mpich/package.py
index 3a960bc830462c..e6280d9d8a2f2f 100644
--- a/var/spack/repos/builtin.mock/packages/direct-mpich/package.py
+++ b/var/spack/repos/builtin.mock/packages/direct-mpich/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dla-future/package.py b/var/spack/repos/builtin.mock/packages/dla-future/package.py
new file mode 100644
index 00000000000000..03a22544deb1ba
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dla-future/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class DlaFuture(Package):
+ """A package that depends on 3 different virtuals, that might or might not be provided
+ by the same node.
+ """
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/dla-1.0.tar.gz"
+
+ version("1.0", md5="0123456789abcdef0123456789abcdef")
+
+ depends_on("blas")
+ depends_on("lapack")
+ depends_on("scalapack")
diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py
index 18156fcfdcc88f..43ee6ee605de8c 100644
--- a/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py
+++ b/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py
index 5f8c494631f2a0..5ec1d3d880d065 100644
--- a/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py
+++ b/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py
index 676b4dda934864..ed07cb222fa6ca 100644
--- a/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py
+++ b/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond/package.py
index ad487e5f5e09e3..580b06682f6692 100644
--- a/var/spack/repos/builtin.mock/packages/dt-diamond/package.py
+++ b/var/spack/repos/builtin.mock/packages/dt-diamond/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dtbuild1/package.py b/var/spack/repos/builtin.mock/packages/dtbuild1/package.py
index 0ba47a6ffcab2b..0f9c6e2e99ebfc 100644
--- a/var/spack/repos/builtin.mock/packages/dtbuild1/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtbuild1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dtbuild2/package.py b/var/spack/repos/builtin.mock/packages/dtbuild2/package.py
index 8a6bc689a41244..7aae2109ceb570 100644
--- a/var/spack/repos/builtin.mock/packages/dtbuild2/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtbuild2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dtbuild3/package.py b/var/spack/repos/builtin.mock/packages/dtbuild3/package.py
index 0d4bd4659ce19d..f66005cd190b69 100644
--- a/var/spack/repos/builtin.mock/packages/dtbuild3/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtbuild3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dtlink1/package.py b/var/spack/repos/builtin.mock/packages/dtlink1/package.py
index 5cccc1e245fafb..5caf934edf0541 100644
--- a/var/spack/repos/builtin.mock/packages/dtlink1/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtlink1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dtlink2/package.py b/var/spack/repos/builtin.mock/packages/dtlink2/package.py
index c4f086f5fbbd65..983ec6800dc9ed 100644
--- a/var/spack/repos/builtin.mock/packages/dtlink2/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtlink2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dtlink3/package.py b/var/spack/repos/builtin.mock/packages/dtlink3/package.py
index 8a7f8c328529b0..08dd47a3f8317a 100644
--- a/var/spack/repos/builtin.mock/packages/dtlink3/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtlink3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dtlink4/package.py b/var/spack/repos/builtin.mock/packages/dtlink4/package.py
index c3d5a0d2bf4b94..3e6461eedaae87 100644
--- a/var/spack/repos/builtin.mock/packages/dtlink4/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtlink4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dtlink5/package.py b/var/spack/repos/builtin.mock/packages/dtlink5/package.py
index ec6c59e2e740f2..a4c9c31ca4868e 100644
--- a/var/spack/repos/builtin.mock/packages/dtlink5/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtlink5/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dtrun1/package.py b/var/spack/repos/builtin.mock/packages/dtrun1/package.py
index c11af01b1d4009..924f33afc763e0 100644
--- a/var/spack/repos/builtin.mock/packages/dtrun1/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtrun1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dtrun2/package.py b/var/spack/repos/builtin.mock/packages/dtrun2/package.py
index 7bfb3c615b892b..072ffd0bdf0d3b 100644
--- a/var/spack/repos/builtin.mock/packages/dtrun2/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtrun2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dtrun3/package.py b/var/spack/repos/builtin.mock/packages/dtrun3/package.py
index c71724115a75cf..9f12d17ed2dffb 100644
--- a/var/spack/repos/builtin.mock/packages/dtrun3/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtrun3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dttop/package.py b/var/spack/repos/builtin.mock/packages/dttop/package.py
index 64c088e7790855..fede702bd2b4d6 100644
--- a/var/spack/repos/builtin.mock/packages/dttop/package.py
+++ b/var/spack/repos/builtin.mock/packages/dttop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dtuse/package.py b/var/spack/repos/builtin.mock/packages/dtuse/package.py
index 0f3afb8d9fa6e9..e0a85120c38ec1 100644
--- a/var/spack/repos/builtin.mock/packages/dtuse/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtuse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/dyninst/package.py b/var/spack/repos/builtin.mock/packages/dyninst/package.py
index b3b36b6cfe2d9d..a7a45f2ab10e55 100644
--- a/var/spack/repos/builtin.mock/packages/dyninst/package.py
+++ b/var/spack/repos/builtin.mock/packages/dyninst/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/e/package.py b/var/spack/repos/builtin.mock/packages/e/package.py
index a1ed6834bd9fe8..eb0fb0e2ce8a98 100644
--- a/var/spack/repos/builtin.mock/packages/e/package.py
+++ b/var/spack/repos/builtin.mock/packages/e/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/ecp-viz-sdk/package.py b/var/spack/repos/builtin.mock/packages/ecp-viz-sdk/package.py
index 551783fb1a9542..c9347e66d99799 100644
--- a/var/spack/repos/builtin.mock/packages/ecp-viz-sdk/package.py
+++ b/var/spack/repos/builtin.mock/packages/ecp-viz-sdk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/extendee/package.py b/var/spack/repos/builtin.mock/packages/extendee/package.py
index b8531657d3ee3f..ee91252bb80c76 100644
--- a/var/spack/repos/builtin.mock/packages/extendee/package.py
+++ b/var/spack/repos/builtin.mock/packages/extendee/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/extends-spec/package.py b/var/spack/repos/builtin.mock/packages/extends-spec/package.py
index d5f36010512744..74ffd9178993aa 100644
--- a/var/spack/repos/builtin.mock/packages/extends-spec/package.py
+++ b/var/spack/repos/builtin.mock/packages/extends-spec/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/extension1/package.py b/var/spack/repos/builtin.mock/packages/extension1/package.py
index 3d2daf1ab8a21e..96ac127a2e86a5 100644
--- a/var/spack/repos/builtin.mock/packages/extension1/package.py
+++ b/var/spack/repos/builtin.mock/packages/extension1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/extension2/package.py b/var/spack/repos/builtin.mock/packages/extension2/package.py
index 749154f582bdab..05e832cae544aa 100644
--- a/var/spack/repos/builtin.mock/packages/extension2/package.py
+++ b/var/spack/repos/builtin.mock/packages/extension2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/external-buildable-with-variant/package.py b/var/spack/repos/builtin.mock/packages/external-buildable-with-variant/package.py
index afedaadba3eb42..1ec1561a679c9a 100644
--- a/var/spack/repos/builtin.mock/packages/external-buildable-with-variant/package.py
+++ b/var/spack/repos/builtin.mock/packages/external-buildable-with-variant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/external-common-gdbm/package.py b/var/spack/repos/builtin.mock/packages/external-common-gdbm/package.py
index 7d0976cf41529b..c2618c1773fbab 100644
--- a/var/spack/repos/builtin.mock/packages/external-common-gdbm/package.py
+++ b/var/spack/repos/builtin.mock/packages/external-common-gdbm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/external-common-openssl/package.py b/var/spack/repos/builtin.mock/packages/external-common-openssl/package.py
index c0c40b04c8eaae..a9608cc55d4ed1 100644
--- a/var/spack/repos/builtin.mock/packages/external-common-openssl/package.py
+++ b/var/spack/repos/builtin.mock/packages/external-common-openssl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/external-common-perl/package.py b/var/spack/repos/builtin.mock/packages/external-common-perl/package.py
index fc3d92ff2d16e9..eba5f24352ffdb 100644
--- a/var/spack/repos/builtin.mock/packages/external-common-perl/package.py
+++ b/var/spack/repos/builtin.mock/packages/external-common-perl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/external-common-python/package.py b/var/spack/repos/builtin.mock/packages/external-common-python/package.py
index 54aa3529ba00de..0ba169644bcc1b 100644
--- a/var/spack/repos/builtin.mock/packages/external-common-python/package.py
+++ b/var/spack/repos/builtin.mock/packages/external-common-python/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/external-non-default-variant/package.py b/var/spack/repos/builtin.mock/packages/external-non-default-variant/package.py
index 0d3baf63030a84..64543581b68961 100644
--- a/var/spack/repos/builtin.mock/packages/external-non-default-variant/package.py
+++ b/var/spack/repos/builtin.mock/packages/external-non-default-variant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/externalmodule/package.py b/var/spack/repos/builtin.mock/packages/externalmodule/package.py
index 4ace7a4399b3af..fb6f2e7a30f243 100644
--- a/var/spack/repos/builtin.mock/packages/externalmodule/package.py
+++ b/var/spack/repos/builtin.mock/packages/externalmodule/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/externalprereq/package.py b/var/spack/repos/builtin.mock/packages/externalprereq/package.py
index 15e5774a2cda30..d1f4e4fb7cf8ba 100644
--- a/var/spack/repos/builtin.mock/packages/externalprereq/package.py
+++ b/var/spack/repos/builtin.mock/packages/externalprereq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/externaltest/package.py b/var/spack/repos/builtin.mock/packages/externaltest/package.py
index da2fe7fcdee331..2230a6c83673b8 100644
--- a/var/spack/repos/builtin.mock/packages/externaltest/package.py
+++ b/var/spack/repos/builtin.mock/packages/externaltest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/externaltool/package.py b/var/spack/repos/builtin.mock/packages/externaltool/package.py
index 7cb1ddf8369900..55bfc686b8d8e7 100644
--- a/var/spack/repos/builtin.mock/packages/externaltool/package.py
+++ b/var/spack/repos/builtin.mock/packages/externaltool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/externalvirtual/package.py b/var/spack/repos/builtin.mock/packages/externalvirtual/package.py
index 7019240eb07346..b04f86d0d0730f 100644
--- a/var/spack/repos/builtin.mock/packages/externalvirtual/package.py
+++ b/var/spack/repos/builtin.mock/packages/externalvirtual/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/fail-test-audit/package.py b/var/spack/repos/builtin.mock/packages/fail-test-audit/package.py
index 3869d4ac684aae..54b63ed79bc7cb 100644
--- a/var/spack/repos/builtin.mock/packages/fail-test-audit/package.py
+++ b/var/spack/repos/builtin.mock/packages/fail-test-audit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/failing-build/package.py b/var/spack/repos/builtin.mock/packages/failing-build/package.py
index a94a65def167eb..f3a1f6fb72d305 100644
--- a/var/spack/repos/builtin.mock/packages/failing-build/package.py
+++ b/var/spack/repos/builtin.mock/packages/failing-build/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/failing-empty-install/package.py b/var/spack/repos/builtin.mock/packages/failing-empty-install/package.py
index 4be59a332521de..84fa5686d87cfe 100644
--- a/var/spack/repos/builtin.mock/packages/failing-empty-install/package.py
+++ b/var/spack/repos/builtin.mock/packages/failing-empty-install/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/fake/package.py b/var/spack/repos/builtin.mock/packages/fake/package.py
index 103e684b0527df..d20f1c28171178 100644
--- a/var/spack/repos/builtin.mock/packages/fake/package.py
+++ b/var/spack/repos/builtin.mock/packages/fake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/fetch-options/package.py b/var/spack/repos/builtin.mock/packages/fetch-options/package.py
index 74a1215074000d..9c6e1b966406bd 100644
--- a/var/spack/repos/builtin.mock/packages/fetch-options/package.py
+++ b/var/spack/repos/builtin.mock/packages/fetch-options/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/fftw/package.py b/var/spack/repos/builtin.mock/packages/fftw/package.py
index 0e25e4de81703e..e4d63aa93ea0c4 100644
--- a/var/spack/repos/builtin.mock/packages/fftw/package.py
+++ b/var/spack/repos/builtin.mock/packages/fftw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/find-externals1/package.py b/var/spack/repos/builtin.mock/packages/find-externals1/package.py
index 495657a8074f9c..2a82fad9b552ae 100644
--- a/var/spack/repos/builtin.mock/packages/find-externals1/package.py
+++ b/var/spack/repos/builtin.mock/packages/find-externals1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/flake8/package.py b/var/spack/repos/builtin.mock/packages/flake8/package.py
index a7c754b83e6563..5857719552f853 100644
--- a/var/spack/repos/builtin.mock/packages/flake8/package.py
+++ b/var/spack/repos/builtin.mock/packages/flake8/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/flatten-deps/package.py b/var/spack/repos/builtin.mock/packages/flatten-deps/package.py
index 88dd965d9e3d48..a4e32b93345c58 100644
--- a/var/spack/repos/builtin.mock/packages/flatten-deps/package.py
+++ b/var/spack/repos/builtin.mock/packages/flatten-deps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/garply/package.py b/var/spack/repos/builtin.mock/packages/garply/package.py
index 8070a09f1af157..7e87d563417928 100644
--- a/var/spack/repos/builtin.mock/packages/garply/package.py
+++ b/var/spack/repos/builtin.mock/packages/garply/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/gcc/package.py b/var/spack/repos/builtin.mock/packages/gcc/package.py
index b1db22e7eb7224..31f7c95b53684b 100644
--- a/var/spack/repos/builtin.mock/packages/gcc/package.py
+++ b/var/spack/repos/builtin.mock/packages/gcc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/git-svn-top-level/package.py b/var/spack/repos/builtin.mock/packages/git-svn-top-level/package.py
index eecbbce5633293..94054bcae6a4ea 100644
--- a/var/spack/repos/builtin.mock/packages/git-svn-top-level/package.py
+++ b/var/spack/repos/builtin.mock/packages/git-svn-top-level/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/git-test-commit/package.py b/var/spack/repos/builtin.mock/packages/git-test-commit/package.py
index 5bdac9f3982322..66eb64e5436d09 100644
--- a/var/spack/repos/builtin.mock/packages/git-test-commit/package.py
+++ b/var/spack/repos/builtin.mock/packages/git-test-commit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/git-test/package.py b/var/spack/repos/builtin.mock/packages/git-test/package.py
index 71bb56ca5362f3..c3d216c9edc892 100644
--- a/var/spack/repos/builtin.mock/packages/git-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/git-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/git-top-level/package.py b/var/spack/repos/builtin.mock/packages/git-top-level/package.py
index 6ec4ddf9a8dbfa..3794c664b83b3c 100644
--- a/var/spack/repos/builtin.mock/packages/git-top-level/package.py
+++ b/var/spack/repos/builtin.mock/packages/git-top-level/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/git-url-svn-top-level/package.py b/var/spack/repos/builtin.mock/packages/git-url-svn-top-level/package.py
index 162cc2f49b2276..0aea9493a2e58c 100644
--- a/var/spack/repos/builtin.mock/packages/git-url-svn-top-level/package.py
+++ b/var/spack/repos/builtin.mock/packages/git-url-svn-top-level/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py b/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py
index c7309595ddb6bd..7e3009d7dc9f8b 100644
--- a/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py
+++ b/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/gmake/package.py b/var/spack/repos/builtin.mock/packages/gmake/package.py
index b3d5c50086e291..4ab856a3add92b 100644
--- a/var/spack/repos/builtin.mock/packages/gmake/package.py
+++ b/var/spack/repos/builtin.mock/packages/gmake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,7 @@ class Gmake(Package):
url = "https://ftpmirror.gnu.org/make/make-4.4.tar.gz"
version("4.4", sha256="ce35865411f0490368a8fc383f29071de6690cbadc27704734978221f25e2bed")
+ version("3.0", sha256="ce35865411f0490368a8fc383f29071de6690cbadc27704734978221f25e2bed")
def do_stage(self):
mkdirp(self.stage.source_path)
diff --git a/var/spack/repos/builtin.mock/packages/gmt/package.py b/var/spack/repos/builtin.mock/packages/gmt/package.py
index ebd37eec4828e5..b4ea55e71fdfec 100644
--- a/var/spack/repos/builtin.mock/packages/gmt/package.py
+++ b/var/spack/repos/builtin.mock/packages/gmt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/gnuconfig/package.py b/var/spack/repos/builtin.mock/packages/gnuconfig/package.py
index 5d8bd6358d464f..6f084900bb91c3 100644
--- a/var/spack/repos/builtin.mock/packages/gnuconfig/package.py
+++ b/var/spack/repos/builtin.mock/packages/gnuconfig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/hash-test1/package.py b/var/spack/repos/builtin.mock/packages/hash-test1/package.py
index d59a5dbe3d4c53..403ad5918864e0 100644
--- a/var/spack/repos/builtin.mock/packages/hash-test1/package.py
+++ b/var/spack/repos/builtin.mock/packages/hash-test1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/hash-test2/package.py b/var/spack/repos/builtin.mock/packages/hash-test2/package.py
index ca4cf441d81246..773370e5a197aa 100644
--- a/var/spack/repos/builtin.mock/packages/hash-test2/package.py
+++ b/var/spack/repos/builtin.mock/packages/hash-test2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/hash-test3/package.py b/var/spack/repos/builtin.mock/packages/hash-test3/package.py
index 0f56f5a5cb2810..3e7b79419affb1 100644
--- a/var/spack/repos/builtin.mock/packages/hash-test3/package.py
+++ b/var/spack/repos/builtin.mock/packages/hash-test3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/hash-test4/package.py b/var/spack/repos/builtin.mock/packages/hash-test4/package.py
index 2008fa143a148c..e3b0557df1abba 100644
--- a/var/spack/repos/builtin.mock/packages/hash-test4/package.py
+++ b/var/spack/repos/builtin.mock/packages/hash-test4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/hdf5/package.py b/var/spack/repos/builtin.mock/packages/hdf5/package.py
index 8df155f0601557..eeee725a67f59e 100644
--- a/var/spack/repos/builtin.mock/packages/hdf5/package.py
+++ b/var/spack/repos/builtin.mock/packages/hdf5/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/hg-test/package.py b/var/spack/repos/builtin.mock/packages/hg-test/package.py
index 5adb9e17e8d999..26d6a05055a9c1 100644
--- a/var/spack/repos/builtin.mock/packages/hg-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/hg-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/hg-top-level/package.py b/var/spack/repos/builtin.mock/packages/hg-top-level/package.py
index 424386f7addc04..15f64b81fd0ceb 100644
--- a/var/spack/repos/builtin.mock/packages/hg-top-level/package.py
+++ b/var/spack/repos/builtin.mock/packages/hg-top-level/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/hpcviewer/package.py b/var/spack/repos/builtin.mock/packages/hpcviewer/package.py
index 0b761dbedd1963..f519e24db115ca 100644
--- a/var/spack/repos/builtin.mock/packages/hpcviewer/package.py
+++ b/var/spack/repos/builtin.mock/packages/hpcviewer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/hwloc/package.py b/var/spack/repos/builtin.mock/packages/hwloc/package.py
index 21b600b2f82747..e3d374ed961d6c 100644
--- a/var/spack/repos/builtin.mock/packages/hwloc/package.py
+++ b/var/spack/repos/builtin.mock/packages/hwloc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/hypre/package.py b/var/spack/repos/builtin.mock/packages/hypre/package.py
index 1e7bf744f17e9b..dba700030a33db 100644
--- a/var/spack/repos/builtin.mock/packages/hypre/package.py
+++ b/var/spack/repos/builtin.mock/packages/hypre/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/impossible-concretization/package.py b/var/spack/repos/builtin.mock/packages/impossible-concretization/package.py
index 8d98462a259eab..68c933e657a451 100644
--- a/var/spack/repos/builtin.mock/packages/impossible-concretization/package.py
+++ b/var/spack/repos/builtin.mock/packages/impossible-concretization/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py b/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py
index 7454bc45acd177..25d603cda73786 100644
--- a/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py
+++ b/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/installed-deps-a/package.py b/var/spack/repos/builtin.mock/packages/installed-deps-a/package.py
index abb2fc6db6bccb..0698b5e8625f69 100644
--- a/var/spack/repos/builtin.mock/packages/installed-deps-a/package.py
+++ b/var/spack/repos/builtin.mock/packages/installed-deps-a/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/installed-deps-b/package.py b/var/spack/repos/builtin.mock/packages/installed-deps-b/package.py
index 89f71efa67a454..c1ac8c6cc02ebc 100644
--- a/var/spack/repos/builtin.mock/packages/installed-deps-b/package.py
+++ b/var/spack/repos/builtin.mock/packages/installed-deps-b/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/installed-deps-c/package.py b/var/spack/repos/builtin.mock/packages/installed-deps-c/package.py
index 96c2ed0ff63717..e65e1f509bdc34 100644
--- a/var/spack/repos/builtin.mock/packages/installed-deps-c/package.py
+++ b/var/spack/repos/builtin.mock/packages/installed-deps-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/installed-deps-d/package.py b/var/spack/repos/builtin.mock/packages/installed-deps-d/package.py
index 88b3666bbb91b0..4fb74da427c7f6 100644
--- a/var/spack/repos/builtin.mock/packages/installed-deps-d/package.py
+++ b/var/spack/repos/builtin.mock/packages/installed-deps-d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/installed-deps-e/package.py b/var/spack/repos/builtin.mock/packages/installed-deps-e/package.py
index 07ecb9647f317a..e16d0fdbac3950 100644
--- a/var/spack/repos/builtin.mock/packages/installed-deps-e/package.py
+++ b/var/spack/repos/builtin.mock/packages/installed-deps-e/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/intel-oneapi-compilers/package.py b/var/spack/repos/builtin.mock/packages/intel-oneapi-compilers/package.py
index 35ad46fd96dffa..f7c7dd67e522a7 100644
--- a/var/spack/repos/builtin.mock/packages/intel-oneapi-compilers/package.py
+++ b/var/spack/repos/builtin.mock/packages/intel-oneapi-compilers/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/intel-parallel-studio/package.py b/var/spack/repos/builtin.mock/packages/intel-parallel-studio/package.py
index 1ec5cf6932619e..88836087b14394 100644
--- a/var/spack/repos/builtin.mock/packages/intel-parallel-studio/package.py
+++ b/var/spack/repos/builtin.mock/packages/intel-parallel-studio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/invalid-github-patch-url/package.py b/var/spack/repos/builtin.mock/packages/invalid-github-patch-url/package.py
index 5799e334a1e79f..77e5e8af5c661e 100644
--- a/var/spack/repos/builtin.mock/packages/invalid-github-patch-url/package.py
+++ b/var/spack/repos/builtin.mock/packages/invalid-github-patch-url/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/invalid-gitlab-patch-url/package.py b/var/spack/repos/builtin.mock/packages/invalid-gitlab-patch-url/package.py
index 527a1815e62863..a9766909ec8223 100644
--- a/var/spack/repos/builtin.mock/packages/invalid-gitlab-patch-url/package.py
+++ b/var/spack/repos/builtin.mock/packages/invalid-gitlab-patch-url/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/invalid-selfhosted-gitlab-patch-url/package.py b/var/spack/repos/builtin.mock/packages/invalid-selfhosted-gitlab-patch-url/package.py
index 818876405c26f6..5b0fe0d061cabb 100644
--- a/var/spack/repos/builtin.mock/packages/invalid-selfhosted-gitlab-patch-url/package.py
+++ b/var/spack/repos/builtin.mock/packages/invalid-selfhosted-gitlab-patch-url/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py b/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py
index 6552c12fe85adc..53efcb6c26b932 100644
--- a/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py
+++ b/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/libdwarf/package.py b/var/spack/repos/builtin.mock/packages/libdwarf/package.py
index 6a904a289c858f..1d460bc6ea6d82 100644
--- a/var/spack/repos/builtin.mock/packages/libdwarf/package.py
+++ b/var/spack/repos/builtin.mock/packages/libdwarf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/libelf/package.py b/var/spack/repos/builtin.mock/packages/libelf/package.py
index 51703ebfce7542..31b46164ae21ef 100644
--- a/var/spack/repos/builtin.mock/packages/libelf/package.py
+++ b/var/spack/repos/builtin.mock/packages/libelf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/libtool-deletion/package.py b/var/spack/repos/builtin.mock/packages/libtool-deletion/package.py
index 1598e4bd4c6bc5..2afdb8f6d49294 100644
--- a/var/spack/repos/builtin.mock/packages/libtool-deletion/package.py
+++ b/var/spack/repos/builtin.mock/packages/libtool-deletion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/libtool-installation/package.py b/var/spack/repos/builtin.mock/packages/libtool-installation/package.py
index e94fd13b7a704d..c254a6f85893e6 100644
--- a/var/spack/repos/builtin.mock/packages/libtool-installation/package.py
+++ b/var/spack/repos/builtin.mock/packages/libtool-installation/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/licenses-1/package.py b/var/spack/repos/builtin.mock/packages/licenses-1/package.py
index d5c67830c98f2e..c298e013bf3961 100644
--- a/var/spack/repos/builtin.mock/packages/licenses-1/package.py
+++ b/var/spack/repos/builtin.mock/packages/licenses-1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/low-priority-provider/package.py b/var/spack/repos/builtin.mock/packages/low-priority-provider/package.py
index 940dea3dafc13c..4a463e443bd026 100644
--- a/var/spack/repos/builtin.mock/packages/low-priority-provider/package.py
+++ b/var/spack/repos/builtin.mock/packages/low-priority-provider/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/maintainers-1/package.py b/var/spack/repos/builtin.mock/packages/maintainers-1/package.py
index 911bad5301d933..7ed76ea9c103cb 100644
--- a/var/spack/repos/builtin.mock/packages/maintainers-1/package.py
+++ b/var/spack/repos/builtin.mock/packages/maintainers-1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/maintainers-2/package.py b/var/spack/repos/builtin.mock/packages/maintainers-2/package.py
index e711cf997274dd..5f5e4ebae28605 100644
--- a/var/spack/repos/builtin.mock/packages/maintainers-2/package.py
+++ b/var/spack/repos/builtin.mock/packages/maintainers-2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/maintainers-3/package.py b/var/spack/repos/builtin.mock/packages/maintainers-3/package.py
index d6911c0cec7e92..371fe8a6ac6ea7 100644
--- a/var/spack/repos/builtin.mock/packages/maintainers-3/package.py
+++ b/var/spack/repos/builtin.mock/packages/maintainers-3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/many-virtual-consumer/package.py b/var/spack/repos/builtin.mock/packages/many-virtual-consumer/package.py
index 087cfb77cccac1..f9095165fe2d6f 100644
--- a/var/spack/repos/builtin.mock/packages/many-virtual-consumer/package.py
+++ b/var/spack/repos/builtin.mock/packages/many-virtual-consumer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py b/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py
index 0feb5e80014957..1da33c392486b9 100644
--- a/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py
+++ b/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-gnu-broken/package.py b/var/spack/repos/builtin.mock/packages/mirror-gnu-broken/package.py
index 803b844b11ccf5..2a84145ae5222f 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-gnu-broken/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-gnu-broken/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-gnu/package.py b/var/spack/repos/builtin.mock/packages/mirror-gnu/package.py
index 016f585abd7ca9..0c32f335fe9013 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-gnu/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-gnu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-sourceforge-broken/package.py b/var/spack/repos/builtin.mock/packages/mirror-sourceforge-broken/package.py
index 86a266c8d2d7b7..d28d555e3eabd8 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-sourceforge-broken/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-sourceforge-broken/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-sourceforge/package.py b/var/spack/repos/builtin.mock/packages/mirror-sourceforge/package.py
index cfeece6a4b29b7..c74264a9034138 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-sourceforge/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-sourceforge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/mirror-gnu-broken/package.py b/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/mirror-gnu-broken/package.py
index 803b844b11ccf5..2a84145ae5222f 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/mirror-gnu-broken/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/mirror-gnu-broken/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/package.py b/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/package.py
index 60515ddaabb8b2..e6cc2d0cae2fed 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-sourceware/package.py b/var/spack/repos/builtin.mock/packages/mirror-sourceware/package.py
index 8d4a601ddce775..fbceb24e7debe1 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-sourceware/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-sourceware/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-xorg-broken/package.py b/var/spack/repos/builtin.mock/packages/mirror-xorg-broken/package.py
index 26e4f64a99ca0f..00b73534a7f09b 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-xorg-broken/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-xorg-broken/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-xorg/package.py b/var/spack/repos/builtin.mock/packages/mirror-xorg/package.py
index 14c5f8e936b7a6..439eea0d3eed9d 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-xorg/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-xorg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/missing-dependency/package.py b/var/spack/repos/builtin.mock/packages/missing-dependency/package.py
index 668df13978d447..043ab7981366da 100644
--- a/var/spack/repos/builtin.mock/packages/missing-dependency/package.py
+++ b/var/spack/repos/builtin.mock/packages/missing-dependency/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mixedversions/package.py b/var/spack/repos/builtin.mock/packages/mixedversions/package.py
index d640b32e2302a1..c2806a6188df25 100644
--- a/var/spack/repos/builtin.mock/packages/mixedversions/package.py
+++ b/var/spack/repos/builtin.mock/packages/mixedversions/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/modifies-run-env/package.py b/var/spack/repos/builtin.mock/packages/modifies-run-env/package.py
index 7029cef38d1bb5..669531bf44bcc4 100644
--- a/var/spack/repos/builtin.mock/packages/modifies-run-env/package.py
+++ b/var/spack/repos/builtin.mock/packages/modifies-run-env/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/module-long-help/package.py b/var/spack/repos/builtin.mock/packages/module-long-help/package.py
index 43a0da412a8d43..8efb5fcc694d0b 100644
--- a/var/spack/repos/builtin.mock/packages/module-long-help/package.py
+++ b/var/spack/repos/builtin.mock/packages/module-long-help/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/module-manpath-append/package.py b/var/spack/repos/builtin.mock/packages/module-manpath-append/package.py
index 5f31d17a8f6a18..ec85f013895d26 100644
--- a/var/spack/repos/builtin.mock/packages/module-manpath-append/package.py
+++ b/var/spack/repos/builtin.mock/packages/module-manpath-append/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/module-manpath-prepend/package.py b/var/spack/repos/builtin.mock/packages/module-manpath-prepend/package.py
index f72a280a8e8155..9a2e2217935d80 100644
--- a/var/spack/repos/builtin.mock/packages/module-manpath-prepend/package.py
+++ b/var/spack/repos/builtin.mock/packages/module-manpath-prepend/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/module-manpath-setenv/package.py b/var/spack/repos/builtin.mock/packages/module-manpath-setenv/package.py
index a3ffe1c02ef92a..722c86c6b6ce81 100644
--- a/var/spack/repos/builtin.mock/packages/module-manpath-setenv/package.py
+++ b/var/spack/repos/builtin.mock/packages/module-manpath-setenv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/module-path-separator/package.py b/var/spack/repos/builtin.mock/packages/module-path-separator/package.py
index 981e909d19c68f..40bdc81b6808ef 100644
--- a/var/spack/repos/builtin.mock/packages/module-path-separator/package.py
+++ b/var/spack/repos/builtin.mock/packages/module-path-separator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/module-setenv-raw/package.py b/var/spack/repos/builtin.mock/packages/module-setenv-raw/package.py
index 106ff2da22a371..3c8809d13a4a52 100644
--- a/var/spack/repos/builtin.mock/packages/module-setenv-raw/package.py
+++ b/var/spack/repos/builtin.mock/packages/module-setenv-raw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mpi/package.py b/var/spack/repos/builtin.mock/packages/mpi/package.py
index 2568bfef2d0ca1..1e050ce247a826 100644
--- a/var/spack/repos/builtin.mock/packages/mpi/package.py
+++ b/var/spack/repos/builtin.mock/packages/mpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mpich/package.py b/var/spack/repos/builtin.mock/packages/mpich/package.py
index 3bfe41ab6a3de7..08338033a9847c 100644
--- a/var/spack/repos/builtin.mock/packages/mpich/package.py
+++ b/var/spack/repos/builtin.mock/packages/mpich/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mpich2/package.py b/var/spack/repos/builtin.mock/packages/mpich2/package.py
index 9b800d122d2b38..51b78de2a3df80 100644
--- a/var/spack/repos/builtin.mock/packages/mpich2/package.py
+++ b/var/spack/repos/builtin.mock/packages/mpich2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mpileaks/package.py b/var/spack/repos/builtin.mock/packages/mpileaks/package.py
index f8a08415656528..fe1c6adce9ce10 100644
--- a/var/spack/repos/builtin.mock/packages/mpileaks/package.py
+++ b/var/spack/repos/builtin.mock/packages/mpileaks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py b/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py
index 66ad7728be2f9d..b3c7e213035d99 100644
--- a/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py
+++ b/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/multimethod-base/package.py b/var/spack/repos/builtin.mock/packages/multimethod-base/package.py
index 97cd5d15d9c960..fabfbce2d8c392 100644
--- a/var/spack/repos/builtin.mock/packages/multimethod-base/package.py
+++ b/var/spack/repos/builtin.mock/packages/multimethod-base/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/multimethod-diamond-parent/package.py b/var/spack/repos/builtin.mock/packages/multimethod-diamond-parent/package.py
index a61640755a4fc6..8aa60faca1eb5a 100644
--- a/var/spack/repos/builtin.mock/packages/multimethod-diamond-parent/package.py
+++ b/var/spack/repos/builtin.mock/packages/multimethod-diamond-parent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/multimethod-diamond/package.py b/var/spack/repos/builtin.mock/packages/multimethod-diamond/package.py
index 58c0afc5cf6b97..dac49f7d71c6d2 100644
--- a/var/spack/repos/builtin.mock/packages/multimethod-diamond/package.py
+++ b/var/spack/repos/builtin.mock/packages/multimethod-diamond/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/multimethod-inheritor/package.py b/var/spack/repos/builtin.mock/packages/multimethod-inheritor/package.py
index 50448bbcc9a2d8..956ae251ccb5fe 100644
--- a/var/spack/repos/builtin.mock/packages/multimethod-inheritor/package.py
+++ b/var/spack/repos/builtin.mock/packages/multimethod-inheritor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/multimethod/package.py b/var/spack/repos/builtin.mock/packages/multimethod/package.py
index 2853b872848a9a..ad58ffd81906a8 100644
--- a/var/spack/repos/builtin.mock/packages/multimethod/package.py
+++ b/var/spack/repos/builtin.mock/packages/multimethod/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/multimodule-inheritance/package.py b/var/spack/repos/builtin.mock/packages/multimodule-inheritance/package.py
index 52838dfce03ed5..27e44a507ce09f 100644
--- a/var/spack/repos/builtin.mock/packages/multimodule-inheritance/package.py
+++ b/var/spack/repos/builtin.mock/packages/multimodule-inheritance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/multivalue-variant/package.py b/var/spack/repos/builtin.mock/packages/multivalue-variant/package.py
index b0f7ac9501cd18..1921cfd810f32b 100644
--- a/var/spack/repos/builtin.mock/packages/multivalue-variant/package.py
+++ b/var/spack/repos/builtin.mock/packages/multivalue-variant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mvapich2/package.py b/var/spack/repos/builtin.mock/packages/mvapich2/package.py
index 19e630acbc8554..c9a1189377e230 100644
--- a/var/spack/repos/builtin.mock/packages/mvapich2/package.py
+++ b/var/spack/repos/builtin.mock/packages/mvapich2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/mvdefaults/package.py b/var/spack/repos/builtin.mock/packages/mvdefaults/package.py
index fa7d61a8f0bfe1..54ce3d19056ba3 100644
--- a/var/spack/repos/builtin.mock/packages/mvdefaults/package.py
+++ b/var/spack/repos/builtin.mock/packages/mvdefaults/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/needs-relocation/package.py b/var/spack/repos/builtin.mock/packages/needs-relocation/package.py
index 8e0dbf351f5719..8ac037876fe2c8 100644
--- a/var/spack/repos/builtin.mock/packages/needs-relocation/package.py
+++ b/var/spack/repos/builtin.mock/packages/needs-relocation/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/needs-text-relocation/package.py b/var/spack/repos/builtin.mock/packages/needs-text-relocation/package.py
index f1dd4148c24570..bd0d9277da9c6c 100644
--- a/var/spack/repos/builtin.mock/packages/needs-text-relocation/package.py
+++ b/var/spack/repos/builtin.mock/packages/needs-text-relocation/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/netlib-blas/package.py b/var/spack/repos/builtin.mock/packages/netlib-blas/package.py
index cf40c10feef375..1c17d3e13fbb2e 100644
--- a/var/spack/repos/builtin.mock/packages/netlib-blas/package.py
+++ b/var/spack/repos/builtin.mock/packages/netlib-blas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/netlib-lapack/package.py b/var/spack/repos/builtin.mock/packages/netlib-lapack/package.py
index dd6a24ee5ec80d..50dbef4a0b1c1f 100644
--- a/var/spack/repos/builtin.mock/packages/netlib-lapack/package.py
+++ b/var/spack/repos/builtin.mock/packages/netlib-lapack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/netlib-scalapack/package.py b/var/spack/repos/builtin.mock/packages/netlib-scalapack/package.py
index fe5d7f90a1f27d..ecf6fbcece12c7 100644
--- a/var/spack/repos/builtin.mock/packages/netlib-scalapack/package.py
+++ b/var/spack/repos/builtin.mock/packages/netlib-scalapack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/ninja/package.py b/var/spack/repos/builtin.mock/packages/ninja/package.py
index 5f19b8c5b7da4f..1da107f30fafea 100644
--- a/var/spack/repos/builtin.mock/packages/ninja/package.py
+++ b/var/spack/repos/builtin.mock/packages/ninja/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/non-existing-conditional-dep/package.py b/var/spack/repos/builtin.mock/packages/non-existing-conditional-dep/package.py
index 634a661ebdfac7..d37acbddfcf925 100644
--- a/var/spack/repos/builtin.mock/packages/non-existing-conditional-dep/package.py
+++ b/var/spack/repos/builtin.mock/packages/non-existing-conditional-dep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/nosource-bundle/package.py b/var/spack/repos/builtin.mock/packages/nosource-bundle/package.py
index bc0159fdee061c..1dfcee7d1e4492 100644
--- a/var/spack/repos/builtin.mock/packages/nosource-bundle/package.py
+++ b/var/spack/repos/builtin.mock/packages/nosource-bundle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/nosource-install/package.py b/var/spack/repos/builtin.mock/packages/nosource-install/package.py
index 424f1577ce0bb0..5f3a4c2252f711 100644
--- a/var/spack/repos/builtin.mock/packages/nosource-install/package.py
+++ b/var/spack/repos/builtin.mock/packages/nosource-install/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/nosource/package.py b/var/spack/repos/builtin.mock/packages/nosource/package.py
index 2b44cf28cfc86c..3634886f23bf7e 100644
--- a/var/spack/repos/builtin.mock/packages/nosource/package.py
+++ b/var/spack/repos/builtin.mock/packages/nosource/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/noversion-bundle/package.py b/var/spack/repos/builtin.mock/packages/noversion-bundle/package.py
index ec3932f4ab2629..981ce417c61f53 100644
--- a/var/spack/repos/builtin.mock/packages/noversion-bundle/package.py
+++ b/var/spack/repos/builtin.mock/packages/noversion-bundle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/noversion/package.py b/var/spack/repos/builtin.mock/packages/noversion/package.py
index 0f139f60559d53..9677b1003891be 100644
--- a/var/spack/repos/builtin.mock/packages/noversion/package.py
+++ b/var/spack/repos/builtin.mock/packages/noversion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/old-external/package.py b/var/spack/repos/builtin.mock/packages/old-external/package.py
index db6419c17dde06..a03380d641f547 100644
--- a/var/spack/repos/builtin.mock/packages/old-external/package.py
+++ b/var/spack/repos/builtin.mock/packages/old-external/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/old-sbang/package.py b/var/spack/repos/builtin.mock/packages/old-sbang/package.py
index 2f7e8505b0efb3..dc590e1120722f 100644
--- a/var/spack/repos/builtin.mock/packages/old-sbang/package.py
+++ b/var/spack/repos/builtin.mock/packages/old-sbang/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py b/var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py
index 1273b70def2127..fa275b8d386181 100644
--- a/var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py
+++ b/var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/openblas/package.py b/var/spack/repos/builtin.mock/packages/openblas/package.py
index 33a6e20d514d63..db288b9a3b62e5 100644
--- a/var/spack/repos/builtin.mock/packages/openblas/package.py
+++ b/var/spack/repos/builtin.mock/packages/openblas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/openmpi/package.py b/var/spack/repos/builtin.mock/packages/openmpi/package.py
index ea4cb42f7a1c50..438d92aa20ecc5 100644
--- a/var/spack/repos/builtin.mock/packages/openmpi/package.py
+++ b/var/spack/repos/builtin.mock/packages/openmpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py b/var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py
index 8d94e50524c75b..398576d6804d87 100644
--- a/var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py
+++ b/var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py b/var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py
index 4b89ef6750b905..48fa846fdde9fe 100644
--- a/var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py
+++ b/var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/optional-dep-test/package.py b/var/spack/repos/builtin.mock/packages/optional-dep-test/package.py
index 4037623cdd035c..ae807650461ddd 100644
--- a/var/spack/repos/builtin.mock/packages/optional-dep-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/optional-dep-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/othervirtual/package.py b/var/spack/repos/builtin.mock/packages/othervirtual/package.py
index 0d661cc168ebf1..8c88dbd98df647 100644
--- a/var/spack/repos/builtin.mock/packages/othervirtual/package.py
+++ b/var/spack/repos/builtin.mock/packages/othervirtual/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/override-context-templates/package.py b/var/spack/repos/builtin.mock/packages/override-context-templates/package.py
index d6d79aabb069ab..e05439272f5668 100644
--- a/var/spack/repos/builtin.mock/packages/override-context-templates/package.py
+++ b/var/spack/repos/builtin.mock/packages/override-context-templates/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/override-module-templates/package.py b/var/spack/repos/builtin.mock/packages/override-module-templates/package.py
index 77b3be80419ab2..e50c3ea6dcb24a 100644
--- a/var/spack/repos/builtin.mock/packages/override-module-templates/package.py
+++ b/var/spack/repos/builtin.mock/packages/override-module-templates/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/parent-foo-bar/package.py b/var/spack/repos/builtin.mock/packages/parent-foo-bar/package.py
index 14516566a9f7d4..064c5740571140 100644
--- a/var/spack/repos/builtin.mock/packages/parent-foo-bar/package.py
+++ b/var/spack/repos/builtin.mock/packages/parent-foo-bar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/parent-foo/package.py b/var/spack/repos/builtin.mock/packages/parent-foo/package.py
index 61d15231f70822..a9663566b5904d 100644
--- a/var/spack/repos/builtin.mock/packages/parent-foo/package.py
+++ b/var/spack/repos/builtin.mock/packages/parent-foo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/patch-a-dependency/package.py b/var/spack/repos/builtin.mock/packages/patch-a-dependency/package.py
index fb1c71033ba303..99a6f3cf087592 100644
--- a/var/spack/repos/builtin.mock/packages/patch-a-dependency/package.py
+++ b/var/spack/repos/builtin.mock/packages/patch-a-dependency/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/patch-inheritance/package.py b/var/spack/repos/builtin.mock/packages/patch-inheritance/package.py
index 17e4d522d58623..08176a63baea07 100644
--- a/var/spack/repos/builtin.mock/packages/patch-inheritance/package.py
+++ b/var/spack/repos/builtin.mock/packages/patch-inheritance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/patch-several-dependencies/package.py b/var/spack/repos/builtin.mock/packages/patch-several-dependencies/package.py
index f23a8e40a002e9..dcfbe6dc47214c 100644
--- a/var/spack/repos/builtin.mock/packages/patch-several-dependencies/package.py
+++ b/var/spack/repos/builtin.mock/packages/patch-several-dependencies/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/patch/package.py b/var/spack/repos/builtin.mock/packages/patch/package.py
index 56e735eea6647d..d8a3a852a099c7 100644
--- a/var/spack/repos/builtin.mock/packages/patch/package.py
+++ b/var/spack/repos/builtin.mock/packages/patch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/patchelf/package.py b/var/spack/repos/builtin.mock/packages/patchelf/package.py
index 20d5892eb3f8bd..c5d4239efe7bbf 100644
--- a/var/spack/repos/builtin.mock/packages/patchelf/package.py
+++ b/var/spack/repos/builtin.mock/packages/patchelf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/perl-extension/package.py b/var/spack/repos/builtin.mock/packages/perl-extension/package.py
index e5675ebe1fd8fe..1ac0c5a3bf19bc 100644
--- a/var/spack/repos/builtin.mock/packages/perl-extension/package.py
+++ b/var/spack/repos/builtin.mock/packages/perl-extension/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/perl/package.py b/var/spack/repos/builtin.mock/packages/perl/package.py
index 1025efb2e9316b..8d86dec8f32017 100644
--- a/var/spack/repos/builtin.mock/packages/perl/package.py
+++ b/var/spack/repos/builtin.mock/packages/perl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/preferred-test/package.py b/var/spack/repos/builtin.mock/packages/preferred-test/package.py
index 371b19d16d05cd..e63ed3016d6f30 100644
--- a/var/spack/repos/builtin.mock/packages/preferred-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/preferred-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,6 @@ class PreferredTest(Package):
version("develop", git="https://github.com/LLNL/mpileaks.git")
version(
"1.0",
- sha256="2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825",
+ sha256="abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
preferred=True,
)
diff --git a/var/spack/repos/builtin.mock/packages/printing-package/package.py b/var/spack/repos/builtin.mock/packages/printing-package/package.py
index 999b78a09536ee..a6be00983db836 100644
--- a/var/spack/repos/builtin.mock/packages/printing-package/package.py
+++ b/var/spack/repos/builtin.mock/packages/printing-package/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/py-extension1/package.py b/var/spack/repos/builtin.mock/packages/py-extension1/package.py
index 8310500a48f4b4..428c5726e873cc 100644
--- a/var/spack/repos/builtin.mock/packages/py-extension1/package.py
+++ b/var/spack/repos/builtin.mock/packages/py-extension1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/py-extension2/package.py b/var/spack/repos/builtin.mock/packages/py-extension2/package.py
index c3f5211e717123..60f90e35235c6a 100644
--- a/var/spack/repos/builtin.mock/packages/py-extension2/package.py
+++ b/var/spack/repos/builtin.mock/packages/py-extension2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/py-extension3/package.py b/var/spack/repos/builtin.mock/packages/py-extension3/package.py
index 936639b488537f..e47bcff5542d15 100644
--- a/var/spack/repos/builtin.mock/packages/py-extension3/package.py
+++ b/var/spack/repos/builtin.mock/packages/py-extension3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/py-pip/package.py b/var/spack/repos/builtin.mock/packages/py-pip/package.py
index 13a4aed9b74a84..0e39be034dbc76 100644
--- a/var/spack/repos/builtin.mock/packages/py-pip/package.py
+++ b/var/spack/repos/builtin.mock/packages/py-pip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/py-test-callback/package.py b/var/spack/repos/builtin.mock/packages/py-test-callback/package.py
index 936772717aad64..46a16a465fca61 100644
--- a/var/spack/repos/builtin.mock/packages/py-test-callback/package.py
+++ b/var/spack/repos/builtin.mock/packages/py-test-callback/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/py-wheel/package.py b/var/spack/repos/builtin.mock/packages/py-wheel/package.py
index 49fcf26a56cb74..728b8aa827cbc5 100644
--- a/var/spack/repos/builtin.mock/packages/py-wheel/package.py
+++ b/var/spack/repos/builtin.mock/packages/py-wheel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/python/package.py b/var/spack/repos/builtin.mock/packages/python/package.py
index 9fbee0ec2ed45b..68cb66ae489dd7 100644
--- a/var/spack/repos/builtin.mock/packages/python/package.py
+++ b/var/spack/repos/builtin.mock/packages/python/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/quantum-espresso/package.py b/var/spack/repos/builtin.mock/packages/quantum-espresso/package.py
index 6606fb73c35a79..d56c4f26428aa1 100644
--- a/var/spack/repos/builtin.mock/packages/quantum-espresso/package.py
+++ b/var/spack/repos/builtin.mock/packages/quantum-espresso/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/quux/package.py b/var/spack/repos/builtin.mock/packages/quux/package.py
index b9159c125b4c85..61ae0283c7ef85 100644
--- a/var/spack/repos/builtin.mock/packages/quux/package.py
+++ b/var/spack/repos/builtin.mock/packages/quux/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/raiser/package.py b/var/spack/repos/builtin.mock/packages/raiser/package.py
index b9e68fa11dba2c..4edbf4602ef168 100644
--- a/var/spack/repos/builtin.mock/packages/raiser/package.py
+++ b/var/spack/repos/builtin.mock/packages/raiser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/requires-virtual/package.py b/var/spack/repos/builtin.mock/packages/requires-virtual/package.py
index a031977ae23931..9f17269416ecb7 100644
--- a/var/spack/repos/builtin.mock/packages/requires-virtual/package.py
+++ b/var/spack/repos/builtin.mock/packages/requires-virtual/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/requires_clang/package.py b/var/spack/repos/builtin.mock/packages/requires_clang/package.py
index 9f1c2d0ba488d5..72c00e6c10461d 100644
--- a/var/spack/repos/builtin.mock/packages/requires_clang/package.py
+++ b/var/spack/repos/builtin.mock/packages/requires_clang/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/requires_clang_or_gcc/package.py b/var/spack/repos/builtin.mock/packages/requires_clang_or_gcc/package.py
index 18f924e92faaea..956f025e4cf671 100644
--- a/var/spack/repos/builtin.mock/packages/requires_clang_or_gcc/package.py
+++ b/var/spack/repos/builtin.mock/packages/requires_clang_or_gcc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py b/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py
index f04dbb63d9e337..920267c136591c 100644
--- a/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py
+++ b/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/root/package.py b/var/spack/repos/builtin.mock/packages/root/package.py
index d1a8016beaa9f1..4d71a911e91343 100644
--- a/var/spack/repos/builtin.mock/packages/root/package.py
+++ b/var/spack/repos/builtin.mock/packages/root/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/shell-a/package.py b/var/spack/repos/builtin.mock/packages/shell-a/package.py
index 3ff34102bfd628..79b3a49c63cd93 100644
--- a/var/spack/repos/builtin.mock/packages/shell-a/package.py
+++ b/var/spack/repos/builtin.mock/packages/shell-a/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/shell-b/package.py b/var/spack/repos/builtin.mock/packages/shell-b/package.py
index 3db70f12189bcc..c65d7aea01efec 100644
--- a/var/spack/repos/builtin.mock/packages/shell-b/package.py
+++ b/var/spack/repos/builtin.mock/packages/shell-b/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py b/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py
index a6676ba5dc7c20..67042671bab85e 100644
--- a/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py
+++ b/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/simple-standalone-test/package.py b/var/spack/repos/builtin.mock/packages/simple-standalone-test/package.py
index 1adfb9507a72b2..a68a4ffd018a80 100644
--- a/var/spack/repos/builtin.mock/packages/simple-standalone-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/simple-standalone-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent-type/package.py b/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent-type/package.py
index 67991f3ee638b2..f10e7daf4b3c0d 100644
--- a/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent-type/package.py
+++ b/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent-type/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent/package.py b/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent/package.py
index a78c9aac172c5f..8c2d5854691d0c 100644
--- a/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent/package.py
+++ b/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py b/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py
index 9a58116f98d2c3..105611c2fc4711 100644
--- a/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py
+++ b/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/some-virtual-mv/package.py b/var/spack/repos/builtin.mock/packages/some-virtual-mv/package.py
index 33016bb815fd68..59a0b15fbf41b3 100644
--- a/var/spack/repos/builtin.mock/packages/some-virtual-mv/package.py
+++ b/var/spack/repos/builtin.mock/packages/some-virtual-mv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/some-virtual-preferred/package.py b/var/spack/repos/builtin.mock/packages/some-virtual-preferred/package.py
index 33e109fe9c25d0..4d93e03e186faa 100644
--- a/var/spack/repos/builtin.mock/packages/some-virtual-preferred/package.py
+++ b/var/spack/repos/builtin.mock/packages/some-virtual-preferred/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/splice-a/package.py b/var/spack/repos/builtin.mock/packages/splice-a/package.py
index 43ad6e343470ad..c7e0aff6e36e4f 100644
--- a/var/spack/repos/builtin.mock/packages/splice-a/package.py
+++ b/var/spack/repos/builtin.mock/packages/splice-a/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/splice-h/package.py b/var/spack/repos/builtin.mock/packages/splice-h/package.py
index 0bc30aede120b4..a54f1e7f7d683a 100644
--- a/var/spack/repos/builtin.mock/packages/splice-h/package.py
+++ b/var/spack/repos/builtin.mock/packages/splice-h/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/splice-t/package.py b/var/spack/repos/builtin.mock/packages/splice-t/package.py
index f61e985b2e3718..ac4d6a452390de 100644
--- a/var/spack/repos/builtin.mock/packages/splice-t/package.py
+++ b/var/spack/repos/builtin.mock/packages/splice-t/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/splice-vh/package.py b/var/spack/repos/builtin.mock/packages/splice-vh/package.py
index 729c541fe86334..23aed58c2f6ec2 100644
--- a/var/spack/repos/builtin.mock/packages/splice-vh/package.py
+++ b/var/spack/repos/builtin.mock/packages/splice-vh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/splice-z/package.py b/var/spack/repos/builtin.mock/packages/splice-z/package.py
index 9143050547d0e8..ff73fbaa03701e 100644
--- a/var/spack/repos/builtin.mock/packages/splice-z/package.py
+++ b/var/spack/repos/builtin.mock/packages/splice-z/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/sticky-variant-dependent/package.py b/var/spack/repos/builtin.mock/packages/sticky-variant-dependent/package.py
new file mode 100644
index 00000000000000..2036a31b2878c7
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/sticky-variant-dependent/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+from spack.package import *
+
+
+class StickyVariantDependent(AutotoolsPackage):
+ """Package with a sticky variant and a conflict"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/a-1.0.tar.gz"
+
+ version("1.0", md5="0123456789abcdef0123456789abcdef")
+
+ depends_on("sticky-variant")
+ conflicts("%gcc", when="^sticky-variant~allow-gcc")
diff --git a/var/spack/repos/builtin.mock/packages/sticky-variant/package.py b/var/spack/repos/builtin.mock/packages/sticky-variant/package.py
index 3a99e0436a552f..334b4a44bbe394 100644
--- a/var/spack/repos/builtin.mock/packages/sticky-variant/package.py
+++ b/var/spack/repos/builtin.mock/packages/sticky-variant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/svn-test/package.py b/var/spack/repos/builtin.mock/packages/svn-test/package.py
index 111217c8d77f31..d83813ef836f3f 100644
--- a/var/spack/repos/builtin.mock/packages/svn-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/svn-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/svn-top-level/package.py b/var/spack/repos/builtin.mock/packages/svn-top-level/package.py
index c913982b29839e..f6bd404efc4a0a 100644
--- a/var/spack/repos/builtin.mock/packages/svn-top-level/package.py
+++ b/var/spack/repos/builtin.mock/packages/svn-top-level/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/symly/package.py b/var/spack/repos/builtin.mock/packages/symly/package.py
index 89c9e9c4ebed90..c9ed28aa8a70f5 100644
--- a/var/spack/repos/builtin.mock/packages/symly/package.py
+++ b/var/spack/repos/builtin.mock/packages/symly/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/test-build-callbacks/package.py b/var/spack/repos/builtin.mock/packages/test-build-callbacks/package.py
index fa8e48c74569c9..1214422eb6b2b6 100644
--- a/var/spack/repos/builtin.mock/packages/test-build-callbacks/package.py
+++ b/var/spack/repos/builtin.mock/packages/test-build-callbacks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/test-dep-with-imposed-conditions/package.py b/var/spack/repos/builtin.mock/packages/test-dep-with-imposed-conditions/package.py
index aadd47e335398d..bcea98c52920ef 100644
--- a/var/spack/repos/builtin.mock/packages/test-dep-with-imposed-conditions/package.py
+++ b/var/spack/repos/builtin.mock/packages/test-dep-with-imposed-conditions/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/test-dependency/package.py b/var/spack/repos/builtin.mock/packages/test-dependency/package.py
index c6420f75fd3ad5..54f62772f64388 100644
--- a/var/spack/repos/builtin.mock/packages/test-dependency/package.py
+++ b/var/spack/repos/builtin.mock/packages/test-dependency/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/test-error/package.py b/var/spack/repos/builtin.mock/packages/test-error/package.py
index b8f37b47192daa..5974493a861dd3 100644
--- a/var/spack/repos/builtin.mock/packages/test-error/package.py
+++ b/var/spack/repos/builtin.mock/packages/test-error/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/test-fail/package.py b/var/spack/repos/builtin.mock/packages/test-fail/package.py
index 6f0416498b19ab..909af08b5977e0 100644
--- a/var/spack/repos/builtin.mock/packages/test-fail/package.py
+++ b/var/spack/repos/builtin.mock/packages/test-fail/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/test-install-callbacks/package.py b/var/spack/repos/builtin.mock/packages/test-install-callbacks/package.py
index ed318926587057..70e888936fc160 100644
--- a/var/spack/repos/builtin.mock/packages/test-install-callbacks/package.py
+++ b/var/spack/repos/builtin.mock/packages/test-install-callbacks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/transitive-conditional-virtual-dependency/package.py b/var/spack/repos/builtin.mock/packages/transitive-conditional-virtual-dependency/package.py
index 07042a9d028da2..34b2d57b3d3920 100644
--- a/var/spack/repos/builtin.mock/packages/transitive-conditional-virtual-dependency/package.py
+++ b/var/spack/repos/builtin.mock/packages/transitive-conditional-virtual-dependency/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/trigger-external-non-default-variant/package.py b/var/spack/repos/builtin.mock/packages/trigger-external-non-default-variant/package.py
index 608e5e927045b9..44ad2ee8d5e401 100644
--- a/var/spack/repos/builtin.mock/packages/trigger-external-non-default-variant/package.py
+++ b/var/spack/repos/builtin.mock/packages/trigger-external-non-default-variant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py b/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py
index 4d984d22abab27..a30521003e671a 100644
--- a/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py
+++ b/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py b/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py
index f8ab1ba7c4566f..6fabda8be7cea3 100644
--- a/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py
+++ b/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/trivial-smoke-test/package.py b/var/spack/repos/builtin.mock/packages/trivial-smoke-test/package.py
index 694d682cff4d7d..9b877c5ef4c06e 100644
--- a/var/spack/repos/builtin.mock/packages/trivial-smoke-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/trivial-smoke-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/unconstrainable-conflict/package.py b/var/spack/repos/builtin.mock/packages/unconstrainable-conflict/package.py
index 774cf39650f8d6..19be98b3a52122 100644
--- a/var/spack/repos/builtin.mock/packages/unconstrainable-conflict/package.py
+++ b/var/spack/repos/builtin.mock/packages/unconstrainable-conflict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/unsat-provider/package.py b/var/spack/repos/builtin.mock/packages/unsat-provider/package.py
index dc56b347657f48..63f58433c141a6 100644
--- a/var/spack/repos/builtin.mock/packages/unsat-provider/package.py
+++ b/var/spack/repos/builtin.mock/packages/unsat-provider/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/unsat-virtual-dependency/package.py b/var/spack/repos/builtin.mock/packages/unsat-virtual-dependency/package.py
index 84947db488c0bd..bf27f55adec7b8 100644
--- a/var/spack/repos/builtin.mock/packages/unsat-virtual-dependency/package.py
+++ b/var/spack/repos/builtin.mock/packages/unsat-virtual-dependency/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/url-list-test/package.py b/var/spack/repos/builtin.mock/packages/url-list-test/package.py
index bf9d3dfcce34af..0beae47abcb0ca 100644
--- a/var/spack/repos/builtin.mock/packages/url-list-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/url-list-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/url-only-override-with-gaps/package.py b/var/spack/repos/builtin.mock/packages/url-only-override-with-gaps/package.py
index 0e224515a77ae1..706c869522d35d 100644
--- a/var/spack/repos/builtin.mock/packages/url-only-override-with-gaps/package.py
+++ b/var/spack/repos/builtin.mock/packages/url-only-override-with-gaps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/url-only-override/package.py b/var/spack/repos/builtin.mock/packages/url-only-override/package.py
index 6f37b79e5ae100..7afc510e2718f8 100644
--- a/var/spack/repos/builtin.mock/packages/url-only-override/package.py
+++ b/var/spack/repos/builtin.mock/packages/url-only-override/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/url-test/package.py b/var/spack/repos/builtin.mock/packages/url-test/package.py
index aedf69edf414f0..5f28f283ab1229 100644
--- a/var/spack/repos/builtin.mock/packages/url-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/url-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/url_override/package.py b/var/spack/repos/builtin.mock/packages/url_override/package.py
index f8e1382fdf600c..a3ea42f6107504 100644
--- a/var/spack/repos/builtin.mock/packages/url_override/package.py
+++ b/var/spack/repos/builtin.mock/packages/url_override/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/v1-consumer/package.py b/var/spack/repos/builtin.mock/packages/v1-consumer/package.py
index cdf23e0ee54b55..fa4bbb8556debe 100644
--- a/var/spack/repos/builtin.mock/packages/v1-consumer/package.py
+++ b/var/spack/repos/builtin.mock/packages/v1-consumer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/v1-provider/package.py b/var/spack/repos/builtin.mock/packages/v1-provider/package.py
index 1aad92bd838ca0..35c5e369d31d65 100644
--- a/var/spack/repos/builtin.mock/packages/v1-provider/package.py
+++ b/var/spack/repos/builtin.mock/packages/v1-provider/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-a/package.py b/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-a/package.py
index 556a2d0c1e85fd..de50002ba7dbd4 100644
--- a/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-a/package.py
+++ b/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-a/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-b/package.py b/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-b/package.py
index 1d5c84148c05ff..31120ef3ae4b8e 100644
--- a/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-b/package.py
+++ b/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-b/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-root/package.py b/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-root/package.py
index a573064cc657f6..8ba874292f6464 100644
--- a/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-root/package.py
+++ b/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-root/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/vdefault-or-external-root/package.py b/var/spack/repos/builtin.mock/packages/vdefault-or-external-root/package.py
index 1bb50388b2faff..fc85c778c33891 100644
--- a/var/spack/repos/builtin.mock/packages/vdefault-or-external-root/package.py
+++ b/var/spack/repos/builtin.mock/packages/vdefault-or-external-root/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/vdefault-or-external/package.py b/var/spack/repos/builtin.mock/packages/vdefault-or-external/package.py
index 74c35eb4bc38ad..20954d90fbfcef 100644
--- a/var/spack/repos/builtin.mock/packages/vdefault-or-external/package.py
+++ b/var/spack/repos/builtin.mock/packages/vdefault-or-external/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/vendorsb/package.py b/var/spack/repos/builtin.mock/packages/vendorsb/package.py
index fbf14236a10be2..ebf9c92e5590eb 100644
--- a/var/spack/repos/builtin.mock/packages/vendorsb/package.py
+++ b/var/spack/repos/builtin.mock/packages/vendorsb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/version-test-dependency-preferred/package.py b/var/spack/repos/builtin.mock/packages/version-test-dependency-preferred/package.py
index 8861bdd55a4a1c..d3562310ef70ca 100644
--- a/var/spack/repos/builtin.mock/packages/version-test-dependency-preferred/package.py
+++ b/var/spack/repos/builtin.mock/packages/version-test-dependency-preferred/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/version-test-pkg/package.py b/var/spack/repos/builtin.mock/packages/version-test-pkg/package.py
index d5d12ab570d358..fb2ce0a26497eb 100644
--- a/var/spack/repos/builtin.mock/packages/version-test-pkg/package.py
+++ b/var/spack/repos/builtin.mock/packages/version-test-pkg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/version-test-root/package.py b/var/spack/repos/builtin.mock/packages/version-test-root/package.py
index 941348ad7d3e62..2eed9200c1cefb 100644
--- a/var/spack/repos/builtin.mock/packages/version-test-root/package.py
+++ b/var/spack/repos/builtin.mock/packages/version-test-root/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/view-dir-dir/package.py b/var/spack/repos/builtin.mock/packages/view-dir-dir/package.py
index 38b4b71b2f2db9..545735cec52684 100644
--- a/var/spack/repos/builtin.mock/packages/view-dir-dir/package.py
+++ b/var/spack/repos/builtin.mock/packages/view-dir-dir/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/view-dir-file/package.py b/var/spack/repos/builtin.mock/packages/view-dir-file/package.py
index 737b4f839712f6..55e94ac4981f50 100644
--- a/var/spack/repos/builtin.mock/packages/view-dir-file/package.py
+++ b/var/spack/repos/builtin.mock/packages/view-dir-file/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/view-dir-symlinked-dir/package.py b/var/spack/repos/builtin.mock/packages/view-dir-symlinked-dir/package.py
index a3ab6c699d9c11..249e7766061fca 100644
--- a/var/spack/repos/builtin.mock/packages/view-dir-symlinked-dir/package.py
+++ b/var/spack/repos/builtin.mock/packages/view-dir-symlinked-dir/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/view-not-ignored/package.py b/var/spack/repos/builtin.mock/packages/view-not-ignored/package.py
index afe43c422b2745..8b60b5021b8586 100644
--- a/var/spack/repos/builtin.mock/packages/view-not-ignored/package.py
+++ b/var/spack/repos/builtin.mock/packages/view-not-ignored/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/virtual-with-versions/package.py b/var/spack/repos/builtin.mock/packages/virtual-with-versions/package.py
index 3ab20787a27429..5f8bf744f823c4 100644
--- a/var/spack/repos/builtin.mock/packages/virtual-with-versions/package.py
+++ b/var/spack/repos/builtin.mock/packages/virtual-with-versions/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/vtk-m/package.py b/var/spack/repos/builtin.mock/packages/vtk-m/package.py
index 9c1eadf4c666d8..2677ec45618ed5 100644
--- a/var/spack/repos/builtin.mock/packages/vtk-m/package.py
+++ b/var/spack/repos/builtin.mock/packages/vtk-m/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/when-directives-false/package.py b/var/spack/repos/builtin.mock/packages/when-directives-false/package.py
index 94ec3f7e3080f2..d29d9d83a7b605 100644
--- a/var/spack/repos/builtin.mock/packages/when-directives-false/package.py
+++ b/var/spack/repos/builtin.mock/packages/when-directives-false/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/when-directives-true/package.py b/var/spack/repos/builtin.mock/packages/when-directives-true/package.py
index 7aa0047e2c8295..3681b02687ef57 100644
--- a/var/spack/repos/builtin.mock/packages/when-directives-true/package.py
+++ b/var/spack/repos/builtin.mock/packages/when-directives-true/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/with-constraint-met/package.py b/var/spack/repos/builtin.mock/packages/with-constraint-met/package.py
index cf431ae5ec24cd..a4f6e916bb2dbd 100644
--- a/var/spack/repos/builtin.mock/packages/with-constraint-met/package.py
+++ b/var/spack/repos/builtin.mock/packages/with-constraint-met/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/wrong-variant-in-conflicts/package.py b/var/spack/repos/builtin.mock/packages/wrong-variant-in-conflicts/package.py
index 1b88078ea95a60..00907f93256de9 100644
--- a/var/spack/repos/builtin.mock/packages/wrong-variant-in-conflicts/package.py
+++ b/var/spack/repos/builtin.mock/packages/wrong-variant-in-conflicts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/wrong-variant-in-depends-on/package.py b/var/spack/repos/builtin.mock/packages/wrong-variant-in-depends-on/package.py
index 8cb8b61508c66e..cef5aafe472b5f 100644
--- a/var/spack/repos/builtin.mock/packages/wrong-variant-in-depends-on/package.py
+++ b/var/spack/repos/builtin.mock/packages/wrong-variant-in-depends-on/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/zlib/package.py b/var/spack/repos/builtin.mock/packages/zlib/package.py
index fa45ad87e45ed7..30bec012543f71 100644
--- a/var/spack/repos/builtin.mock/packages/zlib/package.py
+++ b/var/spack/repos/builtin.mock/packages/zlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin.mock/packages/zmpi/package.py b/var/spack/repos/builtin.mock/packages/zmpi/package.py
index 1e27b35c29a940..0a71e47038e2a9 100644
--- a/var/spack/repos/builtin.mock/packages/zmpi/package.py
+++ b/var/spack/repos/builtin.mock/packages/zmpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/3dtk/package.py b/var/spack/repos/builtin/packages/3dtk/package.py
index a3bac5bb6771b3..d606757286b663 100644
--- a/var/spack/repos/builtin/packages/3dtk/package.py
+++ b/var/spack/repos/builtin/packages/3dtk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/3proxy/package.py b/var/spack/repos/builtin/packages/3proxy/package.py
index 78e52895145b65..ed6f19609493f1 100644
--- a/var/spack/repos/builtin/packages/3proxy/package.py
+++ b/var/spack/repos/builtin/packages/3proxy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/7zip/package.py b/var/spack/repos/builtin/packages/7zip/package.py
index 123e233ab188d2..d404510a3f9297 100644
--- a/var/spack/repos/builtin/packages/7zip/package.py
+++ b/var/spack/repos/builtin/packages/7zip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class _7zip(SourceforgePackage, Package):
executables = ["7z"]
+ license("LGPL-2.0-only")
+
version("21.07", sha256="213d594407cb8efcba36610b152ca4921eda14163310b43903d13e68313e1e39")
variant(
diff --git a/var/spack/repos/builtin/packages/abacus/package.py b/var/spack/repos/builtin/packages/abacus/package.py
index ccf89f82b8db66..68cfbfea75ff49 100644
--- a/var/spack/repos/builtin/packages/abacus/package.py
+++ b/var/spack/repos/builtin/packages/abacus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Abacus(MakefilePackage):
git = "https://github.com/abacusmodeling/abacus-develop.git"
url = "https://github.com/abacusmodeling/abacus-develop/archive/refs/tags/v2.2.1.tar.gz"
+ license("LGPL-3.0-or-later")
+
version("develop", branch="develop")
version("2.2.3", sha256="88dbf6a3bdd907df3e097637ec8e51fde13e2f5e0b44f3667443195481320edf")
version("2.2.2", sha256="4a7cf2ec6e43dd5c53d5f877a941367074f4714d93c1977a719782957916169e")
diff --git a/var/spack/repos/builtin/packages/abduco/package.py b/var/spack/repos/builtin/packages/abduco/package.py
index 9c3ea0c4487961..21a075e0f513e8 100644
--- a/var/spack/repos/builtin/packages/abduco/package.py
+++ b/var/spack/repos/builtin/packages/abduco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Abduco(MakefilePackage):
homepage = "https://github.com/martanne/abduco"
url = "https://github.com/martanne/abduco/archive/v0.6.tar.gz"
+ license("ISC")
+
version("0.6", sha256="647d0381418f43a38f861d151b0efb2e3458ec651914e7d477956768b0af9bb7")
version("0.5", sha256="bf22226a4488355a7001a5dabbd1e8e3b7e7645efd1519274b956fcb8bcff086")
version("0.4", sha256="bda3729df116ce41f9a087188d71d934da2693ffb1ebcf33b803055eb478bcbb")
diff --git a/var/spack/repos/builtin/packages/abi-compliance-checker/package.py b/var/spack/repos/builtin/packages/abi-compliance-checker/package.py
index 6f575badd208dc..ef2f01b4297197 100644
--- a/var/spack/repos/builtin/packages/abi-compliance-checker/package.py
+++ b/var/spack/repos/builtin/packages/abi-compliance-checker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class AbiComplianceChecker(MakefilePackage):
homepage = "https://github.com/lvc/abi-compliance-checker"
url = "https://github.com/lvc/abi-compliance-checker/archive/2.3.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("2.3", sha256="b1e32a484211ec05d7f265ab4d2c1c52dcdb610708cb3f74d8aaeb7fe9685d64")
version("2.2", sha256="9fb7b17e33d49e301d02a6374fbd2596feb53ecc77194879a4e1c2d1e24b4ddb")
version("2.1", sha256="0e19ea16b6c6aa6c7b222063127427bef3b835adbbd9e6606a972a912599d014")
diff --git a/var/spack/repos/builtin/packages/abi-dumper/package.py b/var/spack/repos/builtin/packages/abi-dumper/package.py
index 584eed3664cdd0..a462a3678181ce 100644
--- a/var/spack/repos/builtin/packages/abi-dumper/package.py
+++ b/var/spack/repos/builtin/packages/abi-dumper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class AbiDumper(Package):
homepage = "https://github.com/lvc/abi-dumper"
url = "https://github.com/lvc/abi-dumper/archive/1.2.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("1.2", sha256="8a9858c91b4e9222c89b676d59422053ad560fa005a39443053568049bd4d27e")
version("1.1", sha256="ef63201368e0d76a29d2f7aed98c488f6fb71898126762d65baed1e762988083")
version("1.0", sha256="bfa0189a172fa788afc603b1ae675808a57556a77a008e4af8f643d396c34bbb")
diff --git a/var/spack/repos/builtin/packages/abinit/package.py b/var/spack/repos/builtin/packages/abinit/package.py
index 9f0938daf1433b..37ff8afb9c0074 100644
--- a/var/spack/repos/builtin/packages/abinit/package.py
+++ b/var/spack/repos/builtin/packages/abinit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -27,6 +27,10 @@ class Abinit(AutotoolsPackage):
homepage = "https://www.abinit.org/"
url = "https://www.abinit.org/sites/default/files/packages/abinit-8.6.3.tar.gz"
+ license("Apache-2.0")
+
+ maintainers("downloadico")
+ version("9.10.3", sha256="3f2a9aebbf1fee9855a09dd687f88d2317b8b8e04f97b2628ab96fb898dce49b")
version("9.8.4", sha256="a086d5045f0093b432e6a044d5f71f7edf5a41a62d67b3677cb0751d330c564a")
version("9.8.3", sha256="de823878aea2c20098f177524fbb4b60de9b1b5971b2e835ec244dfa3724589b")
version("9.6.1", sha256="b6a12760fd728eb4aacca431ae12150609565bedbaa89763f219fcd869f79ac6")
@@ -143,19 +147,27 @@ def configure_args(self):
oapp(f"--with-optim-flavor={self.spec.variants['optimization-flavor'].value}")
if "+wannier90" in spec:
- if "@:8" in spec:
+ if spec.satisfies("@:8"):
oapp(f"--with-wannier90-libs=-L{spec['wannier90'].prefix.lib} -lwannier -lm")
oapp(f"--with-wannier90-incs=-I{spec['wannier90'].prefix.modules}")
oapp(f"--with-wannier90-bins={spec['wannier90'].prefix.bin}")
oapp("--enable-connectors")
oapp("--with-dft-flavor=atompaw+libxc+wannier90")
- else:
+ elif spec.satisfies("@:9.8"):
options.extend(
[
f"WANNIER90_CPPFLAGS=-I{spec['wannier90'].prefix.modules}",
f"WANNIER90_LIBS=-L{spec['wannier90'].prefix.lib} -lwannier",
]
)
+ else:
+ options.extend(
+ [
+ f"WANNIER90_CPPFLAGS=-I{spec['wannier90'].prefix.modules}",
+ f"WANNIER90_LIBS=-L{spec['wannier90'].prefix.lib}",
+ "WANNIER90_LDFLAGS=-lwannier",
+ ]
+ )
else:
if "@:9.8" in spec:
oapp(f"--with-fftw={spec['fftw-api'].prefix}")
@@ -169,7 +181,10 @@ def configure_args(self):
if "+mpi" in spec:
oapp(f"CC={spec['mpi'].mpicc}")
oapp(f"CXX={spec['mpi'].mpicxx}")
- oapp(f"FC={spec['mpi'].mpifc}")
+ if spec.satisfies("@9.8:"):
+ oapp(f"F90={spec['mpi'].mpifc}")
+ else:
+ oapp(f"FC={spec['mpi'].mpifc}")
# MPI version:
# let the configure script auto-detect MPI support from mpi_prefix
diff --git a/var/spack/repos/builtin/packages/abseil-cpp/package.py b/var/spack/repos/builtin/packages/abseil-cpp/package.py
index a6b69015f8d9f2..1bc0955a0f0817 100644
--- a/var/spack/repos/builtin/packages/abseil-cpp/package.py
+++ b/var/spack/repos/builtin/packages/abseil-cpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,11 @@ class AbseilCpp(CMakePackage):
maintainers("jcftang")
tags = ["windows"]
+ license("Apache-2.0")
+
+ version(
+ "20230802.1", sha256="987ce98f02eefbaf930d6e38ab16aa05737234d7afbab2d5c4ea7adbe50c28ed"
+ )
version(
"20230125.3", sha256="5366d7e7fa7ba0d915014d387b66d0d002c03236448e1ba9ef98122c13b35c36"
)
diff --git a/var/spack/repos/builtin/packages/abyss/package.py b/var/spack/repos/builtin/packages/abyss/package.py
index 1cb46a8957eed1..ec7af42fada492 100644
--- a/var/spack/repos/builtin/packages/abyss/package.py
+++ b/var/spack/repos/builtin/packages/abyss/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/accfft/package.py b/var/spack/repos/builtin/packages/accfft/package.py
index eb99aec48492d9..d3a4b91c035239 100644
--- a/var/spack/repos/builtin/packages/accfft/package.py
+++ b/var/spack/repos/builtin/packages/accfft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Accfft(CMakePackage, CudaPackage):
homepage = "http://accfft.org"
git = "https://github.com/amirgholami/accfft.git"
+ license("GPL-2.0-only")
+
version("develop", branch="master")
variant("pnetcdf", default=True, description="Add support for parallel NetCDF")
diff --git a/var/spack/repos/builtin/packages/acct/package.py b/var/spack/repos/builtin/packages/acct/package.py
index b9a77e270d2d0a..2f0181bd085114 100644
--- a/var/spack/repos/builtin/packages/acct/package.py
+++ b/var/spack/repos/builtin/packages/acct/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Acct(AutotoolsPackage):
homepage = "https://www.gnu.org/software/acct"
url = "https://ftp.gnu.org/gnu/acct/acct-6.6.4.tar.gz"
+ license("GPL-3.0-or-later")
+
version("6.6.4", sha256="4c15bf2b58b16378bcc83f70e77d4d40ab0b194acf2ebeefdb507f151faa663f")
version("6.6.3", sha256="5eae79323bf1ce403704d2b70483c46e7c853276ee7b5ad561ec3ccae9fca093")
version("6.6.2", sha256="8ed47b2f893b08f0d67720880adbb48b835a826c314fa52fd52af1cee6870101")
diff --git a/var/spack/repos/builtin/packages/accumulo/package.py b/var/spack/repos/builtin/packages/accumulo/package.py
index 85c4eb82033baa..dea471e673d70c 100644
--- a/var/spack/repos/builtin/packages/accumulo/package.py
+++ b/var/spack/repos/builtin/packages/accumulo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Accumulo(MavenPackage):
homepage = "https://accumulo.apache.org/"
url = "https://github.com/apache/accumulo/archive/rel/2.0.1.tar.gz"
+ license("Apache-2.0")
+
version("2.0.1", sha256="2756ac14e850b30ad9bd1043418d621b93307d083f84904cd8fac5c8beec751b")
version("2.0.0", sha256="2564056dc24398aa464763c21bae10ef09356fe3261600d27744071cf965c265")
version("1.9.3", sha256="d9548d5b9cf9f494f027f0fe59d5d6d45d09064359d7761cade62991ce2a5d0c")
diff --git a/var/spack/repos/builtin/packages/ace/package.py b/var/spack/repos/builtin/packages/ace/package.py
index afd164fc31527c..3ca7cbf6d140d1 100644
--- a/var/spack/repos/builtin/packages/ace/package.py
+++ b/var/spack/repos/builtin/packages/ace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Ace(MakefilePackage):
homepage = "https://www.dre.vanderbilt.edu/~schmidt/ACE.html"
url = "https://download.dre.vanderbilt.edu/previous_versions/ACE-6.5.1.tar.gz"
+ license("DOC")
+
version("7.1.0", sha256="d78d9f3f2dee6ccb46a8c296367369349054fd475dff3c5b36e2dff3dee0bf8f")
version("6.5.12", sha256="de96c68a6262d6b9ba76b5057c02c7e6964c070b1328a63bf70259e9530a7996")
version("6.5.6", sha256="7717cad84d4a9c3d6b2c47963eb555d96de0be657870bcab6fcef4c0423af0de")
diff --git a/var/spack/repos/builtin/packages/acfl/package.py b/var/spack/repos/builtin/packages/acfl/package.py
index bbe476a0198770..fefab9b5742275 100644
--- a/var/spack/repos/builtin/packages/acfl/package.py
+++ b/var/spack/repos/builtin/packages/acfl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ack/package.py b/var/spack/repos/builtin/packages/ack/package.py
index 320f9e818cc60a..0dc6d399d97b5d 100644
--- a/var/spack/repos/builtin/packages/ack/package.py
+++ b/var/spack/repos/builtin/packages/ack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Ack(Package):
homepage = "https://beyondgrep.com/"
url = "https://beyondgrep.com/ack-2.14-single-file"
+ license("Artistic-2.0")
+
version(
"2.22",
sha256="fd0617585b88517a3d41d3d206c1dc38058c57b90dfd88c278049a41aeb5be38",
diff --git a/var/spack/repos/builtin/packages/acl/package.py b/var/spack/repos/builtin/packages/acl/package.py
index 1dbb16dfbafc48..ba30afbf22548a 100644
--- a/var/spack/repos/builtin/packages/acl/package.py
+++ b/var/spack/repos/builtin/packages/acl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Acl(AutotoolsPackage):
homepage = "https://savannah.nongnu.org/projects/acl"
url = "https://git.savannah.nongnu.org/cgit/acl.git/snapshot/acl-2.2.53.tar.gz"
+ license("LGPL-2.1-or-later AND GPL-2.0-or-later", checked_by="tgamblin")
+
version("2.2.53", sha256="9e905397ac10d06768c63edd0579c34b8431555f2ea8e8f2cee337b31f856805")
version("2.2.52", sha256="f3f31d2229c903184ff877aa0ee658b87ec20fec8aebb51e65eaa68d7b24e629")
version("2.2.51", sha256="31a43d96a274a39bfcb805fb903d45840515344884d224cef166b482693a9f48")
diff --git a/var/spack/repos/builtin/packages/acpica-tools/package.py b/var/spack/repos/builtin/packages/acpica-tools/package.py
index c9d063a5a975f1..5c0dc148470de1 100644
--- a/var/spack/repos/builtin/packages/acpica-tools/package.py
+++ b/var/spack/repos/builtin/packages/acpica-tools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/acpid/package.py b/var/spack/repos/builtin/packages/acpid/package.py
index 7b73b2fe8f0d53..00af2a543ee051 100644
--- a/var/spack/repos/builtin/packages/acpid/package.py
+++ b/var/spack/repos/builtin/packages/acpid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Acpid(AutotoolsPackage):
homepage = "http://www.tedfelix.com"
url = "https://github.com/Distrotech/acpid/archive/2.0.28.tar.gz"
+ license("GPL-2.0-or-later")
+
version("2.0.28", sha256="cb5709b96f85e1bfee7a3fc17e56bef7244caa1b0ad762a4813fe731ef3c8438")
version("2.0.27", sha256="da4691f408d9ef201937eaab7c894072ee8aa0ba35794f2388b606b3208fab07")
version("2.0.26", sha256="ac7238dc5ecc9a915e95d5b54be12b6221d0a0ad09109f9024e50946ecd3c602")
diff --git a/var/spack/repos/builtin/packages/activeharmony/package.py b/var/spack/repos/builtin/packages/activeharmony/package.py
index 62af3515b9051c..caaaafa58534e8 100644
--- a/var/spack/repos/builtin/packages/activeharmony/package.py
+++ b/var/spack/repos/builtin/packages/activeharmony/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Activeharmony(MakefilePackage):
homepage = "https://www.dyninst.org/harmony"
url = "https://www.dyninst.org/sites/default/files/downloads/harmony/ah-4.5.tar.gz"
+ license("LGPL-3.0-only")
+
version("4.6.0", sha256="9ce5009cfd8e2f4cf5f3536e1fea9993414fc25920fc90d0a2cb56f044787dbb")
version("4.5", sha256="31d9990c8dd36724d336707d260aa4d976e11eaa899c4c7cc11f80a56cdac684")
diff --git a/var/spack/repos/builtin/packages/activemq/package.py b/var/spack/repos/builtin/packages/activemq/package.py
index 68d856f1997f38..7b1add648ad08c 100644
--- a/var/spack/repos/builtin/packages/activemq/package.py
+++ b/var/spack/repos/builtin/packages/activemq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Activemq(Package):
homepage = "https://archive.apache.org/dist/activemq"
url = "https://archive.apache.org/dist/activemq/5.14.0/apache-activemq-5.14.0-bin.tar.gz"
+ license("Apache-2.0")
+
version("5.17.3", sha256="a4cc4c3a2f136707c2c696f3bb3ee2a86dbeff1b9eb5e237b14edc0c5e5a328f")
# https://nvd.nist.gov/vuln/detail/CVE-2018-11775
diff --git a/var/spack/repos/builtin/packages/acts-dd4hep/package.py b/var/spack/repos/builtin/packages/acts-dd4hep/package.py
index d782160d43720a..5aa29c7c20c0b1 100644
--- a/var/spack/repos/builtin/packages/acts-dd4hep/package.py
+++ b/var/spack/repos/builtin/packages/acts-dd4hep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/acts/package.py b/var/spack/repos/builtin/packages/acts/package.py
index f474b92cc98c99..9e51a1806ccf0b 100644
--- a/var/spack/repos/builtin/packages/acts/package.py
+++ b/var/spack/repos/builtin/packages/acts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -37,9 +37,15 @@ class Acts(CMakePackage, CudaPackage):
tags = ["hep"]
+ license("MPL-2.0")
+
# Supported Acts versions
version("main", branch="main")
version("master", branch="main", deprecated=True) # For compatibility
+ version("32.0.0", commit="9385e36691bb2687437c39ad02ddb2ac21acccdc", submodules=True)
+ version("31.2.0", commit="1d2e90f534ff2c9bf1c40914980b426f4b5d3096", submodules=True)
+ version("31.1.0", commit="95c3ceef79a7b68fcfc7fd558c3134d0c7529dac", submodules=True)
+ version("31.0.0", commit="2cf3fe0254d2bf9434899fdcfbe316366a970956", submodules=True)
version("30.3.2", commit="76826f208f5929d8326798c87263f2563d0ae7e9", submodules=True)
version("30.3.1", commit="bbee459dd93855417d5717d53cbbb2bace7de2bb", submodules=True)
version("30.3.0", commit="311acb9ab41c2d79a4b90b193e5b25297182d670", submodules=True)
@@ -223,7 +229,7 @@ class Acts(CMakePackage, CudaPackage):
variant("identification", default=False, description="Build the Identification plugin")
variant("json", default=False, description="Build the Json plugin")
variant("legacy", default=False, description="Build the Legacy package")
- variant("mlpack", default=False, description="Build MLpack plugin", when="@25:")
+ variant("mlpack", default=False, description="Build MLpack plugin", when="@25:31")
variant("onnx", default=False, description="Build ONNX plugin")
variant("odd", default=False, description="Build the Open Data Detector", when="@19.1:")
variant("podio", default=False, description="Build Podio plugin", when="@30.3:")
@@ -287,12 +293,14 @@ class Acts(CMakePackage, CudaPackage):
# Build dependencies
depends_on("acts-dd4hep", when="@19 +dd4hep")
- depends_on("actsvg@0.4.20:", when="@20.1: +svg")
- depends_on("actsvg@0.4.28:", when="@23.2: +svg")
- depends_on("actsvg@0.4.29:", when="@23.4: +svg")
- depends_on("actsvg@0.4.30:", when="@23.5: +svg")
- depends_on("actsvg@0.4.33:", when="@25:27 +svg")
- depends_on("actsvg@0.4.35:", when="@28: +svg")
+ with when("+svg"):
+ depends_on("actsvg@0.4.20:", when="@20.1:")
+ depends_on("actsvg@0.4.28:", when="@23.2:")
+ depends_on("actsvg@0.4.29:", when="@23.4:")
+ depends_on("actsvg@0.4.30:", when="@23.5:")
+ depends_on("actsvg@0.4.33:", when="@25:27")
+ depends_on("actsvg@0.4.35:", when="@28:")
+ depends_on("actsvg@0.4.39:", when="@32:")
depends_on("autodiff @0.6:", when="@17: +autodiff")
depends_on("autodiff @0.5.11:0.5.99", when="@1.2:16 +autodiff")
depends_on("boost @1.62:1.69 +program_options +test", when="@:0.10.3")
@@ -453,10 +461,6 @@ def plugin_cmake_variant(plugin_name, spack_variant):
if cuda_arch != "none":
args.append(f"-DCUDA_FLAGS=-arch=sm_{cuda_arch[0]}")
- if "+python" in spec:
- python = spec["python"].command.path
- args.append(f"-DPython_EXECUTABLE={python}")
-
args.append(self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"))
return args
diff --git a/var/spack/repos/builtin/packages/actsvg/package.py b/var/spack/repos/builtin/packages/actsvg/package.py
index ccf603ed13ea64..78eaa5597aeb73 100644
--- a/var/spack/repos/builtin/packages/actsvg/package.py
+++ b/var/spack/repos/builtin/packages/actsvg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,9 @@ class Actsvg(CMakePackage):
maintainers("HadrienG2", "wdconinc")
+ license("MPL-2.0")
+
+ version("0.4.39", sha256="2d9605ecf8c9975d600cafb6d076969d77c634fa92844bd9586c38066da31739")
version("0.4.35", sha256="693a4cc0e702842072a478c913895ed3596350ffdfa87f5d296ddd6ea36b61c6")
version("0.4.33", sha256="25c93b8382bdb1864b4d8de64b146fe8ea86eec84048d594c375700d2fff1d1d")
version("0.4.30", sha256="f7ffea39b3132914fcbb0fac6ab7395bef295cd6078dfd1c2509fd2d9aab0acb")
@@ -28,6 +31,9 @@ class Actsvg(CMakePackage):
variant("examples", default=False, description="Build the example applications")
variant("meta", default=True, description="Build the meta level interface")
+ variant(
+ "web", default=True, when="@0.4.36:", description="Build the webpage builder interface"
+ )
depends_on("boost +program_options", type="test")
depends_on("boost +program_options", when="+examples")
@@ -37,6 +43,7 @@ def cmake_args(self):
args = [
self.define_from_variant("ACTSVG_BUILD_EXAMPLES", "examples"),
self.define_from_variant("ACTSVG_BUILD_META", "meta"),
+ self.define_from_variant("ACTSVG_BUILD_WEB", "web"),
self.define("ACTSVG_BUILD_TESTING", self.run_tests),
]
return args
diff --git a/var/spack/repos/builtin/packages/additivefoam/package.py b/var/spack/repos/builtin/packages/additivefoam/package.py
index 3141c4b6ee8a8b..7e7d3735ef6b43 100644
--- a/var/spack/repos/builtin/packages/additivefoam/package.py
+++ b/var/spack/repos/builtin/packages/additivefoam/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Additivefoam(Package):
tags = ["ecp"]
+ license("GPL-3.0-only")
+
version("main", branch="main")
version("1.0.0", sha256="abbdf1b0230cd2f26f526be76e973f508978611f404fe8ec4ecdd7d5df88724c")
diff --git a/var/spack/repos/builtin/packages/addrwatch/package.py b/var/spack/repos/builtin/packages/addrwatch/package.py
index 82711722ee347a..e04575b2e2a4f7 100644
--- a/var/spack/repos/builtin/packages/addrwatch/package.py
+++ b/var/spack/repos/builtin/packages/addrwatch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Addrwatch(AutotoolsPackage):
homepage = "https://github.com/fln/addrwatch"
url = "https://github.com/fln/addrwatch/releases/download/v1.0.2/addrwatch-1.0.2.tar.gz"
+ license("GPL-3.0-or-later")
+
version("1.0.2", sha256="f04e143da881cd63c299125b592cfb85e4812abbd146f419a1894c00f2ae6208")
version("1.0.1", sha256="f772b62b1c6570b577473e7c98614dad1124352b377324cbebb36360d8f4ce5a")
diff --git a/var/spack/repos/builtin/packages/adept-utils/package.py b/var/spack/repos/builtin/packages/adept-utils/package.py
index c836e21c5045fa..5a542e3ab81d73 100644
--- a/var/spack/repos/builtin/packages/adept-utils/package.py
+++ b/var/spack/repos/builtin/packages/adept-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/adf/package.py b/var/spack/repos/builtin/packages/adf/package.py
index 244087f1116027..c95ca95fa528df 100644
--- a/var/spack/repos/builtin/packages/adf/package.py
+++ b/var/spack/repos/builtin/packages/adf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/adiak/package.py b/var/spack/repos/builtin/packages/adiak/package.py
index 05f936e3f92c5a..c9640c586e6e95 100644
--- a/var/spack/repos/builtin/packages/adiak/package.py
+++ b/var/spack/repos/builtin/packages/adiak/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,9 +19,12 @@ class Adiak(CMakePackage):
variant("mpi", default=True, description="Build with MPI support")
variant("shared", default=True, description="Build dynamic libraries")
+ license("MIT")
+
version(
- "0.2.2", commit="3aedd494c81c01df1183af28bc09bade2fabfcd3", submodules=True, preferred=True
+ "0.4.0", commit="7e8b7233f8a148b402128ed46b2f0c643e3b397e", submodules=True, preferred=True
)
+ version("0.2.2", commit="3aedd494c81c01df1183af28bc09bade2fabfcd3", submodules=True)
version(
"0.3.0-alpha",
commit="054d2693a977ed0e1f16c665b4966bb90924779e",
diff --git a/var/spack/repos/builtin/packages/adios/package.py b/var/spack/repos/builtin/packages/adios/package.py
index 86bc26e89e9046..3b5e3bcbe19072 100644
--- a/var/spack/repos/builtin/packages/adios/package.py
+++ b/var/spack/repos/builtin/packages/adios/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/adios2/2.7.1-fix-broken-endian-reverse-compile.patch b/var/spack/repos/builtin/packages/adios2/2.7.1-fix-broken-endian-reverse-compile.patch
new file mode 100644
index 00000000000000..01586c734a0c67
--- /dev/null
+++ b/var/spack/repos/builtin/packages/adios2/2.7.1-fix-broken-endian-reverse-compile.patch
@@ -0,0 +1,23 @@
+From 5aed0d5c3ecb7afbd56a786243b2bc8811e0fbdd Mon Sep 17 00:00:00 2001
+From: Axel Huebl
+Date: Fri, 14 May 2021 18:22:19 -0700
+Subject: [PATCH] Fix Broken Endinage Reverse Compile
+
+Add right type in comparison.
+---
+ source/adios2/helper/adiosMemory.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/source/adios2/helper/adiosMemory.cpp b/source/adios2/helper/adiosMemory.cpp
+index c3a4246a91..3bf8c89adc 100644
+--- a/source/adios2/helper/adiosMemory.cpp
++++ b/source/adios2/helper/adiosMemory.cpp
+@@ -29,7 +29,7 @@ void CopyPayloadStride(const char *src, const size_t payloadStride, char *dest,
+ #ifdef ADIOS2_HAVE_ENDIAN_REVERSE
+ if (endianReverse)
+ {
+- if (destType == "")
++ if (destType == DataType::None)
+ {
+ }
+ #define declare_type(T) \
diff --git a/var/spack/repos/builtin/packages/adios2/package.py b/var/spack/repos/builtin/packages/adios2/package.py
index 4a038ddcacafc5..2f70cd0582c624 100644
--- a/var/spack/repos/builtin/packages/adios2/package.py
+++ b/var/spack/repos/builtin/packages/adios2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -22,7 +22,12 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage):
tags = ["e4s"]
+ license("Apache-2.0")
+
version("master", branch="master")
+ version(
+ "2.10.0-rc1", sha256="8b72142bd5aabfb80c7963f524df11b8721c09ef20caea6df5fb00c31a7747c0"
+ )
version(
"2.9.2",
sha256="78309297c82a95ee38ed3224c98b93d330128c753a43893f63bbe969320e4979",
@@ -212,6 +217,10 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage):
sha256="8221073d1b2f8944395a88a5d60a15c7370646b62f5fc6309867bbb6a8c2096c",
)
+ # Fix mismatched datatypes in comparison
+ # See https://github.com/ornladios/ADIOS2/pull/2701
+ patch("2.7.1-fix-broken-endian-reverse-compile.patch", when="@2.7.1")
+
# cmake: find threads package first
# https://github.com/ornladios/ADIOS2/pull/3893
patch("2.9.2-cmake-find-threads-package-first.patch", when="@2.9.2:")
@@ -283,10 +292,6 @@ def cmake_args(self):
if "%fj" in spec:
args.extend(["-DCMAKE_Fortran_SUBMODULE_EXT=.smod", "-DCMAKE_Fortran_SUBMODULE_SEP=."])
- if "+python" in spec or self.run_tests:
- args.append(f"-DPYTHON_EXECUTABLE:FILEPATH={spec['python'].command.path}")
- args.append(f"-DPython_EXECUTABLE:FILEPATH={spec['python'].command.path}")
-
# hip support
if "+cuda" in spec:
args.append(self.builder.define_cuda_architectures(self))
diff --git a/var/spack/repos/builtin/packages/adlbx/package.py b/var/spack/repos/builtin/packages/adlbx/package.py
index dcc87b6d1adc83..8e8bddbfd80793 100644
--- a/var/spack/repos/builtin/packages/adlbx/package.py
+++ b/var/spack/repos/builtin/packages/adlbx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/admixtools/package.py b/var/spack/repos/builtin/packages/admixtools/package.py
index f0461d8c3487cc..434ee26ecf3f35 100644
--- a/var/spack/repos/builtin/packages/admixtools/package.py
+++ b/var/spack/repos/builtin/packages/admixtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/adms/package.py b/var/spack/repos/builtin/packages/adms/package.py
index 3da07c53a884cc..fac47fa602c0eb 100644
--- a/var/spack/repos/builtin/packages/adms/package.py
+++ b/var/spack/repos/builtin/packages/adms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Adms(AutotoolsPackage):
maintainers("cessenat")
+ license("GPL-3.0-only")
+
version("master", branch="master")
version("2.3.7", sha256="3a78e1283ecdc3f356410474b3ff44c4dcc82cb89772087fd3bbde8a1038ce08")
diff --git a/var/spack/repos/builtin/packages/adol-c/package.py b/var/spack/repos/builtin/packages/adol-c/package.py
index 475edbd088e715..749adc5e3ed98e 100644
--- a/var/spack/repos/builtin/packages/adol-c/package.py
+++ b/var/spack/repos/builtin/packages/adol-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class AdolC(AutotoolsPackage):
git = "https://github.com/coin-or/ADOL-C.git"
maintainers("jppelteret")
+ license("EPL-1.0")
+
version("master", branch="master")
version("2.7.2", sha256="701e0856baae91b98397960d5e0a87a549988de9d4002d0e9a56fa08f5455f6e")
version("2.7.1", sha256="a05422cc7faff5700e134e113822d1934fb540ad247e63778524d5d6d75bb0ef")
diff --git a/var/spack/repos/builtin/packages/advancecomp/package.py b/var/spack/repos/builtin/packages/advancecomp/package.py
index 176ce547c17e40..362de3ab527816 100644
--- a/var/spack/repos/builtin/packages/advancecomp/package.py
+++ b/var/spack/repos/builtin/packages/advancecomp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Advancecomp(AutotoolsPackage):
homepage = "https://www.advancemame.it"
url = "https://github.com/amadvance/advancecomp/archive/v2.1.tar.gz"
+ license("GPL-3.0-or-later")
+
version("2.5", sha256="b6b4333453f028565896dd3547bc930f062df82832d7992cc130ca951c2890a1")
version("2.1", sha256="6113c2b6272334af710ba486e8312faa3cee5bd6dc8ca422d00437725e2b602a")
version("2.0", sha256="caa63332cd141db17988eb89c662cf76bdde72f60d4de7cb0fe8c7e51eb40eb7")
diff --git a/var/spack/repos/builtin/packages/adwaita-icon-theme/package.py b/var/spack/repos/builtin/packages/adwaita-icon-theme/package.py
index 817b1fdfb4494f..636d8bff45bea4 100644
--- a/var/spack/repos/builtin/packages/adwaita-icon-theme/package.py
+++ b/var/spack/repos/builtin/packages/adwaita-icon-theme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class AdwaitaIconTheme(AutotoolsPackage):
homepage = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme"
url = "https://ftp.gnome.org/pub/gnome/sources/adwaita-icon-theme/3.38/adwaita-icon-theme-3.38.0.tar.xz"
+ license("LGPL-3.0-or-later OR CC-BY-SA-3.0")
+
version("3.38.0", sha256="6683a1aaf2430ccd9ea638dd4bfe1002bc92b412050c3dba20e480f979faaf97")
depends_on("gdk-pixbuf", type="build")
diff --git a/var/spack/repos/builtin/packages/aegean/package.py b/var/spack/repos/builtin/packages/aegean/package.py
index cb3cb11c492453..90d89a635fe8b2 100644
--- a/var/spack/repos/builtin/packages/aegean/package.py
+++ b/var/spack/repos/builtin/packages/aegean/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Aegean(MakefilePackage):
homepage = "https://brendelgroup.github.io/AEGeAn/"
url = "https://github.com/BrendelGroup/AEGeAn/archive/v0.15.2.tar.gz"
+ license("0BSD")
+
version("0.15.2", sha256="734c9dd23ab3415c3966083bfde5fb72c81e6ace84e08ee3fe0d4c338331d975")
depends_on("genometools")
diff --git a/var/spack/repos/builtin/packages/aeskeyfind/package.py b/var/spack/repos/builtin/packages/aeskeyfind/package.py
index b4f76f17021d9a..5b8912c52d7e28 100644
--- a/var/spack/repos/builtin/packages/aeskeyfind/package.py
+++ b/var/spack/repos/builtin/packages/aeskeyfind/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/aespipe/package.py b/var/spack/repos/builtin/packages/aespipe/package.py
index d81d45908b9f27..66580750f04d2f 100644
--- a/var/spack/repos/builtin/packages/aespipe/package.py
+++ b/var/spack/repos/builtin/packages/aespipe/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Aespipe(AutotoolsPackage):
homepage = "http://loop-aes.sourceforge.net/"
url = "https://sourceforge.net/projects/loop-aes/files/aespipe/v2.4f/aespipe-v2.4f.tar.bz2"
+ license("Intel")
+
version("2.4f", sha256="b135e1659f58dc9be5e3c88923cd03d2a936096ab8cd7f2b3af4cb7a844cef96")
version("2.4e", sha256="bad5abb8678c2a6062d22b893171623e0c8e6163b5c1e6e5086e2140e606b93a")
version("2.4d", sha256="c5ce656e0ade49b93e1163ec7b35450721d5743d8d804ad3a9e39add0389e50f")
diff --git a/var/spack/repos/builtin/packages/agile/package.py b/var/spack/repos/builtin/packages/agile/package.py
index 1b8774c3839763..e2f31ed2a4d4ce 100644
--- a/var/spack/repos/builtin/packages/agile/package.py
+++ b/var/spack/repos/builtin/packages/agile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Agile(AutotoolsPackage):
maintainers("vvolkl")
+ license("GPL-2.0-only")
+
version("1.5.1", sha256="e38536300060e4b845ccaaed824c7495944f9117a0d7e4ee74a18bf278e2012f")
depends_on("hepmc")
diff --git a/var/spack/repos/builtin/packages/agrep/package.py b/var/spack/repos/builtin/packages/agrep/package.py
index 5615723596381c..505a248f11edce 100644
--- a/var/spack/repos/builtin/packages/agrep/package.py
+++ b/var/spack/repos/builtin/packages/agrep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Agrep(MakefilePackage):
homepage = "https://www.tgries.de/agrep"
url = "https://www.tgries.de/agrep/agrep-3.41.tgz"
+ license("GPL-2.0-or-later")
+
version("3.41", sha256="0508eafaf9725fc67cc955eb6d32ba4f50138443a4fea4275508d2c3f67a234e")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/aida/package.py b/var/spack/repos/builtin/packages/aida/package.py
index a9c2a329f3f7ef..d6dabd67af6c59 100644
--- a/var/spack/repos/builtin/packages/aida/package.py
+++ b/var/spack/repos/builtin/packages/aida/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/akantu/package.py b/var/spack/repos/builtin/packages/akantu/package.py
index bba92edcc8e396..46ebb5cec19aac 100644
--- a/var/spack/repos/builtin/packages/akantu/package.py
+++ b/var/spack/repos/builtin/packages/akantu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Akantu(CMakePackage):
maintainers("nrichart")
+ license("LGPL-3.0-or-later")
+
version("master", branch="master")
version("3.0.0", sha256="7e8f64e25956eba44def1b2d891f6db8ba824e4a82ff0d51d6b585b60ab465db")
diff --git a/var/spack/repos/builtin/packages/alan/package.py b/var/spack/repos/builtin/packages/alan/package.py
index 5e702ddfa8eae3..31607dae32fab6 100644
--- a/var/spack/repos/builtin/packages/alan/package.py
+++ b/var/spack/repos/builtin/packages/alan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/albany/package.py b/var/spack/repos/builtin/packages/albany/package.py
index 748cf2bb42020f..db7e3dbb02a45a 100644
--- a/var/spack/repos/builtin/packages/albany/package.py
+++ b/var/spack/repos/builtin/packages/albany/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/albert/package.py b/var/spack/repos/builtin/packages/albert/package.py
index 49d254fb4a9218..796a45fdf3fb24 100644
--- a/var/spack/repos/builtin/packages/albert/package.py
+++ b/var/spack/repos/builtin/packages/albert/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/alembic/package.py b/var/spack/repos/builtin/packages/alembic/package.py
index 31a653c0c8d9d5..4b081a988d3804 100644
--- a/var/spack/repos/builtin/packages/alembic/package.py
+++ b/var/spack/repos/builtin/packages/alembic/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Alembic(CMakePackage):
homepage = "https://www.alembic.io"
url = "https://github.com/alembic/alembic/archive/1.7.16.tar.gz"
+ license("BSD-3-Clause")
+
version("1.8.5", sha256="180a12f08d391cd89f021f279dbe3b5423b1db751a9898540c8059a45825c2e9")
version("1.7.16", sha256="2529586c89459af34d27a36ab114ad1d43dafd44061e65cfcfc73b7457379e7c")
diff --git a/var/spack/repos/builtin/packages/alglib/package.py b/var/spack/repos/builtin/packages/alglib/package.py
index 98ade340fd2e11..2b2c39698dd07c 100644
--- a/var/spack/repos/builtin/packages/alglib/package.py
+++ b/var/spack/repos/builtin/packages/alglib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/allpaths-lg/package.py b/var/spack/repos/builtin/packages/allpaths-lg/package.py
index 3cd98a5a3bdef5..f3be71e7a1e4b9 100644
--- a/var/spack/repos/builtin/packages/allpaths-lg/package.py
+++ b/var/spack/repos/builtin/packages/allpaths-lg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/alluxio/package.py b/var/spack/repos/builtin/packages/alluxio/package.py
index 37c4b41ae72a39..dd266b9a6b6326 100644
--- a/var/spack/repos/builtin/packages/alluxio/package.py
+++ b/var/spack/repos/builtin/packages/alluxio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Alluxio(Package):
list_url = "https://downloads.alluxio.io/downloads/files"
list_depth = 1
+ license("CC0-1.0")
+
version("2.9.3", sha256="c71abc5e852d37cfd6b1dea076f056c6997e3f60fbb940bf005acb3a6354a369")
version("2.9.1", sha256="e9456db7a08488af22dee3a44e4135bc03a0444e31c7753bf00f72465f68ffb9")
diff --git a/var/spack/repos/builtin/packages/alpaka/package.py b/var/spack/repos/builtin/packages/alpaka/package.py
index d90dcba4a36cc8..7a4b22c42065c8 100644
--- a/var/spack/repos/builtin/packages/alpaka/package.py
+++ b/var/spack/repos/builtin/packages/alpaka/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Alpaka(CMakePackage, CudaPackage):
maintainers("vvolkl")
+ license("MPL-2.0-no-copyleft-exception")
+
version("develop", branch="develop")
version("0.8.0", sha256="e01bc377a7657d9a3e0c5f8d3f83dffbd7d0b830283c59efcbc1fb98cf88de43")
version("0.7.0", sha256="4b61119a7b3b073f281ba15b63430db98b77dbd9420bc290a114f80121fbdd97")
diff --git a/var/spack/repos/builtin/packages/alpgen/package.py b/var/spack/repos/builtin/packages/alpgen/package.py
index 52b47adebf6ff0..67542d530c2fef 100644
--- a/var/spack/repos/builtin/packages/alpgen/package.py
+++ b/var/spack/repos/builtin/packages/alpgen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,7 +16,6 @@ class Alpgen(CMakePackage, MakefilePackage):
homepage = "http://mlm.home.cern.ch/mlm/alpgen/"
url = "http://mlm.home.cern.ch/mlm/alpgen/V2.1/v214.tgz"
- maintainers("iarspider")
tags = ["hep"]
version("2.1.4", sha256="2f43f7f526793fe5f81a3a3e1adeffe21b653a7f5851efc599ed69ea13985c5e")
diff --git a/var/spack/repos/builtin/packages/alquimia/package.py b/var/spack/repos/builtin/packages/alquimia/package.py
index d2b33d8524473d..5fb67270a82f61 100644
--- a/var/spack/repos/builtin/packages/alquimia/package.py
+++ b/var/spack/repos/builtin/packages/alquimia/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Alquimia(CMakePackage):
maintainers("smolins", "balay")
+ license("BSD-3-Clause-LBNL")
+
version("master")
version("1.1.0", commit="211931c3e76b1ae7cdb48c46885b248412d6fe3d") # tag v1.1.0
version("1.0.10", commit="b2c11b6cde321f4a495ef9fcf267cb4c7a9858a0") # tag v.1.0.10
@@ -34,7 +36,7 @@ class Alquimia(CMakePackage):
depends_on("pflotran@develop", when="@develop")
depends_on("petsc@3.10:", when="@develop")
- @when("@1.0.10")
+ @when("@1.0.10:1.1.0")
def patch(self):
filter_file(
"use iso_[cC]_binding",
diff --git a/var/spack/repos/builtin/packages/alsa-lib/package.py b/var/spack/repos/builtin/packages/alsa-lib/package.py
index 46e3d2f1bfa672..d9624e0dd46465 100644
--- a/var/spack/repos/builtin/packages/alsa-lib/package.py
+++ b/var/spack/repos/builtin/packages/alsa-lib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class AlsaLib(AutotoolsPackage):
homepage = "https://www.alsa-project.org"
url = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.2.3.2.tar.bz2"
+ license("LGPL-2.1-or-later")
+
version("1.2.3.2", sha256="e81fc5b7afcaee8c9fd7f64a1e3043e88d62e9ad2c4cff55f578df6b0a9abe15")
version("1.2.2", sha256="d8e853d8805574777bbe40937812ad1419c9ea7210e176f0def3e6ed255ab3ec")
version("1.1.4.1", sha256="91bb870c14d1c7c269213285eeed874fa3d28112077db061a3af8010d0885b76")
diff --git a/var/spack/repos/builtin/packages/aluminum/package.py b/var/spack/repos/builtin/packages/aluminum/package.py
index bb085f8681044b..63275c66ed9c5f 100644
--- a/var/spack/repos/builtin/packages/aluminum/package.py
+++ b/var/spack/repos/builtin/packages/aluminum/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -9,7 +9,7 @@
from spack.package import *
-class Aluminum(CMakePackage, CudaPackage, ROCmPackage):
+class Aluminum(CachedCMakePackage, CudaPackage, ROCmPackage):
"""Aluminum provides a generic interface to high-performance
communication libraries, with a focus on allreduce
algorithms. Blocking and non-blocking algorithms and GPU-aware
@@ -22,208 +22,209 @@ class Aluminum(CMakePackage, CudaPackage, ROCmPackage):
git = "https://github.com/LLNL/Aluminum.git"
tags = ["ecp", "radiuss"]
- maintainers("bvanessen")
+ maintainers("benson31", "bvanessen")
+
+ license("Apache-2.0")
version("master", branch="master")
+ version("1.4.1", sha256="d130a67fef1cb7a9cb3bbec1d0de426f020fe68c9df6e172c83ba42281cd90e3")
+ version("1.4.0", sha256="ac54de058f38cead895ec8163f7b1fa7674e4dc5aacba683a660a61babbfe0c6")
version("1.3.1", sha256="28ce0af6c6f29f97b7f19c5e45184bd2f8a0b1428f1e898b027d96d47cb74b0b")
version("1.3.0", sha256="d0442efbebfdfb89eec793ae65eceb8f1ba65afa9f2e48df009f81985a4c27e3")
version("1.2.3", sha256="9b214bdf30f9b7e8e017f83e6615db6be2631f5be3dd186205dbe3aa62f4018a")
- version(
- "1.2.2",
- sha256="c01d9dd98be4cab9b944bae99b403abe76d65e9e1750e7f23bf0105636ad5485",
- deprecated=True,
- )
- version(
- "1.2.1",
- sha256="869402708c8a102a67667b83527b4057644a32b8cdf4990bcd1a5c4e5f0e30af",
- deprecated=True,
- )
- version(
- "1.2.0",
- sha256="2f3725147f4dbc045b945af68d3d747f5dffbe2b8e928deed64136785210bc9a",
- deprecated=True,
- )
- version(
- "1.1.0",
- sha256="78b03e36e5422e8651f400feb4d8a527f87302db025d77aa37e223be6b9bdfc9",
- deprecated=True,
- )
- version("1.0.0-lbann", tag="v1.0.0-lbann", commit="40a062b1f63e84e074489c0f926f36b806c6b8f3")
- version("1.0.0", sha256="028d12e271817214db5c07c77b0528f88862139c3e442e1b12f58717290f414a")
- version(
- "0.7.0",
- sha256="bbb73d2847c56efbe6f99e46b41d837763938483f2e2d1982ccf8350d1148caa",
- deprecated=True,
- )
- version(
- "0.6.0",
- sha256="6ca329951f4c7ea52670e46e5020e7e7879d9b56fed5ff8c5df6e624b313e925",
- deprecated=True,
- )
- version(
- "0.5.0",
- sha256="dc365a5849eaba925355a8efb27005c5f22bcd1dca94aaed8d0d29c265c064c1",
- deprecated=True,
- )
- version(
- "0.4.0",
- sha256="4d6fab5481cc7c994b32fb23a37e9ee44041a9f91acf78f981a97cb8ef57bb7d",
- deprecated=True,
- )
- version(
- "0.3.3",
- sha256="26e7f263f53c6c6ee0fe216e981a558dfdd7ec997d0dd2a24285a609a6c68f3b",
- deprecated=True,
- )
- version(
- "0.3.2",
- sha256="09b6d1bcc02ac54ba269b1123eee7be20f0104b93596956c014b794ba96b037f",
- deprecated=True,
- )
- version(
- "0.2.1-1",
- sha256="066b750e9d1134871709a3e2414b96b166e0e24773efc7d512df2f1d96ee8eef",
- deprecated=True,
- )
- version(
- "0.2.1",
- sha256="3d5d15853cccc718f60df68205e56a2831de65be4d96e7f7e8497097e7905f89",
- deprecated=True,
- )
- version(
- "0.2",
- sha256="fc8f06c6d8faab17a2aedd408d3fe924043bf857da1094d5553f35c4d2af893b",
- deprecated=True,
- )
- version(
- "0.1",
- sha256="3880b736866e439dd94e6a61eeeb5bb2abccebbac82b82d52033bc6c94950bdb",
- deprecated=True,
- )
- variant("nccl", default=False, description="Builds with support for NCCL communication lib")
+ # Library capabilities
+ variant(
+ "cuda_rma",
+ default=False,
+ when="+cuda",
+ description="Builds with support for CUDA intra-node "
+ " Put/Get and IPC RMA functionality",
+ )
variant(
"ht",
default=False,
description="Builds with support for host-enabled MPI"
" communication of accelerator data",
)
+ variant("nccl", default=False, description="Builds with support for NCCL communication lib")
+ variant("shared", default=True, description="Build Aluminum as a shared library")
+
+ # Debugging features
+ variant("hang_check", default=False, description="Enable hang checking")
+ variant("trace", default=False, description="Enable runtime tracing")
+
+ # Profiler support
+ variant("nvtx", default=False, when="+cuda", description="Enable profiling via nvprof/NVTX")
variant(
- "cuda_rma",
+ "roctracer", default=False, when="+rocm", description="Enable profiling via rocprof/roctx"
+ )
+
+ # Advanced options
+ variant("mpi_serialize", default=False, description="Serialize MPI operations")
+ variant("stream_mem_ops", default=False, description="Enable stream memory operations")
+ variant(
+ "thread_multiple",
default=False,
- description="Builds with support for CUDA intra-node "
- " Put/Get and IPC RMA functionality",
+ description="Allow multiple threads to call Aluminum concurrently",
)
- variant("rccl", default=False, description="Builds with support for RCCL communication lib")
+
+ # Benchmark/testing support
variant(
- "ofi_libfabric_plugin",
- default=spack.platforms.cray.slingshot_network(),
- when="+rccl",
- sticky=True,
- description="Builds with support for OFI libfabric enhanced RCCL/NCCL communication lib",
+ "benchmarks",
+ default=False,
+ description="Build the Aluminum benchmarking drivers "
+ "(warning: may significantly increase build time!)",
)
variant(
- "ofi_libfabric_plugin",
- default=spack.platforms.cray.slingshot_network(),
- when="+nccl",
- sticky=True,
- description="Builds with support for OFI libfabric enhanced RCCL/NCCL communication lib",
+ "tests",
+ default=False,
+ description="Build the Aluminum test drivers "
+ "(warning: may moderately increase build time!)",
)
- depends_on("cmake@3.21.0:", type="build", when="@1.0.1:")
- depends_on("cmake@3.17.0:", type="build", when="@:1.0.0")
- depends_on("mpi")
- depends_on("nccl@2.7.0-0:", when="+nccl")
- depends_on("hwloc@1.11:")
- depends_on("hwloc +cuda +nvml", when="+cuda")
- depends_on("hwloc@2.3.0:", when="+rocm")
- depends_on("cub", when="@:0.1,0.6.0: +cuda ^cuda@:10")
- depends_on("hipcub", when="@:0.1,0.6.0: +rocm")
-
- depends_on("rccl", when="+rccl")
- depends_on("aws-ofi-rccl", when="+rccl +ofi_libfabric_plugin")
- depends_on("aws-ofi-nccl", when="+nccl +ofi_libfabric_plugin")
+ # FIXME: Do we want to expose tuning parameters to the Spack
+ # recipe? Some are numeric values, some are on/off switches.
conflicts("~cuda", when="+cuda_rma", msg="CUDA RMA support requires CUDA")
conflicts("+cuda", when="+rocm", msg="CUDA and ROCm support are mutually exclusive")
- conflicts("+nccl", when="+rccl", msg="NCCL and RCCL support are mutually exclusive")
- generator("ninja")
+ depends_on("mpi")
- def cmake_args(self):
- spec = self.spec
- args = [
- "-DCMAKE_CXX_STANDARD:STRING=17",
- "-DALUMINUM_ENABLE_CUDA:BOOL=%s" % ("+cuda" in spec),
- "-DALUMINUM_ENABLE_NCCL:BOOL=%s" % ("+nccl" in spec or "+rccl" in spec),
- "-DALUMINUM_ENABLE_ROCM:BOOL=%s" % ("+rocm" in spec),
- ]
-
- if not spec.satisfies("^cmake@3.23.0"):
- # There is a bug with using Ninja generator in this version
- # of CMake
- args.append("-DCMAKE_EXPORT_COMPILE_COMMANDS=ON")
-
- if "+cuda" in spec:
- if self.spec.satisfies("%clang"):
- for flag in self.spec.compiler_flags["cxxflags"]:
- if "gcc-toolchain" in flag:
- args.append("-DCMAKE_CUDA_FLAGS=-Xcompiler={0}".format(flag))
- if spec.satisfies("^cuda@11.0:"):
- args.append("-DCMAKE_CUDA_STANDARD=17")
- else:
- args.append("-DCMAKE_CUDA_STANDARD=14")
- archs = spec.variants["cuda_arch"].value
- if archs != "none":
- arch_str = ";".join(archs)
- args.append("-DCMAKE_CUDA_ARCHITECTURES=%s" % arch_str)
-
- if spec.satisfies("%cce") and spec.satisfies("^cuda+allow-unsupported-compilers"):
- args.append("-DCMAKE_CUDA_FLAGS=-allow-unsupported-compiler")
-
- if spec.satisfies("@0.5:"):
- args.extend(
- [
- "-DALUMINUM_ENABLE_HOST_TRANSFER:BOOL=%s" % ("+ht" in spec),
- "-DALUMINUM_ENABLE_MPI_CUDA:BOOL=%s" % ("+cuda_rma" in spec),
- "-DALUMINUM_ENABLE_MPI_CUDA_RMA:BOOL=%s" % ("+cuda_rma" in spec),
- ]
+ depends_on("cmake@3.21.0:", type="build", when="@1.0.1:")
+ depends_on("hwloc@1.11:")
+
+ with when("+cuda"):
+ depends_on("cub", when="^cuda@:10")
+ depends_on("hwloc +cuda +nvml")
+ with when("+nccl"):
+ depends_on("nccl@2.7.0-0:")
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on(
+ "nccl +cuda cuda_arch={0}".format(arch),
+ when="+cuda cuda_arch={0}".format(arch),
+ )
+ if spack.platforms.cray.slingshot_network():
+ depends_on("aws-ofi-nccl") # Note: NOT a CudaPackage
+
+ with when("+rocm"):
+ for val in ROCmPackage.amdgpu_targets:
+ depends_on(
+ "hipcub +rocm amdgpu_target={0}".format(val), when="amdgpu_target={0}".format(val)
)
- else:
- args.append("-DALUMINUM_ENABLE_MPI_CUDA:BOOL=%s" % ("+ht" in spec))
-
- if spec.satisfies("@:0.1,0.6.0: +cuda ^cuda@:10"):
- args.append("-DCUB_DIR:FILEPATH=%s" % spec["cub"].prefix)
-
- # Add support for OS X to find OpenMP (LLVM installed via brew)
- if self.spec.satisfies("%clang platform=darwin"):
- clang = self.compiler.cc
- clang_bin = os.path.dirname(clang)
- clang_root = os.path.dirname(clang_bin)
- args.extend(["-DOpenMP_DIR={0}".format(clang_root)])
-
- if "+rocm" in spec:
- args.extend(
- [
- "-DHIP_ROOT_DIR={0}".format(spec["hip"].prefix),
- "-DHIP_CXX_COMPILER={0}".format(self.spec["hip"].hipcc),
- "-DCMAKE_CXX_FLAGS=-std=c++17",
- ]
+ depends_on(
+ "hwloc@2.3.0: +rocm amdgpu_target={0}".format(val),
+ when="amdgpu_target={0}".format(val),
)
- archs = self.spec.variants["amdgpu_target"].value
- if archs != "none":
- arch_str = ",".join(archs)
- if spec.satisfies("%rocmcc@:5"):
- args.append(
- "-DHIP_HIPCC_FLAGS=--amdgpu-target={0}"
- " -g -fsized-deallocation -fPIC -std=c++17".format(arch_str)
- )
- args.extend(
- [
- "-DCMAKE_HIP_ARCHITECTURES=%s" % arch_str,
- "-DAMDGPU_TARGETS=%s" % arch_str,
- "-DGPU_TARGETS=%s" % arch_str,
- ]
- )
+ # RCCL is *NOT* implented as a ROCmPackage
+ depends_on(
+ "rccl amdgpu_target={0}".format(val), when="+nccl amdgpu_target={0}".format(val)
+ )
+ depends_on(
+ "roctracer-dev +rocm amdgpu_target={0}".format(val),
+ when="+roctracer amdgpu_target={0}".format(val),
+ )
+ if spack.platforms.cray.slingshot_network():
+ depends_on("aws-ofi-rccl", when="+nccl")
+
+ def cmake_args(self):
+ args = []
+ return args
+ def get_cuda_flags(self):
+ spec = self.spec
+ args = []
+ if spec.satisfies("^cuda+allow-unsupported-compilers"):
+ args.append("-allow-unsupported-compiler")
+
+ if spec.satisfies("%clang"):
+ for flag in spec.compiler_flags["cxxflags"]:
+ if "gcc-toolchain" in flag:
+ args.append("-Xcompiler={0}".format(flag))
return args
+
+ def std_initconfig_entries(self):
+ entries = super(Aluminum, self).std_initconfig_entries()
+
+ # CMAKE_PREFIX_PATH, in CMake types, is a "STRING", not a "PATH". :/
+ entries = [x for x in entries if "CMAKE_PREFIX_PATH" not in x]
+ cmake_prefix_path = os.environ["CMAKE_PREFIX_PATH"].replace(":", ";")
+ entries.append(cmake_cache_string("CMAKE_PREFIX_PATH", cmake_prefix_path))
+ return entries
+
+ def initconfig_compiler_entries(self):
+ spec = self.spec
+ entries = super(Aluminum, self).initconfig_compiler_entries()
+
+ # FIXME: Enforce this better in the actual CMake.
+ entries.append(cmake_cache_string("CMAKE_CXX_STANDARD", "17"))
+ entries.append(cmake_cache_option("BUILD_SHARED_LIBS", "+shared" in spec))
+ entries.append(cmake_cache_option("CMAKE_EXPORT_COMPILE_COMMANDS", True))
+ entries.append(cmake_cache_option("MPI_ASSUME_NO_BUILTIN_MPI", True))
+
+ return entries
+
+ def initconfig_hardware_entries(self):
+ spec = self.spec
+ entries = super(Aluminum, self).initconfig_hardware_entries()
+
+ entries.append(cmake_cache_option("ALUMINUM_ENABLE_CUDA", "+cuda" in spec))
+ if spec.satisfies("+cuda"):
+ entries.append(cmake_cache_string("CMAKE_CUDA_STANDARD", "17"))
+ if not spec.satisfies("cuda_arch=none"):
+ archs = spec.variants["cuda_arch"].value
+ arch_str = ";".join(archs)
+ entries.append(cmake_cache_string("CMAKE_CUDA_ARCHITECTURES", arch_str))
+
+ # FIXME: Should this use the "cuda_flags" function of the
+ # CudaPackage class or something? There might be other
+ # flags in play, and we need to be sure to get them all.
+ cuda_flags = self.get_cuda_flags()
+ if len(cuda_flags) > 0:
+ entries.append(cmake_cache_string("CMAKE_CUDA_FLAGS", " ".join(cuda_flags)))
+
+ entries.append(cmake_cache_option("ALUMINUM_ENABLE_ROCM", "+rocm" in spec))
+ if spec.satisfies("+rocm"):
+ entries.append(cmake_cache_string("CMAKE_HIP_STANDARD", "17"))
+ if not spec.satisfies("amdgpu_target=none"):
+ archs = self.spec.variants["amdgpu_target"].value
+ arch_str = ";".join(archs)
+ entries.append(cmake_cache_string("CMAKE_HIP_ARCHITECTURES", arch_str))
+ entries.append(cmake_cache_string("AMDGPU_TARGETS", arch_str))
+ entries.append(cmake_cache_string("GPU_TARGETS", arch_str))
+ entries.append(cmake_cache_path("HIP_ROOT_DIR", spec["hip"].prefix))
+
+ return entries
+
+ def initconfig_package_entries(self):
+ spec = self.spec
+ entries = super(Aluminum, self).initconfig_package_entries()
+
+ # Library capabilities
+ entries.append(cmake_cache_option("ALUMINUM_ENABLE_MPI_CUDA", "+cuda_rma" in spec))
+ entries.append(cmake_cache_option("ALUMINUM_ENABLE_MPI_CUDA_RMA", "+cuda_rma" in spec))
+ entries.append(cmake_cache_option("ALUMINUM_ENABLE_HOST_TRANSFER", "+ht" in spec))
+ entries.append(cmake_cache_option("ALUMINUM_ENABLE_NCCL", "+nccl" in spec))
+
+ # Debugging features
+ entries.append(cmake_cache_option("ALUMINUM_DEBUG_HANG_CHECK", "+hang_check" in spec))
+ entries.append(cmake_cache_option("ALUMINUM_ENABLE_TRACE", "+trace" in spec))
+
+ # Profiler support
+ entries.append(cmake_cache_option("ALUMINUM_ENABLE_NVPROF", "+nvtx" in spec))
+ entries.append(cmake_cache_option("ALUMINUM_ENABLE_ROCTRACER", "+roctracer" in spec))
+
+ # Advanced options
+ entries.append(cmake_cache_option("ALUMINUM_MPI_SERIALIZE", "+mpi_serialize" in spec))
+ entries.append(
+ cmake_cache_option("ALUMINUM_ENABLE_STREAM_MEM_OPS", "+stream_mem_ops" in spec)
+ )
+ entries.append(
+ cmake_cache_option("ALUMINUM_ENABLE_THREAD_MULTIPLE", "+thread_multiple" in spec)
+ )
+
+ # Benchmark/testing support
+ entries.append(cmake_cache_option("ALUMINUM_ENABLE_BENCHMARKS", "+benchmarks" in spec))
+ entries.append(cmake_cache_option("ALUMINUM_ENABLE_TESTS", "+tests" in spec))
+
+ return entries
diff --git a/var/spack/repos/builtin/packages/amber/package.py b/var/spack/repos/builtin/packages/amber/package.py
index e647a74cd42443..f72ce9bc4da690 100644
--- a/var/spack/repos/builtin/packages/amber/package.py
+++ b/var/spack/repos/builtin/packages/amber/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/amd-aocl/package.py b/var/spack/repos/builtin/packages/amd-aocl/package.py
index a1fb1cb061f9cf..b37da1b9cb7eb9 100644
--- a/var/spack/repos/builtin/packages/amd-aocl/package.py
+++ b/var/spack/repos/builtin/packages/amd-aocl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -32,21 +32,22 @@ class AmdAocl(BundlePackage):
version("2.2")
variant("openmp", default=False, description="Enable OpenMP support.")
- for vers in ["2.2", "3.0", "3.1", "3.2", "4.0", "4.1"]:
- depends_on("amdblis@{0} threads=openmp".format(vers), when="@{0} +openmp".format(vers))
- depends_on("amdblis@{0} threads=none".format(vers), when="@{0} ~openmp".format(vers))
- depends_on("amdfftw@{0} +openmp".format(vers), when="@{0} +openmp".format(vers))
- depends_on("amdfftw@{0} ~openmp".format(vers), when="@{0} ~openmp".format(vers))
- depends_on("amdlibflame@{0}".format(vers), when="@{0}".format(vers))
- depends_on("amdlibm@{0}".format(vers), when="@{0}".format(vers))
- depends_on(
- "amdscalapack@{0} ^amdblis@{0} ^amdlibflame@{0} threads=none".format(vers),
- when="@{0} ~openmp".format(vers),
- )
- depends_on(
- "amdscalapack@{0} ^amdblis@{0} ^amdlibflame@{0} threads=openmp".format(vers),
- when="@{0} +openmp".format(vers),
- )
- depends_on(
- "aocl-sparse@{0} ^amdblis@{0} ^amdlibflame@{0}".format(vers), when="@{0}".format(vers)
- )
+
+ with when("+openmp"):
+ depends_on("amdblis threads=openmp")
+ depends_on("amdfftw +openmp")
+ depends_on("amdlibflame threads=openmp")
+
+ with when("~openmp"):
+ depends_on("amdblis threads=none")
+ depends_on("amdfftw ~openmp")
+ depends_on("amdlibflame threads=none")
+
+ for vers in ("2.2", "3.0", "3.1", "3.2", "4.0", "4.1"):
+ with when(f"@{vers}"):
+ depends_on(f"amdblis@{vers}")
+ depends_on(f"amdfftw@{vers}")
+ depends_on(f"amdlibflame@{vers}")
+ depends_on(f"amdlibm@{vers}")
+ depends_on(f"amdscalapack@{vers}")
+ depends_on(f"aocl-sparse@{vers}")
diff --git a/var/spack/repos/builtin/packages/amdblis/package.py b/var/spack/repos/builtin/packages/amdblis/package.py
index 5d8bb376f3a9f9..5492f54b4b94f5 100644
--- a/var/spack/repos/builtin/packages/amdblis/package.py
+++ b/var/spack/repos/builtin/packages/amdblis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -34,6 +34,10 @@ class Amdblis(BlisBase):
maintainers("amd-toolchain-support")
+ requires("target=x86_64:", msg="AMD blis available only on x86_64")
+
+ license("BSD-3-Clause")
+
version("4.1", sha256="a05c6c7d359232580d1d599696053ad0beeedf50f3b88d5d22ee7d34375ab577")
version("4.0", sha256="cddd31176834a932753ac0fc4c76332868feab3e9ac607fa197d8b44c1e74a41")
version("3.2", sha256="5a400ee4fc324e224e12f73cc37b915a00f92b400443b15ce3350278ad46fff6")
diff --git a/var/spack/repos/builtin/packages/amdfftw/package.py b/var/spack/repos/builtin/packages/amdfftw/package.py
index 475327e3359d0a..93ca30265dcc6e 100644
--- a/var/spack/repos/builtin/packages/amdfftw/package.py
+++ b/var/spack/repos/builtin/packages/amdfftw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -39,6 +39,8 @@ class Amdfftw(FftwBase):
maintainers("amd-toolchain-support")
+ license("GPL-2.0-only")
+
version("4.1", sha256="f1cfecfcc0729f96a5bd61c6b26f3fa43bb0662d3fff370d4f73490c60cf4e59")
version("4.0", sha256="5f02cb05f224bd86bd88ec6272b294c26dba3b1d22c7fb298745fd7b9d2271c0")
version("3.2", sha256="31cab17a93e03b5b606e88dd6116a1055b8f49542d7d0890dbfcca057087b8d0")
@@ -145,6 +147,8 @@ class Amdfftw(FftwBase):
)
conflicts("precision=quad", msg="Quad precision is not supported with amd-app-opt")
+ requires("target=x86_64:", msg="AMD FFTW available only on x86_64")
+
def configure(self, spec, prefix):
"""Configure function"""
# Base options
diff --git a/var/spack/repos/builtin/packages/amdlibflame/package.py b/var/spack/repos/builtin/packages/amdlibflame/package.py
index e1b96e042e02a9..8dd7aa57f25d9e 100644
--- a/var/spack/repos/builtin/packages/amdlibflame/package.py
+++ b/var/spack/repos/builtin/packages/amdlibflame/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -47,6 +47,8 @@ class Amdlibflame(LibflameBase):
maintainers("amd-toolchain-support")
+ license("BSD-3-Clause")
+
version("4.1", sha256="8aed69c60d11cc17e058cabcb8a931cee4f343064ade3e73d3392b7214624b61")
version("4.0", sha256="bcb05763aa1df1e88f0da5e43ff86d956826cbea1d9c5ff591d78a3e091c66a4")
version("3.2", sha256="6b5337fb668b82d0ed0a4ab4b5af4e2f72e4cedbeeb4a8b6eb9a3ef057fb749a")
@@ -60,6 +62,7 @@ class Amdlibflame(LibflameBase):
conflicts("+ilp64", when="@:3.0.0", msg="ILP64 is supported from 3.0.1 onwards")
conflicts("threads=pthreads", msg="pthread is not supported")
conflicts("threads=openmp", when="@:3", msg="openmp is not supported by amdlibflame < 4.0")
+ requires("target=x86_64:", msg="AMD libflame available only on x86_64")
patch("aocc-2.2.0.patch", when="@:2", level=1)
patch("cray-compiler-wrapper.patch", when="@:3.0.0", level=1)
diff --git a/var/spack/repos/builtin/packages/amdlibm/package.py b/var/spack/repos/builtin/packages/amdlibm/package.py
index 9a988b49624b84..05b37883366ed9 100644
--- a/var/spack/repos/builtin/packages/amdlibm/package.py
+++ b/var/spack/repos/builtin/packages/amdlibm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -31,6 +31,8 @@ class Amdlibm(SConsPackage):
url = "https://github.com/amd/aocl-libm-ose/archive/refs/tags/3.0.tar.gz"
maintainers("amd-toolchain-support")
+ license("BSD-3-Clause")
+
version("4.1", sha256="5bbbbc6bc721d9a775822eab60fbc11eb245e77d9f105b4fcb26a54d01456122")
version("4.0", sha256="038c1eab544be77598eccda791b26553d3b9e2ee4ab3f5ad85fdd2a77d015a7d")
version("3.2", sha256="c75b287c38a3ce997066af1f5c8d2b19fc460d5e56678ea81f3ac33eb79ec890")
diff --git a/var/spack/repos/builtin/packages/amdscalapack/package.py b/var/spack/repos/builtin/packages/amdscalapack/package.py
index 0213da5c97dcca..3ccf2260893abd 100644
--- a/var/spack/repos/builtin/packages/amdscalapack/package.py
+++ b/var/spack/repos/builtin/packages/amdscalapack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -32,6 +32,8 @@ class Amdscalapack(ScalapackBase):
maintainers("amd-toolchain-support")
+ license("BSD-3-Clause-Open-MPI")
+
version("4.1", sha256="b2e51c3604e5869d1faaef2e52c92071fcb3de1345aebb2ea172206622067ad9")
version("4.0", sha256="f02913b5984597b22cdb9a36198ed61039a1bf130308e778dc31b2a7eb88b33b")
version("3.2", sha256="9e00979bb1be39d627bdacb01774bc043029840d542fafc934d16fec3e3b0892")
@@ -42,6 +44,7 @@ class Amdscalapack(ScalapackBase):
variant("ilp64", default=False, description="Build with ILP64 support")
conflicts("+ilp64", when="@:3.0", msg="ILP64 is supported from 3.1 onwards")
+ requires("target=x86_64:", msg="AMD scalapack available only on x86_64")
def url_for_version(self, version):
vers = "https://github.com/amd/{0}/archive/{1}.tar.gz"
diff --git a/var/spack/repos/builtin/packages/amdsmi/package.py b/var/spack/repos/builtin/packages/amdsmi/package.py
index 5c293799b80a2e..e7543fdb8bb5e8 100644
--- a/var/spack/repos/builtin/packages/amdsmi/package.py
+++ b/var/spack/repos/builtin/packages/amdsmi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,24 +12,27 @@ class Amdsmi(CMakePackage):
is a C library for Linux that provides a user space interface for
applications to monitor and control AMD device."""
- homepage = "https://github.com/RadeonOpenCompute/amdsmi"
- url = "https://github.com/RadeonOpenCompute/amdsmi/archive/refs/tags/rocm-5.6.0.tar.gz"
+ homepage = "https://github.com/ROCm/amdsmi"
+ url = "https://github.com/ROCm/amdsmi/archive/refs/tags/rocm-5.6.0.tar.gz"
tags = ["rocm"]
maintainers("srekolam", "renjithravindrankannath")
libraries = ["libamd_smi"]
+ license("MIT")
+
+ version("5.7.0", sha256="144391d537710dafa9ef69571dd76203e56db6142ab61a1375346b5733137e23")
version("5.6.0", sha256="595c9d6d79d9071290b2f19ab4ef9222c8d2983b4322b3143fcd9d0b1ce0f6d8")
version("5.5.1", sha256="b794c7fd562fd92f2c9f2bbdc2d5dded7486101fcd4598f2e8c3484c9a939281")
version("5.5.0", sha256="dcfbd96e93afcf86b1261464e008e9ef7e521670871a1885e6eaffc7cdc8f555")
- depends_on("cmake@3.11:", type="build")
- depends_on("python@3.6:", type="run")
- depends_on("py-virtualenv", type="build")
- depends_on("llvm@14:", type="build")
- depends_on("pkgconfig", type="build")
- depends_on("libdrm", type="build")
- depends_on("py-pyyaml", type="build")
+ depends_on("cmake@3.11:")
+ depends_on("python@3.6:")
+ depends_on("py-virtualenv")
+ depends_on("llvm@14:")
+ depends_on("pkgconfig")
+ depends_on("libdrm")
+ depends_on("py-pyyaml")
@classmethod
def determine_version(cls, lib):
diff --git a/var/spack/repos/builtin/packages/amg2013/package.py b/var/spack/repos/builtin/packages/amg2013/package.py
index def0b495a83aac..dbb5ded532cbfd 100644
--- a/var/spack/repos/builtin/packages/amg2013/package.py
+++ b/var/spack/repos/builtin/packages/amg2013/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Amg2013(MakefilePackage):
homepage = "https://computing.llnl.gov/projects/co-design/amg2013"
git = "https://github.com/LLNL/AMG.git"
+ license("LGPL-2.1-or-later")
+
version("develop", branch="master")
version("1.2", tag="1.2", commit="3ada8a128e311543e84d9d66344ece77924127a8")
version("1.1", tag="1.1", commit="09fe8a78baf6ba5eaef7d2804f7b653885d60fee")
diff --git a/var/spack/repos/builtin/packages/amg2023/package.py b/var/spack/repos/builtin/packages/amg2023/package.py
index a2e8b676e9a9c9..60bf0f337d04f5 100644
--- a/var/spack/repos/builtin/packages/amg2023/package.py
+++ b/var/spack/repos/builtin/packages/amg2023/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,8 +17,9 @@ class Amg2023(CMakePackage, CudaPackage, ROCmPackage):
homepage = "https://github.com/LLNL/AMG2023"
git = "https://github.com/LLNL/AMG2023.git"
+ license("Apache-2.0")
+
version("develop", branch="main")
- version("cmake-build", git="https://github.com/dyokelson/AMG2023.git", branch="cmake")
variant("mpi", default=True, description="Enable MPI support")
variant("openmp", default=False, description="Enable OpenMP support")
diff --git a/var/spack/repos/builtin/packages/amgx/package.py b/var/spack/repos/builtin/packages/amgx/package.py
index 226a853b7f76de..1e91250708515e 100644
--- a/var/spack/repos/builtin/packages/amgx/package.py
+++ b/var/spack/repos/builtin/packages/amgx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Amgx(CMakePackage, CudaPackage):
maintainers("js947")
+ license("BSD-3-Clause")
+
version("2.3.0", sha256="419b3cd5bd3eb3469cbef79d64a8d19d5db88dd5cce809e49cac6fc4fc2edff1")
version("2.2.0", sha256="dac78516bb528135cad903399fe0093aa0904e304565ef2d3da4fae05eda7928")
version("2.1.0", sha256="6245112b768a1dc3486b2b3c049342e232eb6281a6021fffa8b20c11631f63cc")
diff --git a/var/spack/repos/builtin/packages/aml/package.py b/var/spack/repos/builtin/packages/aml/package.py
index 88e012562271a2..dee1c1ca0e8dd9 100644
--- a/var/spack/repos/builtin/packages/aml/package.py
+++ b/var/spack/repos/builtin/packages/aml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -28,6 +28,8 @@ class Aml(AutotoolsPackage):
url = "https://github.com/anlsys/aml/releases/download/v0.2.0/aml-0.2.0.tar.gz"
git = "https://github.com/anlsys/aml.git"
+ license("ISC")
+
# version string is generated from git tags, requires entire repo
version("master", branch="master", submodules=True, get_full_repo=True)
diff --git a/var/spack/repos/builtin/packages/amp/package.py b/var/spack/repos/builtin/packages/amp/package.py
index f0ec4071ce14a4..340b473bac03c1 100644
--- a/var/spack/repos/builtin/packages/amp/package.py
+++ b/var/spack/repos/builtin/packages/amp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ampl/package.py b/var/spack/repos/builtin/packages/ampl/package.py
index c71b3256c14bcd..f074245357bdc8 100644
--- a/var/spack/repos/builtin/packages/ampl/package.py
+++ b/var/spack/repos/builtin/packages/ampl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ampliconnoise/package.py b/var/spack/repos/builtin/packages/ampliconnoise/package.py
index 6046e795b0d05e..0bc5e2cc190c1b 100644
--- a/var/spack/repos/builtin/packages/ampliconnoise/package.py
+++ b/var/spack/repos/builtin/packages/ampliconnoise/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ampt/package.py b/var/spack/repos/builtin/packages/ampt/package.py
index b441b6369c6af6..bbbbf33e9d7fc4 100644
--- a/var/spack/repos/builtin/packages/ampt/package.py
+++ b/var/spack/repos/builtin/packages/ampt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/amqp-cpp/package.py b/var/spack/repos/builtin/packages/amqp-cpp/package.py
index 522547277609c8..714169e1d61275 100644
--- a/var/spack/repos/builtin/packages/amqp-cpp/package.py
+++ b/var/spack/repos/builtin/packages/amqp-cpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class AmqpCpp(CMakePackage):
maintainers("lpottier")
+ license("Apache-2.0")
+
version("4.3.24", sha256="c3312f8af813cacabf6c257dfaf41bf9e66606bbf7d62d085a9b7da695355245")
version("4.3.19", sha256="ca29bb349c498948576a4604bed5fd3c27d87240b271a4441ccf04ba3797b31d")
diff --git a/var/spack/repos/builtin/packages/amr-wind/package.py b/var/spack/repos/builtin/packages/amr-wind/package.py
index 835f1c96fab688..cdd01679469ae2 100644
--- a/var/spack/repos/builtin/packages/amr-wind/package.py
+++ b/var/spack/repos/builtin/packages/amr-wind/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class AmrWind(CMakePackage, CudaPackage, ROCmPackage):
tags = ["ecp", "ecp-apps"]
+ license("BSD-3-Clause")
+
version("main", branch="main", submodules=True)
variant("hypre", default=True, description="Enable Hypre integration")
diff --git a/var/spack/repos/builtin/packages/amrex/package.py b/var/spack/repos/builtin/packages/amrex/package.py
index 8f14d508ad0085..2c18dbf86d42e9 100644
--- a/var/spack/repos/builtin/packages/amrex/package.py
+++ b/var/spack/repos/builtin/packages/amrex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,9 +21,13 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage):
tags = ["ecp", "e4s"]
- maintainers("WeiqunZhang", "asalmgren", "etpalmer63")
+ maintainers("WeiqunZhang", "asalmgren", "atmyers")
+
+ license("BSD-3-Clause")
version("develop", branch="development")
+ version("24.01", sha256="83dbd4dad6dc51fa4a80aad0347b15ee5a6d816cf4abcd87f7b0e2987d8131b7")
+ version("23.12", sha256="90e00410833d7a82bf6d9e71a70ce85d2bfb89770da7e34d0dda940f2bf5384a")
version("23.11", sha256="49b9fea10cd2a2b6cb0fedf7eac8f7889eacc68a05ae5ac7c5702bc0eb1b3848")
version("23.10", sha256="3c85aa0ad5f96303e797960a6e0aa37c427f6483f39cdd61dbc2f7ca16357714")
version("23.09", sha256="1a539c2628041b17ad910afd9270332060251c8e346b1482764fdb87a4f25053")
diff --git a/var/spack/repos/builtin/packages/amrfinder/package.py b/var/spack/repos/builtin/packages/amrfinder/package.py
index 43a7bf371e6a80..bca43c520c9fbe 100644
--- a/var/spack/repos/builtin/packages/amrfinder/package.py
+++ b/var/spack/repos/builtin/packages/amrfinder/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/amrvis/package.py b/var/spack/repos/builtin/packages/amrvis/package.py
index ba25d7dff9f65f..16bfd5a732c0f2 100644
--- a/var/spack/repos/builtin/packages/amrvis/package.py
+++ b/var/spack/repos/builtin/packages/amrvis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ams/package.py b/var/spack/repos/builtin/packages/ams/package.py
index ba75a25e63f6c3..4cf123a848eed0 100644
--- a/var/spack/repos/builtin/packages/ams/package.py
+++ b/var/spack/repos/builtin/packages/ams/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,12 @@ class Ams(CMakePackage, CudaPackage):
maintainers("koparasy", "lpottier")
version("develop", branch="develop", submodules=False)
+ version(
+ "11.08.23.alpha",
+ tag="11.08.23.alpha",
+ commit="1a42b29268bb916dae301654ca0b92fdfe288732",
+ submodules=False,
+ )
version(
"07.25.23-alpha",
tag="07.25.23-alpha",
diff --git a/var/spack/repos/builtin/packages/anaconda2/package.py b/var/spack/repos/builtin/packages/anaconda2/package.py
deleted file mode 100644
index 765a90505b5a5c..00000000000000
--- a/var/spack/repos/builtin/packages/anaconda2/package.py
+++ /dev/null
@@ -1,158 +0,0 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
-# Spack Project Developers. See the top-level COPYRIGHT file for details.
-#
-# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
-from os.path import split
-
-from spack.package import *
-from spack.util.environment import EnvironmentModifications
-
-
-class Anaconda2(Package):
- """Anaconda is a free and open-source distribution of the Python and
- R programming languages for scientific computing, that aims to
- simplify package management and deployment. Package versions are
- managed by the package management system conda.
- """
-
- homepage = "https://www.anaconda.com"
- url = "https://repo.anaconda.com/archive/Anaconda2-2019.10-Linux-x86_64.sh"
-
- maintainers("ajkotobi")
-
- version(
- "2019.10",
- sha256="8b2e7dea2da7d8cc18e822e8ec1804052102f4eefb94c1b3d0e586e126e8cd2f",
- expand=False,
- deprecated=True,
- )
- version(
- "2019.07",
- sha256="189e16e7adf9ba4b7b7d06ecdc10ce4ad4153e5e3505b9331f3d142243e18e97",
- expand=False,
- deprecated=True,
- )
- version(
- "2019.03",
- sha256="cedfee5b5a3f62fcdac0a1d2d12396d0f232d2213d24d6dc893df5d8e64b8773",
- expand=False,
- deprecated=True,
- )
- version(
- "2018.12",
- sha256="1821d4b623ed449e0acb6df3ecbabd3944cffa98f96a5234b7a102a7c0853dc6",
- expand=False,
- deprecated=True,
- )
- version(
- "5.3.1",
- sha256="f0650ad2f9ca4ae3f3162d7204a32950bc794f37f322eb47b5ad9412454f998c",
- expand=False,
- deprecated=True,
- )
- version(
- "5.3.0",
- sha256="50eeaab24bfa2472bc6485fe8f0e612ed67e561eda1ff9fbf07b62c96443c1be",
- expand=False,
- deprecated=True,
- )
- version(
- "5.2.0",
- sha256="cb0d7a08b0e2cec4372033d3269979b4e72e2353ffd1444f57cb38bc9621219f",
- expand=False,
- deprecated=True,
- )
- version(
- "5.1.0",
- sha256="5f26ee92860d1dffdcd20910ff2cf75572c39d2892d365f4e867a611cca2af5b",
- expand=False,
- deprecated=True,
- )
- version(
- "5.0.1",
- sha256="23c676510bc87c95184ecaeb327c0b2c88007278e0d698622e2dd8fb14d9faa4",
- expand=False,
- deprecated=True,
- )
- version(
- "5.0.0.1",
- sha256="18730808d863a5c194ab3f59dd395c1a63cbd769c9bfb1df65efe61ee62fc6d6",
- expand=False,
- deprecated=True,
- )
- version(
- "5.0.0",
- sha256="58a7117f89c40275114bf7e824a613a963da2b0fe63f2ec3c1175fea785b468e",
- expand=False,
- deprecated=True,
- )
- version(
- "4.4.0",
- sha256="2d30b91ed4d215b6b4a15162a3389e9057b15445a0c02da71bd7bd272e7b824e",
- expand=False,
- deprecated=True,
- )
- version(
- "4.3.1",
- sha256="e9b8f2645df6b1527ba56d61343162e0794acc3ee8dde2a6bba353719e2d878d",
- expand=False,
- deprecated=True,
- )
- version(
- "4.3.0",
- sha256="7c52e6e99aabb24a49880130615a48e685da444c3c14eb48d6a65f3313bf745c",
- expand=False,
- deprecated=True,
- )
- version(
- "4.2.0",
- sha256="beee286d24fb37dd6555281bba39b3deb5804baec509a9dc5c69185098cf661a",
- expand=False,
- deprecated=True,
- )
- version(
- "4.1.1",
- sha256="9413b1d3ca9498ba6f53913df9c43d685dd973440ff10b7fe0c45b1cbdcb582e",
- expand=False,
- deprecated=True,
- )
- version(
- "4.1.0",
- sha256="3b7e504ca0132fb555d1f10e174cae07007f1bc6898cad0f7d416a68aca01f45",
- expand=False,
- deprecated=True,
- )
- version(
- "4.0.0",
- sha256="ae312143952ca00e061a656c2080e0e4fd3532721282ba8e2978177cad71a5f0",
- expand=False,
- deprecated=True,
- )
- version(
- "2.5.0",
- sha256="e10abf459cde4a838bd6fc5ca03023c3401b81ad470627acde5a298d56715321",
- expand=False,
- deprecated=True,
- )
- version(
- "2.4.1",
- sha256="2de682c96edf8cca2852071a84ff860025fbe8c502218e1995acd5ab47e8c9ac",
- expand=False,
- deprecated=True,
- )
- version(
- "2.4.0",
- sha256="49d19834da06b1b82b6fa85bc647d2e78fa5957d0cbae3ccd6c695a541befa6b",
- expand=False,
- deprecated=True,
- )
-
- def install(self, spec, prefix):
- dir, anaconda_script = split(self.stage.archive_file)
- bash = which("bash")
- bash(anaconda_script, "-b", "-f", "-p", self.prefix)
-
- def setup_run_environment(self, env):
- filename = self.prefix.etc.join("profile.d").join("conda.sh")
- env.extend(EnvironmentModifications.from_sourcing_file(filename))
diff --git a/var/spack/repos/builtin/packages/anaconda3/package.py b/var/spack/repos/builtin/packages/anaconda3/package.py
index c405e9d9034197..79b1074bb7da3a 100644
--- a/var/spack/repos/builtin/packages/anaconda3/package.py
+++ b/var/spack/repos/builtin/packages/anaconda3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/andi/package.py b/var/spack/repos/builtin/packages/andi/package.py
index 2fafd5e562d8ae..e7a2052c75fe5b 100644
--- a/var/spack/repos/builtin/packages/andi/package.py
+++ b/var/spack/repos/builtin/packages/andi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Andi(AutotoolsPackage):
url = "https://github.com/EvolBioInf/andi/archive/v0.10.tar.gz"
maintainers("snehring")
+ license("GPL-3.0-or-later")
+
version("0.14", sha256="2c9e11524f38e74fe3f981e6acd9527c1a1ca30994a30c5e86808ba5165a25b7")
version("0.10", sha256="1ff371de0b6db4080e402ded2687947dc2d6913e28626edec21dcf5149489ee8")
diff --git a/var/spack/repos/builtin/packages/angsd/package.py b/var/spack/repos/builtin/packages/angsd/package.py
index 4e8caed26ba27f..a682aaf4dcb84e 100644
--- a/var/spack/repos/builtin/packages/angsd/package.py
+++ b/var/spack/repos/builtin/packages/angsd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/anicalculator/package.py b/var/spack/repos/builtin/packages/anicalculator/package.py
index 9d002975d98485..00f7c757786d74 100644
--- a/var/spack/repos/builtin/packages/anicalculator/package.py
+++ b/var/spack/repos/builtin/packages/anicalculator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ant/package.py b/var/spack/repos/builtin/packages/ant/package.py
index f76255073062e4..5a5d1fa6f6f754 100644
--- a/var/spack/repos/builtin/packages/ant/package.py
+++ b/var/spack/repos/builtin/packages/ant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Ant(Package):
homepage = "https://ant.apache.org/"
url = "https://archive.apache.org/dist/ant/source/apache-ant-1.9.7-src.tar.gz"
+ license("Apache-2.0")
+
version("1.10.13", sha256="da006f4c888d41d0f3f213565e48aeff73e4d8a6196e494121d8da1e567a8406")
# https://nvd.nist.gov/vuln/detail/CVE-2020-1945
diff --git a/var/spack/repos/builtin/packages/antimony/package.py b/var/spack/repos/builtin/packages/antimony/package.py
index 498789ba601367..dfcc478f9368bf 100644
--- a/var/spack/repos/builtin/packages/antimony/package.py
+++ b/var/spack/repos/builtin/packages/antimony/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Antimony(CMakePackage):
maintainers("rblake-llnl")
+ license("BSD-3-Clause")
+
version("2.8", sha256="7e3e38706c074b72e241ac56ef4ce23e87ef8c718c70f29b2207f1847c43770f")
version("2.7", sha256="7ad181cac632282ae77ced09388dd92db87ea4683eed8c45f2b43861ae2acad4")
version("2.6", sha256="afc8dc5ec6bc2cd3085038f80362327456f219171b09a13f775b50550c8b1d87")
diff --git a/var/spack/repos/builtin/packages/antlr/package.py b/var/spack/repos/builtin/packages/antlr/package.py
index c38c02baf117bb..87cab3ca5b8e4c 100644
--- a/var/spack/repos/builtin/packages/antlr/package.py
+++ b/var/spack/repos/builtin/packages/antlr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Antlr(AutotoolsPackage):
homepage = "https://www.antlr2.org/"
url = "http://www.antlr2.org/download/antlr-2.7.7.tar.gz"
+ license("ANTLR-PD")
+
version("2.7.7", sha256="853aeb021aef7586bda29e74a6b03006bcb565a755c86b66032d8ec31b67dbb9")
# Fixes build with recent versions of GCC
diff --git a/var/spack/repos/builtin/packages/antlr4-complete/package.py b/var/spack/repos/builtin/packages/antlr4-complete/package.py
new file mode 100644
index 00000000000000..ed4c92b94d318f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/antlr4-complete/package.py
@@ -0,0 +1,63 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+import glob
+
+from spack.package import *
+
+
+class Antlr4Complete(Package):
+ """
+ This package provides complete ANTLR tool, Java runtime and ST,
+ which lets you run the tool and the generated code by
+ version 4 of ANTLR (ANother Tool for Language Recognition).
+ """
+
+ homepage = "https://www.antlr.org"
+ url = "https://www.antlr.org/download/antlr-4.13.1-complete.jar"
+
+ version(
+ "4.13.1",
+ sha256="bc13a9c57a8dd7d5196888211e5ede657cb64a3ce968608697e4f668251a8487",
+ expand=False,
+ )
+ version(
+ "4.12.0",
+ sha256="88f18a2bfac0dde1009eda5c7dce358a52877faef7868f56223a5bcc15329e43",
+ expand=False,
+ )
+ version(
+ "4.11.1",
+ sha256="62975e192b4af2622b72b5f0131553ee3cbce97f76dc2a41632dcc55e25473e1",
+ expand=False,
+ )
+ version(
+ "4.10.1",
+ sha256="41949d41f20d31d5b8277187735dd755108df52b38db6c865108d3382040f918",
+ expand=False,
+ )
+ version(
+ "4.9.3",
+ sha256="afcd40946d3de4d81e28d7c88d467289e0587285d27adb172aecc5494a17df36",
+ expand=False,
+ )
+ version(
+ "4.7.2",
+ sha256="6852386d7975eff29171dae002cc223251510d35f291ae277948f381a7b380b4",
+ expand=False,
+ )
+
+ depends_on("java@8.0:", type="run", when="@4.10.0:")
+ depends_on("java@7.0:", type="run", when="@:4.9.3")
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ rename(glob.glob("antlr-*-complete.jar")[0], "antlr-complete.jar")
+ install("antlr-complete.jar", prefix.bin)
+
+ def setup_run_environment(self, env):
+ env.set("ANTLR4_JAR_LOCATION", join_path(self.prefix.bin, "antlr-complete.jar"))
+ env.set("ANTLR_JAR_LOCATION", join_path(self.prefix.bin, "antlr-complete.jar"))
+ env.set("ANTLR_EXECUTABLE", join_path(self.prefix.bin, "antlr-complete.jar"))
diff --git a/var/spack/repos/builtin/packages/antlr4-cpp-runtime/package.py b/var/spack/repos/builtin/packages/antlr4-cpp-runtime/package.py
new file mode 100644
index 00000000000000..281433c33f2d53
--- /dev/null
+++ b/var/spack/repos/builtin/packages/antlr4-cpp-runtime/package.py
@@ -0,0 +1,39 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Antlr4CppRuntime(CMakePackage):
+ """
+ This package provides runtime libraries required to use parsers
+ generated for the Cpp language by version 4 of ANTLR (ANother Tool
+ for Language Recognition).
+ """
+
+ homepage = "https://www.antlr.org"
+ url = "https://www.antlr.org/download/antlr4-cpp-runtime-4.13.1-source.zip"
+ version("4.13.1", sha256="d350e09917a633b738c68e1d6dc7d7710e91f4d6543e154a78bb964cfd8eb4de")
+ version("4.12.0", sha256="642d59854ddc0cebb5b23b2233ad0a8723eef20e66ef78b5b898d0a67556893b")
+ version("4.11.1", sha256="8018c335316e61bb768e5bd4a743a9303070af4e1a8577fa902cd053c17249da")
+ version("4.10.1", sha256="2a6e602fd593e0a65d8d310c0952bbdfff34ef361362ae87b2a850b62d36f0b6")
+ version("4.9.3", sha256="5f0af6efd81f476c3e775c486eb0a71c25d6bbc14373e88a64690e2738d68e03")
+ version("4.7.2", sha256="8631a39116684638168663d295a969ad544cead3e6089605a44fea34ec01f31a")
+
+ variant(
+ "clanglibcpp", default=False, description="Compile with clang libc++ instead of libstdc++"
+ )
+
+ depends_on("libuuid", type=["build", "link"], when="@:4.10.1")
+
+ def cmake_args(self):
+ args = [
+ self.define("ANTLR4_INSTALL", "On"),
+ self.define("ANTLR_BUILD_CPP_TESTS", "Off"),
+ self.define("WITH_DEMO", "Off"),
+ self.define("WITH_LIBCXX", "On" if "+clanglibcpp" in self.spec else "Off"),
+ self.define("WITH_STATIC_CRT", "Off"),
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/ants/package.py b/var/spack/repos/builtin/packages/ants/package.py
index 8e5001dddeb49c..7903536777049d 100644
--- a/var/spack/repos/builtin/packages/ants/package.py
+++ b/var/spack/repos/builtin/packages/ants/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/any2fasta/package.py b/var/spack/repos/builtin/packages/any2fasta/package.py
index 690bfc3ed1b3b9..8574bb3ae592fb 100644
--- a/var/spack/repos/builtin/packages/any2fasta/package.py
+++ b/var/spack/repos/builtin/packages/any2fasta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Any2fasta(Package):
homepage = "https://github.com/tseemann/any2fasta"
url = "https://github.com/tseemann/any2fasta/archive/refs/tags/v0.4.2.tar.gz"
+ license("GPL-3.0-only")
+
version("0.4.2", sha256="e4cb2ddccda6298f5b0aee0c10184a75307a08b584d2abbfbf0d59d37b197e73")
version("0.2.3", sha256="197cd1e18adebe28b71a1448c5107804b7093b2aa83c4bcfd8edd3fc4ed485df")
version("0.1.2", sha256="ef035595756df7dca1f8a503ee26f8479393953bc67d8870c9965b6d5ade2674")
diff --git a/var/spack/repos/builtin/packages/aocc/package.py b/var/spack/repos/builtin/packages/aocc/package.py
index 229a37bb5375c5..8514400ae7a44e 100644
--- a/var/spack/repos/builtin/packages/aocc/package.py
+++ b/var/spack/repos/builtin/packages/aocc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -91,3 +91,13 @@ def license_reminder(self):
def install(self, spec, prefix):
print("Installing AOCC Compiler ... ")
install_tree(".", prefix)
+
+ @run_after("install")
+ def cfg_files(self):
+ # Add path to gcc/g++ such that clang/clang++ can always find a full gcc installation
+ # including libstdc++.so and header files.
+ if self.spec.satisfies("%gcc") and self.compiler.cxx is not None:
+ compiler_options = "--gcc-toolchain={}".format(self.compiler.prefix)
+ for compiler in ["clang", "clang++"]:
+ with open(join_path(self.prefix.bin, "{}.cfg".format(compiler)), "w") as f:
+ f.write(compiler_options)
diff --git a/var/spack/repos/builtin/packages/aocl-sparse/package.py b/var/spack/repos/builtin/packages/aocl-sparse/package.py
index 7adf7edaef6a1f..a3f82377dd94cd 100644
--- a/var/spack/repos/builtin/packages/aocl-sparse/package.py
+++ b/var/spack/repos/builtin/packages/aocl-sparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -30,6 +30,8 @@ class AoclSparse(CMakePackage):
maintainers("amd-toolchain-support")
+ license("MIT")
+
version("4.1", sha256="35ef437210bc25fdd802b462eaca830bfd928f962569b91b592f2866033ef2bb")
version("4.0", sha256="68524e441fdc7bb923333b98151005bed39154d9f4b5e8310b5c37de1d69c2c3")
version("3.2", sha256="db7d681a8697d6ef49acf3e97e8bec35b048ce0ad74549c3b738bbdff496618f")
diff --git a/var/spack/repos/builtin/packages/aocl-utils/package.py b/var/spack/repos/builtin/packages/aocl-utils/package.py
index cc0e8ff4d61853..7b279e8e4758ee 100644
--- a/var/spack/repos/builtin/packages/aocl-utils/package.py
+++ b/var/spack/repos/builtin/packages/aocl-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -35,6 +35,8 @@ class AoclUtils(CMakePackage):
maintainers("amd-toolchain-support")
+ license("BSD-3-Clause")
+
version("4.1", sha256="a2f271f5eef07da366dae421af3c89286ebb6239047a31a46451758d4a06bc85")
variant("doc", default=False, description="enable documentation")
diff --git a/var/spack/repos/builtin/packages/aoflagger/package.py b/var/spack/repos/builtin/packages/aoflagger/package.py
index 00938bf009a315..66309bf9fd9589 100644
--- a/var/spack/repos/builtin/packages/aoflagger/package.py
+++ b/var/spack/repos/builtin/packages/aoflagger/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Aoflagger(CMakePackage):
homepage = "https://sourceforge.net/projects/aoflagger/"
url = "https://downloads.sourceforge.net/project/aoflagger/aoflagger-2.10.0/aoflagger-2.10.0.tar.bz2"
+ license("GPL-3.0-or-later")
+
version("2.10.0", sha256="3ec1188d37101acf2029575ebc09c50b19c158c88a12b55ac5d25a96bd8fc18d")
depends_on("casacore+python~fftpack@1.10:")
diff --git a/var/spack/repos/builtin/packages/aom/package.py b/var/spack/repos/builtin/packages/aom/package.py
index 3139e58d28dbf6..2862b40edca617 100644
--- a/var/spack/repos/builtin/packages/aom/package.py
+++ b/var/spack/repos/builtin/packages/aom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,6 +11,9 @@ class Aom(CMakePackage):
homepage = "https://aomedia.googlesource.com/aom"
git = "https://aomedia.googlesource.com/aom"
+
+ license("BSD-2-Clause AND AOM-Patent-License-1.0", checked_by="tgamblin")
+
version("v1.0.0-errata1", commit="29d8ce4836630df5cc7ab58f1afc4836765fc212")
depends_on("yasm")
diff --git a/var/spack/repos/builtin/packages/aomp/package.py b/var/spack/repos/builtin/packages/aomp/package.py
index e1bb094214b2da..6a9603a9deb912 100644
--- a/var/spack/repos/builtin/packages/aomp/package.py
+++ b/var/spack/repos/builtin/packages/aomp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -7,8 +7,8 @@
from spack.package import *
-tools_url = "https://github.com/ROCm-Developer-Tools"
-compute_url = "https://github.com/RadeonOpenCompute"
+tools_url = "https://github.com/ROCm"
+compute_url = "https://github.com/ROCm"
aomp = [
@@ -368,7 +368,7 @@ def install(self, spec, prefix):
"-DCMAKE_C_COMPILER={0}".format(self.compiler.cc),
"-DCMAKE_CXX_COMPILER={0}".format(self.compiler.cxx),
"-DCMAKE_ASM_COMPILER={0}".format(self.compiler.cc),
- "-DBUG_REPORT_URL=https://github.com/ROCm-Developer-Tools/aomp",
+ "-DBUG_REPORT_URL=https://github.com/ROCm/aomp",
"-DLLVM_ENABLE_BINDINGS=OFF",
"-DLLVM_INCLUDE_BENCHMARKS=OFF",
"-DLLVM_BUILD_TESTS=OFF",
diff --git a/var/spack/repos/builtin/packages/apachetop/package.py b/var/spack/repos/builtin/packages/apachetop/package.py
index bb6459077a8441..060c5e1f878c1c 100644
--- a/var/spack/repos/builtin/packages/apachetop/package.py
+++ b/var/spack/repos/builtin/packages/apachetop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/apcomp/package.py b/var/spack/repos/builtin/packages/apcomp/package.py
index b7352188e6d160..b98f324b77e692 100644
--- a/var/spack/repos/builtin/packages/apcomp/package.py
+++ b/var/spack/repos/builtin/packages/apcomp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ape/package.py b/var/spack/repos/builtin/packages/ape/package.py
index 39b833ab0e10d6..0164ef29f1ecd6 100644
--- a/var/spack/repos/builtin/packages/ape/package.py
+++ b/var/spack/repos/builtin/packages/ape/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/aperture-photometry/package.py b/var/spack/repos/builtin/packages/aperture-photometry/package.py
index 2d74720cbe6561..cb32ba52a75025 100644
--- a/var/spack/repos/builtin/packages/aperture-photometry/package.py
+++ b/var/spack/repos/builtin/packages/aperture-photometry/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/apex/package.py b/var/spack/repos/builtin/packages/apex/package.py
index bf6ea039acbf2f..dd3223f00ef9e4 100644
--- a/var/spack/repos/builtin/packages/apex/package.py
+++ b/var/spack/repos/builtin/packages/apex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -115,6 +115,9 @@ class Apex(CMakePackage):
# Conflicts
conflicts("+jemalloc", when="+gperftools")
conflicts("+plugins", when="~activeharmony")
+ # Compatibility fixed in 2.6.0 with
+ # https://github.com/UO-OACISS/apex/commit/4a7bdbb93367c3b1172ccb978825c67316f8bf4a
+ conflicts("^otf2@3:", when="@:2.5")
# https://github.com/UO-OACISS/apex/pull/177#issuecomment-1726322959
conflicts("+openmp", when="%gcc")
diff --git a/var/spack/repos/builtin/packages/apfel/package.py b/var/spack/repos/builtin/packages/apfel/package.py
index e5be0af541b375..e5a797024e3451 100644
--- a/var/spack/repos/builtin/packages/apfel/package.py
+++ b/var/spack/repos/builtin/packages/apfel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Apfel(AutotoolsPackage):
tags = ["hep"]
+ license("GPL-3.0-or-later")
+
version("3.0.6", sha256="7063c9eee457e030b97926ac166cdaedd84625b31397e1dfd01ae47371fb9f61")
version("3.0.4", sha256="c7bfae7fe2dc0185981850f2fe6ae4842749339d064c25bf525b4ef412bbb224")
diff --git a/var/spack/repos/builtin/packages/apktool/package.py b/var/spack/repos/builtin/packages/apktool/package.py
index d991d3696119dc..b57cbf3d9c5807 100644
--- a/var/spack/repos/builtin/packages/apktool/package.py
+++ b/var/spack/repos/builtin/packages/apktool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Apktool(Package):
homepage = "https://ibotpeaches.github.io/Apktool/"
url = "https://github.com/iBotPeaches/Apktool/archive/refs/tags/v2.6.0.tar.gz"
+ license("Apache-2.0")
+
version("2.7.0", sha256="17d12a2955a46c48afb9b6855651016ac17626512216c91e8b2adab0013d3056")
version("2.6.1", sha256="8932e77d963b9e0e07227422d82ed4a355e8aa268bad1361e5cfaffa8e4d52ee")
version("2.6.0", sha256="74739cdb1434ca35ec34e51ca7272ad3f378ae3ed0a2d5805d9a2fab5016037f")
diff --git a/var/spack/repos/builtin/packages/apple-clang/detection_test.yaml b/var/spack/repos/builtin/packages/apple-clang/detection_test.yaml
new file mode 100644
index 00000000000000..dc5b7106ec50f4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/apple-clang/detection_test.yaml
@@ -0,0 +1,35 @@
+paths:
+ # Apple Clang on MacBook Pro (Catalina)
+ - layout:
+ - executables:
+ - "bin/clang"
+ - "bin/clang++"
+ script: |
+ echo "Apple clang version 11.0.0 (clang-1100.0.33.8)"
+ echo "Target: x86_64-apple-darwin19.5.0"
+ echo "Thread model: posix"
+ echo "InstalledDir: /Library/Developer/CommandLineTools/usr/bin"
+ results:
+ - spec: 'apple-clang@11.0.0'
+ # Apple Clang on Apple M1 (Ventura)
+ - layout:
+ - executables:
+ - "bin/clang"
+ - "bin/clang++"
+ script: |
+ echo "Apple clang version 15.0.0 (clang-1500.0.40.1)"
+ echo "Target: arm64-apple-darwin22.6.0"
+ echo "Thread model: posix"
+ echo "InstalledDir: /Library/Developer/CommandLineTools/usr/bin"
+ results:
+ - spec: 'apple-clang@15.0.0'
+ # Test that missing a compiler prevents the package from being detected
+ - layout:
+ - executables:
+ - "bin/clang"
+ script: |
+ echo "Apple clang version 11.0.0 (clang-1100.0.33.8)"
+ echo "Target: x86_64-apple-darwin19.5.0"
+ echo "Thread model: posix"
+ echo "InstalledDir: /Library/Developer/CommandLineTools/usr/bin"
+ results: [ ]
diff --git a/var/spack/repos/builtin/packages/apple-clang/package.py b/var/spack/repos/builtin/packages/apple-clang/package.py
new file mode 100644
index 00000000000000..634aedf4ebc812
--- /dev/null
+++ b/var/spack/repos/builtin/packages/apple-clang/package.py
@@ -0,0 +1,76 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+import re
+
+from spack.package import *
+
+
+class AppleClang(BundlePackage):
+ """Apple's Clang compiler"""
+
+ homepage = "https://developer.apple.com/videos/developer-tools/compiler-and-llvm"
+ has_code = False
+
+ maintainers("alalazo")
+
+ executables = ["^clang$", r"^clang\+\+$", "^ld.lld$", "^lldb$"]
+
+ @classmethod
+ def determine_version(cls, exe):
+ version_regex = re.compile(
+ # Apple's LLVM compiler has its own versions, which are
+ # different from vanilla LLVM
+ r"^Apple (?:LLVM|clang) version ([^ )]+)",
+ # Multi-line, since 'Apple clang' may not be on the first line
+ # in particular, when run as gcc, it seems to output
+ # "Configured with: --prefix=..." as the first line
+ re.M,
+ )
+ try:
+ compiler = Executable(exe)
+ output = compiler("--version", output=str, error=str)
+ match = version_regex.search(output)
+ if match:
+ return match.group(match.lastindex)
+ except Exception:
+ pass
+
+ return None
+
+ @classmethod
+ def determine_variants(cls, exes, version_str):
+ compilers = {}
+ for exe in exes:
+ if "clang++" in exe:
+ compilers["cxx"] = exe
+ elif "clang" in exe:
+ compilers["c"] = exe
+ elif "ld.lld" in exe:
+ compilers["ld"] = exe
+ elif "lldb" in exe:
+ compilers["lldb"] = exe
+
+ return "", {"compilers": compilers}
+
+ @classmethod
+ def validate_detected_spec(cls, spec, extra_attributes):
+ msg = f'the extra attribute "compilers" must be set for the detected spec "{spec}"'
+ assert "compilers" in extra_attributes, msg
+ compilers = extra_attributes["compilers"]
+ for key in ("c", "cxx"):
+ msg = f"{key} compiler not found for {spec}"
+ assert key in compilers, msg
+
+ @property
+ def cc(self):
+ msg = "apple-clang is expected to be an external spec"
+ assert self.spec.concrete and self.spec.external, msg
+ return self.spec.extra_attributes["compilers"].get("c", None)
+
+ @property
+ def cxx(self):
+ msg = "apple-clang is expected to be an external spec"
+ assert self.spec.concrete and self.spec.external, msg
+ return self.spec.extra_attributes["compilers"].get("cxx", None)
diff --git a/var/spack/repos/builtin/packages/apple-gl/package.py b/var/spack/repos/builtin/packages/apple-gl/package.py
index 49c764cbb37e33..f0140bc2d74c30 100644
--- a/var/spack/repos/builtin/packages/apple-gl/package.py
+++ b/var/spack/repos/builtin/packages/apple-gl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/apple-glu/package.py b/var/spack/repos/builtin/packages/apple-glu/package.py
index ba20061d3f6fe2..2ccf686cf9ef80 100644
--- a/var/spack/repos/builtin/packages/apple-glu/package.py
+++ b/var/spack/repos/builtin/packages/apple-glu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/apple-libunwind/package.py b/var/spack/repos/builtin/packages/apple-libunwind/package.py
index 214782a7a69362..d549ddab36232e 100644
--- a/var/spack/repos/builtin/packages/apple-libunwind/package.py
+++ b/var/spack/repos/builtin/packages/apple-libunwind/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/apple-libuuid/package.py b/var/spack/repos/builtin/packages/apple-libuuid/package.py
index 4c7526d6118537..612f1c6f42bf27 100644
--- a/var/spack/repos/builtin/packages/apple-libuuid/package.py
+++ b/var/spack/repos/builtin/packages/apple-libuuid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,28 +18,14 @@ class AppleLibuuid(BundlePackage):
# Only supported on 'platform=darwin'
conflicts("platform=linux")
conflicts("platform=cray")
+ conflicts("platform=windows")
@property
- def libs(self):
- """Export the Apple libuuid library.
-
- According to https://bugs.freedesktop.org/show_bug.cgi?id=105366,
- libuuid is provided as part of libsystem_c. The Apple libsystem_c
- library cannot be linked to directly using an absolute path; doing so
- will cause the linker to throw an error 'cannot link directly with
- /usr/lib/system/libsystem_c.dylib' and the linker will suggest linking
- with System.framework instead. Linking to this framework is equivalent
- to linking with libSystem.dylib, which can be confirmed on a macOS
- system by executing at a terminal the command `ls -l
- /System/Library/Frameworks/System.Framework` -- the file "System" is a
- symlink to `/usr/lib/libSystem.B.dylib`, and `/usr/lib/libSystem.dylib`
- also symlinks to this file. Running `otool -L /usr/lib/libSystem.dylib`
- confirms that it will link dynamically to
- `/usr/lib/system/libsystem_c.dylib`."""
-
- return LibraryList("/usr/lib/libSystem.dylib")
+ def headers(self):
+ return HeaderList(
+ join_path(self.prefix, "System/Library/Frameworks/Kernel.framework/Headers")
+ )
@property
- def headers(self):
- """Export the Apple libuuid header."""
- return HeaderList(self.prefix.include.uuid.join("uuid.h"))
+ def libs(self):
+ return LibraryList(join_path(self.prefix, "System/Library/Frameworks/Kernel.framework"))
diff --git a/var/spack/repos/builtin/packages/applewmproto/package.py b/var/spack/repos/builtin/packages/applewmproto/package.py
index 7133da2c39426a..4acc315b65da49 100644
--- a/var/spack/repos/builtin/packages/applewmproto/package.py
+++ b/var/spack/repos/builtin/packages/applewmproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Applewmproto(AutotoolsPackage, XorgPackage):
homepage = "https://cgit.freedesktop.org/xorg/proto/applewmproto"
xorg_mirror_path = "proto/applewmproto-1.4.2.tar.gz"
+ license("MIT")
+
version("1.4.2", sha256="ff8ac07d263a23357af2d6ff0cca3c1d56b043ddf7797a5a92ec624f4704df2e")
depends_on("pkgconfig", type="build")
diff --git a/var/spack/repos/builtin/packages/appres/package.py b/var/spack/repos/builtin/packages/appres/package.py
index 0f13fa402d2032..588af73fbb15c6 100644
--- a/var/spack/repos/builtin/packages/appres/package.py
+++ b/var/spack/repos/builtin/packages/appres/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/apptainer/package.py b/var/spack/repos/builtin/packages/apptainer/package.py
index d1b9ed71e39365..2fbe795b7702ea 100644
--- a/var/spack/repos/builtin/packages/apptainer/package.py
+++ b/var/spack/repos/builtin/packages/apptainer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -26,6 +26,12 @@ class Apptainer(SingularityBase):
url = "https://github.com/apptainer/apptainer/releases/download/v1.0.2/apptainer-1.0.2.tar.gz"
git = "https://github.com/apptainer/apptainer.git"
+ license(
+ "BSD-3-Clause AND BSD-3-Clause-LBNL"
+ " AND BSD-2-Clause AND Apache-2.0 AND MIT AND MPL-2.0 AND Unlicense",
+ checked_by="tgamblin",
+ )
+
version("main", branch="main")
version("1.1.9", sha256="c615777539154288542cf393d3fd44c04ccb3260bc6330dc324d4e4ebe902bfa")
version("1.1.7", sha256="e6d3956a26c3965703402e17f153ba07f59bf710068806462b314d2d04e825e7")
diff --git a/var/spack/repos/builtin/packages/apr-util/package.py b/var/spack/repos/builtin/packages/apr-util/package.py
index dc0fad53d225d9..8638f880c0085e 100644
--- a/var/spack/repos/builtin/packages/apr-util/package.py
+++ b/var/spack/repos/builtin/packages/apr-util/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class AprUtil(AutotoolsPackage):
homepage = "https://apr.apache.org/"
url = "https://archive.apache.org/dist/apr/apr-util-1.6.1.tar.gz"
+ license("Apache-2.0")
+
version("1.6.3", sha256="2b74d8932703826862ca305b094eef2983c27b39d5c9414442e9976a9acf1983")
version("1.6.1", sha256="b65e40713da57d004123b6319828be7f1273fbc6490e145874ee1177e112c459")
version("1.6.0", sha256="483ef4d59e6ac9a36c7d3fd87ad7b9db7ad8ae29c06b9dd8ff22dda1cc416389")
diff --git a/var/spack/repos/builtin/packages/apr/package.py b/var/spack/repos/builtin/packages/apr/package.py
index 45de21e3ee02af..c56f4eb7a143a0 100644
--- a/var/spack/repos/builtin/packages/apr/package.py
+++ b/var/spack/repos/builtin/packages/apr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Apr(AutotoolsPackage):
homepage = "https://apr.apache.org/"
url = "https://archive.apache.org/dist/apr/apr-1.7.0.tar.gz"
+ license("Apache-2.0")
+
version("1.7.4", sha256="a4137dd82a185076fa50ba54232d920a17c6469c30b0876569e1c2a05ff311d9")
version("1.7.3", sha256="af9bfd5b8a04425d6b419673f3e0a7656fade226aae78180d93f8a6f2d3d1c09")
version("1.7.2", sha256="3d8999b216f7b6235343a4e3d456ce9379aa9a380ffb308512f133f0c5eb2db9")
diff --git a/var/spack/repos/builtin/packages/aragorn/package.py b/var/spack/repos/builtin/packages/aragorn/package.py
index 8ac7894192f457..47446378dbefab 100644
--- a/var/spack/repos/builtin/packages/aragorn/package.py
+++ b/var/spack/repos/builtin/packages/aragorn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/arbor/package.py b/var/spack/repos/builtin/packages/arbor/package.py
index 1215ee4fc50076..c212d0247ec61c 100644
--- a/var/spack/repos/builtin/packages/arbor/package.py
+++ b/var/spack/repos/builtin/packages/arbor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Arbor(CMakePackage, CudaPackage):
url = "https://github.com/arbor-sim/arbor/releases/download/v0.8.1/arbor-v0.8.1-full.tar.gz"
maintainers = ["thorstenhater", "brenthuisman"]
+ license("BSD-3-Clause")
+
version("master", branch="master")
version("develop")
version(
diff --git a/var/spack/repos/builtin/packages/arborx/0001-update-major-version-required-for-rocm-6.0.patch b/var/spack/repos/builtin/packages/arborx/0001-update-major-version-required-for-rocm-6.0.patch
new file mode 100644
index 00000000000000..009a40f9844c5f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/arborx/0001-update-major-version-required-for-rocm-6.0.patch
@@ -0,0 +1,24 @@
+From a31d3766f5a7a3a3e20d5bc0c315ad6295a82298 Mon Sep 17 00:00:00 2001
+From: Afzal Patel
+Date: Wed, 17 Jan 2024 11:50:18 -0800
+Subject: [PATCH] Changed required version of rocthrust to 3 for rocm 6.0
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8c3c99a..1af6d13 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -22,7 +22,7 @@ if(Kokkos_ENABLE_HIP AND ARBORX_ENABLE_ROCTHRUST)
+ # Require at least rocThrust-2.10.5 (that comes with ROCm 3.9) because
+ # rocPRIM dependency is not set properly in exported configuration for
+ # earlier versions
+- find_package(rocthrust 2.10.5 REQUIRED CONFIG)
++ find_package(rocthrust 3 REQUIRED CONFIG)
+ target_link_libraries(ArborX INTERFACE roc::rocthrust)
+ endif()
+
+--
+2.25.1
diff --git a/var/spack/repos/builtin/packages/arborx/package.py b/var/spack/repos/builtin/packages/arborx/package.py
index e766d8897b3b15..1414a22d7a657c 100644
--- a/var/spack/repos/builtin/packages/arborx/package.py
+++ b/var/spack/repos/builtin/packages/arborx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,7 +20,10 @@ class Arborx(CMakePackage, CudaPackage, ROCmPackage):
test_requires_compiler = True
+ license("BSD-3-Clause")
+
version("master", branch="master")
+ version("1.5", sha256="c26f23c17e749ccf3e2d353a68969aa54d31b8e720dbfdbc2cef16c5d8477e9e")
version("1.4.1", sha256="2ca828ef6615859654b233a7df17017e7cfd904982b80026ec7409eb46b77a95")
version("1.4", sha256="803a1018a6305cf3fea161172b3ada49537f59261279d91c2abbcce9492ee7af")
version("1.3", sha256="3f1e17f029a460ab99f8396e2772cec908eefc4bf3868c8828907624a2d0ce5d")
@@ -68,6 +71,7 @@ class Arborx(CMakePackage, CudaPackage, ROCmPackage):
depends_on("kokkos@3.4.00:", when="@1.2~trilinos")
depends_on("kokkos@3.6.00:", when="@1.3~trilinos")
depends_on("kokkos@3.7.01:", when="@1.4:~trilinos")
+ depends_on("kokkos@4.0.00:", when="@1.5:~trilinos")
for backend in kokkos_backends:
depends_on("kokkos+%s" % backend.lower(), when="~trilinos+%s" % backend.lower())
@@ -92,6 +96,7 @@ class Arborx(CMakePackage, CudaPackage, ROCmPackage):
depends_on("trilinos@13.4.0:", when="@1.3+trilinos")
depends_on("trilinos@14.0.0:", when="@1.4:+trilinos")
patch("trilinos14.0-kokkos-major-version.patch", when="@1.4+trilinos ^trilinos@14.0.0")
+ patch("0001-update-major-version-required-for-rocm-6.0.patch", when="+rocm ^hip@6.0:")
conflicts("~serial", when="+trilinos")
conflicts("+cuda", when="+trilinos")
diff --git a/var/spack/repos/builtin/packages/arc/package.py b/var/spack/repos/builtin/packages/arc/package.py
index 958c9a26b15930..afcad0a0beedd3 100644
--- a/var/spack/repos/builtin/packages/arc/package.py
+++ b/var/spack/repos/builtin/packages/arc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/archer/package.py b/var/spack/repos/builtin/packages/archer/package.py
index 52011bebd46f26..731d318365d310 100644
--- a/var/spack/repos/builtin/packages/archer/package.py
+++ b/var/spack/repos/builtin/packages/archer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/argobots/package.py b/var/spack/repos/builtin/packages/argobots/package.py
index 69a34bf2222ebc..7fc669553065b8 100644
--- a/var/spack/repos/builtin/packages/argobots/package.py
+++ b/var/spack/repos/builtin/packages/argobots/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/argon2/package.py b/var/spack/repos/builtin/packages/argon2/package.py
index d41ba9761c1366..4484e1eb52a4c9 100644
--- a/var/spack/repos/builtin/packages/argon2/package.py
+++ b/var/spack/repos/builtin/packages/argon2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Argon2(MakefilePackage):
homepage = "https://password-hashing.net/"
url = "https://github.com/P-H-C/phc-winner-argon2/archive/20190702.tar.gz"
+ license("Apache-2.0 OR CC0-1.0")
+
version("20190702", sha256="daf972a89577f8772602bf2eb38b6a3dd3d922bf5724d45e7f9589b5e830442c")
version("20171227", sha256="eaea0172c1f4ee4550d1b6c9ce01aab8d1ab66b4207776aa67991eb5872fdcd8")
version("20161029", sha256="fe0049728b946b58b94cc6db89b34e2d050c62325d16316a534d2bedd78cd5e7")
diff --git a/var/spack/repos/builtin/packages/argp-standalone/package.py b/var/spack/repos/builtin/packages/argp-standalone/package.py
index e15fd49a01c0d4..9cdfdc81384458 100644
--- a/var/spack/repos/builtin/packages/argp-standalone/package.py
+++ b/var/spack/repos/builtin/packages/argp-standalone/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class ArgpStandalone(AutotoolsPackage):
homepage = "https://www.lysator.liu.se/~nisse/misc"
url = "https://www.lysator.liu.se/~nisse/misc/argp-standalone-1.3.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("1.3", sha256="dec79694da1319acd2238ce95df57f3680fea2482096e483323fddf3d818d8be")
# Homebrew (https://github.com/Homebrew/homebrew-core) patches
diff --git a/var/spack/repos/builtin/packages/args/package.py b/var/spack/repos/builtin/packages/args/package.py
index 95a58f363474e6..27c739b1684536 100644
--- a/var/spack/repos/builtin/packages/args/package.py
+++ b/var/spack/repos/builtin/packages/args/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Args(CMakePackage):
homepage = "https://taywee.github.io/args"
url = "https://github.com/Taywee/args/archive/6.2.3.tar.gz"
+ license("MIT")
+
version("6.4.6", sha256="41ed136bf9b216bf5f18b1de2a8d22a870381657e8427d6621918520b6e2239c")
version("6.2.3", sha256="c202d15fc4b30519a08bae7df9e6f4fdc40ac2434ba65d83a108ebbf6e4822c2")
version("6.2.2", sha256="8016fb0fc079d746433be3df9cf662e3e931e730aaf9f69f2287eac79ac643c1")
diff --git a/var/spack/repos/builtin/packages/argtable/package.py b/var/spack/repos/builtin/packages/argtable/package.py
index 2b4e53a369f017..88604bbe50af3e 100644
--- a/var/spack/repos/builtin/packages/argtable/package.py
+++ b/var/spack/repos/builtin/packages/argtable/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,4 +14,6 @@ class Argtable(AutotoolsPackage):
homepage = "http://argtable.sourceforge.net/"
url = "https://sourceforge.net/projects/argtable/files/argtable/argtable-2.13/argtable2-13.tar.gz/download"
+ license("LGPL-2.0-or-later")
+
version("2-13", sha256="8f77e8a7ced5301af6e22f47302fdbc3b1ff41f2b83c43c77ae5ca041771ddbf")
diff --git a/var/spack/repos/builtin/packages/aria2/package.py b/var/spack/repos/builtin/packages/aria2/package.py
index 176fe9048747e2..a1bcca28e7a70b 100644
--- a/var/spack/repos/builtin/packages/aria2/package.py
+++ b/var/spack/repos/builtin/packages/aria2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Aria2(AutotoolsPackage):
homepage = "https://aria2.github.io"
url = "https://github.com/aria2/aria2/releases/download/release-1.36.0/aria2-1.36.0.tar.gz"
+ license("GPL-2.0-or-later")
+
version("1.36.0", sha256="b593b2fd382489909c96c62c6e180054c3332b950be3d73e0cb0d21ea8afb3c5")
version("1.35.0", sha256="fd85589416f8246cefc4e6ba2fa52da54fdf11fd5602a2db4b6749f7c33b5b2d")
version("1.34.0", sha256="ec4866985760b506aa36dc9021dbdc69551c1a647823cae328c30a4f3affaa6c")
diff --git a/var/spack/repos/builtin/packages/arm-forge/package.py b/var/spack/repos/builtin/packages/arm-forge/package.py
index 16d842bd1e6e77..74dbbe5563c462 100644
--- a/var/spack/repos/builtin/packages/arm-forge/package.py
+++ b/var/spack/repos/builtin/packages/arm-forge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/armadillo/package.py b/var/spack/repos/builtin/packages/armadillo/package.py
index 78794086f91b7c..194b75d383f419 100644
--- a/var/spack/repos/builtin/packages/armadillo/package.py
+++ b/var/spack/repos/builtin/packages/armadillo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Armadillo(CMakePackage):
homepage = "http://arma.sourceforge.net/"
url = "http://sourceforge.net/projects/arma/files/armadillo-8.100.1.tar.xz"
+ license("Apache-2.0")
+
version("12.4.0", sha256="9905282781ced3f99769b0e45a705ecb50192ca1622300707b3302ea167dc883")
version("12.2.0", sha256="b0dce042297e865add3351dad77f78c2c7638d6632f58357b015e50edcbd2186")
version("12.0.1", sha256="230a5c75daad52dc47e1adce8f5a50f9aa4e4354e0f1bb18ea84efa2e70e20df")
diff --git a/var/spack/repos/builtin/packages/armcomputelibrary/package.py b/var/spack/repos/builtin/packages/armcomputelibrary/package.py
index 991e430ef6e280..d3d0e62928a47c 100644
--- a/var/spack/repos/builtin/packages/armcomputelibrary/package.py
+++ b/var/spack/repos/builtin/packages/armcomputelibrary/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -32,6 +32,8 @@ class Armcomputelibrary(SConsPackage):
maintainers("annop-w")
+ license("MIT")
+
version("23.02", sha256="bed1b24047ce00155e552204bc3983e86f46775414c554a34a7ece931d67ec62")
version("22.11", sha256="2f70f54d84390625222503ea38650c00c49d4b70bc86a6b9aeeebee9d243865f")
version("22.08", sha256="5d76d07406b105f0bdf74ef80263236cb03baf0ade882f2bf8446bbc239e0079")
diff --git a/var/spack/repos/builtin/packages/armpl-gcc/package.py b/var/spack/repos/builtin/packages/armpl-gcc/package.py
index f0157ae551ffe1..880f1267d7550d 100644
--- a/var/spack/repos/builtin/packages/armpl-gcc/package.py
+++ b/var/spack/repos/builtin/packages/armpl-gcc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/arpack-ng/package.py b/var/spack/repos/builtin/packages/arpack-ng/package.py
index c50b90d6d10f45..df345e65a75d1d 100644
--- a/var/spack/repos/builtin/packages/arpack-ng/package.py
+++ b/var/spack/repos/builtin/packages/arpack-ng/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/arrayfire/package.py b/var/spack/repos/builtin/packages/arrayfire/package.py
index 9befc618417835..23f7ad63e8e2e3 100644
--- a/var/spack/repos/builtin/packages/arrayfire/package.py
+++ b/var/spack/repos/builtin/packages/arrayfire/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Arrayfire(CMakePackage, CudaPackage):
git = "https://github.com/arrayfire/arrayfire.git"
maintainers("umar456")
+ license("FreeImage")
+
version("master")
version("3.8.1", commit="823e8e399fe8c120c6ec7ec75f09e6106b3074ca", tag="v3.8.1")
version(
@@ -35,7 +37,10 @@ class Arrayfire(CMakePackage, CudaPackage):
depends_on("blas")
depends_on("cuda@7.5:", when="+cuda")
depends_on("cudnn", when="+cuda")
- depends_on("opencl +icd", when="+opencl")
+
+ depends_on("opencl", when="+opencl")
+ depends_on("pocl+icd", when="^[virtuals=opencl] pocl")
+
# TODO add more opencl backends:
# currently only Cuda backend is enabled
# https://github.com/arrayfire/arrayfire/wiki/Build-Instructions-for-Linux#opencl-backend-dependencies
diff --git a/var/spack/repos/builtin/packages/arrow/package.py b/var/spack/repos/builtin/packages/arrow/package.py
index 8a499fbec2709e..19e4cf1baaf6f7 100644
--- a/var/spack/repos/builtin/packages/arrow/package.py
+++ b/var/spack/repos/builtin/packages/arrow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,15 @@ class Arrow(CMakePackage, CudaPackage):
homepage = "https://arrow.apache.org"
url = "https://github.com/apache/arrow/archive/apache-arrow-0.9.0.tar.gz"
+ license("Apache-2.0")
+
+ version("14.0.2", sha256="07cdb4da6795487c800526b2865c150ab7d80b8512a31793e6a7147c8ccd270f")
+ version("14.0.1", sha256="a48e54a09d58168bc04d86b13e7dab04f0aaba18a6f7e4dadf3e9c7bb835c8f1")
+ version("14.0.0", sha256="39e3388bbaba23faa7a5e8a82ebba7fe4c38ace2c394d6a3f26559715b30f401")
+ version("13.0.0", sha256="99c27e6a517c750f29c3e6b264836e31251bb8e978dbbf11316680ca3eb8ebda")
+ version("12.0.1", sha256="f01b76a42ceb30409e7b1953ef64379297dd0c08502547cae6aaafd2c4a4d92e")
+ version("12.0.0", sha256="f25901c486e1e79cde8b78b3e7b1d889919f942549996003a7341a8ee86addaa")
+ version("11.0.0", sha256="4a8c0c3d5b39ca81f4a636a41863f1cf5e0ed199f994bf5ead0854ca037eb741")
version("10.0.1", sha256="28c3e0402bc1c3c1e047b6e26cedb8d1d89b2b9497d576af24b0b700eef11701")
version("9.0.0", sha256="bb187b4b0af8dcc027fffed3700a7b891c9f76c9b63ad8925b4afb8257a2bb1b")
version("8.0.0", sha256="19ece12de48e51ce4287d2dee00dc358fbc5ff02f41629d16076f77b8579e272")
diff --git a/var/spack/repos/builtin/packages/asagi/package.py b/var/spack/repos/builtin/packages/asagi/package.py
index 9ae444580dab86..603cd0ad198a59 100644
--- a/var/spack/repos/builtin/packages/asagi/package.py
+++ b/var/spack/repos/builtin/packages/asagi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Asagi(CMakePackage):
homepage = "https://github.com/TUM-I5/ASAGI"
git = "https://github.com/TUM-I5/ASAGI.git"
+ license("LGPL-3.0-only")
+
# fetching the package via git with submodules
# is preferred to satisfy internal-dependencies
version("1.0.1", commit="f633f96931ae00805f599078d5a1a6a830881554", submodules=True)
diff --git a/var/spack/repos/builtin/packages/ascent/package.py b/var/spack/repos/builtin/packages/ascent/package.py
index 566be6b632de3f..b8ab20f8132fa2 100644
--- a/var/spack/repos/builtin/packages/ascent/package.py
+++ b/var/spack/repos/builtin/packages/ascent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -50,6 +50,8 @@ class Ascent(CMakePackage, CudaPackage):
maintainers("cyrush")
+ license("BSD-3-Clause")
+
version("develop", branch="develop", submodules=True)
version(
@@ -195,7 +197,10 @@ class Ascent(CMakePackage, CudaPackage):
# VTK-m
#######################
depends_on("vtk-m@2.0:", when="@0.9.2: +vtkh")
- depends_on("vtk-m@1.9:1.9", when="@0.9.0: +vtkh")
+ # 2.1 support needs commit e52b7bb8c9fd131f2fd49edf58037cc5ef77a166
+ depends_on("vtk-m@:2.0", when="@:0.9.2 +vtkh")
+ depends_on("vtk-m@1.9", when="@0.9.0:0.9.1 +vtkh")
+ depends_on("vtk-m +doubleprecision ~64bitids", when="+vtkh ^vtk-m")
depends_on("vtk-m~tbb", when="@0.9.0: +vtkh")
depends_on("vtk-m+openmp", when="@0.9.0: +vtkh+openmp")
diff --git a/var/spack/repos/builtin/packages/asciidoc-py3/package.py b/var/spack/repos/builtin/packages/asciidoc-py3/package.py
index a421920d947b27..515e6921072825 100644
--- a/var/spack/repos/builtin/packages/asciidoc-py3/package.py
+++ b/var/spack/repos/builtin/packages/asciidoc-py3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/asciidoc/package.py b/var/spack/repos/builtin/packages/asciidoc/package.py
index 73e7ca3f9fa6f8..2492052f570e5c 100644
--- a/var/spack/repos/builtin/packages/asciidoc/package.py
+++ b/var/spack/repos/builtin/packages/asciidoc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -10,11 +10,13 @@ class Asciidoc(AutotoolsPackage):
"""A presentable text document format for writing articles, UNIX man
pages and other small to medium sized documents."""
- homepage = "https://asciidoc.org/"
+ homepage = "https://asciidoc-py.org/"
# Always working URL but strangely with another checksum
url = "https://github.com/asciidoc-py/asciidoc-py/archive/8.6.10.tar.gz"
git = "https://github.com/asciidoc-py/asciidoc-py.git"
+ license("GPL-2.0-only", checked_by="tgamblin")
+
version("master", branch="master")
version("9.1.0", sha256="5056c20157349f8dc74f005b6e88ccbf1078c4e26068876f13ca3d1d7d045fe7")
version("9.0.5", sha256="edc8328c3682a8568172656f6fc309b189f65219a49517966c7ea144cb25f8b2")
diff --git a/var/spack/repos/builtin/packages/asdcplib/package.py b/var/spack/repos/builtin/packages/asdcplib/package.py
index 5aec849ee59480..d0c37005d13e35 100644
--- a/var/spack/repos/builtin/packages/asdcplib/package.py
+++ b/var/spack/repos/builtin/packages/asdcplib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Asdcplib(AutotoolsPackage):
homepage = "https://github.com/cinecert/asdcplib"
url = "https://github.com/cinecert/asdcplib/archive/rel_2_10_35.tar.gz"
+ license("AMPAS")
+
version("2_10_38", sha256="f8cb3b1fecfe18f1a64e12e96e5696480631509e9088e29f5a259eb25b1b1656")
version("2_10_35", sha256="a68eec9ae0cc363f75331dc279c6dd6d3a9999a9e5f0a4405fd9afa8a29ca27b")
version("2_10_34", sha256="faa54ee407c1afceb141e08dae9ebf83b3f839e9c49a1793ac741ec6cdee5c3c")
diff --git a/var/spack/repos/builtin/packages/asdf-cxx/package.py b/var/spack/repos/builtin/packages/asdf-cxx/package.py
index 01e83e1923070e..b2d15a98142c78 100644
--- a/var/spack/repos/builtin/packages/asdf-cxx/package.py
+++ b/var/spack/repos/builtin/packages/asdf-cxx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class AsdfCxx(CMakePackage):
maintainers("eschnett")
+ license("MIT")
+
version("7.2.1", sha256="40864f4f27d3ce8acb5169b57211ce6ac3805f0a6de9c1dfd5f994f4a5beccda")
version("7.2.0", sha256="faded85d44288afb83f13634d2139adee07e06f7ea60960c6f2ef8d898c0aa09")
version("7.1.0", sha256="81fd8c7f91f8daf0f85a1486480ae9e736b9712e82ccb858271f7ee2c2b425f7")
diff --git a/var/spack/repos/builtin/packages/asio/package.py b/var/spack/repos/builtin/packages/asio/package.py
index 3c66d7df9e3ba1..c3b52d02ccf07c 100644
--- a/var/spack/repos/builtin/packages/asio/package.py
+++ b/var/spack/repos/builtin/packages/asio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Asio(AutotoolsPackage):
git = "https://github.com/chriskohlhoff/asio.git"
maintainers("msimberg", "pauleonix")
+ license("BSL-1.0")
+
# As uneven minor versions of asio are not considered stable, they wont be added anymore
version("1.28.0", sha256="226438b0798099ad2a202563a83571ce06dd13b570d8fded4840dbc1f97fa328")
version("1.26.0", sha256="935583f86825b7b212479277d03543e0f419a55677fa8cb73a79a927b858a72d")
diff --git a/var/spack/repos/builtin/packages/aspa/package.py b/var/spack/repos/builtin/packages/aspa/package.py
index 8219a46b004bd3..2356a09bd6b538 100644
--- a/var/spack/repos/builtin/packages/aspa/package.py
+++ b/var/spack/repos/builtin/packages/aspa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/aspcud/package.py b/var/spack/repos/builtin/packages/aspcud/package.py
index 8233dcaba0e058..fcd2675ac3bf36 100644
--- a/var/spack/repos/builtin/packages/aspcud/package.py
+++ b/var/spack/repos/builtin/packages/aspcud/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Aspcud(CMakePackage):
homepage = "https://potassco.org/aspcud"
url = "https://github.com/potassco/aspcud/archive/v1.9.4.tar.gz"
+ license("MIT")
+
version("1.9.6", sha256="4dddfd4a74e4324887a1ddd7f8ff36231774fc1aa78b383256546e83acdf516c")
version("1.9.5", sha256="9cd3a9490d377163d87b16fa1a10cc7254bc2dbb9f60e846961ac8233f3835cf")
version("1.9.4", sha256="3645f08b079e1cc80e24cd2d7ae5172a52476d84e3ec5e6a6c0034492a6ea885")
diff --git a/var/spack/repos/builtin/packages/aspect/package.py b/var/spack/repos/builtin/packages/aspect/package.py
index 14ca9da62f6497..914869a2e5e2ed 100644
--- a/var/spack/repos/builtin/packages/aspect/package.py
+++ b/var/spack/repos/builtin/packages/aspect/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Aspect(CMakePackage):
maintainers("tjhei")
+ license("GPL-2.0-only")
+
version("develop", branch="main")
version("2.3.0", sha256="d97885e502e99ca22af3933c3b1c0b30b0b5e4dc0421e7f6e4d6b378e997faf8")
version("2.2.0", sha256="6dc31c4b991c8a96495ba0e9a3c92e57f9305ba94b8dbed3c8c5cfbab91ec5c1")
diff --git a/var/spack/repos/builtin/packages/aspell/package.py b/var/spack/repos/builtin/packages/aspell/package.py
index a8f5e0abf59341..2cda1b9ac045de 100644
--- a/var/spack/repos/builtin/packages/aspell/package.py
+++ b/var/spack/repos/builtin/packages/aspell/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Aspell(AutotoolsPackage, GNUMirrorPackage):
extendable = True # support activating dictionaries
+ license("LGPL-2.1-or-later")
+
version("0.60.8", sha256="f9b77e515334a751b2e60daab5db23499e26c9209f5e7b7443b05235ad0226f2")
version("0.60.6.1", sha256="f52583a83a63633701c5f71db3dc40aab87b7f76b29723aeb27941eff42df6e1")
diff --git a/var/spack/repos/builtin/packages/aspell6-de/package.py b/var/spack/repos/builtin/packages/aspell6-de/package.py
index c9cd99dd97c555..4bb759b5199f66 100644
--- a/var/spack/repos/builtin/packages/aspell6-de/package.py
+++ b/var/spack/repos/builtin/packages/aspell6-de/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Aspell6De(AspellDictPackage, GNUMirrorPackage):
homepage = "http://aspell.net/"
gnu_mirror_path = "aspell/dict/de/aspell6-de-20030222-1.tar.bz2"
+ license("GPL-2.0-or-later")
+
version(
"6-de-20030222-1",
sha256="ba6c94e11bc2e0e6e43ce0f7822c5bba5ca5ac77129ef90c190b33632416e906",
diff --git a/var/spack/repos/builtin/packages/aspell6-en/package.py b/var/spack/repos/builtin/packages/aspell6-en/package.py
index d86854456321b8..afd3bdbfb6ef1f 100644
--- a/var/spack/repos/builtin/packages/aspell6-en/package.py
+++ b/var/spack/repos/builtin/packages/aspell6-en/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/aspell6-es/package.py b/var/spack/repos/builtin/packages/aspell6-es/package.py
index 8a21bece14c464..1bec8abf9162bf 100644
--- a/var/spack/repos/builtin/packages/aspell6-es/package.py
+++ b/var/spack/repos/builtin/packages/aspell6-es/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,4 +12,6 @@ class Aspell6Es(AspellDictPackage, GNUMirrorPackage):
homepage = "http://aspell.net/"
gnu_mirror_path = "aspell/dict/es/aspell6-es-1.11-2.tar.bz2"
+ license("GPL-2.0-or-later")
+
version("1.11-2", sha256="ad367fa1e7069c72eb7ae37e4d39c30a44d32a6aa73cedccbd0d06a69018afcc")
diff --git a/var/spack/repos/builtin/packages/aspera-cli/package.py b/var/spack/repos/builtin/packages/aspera-cli/package.py
index 91aa1e19e47818..37fc512d383e07 100644
--- a/var/spack/repos/builtin/packages/aspera-cli/package.py
+++ b/var/spack/repos/builtin/packages/aspera-cli/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/assimp/package.py b/var/spack/repos/builtin/packages/assimp/package.py
index 96dda57b817d75..d8eb67bc57f544 100644
--- a/var/spack/repos/builtin/packages/assimp/package.py
+++ b/var/spack/repos/builtin/packages/assimp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Assimp(CMakePackage):
maintainers("wdconinc")
+ license("BSD-3-Clause")
+
version("master", branch="master")
version("5.3.1", sha256="a07666be71afe1ad4bc008c2336b7c688aca391271188eb9108d0c6db1be53f1")
version("5.2.5", sha256="b5219e63ae31d895d60d98001ee5bb809fb2c7b2de1e7f78ceeb600063641e1a")
diff --git a/var/spack/repos/builtin/packages/astra/package.py b/var/spack/repos/builtin/packages/astra/package.py
index 26e81005d92882..876b21aa15f64b 100644
--- a/var/spack/repos/builtin/packages/astra/package.py
+++ b/var/spack/repos/builtin/packages/astra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/astral/package.py b/var/spack/repos/builtin/packages/astral/package.py
index af196ab9c391c4..4a06d3658a0eca 100644
--- a/var/spack/repos/builtin/packages/astral/package.py
+++ b/var/spack/repos/builtin/packages/astral/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Astral(Package):
homepage = "https://github.com/smirarab/ASTRAL"
url = "https://github.com/smirarab/ASTRAL/archive/v4.10.7.tar.gz"
+ license("Apache-2.0")
+
version("5.7.1", sha256="8aa6fd4324efca325d3dde432517090fac314bea95f407b1dd59977181fec77e")
version(
"5.6.1",
diff --git a/var/spack/repos/builtin/packages/astyle/package.py b/var/spack/repos/builtin/packages/astyle/package.py
index ef4fe29378ffa0..8c0e6a11cc2aeb 100644
--- a/var/spack/repos/builtin/packages/astyle/package.py
+++ b/var/spack/repos/builtin/packages/astyle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Astyle(MakefilePackage):
# Gentoo alternative
# url = "https://distfiles.gentoo.org/distfiles/astyle_3.0.1_linux.tar.gz"
+ license("MIT")
+
version("3.1", sha256="cbcc4cf996294534bb56f025d6f199ebfde81aa4c271ccbd5ee1c1a3192745d7")
version("3.0.1", sha256="6c3ab029e0e4a75e2e603d449014374aa8269218fdd03a4aaa46ab743b1912fd")
version("2.06", sha256="3b7212210dc139e8f648e004b758c0be1b3ceb1694b22a879202d2b833db7c7e")
diff --git a/var/spack/repos/builtin/packages/at-spi2-atk/package.py b/var/spack/repos/builtin/packages/at-spi2-atk/package.py
index 6e2f492112ce25..5d421477584255 100644
--- a/var/spack/repos/builtin/packages/at-spi2-atk/package.py
+++ b/var/spack/repos/builtin/packages/at-spi2-atk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class AtSpi2Atk(MesonPackage):
list_url = "http://ftp.gnome.org/pub/gnome/sources/at-spi2-atk"
list_depth = 1
+ license("LGPL-2.1-or-later")
+
version("2.38.0", sha256="cfa008a5af822b36ae6287f18182c40c91dd699c55faa38605881ed175ca464f")
version("2.34.2", sha256="901323cee0eef05c01ec4dee06c701aeeca81a314a7d60216fa363005e27f4f0")
version("2.26.2", sha256="61891f0abae1689f6617a963105a3f1dcdab5970c4a36ded9c79a7a544b16a6e")
diff --git a/var/spack/repos/builtin/packages/at-spi2-core/package.py b/var/spack/repos/builtin/packages/at-spi2-core/package.py
index ec8cbd5e23c68b..911e05085a022e 100644
--- a/var/spack/repos/builtin/packages/at-spi2-core/package.py
+++ b/var/spack/repos/builtin/packages/at-spi2-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class AtSpi2Core(MesonPackage):
list_url = "http://ftp.gnome.org/pub/gnome/sources/at-spi2-core"
list_depth = 1
+ license("LGPL-2.1-or-later")
+
version("2.48.3", sha256="37316df43ca9989ce539d54cf429a768c28bb38a0b34950beadd0421827edf55")
version("2.48.0", sha256="905a5b6f1790b68ee803bffa9f5fab4ceb591fb4fae0b2f8c612c54f1d4e8a30")
version("2.47.90", sha256="71189c21af7bd084a12ab85b229c2d798936470b12fb0c3f177e37181fb6c00c")
diff --git a/var/spack/repos/builtin/packages/atf/package.py b/var/spack/repos/builtin/packages/atf/package.py
index 3ab73623446ea8..a0916aec82a495 100644
--- a/var/spack/repos/builtin/packages/atf/package.py
+++ b/var/spack/repos/builtin/packages/atf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Atf(AutotoolsPackage):
homepage = "https://github.com/jmmv/atf"
url = "https://github.com/jmmv/atf/archive/atf-0.21.tar.gz"
+ license("BSD-2-Clause AND BSD-3-Clause", checked_by="tgamblin")
+
version("0.21", sha256="da6b02d6e7242f768a7aaa7b7e52378680456e4bd9a913b6636187079c98f3cd")
version("0.20", sha256="3677cf957d7f574835b8bdd385984ba928d5695b3ff28f958e4227f810483ab7")
version("0.19", sha256="f9b1d76dad7c34ae61a75638edc517fc05b10fa4c8f97b1d13d739bffee79b16")
diff --git a/var/spack/repos/builtin/packages/athena/package.py b/var/spack/repos/builtin/packages/athena/package.py
index bf091ba61b58d4..cf4da42d09283a 100644
--- a/var/spack/repos/builtin/packages/athena/package.py
+++ b/var/spack/repos/builtin/packages/athena/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/atk/package.py b/var/spack/repos/builtin/packages/atk/package.py
index 52849669ecca01..bcb6425b081521 100644
--- a/var/spack/repos/builtin/packages/atk/package.py
+++ b/var/spack/repos/builtin/packages/atk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Atk(Package):
list_url = "https://ftp.gnome.org/pub/gnome/sources/atk"
list_depth = 1
+ license("LGPL-2.0-or-later")
+
version("2.38.0", sha256="ac4de2a4ef4bd5665052952fe169657e65e895c5057dffb3c2a810f6191a0c36")
version("2.36.0", sha256="fb76247e369402be23f1f5c65d38a9639c1164d934e40f6a9cf3c9e96b652788")
version("2.30.0", sha256="dd4d90d4217f2a0c1fee708a555596c2c19d26fef0952e1ead1938ab632c027b")
diff --git a/var/spack/repos/builtin/packages/atlas/package.py b/var/spack/repos/builtin/packages/atlas/package.py
index ecc6379b570c62..89e65bc878f6f1 100644
--- a/var/spack/repos/builtin/packages/atlas/package.py
+++ b/var/spack/repos/builtin/packages/atlas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Atlas(Package):
homepage = "http://math-atlas.sourceforge.net/"
+ license("Apache-2.0")
+
# Developer (unstable)
version("3.11.41", sha256="477d567a8d683e891d786e9e8bb6ad6659daa9ba18e8dd0e2f70b7a54095f8de")
version("3.11.39", sha256="584bd44572746142bf19348139530c18f4538ce41d94330ff86ede38c36eddc9")
diff --git a/var/spack/repos/builtin/packages/atmi/package.py b/var/spack/repos/builtin/packages/atmi/package.py
index 8d57098d3cac7b..96c588174f5edb 100644
--- a/var/spack/repos/builtin/packages/atmi/package.py
+++ b/var/spack/repos/builtin/packages/atmi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,11 +13,13 @@ class Atmi(CMakePackage):
consistent, declarative API to create task graphs on CPUs and GPUs
(integrated and discrete)."""
- homepage = "https://github.com/RadeonOpenCompute/atmi"
- git = "https://github.com/RadeonOpenCompute/atmi.git"
- url = "https://github.com/RadeonOpenCompute/atmi/archive/rocm-5.5.0.tar.gz"
+ homepage = "https://github.com/ROCm/atmi"
+ git = "https://github.com/ROCm/atmi.git"
+ url = "https://github.com/ROCm/atmi/archive/rocm-6.0.0.tar.gz"
tags = ["rocm"]
+ license("MIT")
+
maintainers("srekolam", "renjithravindrankannath")
version("5.5.1", sha256="6b3ee68433506315b55d093a4b47463916874fb6f3f602098eaff2ec283e69ab")
version("5.5.0", sha256="b8bfd32e5c386f5169da62172964343f9b7fad207e0e74dd1093c7acf06d9811")
diff --git a/var/spack/repos/builtin/packages/atom-dft/package.py b/var/spack/repos/builtin/packages/atom-dft/package.py
index 3f8c5e7756303a..dec2d07b1b0626 100644
--- a/var/spack/repos/builtin/packages/atom-dft/package.py
+++ b/var/spack/repos/builtin/packages/atom-dft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/atompaw/package.py b/var/spack/repos/builtin/packages/atompaw/package.py
index f0ea750583910a..2028645bd8a05d 100644
--- a/var/spack/repos/builtin/packages/atompaw/package.py
+++ b/var/spack/repos/builtin/packages/atompaw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Atompaw(AutotoolsPackage):
homepage = "https://users.wfu.edu/natalie/papers/pwpaw/man.html"
url = "https://users.wfu.edu/natalie/papers/pwpaw/atompaw-4.0.0.13.tar.gz"
+ license("GPL-3.0-only")
+
version("4.2.0.2", sha256="c16648611f5798b8e1781fb2229854c54fa63f085bd11440fdc4ecacbf0ad93e")
version("4.2.0.1", sha256="d3476a5aa5f80f9430b81f28273c2c2a9b6e7d9c3d08c65544247bb76cd5a114")
version("4.2.0.0", sha256="9ab4f4ab78a720fbcd95bbbc1403e8ff348d15570e7c694932a56be15985e93d")
diff --git a/var/spack/repos/builtin/packages/atop/package.py b/var/spack/repos/builtin/packages/atop/package.py
index 670b7e37c7538d..f87d6c0c6ada94 100644
--- a/var/spack/repos/builtin/packages/atop/package.py
+++ b/var/spack/repos/builtin/packages/atop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Atop(Package):
homepage = "https://www.atoptool.nl/index.php"
url = "https://www.atoptool.nl/download/atop-2.2-3.tar.gz"
+ license("GPL-2.0-or-later")
+
version("2.5.0", sha256="4b911057ce50463b6e8b3016c5963d48535c0cddeebc6eda817e292b22f93f33")
version("2.4.0", sha256="be1c010a77086b7d98376fce96514afcd73c3f20a8d1fe01520899ff69a73d69")
version("2.3.0", sha256="73e4725de0bafac8c63b032e8479e2305e3962afbe977ec1abd45f9e104eb264")
diff --git a/var/spack/repos/builtin/packages/attr/package.py b/var/spack/repos/builtin/packages/attr/package.py
index 76a78b280470a0..3ab1244986fcc2 100644
--- a/var/spack/repos/builtin/packages/attr/package.py
+++ b/var/spack/repos/builtin/packages/attr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Attr(AutotoolsPackage):
homepage = "https://savannah.nongnu.org/projects/attr"
url = "http://download.savannah.gnu.org/releases/attr/attr-2.4.47.src.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("2.4.48", sha256="5ead72b358ec709ed00bbf7a9eaef1654baad937c001c044fe8b74c57f5324e7")
version("2.4.47", sha256="25772f653ac5b2e3ceeb89df50e4688891e21f723c460636548971652af0a859")
version("2.4.46", sha256="dcd69bdca7ff166bc45141eddbcf21967999a6b66b0544be12a1cc2fd6340e1f")
diff --git a/var/spack/repos/builtin/packages/audacious/package.py b/var/spack/repos/builtin/packages/audacious/package.py
index 1d6634780b5870..d6737186f5ee1c 100644
--- a/var/spack/repos/builtin/packages/audacious/package.py
+++ b/var/spack/repos/builtin/packages/audacious/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,6 +11,8 @@ class Audacious(AutotoolsPackage):
homepage = "https://audacious-media-player.org/"
url = "https://github.com/audacious-media-player/audacious/archive/audacious-4.0.2.tar.gz"
+ license("BSD-2-Clause AND BSD-3-Clause", checked_by="tgamblin")
+
version("4.0.2", sha256="92f30a78353c50f99b536061b9d94b6b9128760d546fddbf863e3591c4ac5a8d")
version("4.0.1", sha256="203195cf0d3c2e40d23c9895269ca0ace639c4a2b4dceb624169d75337059985")
version("4.0", sha256="cdfffd0eb966856980328ebb0fff9cbce57f99db9bda15e7e839d26c89e953e6")
diff --git a/var/spack/repos/builtin/packages/audacity/package.py b/var/spack/repos/builtin/packages/audacity/package.py
index 4215b1c2589b50..9e3332032ceaf9 100644
--- a/var/spack/repos/builtin/packages/audacity/package.py
+++ b/var/spack/repos/builtin/packages/audacity/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Audacity(CMakePackage):
homepage = "http://audacity.sourceforge.net"
url = "https://github.com/audacity/audacity/archive/Audacity-2.4.2.tar.gz"
+ license("GPL-3.0-or-later")
+
version("2.4.2", sha256="cdb4800c8e9d1d4ca19964caf8d24000f80286ebd8a4db566c2622449744c099")
version("2.4.1", sha256="50240f07471373a7e5c2df65cc26eeeaaced9a0850ad1f95cb795f171ea3009f")
version("2.4.0", sha256="5d1c096d7b04ff8d5dbca3dca5b9d9f8e62093b5ea6e57ae5f821ae3132dc88f")
diff --git a/var/spack/repos/builtin/packages/audit-userspace/package.py b/var/spack/repos/builtin/packages/audit-userspace/package.py
index e5d39866b7548a..b38e3aee291578 100644
--- a/var/spack/repos/builtin/packages/audit-userspace/package.py
+++ b/var/spack/repos/builtin/packages/audit-userspace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class AuditUserspace(AutotoolsPackage):
homepage = "https://github.com/linux-audit/audit-userspace"
url = "https://github.com/linux-audit/audit-userspace/archive/v2.8.5.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("3.1.1", sha256="6a97cc472920639d736e9927353be05e323f351067fcf6e5d34439cafa0e9006")
version("2.8.5", sha256="835ffdd65056ba0c26509dbf48882713b00dbe70e1d8cf25d538501136c2e3e9")
version("2.8.4", sha256="089dfdceb38edf056202a6de4892fd0c9aaa964c08bd7806c5d0c7c33f09e18d")
diff --git a/var/spack/repos/builtin/packages/augustus/package.py b/var/spack/repos/builtin/packages/augustus/package.py
index 2c5cfa5c0d531e..a80de62d02f479 100644
--- a/var/spack/repos/builtin/packages/augustus/package.py
+++ b/var/spack/repos/builtin/packages/augustus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Augustus(MakefilePackage):
homepage = "https://bioinf.uni-greifswald.de/augustus/"
url = "https://github.com/Gaius-Augustus/Augustus/archive/v3.3.4.tar.gz"
+ license("Artistic-1.0")
+
# Releases have moved to github
version("3.5.0", sha256="5ed6ce6106303b800c5e91d37a250baff43b20824657b853ae04d11ad8bdd686")
version("3.4.0", sha256="2c06cf5953da5afdce1478fa10fcd3c280a3b050f1b2367bf3e731d7374d9bb8")
diff --git a/var/spack/repos/builtin/packages/authd/package.py b/var/spack/repos/builtin/packages/authd/package.py
index dbb290839bc916..230d32196ef88e 100644
--- a/var/spack/repos/builtin/packages/authd/package.py
+++ b/var/spack/repos/builtin/packages/authd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Authd(MakefilePackage):
homepage = "https://github.com/InfrastructureServices/authd"
url = "https://github.com/InfrastructureServices/authd/releases/download/v1.4.4/authd-1.4.4.tar.gz"
+ license("GPL-2.0-only")
+
version("1.4.4", sha256="71ee3d1c3e107c93e082148f75ee460c949b203c861dd20d48f7c5cfdc272bf8")
def setup_run_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/authselect/package.py b/var/spack/repos/builtin/packages/authselect/package.py
index 230722beb67a7c..fb61a06610ece3 100644
--- a/var/spack/repos/builtin/packages/authselect/package.py
+++ b/var/spack/repos/builtin/packages/authselect/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Authselect(AutotoolsPackage):
homepage = "https://github.com/authselect/authselect"
url = "https://github.com/authselect/authselect/archive/1.2.1.tar.gz"
+ license("GPL-3.0-or-later")
+
version("1.2.1", sha256="6f58c36d8b405da836dc9d1f44c1a22660c60f9e7ece327138d1b2492cb57749")
version("1.2", sha256="c354c87a0115612cb51b09b5157f151569e16384cdd69f32b8515209036531b4")
version("1.1", sha256="39b888575980c1ecac7022dfe5a5452eef59cef850b8544ed5f928e2e8a335dd")
diff --git a/var/spack/repos/builtin/packages/autoconf-archive/package.py b/var/spack/repos/builtin/packages/autoconf-archive/package.py
index 0c51708635f829..0f611eef2fbf43 100644
--- a/var/spack/repos/builtin/packages/autoconf-archive/package.py
+++ b/var/spack/repos/builtin/packages/autoconf-archive/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class AutoconfArchive(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/autoconf-archive/"
gnu_mirror_path = "autoconf-archive/autoconf-archive-2019.01.06.tar.xz"
+ license("GPL-3.0-or-later")
+
version(
"2023.02.20", sha256="71d4048479ae28f1f5794619c3d72df9c01df49b1c628ef85fde37596dc31a33"
)
diff --git a/var/spack/repos/builtin/packages/autoconf/package.py b/var/spack/repos/builtin/packages/autoconf/package.py
index 9ae244bfbed6b7..44a1e98d4e5840 100644
--- a/var/spack/repos/builtin/packages/autoconf/package.py
+++ b/var/spack/repos/builtin/packages/autoconf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,13 +14,13 @@ class Autoconf(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/autoconf/"
gnu_mirror_path = "autoconf/autoconf-2.69.tar.gz"
+ license("GPL-3.0-or-later WITH Autoconf-exception-3.0", when="@2.62:", checked_by="tgamblin")
+ license("GPL-2.0-or-later WITH Autoconf-exception-2.0", when="@:2.59", checked_by="tgamblin")
+
+ version("2.72", sha256="afb181a76e1ee72832f6581c0eddf8df032b83e2e0239ef79ebedc4467d92d6e")
version("2.71", sha256="431075ad0bf529ef13cb41e9042c542381103e80015686222b8a9d4abef42a1c")
version("2.70", sha256="f05f410fda74323ada4bdc4610db37f8dbd556602ba65bc843edb4d4d4a1b2b7")
- version(
- "2.69",
- sha256="954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969",
- preferred=True,
- )
+ version("2.69", sha256="954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969")
version("2.62", sha256="83aa747e6443def0ebd1882509c53f5a2133f502ddefa21b3de141c433914bdd")
version("2.59", sha256="9cd05c73c5fcb1f5ccae53dd6cac36bb8cb9c7b3e97ffae5a7c05c72594c88d8")
@@ -52,7 +52,8 @@ class Autoconf(AutotoolsPackage, GNUMirrorPackage):
# Note: m4 is not a pure build-time dependency of autoconf. m4 is
# needed when autoconf runs, not only when autoconf is built.
- depends_on("m4@1.4.6:", type=("build", "run"))
+ depends_on("m4@1.4.8:", type=("build", "run"), when="@1.72:")
+ depends_on("m4@1.4.6:", type=("build", "run"), when="@:1.71")
depends_on("perl", type=("build", "run"))
build_directory = "spack-build"
diff --git a/var/spack/repos/builtin/packages/autodiff/package.py b/var/spack/repos/builtin/packages/autodiff/package.py
index ec4c09bad5b39a..ac7b50477e43be 100644
--- a/var/spack/repos/builtin/packages/autodiff/package.py
+++ b/var/spack/repos/builtin/packages/autodiff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Autodiff(CMakePackage):
maintainers("wdconinc", "HadrienG2")
+ license("MIT")
+
version("1.0.1", sha256="63f2c8aaf940fbb1d1e7098b1d6c08794da0194eec3faf773f3123dc7233838c")
version("1.0.0", sha256="112c6f5740071786b3f212c96896abc2089a74bca16b57bb46ebf4cec79dca43")
version("0.6.12", sha256="3e9d667b81bba8e43bbe240a0321e25f4be248d1761097718664445306882dcc")
diff --git a/var/spack/repos/builtin/packages/autodock-gpu/package.py b/var/spack/repos/builtin/packages/autodock-gpu/package.py
index fc25e9ff4bff85..e687cfd4ce73b3 100644
--- a/var/spack/repos/builtin/packages/autodock-gpu/package.py
+++ b/var/spack/repos/builtin/packages/autodock-gpu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,7 +6,7 @@
from spack.package import *
-class AutodockGpu(MakefilePackage):
+class AutodockGpu(MakefilePackage, CudaPackage):
"""AutoDock-GPU: AutoDock for GPUs and other accelerators.
OpenCL and Cuda accelerated version of AutoDock 4.2.6. It
leverages its embarrasingly parallelizable LGA by processing
@@ -18,6 +18,8 @@ class AutodockGpu(MakefilePackage):
maintainers("RemiLacroix-IDRIS")
+ license("LGPL-2.1-or-later")
+
version("develop", branch="develop")
variant(
@@ -28,14 +30,19 @@ class AutodockGpu(MakefilePackage):
multi=False,
)
variant("overlap", default=False, description="Overlap CPU and GPU operations")
+ variant("cuda", default=True, description="Build with CUDA")
depends_on("cuda")
+ conflicts("~cuda") # the cuda variant is mandatory
+ conflicts("+cuda", when="cuda_arch=none")
+
@property
def build_targets(self):
spec = self.spec
return [
"DEVICE={0}".format(spec.variants["device"].value.upper()),
+ "TARGETS={0}".format(" ".join(spec.variants["cuda_arch"].value)),
"GPU_INCLUDE_PATH={0}".format(spec["cuda"].prefix.include),
"GPU_LIBRARY_PATH={0}".format(spec["cuda"].libs.directories[0]),
"OVERLAP={0}".format("ON" if "+overlap" in spec else "OFF"),
diff --git a/var/spack/repos/builtin/packages/autodock-vina/package.py b/var/spack/repos/builtin/packages/autodock-vina/package.py
index 8ca01804d8c0dc..f1cfa5694c303e 100644
--- a/var/spack/repos/builtin/packages/autodock-vina/package.py
+++ b/var/spack/repos/builtin/packages/autodock-vina/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class AutodockVina(MakefilePackage):
homepage = "http://vina.scripps.edu/"
url = "https://github.com/ccsb-scripps/AutoDock-Vina/archive/refs/tags/v1.2.3.tar.gz"
+ license("Apache-2.0")
+
version("1.2.3", sha256="22f85b2e770b6acc363429153b9551f56e0a0d88d25f747a40d2f55a263608e0")
version("1.2.2", sha256="b9c28df478f90d64dbbb5f4a53972bddffffb017b7bb58581a1a0034fff1b400")
version("1.2.1", sha256="2d8d9871a5a95265c03c621c0584d9f06b202303116e6c87e23c935f7b694f74")
diff --git a/var/spack/repos/builtin/packages/autofact/package.py b/var/spack/repos/builtin/packages/autofact/package.py
index ee06562cb26940..4de86283e72ceb 100644
--- a/var/spack/repos/builtin/packages/autofact/package.py
+++ b/var/spack/repos/builtin/packages/autofact/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/autogen/package.py b/var/spack/repos/builtin/packages/autogen/package.py
index 54b088beb599c6..895970b374eb66 100644
--- a/var/spack/repos/builtin/packages/autogen/package.py
+++ b/var/spack/repos/builtin/packages/autogen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Autogen(AutotoolsPackage, GNUMirrorPackage):
list_url = "https://ftp.gnu.org/gnu/autogen"
list_depth = 1
+ license("GPL-3.0-only")
+
version("5.18.12", sha256="805c20182f3cb0ebf1571d3b01972851c56fb34348dfdc38799fd0ec3b2badbe")
variant("xml", default=True, description="Enable XML support")
diff --git a/var/spack/repos/builtin/packages/automaded/package.py b/var/spack/repos/builtin/packages/automaded/package.py
index 922fece704f2ea..bd488830d08934 100644
--- a/var/spack/repos/builtin/packages/automaded/package.py
+++ b/var/spack/repos/builtin/packages/automaded/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/automake/package.py b/var/spack/repos/builtin/packages/automake/package.py
index 65046406063268..d0ae1456edcacf 100644
--- a/var/spack/repos/builtin/packages/automake/package.py
+++ b/var/spack/repos/builtin/packages/automake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Automake(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/automake/"
gnu_mirror_path = "automake/automake-1.15.tar.gz"
+ license("GPL-2.0-or-later")
+
version("1.16.5", sha256="07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605")
version("1.16.3", sha256="ce010788b51f64511a1e9bb2a1ec626037c6d0e7ede32c1c103611b9d3cba65f")
version("1.16.2", sha256="b2f361094b410b4acbf4efba7337bdb786335ca09eb2518635a09fb7319ca5c1")
diff --git a/var/spack/repos/builtin/packages/avizo/package.py b/var/spack/repos/builtin/packages/avizo/package.py
index 43364919cd757f..405d84cc179872 100644
--- a/var/spack/repos/builtin/packages/avizo/package.py
+++ b/var/spack/repos/builtin/packages/avizo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Avizo(Package):
manual_download = True
+ license("GPL-3.0")
+
version(
"2020.1",
sha256="9321aaa276567eebf116e268353c33a4c930d768d22793f921338e1d8cefe991",
diff --git a/var/spack/repos/builtin/packages/aws-ofi-nccl/package.py b/var/spack/repos/builtin/packages/aws-ofi-nccl/package.py
index 30c6b6145e5fd6..d064393199db5d 100644
--- a/var/spack/repos/builtin/packages/aws-ofi-nccl/package.py
+++ b/var/spack/repos/builtin/packages/aws-ofi-nccl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/aws-ofi-rccl/package.py b/var/spack/repos/builtin/packages/aws-ofi-rccl/package.py
index d21a1600d615e5..f831c885375434 100644
--- a/var/spack/repos/builtin/packages/aws-ofi-rccl/package.py
+++ b/var/spack/repos/builtin/packages/aws-ofi-rccl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,13 +11,15 @@ class AwsOfiRccl(AutotoolsPackage):
libfabric as a network provider while running AMD's RCCL based
applications."""
- homepage = "https://github.com/ROCmSoftwarePlatform/aws-ofi-rccl"
- git = "https://github.com/ROCmSoftwarePlatform/aws-ofi-rccl.git"
- url = "https://github.com/ROCmSoftwarePlatform/aws-ofi-rccl.git"
+ homepage = "https://github.com/ROCm/aws-ofi-rccl"
+ git = "https://github.com/ROCm/aws-ofi-rccl.git"
+ url = "https://github.com/ROCm/aws-ofi-rccl.git"
tags = ["rocm"]
maintainers("bvanessen")
+ license("Apache-2.0")
+
version("cxi", branch="cxi", preferred=True)
version("master", branch="master")
diff --git a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py
index 2356e72e520dd2..178527503bff33 100644
--- a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py
+++ b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/aws-sdk-cpp/package.py b/var/spack/repos/builtin/packages/aws-sdk-cpp/package.py
index 114cb4b2b41e53..cdea77da7e8ef4 100644
--- a/var/spack/repos/builtin/packages/aws-sdk-cpp/package.py
+++ b/var/spack/repos/builtin/packages/aws-sdk-cpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class AwsSdkCpp(CMakePackage):
homepage = "https://github.com/aws/aws-sdk-cpp"
git = "https://github.com/aws/aws-sdk-cpp.git"
+ license("Apache-2.0")
+
version(
"1.11.144",
tag="1.11.144",
diff --git a/var/spack/repos/builtin/packages/awscli-v2/package.py b/var/spack/repos/builtin/packages/awscli-v2/package.py
index 49436945f9956e..821321e6227776 100644
--- a/var/spack/repos/builtin/packages/awscli-v2/package.py
+++ b/var/spack/repos/builtin/packages/awscli-v2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/awscli/package.py b/var/spack/repos/builtin/packages/awscli/package.py
index dc024638bd9576..550f713ad7a5e5 100644
--- a/var/spack/repos/builtin/packages/awscli/package.py
+++ b/var/spack/repos/builtin/packages/awscli/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/axel/package.py b/var/spack/repos/builtin/packages/axel/package.py
index ef9225ed73767a..e25ab8f192526a 100644
--- a/var/spack/repos/builtin/packages/axel/package.py
+++ b/var/spack/repos/builtin/packages/axel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Axel(AutotoolsPackage):
homepage = "https://github.com/axel-download-accelerator/axel"
url = "https://github.com/axel-download-accelerator/axel/releases/download/v2.17.10/axel-2.17.10.tar.bz2"
+ license("GPL-2.0-or-later WITH OpenSSL-Exception")
+
version("2.17.10", sha256="c0d26eba6b94945cd98c5b69ca6df2744639d17bfd49047ef51a8a48f067de10")
version("2.16.1", sha256="763066efc61e4f7be2eb59afa049bdbc520837e01c95a78f403e542ad82f2719")
diff --git a/var/spack/repos/builtin/packages/axl/package.py b/var/spack/repos/builtin/packages/axl/package.py
index 169f7afaacbd70..381d47578b06a6 100644
--- a/var/spack/repos/builtin/packages/axl/package.py
+++ b/var/spack/repos/builtin/packages/axl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -24,6 +24,8 @@ class Axl(CMakePackage):
maintainers("CamStan", "gonsie")
+ license("MIT")
+
version("main", branch="main")
version("0.8.0", sha256="9fcd4eae143a67ff02622feda2a541b85e9a108749c039faeb473cbbc2330459")
version("0.7.1", sha256="526a055c072c85cc989beca656717e06b128f148fda8eb19d1d9b43a3325b399")
diff --git a/var/spack/repos/builtin/packages/axom/package.py b/var/spack/repos/builtin/packages/axom/package.py
index ab3ca1d9c00109..1c64ad709328bf 100644
--- a/var/spack/repos/builtin/packages/axom/package.py
+++ b/var/spack/repos/builtin/packages/axom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -8,6 +8,7 @@
from os.path import join as pjoin
from spack.package import *
+from spack.util.executable import which_string
def get_spec_path(spec, package_name, path_replacements={}, use_bin=False):
@@ -38,6 +39,8 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage):
git = "https://github.com/LLNL/axom.git"
tags = ["radiuss"]
+ license("BSD-3-Clause")
+
version("main", branch="main")
version("develop", branch="develop")
version("0.8.1", tag="v0.8.1", commit="0da8a5b1be596887158ac2fcd321524ba5259e15")
@@ -57,6 +60,7 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage):
patch("examples-oneapi.patch", when="@0.6.1 +examples %oneapi")
patch("scr_examples_gtest.patch", when="@0.6.0:0.6.1")
+ patch("umpire_camp_blt_targets.patch", when="@=0.8.0 ^umpire@2023.06.0")
root_cmakelists_dir = "src"
@@ -94,10 +98,11 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage):
# -----------------------------------------------------------------------
# Basics
depends_on("cmake@3.14:", type="build")
+ depends_on("cmake@3.18:", type="build", when="@0.7.0:")
depends_on("cmake@3.21:", type="build", when="+rocm")
depends_on("blt", type="build")
- depends_on("blt@0.5.1:", type="build", when="@0.6.2:")
+ depends_on("blt@0.5.1:", type="build", when="@0.6.1:")
depends_on("mpi", when="+mpi")
@@ -139,8 +144,12 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage):
depends_on(raja_rocm, when="+{0}".format(raja_rocm))
depends_on(umpire_rocm, when="+{0}".format(umpire_rocm))
- depends_on("mfem", when="+mfem")
- depends_on("mfem~mpi", when="+mfem~mpi")
+ depends_on("rocprim", when="+rocm")
+
+ with when("+mfem"):
+ depends_on("mfem+mpi", when="+mpi")
+ depends_on("mfem~mpi", when="~mpi")
+ depends_on("mfem@4.5.0:", when="@0.7.0:")
depends_on("python", when="+python")
@@ -151,6 +160,7 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage):
depends_on("python", when="+devtools")
depends_on("py-sphinx", when="+devtools")
depends_on("py-shroud", when="+devtools")
+ depends_on("py-jsonschema", when="+devtools")
depends_on("llvm+clang@10.0.0", when="+devtools", type="build")
# Hard requirement after Axom 0.6.1
@@ -219,7 +229,10 @@ def initconfig_compiler_entries(self):
flags = ""
for _libpath in [libdir, libdir + "64"]:
if os.path.exists(_libpath):
- flags += " -Wl,-rpath,{0}".format(_libpath)
+ if spec.satisfies("^cuda"):
+ flags += " -Xlinker -rpath -Xlinker {0}".format(_libpath)
+ else:
+ flags += " -Wl,-rpath,{0}".format(_libpath)
description = "Adds a missing libstdc++ rpath"
if flags:
entries.append(cmake_cache_string("BLT_EXE_LINKER_FLAGS", flags, description))
@@ -229,6 +242,12 @@ def initconfig_compiler_entries(self):
if "+cpp14" in spec and spec.satisfies("@:0.6.1"):
entries.append(cmake_cache_string("BLT_CXX_STD", "c++14", ""))
+ # Add optimization flag workaround for Debug builds with
+ # cray compiler or newer HIP
+ if "+rocm" in spec:
+ if spec.satisfies("%cce") or spec.satisfies("%clang@16"):
+ entries.append(cmake_cache_string("CMAKE_CXX_FLAGS_DEBUG", "-O1 -g -DNDEBUG"))
+
return entries
def initconfig_hardware_entries(self):
@@ -237,21 +256,24 @@ def initconfig_hardware_entries(self):
if "+cuda" in spec:
entries.append(cmake_cache_option("ENABLE_CUDA", True))
- entries.append(cmake_cache_option("CUDA_SEPARABLE_COMPILATION", True))
+ entries.append(cmake_cache_option("CMAKE_CUDA_SEPARABLE_COMPILATION", True))
entries.append(cmake_cache_option("AXOM_ENABLE_ANNOTATIONS", True))
# CUDA_FLAGS
cudaflags = "-restrict --expt-extended-lambda "
+ # Pass through any cxxflags to the host compiler via nvcc's Xcompiler flag
+ host_cxx_flags = spec.compiler_flags["cxxflags"]
+ cudaflags += " ".join(["-Xcompiler=%s " % flag for flag in host_cxx_flags])
+
if not spec.satisfies("cuda_arch=none"):
cuda_arch = spec.variants["cuda_arch"].value[0]
entries.append(cmake_cache_string("CMAKE_CUDA_ARCHITECTURES", cuda_arch))
- cudaflags += "-arch sm_${CMAKE_CUDA_ARCHITECTURES} "
else:
entries.append("# cuda_arch could not be determined\n\n")
- if spec.satisfies("^blt@:0.6.1"):
+ if spec.satisfies("^blt@:0.5.1"):
# This is handled internally by BLT now
if "+cpp14" in spec:
cudaflags += " -std=c++14"
@@ -264,7 +286,7 @@ def initconfig_hardware_entries(self):
if "+rocm" in spec:
entries.append("#------------------{0}\n".format("-" * 60))
- entries.append("# HIP\n")
+ entries.append("# Axom ROCm specifics\n")
entries.append("#------------------{0}\n\n".format("-" * 60))
entries.append(cmake_cache_option("ENABLE_HIP", True))
@@ -272,13 +294,20 @@ def initconfig_hardware_entries(self):
hip_root = spec["hip"].prefix
rocm_root = hip_root + "/.."
- entries.append(cmake_cache_string("HIP_ROOT_DIR", hip_root))
- entries.append(cmake_cache_string("HIP_CLANG_PATH", rocm_root + "/llvm/bin"))
-
- archs = self.spec.variants["amdgpu_target"].value
- if archs != "none":
- arch_str = ",".join(archs)
- entries.append(cmake_cache_string("CMAKE_HIP_ARCHITECTURES", arch_str))
+ # Fix blt_hip getting HIP_CLANG_INCLUDE_PATH-NOTFOUND bad include directory
+ # TODO: verify that this is still needed and is indeed specific to LC
+ if (
+ self.spec.satisfies("%cce") or self.spec.satisfies("%clang")
+ ) and "toss_4" in self._get_sys_type(spec):
+ # Set the patch version to 0 if not already
+ clang_version = str(self.compiler.version)[:-1] + "0"
+ hip_clang_include_path = (
+ rocm_root + "/llvm/lib/clang/" + clang_version + "/include"
+ )
+ if os.path.isdir(hip_clang_include_path):
+ entries.append(
+ cmake_cache_path("HIP_CLANG_INCLUDE_PATH", hip_clang_include_path)
+ )
# Fixes for mpi for rocm until wrapper paths are fixed
# These flags are already part of the wrapped compilers on TOSS4 systems
@@ -289,9 +318,16 @@ def initconfig_hardware_entries(self):
hip_link_flags += "-Wl,-rpath,{0}/../llvm/lib:{0}/lib ".format(hip_root)
hip_link_flags += "-lpgmath -lflang -lflangrti -lompstub -lamdhip64 "
+ # Remove extra link library for crayftn
+ if "+fortran" in spec and self.is_fortran_compiler("crayftn"):
+ entries.append(
+ cmake_cache_string("BLT_CMAKE_IMPLICIT_LINK_LIBRARIES_EXCLUDE", "unwind")
+ )
+
# Additional libraries for TOSS4
hip_link_flags += " -L{0}/../lib64 -Wl,-rpath,{0}/../lib64 ".format(hip_root)
- hip_link_flags += "-lhsakmt -lamd_comgr "
+ hip_link_flags += " -L{0}/../lib -Wl,-rpath,{0}/../lib ".format(hip_root)
+ hip_link_flags += "-lamd_comgr -lhsa-runtime64 "
entries.append(cmake_cache_string("CMAKE_EXE_LINKER_FLAGS", hip_link_flags))
@@ -326,13 +362,30 @@ def initconfig_hardware_entries(self):
cmake_cache_string("CMAKE_SHARED_LINKER_FLAGS", linker_flags, description)
)
- description = "Converts C-style comments to Fortran style " "in preprocessed files"
+ description = "Converts C-style comments to Fortran style in preprocessed files"
entries.append(
cmake_cache_string(
"BLT_FORTRAN_FLAGS", "-WF,-C! -qxlf2003=polymorphic", description
)
)
+ if (
+ "+openmp" in spec
+ and "clang" in self.compiler.cxx
+ and "+fortran" in spec
+ and self.is_fortran_compiler("xlf")
+ ):
+ openmp_gen_exp = (
+ "$<$>:"
+ "-fopenmp=libomp>;$<$:-qsmp=omp>"
+ )
+
+ description = "Different OpenMP linker flag between CXX and Fortran"
+ entries.append(
+ cmake_cache_string("BLT_OPENMP_LINK_FLAGS", openmp_gen_exp, description)
+ )
+
if spec.satisfies("target=ppc64le:"):
# Fix for working around CMake adding implicit link directories
# returned by the BlueOS compilers to link executables with
@@ -365,28 +418,43 @@ def initconfig_mpi_entries(self):
else:
entries.append(cmake_cache_option("ENABLE_MPI", False))
+ # Replace /usr/bin/srun path with srun flux wrapper path on TOSS 4
+ # TODO: Remove this logic by adding `using_flux` case in
+ # spack/lib/spack/spack/build_systems/cached_cmake.py:196 and remove hard-coded
+ # path to srun in same file.
+ if "toss_4" in self._get_sys_type(spec):
+ srun_wrapper = which_string("srun")
+ mpi_exec_index = [
+ index for index, entry in enumerate(entries) if "MPIEXEC_EXECUTABLE" in entry
+ ]
+ del entries[mpi_exec_index[0]]
+ entries.append(cmake_cache_path("MPIEXEC_EXECUTABLE", srun_wrapper))
+
return entries
+ def find_path_replacement(self, path1, path2, path_replacements, name, entries):
+ root = os.path.commonprefix([path1, path2])
+ if root.endswith(os.path.sep):
+ root = root[: -len(os.path.sep)]
+ if root:
+ path_replacements[root] = "${" + name + "}"
+ entries.append(cmake_cache_path(name, root))
+
def initconfig_package_entries(self):
spec = self.spec
entries = []
+ path_replacements = {}
# TPL locations
entries.append("#------------------{0}".format("-" * 60))
entries.append("# TPLs")
entries.append("#------------------{0}\n".format("-" * 60))
- # Try to find the common prefix of the TPL directory, including the
- # compiler. If found, we will use this in the TPL paths
- compiler_str = str(spec.compiler).replace("@", "-")
- prefix_paths = prefix.split(compiler_str)
- path_replacements = {}
-
- if len(prefix_paths) == 2:
- tpl_root = os.path.realpath(pjoin(prefix_paths[0], compiler_str))
- path_replacements[tpl_root] = "${TPL_ROOT}"
- entries.append("# Root directory for generated TPLs\n")
- entries.append(cmake_cache_path("TPL_ROOT", tpl_root))
+ # Try to find the common prefix of the TPL directory.
+ # If found, we will use this in the TPL paths
+ path1 = os.path.realpath(spec["conduit"].prefix)
+ path2 = os.path.realpath(self.prefix)
+ self.find_path_replacement(path1, path2, path_replacements, "TPL_ROOT", entries)
conduit_dir = get_spec_path(spec, "conduit", path_replacements)
entries.append(cmake_cache_path("CONDUIT_DIR", conduit_dir))
@@ -441,17 +509,13 @@ def initconfig_package_entries(self):
# Grab common devtools root and strip the trailing slash
path1 = os.path.realpath(spec["cppcheck"].prefix)
path2 = os.path.realpath(spec["doxygen"].prefix)
- devtools_root = os.path.commonprefix([path1, path2])[:-1]
- path_replacements[devtools_root] = "${DEVTOOLS_ROOT}"
- entries.append("# Root directory for generated developer tools\n")
- entries.append(cmake_cache_path("DEVTOOLS_ROOT", devtools_root))
+ self.find_path_replacement(path1, path2, path_replacements, "DEVTOOLS_ROOT", entries)
- if "+devtools" in spec and "toss_4" not in self._get_sys_type(spec):
- # Only turn on clangformat support if devtools is on and not TOSS4
+ if "+devtools" in spec and spec.satisfies("^llvm"):
clang_fmt_path = spec["llvm"].prefix.bin.join("clang-format")
entries.append(cmake_cache_path("CLANGFORMAT_EXECUTABLE", clang_fmt_path))
else:
- entries.append("# ClangFormat disabled due to disabled devtools\n")
+ entries.append("# ClangFormat disabled due to llvm and devtools not in spec\n")
entries.append(cmake_cache_option("ENABLE_CLANGFORMAT", False))
if "+python" in spec or "+devtools" in spec:
@@ -460,6 +524,11 @@ def initconfig_package_entries(self):
python_path = python_path.replace(key, path_replacements[key])
entries.append(cmake_cache_path("PYTHON_EXECUTABLE", python_path))
+ if spec.satisfies("^py-jsonschema"):
+ jsonschema_dir = get_spec_path(spec, "py-jsonschema", path_replacements, use_bin=True)
+ jsonschema_path = os.path.join(jsonschema_dir, "jsonschema")
+ entries.append(cmake_cache_path("JSONSCHEMA_EXECUTABLE", jsonschema_path))
+
enable_docs = spec.satisfies("^doxygen") or spec.satisfies("^py-sphinx")
entries.append(cmake_cache_option("ENABLE_DOCS", enable_docs))
diff --git a/var/spack/repos/builtin/packages/axom/umpire_camp_blt_targets.patch b/var/spack/repos/builtin/packages/axom/umpire_camp_blt_targets.patch
new file mode 100644
index 00000000000000..c82c53168c6d18
--- /dev/null
+++ b/var/spack/repos/builtin/packages/axom/umpire_camp_blt_targets.patch
@@ -0,0 +1,38 @@
+diff --git a/src/cmake/thirdparty/SetupAxomThirdParty.cmake b/src/cmake/thirdparty/SetupAxomThirdParty.cmake
+index d4d25d50e..a7ba6e59d 100644
+--- a/src/cmake/thirdparty/SetupAxomThirdParty.cmake
++++ b/src/cmake/thirdparty/SetupAxomThirdParty.cmake
+@@ -32,31 +32,8 @@ if ((RAJA_DIR OR UMPIRE_DIR) AND NOT CAMP_DIR)
+ message(FATAL_ERROR "CAMP_DIR is required if RAJA_DIR or UMPIRE_DIR is provided.")
+ endif()
+
+-if (CAMP_DIR)
+- if (NOT EXISTS "${CAMP_DIR}")
+- message(FATAL_ERROR "Given CAMP_DIR does not exist: ${CAMP_DIR}")
+- endif()
+-
+- if (NOT IS_DIRECTORY "${CAMP_DIR}")
+- message(FATAL_ERROR "Given CAMP_DIR is not a directory: ${CAMP_DIR}")
+- endif()
+-
+- find_package(camp REQUIRED PATHS ${CAMP_DIR})
+-
+- message(STATUS "Checking for expected Camp target 'camp'")
+- if (NOT TARGET camp)
+- message(FATAL_ERROR "Camp failed to load: ${CAMP_DIR}")
+- else()
+- message(STATUS "Camp loaded: ${CAMP_DIR}")
+- set(CAMP_FOUND TRUE CACHE BOOL "")
+- endif()
+-
+- # Note: camp sets a compile feature that is not available on XL
+- set_target_properties(camp PROPERTIES INTERFACE_COMPILE_FEATURES "")
+-else()
+- message(STATUS "Camp support is OFF")
+- set(CAMP_FOUND FALSE CACHE BOOL "")
+-endif()
++# Note: Let Umpire find Camp via camp_DIR, don't find it ourselves
++set(camp_DIR ${CAMP_DIR})
+
+ #------------------------------------------------------------------------------
+ # UMPIRE
diff --git a/var/spack/repos/builtin/packages/azcopy/package.py b/var/spack/repos/builtin/packages/azcopy/package.py
index 2f513212b80021..9aad1f4d9d6914 100644
--- a/var/spack/repos/builtin/packages/azcopy/package.py
+++ b/var/spack/repos/builtin/packages/azcopy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Azcopy(Package):
homepage = "https://github.com/Azure/azure-storage-azcopy"
url = "https://github.com/Azure/azure-storage-azcopy/archive/refs/tags/v10.18.1.tar.gz"
+ license("MIT")
+
version("10.19.0", sha256="33ce1539b56a4e9a38140374630bd9640157bb44d0c57b3224a5e5f592ab5399")
version("10.18.1", sha256="80292625d7f1a6fc41688c5948b3a20cfdae872464d37d831e20999430819c3f")
diff --git a/var/spack/repos/builtin/packages/babelflow/package.py b/var/spack/repos/builtin/packages/babelflow/package.py
index b52917fca12f7d..7be4ce4d726c22 100644
--- a/var/spack/repos/builtin/packages/babelflow/package.py
+++ b/var/spack/repos/builtin/packages/babelflow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Babelflow(CMakePackage):
maintainers("spetruzza")
+ license("BSD-3-Clause")
+
version("1.1.0", sha256="6436b0e6b2f57fbe0cb9127dc9e7f513167de89de2a8c145055434013714989f")
version("1.0.1", sha256="b7817870b7a1d7ae7ae2eff1a1acec2824675fb856f666d5dc95c41ce453ae91")
version("1.0.0", sha256="4c4d7ddf60e25e8d3550c07875dba3e46e7c9e61b309cc47a409461b7ffa405e")
diff --git a/var/spack/repos/builtin/packages/babelstream/package.py b/var/spack/repos/builtin/packages/babelstream/package.py
index c96b486245aabd..4b2a1c58571eb0 100644
--- a/var/spack/repos/builtin/packages/babelstream/package.py
+++ b/var/spack/repos/builtin/packages/babelstream/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -157,7 +157,7 @@ class Babelstream(CMakePackage, CudaPackage, ROCmPackage):
when="+thrust",
msg="Which Thrust implementation to use, supported options include:\
- CUDA (via https://github.com/NVIDIA/thrust)\
- - ROCM (via https://github.com/ROCmSoftwarePlatform/rocThrust)",
+ - ROCM (via https://github.com/ROCm/rocThrust)",
)
# This applies to all
diff --git a/var/spack/repos/builtin/packages/babeltrace/package.py b/var/spack/repos/builtin/packages/babeltrace/package.py
index eff81092b2e164..af0552d6a01f90 100644
--- a/var/spack/repos/builtin/packages/babeltrace/package.py
+++ b/var/spack/repos/builtin/packages/babeltrace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Babeltrace(AutotoolsPackage):
homepage = "https://www.efficios.com/babeltrace"
url = "https://www.efficios.com/files/babeltrace/babeltrace-1.2.4.tar.bz2"
+ license("MIT")
+
version("1.2.4", sha256="666e3a1ad2dc7d5703059963056e7800f0eab59c8eeb6be2efe4f3acc5209eb1")
depends_on("glib@2.22:", type=("build", "link"))
diff --git a/var/spack/repos/builtin/packages/babl/package.py b/var/spack/repos/builtin/packages/babl/package.py
index e141bd0ff74a30..dc9b480eaed07a 100644
--- a/var/spack/repos/builtin/packages/babl/package.py
+++ b/var/spack/repos/builtin/packages/babl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Babl(MesonPackage):
maintainers("benkirk")
+ license("LGPL-3.0-or-later")
+
version("0.1.106", sha256="d325135d3304f088c134cc620013acf035de2e5d125a50a2d91054e7377c415f")
version("0.1.102", sha256="a88bb28506575f95158c8c89df6e23686e50c8b9fea412bf49fe8b80002d84f0")
version("0.1.98", sha256="f3b222f84e462735de63fa9c3651942f2b78fd314c73a22e05ff7c73afd23af1")
diff --git a/var/spack/repos/builtin/packages/bacio/package.py b/var/spack/repos/builtin/packages/bacio/package.py
index f872fc339127c3..2cb6528c4f6a5e 100644
--- a/var/spack/repos/builtin/packages/bacio/package.py
+++ b/var/spack/repos/builtin/packages/bacio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/backupninja/package.py b/var/spack/repos/builtin/packages/backupninja/package.py
index 8fc51d1776d77d..32fe1f8ebd5e42 100644
--- a/var/spack/repos/builtin/packages/backupninja/package.py
+++ b/var/spack/repos/builtin/packages/backupninja/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Backupninja(AutotoolsPackage):
homepage = "https://github.com/lelutin/backupninja"
git = "https://github.com/lelutin/backupninja.git"
+ license("GPL-2.0-or-later")
+
version("master", branch="master")
depends_on("autoconf", type="build")
diff --git a/var/spack/repos/builtin/packages/backward-cpp/package.py b/var/spack/repos/builtin/packages/backward-cpp/package.py
new file mode 100644
index 00000000000000..05e7a5ae32324c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/backward-cpp/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class BackwardCpp(CMakePackage):
+ """A beautiful stack trace pretty printer for C++."""
+
+ homepage = "https://github.com/bombela/backward-cpp"
+ git = "https://github.com/bombela/backward-cpp.git"
+ url = "https://github.com/bombela/backward-cpp/archive/refs/tags/v1.6.tar.gz"
+
+ license("MIT")
+
+ version("master", branch="master")
+ version("1.6", sha256="c654d0923d43f1cea23d086729673498e4741fb2457e806cfaeaea7b20c97c10")
+ version("1.5", sha256="faf7d4fe7ca65117ed4fe7be9bff9628927bd95b49f71df63d5f99af233d1915")
+ version("1.4", sha256="ad73be31c5cfcbffbde7d34dba18158a42043a109e7f41946f0b0abd589ed55e")
+ version("1.3", sha256="4bf3fb7029ff551acda6578d9d8e13d438ebdd82a787a82b157728e3af6b5dec")
+ version("1.2", sha256="0a44fdad126cf2c53f93c33fd6418abaf99672048c98a5a57e2a2e43a38d5f84")
+ version("1.1", sha256="36139e98b8b6a8ff84b28c50fd6443054ccee93cf63231fdd1db0036093553c4")
+
+ variant("dwarf", default=False, description="Use libdwarf/libelf to read debug info")
+
+ depends_on("libdwarf", when="+dwarf")
+
+ def cmake_args(self):
+ return ["-DBACKWARD_SHARED=ON"]
diff --git a/var/spack/repos/builtin/packages/bam-readcount/package.py b/var/spack/repos/builtin/packages/bam-readcount/package.py
index b895bfcbb18197..3a5bb85905da8d 100644
--- a/var/spack/repos/builtin/packages/bam-readcount/package.py
+++ b/var/spack/repos/builtin/packages/bam-readcount/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class BamReadcount(CMakePackage):
homepage = "https://github.com/genome/bam-readcount"
url = "https://github.com/genome/bam-readcount/archive/v0.8.0.tar.gz"
+ license("MIT")
+
version("1.0.1", sha256="8ebf84d9efee0f2d3b43f0452dbf16b27337c960e25128f6a7173119e62588b8")
version("0.8.0", sha256="4f4dd558e3c6bfb24d6a57ec441568f7524be6639b24f13ea6f2bb350c7ea65f")
diff --git a/var/spack/repos/builtin/packages/bamaddrg/package.py b/var/spack/repos/builtin/packages/bamaddrg/package.py
index eed427a22c4a75..ae30012e3ab737 100644
--- a/var/spack/repos/builtin/packages/bamaddrg/package.py
+++ b/var/spack/repos/builtin/packages/bamaddrg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bamdst/package.py b/var/spack/repos/builtin/packages/bamdst/package.py
index fdd01f2b65450a..9080d471e20c98 100644
--- a/var/spack/repos/builtin/packages/bamdst/package.py
+++ b/var/spack/repos/builtin/packages/bamdst/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bamtools/package.py b/var/spack/repos/builtin/packages/bamtools/package.py
index c45a07e61ef244..f6007ae761f816 100644
--- a/var/spack/repos/builtin/packages/bamtools/package.py
+++ b/var/spack/repos/builtin/packages/bamtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Bamtools(CMakePackage):
homepage = "https://github.com/pezmaster31/bamtools"
url = "https://github.com/pezmaster31/bamtools/archive/v2.5.2.tar.gz"
+ license("MIT")
+
version("2.5.2", sha256="4d8b84bd07b673d0ed41031348f10ca98dd6fa6a4460f9b9668d6f1d4084dfc8")
version("2.5.1", sha256="4abd76cbe1ca89d51abc26bf43a92359e5677f34a8258b901a01f38c897873fc")
version("2.5.0", sha256="85e02e04998a67cbda7ab68cdab36cee133db024e814b34e06bb617b627caf9c")
diff --git a/var/spack/repos/builtin/packages/bamutil/package.py b/var/spack/repos/builtin/packages/bamutil/package.py
index ffa9c2a2695bb5..b568cb8385d554 100644
--- a/var/spack/repos/builtin/packages/bamutil/package.py
+++ b/var/spack/repos/builtin/packages/bamutil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/banner/package.py b/var/spack/repos/builtin/packages/banner/package.py
index 246f51c548e4d5..c997b5a18c7ff6 100644
--- a/var/spack/repos/builtin/packages/banner/package.py
+++ b/var/spack/repos/builtin/packages/banner/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Banner(AutotoolsPackage):
maintainers("cessenat")
+ license("GPL-2.0-only")
+
version("1.3.5", sha256="fb21c42620a0a668334b5732a6216b23b3990ca5d87cf3b15f0689dc617e7fdc")
def url_for_version(self, version):
diff --git a/var/spack/repos/builtin/packages/bannergrab/package.py b/var/spack/repos/builtin/packages/bannergrab/package.py
index 73952244045b1d..7bd7abbb4d12b3 100644
--- a/var/spack/repos/builtin/packages/bannergrab/package.py
+++ b/var/spack/repos/builtin/packages/bannergrab/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Bannergrab(MakefilePackage):
homepage = "https://github.com/johanburati/bannergrab"
git = "https://github.com/johanburati/bannergrab.git"
+ license("GPL-3.0-or-later")
+
version("master", branch="master")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/barrnap/package.py b/var/spack/repos/builtin/packages/barrnap/package.py
index a6f7c440dd3efe..7f0dd882761d86 100644
--- a/var/spack/repos/builtin/packages/barrnap/package.py
+++ b/var/spack/repos/builtin/packages/barrnap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Barrnap(Package):
homepage = "https://github.com/tseemann/barrnap"
url = "https://github.com/tseemann/barrnap/archive/0.8.tar.gz"
+ license("CC0-1.0")
+
version("0.9", sha256="36c27cd4350531d98b3b2fb7d294a2d35c15b7365771476456d7873ba33cce15")
version("0.8", sha256="82004930767e92b61539c0de27ff837b8b7af01236e565f1473c63668cf0370f")
version("0.7", sha256="ef2173e250f06cca7569c03404c9d4ab6a908ef7643e28901fbe9a732d20c09b")
diff --git a/var/spack/repos/builtin/packages/bart/package.py b/var/spack/repos/builtin/packages/bart/package.py
index 9fa0baa01833d4..d3920734349605 100644
--- a/var/spack/repos/builtin/packages/bart/package.py
+++ b/var/spack/repos/builtin/packages/bart/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Bart(MakefilePackage, CudaPackage):
homepage = "https://mrirecon.github.io/bart/"
url = "https://github.com/mrirecon/bart/archive/v0.5.00.tar.gz"
+ license("BSD-3-Clause")
+
version("0.7.00", sha256="a16afc4b632c703d95b5c34e47acd82fafc19f51f9aff442373eecfef08bfc41")
version("0.6.00", sha256="dbbd33d1e3ed3324fe21f90a3b62cb51765fe369f21df100b46a32004928f18d")
version("0.5.00", sha256="30eedcda0f0ef3808157542e0d67df5be49ee41e4f41487af5c850632788f643")
diff --git a/var/spack/repos/builtin/packages/barvinok/package.py b/var/spack/repos/builtin/packages/barvinok/package.py
index f39215d9953aab..867025f02cdf02 100644
--- a/var/spack/repos/builtin/packages/barvinok/package.py
+++ b/var/spack/repos/builtin/packages/barvinok/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bash-completion/package.py b/var/spack/repos/builtin/packages/bash-completion/package.py
index 7458f7eb8dd959..1943a45342c1e8 100644
--- a/var/spack/repos/builtin/packages/bash-completion/package.py
+++ b/var/spack/repos/builtin/packages/bash-completion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class BashCompletion(AutotoolsPackage):
url = "https://github.com/scop/bash-completion/archive/2.3.tar.gz"
git = "https://github.com/scop/bash-completion.git"
+ license("GPL-2.0-or-later")
+
version("develop", branch="master")
version("2.7", sha256="dba2b88c363178622b61258f35d82df64dc8d279359f599e3b93eac0375a416c")
version("2.3", sha256="d92fcef5f6e3bbc68a84f0a7b063a1cd07b4000cc6e275cd1ff83863ab3b322a")
diff --git a/var/spack/repos/builtin/packages/bash/package.py b/var/spack/repos/builtin/packages/bash/package.py
index 3d992a0ffd274c..52a55e26bf70dc 100644
--- a/var/spack/repos/builtin/packages/bash/package.py
+++ b/var/spack/repos/builtin/packages/bash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Bash(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/bash/"
gnu_mirror_path = "bash/bash-5.0.tar.gz"
+ license("GPL-3.0-or-later")
+
version("5.2", sha256="a139c166df7ff4471c5e0733051642ee5556c1cc8a4a78f145583c5c81ab32fb")
version("5.1", sha256="cc012bc860406dcf42f64431bcd3d2fa7560c02915a601aba9cd597a39329baa")
version("5.0", sha256="b4a80f2ac66170b2913efbfb9f2594f1f76c7b1afd11f799e22035d63077fb4d")
diff --git a/var/spack/repos/builtin/packages/bashtop/package.py b/var/spack/repos/builtin/packages/bashtop/package.py
index 1cb458d781bd57..75a0319b4b4a3e 100644
--- a/var/spack/repos/builtin/packages/bashtop/package.py
+++ b/var/spack/repos/builtin/packages/bashtop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Bashtop(Package):
homepage = "https://github.com/aristocratos/bashtop"
url = "https://github.com/aristocratos/bashtop/archive/v0.8.17.tar.gz"
+ license("Apache-2.0")
+
version("0.8.17", sha256="853a7143de533437cc1654b853bc89da54ff91c629820ac45b7c8708dababf1f")
version("0.8.16", sha256="6249e5c678fdb0a2a87d6fa13b9fe1f6bd56f7dbcaba0066d2a5275a7f9a9355")
version("0.8.15", sha256="617aab0a23b1a9430f2ef7d51e4f89eb06c5b3f2ff40768cb6849fc2899ffc6a")
diff --git a/var/spack/repos/builtin/packages/bat/package.py b/var/spack/repos/builtin/packages/bat/package.py
index d06e89368bfc03..1718b778c6d2a2 100644
--- a/var/spack/repos/builtin/packages/bat/package.py
+++ b/var/spack/repos/builtin/packages/bat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,19 +6,16 @@
from spack.package import *
-class Bat(Package):
+class Bat(CargoPackage):
"""A cat(1) clone with wings."""
homepage = "https://github.com/sharkdp/bat"
url = "https://github.com/sharkdp/bat/archive/v0.13.0.tar.gz"
+ license("Apache-2.0")
+
+ version("0.24.0", sha256="907554a9eff239f256ee8fe05a922aad84febe4fe10a499def72a4557e9eedfb")
version("0.23.0", sha256="30b6256bea0143caebd08256e0a605280afbbc5eef7ce692f84621eb232a9b31")
version("0.21.0", sha256="3dff1e52d577d0a105f4afe3fe7722a4a2b8bb2eb3e7a6a5284ac7add586a3ee")
version("0.13.0", sha256="f4aee370013e2a3bc84c405738ed0ab6e334d3a9f22c18031a7ea008cd5abd2a")
version("0.12.1", sha256="1dd184ddc9e5228ba94d19afc0b8b440bfc1819fef8133fe331e2c0ec9e3f8e2")
-
- depends_on("rust")
-
- def install(self, spec, prefix):
- cargo = which("cargo")
- cargo("install", "--root", prefix, "--path", ".")
diff --git a/var/spack/repos/builtin/packages/batchedblas/package.py b/var/spack/repos/builtin/packages/batchedblas/package.py
index 712f270e8cf8fc..283e7e23a37857 100644
--- a/var/spack/repos/builtin/packages/batchedblas/package.py
+++ b/var/spack/repos/builtin/packages/batchedblas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Batchedblas(MakefilePackage):
homepage = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/batchedblas/index.html"
url = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/batchedblas/BatchedBLAS-1.0.tar.gz"
+ license("BSD-2-Clause")
+
version("1.0", sha256="798ae4e7cc4ad5c3d5f3479f3d001da566d7d5205779103aaf10cd5b956ba433")
depends_on("blas")
diff --git a/var/spack/repos/builtin/packages/batctl/package.py b/var/spack/repos/builtin/packages/batctl/package.py
index cfd12f367d2dc5..84a5cb3aa310e0 100644
--- a/var/spack/repos/builtin/packages/batctl/package.py
+++ b/var/spack/repos/builtin/packages/batctl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Batctl(MakefilePackage):
homepage = "https://github.com/open-mesh-mirror/batctl"
url = "https://github.com/open-mesh-mirror/batctl/archive/v2019.5.tar.gz"
+ license("GPL-2.0-only AND MIT AND ISC", checked_by="tgamblin")
+
version("2019.5", sha256="ffe5857a33068ec174140c154610d76d833524d840a2fc2d1a15e16686213cad")
version("2019.4", sha256="a3564eb9727335352dc0cfa2f2b29474c2c837384689ac5fcb387784a56e7685")
version("2019.3", sha256="2bd93fa14925a8dc63a67e64266c8ccd2fa3ac44b10253d93e6f8a630350070c")
diff --git a/var/spack/repos/builtin/packages/bats/package.py b/var/spack/repos/builtin/packages/bats/package.py
index 9370ed834e118a..ca35c75d76b02f 100644
--- a/var/spack/repos/builtin/packages/bats/package.py
+++ b/var/spack/repos/builtin/packages/bats/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Bats(Package):
homepage = "https://github.com/bats-core/bats-core"
url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.10.0.tar.gz"
+ license("MIT")
+
version("1.10.0", sha256="a1a9f7875aa4b6a9480ca384d5865f1ccf1b0b1faead6b47aa47d79709a5c5fd")
version(
"0.4.0",
diff --git a/var/spack/repos/builtin/packages/baurmc/package.py b/var/spack/repos/builtin/packages/baurmc/package.py
index 218e05f2187243..3fff20bcb00d11 100644
--- a/var/spack/repos/builtin/packages/baurmc/package.py
+++ b/var/spack/repos/builtin/packages/baurmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bazel/bazelconfiguration-0.3.patch b/var/spack/repos/builtin/packages/bazel/bazelconfiguration-0.3.patch
deleted file mode 100644
index e6a974a98a9cbb..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/bazelconfiguration-0.3.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java
-+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java
-@@ -150,6 +150,13 @@
- builder.put("PATH", null);
- builder.put("LD_LIBRARY_PATH", null);
- }
-+
-+ Map spackEnv = System.getenv();
-+ for (String envName : spackEnv.keySet()) {
-+ if (envName.startsWith("SPACK_")) {
-+ builder.put(envName, spackEnv.get(envName));
-+ }
-+ }
- }
-
- private static PathFragment determineShellExecutable(OS os, PathFragment fromOption) {
diff --git a/var/spack/repos/builtin/packages/bazel/bazelruleclassprovider-0.14.patch b/var/spack/repos/builtin/packages/bazel/bazelruleclassprovider-0.14.patch
deleted file mode 100644
index b0aebdf359b6cd..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/bazelruleclassprovider-0.14.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
-+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
-@@ -168,6 +168,13 @@ public class BazelRuleClassProvider {
- env.put("PATH", null);
- }
-
-+ Map spackEnv = System.getenv();
-+ for (String envName : spackEnv.keySet()) {
-+ if (envName.startsWith("SPACK_")) {
-+ env.put(envName, spackEnv.get(envName));
-+ }
-+ }
-+
- // Shell environment variables specified via options take precedence over the
- // ones inherited from the fragments. In the long run, these fragments will
- // be replaced by appropriate default rc files anyway.
diff --git a/var/spack/repos/builtin/packages/bazel/build-0.29.1.patch b/var/spack/repos/builtin/packages/bazel/build-0.29.1.patch
deleted file mode 100644
index c3ed9ab254b253..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/build-0.29.1.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 9c9d27561780bc56d9f0867e325c7421a94ee1cb Mon Sep 17 00:00:00 2001
-From: Harsh Bhatia
-Date: Tue, 15 Dec 2020 15:56:10 -0800
-Subject: [PATCH] https://github.com/bazelbuild/bazel/commit/ab62a6e097590dac5ec946ad7a796ea0e8593ae0
-
----
- src/conditions/BUILD | 6 ++++++
- third_party/BUILD | 8 ++++++--
- 2 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/src/conditions/BUILD b/src/conditions/BUILD
-index 2b28e28057..faa41a439d 100644
---- a/src/conditions/BUILD
-+++ b/src/conditions/BUILD
-@@ -10,6 +10,12 @@ filegroup(
- visibility = ["//src:__pkg__"],
- )
-
-+config_setting(
-+ name = "linux_ppc",
-+ values = {"cpu": "ppc"},
-+ visibility = ["//visibility:public"],
-+)
-+
- config_setting(
- name = "linux_x86_64",
- values = {"cpu": "k8"},
-diff --git a/third_party/BUILD b/third_party/BUILD
-index 159006d741..4fcae54c00 100644
---- a/third_party/BUILD
-+++ b/third_party/BUILD
-@@ -523,12 +523,13 @@ UNNECESSARY_DYNAMIC_LIBRARIES = select({
- "//src/conditions:darwin": "*.so *.dll",
- "//src/conditions:darwin_x86_64": "*.so *.dll",
- "//src/conditions:linux_x86_64": "*.jnilib *.dll",
-+ "//src/conditions:linux_ppc": "*.so *.jnilib *.dll",
- # The .so file is an x86 one, so we can just remove it if the CPU is not x86
- "//src/conditions:arm": "*.so *.jnilib *.dll",
- "//src/conditions:linux_aarch64": "*.so *.jnilib *.dll",
- # Play it safe -- better have a big binary than a slow binary
- # zip -d does require an argument. Supply something bogus.
-- "//conditions:default": "*.bogusextension",
-+ "//conditions:default": "",
- })
-
- # Remove native libraries that are for a platform different from the one we are
-@@ -537,7 +538,10 @@ genrule(
- name = "filter_netty_dynamic_libs",
- srcs = ["netty_tcnative/netty-tcnative-boringssl-static-2.0.24.Final.jar"],
- outs = ["netty_tcnative/netty-tcnative-filtered.jar"],
-- cmd = "cp $< $@ && zip -qd $@ " + UNNECESSARY_DYNAMIC_LIBRARIES,
-+ cmd = "cp $< $@ && " +
-+ # End successfully if there is nothing to be deleted from the archive
-+ "if [ -n '" + UNNECESSARY_DYNAMIC_LIBRARIES + "' ]; then " +
-+ "zip -qd $@ " + UNNECESSARY_DYNAMIC_LIBRARIES + "; fi",
- )
-
- java_import(
---
-2.21.0 (Apple Git-122.2)
-
diff --git a/var/spack/repos/builtin/packages/bazel/cc_configure-0.3.0.patch b/var/spack/repos/builtin/packages/bazel/cc_configure-0.3.0.patch
deleted file mode 100644
index 79e12269a6bfeb..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/cc_configure-0.3.0.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/tools/cpp/cc_configure.bzl
-+++ b/tools/cpp/cc_configure.bzl
-@@ -173,8 +173,19 @@
- else:
- inc_dirs = result.stderr[index1 + 1:index2].strip()
-
-- return [repository_ctx.path(_cxx_inc_convert(p))
-- for p in inc_dirs.split("\n")]
-+ default_inc_directories = [
-+ repository_ctx.path(_cxx_inc_convert(p))
-+ for p in inc_dirs.split("\n")
-+ ]
-+
-+ env = repository_ctx.os.environ
-+ if "SPACK_INCLUDE_DIRS" in env:
-+ for path in env["SPACK_INCLUDE_DIRS"].split(":"):
-+ default_inc_directories.append(
-+ repository_ctx.path(_cxx_inc_convert(path))
-+ )
-+
-+ return default_inc_directories
-
- def _add_option_if_supported(repository_ctx, cc, option):
- """Checks that `option` is supported by the C compiler."""
diff --git a/var/spack/repos/builtin/packages/bazel/cc_configure-0.5.0.patch b/var/spack/repos/builtin/packages/bazel/cc_configure-0.5.0.patch
deleted file mode 100644
index 470986bec66505..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/cc_configure-0.5.0.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/tools/cpp/cc_configure.bzl
-+++ b/tools/cpp/cc_configure.bzl
-@@ -200,8 +200,19 @@
- else:
- inc_dirs = result.stderr[index1 + 1:index2].strip()
-
-- return [_escape_string(repository_ctx.path(_cxx_inc_convert(p)))
-- for p in inc_dirs.split("\n")]
-+ default_inc_directories = [
-+ _escape_string(repository_ctx.path(_cxx_inc_convert(p)))
-+ for p in inc_dirs.split("\n")
-+ ]
-+
-+ env = repository_ctx.os.environ
-+ if "SPACK_INCLUDE_DIRS" in env:
-+ for path in env["SPACK_INCLUDE_DIRS"].split(":"):
-+ default_inc_directories.append(
-+ repository_ctx.path(_cxx_inc_convert(path))
-+ )
-+
-+ return default_inc_directories
-
-
- def _add_option_if_supported(repository_ctx, cc, option):
diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.13.patch b/var/spack/repos/builtin/packages/bazel/compile-0.13.patch
deleted file mode 100644
index 13c82e7631bbcd..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/compile-0.13.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/compile.sh
-+++ b/compile.sh
-@@ -92,7 +92,7 @@
- log "Building output/bazel"
- # We set host and target platform directly since the defaults in @bazel_tools
- # have not yet been generated.
--bazel_build "src:bazel${EXE_EXT}" \
-+CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}" \
- --host_platform=@bazel_tools//platforms:host_platform \
- --platforms=@bazel_tools//platforms:target_platform \
- || fail "Could not build Bazel"
diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.16.patch b/var/spack/repos/builtin/packages/bazel/compile-0.16.patch
deleted file mode 100644
index f61f521a15b9af..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/compile-0.16.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/compile.sh
-+++ b/compile.sh
-@@ -92,7 +92,7 @@ display "."
- log "Building output/bazel"
- # We set host and target platform directly since the defaults in @bazel_tools
- # have not yet been generated.
--bazel_build "src:bazel_nojdk${EXE_EXT}" \
-+CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel_nojdk${EXE_EXT}" \
- --host_platform=@bazel_tools//platforms:host_platform \
- --platforms=@bazel_tools//platforms:target_platform \
- || fail "Could not build Bazel"
diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.21.patch b/var/spack/repos/builtin/packages/bazel/compile-0.21.patch
deleted file mode 100644
index d666a0f055ca04..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/compile-0.21.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/compile.sh
-+++ b/compile.sh
-@@ -92,7 +92,7 @@ display "."
- log "Building output/bazel"
- # We set host and target platform directly since the defaults in @bazel_tools
- # have not yet been generated.
--bazel_build "src:bazel_nojdk${EXE_EXT}" \
-+CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel_nojdk${EXE_EXT}" \
- --action_env=PATH \
- --host_platform=@bazel_tools//platforms:host_platform \
- --platforms=@bazel_tools//platforms:target_platform \
diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.3.patch b/var/spack/repos/builtin/packages/bazel/compile-0.3.patch
deleted file mode 100644
index 82db6efb6e86f7..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/compile-0.3.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/compile.sh
-+++ b/compile.sh
-@@ -99,7 +99,7 @@
- new_step 'Building Bazel with Bazel'
- display "."
- log "Building output/bazel"
-- bazel_build "src:bazel${EXE_EXT}"
-+ CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}"
- cp -f "bazel-bin/src/bazel${EXE_EXT}" "output/bazel${EXE_EXT}"
- chmod 0755 "output/bazel${EXE_EXT}"
- BAZEL="$(pwd)/output/bazel${EXE_EXT}"
diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.4.patch b/var/spack/repos/builtin/packages/bazel/compile-0.4.patch
deleted file mode 100644
index 80eab26a882797..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/compile-0.4.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/compile.sh
-+++ b/compile.sh
-@@ -124,7 +124,7 @@
- new_step 'Building Bazel with Bazel'
- display "."
- log "Building output/bazel"
-- bazel_build "src:bazel${EXE_EXT}" \
-+ CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}" \
- || fail "Could not build Bazel"
- bazel_bin_path="$(get_bazel_bin_path)/src/bazel${EXE_EXT}"
- [ -e "$bazel_bin_path" ] \
diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.6.patch b/var/spack/repos/builtin/packages/bazel/compile-0.6.patch
deleted file mode 100644
index 64eb408e5df874..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/compile-0.6.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/compile.sh
-+++ b/compile.sh
-@@ -85,7 +85,7 @@
- log "Building output/bazel"
- # We set host and target platform directly since the defaults in @bazel_tools
- # have not yet been generated.
--bazel_build "src:bazel${EXE_EXT}" \
-+CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}" \
- --experimental_host_platform=//tools/platforms:host_platform \
- --experimental_platforms=//tools/platforms:target_platform \
- || fail "Could not build Bazel"
diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.9.patch b/var/spack/repos/builtin/packages/bazel/compile-0.9.patch
deleted file mode 100644
index 135de3a00fdadc..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/compile-0.9.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/compile.sh
-+++ b/compile.sh
-@@ -92,7 +92,7 @@
- log "Building output/bazel"
- # We set host and target platform directly since the defaults in @bazel_tools
- # have not yet been generated.
--bazel_build "src:bazel${EXE_EXT}" \
-+CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}" \
- --host_platform=//tools/platforms:host_platform \
- --platforms=//tools/platforms:target_platform \
- || fail "Could not build Bazel"
diff --git a/var/spack/repos/builtin/packages/bazel/cppcompileaction-0.3.0.patch b/var/spack/repos/builtin/packages/bazel/cppcompileaction-0.3.0.patch
deleted file mode 100644
index dd23972d9925de..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/cppcompileaction-0.3.0.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java.orig 2020-06-08 13:42:14.035342560 -0400
-+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java 2020-06-08 13:42:25.149375458 -0400
-@@ -963,7 +963,7 @@
- // are, it's probably due to a non-hermetic #include, & we should stop
- // the build with an error.
- if (execPath.startsWith(execRoot)) {
-- execPathFragment = execPath.relativeTo(execRoot); // funky but tolerable path
-+ // execPathFragment = execPath.relativeTo(execRoot); // funky but tolerable path
- } else {
- problems.add(execPathFragment.getPathString());
- continue;
diff --git a/var/spack/repos/builtin/packages/bazel/package.py b/var/spack/repos/builtin/packages/bazel/package.py
index 705eef43b94064..4f76e8e7bb24be 100644
--- a/var/spack/repos/builtin/packages/bazel/package.py
+++ b/var/spack/repos/builtin/packages/bazel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Bazel(Package):
tags = ["build-tools"]
+ license("Apache-2.0")
+
version("6.1.1", sha256="6b900f26d676c7eca1d2e7dff9b71890dabd3ff59cab2a2d2178bc8a0395342a")
version("6.1.0", sha256="c4b85675541cf66ee7cb71514097fdd6c5fc0e02527243617a4f20ca6b4f2932")
version("6.0.0", sha256="7bc0c5145c19a56d82a08fce6908c5e1a0e75e4fbfb3b6f12b4deae7f4b38cbc")
@@ -55,356 +57,6 @@ class Bazel(Package):
version("2.1.0", sha256="3371cd9050989173a3b27364668328653a65653a50a85c320adc53953b4d5f46")
version("2.0.1", sha256="a863ed9e6fc420fbd92e63a12fe1a5b9be1a7a36f11f61f1fdc582c813bbe543")
version("2.0.0", sha256="724da3c656f68e787a86ebb9844773aa1c2e3a873cc39462a8f1b336153d6cbb")
- version(
- "1.2.1",
- sha256="255da49d0f012bc4f2c1d6d3ccdbe578e22fe97b8d124e1629a486fe2a09d3e1",
- deprecated=True,
- )
- version(
- "1.2.0",
- sha256="9cb46b0a18b9166730307a0e82bf4c02281a1cc6da0fb11239e6fe4147bdee6e",
- deprecated=True,
- )
- version(
- "1.1.0",
- sha256="4b66a8c93af7832ed32e7236cf454a05f3aa06d25a8576fc3f83114f142f95ab",
- deprecated=True,
- )
- version(
- "1.0.1",
- sha256="f4d2dfad011ff03a5fae41b9b02cd96cd7297c1205d496603d66516934fbcfee",
- deprecated=True,
- )
- version(
- "1.0.0",
- sha256="c61daf0b69dd95205c695b2f9022d296d052c727062cfd396d54ffb2154f8cac",
- deprecated=True,
- )
- version(
- "0.29.1",
- sha256="872a52cff208676e1169b3e1cae71b1fe572c4109cbd66eab107d8607c378de5",
- deprecated=True,
- )
- version(
- "0.29.0",
- sha256="01cb6f2e808bd016cf0e217e12373c9efb808123e58b37885be8364458d3a40a",
- deprecated=True,
- )
- version(
- "0.28.1",
- sha256="2cea463d611f5255d2f3d41c8de5dcc0961adccb39cf0ac036f07070ba720314",
- deprecated=True,
- )
- version(
- "0.28.0",
- sha256="26ad8cdadd413b8432cf46d9fc3801e8db85d9922f85dd8a7f5a92fec876557f",
- deprecated=True,
- )
- version(
- "0.27.2",
- sha256="5e1bf2b48e54eb7e518430667d29aef53695d6dd7c718665a52131ab27aadab2",
- deprecated=True,
- )
- version(
- "0.27.1",
- sha256="8051d77da4ec338acd91770f853e4c25f4407115ed86fd35a6de25921673e779",
- deprecated=True,
- )
- version(
- "0.27.0",
- sha256="c3080d3b959ac08502ad5c84a51608c291accb1481baad88a628bbf79b30c67a",
- deprecated=True,
- )
- version(
- "0.26.1",
- sha256="c0e94f8f818759f3f67af798c38683520c540f469cb41aea8f5e5a0e43f11600",
- deprecated=True,
- )
- version(
- "0.26.0",
- sha256="d26dadf62959255d58e523da3448a6222af768fe1224e321b120c1d5bbe4b4f2",
- deprecated=True,
- )
- version(
- "0.25.3",
- sha256="23eafd3e439bc71baba9c592b52cb742dabc8640a13b9da1751fec090a2dda99",
- deprecated=True,
- )
- version(
- "0.25.2",
- sha256="7456032199852c043e6c5b3e4c71dd8089c1158f72ec554e6ec1c77007f0ab51",
- deprecated=True,
- )
- version(
- "0.25.1",
- sha256="a52bb31aeb1f821e649d25ef48023cfb54a12887aff875c6349ebcac36c2f056",
- deprecated=True,
- )
- version(
- "0.25.0",
- sha256="f624fe9ca8d51de192655369ac538c420afb7cde16e1ad052554b582fff09287",
- deprecated=True,
- )
- version(
- "0.24.1",
- sha256="56ea1b199003ad832813621744178e42b39e6206d34fbae342562c287da0cd54",
- deprecated=True,
- )
- version(
- "0.24.0",
- sha256="621d2a97899a88850a913eabf9285778331a309fd4658b225b1377f80060fa85",
- deprecated=True,
- )
- version(
- "0.23.2",
- sha256="293a5a7d851e0618eeb5e6958d94a11d45b6a00f2ba9376de61ac2bd5f917439",
- deprecated=True,
- )
- version(
- "0.23.1",
- sha256="dd47199f92452bf67b2c5d60ad4b7143554eaf2c6196ab6e8713449d81a0491d",
- deprecated=True,
- )
- version(
- "0.23.0",
- sha256="2daf9c2c6498836ed4ebae7706abb809748b1350cacd35b9f89452f31ac0acc1",
- deprecated=True,
- )
- version(
- "0.22.0",
- sha256="6860a226c8123770b122189636fb0c156c6e5c9027b5b245ac3b2315b7b55641",
- deprecated=True,
- )
- version(
- "0.21.0",
- sha256="6ccb831e683179e0cfb351cb11ea297b4db48f9eab987601c038aa0f83037db4",
- deprecated=True,
- )
- version(
- "0.20.0",
- sha256="1945afa84fd8858b0a3c68c09915a4bc81065c61df2591387b2985e2297d30bd",
- deprecated=True,
- )
- version(
- "0.19.2",
- sha256="11234cce4f6bdc62c3ac688f41c7b5c178eecb6f7e2c4ba0bcf00ba8565b1d19",
- deprecated=True,
- )
- version(
- "0.19.1",
- sha256="c9405f7b8c79ebc81f9f0e49bb656df4a0da246771d010c2cdd6bb30e2500ac0",
- deprecated=True,
- )
- version(
- "0.19.0",
- sha256="ee6135c5c47306c8421d43ad83aabc4f219cb065376ee37797f2c8ba9a615315",
- deprecated=True,
- )
- version(
- "0.18.1",
- sha256="baed9f28c317000a4ec1ad2571b3939356d22746ca945ac2109148d7abb860d4",
- deprecated=True,
- )
- version(
- "0.18.0",
- sha256="d0e86d2f7881ec8742a9823a986017452d2da0dfe4e989111da787cb89257155",
- deprecated=True,
- )
- version(
- "0.17.2",
- sha256="b6e87acfa0a405bb8b3417c58477b66d5bc27dc0d31ba6fa12bc255b9278d33b",
- deprecated=True,
- )
- version(
- "0.17.1",
- sha256="23e4281c3628cbd746da3f51330109bbf69780bd64461b63b386efae37203f20",
- deprecated=True,
- )
- version(
- "0.16.1",
- sha256="09c66b94356c82c52f212af52a81ac28eb06de1313755a2f23eeef84d167b36c",
- deprecated=True,
- )
- version(
- "0.16.0",
- sha256="c730593916ef0ba62f3d113cc3a268e45f7e8039daf7b767c8641b6999bd49b1",
- deprecated=True,
- )
- version(
- "0.15.2",
- sha256="bf53ec73be3a6d412d85ef612cec6e9c85db45da42001fab0cf1dad44cfc03f1",
- deprecated=True,
- )
- version(
- "0.15.1",
- sha256="c62b351fa4c1ba5aeb34d0a137176f8e8f1d89a32f548a10e96c11df176ffc6c",
- deprecated=True,
- )
- version(
- "0.15.0",
- sha256="c3b716e6625e6b8c323350c95cd3ae0f56aeb00458dddd10544d5bead8a7b602",
- deprecated=True,
- )
- version(
- "0.14.1",
- sha256="d49cdcd82618ae7a7a190e6f0a80d9bf85c1a66b732f994f37732dc14ffb0025",
- deprecated=True,
- )
- version(
- "0.14.0",
- sha256="259627de8b9d415cc80904523facf3d50e6e8e68448ab968eb1c9cb8ca1ef843",
- deprecated=True,
- )
- version(
- "0.13.1",
- sha256="b0269e75b40d87ff87886e5f3432cbf88f70c96f907ab588e6c21b2922d72db0",
- deprecated=True,
- )
- version(
- "0.13.0",
- sha256="82e9035084660b9c683187618a29aa896f8b05b5f16ae4be42a80b5e5b6a7690",
- deprecated=True,
- )
- version(
- "0.12.0",
- sha256="3b3e7dc76d145046fdc78db7cac9a82bc8939d3b291e53a7ce85315feb827754",
- deprecated=True,
- )
- version(
- "0.11.1",
- sha256="e8d762bcc01566fa50952c8028e95cfbe7545a39b8ceb3a0d0d6df33b25b333f",
- deprecated=True,
- )
- version(
- "0.11.0",
- sha256="abfeccc94728cb46be8dbb3507a23ccffbacef9fbda96a977ef4ea8d6ab0d384",
- deprecated=True,
- )
- version(
- "0.10.1",
- sha256="708248f6d92f2f4d6342006c520f22dffa2f8adb0a9dc06a058e3effe7fee667",
- deprecated=True,
- )
- version(
- "0.10.0",
- sha256="47e0798caaac4df499bce5fe554a914abd884a855a27085a4473de1d737d9548",
- deprecated=True,
- )
- version(
- "0.9.0",
- sha256="efb28fed4ffcfaee653e0657f6500fc4cbac61e32104f4208da385676e76312a",
- deprecated=True,
- )
- version(
- "0.8.1",
- sha256="dfd0761e0b7e36c1d74c928ad986500c905be5ebcfbc29914d574af1db7218cf",
- deprecated=True,
- )
- version(
- "0.8.0",
- sha256="aa840321d056abd3c6be10c4a1e98a64f9f73fff9aa89c468dae8c003974a078",
- deprecated=True,
- )
- version(
- "0.7.0",
- sha256="a084a9c5d843e2343bf3f319154a48abe3d35d52feb0ad45dec427a1c4ffc416",
- deprecated=True,
- )
- version(
- "0.6.1",
- sha256="dada1f60a512789747011184b2767d2b44136ef3b036d86947f1896d200d2ba7",
- deprecated=True,
- )
- version(
- "0.6.0",
- sha256="a0e53728a9541ef87934831f3d05f2ccfdc3b8aeffe3e037be2b92b12400598e",
- deprecated=True,
- )
- version(
- "0.5.4",
- sha256="2157b05309614d6af0e4bbc6065987aede590822634a0522161f3af5d647abc9",
- deprecated=True,
- )
- version(
- "0.5.3",
- sha256="76b5c5880a0b15f5b91f7d626c5bc3b76ce7e5d21456963c117ab711bf1c5333",
- deprecated=True,
- )
- version(
- "0.5.2",
- sha256="2418c619bdd44257a170b85b9d2ecb75def29e751b725e27186468ada2e009ea",
- deprecated=True,
- )
- version(
- "0.5.1",
- sha256="85e6a18b111afeea2e475fe991db2a441ec3824211d659bee7b0012c36be9a40",
- deprecated=True,
- )
- version(
- "0.5.0",
- sha256="ebba7330a8715e96a6d6dc0aa085125d529d0740d788f0544c6169d892e4f861",
- deprecated=True,
- )
- version(
- "0.4.5",
- sha256="2b737be42678900470ae9e48c975ac5b2296d9ae23c007bf118350dbe7c0552b",
- deprecated=True,
- )
- version(
- "0.4.4",
- sha256="d52a21dda271ae645711ce99c70cf44c5d3a809138e656bbff00998827548ebb",
- deprecated=True,
- )
- version(
- "0.4.3",
- sha256="cbd2ab580181c17317cf18b2bf825bcded2d97cab01cd5b5fe4f4d520b64f90f",
- deprecated=True,
- )
- version(
- "0.4.2",
- sha256="8e6f41252abadcdb2cc7a07f910ec4b45fb12c46f0a578672c6a186c7efcdb36",
- deprecated=True,
- )
- version(
- "0.4.1",
- sha256="008c648d3c46ece063ae8b5008480d8ae6d359d35967356685d1c09da07e1064",
- deprecated=True,
- )
- version(
- "0.4.0",
- sha256="6474714eee72ba2d4e271ed00ce8c05d67a9d15327bc03962b821b2af2c5ca36",
- deprecated=True,
- )
- version(
- "0.3.2",
- sha256="ca5caf7b2b48c7639f45d815b32e76d69650f3199eb8caa541d402722e3f6c10",
- deprecated=True,
- )
- version(
- "0.3.1",
- sha256="218d0e28b4d1ee34585f2ac6b18d169c81404d93958815e73e60cc0368efcbb7",
- deprecated=True,
- )
- version(
- "0.3.0",
- sha256="357fd8bdf86034b93902616f0844bd52e9304cccca22971ab7007588bf9d5fb3",
- deprecated=True,
- )
- version(
- "0.2.0",
- sha256="e9ba2740d9727ae6d0f9b1ac0c5df331814fd03518fe4b511396ed10780d5272",
- deprecated=True,
- )
- version(
- "0.1.4",
- sha256="f3c395f5cd78cfef96f4008fe842f327bc8b03b77f46999387bc0ad223b5d970",
- deprecated=True,
- )
- version(
- "0.1.1",
- sha256="c6ae19610b936a0aa940b44a3626d6e660fc457a8187d295cdf0b21169453d20",
- deprecated=True,
- )
variant(
"nodepfail",
@@ -418,39 +70,24 @@ class Bazel(Package):
depends_on("java@11", when="@5.3:", type=("build", "run"))
depends_on("java@8,11", when="@3.3:5.2", type=("build", "run"))
depends_on("java@8", when="@0.6:3.2", type=("build", "run"))
- depends_on("java@7:8", when="@:0.5", type=("build", "run"))
depends_on("python+pythoncmd", type=("build", "run"))
depends_on("zip", when="platform=linux", type=("build", "run"))
# Pass Spack environment variables to the build
- patch("bazelruleclassprovider-0.25.patch", when="@0.25:")
- patch("bazelruleclassprovider-0.14.patch", when="@0.14:0.24")
- patch("bazelconfiguration-0.3.patch", when="@:0.13")
+ patch("bazelruleclassprovider-0.25.patch")
# Inject include paths
patch("unix_cc_configure-3.0.patch", when="@3:")
- patch("unix_cc_configure-0.15.patch", when="@0.15:2")
- patch("unix_cc_configure-0.10.patch", when="@0.10:0.14")
- patch("unix_cc_configure-0.5.3.patch", when="@0.5.3:0.9")
- patch("cc_configure-0.5.0.patch", when="@0.5.0:0.5.2")
- patch("cc_configure-0.3.0.patch", when="@0.3:0.4")
+ patch("unix_cc_configure-0.15.patch", when="@:2")
# Set CC and CXX
- patch("compile-0.29.patch", when="@0.29:")
- patch("compile-0.21.patch", when="@0.21:0.28")
- patch("compile-0.16.patch", when="@0.16:0.20")
- patch("compile-0.13.patch", when="@0.13:0.15")
- patch("compile-0.9.patch", when="@0.9:0.12")
- patch("compile-0.6.patch", when="@0.6:0.8")
- patch("compile-0.4.patch", when="@0.4:0.5")
- patch("compile-0.3.patch", when="@0.2:0.3")
+ patch("compile-0.29.patch")
# Disable dependency search
- patch("cppcompileaction-0.3.2.patch", when="@0.3.2:+nodepfail")
- patch("cppcompileaction-0.3.0.patch", when="@0.3.0:0.3.1+nodepfail")
+ patch("cppcompileaction-0.3.2.patch", when="+nodepfail")
# https://github.com/bazelbuild/bazel/issues/17956
- patch("apple-clang-14.0.3.patch", when="@0.3:5.4.0,6.0:6.1")
+ patch("apple-clang-14.0.3.patch", when="@:5.4.0,6.0:6.1")
# https://github.com/bazelbuild/bazel/issues/17958
patch(
@@ -459,39 +96,27 @@ class Bazel(Package):
when="@5.0:5.4.0,6.0",
)
- # Fix build on power9 (2x commits)
- # https://github.com/bazelbuild/bazel/commit/5cff4f1edf8b95bf0612791632255852332f72b5
- # https://github.com/bazelbuild/bazel/commit/ab62a6e097590dac5ec946ad7a796ea0e8593ae0
- patch("build-0.29.1.patch", when="@0.29.1")
-
# Fix build with Fujitsu compiler
- patch("blaze_util_posix-0.29.1.patch", when="@0.29.1:%fj")
+ patch("blaze_util_posix-0.29.1.patch", when="%fj")
patch("unix_cc_configure_fj-5.2.patch", when="@5.2:%fj")
patch("unix_cc_configure_fj-5.0.patch", when="@5.0:5.1%fj")
- patch("unix_cc_configure_fj-0.29.1.patch", when="@0.29.1:4%fj")
- patch("bazelruleclassprovider_fj-0.25.patch", when="@0.25:%fj")
- conflicts(
- "%fj",
- when="@:0.24.1",
- msg="Fujitsu Compiler cannot build 0.24.1 or less, " "please use a newer release.",
- )
+ patch("unix_cc_configure_fj-0.29.1.patch", when="@:4%fj")
+ patch("bazelruleclassprovider_fj-0.25.patch", when="%fj")
# https://blog.bazel.build/2021/05/21/bazel-4-1.html
conflicts("platform=darwin target=aarch64:", when="@:4.0")
- # patches for compiling various older bazels which had ICWYU
- # violations revealed by (but not unique to) GCC 11 header changes.
- # these are derived from
+ # Patches for compiling various older bazels which had ICWYU violations revealed by
+ # (but not unique to) GCC 11 header changes. These are derived from
# https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/29084/
- patch("gcc11_1.patch", when="@0.3.2:4")
- patch("gcc11_2.patch", when="@0.3.2:4")
- patch("gcc11_3.patch", when="@0.3:4")
+ patch("gcc11_1.patch", when="@:4")
+ patch("gcc11_2.patch", when="@:4")
+ patch("gcc11_3.patch", when="@:4")
patch("gcc11_4.patch", when="@4.1:4")
- # bazel-4.0.0 does not compile with gcc-11
- # newer versions of grpc and abseil dependencies are needed but are not in
- # bazel-4.0.0
- conflicts("@:0.2,4.0.0", when="%gcc@11:")
+ # Bazel-4.0.0 does not compile with gcc-11
+ # Newer versions of grpc and abseil dependencies are needed but are not in bazel-4.0.0
+ conflicts("@4.0.0", when="%gcc@11:")
executables = ["^bazel$"]
@@ -501,14 +126,6 @@ def determine_version(cls, exe):
match = re.search(r"Build label: ([\d.]+)", output)
return match.group(1) if match else None
- def url_for_version(self, version):
- if version >= Version("0.4.1"):
- url = "https://github.com/bazelbuild/bazel/releases/download/{0}/bazel-{0}-dist.zip"
- else:
- url = "https://github.com/bazelbuild/bazel/archive/{0}.tar.gz"
-
- return url.format(version)
-
def setup_build_environment(self, env):
# fix the broken linking (on power9)
# https://github.com/bazelbuild/bazel/issues/10327
diff --git a/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.10.patch b/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.10.patch
deleted file mode 100644
index bdd24e1152b5ac..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.10.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/tools/cpp/unix_cc_configure.bzl
-+++ b/tools/cpp/unix_cc_configure.bzl
-@@ -147,9 +147,18 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc, additional_flags = []):
- else:
- inc_dirs = result.stderr[index1 + 1:index2].strip()
-
-- return [_prepare_include_path(repository_ctx, _cxx_inc_convert(p))
-- for p in inc_dirs.split("\n")]
-+ default_inc_directories = [
-+ _prepare_include_path(repository_ctx, _cxx_inc_convert(p))
-+ for p in inc_dirs.split("\n")
-+ ]
-+
-+ env = repository_ctx.os.environ
-+ if "SPACK_INCLUDE_DIRS" in env:
-+ for path in env["SPACK_INCLUDE_DIRS"].split(":"):
-+ default_inc_directories.append(path)
-+
-+ return default_inc_directories
-
-
- def _is_option_supported(repository_ctx, cc, option):
diff --git a/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.5.3.patch b/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.5.3.patch
deleted file mode 100644
index 79b583ba84606d..00000000000000
--- a/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.5.3.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/tools/cpp/unix_cc_configure.bzl
-+++ b/tools/cpp/unix_cc_configure.bzl
-@@ -117,9 +117,19 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc):
- else:
- inc_dirs = result.stderr[index1 + 1:index2].strip()
-
-- return [escape_string(repository_ctx.path(_cxx_inc_convert(p)))
-- for p in inc_dirs.split("\n")]
-+ default_inc_directories = [
-+ escape_string(repository_ctx.path(_cxx_inc_convert(p)))
-+ for p in inc_dirs.split("\n")
-+ ]
-
-+ env = repository_ctx.os.environ
-+ if "SPACK_INCLUDE_DIRS" in env:
-+ for path in env["SPACK_INCLUDE_DIRS"].split(":"):
-+ default_inc_directories.append(
-+ repository_ctx.path(_cxx_inc_convert(path))
-+ )
-+
-+ return default_inc_directories
-
- def _add_option_if_supported(repository_ctx, cc, option):
- """Checks that `option` is supported by the C compiler. Doesn't %-escape the option."""
diff --git a/var/spack/repos/builtin/packages/bbcp/package.py b/var/spack/repos/builtin/packages/bbcp/package.py
index fc329aa0660c76..f668df284e3e40 100644
--- a/var/spack/repos/builtin/packages/bbcp/package.py
+++ b/var/spack/repos/builtin/packages/bbcp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bbmap/package.py b/var/spack/repos/builtin/packages/bbmap/package.py
index 3a323a36635a12..f45c473e023eda 100644
--- a/var/spack/repos/builtin/packages/bbmap/package.py
+++ b/var/spack/repos/builtin/packages/bbmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Bbmap(Package, SourceforgePackage):
homepage = "https://sourceforge.net/projects/bbmap/"
sourceforge_mirror_path = "bbmap/BBMap_38.63.tar.gz"
+ license("BSD-3-Clause-LBNL")
+
version("39.01", sha256="98608da50130c47f3abd095b889cc87f60beeb8b96169b664bc9d849abe093e6")
version("38.63", sha256="089064104526c8d696164aefa067f935b888bc71ef95527c72a98c17ee90a01f")
version("37.78", sha256="f2da19f64d2bfb7db4c0392212668b425c96a27c77bd9d88d8f0aea90a193509")
diff --git a/var/spack/repos/builtin/packages/bc/package.py b/var/spack/repos/builtin/packages/bc/package.py
index 29ee1c79267935..7ab944d91ea140 100644
--- a/var/spack/repos/builtin/packages/bc/package.py
+++ b/var/spack/repos/builtin/packages/bc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Bc(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/bc"
gnu_mirror_path = "bc/bc-1.07.tar.gz"
+ license("GPL-3.0-or-later")
+
version("1.07.1", sha256="62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a")
version("1.07", sha256="55cf1fc33a728d7c3d386cc7b0cb556eb5bacf8e0cb5a3fcca7f109fc61205ad")
diff --git a/var/spack/repos/builtin/packages/bcache/package.py b/var/spack/repos/builtin/packages/bcache/package.py
index 724e4dff195fb2..598c50f09ef076 100644
--- a/var/spack/repos/builtin/packages/bcache/package.py
+++ b/var/spack/repos/builtin/packages/bcache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Bcache(MakefilePackage):
homepage = "https://bcache.evilpiepirate.org/"
url = "https://github.com/g2p/bcache-tools/archive/v1.0.8.tar.gz"
+ license("GPL-2.0-only")
+
version("1.0.8", sha256="d56923936f37287efc57a46315679102ef2c86cd0be5874590320acd48c1201c")
version("1.0.7", sha256="64d76d1085afba8c3d5037beb67bf9d69ee163f357016e267bf328c0b1807abd")
version("1.0.6", sha256="9677c6da3ceac4e1799d560617c4d00ea7e9d26031928f8f94b8ab327496d4e0")
diff --git a/var/spack/repos/builtin/packages/bcftools/package.py b/var/spack/repos/builtin/packages/bcftools/package.py
index 057d384b1a3ff3..e1867c3cebaa80 100644
--- a/var/spack/repos/builtin/packages/bcftools/package.py
+++ b/var/spack/repos/builtin/packages/bcftools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,9 +13,16 @@ class Bcftools(AutotoolsPackage):
commands work transparently with both VCFs and BCFs, both
uncompressed and BGZF-compressed."""
+ maintainers("jbeal-work")
+
homepage = "https://samtools.github.io/bcftools/"
url = "https://github.com/samtools/bcftools/releases/download/1.3.1/bcftools-1.3.1.tar.bz2"
+ license("GPL-3.0-or-later")
+
+ version("1.19", sha256="782b5f1bc690415192231e82213b3493b047f45e630dc8ef6f154d6126ab3e68")
+ version("1.18", sha256="d9b9d36293e4cc62ab7473aa2539389d4e1de79b1a927d483f6e91f3c3ceac7e")
+ version("1.17", sha256="01f75d8e701d85b2c759172412009cc04f29b61616ace2fa75116123de4596cc")
version("1.16", sha256="293010736b076cf684d2873928924fcc3d2c231a091084c2ac23a8045c7df982")
version("1.15.1", sha256="f21f9564873eb27ccf22d13b91a64acb8fbbfe4f9e4c37933a54b9a95857f2d7")
version("1.14", sha256="b7ef88ae89fcb55658c5bea2e8cb8e756b055e13860036d6be13756782aa19cb")
@@ -48,6 +55,9 @@ class Bcftools(AutotoolsPackage):
depends_on("perl", when="@1.8:~perl-filters", type="run")
depends_on("perl", when="@1.8:+perl-filters", type=("build", "run"))
+ depends_on("htslib@1.19", when="@1.19")
+ depends_on("htslib@1.18", when="@1.18")
+ depends_on("htslib@1.17", when="@1.17")
depends_on("htslib@1.16", when="@1.16")
depends_on("htslib@1.15", when="@1.15")
depends_on("htslib@1.14", when="@1.14")
diff --git a/var/spack/repos/builtin/packages/bcl2fastq2/package.py b/var/spack/repos/builtin/packages/bcl2fastq2/package.py
index 65695f04f43c56..ef420969d97f80 100644
--- a/var/spack/repos/builtin/packages/bcl2fastq2/package.py
+++ b/var/spack/repos/builtin/packages/bcl2fastq2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -22,6 +22,8 @@ class Bcl2fastq2(Package):
homepage = "https://support.illumina.com/downloads/bcl2fastq-conversion-software-v2-20.html"
+ license("BSD-3-Clause")
+
version(
"2.20.0.422", sha256="8dd3044767d044aa4ce46de0de562b111c44e5b8b7348e04e665eb1b4f101fe3"
)
diff --git a/var/spack/repos/builtin/packages/bdftopcf/package.py b/var/spack/repos/builtin/packages/bdftopcf/package.py
index 94ede4fda676de..bd190c5e46a644 100644
--- a/var/spack/repos/builtin/packages/bdftopcf/package.py
+++ b/var/spack/repos/builtin/packages/bdftopcf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Bdftopcf(AutotoolsPackage, XorgPackage):
homepage = "https://cgit.freedesktop.org/xorg/app/bdftopcf"
xorg_mirror_path = "app/bdftopcf-1.0.5.tar.gz"
+ license("MIT")
+
version("1.1", sha256="699d1a62012035b1461c7f8e3f05a51c8bd6f28f348983249fb89bbff7309b47")
version("1.0.5", sha256="78a5ec945de1d33e6812167b1383554fda36e38576849e74a9039dc7364ff2c3")
diff --git a/var/spack/repos/builtin/packages/bdii/package.py b/var/spack/repos/builtin/packages/bdii/package.py
index 5fe6375ccc6b4f..74e6e375a1a922 100644
--- a/var/spack/repos/builtin/packages/bdii/package.py
+++ b/var/spack/repos/builtin/packages/bdii/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Bdii(MakefilePackage):
homepage = "https://github.com/EGI-Foundation/bdii"
url = "https://github.com/EGI-Foundation/bdii/archive/v5.2.25.tar.gz"
+ license("Apache-2.0")
+
version("6.0.1", sha256="ac292559004881c4d5254517207a5da82d7a48af746194a380145dcedef507ce")
version("5.2.25", sha256="6abc3ed872538a12dc470a1d30bf4ae1ca4d6302eb6b50370413940f9e9259ca")
version("5.2.24", sha256="5d09ed06b8b09ce372b3489fab93e25302f68ca80d8fcc600c2535648c861a3a")
diff --git a/var/spack/repos/builtin/packages/bdsim/package.py b/var/spack/repos/builtin/packages/bdsim/package.py
index c5c978da5d9e89..61eddbc92d56e3 100644
--- a/var/spack/repos/builtin/packages/bdsim/package.py
+++ b/var/spack/repos/builtin/packages/bdsim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Bdsim(CMakePackage):
maintainers("gganis")
+ license("GPL-3.0-or-later")
+
version("develop", branch="develop")
version("1.6.0", sha256="e3241d2d097cb4e22249e315c1474da9b3657b9c6893232d9f9e543a5323f717")
diff --git a/var/spack/repos/builtin/packages/bdw-gc/package.py b/var/spack/repos/builtin/packages/bdw-gc/package.py
index 17210c705e15a5..07565c4e67a6b5 100644
--- a/var/spack/repos/builtin/packages/bdw-gc/package.py
+++ b/var/spack/repos/builtin/packages/bdw-gc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class BdwGc(AutotoolsPackage):
homepage = "https://www.hboehm.info/gc/"
url = "https://github.com/ivmai/bdwgc/releases/download/v8.2.4/gc-8.2.4.tar.gz"
+ license("Xerox")
+
version("8.2.4", sha256="3d0d3cdbe077403d3106bb40f0cbb563413d6efdbb2a7e1cd6886595dec48fc2")
version("8.2.2", sha256="f30107bcb062e0920a790ffffa56d9512348546859364c23a14be264b38836a0")
version("8.0.6", sha256="3b4914abc9fa76593596773e4da671d7ed4d5390e3d46fbf2e5f155e121bea11")
diff --git a/var/spack/repos/builtin/packages/beagle/package.py b/var/spack/repos/builtin/packages/beagle/package.py
index d029aa9d4b48ca..d6949c91146d28 100644
--- a/var/spack/repos/builtin/packages/beagle/package.py
+++ b/var/spack/repos/builtin/packages/beagle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/beakerlib/package.py b/var/spack/repos/builtin/packages/beakerlib/package.py
index 2c2793ce95b301..d207293d5793c4 100644
--- a/var/spack/repos/builtin/packages/beakerlib/package.py
+++ b/var/spack/repos/builtin/packages/beakerlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Beakerlib(MakefilePackage):
homepage = "https://github.com/beakerlib/beakerlib"
url = "https://github.com/beakerlib/beakerlib/archive/1.20.tar.gz"
+ license("GPL-2.0-only")
+
version("1.29.3", sha256="f792b86bac8be1a4593dd096c32c1a061102c802c6f5760259a5753b13f6caa1")
version("1.20", sha256="81f39a0b67adff4c3f4c051ffd26bcf45e19068dee7e81e3b00ee4698587f4e9")
version("1.19", sha256="4dcaddf70a057ea5810c967cf5194d11850c8b5263ca25533e9e381067288460")
diff --git a/var/spack/repos/builtin/packages/bear/package.py b/var/spack/repos/builtin/packages/bear/package.py
index becb364a2c2d99..a5d98cc024d0f9 100644
--- a/var/spack/repos/builtin/packages/bear/package.py
+++ b/var/spack/repos/builtin/packages/bear/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Bear(CMakePackage):
url = "https://github.com/rizsotto/Bear/archive/2.0.4.tar.gz"
maintainers("vmiheer", "trws")
+ license("GPL-3.0-or-later")
+
version("3.0.20", sha256="45cfcdab07f824f6c06c9776701156f7a04b23eadd25ecbc88c188789a447cc7")
version("3.0.19", sha256="2fcfe2c6e029182cfc54ed26b3505c0ef12b0f43df03fb587f335afdc2ca9431")
version("3.0.18", sha256="ae94047c79b4f48462b66981f66a67b6a833d75d4c40e7afead491b1865f1142")
diff --git a/var/spack/repos/builtin/packages/beast-tracer/package.py b/var/spack/repos/builtin/packages/beast-tracer/package.py
index 6cede6c0cee581..1ed549a8a0ff55 100644
--- a/var/spack/repos/builtin/packages/beast-tracer/package.py
+++ b/var/spack/repos/builtin/packages/beast-tracer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/beast1/package.py b/var/spack/repos/builtin/packages/beast1/package.py
index 8aa34e237649de..9e557fde3abe9f 100644
--- a/var/spack/repos/builtin/packages/beast1/package.py
+++ b/var/spack/repos/builtin/packages/beast1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/beast2/package.py b/var/spack/repos/builtin/packages/beast2/package.py
index 25b729455cd7a9..062c452310654b 100644
--- a/var/spack/repos/builtin/packages/beast2/package.py
+++ b/var/spack/repos/builtin/packages/beast2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Beast2(Package):
maintainers("snehring")
+ license("LGPL-2.1-or-later")
+
version(
"2.7.4",
sha256="f5086c74a0337190ae3459ef018468fc6b2eff68ae2b53fb5c96eb7b5df84004",
diff --git a/var/spack/repos/builtin/packages/beatnik/package.py b/var/spack/repos/builtin/packages/beatnik/package.py
index 9afa9afa3825ce..d16ec01a24af58 100644
--- a/var/spack/repos/builtin/packages/beatnik/package.py
+++ b/var/spack/repos/builtin/packages/beatnik/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Beatnik(CMakePackage, CudaPackage, ROCmPackage):
maintainers("patrickb314", "JStewart28")
+ license("BSD-3-Clause")
+
version("1.0", commit="ae31ef9cb44678d5ace77994b45b0778defa3d2f")
version("develop", branch="develop")
version("main", branch="main")
@@ -25,8 +27,16 @@ class Beatnik(CMakePackage, CudaPackage, ROCmPackage):
# Dependencies for all Beatnik versions
depends_on("mpi")
- depends_on("mpi +cuda", when="+cuda")
- depends_on("mpi +rocm", when="+rocm")
+ with when("+cuda"):
+ depends_on("mpich +cuda", when="^[virtuals=mpi] mpich")
+ depends_on("mvapich +cuda", when="^[virtuals=mpi] mvapich")
+ depends_on("mvapich2 +cuda", when="^[virtuals=mpi] mvapich2")
+ depends_on("mvapich2-gdr +cuda", when="^[virtuals=mpi] mvapich2-gdr")
+ depends_on("openmpi +cuda", when="^[virtuals=mpi] openmpi")
+
+ with when("+rocm"):
+ depends_on("mpich +rocm", when="^[virtuals=mpi] mpich")
+ depends_on("mvapich2-gdr +rocm", when="^[virtuals=mpi] mvapich2-gdr")
# Kokkos dependencies
depends_on("kokkos @4:")
diff --git a/var/spack/repos/builtin/packages/bedops/package.py b/var/spack/repos/builtin/packages/bedops/package.py
index 8844d0ed010e9f..9d49dfd649b51e 100644
--- a/var/spack/repos/builtin/packages/bedops/package.py
+++ b/var/spack/repos/builtin/packages/bedops/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Bedops(MakefilePackage):
maintainers("jacorvar")
+ license("bzip2-1.0.6")
+
version("2.4.41", sha256="3b868c820d59dd38372417efc31e9be3fbdca8cf0a6b39f13fb2b822607d6194")
version("2.4.40", sha256="8c01db76669dc58c595e2e1b9bdb6d462f3363fc569b15c460a63a63b8b6bf30")
version("2.4.39", sha256="f8bae10c6e1ccfb873be13446c67fc3a54658515fb5071663883f788fc0e4912")
diff --git a/var/spack/repos/builtin/packages/bedtools2/package.py b/var/spack/repos/builtin/packages/bedtools2/package.py
index 9a3fb8bec4941d..472cfa4bb9df87 100644
--- a/var/spack/repos/builtin/packages/bedtools2/package.py
+++ b/var/spack/repos/builtin/packages/bedtools2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Bedtools2(Package):
homepage = "https://github.com/arq5x/bedtools2"
url = "https://github.com/arq5x/bedtools2/archive/v2.30.0.tar.gz"
+ license("MIT")
+
version("2.31.0", sha256="183cf9a96aabc50ef4bd557a53fd01557a123c05a0dc87651371878f357439ec")
version("2.30.0", sha256="c575861ec746322961cd15d8c0b532bb2a19333f1cf167bbff73230a7d67302f")
version("2.29.2", sha256="bc2f36b5d4fc9890c69f607d54da873032628462e88c545dd633d2c787a544a5")
diff --git a/var/spack/repos/builtin/packages/beforelight/package.py b/var/spack/repos/builtin/packages/beforelight/package.py
index 9d6987fca0ae1c..321805e4b652d2 100644
--- a/var/spack/repos/builtin/packages/beforelight/package.py
+++ b/var/spack/repos/builtin/packages/beforelight/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Beforelight(AutotoolsPackage, XorgPackage):
homepage = "https://cgit.freedesktop.org/xorg/app/beforelight"
xorg_mirror_path = "app/beforelight-1.0.5.tar.gz"
+ license("X11")
+
version("1.0.6", sha256="735579a7671a9f9de16b7211cf0ba39027183bdc3e82a937fbccfdd893e64a2e")
version("1.0.5", sha256="93bb3c457d6d5e8def3180fdee07bc84d1b7f0e5378a95812e2193cd51455cdc")
diff --git a/var/spack/repos/builtin/packages/benchmark/package.py b/var/spack/repos/builtin/packages/benchmark/package.py
index fe0b286352fcd1..31b0ee915b893f 100644
--- a/var/spack/repos/builtin/packages/benchmark/package.py
+++ b/var/spack/repos/builtin/packages/benchmark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Benchmark(CMakePackage):
url = "https://github.com/google/benchmark/archive/v1.6.0.tar.gz"
git = "https://github.com/google/benchmark.git"
+ license("Apache-2.0")
+
# first properly installed CMake config packages in
# 1.2.0 release: https://github.com/google/benchmark/issues/363
version("main", branch="main")
diff --git a/var/spack/repos/builtin/packages/berkeley-db/package.py b/var/spack/repos/builtin/packages/berkeley-db/package.py
index 1f14d0ef2a84dc..c549ed24b99cb7 100644
--- a/var/spack/repos/builtin/packages/berkeley-db/package.py
+++ b/var/spack/repos/builtin/packages/berkeley-db/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class BerkeleyDb(AutotoolsPackage):
executables = [r"^db_load$"] # One should be sufficient
+ license("UPL-1.0")
+
version("18.1.40", sha256="0cecb2ef0c67b166de93732769abdeba0555086d51de1090df325e18ee8da9c8")
version(
"18.1.32",
diff --git a/var/spack/repos/builtin/packages/berkeleygw/package.py b/var/spack/repos/builtin/packages/berkeleygw/package.py
index 4f68fd439a1170..0980bf5a85a163 100644
--- a/var/spack/repos/builtin/packages/berkeleygw/package.py
+++ b/var/spack/repos/builtin/packages/berkeleygw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -60,8 +60,34 @@ class Berkeleygw(MakefilePackage):
depends_on("hdf5+fortran+hl+mpi", when="+hdf5+mpi")
depends_on("elpa+openmp", when="+elpa+openmp")
depends_on("elpa~openmp", when="+elpa~openmp")
- depends_on("fftw-api@3+openmp", when="+openmp")
- depends_on("fftw-api@3~openmp", when="~openmp")
+
+ depends_on("fftw-api@3")
+ with when("+openmp"):
+ depends_on("acfl threads=openmp", when="^[virtuals=fftw-api] acfl")
+ depends_on("amdfftw+openmp", when="^[virtuals=fftw-api] amdfftw")
+ depends_on("armpl-gcc threads=openmp", when="^[virtuals=fftw-api] armpl-gcc")
+ depends_on("cray-fftw+openmp", when="^[virtuals=fftw-api] cray-fftw")
+ depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw")
+ depends_on("fujitsu-fftw+openmp", when="^[virtuals=fftw-api] fujitsu-fftw")
+ depends_on("intel-mkl threads=openmp", when="^[virtuals=fftw-api] intel-mkl")
+ depends_on("intel-oneapi-mkl threads=openmp", when="^[virtuals=fftw-api] intel-oneapi-mkl")
+ depends_on(
+ "intel-parallel-studio threads=openmp",
+ when="^[virtuals=fftw-api] intel-parallel-studio",
+ )
+
+ with when("~openmp"):
+ depends_on("acfl threads=none", when="^[virtuals=fftw-api] acfl")
+ depends_on("amdfftw~openmp", when="^[virtuals=fftw-api] amdfftw")
+ depends_on("armpl-gcc threads=none", when="^[virtuals=fftw-api] armpl-gcc")
+ depends_on("cray-fftw~openmp", when="^[virtuals=fftw-api] cray-fftw")
+ depends_on("fftw~openmp", when="^[virtuals=fftw-api] fftw")
+ depends_on("fujitsu-fftw~openmp", when="^[virtuals=fftw-api] fujitsu-fftw")
+ depends_on("intel-mkl threads=none", when="^[virtuals=fftw-api] intel-mkl")
+ depends_on("intel-oneapi-mkl threads=none", when="^[virtuals=fftw-api] intel-oneapi-mkl")
+ depends_on(
+ "intel-parallel-studio threads=none", when="^[virtuals=fftw-api] intel-parallel-studio"
+ )
# in order to run the installed python scripts
depends_on("python", type=("build", "run"), when="+python")
diff --git a/var/spack/repos/builtin/packages/bertini/package.py b/var/spack/repos/builtin/packages/bertini/package.py
index 162f0e8810b9ee..68b52246a882d5 100644
--- a/var/spack/repos/builtin/packages/bertini/package.py
+++ b/var/spack/repos/builtin/packages/bertini/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Bertini(AutotoolsPackage):
homepage = "https://bertini.nd.edu/"
url = "https://bertini.nd.edu/BertiniSource_v1.5.tar.gz"
+ license("GPL-3.0-or-later")
+
version("1.5", sha256="a9a68a96e180fe6a93ba1bc1d61f522784c9a053b049b2cbd98008b5b6deec3c")
variant("mpi", default=True, description="Compile in parallel")
diff --git a/var/spack/repos/builtin/packages/bfs/package.py b/var/spack/repos/builtin/packages/bfs/package.py
index f90c882648c1a7..5b6e87845e04af 100644
--- a/var/spack/repos/builtin/packages/bfs/package.py
+++ b/var/spack/repos/builtin/packages/bfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,9 @@ class Bfs(MakefilePackage):
maintainers("alecbcs")
+ license("0BSD")
+
+ version("3.0.4", sha256="7196f5a624871c91ad051752ea21043c198a875189e08c70ab3167567a72889d")
version("3.0.2", sha256="d3456a9aeecc031064db0dbe012e55a11eb97be88d0ab33a90e570fe66457f92")
version("3.0.1", sha256="a38bb704201ed29f4e0b989fb2ab3791ca51c3eff90acfc31fff424579bbf962")
diff --git a/var/spack/repos/builtin/packages/bgpdump/package.py b/var/spack/repos/builtin/packages/bgpdump/package.py
index 55f7fd95962ada..334769aca16f92 100644
--- a/var/spack/repos/builtin/packages/bgpdump/package.py
+++ b/var/spack/repos/builtin/packages/bgpdump/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bib2xhtml/package.py b/var/spack/repos/builtin/packages/bib2xhtml/package.py
index 9cc7f8b1b71afb..bb9c1faf61c5b5 100644
--- a/var/spack/repos/builtin/packages/bib2xhtml/package.py
+++ b/var/spack/repos/builtin/packages/bib2xhtml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Bib2xhtml(Package):
homepage = "https://www.spinellis.gr/sw/textproc/bib2xhtml/"
url = "https://www.spinellis.gr/sw/textproc/bib2xhtml/bib2xhtml-v3.0-79-ge935.tar.gz"
+ license("GPL-2.0-only")
+
version(
"3.0-79-ge935", sha256="4a2d2d89dd2f3fed1c735055b806809b5cc1cde32dee1aa5987097ec5bf2181f"
)
diff --git a/var/spack/repos/builtin/packages/bigdft-atlab/package.py b/var/spack/repos/builtin/packages/bigdft-atlab/package.py
index e44c1d0ee26ca9..c74113c0dcb77e 100644
--- a/var/spack/repos/builtin/packages/bigdft-atlab/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-atlab/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,9 @@ class BigdftAtlab(AutotoolsPackage):
variant("mpi", default=True, description="Enable MPI support")
variant("openmp", default=True, description="Enable OpenMP support")
variant("openbabel", default=False, description="Enable detection of openbabel compilation")
+ variant(
+ "shared", default=True, description="Build shared libraries"
+ ) # Not default in bigdft, but is typically the default expectation
depends_on("autoconf", type="build")
depends_on("automake", type="build")
@@ -30,7 +33,7 @@ class BigdftAtlab(AutotoolsPackage):
depends_on("openbabel", when="+openbabel")
for vers in ["1.9.0", "1.9.1", "1.9.2", "develop"]:
- depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers))
+ depends_on(f"bigdft-futile@{vers}", when=f"@{vers}")
configure_directory = "atlab"
@@ -39,27 +42,38 @@ def configure_args(self):
prefix = self.prefix
fcflags = []
+ cflags = []
+ cxxflags = []
+
if "+openmp" in spec:
fcflags.append(self.compiler.openmp_flag)
+ if spec.satisfies("+shared"):
+ fcflags.append("-fPIC")
+ cflags.append("-fPIC")
+ cxxflags.append("-fPIC")
if self.spec.satisfies("%gcc@10:"):
fcflags.append("-fallow-argument-mismatch")
args = [
- "FCFLAGS=%s" % " ".join(fcflags),
- "--with-futile-libs=%s" % spec["bigdft-futile"].libs.ld_flags,
- "--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags + "/futile",
- "--with-moduledir=%s" % prefix.include,
- "--prefix=%s" % prefix,
+ f"FCFLAGS={' '.join(fcflags)}",
+ f"CFLAGS={' '.join(cflags)}",
+ f"CXXFLAGS={' '.join(cxxflags)}",
+ f"--with-futile-libs={spec['bigdft-futile'].libs.ld_flags}",
+ f"--with-futile-incs={spec['bigdft-futile'].headers.include_flags}/futile",
+ f"--with-moduledir={prefix.include}",
+ f"--prefix={prefix}",
"--without-etsf-io",
]
+ if spec.satisfies("+shared"):
+ args.append("--enable-dynamic-libraries")
if "+mpi" in spec:
- args.append("CC=%s" % spec["mpi"].mpicc)
- args.append("CXX=%s" % spec["mpi"].mpicxx)
- args.append("FC=%s" % spec["mpi"].mpifc)
- args.append("F90=%s" % spec["mpi"].mpifc)
- args.append("F77=%s" % spec["mpi"].mpif77)
+ args.append(f"CC={spec['mpi'].mpicc}")
+ args.append(f"CXX={spec['mpi'].mpicxx}")
+ args.append(f"FC={spec['mpi'].mpifc}")
+ args.append(f"F90={spec['mpi'].mpifc}")
+ args.append(f"F77={spec['mpi'].mpif77}")
else:
args.append("--disable-mpi")
@@ -70,8 +84,8 @@ def configure_args(self):
if "+openbabel" in spec:
args.append("--enable-openbabel")
- args.append("--with-openbabel-libs=%s" % spec["openbabel"].prefix.lib)
- args.append("--with-openbabel-incs=%s" % spec["openbabel"].prefix.include)
+ args.append(f"--with-openbabel-libs={spec['openbabel'].prefix.lib}")
+ args.append(f"--with-openbabel-incs={spec['openbabel'].prefix.include}")
return args
diff --git a/var/spack/repos/builtin/packages/bigdft-chess/package.py b/var/spack/repos/builtin/packages/bigdft-chess/package.py
index c2731de7b5c7b3..dc5ba9362a37e5 100644
--- a/var/spack/repos/builtin/packages/bigdft-chess/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-chess/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,9 @@ class BigdftChess(AutotoolsPackage, CudaPackage):
variant("openmp", default=True, description="Enable OpenMP support")
variant("scalapack", default=True, description="Enable SCALAPACK support")
variant("ntpoly", default=False, description="Option to use NTPoly")
+ variant(
+ "shared", default=True, description="Build shared libraries"
+ ) # Not default in bigdft, but is typically the default expectation
# variant('minpack', default=False, description='Give the link-line for MINPACK')
depends_on("autoconf", type="build")
@@ -40,8 +43,8 @@ class BigdftChess(AutotoolsPackage, CudaPackage):
# depends_on('netlib-minpack', when='+minpack')
for vers in ["1.9.0", "1.9.1", "1.9.2", "develop"]:
- depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers))
- depends_on("bigdft-atlab@{0}".format(vers), when="@{0}".format(vers))
+ depends_on(f"bigdft-futile@{vers}", when=f"@{vers}")
+ depends_on(f"bigdft-atlab@{vers}", when=f"@{vers}")
configure_directory = "chess"
@@ -50,7 +53,7 @@ def configure_args(self):
prefix = self.prefix
python_version = spec["python"].version.up_to(2)
- pyyaml = join_path(spec["py-pyyaml"].prefix.lib, "python{0}".format(python_version))
+ pyyaml = join_path(spec["py-pyyaml"].prefix.lib, f"python{python_version}")
openmp_flag = []
if "+openmp" in spec:
@@ -63,23 +66,25 @@ def configure_args(self):
linalg.append(spec["blas"].libs.ld_flags)
args = [
- "FCFLAGS=%s" % " ".join(openmp_flag),
- "LDFLAGS=%s" % " ".join(linalg),
- "--with-ext-linalg=%s" % " ".join(linalg),
- "--with-pyyaml-path=%s" % pyyaml,
- "--with-futile-libs=%s" % spec["bigdft-futile"].libs.ld_flags,
- "--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags,
- "--with-moduledir=%s" % prefix.include,
- "--prefix=%s" % prefix,
+ f"FCFLAGS={' '.join(openmp_flag)}",
+ f"LDFLAGS={' '.join(linalg)}",
+ f"--with-ext-linalg={' '.join(linalg)}",
+ f"--with-pyyaml-path={pyyaml}",
+ f"--with-futile-libs={spec['bigdft-futile'].libs.ld_flags}",
+ f"--with-futile-incs={spec['bigdft-futile'].headers.include_flags}",
+ f"--with-moduledir={prefix.include}",
+ f"--prefix={prefix}",
"--without-etsf-io",
]
+ if spec.satisfies("+shared"):
+ args.append("--enable-dynamic-libraries")
if "+mpi" in spec:
- args.append("CC=%s" % spec["mpi"].mpicc)
- args.append("CXX=%s" % spec["mpi"].mpicxx)
- args.append("FC=%s" % spec["mpi"].mpifc)
- args.append("F90=%s" % spec["mpi"].mpifc)
- args.append("F77=%s" % spec["mpi"].mpif77)
+ args.append(f"CC={spec['mpi'].mpicc}")
+ args.append(f"CXX={spec['mpi'].mpicxx}")
+ args.append(f"FC={spec['mpi'].mpifc}")
+ args.append(f"F90={spec['mpi'].mpifc}")
+ args.append(f"F77={spec['mpi'].mpif77}")
else:
args.append("--disable-mpi")
@@ -88,12 +93,12 @@ def configure_args(self):
else:
args.append("--without-openmp")
- args.append("--with-atlab-libs=%s" % spec["bigdft-atlab"].prefix.lib)
+ args.append(f"--with-atlab-libs={spec['bigdft-atlab'].prefix.lib}")
if "+cuda" in spec:
args.append("--enable-cuda-gpu")
- args.append("--with-cuda-path=%s" % spec["cuda"].prefix)
- args.append("--with-cuda-libs=%s" % spec["cuda"].libs.link_flags)
+ args.append(f"--with-cuda-path={spec['cuda'].prefix}")
+ args.append(f"--with-cuda-libs={spec['cuda'].libs.link_flags}")
if "+minpack" in spec:
args.append("--with-minpack")
diff --git a/var/spack/repos/builtin/packages/bigdft-core/package.py b/var/spack/repos/builtin/packages/bigdft-core/package.py
index 40d76442c8f346..834b65f3777c24 100644
--- a/var/spack/repos/builtin/packages/bigdft-core/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,9 @@ class BigdftCore(AutotoolsPackage, CudaPackage):
variant("openmp", default=True, description="Enable OpenMP support")
variant("scalapack", default=True, description="Enable SCALAPACK support")
variant("openbabel", default=False, description="Enable detection of openbabel compilation")
+ variant(
+ "shared", default=True, description="Build shared libraries"
+ ) # Not default in bigdft, but is typically the default expectation
depends_on("autoconf", type="build")
depends_on("automake", type="build")
@@ -42,10 +45,10 @@ class BigdftCore(AutotoolsPackage, CudaPackage):
depends_on("libxc@:4.3.4", when="@develop")
for vers in ["1.9.0", "1.9.1", "1.9.2", "develop"]:
- depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers))
- depends_on("bigdft-chess@{0}".format(vers), when="@{0}".format(vers))
- depends_on("bigdft-psolver@{0}".format(vers), when="@{0}".format(vers))
- depends_on("bigdft-libabinit@{0}".format(vers), when="@{0}".format(vers))
+ depends_on(f"bigdft-futile@{vers}", when=f"@{vers}")
+ depends_on(f"bigdft-chess@{vers}", when=f"@{vers}")
+ depends_on(f"bigdft-psolver@{vers}", when=f"@{vers}")
+ depends_on(f"bigdft-libabinit@{vers}", when=f"@{vers}")
configure_directory = "bigdft"
@@ -54,7 +57,7 @@ def configure_args(self):
prefix = self.prefix
python_version = spec["python"].version.up_to(2)
- pyyaml = join_path(spec["py-pyyaml"].prefix.lib, "python{0}".format(python_version))
+ pyyaml = join_path(spec["py-pyyaml"].prefix.lib, f"python{python_version}")
openmp_flag = []
if "+openmp" in spec:
@@ -67,33 +70,34 @@ def configure_args(self):
linalg.append(spec["blas"].libs.ld_flags)
args = [
- "FCFLAGS=%s" % " ".join(openmp_flag),
- "--with-ext-linalg=%s" % " ".join(linalg),
- "--with-pyyaml-path=%s" % pyyaml,
- "--with-futile-libs=%s" % spec["bigdft-futile"].libs.ld_flags,
- "--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags,
- "--with-chess-libs=%s" % spec["bigdft-chess"].libs.ld_flags,
- "--with-chess-incs=%s" % spec["bigdft-chess"].headers.include_flags,
- "--with-psolver-libs=%s" % spec["bigdft-psolver"].libs.ld_flags,
- "--with-psolver-incs=%s" % spec["bigdft-psolver"].headers.include_flags,
- "--with-libABINIT-libs=%s" % spec["bigdft-libabinit"].libs.ld_flags,
- "--with-libABINIT-incs=%s" % spec["bigdft-libabinit"].headers.include_flags,
- "--with-libgain-libs=%s" % spec["libgain"].libs.ld_flags,
- "--with-libgain-incs=%s" % spec["libgain"].headers.include_flags,
- "--with-libxc-libs=%s %s"
- % (spec["libxc"].libs.ld_flags, spec["libxc"].libs.ld_flags + "f90"),
- "--with-libxc-incs=%s" % spec["libxc"].headers.include_flags,
- "--with-moduledir=%s" % prefix.include,
- "--prefix=%s" % prefix,
+ f"FCFLAGS={' '.join(openmp_flag)}",
+ f"--with-ext-linalg={' '.join(linalg)}",
+ f"--with-pyyaml-path={pyyaml}",
+ f"--with-futile-libs={spec['bigdft-futile'].libs.ld_flags}",
+ f"--with-futile-incs={spec['bigdft-futile'].headers.include_flags}",
+ f"--with-chess-libs={spec['bigdft-chess'].libs.ld_flags}",
+ f"--with-chess-incs={spec['bigdft-chess'].headers.include_flags}",
+ f"--with-psolver-libs={spec['bigdft-psolver'].libs.ld_flags}",
+ f"--with-psolver-incs={spec['bigdft-psolver'].headers.include_flags}",
+ f"--with-libABINIT-libs={spec['bigdft-libabinit'].libs.ld_flags}",
+ f"--with-libABINIT-incs={spec['bigdft-libabinit'].headers.include_flags}",
+ f"--with-libgain-libs={spec['libgain'].libs.ld_flags}",
+ f"--with-libgain-incs={spec['libgain'].headers.include_flags}",
+ f"--with-libxc-libs={spec['libxc'].libs.ld_flags} {spec['libxc'].libs.ld_flags}f90",
+ f"--with-libxc-incs={spec['libxc'].headers.include_flags}",
+ f"--with-moduledir={prefix.include}",
+ f"--prefix={prefix}",
"--without-etsf-io",
]
+ if spec.satisfies("+shared"):
+ args.append("--enable-dynamic-libraries")
if "+mpi" in spec:
- args.append("CC=%s" % spec["mpi"].mpicc)
- args.append("CXX=%s" % spec["mpi"].mpicxx)
- args.append("FC=%s" % spec["mpi"].mpifc)
- args.append("F90=%s" % spec["mpi"].mpifc)
- args.append("F77=%s" % spec["mpi"].mpif77)
+ args.append(f"CC={spec['mpi'].mpicc}")
+ args.append(f"CXX={spec['mpi'].mpicxx}")
+ args.append(f"FC={spec['mpi'].mpifc}")
+ args.append(f"F90={spec['mpi'].mpifc}")
+ args.append(f"F77={spec['mpi'].mpif77}")
else:
args.append("--disable-mpi")
@@ -104,15 +108,15 @@ def configure_args(self):
if "+cuda" in spec:
args.append("--enable-opencl")
- args.append("--with-ocl-path=%s" % spec["cuda"].prefix)
+ args.append(f"--with-ocl-path={spec['cuda'].prefix}")
args.append("--enable-cuda-gpu")
- args.append("--with-cuda-path=%s" % spec["cuda"].prefix)
- args.append("--with-cuda-libs=%s" % spec["cuda"].libs.link_flags)
+ args.append(f"--with-cuda-path={spec['cuda'].prefix}")
+ args.append(f"--with-cuda-libs={spec['cuda'].libs.link_flags}")
if "+openbabel" in spec:
args.append("--enable-openbabel")
- args.append("--with-openbabel-libs=%s" % spec["openbabel"].prefix.lib)
- args.append("--with-openbabel-incs=%s" % spec["openbabel"].prefix.include)
+ args.append(f"--with-openbabel-libs={spec['openbabel'].prefix.lib}")
+ args.append(f"--with-openbabel-incs={spec['openbabel'].prefix.include}")
return args
diff --git a/var/spack/repos/builtin/packages/bigdft-futile/package.py b/var/spack/repos/builtin/packages/bigdft-futile/package.py
index 51002308817a2f..13c2e694959453 100644
--- a/var/spack/repos/builtin/packages/bigdft-futile/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-futile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -24,6 +24,9 @@ class BigdftFutile(AutotoolsPackage, CudaPackage):
variant("mpi", default=True, description="Enable MPI support")
variant("openmp", default=True, description="Enable OpenMP support")
+ variant(
+ "shared", default=True, description="Build shared libraries"
+ ) # Not default in bigdft, but is typically the default expectation
depends_on("autoconf", type="build")
depends_on("automake", type="build")
@@ -46,19 +49,21 @@ def configure_args(self):
linalg = [spec["blas"].libs.ld_flags, spec["lapack"].libs.ld_flags]
python_version = spec["python"].version.up_to(2)
- pyyaml = join_path(spec["py-pyyaml"].prefix.lib, "python{0}".format(python_version))
+ pyyaml = join_path(spec["py-pyyaml"].prefix.lib, f"python{python_version}")
openmp_flag = []
if "+openmp" in spec:
openmp_flag.append(self.compiler.openmp_flag)
args = [
- "FCFLAGS=%s" % " ".join(openmp_flag),
- "--with-ext-linalg=%s" % " ".join(linalg),
- "--with-yaml-path=%s" % spec["libyaml"].prefix,
- "--with-pyyaml-path=%s" % pyyaml,
- "--prefix=%s" % prefix,
+ f"FCFLAGS={' '.join(openmp_flag)}",
+ f"--with-ext-linalg={' '.join(linalg)}",
+ f"--with-yaml-path={spec['libyaml'].prefix}",
+ f"--with-pyyaml-path={pyyaml}",
+ f"--prefix={prefix}",
]
+ if spec.satisfies("+shared"):
+ args.append("--enable-dynamic-libraries")
if "+openmp" in spec:
args.append("--with-openmp")
@@ -66,19 +71,19 @@ def configure_args(self):
args.append("--without-openmp")
if "+mpi" in spec:
- args.append("CC=%s" % spec["mpi"].mpicc)
- args.append("CXX=%s" % spec["mpi"].mpicxx)
- args.append("FC=%s" % spec["mpi"].mpifc)
- args.append("F90=%s" % spec["mpi"].mpifc)
- args.append("F77=%s" % spec["mpi"].mpif77)
+ args.append(f"CC={spec['mpi'].mpicc}")
+ args.append(f"CXX={spec['mpi'].mpicxx}")
+ args.append(f"FC={spec['mpi'].mpifc}")
+ args.append(f"F90={spec['mpi'].mpifc}")
+ args.append(f"F77={spec['mpi'].mpif77}")
else:
args.append("--disable-mpi")
if "+cuda" in spec:
args.append("--enable-opencl")
- args.append("--with-ocl-path=%s" % spec["cuda"].prefix)
+ args.append(f"--with-ocl-path={spec['cuda'].prefix}")
args.append("--enable-cuda-gpu")
- args.append("--with-cuda-path=%s" % spec["cuda"].prefix)
+ args.append(f"--with-cuda-path={spec['cuda'].prefix}")
return args
diff --git a/var/spack/repos/builtin/packages/bigdft-libabinit/package.py b/var/spack/repos/builtin/packages/bigdft-libabinit/package.py
index 49a4d2b9816d87..c88763946b2aaa 100644
--- a/var/spack/repos/builtin/packages/bigdft-libabinit/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-libabinit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -26,6 +26,9 @@ class BigdftLibabinit(AutotoolsPackage):
depends_on("libtool", type="build")
variant("mpi", default=True, description="Enable MPI support")
+ variant(
+ "shared", default=True, description="Build shared libraries"
+ ) # Not default in bigdft, but is typically the default expectation
depends_on("python@3.0:", type=("build", "run"))
@@ -34,7 +37,7 @@ class BigdftLibabinit(AutotoolsPackage):
depends_on("libxc@:4.3.4", when="@1.9.1:")
for vers in ["1.9.0", "1.9.1", "1.9.2", "develop"]:
- depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers))
+ depends_on(f"bigdft-futile@{vers}", when=f"@{vers}")
configure_directory = "libABINIT"
@@ -47,22 +50,28 @@ def configure_args(self):
fcflags.append("-fallow-argument-mismatch")
args = [
- "FCFLAGS=%s" % " ".join(fcflags),
- "--with-libxc-libs=%s %s"
- % (spec["libxc"].libs.ld_flags, spec["libxc"].libs.ld_flags + "f90"),
- "--with-libxc-incs=%s" % spec["libxc"].headers.include_flags,
- "--with-futile-libs=%s" % spec["bigdft-futile"].libs.ld_flags,
- "--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags,
- "--with-moduledir=%s" % prefix.include,
- "--prefix=%s" % prefix,
+ f"FCFLAGS={' '.join(fcflags)}",
+ f"--with-libxc-libs={spec['libxc'].libs.ld_flags} "
+ f"{spec['libxc'].libs.ld_flags + 'f90'}",
+ f"--with-libxc-incs={spec['libxc'].headers.include_flags}",
+ f"--with-futile-libs={spec['bigdft-futile'].libs.ld_flags}",
+ f"--with-futile-incs={spec['bigdft-futile'].headers.include_flags}",
+ f"--with-moduledir={prefix.include}",
+ f"--prefix={prefix}",
]
+ if spec.satisfies("+shared"):
+ args.append("--enable-dynamic-libraries")
if "+mpi" in spec:
- args.append("CC=%s" % spec["mpi"].mpicc)
- args.append("CXX=%s" % spec["mpi"].mpicxx)
- args.append("FC=%s" % spec["mpi"].mpifc)
- args.append("F90=%s" % spec["mpi"].mpifc)
- args.append("F77=%s" % spec["mpi"].mpif77)
+ args.extend(
+ [
+ f"CC={spec['mpi'].mpicc}",
+ f"CXX={spec['mpi'].mpicxx}",
+ f"FC={spec['mpi'].mpifc}",
+ f"F90={spec['mpi'].mpifc}",
+ f"F77={spec['mpi'].mpif77}",
+ ]
+ )
else:
args.append("--disable-mpi")
diff --git a/var/spack/repos/builtin/packages/bigdft-psolver/package.py b/var/spack/repos/builtin/packages/bigdft-psolver/package.py
index 494d614468ee38..2ee1ab488f32d0 100644
--- a/var/spack/repos/builtin/packages/bigdft-psolver/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-psolver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,9 @@ class BigdftPsolver(AutotoolsPackage, CudaPackage):
variant("mpi", default=True, description="Enable MPI support")
variant("openmp", default=True, description="Enable OpenMP support")
variant("scalapack", default=True, description="Enable SCALAPACK support")
+ variant(
+ "shared", default=True, description="Build shared libraries"
+ ) # Not default in bigdft, but is typically the default expectation
depends_on("autoconf", type="build")
depends_on("automake", type="build")
@@ -37,8 +40,8 @@ class BigdftPsolver(AutotoolsPackage, CudaPackage):
depends_on("scalapack", when="+scalapack")
for vers in ["1.9.0", "1.9.1", "1.9.2", "develop"]:
- depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers))
- depends_on("bigdft-atlab@{0}".format(vers), when="@{0}".format(vers))
+ depends_on(f"bigdft-futile@{vers}", when=f"@{vers}")
+ depends_on(f"bigdft-atlab@{vers}", when=f"@{vers}")
configure_directory = "psolver"
@@ -47,7 +50,7 @@ def configure_args(self):
prefix = self.prefix
python_version = spec["python"].version.up_to(2)
- pyyaml = join_path(spec["py-pyyaml"].prefix.lib, "python{0}".format(python_version))
+ pyyaml = join_path(spec["py-pyyaml"].prefix.lib, f"python{python_version}")
openmp_flag = []
if "+openmp" in spec:
@@ -60,22 +63,24 @@ def configure_args(self):
linalg.append(spec["blas"].libs.ld_flags)
args = [
- "FCFLAGS=%s" % " ".join(openmp_flag),
- "--with-ext-linalg=%s" % " ".join(linalg),
- "--with-pyyaml-path=%s" % pyyaml,
- "--with-futile-libs=%s" % spec["bigdft-futile"].libs.ld_flags,
- "--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags,
- "--with-moduledir=%s" % prefix.include,
- "--prefix=%s" % prefix,
+ f"FCFLAGS={' '.join(openmp_flag)}",
+ f"--with-ext-linalg={' '.join(linalg)}",
+ f"--with-pyyaml-path={pyyaml}",
+ f"--with-futile-libs={spec['bigdft-futile'].libs.ld_flags}",
+ f"--with-futile-incs={spec['bigdft-futile'].headers.include_flags}",
+ f"--with-moduledir={prefix.include}",
+ f"--prefix={prefix}",
"--without-etsf-io",
]
+ if spec.satisfies("+shared"):
+ args.append("--enable-dynamic-libraries")
if "+mpi" in spec:
- args.append("CC=%s" % spec["mpi"].mpicc)
- args.append("CXX=%s" % spec["mpi"].mpicxx)
- args.append("FC=%s" % spec["mpi"].mpifc)
- args.append("F90=%s" % spec["mpi"].mpifc)
- args.append("F77=%s" % spec["mpi"].mpif77)
+ args.append(f"CC={spec['mpi'].mpicc}")
+ args.append(f"CXX={spec['mpi'].mpicxx}")
+ args.append(f"FC={spec['mpi'].mpifc}")
+ args.append(f"F90={spec['mpi'].mpifc}")
+ args.append(f"F77={spec['mpi'].mpif77}")
else:
args.append("--disable-mpi")
@@ -84,12 +89,12 @@ def configure_args(self):
else:
args.append("--without-openmp")
- args.append("--with-atlab-libs=%s" % spec["bigdft-atlab"].prefix.lib)
+ args.append(f"--with-atlab-libs={spec['bigdft-atlab'].prefix.lib}")
if "+cuda" in spec:
args.append("--enable-cuda-gpu")
- args.append("--with-cuda-path=%s" % spec["cuda"].prefix)
- args.append("--with-cuda-libs=%s" % spec["cuda"].libs.link_flags)
+ args.append(f"--with-cuda-path={spec['cuda'].prefix}")
+ args.append(f"--with-cuda-libs={spec['cuda'].libs.link_flags}")
return args
diff --git a/var/spack/repos/builtin/packages/bigdft-spred/package.py b/var/spack/repos/builtin/packages/bigdft-spred/package.py
index fe9a917d607933..14215c3f7fe47a 100644
--- a/var/spack/repos/builtin/packages/bigdft-spred/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-spred/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -26,6 +26,9 @@ class BigdftSpred(AutotoolsPackage):
variant("mpi", default=True, description="Enable MPI support")
variant("openmp", default=True, description="Enable OpenMP support")
variant("scalapack", default=True, description="Enable SCALAPACK support")
+ variant(
+ "shared", default=True, description="Build shared libraries"
+ ) # Not default in bigdft, but is typically the default expectation
depends_on("python@3.0:", type=("build", "run"))
@@ -36,9 +39,9 @@ class BigdftSpred(AutotoolsPackage):
depends_on("scalapack", when="+scalapack")
for vers in ["1.9.0", "1.9.1", "1.9.2", "develop"]:
- depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers))
- depends_on("bigdft-psolver@{0}".format(vers), when="@{0}".format(vers))
- depends_on("bigdft-core@{0}".format(vers), when="@{0}".format(vers))
+ depends_on(f"bigdft-futile@{vers}", when=f"@{vers}")
+ depends_on(f"bigdft-psolver@{vers}", when=f"@{vers}")
+ depends_on(f"bigdft-core@{vers}", when=f"@{vers}")
configure_directory = "spred"
@@ -47,7 +50,7 @@ def configure_args(self):
prefix = self.prefix
python_version = spec["python"].version.up_to(2)
- pyyaml = join_path(spec["py-pyyaml"].prefix.lib, "python{0}".format(python_version))
+ pyyaml = join_path(spec["py-pyyaml"].prefix.lib, f"python{python_version}")
openmp_flag = []
if "+openmp" in spec:
@@ -60,25 +63,27 @@ def configure_args(self):
linalg.append(spec["blas"].libs.ld_flags)
args = [
- "FCFLAGS=%s" % " ".join(openmp_flag),
- "--with-ext-linalg=%s" % " ".join(linalg),
- "--with-pyyaml-path=%s" % pyyaml,
- "--with-futile-libs=%s" % spec["bigdft-futile"].libs.ld_flags,
- "--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags,
- "--with-psolver-libs=%s" % spec["bigdft-psolver"].prefix.lib,
- "--with-psolver-incs=%s" % spec["bigdft-psolver"].headers.include_flags,
- "--with-core-libs=%s" % spec["bigdft-core"].prefix.lib,
- "--with-core-incs=%s" % spec["bigdft-core"].headers.include_flags,
- "--with-moduledir=%s" % prefix.include,
- "--prefix=%s" % prefix,
+ f"FCFLAGS={' '.join(openmp_flag)}",
+ f"--with-ext-linalg={' '.join(linalg)}",
+ f"--with-pyyaml-path={pyyaml}",
+ f"--with-futile-libs={spec['bigdft-futile'].libs.ld_flags}",
+ f"--with-futile-incs={spec['bigdft-futile'].headers.include_flags}",
+ f"--with-psolver-libs={spec['bigdft-psolver'].prefix.lib}",
+ f"--with-psolver-incs={spec['bigdft-psolver'].headers.include_flags}",
+ f"--with-core-libs={spec['bigdft-core'].prefix.lib}",
+ f"--with-core-incs={spec['bigdft-core'].headers.include_flags}",
+ f"--with-moduledir={prefix.include}",
+ f"--prefix={prefix}",
]
+ if spec.satisfies("+shared"):
+ args.append("--enable-dynamic-libraries")
if "+mpi" in spec:
- args.append("CC=%s" % spec["mpi"].mpicc)
- args.append("CXX=%s" % spec["mpi"].mpicxx)
- args.append("FC=%s" % spec["mpi"].mpifc)
- args.append("F90=%s" % spec["mpi"].mpifc)
- args.append("F77=%s" % spec["mpi"].mpif77)
+ args.append(f"CC={spec['mpi'].mpicc}")
+ args.append(f"CXX={spec['mpi'].mpicxx}")
+ args.append(f"FC={spec['mpi'].mpifc}")
+ args.append(f"F90={spec['mpi'].mpifc}")
+ args.append(f"F77={spec['mpi'].mpif77}")
else:
args.append("--disable-mpi")
diff --git a/var/spack/repos/builtin/packages/bigdft-suite/package.py b/var/spack/repos/builtin/packages/bigdft-suite/package.py
index b4785b0e17a4ec..7c2abb0c43d85c 100644
--- a/var/spack/repos/builtin/packages/bigdft-suite/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-suite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bigreqsproto/package.py b/var/spack/repos/builtin/packages/bigreqsproto/package.py
index 51dcda701e7c2a..effdc50b41a9c0 100644
--- a/var/spack/repos/builtin/packages/bigreqsproto/package.py
+++ b/var/spack/repos/builtin/packages/bigreqsproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bind9/package.py b/var/spack/repos/builtin/packages/bind9/package.py
index 68b1e9da4447e9..c80109971bf27b 100644
--- a/var/spack/repos/builtin/packages/bind9/package.py
+++ b/var/spack/repos/builtin/packages/bind9/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Bind9(AutotoolsPackage):
homepage = "https://github.com/isc-projects/bind9"
url = "https://github.com/isc-projects/bind9/archive/v9_14_6.tar.gz"
+ license("Apache-2.0")
+
version("9_14_6", sha256="98be7a7b6d614b519f6c8d6ec7a8a39759ae9604d87228d9dc7c034471e5433e")
depends_on("libuv", type="link")
diff --git a/var/spack/repos/builtin/packages/binder/package.py b/var/spack/repos/builtin/packages/binder/package.py
index 7ae8fe7f515ffc..0b08dd0c290d2e 100644
--- a/var/spack/repos/builtin/packages/binder/package.py
+++ b/var/spack/repos/builtin/packages/binder/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Binder(CMakePackage):
maintainers("lyskov", "kliegeois")
+ license("MIT")
+
version("master", branch="master")
version("1.3.0", tag="v1.3.0", commit="e9b55985af297ca161d615058e4a5da07c22bc77")
version("1.2.0", tag="v1.2.0", commit="90cf5b31b6f4ecad3fe87518ca2b949dc9e8ed1a")
@@ -49,6 +51,6 @@ def cmake_args(self):
def setup_dependent_package(self, module, dependent_spec):
llvm_dir = self.spec["llvm"].prefix
self.spec.clang_include_dirs = llvm_dir.include
- self.spec.LibClang_include_dir = llvm_dir.lib.clang.join(
+ self.spec.libclang_include_dir = llvm_dir.lib.clang.join(
format(self.spec["llvm"].version)
).include
diff --git a/var/spack/repos/builtin/packages/binutils/package.py b/var/spack/repos/builtin/packages/binutils/package.py
index 30aee917e0125f..f71ebf8366d5f5 100644
--- a/var/spack/repos/builtin/packages/binutils/package.py
+++ b/var/spack/repos/builtin/packages/binutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,11 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage):
executables = ["^nm$", "^readelf$"]
+ license(
+ "GPL-2.0-or-later AND LGPL-2.1-or-later AND GPL-3.0-or-later AND LGPL-3.0-or-later",
+ checked_by="tgamblin",
+ )
+
version("2.41", sha256="a4c4bec052f7b8370024e60389e194377f3f48b56618418ea51067f67aaab30b")
version("2.40", sha256="f8298eb153a4b37d112e945aa5cb2850040bcf26a3ea65b5a715c83afe05e48a")
version("2.39", sha256="da24a84fef220102dd24042df06fdea851c2614a5377f86effa28f33b7b16148")
diff --git a/var/spack/repos/builtin/packages/bioawk/package.py b/var/spack/repos/builtin/packages/bioawk/package.py
index 6754a660b1c036..0aff26fa5d6e1f 100644
--- a/var/spack/repos/builtin/packages/bioawk/package.py
+++ b/var/spack/repos/builtin/packages/bioawk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/biobambam2/package.py b/var/spack/repos/builtin/packages/biobambam2/package.py
index 718030f85ea4c9..83f0293a2d5c8b 100644
--- a/var/spack/repos/builtin/packages/biobambam2/package.py
+++ b/var/spack/repos/builtin/packages/biobambam2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/biobloom/package.py b/var/spack/repos/builtin/packages/biobloom/package.py
index aacf157428fedf..e89488f9ef99eb 100644
--- a/var/spack/repos/builtin/packages/biobloom/package.py
+++ b/var/spack/repos/builtin/packages/biobloom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bioconductor-dupradar/package.py b/var/spack/repos/builtin/packages/bioconductor-dupradar/package.py
index d92d43d27763f0..3eae761c401de1 100644
--- a/var/spack/repos/builtin/packages/bioconductor-dupradar/package.py
+++ b/var/spack/repos/builtin/packages/bioconductor-dupradar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,7 +15,11 @@ class BioconductorDupradar(RPackage):
bioc = "dupradar"
- version("1.30.0", sha256="a299d7a4578047dfc19237e34255b0f50f70ce41d29762ef9f5a7741ba35aa3d")
+ version(
+ "1.30.0",
+ sha256="a299d7a4578047dfc19237e34255b0f50f70ce41d29762ef9f5a7741ba35aa3d",
+ deprecated=True,
+ )
depends_on("r-kernsmooth")
depends_on("subread")
diff --git a/var/spack/repos/builtin/packages/bioconductor-ebseq/package.py b/var/spack/repos/builtin/packages/bioconductor-ebseq/package.py
index 9a14a95c924092..7d54296fd42517 100644
--- a/var/spack/repos/builtin/packages/bioconductor-ebseq/package.py
+++ b/var/spack/repos/builtin/packages/bioconductor-ebseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,7 +23,11 @@ class BioconductorEbseq(RPackage):
bioc = "ebseq"
- version("1.40.0", sha256="a5d3a88743d61062c6d68a426b19c53a4afd2fa216abc884d42c187780994378")
+ version(
+ "1.40.0",
+ sha256="a5d3a88743d61062c6d68a426b19c53a4afd2fa216abc884d42c187780994378",
+ deprecated=True,
+ )
depends_on("r-blockmodeling")
depends_on("r-gplots")
diff --git a/var/spack/repos/builtin/packages/bioconductor-rsubread/package.py b/var/spack/repos/builtin/packages/bioconductor-rsubread/package.py
index 657473676ae6e9..8ae22b208be0b4 100644
--- a/var/spack/repos/builtin/packages/bioconductor-rsubread/package.py
+++ b/var/spack/repos/builtin/packages/bioconductor-rsubread/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,4 +17,8 @@ class BioconductorRsubread(RPackage):
depends_on("r-matrix")
depends_on("zlib-api")
- version("2.14.2", sha256="ac8be0fad0eb2743443e3a60a9a94eec78c746638aaccca70e7166d034dcebb5")
+ version(
+ "2.14.2",
+ sha256="ac8be0fad0eb2743443e3a60a9a94eec78c746638aaccca70e7166d034dcebb5",
+ deprecated=True,
+ )
diff --git a/var/spack/repos/builtin/packages/bioconductor-tximeta/package.py b/var/spack/repos/builtin/packages/bioconductor-tximeta/package.py
index fd1206a2c020ef..cafc8dccb49e56 100644
--- a/var/spack/repos/builtin/packages/bioconductor-tximeta/package.py
+++ b/var/spack/repos/builtin/packages/bioconductor-tximeta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,7 +19,11 @@ class BioconductorTximeta(RPackage):
bioc = "tximeta"
- version("1.18.1", sha256="ee486fc4b2352e2998a3c0c2064449ebcf09b5815f982597ea58311dc8064408")
+ version(
+ "1.18.1",
+ sha256="ee486fc4b2352e2998a3c0c2064449ebcf09b5815f982597ea58311dc8064408",
+ deprecated=True,
+ )
depends_on("r", type=("build", "run"))
depends_on("r-annotationdbi")
diff --git a/var/spack/repos/builtin/packages/biopieces/package.py b/var/spack/repos/builtin/packages/biopieces/package.py
index 28a5402f3bd6e6..3b36ee0b5862fc 100644
--- a/var/spack/repos/builtin/packages/biopieces/package.py
+++ b/var/spack/repos/builtin/packages/biopieces/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Biopieces(Package):
homepage = "https://maasha.github.io/biopieces/"
git = "https://github.com/maasha/biopieces.git"
+ license("GPL-2.0-only")
+
version("2016-04-12", commit="982f80f7c55e2cae67737d80fe35a4e784762856", submodules=True)
depends_on("perl", type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/bird/package.py b/var/spack/repos/builtin/packages/bird/package.py
index 3a522976b0b35f..b9ed84e0c3d3b1 100644
--- a/var/spack/repos/builtin/packages/bird/package.py
+++ b/var/spack/repos/builtin/packages/bird/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Bird(AutotoolsPackage):
homepage = "https://bird.network.cz/"
url = "https://github.com/BIRD/bird/archive/v2.0.2.tar.gz"
+ license("GPL-2.0-or-later")
+
version("2.0.2", sha256="bd42d48fbcc2c0046d544f1183cd98193ff15b792d332ff45f386b0180b09335")
version("2.0.1", sha256="cd6ea4a39ca97ad16d364bf80f919f0e75eba02dd7fe46be40f55d78d022244a")
diff --git a/var/spack/repos/builtin/packages/bismark/package.py b/var/spack/repos/builtin/packages/bismark/package.py
index 5a5c7d6cc02193..93cd8f2cd0502e 100644
--- a/var/spack/repos/builtin/packages/bismark/package.py
+++ b/var/spack/repos/builtin/packages/bismark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Bismark(Package):
homepage = "https://www.bioinformatics.babraham.ac.uk/projects/bismark"
url = "https://github.com/FelixKrueger/Bismark/archive/0.23.0.tar.gz"
+ license("GPL-3.0-only")
+
version("0.24.1", sha256="c5409f5fa470ea5ac07327ced28c60b793f5ef88c5a7bc75b71dde0f52f39894")
version("0.23.0", sha256="ea1625808487c1442dbf825d9cbe5c0cbc37ea5bd1460f59e1e0ccc80cc01c9e")
version("0.19.0", sha256="91707737f96a0574956a282b635abad7560e7d90bee188a67a7807b2470deae2")
diff --git a/var/spack/repos/builtin/packages/bison/package.py b/var/spack/repos/builtin/packages/bison/package.py
index 1ad363f747a667..838dd47a3fbad3 100644
--- a/var/spack/repos/builtin/packages/bison/package.py
+++ b/var/spack/repos/builtin/packages/bison/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -22,6 +22,8 @@ class Bison(AutotoolsPackage, GNUMirrorPackage):
executables = ["^bison$"]
+ license("GPL-3.0-or-later")
+
version("3.8.2", sha256="06c9e13bdf7eb24d4ceb6b59205a4f67c2c7e7213119644430fe82fbd14a0abb")
version("3.8.1", sha256="ce318a47196155fb7c26912b513102f3d0e14757c2e495e34608757b61339c5c")
version("3.8", sha256="d5d184d421aee15603939973a6b0f372f908edfb24c5bc740697497021ad9458")
@@ -65,6 +67,13 @@ class Bison(AutotoolsPackage, GNUMirrorPackage):
patch("nvhpc-3.7.patch", when="@3.7.0:3.7 %nvhpc")
conflicts("%intel@:14", when="@3.4.2:", msg="Intel 14 has immature C11 support")
+ conflicts(
+ "%oneapi",
+ msg=(
+ "bison is likely miscompiled by oneapi compilers, "
+ "see https://github.com/spack/spack/issues/37172"
+ ),
+ )
if sys.platform == "darwin" and macos_version() >= Version("10.13"):
patch("secure_snprintf.patch", level=0, when="@3.0.4")
diff --git a/var/spack/repos/builtin/packages/bitgroomingz/package.py b/var/spack/repos/builtin/packages/bitgroomingz/package.py
index f501e70bac1ea3..ec6fdfd17f844e 100644
--- a/var/spack/repos/builtin/packages/bitgroomingz/package.py
+++ b/var/spack/repos/builtin/packages/bitgroomingz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bitlbee/package.py b/var/spack/repos/builtin/packages/bitlbee/package.py
index 1354e46a3eaf34..1ffdd1b9b5babb 100644
--- a/var/spack/repos/builtin/packages/bitlbee/package.py
+++ b/var/spack/repos/builtin/packages/bitlbee/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Bitlbee(AutotoolsPackage):
homepage = "https://www.bitlbee.org/"
url = "https://github.com/bitlbee/bitlbee/archive/3.5.1.tar.gz"
+ license("GPL-2.0-or-later")
+
version("3.6-1", sha256="81c6357fe08a8941221472e3790e2b351e3a8a41f9af0cf35395fdadbc8ac6cb")
version("3.6", sha256="6ec3a1054eaa98eaaabe6159cb4912cfd6286f71adcfa970419b273b38fdfe0c")
version("3.5-2", sha256="cdcf3ed829d1905b73687b6aa189bbfaf9194f886d9fc7156646827dc0384fdb")
diff --git a/var/spack/repos/builtin/packages/bitmap/package.py b/var/spack/repos/builtin/packages/bitmap/package.py
index cc1c495dccab41..095bac8af0dcfa 100644
--- a/var/spack/repos/builtin/packages/bitmap/package.py
+++ b/var/spack/repos/builtin/packages/bitmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bitsery/package.py b/var/spack/repos/builtin/packages/bitsery/package.py
index 847baaa7729621..f3695651b61d91 100644
--- a/var/spack/repos/builtin/packages/bitsery/package.py
+++ b/var/spack/repos/builtin/packages/bitsery/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,4 +13,6 @@ class Bitsery(CMakePackage):
homepage = "https://github.com/fraillt/bitsery"
url = "https://github.com/fraillt/bitsery/archive/v5.1.0.tar.gz"
+ license("MIT")
+
version("5.1.0", sha256="8f46667db5d0b62fdaab33612108498bcbcbe9cfa48d2cd220b2129734440a8d")
diff --git a/var/spack/repos/builtin/packages/blackhat/package.py b/var/spack/repos/builtin/packages/blackhat/package.py
index 5e8c1d81104128..6ed4a4a42c84e9 100644
--- a/var/spack/repos/builtin/packages/blackhat/package.py
+++ b/var/spack/repos/builtin/packages/blackhat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/blaspp/0001-fix-blaspp-build-error-with-rocm-6.0.0.patch b/var/spack/repos/builtin/packages/blaspp/0001-fix-blaspp-build-error-with-rocm-6.0.0.patch
new file mode 100644
index 00000000000000..3ce15f0859d24b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/blaspp/0001-fix-blaspp-build-error-with-rocm-6.0.0.patch
@@ -0,0 +1,50 @@
+From a75f399bfa77680e7736d126ef3e5a520e1a1702 Mon Sep 17 00:00:00 2001
+From: sreenivasa murthy kolam
+Date: Wed, 17 Jan 2024 12:55:06 +0000
+Subject: [PATCH] fix build error with rocm-6.0.0 by adding extra parameters
+ for rocblas function calls rocblas_ztrmm() ,rocblas_strmm(),
+ rocblas_ctrmm(),rocblas_dtrmm()
+
+---
+ src/rocblas_wrappers.cc | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/rocblas_wrappers.cc b/src/rocblas_wrappers.cc
+index 0e01a95..44ab150 100644
+--- a/src/rocblas_wrappers.cc
++++ b/src/rocblas_wrappers.cc
+@@ -667,6 +667,7 @@ void trmm(
+ m, n,
+ &alpha,
+ dA, ldda,
++ dB, lddb,
+ dB, lddb ) );
+ }
+
+@@ -686,6 +687,7 @@ void trmm(
+ m, n,
+ &alpha,
+ dA, ldda,
++ dB, lddb,
+ dB, lddb ) );
+ }
+
+@@ -705,6 +707,7 @@ void trmm(
+ m, n,
+ (rocblas_float_complex*) &alpha,
+ (rocblas_float_complex*) dA, ldda,
++ (rocblas_float_complex*) dB, lddb,
+ (rocblas_float_complex*) dB, lddb ) );
+ }
+
+@@ -724,6 +727,7 @@ void trmm(
+ m, n,
+ (rocblas_double_complex*) &alpha,
+ (rocblas_double_complex*) dA, ldda,
++ (rocblas_double_complex*) dB, lddb,
+ (rocblas_double_complex*) dB, lddb ) );
+ }
+
+--
+2.39.3
+
diff --git a/var/spack/repos/builtin/packages/blaspp/package.py b/var/spack/repos/builtin/packages/blaspp/package.py
index d43ab4de6bb269..78a2fce1d66ef4 100644
--- a/var/spack/repos/builtin/packages/blaspp/package.py
+++ b/var/spack/repos/builtin/packages/blaspp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,7 +18,12 @@ class Blaspp(CMakePackage, CudaPackage, ROCmPackage):
url = "https://github.com/icl-utk-edu/blaspp/releases/download/v2023.01.00/blaspp-2023.01.00.tar.gz"
maintainers("teonnik", "Sely85", "G-Ragghianti", "mgates3")
+ license("BSD-3-Clause")
+
version("master", branch="master")
+ version(
+ "2023.11.05", sha256="62dfc03ec07c0826e0466dc2c204b460caa929d53ad4f050cb132d92670be7ce"
+ )
version(
"2023.08.25", sha256="1d9c7227a6d8776944aa866592142b7b51c6e4ba5529d168eb8ae2b329c47401"
)
@@ -74,6 +79,10 @@ class Blaspp(CMakePackage, CudaPackage, ROCmPackage):
requires("%oneapi", when="+sycl", msg="blaspp+sycl must be compiled with %oneapi")
+ patch(
+ "0001-fix-blaspp-build-error-with-rocm-6.0.0.patch", when="@2023.06.00: ^hip@6.0.0 +rocm"
+ )
+
def cmake_args(self):
spec = self.spec
backend_config = "-Duse_cuda=%s" % ("+cuda" in spec)
diff --git a/var/spack/repos/builtin/packages/blast-legacy/package.py b/var/spack/repos/builtin/packages/blast-legacy/package.py
index 8b6df2ff85265d..bad9bdd26995d1 100644
--- a/var/spack/repos/builtin/packages/blast-legacy/package.py
+++ b/var/spack/repos/builtin/packages/blast-legacy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/blast-plus/package.py b/var/spack/repos/builtin/packages/blast-plus/package.py
index 8febe7d5f3a4dd..0506a4188316e6 100644
--- a/var/spack/repos/builtin/packages/blast-plus/package.py
+++ b/var/spack/repos/builtin/packages/blast-plus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/blast2go/package.py b/var/spack/repos/builtin/packages/blast2go/package.py
index e277e34d5a6430..c099a7da6c8c83 100644
--- a/var/spack/repos/builtin/packages/blast2go/package.py
+++ b/var/spack/repos/builtin/packages/blast2go/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/blat/package.py b/var/spack/repos/builtin/packages/blat/package.py
index 477cd21ad8ed28..5246c0eee7c927 100644
--- a/var/spack/repos/builtin/packages/blat/package.py
+++ b/var/spack/repos/builtin/packages/blat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/blaze/package.py b/var/spack/repos/builtin/packages/blaze/package.py
index 0dfef19fe16f3d..e2762147f5c0e4 100644
--- a/var/spack/repos/builtin/packages/blaze/package.py
+++ b/var/spack/repos/builtin/packages/blaze/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/blis/package.py b/var/spack/repos/builtin/packages/blis/package.py
index c3c10f59992ed0..da25f4e2c33a0a 100644
--- a/var/spack/repos/builtin/packages/blis/package.py
+++ b/var/spack/repos/builtin/packages/blis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -113,6 +113,8 @@ class Blis(BlisBase):
url = "https://github.com/flame/blis/archive/0.7.0.tar.gz"
git = "https://github.com/flame/blis.git"
+ license("BSD-3-Clause")
+
version("master", branch="master")
version("0.9.0", sha256="1135f664be7355427b91025075562805cdc6cc730d3173f83533b2c5dcc2f308")
version("0.8.1", sha256="729694128719801e82fae7b5f2489ab73e4a467f46271beff09588c9265a697b")
diff --git a/var/spack/repos/builtin/packages/bliss/package.py b/var/spack/repos/builtin/packages/bliss/package.py
index b3cf80ffb87a70..664d5a14a6b574 100644
--- a/var/spack/repos/builtin/packages/bliss/package.py
+++ b/var/spack/repos/builtin/packages/bliss/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Bliss(Package):
homepage = "http://www.tcs.hut.fi/Software/bliss/"
url = "http://www.tcs.hut.fi/Software/bliss/bliss-0.73.zip"
+ license("LGPL-3.0-only")
+
version("0.73", sha256="f57bf32804140cad58b1240b804e0dbd68f7e6bf67eba8e0c0fa3a62fd7f0f84")
# Note: Bliss can also be built without gmp, but we don't support this yet
diff --git a/var/spack/repos/builtin/packages/blitz/package.py b/var/spack/repos/builtin/packages/blitz/package.py
index 444f24889ecc61..5cba944af75bda 100644
--- a/var/spack/repos/builtin/packages/blitz/package.py
+++ b/var/spack/repos/builtin/packages/blitz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Blitz(AutotoolsPackage):
homepage = "https://github.com/blitzpp/blitz"
url = "https://github.com/blitzpp/blitz/archive/1.0.2.tar.gz"
+ license("LGPL-3.0-only")
+
version("1.0.2", sha256="500db9c3b2617e1f03d0e548977aec10d36811ba1c43bb5ef250c0e3853ae1c2")
depends_on("python@3:", type="build")
diff --git a/var/spack/repos/builtin/packages/blktrace/package.py b/var/spack/repos/builtin/packages/blktrace/package.py
index d4e10bd0cbf371..99cbdd772543a4 100644
--- a/var/spack/repos/builtin/packages/blktrace/package.py
+++ b/var/spack/repos/builtin/packages/blktrace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Blktrace(MakefilePackage):
homepage = "https://brick.kernel.dk"
url = "https://brick.kernel.dk/snaps/blktrace-1.2.0.tar.gz"
+ license("GPL-2.0-only")
+
version("1.3.0", sha256="88c25b3bb3254ab029d4c62df5a9ab863a5c70918a604040da8fe39873c6bacb")
version("1.2.0", sha256="d14029bc096026dacb206bf115c912dcdb795320b5aba6dff3e46d7f94c5242d")
version("1.1.0", sha256="dc1e5da64b8fef454ec24aa4fcc760112b4ea7c973e2485961aa5668b3a8ce1d")
diff --git a/var/spack/repos/builtin/packages/bloaty/package.py b/var/spack/repos/builtin/packages/bloaty/package.py
index b1dab96806eded..ed940950b27b00 100644
--- a/var/spack/repos/builtin/packages/bloaty/package.py
+++ b/var/spack/repos/builtin/packages/bloaty/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,4 +14,6 @@ class Bloaty(CMakePackage):
maintiners = ["cyrush"]
+ license("Apache-2.0")
+
version("1.1", sha256="a308d8369d5812aba45982e55e7c3db2ea4780b7496a5455792fb3dcba9abd6f")
diff --git a/var/spack/repos/builtin/packages/blogbench/package.py b/var/spack/repos/builtin/packages/blogbench/package.py
index ba49da867f8ce1..3f03391b157290 100644
--- a/var/spack/repos/builtin/packages/blogbench/package.py
+++ b/var/spack/repos/builtin/packages/blogbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/blt/package.py b/var/spack/repos/builtin/packages/blt/package.py
index 95b78f923a910c..09331a9c036d40 100644
--- a/var/spack/repos/builtin/packages/blt/package.py
+++ b/var/spack/repos/builtin/packages/blt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Blt(Package):
maintainers("white238", "davidbeckingsale")
+ license("BSD-3-Clause")
+
version("develop", branch="develop")
version("main", branch="main")
# Note: 0.4.0+ contains a breaking change to BLT created targets
diff --git a/var/spack/repos/builtin/packages/bmake/package.py b/var/spack/repos/builtin/packages/bmake/package.py
index bccb1f1968a5d2..95558244604d34 100644
--- a/var/spack/repos/builtin/packages/bmake/package.py
+++ b/var/spack/repos/builtin/packages/bmake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Bmake(Package):
homepage = "https://www.crufty.net/help/sjg/bmake.htm"
url = "https://www.crufty.net/ftp/pub/sjg/bmake-20180512.tar.gz"
+ license("BSD-2-Clause")
+
version("20230303", sha256="e8698724ac68c63f8e6682a93c3154c1d93dc6a9072f13c8cef07ece4ccd0ed6")
version("20220330", sha256="4b46d95b6ae4b3311ba805ff7d5a19b9e37ac0e86880e296e2111f565b545092")
version("20200710", sha256="6538fc4319ef79d178dca76d3b869f7aa93a9bb7b510df08a7d872c01a56b76c")
diff --git a/var/spack/repos/builtin/packages/bmi/package.py b/var/spack/repos/builtin/packages/bmi/package.py
index f8876dbefa3fd2..5ae430148c2c09 100644
--- a/var/spack/repos/builtin/packages/bmi/package.py
+++ b/var/spack/repos/builtin/packages/bmi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Bmi(AutotoolsPackage):
maintainers("carns")
+ license("LGPL-2.1-or-later")
+
version("main", branch="main")
version("2.8.1", sha256="28aa4341f0456cf20ee762f712d7c749ab8f864003329f9327c18ea03fc7ffdb")
diff --git a/var/spack/repos/builtin/packages/bml/package.py b/var/spack/repos/builtin/packages/bml/package.py
index ae42974be33ac8..2822968fc63e5d 100644
--- a/var/spack/repos/builtin/packages/bml/package.py
+++ b/var/spack/repos/builtin/packages/bml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Bml(CMakePackage):
maintainers("jeanlucf22")
+ license("BSD-3-Clause")
+
version("master", branch="master")
version("2.2.0", sha256="41703eee605bcb0ce3bcb5dde5914363aaa382393138ab24f02acf84f670fad0")
version("2.1.2", sha256="d5bb4726759eb35ec66fae7b6ce8b4978cee33fa879aed314bf7aa1fa7eece91")
diff --git a/var/spack/repos/builtin/packages/bohrium/package.py b/var/spack/repos/builtin/packages/bohrium/package.py
index 6cb3fbfc670775..64ad8c100e0acc 100644
--- a/var/spack/repos/builtin/packages/bohrium/package.py
+++ b/var/spack/repos/builtin/packages/bohrium/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Bohrium(CMakePackage, CudaPackage):
maintainers("mfherbst")
+ license("LGPL-3.0-only")
+
#
# Versions
#
@@ -117,8 +119,6 @@ def cmake_args(self):
# different hosts.
args = [
- # Choose a particular python version
- "-DPYTHON_EXECUTABLE:FILEPATH=" + spec["python"].command.path,
#
# Hard-disable Jupyter, since this would override a config
# file in the user's home directory in some cases during
diff --git a/var/spack/repos/builtin/packages/boinc-client/package.py b/var/spack/repos/builtin/packages/boinc-client/package.py
index f767bfd108da76..4b4ec8d7c369d8 100644
--- a/var/spack/repos/builtin/packages/boinc-client/package.py
+++ b/var/spack/repos/builtin/packages/boinc-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class BoincClient(AutotoolsPackage):
homepage = "https://boinc.berkeley.edu/"
url = "https://github.com/BOINC/boinc/archive/client_release/7.16/7.16.5.tar.gz"
+ license("LGPL-3.0-only")
+
version("7.16.5", sha256="33db60991b253e717c6124cce4750ae7729eaab4e54ec718b9e37f87012d668a")
variant("manager", default=False, description="Builds the client manager")
diff --git a/var/spack/repos/builtin/packages/bolt/package.py b/var/spack/repos/builtin/packages/bolt/package.py
index e575ee6cfd67de..0c37acc5538656 100644
--- a/var/spack/repos/builtin/packages/bolt/package.py
+++ b/var/spack/repos/builtin/packages/bolt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -28,6 +28,8 @@ class Bolt(CMakePackage):
tags = ["e4s"]
+ license("LGPL-2.1-or-later")
+
version("main", branch="main")
version("2.0", sha256="f84b6a525953edbaa5d28748ef3ab172a3b6f6899b07092065ba7d1ccc6eb5ac")
version("1.0.1", sha256="769e30dfc4042cee7ebbdadd23cf08796c03bcd8b335f516dc8cbc3f8adfa597")
diff --git a/var/spack/repos/builtin/packages/bonniepp/package.py b/var/spack/repos/builtin/packages/bonniepp/package.py
index 397c081a1f2e25..55dba48278ae5e 100644
--- a/var/spack/repos/builtin/packages/bonniepp/package.py
+++ b/var/spack/repos/builtin/packages/bonniepp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bookleaf-cpp/package.py b/var/spack/repos/builtin/packages/bookleaf-cpp/package.py
index d701ad89dc64a5..6a145c30de43bf 100644
--- a/var/spack/repos/builtin/packages/bookleaf-cpp/package.py
+++ b/var/spack/repos/builtin/packages/bookleaf-cpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class BookleafCpp(CMakePackage):
url = "https://github.com/UK-MAC/BookLeaf_Cpp/archive/v2.0.tar.gz"
git = "https://github.com/UK-MAC/BookLeaf_Cpp.git"
+ license("GPL-3.0-or-later")
+
version("develop", branch="develop")
version("2.0.2", sha256="787ade5045415d71d9bad55fe9f93598f3a0548d13e2ff80e752cc99f62fe6d3")
diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py
index d236c5c5524c72..7369b0e8b5bed4 100644
--- a/var/spack/repos/builtin/packages/boost/package.py
+++ b/var/spack/repos/builtin/packages/boost/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -26,8 +26,11 @@ class Boost(Package):
list_depth = 1
maintainers("hainest")
+ license("BSL-1.0")
+
version("develop", branch="develop", submodules=True)
version("1.83.0", sha256="6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e")
+ version("1.84.0", sha256="cc4b893acf645c9d4b698e9a0f08ca8846aa5d6c68275c14c3e7949c24109454")
version("1.82.0", sha256="a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6")
version("1.81.0", sha256="71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa")
version("1.80.0", sha256="1e19565d82e43bc59209a168f5ac899d3ba471d55c7610c677d4ccf2c9c500c0")
@@ -169,7 +172,7 @@ def libs(self):
variant(
"cxxstd",
- default="98",
+ default="11",
values=(
"98",
"11",
@@ -185,6 +188,10 @@ def libs(self):
multi=False,
description="Use the specified C++ standard when building.",
)
+
+ # 1.84.0 dropped support for 98/03
+ conflicts("cxxstd=98", when="@1.84.0:")
+
variant("debug", default=False, description="Switch to the debug version of Boost")
variant("shared", default=True, description="Additionally build shared libraries")
variant(
diff --git a/var/spack/repos/builtin/packages/boostmplcartesianproduct/package.py b/var/spack/repos/builtin/packages/boostmplcartesianproduct/package.py
index b4f8acb0eec924..e940d648b3bb7f 100644
--- a/var/spack/repos/builtin/packages/boostmplcartesianproduct/package.py
+++ b/var/spack/repos/builtin/packages/boostmplcartesianproduct/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/botan/package.py b/var/spack/repos/builtin/packages/botan/package.py
index 0967c8b032d7ca..e768fa7395c17d 100644
--- a/var/spack/repos/builtin/packages/botan/package.py
+++ b/var/spack/repos/builtin/packages/botan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Botan(MakefilePackage):
maintainers("aumuell")
+ license("BSD-2-Clause")
+
version("3.2.0", sha256="049c847835fcf6ef3a9e206b33de05dd38999c325e247482772a5598d9e5ece3")
version("3.1.1", sha256="30c84fe919936a98fef5331f246c62aa2c0e4d2085b2d4511207f6a20afa3a6b")
version("3.1.0", sha256="4e18e755a8bbc6bf96fac916fbf072ecd06740c72a72017c27162e4c0b4725fe")
diff --git a/var/spack/repos/builtin/packages/bowtie/package.py b/var/spack/repos/builtin/packages/bowtie/package.py
index 55e6f53cb52b1a..2df76062168e41 100644
--- a/var/spack/repos/builtin/packages/bowtie/package.py
+++ b/var/spack/repos/builtin/packages/bowtie/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Bowtie(MakefilePackage):
homepage = "https://sourceforge.net/projects/bowtie-bio/"
url = "https://github.com/BenLangmead/bowtie/archive/v1.2.0.tar.gz"
+ license("Artistic-2.0")
+
version("1.3.1", sha256="147d9fe9652f7c5f351bfc0eb012e06981986fb43bd6bdfe88a95c02eabc6573")
version("1.3.0", sha256="d7c2d982a67884909f284a0ff150b56b20127cd7a1ced461c3c4c03e6a6374c5")
version("1.2.3", sha256="86402114caeacbb3a3030509cb59f0b7e96361c7b3ee2dd50e2cd68200898823")
diff --git a/var/spack/repos/builtin/packages/bowtie2/package.py b/var/spack/repos/builtin/packages/bowtie2/package.py
index 4a26602a742c01..a17d6749abf67a 100644
--- a/var/spack/repos/builtin/packages/bowtie2/package.py
+++ b/var/spack/repos/builtin/packages/bowtie2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,9 @@ class Bowtie2(MakefilePackage):
homepage = "http://bowtie-bio.sourceforge.net/bowtie2/index.shtml"
url = "http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.3.1/bowtie2-2.3.1-source.zip"
+ license("GPL-3.0-or-later")
+
+ version("2.5.2", sha256="2c47a7da0a507c68319b307cdd15dee385127cc817d6bbf1d357af8d8af578ef")
version("2.5.1", sha256="cb6cbbbb5a7167a2f21a3d63cb9774336361f540e1ec3d8ff907f955c35f71b8")
version("2.4.5", sha256="d3cbd5f323393b5649aea10325d7c4b77f02035a8b204e5ac18eba95236e076a")
version("2.4.2", sha256="4cc555eeeeb8ae2d47aaa1551f3f01b57f567a013e4e0d1f30e90f462865027e")
diff --git a/var/spack/repos/builtin/packages/boxlib/package.py b/var/spack/repos/builtin/packages/boxlib/package.py
index aa82407333a665..4d67b338e21f7a 100644
--- a/var/spack/repos/builtin/packages/boxlib/package.py
+++ b/var/spack/repos/builtin/packages/boxlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Boxlib(CMakePackage):
homepage = "https://ccse.lbl.gov/BoxLib/"
url = "https://github.com/BoxLib-Codes/BoxLib/archive/16.12.2.tar.gz"
+ license("BSD-3-Clause-LBNL")
+
version("16.12.2", sha256="e87faeccfcb14b3436d36c45fcd9f46ea20f65298d35c6db2a80d6332b036dd2")
depends_on("mpi")
diff --git a/var/spack/repos/builtin/packages/bpp-core/package.py b/var/spack/repos/builtin/packages/bpp-core/package.py
index 6a64270dc299a3..c1bd5c19d9f8a7 100644
--- a/var/spack/repos/builtin/packages/bpp-core/package.py
+++ b/var/spack/repos/builtin/packages/bpp-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class BppCore(CMakePackage):
maintainers("snehring")
+ license("CECILL-2.0")
+
version("2.4.1", sha256="1150b8ced22cff23dd4770d7c23fad11239070b44007740e77407f0d746c0af6")
version(
"2.2.0",
diff --git a/var/spack/repos/builtin/packages/bpp-phyl-omics/package.py b/var/spack/repos/builtin/packages/bpp-phyl-omics/package.py
index eea8227236a618..bdcd4c186bba8e 100644
--- a/var/spack/repos/builtin/packages/bpp-phyl-omics/package.py
+++ b/var/spack/repos/builtin/packages/bpp-phyl-omics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class BppPhylOmics(CMakePackage):
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
url = "https://github.com/BioPP/bpp-phyl-omics/archive/v2.4.1.tar.gz"
+ license("CECILL-2.0")
+
version("2.4.1", sha256="fb0908422e59c71065db874e68d5c71acddf66d8a51776f7e04a5f8d5f0f6577")
version("2.4.0", sha256="56cc0da613e72dbb8d0ed10d8209e182804a850fd96df1481e4710df97f18435")
version("2.3.2", sha256="2320e2d33f7bc66bd1a1f0771a8d85e41ad3cec0347cef0f09463ba86f6efa96")
diff --git a/var/spack/repos/builtin/packages/bpp-phyl/package.py b/var/spack/repos/builtin/packages/bpp-phyl/package.py
index 62468fe869b4a2..78c9d3aab95d36 100644
--- a/var/spack/repos/builtin/packages/bpp-phyl/package.py
+++ b/var/spack/repos/builtin/packages/bpp-phyl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class BppPhyl(CMakePackage):
maintainers("snehring")
+ license("CECILL-2.0")
+
version("2.4.1", sha256="e7bf7d4570f756b7773904ffa600ffcd77c965553ddb5cbc252092d1da962ff2")
version(
"2.2.0",
diff --git a/var/spack/repos/builtin/packages/bpp-popgen/package.py b/var/spack/repos/builtin/packages/bpp-popgen/package.py
index cd22a5115d1ec8..6aa6a9a2ca7a80 100644
--- a/var/spack/repos/builtin/packages/bpp-popgen/package.py
+++ b/var/spack/repos/builtin/packages/bpp-popgen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class BppPopgen(CMakePackage):
maintainers("snehring")
+ license("CECILL-2.0")
+
version("2.4.1", sha256="03b57d71a63c8fa7f11c085e531d0d691fc1d40d4ea541070dabde0ab3baf413")
depends_on("bpp-seq")
diff --git a/var/spack/repos/builtin/packages/bpp-seq-omics/package.py b/var/spack/repos/builtin/packages/bpp-seq-omics/package.py
index 21a32a86735c73..5051043206154b 100644
--- a/var/spack/repos/builtin/packages/bpp-seq-omics/package.py
+++ b/var/spack/repos/builtin/packages/bpp-seq-omics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class BppSeqOmics(CMakePackage):
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
url = "https://github.com/BioPP/bpp-seq-omics/archive/v2.4.1.tar.gz"
+ license("CECILL-2.0")
+
version("2.4.1", sha256="200da925b42065998d825f0b2a37e26b00a865883c85bc332beb3a94cae1e08b")
version("2.4.0", sha256="3217c7d6253f32c101d628aa039f2b3c49c3990de46c6842f2b88637da408e21")
version("2.3.2", sha256="2254ffe181bb7582b73ca186cd366c321423177ea07866fd7c04c8a4bbcf5ac3")
diff --git a/var/spack/repos/builtin/packages/bpp-seq/package.py b/var/spack/repos/builtin/packages/bpp-seq/package.py
index 16c747fc0fb2dd..9d6351508e1ec3 100644
--- a/var/spack/repos/builtin/packages/bpp-seq/package.py
+++ b/var/spack/repos/builtin/packages/bpp-seq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class BppSeq(CMakePackage):
maintainers("snehring")
+ license("CECILL-2.0")
+
version("2.4.1", sha256="dbfcb04803e4b7f08f9f159da8a947c91906c3ca8b20683ac193f6dc524d4655")
version(
"2.2.0",
diff --git a/var/spack/repos/builtin/packages/bpp-suite/package.py b/var/spack/repos/builtin/packages/bpp-suite/package.py
index 4e6630dd903521..81e213fd050aa8 100644
--- a/var/spack/repos/builtin/packages/bpp-suite/package.py
+++ b/var/spack/repos/builtin/packages/bpp-suite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class BppSuite(CMakePackage):
maintainers("snehring")
+ license("CECILL-2.0")
+
version("2.4.1", sha256="0485adcc17e37439069d27e4fac144e5ae38036ba21f31e6d21f070ce4ea5199")
version(
"2.2.0",
diff --git a/var/spack/repos/builtin/packages/bracken/package.py b/var/spack/repos/builtin/packages/bracken/package.py
index b12d7bf75ac50c..e265fa3188909f 100644
--- a/var/spack/repos/builtin/packages/bracken/package.py
+++ b/var/spack/repos/builtin/packages/bracken/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Bracken(Package):
homepage = "https://ccb.jhu.edu/software/bracken"
url = "https://github.com/jenniferlu717/Bracken/archive/v2.7.tar.gz"
+ license("GPL-3.0-only")
+
version("2.8", sha256="b0c8a803cc020b7d1cbca47b53e71e874d9688b836911e4a4b71b0e4b826b61a")
version("2.7", sha256="1795ecd9f9e5582f37549795ba68854780936110a2f6f285c3e626d448cd1532")
diff --git a/var/spack/repos/builtin/packages/brahma/package.py b/var/spack/repos/builtin/packages/brahma/package.py
index 3932de204f7c92..303a6b4e0c8110 100644
--- a/var/spack/repos/builtin/packages/brahma/package.py
+++ b/var/spack/repos/builtin/packages/brahma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,13 +13,18 @@ class Brahma(CMakePackage):
git = "https://github.com/hariharan-devarajan/brahma.git"
maintainers("hariharan-devarajan")
+ license("MIT")
+
version("develop", branch="dev")
version("master", branch="master")
+ version("0.0.2", tag="v0.0.2", commit="4a36d5c08787d41c939fa1b987344b69d9ef97a6")
version("0.0.1", tag="v0.0.1", commit="15156036f14e36511dfc3f3751dc953540526a2b")
variant("mpi", default=False, description="Enable MPI support")
- depends_on("cpp-logger@0.0.1")
- depends_on("gotcha@develop")
+ depends_on("cpp-logger@0.0.1", when="@:0.0.1")
+ depends_on("cpp-logger@0.0.2", when="@0.0.2:")
+ depends_on("gotcha@1.0.4", when="@:0.0.1")
+ depends_on("gotcha@1.0.5", when="@0.0.2:")
depends_on("catch2@3.0.1")
depends_on("mpi", when="+mpi")
diff --git a/var/spack/repos/builtin/packages/braker/package.py b/var/spack/repos/builtin/packages/braker/package.py
index efba756b2d41db..d9db1868840b0f 100644
--- a/var/spack/repos/builtin/packages/braker/package.py
+++ b/var/spack/repos/builtin/packages/braker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Braker(Package):
url = "https://github.com/Gaius-Augustus/BRAKER/archive/v2.1.4.tar.gz"
list_url = "http://bioinf.uni-greifswald.de/augustus/binaries/old"
+ license("Artistic-1.0")
+
version("2.1.6", sha256="eef3c4037364472988a010322cbd79b5171158f9c016f4383809adade4866c06")
version("2.1.4", sha256="d48af5649cc879343046f9ddf180fe2c709b5810e0b78cf314bf298514d31d52")
version(
diff --git a/var/spack/repos/builtin/packages/branson/package.py b/var/spack/repos/builtin/packages/branson/package.py
index fd28bd3fb79e20..327a8d9c1696b1 100644
--- a/var/spack/repos/builtin/packages/branson/package.py
+++ b/var/spack/repos/builtin/packages/branson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Branson(CMakePackage):
tags = ["proxy-app"]
+ license("MIT")
+
version("develop", branch="develop")
version(
diff --git a/var/spack/repos/builtin/packages/breakdancer/package.py b/var/spack/repos/builtin/packages/breakdancer/package.py
index 743e7ed81ca27a..3b5d4147260973 100644
--- a/var/spack/repos/builtin/packages/breakdancer/package.py
+++ b/var/spack/repos/builtin/packages/breakdancer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bref3/package.py b/var/spack/repos/builtin/packages/bref3/package.py
index c7e80500b83031..dfa74ecc2fe6c3 100644
--- a/var/spack/repos/builtin/packages/bref3/package.py
+++ b/var/spack/repos/builtin/packages/bref3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/breseq/package.py b/var/spack/repos/builtin/packages/breseq/package.py
index 865c1f333dc3d2..acf0bb71bc7e2b 100644
--- a/var/spack/repos/builtin/packages/breseq/package.py
+++ b/var/spack/repos/builtin/packages/breseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Breseq(AutotoolsPackage):
homepage = "https://barricklab.org/breseq"
url = "https://github.com/barricklab/breseq/archive/v0.31.1.tar.gz"
+ license("GPL-2.0-or-later")
+
version("0.38.1", sha256="2b5d0aa9c751881c3ee31c0384953156b848b80d2d2d9c451763d74da0465902")
version("0.33.2", sha256="c698d2d25cc7ed251ff916343a8c04f79b5540281288cb7c955f458255ac21de")
version("0.33.1", sha256="e24a50e254ad026c519747313b9e42bbeb32bd766a6a06ed369bd5b9dc50e84d")
diff --git a/var/spack/repos/builtin/packages/bricks/package.py b/var/spack/repos/builtin/packages/bricks/package.py
index ccbaccdf51cde4..af1bfa1c04ba54 100644
--- a/var/spack/repos/builtin/packages/bricks/package.py
+++ b/var/spack/repos/builtin/packages/bricks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,8 @@ class Bricks(CMakePackage):
# List of GitHub accounts to notify when the package is updated.
maintainers("ztuowen", "drhansj")
+ license("MIT")
+
version("r0.1", branch="r0.1")
version("2023.08.25", commit="d81725055c117c4b63a1b3835c6b634768b5bea7") # no official release
diff --git a/var/spack/repos/builtin/packages/bridger/package.py b/var/spack/repos/builtin/packages/bridger/package.py
index 8461474d1efa51..d1c607238f741e 100644
--- a/var/spack/repos/builtin/packages/bridger/package.py
+++ b/var/spack/repos/builtin/packages/bridger/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Bridger(MakefilePackage, SourceforgePackage):
homepage = "https://sourceforge.net/projects/rnaseqassembly/"
sourceforge_mirror_path = "rnaseqassembly/Bridger_r2014-12-01.tar.gz"
+ license("GPL-2.0-only")
+
version(
"2014-12-01", sha256="8fbec8603ea8ad2162cbd0c658e4e0a4af6453bdb53310b4b7e0d112e40b5737"
)
diff --git a/var/spack/repos/builtin/packages/brigand/package.py b/var/spack/repos/builtin/packages/brigand/package.py
index 694d613b6a097a..0bb8f27abfa63d 100644
--- a/var/spack/repos/builtin/packages/brigand/package.py
+++ b/var/spack/repos/builtin/packages/brigand/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Brigand(CMakePackage):
maintainers("nilsvu")
+ license("BSL-1.0")
+
version("master", branch="master")
version("1.3.0", sha256="2468107c5b9ab0b56d84797dfc6636d0aae0507ae9cd6cb1acc1de85e5787acd")
version("1.2.0", sha256="4287fa7278cc000a63e90f1a1b903952b7f606b1a3cf95c23a422d2fe96ca50d")
diff --git a/var/spack/repos/builtin/packages/brltty/package.py b/var/spack/repos/builtin/packages/brltty/package.py
index 5e29e6ed2d498a..4e94ef3651afc5 100644
--- a/var/spack/repos/builtin/packages/brltty/package.py
+++ b/var/spack/repos/builtin/packages/brltty/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Brltty(AutotoolsPackage):
homepage = "https://brltty.app/"
url = "https://github.com/brltty/brltty/archive/BRLTTY-6.0.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("6.0", sha256="acfea5274bdc9230b0ea1a87f8796e241615d4d2c1ba08d87601b9d116c7804c")
version("5.6", sha256="74f35043943525396b340b9f65f0d73c3cc4054a8f63d1c685f27ccf59f46c5d")
version("5.5", sha256="cd80a0d225f13779791dc3a72d7f137c06c48e5f2c9600e80a565d2378422207")
diff --git a/var/spack/repos/builtin/packages/brotli/package.py b/var/spack/repos/builtin/packages/brotli/package.py
index 0456fba3fe16f8..6b78c6c9642c42 100644
--- a/var/spack/repos/builtin/packages/brotli/package.py
+++ b/var/spack/repos/builtin/packages/brotli/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Brotli(CMakePackage):
homepage = "https://github.com/google/brotli"
url = "https://github.com/google/brotli/archive/v1.0.7.tar.gz"
+ license("MIT")
+
version("1.0.9", sha256="f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46")
version("1.0.7", sha256="4c61bfb0faca87219ea587326c467b95acb25555b53d1a421ffa3c8a9296ee2c")
diff --git a/var/spack/repos/builtin/packages/brpc/package.py b/var/spack/repos/builtin/packages/brpc/package.py
index da2ea3480b927e..299622b7df7f54 100644
--- a/var/spack/repos/builtin/packages/brpc/package.py
+++ b/var/spack/repos/builtin/packages/brpc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Brpc(CMakePackage):
homepage = "https://github.com/apache/incubator-brpc"
url = "https://github.com/apache/incubator-brpc/archive/0.9.7.tar.gz"
+ license("BSL-1.0")
+
version("0.9.7", sha256="722cd342baf3b05189ca78ecf6c56ea6ffec22e62fc2938335e4e5bab545a49c")
version("0.9.6", sha256="b872ca844999e0ba768acd823b409761f126590fb34cb0183da915a595161446")
version("0.9.5", sha256="11ca8942242a4c542c11345b7463a4aea33a11ca33e91d9a2f64f126df8c70e9")
diff --git a/var/spack/repos/builtin/packages/brunsli/package.py b/var/spack/repos/builtin/packages/brunsli/package.py
index 126da9bbae69fa..c0ce3de05d65a3 100644
--- a/var/spack/repos/builtin/packages/brunsli/package.py
+++ b/var/spack/repos/builtin/packages/brunsli/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Brunsli(CMakePackage):
homepage = "https://github.com/google/brunsli"
git = "https://github.com/google/brunsli.git"
+ license("MIT")
+
version("0.1", tag="v0.1", commit="8a0e9b8ca2e3e089731c95a1da7ce8a3180e667c", submodules=True)
depends_on("cmake@3.1:", type="build")
diff --git a/var/spack/repos/builtin/packages/brynet/package.py b/var/spack/repos/builtin/packages/brynet/package.py
index daf83463e18f97..a6a81363b5e44d 100644
--- a/var/spack/repos/builtin/packages/brynet/package.py
+++ b/var/spack/repos/builtin/packages/brynet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Brynet(CMakePackage):
homepage = "https://github.com/IronsDu/brynet"
url = "https://github.com/IronsDu/brynet/archive/v1.0.8.tar.gz"
+ license("MIT")
+
version("1.12.2", sha256="b8b740cae39804d1e7037866046321065856c0ea9f565d26f67aeccc7ccd3d51")
version("1.10.0", sha256="a7bc20c4a2cc2f0f29af56e9355b8769256785850ddedcef226e9562e97d05cf")
version("1.0.8", sha256="e37dee5fa14acec99bdd7ce8530a00ff5116f608f0a5401cd2e32e10f23975fc")
diff --git a/var/spack/repos/builtin/packages/bsseeker2/package.py b/var/spack/repos/builtin/packages/bsseeker2/package.py
index c34f19bb1f5a6f..dca7a8b9422e7d 100644
--- a/var/spack/repos/builtin/packages/bsseeker2/package.py
+++ b/var/spack/repos/builtin/packages/bsseeker2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Bsseeker2(Package):
homepage = "http://pellegrini.mcdb.ucla.edu/BS_Seeker2"
url = "https://github.com/BSSeeker/BSseeker2/archive/BSseeker2-v2.1.8.tar.gz"
+ license("MIT")
+
version("2.1.8", sha256="34ebedce36a0fca9e22405d4c2c20bc978439d4a34d1d543657fbc53ff847934")
version(
"2.1.7",
diff --git a/var/spack/repos/builtin/packages/btop/link-dl.patch b/var/spack/repos/builtin/packages/btop/link-dl.patch
new file mode 100644
index 00000000000000..ff4d56949ec3e4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/btop/link-dl.patch
@@ -0,0 +1,12 @@
+--- a/CMakeLists.txt 2024-01-07 15:23:01.000000000 +0100
++++ b/CMakeLists.txt 2024-01-18 10:55:06.245357111 +0100
+@@ -150,6 +150,9 @@
+
+ target_link_libraries(btop ROCm)
+ endif()
++ if(NOT BTOP_STATIC)
++ target_link_libraries(btop ${CMAKE_DL_LIBS})
++ endif()
+ endif()
+
+ if(BTOP_USE_MOLD)
diff --git a/var/spack/repos/builtin/packages/btop/package.py b/var/spack/repos/builtin/packages/btop/package.py
index 75021afed947aa..18d9fea669390a 100644
--- a/var/spack/repos/builtin/packages/btop/package.py
+++ b/var/spack/repos/builtin/packages/btop/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+from spack.build_systems import cmake, makefile
from spack.package import *
-class Btop(MakefilePackage):
+class Btop(MakefilePackage, CMakePackage):
"""Resource monitor that shows usage and stats for processor,
memory, disks, network and processes.
"""
@@ -15,12 +16,29 @@ class Btop(MakefilePackage):
maintainers("alalazo")
+ license("Apache-2.0")
+
+ version("1.3.0", sha256="375e078ce2091969f0cd14030620bd1a94987451cf7a73859127a786006a32cf")
version("1.2.13", sha256="668dc4782432564c35ad0d32748f972248cc5c5448c9009faeb3445282920e02")
- conflicts("%gcc@:9", msg="C++ 20 is required")
+ build_system("makefile", conditional("cmake", when="@1.3.0:"), default="cmake")
+
+ variant("gpu", default=False, description="Enable GPU support", when="build_system=cmake")
+
+ # Fix linking GPU support, by adding an explicit "target_link_libraries" to ${CMAKE_DL_LIBS}
+ patch("link-dl.patch", when="+gpu")
+
+ requires("%gcc@10:", "%clang@16:", policy="one_of", msg="C++ 20 is required")
+
+class MakefileBuilder(makefile.MakefileBuilder):
build_targets = ["STATIC=true", "VERBOSE=true"]
@property
def install_targets(self):
return [f"PREFIX={self.prefix}", "install"]
+
+
+class CMakeBuilder(cmake.CMakeBuilder):
+ def cmake_args(self):
+ return [self.define_from_variant("BTOP_GPU", "gpu")]
diff --git a/var/spack/repos/builtin/packages/bubblewrap/package.py b/var/spack/repos/builtin/packages/bubblewrap/package.py
index e7da5a1cdf8ed2..5925aee4de499c 100644
--- a/var/spack/repos/builtin/packages/bubblewrap/package.py
+++ b/var/spack/repos/builtin/packages/bubblewrap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Bubblewrap(AutotoolsPackage):
)
maintainers("haampie")
+ license("LGPL-2.0-or-later")
+
version("0.8.0", sha256="957ad1149db9033db88e988b12bcebe349a445e1efc8a9b59ad2939a113d333a")
version("0.7.0", sha256="764ab7100bd037ea53d440d362e099d7a425966bc62d1f00ab26b8fbb882a9dc")
version("0.6.2", sha256="8a0ec802d1b3e956c5bb0a40a81c9ce0b055a31bf30a8efa547433603b8af20b")
diff --git a/var/spack/repos/builtin/packages/bucky/package.py b/var/spack/repos/builtin/packages/bucky/package.py
index 601729e82e9679..ab28873ebb936e 100644
--- a/var/spack/repos/builtin/packages/bucky/package.py
+++ b/var/spack/repos/builtin/packages/bucky/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/buddy/package.py b/var/spack/repos/builtin/packages/buddy/package.py
index 243d8a21f19acc..3a9a6982f27a25 100644
--- a/var/spack/repos/builtin/packages/buddy/package.py
+++ b/var/spack/repos/builtin/packages/buddy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bueno/package.py b/var/spack/repos/builtin/packages/bueno/package.py
index 2fbb843251d1a1..f08d719ef8ecf2 100644
--- a/var/spack/repos/builtin/packages/bueno/package.py
+++ b/var/spack/repos/builtin/packages/bueno/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Bueno(PythonPackage):
maintainers("rbberger")
+ license("BSD-3-Clause")
+
version("master", branch="master")
depends_on("python@3.7:", type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/bufr/package.py b/var/spack/repos/builtin/packages/bufr/package.py
index aa7c43229e1d36..cfc9c9d33209cb 100644
--- a/var/spack/repos/builtin/packages/bufr/package.py
+++ b/var/spack/repos/builtin/packages/bufr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/bulker/package.py b/var/spack/repos/builtin/packages/bulker/package.py
index 5e3afd3985eeb7..cefc429629e23e 100644
--- a/var/spack/repos/builtin/packages/bulker/package.py
+++ b/var/spack/repos/builtin/packages/bulker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Bulker(PythonPackage):
homepage = "https://bulker.databio.org/"
pypi = "bulker/bulker-0.7.3.tar.gz"
+ license("BSD-2-Clause")
+
version("0.7.3", sha256="a7a3a97184d50d2247dc3b116f31f90c27435d9872c6845152ff46f5c4e39d50")
depends_on("py-setuptools", type="build")
diff --git a/var/spack/repos/builtin/packages/bump2version/package.py b/var/spack/repos/builtin/packages/bump2version/package.py
index 15094a35b07052..6a58bda6ec86ec 100644
--- a/var/spack/repos/builtin/packages/bump2version/package.py
+++ b/var/spack/repos/builtin/packages/bump2version/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,4 +14,6 @@ class Bump2version(PythonPackage):
depends_on("py-setuptools", type="build")
+ license("MIT")
+
version("1.0.1", sha256="762cb2bfad61f4ec8e2bdf452c7c267416f8c70dd9ecb1653fd0bbb01fa936e6")
diff --git a/var/spack/repos/builtin/packages/bumpversion/package.py b/var/spack/repos/builtin/packages/bumpversion/package.py
index 116c38a451e0ba..3d99571a745fa0 100644
--- a/var/spack/repos/builtin/packages/bumpversion/package.py
+++ b/var/spack/repos/builtin/packages/bumpversion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,6 +11,8 @@ class Bumpversion(PythonPackage):
pypi = "bumpversion/bumpversion-0.5.0.tar.gz"
+ license("MIT")
+
version("0.6.0", sha256="4ba55e4080d373f80177b4dabef146c07ce73c7d1377aabf9d3c3ae1f94584a6")
version("0.5.3", sha256="6744c873dd7aafc24453d8b6a1a0d6d109faf63cd0cd19cb78fd46e74932c77e")
version("0.5.0", sha256="030832b9b46848e1c1ac6678dba8242a021e35e908b65565800c9650291117dc")
diff --git a/var/spack/repos/builtin/packages/busco/package.py b/var/spack/repos/builtin/packages/busco/package.py
index 5f6a6b7cf0e664..608806c15caae1 100644
--- a/var/spack/repos/builtin/packages/busco/package.py
+++ b/var/spack/repos/builtin/packages/busco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Busco(PythonPackage):
git = "https://gitlab.com/ezlab/busco.git"
maintainers("snehring")
+ license("MIT")
+
version("5.4.3", sha256="8b92dcc32691f7c1629aaaa7bd54f96073273ba7de5a3a8586fe552c51a9d36a")
version("4.1.3", sha256="08ded26aeb4f6aef791cd88524c3c00792a054c7672ea05219f468d495e7b072")
diff --git a/var/spack/repos/builtin/packages/busybox/package.py b/var/spack/repos/builtin/packages/busybox/package.py
index a71e28907fae8b..d65a74730c9197 100644
--- a/var/spack/repos/builtin/packages/busybox/package.py
+++ b/var/spack/repos/builtin/packages/busybox/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Busybox(MakefilePackage):
homepage = "https://busybox.net"
url = "https://busybox.net/downloads/busybox-1.31.0.tar.bz2"
+ license("GPL-2.0-only")
+
version("1.36.0", sha256="542750c8af7cb2630e201780b4f99f3dcceeb06f505b479ec68241c1e6af61a5")
version("1.31.1", sha256="d0f940a72f648943c1f2211e0e3117387c31d765137d92bd8284a3fb9752a998")
version("1.31.0", sha256="0e4925392fd9f3743cc517e031b68b012b24a63b0cf6c1ff03cce7bb3846cc99")
diff --git a/var/spack/repos/builtin/packages/butter/package.py b/var/spack/repos/builtin/packages/butter/package.py
index b2d8d8a6facd7b..94a78aa46425f5 100644
--- a/var/spack/repos/builtin/packages/butter/package.py
+++ b/var/spack/repos/builtin/packages/butter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Butter(Package):
homepage = "https://github.com/MikeAxtell/butter"
url = "https://github.com/MikeAxtell/butter/archive/v0.3.3.tar.gz"
+ license("GPL-3.0-only")
+
version("0.3.3", sha256="862cbe06d51fdefca18e5fe4cfa8e4df6ce92686ccbc389affe05b199ea9243b")
depends_on("perl", type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/butterflypack/package.py b/var/spack/repos/builtin/packages/butterflypack/package.py
index 746fa32082d894..048b0a02431eca 100644
--- a/var/spack/repos/builtin/packages/butterflypack/package.py
+++ b/var/spack/repos/builtin/packages/butterflypack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -27,6 +27,8 @@ class Butterflypack(CMakePackage):
url = "https://github.com/liuyangzhuan/ButterflyPACK/archive/v2.2.0.tar.gz"
maintainers("liuyangzhuan")
+ license("BSD-3-Clause-LBNL")
+
version("master", branch="master")
version("2.4.0", sha256="12d04e7101b2c8292b5c62d9f42b5cd1e8a3c5af639d2665596e3e4255fd0804")
version("2.2.2", sha256="73f67073e4291877f1eee19483a8a7b3c761eaf79a75805d52105ceedead85ea")
diff --git a/var/spack/repos/builtin/packages/bwa/package.py b/var/spack/repos/builtin/packages/bwa/package.py
index 49e7f40269b69f..ad003282995649 100644
--- a/var/spack/repos/builtin/packages/bwa/package.py
+++ b/var/spack/repos/builtin/packages/bwa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Bwa(Package):
homepage = "https://github.com/lh3/bwa"
url = "https://github.com/lh3/bwa/releases/download/v0.7.15/bwa-0.7.15.tar.bz2"
+ license("GPL-3.0-only")
+
version("0.7.17", sha256="de1b4d4e745c0b7fc3e107b5155a51ac063011d33a5d82696331ecf4bed8d0fd")
version("0.7.15", sha256="2f56afefa49acc9bf45f12edb58e412565086cc20be098b8bf15ec07de8c0515")
version("0.7.13", sha256="559b3c63266e5d5351f7665268263dbb9592f3c1c4569e7a4a75a15f17f0aedc")
diff --git a/var/spack/repos/builtin/packages/bwtool/package.py b/var/spack/repos/builtin/packages/bwtool/package.py
index 16ec70d0655607..a966b41a34a33b 100644
--- a/var/spack/repos/builtin/packages/bwtool/package.py
+++ b/var/spack/repos/builtin/packages/bwtool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/byacc/package.py b/var/spack/repos/builtin/packages/byacc/package.py
index 5d82e2b5ac8365..3499a9db6d1016 100644
--- a/var/spack/repos/builtin/packages/byacc/package.py
+++ b/var/spack/repos/builtin/packages/byacc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Byacc(AutotoolsPackage):
homepage = "https://invisible-island.net/byacc/byacc.html"
url = "ftp://ftp.invisible-island.net/pub/byacc/byacc-20210808.tgz"
+ license("Public-Domain")
+
# Check FTP directory ftp://ftp.invisible-island.net/byacc/ to find the latest version
version("20210808", sha256="f158529be9d0594263c7f11a87616a49ea23e55ac63691252a2304fbbc7d3a83")
diff --git a/var/spack/repos/builtin/packages/byobu/package.py b/var/spack/repos/builtin/packages/byobu/package.py
index 5383042722390d..8fecfdcfb7c616 100644
--- a/var/spack/repos/builtin/packages/byobu/package.py
+++ b/var/spack/repos/builtin/packages/byobu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Byobu(AutotoolsPackage):
maintainers("matthiasdiener")
+ license("GPL-3.0-or-later")
+
version("5.131", sha256="77ac751ae79d8e3f0377ac64b64bc9738fa68d68466b8d2ff652b63b1d985e52")
version("5.127", sha256="4bafc7cb69ff5b0ab6998816d58cd1ef7175e5de75abc1dd7ffd6d5288a4f63b")
version("5.125", sha256="5022c82705a5d57f1d4e8dcb1819fd04628af2d4b4618b7d44fa27ebfcdda9db")
diff --git a/var/spack/repos/builtin/packages/byte-unixbench/package.py b/var/spack/repos/builtin/packages/byte-unixbench/package.py
index 6cd3ec223bd6ec..f9332bf853cae3 100644
--- a/var/spack/repos/builtin/packages/byte-unixbench/package.py
+++ b/var/spack/repos/builtin/packages/byte-unixbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/byteman/package.py b/var/spack/repos/builtin/packages/byteman/package.py
index a36e26e1991c31..eed7dba2de0be6 100644
--- a/var/spack/repos/builtin/packages/byteman/package.py
+++ b/var/spack/repos/builtin/packages/byteman/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Byteman(MavenPackage):
homepage = "https://www.jboss.org/byteman"
url = "https://github.com/bytemanproject/byteman/archive/4.0.12.tar.gz"
+ license("BSD-3-Clause")
+
version("4.0.12", sha256="72fdc904d7b8df9e743fbb5ae84e51ffc81d32b6e0b0b80fc7ac165dd8c9c7c2")
version("4.0.11", sha256="8e4af6019702c8b22f354962f35f197f9ba2c8699235aac77ebd9263ac12261b")
version("4.0.10", sha256="1b3c9e66fc3f230e407904db1ac43eb5cd4c33620f0d0f9f6c0cb23e4d28784e")
diff --git a/var/spack/repos/builtin/packages/bzip2/package.py b/var/spack/repos/builtin/packages/bzip2/package.py
index 58f598ac15286d..e9d56f124f49da 100644
--- a/var/spack/repos/builtin/packages/bzip2/package.py
+++ b/var/spack/repos/builtin/packages/bzip2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -22,6 +22,8 @@ class Bzip2(Package, SourcewarePackage):
executables = [r"^bzip2$"]
tags = ["windows"]
+ license("bzip2-1.0.6")
+
version("1.0.8", sha256="ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269")
version("1.0.7", sha256="e768a87c5b1a79511499beb41500bcc4caf203726fff46a6f5f9ad27fe08ab2b")
version("1.0.6", sha256="a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd")
@@ -44,6 +46,10 @@ class Bzip2(Package, SourcewarePackage):
if sys.platform != "win32":
depends_on("diffutils", type="build")
+ depends_on("gmake", type="build", when="platform=linux")
+ depends_on("gmake", type="build", when="platform=cray")
+ depends_on("gmake", type="build", when="platform=darwin")
+
@classmethod
def determine_version(cls, exe):
output = Executable(exe)("--help", output=str, error=str)
diff --git a/var/spack/repos/builtin/packages/c-ares/package.py b/var/spack/repos/builtin/packages/c-ares/package.py
index f65fff2dacc1bd..ec3d832848db3b 100644
--- a/var/spack/repos/builtin/packages/c-ares/package.py
+++ b/var/spack/repos/builtin/packages/c-ares/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class CAres(CMakePackage):
url = "https://github.com/c-ares/c-ares/archive/cares-1_15_0.tar.gz"
git = "https://github.com/c-ares/c-ares.git"
+ license("MIT")
+
version("master", branch="master")
version("1.15.0", sha256="7deb7872cbd876c29036d5f37e30c4cbc3cc068d59d8b749ef85bb0736649f04")
version("1.13.0", sha256="7c48c57706a38691041920e705d2a04426ad9c68d40edd600685323f214b2d57")
diff --git a/var/spack/repos/builtin/packages/c-blosc/package.py b/var/spack/repos/builtin/packages/c-blosc/package.py
index 31de7ef7ae35b1..ba6381f31786d6 100644
--- a/var/spack/repos/builtin/packages/c-blosc/package.py
+++ b/var/spack/repos/builtin/packages/c-blosc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class CBlosc(CMakePackage):
homepage = "https://www.blosc.org"
url = "https://github.com/Blosc/c-blosc/archive/v1.11.1.tar.gz"
+ license("BSD-3-Clause")
+
version("1.21.5", sha256="32e61961bbf81ffea6ff30e9d70fca36c86178afd3e3cfa13376adec8c687509")
version("1.21.4", sha256="e72bd03827b8564bbb3dc3ea0d0e689b4863871ce3861d946f2efd7a186ecf3e")
version("1.21.2", sha256="e5b4ddb4403cbbad7aab6e9ff55762ef298729c8a793c6147160c771959ea2aa")
diff --git a/var/spack/repos/builtin/packages/c-blosc2/package.py b/var/spack/repos/builtin/packages/c-blosc2/package.py
index 4b745f426f1093..b90382cc120321 100644
--- a/var/spack/repos/builtin/packages/c-blosc2/package.py
+++ b/var/spack/repos/builtin/packages/c-blosc2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class CBlosc2(CMakePackage):
maintainers("ax3l", "robert-mijakovic")
+ license("BSD-3-Clause")
+
version("develop", branch="master")
version("2.11.1", sha256="1e9923e0f026eb6e6caee608b4b9a523837806076fc79409055a6386cf5de1ea")
version("2.10.5", sha256="a88f94bf839c1371aab8207a6a43698ceb92c72f65d0d7fe5b6e59f24c138b4d")
diff --git a/var/spack/repos/builtin/packages/c-lime/package.py b/var/spack/repos/builtin/packages/c-lime/package.py
index 058f809388de16..b4b2ee31ada224 100644
--- a/var/spack/repos/builtin/packages/c-lime/package.py
+++ b/var/spack/repos/builtin/packages/c-lime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,4 +15,6 @@ class CLime(AutotoolsPackage):
homepage = "https://usqcd-software.github.io/c-lime/"
url = "https://github.com/usqcd-software/c-lime/archive/qio2-3-9.tar.gz"
+ license("GPL-2.0-or-later")
+
version("2-3-9", sha256="7b9aeadd4dfec50e24da3e7e729f56abf95c9192612c41515fe27b2158773aac")
diff --git a/var/spack/repos/builtin/packages/c-raft/package.py b/var/spack/repos/builtin/packages/c-raft/package.py
index dcb22d1a6518bb..4e4480ba9c79c9 100644
--- a/var/spack/repos/builtin/packages/c-raft/package.py
+++ b/var/spack/repos/builtin/packages/c-raft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/c/package.py b/var/spack/repos/builtin/packages/c/package.py
index b44acfbc67a56b..d36fbd9ffe047c 100644
--- a/var/spack/repos/builtin/packages/c/package.py
+++ b/var/spack/repos/builtin/packages/c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/c3d/package.py b/var/spack/repos/builtin/packages/c3d/package.py
index d7f55d47d12fdc..ab4b2872ec8252 100644
--- a/var/spack/repos/builtin/packages/c3d/package.py
+++ b/var/spack/repos/builtin/packages/c3d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class C3d(CMakePackage):
git = "https://github.com/pyushkevich/c3d.git"
url = "https://github.com/pyushkevich/c3d/archive/refs/tags/v1.3.0.tar.gz"
+ license("GPL-3.0-or-later")
+
version("1.3.0", sha256="bd45482247fa4ac5ab98b3a775b5438390671e3e224a42f73967904b3895050d")
depends_on("itk")
diff --git a/var/spack/repos/builtin/packages/ca-certificates-mozilla/package.py b/var/spack/repos/builtin/packages/ca-certificates-mozilla/package.py
index 8bc297fc91f422..2931508d84c787 100644
--- a/var/spack/repos/builtin/packages/ca-certificates-mozilla/package.py
+++ b/var/spack/repos/builtin/packages/ca-certificates-mozilla/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cabana/package.py b/var/spack/repos/builtin/packages/cabana/package.py
index ae4d4e9fca35aa..2327939bbbe7ff 100644
--- a/var/spack/repos/builtin/packages/cabana/package.py
+++ b/var/spack/repos/builtin/packages/cabana/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cachefilesd/package.py b/var/spack/repos/builtin/packages/cachefilesd/package.py
index 2e90c690c82536..d92ae8d6803936 100644
--- a/var/spack/repos/builtin/packages/cachefilesd/package.py
+++ b/var/spack/repos/builtin/packages/cachefilesd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/caffe/package.py b/var/spack/repos/builtin/packages/caffe/package.py
index b374931a84c802..5103368b1fa848 100644
--- a/var/spack/repos/builtin/packages/caffe/package.py
+++ b/var/spack/repos/builtin/packages/caffe/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Caffe(CMakePackage, CudaPackage):
homepage = "https://caffe.berkeleyvision.org"
url = "https://github.com/BVLC/caffe/archive/1.0.tar.gz"
+ license("BSD-2-Clause")
+
version("1.0", sha256="71d3c9eb8a183150f965a465824d01fe82826c22505f7aa314f700ace03fa77f")
version("rc5", sha256="06592aa8f5254335df3e244dafacc15765e2c60479b4bf2e7c887e8e023802fb")
version("rc4", sha256="018792411d75ee34b6107216550cca2a1d668d45cb366033ba3c647e6a3018df")
diff --git a/var/spack/repos/builtin/packages/cairo/package.py b/var/spack/repos/builtin/packages/cairo/package.py
index 530b4d49042d2c..e38fa1ff1b7e10 100644
--- a/var/spack/repos/builtin/packages/cairo/package.py
+++ b/var/spack/repos/builtin/packages/cairo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Cairo(AutotoolsPackage):
homepage = "https://www.cairographics.org/"
url = "https://www.cairographics.org/releases/cairo-1.16.0.tar.xz"
+ license("LGPL-2.1-or-later OR MPL-1.1", checked_by="tgamblin")
+
version(
"1.17.4",
sha256="74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705",
diff --git a/var/spack/repos/builtin/packages/cairomm/package.py b/var/spack/repos/builtin/packages/cairomm/package.py
index bdeabc9ecc091c..8812da63e61e58 100644
--- a/var/spack/repos/builtin/packages/cairomm/package.py
+++ b/var/spack/repos/builtin/packages/cairomm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Cairomm(AutotoolsPackage):
homepage = "https://www.cairographics.org/cairomm/"
url = "https://cairographics.org/releases/cairomm-1.6.4.tar.gz"
+ license("LGPL-2.0-or-later AND MPL-1.1")
+
version("1.6.4", sha256="3cb2c898d0ceb94ad2deb722b50a3a6ee46abdda741ecd6e5a40517c85ecea4c")
version("1.6.2", sha256="068edc1743d92ff1d102141ba7597ba02a47379f9cb97799b0c3310848b56eff")
diff --git a/var/spack/repos/builtin/packages/caliper/package.py b/var/spack/repos/builtin/packages/caliper/package.py
index 66bd9cc84cd0ad..f1ae9a92ccb96d 100644
--- a/var/spack/repos/builtin/packages/caliper/package.py
+++ b/var/spack/repos/builtin/packages/caliper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -25,6 +25,8 @@ class Caliper(CMakePackage, CudaPackage, ROCmPackage):
test_requires_compiler = True
+ license("BSD-3-Clause")
+
version("master", branch="master")
version("2.10.0", sha256="14c4fb5edd5e67808d581523b4f8f05ace8549698c0e90d84b53171a77f58565")
version("2.9.1", sha256="4771d630de505eff9227e0ec498d0da33ae6f9c34df23cb201b56181b8759e9e")
@@ -127,7 +129,6 @@ def cmake_args(self):
spec = self.spec
args = [
- ("-DPYTHON_EXECUTABLE=%s" % spec["python"].command.path),
"-DBUILD_TESTING=Off",
"-DBUILD_DOCS=Off",
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
diff --git a/var/spack/repos/builtin/packages/callflow/package.py b/var/spack/repos/builtin/packages/callflow/package.py
index 3c4d70f059b8e9..52fe1e4ef39002 100644
--- a/var/spack/repos/builtin/packages/callflow/package.py
+++ b/var/spack/repos/builtin/packages/callflow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Callflow(PythonPackage):
maintainers("bhatiaharsh", "jarusified")
+ license("MIT")
+
version("develop", branch="develop")
version("1.1.2", sha256="60d2327843469f42be9366ff31d7a6afc85021af4e38b7d6704b2d8c3da7ed36")
version("1.1.1", sha256="a52e6e0697a406dfe391225d3cc3c5c5a12a6c86b68f0f8e47777c79fd45cb28")
diff --git a/var/spack/repos/builtin/packages/callpath/package.py b/var/spack/repos/builtin/packages/callpath/package.py
index f35eb8e8b5932f..29566c512f3f64 100644
--- a/var/spack/repos/builtin/packages/callpath/package.py
+++ b/var/spack/repos/builtin/packages/callpath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/camellia/package.py b/var/spack/repos/builtin/packages/camellia/package.py
index 85ce4b118c2d11..e9a80de93bc11a 100644
--- a/var/spack/repos/builtin/packages/camellia/package.py
+++ b/var/spack/repos/builtin/packages/camellia/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/camp/gcc-13-missing-header.patch b/var/spack/repos/builtin/packages/camp/gcc-13-missing-header.patch
new file mode 100644
index 00000000000000..d3c642abe6c5fa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/camp/gcc-13-missing-header.patch
@@ -0,0 +1,24 @@
+diff --git a/include/camp/resource.hpp b/include/camp/resource.hpp
+index 58df206..763aa20 100644
+--- a/include/camp/resource.hpp
++++ b/include/camp/resource.hpp
+@@ -12,6 +12,7 @@ http://github.com/llnl/camp
+ #define __CAMP_RESOURCE_HPP
+
+ #include
++#include
+ #include
+ #include
+ #include
+diff --git a/include/camp/resource/host.hpp b/include/camp/resource/host.hpp
+index c765175..4428c57 100644
+--- a/include/camp/resource/host.hpp
++++ b/include/camp/resource/host.hpp
+@@ -13,6 +13,7 @@ http://github.com/llnl/camp
+
+ #include "camp/resource/event.hpp"
+ #include "camp/resource/platform.hpp"
++#include
+
+ namespace camp
+ {
diff --git a/var/spack/repos/builtin/packages/camp/package.py b/var/spack/repos/builtin/packages/camp/package.py
index a1bdc830d36eab..ec2f741173ab0c 100644
--- a/var/spack/repos/builtin/packages/camp/package.py
+++ b/var/spack/repos/builtin/packages/camp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -38,6 +38,8 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage):
maintainers("trws")
+ license("BSD-3-Clause")
+
version("main", branch="main", submodules="True")
version("2022.10.1", sha256="2d12f1a46f5a6d01880fc075cfbd332e2cf296816a7c1aa12d4ee5644d386f02")
version("2022.03.2", sha256="bc4aaeacfe8f2912e28f7a36fc731ab9e481bee15f2c6daf0cb208eed3f201eb")
@@ -55,6 +57,8 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage):
depends_on("blt", type="build")
+ patch("gcc-13-missing-header.patch", when="@:2022.10 %gcc@13:")
+
conflicts("^blt@:0.3.6", when="+rocm")
def cmake_args(self):
diff --git a/var/spack/repos/builtin/packages/camx/package.py b/var/spack/repos/builtin/packages/camx/package.py
index ebc95911561b75..92b995dd736df5 100644
--- a/var/spack/repos/builtin/packages/camx/package.py
+++ b/var/spack/repos/builtin/packages/camx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/canal/package.py b/var/spack/repos/builtin/packages/canal/package.py
index c540e024b50425..c3e9bab96a7fab 100644
--- a/var/spack/repos/builtin/packages/canal/package.py
+++ b/var/spack/repos/builtin/packages/canal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Canal(MavenPackage):
homepage = "https://github.com/alibaba/canal/wiki"
url = "https://github.com/alibaba/canal/archive/canal-1.1.4.tar.gz"
+ license("Apache-2.0")
+
version("1.1.6", sha256="2dd0997a69811a464e3d963e444760696931beb9326726b0064ad42f8a00c71b")
version("1.1.4", sha256="740e0adac56d7f281cba21eca173eef3e8d42aa3e0fb49709f92cb6a1451dfbc")
version("1.1.3", sha256="3fe75ca5eb5cb97eb35818426c1427542ccddb0de052cf154e948ef321822cbc")
diff --git a/var/spack/repos/builtin/packages/candle-benchmarks/package.py b/var/spack/repos/builtin/packages/candle-benchmarks/package.py
index 388eeba853af2a..87ebe30b18e4ee 100644
--- a/var/spack/repos/builtin/packages/candle-benchmarks/package.py
+++ b/var/spack/repos/builtin/packages/candle-benchmarks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class CandleBenchmarks(Package):
tags = ["proxy-app", "ecp-proxy-app"]
+ license("MIT")
+
version("0.1", sha256="767f74f43ee3a5d4e0f26750f2a96b8433e25a9cd4f2d29938ac8acf263ab58d")
version("0.0", sha256="faa0d24355071de0e375d72ed1a39dcf30006602210cf8cf09db568b5d0b679f")
diff --git a/var/spack/repos/builtin/packages/cans/package.py b/var/spack/repos/builtin/packages/cans/package.py
index 6d561493aee2fd..8827ff9d6a87ea 100644
--- a/var/spack/repos/builtin/packages/cans/package.py
+++ b/var/spack/repos/builtin/packages/cans/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Cans(MakefilePackage):
maintainers("lhxone", "p-costa", "nscapin", "GabrieleBoga")
+ license("MIT")
+
version("1.1.4", sha256="8334c67810472edc18d5403a0bcb27fd57a620722c1e8c317518db4506867b81")
version("1.1.3", sha256="01fa42e51ddcf6161fb63a124a0f2218c67f85ff4cc5236b995a5650d85e7615")
version("1.1.2", sha256="31c8d6c1f619fb60b7919922c7a3a64dd614a1a2f89f38560184f75ed0526171")
diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py
index 09ee90e6274729..efb9d7fcbe225d 100644
--- a/var/spack/repos/builtin/packages/cantera/package.py
+++ b/var/spack/repos/builtin/packages/cantera/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/canu/package.py b/var/spack/repos/builtin/packages/canu/package.py
index 2f138736b9a7bf..75094e70f0de8f 100644
--- a/var/spack/repos/builtin/packages/canu/package.py
+++ b/var/spack/repos/builtin/packages/canu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Canu(MakefilePackage):
homepage = "https://canu.readthedocs.io/"
url = "https://github.com/marbl/canu/archive/v1.5.tar.gz"
+ license("GPL-2.0-only")
+
version(
"2.2",
sha256="e4d0c7b82149114f442ccd39e18f7fe2061c63b28d53700ad896e022b73b7404",
diff --git a/var/spack/repos/builtin/packages/cap3/package.py b/var/spack/repos/builtin/packages/cap3/package.py
index 35e8261360af42..d9f6f0698f3e7f 100644
--- a/var/spack/repos/builtin/packages/cap3/package.py
+++ b/var/spack/repos/builtin/packages/cap3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/capnproto/package.py b/var/spack/repos/builtin/packages/capnproto/package.py
index cec409eed9c5f9..8552fbd9b4f5c5 100644
--- a/var/spack/repos/builtin/packages/capnproto/package.py
+++ b/var/spack/repos/builtin/packages/capnproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Capnproto(AutotoolsPackage):
maintainers("alexrobomind")
+ license("MIT")
+
version("master", branch="master")
version("0.10.2", sha256="756262841fa66260c9969e900701cc86720c2548584fb96c8153348fd7edfe69")
diff --git a/var/spack/repos/builtin/packages/capstone/package.py b/var/spack/repos/builtin/packages/capstone/package.py
index 0ed097d0622895..cfb392da1b220f 100644
--- a/var/spack/repos/builtin/packages/capstone/package.py
+++ b/var/spack/repos/builtin/packages/capstone/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Capstone(CMakePackage):
url = "https://github.com/capstone-engine/capstone/archive/4.0.1.tar.gz"
git = "https://github.com/capstone-engine/capstone.git"
+ license("BSD-3-Clause-Clear")
+
version("next", branch="next")
version("4.0.2", sha256="7c81d798022f81e7507f1a60d6817f63aa76e489aa4e7055255f21a22f5e526a")
version("4.0.1", sha256="79bbea8dbe466bd7d051e037db5961fdb34f67c9fac5c3471dd105cfb1e05dc7")
diff --git a/var/spack/repos/builtin/packages/cardioid/package.py b/var/spack/repos/builtin/packages/cardioid/package.py
index 1cff449740f670..f14aa1c9c4d55f 100644
--- a/var/spack/repos/builtin/packages/cardioid/package.py
+++ b/var/spack/repos/builtin/packages/cardioid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Cardioid(CMakePackage):
git = "https://github.com/LLNL/cardioid.git"
maintainers("rblake-llnl")
+ license("MIT")
+
version("develop", branch="master")
version("elecfem", branch="elec-fem")
diff --git a/var/spack/repos/builtin/packages/care/package.py b/var/spack/repos/builtin/packages/care/package.py
index 683b480088e25a..01b11ed3ac0e97 100644
--- a/var/spack/repos/builtin/packages/care/package.py
+++ b/var/spack/repos/builtin/packages/care/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Care(CMakePackage, CudaPackage, ROCmPackage):
git = "https://github.com/LLNL/CARE.git"
tags = ["radiuss"]
+ license("GPL-2.0-or-later")
+
version("develop", branch="develop", submodules="True")
version("master", branch="main", submodules="True")
version(
diff --git a/var/spack/repos/builtin/packages/cargs/package.py b/var/spack/repos/builtin/packages/cargs/package.py
index e14ef71151e19d..abd30b1d92e49e 100644
--- a/var/spack/repos/builtin/packages/cargs/package.py
+++ b/var/spack/repos/builtin/packages/cargs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Cargs(CMakePackage):
url = "https://github.com/likle/cargs/archive/refs/tags/v1.0.3.tar.gz"
git = "https://github.com/likle/cargs.git"
+ license("MIT")
+
version("1.0.3", sha256="ddba25bd35e9c6c75bc706c126001b8ce8e084d40ef37050e6aa6963e836eb8b")
depends_on("cmake@3.14.7:", type=("build"))
diff --git a/var/spack/repos/builtin/packages/casacore/package.py b/var/spack/repos/builtin/packages/casacore/package.py
index 731288afd71612..870146b258a69e 100644
--- a/var/spack/repos/builtin/packages/casacore/package.py
+++ b/var/spack/repos/builtin/packages/casacore/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Casacore(CMakePackage):
maintainers("mpokorny")
+ license("LGPL-2.0-only")
+
version("3.5.0", sha256="63f1c8eff932b0fcbd38c598a5811e6e5397b72835b637d6f426105a183b3f91")
version("3.4.0", sha256="31f02ad2e26f29bab4a47a2a69e049d7bc511084a0b8263360e6157356f92ae1")
version("3.3.0", sha256="3a714644b908ef6e81489b792cc9b80f6d8267a275e15d38a42a6a5137d39d3d")
diff --git a/var/spack/repos/builtin/packages/cask/package.py b/var/spack/repos/builtin/packages/cask/package.py
index a1a8f9df0fcaf0..2133fc26ae1039 100644
--- a/var/spack/repos/builtin/packages/cask/package.py
+++ b/var/spack/repos/builtin/packages/cask/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Cask(Package):
homepage = "https://cask.readthedocs.io/en/latest/"
url = "https://github.com/cask/cask/archive/v0.7.4.tar.gz"
+ license("GPL-3.0-only")
+
version("0.8.1", sha256="8739ba608f23c79b3426faa8b068d5d1bc096c7305ce30b1163babd354be821c")
# version 0.8.0 is broken
version("0.7.4", sha256="b183ea1c50fc215c9040f402b758ecc335901fbc2c3afd4a7302386c888d437d")
diff --git a/var/spack/repos/builtin/packages/casper/package.py b/var/spack/repos/builtin/packages/casper/package.py
index 19473501a19b86..ff4c4e7f129183 100644
--- a/var/spack/repos/builtin/packages/casper/package.py
+++ b/var/spack/repos/builtin/packages/casper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cassandra/package.py b/var/spack/repos/builtin/packages/cassandra/package.py
index a5fe38e5175f40..36f89c148d8b91 100644
--- a/var/spack/repos/builtin/packages/cassandra/package.py
+++ b/var/spack/repos/builtin/packages/cassandra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Cassandra(Package):
homepage = "https://github.com/apache/cassandra"
url = "https://archive.apache.org/dist/cassandra/4.0.1/apache-cassandra-4.0.1-bin.tar.gz"
+ license("Apache-2.0")
+
version("4.0.1", sha256="ed7022e30d9b77d9ce1072f8de95ab01ef7c5c6ed30f304e413dd5a3f92a52f8")
version("3.11.11", sha256="a5639af781005410995a96f512d505c1def7b70cf5bbbec52e7cd5ff31b6cea3")
version(
diff --git a/var/spack/repos/builtin/packages/catalyst/package.py b/var/spack/repos/builtin/packages/catalyst/package.py
deleted file mode 100644
index a513f2ee13fae1..00000000000000
--- a/var/spack/repos/builtin/packages/catalyst/package.py
+++ /dev/null
@@ -1,208 +0,0 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
-# Spack Project Developers. See the top-level COPYRIGHT file for details.
-#
-# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
-import os
-import subprocess
-import sys
-
-import llnl.util.tty as tty
-
-from spack.package import *
-
-
-class Catalyst(CMakePackage):
- """Catalyst is an in situ library, with an adaptable application
- programming interface (API), that orchestrates the alliance
- between simulation and analysis and/or visualization tasks. For
- versions 5.7 and greater use the paraview package.
-
- """
-
- homepage = "http://www.paraview.org"
- url = "https://www.paraview.org/files/v5.6/ParaView-v5.6.0.tar.xz"
-
- maintainers("danlipsa")
-
- version("5.6.0", sha256="5b49cb96ab78eee0427e25200530ac892f9a3da7725109ce1790f8010cb5b377")
-
- variant("python", default=False, description="Enable Python support")
- variant("essentials", default=False, description="Enable Essentials support")
- variant("extras", default=False, description="Enable Extras support. Implies Essentials.")
- variant(
- "rendering",
- default=True,
- description="Enable Rendering support. Implies Extras and Essentials.",
- )
- variant("osmesa", default=True, description="Use offscreen rendering")
- conflicts("+osmesa", when="~rendering")
-
- extends("python", when="+python")
- # VTK < 8.2.1 can't handle Python 3.8
- # This affects Paraview <= 5.7 (VTK 8.2.0)
- # https://gitlab.kitware.com/vtk/vtk/-/issues/17670
- depends_on("python@3:3.7", when="@:5.7 +python", type=("build", "run"))
- depends_on("python@3:", when="@5.8:+python", type=("build", "run"))
-
- depends_on("git", type="build")
- depends_on("mpi")
-
- depends_on("py-numpy", when="+python", type=("build", "run"))
- depends_on("py-mpi4py", when="+python", type=("build", "run"))
-
- depends_on("gl@3.2:", when="+rendering")
- depends_on("osmesa", when="+osmesa")
- depends_on("glx", when="~osmesa")
- depends_on("cmake@3.3:", type="build")
-
- @property
- def paraview_subdir(self):
- """The paraview subdirectory name as paraview-major.minor"""
- return "paraview-{0}".format(self.spec.version.up_to(2))
-
- @property
- def editions(self):
- """Transcribe spack variants into names of Catalyst Editions"""
- selected = ["Base"] # Always required
-
- if "+python" in self.spec:
- selected.append("Enable-Python")
-
- if "+essentials" in self.spec:
- selected.append("Essentials")
-
- if "+extras" in self.spec:
- selected.append("Essentials")
- selected.append("Extras")
-
- if "+rendering" in self.spec:
- selected.append("Essentials")
- selected.append("Extras")
- selected.append("Rendering-Base")
-
- return selected
-
- def do_stage(self, mirror_only=False):
- """Unpacks and expands the fetched tarball.
- Then, generate the catalyst source files."""
- super().do_stage(mirror_only)
-
- # extract the catalyst part
- catalyst_script = os.path.join(self.stage.source_path, "Catalyst", "catalyze.py")
- editions_dir = os.path.join(self.stage.source_path, "Catalyst", "Editions")
- catalyst_source_dir = os.path.abspath(self.root_cmakelists_dir)
-
- python_path = os.path.realpath(
- self.spec["python"].command.path if "+python" in self.spec else sys.executable
- )
-
- command = [
- python_path,
- catalyst_script,
- "-r",
- self.stage.source_path,
- "-o",
- catalyst_source_dir,
- ]
-
- for edition in self.editions:
- command.extend(["-i", os.path.join(editions_dir, edition)])
-
- if not os.path.isdir(catalyst_source_dir):
- os.mkdir(catalyst_source_dir)
- subprocess.check_call(command)
- tty.msg("Generated catalyst source in %s" % self.stage.source_path)
- else:
- tty.msg("Already generated %s in %s" % (self.name, self.stage.source_path))
-
- def setup_run_environment(self, env):
- # paraview 5.5 and later
- # - cmake under lib/cmake/paraview-5.5
- # - libs under lib
- # - python bits under lib/python2.8/site-packages
- if os.path.isdir(self.prefix.lib64):
- lib_dir = self.prefix.lib64
- else:
- lib_dir = self.prefix.lib
-
- env.set("ParaView_DIR", self.prefix)
- env.prepend_path("LIBRARY_PATH", lib_dir)
- env.prepend_path("LD_LIBRARY_PATH", lib_dir)
-
- if "+python" in self.spec:
- python_version = self.spec["python"].version.up_to(2)
- env.prepend_path(
- "PYTHONPATH",
- join_path(lib_dir, "python{0}".format(python_version), "site-packages"),
- )
-
- def setup_dependent_build_environment(self, env, dependent_spec):
- env.set("ParaView_DIR", self.prefix)
-
- @property
- def root_cmakelists_dir(self):
- """The relative path to the directory containing CMakeLists.txt
-
- This path is relative to the root of the extracted tarball,
- not to the ``build_directory``. Defaults to the current directory.
-
- :return: directory containing CMakeLists.txt
- """
- return os.path.join(self.stage.source_path, "Catalyst-v" + str(self.version))
-
- @property
- def build_directory(self):
- """Returns the directory to use when building the package
-
- :return: directory where to build the package
- """
- return join_path(os.path.abspath(self.root_cmakelists_dir), "spack-build")
-
- def cmake_args(self):
- """Populate cmake arguments for Catalyst."""
- spec = self.spec
-
- def variant_bool(feature, on="ON", off="OFF"):
- """Ternary for spec variant to ON/OFF string"""
- if feature in spec:
- return on
- return off
-
- def nvariant_bool(feature):
- """Negated ternary for spec variant to OFF/ON string"""
- return variant_bool(feature, on="OFF", off="ON")
-
- cmake_args = [
- "-DPARAVIEW_GIT_DESCRIBE=v%s" % str(self.version),
- "-DVTK_USE_SYSTEM_EXPAT:BOOL=ON",
- "-DVTK_USE_X:BOOL=%s" % nvariant_bool("+osmesa"),
- "-DVTK_USE_OFFSCREEN:BOOL=%s" % variant_bool("+osmesa"),
- "-DVTK_OPENGL_HAS_OSMESA:BOOL=%s" % variant_bool("+osmesa"),
- ]
- if "+python" in spec:
- cmake_args.extend(
- [
- "-DPARAVIEW_ENABLE_PYTHON:BOOL=ON",
- "-DPYTHON_EXECUTABLE:FILEPATH=%s" % spec["python"].command.path,
- "-DVTK_USE_SYSTEM_MPI4PY:BOOL=ON",
- ]
- )
- else:
- cmake_args.append("-DPARAVIEW_ENABLE_PYTHON:BOOL=OFF")
-
- if spec.platform == "linux" and spec.target.family == "aarch64":
- cmake_args.append("-DCMAKE_CXX_FLAGS=-DPNG_ARM_NEON_OPT=0")
- cmake_args.append("-DCMAKE_C_FLAGS=-DPNG_ARM_NEON_OPT=0")
-
- return cmake_args
-
- def cmake(self, spec, prefix):
- """Runs ``cmake`` in the build directory through the cmake.sh script"""
- cmake_script_path = os.path.join(os.path.abspath(self.root_cmakelists_dir), "cmake.sh")
- with working_dir(self.build_directory, create=True):
- subprocess.check_call(
- [cmake_script_path, os.path.abspath(self.root_cmakelists_dir)]
- + self.cmake_args()
- + self.std_cmake_args
- )
diff --git a/var/spack/repos/builtin/packages/catalyst/vtkm-catalyst-pv551.patch b/var/spack/repos/builtin/packages/catalyst/vtkm-catalyst-pv551.patch
deleted file mode 100644
index fa610722af0af1..00000000000000
--- a/var/spack/repos/builtin/packages/catalyst/vtkm-catalyst-pv551.patch
+++ /dev/null
@@ -1,487 +0,0 @@
-# The catalyst changes (the working directory for output) are slated for
-# paraview-5.6.
-# They are API-compatible with paraview-5.5 but not ABI compatible.
-#
-# https://gitlab.kitware.com/paraview/paraview/merge_requests/2433
-# https://gitlab.kitware.com/paraview/paraview/merge_requests/2436
-#
---- Catalyst-v5.5.0/CoProcessing/Catalyst/vtkCPProcessor.cxx.orig 2018-04-06 22:03:33.000000000 +0200
-+++ Catalyst-v5.5.0/CoProcessing/Catalyst/vtkCPProcessor.cxx 2018-05-11 12:02:26.894772713 +0200
-@@ -38,6 +38,7 @@
- #include "vtkStringArray.h"
-
- #include
-+#include
-
- struct vtkCPProcessorInternals
- {
-@@ -47,12 +48,13 @@
- };
-
- vtkStandardNewMacro(vtkCPProcessor);
--vtkMultiProcessController* vtkCPProcessor::Controller = NULL;
-+vtkMultiProcessController* vtkCPProcessor::Controller = nullptr;
- //----------------------------------------------------------------------------
- vtkCPProcessor::vtkCPProcessor()
- {
- this->Internal = new vtkCPProcessorInternals;
-- this->InitializationHelper = NULL;
-+ this->InitializationHelper = nullptr;
-+ this->WorkingDirectory = nullptr;
- }
-
- //----------------------------------------------------------------------------
-@@ -61,14 +63,15 @@
- if (this->Internal)
- {
- delete this->Internal;
-- this->Internal = NULL;
-+ this->Internal = nullptr;
- }
-
- if (this->InitializationHelper)
- {
- this->InitializationHelper->Delete();
-- this->InitializationHelper = NULL;
-+ this->InitializationHelper = nullptr;
- }
-+ this->SetWorkingDirectory(nullptr);
- }
-
- //----------------------------------------------------------------------------
-@@ -95,7 +98,7 @@
- {
- if (which < 0 || which >= this->GetNumberOfPipelines())
- {
-- return NULL;
-+ return nullptr;
- }
- int counter = 0;
- vtkCPProcessorInternals::PipelineListIterator iter = this->Internal->Pipelines.begin();
-@@ -108,7 +111,7 @@
- counter++;
- iter++;
- }
-- return NULL;
-+ return nullptr;
- }
-
- //----------------------------------------------------------------------------
-@@ -130,17 +133,41 @@
- }
-
- //----------------------------------------------------------------------------
--int vtkCPProcessor::Initialize()
-+int vtkCPProcessor::Initialize(const char* workingDirectory)
- {
-- if (this->InitializationHelper == NULL)
-+ if (this->InitializationHelper == nullptr)
- {
- this->InitializationHelper = this->NewInitializationHelper();
- }
-+ // make sure the directory exists here so that we only do it once
-+ if (workingDirectory)
-+ {
-+ vtkMultiProcessController* controller = vtkMultiProcessController::GetGlobalController();
-+ int success = 1;
-+ if (controller == nullptr || controller->GetLocalProcessId() == 0)
-+ {
-+ success = vtksys::SystemTools::MakeDirectory(workingDirectory) == true ? 1 : 0;
-+ if (success == 0)
-+ {
-+ vtkWarningMacro("Could not make "
-+ << workingDirectory << " directory. "
-+ << "Results will be generated in current working directory instead.");
-+ }
-+ }
-+ if (controller)
-+ {
-+ controller->Broadcast(&success, 1, 0);
-+ }
-+ if (success)
-+ {
-+ this->SetWorkingDirectory(workingDirectory);
-+ }
-+ }
- return 1;
- }
-
- //----------------------------------------------------------------------------
--int vtkCPProcessor::Initialize(vtkMPICommunicatorOpaqueComm& comm)
-+int vtkCPProcessor::Initialize(vtkMPICommunicatorOpaqueComm& comm, const char* workingDirectory)
- {
- #ifdef PARAVIEW_USE_MPI
- if (vtkCPProcessor::Controller)
-@@ -148,7 +175,7 @@
- vtkErrorMacro("Can only initialize with a communicator once per process.");
- return 0;
- }
-- if (this->InitializationHelper == NULL)
-+ if (this->InitializationHelper == nullptr)
- {
- vtkMPICommunicator* communicator = vtkMPICommunicator::New();
- communicator->InitializeExternal(&comm);
-@@ -157,12 +184,12 @@
- this->Controller = controller;
- this->Controller->SetGlobalController(controller);
- communicator->Delete();
-- return this->Initialize();
-+ return this->Initialize(workingDirectory);
- }
- return 1;
- #else
- static_cast(&comm); // get rid of variable not used warning
-- return this->Initialize();
-+ return this->Initialize(workingDirectory);
- #endif
- }
-
-@@ -225,6 +252,13 @@
- input->GetFieldData()->AddArray(catalystChannel);
- }
- }
-+
-+ std::string originalWorkingDirectory;
-+ if (this->WorkingDirectory)
-+ {
-+ originalWorkingDirectory = vtksys::SystemTools::GetCurrentWorkingDirectory();
-+ vtksys::SystemTools::ChangeDirectory(this->WorkingDirectory);
-+ }
- for (vtkCPProcessorInternals::PipelineListIterator iter = this->Internal->Pipelines.begin();
- iter != this->Internal->Pipelines.end(); iter++)
- {
-@@ -248,6 +282,10 @@
- }
- }
- }
-+ if (originalWorkingDirectory.empty() == false)
-+ {
-+ vtksys::SystemTools::ChangeDirectory(originalWorkingDirectory);
-+ }
- // we want to reset everything here to make sure that new information
- // is properly passed in the next time.
- dataDescription->ResetAll();
-@@ -259,7 +297,7 @@
- {
- if (this->Controller)
- {
-- this->Controller->SetGlobalController(NULL);
-+ this->Controller->SetGlobalController(nullptr);
- this->Controller->Finalize(1);
- this->Controller->Delete();
- }
---- Catalyst-v5.5.0/CoProcessing/Catalyst/vtkCPProcessor.h.orig 2018-04-06 22:03:33.000000000 +0200
-+++ Catalyst-v5.5.0/CoProcessing/Catalyst/vtkCPProcessor.h 2018-05-11 12:02:26.894772713 +0200
-@@ -76,14 +76,16 @@
- virtual void RemoveAllPipelines();
-
- /// Initialize the co-processor. Returns 1 if successful and 0
-- /// otherwise.
- /// otherwise. If Catalyst is built with MPI then Initialize()
- /// can also be called with a specific MPI communicator if
- /// MPI_COMM_WORLD isn't the proper one. Catalyst is initialized
-- /// to use MPI_COMM_WORLD by default.
-- virtual int Initialize();
-+ /// to use MPI_COMM_WORLD by default. Both methods have an optional
-+ /// workingDirectory argument which will set *WorkingDirectory* so
-+ /// that files will be put relative to this directory.
-+ virtual int Initialize(const char* workingDirectory = nullptr);
- #ifndef __WRAP__
-- virtual int Initialize(vtkMPICommunicatorOpaqueComm& comm);
-+ virtual int Initialize(
-+ vtkMPICommunicatorOpaqueComm& comm, const char* workingDirectory = nullptr);
- #endif
-
- /// The Catalyst input field data string array name. This array will
-@@ -111,6 +113,13 @@
- /// implementation an opportunity to clean up, before it is destroyed.
- virtual int Finalize();
-
-+ /// Get the current working directory for outputting Catalyst files.
-+ /// If not set then Catalyst output files will be relative to the
-+ /// current working directory. This will not affect where Catalyst
-+ /// looks for Python scripts. *WorkingDirectory* gets set through
-+ /// the *Initialize()* methods.
-+ vtkGetStringMacro(WorkingDirectory);
-+
- protected:
- vtkCPProcessor();
- virtual ~vtkCPProcessor();
-@@ -118,6 +127,11 @@
- /// Create a new instance of the InitializationHelper.
- virtual vtkObject* NewInitializationHelper();
-
-+ /// Set the current working directory for outputting Catalyst files.
-+ /// This is a protected method since simulation code adaptors should
-+ /// set this through the *Initialize()* methods.
-+ vtkSetStringMacro(WorkingDirectory);
-+
- private:
- vtkCPProcessor(const vtkCPProcessor&) = delete;
- void operator=(const vtkCPProcessor&) = delete;
-@@ -125,6 +139,7 @@
- vtkCPProcessorInternals* Internal;
- vtkObject* InitializationHelper;
- static vtkMultiProcessController* Controller;
-+ char* WorkingDirectory;
- };
-
- #endif
---- Catalyst-v5.5.0/CoProcessing/Catalyst/vtkCPXMLPWriterPipeline.cxx.orig 2018-04-06 22:03:33.000000000 +0200
-+++ Catalyst-v5.5.0/CoProcessing/Catalyst/vtkCPXMLPWriterPipeline.cxx 2018-05-11 12:02:26.894772713 +0200
-@@ -31,6 +31,7 @@
- #include
- #include
-
-+#include
- #include
- #include
-
-@@ -174,7 +175,7 @@
-
- for (unsigned int i = 0; i < dataDescription->GetNumberOfInputDescriptions(); i++)
- {
-- const char* inputName = dataDescription->GetInputDescriptionName(i);
-+ std::string inputName = dataDescription->GetInputDescriptionName(i);
- vtkCPInputDataDescription* idd = dataDescription->GetInputDescription(i);
- vtkDataObject* grid = idd->GetGrid();
- if (grid == nullptr)
-@@ -206,6 +207,8 @@
- vtkSMStringVectorProperty* fileName =
- vtkSMStringVectorProperty::SafeDownCast(writer->GetProperty("FileName"));
-
-+ // If we have a / in the channel name we take it out of the filename we're going to write to
-+ inputName.erase(std::remove(inputName.begin(), inputName.end(), '/'), inputName.end());
- std::ostringstream o;
- if (this->Path.empty() == false)
- {
---- Catalyst-v5.5.0/Wrapping/Python/paraview/coprocessing.py.orig 2018-04-06 22:03:33.000000000 +0200
-+++ Catalyst-v5.5.0/Wrapping/Python/paraview/coprocessing.py 2018-05-11 12:02:27.038772408 +0200
-@@ -11,22 +11,12 @@
- from paraview.vtk.vtkPVVTKExtensionsCore import *
- import math
-
--# -----------------------------------------------------------------------------
--def IsInModulo(timestep, frequencyArray):
-- """
-- Return True if the given timestep is in one of the provided frequency.
-- This can be interpreted as follow::
--
-- isFM = IsInModulo(timestep, [2,3,7])
--
-- is similar to::
-+# If the user created a filename in a location that doesn't exist by default we'll
-+# make the directory for them. This can be changed though by setting createDirectoriesIfNeeded
-+# to False.
-+createDirectoriesIfNeeded = True
-
-- isFM = (timestep % 2 == 0) or (timestep % 3 == 0) or (timestep % 7 == 0)
-- """
-- for frequency in frequencyArray:
-- if frequency > 0 and (timestep % frequency == 0):
-- return True
-- return False
-+# -----------------------------------------------------------------------------
-
- class CoProcessor(object):
- """Base class for co-processing Pipelines.
-@@ -68,6 +58,9 @@
- self.__CinemaTracks = {}
- self.__InitialFrequencies = {}
- self.__PrintEnsightFormatString = False
-+ self.__TimeStepToStartOutputAt=0
-+ self.__ForceOutputAtFirstCall=False
-+ self.__FirstTimeStepIndex = None
-
- def SetPrintEnsightFormatString(self, enable):
- """If outputting ExodusII files with the purpose of reading them into
-@@ -87,6 +80,17 @@
- "Incorrect argument type: %s, must be a dict" % type(frequencies))
- self.__InitialFrequencies = frequencies
-
-+ def SetInitialOutputOptions(self, timeStepToStartOutputAt, forceOutputAtFirstCall):
-+ """Set the frequencies at which the pipeline needs to be updated.
-+ Typically, this is called by the subclass once it has determined what
-+ timesteps co-processing will be needed to be done.
-+ frequencies is a map, with key->string name of for the simulation
-+ input, and value is a list of frequencies.
-+ """
-+
-+ self.__TimeStepToStartOutputAt=timeStepToStartOutputAt
-+ self.__ForceOutputAtFirstCall=forceOutputAtFirstCall
-+
- def EnableLiveVisualization(self, enable, frequency = 1):
- """Call this method to enable live-visualization. When enabled,
- DoLiveVisualization() will communicate with ParaView server if possible
-@@ -115,7 +119,7 @@
- # if this is a time step to do live then all of the inputs
- # must be made available. note that we want the pipeline built
- # before we do the actual first live connection.
-- if self.__EnableLiveVisualization and timestep % self.__LiveVisualizationFrequency == 0 \
-+ if self.__EnableLiveVisualization and self.NeedToOutput(timestep, self.__LiveVisualizationFrequency) \
- and self.__LiveVisualizationLink:
- if self.__LiveVisualizationLink.Initialize(servermanager.ActiveConnection.Session.GetSessionProxyManager()):
- num_inputs = datadescription.GetNumberOfInputDescriptions()
-@@ -132,13 +136,13 @@
- # hasn't been set up yet). If we don't have live enabled
- # we know that the output frequencies aren't changed and can
- # just use the initial frequencies.
-- if self.__InitialFrequencies or not self.__EnableLiveVisualization:
-+ if self.__ForceOutputAtFirstCall or self.__InitialFrequencies or not self.__EnableLiveVisualization:
- num_inputs = datadescription.GetNumberOfInputDescriptions()
- for cc in range(num_inputs):
- input_name = datadescription.GetInputDescriptionName(cc)
-
- freqs = self.__InitialFrequencies.get(input_name, [])
-- if self.__EnableLiveVisualization or ( self and IsInModulo(timestep, freqs) ):
-+ if self.__EnableLiveVisualization or ( self and self.IsInModulo(timestep, freqs) ):
- datadescription.GetInputDescription(cc).AllFieldsOn()
- datadescription.GetInputDescription(cc).GenerateMeshOn()
- else:
-@@ -149,15 +153,14 @@
- for writer in self.__WritersList:
- frequency = writer.parameters.GetProperty(
- "WriteFrequency").GetElement(0)
-- if (timestep % frequency) == 0 or \
-- datadescription.GetForceOutput() == True:
-+ if self.NeedToOutput(timestep, frequency) or datadescription.GetForceOutput() == True:
- writerinputs = cpstate.locate_simulation_inputs(writer)
- for writerinput in writerinputs:
- datadescription.GetInputDescriptionByName(writerinput).AllFieldsOn()
- datadescription.GetInputDescriptionByName(writerinput).GenerateMeshOn()
-
- for view in self.__ViewsList:
-- if (view.cpFrequency and timestep % view.cpFrequency == 0) or \
-+ if (view.cpFrequency and self.NeedToOutput(timestep, view.cpFrequency)) or \
- datadescription.GetForceOutput() == True:
- viewinputs = cpstate.locate_simulation_inputs_for_view(view)
- for viewinput in viewinputs:
-@@ -192,8 +195,7 @@
- for writer in self.__WritersList:
- frequency = writer.parameters.GetProperty(
- "WriteFrequency").GetElement(0)
-- if (timestep % frequency) == 0 or \
-- datadescription.GetForceOutput() == True:
-+ if self.NeedToOutput(timestep, frequency) or datadescription.GetForceOutput() == True:
- fileName = writer.parameters.GetProperty("FileName").GetElement(0)
- paddingamount = writer.parameters.GetProperty("PaddingAmount").GetElement(0)
- helperName = writer.GetXMLName()
-@@ -203,6 +205,23 @@
- else:
- ts = str(timestep).rjust(paddingamount, '0')
- writer.FileName = fileName.replace("%t", ts)
-+ if '/' in writer.FileName and createDirectoriesIfNeeded:
-+ oktowrite = [1.]
-+ import vtk
-+ comm = vtk.vtkMultiProcessController.GetGlobalController()
-+ if comm.GetLocalProcessId() == 0:
-+ import os
-+ newDir = writer.FileName[0:writer.FileName.rfind('/')]
-+ try:
-+ os.makedirs(newDir)
-+ except OSError:
-+ if not os.path.isdir(newDir):
-+ print ("ERROR: Cannot make directory for", writer.FileName, ". No data will be written.")
-+ oktowrite[0] = 0.
-+ comm.Broadcast(oktowrite, 1, 0)
-+ if oktowrite[0] == 0:
-+ # we can't make the directory so no reason to update the pipeline
-+ return
- writer.UpdatePipeline(datadescription.GetTime())
-
- def WriteImages(self, datadescription, rescale_lookuptable=False,
-@@ -240,7 +259,7 @@
-
- cinema_dirs = []
- for view in self.__ViewsList:
-- if (view.cpFrequency and timestep % view.cpFrequency == 0) or \
-+ if (view.cpFrequency and self.NeedToOutput(timestep, view.cpFrequency)) or \
- datadescription.GetForceOutput() == True:
- fname = view.cpFileName
- ts = str(timestep).rjust(padding_amount, '0')
-@@ -267,6 +286,24 @@
- if dirname:
- cinema_dirs.append(dirname)
- else:
-+ if '/' in fname and createDirectoriesIfNeeded:
-+ oktowrite = [1.]
-+ import vtk
-+ comm = vtk.vtkMultiProcessController.GetGlobalController()
-+ if comm.GetLocalProcessId() == 0:
-+ import os
-+ newDir = fname[0:fname.rfind('/')]
-+ try:
-+ os.makedirs(newDir)
-+ except OSError:
-+ if not os.path.isdir(newDir):
-+ print ("ERROR: Cannot make directory for", fname, ". No image will be output.")
-+ oktowrite[0] = 0.
-+ comm.Broadcast(oktowrite, 1, 0)
-+ if oktowrite[0] == 0:
-+ # we can't make the directory so no reason to update the pipeline
-+ return
-+
- if image_quality is None and fname.endswith('png'):
- # for png quality = 0 means no compression. compression can be a potentially
- # very costly serial operation on process 0
-@@ -307,7 +344,7 @@
-
-
- timeStep = datadescription.GetTimeStep()
-- if self.__EnableLiveVisualization and timeStep % self.__LiveVisualizationFrequency == 0:
-+ if self.__EnableLiveVisualization and self.NeedToOutput(timeStep, self.__LiveVisualizationFrequency):
- if not self.__LiveVisualizationLink.Initialize(servermanager.ActiveConnection.Session.GetSessionProxyManager()):
- return
-
-@@ -412,7 +449,7 @@
- """
- controller = servermanager.ParaViewPipelineController()
- # assume that a client only proxy with the same name as a writer
-- # is available in "insitu_writer_paramters"
-+ # is available in "insitu_writer_parameters"
-
- # Since coprocessor sometimes pass writer as a custom object and not
- # a proxy, we need to handle that. Just creating any arbitrary writer
-@@ -666,3 +703,42 @@
- #restore what we showed
- pv_introspect.restore_visibility(pxystate)
- return os.path.basename(vfname)
-+
-+ def IsInModulo(self, timestep, frequencies):
-+ """
-+ Return True if the given timestep is in one of the provided frequency.
-+ This can be interpreted as follow::
-+
-+ isFM = IsInModulo(timestep-timeStepToStartOutputAt, [2,3,7])
-+
-+ is similar to::
-+
-+ isFM = (timestep-timeStepToStartOutputAt % 2 == 0) or (timestep-timeStepToStartOutputAt % 3 == 0) or (timestep-timeStepToStartOutputAt % 7 == 0)
-+
-+ The timeStepToStartOutputAt is the first timestep that will potentially be output.
-+ """
-+ if timestep < self.__TimeStepToStartOutputAt and not self.__ForceOutputAtFirstCall:
-+ return False
-+ for frequency in frequencies:
-+ if frequency > 0 and self.NeedToOutput(timestep, frequency):
-+ return True
-+
-+ return False
-+
-+
-+ def NeedToOutput(self, timestep, frequency):
-+ """
-+ Return True if we need to output based on the input timestep and frequency. Checks based
-+ __FirstTimeStepIndex, __FirstTimeStepIndex, __ForceOutputAtFirstCall and __TimeStepToStartOutputAt
-+ member variables.
-+ """
-+ if self.__FirstTimeStepIndex == None:
-+ self.__FirstTimeStepIndex = timestep
-+
-+ if self.__ForceOutputAtFirstCall and self.__FirstTimeStepIndex == timestep:
-+ return True
-+
-+ if self.__TimeStepToStartOutputAt <= timestep and (timestep-self.__TimeStepToStartOutputAt) % frequency == 0:
-+ return True
-+
-+ return False
diff --git a/var/spack/repos/builtin/packages/catch2/package.py b/var/spack/repos/builtin/packages/catch2/package.py
index 82eb629bb82661..604dd3956538c0 100644
--- a/var/spack/repos/builtin/packages/catch2/package.py
+++ b/var/spack/repos/builtin/packages/catch2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,9 +11,12 @@ class Catch2(CMakePackage):
supports Objective-C (and maybe C)."""
homepage = "https://github.com/catchorg/Catch2"
- url = "https://github.com/catchorg/Catch2/archive/v2.13.10.tar.gz"
+ url = "https://github.com/catchorg/Catch2/archive/refs/tags/v3.3.1.tar.gz"
+ list_url = "https://github.com/catchorg/Catch2/releases/"
git = "https://github.com/catchorg/Catch2.git"
- maintainers("ax3l")
+ maintainers("ax3l", "greenc-FNAL")
+
+ license("BSL-1.0")
# In-Development
version("develop", branch="devel")
@@ -105,11 +108,38 @@ class Catch2(CMakePackage):
version("1.3.5", sha256="f15730d81b4173fb860ce3561768de7d41bbefb67dc031d7d1f5ae2c07f0a472")
version("1.3.0", sha256="245f6ee73e2fea66311afa1da59e5087ddab8b37ce64994ad88506e8af28c6ac")
+ variant(
+ "cxxstd",
+ when="@3:",
+ default="17",
+ values=("17", "20", "23"),
+ multi=False,
+ sticky=True,
+ description="C++ standard",
+ )
variant(
"pic", when="@3: ~shared", default=True, description="Build with position-independent code"
)
variant("shared", when="@3:", default=False, description="Build shared library")
+ @when("@3:")
+ def patch(self):
+ filter_file(
+ r"#include \\n#include ",
+ "#include \n#include ",
+ "src/catch2/catch_test_case_info.hpp",
+ )
+ filter_file(
+ r"#include ",
+ "#include \n#include ",
+ "src/catch2/internal/catch_xmlwriter.cpp",
+ )
+
def cmake_args(self):
spec = self.spec
args = []
@@ -119,6 +149,18 @@ def cmake_args(self):
elif spec.satisfies("@2.1.1:"):
args.append(self.define("BUILD_TESTING", self.run_tests))
if spec.satisfies("@3:"):
+ args.extend(
+ [
+ self.define("BUILD_TESTING", self.run_tests),
+ self.define("CATCH_BUILD_EXAMPLES", True),
+ self.define("CATCH_BUILD_EXTRA_TESTS", self.run_tests),
+ self.define("CATCH_BUILD_TESTING", self.run_tests),
+ self.define("CATCH_ENABLE_WERROR", True),
+ self.define("CATCH_INSTALL_EXTRAS", True),
+ self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"),
+ self.define("CMAKE_CXX_STANDARD_REQUIRED", True),
+ ]
+ )
args.append(self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"))
args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared"))
diff --git a/var/spack/repos/builtin/packages/cbc/package.py b/var/spack/repos/builtin/packages/cbc/package.py
index c67cfaa6cc3b52..191310a756fe14 100644
--- a/var/spack/repos/builtin/packages/cbc/package.py
+++ b/var/spack/repos/builtin/packages/cbc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Cbc(AutotoolsPackage):
depends_on("osi")
depends_on("cgl")
+ license("EPL-2.0")
+
version("2.10.9", sha256="96d02593b01fd1460d421f002734384e4eb1e93ebe1fb3570dc2b7600f20a27e")
version("2.10.8", sha256="8525abb541ee1b8e6ff03b00411b66e98bbc58f95be1aefd49d2bca571be2eaf")
version("2.10.5", sha256="cc44c1950ff4615e7791d7e03ea34318ca001d3cac6dc3f7f5ee392459ce6719")
diff --git a/var/spack/repos/builtin/packages/cbench/package.py b/var/spack/repos/builtin/packages/cbench/package.py
index e0f08b1f35e3b1..609e5bba5416ad 100644
--- a/var/spack/repos/builtin/packages/cbench/package.py
+++ b/var/spack/repos/builtin/packages/cbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cbflib/package.py b/var/spack/repos/builtin/packages/cbflib/package.py
index 4ec7b02a33d27f..7e313acece0698 100644
--- a/var/spack/repos/builtin/packages/cbflib/package.py
+++ b/var/spack/repos/builtin/packages/cbflib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Cbflib(MakefilePackage):
"https://downloads.sourceforge.net/project/cbflib/cbflib/CBFlib_0.9.2/CBFlib-0.9.2.tar.gz"
)
+ license("Unlicense")
+
version("0.9.2", sha256="367e37e1908a65d5472e921150291332823a751206804866e752b793bca17afc")
depends_on("m4", type="build")
diff --git a/var/spack/repos/builtin/packages/cblas/package.py b/var/spack/repos/builtin/packages/cblas/package.py
index 7ddf14d3775d08..86b50b7c5e2fe9 100644
--- a/var/spack/repos/builtin/packages/cblas/package.py
+++ b/var/spack/repos/builtin/packages/cblas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py
index 2b0aa739242615..36549c6063000f 100644
--- a/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
index a34c682a1d9486..96b3679b18bc8a 100644
--- a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cbtf-krell/package.py b/var/spack/repos/builtin/packages/cbtf-krell/package.py
index 78999b9d334363..3196840a934d54 100644
--- a/var/spack/repos/builtin/packages/cbtf-krell/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-krell/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cbtf-lanl/package.py b/var/spack/repos/builtin/packages/cbtf-lanl/package.py
index 694ddb87bda9f9..371c1dd63889b6 100644
--- a/var/spack/repos/builtin/packages/cbtf-lanl/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-lanl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cbtf/package.py b/var/spack/repos/builtin/packages/cbtf/package.py
index bd09138a61fc12..92166c5286e8eb 100644
--- a/var/spack/repos/builtin/packages/cbtf/package.py
+++ b/var/spack/repos/builtin/packages/cbtf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Cbtf(CMakePackage):
maintainers("jgalarowicz")
+ license("GPL-2.0-only")
+
version("develop", branch="master")
version("1.9.4.1", branch="1.9.4.1")
version("1.9.4", branch="1.9.4")
diff --git a/var/spack/repos/builtin/packages/cc65/package.py b/var/spack/repos/builtin/packages/cc65/package.py
index 9dedc0057feb4f..1f4998ed545742 100644
--- a/var/spack/repos/builtin/packages/cc65/package.py
+++ b/var/spack/repos/builtin/packages/cc65/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cc65(MakefilePackage):
homepage = "https://cc65.github.io/"
url = "https://github.com/cc65/cc65/archive/V2.18.tar.gz"
+ license("Zlib")
+
version("2.18", sha256="d14a22fb87c7bcbecd8a83d5362d5d317b19c6ce2433421f2512f28293a6eaab")
version("2.17", sha256="73b89634655bfc6cef9aa0b8950f19657a902ee5ef0c045886e418bb116d2eac")
version("2.16", sha256="fdbbf1efbf2324658a5774fdceef4a1b202322a04f895688d95694843df76792")
diff --git a/var/spack/repos/builtin/packages/ccache/fix-gcc-12.patch b/var/spack/repos/builtin/packages/ccache/fix-gcc-12.patch
new file mode 100644
index 00000000000000..638d76a2c3440a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ccache/fix-gcc-12.patch
@@ -0,0 +1,23 @@
+https://bugs.gentoo.org/906310
+https://bugs.gentoo.org/906942
+https://github.com/ccache/ccache/issues/1289
+https://github.com/ccache/ccache/commit/689168c292f1ed26c5f4a3070aeb649dad7facb5
+
+From 689168c292f1ed26c5f4a3070aeb649dad7facb5 Mon Sep 17 00:00:00 2001
+From: Joel Rosdahl
+Date: Tue, 1 Aug 2023 12:30:12 +0200
+Subject: [PATCH] fix: Work around GCC 12.3 bug 109241
+
+See also #1289.
+--- a/src/storage/local/LocalStorage.cpp
++++ b/src/storage/local/LocalStorage.cpp
+@@ -854,7 +854,9 @@ LocalStorage::recompress(const std::optional level,
+ auto l2_content_lock = get_level_2_content_lock(l1_index, l2_index);
+ l2_content_lock.make_long_lived(lock_manager);
+ if (!l2_content_lock.acquire()) {
+- LOG("Failed to acquire content lock for {}/{}", l1_index, l2_index);
++ // LOG_RAW+fmt::format instead of LOG due to GCC 12.3 bug #109241
++ LOG_RAW(fmt::format(
++ "Failed to acquire content lock for {}/{}", l1_index, l2_index));
+ return;
+ }
diff --git a/var/spack/repos/builtin/packages/ccache/package.py b/var/spack/repos/builtin/packages/ccache/package.py
index 06b1eb09685026..c785ca663c0cda 100644
--- a/var/spack/repos/builtin/packages/ccache/package.py
+++ b/var/spack/repos/builtin/packages/ccache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Ccache(CMakePackage):
executables = ["^ccache$"]
+ license("GPL-3.0-or-later")
+
version("4.8.2", sha256="75eef15b8b9da48db9c91e1d0ff58b3645fc70c0e4ca2ef1b6825a12f21f217d")
version("4.8.1", sha256="869903c1891beb8bee87f1ec94d8a0dad18c2add4072c456acbc85cdfc23ca63")
version("4.8", sha256="ac4b01748fd59cfe07e070c34432b91bdd0fd8640e1e653a80b01d6a523186b0")
@@ -72,6 +74,8 @@ class Ccache(CMakePackage):
conflicts("%clang@:7", when="@4.7:")
conflicts("%clang@:4", when="@4.4:")
+ patch("fix-gcc-12.patch", when="%gcc@12")
+
def cmake_args(self):
return [
self.define("ENABLE_TESTING", False),
diff --git a/var/spack/repos/builtin/packages/ccfits/package.py b/var/spack/repos/builtin/packages/ccfits/package.py
index 54d1b4fbe36e7b..1b2a98f8686680 100644
--- a/var/spack/repos/builtin/packages/ccfits/package.py
+++ b/var/spack/repos/builtin/packages/ccfits/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ccls/package.py b/var/spack/repos/builtin/packages/ccls/package.py
index 04a82cda1fc739..08f5a5059ad05c 100644
--- a/var/spack/repos/builtin/packages/ccls/package.py
+++ b/var/spack/repos/builtin/packages/ccls/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Ccls(CMakePackage):
maintainers("jacobmerson")
+ license("Apache-2.0")
+
version(
"0.20220729", sha256="af19be36597c2a38b526ce7138c72a64c7fb63827830c4cff92256151fc7a6f4"
)
diff --git a/var/spack/repos/builtin/packages/ccs-qcd/package.py b/var/spack/repos/builtin/packages/ccs-qcd/package.py
index 901519f802c41e..bd404445ccd823 100644
--- a/var/spack/repos/builtin/packages/ccs-qcd/package.py
+++ b/var/spack/repos/builtin/packages/ccs-qcd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -35,6 +35,8 @@ class CcsQcd(MakefilePackage):
tags = ["hep"]
+ license("BSD-3-Clause")
+
version("master", branch="master")
version("1.2.1", commit="d7c6b6923f35a824e997ba8db5bd12dc20dda45c")
diff --git a/var/spack/repos/builtin/packages/cctools/package.py b/var/spack/repos/builtin/packages/cctools/package.py
index a8e990b783ed45..d3244d76b61fca 100644
--- a/var/spack/repos/builtin/packages/cctools/package.py
+++ b/var/spack/repos/builtin/packages/cctools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cdbfasta/package.py b/var/spack/repos/builtin/packages/cdbfasta/package.py
index adac5de886c965..24ab2790e6723b 100644
--- a/var/spack/repos/builtin/packages/cdbfasta/package.py
+++ b/var/spack/repos/builtin/packages/cdbfasta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Cdbfasta(MakefilePackage):
homepage = "https://github.com/gpertea/cdbfasta"
git = "https://github.com/gpertea/cdbfasta.git"
+ license("Artistic-2.0")
+
version("2017-03-16", commit="b3e481fe02dfbc767a3842bcb1b687c60376a5e8")
depends_on("zlib-api")
diff --git a/var/spack/repos/builtin/packages/cdd/package.py b/var/spack/repos/builtin/packages/cdd/package.py
index 73a66f9dd53d18..8a1940261f56ed 100644
--- a/var/spack/repos/builtin/packages/cdd/package.py
+++ b/var/spack/repos/builtin/packages/cdd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Cdd(Package):
homepage = "https://www.inf.ethz.ch/personal/fukudak/cdd_home/cdd.html"
url = "https://www.cs.mcgill.ca/~fukuda/download/cdd/cdd-061a.tar.gz"
+ license("GPL-2.0-or-later")
+
version("0.61a", sha256="637a1909bbd8aa4d32667da08f9e9ac687bf7d3ef1b8af5bd227e91a3cd4019b")
depends_on("libtool", type="build")
diff --git a/var/spack/repos/builtin/packages/cddlib/package.py b/var/spack/repos/builtin/packages/cddlib/package.py
index 1f6966f7bf6406..fbf3e0b33b141c 100644
--- a/var/spack/repos/builtin/packages/cddlib/package.py
+++ b/var/spack/repos/builtin/packages/cddlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,9 @@ class Cddlib(AutotoolsPackage):
homepage = "https://people.inf.ethz.ch/fukudak/cdd_home"
url = "https://github.com/cddlib/cddlib/archive/refs/tags/0.94m.tar.gz"
+
+ license("GPL-2.0-or-later")
+
maintainers("NessieCanCode")
version("0.94m", sha256="70dffdb3369b8704dc75428a1b3c42ab9047b81ce039f12f427e2eb2b1b0dee2")
version("0.94h", sha256="7382782c3834214b022c8b2898ed775a7bf915f2cb2acb73fa045d6fd9a3de33")
diff --git a/var/spack/repos/builtin/packages/cdecimal/package.py b/var/spack/repos/builtin/packages/cdecimal/package.py
index 7fe641184f56ea..a725b726ca0881 100644
--- a/var/spack/repos/builtin/packages/cdecimal/package.py
+++ b/var/spack/repos/builtin/packages/cdecimal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Cdecimal(AutotoolsPackage):
homepage = "https://www.bytereef.org/mpdecimal/"
url = "https://www.bytereef.org/software/mpdecimal/releases/cdecimal-2.3.tar.gz"
+ license("BSD-2-Clause")
+
version("2.3", sha256="d737cbe43ed1f6ad9874fb86c3db1e9bbe20c0c750868fde5be3f379ade83d8b")
patch("darwin_install_name.patch", when="platform=darwin")
diff --git a/var/spack/repos/builtin/packages/cdhit/package.py b/var/spack/repos/builtin/packages/cdhit/package.py
index fb9db33107d8c3..1d6bdf304b5668 100644
--- a/var/spack/repos/builtin/packages/cdhit/package.py
+++ b/var/spack/repos/builtin/packages/cdhit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Cdhit(MakefilePackage):
homepage = "http://cd-hit.org/"
url = "https://github.com/weizhongli/cdhit/archive/V4.6.8.tar.gz"
+ license("GPL-2.0-only")
+
version("4.8.1", sha256="f8bc3cdd7aebb432fcd35eed0093e7a6413f1e36bbd2a837ebc06e57cdb20b70")
version("4.6.8", sha256="37d685e4aa849314401805fe4d4db707e1d06070368475e313d6f3cb8fb65949")
diff --git a/var/spack/repos/builtin/packages/cdo/package.py b/var/spack/repos/builtin/packages/cdo/package.py
index 051a499d45793e..f3e27754df7143 100644
--- a/var/spack/repos/builtin/packages/cdo/package.py
+++ b/var/spack/repos/builtin/packages/cdo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,11 @@ class Cdo(AutotoolsPackage):
maintainers("skosukhin", "Try2Code")
+ version(
+ "2.3.0",
+ sha256="10c878227baf718a6917837527d4426c2d0022cfac4457c65155b9c57f091f6b",
+ url="https://code.mpimet.mpg.de/attachments/download/29019/cdo-2.3.0.tar.gz",
+ )
version(
"2.2.2",
sha256="419c77315244019af41a296c05066f474cccbf94debfaae9e2106da51bc7c937",
diff --git a/var/spack/repos/builtin/packages/cdt/package.py b/var/spack/repos/builtin/packages/cdt/package.py
index 559fd82ee53ada..4e73a052863391 100644
--- a/var/spack/repos/builtin/packages/cdt/package.py
+++ b/var/spack/repos/builtin/packages/cdt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,10 @@ class Cdt(CMakePackage):
maintainers("jcortial-safran")
+ license("MPL-2.0-no-copyleft-exception")
+
+ version("1.4.0", sha256="cb5a95a39b417f5a4d170c7ebe97232d0ed36ea64069339b14964dd52dea95ab")
+ version("1.3.6", sha256="15881e4c451f3b7cceade9b11884b3813ff674dff3edae4fb7c440634f8d4c33")
version("1.3.0", sha256="7e8feadf9534cf79f9bf188365510fd6bc68ea997758e1c68d1569f98da924da")
variant(
diff --git a/var/spack/repos/builtin/packages/ceed/package.py b/var/spack/repos/builtin/packages/ceed/package.py
index a93649587b5811..fd72aa13019723 100644
--- a/var/spack/repos/builtin/packages/ceed/package.py
+++ b/var/spack/repos/builtin/packages/ceed/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/celeritas/package.py b/var/spack/repos/builtin/packages/celeritas/package.py
index 83690862bfdf9f..89b273e29631c2 100644
--- a/var/spack/repos/builtin/packages/celeritas/package.py
+++ b/var/spack/repos/builtin/packages/celeritas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,9 +17,25 @@ class Celeritas(CMakePackage, CudaPackage, ROCmPackage):
maintainers("sethrj")
+ license("Apache-2.0")
+
+ version("0.4.1", sha256="24e5c15eb9eec45f52d94a6719ae3505388b49d409cb7e26c875c70ac409bd2c")
+ version(
+ "0.4.0",
+ sha256="8b8eaef84641eeca0fc40321d358205fc9d51e3c6dc7bd1bf03218c1919c774e",
+ deprecated=True,
+ )
version("0.3.2", sha256="65a33de2518716638375df259d9dfc4d68b821ba1110f56b24c823ef5c5df249")
- version("0.3.1", sha256="0f1effab306856d66f5079e8cadcb63e8c1f8a79245b94bf44b89251b3fb0cf0")
- version("0.3.0", sha256="f9620b6bcd8c9b5324ef215f8e44461f915c3fff47bf85ae442c9dafacaa79ac")
+ version(
+ "0.3.1",
+ sha256="0f1effab306856d66f5079e8cadcb63e8c1f8a79245b94bf44b89251b3fb0cf0",
+ deprecated=True,
+ )
+ version(
+ "0.3.0",
+ sha256="f9620b6bcd8c9b5324ef215f8e44461f915c3fff47bf85ae442c9dafacaa79ac",
+ deprecated=True,
+ )
version("0.2.2", sha256="ba5e341d636e00e3d7dbac13a2016b97014917489f46b8b387a2adf9d9563872")
version(
"0.2.1",
@@ -89,7 +105,7 @@ class Celeritas(CMakePackage, CudaPackage, ROCmPackage):
depends_on("geant4@10.7:11.0", when="@:0.2.0 +geant4")
depends_on("hepmc3", when="+hepmc3")
depends_on("root", when="+root")
- depends_on("swig", when="+swig")
+ depends_on("swig@4.1:", when="+swig")
depends_on("vecgeom", when="+vecgeom")
depends_on("python", type="build")
@@ -102,7 +118,8 @@ class Celeritas(CMakePackage, CudaPackage, ROCmPackage):
depends_on("root cxxstd=" + _std, when="+root cxxstd=" + _std)
depends_on("vecgeom cxxstd=" + _std, when="+vecgeom cxxstd=" + _std)
- depends_on("vecgeom +gdml@1.1.17:", when="+vecgeom")
+ depends_on("vecgeom@1.2.5:", when="+vecgeom @0.4:")
+ depends_on("vecgeom +gdml@1.1.17:1", when="+vecgeom @:0.3")
depends_on("vecgeom +cuda", when="+vecgeom +cuda")
conflicts("cxxstd=14", when="@0.3:")
diff --git a/var/spack/repos/builtin/packages/centrifuge/package.py b/var/spack/repos/builtin/packages/centrifuge/package.py
new file mode 100644
index 00000000000000..2b1cf86d3a850b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/centrifuge/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Centrifuge(MakefilePackage):
+ """Classifier for metagenomic sequences."""
+
+ homepage = "https://ccb.jhu.edu/software/centrifuge/index.shtml"
+ url = "https://github.com/DaehwanKimLab/centrifuge/archive/refs/tags/v1.0.4.tar.gz"
+
+ version("1.0.4", sha256="929daed0f84739f7636cc1ea2757527e83373f107107ffeb5937a403ba5201bc")
+
+ def build(self, spec, prefix):
+ make()
+
+ def install(self, spec, prefix):
+ make("install", "prefix=" + prefix)
diff --git a/var/spack/repos/builtin/packages/cepgen/package.py b/var/spack/repos/builtin/packages/cepgen/package.py
index 5058964d46bfad..c6a79f3fcb4377 100644
--- a/var/spack/repos/builtin/packages/cepgen/package.py
+++ b/var/spack/repos/builtin/packages/cepgen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cepgen(CMakePackage):
tags = ["hep"]
+ license("GPL-3.0-or-later")
+
version("1.1.0", sha256="2a4eaed161f007269516cbfb6e90421e657ab1922d4509de0165f08dde91bf3d")
version(
"1.0.2patch1", sha256="333bba0cb1965a98dec127e00c150eab1a515cd348a90f7b1d66d5cd8d206d21"
diff --git a/var/spack/repos/builtin/packages/cereal/package.py b/var/spack/repos/builtin/packages/cereal/package.py
index a001efca0484ba..d7a5cc9aa17c30 100644
--- a/var/spack/repos/builtin/packages/cereal/package.py
+++ b/var/spack/repos/builtin/packages/cereal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Cereal(CMakePackage):
homepage = "https://uscilab.github.io/cereal/"
url = "https://github.com/USCiLab/cereal/archive/v1.3.2.tar.gz"
+ license("BSD-3-Clause")
+
version("1.3.2", sha256="16a7ad9b31ba5880dac55d62b5d6f243c3ebc8d46a3514149e56b5e7ea81f85f")
version("1.3.1", sha256="65ea6ddda98f4274f5c10fb3e07b2269ccdd1e5cbb227be6a2fd78b8f382c976")
version("1.3.0", sha256="329ea3e3130b026c03a4acc50e168e7daff4e6e661bc6a7dfec0d77b570851d5")
diff --git a/var/spack/repos/builtin/packages/ceres-solver/package.py b/var/spack/repos/builtin/packages/ceres-solver/package.py
index c9cdecc07e1f4f..5a8ac5db62d000 100644
--- a/var/spack/repos/builtin/packages/ceres-solver/package.py
+++ b/var/spack/repos/builtin/packages/ceres-solver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class CeresSolver(CMakePackage):
homepage = "http://ceres-solver.org"
url = "http://ceres-solver.org/ceres-solver-1.12.0.tar.gz"
+ license("Apache-2.0")
+
version("2.2.0", sha256="48b2302a7986ece172898477c3bcd6deb8fb5cf19b3327bc49969aad4cede82d")
version("2.0.0", sha256="10298a1d75ca884aa0507d1abb0e0f04800a92871cd400d4c361b56a777a7603")
version("1.14.0", sha256="4744005fc3b902fed886ea418df70690caa8e2ff6b5a90f3dd88a3d291ef8e8e")
diff --git a/var/spack/repos/builtin/packages/cernlib/package.py b/var/spack/repos/builtin/packages/cernlib/package.py
index bf6fc22115c4e8..8e69d753c762f9 100644
--- a/var/spack/repos/builtin/packages/cernlib/package.py
+++ b/var/spack/repos/builtin/packages/cernlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cfitsio/package.py b/var/spack/repos/builtin/packages/cfitsio/package.py
index 708461b2e2d35f..e8d89e46ae7cbf 100644
--- a/var/spack/repos/builtin/packages/cfitsio/package.py
+++ b/var/spack/repos/builtin/packages/cfitsio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cfitsio(AutotoolsPackage):
homepage = "https://heasarc.gsfc.nasa.gov/fitsio/"
url = "https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio-3.49.tar.gz"
+ license("custom")
+
version("4.3.0", sha256="fdadc01d09cf9f54253802c5ec87eb10de51ce4130411415ae88c30940621b8b")
version("4.2.0", sha256="eba53d1b3f6e345632bb09a7b752ec7ced3d63ec5153a848380f3880c5d61889")
version("4.1.0", sha256="b367c695d2831958e7166921c3b356d5dfa51b1ecee505b97416ba39d1b6c17a")
diff --git a/var/spack/repos/builtin/packages/cgal/package.py b/var/spack/repos/builtin/packages/cgal/package.py
index ecdd759d1770e5..1a20720cc691af 100644
--- a/var/spack/repos/builtin/packages/cgal/package.py
+++ b/var/spack/repos/builtin/packages/cgal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,7 @@ class Cgal(CMakePackage):
homepage = "https://www.cgal.org/"
url = "https://github.com/CGAL/cgal/releases/download/v5.4.1/CGAL-5.4.1.tar.xz"
+ version("5.6", sha256="dcab9b08a50a06a7cc2cc69a8a12200f8d8f391b9b8013ae476965c10b45161f")
version("5.5.2", sha256="b2b05d5616ecc69facdc24417cce0b04fb4321491d107db45103add520e3d8c3")
version("5.4.1", sha256="4c3dd7ee4d36d237111a4d72b6e14170093271595d5b695148532daa95323d76")
version("5.1.5", sha256="b1bb8a6053aa12baa5981aef20a542cd3e617a86826963fb8fb6852b1a0da97c")
diff --git a/var/spack/repos/builtin/packages/cgdb/package.py b/var/spack/repos/builtin/packages/cgdb/package.py
index 8632cfb3a1ddc3..73a8ff07eaf68e 100644
--- a/var/spack/repos/builtin/packages/cgdb/package.py
+++ b/var/spack/repos/builtin/packages/cgdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cgdb(AutotoolsPackage):
url = "https://cgdb.me/files/cgdb-0.7.1.tar.gz"
git = "https://github.com/cgdb/cgdb.git"
+ license("GPL-2.0-or-later")
+
version("master", branch="master", submodules=False, preferred=True)
version("0.7.1", sha256="bb723be58ec68cb59a598b8e24a31d10ef31e0e9c277a4de07b2f457fe7de198")
version("0.7.0", sha256="bf7a9264668db3f9342591b08b2cc3bbb08e235ba2372877b4650b70c6fb5423")
diff --git a/var/spack/repos/builtin/packages/cgdcbxd/package.py b/var/spack/repos/builtin/packages/cgdcbxd/package.py
index babbff74ab3889..c372afeed1b8f9 100644
--- a/var/spack/repos/builtin/packages/cgdcbxd/package.py
+++ b/var/spack/repos/builtin/packages/cgdcbxd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cgdcbxd(AutotoolsPackage):
homepage = "https://github.com/jrfastab/cgdcbxd"
url = "https://github.com/jrfastab/cgdcbxd/archive/v1.0.2.tar.gz"
+ license("GPL-2.0-only")
+
version("1.0.2", sha256="ef626c60e27005d3cae1e19a60d0133be0d1f0a012b695f7f1f6ad5a2afa4166")
version("1.0.1", sha256="663b87a5ab4a760e2446e479fec36f6300d53e6113af1408efc156325219900c")
diff --git a/var/spack/repos/builtin/packages/cget/package.py b/var/spack/repos/builtin/packages/cget/package.py
index b27d74cbc8d34a..fdb77f944dd075 100644
--- a/var/spack/repos/builtin/packages/cget/package.py
+++ b/var/spack/repos/builtin/packages/cget/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Cget(PythonPackage):
homepage = "https://github.com/pfultz2/cget"
pypi = "cget/cget-0.1.9.tar.gz"
+ license("BSL-1.0")
+
version("0.2.0", sha256="835009ba6d623a36eee8056975d7cdbeebb0e0091a058b572ed433fb12ae18e8")
version("0.1.9", sha256="2a7913b601bec615208585eda7e69998a43cc17080d36c2ff2ce8742c9794bf6")
diff --git a/var/spack/repos/builtin/packages/cgl/package.py b/var/spack/repos/builtin/packages/cgl/package.py
index a124eab19fd13d..75a1f586c3f45f 100644
--- a/var/spack/repos/builtin/packages/cgl/package.py
+++ b/var/spack/repos/builtin/packages/cgl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Cgl(AutotoolsPackage):
depends_on("osi")
depends_on("clp")
+ license("EPL-2.0")
+
version("0.60.7", sha256="93b30a80b5d2880c2e72d5877c64bdeaf4d7c1928b3194ea2f88b1aa4517fb1b")
version("0.60.6", sha256="9e2c51ffad816ab408763d6b931e2a3060482ee4bf1983148969de96d4b2c9ce")
version("0.60.3", sha256="cfeeedd68feab7c0ce377eb9c7b61715120478f12c4dd0064b05ad640e20f3fb")
diff --git a/var/spack/repos/builtin/packages/cgm/package.py b/var/spack/repos/builtin/packages/cgm/package.py
index f911193052fd4f..88d9335db698bb 100644
--- a/var/spack/repos/builtin/packages/cgm/package.py
+++ b/var/spack/repos/builtin/packages/cgm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cgns/package.py b/var/spack/repos/builtin/packages/cgns/package.py
index 563dffd2875772..2036a78098bd1d 100644
--- a/var/spack/repos/builtin/packages/cgns/package.py
+++ b/var/spack/repos/builtin/packages/cgns/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Cgns(CMakePackage):
parallel = False
+ license("Zlib")
+
version("develop", branch="develop")
version("master", branch="master")
version("4.4.0", sha256="3b0615d1e6b566aa8772616ba5fd9ca4eca1a600720e36eadd914be348925fe2")
diff --git a/var/spack/repos/builtin/packages/chaco/package.py b/var/spack/repos/builtin/packages/chaco/package.py
index a778dc817ead4f..08f4ade01309b5 100644
--- a/var/spack/repos/builtin/packages/chaco/package.py
+++ b/var/spack/repos/builtin/packages/chaco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Chaco(CMakePackage):
maintainers("pbrady", "zjibben")
+ license("LGPL-2.1-or-later")
+
version("develop", branch="truchas")
version("2020-07-16", commit="92a877b381933d12b02507413897f696d81b4682", preferred=True)
diff --git a/var/spack/repos/builtin/packages/chai/package.py b/var/spack/repos/builtin/packages/chai/package.py
index 9cde5d950733ca..2c07aee32cd698 100644
--- a/var/spack/repos/builtin/packages/chai/package.py
+++ b/var/spack/repos/builtin/packages/chai/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage):
maintainers("davidbeckingsale")
+ license("BSD-3-Clause")
+
version("develop", branch="develop", submodules=False)
version("main", branch="main", submodules=False)
version(
@@ -60,6 +62,11 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage):
version("1.0", tag="v1.0", commit="501a098ad879dc8deb4a74fcfe8c08c283a10627", submodules=True)
variant("enable_pick", default=False, description="Enable pick method")
+ variant(
+ "separable_compilation",
+ default=True,
+ description="Build with CUDA_SEPARABLE_COMPILATION flag on ",
+ )
variant("shared", default=True, description="Build Shared Libs")
variant("raja", default=False, description="Build plugin for RAJA")
variant("benchmarks", default=False, description="Build benchmarks.")
@@ -153,8 +160,9 @@ def initconfig_hardware_entries(self):
if "+cuda" in spec:
entries.append(cmake_cache_option("ENABLE_CUDA", True))
- entries.append(cmake_cache_option("CMAKE_CUDA_SEPARABLE_COMPILATION", True))
- entries.append(cmake_cache_option("CUDA_SEPARABLE_COMPILATION", True))
+ if "+separable_compilation" in spec:
+ entries.append(cmake_cache_option("CMAKE_CUDA_SEPARABLE_COMPILATION", True))
+ entries.append(cmake_cache_option("CUDA_SEPARABLE_COMPILATION", True))
if not spec.satisfies("cuda_arch=none"):
cuda_arch = spec.variants["cuda_arch"].value
diff --git a/var/spack/repos/builtin/packages/chameleon/package.py b/var/spack/repos/builtin/packages/chameleon/package.py
index 7d6239ffb09bce..5f9c8451ab32b2 100644
--- a/var/spack/repos/builtin/packages/chameleon/package.py
+++ b/var/spack/repos/builtin/packages/chameleon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/changa/package.py b/var/spack/repos/builtin/packages/changa/package.py
index 25a54bf7fe2f31..43b55a6a85c2bf 100644
--- a/var/spack/repos/builtin/packages/changa/package.py
+++ b/var/spack/repos/builtin/packages/changa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Changa(AutotoolsPackage):
url = "https://github.com/N-BodyShop/changa/archive/v3.4.tar.gz"
git = "https://github.com/N-BodyShop/changa.git"
+ license("GPL-2.0-or-later")
+
version("master", branch="master")
version("3.4", sha256="c2bceb6ac00025dfd704bb6960bc17c6df7c746872185845d1e75f47e6ce2a94")
patch("fix_configure_path.patch")
diff --git a/var/spack/repos/builtin/packages/channelflow/package.py b/var/spack/repos/builtin/packages/channelflow/package.py
index 4dc26d43cdb21e..1f0cb9fa898bd6 100644
--- a/var/spack/repos/builtin/packages/channelflow/package.py
+++ b/var/spack/repos/builtin/packages/channelflow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Channelflow(CMakePackage):
homepage = "https://github.com/epfl-ecps/channelflow"
git = "https://github.com/epfl-ecps/channelflow.git"
+ license("GPL-2.0-only")
+
version("master", branch="master")
variant("shared", default=True, description="Build shared libs")
diff --git a/var/spack/repos/builtin/packages/chaparral/package.py b/var/spack/repos/builtin/packages/chaparral/package.py
index eabee9836a8860..050ca651d4f5d7 100644
--- a/var/spack/repos/builtin/packages/chaparral/package.py
+++ b/var/spack/repos/builtin/packages/chaparral/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Chaparral(CMakePackage):
maintainers("pbrady", "zjibben")
+ license("LGPL-2.1-or-later")
+
version("develop", branch="truchas")
version("2020-08-28", commit="c8a190bb74ef33ad8b2f7b67d20590f393fde32a", preferred=True)
diff --git a/var/spack/repos/builtin/packages/chapel/package.py b/var/spack/repos/builtin/packages/chapel/package.py
index 37970c6de915ab..feedd735d15e27 100644
--- a/var/spack/repos/builtin/packages/chapel/package.py
+++ b/var/spack/repos/builtin/packages/chapel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Chapel(AutotoolsPackage):
homepage = "https://chapel-lang.org/"
url = "https://github.com/chapel-lang/chapel/releases/download/1.24.1/chapel-1.24.1.tar.gz"
+ license("Apache-2.0")
+
version("1.24.1", sha256="f898f266fccaa34d937b38730a361d42efb20753ba43a95e5682816e008ce5e4")
version("1.24.0", sha256="77c6087f3e0837268470915f2ad260d49cf7ac4adf16f5b44862ae624c1be801")
version("1.23.0", sha256="7ae2c8f17a7b98ac68378e94a842cf16d4ab0bcfeabc0fee5ab4aaa07b205661")
diff --git a/var/spack/repos/builtin/packages/chaplin/package.py b/var/spack/repos/builtin/packages/chaplin/package.py
index f19729a406e731..78244802438992 100644
--- a/var/spack/repos/builtin/packages/chaplin/package.py
+++ b/var/spack/repos/builtin/packages/chaplin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/charliecloud/package.py b/var/spack/repos/builtin/packages/charliecloud/package.py
index 88cca7d6e2a88a..0e8f9835454d97 100644
--- a/var/spack/repos/builtin/packages/charliecloud/package.py
+++ b/var/spack/repos/builtin/packages/charliecloud/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Charliecloud(AutotoolsPackage):
tags = ["e4s"]
+ license("Apache-2.0")
+
version("master", branch="master")
version("0.35", sha256="042f5be5ed8eda95f45230b4647510780142a50adb4e748be57e8dd8926b310e")
version(
diff --git a/var/spack/repos/builtin/packages/charmpp/package.py b/var/spack/repos/builtin/packages/charmpp/package.py
index 43ef0d5bbc0ad2..637b111dac7a21 100644
--- a/var/spack/repos/builtin/packages/charmpp/package.py
+++ b/var/spack/repos/builtin/packages/charmpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/chatterbug/package.py b/var/spack/repos/builtin/packages/chatterbug/package.py
index d92da3cda2d94d..eddb9e3a9b8964 100644
--- a/var/spack/repos/builtin/packages/chatterbug/package.py
+++ b/var/spack/repos/builtin/packages/chatterbug/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Chatterbug(MakefilePackage):
homepage = "https://chatterbug.readthedocs.io"
git = "https://github.com/LLNL/chatterbug.git"
+ license("MIT")
+
version("develop", branch="master")
version("1.0", tag="v1.0", commit="ee1b13c634943dbe32ac22f5e2154b00eab8c574")
diff --git a/var/spack/repos/builtin/packages/check/package.py b/var/spack/repos/builtin/packages/check/package.py
index 424f8854358c1e..b2c2900fd7600b 100644
--- a/var/spack/repos/builtin/packages/check/package.py
+++ b/var/spack/repos/builtin/packages/check/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Check(AutotoolsPackage):
homepage = "https://libcheck.github.io/check/index.html"
url = "https://github.com/libcheck/check/releases/download/0.12.0/check-0.12.0.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("0.15.2", sha256="a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a")
version("0.12.0", sha256="464201098bee00e90f5c4bdfa94a5d3ead8d641f9025b560a27755a83b824234")
version("0.11.0", sha256="24f7a48aae6b74755bcbe964ce8bc7240f6ced2141f8d9cf480bc3b3de0d5616")
diff --git a/var/spack/repos/builtin/packages/chemfiles/package.py b/var/spack/repos/builtin/packages/chemfiles/package.py
index 22594ed75411a8..148e806d6a456a 100644
--- a/var/spack/repos/builtin/packages/chemfiles/package.py
+++ b/var/spack/repos/builtin/packages/chemfiles/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Chemfiles(CMakePackage):
maintainers("RMeli")
+ license("BSD-3-Clause")
+
version("0.10.4", sha256="b8232ddaae2953538274982838aa6c2df87d300f7e2f80e92c171581e06325ba")
version("0.10.3", sha256="5f53d87a668a85bebf04e0e8ace0f1db984573de1c54891ba7d37d31cced0408")
diff --git a/var/spack/repos/builtin/packages/chexmix/package.py b/var/spack/repos/builtin/packages/chexmix/package.py
index 6654102f4f11bf..280321a5a59e3c 100644
--- a/var/spack/repos/builtin/packages/chexmix/package.py
+++ b/var/spack/repos/builtin/packages/chexmix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/chgcentre/package.py b/var/spack/repos/builtin/packages/chgcentre/package.py
index 78d8ceaea7a659..4ad3cbffa3801c 100644
--- a/var/spack/repos/builtin/packages/chgcentre/package.py
+++ b/var/spack/repos/builtin/packages/chgcentre/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/chlorop/package.py b/var/spack/repos/builtin/packages/chlorop/package.py
index c01f9af296f610..d408749f5dfeeb 100644
--- a/var/spack/repos/builtin/packages/chlorop/package.py
+++ b/var/spack/repos/builtin/packages/chlorop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/chombo/package.py b/var/spack/repos/builtin/packages/chombo/package.py
index 9ee703bd9043e8..f28606aad3b02d 100644
--- a/var/spack/repos/builtin/packages/chombo/package.py
+++ b/var/spack/repos/builtin/packages/chombo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Chombo(MakefilePackage):
tags = ["ecp", "ecp-apps"]
+ license("BSD-3-Clause-LBNL")
+
# Use whatever path Brian V. and Terry L. agreed upon, but preserve version
version("3.2", commit="71d856c2f469e96755a606db1e5151067da0f54a")
version("develop", branch="master")
diff --git a/var/spack/repos/builtin/packages/chrony/package.py b/var/spack/repos/builtin/packages/chrony/package.py
index a6795b3064351f..1219b0c0cbc83f 100644
--- a/var/spack/repos/builtin/packages/chrony/package.py
+++ b/var/spack/repos/builtin/packages/chrony/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Chrony(AutotoolsPackage):
homepage = "https://chrony.tuxfamily.org/"
url = "https://github.com/mlichvar/chrony/archive/3.5.1.tar.gz"
+ license("GPL-2.0-or-later")
+
version("3.5.1", sha256="881085b944a14853402e1c5cff4de5d815ff104ec6e12eea51c12e42f32f71bd")
version("3.5", sha256="145a270fe4df42931f175e37dd3771a7e714122ae361921a4b93082e648a08c5")
version("3.4", sha256="85fbe433f5a3ee961a20c47a72367760b074448587a9e2d3a6788a95750ed77e")
diff --git a/var/spack/repos/builtin/packages/chrpath/package.py b/var/spack/repos/builtin/packages/chrpath/package.py
index e0a50dc59e56a1..fe0c081d7faa6e 100644
--- a/var/spack/repos/builtin/packages/chrpath/package.py
+++ b/var/spack/repos/builtin/packages/chrpath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,4 +13,6 @@ class Chrpath(AutotoolsPackage):
homepage = "https://directory.fsf.org/wiki/Chrpath"
url = "https://cfhcable.dl.sourceforge.net/project/pisilinux/source/chrpath-0.16.tar.gz"
+ license("GPL-2.0-or-later")
+
version("0.16", sha256="bb0d4c54bac2990e1bdf8132f2c9477ae752859d523e141e72b3b11a12c26e7b")
diff --git a/var/spack/repos/builtin/packages/cinch/package.py b/var/spack/repos/builtin/packages/cinch/package.py
index 26e33f0b95361a..7f80855b936c21 100644
--- a/var/spack/repos/builtin/packages/cinch/package.py
+++ b/var/spack/repos/builtin/packages/cinch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Cinch(Package):
url = "https://github.com/laristra/cinch/archive/1.0.zip"
git = "https://github.com/laristra/cinch.git"
+ license("Unlicense")
+
version("master", branch="master", submodules=False)
version("1.0", sha256="98b73473829b478191481621d84c3d63c662da6e951321f858a032eae3ca07b7")
diff --git a/var/spack/repos/builtin/packages/circe2/package.py b/var/spack/repos/builtin/packages/circe2/package.py
index 21ae748bbab8b0..5b42f60d607e15 100644
--- a/var/spack/repos/builtin/packages/circe2/package.py
+++ b/var/spack/repos/builtin/packages/circe2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Circe2(AutotoolsPackage):
maintainers("tmadlener")
+ license("GPL-2.0-or-later")
+
version("3.1.2.1", sha256="8bb09e6f566adefcf7b5b1cf9d9fe4536dd3dd11ed3674861de29e177ee0bb04")
variant("doc", default=False, description="Create the latex documentation")
diff --git a/var/spack/repos/builtin/packages/circos/package.py b/var/spack/repos/builtin/packages/circos/package.py
index 47097fea8e1dbf..5642fb854cbb1c 100644
--- a/var/spack/repos/builtin/packages/circos/package.py
+++ b/var/spack/repos/builtin/packages/circos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Circos(Package):
homepage = "http://circos.ca/"
url = "http://circos.ca/distribution/circos-0.69-6.tgz"
+ license("GPL-3.0-only")
+
version("0.69-9", sha256="34d8d7ebebf3f553d62820f8f4a0a57814b610341f836b4740c46c3057f789d2")
version("0.69-6", sha256="52d29bfd294992199f738a8d546a49754b0125319a1685a28daca71348291566")
diff --git a/var/spack/repos/builtin/packages/cistem/package.py b/var/spack/repos/builtin/packages/cistem/package.py
index 693a9290b0e017..41a94c291133d4 100644
--- a/var/spack/repos/builtin/packages/cistem/package.py
+++ b/var/spack/repos/builtin/packages/cistem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Cistem(AutotoolsPackage):
homepage = "https://cistem.org/"
url = "https://cistem.org/system/tdf/upload3/cistem-1.0.0-beta-source-code.tar.gz?file=1&type=cistem_details&id=37&force=0"
+ license("GPL-2.0-only")
+
version(
"1.0.0-beta", sha256="c62068f53d0a269ffa1bfff34641597d3795989a930686437fba9eed7a991af6"
)
diff --git a/var/spack/repos/builtin/packages/citcoms/package.py b/var/spack/repos/builtin/packages/citcoms/package.py
index 6ebe2584f28c2e..0e83ec33cd644b 100644
--- a/var/spack/repos/builtin/packages/citcoms/package.py
+++ b/var/spack/repos/builtin/packages/citcoms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Citcoms(AutotoolsPackage):
maintainers("adamjstewart")
+ license("GPL-2.0-or-later")
+
version("master", branch="master", submodules=True)
version("3.3.1", sha256="e3520e0a933e4699d31e86fe309b8c154ea6ecb0f42a1cf6f25e8d13d825a4b3")
version("3.2.0", sha256="773a14d91ecbb4a4d1e04317635fab79819d83c57b47f19380ff30b9b19cb07a")
diff --git a/var/spack/repos/builtin/packages/cityhash/package.py b/var/spack/repos/builtin/packages/cityhash/package.py
index a8e549eb196ef8..2929bf09771c11 100644
--- a/var/spack/repos/builtin/packages/cityhash/package.py
+++ b/var/spack/repos/builtin/packages/cityhash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cjson/package.py b/var/spack/repos/builtin/packages/cjson/package.py
index 11a6e1834249ec..937044baa5c470 100644
--- a/var/spack/repos/builtin/packages/cjson/package.py
+++ b/var/spack/repos/builtin/packages/cjson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,4 +13,6 @@ class Cjson(CMakePackage):
git = "https://github.com/DaveGamble/cJSON"
url = "https://github.com/DaveGamble/cJSON/archive/refs/tags/v1.7.15.zip"
+ license("MIT")
+
version("1.7.15", sha256="c55519316d940757ef93a779f1db1ca809dbf979c551861f339d35aaea1c907c")
diff --git a/var/spack/repos/builtin/packages/ck/package.py b/var/spack/repos/builtin/packages/ck/package.py
index 3f2994eba1be03..82562782543ff1 100644
--- a/var/spack/repos/builtin/packages/ck/package.py
+++ b/var/spack/repos/builtin/packages/ck/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Ck(MavenPackage):
homepage = "https://github.com/mauricioaniche/ck"
url = "https://github.com/mauricioaniche/ck/archive/ck-0.6.2.tar.gz"
+ license("BSD-2-Clause AND Apache-2.0")
+
version("0.6.2", sha256="ee16d209f05852230504dea1af39cdb1cfc8e9b56f4708ed1afcd5ce44af76eb")
version("0.6.1", sha256="1db1fef7111bb485d5554d5927611761a102133a41b88e8fb20cd44494411ac4")
version("0.6.0", sha256="8a1affad047fbefda5d2dad1a795204ffd06c50e2fba830f87cf6c7518423137")
diff --git a/var/spack/repos/builtin/packages/clamav/package.py b/var/spack/repos/builtin/packages/clamav/package.py
index a93511f0a6f2e6..14e3b0c11b159d 100644
--- a/var/spack/repos/builtin/packages/clamav/package.py
+++ b/var/spack/repos/builtin/packages/clamav/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Clamav(AutotoolsPackage):
homepage = "https://www.clamav.net/"
url = "https://www.clamav.net/downloads/production/clamav-0.101.2.tar.gz"
+ license("GPL-2.0-only")
+
version("0.101.2", sha256="0a12ebdf6ff7a74c0bde2bdc2b55cae33449e6dd953ec90824a9e01291277634")
depends_on("pkgconfig", type="build")
diff --git a/var/spack/repos/builtin/packages/clamr/package.py b/var/spack/repos/builtin/packages/clamr/package.py
index 261d34cbad01e1..cba0c2cab81a52 100644
--- a/var/spack/repos/builtin/packages/clamr/package.py
+++ b/var/spack/repos/builtin/packages/clamr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Clamr(CMakePackage):
git = "https://github.com/lanl/CLAMR.git"
tags = ["proxy-app"]
+ license("Unlicense")
+
version("master")
variant(
diff --git a/var/spack/repos/builtin/packages/clapack/package.py b/var/spack/repos/builtin/packages/clapack/package.py
index d4b9fed30ac3f8..10e1ce2652656a 100644
--- a/var/spack/repos/builtin/packages/clapack/package.py
+++ b/var/spack/repos/builtin/packages/clapack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Clapack(MakefilePackage):
homepage = "https://www.netlib.org/clapack/"
url = "https://www.netlib.org/clapack/clapack.tgz"
+ license("BSD-3-Clause")
+
version("3.2.1", sha256="6dc4c382164beec8aaed8fd2acc36ad24232c406eda6db462bd4c41d5e455fac")
variant("external-blas", default=True, description="Build with external BLAS (ATLAS here).")
diff --git a/var/spack/repos/builtin/packages/clara/package.py b/var/spack/repos/builtin/packages/clara/package.py
index 1840b42d596b2c..812ec40305e7b4 100644
--- a/var/spack/repos/builtin/packages/clara/package.py
+++ b/var/spack/repos/builtin/packages/clara/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -24,6 +24,8 @@ class Clara(CMakePackage, Package):
variant("single_header", default=True, description="Install a single header only.")
+ license("BSL-1.0")
+
version("1.1.5", sha256="767dc1718e53678cbea00977adcd0a8a195802a505aec3c537664cf25a173142")
version("1.1.4", sha256="ed3f9cc32e4ea6075c26caff63ee14a87e43dee1f3010c02bd041b9a0c86f72d")
version("1.1.3", sha256="a8132befb6b32bf447a74f7e758ac0b63e7bab86974aeb55ee2fd1cd77385f9e")
diff --git a/var/spack/repos/builtin/packages/claw/package.py b/var/spack/repos/builtin/packages/claw/package.py
index bceab8345a62d6..025f216a44b954 100644
--- a/var/spack/repos/builtin/packages/claw/package.py
+++ b/var/spack/repos/builtin/packages/claw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Claw(CMakePackage):
git = "https://github.com/claw-project/claw-compiler.git"
maintainers("clementval", "skosukhin")
+ license("BSD-2-Clause")
+
version(
"2.0.3", tag="v2.0.3", commit="4d8bc7a794af3651b8b61501388fc00096b23a85", submodules=True
)
diff --git a/var/spack/repos/builtin/packages/clblast/package.py b/var/spack/repos/builtin/packages/clblast/package.py
index 92e23e223c17c4..59146265f48250 100644
--- a/var/spack/repos/builtin/packages/clblast/package.py
+++ b/var/spack/repos/builtin/packages/clblast/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Clblast(CMakePackage):
maintainers("umar456")
+ license("Apache-2.0")
+
version("master", branch="master")
version("1.5.2", sha256="0e3a017c3aa352e0bf94ea65cfc9609beb2c22204d31c2ef43d0478178cfee00")
version("1.5.1", sha256="a0f0cb7308b59a495c23beaef1674093ed26996f66d439623808755dbf568c3f")
@@ -33,7 +35,8 @@ class Clblast(CMakePackage):
version("1.0.1", sha256="6c9415a1394c554debce85c47349ecaaebdc9d5baa187d3ecb84be00ae9c70f0")
version("1.0.0", sha256="230a55a868bdd21425867cbd0dcb7ec046aa5ca522fb5694e42740b5b16d0f59")
- depends_on("opencl +icd")
+ depends_on("opencl")
+ depends_on("pocl+icd", when="^[virtuals=opencl] pocl")
variant("shared", description="Build a shared libraries", default=True)
variant("tuners", description="Enable compilation of the tuners", default=False)
diff --git a/var/spack/repos/builtin/packages/cleaveland4/package.py b/var/spack/repos/builtin/packages/cleaveland4/package.py
index 518da2d520fbd7..84bb60f4e66ea7 100644
--- a/var/spack/repos/builtin/packages/cleaveland4/package.py
+++ b/var/spack/repos/builtin/packages/cleaveland4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Cleaveland4(Package):
homepage = "https://github.com/MikeAxtell/CleaveLand4"
url = "https://github.com/MikeAxtell/CleaveLand4/archive/v4.4.tar.gz"
+ license("GPL-3.0-or-later")
+
version("4.5", sha256="d0ad584a8bc2391cdee5f6279b2351f7db972362669467564e6bd3f94dcd9dd1")
version("4.4", sha256="bf7fe6ad730ea2bfb2e0c0f863734f189073a69b1754532012f1261b368b24e7")
diff --git a/var/spack/repos/builtin/packages/cleverleaf/package.py b/var/spack/repos/builtin/packages/cleverleaf/package.py
index b330d78d7168a8..8f16ba94d24f83 100644
--- a/var/spack/repos/builtin/packages/cleverleaf/package.py
+++ b/var/spack/repos/builtin/packages/cleverleaf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Cleverleaf(CMakePackage):
homepage = "https://uk-mac.github.io/CleverLeaf/"
git = "https://github.com/UK-MAC/CleverLeaf_ref.git"
+ license("LGPL-3.0-or-later")
+
version("develop", branch="develop")
depends_on("samrai@3.8.0:")
diff --git a/var/spack/repos/builtin/packages/clfft/package.py b/var/spack/repos/builtin/packages/clfft/package.py
index 473ac1b09622e7..38deb524c7796d 100644
--- a/var/spack/repos/builtin/packages/clfft/package.py
+++ b/var/spack/repos/builtin/packages/clfft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Clfft(CMakePackage):
homepage = "https://github.com/clMathLibraries/clFFT"
url = "https://github.com/clMathLibraries/clFFT/archive/v2.12.2.tar.gz"
+ license("Apache-2.0")
+
version("2.12.2", sha256="e7348c146ad48c6a3e6997b7702202ad3ee3b5df99edf7ef00bbacc21e897b12")
variant("client", default=True, description="build client and callback client")
diff --git a/var/spack/repos/builtin/packages/clhep/package.py b/var/spack/repos/builtin/packages/clhep/package.py
index 43165ef8b7292d..56796d9433ce24 100644
--- a/var/spack/repos/builtin/packages/clhep/package.py
+++ b/var/spack/repos/builtin/packages/clhep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Clhep(CMakePackage):
maintainers("drbenmorgan")
+ version("2.4.7.1", sha256="1c8304a7772ac6b99195f1300378c6e3ddf4ad07c85d64a04505652abb8a55f9")
+ version("2.4.7.0", sha256="7fa460030bc1a804ea7da8cce7611b93261493bbb66c3cfd3ceec935d7e1b8d3")
version("2.4.6.4", sha256="49c89330f1903ef707d3c5d79c16a7c5a6f2c90fc290e2034ee3834809489e57")
version("2.4.6.3", sha256="fcd007f11b10ba4af28d027222b63148d0eb44ff7a082eee353bdf921f9c684a")
version("2.4.6.2", sha256="aded73e49bac85a5b4e86f64a0ee3d6f3cfe5551b0f7731c78b6d8f9dac6e8dc")
@@ -49,6 +51,7 @@ class Clhep(CMakePackage):
version("2.2.0.8", sha256="f735e236b1f023ba7399269733b2e84eaed4de615081555b1ab3af25a1e92112")
version("2.2.0.5", sha256="92e8b5d32ae96154edd27d0c641ba048ad33cb69dd4f1cfb72fc578770a34818")
version("2.2.0.4", sha256="9bf7fcd9892313c8d1436bc4a4a285a016c4f8e81e1fc65bdf6783207ae57550")
+ version("2.1.2.3", sha256="4353231be09c134507092161cd3ced27a065ca0ebb31ee0256e60a8163c47c3b")
variant(
"cxxstd",
diff --git a/var/spack/repos/builtin/packages/cli11/package.py b/var/spack/repos/builtin/packages/cli11/package.py
index 014b304363d737..f909bd0e5874b9 100644
--- a/var/spack/repos/builtin/packages/cli11/package.py
+++ b/var/spack/repos/builtin/packages/cli11/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cli11(CMakePackage):
url = "https://github.com/CLIUtils/CLI11/archive/v1.9.1.tar.gz"
maintainers("nightlark")
+ license("BitTorrent-1.0")
+
version("2.3.2", sha256="aac0ab42108131ac5d3344a9db0fdf25c4db652296641955720a4fbe52334e22")
version("2.3.1", sha256="378da73d2d1d9a7b82ad6ed2b5bda3e7bc7093c4034a1d680a2e009eb067e7b2")
version("2.1.1", sha256="d69023d1d0ab6a22be86b4f59d449422bc5efd9121868f4e284d6042e52f682e")
diff --git a/var/spack/repos/builtin/packages/clinfo/package.py b/var/spack/repos/builtin/packages/clinfo/package.py
index 69fa778fda022b..8dc7876d0f4a96 100644
--- a/var/spack/repos/builtin/packages/clinfo/package.py
+++ b/var/spack/repos/builtin/packages/clinfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Clinfo(MakefilePackage):
maintainers("matthiasdiener")
+ license("CC0-1.0")
+
version(
"3.0.21.02.21", sha256="e52f5c374a10364999d57a1be30219b47fb0b4f090e418f2ca19a0c037c1e694"
)
diff --git a/var/spack/repos/builtin/packages/clingo-bootstrap/package.py b/var/spack/repos/builtin/packages/clingo-bootstrap/package.py
index 77027c4ba5f317..a11ff0a0484146 100644
--- a/var/spack/repos/builtin/packages/clingo-bootstrap/package.py
+++ b/var/spack/repos/builtin/packages/clingo-bootstrap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/clingo/clingo_msc_1938_native_handle.patch b/var/spack/repos/builtin/packages/clingo/clingo_msc_1938_native_handle.patch
new file mode 100644
index 00000000000000..774169557c58cc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/clingo/clingo_msc_1938_native_handle.patch
@@ -0,0 +1,30 @@
+From c84b07de81cc24e9ac411fc404c54a9a5120029c Mon Sep 17 00:00:00 2001
+From: Benjamin Kaufmann
+Date: Wed, 22 Nov 2023 08:13:46 +0100
+Subject: [PATCH] mt: Make condition_variable::native_handle() conditional.
+
+* According to the C++ standard, the presence and semantics of
+ std::condition_variable::native_handle (and native_handle_type) is
+ implementation-defined. E.g., starting with VS 2022 17.8, Microsoft's
+ implementation no longer provides them at all.
+---
+ clasp/mt/mutex.h | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/clasp/clasp/mt/mutex.h b/clasp/clasp/mt/mutex.h
+index 2439888..ade899c 100644
+--- a/clasp/clasp/mt/mutex.h
++++ b/clasp/clasp/mt/mutex.h
+@@ -39,7 +39,11 @@ struct condition_variable : private std::condition_variable {
+ using base_type::notify_one;
+ using base_type::notify_all;
+ using base_type::wait;
+- using base_type::native_handle;
++
++ template
++ inline auto native_handle() -> typename X::native_handle_type {
++ return X::native_handle();
++ }
+
+ inline bool wait_for(unique_lock& lock, double timeInSecs) {
+ return base_type::wait_for(lock, std::chrono::duration_cast(std::chrono::duration(timeInSecs)))
diff --git a/var/spack/repos/builtin/packages/clingo/package.py b/var/spack/repos/builtin/packages/clingo/package.py
index f64dc6e8121dcd..ac242c57cd3a93 100644
--- a/var/spack/repos/builtin/packages/clingo/package.py
+++ b/var/spack/repos/builtin/packages/clingo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -25,6 +25,8 @@ class Clingo(CMakePackage):
tags = ["windows"]
maintainers("tgamblin", "alalazo")
+ license("MIT")
+
version("master", branch="master", submodules=True)
version("spack", commit="2a025667090d71b2c9dce60fe924feb6bde8f667", submodules=True)
version("5.6.2", sha256="81eb7b14977ac57c97c905bd570f30be2859eabc7fe534da3cdc65eaca44f5be")
@@ -50,6 +52,7 @@ class Clingo(CMakePackage):
depends_on("re2c@0.13:", type="build")
depends_on("bison@2.5:", type="build", when="platform=linux")
depends_on("bison@2.5:", type="build", when="platform=darwin")
+ depends_on("bison@2.5:", type="build", when="platform=freebsd")
depends_on("bison@2.5:", type="build", when="platform=cray")
with when("platform=windows"):
@@ -61,13 +64,15 @@ class Clingo(CMakePackage):
depends_on("python", type=("build", "link", "run"))
# Clingo 5.5.0 supports Python 3.6 or later and needs CFFI
depends_on("python@3.6.0:", type=("build", "link", "run"), when="@5.5.0:")
- depends_on("py-cffi", type=("build", "run"), when="@5.5.0: platform=darwin")
depends_on("py-cffi", type=("build", "run"), when="@5.5.0: platform=linux")
+ depends_on("py-cffi", type=("build", "run"), when="@5.5.0: platform=darwin")
+ depends_on("py-cffi", type=("build", "run"), when="@5.5.0: platform=freebsd")
depends_on("py-cffi", type=("build", "run"), when="@5.5.0: platform=cray")
patch("python38.patch", when="@5.3:5.4.0")
patch("size-t.patch", when="%msvc")
patch("vs2022.patch", when="%msvc@19.30:")
+ patch("clingo_msc_1938_native_handle.patch", when="%msvc@19.38:")
# TODO: Simplify this after Spack 0.21 release. The old concretizer has problems with
# py-setuptools ^python@3.6, so we only apply the distutils -> setuptools patch for Python 3.12
@@ -86,22 +91,6 @@ def patch(self):
"clasp/libpotassco/CMakeLists.txt",
)
- @property
- def cmake_python_hints(self):
- """Return standard CMake defines to ensure that the
- current spec is the one found by CMake find_package(Python, ...)
- """
- python = self.spec["python"]
- return [
- self.define("Python_EXECUTABLE", python.command.path),
- self.define("Python_INCLUDE_DIR", python.headers.directories[0]),
- self.define("Python_LIBRARIES", python.libs[0]),
- # XCode command line tools on macOS has no python-config executable, and
- # CMake assumes you have python 2 if it does not find a python-config,
- # so we set the version explicitly so that it's passed to FindPython.
- self.define("CLINGO_PYTHON_VERSION", python.version.up_to(2)),
- ]
-
@property
def cmake_py_shared(self):
return self.define("CLINGO_BUILD_PY_SHARED", "ON")
@@ -122,8 +111,6 @@ def cmake_args(self):
"-DPYCLINGO_USE_INSTALL_PREFIX=ON",
self.cmake_py_shared,
]
- if self.spec["cmake"].satisfies("@3.16.0:"):
- args += self.cmake_python_hints
else:
args += ["-DCLINGO_BUILD_WITH_PYTHON=OFF"]
diff --git a/var/spack/repos/builtin/packages/cln/package.py b/var/spack/repos/builtin/packages/cln/package.py
index 9214270a9d9bd8..b5ce6793e9340a 100644
--- a/var/spack/repos/builtin/packages/cln/package.py
+++ b/var/spack/repos/builtin/packages/cln/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Cln(AutotoolsPackage):
url = "https://www.ginac.de/CLN/cln-1.3.6.tar.bz2"
git = "git://www.ginac.de/cln.git"
+ license("GPL-2.0-or-later")
+
version("master", branch="master")
version("1.3.6", commit="d4ba1cc869be2c647c4ab48ac571b1fc9c2021a9")
version("1.3.5", commit="b221c033c082b462455502b7e63702a9c466aede")
diff --git a/var/spack/repos/builtin/packages/cloc/package.py b/var/spack/repos/builtin/packages/cloc/package.py
index 146f2de9a8faaf..ea565a768e6f81 100644
--- a/var/spack/repos/builtin/packages/cloc/package.py
+++ b/var/spack/repos/builtin/packages/cloc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cloog/package.py b/var/spack/repos/builtin/packages/cloog/package.py
index 58dcb8715e2ff6..f18ba78ebc0b8c 100644
--- a/var/spack/repos/builtin/packages/cloog/package.py
+++ b/var/spack/repos/builtin/packages/cloog/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cloverleaf-ref/package.py b/var/spack/repos/builtin/packages/cloverleaf-ref/package.py
index 70c0daaf9154cd..77456edb165562 100644
--- a/var/spack/repos/builtin/packages/cloverleaf-ref/package.py
+++ b/var/spack/repos/builtin/packages/cloverleaf-ref/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cloverleaf/package.py b/var/spack/repos/builtin/packages/cloverleaf/package.py
index e30667b37a3af0..4848130837c1b9 100644
--- a/var/spack/repos/builtin/packages/cloverleaf/package.py
+++ b/var/spack/repos/builtin/packages/cloverleaf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Cloverleaf(MakefilePackage):
tags = ["proxy-app"]
+ license("LGPL-3.0-or-later")
+
version("master", branch="master", submodules=True)
version("1.1", sha256="de87f7ee6b917e6b3d243ccbbe620370c62df890e3ef7bdbab46569b57be132f")
diff --git a/var/spack/repos/builtin/packages/cloverleaf3d/package.py b/var/spack/repos/builtin/packages/cloverleaf3d/package.py
index cf3502bfdfb1bf..5eb8bcef88046a 100644
--- a/var/spack/repos/builtin/packages/cloverleaf3d/package.py
+++ b/var/spack/repos/builtin/packages/cloverleaf3d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Cloverleaf3d(MakefilePackage):
maintainers("s1913388")
+ license("LGPL-3.0-or-later")
+
version("1.0", sha256="78d591728c61bdfd6175b3930df7652e09ed04fbcd01b3fc86fb2aa0f237a8ef")
variant("opencl", default=False, description="Enable OpenCL Support")
diff --git a/var/spack/repos/builtin/packages/clp/package.py b/var/spack/repos/builtin/packages/clp/package.py
index e1c39d18c4be28..f245a386571113 100644
--- a/var/spack/repos/builtin/packages/clp/package.py
+++ b/var/spack/repos/builtin/packages/clp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Clp(AutotoolsPackage):
depends_on("osi")
depends_on("pkgconfig", type="build")
+ license("EPL-2.0")
+
version("1.17.7", sha256="c4c2c0e014220ce8b6294f3be0f3a595a37bef58a14bf9bac406016e9e73b0f5")
version("1.17.6", sha256="afff465b1620cfcbb7b7c17b5d331d412039650ff471c4160c7eb24ae01284c9")
version("1.17.4", sha256="ef412cde00cb1313d9041115a700d8d59d4b8b8b5e4dde43e9deb5108fcfbea8")
diff --git a/var/spack/repos/builtin/packages/clustal-omega/package.py b/var/spack/repos/builtin/packages/clustal-omega/package.py
index 5ce93aa61cb9d4..3cafd307e6c13d 100644
--- a/var/spack/repos/builtin/packages/clustal-omega/package.py
+++ b/var/spack/repos/builtin/packages/clustal-omega/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class ClustalOmega(AutotoolsPackage):
homepage = "http://www.clustal.org/omega/"
url = "http://www.clustal.org/omega/clustal-omega-1.2.4.tar.gz"
+ license("GPL-2.0-or-later")
+
version("1.2.4", sha256="8683d2286d663a46412c12a0c789e755e7fd77088fb3bc0342bb71667f05a3ee")
depends_on("argtable")
diff --git a/var/spack/repos/builtin/packages/clustalw/package.py b/var/spack/repos/builtin/packages/clustalw/package.py
index cedd144faad40f..ece7896b687db4 100644
--- a/var/spack/repos/builtin/packages/clustalw/package.py
+++ b/var/spack/repos/builtin/packages/clustalw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,4 +12,6 @@ class Clustalw(AutotoolsPackage):
homepage = "http://www.clustal.org/clustal2/"
url = "http://www.clustal.org/download/2.1/clustalw-2.1.tar.gz"
+ license("LGPL-3.0-only")
+
version("2.1", sha256="e052059b87abfd8c9e695c280bfba86a65899138c82abccd5b00478a80f49486")
diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py
index 16f3fc8d618ccd..b9460331cc1840 100644
--- a/var/spack/repos/builtin/packages/cmake/package.py
+++ b/var/spack/repos/builtin/packages/cmake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,13 +20,17 @@ class Cmake(Package):
url = "https://github.com/Kitware/CMake/releases/download/v3.19.0/cmake-3.19.0.tar.gz"
git = "https://gitlab.kitware.com/cmake/cmake.git"
- maintainers("alalazo")
+ maintainers("alalazo", "johnwparent")
tags = ["build-tools", "windows"]
executables = ["^cmake[0-9]*$"]
+ license("BSD-3-Clause")
+
version("master", branch="master")
+ version("3.27.9", sha256="609a9b98572a6a5ea477f912cffb973109ed4d0a6a6b3f9e2353d2cdc048708e")
+ version("3.27.8", sha256="fece24563f697870fbb982ea8bf17482c9d5f855d8c9bf0b82463d76c9e8d0cc")
version("3.27.7", sha256="08f71a106036bf051f692760ef9558c0577c42ac39e96ba097e7662bd4158d8e")
version("3.27.6", sha256="ef3056df528569e0e8956f6cf38806879347ac6de6a4ff7e4105dc4578732cfb")
version("3.27.4", sha256="0a905ca8635ca81aa152e123bdde7e54cbe764fdd9a70d62af44cad8b92967af")
@@ -34,6 +38,7 @@ class Cmake(Package):
version("3.27.2", sha256="798e50085d423816fe96c9ef8bee5e50002c9eca09fed13e300de8a91d35c211")
version("3.27.1", sha256="b1a6b0135fa11b94476e90f5b32c4c8fad480bf91cf22d0ded98ce22c5132004")
version("3.27.0", sha256="aaeddb6b28b993d0a6e32c88123d728a17561336ab90e0bf45032383564d3cb8")
+ version("3.26.6", sha256="070b9a2422e666d2c1437e2dab239a236e8a63622d0a8d0ffe9e389613d2b76a")
version("3.26.5", sha256="c0970b1e44a7fbca4322997ce05dac521b04748fe424922152faf22d20782bf9")
version("3.26.4", sha256="313b6880c291bd4fe31c0aa51d6e62659282a521e695f30d5cc0d25abbd5c208")
version("3.26.3", sha256="bbd8d39217509d163cb544a40d6428ac666ddc83e22905d3e52c925781f0f659")
@@ -195,7 +200,6 @@ class Cmake(Package):
# a build dependency, and its libs will not interfere with others in
# the build.
variant("ownlibs", default=True, description="Use CMake-provided third-party libraries")
- variant("owncurl", default=False, description="Use CMake-provided curl library")
variant(
"doc",
default=False,
@@ -226,7 +230,7 @@ class Cmake(Package):
# provide Spack's TLS libs anyways, which is not flexible, and actually
# leads to issues where we have to keep track of the vendored curl version
# and its conflicts with OpenSSL.
- depends_on("curl", when="~owncurl")
+ depends_on("curl")
# When using curl, cmake defaults to using system zlib too, probably because
# curl already depends on zlib. Therefore, also unconditionaly depend on zlib.
@@ -235,13 +239,15 @@ class Cmake(Package):
with when("~ownlibs"):
depends_on("expat")
# expat/zlib are used in CMake/CTest, so why not require them in libarchive.
- depends_on("libarchive@3.1.0: xar=expat compression=zlib")
- depends_on("libarchive@3.3.3:", when="@3.15.0:")
- depends_on("libuv@1.0.0:1.10", when="@3.7.0:3.10.3")
- depends_on("libuv@1.10.0:1.10", when="@3.11.0:3.11")
- depends_on("libuv@1.10.0:", when="@3.12.0:")
- depends_on("rhash", when="@3.8.0:")
- depends_on("jsoncpp build_system=meson", when="@3.2:")
+ for plat in ["darwin", "cray", "linux"]:
+ with when("platform=%s" % plat):
+ depends_on("libarchive@3.1.0: xar=expat compression=zlib")
+ depends_on("libarchive@3.3.3:", when="@3.15.0:")
+ depends_on("libuv@1.0.0:1.10", when="@3.7.0:3.10.3")
+ depends_on("libuv@1.10.0:1.10", when="@3.11.0:3.11")
+ depends_on("libuv@1.10.0:", when="@3.12.0:")
+ depends_on("rhash", when="@3.8.0:")
+ depends_on("jsoncpp build_system=meson", when="@3.2:")
depends_on("ncurses", when="+ncurses")
@@ -249,14 +255,6 @@ class Cmake(Package):
depends_on("python@2.7.11:", type="build")
depends_on("py-sphinx", type="build")
- for plat in ["darwin", "linux", "cray"]:
- with when("~ownlibs platform=%s" % plat):
- depends_on("openssl")
- depends_on("openssl@:1.0", when="@:3.6.9")
-
- # TODO: update curl package to build with Windows SSL implementation
- # at which point we can build with +ownlibs on Windows
- conflicts("~ownlibs", when="platform=windows")
# Cannot build with Intel, should be fixed in 3.6.2
# https://gitlab.kitware.com/cmake/cmake/issues/16226
patch("intel-c-gnu11.patch", when="@3.6.0:3.6.1")
@@ -368,8 +366,7 @@ def bootstrap_args(self):
args.append("--no-system-cppdap")
# Whatever +/~ownlibs, use system curl.
- if "~owncurl" in spec:
- args.append("--system-curl")
+ args.append("--system-curl")
args.append("--no-qt-gui")
if "+doc" in spec:
diff --git a/var/spack/repos/builtin/packages/cmaq/package.py b/var/spack/repos/builtin/packages/cmaq/package.py
index 87733158ec170b..911fa288943842 100644
--- a/var/spack/repos/builtin/packages/cmaq/package.py
+++ b/var/spack/repos/builtin/packages/cmaq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Cmaq(Package):
homepage = "https://www.epa.gov/CMAQ"
url = "https://github.com/USEPA/CMAQ/archive/CMAQv5.3.1_19Dec2019.tar.gz"
+ license("CC0-1.0")
+
version(
"5.3.1",
sha256="659156bba27f33010e0fdc157a8d33f3b5b779b95511e2ade870284b6bcb4bc8",
diff --git a/var/spack/repos/builtin/packages/cmark/package.py b/var/spack/repos/builtin/packages/cmark/package.py
index c35fb532e90e6c..dbfed121ba741c 100644
--- a/var/spack/repos/builtin/packages/cmark/package.py
+++ b/var/spack/repos/builtin/packages/cmark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Cmark(CMakePackage):
homepage = "https://commonmark.org/"
url = "https://github.com/commonmark/cmark/archive/0.29.0.tar.gz"
+ license("BSD-2-Clause")
+
version("0.29.0", sha256="2558ace3cbeff85610de3bda32858f722b359acdadf0c4691851865bb84924a6")
version("0.28.3", sha256="acc98685d3c1b515ff787ac7c994188dadaf28a2d700c10c1221da4199bae1fc")
version("0.28.2", sha256="fe4b04fcccb2dc72641096de02a8eefb53059e85f9dd904f0386dc86326cc414")
diff --git a/var/spack/repos/builtin/packages/cmdlime/package.py b/var/spack/repos/builtin/packages/cmdlime/package.py
index 3f1045c8cea4bf..853d997b8049ae 100644
--- a/var/spack/repos/builtin/packages/cmdlime/package.py
+++ b/var/spack/repos/builtin/packages/cmdlime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,4 +13,6 @@ class Cmdlime(CMakePackage):
homepage = "https://github.com/kamchatka-volcano/cmdlime"
url = "https://github.com/kamchatka-volcano/cmdlime/archive/refs/tags/v2.5.0.tar.gz"
+ license("MS-PL")
+
version("2.5.0", sha256="d5188d7f075142fcb546099a4ee2a967f8248109c0bee8c084e0e00f37603481")
diff --git a/var/spack/repos/builtin/packages/cmdstan/package.py b/var/spack/repos/builtin/packages/cmdstan/package.py
index 38474f5a844d09..ad2e799d21874c 100644
--- a/var/spack/repos/builtin/packages/cmdstan/package.py
+++ b/var/spack/repos/builtin/packages/cmdstan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Cmdstan(MakefilePackage):
homepage = "https://mc-stan.org/users/interfaces/cmdstan"
url = "https://github.com/stan-dev/cmdstan/releases/download/v2.30.1/cmdstan-2.30.1.tar.gz"
+ license("BSD-3-Clause")
+
version("2.30.1", sha256="bab76dcefa7f4c955595c0bf0496770507fc6ab0df5896e8cf8c2db0a17eedb9")
variant("threads", default=True, description="enable thread support")
diff --git a/var/spack/repos/builtin/packages/cminpack/package.py b/var/spack/repos/builtin/packages/cminpack/package.py
index ff93b3a422540c..735a39fbea8d93 100644
--- a/var/spack/repos/builtin/packages/cminpack/package.py
+++ b/var/spack/repos/builtin/packages/cminpack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cmocka/package.py b/var/spack/repos/builtin/packages/cmocka/package.py
index c11c973828677c..2046ada5d72f06 100644
--- a/var/spack/repos/builtin/packages/cmocka/package.py
+++ b/var/spack/repos/builtin/packages/cmocka/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Cmocka(CMakePackage):
homepage = "https://cmocka.org/"
url = "https://cmocka.org/files/1.1/cmocka-1.1.1.tar.xz"
+ license("Apache-2.0")
+
version("1.1.7", sha256="810570eb0b8d64804331f82b29ff47c790ce9cd6b163e98d47a4807047ecad82")
version("1.1.1", sha256="f02ef48a7039aa77191d525c5b1aee3f13286b77a13615d11bc1148753fc0389")
version("1.1.0", sha256="e960d3bf1be618634a4b924f18bb4d6f20a825c109a8ad6d1af03913ba421330")
diff --git a/var/spack/repos/builtin/packages/cmockery/package.py b/var/spack/repos/builtin/packages/cmockery/package.py
index d34e9b245810b2..55c531a9800f2c 100644
--- a/var/spack/repos/builtin/packages/cmockery/package.py
+++ b/var/spack/repos/builtin/packages/cmockery/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Cmockery(AutotoolsPackage):
homepage = "https://github.com/google/cmockery"
url = "https://github.com/google/cmockery/archive/v0.1.2.tar.gz"
+ license("BSD-3-Clause")
+
version("0.1.2", sha256="d40135ae9179201c01bde725fa64fc32d86b5899972e0ce4ad51668d261edbae")
version("0.1.1", sha256="a801d17976f781fff6dc49042ff109e55ca4ebe8efb13757fa1a511ca52316be")
version("0.1.0", sha256="9e017d48e56ab9d2ebcf5286fa54e37d42fe308d3c01fbc367793da2b9ad95e7")
diff --git a/var/spack/repos/builtin/packages/cmor/package.py b/var/spack/repos/builtin/packages/cmor/package.py
index 93b0eba41cc769..bb6e6b9689e84d 100644
--- a/var/spack/repos/builtin/packages/cmor/package.py
+++ b/var/spack/repos/builtin/packages/cmor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Cmor(AutotoolsPackage):
homepage = "https://cmor.llnl.gov"
url = "https://github.com/PCMDI/cmor/archive/3.6.1.tar.gz"
+ license("BSD-3-Clause")
+
version("3.7.2", sha256="5e19a9be8e6a8bd18a2035772732c34b87b3448319bf0b8fa12ccd4a351b8e86")
version("3.6.1", sha256="991035a41424f72ea6f0f85653fc13730eb035e63c7dff6ca740aa7a70976fb4")
version("3.6.0", sha256="1608904a35106e83d365f27522209c325bd4bfc19d022b1a8abfb12cdf85fe20")
diff --git a/var/spack/repos/builtin/packages/cni-plugins/package.py b/var/spack/repos/builtin/packages/cni-plugins/package.py
index fae4704a59d3ee..baaec3a7a73eeb 100644
--- a/var/spack/repos/builtin/packages/cni-plugins/package.py
+++ b/var/spack/repos/builtin/packages/cni-plugins/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class CniPlugins(Package):
url = "https://github.com/containernetworking/plugins/archive/v1.0.1.tar.gz"
maintainers("bernhardkaindl")
+ license("Apache-2.0")
+
version("1.3.0", sha256="f9871b9f6ccb51d2b264532e96521e44f926928f91434b56ce135c95becf2901")
version("1.2.0", sha256="f3496ddda9c7770a0b695b67ae7ee80a4ee331ac2745af4830054b81627f79b7")
version("1.1.1", sha256="c86c44877c47f69cd23611e22029ab26b613f620195b76b3ec20f589367a7962")
diff --git a/var/spack/repos/builtin/packages/cnmem/package.py b/var/spack/repos/builtin/packages/cnmem/package.py
index d0302e46b772db..16d2066fc55166 100644
--- a/var/spack/repos/builtin/packages/cnmem/package.py
+++ b/var/spack/repos/builtin/packages/cnmem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Cnmem(CMakePackage):
homepage = "https://github.com/NVIDIA/cnmem"
git = "https://github.com/NVIDIA/cnmem.git"
+ license("BSD-3-Clause")
+
version("git", branch="master")
depends_on("cmake@2.8.8:", type="build")
diff --git a/var/spack/repos/builtin/packages/cnpy/package.py b/var/spack/repos/builtin/packages/cnpy/package.py
index fd01cdd3d94cdd..b49556c659718e 100644
--- a/var/spack/repos/builtin/packages/cnpy/package.py
+++ b/var/spack/repos/builtin/packages/cnpy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cnpy(CMakePackage):
homepage = "https://github.com/rogersce/cnpy"
git = "https://github.com/rogersce/cnpy.git"
+ license("MIT")
+
version("master", branch="master")
depends_on("zlib-api", type="link")
diff --git a/var/spack/repos/builtin/packages/cntk/package.py b/var/spack/repos/builtin/packages/cntk/package.py
index 82741a74fbb602..03130fa0b4f634 100644
--- a/var/spack/repos/builtin/packages/cntk/package.py
+++ b/var/spack/repos/builtin/packages/cntk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cntk1bitsgd/package.py b/var/spack/repos/builtin/packages/cntk1bitsgd/package.py
index ffb7a6e198df40..feccadb01cdd99 100644
--- a/var/spack/repos/builtin/packages/cntk1bitsgd/package.py
+++ b/var/spack/repos/builtin/packages/cntk1bitsgd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cnvnator/package.py b/var/spack/repos/builtin/packages/cnvnator/package.py
index 01489a2d7539e4..e4348104db4c02 100644
--- a/var/spack/repos/builtin/packages/cnvnator/package.py
+++ b/var/spack/repos/builtin/packages/cnvnator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/codar-cheetah/package.py b/var/spack/repos/builtin/packages/codar-cheetah/package.py
index 7ffd3b73540f26..f1a97d842b398a 100644
--- a/var/spack/repos/builtin/packages/codar-cheetah/package.py
+++ b/var/spack/repos/builtin/packages/codar-cheetah/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/code-server/package.py b/var/spack/repos/builtin/packages/code-server/package.py
index 6d32b4dedaf047..e208405387efeb 100644
--- a/var/spack/repos/builtin/packages/code-server/package.py
+++ b/var/spack/repos/builtin/packages/code-server/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/codec2/package.py b/var/spack/repos/builtin/packages/codec2/package.py
index c0d21543818898..5639ee6d5dcc2e 100644
--- a/var/spack/repos/builtin/packages/codec2/package.py
+++ b/var/spack/repos/builtin/packages/codec2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Codec2(CMakePackage):
homepage = "https://www.rowetel.com/?page_id=452"
url = "https://github.com/drowe67/codec2/archive/v0.9.2.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("1.1.0", sha256="d56ba661008a780b823d576a5a2742c94d0b0507574643a7d4f54c76134826a3")
version("1.0.5", sha256="cd9a065dd1c3477f6172a0156294f767688847e4d170103d1f08b3a075f82826")
version("0.9.2", sha256="19181a446f4df3e6d616b50cabdac4485abb9cd3242cf312a0785f892ed4c76c")
diff --git a/var/spack/repos/builtin/packages/codecov/package.py b/var/spack/repos/builtin/packages/codecov/package.py
index f8594ed04bab45..071af19ba35707 100644
--- a/var/spack/repos/builtin/packages/codecov/package.py
+++ b/var/spack/repos/builtin/packages/codecov/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/codes/package.py b/var/spack/repos/builtin/packages/codes/package.py
index e2b7374f62ee4c..1614166e288975 100644
--- a/var/spack/repos/builtin/packages/codes/package.py
+++ b/var/spack/repos/builtin/packages/codes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/coevp/package.py b/var/spack/repos/builtin/packages/coevp/package.py
index 85e5c4f1b8fd6a..589a9253a32c38 100644
--- a/var/spack/repos/builtin/packages/coevp/package.py
+++ b/var/spack/repos/builtin/packages/coevp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cohmm/package.py b/var/spack/repos/builtin/packages/cohmm/package.py
index 87b4f10b895d08..feb7881e3f0981 100644
--- a/var/spack/repos/builtin/packages/cohmm/package.py
+++ b/var/spack/repos/builtin/packages/cohmm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/coin3d/package.py b/var/spack/repos/builtin/packages/coin3d/package.py
index a7aaea76b98feb..a184e68e2c8e2e 100644
--- a/var/spack/repos/builtin/packages/coin3d/package.py
+++ b/var/spack/repos/builtin/packages/coin3d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Coin3d(AutotoolsPackage, CMakePackage):
homepage = "https://github.com/coin3d/coin"
url = "https://github.com/coin3d/coin/releases/download/Coin-4.0.0/coin-4.0.0-src.tar.gz"
+ license("BSD-3-Clause")
+
version("4.0.0", sha256="e4f4bd57804b8ed0e017424ad2e45c112912a928b83f86c89963df9015251476")
version("3.1.0", sha256="70dd5ef39406e1d9e05eeadd54a5b51884a143e127530876a97744ca54173dc3")
version("3.0.0", sha256="d5c2eb0ecaa5c83d93daf0e9e275e58a6a8dfadc74c873d51b0c939011f81bfa")
diff --git a/var/spack/repos/builtin/packages/coinhsl/package.py b/var/spack/repos/builtin/packages/coinhsl/package.py
index 52193a71264b39..9c2706318165c0 100644
--- a/var/spack/repos/builtin/packages/coinhsl/package.py
+++ b/var/spack/repos/builtin/packages/coinhsl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/coinutils/package.py b/var/spack/repos/builtin/packages/coinutils/package.py
index d860db2fe8da8d..8635fc11bb176b 100644
--- a/var/spack/repos/builtin/packages/coinutils/package.py
+++ b/var/spack/repos/builtin/packages/coinutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Coinutils(AutotoolsPackage):
homepage = "https://projects.coin-or.org/Coinutils"
url = "https://github.com/coin-or/CoinUtils/archive/releases/2.11.4.tar.gz"
+ license("EPL-2.0")
+
version("2.11.9", sha256="15d572ace4cd3b7c8ce117081b65a2bd5b5a4ebaba54fadc99c7a244160f88b8")
version("2.11.6", sha256="6ea31d5214f7eb27fa3ffb2bdad7ec96499dd2aaaeb4a7d0abd90ef852fc79ca")
version("2.11.4", sha256="d4effff4452e73356eed9f889efd9c44fe9cd68bd37b608a5ebb2c58bd45ef81")
diff --git a/var/spack/repos/builtin/packages/collectd/package.py b/var/spack/repos/builtin/packages/collectd/package.py
index 167a1ba81a615c..50c4b1fa512891 100644
--- a/var/spack/repos/builtin/packages/collectd/package.py
+++ b/var/spack/repos/builtin/packages/collectd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Collectd(AutotoolsPackage):
homepage = "https://collectd.org/"
url = "https://github.com/collectd/collectd/releases/download/collectd-5.11.0/collectd-5.11.0.tar.bz2"
+ license("GPL-2.0-or-later")
+
version("5.12.0", sha256="5bae043042c19c31f77eb8464e56a01a5454e0b39fa07cf7ad0f1bfc9c3a09d6")
version("5.11.0", sha256="37b10a806e34aa8570c1cafa6006c604796fae13cc2e1b3e630d33dcba9e5db2")
version("5.10.0", sha256="a03359f563023e744c2dc743008a00a848f4cd506e072621d86b6d8313c0375b")
diff --git a/var/spack/repos/builtin/packages/collier/package.py b/var/spack/repos/builtin/packages/collier/package.py
index 98407d7c22076a..a15ee75b9c13ec 100644
--- a/var/spack/repos/builtin/packages/collier/package.py
+++ b/var/spack/repos/builtin/packages/collier/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Collier(CMakePackage):
maintainers("vvolkl")
+ license("GPL-3.0-only")
+
version("1.2.8", sha256="5cb24ce24ba1f62b7a96c655b31e9fddccc603eff31e60f9033b16354a6afd89")
version("1.2.7", sha256="fde4b144a17c1bf5aa2ceaa86c71c79da10c9de8fec7bd33c8bffb4198acd5ca")
version("1.2.6", sha256="b0d517868c71d2d1b8b6d3e0c370a43c9eb18ea8393a6e80070a5a2206f7de36")
diff --git a/var/spack/repos/builtin/packages/colm/package.py b/var/spack/repos/builtin/packages/colm/package.py
index 10408604a061ae..500337d3bd120f 100644
--- a/var/spack/repos/builtin/packages/colm/package.py
+++ b/var/spack/repos/builtin/packages/colm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,4 +16,6 @@ class Colm(AutotoolsPackage):
homepage = "https://www.colm.net/open-source/colm"
url = "https://www.colm.net/files/colm/colm-0.12.0.tar.gz"
+ license("GPL-2.0-only")
+
version("0.12.0", sha256="7b545d74bd139f5c622975d243c575310af1e4985059a1427b6fdbb1fb8d6e4d")
diff --git a/var/spack/repos/builtin/packages/colordiff/package.py b/var/spack/repos/builtin/packages/colordiff/package.py
index 7c4deebdd80d5d..8b7750aa8a4d94 100644
--- a/var/spack/repos/builtin/packages/colordiff/package.py
+++ b/var/spack/repos/builtin/packages/colordiff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Colordiff(Package):
homepage = "https://www.colordiff.org"
url = "https://www.colordiff.org/archive/colordiff-1.0.18.tar.gz"
+ license("GPL-2.0-or-later")
+
version("1.0.21", sha256="9b30f4257ef0f0806dea5a27c9ad8edc3f7999f05ddaff6f0627064dc927e615")
version("1.0.19", sha256="46e8c14d87f6c4b77a273cdd97020fda88d5b2be42cf015d5d84aca3dfff3b19")
version("1.0.18", sha256="29cfecd8854d6e19c96182ee13706b84622d7b256077df19fbd6a5452c30d6e0")
diff --git a/var/spack/repos/builtin/packages/comd/package.py b/var/spack/repos/builtin/packages/comd/package.py
index d6991b3b890bcb..f6c846325942f0 100644
--- a/var/spack/repos/builtin/packages/comd/package.py
+++ b/var/spack/repos/builtin/packages/comd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/comgr/package.py b/var/spack/repos/builtin/packages/comgr/package.py
index a17bcc7e9426a6..f8bbd4e526980d 100644
--- a/var/spack/repos/builtin/packages/comgr/package.py
+++ b/var/spack/repos/builtin/packages/comgr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,15 +12,20 @@ class Comgr(CMakePackage):
"""This provides various Lightning Compiler related services. It currently
contains one library, the Code Object Manager (Comgr)"""
- homepage = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport"
- git = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport.git"
- url = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/archive/rocm-5.5.0.tar.gz"
+ homepage = "https://github.com/ROCm/ROCm-CompilerSupport"
+ git = "https://github.com/ROCm/ROCm-CompilerSupport.git"
+ url = "https://github.com/ROCm/ROCm-CompilerSupport/archive/rocm-6.0.0.tar.gz"
tags = ["rocm"]
maintainers("srekolam", "renjithravindrankannath", "haampie")
libraries = ["libamd_comgr"]
+ license("NCSA")
+
version("master", branch="amd-stg-open")
+ version("6.0.0", sha256="04353d27a512642a5e5339532a39d0aabe44e0964985de37b150a2550385800a")
+ version("5.7.1", sha256="3b9433b4a0527167c3e9dfc37a3c54e0550744b8d4a8e1be298c8d4bcedfee7c")
+ version("5.7.0", sha256="e234bcb93d602377cfaaacb59aeac5796edcd842a618162867b7e670c3a2c42c")
version("5.6.1", sha256="0a85d84619f98be26ca7a32c71f94ed3c4e9866133789eabb451be64ce739300")
version("5.6.0", sha256="9396a7238b547ee68146c669b10b9d5de8f1d76527c649133c75d8076a185a72")
version("5.5.1", sha256="0fbb15fe5a95c2e141ccd360bc413e1feda283334781540a6e5095ab27fd8019")
@@ -146,6 +151,9 @@ class Comgr(CMakePackage):
"5.5.1",
"5.6.0",
"5.6.1",
+ "5.7.0",
+ "5.7.1",
+ "6.0.0",
"master",
]:
# llvm libs are linked statically, so this *could* be a build dep
@@ -157,7 +165,7 @@ class Comgr(CMakePackage):
"rocm-device-libs@" + ver, when="@{0} ^llvm-amdgpu ~rocm-device-libs".format(ver)
)
- for ver in ["5.5.0", "5.5.1", "5.6.0", "5.6.1"]:
+ for ver in ["5.5.0", "5.5.1", "5.6.0", "5.6.1", "5.7.0", "5.7.1", "6.0.0"]:
depends_on("rocm-core@" + ver, when="@" + ver)
root_cmakelists_dir = join_path("lib", "comgr")
diff --git a/var/spack/repos/builtin/packages/commons-lang/package.py b/var/spack/repos/builtin/packages/commons-lang/package.py
index b00abffb935319..e40f0edcb901d5 100644
--- a/var/spack/repos/builtin/packages/commons-lang/package.py
+++ b/var/spack/repos/builtin/packages/commons-lang/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class CommonsLang(Package):
homepage = "https://commons.apache.org/proper/commons-lang/"
url = "https://archive.apache.org/dist/commons/lang/binaries/commons-lang-2.6-bin.tar.gz"
+ license("Apache-2.0")
+
version("2.6", sha256="ff6a244bb71a9a1c859e81cb744d0ce698c20e04f13a7ef7dbffb99c8122752c")
version("2.4", sha256="00e6b3174e31196d726c14302c8e7e9ba9b8409d57a8a9821c7648beeda31c5e")
diff --git a/var/spack/repos/builtin/packages/commons-lang3/package.py b/var/spack/repos/builtin/packages/commons-lang3/package.py
index 6b03aea6ca1c05..ef05a2e8546608 100644
--- a/var/spack/repos/builtin/packages/commons-lang3/package.py
+++ b/var/spack/repos/builtin/packages/commons-lang3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class CommonsLang3(Package):
homepage = "https://commons.apache.org/proper/commons-lang/"
url = "https://archive.apache.org/dist/commons/lang/binaries/commons-lang3-3.7-bin.tar.gz"
+ license("Apache-2.0")
+
version("3.12.0", sha256="33012465dfcb7f790aca333e09ebf105e2a5fb95c2c638b3df790d3efa908e28")
version("3.7", sha256="94dc8289ce90b77b507d9257784d9a43b402786de40c164f6e3990e221a2a4d2")
diff --git a/var/spack/repos/builtin/packages/commons-logging/package.py b/var/spack/repos/builtin/packages/commons-logging/package.py
index ddae06d5c32637..fcca2ba17851f8 100644
--- a/var/spack/repos/builtin/packages/commons-logging/package.py
+++ b/var/spack/repos/builtin/packages/commons-logging/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class CommonsLogging(Package):
homepage = "https://commons.apache.org/proper/commons-logging/"
url = "https://archive.apache.org/dist/commons/logging/binaries/commons-logging-1.2-bin.tar.gz"
+ license("Apache-2.0")
+
version("1.2", sha256="3f758805c7290d9c6d22d1451587c9f7232744aef4c984e88aa683cdea0587bd")
version("1.1.3", sha256="9e7093c93529792563b5c19ab5cccb73ef4ca7d82b886bdec6d0af182ba9908a")
version("1.1.1", sha256="88c721d66f570a87f710a2449f0e3bffea86489d9dd2fa70b805104c4f8d69e6")
diff --git a/var/spack/repos/builtin/packages/compadre/package.py b/var/spack/repos/builtin/packages/compadre/package.py
index 74a17dd10af8b8..9897f7958aea80 100644
--- a/var/spack/repos/builtin/packages/compadre/package.py
+++ b/var/spack/repos/builtin/packages/compadre/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/compiz/package.py b/var/spack/repos/builtin/packages/compiz/package.py
index a94f5214a5af91..a6805d07487ebb 100644
--- a/var/spack/repos/builtin/packages/compiz/package.py
+++ b/var/spack/repos/builtin/packages/compiz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Compiz(AutotoolsPackage, XorgPackage):
homepage = "http://www.compiz.org/"
xorg_mirror_path = "app/compiz-0.7.8.tar.gz"
+ license("MIT")
+
version("0.7.8", sha256="b46f52b776cc78e85357a07688d04b36ec19c65eadeaf6f6cfcca7b8515e6503")
depends_on("libxcb")
diff --git a/var/spack/repos/builtin/packages/composable-kernel/package.py b/var/spack/repos/builtin/packages/composable-kernel/package.py
index 85b383896a8af9..10bdf7183cc1bf 100644
--- a/var/spack/repos/builtin/packages/composable-kernel/package.py
+++ b/var/spack/repos/builtin/packages/composable-kernel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,14 +11,19 @@ class ComposableKernel(CMakePackage):
"""Composable Kernel: Performance Portable Programming Model
for Machine Learning Tensor Operators."""
- homepage = "https://github.com/ROCmSoftwarePlatform/composable_kernel"
- git = "https://github.com/ROCmSoftwarePlatform/composable_kernel.git"
-
+ homepage = "https://github.com/ROCm/composable_kernel"
+ git = "https://github.com/ROCm/composable_kernel.git"
+ url = "https://github.com/ROCm/composable_kernel/archive/refs/tags/rocm-5.7.1.tar.gz"
maintainers("srekolam", "afzpatel")
+ license("MIT")
+
version("master", branch="develop")
+ version("6.0.0", sha256="a8f736f2f2a8afa4cddd06301205be27774d85f545429049b4a2bbbe6fcd67df")
+ version("5.7.1", sha256="75f66e023c2e31948e91fa26366eaeac72d871fc2e5188361d4465179f13876e")
+ version("5.7.0", sha256="d9624dbaef04e0138f9f73596c49b4fe9ded69974bae7236354baa32649bf21a")
version("5.6.1", commit="f5ec04f091fa5c48c67d7bacec36a414d0be06a5")
- version("5.6.0", commit="f0fd02634c2f8f8c70f5a0ab2a8c84db5e36eeca")
+ version("5.6.0", commit="f5ec04f091fa5c48c67d7bacec36a414d0be06a5")
version("5.5.1", commit="ac9e01e2cc3721be24619807adc444e1f59a9d25")
version("5.5.0", commit="8b76b832420a3d69708401de6607a033163edcce")
version("5.4.3", commit="bb3d9546f186e39cefedc3e7f01d88924ba20168")
@@ -42,7 +47,18 @@ class ComposableKernel(CMakePackage):
depends_on("pkgconfig", type="build")
depends_on("cmake@3.16:", type="build")
- for ver in ["master", "5.6.1", "5.6.0", "5.5.1", "5.5.0", "5.4.3", "5.4.0"]:
+ for ver in [
+ "master",
+ "6.0.0",
+ "5.7.1",
+ "5.7.0",
+ "5.6.1",
+ "5.6.0",
+ "5.5.1",
+ "5.5.0",
+ "5.4.3",
+ "5.4.0",
+ ]:
depends_on("hip@" + ver, when="@" + ver)
depends_on("llvm-amdgpu@" + ver, when="@" + ver)
depends_on("rocm-cmake@" + ver, when="@" + ver, type="build")
@@ -64,14 +80,14 @@ def cmake_args(self):
]
if "auto" not in self.spec.variants["amdgpu_target"]:
args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target"))
- if self.spec.satisfies("@5.6.1:"):
+ if self.spec.satisfies("@5.6.0:"):
args.append(self.define("INSTANCES_ONLY", "ON"))
return args
def build(self, spec, prefix):
with working_dir(self.build_directory):
# only instances is necessary to build and install
- if self.spec.satisfies("@5.6.1:"):
+ if self.spec.satisfies("@5.6.0:"):
make()
else:
make("instances")
diff --git a/var/spack/repos/builtin/packages/compose/package.py b/var/spack/repos/builtin/packages/compose/package.py
index 61327b38503de1..59e00555fdf5ad 100644
--- a/var/spack/repos/builtin/packages/compose/package.py
+++ b/var/spack/repos/builtin/packages/compose/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/compositeproto/package.py b/var/spack/repos/builtin/packages/compositeproto/package.py
index ef341522fa8ced..9d65fd0e2cf414 100644
--- a/var/spack/repos/builtin/packages/compositeproto/package.py
+++ b/var/spack/repos/builtin/packages/compositeproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/conda4aarch64/package.py b/var/spack/repos/builtin/packages/conda4aarch64/package.py
index df01d2136a719b..3901cf91bd525f 100644
--- a/var/spack/repos/builtin/packages/conda4aarch64/package.py
+++ b/var/spack/repos/builtin/packages/conda4aarch64/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/conduit/package.py b/var/spack/repos/builtin/packages/conduit/package.py
index 2762c5781d3db7..05f7d663b0f2c8 100644
--- a/var/spack/repos/builtin/packages/conduit/package.py
+++ b/var/spack/repos/builtin/packages/conduit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -38,6 +38,8 @@ class Conduit(CMakePackage):
git = "https://github.com/LLNL/conduit.git"
tags = ["radiuss", "e4s"]
+ license("Apache-2.0")
+
version("develop", branch="develop", submodules=True)
# note: the main branch in conduit was renamed to develop, this next entry
# is to bridge any spack dependencies that are still using the name master
diff --git a/var/spack/repos/builtin/packages/conmon/package.py b/var/spack/repos/builtin/packages/conmon/package.py
index 5c7c4020cbcfe5..f15f3affbd6045 100644
--- a/var/spack/repos/builtin/packages/conmon/package.py
+++ b/var/spack/repos/builtin/packages/conmon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Conmon(MakefilePackage):
url = "https://github.com/containers/conmon/archive/v2.0.30.tar.gz"
maintainers("bernhardkaindl")
+ license("Apache-2.0")
+
version("2.1.7", sha256="7d0f9a2f7cb8a76c51990128ac837aaf0cc89950b6ef9972e94417aa9cf901fe")
version("2.1.5", sha256="ee3179ee2b9a9107acec00eb546062cf7deb847f135a3b81503d22b0d226b3ed")
version("2.0.30", sha256="4b0a98fbe8a63c42f60edac25c19aa6606caa7b1e4fe7846fc7f7de0b566ba25")
diff --git a/var/spack/repos/builtin/packages/connect-proxy/package.py b/var/spack/repos/builtin/packages/connect-proxy/package.py
index e1fbb1391b78e5..8072fd34039549 100644
--- a/var/spack/repos/builtin/packages/connect-proxy/package.py
+++ b/var/spack/repos/builtin/packages/connect-proxy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/conquest/package.py b/var/spack/repos/builtin/packages/conquest/package.py
index 29e9fa5777bc3f..32ab7d77792f4c 100644
--- a/var/spack/repos/builtin/packages/conquest/package.py
+++ b/var/spack/repos/builtin/packages/conquest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Conquest(MakefilePackage):
# notify when the package is updated.
maintainers("davidbowler", "tkoskela", "ilectra")
+ license("MIT")
+
version("1.2", sha256="74d974f20ec15ff31d97cd42aae6dbe95288eedfa785896d5872b9ff44ee7ae2")
version("1.1", sha256="772e058f073cccfee45521aa62bb13192ab07cb2979b6076ddbf21ba22f9ba5d")
version("master", branch="master")
@@ -49,6 +51,15 @@ class Conquest(MakefilePackage):
build_directory = "src"
+ # The SYSTEM variable is required above version 1.2.
+ # Versions 1.2 and older should ignore it.
+ @property
+ def build_targets(self):
+ if self.version > Version("1.2"):
+ return ["SYSTEM = example", "Conquest"]
+ else:
+ return ["Conquest"]
+
def edit(self, spec, prefix):
fflags = "-O3 -fallow-argument-mismatch"
ldflags = ""
@@ -63,12 +74,23 @@ def edit(self, spec, prefix):
lapack_ld = self.spec["lapack"].libs.ld_flags
blas_ld = self.spec["blas"].libs.ld_flags
-
- defs_file = FileFilter("./src/system.make")
-
- defs_file.filter("COMPFLAGS=.*", f"COMPFLAGS= {fflags}")
- defs_file.filter("LINKFLAGS=.*", f"LINKFLAGS= {ldflags}")
- defs_file.filter("# BLAS=.*", f"BLAS= {lapack_ld} -llapack {blas_ld} -lblas")
+ fftw_ld = self.spec["fftw"].libs.ld_flags
+ libxc_ld = self.spec["libxc"].libs.ld_flags
+
+ # Starting from 1.3 there's automated logic in the Makefile that picks
+ # from a list of possible files for system/compiler-specific definitions.
+ # This is useful for manual builds, but since the spack will do its own
+ # automation of compiler-specific flags, we will override it.
+ if self.version > Version("1.2"):
+ defs_file = FileFilter("./src/system/system.example.make")
+ else:
+ defs_file = FileFilter("./src/system.make")
+
+ defs_file.filter(".*COMPFLAGS=.*", f"COMPFLAGS= {fflags}")
+ defs_file.filter(".*LINKFLAGS=.*", f"LINKFLAGS= {ldflags}")
+ defs_file.filter(".*BLAS=.*", f"BLAS= {lapack_ld} {blas_ld}")
+ defs_file.filter(".*FFT_LIB=.*", f"FFT_LIB={fftw_ld}")
+ defs_file.filter(".*XC_LIB=.*", f"XC_LIB={libxc_ld} -lxcf90 -lxc")
if "+openmp" in self.spec:
defs_file.filter("OMP_DUMMY = DUMMY", "OMP_DUMMY = ")
@@ -81,3 +103,5 @@ def edit(self, spec, prefix):
def install(self, spec, prefix):
mkdirp(prefix.bin)
install("./bin/Conquest", prefix.bin)
+ if self.version > Version("1.2"):
+ install_tree("./benchmarks/", join_path(prefix, "benchmarks"))
diff --git a/var/spack/repos/builtin/packages/conserver/package.py b/var/spack/repos/builtin/packages/conserver/package.py
index 987bd959db66e7..599104957ca3b6 100644
--- a/var/spack/repos/builtin/packages/conserver/package.py
+++ b/var/spack/repos/builtin/packages/conserver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Conserver(AutotoolsPackage):
homepage = "https://www.conserver.com/"
url = "https://github.com/bstansell/conserver/releases/download/v8.2.5/conserver-8.2.5.tar.gz"
+ license("BSD-3-Clause")
+
version("8.2.7", sha256="0607f2147a4d384f1e677fbe4e6c68b66a3f015136b21bcf83ef9575985273d8")
version("8.2.5", sha256="7db192f304126d7e5c15421c4c83cd5c08039f2f2b3c61b2998e71881ae47eea")
version("8.2.4", sha256="a591eabb4abb632322d2f3058a2f0bd6502754069a99a153efe2d6d05bd97f6f")
diff --git a/var/spack/repos/builtin/packages/console-bridge/package.py b/var/spack/repos/builtin/packages/console-bridge/package.py
index 322b4fe027c164..bff4b72b4ed9a7 100644
--- a/var/spack/repos/builtin/packages/console-bridge/package.py
+++ b/var/spack/repos/builtin/packages/console-bridge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class ConsoleBridge(CMakePackage):
homepage = "https://github.com/ros/console_bridge/"
url = "https://github.com/ros/console_bridge/archive/1.0.1.tar.gz"
+ license("BSD-3-Clause")
+
version("1.0.2", sha256="303a619c01a9e14a3c82eb9762b8a428ef5311a6d46353872ab9a904358be4a4")
version("1.0.1", sha256="2ff175a9bb2b1849f12a6bf972ce7e4313d543a2bbc83b60fdae7db6e0ba353f")
version("1.0.0", sha256="880bbded7fcdc71479e9b1efc3ba5353f08eed23f0009c93d6bea8ba3974d078")
diff --git a/var/spack/repos/builtin/packages/constype/package.py b/var/spack/repos/builtin/packages/constype/package.py
index c542b487f2313f..0ed38e823589d0 100644
--- a/var/spack/repos/builtin/packages/constype/package.py
+++ b/var/spack/repos/builtin/packages/constype/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/consul/package.py b/var/spack/repos/builtin/packages/consul/package.py
index 3a9363ce1c233f..9c3f30bf82caf6 100644
--- a/var/spack/repos/builtin/packages/consul/package.py
+++ b/var/spack/repos/builtin/packages/consul/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Consul(MakefilePackage):
homepage = "https://www.consul.io"
url = "https://github.com/hashicorp/consul/archive/v1.8.1.tar.gz"
+ license("MPL-2.0")
+
version("1.15.3", sha256="5137e9831b4bc094c8ce5be64c661dc0d9a96ee9509d756030d60d4bcca42503")
version("1.8.1", sha256="c173e9866e6181b3679a942233adade118976414f6ca2da8deaea0fa2bba9b06")
version("1.8.0", sha256="a87925bde6aecddf532dfd050e907b6a0a6447cdd5dc4f49b46d97c9f73b58f9")
diff --git a/var/spack/repos/builtin/packages/converge/package.py b/var/spack/repos/builtin/packages/converge/package.py
index cf2d63c8a71dfe..1ae48070c19726 100644
--- a/var/spack/repos/builtin/packages/converge/package.py
+++ b/var/spack/repos/builtin/packages/converge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cool/package.py b/var/spack/repos/builtin/packages/cool/package.py
index 9418a16cbeb5d4..c849e48149d617 100644
--- a/var/spack/repos/builtin/packages/cool/package.py
+++ b/var/spack/repos/builtin/packages/cool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,7 +14,6 @@ class Cool(CMakePackage):
git = "https://gitlab.cern.ch/lcgcool/cool.git"
tags = ["hep"]
- maintainers("iarspider")
version("3.3.10", tag="COOL_3_3_10", commit="110b51c2b50af07cbe1f64a1c67ce9f737c4421d")
version("3.3.7", tag="COOL_3_3_7", commit="6f9a29d903e51ecbb26bdc8a694a67db9f28e234")
diff --git a/var/spack/repos/builtin/packages/coordgen/package.py b/var/spack/repos/builtin/packages/coordgen/package.py
index 4796408e4dafd0..b0a6f70675296e 100644
--- a/var/spack/repos/builtin/packages/coordgen/package.py
+++ b/var/spack/repos/builtin/packages/coordgen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Coordgen(CMakePackage):
maintainers("RMeli")
+ license("BSD-3-Clause")
+
version("3.0.2", sha256="f67697434f7fec03bca150a6d84ea0e8409f6ec49d5aab43badc5833098ff4e3")
variant("maeparser", default=True, description="Use MAE parser")
diff --git a/var/spack/repos/builtin/packages/coral/package.py b/var/spack/repos/builtin/packages/coral/package.py
index 8d1db303b06cb3..56e20a06391704 100644
--- a/var/spack/repos/builtin/packages/coral/package.py
+++ b/var/spack/repos/builtin/packages/coral/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/corenlp/package.py b/var/spack/repos/builtin/packages/corenlp/package.py
index 9aa82e1d6cb629..d834d95fb8c1dd 100644
--- a/var/spack/repos/builtin/packages/corenlp/package.py
+++ b/var/spack/repos/builtin/packages/corenlp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Corenlp(Package):
homepage = "https://stanfordnlp.github.io/CoreNLP/index.html"
url = "https://github.com/stanfordnlp/CoreNLP/archive/v4.0.0.tar.gz"
+ license("GPL-3.0-only")
+
version("4.0.0", sha256="07195eed46dd39bdc364d3988da8ec6a5fc9fed8c17613cfe5a8b84d649c8f0f")
resources = [("4.0.0", "f45bde062fb368d72f7d3c7ac1ddc6cfb61d3badc1152572bde17f1a5ed9ec94")]
diff --git a/var/spack/repos/builtin/packages/coreutils/package.py b/var/spack/repos/builtin/packages/coreutils/package.py
index 28b43c655bb556..c2f416d01c3eb4 100644
--- a/var/spack/repos/builtin/packages/coreutils/package.py
+++ b/var/spack/repos/builtin/packages/coreutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -22,6 +22,8 @@ class Coreutils(AutotoolsPackage, GNUMirrorPackage):
executables = [r"^md5sum$"]
+ license("GPL-3.0-or-later")
+
version("9.3", sha256="adbcfcfe899235b71e8768dcf07cd532520b7f54f9a8064843f8d199a904bbaa")
version("9.2", sha256="6885ff47b9cdb211de47d368c17853f406daaf98b148aaecdf10de29cc04b0b3")
version("9.1", sha256="61a1f410d78ba7e7f37a5a4f50e6d1320aca33375484a3255eddf17a38580423")
diff --git a/var/spack/repos/builtin/packages/corset/package.py b/var/spack/repos/builtin/packages/corset/package.py
index 66428265dede82..51124253c158cc 100644
--- a/var/spack/repos/builtin/packages/corset/package.py
+++ b/var/spack/repos/builtin/packages/corset/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Corset(Package):
homepage = "https://github.com/Oshlack/Corset/wiki"
url = "https://github.com/Oshlack/Corset/releases/download/version-1.09/corset-1.09-linux64.tar.gz"
+ license("GPL-3.0-only")
+
version("1.09", sha256="9c349afc5a66c43e6b73c62f5d3166dac2fd06696aa40cff648226a5d0427a59")
version("1.06", sha256="4aff83844461cea1edfce3d89776236c300650fc02b497cc9f11eba42d161b60")
diff --git a/var/spack/repos/builtin/packages/cosbench/package.py b/var/spack/repos/builtin/packages/cosbench/package.py
index a496b6b528714d..43da309ece80c1 100644
--- a/var/spack/repos/builtin/packages/cosbench/package.py
+++ b/var/spack/repos/builtin/packages/cosbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Cosbench(Package):
homepage = "https://github.com/intel-cloud/cosbench"
url = "https://github.com/intel-cloud/cosbench/releases/download/v0.4.2/0.4.2.zip"
+ license("Apache-2.0")
+
version("0.4.2", sha256="9e82518d4fac3c23cfac47c8a571d4a61bf8e5f11286606c79a0f923e983dc61")
version("0.4.1.0", sha256="a044cd232b3cc376802aa6a4a697988ec690a8b1d70040641710066acd322c5a")
version("0.4.0.1", sha256="384e4de218a9a61040f45cf9aa0a555e88ff25fb2b5cd11c540627cd604b4961")
diff --git a/var/spack/repos/builtin/packages/cosign/package.py b/var/spack/repos/builtin/packages/cosign/package.py
index 2805e91d0530cd..5320ab9fb013ef 100644
--- a/var/spack/repos/builtin/packages/cosign/package.py
+++ b/var/spack/repos/builtin/packages/cosign/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Cosign(Package):
url = "https://github.com/sigstore/cosign/archive/refs/tags/v1.3.1.tar.gz"
git = "https://github.com/sigstore/cosign.git"
+ license("Apache-2.0")
+
version("main", branch="main")
version("1.3.1", sha256="7f7e0af52ee8d795440e66dcc1a7a25783e22d30935f4f957779628b348f38af")
diff --git a/var/spack/repos/builtin/packages/cosma/fj-ssl2.patch b/var/spack/repos/builtin/packages/cosma/fj-ssl2.patch
new file mode 100644
index 00000000000000..3e09383d67a8eb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cosma/fj-ssl2.patch
@@ -0,0 +1,104 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1fd1e55..41a041b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -19,7 +19,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS "YES") # always write compile_commands.json
+
+ set(COSMA_GPU_BACKENDS_LIST "CUDA" "ROCM")
+ set(COSMA_SCALAPACK_LIST "OFF" "MKL" "CRAY_LIBSCI" "CUSTOM")
+-set(COSMA_BLAS_LIST "auto" "MKL" "OPENBLAS" "CRAY_LIBSCI" "CUSTOM" "BLIS" "ATLAS" "CUDA" "ROCM" "OFF")
++set(COSMA_BLAS_LIST "auto" "MKL" "SSL2" "OPENBLAS" "CRAY_LIBSCI" "CUSTOM" "BLIS" "ATLAS" "CUDA" "ROCM" "OFF")
+ option(COSMA_WITH_TESTS "Generate the test target." ON)
+ option(COSMA_WITH_APPS "Generate the miniapp targets." ON)
+ option(COSMA_WITH_BENCHMARKS "Generate the benchmark targets." ON)
+@@ -45,7 +45,7 @@ if (COSMA_BLAS MATCHES "CUDA|ROCM")
+ set(COSMA_GPU_BACKEND ${COSMA_BLAS})
+ else()
+ if(COSMA_BLAS STREQUAL "OFF")
+- message(FATAL_ERROR "A Blas implementation is needed when running on CPU only: choices are : auto, MKL, OPENBLAS, CRAY_LIBSCI, CUSTOM, BLIS, ATLAS, FLEXIBLAS, ARMPL, GenericBLAS")
++ message(FATAL_ERROR "A Blas implementation is needed when running on CPU only: choices are : auto, MKL, SSL2, OPENBLAS, CRAY_LIBSCI, CUSTOM, BLIS, ATLAS, FLEXIBLAS, ARMPL, GenericBLAS")
+ else()
+ set(COSMA_BLAS_VENDOR ${COSMA_BLAS})
+ endif()
+@@ -190,6 +190,7 @@ install(FILES "${cosma_BINARY_DIR}/cosmaConfig.cmake"
+ "${cosma_BINARY_DIR}/cosmaConfigVersion.cmake"
+ "${cosma_BINARY_DIR}/cosmaConfigVersion.cmake"
+ "${cosma_SOURCE_DIR}/cmake/FindMKL.cmake"
++ "${cosma_SOURCE_DIR}/cmake/FindSSL2.cmake"
+ "${cosma_SOURCE_DIR}/cmake/FindBlas.cmake"
+ "${cosma_SOURCE_DIR}/cmake/FindSCALAPACK.cmake"
+ "${cosma_SOURCE_DIR}/cmake/FindOPENBLAS.cmake"
+diff --git a/cmake/FindBlas.cmake b/cmake/FindBlas.cmake
+index aef956c..3c47561 100644
+--- a/cmake/FindBlas.cmake
++++ b/cmake/FindBlas.cmake
+@@ -14,6 +14,7 @@ endif()
+ set(COSMA_BLAS_VENDOR_LIST
+ "auto"
+ "MKL"
++ "SSL2"
+ "OPENBLAS"
+ "FLEXIBLAS"
+ "ARMPL"
+diff --git a/cmake/FindSSL2.cmake b/cmake/FindSSL2.cmake
+new file mode 100644
+index 0000000..f0e11bf
+--- /dev/null
++++ b/cmake/FindSSL2.cmake
+@@ -0,0 +1,56 @@
++#.rst:
++# FindSSL2
++# -----------
++#
++# This module tries to find the SSL2 library.
++#
++# The following variables are set
++#
++# ::
++#
++# SSL2_FOUND - True if ssl2 is found
++# SSL2_LIBRARIES - The required libraries
++# SSL2_INCLUDE_DIRS - The required include directory
++#
++# The following import target is created
++#
++# ::
++#
++# SSL2::ssl2
++
++#set paths to look for library from ROOT variables.If new policy is set, find_library() automatically uses them.
++# if(NOT POLICY CMP0074)
++set(_SSL2_PATHS ${SSL2_ROOT}
++ $ENV{SSL2_ROOT}
++ $ENV{SSL2ROOT}
++ $ENV{SSL2_DIR}
++ $ENV{SSL2DIR})
++# endif()
++
++find_library(
++ COSMA_SSL2_LINK_LIBRARIES
++ NAMES "fjlapackex"
++ HINTS ${_SSL2_PATHS}
++ PATH_SUFFIXES "lib64"
++)
++find_path(
++ COSMA_SSL2_INCLUDE_DIRS
++ NAMES "cblas.h"
++ HINTS ${_SSL2_PATHS}
++ PATH_SUFFIXES "include"
++)
++
++# check if found
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(SSL2 REQUIRED_VARS COSMA_SSL2_INCLUDE_DIRS COSMA_SSL2_LINK_LIBRARIES)
++
++# add target to link against
++if(NOT TARGET cosma::BLAS::SSL2::ssl2)
++ add_library(cosma::BLAS::SSL2::ssl2 INTERFACE IMPORTED)
++ add_library(cosma::BLAS::SSL2::blas ALIAS cosma::BLAS::SSL2::ssl2)
++endif()
++set_property(TARGET cosma::BLAS::SSL2::ssl2 PROPERTY INTERFACE_LINK_LIBRARIES ${COSMA_SSL2_LINK_LIBRARIES})
++set_property(TARGET cosma::BLAS::SSL2::ssl2 PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${COSMA_SSL2_INCLUDE_DIRS})
++
++# prevent clutter in cache
++MARK_AS_ADVANCED(SSL2_FOUND SSL2_LIBRARIES SSL2_INCLUDE_DIRS)
diff --git a/var/spack/repos/builtin/packages/cosma/package.py b/var/spack/repos/builtin/packages/cosma/package.py
index 19db9a0531859c..77a9ba7b69a1c4 100644
--- a/var/spack/repos/builtin/packages/cosma/package.py
+++ b/var/spack/repos/builtin/packages/cosma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,13 +17,15 @@ class Cosma(CMakePackage):
url = "https://github.com/eth-cscs/COSMA/archive/refs/tags/v2.6.6.tar.gz"
git = "https://github.com/eth-cscs/COSMA.git"
+ license("BSD-3-Clause")
+
# note: The default archives produced with github do not have the archives
# of the submodules.
version("master", branch="master", submodules=False)
version("2.6.6", sha256="1604be101e77192fbcc5551236bc87888d336e402f5409bbdd9dea900401cc37")
version("2.6.5", sha256="10d9b7ecc1ce44ec5b9e0c0bf89278a63029912ec3ea99661be8576b553ececf")
version("2.6.4", sha256="6d7bd5e3005874af9542a329c93e7ccd29ca1a5573dae27618fac2704fa2b6ab")
- version("2.6.3", sha256="8ca96ca41458f1e9d0da70d524c5a03c677dba7238d23a578f852163b6d45ac9")
+ version("2.6.3", sha256="c2a3735ea8f860930bea6706d968497d72a1be0498c689b5bc4a951ffc2d1146")
version("2.6.2", sha256="2debb5123cc35aeebc5fd2f8a46cfd6356d1e27618c9bb57129ecd09aa400940")
version("2.6.1", sha256="69aa6634a030674f0d9be61e7b0bf0dc17acf0fc9e7a90b40e3179e2254c8d67")
version("2.5.1", sha256="085b7787597374244bbb1eb89bc69bf58c35f6c85be805e881e1c0b25166c3ce")
@@ -39,7 +41,7 @@ class Cosma(CMakePackage):
variant("cuda", default=False, description="Build with cuBLAS support")
variant("rocm", default=False, description="Build with rocBLAS support")
variant("scalapack", default=False, description="Build with ScaLAPACK API")
- variant("shared", default=False, description="Build the shared library version")
+ variant("shared", default=True, description="Build the shared library version")
variant("tests", default=False, description="Build tests")
variant("apps", default=False, description="Build miniapp")
variant("profiling", default=False, description="Enable profiling")
@@ -57,6 +59,8 @@ class Cosma(CMakePackage):
depends_on("scalapack", when="+scalapack")
depends_on("cuda", when="+cuda")
depends_on("rocblas", when="+rocm")
+ depends_on("nccl", when="+nccl")
+ depends_on("rccl", when="+rccl")
with when("@2.6.3:"):
depends_on("tiled-mm@2.2:+cuda", when="+cuda")
@@ -74,6 +78,8 @@ class Cosma(CMakePackage):
depends_on("semiprof", when="+profiling")
depends_on("costa+profiling", when="+profiling")
+ patch("fj-ssl2.patch", when="^fujitsu-ssl2")
+
def setup_build_environment(self, env):
if "+cuda" in self.spec:
env.set("CUDA_PATH", self.spec["cuda"].prefix)
@@ -87,6 +93,7 @@ def cosma_blas_cmake_arg(self):
("^cray-libsci", "CRAY_LIBSCI"),
("^netlib-lapack", "CUSTOM"),
("^openblas", "OPENBLAS"),
+ ("^fujitsu-ssl2", "SSL2"),
]
if self.version >= Version("2.4.0"):
diff --git a/var/spack/repos/builtin/packages/cosmoflow-benchmark/package.py b/var/spack/repos/builtin/packages/cosmoflow-benchmark/package.py
index 2f626438e45509..e9b69678edf391 100644
--- a/var/spack/repos/builtin/packages/cosmoflow-benchmark/package.py
+++ b/var/spack/repos/builtin/packages/cosmoflow-benchmark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cosmomc/package.py b/var/spack/repos/builtin/packages/cosmomc/package.py
index 619a58fe37558c..9e66b8938af2d8 100644
--- a/var/spack/repos/builtin/packages/cosmomc/package.py
+++ b/var/spack/repos/builtin/packages/cosmomc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cosp2/package.py b/var/spack/repos/builtin/packages/cosp2/package.py
index e4ee023d63676c..d16466bad6bf48 100644
--- a/var/spack/repos/builtin/packages/cosp2/package.py
+++ b/var/spack/repos/builtin/packages/cosp2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/costa/package.py b/var/spack/repos/builtin/packages/costa/package.py
index 62e001fc39375e..4e85387a88580a 100644
--- a/var/spack/repos/builtin/packages/costa/package.py
+++ b/var/spack/repos/builtin/packages/costa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Costa(CMakePackage):
homepage = "https://github.com/eth-cscs/COSTA"
git = "https://github.com/eth-cscs/COSTA.git"
+ license("BSD-3-Clause")
+
# note: The default archives produced with github do not have the archives
# of the submodules.
version("master", branch="master", submodules=True)
@@ -27,7 +29,7 @@ class Costa(CMakePackage):
version("2.0", sha256="de250197f31f7d23226c6956a687c3ff46fb0ff6c621a932428236c3f7925fe4")
variant("scalapack", default=False, description="Build with ScaLAPACK API")
- variant("shared", default=False, description="Build shared libraries")
+ variant("shared", default=True, description="Build shared libraries")
variant("profiling", default=False, description="Enable profiling")
variant("tests", default=False, description="Enable tests")
variant("apps", default=False, description="Enable miniapp")
@@ -37,6 +39,7 @@ class Costa(CMakePackage):
depends_on("mpi@3:")
depends_on("scalapack", when="+scalapack")
depends_on("cxxopts", when="+apps")
+ depends_on("cxxopts", when="+tests")
depends_on("semiprof", when="+profiling")
def url_for_version(self, version):
diff --git a/var/spack/repos/builtin/packages/cotter/package.py b/var/spack/repos/builtin/packages/cotter/package.py
index e2427ebe0a3e2b..c38d5352e70e8b 100644
--- a/var/spack/repos/builtin/packages/cotter/package.py
+++ b/var/spack/repos/builtin/packages/cotter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/countdown/package.py b/var/spack/repos/builtin/packages/countdown/package.py
new file mode 100644
index 00000000000000..b2ba2aab72e163
--- /dev/null
+++ b/var/spack/repos/builtin/packages/countdown/package.py
@@ -0,0 +1,87 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Countdown(CMakePackage, CudaPackage):
+ """COUNTDOWN is a tool for identifying and automatically reducing the power
+ consumption of the computing elements, during communication and
+ synchronization primitives, filtering out phases which would detriment the
+ time to solution of the application."""
+
+ homepage = "https://github.com/EEESlab/countdown"
+ url = "https://github.com/EEESlab/countdown/archive/refs/tags/v1.1.1.tar.gz"
+
+ license("BSD-3-Clause")
+
+ maintainers("f-tesser", "danielecesarini")
+
+ version("1.1.1", sha256="ee7f00ffc047f000a21a7a71f6ea6f4049afb1a8407608adc04993929ceba917")
+
+ variant(
+ "acc_mpi",
+ default=True,
+ description="Enable the instrumentation of all accessory MPI functions",
+ )
+ variant(
+ "coll_mpi",
+ default=True,
+ description="Enable the instrumentation of all collective MPI functions",
+ )
+ variant("debug_mpi", default=False, description="Enable the debug prints on MPI functions")
+ variant(
+ "excl_all_mpi",
+ default=False,
+ description="Disable the instrumentation of all MPI functions, "
+ "except for initialization and finalization",
+ )
+ variant("hwp_auto_discovery", default=True, description="Autodiscovery of hwp-states")
+ variant("mosquitto", default=False, description="Enable MQTT message passing")
+ variant("no_profiling", default=False, description="Disable MPI profiling")
+ variant("use_cpufreq", default=True, description="Manual set of cpufreq interface")
+ variant("use_hwp", default=False, description="Manual set if hwp-states are available")
+ variant(
+ "p2p_mpi",
+ default=True,
+ description="Enable the instrumentation of all point-to-point MPI functions",
+ )
+ variant("shared", default=True, description="Build shared libraries")
+
+ conflicts("+acc_mpi", when="+excl_all_mpi")
+ conflicts("+coll_mpi", when="+excl_all_mpi")
+ conflicts("+p2p_mpi", when="+excl_all_mpi")
+ conflicts("+excl_all_mpi", when="+acc_mpi")
+ conflicts("+excl_all_mpi", when="+coll_mpi")
+ conflicts("+excl_all_mpi", when="+p2p_mpi")
+ conflicts("+hwp_auto_discovery", when="+use_cpufreq")
+ conflicts("+hwp_auto_discovery", when="+use_hwp")
+ conflicts("+use_cpufreq", when="+hwp_auto_discovery")
+ conflicts("+use_cpufreq", when="+use_hwp")
+ conflicts("+use_hwp", when="+hwp_auto_discovery")
+ conflicts("+use_hwp", when="+use_cpufreq")
+
+ depends_on("cmake@3.0.0:", type="build")
+ depends_on("hwloc", type="link")
+ depends_on("mpi@3.0.0:", type="link")
+ depends_on("mosquitto", when="+mosquitto", type="link")
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant("CNTD_ENABLE_CUDA", "cuda"),
+ self.define_from_variant("CNTD_DISABLE_ACCESSORY_MPI", "acc_mpi"),
+ self.define_from_variant("CNTD_ENABLE_COLLECTIVE_MPI", "coll_mpi"),
+ self.define_from_variant("CNTD_ENABLE_DEBUG_MPI", "debug_mpi"),
+ self.define_from_variant("CNTD_DISABLE_ALL_MPI_EXCEPT_INI_FIN", "excl_all_mpi"),
+ self.define_from_variant("CNTD_HWP_AUTO_DISCOVER", "hwp_auto_discovery"),
+ self.define_from_variant("CNTD_ENABLE_MOSQUITTO", "mosquitto"),
+ self.define_from_variant("CNTD_DISABLE_PROFILING_MPI", "no_profiling"),
+ self.define_from_variant("CNTD_USE_CPUFREQ", "use_cpufreq"),
+ self.define_from_variant("CNTD_HWP_DISCOVERED", "use_hwp"),
+ self.define_from_variant("CNTD_ENABLE_P2P_MPI", "p2p_mpi"),
+ self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/cowsay/package.py b/var/spack/repos/builtin/packages/cowsay/package.py
index 9415e77010df81..a31c56098f3e63 100644
--- a/var/spack/repos/builtin/packages/cowsay/package.py
+++ b/var/spack/repos/builtin/packages/cowsay/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Cowsay(Package):
homepage = "https://github.com/tnalpgge/rank-amateur-cowsay"
url = "https://github.com/tnalpgge/rank-amateur-cowsay/archive/cowsay-3.04.tar.gz"
+ license("Artistic-1.0-Perl OR GPL-2.0-or-later")
+
version("3.04", sha256="d8b871332cfc1f0b6c16832ecca413ca0ac14d58626491a6733829e3d655878b")
depends_on("perl", type=("run"))
diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py
index 2e765c7539fffb..ebca0a896fe336 100644
--- a/var/spack/repos/builtin/packages/cp2k/package.py
+++ b/var/spack/repos/builtin/packages/cp2k/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,16 +11,30 @@
import spack.util.environment
import spack.util.executable
from spack.build_environment import dso_suffix
+from spack.build_systems import cmake, makefile
from spack.package import *
-
-class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
+GPU_MAP = {
+ "35": "K40",
+ "37": "K80",
+ "60": "P100",
+ "70": "V100",
+ "80": "A100",
+ "gfx906": "Mi50",
+ "gfx908": "Mi100",
+ "gfx90a": "Mi250",
+ "gfx90a:xnack-": "Mi250",
+ "gfx90a:xnack+": "Mi250",
+}
+
+
+class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
"""CP2K is a quantum chemistry and solid state physics software package
that can perform atomistic simulations of solid state, liquid, molecular,
periodic, material, crystal, and biological systems
"""
- build_system(conditional("cmake", when="@2023.2:"), "makefile", default="makefile")
+ build_system(conditional("cmake", when="@2023.2:"), "makefile", default="cmake")
homepage = "https://www.cp2k.org"
url = "https://github.com/cp2k/cp2k/releases/download/v3.0.0/cp2k-3.0.tar.bz2"
@@ -29,6 +43,9 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
maintainers("dev-zero", "mtaillefumier")
+ license("GPL-2.0-or-later")
+
+ version("2024.1", sha256="a7abf149a278dfd5283dc592a2c4ae803b37d040df25d62a5e35af5c4557668f")
version("2023.2", sha256="adbcc903c1a78cba98f49fe6905a62b49f12e3dfd7cedea00616d1a5f50550db")
version("2023.1", sha256="dff343b4a80c3a79363b805429bdb3320d3e1db48e0ff7d20a3dfd1c946a51ce")
version("2022.2", sha256="1a473dea512fe264bb45419f83de432d441f90404f829d89cbc3a03f723b8354")
@@ -37,26 +54,6 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
version("8.2", sha256="2e24768720efed1a5a4a58e83e2aca502cd8b95544c21695eb0de71ed652f20a")
version("8.1", sha256="7f37aead120730234a60b2989d0547ae5e5498d93b1e9b5eb548c041ee8e7772")
version("7.1", sha256="ccd711a09a426145440e666310dd01cc5772ab103493c4ae6a3470898cd0addb")
- version(
- "6.1",
- sha256="af803558e0a6b9e9d9ce8a3ab955ba32bacd179922455424e061c82c9fefa34b",
- deprecated=True,
- )
- version(
- "5.1",
- sha256="e23613b593354fa82e0b8410e17d94c607a0b8c6d9b5d843528403ab09904412",
- deprecated=True,
- )
- version(
- "4.1",
- sha256="4a3e4a101d8a35ebd80a9e9ecb02697fb8256364f1eccdbe4e5a85d31fe21343",
- deprecated=True,
- )
- version(
- "3.0",
- sha256="1acfacef643141045b7cbade7006f9b7538476d861eeecd9658c9e468dc61151",
- deprecated=True,
- )
version("master", branch="master", submodules="True")
variant("mpi", default=True, description="Enable MPI support")
@@ -76,30 +73,33 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
"pexsi",
default=False,
description="Enable the alternative PEXSI method for density matrix evaluation",
+ when="+mpi",
)
variant(
"elpa",
default=False,
description="Enable optimised diagonalisation routines from ELPA",
- when="@6.1:",
+ when="+mpi",
)
variant(
"dlaf",
default=False,
description="Enable DLA-Future eigensolver and Cholesky decomposition",
- # TODO: Pin version when integrated in a release
- when="@master build_system=cmake",
+ when="@2024.1: build_system=cmake +mpi",
)
+ # sirius support was introduced in 7, but effectively usable starting from CP2K 9
variant(
"sirius",
default=False,
description="Enable planewave electronic structure calculations via SIRIUS",
+ when="@9: +mpi",
)
- variant("cosma", default=False, description="Use COSMA for p?gemm")
+ variant("cosma", default=False, description="Use COSMA for p?gemm", when="@8: +mpi")
variant(
"libvori",
default=False,
description="Enable support for Voronoi integration and BQB compression",
+ when="@8:",
)
variant("spglib", default=False, description="Enable support for spglib")
variant(
@@ -131,15 +131,13 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
),
)
variant(
- "cuda_fft",
- default=False,
- description=("Use CUDA also for FFTs in the PW part of CP2K"),
+ "cuda_fft", default=False, description="Use CUDA also for FFTs in the PW part of CP2K"
)
variant(
"cuda_blas",
default=False,
when="@:7", # req in CP2K v8+
- description=("Use CUBLAS for general matrix operations in DBCSR"),
+ description="Use CUBLAS for general matrix operations in DBCSR",
)
HFX_LMAX_RANGE = range(4, 8)
@@ -152,8 +150,7 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
multi=False,
)
- depends_on("python", type="build")
- depends_on("python@3:", when="@8:", type="build")
+ depends_on("python@3", type="build")
depends_on("blas")
depends_on("lapack")
@@ -182,21 +179,15 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
conflicts("target=aarch64:", msg="libxsmm is not available on arm")
with when("+libint"):
- # ... and in CP2K 7.0+ for linking to libint2
depends_on("pkgconfig", type="build", when="@7.0:")
- # libint & libxc are always statically linked
- depends_on("libint@1.1.4:1.2", when="@3.0:6.9")
for lmax in HFX_LMAX_RANGE:
- # libint2 can be linked dynamically again
depends_on(
"libint@2.6.0:+fortran tune=cp2k-lmax-{0}".format(lmax),
when="@7.0: lmax={0}".format(lmax),
)
with when("+libxc"):
- depends_on("pkgconfig", when="@7.0:")
- depends_on("libxc@2.2.2:3", when="@:5")
- depends_on("libxc@4.0.3:4", when="@6.0:6.9")
+ depends_on("pkgconfig", type="build", when="@7.0:")
depends_on("libxc@4.0.3:4", when="@7.0:8.1")
depends_on("libxc@5.1.3:5.1", when="@8.2:8")
depends_on("libxc@5.1.7:5.1", when="@9:2022.2")
@@ -221,24 +212,22 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
depends_on("cosma@2.6.3:", when="@2023.2:")
depends_on("cosma+cuda", when="+cuda")
depends_on("cosma+rocm", when="+rocm")
- conflicts("~mpi")
- # COSMA support was introduced in 8+
- conflicts("@:7")
with when("+elpa"):
- conflicts("~mpi", msg="elpa requires MPI")
depends_on("elpa+openmp", when="+openmp")
depends_on("elpa~openmp", when="~openmp")
+ depends_on("elpa+cuda", when="+cuda")
+ depends_on("elpa~cuda", when="~cuda")
+ depends_on("elpa+rocm", when="+rocm")
+ depends_on("elpa~rocm", when="~rocm")
depends_on("elpa@2021.05:", when="@8.3:")
depends_on("elpa@2021.11.001:", when="@9.1:")
depends_on("elpa@2023.05.001:", when="@2023.2:")
with when("+dlaf"):
- conflicts(
- "~mpi", msg="DLA-Future requires MPI. Only the distributed eigensolver is available."
- )
depends_on("dla-future@0.2.1: +scalapack")
- depends_on("dla-future ~cuda~rocm", when="~cuda~rocm")
+ depends_on("dla-future ~cuda", when="~cuda")
+ depends_on("dla-future ~rocm", when="~rocm")
depends_on("dla-future +cuda", when="+cuda")
depends_on("dla-future +rocm", when="+rocm")
@@ -249,10 +238,7 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
# while we link statically against PEXSI, its own deps may be linked in
# dynamically, therefore can't set this as pure build-type dependency.
- with when("+pexsi"):
- conflicts("~mpi", msg="pexsi requires MPI")
- depends_on("pexsi+fortran@0.9.0:0.9", when="@:4")
- depends_on("pexsi+fortran@0.10.0:", when="@5.0:")
+ depends_on("pexsi+fortran@0.10.0:", when="+pexsi")
# only OpenMP should be consistently used, all other common things
# like ELPA, SCALAPACK are independent and Spack will ensure that
@@ -266,17 +252,13 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
depends_on("sirius@7.0.0:7.0", when="@8:8.2")
depends_on("sirius@7.2", when="@8.3:8.9")
depends_on("sirius@7.3:", when="@9.1")
- depends_on("sirius@7.4:", when="@2023.2")
- conflicts("~mpi", msg="SIRIUS requires MPI")
- # sirius support was introduced in 7, but effectively usable starting from CP2K 9
- conflicts("@:8")
+ depends_on("sirius@7.4:7.5", when="@2023.2")
+ depends_on("sirius@7.5:", when="@2024.1:")
with when("+libvori"):
depends_on("libvori@201219:", when="@8.1")
depends_on("libvori@210412:", when="@8.2:")
depends_on("libvori@220621:", when="@2023.1:")
- # libvori support was introduced in 8+
- conflicts("@:7")
# the bundled libcusmm uses numpy in the parameter prediction (v7+)
# which is written using Python 3
@@ -286,17 +268,19 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
depends_on("spglib", when="+spglib")
- # Apparently cp2k@4.1 needs an "experimental" version of libwannier.a
- # which is only available contacting the developer directly. See INSTALL
- # in the stage of cp2k@4.1
- depends_on("wannier90", when="@3.0+mpi")
-
with when("build_system=cmake"):
+ depends_on("cmake@3.22:", type="build")
+
+ # DBCSR as external dependency
depends_on("dbcsr@2.6:")
depends_on("dbcsr+openmp", when="+openmp")
depends_on("dbcsr+cuda", when="+cuda")
depends_on("dbcsr+rocm", when="+rocm")
+ with when("@2022: +rocm"):
+ depends_on("hipblas")
+ depends_on("hipfft")
+
# CP2K needs compiler specific compilation flags, e.g. optflags
conflicts("%apple-clang")
conflicts("%clang")
@@ -315,18 +299,6 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
supported_cuda_arch_list = ("35", "37", "60", "70", "80")
supported_rocm_arch_list = ("gfx906", "gfx908", "gfx90a", "gfx90a:xnack-", "gfx90a:xnack+")
- gpu_map = {
- "35": "K40",
- "37": "K80",
- "60": "P100",
- "70": "V100",
- "80": "A100",
- "gfx906": "Mi50",
- "gfx908": "Mi100",
- "gfx90a": "Mi250",
- "gfx90a:xnack-": "Mi250",
- "gfx90a:xnack+": "Mi250",
- }
cuda_msg = "cp2k only supports cuda_arch {0}".format(supported_cuda_arch_list)
rocm_msg = "cp2k only supports amdgpu_target {0}".format(supported_rocm_arch_list)
@@ -382,27 +354,9 @@ def url_for_version(self, version):
url = "https://github.com/cp2k/cp2k/releases/download/v{0}/cp2k-{0}.tar.bz2"
return url.format(version)
- @property
- def makefile_architecture(self):
- return "{0.architecture}-{0.compiler.name}".format(self.spec)
-
- @property
- def makefile_version(self):
- return "{prefix}{suffix}".format(
- prefix="p" if "+mpi" in self.spec else "s",
- suffix="smp" if "+openmp" in self.spec else "opt",
- )
-
- @property
- def makefile(self):
- makefile_basename = ".".join([self.makefile_architecture, self.makefile_version])
- return join_path("arch", makefile_basename)
-
- @property
- def archive_files(self):
- return [join_path(self.stage.source_path, self.makefile)]
- def edit(self, spec, prefix):
+class MakefileBuilder(makefile.MakefileBuilder):
+ def edit(self, pkg, spec, prefix):
pkgconf = which("pkg-config")
fftw = spec["fftw-api:openmp" if "+openmp" in spec else "fftw-api"]
@@ -424,8 +378,11 @@ def edit(self, spec, prefix):
"aocc": ["-O2"],
}
- dflags = ["-DNDEBUG"]
- cppflags = ["-D__FFTW3", "-I{0}".format(fftw_header_dir)]
+ dflags = ["-DNDEBUG"] if spec.satisfies("@:2023.2") else []
+ if spec["fftw-api"].name in ("intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"):
+ cppflags = ["-D__FFTW3_MKL", "-I{0}".format(fftw_header_dir)]
+ else:
+ cppflags = ["-D__FFTW3", "-I{0}".format(fftw_header_dir)]
# CP2K requires MPI 3 starting at version 2023.1
# and __MPI_VERSION is not supported anymore.
@@ -435,9 +392,9 @@ def edit(self, spec, prefix):
elif "^mpi@2:" in spec:
cppflags.append("-D__MPI_VERSION=2")
- cflags = optimization_flags[self.spec.compiler.name][:]
- cxxflags = optimization_flags[self.spec.compiler.name][:]
- fcflags = optimization_flags[self.spec.compiler.name][:]
+ cflags = optimization_flags[spec.compiler.name][:]
+ cxxflags = optimization_flags[spec.compiler.name][:]
+ fcflags = optimization_flags[spec.compiler.name][:]
nvflags = ["-O3"]
ldflags = []
libs = []
@@ -445,10 +402,10 @@ def edit(self, spec, prefix):
# CP2K Makefile doesn't set C standard
if spec.satisfies("@2023.2:"):
# Use of DBL_DECIMAL_DIG
- cflags.append(self.compiler.c11_flag)
+ cflags.append(pkg.compiler.c11_flag)
else:
# C99-style for-loops with inline definition of iterating variable.
- cflags.append(self.compiler.c99_flag)
+ cflags.append(pkg.compiler.c99_flag)
if "%intel" in spec:
cflags.append("-fp-model precise")
@@ -478,11 +435,11 @@ def edit(self, spec, prefix):
fcflags.append("-fallow-argument-mismatch")
if "+openmp" in spec:
- cflags.append(self.compiler.openmp_flag)
- cxxflags.append(self.compiler.openmp_flag)
- fcflags.append(self.compiler.openmp_flag)
- ldflags.append(self.compiler.openmp_flag)
- nvflags.append('-Xcompiler="{0}"'.format(self.compiler.openmp_flag))
+ cflags.append(pkg.compiler.openmp_flag)
+ cxxflags.append(pkg.compiler.openmp_flag)
+ fcflags.append(pkg.compiler.openmp_flag)
+ ldflags.append(pkg.compiler.openmp_flag)
+ nvflags.append('-Xcompiler="{0}"'.format(pkg.compiler.openmp_flag))
elif "%cce" in spec: # Cray enables OpenMP by default
cflags += ["-hnoomp"]
cxxflags += ["-hnoomp"]
@@ -490,20 +447,18 @@ def edit(self, spec, prefix):
ldflags += ["-hnoomp"]
if "@7:" in spec: # recent versions of CP2K use C++14 CUDA code
- cxxflags.append(self.compiler.cxx14_flag)
- nvflags.append(self.compiler.cxx14_flag)
+ cxxflags.append(pkg.compiler.cxx14_flag)
+ nvflags.append(pkg.compiler.cxx14_flag)
ldflags.append(fftw.libs.search_flags)
if "superlu-dist@4.3" in spec:
ldflags.insert(0, "-Wl,--allow-multiple-definition")
- if "+plumed" in self.spec:
+ if "+plumed" in spec:
dflags.extend(["-D__PLUMED2"])
cppflags.extend(["-D__PLUMED2"])
- libs.extend(
- [join_path(self.spec["plumed"].prefix.lib, "libplumed.{0}".format(dso_suffix))]
- )
+ libs.extend([join_path(spec["plumed"].prefix.lib, "libplumed.{0}".format(dso_suffix))])
cc = spack_cc if "~mpi" in spec else spec["mpi"].mpicc
cxx = spack_cxx if "~mpi" in spec else spec["mpi"].mpicxx
@@ -520,7 +475,7 @@ def edit(self, spec, prefix):
ldflags.append((lapack + blas).search_flags)
libs.extend([str(x) for x in (fftw.libs, lapack, blas)])
- if self.spec.satisfies("platform=darwin"):
+ if spec.satisfies("platform=darwin"):
cppflags.extend(["-D__NO_STATM_ACCESS"])
if spec["blas"].name in ("intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"):
@@ -546,7 +501,7 @@ def edit(self, spec, prefix):
# while intel-mkl has a mpi variant and adds the scalapack
# libs to its libs, intel-oneapi-mkl does not.
if spec["scalapack"].name == "intel-oneapi-mkl":
- mpi_impl = "openmpi" if spec["mpi"] == "openmpi" else "intelmpi"
+ mpi_impl = "openmpi" if spec["mpi"].name in ["openmpi", "hpcx-mpi"] else "intelmpi"
scalapack = [
join_path(
spec["intel-oneapi-mkl"].libs.directories[0], "libmkl_scalapack_lp64.so"
@@ -562,7 +517,7 @@ def edit(self, spec, prefix):
libs.extend(scalapack)
libs.extend(mpi)
- libs.extend(self.compiler.stdcxx_libs)
+ libs.extend(pkg.compiler.stdcxx_libs)
if "+mpi_f08" in spec:
cppflags.append("-D__MPI_F08")
@@ -715,7 +670,7 @@ def edit(self, spec, prefix):
libs += ["-lcufft", "-lcublas"]
cuda_arch = spec.variants["cuda_arch"].value[0]
- gpuver = gpu_map[cuda_arch]
+ gpuver = GPU_MAP[cuda_arch]
if cuda_arch == "35" and spec.satisfies("+cuda_arch_35_k20x"):
gpuver = "K20X"
@@ -733,7 +688,7 @@ def edit(self, spec, prefix):
acc_flags_var = "NVFLAGS"
cppflags += ["-D__ACC"]
cppflags += ["-D__DBCSR_ACC"]
- gpuver = gpu_map[spec.variants["amdgpu_target"].value[0]]
+ gpuver = GPU_MAP[spec.variants["amdgpu_target"].value[0]]
if "smm=libsmm" in spec:
lib_dir = join_path("lib", self.makefile_architecture, self.makefile_version)
@@ -792,7 +747,7 @@ def edit(self, spec, prefix):
)
if "%intel" in spec:
- intel_bin_dir = ancestor(self.compiler.cc)
+ intel_bin_dir = ancestor(pkg.compiler.cc)
# CPP is a commented command in Intel arch of CP2K
# This is the hack through which cp2k developers avoid doing :
#
@@ -832,11 +787,34 @@ def fflags(var, lst):
mkf.write("# CP2K-specific flags\n\n")
mkf.write("GPUVER = {0}\n".format(gpuver))
- mkf.write("DATA_DIR = {0}\n".format(self.prefix.share.data))
+ mkf.write("DATA_DIR = {0}\n".format(prefix.share.data))
+
+ def build(self, pkg, spec, prefix):
+ if "+cuda" in spec and len(spec.variants["cuda_arch"].value) > 1:
+ raise InstallError("cp2k supports only one cuda_arch at a time")
+
+ # Apparently the Makefile bases its paths on PWD
+ # so we need to set PWD = self.build_directory
+ with spack.util.environment.set_env(PWD=self.build_directory):
+ super().build(pkg, spec, prefix)
+
+ with working_dir(self.build_directory):
+ make("libcp2k", *self.build_targets)
+
+ def install(self, pkg, spec, prefix):
+ exe_dir = join_path("exe", self.makefile_architecture)
+ lib_dir = join_path("lib", self.makefile_architecture, self.makefile_version)
+
+ install_tree(exe_dir, self.prefix.bin)
+ install_tree("data", self.prefix.share.data)
+ install_tree(lib_dir, self.prefix.lib)
+
+ mkdirp(self.prefix.include)
+ install("src/start/libcp2k.h", join_path(self.prefix.include, "libcp2k.h"))
@property
def build_directory(self):
- build_dir = self.stage.source_path
+ build_dir = self.pkg.stage.source_path
if self.spec.satisfies("@:6"):
# prior to version 7.1 was the Makefile located in makefiles/
@@ -851,30 +829,36 @@ def build_targets(self):
"VERSION={0}".format(self.makefile_version),
]
- def build(self, spec, prefix):
- if "+cuda" in spec and len(spec.variants["cuda_arch"].value) > 1:
- raise InstallError("cp2k supports only one cuda_arch at a time")
+ @property
+ def makefile(self):
+ makefile_basename = ".".join([self.makefile_architecture, self.makefile_version])
+ return join_path("arch", makefile_basename)
- # Apparently the Makefile bases its paths on PWD
- # so we need to set PWD = self.build_directory
- with spack.util.environment.set_env(PWD=self.build_directory):
- super().build(spec, prefix)
+ @property
+ def makefile_architecture(self):
+ return "{0.architecture}-{0.compiler.name}".format(self.spec)
- with working_dir(self.build_directory):
- make("libcp2k", *self.build_targets)
+ @property
+ def makefile_version(self):
+ return "{prefix}{suffix}".format(
+ prefix="p" if "+mpi" in self.spec else "s",
+ suffix="smp" if "+openmp" in self.spec else "opt",
+ )
- def install(self, spec, prefix):
- exe_dir = join_path("exe", self.makefile_architecture)
- lib_dir = join_path("lib", self.makefile_architecture, self.makefile_version)
+ @property
+ def archive_files(self):
+ return [join_path(self.pkg.stage.source_path, self.makefile)]
- install_tree(exe_dir, self.prefix.bin)
- install_tree("data", self.prefix.share.data)
- install_tree(lib_dir, self.prefix.lib)
+ def check(self):
+ data_dir = join_path(self.pkg.stage.source_path, "data")
- mkdirp(self.prefix.include)
- install("src/start/libcp2k.h", join_path(self.prefix.include, "libcp2k.h"))
+ # CP2K < 7 still uses $PWD to detect the current working dir
+ # and Makefile is in a subdir, account for both facts here:
+ with spack.util.environment.set_env(CP2K_DATA_DIR=data_dir, PWD=self.build_directory):
+ with working_dir(self.build_directory):
+ make("test", *self.build_targets)
- @run_after("install")
+ @run_after("install", when="@9.1:")
def fix_package_config(self):
"""
Default build procedure generates libcp2k.pc with invalid paths,
@@ -888,61 +872,36 @@ def fix_package_config(self):
In case such approach causes issues in the future, it might be necessary
to generate and override entire libcp2k.pc.
"""
- if self.spec.satisfies("@9.1:"):
- pkgconfig_file = join_path(self.prefix.lib.pkgconfig, "libcp2k.pc")
- filter_file(r"(^includedir=).*", r"\1{0}".format(self.prefix.include), pkgconfig_file)
- filter_file(r"(^libdir=).*", r"\1{0}".format(self.prefix.lib), pkgconfig_file)
+ pkgconfig_file = join_path(self.prefix.lib.pkgconfig, "libcp2k.pc")
+ filter_file(r"(^includedir=).*", r"\1{0}".format(self.prefix.include), pkgconfig_file)
+ filter_file(r"(^libdir=).*", r"\1{0}".format(self.prefix.lib), pkgconfig_file)
- with open(pkgconfig_file, "r+") as handle:
- content = handle.read().rstrip()
+ with open(pkgconfig_file, "r+") as handle:
+ content = handle.read().rstrip()
- content += " " + self.spec["blas"].libs.ld_flags
- content += " " + self.spec["lapack"].libs.ld_flags
- content += " " + self.spec["fftw-api"].libs.ld_flags
+ content += " " + self.spec["blas"].libs.ld_flags
+ content += " " + self.spec["lapack"].libs.ld_flags
+ content += " " + self.spec["fftw-api"].libs.ld_flags
- if (self.spec["fftw-api"].name == "fftw") and ("+openmp" in self.spec["fftw"]):
- content += " -lfftw3_omp"
+ if (self.spec["fftw-api"].name == "fftw") and ("+openmp" in self.spec["fftw"]):
+ content += " -lfftw3_omp"
- content += "\n"
+ content += "\n"
- handle.seek(0)
- handle.write(content)
+ handle.seek(0)
+ handle.write(content)
- def check(self):
- data_dir = join_path(self.stage.source_path, "data")
-
- # CP2K < 7 still uses $PWD to detect the current working dir
- # and Makefile is in a subdir, account for both facts here:
- with spack.util.environment.set_env(CP2K_DATA_DIR=data_dir, PWD=self.build_directory):
- with working_dir(self.build_directory):
- make("test", *self.build_targets)
-
-
-class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder):
- """Use the new CMake build system to build CP2K."""
+class CMakeBuilder(cmake.CMakeBuilder):
def cmake_args(self):
spec = self.spec
args = []
- gpu_map = {
- "35": "K40",
- "37": "K80",
- "60": "P100",
- "70": "V100",
- "80": "A100",
- "gfx906": "Mi50",
- "gfx908": "Mi100",
- "gfx90a": "Mi250",
- "gfx90a:xnack-": "Mi250",
- "gfx90a:xnack+": "Mi250",
- }
-
if "+cuda" in spec:
if (len(spec.variants["cuda_arch"].value) > 1) or spec.satisfies("cuda_arch=none"):
raise InstallError("CP2K supports only one cuda_arch at a time.")
else:
- gpu_ver = gpu_map[spec.variants["cuda_arch"].value[0]]
+ gpu_ver = GPU_MAP[spec.variants["cuda_arch"].value[0]]
args += [
self.define("CP2K_USE_ACCEL", "CUDA"),
self.define("CP2K_WITH_GPU", gpu_ver),
@@ -952,7 +911,7 @@ def cmake_args(self):
if len(spec.variants["amdgpu_target"].value) > 1:
raise InstallError("CP2K supports only one amdgpu_target at a time.")
else:
- gpu_ver = gpu_map[spec.variants["amdgpu_target"].value[0]]
+ gpu_ver = GPU_MAP[spec.variants["amdgpu_target"].value[0]]
args += [
self.define("CP2K_USE_ACCEL", "HIP"),
self.define("CP2K_WITH_GPU", gpu_ver),
@@ -1029,5 +988,3 @@ def cmake_args(self):
)
return args
-
- pass
diff --git a/var/spack/repos/builtin/packages/cpat/package.py b/var/spack/repos/builtin/packages/cpat/package.py
index ef6415bfba84ea..116508d67a3de6 100644
--- a/var/spack/repos/builtin/packages/cpat/package.py
+++ b/var/spack/repos/builtin/packages/cpat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cpio/package.py b/var/spack/repos/builtin/packages/cpio/package.py
index 02875e3f51e673..0ae7ac02204072 100644
--- a/var/spack/repos/builtin/packages/cpio/package.py
+++ b/var/spack/repos/builtin/packages/cpio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Cpio(AutotoolsPackage, GNUMirrorPackage):
executables = ["^cpio$"]
+ license("GPL-3.0-or-later")
+
version("2.14", sha256="145a340fd9d55f0b84779a44a12d5f79d77c99663967f8cfa168d7905ca52454")
version("2.13", sha256="e87470d9c984317f658567c03bfefb6b0c829ff17dbf6b0de48d71a4c8f3db88")
diff --git a/var/spack/repos/builtin/packages/cplex/package.py b/var/spack/repos/builtin/packages/cplex/package.py
index 60d791d23f10b4..64e860d5fa2a56 100644
--- a/var/spack/repos/builtin/packages/cplex/package.py
+++ b/var/spack/repos/builtin/packages/cplex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cpmd/package.py b/var/spack/repos/builtin/packages/cpmd/package.py
index 1782d07b6b07f9..61977a370669a7 100644
--- a/var/spack/repos/builtin/packages/cpmd/package.py
+++ b/var/spack/repos/builtin/packages/cpmd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cpmd(MakefilePackage):
homepage = "https://www.cpmd.org/wordpress/"
url = "https://github.com/CPMD-code/CPMD/archive/refs/tags/4.3.tar.gz"
+ license("MIT")
+
version("4.3", sha256="e0290f9da0d255f90a612e60662b14a97ca53003f89073c6af84fa7bc8739f65")
variant("omp", description="Enables the use of OMP instructions", default=False)
diff --git a/var/spack/repos/builtin/packages/cpp-argparse/package.py b/var/spack/repos/builtin/packages/cpp-argparse/package.py
index 8dbe13ac3bf93d..509724a3fc661f 100644
--- a/var/spack/repos/builtin/packages/cpp-argparse/package.py
+++ b/var/spack/repos/builtin/packages/cpp-argparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,5 +14,7 @@ class CppArgparse(CMakePackage):
maintainers("qoelet")
+ license("MIT")
+
version("2.9", sha256="cd563293580b9dc592254df35b49cf8a19b4870ff5f611c7584cf967d9e6031e")
version("2.2", sha256="f0fc6ab7e70ac24856c160f44ebb0dd79dc1f7f4a614ee2810d42bb73799872b")
diff --git a/var/spack/repos/builtin/packages/cpp-httplib/package.py b/var/spack/repos/builtin/packages/cpp-httplib/package.py
index 559bdb9cb63dfa..04874b3a9e62e3 100644
--- a/var/spack/repos/builtin/packages/cpp-httplib/package.py
+++ b/var/spack/repos/builtin/packages/cpp-httplib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class CppHttplib(CMakePackage):
homepage = "https://github.com/yhirose/cpp-httplib/"
url = "https://github.com/yhirose/cpp-httplib/archive/v0.5.10.tar.gz"
+ license("MIT")
+
version("0.12.5", sha256="b488f3fa9c6bf35608c3d9a5b69be52e016bbf2fbfe67e5ee684eadb2655493e")
version("0.12.3", sha256="175ced3c9cdaf221e9edf210297568d8f7d402a41d6db01254ac9e0b25487c54")
version("0.5.9", sha256="c9e7aef3b0d4e80ee533d10413508d8a6e09a67d0d59646c43111f3993de006e")
diff --git a/var/spack/repos/builtin/packages/cpp-logger/package.py b/var/spack/repos/builtin/packages/cpp-logger/package.py
index f325fa09dfc2ba..2784ea219eef35 100644
--- a/var/spack/repos/builtin/packages/cpp-logger/package.py
+++ b/var/spack/repos/builtin/packages/cpp-logger/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,9 @@ class CppLogger(CMakePackage):
git = "https://github.com/hariharan-devarajan/cpp-logger.git"
maintainers("hariharan-devarajan")
+ license("MIT")
+
version("develop", branch="develop")
version("master", branch="master")
version("0.0.1", tag="v0.0.1", commit="d48b38ab14477bb7c53f8189b8b4be2ea214c28a")
+ version("0.0.2", tag="v0.0.2", commit="329a48401033d2d2a1f1196141763cab029220ae")
diff --git a/var/spack/repos/builtin/packages/cpp-termcolor/package.py b/var/spack/repos/builtin/packages/cpp-termcolor/package.py
index 8d7e30368b2d86..93954c23c997f1 100644
--- a/var/spack/repos/builtin/packages/cpp-termcolor/package.py
+++ b/var/spack/repos/builtin/packages/cpp-termcolor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cppad/package.py b/var/spack/repos/builtin/packages/cppad/package.py
index dad968e7547203..dcc9e14cf9cbc5 100644
--- a/var/spack/repos/builtin/packages/cppad/package.py
+++ b/var/spack/repos/builtin/packages/cppad/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cppcheck/package.py b/var/spack/repos/builtin/packages/cppcheck/package.py
index d0aaae8ac505e9..fbda439345b37c 100644
--- a/var/spack/repos/builtin/packages/cppcheck/package.py
+++ b/var/spack/repos/builtin/packages/cppcheck/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cppcheck(CMakePackage):
maintainers("white238")
+ license("GPL-3.0-or-later")
+
version("2.9", sha256="d89f3282c70814fa66669e1ea0323c0484563b3f8249c7a2dcaac2ad07651dc7")
version("2.8", sha256="a5ed97a99173d2952cd93fcb028a3405a7b3b992e7168e2ae9d527b991770203")
version("2.7", sha256="ac74c0973c46a052760f4ff7ca6a84616ca5795510542d195a6f122c53079291")
diff --git a/var/spack/repos/builtin/packages/cppcodec/package.py b/var/spack/repos/builtin/packages/cppcodec/package.py
index 8e5b58b58d9bf7..1cee1f9ad1e93f 100644
--- a/var/spack/repos/builtin/packages/cppcodec/package.py
+++ b/var/spack/repos/builtin/packages/cppcodec/package.py
@@ -1,20 +1,22 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
-# Spack Project Developers. See the top-level COPYRIGHT file for details.
-#
-# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
-from spack.package import *
-
-
-class Cppcodec(CMakePackage):
- """Header-only C++11 library to encode/decode base64, base64url, base32,
- base32hex and hex (a.k.a. base16) as specified in RFC 4648, plus
- Crockford's base32. MIT licensed with consistent, flexible API."""
-
- maintainers("vmiheer")
- homepage = "https://github.com/tplgy/cppcodec"
- url = "https://github.com/tplgy/cppcodec/archive/refs/tags/v0.2.tar.gz"
-
- version("0.2", sha256="0edaea2a9d9709d456aa99a1c3e17812ed130f9ef2b5c2d152c230a5cbc5c482")
-
- depends_on("cmake@2.8:", type="build")
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Cppcodec(CMakePackage):
+ """Header-only C++11 library to encode/decode base64, base64url, base32,
+ base32hex and hex (a.k.a. base16) as specified in RFC 4648, plus
+ Crockford's base32. MIT licensed with consistent, flexible API."""
+
+ maintainers("vmiheer")
+ homepage = "https://github.com/tplgy/cppcodec"
+ url = "https://github.com/tplgy/cppcodec/archive/refs/tags/v0.2.tar.gz"
+
+ license("MIT")
+
+ version("0.2", sha256="0edaea2a9d9709d456aa99a1c3e17812ed130f9ef2b5c2d152c230a5cbc5c482")
+
+ depends_on("cmake@2.8:", type="build")
diff --git a/var/spack/repos/builtin/packages/cppcoro/package.py b/var/spack/repos/builtin/packages/cppcoro/package.py
index 6677f44cb12184..ac998ace01c62e 100644
--- a/var/spack/repos/builtin/packages/cppcoro/package.py
+++ b/var/spack/repos/builtin/packages/cppcoro/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cppcoro(CMakePackage):
maintainers("pbrady")
+ license("MIT")
+
version("develop", branch="master")
version("2021-01-13", commit="7cc9433436fe8f2482138019cfaafce8e1d7a896")
diff --git a/var/spack/repos/builtin/packages/cppgsl/package.py b/var/spack/repos/builtin/packages/cppgsl/package.py
index aefd0ece08116b..a797e6eefc0cb7 100644
--- a/var/spack/repos/builtin/packages/cppgsl/package.py
+++ b/var/spack/repos/builtin/packages/cppgsl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Cppgsl(CMakePackage):
url = "https://github.com/Microsoft/GSL/archive/v2.0.0.tar.gz"
git = "https://github.com/Microsoft/GSL.git"
+ license("MIT")
+
version("main", branch="main")
version("4.0.0", sha256="f0e32cb10654fea91ad56bde89170d78cfbf4363ee0b01d8f097de2ba49f6ce9")
version("3.1.0", sha256="d3234d7f94cea4389e3ca70619b82e8fb4c2f33bb3a070799f1e18eef500a083")
diff --git a/var/spack/repos/builtin/packages/cpprestsdk/package.py b/var/spack/repos/builtin/packages/cpprestsdk/package.py
index fbfca2bd0a353b..403e8bc42e98b5 100644
--- a/var/spack/repos/builtin/packages/cpprestsdk/package.py
+++ b/var/spack/repos/builtin/packages/cpprestsdk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Cpprestsdk(CMakePackage):
homepage = "https://github.com/Microsoft/cpprestsdk"
url = "https://github.com/Microsoft/cpprestsdk/archive/v2.9.1.tar.gz"
+ license("MIT")
+
version(
"2.10.16",
git="https://github.com/Microsoft/cpprestsdk",
diff --git a/var/spack/repos/builtin/packages/cppunit/package.py b/var/spack/repos/builtin/packages/cppunit/package.py
index a06d07bc89a0a7..1fdba0c399cb54 100644
--- a/var/spack/repos/builtin/packages/cppunit/package.py
+++ b/var/spack/repos/builtin/packages/cppunit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Cppunit(AutotoolsPackage):
url = "https://dev-www.libreoffice.org/src/cppunit-1.13.2.tar.gz"
git = "https://anongit.freedesktop.org/git/libreoffice/cppunit.git"
+ license("LGPL-2.1-or-later")
+
version("master", branch="master")
version("1.15_20220904", commit="78e64f0edb4f3271a6ddbcdf9cba05138597bfca")
version(
diff --git a/var/spack/repos/builtin/packages/cppzmq/package.py b/var/spack/repos/builtin/packages/cppzmq/package.py
index 6e52c55ef076ba..84ebbcf5359612 100644
--- a/var/spack/repos/builtin/packages/cppzmq/package.py
+++ b/var/spack/repos/builtin/packages/cppzmq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Cppzmq(CMakePackage):
maintainers("wdconinc")
+ license("MIT")
+
version("master", branch="master")
version("4.9.0", sha256="3fdf5b100206953f674c94d40599bdb3ea255244dcc42fab0d75855ee3645581")
version("4.8.1", sha256="7a23639a45f3a0049e11a188e29aaedd10b2f4845f0000cf3e22d6774ebde0af")
diff --git a/var/spack/repos/builtin/packages/cpr/package.py b/var/spack/repos/builtin/packages/cpr/package.py
index 0d18a6a9199645..93cff509b40a2e 100644
--- a/var/spack/repos/builtin/packages/cpr/package.py
+++ b/var/spack/repos/builtin/packages/cpr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cpr(CMakePackage):
maintainers("sethrj")
+ license("MIT")
+
version("1.10.4", sha256="88462d059cd3df22c4d39ae04483ed50dfd2c808b3effddb65ac3b9aa60b542d")
version("1.9.2", sha256="3bfbffb22c51f322780d10d3ca8f79424190d7ac4b5ad6ad896de08dbd06bf31")
diff --git a/var/spack/repos/builtin/packages/cprnc/package.py b/var/spack/repos/builtin/packages/cprnc/package.py
index e92919ab4aadae..9e4282879e05fd 100644
--- a/var/spack/repos/builtin/packages/cprnc/package.py
+++ b/var/spack/repos/builtin/packages/cprnc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cpu-features/package.py b/var/spack/repos/builtin/packages/cpu-features/package.py
index f8037c2b889e94..c0cb8bbfc93876 100644
--- a/var/spack/repos/builtin/packages/cpu-features/package.py
+++ b/var/spack/repos/builtin/packages/cpu-features/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class CpuFeatures(CMakePackage):
git = "https://github.com/google/cpu_features.git"
url = "https://github.com/google/cpu_features/archive/refs/tags/v0.7.0.tar.gz"
+ license("Apache-2.0")
+
version("main", branch="main")
version("develop", branch="main", deprecated=True)
version("0.7.0", sha256="df80d9439abf741c7d2fdcdfd2d26528b136e6c52976be8bd0cd5e45a27262c0")
diff --git a/var/spack/repos/builtin/packages/cpuinfo/package.py b/var/spack/repos/builtin/packages/cpuinfo/package.py
index 73285b2e2e317b..bfae3aa4946dde 100644
--- a/var/spack/repos/builtin/packages/cpuinfo/package.py
+++ b/var/spack/repos/builtin/packages/cpuinfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cpuinfo(CMakePackage):
git = "https://github.com/pytorch/cpuinfo.git"
tags = ["windows"]
+ license("BSD-2-Clause")
+
version("main", branch="main")
version("2022-08-19", commit="8ec7bd91ad0470e61cf38f618cc1f270dede599c") # py-torch@1.13
version("2020-12-17", commit="5916273f79a21551890fd3d56fc5375a78d1598d") # py-torch@1.8:1.12
diff --git a/var/spack/repos/builtin/packages/cqrlib/package.py b/var/spack/repos/builtin/packages/cqrlib/package.py
index 92af14027447eb..aaaf2264792381 100644
--- a/var/spack/repos/builtin/packages/cqrlib/package.py
+++ b/var/spack/repos/builtin/packages/cqrlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cqrlib(MakefilePackage):
"https://downloads.sourceforge.net/project/cqrlib/cqrlib/CQRlib-1.1.2/CQRlib-1.1.2.tar.gz"
)
+ license("LGPL-2.1-or-later")
+
version("1.1.2", sha256="af3cf2402974579f3c6efc6a6174a5da52786db4bfee9d38d504d93bc42410fd")
depends_on("libtool", type="build")
diff --git a/var/spack/repos/builtin/packages/cquery/package.py b/var/spack/repos/builtin/packages/cquery/package.py
index b4bec9e73ed7e2..a00e3ea62ce639 100644
--- a/var/spack/repos/builtin/packages/cquery/package.py
+++ b/var/spack/repos/builtin/packages/cquery/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Cquery(CMakePackage):
homepage = "https://github.com/cquery-project/cquery"
git = "https://github.com/cquery-project/cquery.git"
+ license("MIT")
+
version("2018-08-23", commit="70c755b2e390d3edfb594a84a7531beb26b2bc07", submodules=True)
depends_on("llvm")
diff --git a/var/spack/repos/builtin/packages/cracklib/package.py b/var/spack/repos/builtin/packages/cracklib/package.py
index 82d8a411f31e21..b46217e554c9ee 100644
--- a/var/spack/repos/builtin/packages/cracklib/package.py
+++ b/var/spack/repos/builtin/packages/cracklib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cracklib(AutotoolsPackage):
homepage = "https://github.com/cracklib/cracklib"
url = "https://github.com/cracklib/cracklib/archive/v2.9.7.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("2.9.9", sha256="0a3fd72163512088c6f2add0f6cd6e34954ca0fa3f333ff9cced478b04e73ce1")
version("2.9.7", sha256="ff4e6c3f86494c93719f5e4186e2c3ea9e265f41972ec21f7b87852aced704e6")
version("2.9.6", sha256="7cd2c01365f199c466b490ad2585beccbe0108ccd606c1bcc6c1e52800e627fe")
diff --git a/var/spack/repos/builtin/packages/cradl/package.py b/var/spack/repos/builtin/packages/cradl/package.py
index 0b5e62b623a1ca..886a3208901e45 100644
--- a/var/spack/repos/builtin/packages/cradl/package.py
+++ b/var/spack/repos/builtin/packages/cradl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Cradl(Package):
tags = ["proxy-app"]
+ license("BSD-3-Clause")
+
version("master", branch="master")
depends_on("py-pandas")
diff --git a/var/spack/repos/builtin/packages/cram/package.py b/var/spack/repos/builtin/packages/cram/package.py
index 0654b281453d0a..2aceaad214a891 100644
--- a/var/spack/repos/builtin/packages/cram/package.py
+++ b/var/spack/repos/builtin/packages/cram/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cray-fftw/package.py b/var/spack/repos/builtin/packages/cray-fftw/package.py
index fd29b14938ef0b..13526ecc61803b 100644
--- a/var/spack/repos/builtin/packages/cray-fftw/package.py
+++ b/var/spack/repos/builtin/packages/cray-fftw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cray-libsci/package.py b/var/spack/repos/builtin/packages/cray-libsci/package.py
index ad24e669c2d3a2..e653aadc52f367 100644
--- a/var/spack/repos/builtin/packages/cray-libsci/package.py
+++ b/var/spack/repos/builtin/packages/cray-libsci/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cray-mpich/package.py b/var/spack/repos/builtin/packages/cray-mpich/package.py
index db0beaf085e835..66a75a874a5df7 100644
--- a/var/spack/repos/builtin/packages/cray-mpich/package.py
+++ b/var/spack/repos/builtin/packages/cray-mpich/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cray-mvapich2/package.py b/var/spack/repos/builtin/packages/cray-mvapich2/package.py
index 988858a2ebda86..e2c6bdab1fe88c 100644
--- a/var/spack/repos/builtin/packages/cray-mvapich2/package.py
+++ b/var/spack/repos/builtin/packages/cray-mvapich2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cray-pmi/package.py b/var/spack/repos/builtin/packages/cray-pmi/package.py
index 3e8cb0d4db801b..736f8848f00212 100644
--- a/var/spack/repos/builtin/packages/cray-pmi/package.py
+++ b/var/spack/repos/builtin/packages/cray-pmi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/creduce/package.py b/var/spack/repos/builtin/packages/creduce/package.py
index 2756a80a21b43d..d06a171995fb8b 100644
--- a/var/spack/repos/builtin/packages/creduce/package.py
+++ b/var/spack/repos/builtin/packages/creduce/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -22,6 +22,7 @@ class Creduce(CMakePackage):
depends_on("flex")
depends_on("libxml2")
+ depends_on("llvm")
depends_on("llvm@8.0.0", when="@:2.10")
depends_on("perl")
depends_on("perl-exporter-lite")
diff --git a/var/spack/repos/builtin/packages/crmc/package.py b/var/spack/repos/builtin/packages/crmc/package.py
index 44e5eef2410cde..0edb7bf18b53eb 100644
--- a/var/spack/repos/builtin/packages/crmc/package.py
+++ b/var/spack/repos/builtin/packages/crmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cromwell-womtool/package.py b/var/spack/repos/builtin/packages/cromwell-womtool/package.py
index 63d112ceafe63e..b20e3d2140e227 100644
--- a/var/spack/repos/builtin/packages/cromwell-womtool/package.py
+++ b/var/spack/repos/builtin/packages/cromwell-womtool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cromwell/package.py b/var/spack/repos/builtin/packages/cromwell/package.py
index 1d731cab54ea5d..053ea5de5c7a29 100644
--- a/var/spack/repos/builtin/packages/cromwell/package.py
+++ b/var/spack/repos/builtin/packages/cromwell/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cronie/package.py b/var/spack/repos/builtin/packages/cronie/package.py
index 3037fba6a9a501..d4caf6bee8548e 100644
--- a/var/spack/repos/builtin/packages/cronie/package.py
+++ b/var/spack/repos/builtin/packages/cronie/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Cronie(AutotoolsPackage):
homepage = "https://github.com/cronie-crond/cronie"
url = "https://github.com/cronie-crond/cronie/archive/cronie-1.5.5.tar.gz"
+ license("ISC")
+
version("1.6.1", sha256="1ddbc8f8d07dfe1d45998b0a0cbd9a216cd4d7bc64d1626b2bc8b3a69e4641d1")
version("1.5.5", sha256="22c2a2b22577c0f776c1268d0e0f305c5c041e10155022a345b43b665da0ffe9")
diff --git a/var/spack/repos/builtin/packages/crosstool-ng/package.py b/var/spack/repos/builtin/packages/crosstool-ng/package.py
index defc7095e48dfd..4c9865b35906f4 100644
--- a/var/spack/repos/builtin/packages/crosstool-ng/package.py
+++ b/var/spack/repos/builtin/packages/crosstool-ng/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/crtm-fix/package.py b/var/spack/repos/builtin/packages/crtm-fix/package.py
index 2499c2e047fb2a..b5c1111c3f96bd 100644
--- a/var/spack/repos/builtin/packages/crtm-fix/package.py
+++ b/var/spack/repos/builtin/packages/crtm-fix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/crtm/package.py b/var/spack/repos/builtin/packages/crtm/package.py
index 608a6aa30d5ae4..d1dc42a7f34cd2 100644
--- a/var/spack/repos/builtin/packages/crtm/package.py
+++ b/var/spack/repos/builtin/packages/crtm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -46,6 +46,8 @@ class Crtm(CMakePackage):
depends_on("ecbuild", type=("build"), when="@v2.4.1-jedi")
depends_on("ecbuild", type=("build"), when="@v3.0.0-rc.1")
+ license("CC0-1.0")
+
version(
"v2.4.1-jedi", sha256="fd8bf4db4f2a3b420b4186de84483ba2a36660519dffcb1e0ff14bfe8c6f6a14"
)
diff --git a/var/spack/repos/builtin/packages/crunch/package.py b/var/spack/repos/builtin/packages/crunch/package.py
index 5652d5f0cd6af5..35c0195ef5a6bf 100644
--- a/var/spack/repos/builtin/packages/crunch/package.py
+++ b/var/spack/repos/builtin/packages/crunch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Crunch(CMakePackage):
# fix compilation bugs. If these commits are ever merged into upstream, we can switch to that.
git = "https://github.com/rouault/crunch.git"
+ license("Zlib")
+
# No stable releases since 2012
version("master", branch="build_fixes")
diff --git a/var/spack/repos/builtin/packages/cryptopp/package.py b/var/spack/repos/builtin/packages/cryptopp/package.py
index 2465ab7dacd343..b0654740381ec4 100644
--- a/var/spack/repos/builtin/packages/cryptopp/package.py
+++ b/var/spack/repos/builtin/packages/cryptopp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Cryptopp(MakefilePackage):
homepage = "https://www.cryptopp.com"
url = "https://www.cryptopp.com/cryptopp700.zip"
+ license("BSL-1.0")
+
version("8.7.0", sha256="d0d3a28fcb5a1f6ed66b3adf57ecfaed234a7e194e42be465c2ba70c744538dd")
version("7.0.0", sha256="a4bc939910edd3d29fb819a6fc0dfdc293f686fa62326f61c56d72d0a366ceb0")
version("6.1.0", sha256="21289d2511101a9350c87c8eb1f4982d4a266e8037b19dab79a32cc13ea108c7")
diff --git a/var/spack/repos/builtin/packages/cryptsetup/package.py b/var/spack/repos/builtin/packages/cryptsetup/package.py
index 67c335974bc666..223726dc1ebfff 100644
--- a/var/spack/repos/builtin/packages/cryptsetup/package.py
+++ b/var/spack/repos/builtin/packages/cryptsetup/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/csa-c/package.py b/var/spack/repos/builtin/packages/csa-c/package.py
index 9c5be7f65700da..ec189e26f9c011 100644
--- a/var/spack/repos/builtin/packages/csa-c/package.py
+++ b/var/spack/repos/builtin/packages/csa-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cscope/package.py b/var/spack/repos/builtin/packages/cscope/package.py
index 670cd1a9f56656..6b6ebfd0f5dee0 100644
--- a/var/spack/repos/builtin/packages/cscope/package.py
+++ b/var/spack/repos/builtin/packages/cscope/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Cscope(AutotoolsPackage):
homepage = "http://cscope.sourceforge.net/"
url = "https://sourceforge.net/projects/cscope/files/cscope/v15.9/cscope-15.9.tar.gz"
+ license("BSD-3-Clause")
+
version("15.9", sha256="c5505ae075a871a9cd8d9801859b0ff1c09782075df281c72c23e72115d9f159")
version("15.8b", sha256="4889d091f05aa0845384b1e4965aa31d2b20911fb2c001b2cdcffbcb7212d3af")
diff --git a/var/spack/repos/builtin/packages/csdp/package.py b/var/spack/repos/builtin/packages/csdp/package.py
index 7189ead6a37370..22333049dd5b5c 100644
--- a/var/spack/repos/builtin/packages/csdp/package.py
+++ b/var/spack/repos/builtin/packages/csdp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Csdp(MakefilePackage):
homepage = "https://projects.coin-or.org/Csdp"
url = "https://www.coin-or.org/download/source/Csdp/Csdp-6.1.1.tgz"
+ license("CPL-1.0")
+
version("6.1.1", sha256="0558a46ac534e846bf866b76a9a44e8a854d84558efa50988ffc092f99a138b9")
depends_on("atlas")
diff --git a/var/spack/repos/builtin/packages/ctffind/package.py b/var/spack/repos/builtin/packages/ctffind/package.py
index ac7bc960c358fb..0cf000dfa22418 100644
--- a/var/spack/repos/builtin/packages/ctffind/package.py
+++ b/var/spack/repos/builtin/packages/ctffind/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Ctffind(AutotoolsPackage):
homepage = "https://grigoriefflab.umassmed.edu/ctffind4"
url = "https://grigoriefflab.umassmed.edu/system/tdf?path=ctffind-4.1.8.tar.gz&file=1&type=node&id=26"
+ license("BSD-3-Clause")
+
version(
"4.1.14",
sha256="db17b2ebeb3c3b2b3764e42b820cd50d19ccccf6956c64257bfe5d5ba6b40cb5",
diff --git a/var/spack/repos/builtin/packages/ctpl/package.py b/var/spack/repos/builtin/packages/ctpl/package.py
index d8d6933b269069..0971f1decbda21 100644
--- a/var/spack/repos/builtin/packages/ctpl/package.py
+++ b/var/spack/repos/builtin/packages/ctpl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Ctpl(AutotoolsPackage):
homepage = "https://github.com/b4n/ctpl"
url = "https://github.com/b4n/ctpl/archive/0.3.tar.gz"
+ license("GPL-3.0-only")
+
version("0.3", sha256="034875ba8e1ce87b7ee85bc7146a6a2b2a6ac0518482b36d65eb67dd09c03d0a")
depends_on("autoconf", type="build")
diff --git a/var/spack/repos/builtin/packages/ctre/package.py b/var/spack/repos/builtin/packages/ctre/package.py
index 91b14a3d38ec83..65e85edcfa9a42 100644
--- a/var/spack/repos/builtin/packages/ctre/package.py
+++ b/var/spack/repos/builtin/packages/ctre/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Ctre(CMakePackage):
url = "https://github.com/hanickadot/compile-time-regular-expressions/archive/v2.8.3.tar.gz"
git = "https://github.com/hanickadot/compile-time-regular-expressions.git"
+ license("Apache-2.0")
+
version("master", branch="master")
version("2.8.4", sha256="99b981857f1b66cab5e71161ae74deca268ed39a96ec6507def92d4f445cadd6")
version("2.8.3", sha256="5833a9d0fbce39ee39bd6e29df2f7fcafc82e41c373e8675ed0774bcf76fdc7a")
diff --git a/var/spack/repos/builtin/packages/cub/package.py b/var/spack/repos/builtin/packages/cub/package.py
index bc0aafab6fd31f..c4f9d304e968c9 100644
--- a/var/spack/repos/builtin/packages/cub/package.py
+++ b/var/spack/repos/builtin/packages/cub/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cub(Package):
url = "https://github.com/NVIDIA/cub/archive/1.12.0.zip"
git = "https://github.com/NVIDIA/cub.git"
+ license("BSD-3-Clause")
+
version("2.1.0", sha256="8ec47307f5e99379ac1cf6722cd5a24fc15b84b0f5361bebd453645a5e4bb34d")
version("1.16.0", sha256="a9e327d46c82025d17ed3ab5a10da006bcdaef5dcbd294b332ef0a572f58445b")
version("1.15.0", sha256="dcb75744650deb42e9123509482e0f84944c1dbd60d5cd909a416d953d3a6903")
diff --git a/var/spack/repos/builtin/packages/cuba/package.py b/var/spack/repos/builtin/packages/cuba/package.py
index 29358610679005..b70f294614b7db 100644
--- a/var/spack/repos/builtin/packages/cuba/package.py
+++ b/var/spack/repos/builtin/packages/cuba/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Cuba(AutotoolsPackage):
maintainers("wdconinc")
+ license("LGPL-3.0-only")
+
version("4.2.2", sha256="8d9f532fd2b9561da2272c156ef7be5f3960953e4519c638759f1b52fe03ed52")
parallel = False
diff --git a/var/spack/repos/builtin/packages/cube-blade/package.py b/var/spack/repos/builtin/packages/cube-blade/package.py
index 6002e2416ed768..7e1c8ae00caee0 100644
--- a/var/spack/repos/builtin/packages/cube-blade/package.py
+++ b/var/spack/repos/builtin/packages/cube-blade/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class CubeBlade(AutotoolsPackage):
homepage = "https://www.scalasca.org/software/cube-4.x/download.html"
url = "https://apps.fz-juelich.de/scalasca/releases/cube/4.5/dist/blade-0.2.tar.gz"
+ license("BSD-3-Clause")
+
version("0.2", sha256="ab3c5bbca79e2ec599166e75b3c96a8f6a18b3064414fc39e56f78aaae9c165c")
depends_on("cube@4.5:")
diff --git a/var/spack/repos/builtin/packages/cube/package.py b/var/spack/repos/builtin/packages/cube/package.py
index f3d91693230842..be571342821ed1 100644
--- a/var/spack/repos/builtin/packages/cube/package.py
+++ b/var/spack/repos/builtin/packages/cube/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,7 +16,10 @@ class Cube(AutotoolsPackage):
homepage = "https://www.scalasca.org/software/cube-4.x/download.html"
url = "https://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubegui-4.4.2.tar.gz"
+ maintainers("swat-jsc")
+ version("4.8.2", sha256="bf2e02002bb2e5c4f61832ce37b62a440675c6453463014b33b2474aac78f86d")
+ version("4.8.1", sha256="a8a2a62b4e587c012d3d32385bed7c500db14232419795e0f4272d1dcefc55bc")
version("4.8", sha256="1df8fcaea95323e7eaf0cc010784a41243532c2123a27ce93cb7e3241557ff76")
version("4.7.1", sha256="7c96bf9ffb8cc132945f706657756fe6f88b7f7a5243ecd3741f599c2006d428")
version("4.7", sha256="103fe00fa9846685746ce56231f64d850764a87737dc0407c9d0a24037590f68")
diff --git a/var/spack/repos/builtin/packages/cubelib/package.py b/var/spack/repos/builtin/packages/cubelib/package.py
index 919a001fedaa4f..6c6f4036b3b7ae 100644
--- a/var/spack/repos/builtin/packages/cubelib/package.py
+++ b/var/spack/repos/builtin/packages/cubelib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,7 @@ class Cubelib(AutotoolsPackage):
maintainers = ("swat-jsc", "wrwilliams")
version("4.8.2", sha256="d6fdef57b1bc9594f1450ba46cf08f431dd0d4ae595c47e2f3454e17e4ae74f4")
+ version("4.8.1", sha256="e4d974248963edab48c5d0fc5831146d391b0ae4632cccafe840bf5f12cd80a9")
version("4.8", sha256="171c93ac5afd6bc74c50a9a58efdaf8589ff5cc1e5bd773ebdfb2347b77e2f68")
version("4.7.1", sha256="62cf33a51acd9a723fff9a4a5411cd74203e24e0c4ffc5b9e82e011778ed4f2f")
version("4.7", sha256="e44352c80a25a49b0fa0748792ccc9f1be31300a96c32de982b92477a8740938")
diff --git a/var/spack/repos/builtin/packages/cubew/package.py b/var/spack/repos/builtin/packages/cubew/package.py
index bcab0920fd1833..34a7fccbefea7e 100644
--- a/var/spack/repos/builtin/packages/cubew/package.py
+++ b/var/spack/repos/builtin/packages/cubew/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,7 @@ class Cubew(AutotoolsPackage):
maintainers = ("swat-jsc", "wrwilliams")
version("4.8.2", sha256="4f3bcf0622c2429b8972b5eb3f14d79ec89b8161e3c1cc5862ceda417d7975d2")
+ version("4.8.1", sha256="42cbd743d87c16e805c8e28e79292ab33de259f2cfba46f2682cb35c1bc032d6")
version("4.8", sha256="73c7f9e9681ee45d71943b66c01cfe675b426e4816e751ed2e0b670563ca4cf3")
version("4.7.1", sha256="0d364a4930ca876aa887ec40d12399d61a225dbab69e57379b293516d7b6db8d")
version("4.7", sha256="a7c7fca13e6cb252f08d4380223d7c56a8e86a67de147bcc0279ebb849c884a5")
diff --git a/var/spack/repos/builtin/packages/cubist/package.py b/var/spack/repos/builtin/packages/cubist/package.py
index f058698b73a115..bd6fbc94bbf4ec 100644
--- a/var/spack/repos/builtin/packages/cubist/package.py
+++ b/var/spack/repos/builtin/packages/cubist/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Cubist(MakefilePackage):
homepage = "https://www.rulequest.com"
url = "https://www.rulequest.com/GPL/Cubist.tgz"
+ license("GPL-3.0-only")
+
version("2.07", sha256="f2b20807cd3275e775c42263a4efd3f50df6e495a8b6dc8989ea2d41b973ac1a")
def edit(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/cuda-memtest/package.py b/var/spack/repos/builtin/packages/cuda-memtest/package.py
index a5100c829ba651..90e218b126b5b0 100644
--- a/var/spack/repos/builtin/packages/cuda-memtest/package.py
+++ b/var/spack/repos/builtin/packages/cuda-memtest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class CudaMemtest(CMakePackage):
maintainers("ax3l")
+ license("Unlicense")
+
version("master", branch="dev")
depends_on("cmake@2.8.5:", type="build")
diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py
index e624acbaa9db8d..fbb99d47ad306a 100644
--- a/var/spack/repos/builtin/packages/cuda/package.py
+++ b/var/spack/repos/builtin/packages/cuda/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -25,6 +25,20 @@
preferred_ver = "11.8.0"
_versions = {
+ "12.3.0": {
+ "Linux-aarch64": (
+ "9a8fb8acf46b88faf0d711bda3149e1706efbbae02fcb40ab72addfd0e9ce5df",
+ "https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux_sbsa.run",
+ ),
+ "Linux-x86_64": (
+ "7c13face3af64d6e1648d6e3101d31c8111e747143acb0077d973c1690820422",
+ "https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux.run",
+ ),
+ "Linux-ppc64le": (
+ "de15c04380ec35b194c07503bf434837bac5b427cf77b19a63962b1653d195d5",
+ "https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux_ppc64le.run",
+ ),
+ },
"12.2.1": {
"Linux-aarch64": (
"a9ae6bd02684c7acfb229484368bf2691d592767ce1aed10ae9aed92c81b9f09",
diff --git a/var/spack/repos/builtin/packages/cudd/package.py b/var/spack/repos/builtin/packages/cudd/package.py
new file mode 100644
index 00000000000000..8c89391f65c054
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cudd/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Cudd(AutotoolsPackage):
+ """
+ The CUDD package is a package written in C for the manipulation of
+ decision diagrams. It supports binary decision diagrams (BDDs),
+ algebraic decision diagrams (ADDs), and Zero-Suppressed BDDs (ZDDs).
+ """
+
+ homepage = "https://cudd-mirror.sourceforge.io"
+ url = "https://sourceforge.net/projects/cudd-mirror/files/cudd-3.0.0.tar.gz"
+
+ maintainers("davekeeshan")
+
+ version("3.0.0", sha256="b8e966b4562c96a03e7fbea239729587d7b395d53cadcc39a7203b49cf7eeb69")
diff --git a/var/spack/repos/builtin/packages/cudnn/package.py b/var/spack/repos/builtin/packages/cudnn/package.py
index 54d6708e40337a..99fa5ab887efaa 100644
--- a/var/spack/repos/builtin/packages/cudnn/package.py
+++ b/var/spack/repos/builtin/packages/cudnn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -9,6 +9,44 @@
from spack.package import *
_versions = {
+ # cuDNN 8.9.7
+ "8.9.7.29-12": {
+ "Linux-x86_64": "475333625c7e42a7af3ca0b2f7506a106e30c93b1aa0081cd9c13efb6e21e3bb",
+ "Linux-ppc64le": "8574d291b299f9cc0134304473c9933bd098cc717e8d0876f4aba9f9eebe1b76",
+ },
+ "8.9.7.29-11": {
+ "Linux-x86_64": "a3e2509028cecda0117ce5a0f42106346e82e86d390f4bb9475afc976c77402e",
+ "Linux-ppc64le": "f23fd7d59f9d4f743fa926f317dab0d37f6ea21edb2726ceb607bea45b0f9f36",
+ },
+ # cuDNN 8.9.5
+ "8.9.5.30-12": {
+ "Linux-x86_64": "2a2eb89a2ab51071151c6082f1e816c702167a711a9372f9f73a7b5c4b06e01a",
+ "Linux-ppc64le": "38388ec3c99c6646aaf5c707985cd35e25c67f653d780c4081c2df5557ab665f",
+ "Linux-aarch64": "0491f7b02f55c22077eb678bf314c1f917524bd507cf5b658239bf98a47233a1",
+ },
+ "8.9.5.30-11": {
+ "Linux-x86_64": "bbe10e3c08cd7e4aea1012213781e4fe270e1c908263444f567cafefb2cc6525",
+ "Linux-ppc64le": "d678f8b2903b95de7eeaef38890c5674705864ea049b2b63e90565f2c0ea682f",
+ },
+ # cuDNN 8.9.0
+ "8.9.0.131-12": {
+ "Linux-x86_64": "477631002be61022b60961cba0a501271507a93f81d6b08384bc320cb8706c98",
+ "Linux-ppc64le": "ff239e4cbbf21fa18104b62a887686e2197f820ad58817d62e509c735a331829",
+ "Linux-aarch64": "fab70f4fb3b933ff502200a1d954d2c6fc205ff9c9b1d271ea4c41e980a66596",
+ },
+ "8.9.0.131-11": {
+ "Linux-x86_64": "3cb82c50723f14b41d43523f222cd52cc9d50b3ad67c380f4be51bd1133daa2d",
+ "Linux-ppc64le": "18778de490550c5b584e96560208e5e37678397037946e10a1c2824174c69725",
+ },
+ # cuDNN 8.8.1
+ "8.8.1.3-12": {
+ "Linux-x86_64": "79d77a769c7e7175abc7b5c2ed5c494148c0618a864138722c887f95c623777c",
+ "Linux-ppc64le": "b0e89021a846952cad8cfc674edce2883f6e344ebd47a2394f706b1136715bc7",
+ },
+ "8.8.1.3-11": {
+ "Linux-x86_64": "af7584cae0cc5524b5913ef08c29ba6154113c60eb0a37a0590a91b515a8a8f9",
+ "Linux-ppc64le": "d086003d09d5388aa42142f07483a773aa74b602478b0933e24fc63f56f1658f",
+ },
# cuDNN 8.7.0
"8.7.0.84-11.8": {
"Linux-x86_64": "976c4cba7233c97ae74006afab5172976300ba40f5b250a21f8cf71f59c9f76d",
@@ -262,6 +300,8 @@ class Cudnn(Package):
skip_version_audit = ["platform=darwin"]
+ license("MIT")
+
for ver, packages in _versions.items():
key = "{0}-{1}".format(platform.system(), platform.machine())
pkg = packages.get(key)
@@ -287,7 +327,7 @@ def url_for_version(self, version):
.replace("darwin", "osx")
.replace("aarch64", "aarch64sbsa")
)
- else:
+ elif version < Version("8.8.0"):
sys_key = sys_key.replace("aarch64", "sbsa")
if version >= Version("8.3.1"):
@@ -318,8 +358,12 @@ def url_for_version(self, version):
ver = version[:2]
cuda = version[2:]
+ # 8.8.0 changed the base url again
+ if version >= Version("8.8.0"):
+ url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/{0}/cudnn-{0}-{1}_cuda{2}-archive.tar.xz"
+ return url.format(sys_key, ver, cuda.up_to(1))
# 8.5.0 removed minor from cuda version
- if version >= Version("8.5.0"):
+ elif version >= Version("8.5.0"):
url = "https://developer.download.nvidia.com/compute/redist/cudnn/v{0}/cudnn-{1}-{2}_cuda{3}-archive.tar.xz"
return url.format(directory, sys_key, ver, cuda.up_to(1))
# 8.3.1 switched to xzip tarballs and reordered url parts.
diff --git a/var/spack/repos/builtin/packages/cufflinks/package.py b/var/spack/repos/builtin/packages/cufflinks/package.py
index bd9d0f295add70..37c1719563e90a 100644
--- a/var/spack/repos/builtin/packages/cufflinks/package.py
+++ b/var/spack/repos/builtin/packages/cufflinks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Cufflinks(Package):
homepage = "https://cole-trapnell-lab.github.io/cufflinks"
url = "https://cole-trapnell-lab.github.io/cufflinks/assets/downloads/cufflinks-2.2.1.Linux_x86_64.tar.gz"
+ license("BSL-1.0")
+
version("2.2.1", sha256="39f812452cae26462e5d2671d38104d9e8ef30aaf9ab6dea8ca57f50f46448e4")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/cunit/package.py b/var/spack/repos/builtin/packages/cunit/package.py
index a4fd2b97e684fe..c1e7eec160e791 100644
--- a/var/spack/repos/builtin/packages/cunit/package.py
+++ b/var/spack/repos/builtin/packages/cunit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Cunit(AutotoolsPackage):
homepage = "https://sourceforge.net/projects/cunit/"
url = "https://sourceforge.net/projects/cunit/files/CUnit/2.1-3/CUnit-2.1-3.tar.bz2"
+ license("GPL-2.0-or-later")
+
version("2.1-3", sha256="f5b29137f845bb08b77ec60584fdb728b4e58f1023e6f249a464efa49a40f214")
depends_on("autoconf", type="build")
diff --git a/var/spack/repos/builtin/packages/cupla/package.py b/var/spack/repos/builtin/packages/cupla/package.py
index e2b5df889568ae..abfd480d5f7126 100644
--- a/var/spack/repos/builtin/packages/cupla/package.py
+++ b/var/spack/repos/builtin/packages/cupla/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cups/package.py b/var/spack/repos/builtin/packages/cups/package.py
index 8e73296ea1558e..6d4bf76626876e 100644
--- a/var/spack/repos/builtin/packages/cups/package.py
+++ b/var/spack/repos/builtin/packages/cups/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Cups(AutotoolsPackage):
homepage = "https://www.cups.org/"
url = "https://github.com/apple/cups/releases/download/v2.2.3/cups-2.2.3-source.tar.gz"
+ license("Apache-2.0")
+
version("2.3.3", sha256="261fd948bce8647b6d5cb2a1784f0c24cc52b5c4e827b71d726020bcc502f3ee")
version("2.2.3", sha256="66701fe15838f2c892052c913bde1ba106bbee2e0a953c955a62ecacce76885f")
diff --git a/var/spack/repos/builtin/packages/curl/package.py b/var/spack/repos/builtin/packages/curl/package.py
index f26247a44ad00d..121b7db5fcb57b 100644
--- a/var/spack/repos/builtin/packages/curl/package.py
+++ b/var/spack/repos/builtin/packages/curl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -26,6 +26,8 @@ class Curl(NMakePackage, AutotoolsPackage):
maintainers("alecbcs")
+ license("curl")
+
version("8.4.0", sha256="e5250581a9c032b1b6ed3cf2f9c114c811fc41881069e9892d115cc73f9e88c6")
# Deprecated versions due to CVEs
diff --git a/var/spack/repos/builtin/packages/cusz/package.py b/var/spack/repos/builtin/packages/cusz/package.py
index 0482f34812d611..666aec3f33df7c 100644
--- a/var/spack/repos/builtin/packages/cusz/package.py
+++ b/var/spack/repos/builtin/packages/cusz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cutensor/package.py b/var/spack/repos/builtin/packages/cutensor/package.py
index 9f42a27e9546f5..d80a8df332be64 100644
--- a/var/spack/repos/builtin/packages/cutensor/package.py
+++ b/var/spack/repos/builtin/packages/cutensor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cutlang/package.py b/var/spack/repos/builtin/packages/cutlang/package.py
index 5283ccd8be247f..4a675143ad4af2 100644
--- a/var/spack/repos/builtin/packages/cutlang/package.py
+++ b/var/spack/repos/builtin/packages/cutlang/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cutlass/package.py b/var/spack/repos/builtin/packages/cutlass/package.py
index f511dc4e69f237..865523f4fcb748 100644
--- a/var/spack/repos/builtin/packages/cutlass/package.py
+++ b/var/spack/repos/builtin/packages/cutlass/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,11 +11,37 @@ class Cutlass(CMakePackage, CudaPackage):
homepage = "https://github.com/NVIDIA/cutlass"
git = homepage + ".git"
- url = "https://github.com/NVIDIA/cutlass/archive/refs/tags/v2.9.0.tar.gz"
+ url = "https://github.com/NVIDIA/cutlass/archive/refs/tags/v3.3.0.tar.gz"
+ version("main", branch="main")
version("master", branch="master")
+ version("3.3.0", sha256="99876de94a04d0b9cdee81d4f29659bde1426b416926aef4d9a3a3a7869511a3")
+ version("3.2.2", sha256="aaa9719eb806b168695b34893faf4854bb6bc9e09f63f2d36772aaf35a8516e5")
+ version("3.2.1", sha256="da4081210d6699a547dbbe3d7cc18b4527df835518a3d0d3c85a373927c3a9b1")
+ version("3.2.0", sha256="9637961560a9d63a6bb3f407faf457c7dbc4246d3afb54ac7dc1e014dd7f172f")
+ version("3.1.0", sha256="821aa2e5b709a2e5d3922dcf2c5d445b4898a6ef8bac683cfb00125eafbca029")
+ version("3.0.0", sha256="ade959981d0937a26c758979dbc97c4df152a511176573ba2d976604de78a3e3")
+ version("2.11.0", sha256="b4394f1e080b63cfc54163069334096324c1262dfc66e67099880005d51b8af9")
+ version("2.10.0", sha256="8f56727c0c7ca59f67f6904972958a6e7e925f72e112056e6df7bb3fdeacefd7")
version("2.9.1", sha256="2d6474576c08ee21d7f4f3a10fd1a47234fd9fd638efc8a2e0e64bb367f09bc1")
version("2.9.0", sha256="ccca4685739a3185e3e518682845314b07a5d4e16d898b10a3c3a490fd742fb4")
+ version("2.8.0", sha256="1938f0e739646370a59ba1f5e365be4c701e8d9e0b9b725d306622e9aafa6b2a")
+ version("2.7.0", sha256="3f44d057d6f453f2ff320eb0b544b17b8ee72dbbda33823a6d600dd3859cd37e")
+ version("2.6.1", sha256="a3627869e36796a7b60b07a31305e344449ea8c1fb4f76e2573fea43398454ac")
+ version("2.6.0", sha256="2d9b977e5e8a0d0d96c117b5260497dba4f54032fd22f07fdc3ae80278262d01")
+ version("2.5.0", sha256="d499fc9c9429cf8dee017072312e350077f27d75187e5a83dbfaad26788f5f45")
+ version("2.4.0", sha256="28794a523420457e624e3054dea95d7f5834529c9f9794eb9745d4a3f0a1bc15")
+ version("2.3.0", sha256="62cb62f034d688ac586b92e381620fc940ef1bd43664b064ead5d59de5aace9e")
+ version("2.2.0", sha256="2d853378b186f85c952072f78f5e9533185a274fb7b2d10718527f15e12bfc7d")
+ version("2.1.0", sha256="c0b1cdd95703b07209fe14cd4d2bc28fa8d1ca3d6caa3a433ad1ba3438c83f5b")
+ version("2.0.0", sha256="92d5b1ac41738939902c2d16f44c42f6b4c996ab84e03c26159e70ace7048299")
+ version("1.3.3", sha256="12d5b4c913063625154019b0a03a253c5b9339c969939454b81f6baaf82b34ca")
+ version("1.3.2", sha256="b0223806a75a7aa4e5f404d08ee7a612f511e4fb1aad740be19ce8429c4cbe2e")
+ version("1.3.0", sha256="998657c88917ece065d2f9fc2ec977dbb5c117436b989721fc9a8b147e906ff3")
+ version("1.2.0", sha256="eb8fd9c3abdcd404003cf72087cabec668162a33de4fdbc34d6b2d59d24d98ad")
+ version("1.1.0", sha256="7ae0da2257efa7f4ad9c224bce0d10cb1a5580df6b7010d832cf0a11def4627d")
+ version("1.0.1", sha256="2adec90497141893ca53ac945b88d5881610ed3347166b36be4f72449b5342a0")
+ version("1.0.0", sha256="c7a16d349e11d85891cb91ece97d5bdbc4b140f614a0265732c2dc81a806bd98")
variant("cuda", default=True, description="Build with CUDA")
conflicts("~cuda", msg="Cutlass requires CUDA")
conflicts(
diff --git a/var/spack/repos/builtin/packages/cvector/package.py b/var/spack/repos/builtin/packages/cvector/package.py
index 024ffbb9b6338e..9a65d39edf257e 100644
--- a/var/spack/repos/builtin/packages/cvector/package.py
+++ b/var/spack/repos/builtin/packages/cvector/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Cvector(MakefilePackage):
homepage = "http://cvector.sourceforge.net/"
url = "https://downloads.sourceforge.net/project/cvector/cvector/CVector-1.0.3/CVector-1.0.3.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("1.0.3", sha256="d3fa92de3cd5ba8697abdbb52080248b2c252a81cf40a8ec639be301518d0ce3")
depends_on("libtool", type="build")
diff --git a/var/spack/repos/builtin/packages/cvise/package.py b/var/spack/repos/builtin/packages/cvise/package.py
index 097d9f68149567..48def2cf00ae40 100644
--- a/var/spack/repos/builtin/packages/cvise/package.py
+++ b/var/spack/repos/builtin/packages/cvise/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cvise(CMakePackage):
url = "https://github.com/marxin/cvise"
git = "https://github.com/marxin/cvise.git"
+ license("NCSA")
+
version("master", branch="master")
version("2.7.0", tag="v2.7.0", commit="d9e4a50514d9931b2a1293755a7e96e0f9520032")
@@ -31,6 +33,3 @@ class Cvise(CMakePackage):
depends_on("py-pytest", when="+pytest", type=("build", "run"))
depends_on("colordiff", when="+colordiff", type=("build", "run"))
-
- def cmake_args(self):
- return ["-DPYTHON_EXECUTABLE=" + self.spec["python"].command.path]
diff --git a/var/spack/repos/builtin/packages/cvs/package.py b/var/spack/repos/builtin/packages/cvs/package.py
index 7f0a2c1ae1c412..867da627895f17 100644
--- a/var/spack/repos/builtin/packages/cvs/package.py
+++ b/var/spack/repos/builtin/packages/cvs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Cvs(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.nongnu.org/cvs/"
gnu_mirror_path = "non-gnu/cvs/source/feature/1.12.13/cvs-1.12.13.tar.bz2"
+ license("GPL-2.0-or-later")
+
version("1.12.13", sha256="78853613b9a6873a30e1cc2417f738c330e75f887afdaf7b3d0800cb19ca515e")
# To avoid the problem: The use of %n in format strings in writable memory
diff --git a/var/spack/repos/builtin/packages/cxx/package.py b/var/spack/repos/builtin/packages/cxx/package.py
index 481f2c83c037de..c34e8af7bb9082 100644
--- a/var/spack/repos/builtin/packages/cxx/package.py
+++ b/var/spack/repos/builtin/packages/cxx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/cxxopts/package.py b/var/spack/repos/builtin/packages/cxxopts/package.py
index 1f7e90393184a0..be93b9631f1152 100644
--- a/var/spack/repos/builtin/packages/cxxopts/package.py
+++ b/var/spack/repos/builtin/packages/cxxopts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Cxxopts(CMakePackage):
url = "https://github.com/jarro2783/cxxopts/archive/v2.2.0.tar.gz"
maintainers("haampie")
+ license("MIT")
+
version("3.1.1", sha256="523175f792eb0ff04f9e653c90746c12655f10cb70f1d5e6d6d9491420298a08")
version("3.0.0", sha256="36f41fa2a46b3c1466613b63f3fa73dc24d912bc90d667147f1e43215a8c6d00")
version("2.2.1", sha256="984aa3c8917d649b14d7f6277104ce38dd142ce378a9198ec926f03302399681")
diff --git a/var/spack/repos/builtin/packages/cxxtest/package.py b/var/spack/repos/builtin/packages/cxxtest/package.py
index a8e6448f6f90bc..162d85432656df 100644
--- a/var/spack/repos/builtin/packages/cxxtest/package.py
+++ b/var/spack/repos/builtin/packages/cxxtest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Cxxtest(Package):
homepage = "https://cxxtest.com/"
url = "https://sourceforge.net/projects/cxxtest/files/cxxtest/4.4/cxxtest-4.4.tar.gz/download"
+ license("LGPL-3.0-or-later")
+
version("4.4", sha256="1c154fef91c65dbf1cd4519af7ade70a61d85a923b6e0c0b007dc7f4895cf7d8")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/cyrus-sasl/package.py b/var/spack/repos/builtin/packages/cyrus-sasl/package.py
index 3e5450eeb223e8..a464055d49aa68 100644
--- a/var/spack/repos/builtin/packages/cyrus-sasl/package.py
+++ b/var/spack/repos/builtin/packages/cyrus-sasl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class CyrusSasl(AutotoolsPackage):
homepage = "https://github.com/cyrusimap/cyrus-sasl"
url = "https://github.com/cyrusimap/cyrus-sasl/archive/cyrus-sasl-2.1.27.tar.gz"
+ license("custom")
+
version("2.1.28", sha256="3e38933a30b9ce183a5488b4f6a5937a702549cde0d3287903d80968ad4ec341")
version("2.1.27", sha256="b564d773803dc4cff42d2bdc04c80f2b105897a724c247817d4e4a99dd6b9976")
version("2.1.26", sha256="7c14d1b5bd1434adf2dd79f70538617e6aa2a7bde447454b90b84ac5c4d034ba")
diff --git a/var/spack/repos/builtin/packages/czmq/package.py b/var/spack/repos/builtin/packages/czmq/package.py
index d46051d1bfbf7f..a26df3941696d5 100644
--- a/var/spack/repos/builtin/packages/czmq/package.py
+++ b/var/spack/repos/builtin/packages/czmq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Czmq(AutotoolsPackage):
homepage = "http://czmq.zeromq.org"
url = "https://github.com/zeromq/czmq/archive/v4.0.2.tar.gz"
+ license("MPL-2.0")
+
version("4.1.1", sha256="b7623433547aa4b6e79722796c27ebc7c0470fea4204e920fd05e717c648f889")
version("4.0.2", sha256="794f80af7392ec8d361ad69646fc20aaa284d23fef92951334009771a732c810")
version("3.0.2", sha256="e56f8498daf70310b31c42669b2f9b753c5e747eafaff6d4fdac26d72a474b27")
diff --git a/var/spack/repos/builtin/packages/daemonize/package.py b/var/spack/repos/builtin/packages/daemonize/package.py
index 8f900f78d7e388..05aefdc1e6b394 100644
--- a/var/spack/repos/builtin/packages/daemonize/package.py
+++ b/var/spack/repos/builtin/packages/daemonize/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dakota/package.py b/var/spack/repos/builtin/packages/dakota/package.py
index e0374ad927880e..b8c46953a264b0 100644
--- a/var/spack/repos/builtin/packages/dakota/package.py
+++ b/var/spack/repos/builtin/packages/dakota/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -40,6 +40,8 @@ class Dakota(CMakePackage):
git = "https://github.com/snl-dakota/dakota.git"
url = "https://dakota.sandia.gov/sites/default/files/distributions/public/dakota-6.12-release-public.src.tar.gz"
+ license("LGPL-2.1-or-later")
+
version(
"6.18",
tag="v6.18.0",
diff --git a/var/spack/repos/builtin/packages/daligner/package.py b/var/spack/repos/builtin/packages/daligner/package.py
index 8760ff72c5368d..d7763a0a0c013e 100644
--- a/var/spack/repos/builtin/packages/daligner/package.py
+++ b/var/spack/repos/builtin/packages/daligner/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dalton/package.py b/var/spack/repos/builtin/packages/dalton/package.py
index c221a9aa2ad429..a911d5e18c286f 100644
--- a/var/spack/repos/builtin/packages/dalton/package.py
+++ b/var/spack/repos/builtin/packages/dalton/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Dalton(CMakePackage):
maintainers("foeroyingur")
+ license("LGPL-2.1-or-later")
+
version("master", branch="master", submodules=True)
version(
"2020.0", tag="2020.0", commit="66052b3af5ea7225e31178bf9a8b031913c72190", submodules=True
diff --git a/var/spack/repos/builtin/packages/damageproto/package.py b/var/spack/repos/builtin/packages/damageproto/package.py
index da0df155ac7f71..6208f9261281a9 100644
--- a/var/spack/repos/builtin/packages/damageproto/package.py
+++ b/var/spack/repos/builtin/packages/damageproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/damaris/package.py b/var/spack/repos/builtin/packages/damaris/package.py
index 3f8b6f156bead8..f85d1df76c75f8 100644
--- a/var/spack/repos/builtin/packages/damaris/package.py
+++ b/var/spack/repos/builtin/packages/damaris/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Damaris(CMakePackage):
git = "https://gitlab.inria.fr/Damaris/damaris.git"
maintainers("jcbowden")
+ license("LGPL-3.0-or-later")
+
version("master", branch="master")
version("1.9.2", tag="v1.9.2", commit="22c146b4b4ca047d4d36fd904d248e0280b3c0ea")
version("1.9.1", tag="v1.9.1", commit="2fe83f587837b7ad0b5c187b8ff453f7d3ad2c18")
diff --git a/var/spack/repos/builtin/packages/damask-grid/package.py b/var/spack/repos/builtin/packages/damask-grid/package.py
index f23f754c9070c0..68a973b09eb22b 100644
--- a/var/spack/repos/builtin/packages/damask-grid/package.py
+++ b/var/spack/repos/builtin/packages/damask-grid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,11 @@ class DamaskGrid(CMakePackage):
maintainers("MarDiehl")
+ license("AGPL-3.0-or-later")
+
+ version(
+ "3.0.0-alpha8", sha256="f62c38123213d1c1fe2eb8910b0ffbdc1cac56273c2520f3b64a553363190b9d"
+ )
version(
"3.0.0-alpha7", sha256="442b06b824441293e72ff91b211a555c5d497aedf62be1c4332c426558b848a4"
)
@@ -28,6 +33,7 @@ class DamaskGrid(CMakePackage):
"3.0.0-alpha4", sha256="0bb8bde43b27d852b1fb6e359a7157354544557ad83d87987b03f5d629ce5493"
)
+ depends_on("petsc@3.20.2:3.21", when="@3.0.0-alpha8")
depends_on("petsc@3.17.1:3.18", when="@3.0.0-alpha7")
depends_on("petsc@3.16.5:3.16", when="@3.0.0-alpha6")
depends_on("petsc@3.14.0:3.14,3.15.1:3.16", when="@3.0.0-alpha5")
diff --git a/var/spack/repos/builtin/packages/damask-mesh/package.py b/var/spack/repos/builtin/packages/damask-mesh/package.py
index 893e72fa3ce0af..2e537477a27c92 100644
--- a/var/spack/repos/builtin/packages/damask-mesh/package.py
+++ b/var/spack/repos/builtin/packages/damask-mesh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,11 @@ class DamaskMesh(CMakePackage):
maintainers("MarDiehl")
+ license("AGPL-3.0-or-later")
+
+ version(
+ "3.0.0-alpha8", sha256="f62c38123213d1c1fe2eb8910b0ffbdc1cac56273c2520f3b64a553363190b9d"
+ )
version(
"3.0.0-alpha7", sha256="442b06b824441293e72ff91b211a555c5d497aedf62be1c4332c426558b848a4"
)
@@ -28,6 +33,7 @@ class DamaskMesh(CMakePackage):
"3.0.0-alpha4", sha256="0bb8bde43b27d852b1fb6e359a7157354544557ad83d87987b03f5d629ce5493"
)
+ depends_on("petsc@3.20.2:3.21", when="@3.0.0-alpha8")
depends_on("petsc@3.17.1:3.18", when="@3.0.0-alpha7")
depends_on("petsc@3.16.5:3.16", when="@3.0.0-alpha6")
depends_on("petsc@3.14.0:3.14,3.15.1:3.16", when="@3.0.0-alpha5")
diff --git a/var/spack/repos/builtin/packages/damask/package.py b/var/spack/repos/builtin/packages/damask/package.py
index bda1aac1f132c7..84bf0caff572a5 100644
--- a/var/spack/repos/builtin/packages/damask/package.py
+++ b/var/spack/repos/builtin/packages/damask/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -28,11 +28,16 @@ class Damask(BundlePackage):
maintainers("MarDiehl")
+ version("3.0.0-alpha8")
version("3.0.0-alpha7")
version("3.0.0-alpha6")
version("3.0.0-alpha5")
version("3.0.0-alpha4")
+ depends_on("damask-grid@3.0.0-alpha8", when="@3.0.0-alpha8", type="run")
+ depends_on("damask-mesh@3.0.0-alpha8", when="@3.0.0-alpha8", type="run")
+ depends_on("py-damask@3.0.0-alpha8", when="@3.0.0-alpha8", type="run")
+
depends_on("damask-grid@3.0.0-alpha7", when="@3.0.0-alpha7", type="run")
depends_on("damask-mesh@3.0.0-alpha7", when="@3.0.0-alpha7", type="run")
depends_on("py-damask@3.0.0-alpha7", when="@3.0.0-alpha7", type="run")
diff --git a/var/spack/repos/builtin/packages/damselfly/package.py b/var/spack/repos/builtin/packages/damselfly/package.py
index 862ed23c99f66d..74b8a078ad95e0 100644
--- a/var/spack/repos/builtin/packages/damselfly/package.py
+++ b/var/spack/repos/builtin/packages/damselfly/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/daos/package.py b/var/spack/repos/builtin/packages/daos/package.py
index 3b62ecd8052fdd..87bbfe86622247 100644
--- a/var/spack/repos/builtin/packages/daos/package.py
+++ b/var/spack/repos/builtin/packages/daos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Daos(SConsPackage):
git = "https://github.com/daos-stack/daos.git"
maintainers("hyoklee")
+ license("BSD-2-Clause-Patent")
+
version("master", branch="master", submodules=True)
version(
"2.2.0", tag="v2.2.0", commit="d2a1f2790c946659c9398926254e6203fd957b7c", submodules=True
diff --git a/var/spack/repos/builtin/packages/darshan-runtime/package.py b/var/spack/repos/builtin/packages/darshan-runtime/package.py
index 1b4e06b5919a04..5fee8c6801009b 100644
--- a/var/spack/repos/builtin/packages/darshan-runtime/package.py
+++ b/var/spack/repos/builtin/packages/darshan-runtime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -115,9 +115,9 @@ def configure_args(self):
if "+apmpi" in spec:
extra_args.append("--enable-apmpi-mod")
if "+apmpi_sync" in spec:
- extra_args.append(["--enable-apmpi-mod", "--enable-apmpi-coll-sync"])
+ extra_args.extend(["--enable-apmpi-mod", "--enable-apmpi-coll-sync"])
if "+apxc" in spec:
- extra_args.append(["--enable-apxc-mod"])
+ extra_args.append("--enable-apxc-mod")
extra_args.append("--with-mem-align=8")
extra_args.append("--with-log-path-by-env=DARSHAN_LOG_DIR_PATH")
diff --git a/var/spack/repos/builtin/packages/darshan-util/package.py b/var/spack/repos/builtin/packages/darshan-util/package.py
index 56f85a9f006ec9..d83cbd2fbbe1dd 100644
--- a/var/spack/repos/builtin/packages/darshan-util/package.py
+++ b/var/spack/repos/builtin/packages/darshan-util/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dash/package.py b/var/spack/repos/builtin/packages/dash/package.py
index 00e290bfdc11ee..b5fe8a7cd19830 100644
--- a/var/spack/repos/builtin/packages/dash/package.py
+++ b/var/spack/repos/builtin/packages/dash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Dash(AutotoolsPackage):
url = "https://git.kernel.org/pub/scm/utils/dash/dash.git/snapshot/dash-0.5.9.1.tar.gz"
list_url = homepage
+ license("BSD-3-Clause AND GPL-2.0-or-later")
+
version("0.5.12", sha256="0d632f6b945058d84809cac7805326775bd60cb4a316907d0bd4228ff7107154")
version("0.5.9.1", sha256="3f747013a20a3a9d2932be1a6dd1b002ca5649849b649be0af8a8da80bd8a918")
diff --git a/var/spack/repos/builtin/packages/datamash/package.py b/var/spack/repos/builtin/packages/datamash/package.py
index 1091ea75f54e89..c36f9e83e6a104 100644
--- a/var/spack/repos/builtin/packages/datamash/package.py
+++ b/var/spack/repos/builtin/packages/datamash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Datamash(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/datamash/"
gnu_mirror_path = "datamash/datamash-1.0.5.tar.gz"
+ license("GPL-3.0-or-later")
+
version("1.8", sha256="7ad97e8c7ef616dd03aa5bd67ae24c488272db3e7d1f5774161c18b75f29f6fd")
version("1.3", sha256="eebb52171a4353aaad01921384098cf54eb96ebfaf99660e017f6d9fc96657a6")
version("1.1.0", sha256="a9e5acc86af4dd64c7ac7f6554718b40271aa67f7ff6e9819bdd919a25904bb0")
diff --git a/var/spack/repos/builtin/packages/dataspaces/package.py b/var/spack/repos/builtin/packages/dataspaces/package.py
index d19e0f30d86e0f..a62d8eec05eece 100644
--- a/var/spack/repos/builtin/packages/dataspaces/package.py
+++ b/var/spack/repos/builtin/packages/dataspaces/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Dataspaces(AutotoolsPackage):
homepage = "http://www.dataspaces.org"
url = "https://dataspaces.rdi2.rutgers.edu/downloads/dataspaces-1.6.2.tar.gz"
+ license("BSD-3-Clause")
+
version("1.8.0", sha256="7f204bb3c03c2990f5a2d76a29185466b584793c63ada03e5e694627e6060605")
version("1.6.2", sha256="3c43d551c1e8198a4ab269c83928e1dc6f8054e6d41ceaee45155d91a48cf9bf")
diff --git a/var/spack/repos/builtin/packages/datatransferkit/package.py b/var/spack/repos/builtin/packages/datatransferkit/package.py
index 7e0d050069d0cd..7f29a80ddfcae2 100644
--- a/var/spack/repos/builtin/packages/datatransferkit/package.py
+++ b/var/spack/repos/builtin/packages/datatransferkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Datatransferkit(CMakePackage):
maintainers("Rombur")
+ license("BSD-3-Clause")
+
version("master", branch="master", submodules=True)
version("3.1.1", commit="bfb7673cc233c26a6a541cbf096f37f26df1e5fb", submodules=True)
version("3.1.0", commit="60a4cbd0a55505e0450f1ac979e1eef8966dc03f", submodules=True)
diff --git a/var/spack/repos/builtin/packages/date/package.py b/var/spack/repos/builtin/packages/date/package.py
index 8eedeb6dd46f3b..f9246f6da41c20 100644
--- a/var/spack/repos/builtin/packages/date/package.py
+++ b/var/spack/repos/builtin/packages/date/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Date(CMakePackage):
homepage = "https://github.com/HowardHinnant/date"
url = "https://github.com/HowardHinnant/date/archive/v3.0.0.zip"
+ license("MIT")
+
version("3.0.1", sha256="f4300b96f7a304d4ef9bf6e0fa3ded72159f7f2d0f605bdde3e030a0dba7cf9f")
version("3.0.0", sha256="ddbec664607bb6ec7dd4c7be1f9eefc3d8ce88293ffc9391486ce6ce887ec9b2")
diff --git a/var/spack/repos/builtin/packages/dateutils/package.py b/var/spack/repos/builtin/packages/dateutils/package.py
index fba86a5b6bc9eb..a6dff40a25643c 100644
--- a/var/spack/repos/builtin/packages/dateutils/package.py
+++ b/var/spack/repos/builtin/packages/dateutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Dateutils(AutotoolsPackage):
homepage = "https://www.fresse.org/dateutils/"
url = "https://github.com/hroptatyr/dateutils/releases/download/v0.4.6/dateutils-0.4.6.tar.xz"
+ license("BSD-3-Clause")
+
version("0.4.7", sha256="49725457f5bef45ea424baade8999a6e54496e357f64280474ff7134a54f599a")
version("0.4.6", sha256="26a071317ae5710f226a3e6ba9a54d3764cd9efe3965aecc18e75372088757cd")
version("0.4.5", sha256="16d6a0fe7b7d49ddbb303f33538dd7304a0d4af5a0369bcbf275db6a5060cbde")
diff --git a/var/spack/repos/builtin/packages/davix/package.py b/var/spack/repos/builtin/packages/davix/package.py
index ea0eb7eb35dbc9..75dca8c2512f38 100644
--- a/var/spack/repos/builtin/packages/davix/package.py
+++ b/var/spack/repos/builtin/packages/davix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Davix(CMakePackage):
maintainers("gartung", "greenc-FNAL", "marcmengel", "vitodb")
+ license("LGPL-2.1-or-later")
+
version("0.8.1", sha256="3f42f4eadaf560ab80984535ffa096d3e88287d631960b2193e84cf29a5fe3a6")
version("0.8.0", sha256="2f108da0408a83fb5b9f0c68150d360ba733e4b3a0fe298d45b0d32d28ab7124")
version("0.7.6", sha256="a2e7fdff29f7ba247a3bcdb08ab1db6d6ed745de2d3971b46526986caf360673")
diff --git a/var/spack/repos/builtin/packages/dbcsr/package.py b/var/spack/repos/builtin/packages/dbcsr/package.py
index 2a3251304f44c2..f8561aabc16ae5 100644
--- a/var/spack/repos/builtin/packages/dbcsr/package.py
+++ b/var/spack/repos/builtin/packages/dbcsr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage):
maintainers("dev-zero", "mtaillefumier")
+ license("GPL-2.0-or-later")
+
version("develop", branch="develop")
version("2.6.0", sha256="c67b02ff9abc7c1f529af446a9f01f3ef9e5b0574f220259128da8d5ca7e9dc6")
version("2.5.0", sha256="91fda9b2502e5d0a2a6cdd5a73ef096253cc7e75bd01ba5189a4726ad86aef08")
diff --git a/var/spack/repos/builtin/packages/dbow2/package.py b/var/spack/repos/builtin/packages/dbow2/package.py
index 3916711b2f3041..08af93657bb317 100644
--- a/var/spack/repos/builtin/packages/dbow2/package.py
+++ b/var/spack/repos/builtin/packages/dbow2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dbus-glib/package.py b/var/spack/repos/builtin/packages/dbus-glib/package.py
index 04fb2bec189b5a..cbee80b7ed8482 100644
--- a/var/spack/repos/builtin/packages/dbus-glib/package.py
+++ b/var/spack/repos/builtin/packages/dbus-glib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class DbusGlib(AutotoolsPackage):
homepage = "https://dbus.freedesktop.org"
url = "https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.110.tar.gz"
+ license("AFL-2.1 OR GPL-2.0-or-later")
+
version("0.112", sha256="7d550dccdfcd286e33895501829ed971eeb65c614e73aadb4a08aeef719b143a")
version("0.110", sha256="7ce4760cf66c69148f6bd6c92feaabb8812dee30846b24cd0f7395c436d7e825")
diff --git a/var/spack/repos/builtin/packages/dbus/package.py b/var/spack/repos/builtin/packages/dbus/package.py
index 37a1b8a694b907..1d7ec8fc8e07a4 100644
--- a/var/spack/repos/builtin/packages/dbus/package.py
+++ b/var/spack/repos/builtin/packages/dbus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Dbus(AutotoolsPackage):
homepage = "https://dbus.freedesktop.org/"
url = "https://dbus.freedesktop.org/releases/dbus/dbus-1.8.8.tar.gz"
+ license("AFL-2.1 OR GPL-2.0-or-later")
+
version("1.13.6", sha256="b533693232d36d608a09f70c15440c1816319bac3055433300d88019166c1ae4")
version("1.12.8", sha256="e2dc99e7338303393b6663a98320aba6a63421bcdaaf571c8022f815e5896eb3")
version("1.11.2", sha256="5abc4c57686fa82669ad0039830788f9b03fdc4fff487f0ccf6c9d56ba2645c9")
diff --git a/var/spack/repos/builtin/packages/dbxtool/package.py b/var/spack/repos/builtin/packages/dbxtool/package.py
index e31b75f538c9c8..94e9cb8b4de691 100644
--- a/var/spack/repos/builtin/packages/dbxtool/package.py
+++ b/var/spack/repos/builtin/packages/dbxtool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Dbxtool(MakefilePackage):
homepage = "https://github.com/rhboot/dbxtool"
url = "https://github.com/rhboot/dbxtool/archive/dbxtool-8.tar.gz"
+ license("GPL-2.0-only")
+
version("8", sha256="196d9475f7cf3aa52d8e0c29c20affb7c903512e13895edb6296caf02d4a983b")
version("7", sha256="486b8a7cf4e149ab9630783e5259d6af70a7022209e1e48fbee9b54c48535c5e")
diff --git a/var/spack/repos/builtin/packages/dcap/package.py b/var/spack/repos/builtin/packages/dcap/package.py
index 7540f8fe33e800..87c25a443dc886 100644
--- a/var/spack/repos/builtin/packages/dcap/package.py
+++ b/var/spack/repos/builtin/packages/dcap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Dcap(AutotoolsPackage):
homepage = "https://github.com/dCache/dcap"
url = "https://github.com/dCache/dcap/archive/2.47.12.tar.gz"
+ license("LGPL-2.0-or-later")
+
version("2.47.12", sha256="050a8d20c241abf358d5d72586f9abc43940e61d9ec9480040ac7da52ec804ac")
depends_on("autoconf", type="build")
diff --git a/var/spack/repos/builtin/packages/dcm2niix/package.py b/var/spack/repos/builtin/packages/dcm2niix/package.py
index af383c17f1c492..97bf5a422e2140 100644
--- a/var/spack/repos/builtin/packages/dcm2niix/package.py
+++ b/var/spack/repos/builtin/packages/dcm2niix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Dcm2niix(CMakePackage):
homepage = "https://github.com/rordenlab/dcm2niix"
url = "https://github.com/rordenlab/dcm2niix/archive/refs/tags/v1.0.20220720.tar.gz"
+ license("Zlib")
+
version(
"1.0.20220720", sha256="a095545d6d70c5ce2efd90dcd58aebe536f135410c12165a9f231532ddab8991"
)
diff --git a/var/spack/repos/builtin/packages/dcmtk/package.py b/var/spack/repos/builtin/packages/dcmtk/package.py
index 9a9c1ce98d116a..f6c14c642ed6e7 100644
--- a/var/spack/repos/builtin/packages/dcmtk/package.py
+++ b/var/spack/repos/builtin/packages/dcmtk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Dcmtk(CMakePackage):
homepage = "https://dicom.offis.de"
url = "https://github.com/DCMTK/dcmtk/archive/DCMTK-3.6.3.tar.gz"
+ license("BSD-3-Clause")
+
version("3.6.7", sha256="17705dcdb2047d1266bb4e92dbf4aa6d4967819e8e3e94f39b7df697661b4860")
version("3.6.6", sha256="117097da6d50ddbad0e48bb1e6cdc61468e82ba1d32001dd8e2366b445133a8c")
version("3.6.5", sha256="37dad355d5513b4de4a86b5b7b0c3e9ec059860d88781b80916bba2a04e6d5b8")
diff --git a/var/spack/repos/builtin/packages/dd4hep/package.py b/var/spack/repos/builtin/packages/dd4hep/package.py
index 77c3934bdff7fd..0ea385deedcd7c 100644
--- a/var/spack/repos/builtin/packages/dd4hep/package.py
+++ b/var/spack/repos/builtin/packages/dd4hep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,7 +23,11 @@ class Dd4hep(CMakePackage):
tags = ["hep"]
+ license("LGPL-3.0-or-later")
+
version("master", branch="master")
+ version("1.27.2", sha256="09d8acd743d010274562b856d39e2a88aeaf89cf287a4148f52223b0cd960ab2")
+ version("1.27.1", sha256="e66ae726c0a9a55e5603024a7f8a48ffbc5613ea36e5f892e9a90d87833f92e0")
version("1.27", sha256="51fbd0f91f2511261d9b01e4b3528c658bea1ea1b5d67b25b6812615e782a902")
version("1.26", sha256="de2cc8d8e99217e23fdf0a55b879d3fd3a864690d6660e7808f1ff99eb47f384")
version("1.25.1", sha256="6267e76c74fbb346aa881bc44de84434ebe788573f2997a189996252fc5b271b")
@@ -189,6 +193,12 @@ class Dd4hep(CMakePackage):
)
conflicts("~ddrec+dddetectors", msg="Need to enable +ddrec to build +dddetectors.")
+ # Geant4 needs to be (at least) the same version as DD4hep, but we don't
+ # have a very good handle on that at this stage, because we make that
+ # dependent on roots cxxstd. However, cxxstd=11 will never work
+ # See https://github.com/AIDASoft/DD4hep/pull/1191
+ conflicts("^geant4 cxxstd=11", when="+ddg4")
+
@property
def libs(self):
# We need to override libs here, because we don't build a libdd4hep so
@@ -223,7 +233,6 @@ def cmake_args(self):
"-DBUILD_TESTING={0}".format(self.run_tests),
"-DBOOST_ROOT={0}".format(spec["boost"].prefix),
"-DBoost_NO_BOOST_CMAKE=ON",
- "-DPYTHON_EXECUTABLE={0}".format(spec["python"].command.path),
]
subpackages = []
if spec.satisfies("+ddg4"):
@@ -254,7 +263,8 @@ def setup_run_environment(self, env):
env.set("DD4HEP", self.prefix.examples)
env.set("DD4hep_DIR", self.prefix)
env.set("DD4hep_ROOT", self.prefix)
- env.prepend_path("LD_LIBRARY_PATH", self.libs.directories[0])
+ if len(self.libs.directories) > 0:
+ env.prepend_path("LD_LIBRARY_PATH", self.libs.directories[0])
def url_for_version(self, version):
# dd4hep releases are dashes and padded with a leading zero
diff --git a/var/spack/repos/builtin/packages/ddd/package.py b/var/spack/repos/builtin/packages/ddd/package.py
index 88ee332628cd41..242aef33d7412d 100644
--- a/var/spack/repos/builtin/packages/ddd/package.py
+++ b/var/spack/repos/builtin/packages/ddd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Ddd(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/ddd"
gnu_mirror_path = "ddd/ddd-3.3.12.tar.gz"
+ license("LGPL-3.0-only")
+
version("3.3.12", sha256="3ad6cd67d7f4b1d6b2d38537261564a0d26aaed077bf25c51efc1474d0e8b65c")
variant("shared", default=True, description="Build shared libraries")
diff --git a/var/spack/repos/builtin/packages/ddt/package.py b/var/spack/repos/builtin/packages/ddt/package.py
index 042657fefdcccd..11dd8fb2c947a4 100644
--- a/var/spack/repos/builtin/packages/ddt/package.py
+++ b/var/spack/repos/builtin/packages/ddt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dealii-parameter-gui/package.py b/var/spack/repos/builtin/packages/dealii-parameter-gui/package.py
index b0644eea2b76f9..fd5ebcf4e0d5c1 100644
--- a/var/spack/repos/builtin/packages/dealii-parameter-gui/package.py
+++ b/var/spack/repos/builtin/packages/dealii-parameter-gui/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class DealiiParameterGui(CMakePackage):
homepage = "https://github.com/dealii/parameter_gui"
git = "https://github.com/dealii/parameter_gui.git"
+ license("LGPL-2.1-or-later")
+
version("develop", branch="master")
depends_on("qt")
diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py
index df6f514134a799..f9ec14adf3ad64 100644
--- a/var/spack/repos/builtin/packages/dealii/package.py
+++ b/var/spack/repos/builtin/packages/dealii/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,9 +23,13 @@ class Dealii(CMakePackage, CudaPackage):
# only add for immediate deps.
transitive_rpaths = False
- generator("ninja")
+ # FIXME nvcc_wrapper (used for +clang) doesn't handle response files
+ # correctly when ninja is used. Those are used automatically if paths get too long.
+ generator("make")
version("master", branch="master")
+ version("9.5.1", sha256="a818b535e6488d3aef7853311657c7b4fadc29a9abe91b7b202b131aad630f5e")
+ version("9.5.0", sha256="a81f41565f0d3a22d491ee687957dd48053225da72e8d6d628d210358f4a0464")
version("9.4.2", sha256="45a76cb400bfcff25cc2d9093d9a5c91545c8367985e6798811c5e9d2a6a6fd4")
version("9.4.1", sha256="bfe5e4bf069159f93feb0f78529498bfee3da35baf5a9c6852aa59d7ea7c7a48")
version("9.4.0", sha256="238677006cd9173658e5b69cdd1861f800556982db6005a3cc5eb8329cc1e36c")
@@ -70,10 +74,11 @@ class Dealii(CMakePackage, CudaPackage):
values=("default", "11", "14", "17"),
)
variant("doc", default=False, description="Compile with documentation")
- variant("examples", default=True, description="Compile tutorial programs")
+ variant("examples", default=True, description="Compile and install tutorial programs")
variant("int64", default=False, description="Compile with 64 bit indices support")
variant("mpi", default=True, description="Compile with MPI")
variant("optflags", default=False, description="Compile using additional optimization flags")
+ variant("platform-introspection", default=True, description="Enable platform introspection")
variant("python", default=False, description="Compile with Python bindings")
# Package variants
@@ -81,11 +86,12 @@ class Dealii(CMakePackage, CudaPackage):
variant("arborx", default=True, description="Compile with Arborx support")
variant("arpack", default=True, description="Compile with Arpack and PArpack (only with MPI)")
variant("adol-c", default=True, description="Compile with ADOL-C")
- variant("cgal", default=True, when="@9.4:", description="Compile with CGAL")
+ variant("cgal", default=True, when="@9.4:~cuda", description="Compile with CGAL")
variant("ginkgo", default=True, description="Compile with Ginkgo")
variant("gmsh", default=True, description="Compile with GMSH")
variant("gsl", default=True, description="Compile with GSL")
variant("hdf5", default=True, description="Compile with HDF5 (only with MPI)")
+ variant("kokkos", default=True, when="@9.5:", description="Compile with Kokkos")
variant("metis", default=True, description="Compile with Metis")
variant("muparser", default=True, description="Compile with muParser")
variant("nanoflann", default=False, description="Compile with Nanoflann")
@@ -98,14 +104,15 @@ class Dealii(CMakePackage, CudaPackage):
variant("slepc", default=True, description="Compile with Slepc (only with Petsc and MPI)")
variant("symengine", default=True, description="Compile with SymEngine")
variant("simplex", default=True, description="Compile with Simplex support")
- # TODO @9.3: enable by default, when we know what to do
- # variant('taskflow', default=False,
- # description='Compile with multi-threading via Taskflow')
- # TODO @9.3: disable by default
- # (NB: only if tbb is removed in 9.3, as planned!!!)
+ variant(
+ "taskflow",
+ default=True,
+ when="@9.6:",
+ description="Compile with multi-threading via Taskflow",
+ )
variant("threads", default=True, description="Compile with multi-threading via TBB")
variant("trilinos", default=True, description="Compile with Trilinos (only with MPI)")
- variant("platform-introspection", default=True, description="Enable platform introspection")
+ variant("vtk", default=True, when="@9.6:", description="Compile with VTK")
# Required dependencies: Light version
depends_on("blas")
@@ -179,6 +186,8 @@ class Dealii(CMakePackage, CudaPackage):
# TODO: next line fixes concretization with petsc
depends_on("hdf5+mpi+hl+fortran", when="+hdf5+mpi+petsc")
depends_on("hdf5+mpi+hl", when="+hdf5+mpi~petsc")
+ depends_on("kokkos@3.7:", when="@9.5:+kokkos~trilinos")
+ depends_on("kokkos@3.7:+cuda+cuda_lambda+wrapper", when="@9.5:+kokkos~trilinos+cuda")
# TODO: concretizer bug. The two lines mimic what comes from PETSc
# but we should not need it
depends_on("metis@5:+int64", when="+metis+int64")
@@ -198,7 +207,7 @@ class Dealii(CMakePackage, CudaPackage):
depends_on("sundials@:3~pthread", when="@9.0:9.2+sundials")
depends_on("sundials@5:5.8", when="@9.3:9.3.3+sundials")
depends_on("sundials@5:", when="@9.3.4:+sundials")
- # depends_on('taskflow', when='@9.3:+taskflow')
+ depends_on("taskflow@3.4:", when="@9.6:+taskflow")
depends_on("trilinos gotype=int", when="+trilinos@12.18.1:")
# TODO: next line fixes concretization with trilinos and adol-c
depends_on("trilinos~exodus", when="@9.0:+adol-c+trilinos")
@@ -222,12 +231,11 @@ class Dealii(CMakePackage, CudaPackage):
# do not require +rol to make concretization of xsdk possible
depends_on("trilinos+amesos+aztec+epetra+ifpack+ml+muelu+sacado", when="+trilinos")
depends_on("trilinos~hypre", when="+trilinos+int64")
- # TODO: temporary disable Tpetra when using CUDA due to
- # namespace "Kokkos::Impl" has no member "cuda_abort"
- depends_on(
- "trilinos@master+rol~amesos2~ifpack2~intrepid2~kokkos~tpetra~zoltan2",
- when="+trilinos+cuda",
- )
+ for _arch in CudaPackage.cuda_arch_values:
+ arch_str = f"+cuda cuda_arch={_arch}"
+ trilinos_spec = f"trilinos +wrapper {arch_str}"
+ depends_on(trilinos_spec, when=f"@9.5:+trilinos {arch_str}")
+ depends_on("vtk", when="@9.6:+vtk")
# Explicitly provide a destructor in BlockVector,
# otherwise deal.II may fail to build with Intel compilers.
@@ -296,44 +304,60 @@ class Dealii(CMakePackage, CudaPackage):
msg="CGAL requires the C++ standard to be set explicitly to 17 or later.",
)
+ conflicts(
+ "cxxstd=14",
+ when="@9.6:",
+ msg="Deal.II 9.6 onwards requires the C++ standard to be set to 17 or later.",
+ )
+
# Interfaces added in 8.5.0:
- for p in ["gsl", "python"]:
+ for _package in ["gsl", "python"]:
conflicts(
- "+{0}".format(p),
+ "+{0}".format(_package),
when="@:8.4.2",
msg="The interface to {0} is supported from version 8.5.0 "
"onwards. Please explicitly disable this variant "
- "via ~{0}".format(p),
+ "via ~{0}".format(_package),
)
# Interfaces added in 9.0.0:
- for p in ["assimp", "gmsh", "nanoflann", "scalapack", "sundials", "adol-c"]:
+ for _package in ["assimp", "gmsh", "nanoflann", "scalapack", "sundials", "adol-c"]:
conflicts(
- "+{0}".format(p),
+ "+{0}".format(_package),
when="@:8.5.1",
msg="The interface to {0} is supported from version 9.0.0 "
"onwards. Please explicitly disable this variant "
- "via ~{0}".format(p),
+ "via ~{0}".format(_package),
)
# interfaces added in 9.1.0:
- for p in ["ginkgo", "symengine"]:
+ for _package in ["ginkgo", "symengine"]:
conflicts(
- "+{0}".format(p),
+ "+{0}".format(_package),
when="@:9.0",
msg="The interface to {0} is supported from version 9.1.0 "
"onwards. Please explicitly disable this variant "
- "via ~{0}".format(p),
+ "via ~{0}".format(_package),
)
# interfaces added in 9.3.0:
- for p in ["simplex", "arborx"]: # , 'taskflow']:
+ for _package in ["simplex", "arborx"]:
conflicts(
- "+{0}".format(p),
+ "+{0}".format(_package),
when="@:9.2",
msg="The interface to {0} is supported from version 9.3.0 "
"onwards. Please explicitly disable this variant "
- "via ~{0}".format(p),
+ "via ~{0}".format(_package),
+ )
+
+ # interfaces added after 9.5.0:
+ for _package in ["vtk", "taskflow"]:
+ conflicts(
+ "+{0}".format(_package),
+ when="@:9.5",
+ msg="The interface to {0} is supported from version 9.6.0 "
+ "onwards. Please explicitly disable this variant "
+ "via ~{0}".format(_package),
)
# Interfaces removed in 9.3.0:
@@ -346,18 +370,29 @@ class Dealii(CMakePackage, CudaPackage):
# Check that the combination of variants makes sense
# 64-bit BLAS:
- for p in ["openblas", "intel-mkl", "intel-parallel-studio+mkl"]:
+ for _package in ["openblas", "intel-mkl", "intel-parallel-studio+mkl"]:
conflicts(
- "^{0}+ilp64".format(p), when="@:8.5.1", msg="64bit BLAS is only supported from 9.0.0"
+ "^{0}+ilp64".format(_package),
+ when="@:8.5.1",
+ msg="64bit BLAS is only supported from 9.0.0",
)
# MPI requirements:
- for p in ["arpack", "hdf5", "netcdf", "p4est", "petsc", "scalapack", "slepc", "trilinos"]:
+ for _package in [
+ "arpack",
+ "hdf5",
+ "netcdf",
+ "p4est",
+ "petsc",
+ "scalapack",
+ "slepc",
+ "trilinos",
+ ]:
conflicts(
- "+{0}".format(p),
+ "+{0}".format(_package),
when="~mpi",
msg="To enable {0} it is necessary to build deal.II with "
- "MPI support enabled.".format(p),
+ "MPI support enabled.".format(_package),
)
# Optional dependencies:
@@ -432,6 +467,7 @@ def cmake_args(self):
# Examples / tutorial programs
options.append(self.define_from_variant("DEAL_II_COMPONENT_EXAMPLES", "examples"))
+ options.append(self.define_from_variant("DEAL_II_COMPILE_EXAMPLES", "examples"))
# Enforce the specified C++ standard
if spec.variants["cxxstd"].value != "default":
@@ -478,9 +514,6 @@ def cmake_args(self):
if "+mpi" in spec:
options.extend(
[
- self.define("CMAKE_C_COMPILER", spec["mpi"].mpicc),
- self.define("CMAKE_CXX_COMPILER", spec["mpi"].mpicxx),
- self.define("CMAKE_Fortran_COMPILER", spec["mpi"].mpifc),
self.define("MPI_C_COMPILER", spec["mpi"].mpicc),
self.define("MPI_CXX_COMPILER", spec["mpi"].mpicxx),
self.define("MPI_Fortran_COMPILER", spec["mpi"].mpifc),
@@ -499,21 +532,13 @@ def cmake_args(self):
self.define("CUDA_HOST_COMPILER", spec["mpi"].mpicxx),
]
)
+ # Make sure we use the same compiler that Trilinos uses
+ if "+trilinos" in spec:
+ options.extend([self.define("CMAKE_CXX_COMPILER", spec["trilinos"].kokkos_cxx)])
# Python bindings
if spec.satisfies("@8.5.0:"):
options.append(self.define_from_variant("DEAL_II_COMPONENT_PYTHON_BINDINGS", "python"))
- if "+python" in spec:
- python_exe = spec["python"].command.path
- python_library = spec["python"].libs[0]
- python_include = spec["python"].headers.directories[0]
- options.extend(
- [
- self.define("PYTHON_EXECUTABLE", python_exe),
- self.define("PYTHON_INCLUDE_DIR", python_include),
- self.define("PYTHON_LIBRARY", python_library),
- ]
- )
# Simplex support (no longer experimental)
if spec.satisfies("@9.3.0:9.4.0"):
@@ -542,23 +567,25 @@ def cmake_args(self):
# Optional dependencies for which library names are the same as CMake
# variables:
for library in (
+ "arborx",
+ "assimp",
+ "cgal",
+ "ginkgo",
+ "gmsh",
"gsl",
"hdf5",
+ "metis",
+ "muparser",
+ "nanoflann",
"p4est",
"petsc",
"slepc",
- "trilinos",
- "metis",
"sundials",
- "nanoflann",
- "assimp",
- "gmsh",
- "muparser",
"symengine",
- "ginkgo",
- "arborx",
- "cgal",
- ): # 'taskflow'):
+ "taskflow",
+ "trilinos",
+ "vtk",
+ ):
options.append(
self.define_from_variant("DEAL_II_WITH_{0}".format(library.upper()), library)
)
diff --git a/var/spack/repos/builtin/packages/debbuild/package.py b/var/spack/repos/builtin/packages/debbuild/package.py
index b761e4a58e5d6b..6d3897dd1f9bcf 100644
--- a/var/spack/repos/builtin/packages/debbuild/package.py
+++ b/var/spack/repos/builtin/packages/debbuild/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Debbuild(AutotoolsPackage):
homepage = "https://github.com/debbuild/debbuild"
url = "https://github.com/debbuild/debbuild/archive/20.04.0.tar.gz"
+ license("GPL-2.0-or-later")
+
version("20.04.0", sha256="e17c4f5b37e8c16592ebd99281884cabc053fb890af26531e9825417047d1430")
depends_on("gettext")
diff --git a/var/spack/repos/builtin/packages/debugedit/package.py b/var/spack/repos/builtin/packages/debugedit/package.py
index fef1ac33532c0c..1c258d9fcef998 100644
--- a/var/spack/repos/builtin/packages/debugedit/package.py
+++ b/var/spack/repos/builtin/packages/debugedit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Debugedit(AutotoolsPackage):
git = "git://sourceware.org/git/debugedit.git"
url = "https://sourceware.org/ftp/debugedit/0.2/debugedit-0.2.tar.xz"
+ license("LGPL-2.1-or-later")
+
version("develop", branch="main")
version("0.2", sha256="b78258240bb7ec5bbff109495092dcc111aa0393f135f2d2a4b43887ba26a942")
diff --git a/var/spack/repos/builtin/packages/decentralized-internet/package.py b/var/spack/repos/builtin/packages/decentralized-internet/package.py
index 2bb611d45b7624..63eace559fd4ad 100644
--- a/var/spack/repos/builtin/packages/decentralized-internet/package.py
+++ b/var/spack/repos/builtin/packages/decentralized-internet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,5 +11,8 @@ class DecentralizedInternet(MakefilePackage):
homepage = "https://lonero.readthedocs.io"
url = "https://github.com/Lonero-Team/Decentralized-Internet/releases/download/4.2.3/Decentralized.Internet.tar.gz"
+
+ license("MIT")
+
maintainers("Lonero-Team", "Mentors4edu")
version("4.2.3", sha256="2922b9128b411ece2f04d07942a453f1e772548aa27b3936c9f9bcfbc0737058")
diff --git a/var/spack/repos/builtin/packages/deconseq-standalone/package.py b/var/spack/repos/builtin/packages/deconseq-standalone/package.py
index f0904eb5440d0c..47314ef952136b 100644
--- a/var/spack/repos/builtin/packages/deconseq-standalone/package.py
+++ b/var/spack/repos/builtin/packages/deconseq-standalone/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class DeconseqStandalone(Package):
homepage = "http://deconseq.sourceforge.net"
url = "https://sourceforge.net/projects/deconseq/files/standalone/deconseq-standalone-0.4.3.tar.gz"
+ license("GPL-3.0-only")
+
version("0.4.3", sha256="fb4050418c26a5203220f6396263da554326657590cffd65053eb8adc465ac65")
depends_on("perl@5:")
diff --git a/var/spack/repos/builtin/packages/dejagnu/package.py b/var/spack/repos/builtin/packages/dejagnu/package.py
index 99cd5aaedf8247..94d808fd36faca 100644
--- a/var/spack/repos/builtin/packages/dejagnu/package.py
+++ b/var/spack/repos/builtin/packages/dejagnu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Dejagnu(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/dejagnu/"
gnu_mirror_path = "dejagnu/dejagnu-1.6.tar.gz"
+ license("GPL-3.0-or-later")
+
version("1.6.3", sha256="87daefacd7958b4a69f88c6856dbd1634261963c414079d0c371f589cd66a2e3")
version("1.6", sha256="00b64a618e2b6b581b16eb9131ee80f721baa2669fa0cdee93c500d1a652d763")
version("1.4.4", sha256="d0fbedef20fb0843318d60551023631176b27ceb1e11de7468a971770d0e048d")
diff --git a/var/spack/repos/builtin/packages/delly2/package.py b/var/spack/repos/builtin/packages/delly2/package.py
index 1005d5eddc437d..2b86dabc5d7423 100644
--- a/var/spack/repos/builtin/packages/delly2/package.py
+++ b/var/spack/repos/builtin/packages/delly2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Delly2(MakefilePackage):
git = "https://github.com/dellytools/delly.git"
maintainers("snehring")
+ license("BSD-3-Clause")
+
version("1.1.6", sha256="08961e9c81431eb486476fa71eea94941ad24ec1970b71e5a7720623a39bfd2a")
version("0.9.1", tag="v0.9.1", commit="ef1cd626a85cfd1c1b7acfca2b5fd5957f2a05f1")
version("2017-08-03", commit="e32a9cd55c7e3df5a6ae4a91f31a0deb354529fc", deprecated=True)
diff --git a/var/spack/repos/builtin/packages/delphes/package.py b/var/spack/repos/builtin/packages/delphes/package.py
index 8937b88145f15d..40e790d61f4329 100644
--- a/var/spack/repos/builtin/packages/delphes/package.py
+++ b/var/spack/repos/builtin/packages/delphes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Delphes(CMakePackage):
maintainers("drbenmorgan", "vvolkl", "selvaggi")
+ license("CC-BY-SA-4.0")
+
version("master", branch="master")
version("3.5.0", sha256="37685b945ef43aab09217d70b0ac7f9c5d3c2c27cf3b3f8d64c4e6eb5c5fd9aa")
version("3.4.2", sha256="d46a7c5474de650befdb89377115feee31f1743107ceb3d8da699be9d48c097b")
diff --git a/var/spack/repos/builtin/packages/delta/package.py b/var/spack/repos/builtin/packages/delta/package.py
index 014203fbc4cb83..7df6f742f3378f 100644
--- a/var/spack/repos/builtin/packages/delta/package.py
+++ b/var/spack/repos/builtin/packages/delta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Delta(Package):
homepage = "https://delta.io/"
url = "https://github.com/delta-io/delta/archive/v0.7.0.tar.gz"
+ license("MIT")
+
version("2.3.0", sha256="0c0ea5edb5e8f30fc56b5ab5c8fed50db93d75b047d8241fe1b2449858d9db1c")
version("0.7.0", sha256="1fb01e36c1cf670f201c615e5fd7df88f72c27157b7d2780d146e21b266bdb64")
version("0.6.1", sha256="c932eaf01ead08ff30ddb13ab5ad9cd43405ed8f12d5fff49bd27c59033b80df")
diff --git a/var/spack/repos/builtin/packages/demuxlet/package.py b/var/spack/repos/builtin/packages/demuxlet/package.py
index d87807fa2e562a..d0724e204ef6ee 100644
--- a/var/spack/repos/builtin/packages/demuxlet/package.py
+++ b/var/spack/repos/builtin/packages/demuxlet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Demuxlet(AutotoolsPackage):
maintainers("snehring")
+ license("Apache-2.0")
+
version("20210211", commit="f5044eb9ed5c6678aa3a80a8f2be7db7748ee732")
depends_on("autoconf", type="build")
diff --git a/var/spack/repos/builtin/packages/denovogear/package.py b/var/spack/repos/builtin/packages/denovogear/package.py
index 63860f42205c32..b679b51cb06fc9 100644
--- a/var/spack/repos/builtin/packages/denovogear/package.py
+++ b/var/spack/repos/builtin/packages/denovogear/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Denovogear(CMakePackage):
homepage = "https://github.com/denovogear/denovogear"
url = "https://github.com/denovogear/denovogear/archive/v1.1.1.tar.gz"
+ license("GPL-3.0-or-later")
+
version("1.1.1", sha256="799fe99193e9cf12320893cf020a3251022f60a49de8677a1c5a18c578fe4be2")
version("1.1.0", sha256="f818f80cd67183294c8aae312cad8311e6a9abede1f687567bb079d29f79c005")
diff --git a/var/spack/repos/builtin/packages/dftbplus/package.py b/var/spack/repos/builtin/packages/dftbplus/package.py
index 0a219dd183be6a..d5d1b8232efa87 100644
--- a/var/spack/repos/builtin/packages/dftbplus/package.py
+++ b/var/spack/repos/builtin/packages/dftbplus/package.py
@@ -1,87 +1,165 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-import os
-
from spack.package import *
-class Dftbplus(MakefilePackage):
+class Dftbplus(CMakePackage, MakefilePackage):
"""DFTB+ is an implementation of the
Density Functional based Tight Binding (DFTB) method,
containing many extensions to the original method."""
homepage = "https://www.dftbplus.org"
- url = "https://github.com/dftbplus/dftbplus/archive/19.1.tar.gz"
+ url = "https://github.com/dftbplus/dftbplus/releases/download/22.1/dftbplus-22.1.tar.xz"
+ git = "https://github.com/dftbplus/dftbplus.git"
- version("19.1", sha256="4d07f5c6102f06999d8cfdb1d17f5b59f9f2b804697f14b3bc562e3ea094b8a8")
+ maintainers = ["HaoZeke", "aradi", "iamashwin99"]
+ generator = "Ninja"
- resource(
- name="slakos",
- url="https://github.com/dftbplus/testparams/archive/dftbplus-18.2.tar.gz",
- sha256="bd191b3d240c1a81a8754a365e53a78b581fc92eb074dd5beb8b56a669a8d3d1",
- destination="external/slakos",
- when="@18.2:",
+ build_system(
+ conditional("cmake", when="@20.1:"),
+ conditional("makefile", when="@:19.1"),
+ default="cmake",
)
- variant("mpi", default=True, description="Build an MPI-paralelised version of the code.")
+ license("CC-BY-SA-4.0")
+
+ version("main", branch="main")
+ version("22.1", sha256="02daca6f4c6372656598f3ba0311110c8e473c87c8d934d7bb276feaa4cc1c82")
+ version("21.2", sha256="fbeb0e0ea93ab4dc4450f298ec712d2cf991f19f621badf57dae05f0e43b5906")
+ version("21.1", sha256="8c1eb8a38f72c421e2ae20118a6db3a656fa84e8b180ef387e549a73ae77f970")
+ version("20.2.1", sha256="95cc85fdb08bd57ca013bd09f4f902303720e17d015a5fab2d4db63fcb6d9cb3")
+ version("20.2", sha256="eafd219159d600624041658046c89db539ceb0c1d2988b72321c80d9b992c9bf")
+ version("20.1", sha256="04c2b906b8670937c8ddd9c5fb68e7e9921b464840cf54aa3d698db98167d0b7")
+ version(
+ "19.1",
+ deprecated=True,
+ sha256="78f45ef0571c78cf732a5493d32830455a832fa05ebcad43098895e46ad8d220",
+ )
variant(
- "gpu",
+ "api",
+ default=True,
+ description="Whether public API should be included and the DFTB+ library installed.",
+ )
+ variant(
+ "arpack",
default=False,
- description="Use the MAGMA library " "for GPU accelerated computation",
+ description="Whether the ARPACK library should be included (needed for TD-DFTB).",
+ when="~mpi",
+ )
+ variant(
+ "chimes",
+ default=False,
+ when="@21.2:",
+ description="Whether repulsive corrections" "via the ChIMES library should be enabled.",
)
-
variant(
"elsi",
default=False,
description="Use the ELSI library for large scale systems. "
"Only has any effect if you build with '+mpi'",
+ when="+mpi",
+ )
+ variant(
+ "gpu",
+ default=False,
+ description="Use the MAGMA library " "for GPU accelerated computation",
+ )
+ variant(
+ "mbd",
+ default=False,
+ when="@21.1:",
+ description="Whether DFTB+ should be built with many-body-dispersion support.",
+ )
+ variant("mpi", default=False, description="Whether DFTB+ should support MPI-parallelism.")
+ variant(
+ "openmp",
+ default=True,
+ description="Whether OpenMP thread parallisation should be enabled.",
+ )
+ variant(
+ "plumed",
+ default=False,
+ when="@20.1:",
+ description="Whether metadynamics via the PLUMED2 library should be allowed.",
+ )
+ variant("poisson", default=False, description="Whether the Poisson-solver should be included.")
+ variant(
+ "python",
+ default=False,
+ description="Whether the Python components of DFTB+ should be tested and installed.",
+ )
+ variant(
+ "sdftd3",
+ default=False,
+ when="@21.2:",
+ description="Whether the s-dftd3 library should be included",
)
-
variant(
"sockets",
default=False,
description="Whether the socket library " "(external control) should be linked",
)
-
- variant("arpack", default=False, description="Use ARPACK for excited state DFTB functionality")
-
variant(
"transport",
default=False,
+ when="+shared",
description="Whether transport via libNEGF should be included. "
"Only affects parallel build. "
"(serial version is built without libNEGF/transport)",
)
+ variant(
+ "tblite",
+ default=False,
+ when="@21.2:",
+ description="Whether xTB support should be included via tblite.",
+ )
+
+ variant("shared", default=False, description="Most often for the Python wrappers.")
variant(
"dftd3",
default=False,
+ when="@:19.1",
description="Use DftD3 dispersion library " "(if you need this dispersion model)",
)
- depends_on("lapack")
- depends_on("blas")
- depends_on("scalapack", when="+mpi")
- depends_on("mpi", when="+mpi")
+ depends_on("cmake@3.16:", type="build", when="@20.1:")
+ depends_on("ninja@1.10", type="build", when="@20.1:")
+
+ depends_on("blas", when="-mpi")
+ depends_on("lapack", when="-mpi")
+
+ depends_on("arpack-ng", when="+arpack~mpi")
+ depends_on("simple-dftd3", when="+sdftd3")
depends_on("elsi", when="+elsi")
depends_on("magma", when="+gpu")
- depends_on("arpack-ng", when="+arpack")
+ depends_on("mpi", when="+mpi")
+ depends_on("plumed", when="+plumed")
+ depends_on("scalapack", when="+mpi")
+ depends_on("python@3.2:", type=("build", "run"))
+ depends_on("py-numpy", type=("build", "run")) # for tests
+ # Only for 19.1
depends_on("dftd3-lib@0.9.2", when="+dftd3")
+ # Conflicts
+ conflicts("+python", when="~shared")
+ conflicts("-poisson", when="+transport")
+
+ # Extensions
+ extends("python", when="+python")
+
+ @when("@19.1") # Only version without CMake
def edit(self, spec, prefix):
"""
First, change the ROOT variable, because, for some reason,
the Makefile and the spack install script run in different directories
-
Then, if using GCC, rename the file 'sys/make.x86_64-linux-gnu'
to make.arch.
-
After that, edit the make.arch to point to the dependencies
-
And the last thing we do here is to set the installdir
"""
dircwd = os.getcwd()
@@ -160,3 +238,79 @@ def edit(self, spec, prefix):
)
mconfig.filter("WITH_DFTD3 := .*", "WITH_DFTD3 := 1")
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant("WITH_OPENMP", "openmp"),
+ self.define_from_variant("WITH_API", "api"),
+ self.define_from_variant("WITH_ARPACK", "arpack"),
+ self.define_from_variant("WITH_CHIMES", "chimes"),
+ self.define_from_variant("WITH_ELSI", "elsi"),
+ self.define_from_variant("WITH_GPU", "gpu"),
+ self.define_from_variant("WITH_MBD", "mbd"),
+ self.define_from_variant("WITH_MPI", "mpi"),
+ self.define_from_variant("WITH_PLUMED", "plumed"),
+ self.define_from_variant("WITH_POISSON", "poisson"),
+ self.define_from_variant("WITH_PYTHON", "python"),
+ self.define_from_variant("WITH_SDFTD3", "sdftd3"),
+ self.define_from_variant("WITH_SOCKETS", "sockets"),
+ self.define_from_variant("WITH_TBLITE", "tblite"),
+ self.define_from_variant("WITH_TRANSPORT", "transport"),
+ self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
+ ]
+ # SCALAPACK
+ # Note: dftbplus@20.1 uses plural form of the option names
+ # (e.g. -DSCALAPACK_LIBRARIES)
+ # but dftbplus@20.2 onwards uses singular
+ # (e.g. -DSCALAPACK_LIBRARY)
+ # and plural form is ignored.
+ # We set both inorder to be compatible with all versions.
+ if "+mpi" in self.spec:
+ # we use scalapack for linear algebra
+ args.extend(
+ [
+ self.define("SCALAPACK_FOUND", "true"),
+ self.define("SCALAPACK_INCLUDE_DIRS", self.spec["scalapack"].prefix.include),
+ self.define("SCALAPACK_LIBRARIES", self.spec["scalapack"].libs.joined(";")),
+ self.define("SCALAPACK_LIBRARY", self.spec["scalapack"].libs.joined(";")),
+ ]
+ )
+ else:
+ # we define the lapack and blas libraries
+ lapack_libs = self.spec["lapack"].libs.joined(";")
+ blas_libs = self.spec["blas"].libs.joined(";")
+ args.extend(
+ [
+ self.define("LAPACK_FOUND", True),
+ self.define("LAPACK_INCLUDE_DIRS", self.spec["lapack"].prefix.include),
+ self.define("LAPACK_LIBRARIES", lapack_libs),
+ self.define("LAPACK_LIBRARY", lapack_libs),
+ self.define("BLAS_FOUND", True),
+ self.define("BLAS_INCLUDE_DIRS", self.spec["blas"].prefix.include),
+ self.define("BLAS_LIBRARIES", blas_libs),
+ self.define("BLAS_LIBRARY", blas_libs),
+ ]
+ )
+ if "+python" in self.spec:
+ args.append(self.define("BUILD_SHARED_LIBS", True))
+ if self.run_tests:
+ args.append("-DWITH_UNIT_TESTS=ON")
+ else:
+ args.append("-DWITH_UNIT_TESTS=OFF")
+ return args
+
+ @run_after("build")
+ @on_package_attributes(run_tests=True)
+ def check_install(self):
+ """Run ctest after building binary.
+ only run the unit tests. If the unit tests fail, the installation throws
+ a warning."""
+
+ with working_dir(self.build_directory):
+ try:
+ ctest("")
+ except ProcessError:
+ warn = "Unit tests failed.\n"
+ warn += "Please report this failure to:\n"
+ warn += "https://github.com/dftbplus/dftbplus/issues"
+ tty.msg(warn)
diff --git a/var/spack/repos/builtin/packages/dftd3-lib/package.py b/var/spack/repos/builtin/packages/dftd3-lib/package.py
index 86ed5569a3721e..ff42d16ab86310 100644
--- a/var/spack/repos/builtin/packages/dftd3-lib/package.py
+++ b/var/spack/repos/builtin/packages/dftd3-lib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dftd4/package.py b/var/spack/repos/builtin/packages/dftd4/package.py
index 8fde62cc116093..8c2d5c62889f02 100644
--- a/var/spack/repos/builtin/packages/dftd4/package.py
+++ b/var/spack/repos/builtin/packages/dftd4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Dftd4(MesonPackage):
maintainers("awvwgk")
+ license("LGPL-3.0-only")
+
version("main", branch="main")
version("3.5.0", sha256="d2bab992b5ef999fd13fec8eb1da9e9e8d94b8727a2e624d176086197a00a46f")
version("3.4.0", sha256="24fcb225cdd5c292ac26f7d3204ee3c4024174adb5272eeda9ae7bc57113ec8d")
diff --git a/var/spack/repos/builtin/packages/dftfe/package.py b/var/spack/repos/builtin/packages/dftfe/package.py
index 94a499fdc2598b..a4423d68197dbc 100644
--- a/var/spack/repos/builtin/packages/dftfe/package.py
+++ b/var/spack/repos/builtin/packages/dftfe/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Dftfe(CMakePackage):
maintainers("rmsds")
+ license("LGPL-2.1-or-later")
+
version("0.6.0", sha256="66b633a3aae2f557f241ee45b2faa41aa179e4a0bdf39c4ae2e679a2970845a1")
version("0.5.2", sha256="9dc4fa9f16b00be6fb1890d8af4a1cd3e4a2f06a2539df999671a09f3d26ec64")
version("0.5.1", sha256="e47272d3783cf675dcd8bc31da07765695164110bfebbbab29f5815531f148c1")
diff --git a/var/spack/repos/builtin/packages/dhpmm-f/package.py b/var/spack/repos/builtin/packages/dhpmm-f/package.py
index 6d35cfa2ed25ef..7efe193546b035 100644
--- a/var/spack/repos/builtin/packages/dhpmm-f/package.py
+++ b/var/spack/repos/builtin/packages/dhpmm-f/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class DhpmmF(MakefilePackage):
homepage = "http://www.math.twcu.ac.jp/ogita/post-k/"
url = "http://www.math.twcu.ac.jp/ogita/post-k/software/DHPMM_F/DHPMM_F_alpha.tar.gz"
+ license("MIT")
+
version("alpha", sha256="35321ecbc749f2682775ffcd27833afc8c8eb4fa7753ce769727c9d1fe097848")
depends_on("blas", type="link")
diff --git a/var/spack/repos/builtin/packages/dhtest/package.py b/var/spack/repos/builtin/packages/dhtest/package.py
index 803995df85d68e..e673ef2d4de572 100644
--- a/var/spack/repos/builtin/packages/dhtest/package.py
+++ b/var/spack/repos/builtin/packages/dhtest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Dhtest(MakefilePackage):
homepage = "https://github.com/saravana815/dhtest"
url = "https://github.com/saravana815/dhtest/archive/v1.5.tar.gz"
+ license("GPL-2.0-or-later")
+
version("1.5", sha256="df66150429a59a3b6cea9b29e2687707d04ab10db5dfe1c893ba3e0b0531b151")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/dia/package.py b/var/spack/repos/builtin/packages/dia/package.py
index c5b78a091a2701..9fe94c845255fe 100644
--- a/var/spack/repos/builtin/packages/dia/package.py
+++ b/var/spack/repos/builtin/packages/dia/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Dia(Package):
homepage = "https://wiki.gnome.org/Apps/Dia"
url = "https://ftp.gnome.org/pub/gnome/sources/dia/0.97/dia-0.97.3.tar.xz"
+ license("GPL-2.0-or-later")
+
version("0.97.3", sha256="22914e48ef48f894bb5143c5efc3d01ab96e0a0cde80de11058d3b4301377d34")
depends_on("intltool", type="build")
diff --git a/var/spack/repos/builtin/packages/dialign-tx/package.py b/var/spack/repos/builtin/packages/dialign-tx/package.py
index 76a2ca329a287a..83f96a6a7ec589 100644
--- a/var/spack/repos/builtin/packages/dialign-tx/package.py
+++ b/var/spack/repos/builtin/packages/dialign-tx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class DialignTx(MakefilePackage):
homepage = "https://dialign-tx.gobics.de/"
url = "https://dialign-tx.gobics.de/DIALIGN-TX_1.0.2.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("1.0.2", sha256="fb3940a48a12875332752a298f619f0da62593189cd257d28932463c7cebcb8f")
build_directory = "source"
diff --git a/var/spack/repos/builtin/packages/dialign/package.py b/var/spack/repos/builtin/packages/dialign/package.py
index 5da33591b262a8..7617794128d574 100644
--- a/var/spack/repos/builtin/packages/dialign/package.py
+++ b/var/spack/repos/builtin/packages/dialign/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Dialign(MakefilePackage):
homepage = "https://bibiserv.cebitec.uni-bielefeld.de/dialign"
url = "https://bibiserv.cebitec.uni-bielefeld.de/applications/dialign/resources/downloads/dialign-2.2.1-src.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("2.2.1", sha256="046361bb4ca6e4ab2ac5e634cfcd673f964a887006c09c1b8bd3310fac86f519")
build_directory = "src"
diff --git a/var/spack/repos/builtin/packages/diamond/package.py b/var/spack/repos/builtin/packages/diamond/package.py
index a97a341eb17600..c0ea26edd5fba9 100644
--- a/var/spack/repos/builtin/packages/diamond/package.py
+++ b/var/spack/repos/builtin/packages/diamond/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Diamond(CMakePackage):
url = "https://github.com/bbuchfink/diamond/archive/v2.0.9.tar.gz"
maintainers("snehring")
+ license("GPL-3.0-only")
+
version("2.1.7", sha256="2dcaba0e79ecb02c3d2a6816d317e714767118a9a056721643abff4c586ca95b")
version("2.1.6", sha256="852d27c7535d53f1ce59db0625ff23ac3bf17e57f7a3b1c46c08718f77e19c54")
version("2.0.15", sha256="cc8e1f3fd357d286cf6585b21321bd25af69aae16ae1a8f605ea603c1886ffa4")
diff --git a/var/spack/repos/builtin/packages/dicom3tools/package.py b/var/spack/repos/builtin/packages/dicom3tools/package.py
index 7337d767d7ebc8..b49547f0b7c427 100644
--- a/var/spack/repos/builtin/packages/dicom3tools/package.py
+++ b/var/spack/repos/builtin/packages/dicom3tools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/diffmark/package.py b/var/spack/repos/builtin/packages/diffmark/package.py
index 8222e8ede97a7c..73f405bf96e037 100644
--- a/var/spack/repos/builtin/packages/diffmark/package.py
+++ b/var/spack/repos/builtin/packages/diffmark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Diffmark(AutotoolsPackage):
homepage = "https://github.com/vbar/diffmark"
git = "https://github.com/vbar/diffmark.git"
+ license("diffmark")
+
version("master", branch="master")
depends_on("autoconf", type="build")
diff --git a/var/spack/repos/builtin/packages/diffsplice/package.py b/var/spack/repos/builtin/packages/diffsplice/package.py
index df637f7b4d370b..128663a98991a6 100644
--- a/var/spack/repos/builtin/packages/diffsplice/package.py
+++ b/var/spack/repos/builtin/packages/diffsplice/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Diffsplice(MakefilePackage):
homepage = "http://www.netlab.uky.edu/p/bioinfo/DiffSplice"
url = "https://protocols.netlab.uky.edu/~yin/download/diffsplice/diffsplice_0.1.1.tgz"
+ license("GPL-3.0-only")
+
version("0.1.2beta", sha256="cc06dcb9f8d98b2184f0dd5863b79bdd6a8cd33b9418e6549b7ea63e90ee1aa6")
version("0.1.1", sha256="9740426692b0e5f92b943b127014c1d9815bed2938b5dd9e9d0c5b64abbb5da6")
diff --git a/var/spack/repos/builtin/packages/diffutils/package.py b/var/spack/repos/builtin/packages/diffutils/package.py
index 72721095c6bb2c..df141501160773 100644
--- a/var/spack/repos/builtin/packages/diffutils/package.py
+++ b/var/spack/repos/builtin/packages/diffutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Diffutils(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/diffutils/"
gnu_mirror_path = "diffutils/diffutils-3.7.tar.xz"
+ license("GPL-3.0-or-later")
+
version("3.9", sha256="d80d3be90a201868de83d78dad3413ad88160cc53bcc36eb9eaf7c20dbf023f1")
version("3.8", sha256="a6bdd7d1b31266d11c4f4de6c1b748d4607ab0231af5188fc2533d0ae2438fec")
version("3.7", sha256="b3a7a6221c3dc916085f0d205abf6b8e1ba443d4dd965118da364a1dc1cb3a26")
diff --git a/var/spack/repos/builtin/packages/digitrounding/package.py b/var/spack/repos/builtin/packages/digitrounding/package.py
index 63c9632f0b2eeb..3697955ff66d58 100644
--- a/var/spack/repos/builtin/packages/digitrounding/package.py
+++ b/var/spack/repos/builtin/packages/digitrounding/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Digitrounding(CMakePackage):
maintainers("robertu94")
+ license("LGPL-3.0-or-later")
+
version("master", branch="master")
version("2020-02-27", commit="7b18679aded7a85e6f221f7f5cd4f080f322bc33")
diff --git a/var/spack/repos/builtin/packages/dihydrogen/package.py b/var/spack/repos/builtin/packages/dihydrogen/package.py
index ca53a897654b33..ea48ff48fe91a6 100644
--- a/var/spack/repos/builtin/packages/dihydrogen/package.py
+++ b/var/spack/repos/builtin/packages/dihydrogen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -8,7 +8,39 @@
from spack.package import *
-class Dihydrogen(CMakePackage, CudaPackage, ROCmPackage):
+# This is a hack to get around some deficiencies in Hydrogen.
+def get_blas_entries(inspec):
+ entries = []
+ spec = inspec["hydrogen"]
+ if "blas=openblas" in spec:
+ entries.append(cmake_cache_option("DiHydrogen_USE_OpenBLAS", True))
+ elif "blas=mkl" in spec or spec.satisfies("^intel-mkl"):
+ entries.append(cmake_cache_option("DiHydrogen_USE_MKL", True))
+ elif "blas=essl" in spec or spec.satisfies("^essl"):
+ entries.append(cmake_cache_string("BLA_VENDOR", "IBMESSL"))
+ # IF IBM ESSL is used it needs help finding the proper LAPACK libraries
+ entries.append(
+ cmake_cache_string(
+ "LAPACK_LIBRARIES",
+ "%s;-llapack;-lblas"
+ % ";".join("-l{0}".format(lib) for lib in self.spec["essl"].libs.names),
+ )
+ )
+ entries.append(
+ cmake_cache_string(
+ "BLAS_LIBRARIES",
+ "%s;-lblas"
+ % ";".join("-l{0}".format(lib) for lib in self.spec["essl"].libs.names),
+ )
+ )
+ elif "blas=accelerate" in spec:
+ entries.append(cmake_cache_option("DiHydrogen_USE_ACCELERATE", True))
+ elif spec.satisfies("^netlib-lapack"):
+ entries.append(cmake_cache_string("BLA_VENDOR", "Generic"))
+ return entries
+
+
+class Dihydrogen(CachedCMakePackage, CudaPackage, ROCmPackage):
"""DiHydrogen is the second version of the Hydrogen fork of the
well-known distributed linear algebra library,
Elemental. DiHydrogen aims to be a basic distributed
@@ -20,117 +52,181 @@ class Dihydrogen(CMakePackage, CudaPackage, ROCmPackage):
git = "https://github.com/LLNL/DiHydrogen.git"
tags = ["ecp", "radiuss"]
- maintainers("bvanessen")
+ maintainers("benson31", "bvanessen")
+
+ license("Apache-2.0")
version("develop", branch="develop")
version("master", branch="master")
- version("0.2.1", sha256="11e2c0f8a94ffa22e816deff0357dde6f82cc8eac21b587c800a346afb5c49ac")
- version("0.2.0", sha256="e1f597e80f93cf49a0cb2dbc079a1f348641178c49558b28438963bd4a0bdaa4")
- version("0.1", sha256="171d4b8adda1e501c38177ec966e6f11f8980bf71345e5f6d87d0a988fef4c4e")
+ version("0.3.0", sha256="8dd143441a28e0c7662cd92694e9a4894b61fd48508ac1d77435f342bc226dcf")
+
+ # Primary features
+
+ variant("dace", default=False, sticky=True, description="Enable DaCe backend.")
+
+ variant(
+ "distconv",
+ default=False,
+ sticky=True,
+ description="Enable (legacy) Distributed Convolution support.",
+ )
+
+ variant(
+ "nvshmem",
+ default=False,
+ sticky=True,
+ description="Enable support for NVSHMEM-based halo exchanges.",
+ when="+distconv",
+ )
+
+ variant(
+ "shared", default=True, sticky=True, description="Enables the build of shared libraries"
+ )
+
+ # Some features of developer interest
- variant("al", default=True, description="Builds with Aluminum communication library")
variant(
"developer",
default=False,
description="Enable extra warnings and force tests to be enabled.",
)
- variant("half", default=False, description="Enable FP16 support on the CPU.")
+
+ variant("ci", default=False, description="Use default options for CI builds")
+
variant(
- "distconv",
+ "coverage",
default=False,
- description="Support distributed convolutions: spatial, channel, " "filter.",
+ description="Decorate build with code coverage instrumentation options",
+ when="%gcc",
)
- variant("nvshmem", default=False, description="Builds with support for NVSHMEM")
- variant("openmp", default=False, description="Enable CPU acceleration with OpenMP threads.")
- variant("rocm", default=False, description="Enable ROCm/HIP language features.")
- variant("shared", default=True, description="Enables the build of shared libraries")
-
- # Variants related to BLAS
variant(
- "openmp_blas", default=False, description="Use OpenMP for threading in the BLAS library"
+ "coverage",
+ default=False,
+ description="Decorate build with code coverage instrumentation options",
+ when="%clang",
)
- variant("int64_blas", default=False, description="Use 64bit integers for BLAS.")
variant(
- "blas",
- default="openblas",
- values=("openblas", "mkl", "accelerate", "essl", "libsci"),
- description="Enable the use of OpenBlas/MKL/Accelerate/ESSL/LibSci",
+ "coverage",
+ default=False,
+ description="Decorate build with code coverage instrumentation options",
+ when="%rocmcc",
)
- conflicts("~cuda", when="+nvshmem")
+ # Package conflicts and requirements
- depends_on("mpi")
- depends_on("catch2", type="test")
+ conflicts("+nvshmem", when="~cuda", msg="NVSHMEM requires CUDA support.")
- # Specify the correct version of Aluminum
- depends_on("aluminum@0.4.0:0.4", when="@0.1 +al")
- depends_on("aluminum@0.5.0:0.5", when="@0.2.0 +al")
- depends_on("aluminum@0.7.0:0.7", when="@0.2.1 +al")
- depends_on("aluminum@0.7.0:", when="@:0.0,0.2.1: +al")
+ conflicts("+cuda", when="+rocm", msg="CUDA and ROCm are mutually exclusive.")
- # Add Aluminum variants
- depends_on("aluminum +cuda +nccl +cuda_rma", when="+al +cuda")
- depends_on("aluminum +rocm +rccl", when="+al +rocm")
- depends_on("aluminum +ht", when="+al +distconv")
+ requires(
+ "+cuda",
+ "+rocm",
+ when="+distconv",
+ policy="any_of",
+ msg="DistConv support requires CUDA or ROCm.",
+ )
- for arch in CudaPackage.cuda_arch_values:
- depends_on("aluminum cuda_arch=%s" % arch, when="+al +cuda cuda_arch=%s" % arch)
- depends_on("nvshmem cuda_arch=%s" % arch, when="+nvshmem +cuda cuda_arch=%s" % arch)
+ # Dependencies
- # variants +rocm and amdgpu_targets are not automatically passed to
- # dependencies, so do it manually.
- for val in ROCmPackage.amdgpu_targets:
- depends_on("aluminum amdgpu_target=%s" % val, when="amdgpu_target=%s" % val)
+ depends_on("catch2@3.0.1:", type=("build", "test"), when="+developer")
+ depends_on("cmake@3.21.0:", type="build")
+ depends_on("cuda@11.0:", when="+cuda")
+ depends_on("spdlog@1.11.0:1.12.0", when="@:0.1,0.2:")
- depends_on("roctracer-dev", when="+rocm +distconv")
+ with when("@0.3.0:"):
+ depends_on("hydrogen +al")
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on(
+ "hydrogen +cuda cuda_arch={0}".format(arch),
+ when="+cuda cuda_arch={0}".format(arch),
+ )
- depends_on("cudnn", when="+cuda")
- depends_on("cub", when="^cuda@:10")
+ for val in ROCmPackage.amdgpu_targets:
+ depends_on(
+ "hydrogen amdgpu_target={0}".format(val),
+ when="+rocm amdgpu_target={0}".format(val),
+ )
- # Note that #1712 forces us to enumerate the different blas variants
- depends_on("openblas", when="blas=openblas")
- depends_on("openblas +ilp64", when="blas=openblas +int64_blas")
- depends_on("openblas threads=openmp", when="blas=openblas +openmp_blas")
+ with when("+distconv"):
+ depends_on("mpi")
- depends_on("intel-mkl", when="blas=mkl")
- depends_on("intel-mkl +ilp64", when="blas=mkl +int64_blas")
- depends_on("intel-mkl threads=openmp", when="blas=mkl +openmp_blas")
+ # All this nonsense for one silly little package.
+ depends_on("aluminum@1.4.1:")
- depends_on("veclibfort", when="blas=accelerate")
- conflicts("blas=accelerate +openmp_blas")
+ # Add Aluminum variants
+ depends_on("aluminum +cuda +nccl", when="+distconv +cuda")
+ depends_on("aluminum +rocm +nccl", when="+distconv +rocm")
- depends_on("essl", when="blas=essl")
- depends_on("essl +ilp64", when="blas=essl +int64_blas")
- depends_on("essl threads=openmp", when="blas=essl +openmp_blas")
- depends_on("netlib-lapack +external-blas", when="blas=essl")
+ # TODO: Debug linker errors when NVSHMEM is built with UCX
+ depends_on("nvshmem +nccl~ucx", when="+nvshmem")
- depends_on("cray-libsci", when="blas=libsci")
- depends_on("cray-libsci +openmp", when="blas=libsci +openmp_blas")
+ # OMP support is only used in DistConv, and only Apple needs
+ # hand-holding with it.
+ depends_on("llvm-openmp", when="%apple-clang")
+ # FIXME: when="platform=darwin"??
- # Distconv builds require cuda or rocm
- conflicts("+distconv", when="~cuda ~rocm")
+ # CUDA/ROCm arch forwarding
- conflicts("+distconv", when="+half")
- conflicts("+rocm", when="+half")
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on(
+ "aluminum +cuda cuda_arch={0}".format(arch),
+ when="+cuda cuda_arch={0}".format(arch),
+ )
- depends_on("half", when="+half")
+ # This is a workaround for a bug in the Aluminum package,
+ # as it should be responsible for its own NCCL dependency.
+ # Rather than failing to concretize, we help it along.
+ depends_on(
+ "nccl cuda_arch={0}".format(arch),
+ when="+distconv +cuda cuda_arch={0}".format(arch),
+ )
- generator("ninja")
- depends_on("cmake@3.17.0:", type="build")
+ # NVSHMEM also needs arch forwarding
+ depends_on(
+ "nvshmem +cuda cuda_arch={0}".format(arch),
+ when="+nvshmem +cuda cuda_arch={0}".format(arch),
+ )
- depends_on("spdlog", when="@:0.1,0.2:")
+ # Idenfity versions of cuda_arch that are too old from
+ # lib/spack/spack/build_systems/cuda.py. We require >=60.
+ illegal_cuda_arch_values = [
+ "10",
+ "11",
+ "12",
+ "13",
+ "20",
+ "21",
+ "30",
+ "32",
+ "35",
+ "37",
+ "50",
+ "52",
+ "53",
+ ]
+ for value in illegal_cuda_arch_values:
+ conflicts("cuda_arch=" + value)
+
+ for val in ROCmPackage.amdgpu_targets:
+ depends_on(
+ "aluminum amdgpu_target={0}".format(val),
+ when="+rocm amdgpu_target={0}".format(val),
+ )
- depends_on("llvm-openmp", when="%apple-clang +openmp")
+ # CUDA-specific distconv dependencies
+ depends_on("cudnn", when="+cuda")
- # TODO: Debug linker errors when NVSHMEM is built with UCX
- depends_on("nvshmem +nccl~ucx", when="+nvshmem")
+ # ROCm-specific distconv dependencies
+ depends_on("hipcub", when="+rocm")
+ depends_on("miopen-hip", when="+rocm")
+ depends_on("roctracer-dev", when="+rocm")
- # Idenfity versions of cuda_arch that are too old
- # from lib/spack/spack/build_systems/cuda.py
- illegal_cuda_arch_values = ["10", "11", "12", "13", "20", "21"]
- for value in illegal_cuda_arch_values:
- conflicts("cuda_arch=" + value)
+ with when("+ci+coverage"):
+ depends_on("lcov", type=("build", "run"))
+ depends_on("py-gcovr", type=("build", "run"))
+ # Technically it's not used in the build, but CMake sets up a
+ # target, so it needs to be found.
@property
def libs(self):
@@ -138,104 +234,127 @@ def libs(self):
return find_libraries("libH2Core", root=self.prefix, shared=shared, recursive=True)
def cmake_args(self):
+ args = []
+ return args
+
+ def get_cuda_flags(self):
spec = self.spec
+ args = []
+ if spec.satisfies("^cuda+allow-unsupported-compilers"):
+ args.append("-allow-unsupported-compiler")
+
+ if spec.satisfies("%clang"):
+ for flag in spec.compiler_flags["cxxflags"]:
+ if "gcc-toolchain" in flag:
+ args.append("-Xcompiler={0}".format(flag))
+ return args
- args = [
- "-DCMAKE_CXX_STANDARD=17",
- "-DCMAKE_INSTALL_MESSAGE:STRING=LAZY",
- "-DBUILD_SHARED_LIBS:BOOL=%s" % ("+shared" in spec),
- "-DH2_ENABLE_ALUMINUM=%s" % ("+al" in spec),
- "-DH2_ENABLE_CUDA=%s" % ("+cuda" in spec),
- "-DH2_ENABLE_DISTCONV_LEGACY=%s" % ("+distconv" in spec),
- "-DH2_ENABLE_OPENMP=%s" % ("+openmp" in spec),
- "-DH2_ENABLE_FP16=%s" % ("+half" in spec),
- "-DH2_DEVELOPER_BUILD=%s" % ("+developer" in spec),
- ]
+ def initconfig_compiler_entries(self):
+ spec = self.spec
+ entries = super(Dihydrogen, self).initconfig_compiler_entries()
+
+ # FIXME: Enforce this better in the actual CMake.
+ entries.append(cmake_cache_string("CMAKE_CXX_STANDARD", "17"))
+ entries.append(cmake_cache_option("BUILD_SHARED_LIBS", "+shared" in spec))
+ entries.append(cmake_cache_option("CMAKE_EXPORT_COMPILE_COMMANDS", True))
+
+ # It's possible this should have a `if "platform=cray" in
+ # spec:` in front of it, but it's not clear to me when this is
+ # set. In particular, I don't actually see this blurb showing
+ # up on Tioga builds. Which is causing the obvious problem
+ # (namely, the one this was added to supposedly solve in the
+ # first place.
+ entries.append(cmake_cache_option("MPI_ASSUME_NO_BUILTIN_MPI", True))
+
+ if spec.satisfies("%clang +distconv platform=darwin"):
+ clang = self.compiler.cc
+ clang_bin = os.path.dirname(clang)
+ clang_root = os.path.dirname(clang_bin)
+ entries.append(cmake_cache_string("OpenMP_CXX_FLAGS", "-fopenmp=libomp"))
+ entries.append(cmake_cache_string("OpenMP_CXX_LIB_NAMES", "libomp"))
+ entries.append(
+ cmake_cache_string(
+ "OpenMP_libomp_LIBRARY", "{0}/lib/libomp.dylib".format(clang_root)
+ )
+ )
+
+ return entries
+
+ def initconfig_hardware_entries(self):
+ spec = self.spec
+ entries = super(Dihydrogen, self).initconfig_hardware_entries()
- if spec.version < Version("0.3"):
- args.append("-DH2_ENABLE_HIP_ROCM=%s" % ("+rocm" in spec))
- else:
- args.append("-DH2_ENABLE_ROCM=%s" % ("+rocm" in spec))
-
- if not spec.satisfies("^cmake@3.23.0"):
- # There is a bug with using Ninja generator in this version
- # of CMake
- args.append("-DCMAKE_EXPORT_COMPILE_COMMANDS=ON")
-
- if "+cuda" in spec:
- if self.spec.satisfies("%clang"):
- for flag in self.spec.compiler_flags["cxxflags"]:
- if "gcc-toolchain" in flag:
- args.append("-DCMAKE_CUDA_FLAGS=-Xcompiler={0}".format(flag))
- if spec.satisfies("^cuda@11.0:"):
- args.append("-DCMAKE_CUDA_STANDARD=17")
- else:
- args.append("-DCMAKE_CUDA_STANDARD=14")
- archs = spec.variants["cuda_arch"].value
- if archs != "none":
+ entries.append(cmake_cache_option("H2_ENABLE_CUDA", "+cuda" in spec))
+ if spec.satisfies("+cuda"):
+ entries.append(cmake_cache_string("CMAKE_CUDA_STANDARD", "17"))
+ if not spec.satisfies("cuda_arch=none"):
+ archs = spec.variants["cuda_arch"].value
arch_str = ";".join(archs)
- args.append("-DCMAKE_CUDA_ARCHITECTURES=%s" % arch_str)
+ entries.append(cmake_cache_string("CMAKE_CUDA_ARCHITECTURES", arch_str))
+
+ # FIXME: Should this use the "cuda_flags" function of the
+ # CudaPackage class or something? There might be other
+ # flags in play, and we need to be sure to get them all.
+ cuda_flags = self.get_cuda_flags()
+ if len(cuda_flags) > 0:
+ entries.append(cmake_cache_string("CMAKE_CUDA_FLAGS", " ".join(cuda_flags)))
+
+ enable_rocm_var = (
+ "H2_ENABLE_ROCM" if spec.version < Version("0.3") else "H2_ENABLE_HIP_ROCM"
+ )
+ entries.append(cmake_cache_option(enable_rocm_var, "+rocm" in spec))
+ if spec.satisfies("+rocm"):
+ entries.append(cmake_cache_string("CMAKE_HIP_STANDARD", "17"))
+ if not spec.satisfies("amdgpu_target=none"):
+ archs = self.spec.variants["amdgpu_target"].value
+ arch_str = ";".join(archs)
+ entries.append(cmake_cache_string("CMAKE_HIP_ARCHITECTURES", arch_str))
+ entries.append(cmake_cache_string("AMDGPU_TARGETS", arch_str))
+ entries.append(cmake_cache_string("GPU_TARGETS", arch_str))
+ entries.append(cmake_cache_path("HIP_ROOT_DIR", spec["hip"].prefix))
- if spec.satisfies("%cce") and spec.satisfies("^cuda+allow-unsupported-compilers"):
- args.append("-DCMAKE_CUDA_FLAGS=-allow-unsupported-compiler")
+ return entries
- if "+cuda" in spec:
- args.append("-DcuDNN_DIR={0}".format(spec["cudnn"].prefix))
+ def initconfig_package_entries(self):
+ spec = self.spec
+ entries = super(Dihydrogen, self).initconfig_package_entries()
- if spec.satisfies("^cuda@:10"):
- if "+cuda" in spec or "+distconv" in spec:
- args.append("-DCUB_DIR={0}".format(spec["cub"].prefix))
+ # Basic H2 options
+ entries.append(cmake_cache_option("H2_DEVELOPER_BUILD", "+developer" in spec))
+ entries.append(cmake_cache_option("H2_ENABLE_TESTS", "+developer" in spec))
- # Add support for OpenMP with external (Brew) clang
- if spec.satisfies("%clang +openmp platform=darwin"):
- clang = self.compiler.cc
- clang_bin = os.path.dirname(clang)
- clang_root = os.path.dirname(clang_bin)
- args.extend(
- [
- "-DOpenMP_CXX_FLAGS=-fopenmp=libomp",
- "-DOpenMP_CXX_LIB_NAMES=libomp",
- "-DOpenMP_libomp_LIBRARY={0}/lib/libomp.dylib".format(clang_root),
- ]
- )
+ entries.append(cmake_cache_option("H2_ENABLE_CODE_COVERAGE", "+coverage" in spec))
+ entries.append(cmake_cache_option("H2_CI_BUILD", "+ci" in spec))
- if "+rocm" in spec:
- args.extend(
- [
- "-DCMAKE_CXX_FLAGS=-std=c++17",
- "-DHIP_ROOT_DIR={0}".format(spec["hip"].prefix),
- "-DHIP_CXX_COMPILER={0}".format(self.spec["hip"].hipcc),
- ]
- )
- if "platform=cray" in spec:
- args.extend(["-DMPI_ASSUME_NO_BUILTIN_MPI=ON"])
- archs = self.spec.variants["amdgpu_target"].value
- if archs != "none":
- arch_str = ",".join(archs)
- args.append(
- "-DHIP_HIPCC_FLAGS=--amdgpu-target={0}"
- " -g -fsized-deallocation -fPIC -std=c++17".format(arch_str)
- )
- args.extend(
- [
- "-DCMAKE_HIP_ARCHITECTURES=%s" % arch_str,
- "-DAMDGPU_TARGETS=%s" % arch_str,
- "-DGPU_TARGETS=%s" % arch_str,
- ]
- )
+ entries.append(cmake_cache_option("H2_ENABLE_DACE", "+dace" in spec))
- if self.spec.satisfies("^essl"):
- # IF IBM ESSL is used it needs help finding the proper LAPACK libraries
- args.extend(
- [
- "-DLAPACK_LIBRARIES=%s;-llapack;-lblas"
- % ";".join("-l{0}".format(lib) for lib in self.spec["essl"].libs.names),
- "-DBLAS_LIBRARIES=%s;-lblas"
- % ";".join("-l{0}".format(lib) for lib in self.spec["essl"].libs.names),
- ]
- )
+ # DistConv options
+ entries.append(cmake_cache_option("H2_ENABLE_ALUMINUM", "+distconv" in spec))
+ entries.append(cmake_cache_option("H2_ENABLE_DISTCONV_LEGACY", "+distconv" in spec))
+ entries.append(cmake_cache_option("H2_ENABLE_OPENMP", "+distconv" in spec))
- return args
+ # Paths to stuff, just in case. CMAKE_PREFIX_PATH should catch
+ # all this, but this shouldn't hurt to have.
+ entries.append(cmake_cache_path("spdlog_ROOT", spec["spdlog"].prefix))
+
+ if "+developer" in spec:
+ entries.append(cmake_cache_path("Catch2_ROOT", spec["catch2"].prefix))
+
+ if "+coverage" in spec:
+ entries.append(cmake_cache_path("lcov_ROOT", spec["lcov"].prefix))
+ entries.append(cmake_cache_path("genhtml_ROOT", spec["lcov"].prefix))
+ if "+ci" in spec:
+ entries.append(cmake_cache_path("gcovr_ROOT", spec["py-gcovr"].prefix))
+
+ if "+distconv" in spec:
+ entries.append(cmake_cache_path("Aluminum_ROOT", spec["aluminum"].prefix))
+ if "+cuda" in spec:
+ entries.append(cmake_cache_path("cuDNN_ROOT", spec["cudnn"].prefix))
+
+ # Currently this is a hack for all Hydrogen versions. WIP to
+ # fix this at develop.
+ entries.extend(get_blas_entries(spec))
+ return entries
def setup_build_environment(self, env):
if self.spec.satisfies("%apple-clang +openmp"):
diff --git a/var/spack/repos/builtin/packages/dimemas/package.py b/var/spack/repos/builtin/packages/dimemas/package.py
index 04efe269ec4ba3..8c5751fbc53377 100644
--- a/var/spack/repos/builtin/packages/dimemas/package.py
+++ b/var/spack/repos/builtin/packages/dimemas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Dimemas(AutotoolsPackage):
homepage = "https://tools.bsc.es/dimemas"
url = "https://github.com/bsc-performance-tools/dimemas/archive/5.4.1.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("5.4.1", sha256="10ddca3745a56ebab5c1ba180f6f4bce5832c4deac50c1b1dc08271db5c7cafa")
depends_on("autoconf", type="build")
diff --git a/var/spack/repos/builtin/packages/ding-libs/package.py b/var/spack/repos/builtin/packages/ding-libs/package.py
index 9df273bfa7fcca..f8714e2f01ee40 100644
--- a/var/spack/repos/builtin/packages/ding-libs/package.py
+++ b/var/spack/repos/builtin/packages/ding-libs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dire/package.py b/var/spack/repos/builtin/packages/dire/package.py
index f2a76e88460ce8..1d7630754a7c58 100644
--- a/var/spack/repos/builtin/packages/dire/package.py
+++ b/var/spack/repos/builtin/packages/dire/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/direnv/package.py b/var/spack/repos/builtin/packages/direnv/package.py
index 76be39bdc9c6a2..98fdab72a2589f 100644
--- a/var/spack/repos/builtin/packages/direnv/package.py
+++ b/var/spack/repos/builtin/packages/direnv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,9 @@ class Direnv(Package):
maintainers("acastanedam", "alecbcs")
+ license("MIT")
+
+ version("2.33.0", sha256="8ef18051aa6bdcd6b59f04f02acdd0b78849b8ddbdbd372d4957af7889c903ea")
version("2.32.3", sha256="c66f6d1000f28f919c6106b5dcdd0a0e54fb553602c63c60bf59d9bbdf8bd33c")
version("2.32.2", sha256="352b3a65e8945d13caba92e13e5666e1854d41749aca2e230938ac6c64fa8ef9")
version("2.32.1", sha256="dc7df9a9e253e1124748aa74da94bf2b96f5a61d581c60d52d3f8e8dc86ecfde")
diff --git a/var/spack/repos/builtin/packages/discotec/package.py b/var/spack/repos/builtin/packages/discotec/package.py
index 7693f97c83c805..aa876aa1cd34a0 100644
--- a/var/spack/repos/builtin/packages/discotec/package.py
+++ b/var/spack/repos/builtin/packages/discotec/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,8 +16,11 @@ class Discotec(CMakePackage):
maintainers("freifrauvonbleifrei", "pfluegdk")
+ license("LGPL-3.0-only")
+
version("main", branch="main")
+ variant("compression", default=False, description="Write sparse grid files compressed")
variant("ft", default=False, description="DisCoTec with algorithm-based fault tolerance")
variant("gene", default=False, description="Build for GENE (as task library)")
variant("hdf5", default=True, description="Interpolation output with HDF5")
@@ -31,6 +34,7 @@ class Discotec(CMakePackage):
depends_on("cmake@3.24.2:", type="build")
depends_on("glpk")
depends_on("highfive+mpi+boost+ipo", when="+hdf5")
+ depends_on("lz4", when="+compression")
depends_on("mpi")
depends_on("selalib", when="+selalib")
depends_on("vtk", when="+vtk")
@@ -38,6 +42,7 @@ class Discotec(CMakePackage):
def cmake_args(self):
args = [
self.define("DISCOTEC_BUILD_MISSING_DEPS", False),
+ self.define_from_variant("DISCOTEC_WITH_COMPRESSION", "compression"),
self.define_from_variant("DISCOTEC_ENABLEFT", "ft"),
self.define_from_variant("DISCOTEC_GENE", "gene"),
self.define_from_variant("DISCOTEC_OPENMP", "openmp"),
diff --git a/var/spack/repos/builtin/packages/discovar/package.py b/var/spack/repos/builtin/packages/discovar/package.py
index 220632e391d5d5..95c5bcdb1c530b 100644
--- a/var/spack/repos/builtin/packages/discovar/package.py
+++ b/var/spack/repos/builtin/packages/discovar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Discovar(AutotoolsPackage):
homepage = "https://software.broadinstitute.org/software/discovar/blog/"
url = "ftp://ftp.broadinstitute.org/pub/crd/Discovar/latest_source_code/discovar-52488.tar.gz"
+ license("MIT")
+
version("52488", sha256="c46e8f5727b3c8116d715c02e20a83e6261c762e8964d00709abfb322a501d4e")
conflicts("%gcc@6:")
diff --git a/var/spack/repos/builtin/packages/discovardenovo/package.py b/var/spack/repos/builtin/packages/discovardenovo/package.py
index c3f2ea3bd90318..a84709eba6ba63 100644
--- a/var/spack/repos/builtin/packages/discovardenovo/package.py
+++ b/var/spack/repos/builtin/packages/discovardenovo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Discovardenovo(AutotoolsPackage):
homepage = "https://software.broadinstitute.org/software/discovar/blog/"
url = "ftp://ftp.broadinstitute.org/pub/crd/DiscovarDeNovo/latest_source_code/discovardenovo-52488.tar.gz"
+ license("MIT")
+
version("52488", sha256="445445a3b75e17e276a6119434f13784a5a661a9c7277f5e10f3b6b3b8ac5771")
# lots of compiler errors with GCC7, works with 4.8.5
diff --git a/var/spack/repos/builtin/packages/disktype/package.py b/var/spack/repos/builtin/packages/disktype/package.py
index ef5f19f4e3663c..3ca4692da967f6 100644
--- a/var/spack/repos/builtin/packages/disktype/package.py
+++ b/var/spack/repos/builtin/packages/disktype/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Disktype(MakefilePackage):
homepage = "https://github.com/kamwoods/disktype"
url = "https://github.com/kamwoods/disktype/archive/9.2.1.tar.gz"
+ license("MIT")
+
version("9.2.1", sha256="fb274d6ce6b69c0d36eb23fcc9f01db3c32c3996b404900d46bb743ce4fa8154")
build_directory = "src"
diff --git a/var/spack/repos/builtin/packages/dislin/package.py b/var/spack/repos/builtin/packages/dislin/package.py
index 21fc4a9b0b1c47..ded925de995c7e 100644
--- a/var/spack/repos/builtin/packages/dislin/package.py
+++ b/var/spack/repos/builtin/packages/dislin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/distbench/package.py b/var/spack/repos/builtin/packages/distbench/package.py
index e2ee3e0cdc671e..02daf6b841b262 100644
--- a/var/spack/repos/builtin/packages/distbench/package.py
+++ b/var/spack/repos/builtin/packages/distbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Distbench(MakefilePackage):
homepage = "https://github.com/google/distbench"
url = "https://github.com/google/distbench/archive/refs/tags/v1.0rc4.tar.gz"
+ license("Apache-2.0")
+
version("1.0rc4", sha256="adc8da85890219800207d0d4cd7ffd63193d2c4007dba7c44cf545cc13675ff7")
depends_on("bazel", type="build")
diff --git a/var/spack/repos/builtin/packages/distcc/package.py b/var/spack/repos/builtin/packages/distcc/package.py
index 7b36276700999b..629cd3fc0ace1c 100644
--- a/var/spack/repos/builtin/packages/distcc/package.py
+++ b/var/spack/repos/builtin/packages/distcc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Distcc(AutotoolsPackage):
homepage = "https://github.com/distcc/distcc"
url = "https://github.com/distcc/distcc/archive/v3.3.3.tar.gz"
+ license("GPL-2.0-or-later")
+
version("3.3.5", sha256="13a4b3ce49dfc853a3de550f6ccac583413946b3a2fa778ddf503a9edc8059b0")
version("3.3.3", sha256="b7f37d314704fbaf006d747514ff6e4d0d722102ef7d2aea132f97cf170f5169")
diff --git a/var/spack/repos/builtin/packages/diy/package.py b/var/spack/repos/builtin/packages/diy/package.py
index a4a876f1b38edd..6a08ab5de2ffb6 100644
--- a/var/spack/repos/builtin/packages/diy/package.py
+++ b/var/spack/repos/builtin/packages/diy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Diy(CMakePackage):
url = "https://github.com/diatomic/diy/archive/3.5.0.tar.gz"
git = "https://github.com/diatomic/diy.git"
+ license("BSD-3-Clause-LBNL")
+
version("3.5.0", sha256="b3b5490441d521b6e9b33471c782948194bf95c7c3df3eb97bc5cf4530b91576")
version("master", branch="master")
diff --git a/var/spack/repos/builtin/packages/dla-future/package.py b/var/spack/repos/builtin/packages/dla-future/package.py
index 8c0590d9f7b949..29007433df0d63 100644
--- a/var/spack/repos/builtin/packages/dla-future/package.py
+++ b/var/spack/repos/builtin/packages/dla-future/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,11 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
git = "https://github.com/eth-cscs/DLA-Future.git"
maintainers = ["rasolca", "albestro", "msimberg", "aurianer"]
+ license("BSD-3-Clause")
+
+ version("0.4.0", sha256="34fd0da0d1a72b6981bed0bba029ba0947e0d0d99beb3e0aad0a478095c9527d")
+ version("0.3.1", sha256="350a7fd216790182aa52639a3d574990a9d57843e02b92d87b854912f4812bfe")
+ version("0.3.0", sha256="9887ac0b466ca03d704a8738bc89e68550ed33509578c576390e98e76b64911b")
version("0.2.1", sha256="4c2669d58f041304bd618a9d69d9879a42e6366612c2fc932df3894d0326b7fe")
version("0.2.0", sha256="da73cbd1b88287c86d84b1045a05406b742be924e65c52588bbff200abd81a10")
version("0.1.0", sha256="f7ffcde22edabb3dc24a624e2888f98829ee526da384cd752b2b271c731ca9b1")
@@ -42,12 +47,15 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
depends_on("cmake@3.22:", type="build")
depends_on("doxygen", type="build", when="+doc")
depends_on("mpi")
- depends_on("blaspp@2022.05.00:")
- depends_on("lapackpp@2022.05.00:")
depends_on("blas")
depends_on("lapack")
depends_on("scalapack", when="+scalapack")
+ depends_on("blaspp@2022.05.00:")
+ depends_on("lapackpp@2022.05.00:")
+ depends_on("intel-oneapi-mkl +cluster", when="^[virtuals=scalapack] intel-oneapi-mkl")
+
+ conflicts("intel-oneapi-mkl", when="@:0.3")
depends_on("umpire~examples")
depends_on("umpire~cuda", when="~cuda")
@@ -58,8 +66,10 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
depends_on("pika@0.15.1:", when="@0.1")
depends_on("pika@0.16:", when="@0.2.0")
- depends_on("pika@0.17:", when="@0.2.1:")
- depends_on("pika-algorithms@0.1:")
+ depends_on("pika@0.17:", when="@0.2.1")
+ depends_on("pika@0.18:", when="@0.3")
+ depends_on("pika@0.19.1:", when="@0.4.0:")
+ depends_on("pika-algorithms@0.1:", when="@:0.2")
depends_on("pika +mpi")
depends_on("pika +cuda", when="+cuda")
depends_on("pika +rocm", when="+rocm")
@@ -70,38 +80,54 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
depends_on("whip +rocm", when="+rocm")
depends_on("rocblas", when="+rocm")
- depends_on("rocprim", when="+rocm")
depends_on("rocsolver", when="+rocm")
- depends_on("rocthrust", when="+rocm")
+
+ depends_on("rocprim", when="@:0.3 +rocm")
+ depends_on("rocthrust", when="@:0.3 +rocm")
+
+ # nvcc 11.2 and older is unable to detect fmt::formatter specializations.
+ # DLA-Future 0.3.1 includes a workaround to avoid including fmt in device
+ # code:
+ # https://github.com/pika-org/pika/issues/870
+ # https://github.com/eth-cscs/DLA-Future/pull/1045
+ conflicts("^fmt@10:", when="@:0.3.0 +cuda ^cuda@:11.2")
+
+ # Compilation problem triggered by the bundled fmt in Umpire together with
+ # fmt 10, which only happens with GCC 9 and nvcc 11.2 and older:
+ # https://github.com/eth-cscs/DLA-Future/issues/1044
+ conflicts("^fmt@10:", when="@:0.3.0 %gcc@9 +cuda ^cuda@:11.2 ^umpire@2022.10:")
+
+ # Pedantic warnings, triggered by GCC 9 and 10, are always errors until 0.3.1:
+ # https://github.com/eth-cscs/DLA-Future/pull/1043
+ conflicts("%gcc@9:10", when="@:0.3.0")
depends_on("hdf5 +cxx+mpi+threadsafe+shared", when="+hdf5")
conflicts("+cuda", when="+rocm")
with when("+rocm"):
- for val in ROCmPackage.amdgpu_targets:
- depends_on("pika amdgpu_target={0}".format(val), when="amdgpu_target={0}".format(val))
- depends_on(
- "rocsolver amdgpu_target={0}".format(val), when="amdgpu_target={0}".format(val)
- )
- depends_on(
- "rocblas amdgpu_target={0}".format(val), when="amdgpu_target={0}".format(val)
- )
- depends_on(
- "rocprim amdgpu_target={0}".format(val), when="amdgpu_target={0}".format(val)
- )
- depends_on(
- "rocthrust amdgpu_target={0}".format(val), when="amdgpu_target={0}".format(val)
- )
- depends_on("whip amdgpu_target={0}".format(val), when="amdgpu_target={0}".format(val))
- depends_on(
- "umpire amdgpu_target={0}".format(val), when="amdgpu_target={0}".format(val)
- )
+ for arch in ROCmPackage.amdgpu_targets:
+ depends_on(f"pika amdgpu_target={arch}", when=f"amdgpu_target={arch}")
+ depends_on(f"rocsolver amdgpu_target={arch}", when=f"amdgpu_target={arch}")
+ depends_on(f"rocblas amdgpu_target={arch}", when=f"amdgpu_target={arch}")
+ depends_on(f"whip amdgpu_target={arch}", when=f"amdgpu_target={arch}")
+ depends_on(f"umpire amdgpu_target={arch}", when=f"amdgpu_target={arch}")
+
+ with when("@:0.3 +rocm"):
+ for arch in ROCmPackage.amdgpu_targets:
+ depends_on(f"rocprim amdgpu_target={arch}", when=f"amdgpu_target={arch}")
+ depends_on(f"rocthrust amdgpu_target={arch}", when=f"amdgpu_target={arch}")
with when("+cuda"):
- for val in CudaPackage.cuda_arch_values:
- depends_on("pika cuda_arch={0}".format(val), when="cuda_arch={0}".format(val))
- depends_on("umpire cuda_arch={0}".format(val), when="cuda_arch={0}".format(val))
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on(f"pika cuda_arch={arch}", when=f"cuda_arch={arch}")
+ depends_on(f"umpire cuda_arch={arch}", when=f"cuda_arch={arch}")
+
+ patch(
+ "https://github.com/eth-cscs/DLA-Future/pull/1063/commits/efc9c176a7a8c512b3f37d079dec8c25ac1b7389.patch?full_index=1",
+ sha256="7f382c872d89f22da1ad499e85ffe9881cc7404c8465e42877a210a09382e2ea",
+ when="@:0.3 %gcc@13:",
+ )
def cmake_args(self):
spec = self.spec
@@ -110,35 +136,67 @@ def cmake_args(self):
args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared"))
# BLAS/LAPACK
- if self.spec["lapack"].name in INTEL_MATH_LIBRARIES:
+ if spec["lapack"].name in INTEL_MATH_LIBRARIES:
+ mkl_provider = spec["lapack"].name
+
vmap = {
- "none": "seq",
- "openmp": "omp",
- "tbb": "tbb",
- } # Map MKL variants to LAPACK target name
- mkl_threads = vmap[spec["intel-mkl"].variants["threads"].value]
- # TODO: Generalise for intel-oneapi-mkl
- args += [
- self.define("DLAF_WITH_MKL", True),
- self.define("MKL_LAPACK_TARGET", f"mkl::mkl_intel_32bit_{mkl_threads}_dyn"),
- ]
+ "intel-oneapi-mkl": {
+ "threading": {
+ "none": "sequential",
+ "openmp": "gnu_thread",
+ "tbb": "tbb_thread",
+ },
+ "mpi": {"intel-mpi": "intelmpi", "mpich": "mpich", "openmpi": "openmpi"},
+ },
+ "intel-mkl": {
+ "threading": {"none": "seq", "openmp": "omp", "tbb": "tbb"},
+ "mpi": {"intel-mpi": "mpich", "mpich": "mpich", "openmpi": "ompi"},
+ },
+ }
+
+ if mkl_provider not in vmap.keys():
+ raise RuntimeError(
+ f"dla-future does not support {mkl_provider} as lapack provider"
+ )
+ mkl_mapper = vmap[mkl_provider]
+
+ mkl_threads = mkl_mapper["threading"][spec[mkl_provider].variants["threads"].value]
+ if mkl_provider == "intel-oneapi-mkl":
+ args += [
+ self.define("DLAF_WITH_MKL", True),
+ self.define("MKL_INTERFACE", "lp64"),
+ self.define("MKL_THREADING", mkl_threads),
+ ]
+ elif mkl_provider == "intel-mkl":
+ args += [
+ self.define("DLAF_WITH_MKL", True)
+ if spec.version <= Version("0.3")
+ else self.define("DLAF_WITH_MKL_LEGACY", True),
+ self.define("MKL_LAPACK_TARGET", f"mkl::mkl_intel_32bit_{mkl_threads}_dyn"),
+ ]
+
if "+scalapack" in spec:
- if (
- "^mpich" in spec
- or "^cray-mpich" in spec
- or "^intel-mpi" in spec
- or "^mvapich" in spec
- or "^mvapich2" in spec
- ):
- mkl_mpi = "mpich"
- elif "^openmpi" in spec:
- mkl_mpi = "ompi"
- args.append(
- self.define(
- "MKL_SCALAPACK_TARGET",
- f"mkl::scalapack_{mkl_mpi}_intel_32bit_{mkl_threads}_dyn",
+ try:
+ mpi_provider = spec["mpi"].name
+ if mpi_provider in ["mpich", "cray-mpich", "mvapich", "mvapich2"]:
+ mkl_mpi = mkl_mapper["mpi"]["mpich"]
+ else:
+ mkl_mpi = mkl_mapper["mpi"][mpi_provider]
+ except KeyError:
+ raise RuntimeError(
+ f"dla-future does not support {spec['mpi'].name} as mpi provider with "
+ f"the selected scalapack provider {mkl_provider}"
+ )
+
+ if mkl_provider == "intel-oneapi-mkl":
+ args.append(self.define("MKL_MPI", mkl_mpi))
+ elif mkl_provider == "intel-mkl":
+ args.append(
+ self.define(
+ "MKL_SCALAPACK_TARGET",
+ f"mkl::scalapack_{mkl_mpi}_intel_32bit_{mkl_threads}_dyn",
+ )
)
- )
else:
args.append(self.define("DLAF_WITH_MKL", False))
args.append(
@@ -156,12 +214,12 @@ def cmake_args(self):
args.append(self.define_from_variant("DLAF_WITH_CUDA", "cuda"))
args.append(self.define_from_variant("DLAF_WITH_HIP", "rocm"))
if "+rocm" in spec:
- archs = self.spec.variants["amdgpu_target"].value
+ archs = spec.variants["amdgpu_target"].value
if "none" not in archs:
arch_str = ";".join(archs)
args.append(self.define("CMAKE_HIP_ARCHITECTURES", arch_str))
if "+cuda" in spec:
- archs = self.spec.variants["cuda_arch"].value
+ archs = spec.variants["cuda_arch"].value
if "none" not in archs:
arch_str = ";".join(archs)
args.append(self.define("CMAKE_CUDA_ARCHITECTURES", arch_str))
diff --git a/var/spack/repos/builtin/packages/dlb/package.py b/var/spack/repos/builtin/packages/dlb/package.py
index fc769e36bf069e..32dca653ee6ced 100644
--- a/var/spack/repos/builtin/packages/dlb/package.py
+++ b/var/spack/repos/builtin/packages/dlb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Dlb(AutotoolsPackage):
maintainers("vlopezh")
+ license("LGPL-3.0-or-later")
+
version("main", branch="main")
version("3.3.1", sha256="1b245acad80b03eb83e815fd59dcfc598cfddd899de4504cf6a9572fe5359f40")
version("3.3", sha256="55b87aea14f3954d8878912f3134938db235e6984fae26fdf5134148007eb722")
diff --git a/var/spack/repos/builtin/packages/dlib/package.py b/var/spack/repos/builtin/packages/dlib/package.py
index 0100a2379fc756..355d793656e9b8 100644
--- a/var/spack/repos/builtin/packages/dlib/package.py
+++ b/var/spack/repos/builtin/packages/dlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Dlib(CMakePackage):
maintainer = ["robertu94"]
+ license("BSL-1.0")
+
version("master", branch="master")
version("19.22", sha256="5f44b67f762691b92f3e41dcf9c95dd0f4525b59cacb478094e511fdacb5c096")
version("19.21", sha256="116f52e58be04b47dab52057eaad4b5c4d5c3032d927fe23d55b0741fc4107a0")
diff --git a/var/spack/repos/builtin/packages/dlpack/package.py b/var/spack/repos/builtin/packages/dlpack/package.py
index 6b69a1c40f871a..bfaec6a09210d0 100644
--- a/var/spack/repos/builtin/packages/dlpack/package.py
+++ b/var/spack/repos/builtin/packages/dlpack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Dlpack(Package):
git = "https://github.com/dmlc/dlpack.git"
url = "https://github.com/dmlc/dlpack/archive/refs/tags/v0.5.tar.gz"
+ license("Apache-2.0")
+
version("master", branch="master")
version("0.5", sha256="9209ac194a175aaab4381313891fba047cb173b2bdd15ac934f83f567f9cd514")
version("0.4", sha256="d0a533189ecd45a033b72e276fccaa2122cfd76de125e0a5e126bdea0fec2d24")
diff --git a/var/spack/repos/builtin/packages/dmd/package.py b/var/spack/repos/builtin/packages/dmd/package.py
index 2e8cd84636cd81..04c247bdc66e09 100644
--- a/var/spack/repos/builtin/packages/dmd/package.py
+++ b/var/spack/repos/builtin/packages/dmd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Dmd(MakefilePackage):
homepage = "https://github.com/dlang/dmd"
url = "https://github.com/dlang/dmd/archive/v2.081.1.tar.gz"
+ license("BSL-1.0")
+
version("2.081.1", sha256="14f3aafe1c93c86646aaeb3ed7361a5fc5a24374cf25c8848c81942bfd9fae1a")
version("2.081.0", sha256="29b9882ed424b744df83ac73182d4ae952251029ebd16117d18f9cc1e83542e2")
diff --git a/var/spack/repos/builtin/packages/dmidecode/package.py b/var/spack/repos/builtin/packages/dmidecode/package.py
index fb443c564208b8..37f964655e66b9 100644
--- a/var/spack/repos/builtin/packages/dmidecode/package.py
+++ b/var/spack/repos/builtin/packages/dmidecode/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Dmidecode(MakefilePackage):
homepage = "https://github.com/mirror/dmidecode"
url = "https://github.com/mirror/dmidecode/archive/dmidecode-3-2.tar.gz"
+ license("GPL-2.0-or-later")
+
version("3-2", sha256="489d840d076785617a432649603aafa6358327f4376694c062b69dfa359bcc2d")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/dmlc-core/package.py b/var/spack/repos/builtin/packages/dmlc-core/package.py
index 333e80d089eae9..60cc32da43ecd3 100644
--- a/var/spack/repos/builtin/packages/dmlc-core/package.py
+++ b/var/spack/repos/builtin/packages/dmlc-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class DmlcCore(CMakePackage):
homepage = "https://github.com/dmlc/dmlc-core"
git = "https://github.com/dmlc/dmlc-core.git"
+ license("Apache-2.0")
+
version("master")
version("20170508", commit="a6c5701219e635fea808d264aefc5b03c3aec314")
diff --git a/var/spack/repos/builtin/packages/dmtcp/package.py b/var/spack/repos/builtin/packages/dmtcp/package.py
index 1eff1e4c160065..ee31dcadc35ed3 100644
--- a/var/spack/repos/builtin/packages/dmtcp/package.py
+++ b/var/spack/repos/builtin/packages/dmtcp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Dmtcp(AutotoolsPackage):
url = "https://github.com/dmtcp/dmtcp/archive/refs/tags/3.0.0.tar.gz"
git = "https://github.com/dmtcp/dmtcp.git"
+ license("LGPL-3.0-only")
+
maintainers("karya0")
version("master", branch="master")
version("3.0.0", sha256="2c7e95e1dbc55db33433bfee48a65f274298e98f246a36ab6dad1e0694750d37")
diff --git a/var/spack/repos/builtin/packages/dmxproto/package.py b/var/spack/repos/builtin/packages/dmxproto/package.py
index f607d962a86895..565b066bd6a9b1 100644
--- a/var/spack/repos/builtin/packages/dmxproto/package.py
+++ b/var/spack/repos/builtin/packages/dmxproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dnsmap/package.py b/var/spack/repos/builtin/packages/dnsmap/package.py
index 13aafae2d3e781..f5e8ca90d02e9d 100644
--- a/var/spack/repos/builtin/packages/dnsmap/package.py
+++ b/var/spack/repos/builtin/packages/dnsmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Dnsmap(MakefilePackage):
homepage = "https://github.com/makefu/dnsmap"
git = "https://github.com/makefu/dnsmap.git"
+ license("GPL-2.0-or-later")
+
version("master", branch="master")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/dnsmasq/package.py b/var/spack/repos/builtin/packages/dnsmasq/package.py
index 3f16db13691fe1..4149405f2f7e4c 100644
--- a/var/spack/repos/builtin/packages/dnsmasq/package.py
+++ b/var/spack/repos/builtin/packages/dnsmasq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Dnsmasq(MakefilePackage):
homepage = "https://www.thekelleys.org.uk/dnsmasq/doc.html"
url = "http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.70.tar.gz"
+ license("GPL-2.0-or-later")
+
version("2.89", sha256="8651373d000cae23776256e83dcaa6723dee72c06a39362700344e0c12c4e7e4")
version("2.81", sha256="3c28c68c6c2967c3a96e9b432c0c046a5df17a426d3a43cffe9e693cf05804d0")
version("2.80", sha256="9e4a58f816ce0033ce383c549b7d4058ad9b823968d352d2b76614f83ea39adc")
diff --git a/var/spack/repos/builtin/packages/dnstop/package.py b/var/spack/repos/builtin/packages/dnstop/package.py
index b21e462fbb0207..088eb6aadf2db2 100644
--- a/var/spack/repos/builtin/packages/dnstop/package.py
+++ b/var/spack/repos/builtin/packages/dnstop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Dnstop(AutotoolsPackage):
homepage = "https://github.com/measurement-factory/dnstop"
git = "https://github.com/measurement-factory/dnstop.git"
+ license("BSD-3-Clause")
+
version("master", branch="master")
depends_on("libpcap")
diff --git a/var/spack/repos/builtin/packages/dnstracer/package.py b/var/spack/repos/builtin/packages/dnstracer/package.py
index d87fc8c97aac17..c88435d527ff74 100644
--- a/var/spack/repos/builtin/packages/dnstracer/package.py
+++ b/var/spack/repos/builtin/packages/dnstracer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Dnstracer(MakefilePackage):
homepage = "https://github.com/Orc/dnstracer"
git = "https://github.com/Orc/dnstracer.git"
+ license("BSD-2-Clause")
+
version("master", branch="master")
def edit(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/docbook-xml/package.py b/var/spack/repos/builtin/packages/docbook-xml/package.py
index c5d4900ea5f88c..cc0c8027481e92 100644
--- a/var/spack/repos/builtin/packages/docbook-xml/package.py
+++ b/var/spack/repos/builtin/packages/docbook-xml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class DocbookXml(Package):
list_url = "https://www.oasis-open.org/docbook/xml/"
list_depth = 1
+ license("MIT")
+
version("4.5", sha256="4e4e037a2b83c98c6c94818390d4bdd3f6e10f6ec62dd79188594e26190dc7b4")
version("4.4", sha256="02f159eb88c4254d95e831c51c144b1863b216d909b5ff45743a1ce6f5273090")
version("4.3", sha256="23068a94ea6fd484b004c5a73ec36a66aa47ea8f0d6b62cc1695931f5c143464")
diff --git a/var/spack/repos/builtin/packages/docbook-xsl/package.py b/var/spack/repos/builtin/packages/docbook-xsl/package.py
index a98f0d05dc0cfc..1775745e5b7d35 100644
--- a/var/spack/repos/builtin/packages/docbook-xsl/package.py
+++ b/var/spack/repos/builtin/packages/docbook-xsl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class DocbookXsl(Package):
homepage = "https://github.com/docbook/xslt10-stylesheets"
url = "https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F1.79.2/docbook-xsl-1.79.2.tar.bz2"
+ license("custom")
+
version("1.79.2", sha256="316524ea444e53208a2fb90eeb676af755da96e1417835ba5f5eb719c81fa371")
version(
"1.78.1",
diff --git a/var/spack/repos/builtin/packages/dock/package.py b/var/spack/repos/builtin/packages/dock/package.py
index 3d69f99dc2281c..c97b3efe5eef1b 100644
--- a/var/spack/repos/builtin/packages/dock/package.py
+++ b/var/spack/repos/builtin/packages/dock/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dorado/cmake-htslib.patch b/var/spack/repos/builtin/packages/dorado/cmake-htslib.patch
new file mode 100644
index 00000000000000..a918ee5a7826b2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dorado/cmake-htslib.patch
@@ -0,0 +1,111 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 64d6091e..323412a4 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -316,10 +316,6 @@ target_link_libraries(dorado_lib
+ minimap2
+ )
+
+-if(NOT WIN32)
+- add_dependencies(dorado_lib htslib_project)
+-endif()
+-
+ if(NOT DORADO_DISABLE_DORADO)
+ if(NOT WIN32)
+ # Set up RPATHs so we can find dependencies
+diff --git a/cmake/Htslib.cmake b/cmake/Htslib.cmake
+index caabc1a3..c72fe534 100644
+--- a/cmake/Htslib.cmake
++++ b/cmake/Htslib.cmake
+@@ -1,68 +1,4 @@
+-if(NOT TARGET htslib) # lazy include guard
+- if(WIN32)
+- message(STATUS "Fetching htslib")
+- download_and_extract(https://cdn.oxfordnanoportal.com/software/analysis/htslib-win.tar.gz htslib-win)
+- set(HTSLIB_DIR ${DORADO_3RD_PARTY_DOWNLOAD}/htslib-win CACHE STRING
+- "Path to htslib repo")
+- add_library(htslib SHARED IMPORTED)
+- set_target_properties(htslib PROPERTIES
+- "IMPORTED_IMPLIB" ${HTSLIB_DIR}/hts-3.lib
+- "IMPORTED_LOCATION" ${HTSLIB_DIR}/hts-3.dll
+- "INTERFACE_INCLUDE_DIRECTORIES" ${HTSLIB_DIR})
+- target_link_directories(htslib INTERFACE ${HTSLIB_DIR})
+- else()
+- message(STATUS "Setting up htslib build")
+- set(HTSLIB_DIR ${DORADO_3RD_PARTY_SOURCE}/htslib CACHE STRING "Path to htslib repo")
+- set(htslib_PREFIX ${CMAKE_BINARY_DIR}/3rdparty/htslib)
++include_directories(${HTSLIB_PREFIX}/include)
+
+- find_program(MAKE_COMMAND make REQUIRED)
+- find_program(AUTOCONF_COMMAND autoconf REQUIRED)
+- find_program(AUTOHEADER_COMMAND autoheader REQUIRED)
+- execute_process(COMMAND bash -c "${AUTOCONF_COMMAND} -V | sed 's/.* //; q'"
+- OUTPUT_VARIABLE AUTOCONF_VERS)
+- if (AUTOCONF_VERS VERSION_GREATER_EQUAL 2.70 AND NOT CMAKE_GENERATOR STREQUAL "Xcode")
+- set(AUTOCONF_COMMAND autoreconf --install)
+- endif()
+-
+- # The Htslib build apparently requires BUILD_IN_SOURCE=1, which is a problem when
+- # switching between build targets because htscodecs object files aren't regenerated.
+- # To avoid this, copy the source tree to a build-specific directory and do the build there.
+- set(HTSLIB_BUILD ${CMAKE_BINARY_DIR}/htslib_build)
+- file(COPY ${HTSLIB_DIR} DESTINATION ${HTSLIB_BUILD})
+-
+- if (CMAKE_SYSTEM_NAME STREQUAL "iOS")
+- # We need cross-compilation mode for iOS builds. Otherwise we end up trying to link a MacOS library
+- # into an iOS target.
+- set(CONFIGURE_FLAGS --host=aarch64-apple-darwin "CFLAGS=-isysroot ${CMAKE_OSX_SYSROOT}" "CC=${CMAKE_C_COMPILER}" "LDFLAGS=-isysroot ${CMAKE_OSX_SYSROOT}")
+- # By default the dylib install name will be some local path that won't work on the device.
+- set(INSTALL_NAME ${CMAKE_INSTALL_NAME_TOOL} -id "@executable_path/Frameworks/libhts.3.dylib" ${htslib_PREFIX}/lib/libhts.3.dylib)
+- endif()
+-
+- include(ExternalProject)
+- ExternalProject_Add(htslib_project
+- PREFIX ${HTSLIB_BUILD}
+- SOURCE_DIR ${HTSLIB_BUILD}/htslib
+- BUILD_IN_SOURCE 1
+- CONFIGURE_COMMAND ${AUTOHEADER_COMMAND}
+- COMMAND ${AUTOCONF_COMMAND}
+- COMMAND ./configure --disable-bz2 --disable-lzma --disable-libcurl --disable-s3 --disable-gcs ${CONFIGURE_FLAGS}
+- BUILD_COMMAND ${MAKE_COMMAND} install prefix=${htslib_PREFIX}
+- COMMAND ${INSTALL_NAME}
+- INSTALL_COMMAND ""
+- BUILD_BYPRODUCTS ${htslib_PREFIX}/lib/libhts.a
+- LOG_CONFIGURE 0
+- LOG_BUILD 0
+- LOG_TEST 0
+- LOG_INSTALL 0
+- )
+-
+- add_library(htslib STATIC IMPORTED)
+- # Need to ensure this directory exists before we can add it to INTERFACE_INCLUDE_DIRECTORIES
+- file(MAKE_DIRECTORY ${htslib_PREFIX}/include)
+- set_target_properties(htslib
+- PROPERTIES
+- "IMPORTED_LOCATION" ${htslib_PREFIX}/lib/libhts.a
+- "INTERFACE_INCLUDE_DIRECTORIES" ${htslib_PREFIX}/include)
+- message(STATUS "Done Building htslib")
+- endif()
+-endif()
++add_library(htslib SHARED IMPORTED)
++set_target_properties(htslib PROPERTIES IMPORTED_LOCATION ${HTSLIB_PREFIX}/lib/libhts.so)
+diff --git a/dorado/utils/CMakeLists.txt b/dorado/utils/CMakeLists.txt
+index 9bbf7067..e78feabe 100644
+--- a/dorado/utils/CMakeLists.txt
++++ b/dorado/utils/CMakeLists.txt
+@@ -117,13 +117,9 @@ if(APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "iOS")
+ target_link_libraries(dorado_utils PUBLIC ${IOKIT})
+ endif()
+
+-if(NOT WIN32)
+- add_dependencies(dorado_utils htslib_project)
+-endif()
+-
+ # GCC 8 ICEs trying to compile this file with ASAN+optimisations enabled, so knock down the optimisation to try and help it out.
+ if (ECM_ENABLE_SANITIZERS AND (CMAKE_CXX_COMPILER_ID MATCHES "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0))
+ set_source_files_properties(duplex_utils.cpp PROPERTIES COMPILE_OPTIONS "-O0")
+ endif()
+
+-enable_warnings_as_errors(dorado_utils)
+\ No newline at end of file
++enable_warnings_as_errors(dorado_utils)
diff --git a/var/spack/repos/builtin/packages/dorado/package.py b/var/spack/repos/builtin/packages/dorado/package.py
new file mode 100644
index 00000000000000..70e3c49879bcb7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dorado/package.py
@@ -0,0 +1,42 @@
+# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Dorado(CMakePackage, CudaPackage):
+ """Dorado is a high-performance, easy-to-use, open source basecaller
+ for Oxford Nanopore reads."""
+
+ homepage = "https://github.com/nanoporetech/dorado"
+ git = "https://github.com/nanoporetech/dorado.git"
+ url = "https://github.com/nanoporetech/dorado/archive/refs/tags/v0.5.1.tar.gz"
+
+ maintainers("snehring")
+
+ version("0.5.1", commit="a7fb3e3d4afa7a11cb52422e7eecb1a2cdb7860f", submodules=True)
+
+ depends_on("autoconf", type="build")
+ depends_on("automake", type="build")
+ depends_on("git", type="build")
+ depends_on("curl", type="build")
+ depends_on("cuda")
+ depends_on("hdf5@1.17:+hl+cxx+szip")
+ depends_on("htslib@1.15.1")
+ depends_on("openssl")
+ depends_on("zstd")
+ depends_on("libdeflate")
+ depends_on("zlib-api")
+
+ patch("cmake-htslib.patch")
+
+ def setup_build_environment(self, env):
+ env.prepend_path("LD_LIBRARY_PATH", self.spec["libdeflate"].prefix.lib64)
+ env.prepend_path("LIBRARY_PATH", self.spec["libdeflate"].prefix.lib64)
+
+ def cmake_args(self):
+ htslib_prefix = self.spec["htslib"].prefix
+ args = [f"-DHTSLIB_PREFIX={htslib_prefix}", f"-DDORADO_INSTALL_PATH={self.prefix}"]
+ return args
diff --git a/var/spack/repos/builtin/packages/dorian3d-dlib/package.py b/var/spack/repos/builtin/packages/dorian3d-dlib/package.py
index c4b6caaba7833c..74951a4a921e7e 100644
--- a/var/spack/repos/builtin/packages/dorian3d-dlib/package.py
+++ b/var/spack/repos/builtin/packages/dorian3d-dlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dos2unix/package.py b/var/spack/repos/builtin/packages/dos2unix/package.py
index 257b96a52b63ea..29465bff033dc0 100644
--- a/var/spack/repos/builtin/packages/dos2unix/package.py
+++ b/var/spack/repos/builtin/packages/dos2unix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Dos2unix(MakefilePackage):
maintainers("cessenat")
+ license("BSD-2-Clause")
+
version("7.4.4", sha256="28a841db0bd5827d645caba9d8015e3a71983dc6e398070b5287ee137ae4436e")
version("7.4.2", sha256="6035c58df6ea2832e868b599dfa0d60ad41ca3ecc8aa27822c4b7a9789d3ae01")
version("7.3.4", sha256="8ccda7bbc5a2f903dafd95900abb5bf5e77a769b572ef25150fde4056c5f30c5")
diff --git a/var/spack/repos/builtin/packages/dosfstools/package.py b/var/spack/repos/builtin/packages/dosfstools/package.py
index 938c2cc0cdcf91..6d89720b87d2f6 100644
--- a/var/spack/repos/builtin/packages/dosfstools/package.py
+++ b/var/spack/repos/builtin/packages/dosfstools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Dosfstools(AutotoolsPackage):
homepage = "https://github.com/dosfstools/dosfstools"
url = "https://github.com/dosfstools/dosfstools/archive/v4.1.tar.gz"
+ license("GPL-3.0-or-later")
+
version("4.1", sha256="8ff9c2dcc01551fe9de8888cb41eb1051fd58bdf1ab3a93d3d88916f0a4ffd1b")
version("4.0", sha256="77975e289e695cb8c984a3c0a15a3bbf3af90be83c26983d43abcde9ec48eea5")
diff --git a/var/spack/repos/builtin/packages/dotconf/package.py b/var/spack/repos/builtin/packages/dotconf/package.py
index d0f048ee584878..43ddf559246700 100644
--- a/var/spack/repos/builtin/packages/dotconf/package.py
+++ b/var/spack/repos/builtin/packages/dotconf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Dotconf(AutotoolsPackage):
homepage = "https://github.com/williamh/dotconf"
url = "https://github.com/williamh/dotconf/archive/v1.3.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("1.3", sha256="7f1ecf40de1ad002a065a321582ed34f8c14242309c3547ad59710ae3c805653")
depends_on("autoconf", type="build")
diff --git a/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py b/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py
index 27e73d4445d514..b7b03738070943 100644
--- a/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py
+++ b/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class DotnetCoreSdk(Package):
homepage = "https://www.microsoft.com/net/"
+ license("MIT")
+
version(
"6.0.2",
url="https://download.visualstudio.microsoft.com/download/pr/e7acb87d-ab08-4620-9050-b3e80f688d36/e93bbadc19b12f81e3a6761719f28b47/dotnet-sdk-6.0.102-linux-x64.tar.gz",
diff --git a/var/spack/repos/builtin/packages/double-batched-fft-library/package.py b/var/spack/repos/builtin/packages/double-batched-fft-library/package.py
index 7f9154ca7b3d8a..2c9675363c96eb 100644
--- a/var/spack/repos/builtin/packages/double-batched-fft-library/package.py
+++ b/var/spack/repos/builtin/packages/double-batched-fft-library/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class DoubleBatchedFftLibrary(CMakePackage):
maintainers("uphoffc")
+ license("BSD-3-Clause")
+
version("main", branch="main")
version("develop", branch="develop")
version("0.4.0", sha256="f3518012b632c92c2a933d70a040d6b0eee2d631ab6b1881a192a8d1624f242d")
diff --git a/var/spack/repos/builtin/packages/double-conversion/package.py b/var/spack/repos/builtin/packages/double-conversion/package.py
index 54c39657365a55..ef644be4a7d1c6 100644
--- a/var/spack/repos/builtin/packages/double-conversion/package.py
+++ b/var/spack/repos/builtin/packages/double-conversion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class DoubleConversion(CMakePackage):
homepage = "https://github.com/google/double-conversion"
url = "https://github.com/google/double-conversion/archive/v2.0.1.zip"
+ license("BSD-3-Clause")
+
version("3.3.0", sha256="4080014235f90854ffade6d1c423940b314bbca273a338235f049da296e47183")
version("3.2.1", sha256="55aa41b463346b1032585c04fe7d0adec9db56598d8d699841cdadeb3597e909")
version("3.1.5", sha256="72c0e3925a1214095afc6f1c214faecbec20e8526cf6b8a541cf72195a11887f")
diff --git a/var/spack/repos/builtin/packages/doxygen/package.py b/var/spack/repos/builtin/packages/doxygen/package.py
index f0f10b5ecfff7a..e6c099cb57f821 100644
--- a/var/spack/repos/builtin/packages/doxygen/package.py
+++ b/var/spack/repos/builtin/packages/doxygen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,10 @@ class Doxygen(CMakePackage):
homepage = "https://www.doxygen.org"
url = "https://github.com/doxygen/doxygen/archive/refs/tags/Release_1_9_5.tar.gz"
+ license("GPL-2.0-or-later")
+
+ version("1.9.8", sha256="77371e8a58d22d5e03c52729844d1043e9cbf8d0005ec5112ffa4c8f509ddde8")
+ version("1.9.7", sha256="691777992a7240ed1f822a5c2ff2c4273b57c1cf9fc143553d87f91a0c5970ee")
version("1.9.6", sha256="2a3ee47f7276b759f74bac7614c05a1296a5b028d3f6a79a88e4c213db78e7dc")
version("1.9.5", sha256="1c5c9cd4445f694e43f089c17529caae6fe889b732fb0b145211025a1fcda1bb")
version("1.9.4", sha256="1b083d15b29817463129ae1ae73b930d883030eeec090ea7a99b3a04fdb51c76")
@@ -120,12 +124,3 @@ def patch(self):
join_path("cmake", "FindIconv.cmake"),
string=True,
)
-
- def cmake_args(self):
- args = [
- # Doxygen's build system uses CMake's deprecated `FindPythonInterp`,
- # which can get confused by other `python` executables in the PATH.
- # See issue: https://github.com/spack/spack/issues/28215
- self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path)
- ]
- return args
diff --git a/var/spack/repos/builtin/packages/dpcpp/package.py b/var/spack/repos/builtin/packages/dpcpp/package.py
index 23b7b01e4b5e29..4fa5a00abb8ecd 100644
--- a/var/spack/repos/builtin/packages/dpcpp/package.py
+++ b/var/spack/repos/builtin/packages/dpcpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Dpcpp(CMakePackage):
homepage = "https://intel.github.io/llvm-docs/"
git = "https://github.com/intel/llvm.git"
+ license("Apache-2.0")
+
version("develop", branch="sycl")
version("2021.09", commit="bd68232bb96386bf7649345c0557ba520e73c02d")
version("2021.12", commit="27f59d8906fcc8aece7ff6aa570ccdee52168c2d")
diff --git a/var/spack/repos/builtin/packages/dpdk/package.py b/var/spack/repos/builtin/packages/dpdk/package.py
index ceaef10135367f..590fe54ef49aaf 100644
--- a/var/spack/repos/builtin/packages/dpdk/package.py
+++ b/var/spack/repos/builtin/packages/dpdk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Dpdk(MakefilePackage, MesonPackage):
maintainers("hyoklee")
+ license("BSD-3-Clause AND GPL-2.0-only")
+
version("main", branch="main")
version("23.03", sha256="8a8fa67941b1e0d428937f9068f401457e4e4fd576031479450da065385b332c")
version("22.11", sha256="ed8b2a2b153f0311ffa065d35af29a098367af44a22b3c33e191e1a74211f2e3")
diff --git a/var/spack/repos/builtin/packages/dpmjet/package.py b/var/spack/repos/builtin/packages/dpmjet/package.py
index e39328f5366176..9cb169cf393f1f 100644
--- a/var/spack/repos/builtin/packages/dpmjet/package.py
+++ b/var/spack/repos/builtin/packages/dpmjet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Dpmjet(MakefilePackage):
maintainers("wdconinc")
+ license("BSD-3-Clause")
+
version("19.3.5", sha256="5a546ca20f86abaecda1828eb5b577aee8a532dffb2c5e7244667d5f25777909")
version("19.3.4", sha256="646f520aa67ef6355c45cde155a5dd55f7c9d661314358a7668f6ff472f5d5f9")
version("19.3.3", sha256="4f449a36b48ff551beb4303d66bac18bebc52dbcac907f84ab7716c914ad6d8a")
diff --git a/var/spack/repos/builtin/packages/draco/package.py b/var/spack/repos/builtin/packages/draco/package.py
index dbe118e550f871..fd045639ab10e9 100644
--- a/var/spack/repos/builtin/packages/draco/package.py
+++ b/var/spack/repos/builtin/packages/draco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Draco(CMakePackage):
git = "https://github.com/lanl/Draco.git"
maintainers("KineticTheory")
+ license("BSD-3-Clause-Open-MPI")
+
version("develop", branch="develop")
version("7.14.1", sha256="b05c75f1b8ea1d4fac4900d897fb1c948b470826b174ed8b97b32c6da9f030bf")
version("7.14.0", sha256="c8abf293d81c1b8020907557c20d8d2f2edf9ac7ae60a534eab052a8c3b7f99d")
diff --git a/var/spack/repos/builtin/packages/dracut/package.py b/var/spack/repos/builtin/packages/dracut/package.py
index 404022daaca794..b29f42426fc330 100644
--- a/var/spack/repos/builtin/packages/dracut/package.py
+++ b/var/spack/repos/builtin/packages/dracut/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Dracut(AutotoolsPackage):
homepage = "https://github.com/dracutdevs/dracut"
url = "https://github.com/dracutdevs/dracut/archive/050.tar.gz"
+ license("GPL-2.0-or-later")
+
version("050", sha256="f9dbf18597e5929221365964293212c8c9ffb7d84529c5a338c834ecab06e333")
depends_on("kmod")
diff --git a/var/spack/repos/builtin/packages/dramsim2/package.py b/var/spack/repos/builtin/packages/dramsim2/package.py
index 301a58569a4724..3a896ffcd68092 100644
--- a/var/spack/repos/builtin/packages/dramsim2/package.py
+++ b/var/spack/repos/builtin/packages/dramsim2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dramsim3/package.py b/var/spack/repos/builtin/packages/dramsim3/package.py
index f0c3947c7a2b8b..85668f3e9e76e3 100644
--- a/var/spack/repos/builtin/packages/dramsim3/package.py
+++ b/var/spack/repos/builtin/packages/dramsim3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dray/package.py b/var/spack/repos/builtin/packages/dray/package.py
index 62c98e6febd1a7..e7567908be2e63 100644
--- a/var/spack/repos/builtin/packages/dray/package.py
+++ b/var/spack/repos/builtin/packages/dray/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -43,6 +43,8 @@ class Dray(Package, CudaPackage):
maintainers("cyrush")
+ license("BSD-3-Clause")
+
version("develop", branch="develop", submodules="True")
version("0.1.8", sha256="ae78ca6a5a31f06f6400a4a1ff6fc1d75347c8b41027a80662179f5b877eee30")
version("0.1.7", sha256="11ea794c1a24d7ed0d76bad7209d62bafc033ec40a2ea3a00e68fe598c6aa46d")
diff --git a/var/spack/repos/builtin/packages/dri2proto/package.py b/var/spack/repos/builtin/packages/dri2proto/package.py
index 837bbfbcd9b500..7e2e204de73a8d 100644
--- a/var/spack/repos/builtin/packages/dri2proto/package.py
+++ b/var/spack/repos/builtin/packages/dri2proto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Dri2proto(AutotoolsPackage, XorgPackage):
homepage = "https://cgit.freedesktop.org/xorg/proto/dri2proto/"
xorg_mirror_path = "proto/dri2proto-2.8.tar.gz"
+ license("ICU")
+
version("2.8", sha256="7e65b031eaa6ebe23c75583d4abd993ded7add8009b4200a4db7aa10728b0f61")
depends_on("pkgconfig", type="build")
diff --git a/var/spack/repos/builtin/packages/dri3proto/package.py b/var/spack/repos/builtin/packages/dri3proto/package.py
index 9685595ec56d8b..e50e43cff6be32 100644
--- a/var/spack/repos/builtin/packages/dri3proto/package.py
+++ b/var/spack/repos/builtin/packages/dri3proto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/drill/package.py b/var/spack/repos/builtin/packages/drill/package.py
index 3e268864f0f415..0759e0c0e43e77 100644
--- a/var/spack/repos/builtin/packages/drill/package.py
+++ b/var/spack/repos/builtin/packages/drill/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Drill(Package):
homepage = "https://drill.apache.org/"
url = "https://www-eu.apache.org/dist/drill/drill-1.17.0/apache-drill-1.17.0.tar.gz"
+ license("Apache-2.0")
+
version("1.17.0", sha256="a3d2d544bcc32b915fb53fced0f982670bd6fe2abd764423e566a5f6b54debf1")
version("1.16.0", sha256="fd195d2b38f393459b37d8f13ac1f36cdbe38495eabb08252da38e3544e87839")
version("1.15.0", sha256="188c1d0df28e50f0265f4bc3c5871b4e7abc9450a4e5a7dbe7f0b23146bec76b")
diff --git a/var/spack/repos/builtin/packages/drishti/package.py b/var/spack/repos/builtin/packages/drishti/package.py
index 7827f4421b5c8a..8ea7d53d3bb85d 100644
--- a/var/spack/repos/builtin/packages/drishti/package.py
+++ b/var/spack/repos/builtin/packages/drishti/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Drishti(PythonPackage):
maintainers("jeanbez", "sbyna")
+ license("BSD-3-Clause-LBNL")
+
version("master", branch="master")
version("0.4", sha256="bbbb272b4f6f44ae762f6cba28a2c589e15608691c559af0cc2f552590335d7b")
diff --git a/var/spack/repos/builtin/packages/dropwatch/package.py b/var/spack/repos/builtin/packages/dropwatch/package.py
index 3ac932570de899..e003c5602d95b5 100644
--- a/var/spack/repos/builtin/packages/dropwatch/package.py
+++ b/var/spack/repos/builtin/packages/dropwatch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Dropwatch(AutotoolsPackage):
homepage = "https://github.com/nhorman/dropwatch"
url = "https://github.com/nhorman/dropwatch/archive/v1.5.3.tar.gz"
+ license("GPL-2.0")
+
version("1.5.4", sha256="8c43d0c15d0cb9ce179fa1fb0610611723689a6f551b23c70a7ddc1cf068e8d2")
version("1.5.3", sha256="b748b66a816c1f94531446c0451da5461a4a31b0949244bb867d741c6ac0148b")
diff --git a/var/spack/repos/builtin/packages/druid/package.py b/var/spack/repos/builtin/packages/druid/package.py
index 3fb716884e4e75..4ab7d0a9bdf8c4 100644
--- a/var/spack/repos/builtin/packages/druid/package.py
+++ b/var/spack/repos/builtin/packages/druid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Druid(MavenPackage):
homepage = "https://github.com/alibaba/druid/"
url = "https://github.com/alibaba/druid/archive/1.1.23.tar.gz"
+ license("Apache-2.0")
+
version("1.2.8", sha256="e7e3726ea6d16f98bcf027eaa8591078827d249830ff3b3ba6579d70735d0003")
version("1.1.23", sha256="f29a0c5e60eb8a4d6fcfdf21bb4b6f54c1076a214f65190b8cdce2663cf84432")
version("1.1.22", sha256="0bd64e518beca840cd2f79bbfa612f47defbb3366333a11cff937af4424f96ce")
diff --git a/var/spack/repos/builtin/packages/ds/package.py b/var/spack/repos/builtin/packages/ds/package.py
index 294f029c0bf216..6eceafce11a520 100644
--- a/var/spack/repos/builtin/packages/ds/package.py
+++ b/var/spack/repos/builtin/packages/ds/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dsdp/package.py b/var/spack/repos/builtin/packages/dsdp/package.py
index a5193da74871ce..381dba628e7d04 100644
--- a/var/spack/repos/builtin/packages/dsdp/package.py
+++ b/var/spack/repos/builtin/packages/dsdp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Dsdp(MakefilePackage):
homepage = "https://www.mcs.anl.gov/hs/software/DSDP/"
url = "https://www.mcs.anl.gov/hs/software/DSDP/DSDP5.8.tar.gz"
+ license("DSDP")
+
version("5.8", sha256="26aa624525a636de272c0b329e2dfd01a0d5b7827f1c1c76f393d71e37dead70")
depends_on("blas")
diff --git a/var/spack/repos/builtin/packages/dsfmt/package.py b/var/spack/repos/builtin/packages/dsfmt/package.py
index e3677306bb07db..5486455f9daedb 100644
--- a/var/spack/repos/builtin/packages/dsfmt/package.py
+++ b/var/spack/repos/builtin/packages/dsfmt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Dsfmt(MakefilePackage):
# so we add it for them.
patch("targets.patch")
+ license("BSD-3-Clause")
+
version("2.2.5", sha256="b7bc498cd140b4808963b1ff9f33b42a491870f54775c1060ecad0e02bcaffb4")
version("2.2.4", sha256="39682961ecfba621a98dbb6610b6ae2b7d6add450d4f08d8d4edd0e10abd8174")
diff --git a/var/spack/repos/builtin/packages/dsqss/package.py b/var/spack/repos/builtin/packages/dsqss/package.py
index ae92627bca82de..72e5f5961f381c 100644
--- a/var/spack/repos/builtin/packages/dsqss/package.py
+++ b/var/spack/repos/builtin/packages/dsqss/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Dsqss(CMakePackage):
homepage = "https://www.pasums.issp.u-tokyo.ac.jp/dsqss/en/"
url = "https://github.com/issp-center-dev/dsqss/releases/download/v2.0.3/dsqss-v2.0.3.tar.gz"
+ license("GPL-3.0-or-later")
+
version("2.0.3", sha256="11255dd1f1317fb4ac2d6ae95535f027d627d03f5470717cd277dd9ab94496e0")
variant("mpi", default=True, description="build mpi support")
diff --git a/var/spack/repos/builtin/packages/dsrc/package.py b/var/spack/repos/builtin/packages/dsrc/package.py
index e560765928b16f..4baa53b74bd552 100644
--- a/var/spack/repos/builtin/packages/dsrc/package.py
+++ b/var/spack/repos/builtin/packages/dsrc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dssp/package.py b/var/spack/repos/builtin/packages/dssp/package.py
index 86a2df10b71194..a5a20a4be59688 100644
--- a/var/spack/repos/builtin/packages/dssp/package.py
+++ b/var/spack/repos/builtin/packages/dssp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Dssp(AutotoolsPackage):
homepage = "https://github.com/cmbi/dssp"
url = "https://github.com/cmbi/dssp/archive/3.1.4.tar.gz"
+ license("GPL-3.0-or-later")
+
version("3.1.4", sha256="496282b4b5defc55d111190ab9f1b615a9574a2f090e7cf5444521c747b272d4")
version("2.3.0", sha256="4c95976d86dc64949cb0807fbd58c7bee5393df0001999405863dc90f05846c6")
diff --git a/var/spack/repos/builtin/packages/dtc/package.py b/var/spack/repos/builtin/packages/dtc/package.py
index 7d7f1939af7175..a775a98803f8c7 100644
--- a/var/spack/repos/builtin/packages/dtc/package.py
+++ b/var/spack/repos/builtin/packages/dtc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Dtc(MakefilePackage):
homepage = "https://github.com/dgibson/dtc"
url = "https://github.com/dgibson/dtc/archive/refs/tags/v1.6.1.tar.gz"
+ license("GPL-2.0-or-later")
+
version("1.6.1", sha256="6401c9a0f577a270df4632bf0f3e5454ccc7a5ca3caefa67a3e1c29c9c6b8c60")
depends_on("bison", type="build")
diff --git a/var/spack/repos/builtin/packages/dtcmp/package.py b/var/spack/repos/builtin/packages/dtcmp/package.py
index 6b9c32fa950f34..992b2bf646a4d0 100644
--- a/var/spack/repos/builtin/packages/dtcmp/package.py
+++ b/var/spack/repos/builtin/packages/dtcmp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/dtf/package.py b/var/spack/repos/builtin/packages/dtf/package.py
index a9a749fb1c653e..97e057717b4f88 100644
--- a/var/spack/repos/builtin/packages/dtf/package.py
+++ b/var/spack/repos/builtin/packages/dtf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/duckdb/package.py b/var/spack/repos/builtin/packages/duckdb/package.py
index aae9bca08b7e01..7dabb8636bd584 100644
--- a/var/spack/repos/builtin/packages/duckdb/package.py
+++ b/var/spack/repos/builtin/packages/duckdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Duckdb(CMakePackage):
url = "https://github.com/duckdb/duckdb/archive/refs/tags/v0.8.1.tar.gz"
git = "https://github.com/duckdb/duckdb.git"
+ license("MIT")
+
version("master", branch="master")
version("0.8.1", sha256="a0674f7e320dc7ebcf51990d7fc1c0e7f7b2c335c08f5953702b5285e6c30694")
version("0.7.1", sha256="67f840f861e5ffbe137d65a8543642d016f900b89dd035492d562ad11acf0e1e")
diff --git a/var/spack/repos/builtin/packages/duperemove/package.py b/var/spack/repos/builtin/packages/duperemove/package.py
index de3dcc711ced40..340abe8a47cc7c 100644
--- a/var/spack/repos/builtin/packages/duperemove/package.py
+++ b/var/spack/repos/builtin/packages/duperemove/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Duperemove(MakefilePackage):
homepage = "https://github.com/markfasheh/duperemove"
url = "https://github.com/markfasheh/duperemove/archive/v0.11.1.tar.gz"
+ license("GPL-2.0-only")
+
version("0.11.1", sha256="75c3c91baf7e5195acad62eab73a7afc3d0b88cbfccefac3e3412eba06a42ac8")
depends_on("glib")
diff --git a/var/spack/repos/builtin/packages/dust/package.py b/var/spack/repos/builtin/packages/dust/package.py
index 0ee7234b8952dd..2d7437fb32bbf0 100644
--- a/var/spack/repos/builtin/packages/dust/package.py
+++ b/var/spack/repos/builtin/packages/dust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Dust(Package):
maintainers("fangohr")
+ license("Apache-2.0")
+
version("0.8.6", sha256="feede818e814011207c5bfeaf06dd9fc95825c59ab70942aa9b9314791c5d6b6")
version("0.7.5", sha256="f892aaf7a0a7852e12d01b2ced6c2484fb6dc5fe7562abdf0c44a2d08aa52618")
diff --git a/var/spack/repos/builtin/packages/dwz/package.py b/var/spack/repos/builtin/packages/dwz/package.py
index cb1b1f5e2accc3..85afeedbb6e73c 100644
--- a/var/spack/repos/builtin/packages/dwz/package.py
+++ b/var/spack/repos/builtin/packages/dwz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,8 +13,6 @@ class Dwz(MakefilePackage, SourcewarePackage):
sourceware_mirror_path = "dwz/releases/dwz-0.14.tar.gz"
git = "git://sourceware.org/git/dwz.git"
- maintainers("iarspider")
-
depends_on("elf")
version("0.14-patches", branch="dwz-0.14-branch")
diff --git a/var/spack/repos/builtin/packages/dxt-explorer/package.py b/var/spack/repos/builtin/packages/dxt-explorer/package.py
index 90ef64818346c4..88f4fdb536bfa7 100644
--- a/var/spack/repos/builtin/packages/dxt-explorer/package.py
+++ b/var/spack/repos/builtin/packages/dxt-explorer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class DxtExplorer(PythonPackage):
maintainers("jeanbez", "sbyna")
+ license("BSD-3-Clause-LBNL")
+
version("develop", branch="develop")
version("0.3", sha256="fb73947b737c327154d03eeb0744c86774263878b893b365094ce4af8ac60b8b")
diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py
index 3055f090d53361..331f60d4a33676 100644
--- a/var/spack/repos/builtin/packages/dyninst/package.py
+++ b/var/spack/repos/builtin/packages/dyninst/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Dyninst(CMakePackage):
tags = ["e4s"]
+ license("LGPL-2.1-or-later")
+
version("master", branch="master")
version("12.3.0", sha256="956b0378d2badb765a7e677c0b66c0b8b8cacca7631222bfe7a27b369abf7dd4")
version("12.2.1", sha256="c304af3c6191e92acd27350fd9b7b02899767a0e38abb3a08a378abe01d1ef01")
diff --git a/var/spack/repos/builtin/packages/dysco/package.py b/var/spack/repos/builtin/packages/dysco/package.py
index 07955427f87662..cd853afe2b63aa 100644
--- a/var/spack/repos/builtin/packages/dysco/package.py
+++ b/var/spack/repos/builtin/packages/dysco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Dysco(CMakePackage):
homepage = "https://github.com/aroffringa/dysco"
url = "https://github.com/aroffringa/dysco/archive/v1.2.tar.gz"
+ license("GPL-3.0-only")
+
version("1.2", sha256="dd992c5a13df67173aa1d3f6dc5df9b51b0bea2fe77bc08f5be7a839be741269")
depends_on("casacore")
diff --git a/var/spack/repos/builtin/packages/e2fsprogs/package.py b/var/spack/repos/builtin/packages/e2fsprogs/package.py
index b89221075fd0be..5560a5348df4af 100644
--- a/var/spack/repos/builtin/packages/e2fsprogs/package.py
+++ b/var/spack/repos/builtin/packages/e2fsprogs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class E2fsprogs(AutotoolsPackage):
homepage = "https://github.com/tytso/e2fsprogs"
url = "https://github.com/tytso/e2fsprogs/archive/v1.45.6.tar.gz"
+ license("GPL-2.0-or-later AND LGPL-2.0-or-later AND BSD-3-Clause AND MIT")
+
version("1.45.6", sha256="d785164a2977cd88758cb0cac5c29add3fe491562a60040cfb193abcd0f9609b")
version("1.45.5", sha256="0fd76e55c1196c1d97a2c01f2e84f463b8e99484541b43ff4197f5a695159fd3")
diff --git a/var/spack/repos/builtin/packages/e3sm-kernels/package.py b/var/spack/repos/builtin/packages/e3sm-kernels/package.py
index 0f1df42267b86b..8000d18ae71381 100644
--- a/var/spack/repos/builtin/packages/e3sm-kernels/package.py
+++ b/var/spack/repos/builtin/packages/e3sm-kernels/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/e3sm-scorpio/package.py b/var/spack/repos/builtin/packages/e3sm-scorpio/package.py
index c9958c35bd1a5b..66c8600096aa42 100644
--- a/var/spack/repos/builtin/packages/e3sm-scorpio/package.py
+++ b/var/spack/repos/builtin/packages/e3sm-scorpio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/e4s-cl/package.py b/var/spack/repos/builtin/packages/e4s-cl/package.py
index 86f4b3a1a84b11..258471c0108f70 100644
--- a/var/spack/repos/builtin/packages/e4s-cl/package.py
+++ b/var/spack/repos/builtin/packages/e4s-cl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class E4sCl(PythonPackage):
patch("drop-docker.patch", when="@:1.0.1")
+ license("MIT")
+
version("master", branch="master")
version("1.0.1", commit="b2c92993e0c7cb42de07f0f7cc02da3a06816192")
version("1.0.0", commit="410bb2e6601d9b90243a487ad7f7d2dabd8ba04c")
diff --git a/var/spack/repos/builtin/packages/ea-utils/package.py b/var/spack/repos/builtin/packages/ea-utils/package.py
index afd6611dd20232..b57c30ecb1e39a 100644
--- a/var/spack/repos/builtin/packages/ea-utils/package.py
+++ b/var/spack/repos/builtin/packages/ea-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/eagle/package.py b/var/spack/repos/builtin/packages/eagle/package.py
index 3070c64439bf6d..3a68066d11b59c 100644
--- a/var/spack/repos/builtin/packages/eagle/package.py
+++ b/var/spack/repos/builtin/packages/eagle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Eagle(MakefilePackage):
url = "https://github.com/tony-kuo/eagle/archive/v1.1.2.tar.gz"
maintainers("snehring")
+ license("GPL-3.0-only")
+
version("1.1.3", sha256="bd510b8eef2de14898cbf417e1c7a30b97ddaba24e5e2834da7b02767362fe3c")
version("1.1.2", sha256="afe967560d1f8fdbd0caf4b93b5f2a86830e9e4d399fee4a526140431343045e")
diff --git a/var/spack/repos/builtin/packages/earlyoom/package.py b/var/spack/repos/builtin/packages/earlyoom/package.py
index 7ff8aae0d905c5..09cc0d1fad6fae 100644
--- a/var/spack/repos/builtin/packages/earlyoom/package.py
+++ b/var/spack/repos/builtin/packages/earlyoom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Earlyoom(MakefilePackage):
homepage = "https://github.com/rfjakob/earlyoom"
url = "https://github.com/rfjakob/earlyoom/archive/v1.6.1.tar.gz"
+ license("MIT")
+
version("1.6.1", sha256="bcd3fab4da5e1dddec952a0974c866ec90c5f9159c995f9162c45488c4d03340")
version("1.6", sha256="b81804fc4470f996014d52252a87a1cf3b43d3d8754140035b10dcee349302b8")
diff --git a/var/spack/repos/builtin/packages/easi/package.py b/var/spack/repos/builtin/packages/easi/package.py
index a6d8b3ae32152a..ea5a113ed185cb 100644
--- a/var/spack/repos/builtin/packages/easi/package.py
+++ b/var/spack/repos/builtin/packages/easi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,7 +14,9 @@ class Easi(CMakePackage):
homepage = "https://easyinit.readthedocs.io"
git = "https://github.com/SeisSol/easi.git"
- maintainers("ravil-mobile", "Thomas-Ulrich", "krenzland", "ThrudPrimrose")
+ maintainers("ravil-mobile", "Thomas-Ulrich", "krenzland", "ThrudPrimrose", "davschneller")
+
+ license("BSD-3-Clause")
version("develop", branch="master")
version("1.2.0", tag="v1.2.0", commit="305a119338116a0ceac6b68b36841a50250d05b1")
@@ -34,7 +36,7 @@ class Easi(CMakePackage):
depends_on("impalajit@llvm-1.0.0", when="jit=impalajit-llvm")
depends_on("lua@5.3.2", when="jit=lua")
- depends_on("impalajit", when="jit=impalajit")
+ depends_on("impalajit@main", when="jit=impalajit")
conflicts("jit=impalajit", when="jit=impalajit-llvm")
conflicts("jit=impalajit-llvm", when="jit=impalajit")
diff --git a/var/spack/repos/builtin/packages/easybuild/package.py b/var/spack/repos/builtin/packages/easybuild/package.py
index d18864da8c8a1e..358b3f58df2c6d 100644
--- a/var/spack/repos/builtin/packages/easybuild/package.py
+++ b/var/spack/repos/builtin/packages/easybuild/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Easybuild(PythonPackage):
pypi = "easybuild/easybuild-4.0.0.tar.gz"
maintainers("boegel")
+ license("GPL-2.0-or-later")
+
version("4.7.0", sha256="e68c280e3a508965aefbdf234872919f777f739cf4787cb11bb97a56e0cf74a6")
version("4.0.0", sha256="21bcc1048525ad6219667cc97a7421b5388068c670cabba356712e474896de40")
diff --git a/var/spack/repos/builtin/packages/easyloggingpp/package.py b/var/spack/repos/builtin/packages/easyloggingpp/package.py
index e81089011d375d..c1fba765e8d3d7 100644
--- a/var/spack/repos/builtin/packages/easyloggingpp/package.py
+++ b/var/spack/repos/builtin/packages/easyloggingpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ebms/package.py b/var/spack/repos/builtin/packages/ebms/package.py
index 9ef56dbe3b4bc9..f92a83e3592a7e 100644
--- a/var/spack/repos/builtin/packages/ebms/package.py
+++ b/var/spack/repos/builtin/packages/ebms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Ebms(MakefilePackage):
homepage = "https://github.com/ANL-CESAR/EBMS"
git = "https://github.com/ANL-CESAR/EBMS.git"
+ license("MIT")
+
version("develop")
depends_on("mpi@2:")
diff --git a/var/spack/repos/builtin/packages/ecbuild/package.py b/var/spack/repos/builtin/packages/ecbuild/package.py
index 66664ea6e3f68d..d4882131a7a285 100644
--- a/var/spack/repos/builtin/packages/ecbuild/package.py
+++ b/var/spack/repos/builtin/packages/ecbuild/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,7 +13,9 @@ class Ecbuild(CMakePackage):
homepage = "https://github.com/ecmwf/ecbuild"
url = "https://github.com/ecmwf/ecbuild/archive/refs/tags/3.6.1.tar.gz"
- maintainers("skosukhin", "climbfuji")
+ maintainers("skosukhin", "climbfuji", "victoria-cherkas", "dominichofer")
+
+ license("Apache-2.0")
version("3.7.2", sha256="7a2d192cef1e53dc5431a688b2e316251b017d25808190faed485903594a3fb9")
version("3.6.5", sha256="98bff3d3c269f973f4bfbe29b4de834cd1d43f15b1c8d1941ee2bfe15e3d4f7f")
diff --git a/var/spack/repos/builtin/packages/eccodes/package.py b/var/spack/repos/builtin/packages/eccodes/package.py
index e985367c147c12..77c53cfc3f7a15 100644
--- a/var/spack/repos/builtin/packages/eccodes/package.py
+++ b/var/spack/repos/builtin/packages/eccodes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -45,12 +45,15 @@ class Eccodes(CMakePackage):
git = "https://github.com/ecmwf/eccodes.git"
list_url = "https://confluence.ecmwf.int/display/ECC/Releases"
- maintainers("skosukhin")
+ maintainers("skosukhin", "victoria-cherkas", "dominichofer", "climbfuji")
+
+ license("Apache-2.0")
version("develop", branch="develop")
+ version("2.33.0", sha256="bdcec8ce63654ec6803400c507f01220a9aa403a45fa6b5bdff7fdcc44fd7daf")
+ version("2.32.1", sha256="ad2ac1bf36577b1d35c4a771b4d174a06f522a1e5ef6c1f5e53a795fb624863e")
version("2.32.0", sha256="b57e8eeb0eba0c05d66fda5527c4ffa84b5ab35c46bcbc9a2227142973ccb8e6")
version("2.31.0", sha256="808ecd2c11fbf2c3f9fc7a36f8c2965b343f3151011b58a1d6e7cc2e6b3cac5d")
- version("2.27.0", sha256="ede5b3ffd503967a5eac89100e8ead5e16a881b7585d02f033584ed0c4269c99")
version("2.25.0", sha256="8975131aac54d406e5457706fd4e6ba46a8cc9c7dd817a41f2aa64ce1193c04e")
version("2.24.2", sha256="c60ad0fd89e11918ace0d84c01489f21222b11d6cad3ff7495856a0add610403")
version("2.23.0", sha256="cbdc8532537e9682f1a93ddb03440416b66906a4cc25dec3cbd73940d194bf0c")
@@ -347,9 +350,6 @@ def cmake_args(self):
# Prevent overriding by environment variables AEC_DIR and AEC_PATH:
args.append(self.define("AEC_DIR", self.spec["libaec"].prefix))
- if "+memfs" in self.spec:
- args.append(self.define("PYTHON_EXECUTABLE", python.path))
-
return args
@run_after("install")
diff --git a/var/spack/repos/builtin/packages/ecdsautils/package.py b/var/spack/repos/builtin/packages/ecdsautils/package.py
index b87339323e958d..2c9602eb7353a1 100644
--- a/var/spack/repos/builtin/packages/ecdsautils/package.py
+++ b/var/spack/repos/builtin/packages/ecdsautils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ecflow/package.py b/var/spack/repos/builtin/packages/ecflow/package.py
index 7fa77e386a0e2d..ea447d5f482747 100644
--- a/var/spack/repos/builtin/packages/ecflow/package.py
+++ b/var/spack/repos/builtin/packages/ecflow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -91,7 +91,6 @@ def cmake_args(self):
self.define_from_variant("ENABLE_SSL", "ssl"),
# https://jira.ecmwf.int/browse/SUP-2641#comment-208943
self.define_from_variant("ENABLE_STATIC_BOOST_LIBS", "static_boost"),
- self.define("Python3_EXECUTABLE", spec["python"].package.command),
self.define("BOOST_ROOT", spec["boost"].prefix),
self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"),
]
diff --git a/var/spack/repos/builtin/packages/eckit/package.py b/var/spack/repos/builtin/packages/eckit/package.py
index b20c3b0e6e2967..2c5ca7326786d7 100644
--- a/var/spack/repos/builtin/packages/eckit/package.py
+++ b/var/spack/repos/builtin/packages/eckit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,7 +16,9 @@ class Eckit(CMakePackage):
git = "https://github.com/ecmwf/eckit.git"
url = "https://github.com/ecmwf/eckit/archive/refs/tags/1.16.0.tar.gz"
- maintainers("skosukhin", "climbfuji")
+ maintainers("skosukhin", "climbfuji", "victoria-cherkas", "dominichofer")
+
+ license("Apache-2.0")
version("1.24.5", sha256="2fd74e04c20a59f9e13635828d9da880e18f8a2cb7fd3bfd0201e07071d6ec41")
version("1.24.4", sha256="b6129eb4f7b8532aa6905033e4cf7d09aadc8547c225780fea3db196e34e4671")
diff --git a/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py b/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py
index 5b96953f95473f..d8d0b438585822 100644
--- a/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py
+++ b/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ecmwf-atlas/package.py b/var/spack/repos/builtin/packages/ecmwf-atlas/package.py
index 3bac653899b5fc..78859abf9fd416 100644
--- a/var/spack/repos/builtin/packages/ecmwf-atlas/package.py
+++ b/var/spack/repos/builtin/packages/ecmwf-atlas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,8 +18,11 @@ class EcmwfAtlas(CMakePackage):
maintainers("climbfuji", "srherbener")
+ license("Apache-2.0")
+
version("master", branch="master")
version("develop", branch="develop")
+ version("0.36.0", sha256="39bf748aa7b22df80b9791fbb6b4351ed9a9f85587b58fc3225314278a2a68f8")
version("0.35.1", sha256="7a344aaa8a1378d989a7bb883eb741852c5fa494630be6d8c88e477e4b9c5be1")
version("0.35.0", sha256="5a4f898ffb4a33c738b6f86e4e2a4c8e26dfd56d3c3399018081487374e29e97")
version("0.34.0", sha256="48536742cec0bc268695240843ac0e232e2b5142d06b19365688d9ea44dbd9ba")
@@ -70,7 +73,6 @@ def cmake_args(self):
self.define_from_variant("ENABLE_FCKIT", "fckit"),
self.define_from_variant("ENABLE_EIGEN", "eigen"),
self.define_from_variant("ENABLE_FFTW", "fftw"),
- "-DPYTHON_EXECUTABLE:FILEPATH=" + self.spec["python"].command.path,
]
if self.spec.satisfies("@0.31:0.34"):
args.append(self.define_from_variant("ENABLE_TRANS", "trans"))
@@ -83,8 +85,8 @@ def cmake_args(self):
@when("+fismahigh")
def patch(self):
- filter_file("http://www\.ecmwf\.int", "", "cmake/atlas-import.cmake.in") # noqa: W605
- filter_file("int\.ecmwf", "", "cmake/atlas-import.cmake.in") # noqa: W605
+ filter_file("http://www.ecmwf.int", "", "cmake/atlas-import.cmake.in", string=True)
+ filter_file("int.ecmwf", "", "cmake/atlas-import.cmake.in", string=True)
filter_file('http[^"]+', "", "cmake/atlas_export.cmake")
patterns = [".travis.yml", "tools/install*.sh", "tools/github-sha.sh"]
for pattern in patterns:
diff --git a/var/spack/repos/builtin/packages/ecos/package.py b/var/spack/repos/builtin/packages/ecos/package.py
index 65203114272c9d..b393e2636cccd4 100644
--- a/var/spack/repos/builtin/packages/ecos/package.py
+++ b/var/spack/repos/builtin/packages/ecos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Ecos(MakefilePackage):
homepage = "https://github.com/embotech/ecos"
url = "https://github.com/embotech/ecos/archive/2.0.7.tar.gz"
+ license("GPL-3.0-only")
+
version("2.0.7", sha256="bdb6a84f7d150820459bd0a796cb64ffbb019afb95dc456d22acc2dafb2e70e0")
build_targets = ["all", "shared"]
diff --git a/var/spack/repos/builtin/packages/ecoslim/package.py b/var/spack/repos/builtin/packages/ecoslim/package.py
index 8a99faf3201df2..61b2fcdfec9b4f 100644
--- a/var/spack/repos/builtin/packages/ecoslim/package.py
+++ b/var/spack/repos/builtin/packages/ecoslim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Ecoslim(CMakePackage):
maintainers("reedmaxwell", "lecondon", "smithsg84")
+ license("LGPL-3.0-or-later")
+
version("1.3", sha256="b532e570b4767e4fa84123d8773732150679e8e3d7fecd5c6e99fb1d4dc57b84")
version("master", branch="master")
diff --git a/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py b/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py
index f23a736569f24a..d33cd410b00861 100644
--- a/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py
+++ b/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py b/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py
index 1427e7a72f9f2f..b2f124e68ee14d 100644
--- a/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py
+++ b/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ectrans/package.py b/var/spack/repos/builtin/packages/ectrans/package.py
index 900aaaf1d1a498..8b94a62e1e3750 100644
--- a/var/spack/repos/builtin/packages/ectrans/package.py
+++ b/var/spack/repos/builtin/packages/ectrans/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Ectrans(CMakePackage):
maintainers("climbfuji")
+ license("Apache-2.0")
+
version("develop", branch="develop", no_cache=True)
version("main", branch="main", no_cache=True)
version("1.2.0", sha256="2ee6dccc8bbfcc23faada1d957d141f24e41bb077c1821a7bc2b812148dd336c")
diff --git a/var/spack/repos/builtin/packages/ed/package.py b/var/spack/repos/builtin/packages/ed/package.py
index 993436c179b914..df2c77d0ab396a 100644
--- a/var/spack/repos/builtin/packages/ed/package.py
+++ b/var/spack/repos/builtin/packages/ed/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Ed(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/ed"
gnu_mirror_path = "ed/ed-1.4.tar.gz"
+ license("GPL-2.0-or-later")
+
version("1.4", sha256="db36da85ee1a9d8bafb4b041bd4c8c11becba0c43ec446353b67045de1634fda")
parallel = False
diff --git a/var/spack/repos/builtin/packages/editline/package.py b/var/spack/repos/builtin/packages/editline/package.py
index cdc959a8c4fd7c..4d6f8024f6b512 100644
--- a/var/spack/repos/builtin/packages/editline/package.py
+++ b/var/spack/repos/builtin/packages/editline/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Editline(AutotoolsPackage):
homepage = "https://troglobit.com/editline.html"
url = "https://github.com/troglobit/editline/archive/1.16.0.tar.gz"
+ license("Spencer-94")
+
version("1.17.1", sha256="d65c5739c8ca388fa71feabc5aae506d052e1a6d288ee4e7fcab7efb07a3be74")
version("1.16.0", sha256="33421a1569d025f332a87054bfea28e2c757bdb573f1437bc22c34b798b6383c")
diff --git a/var/spack/repos/builtin/packages/editres/package.py b/var/spack/repos/builtin/packages/editres/package.py
index 8bc6519a6129c0..16053f9e3bfdee 100644
--- a/var/spack/repos/builtin/packages/editres/package.py
+++ b/var/spack/repos/builtin/packages/editres/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/edm4hep/package.py b/var/spack/repos/builtin/packages/edm4hep/package.py
index b8d4238ce70522..edf245bce8cfd4 100644
--- a/var/spack/repos/builtin/packages/edm4hep/package.py
+++ b/var/spack/repos/builtin/packages/edm4hep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,7 +18,11 @@ class Edm4hep(CMakePackage):
tags = ["hep", "key4hep"]
- version("master", branch="master")
+ license("Apache-2.0")
+
+ version("main", branch="main")
+ version("0.10.3", sha256="0ba5e4e90376f750f9531831909160e3d7b9c2d1f020d7556f0d3977b7eaafcc")
+ version("0.10.2", sha256="c22c5c2f0fd1d09da9b734c1fa7ee546675fd2b047406db6ab8266e7657486d2")
version("0.10.1", sha256="28a3bd4df899309b14ec0d441f8b6ed0065206a08a0018113bb490e9d008caed")
version("0.10", sha256="a95c917c19793cfad6b0959854a653c5ce698c965598cabd649d544da07712c0")
version(
@@ -99,6 +103,7 @@ class Edm4hep(CMakePackage):
)
depends_on("cmake@3.3:", type="build")
+ depends_on("cmake@3.23:", type="build", when="@0.10.3:")
depends_on("python", type="build")
depends_on("root@6.08:")
diff --git a/var/spack/repos/builtin/packages/eem/package.py b/var/spack/repos/builtin/packages/eem/package.py
index f2424548c2974f..4b41e8cefd845d 100644
--- a/var/spack/repos/builtin/packages/eem/package.py
+++ b/var/spack/repos/builtin/packages/eem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/efivar/package.py b/var/spack/repos/builtin/packages/efivar/package.py
index b2a69bf384003c..1ef249380af2a2 100644
--- a/var/spack/repos/builtin/packages/efivar/package.py
+++ b/var/spack/repos/builtin/packages/efivar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Efivar(MakefilePackage):
homepage = "https://github.com/rhboot/efivar"
url = "https://github.com/rhboot/efivar/archive/37.tar.gz"
+ license("LGPL-2.1-only")
+
version("37", sha256="74c52b4f479120fb6639e753e71163ba3f557a7a67c0be225593f9f05b253f36")
version("36", sha256="24ed0cafbaf6d913e8f60e5da3cbbac1a1578e16cf5c95b21f2eb6753c13173f")
version("35", sha256="747bc4d97b4bd74979e5356c44a172534a8a07184f130349fd201742e683d292")
diff --git a/var/spack/repos/builtin/packages/egl/package.py b/var/spack/repos/builtin/packages/egl/package.py
new file mode 100644
index 00000000000000..c0ef7824250b0b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/egl/package.py
@@ -0,0 +1,92 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+import re
+import sys
+
+from spack.package import *
+
+
+class Egl(BundlePackage):
+ """Placeholder for external EGL(OpenGL) libraries from hardware vendors"""
+
+ homepage = "https://www.khronos.org/egl"
+ maintainers("biddisco")
+
+ version("1.5")
+
+ # This should really be when='platform=linux' but can't because of a
+ # current bug in when and how ArchSpecs are constructed
+ if sys.platform.startswith("linux"):
+ provides("gl@4.5")
+
+ # conflict with GLX
+ conflicts("glx")
+
+ # not always available, but sometimes
+ executables = ["^eglinfo$"]
+
+ @classmethod
+ def determine_version(cls, exe):
+ if exe:
+ output = Executable(exe)(output=str, error=str)
+ match = re.search(r"EGL version string: (\S+)", output)
+ return match.group(1) if match else None
+ else:
+ return None
+
+ # Override the fetcher method to throw a useful error message;
+ # fixes GitHub issue (#7061) in which this package threw a
+ # generic, uninformative error during the `fetch` step,
+ @property
+ def fetcher(self):
+ msg = """This package is intended to be a placeholder for
+ system-provided EGL(OpenGL) libraries from hardware vendors. Please
+ download and install EGL drivers/libraries for your graphics
+ hardware separately, and then set that up as an external package.
+ An example of a working packages.yaml:
+
+ packages:
+ egl:
+ buildable: False
+ externals:
+ - spec: egl@1.5.0
+ prefix: /usr/
+
+ In that case, /usr/ should contain these two folders:
+
+ include/EGL/ (egl headers, including "egl.h")
+ lib (egl libraries, including "libEGL.so")
+
+ """
+ raise InstallError(msg)
+
+ @fetcher.setter # Since fetcher is read-write, must override both
+ def fetcher(self):
+ _ = self.fetcher
+
+ @property
+ def headers(self):
+ return self.egl_headers
+
+ @property
+ def libs(self):
+ return self.egl_libs
+
+ @property
+ def egl_headers(self):
+ header_name = "GL/gl"
+ gl_header = find_headers(header_name, root=self.prefix, recursive=True)
+ header_name = "EGL/egl"
+ egl_header = find_headers(header_name, root=self.prefix, recursive=True)
+ return gl_header + egl_header
+
+ @property
+ def egl_libs(self):
+ lib_name = "libGL"
+ gl_lib = find_libraries(lib_name, root=self.prefix, recursive=True)
+ lib_name = "libEGL"
+ egl_lib = find_libraries(lib_name, root=self.prefix, recursive=True)
+ return gl_lib + egl_lib
diff --git a/var/spack/repos/builtin/packages/eigen/package.py b/var/spack/repos/builtin/packages/eigen/package.py
index 889ca904f259bf..6301084fa3506b 100644
--- a/var/spack/repos/builtin/packages/eigen/package.py
+++ b/var/spack/repos/builtin/packages/eigen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Eigen(CMakePackage):
url = "https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz"
maintainers("HaoZeke")
+ license("MPL-2.0")
+
version("3.4.0", sha256="8586084f71f9bde545ee7fa6d00288b264a2b7ac3607b974e54d13e7162c1c72")
version("3.3.9", sha256="7985975b787340124786f092b3a07d594b2e9cd53bbfe5f3d9b1daee7d55f56f")
version("3.3.8", sha256="146a480b8ed1fb6ac7cd33fec9eb5e8f8f62c3683b3f850094d9d5c35a92419a")
diff --git a/var/spack/repos/builtin/packages/eigenexa/package.py b/var/spack/repos/builtin/packages/eigenexa/package.py
index 3d994bbbcdb98b..7678f2138bcdf6 100644
--- a/var/spack/repos/builtin/packages/eigenexa/package.py
+++ b/var/spack/repos/builtin/packages/eigenexa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/elasticsearch/package.py b/var/spack/repos/builtin/packages/elasticsearch/package.py
index 59890a4f6e2953..b17ec0668613b4 100644
--- a/var/spack/repos/builtin/packages/elasticsearch/package.py
+++ b/var/spack/repos/builtin/packages/elasticsearch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/elbencho/package.py b/var/spack/repos/builtin/packages/elbencho/package.py
index a9417a4dfc135a..bcc0b6fc5377f9 100644
--- a/var/spack/repos/builtin/packages/elbencho/package.py
+++ b/var/spack/repos/builtin/packages/elbencho/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,9 +16,15 @@ class Elbencho(MakefilePackage):
homepage = "https://github.com/breuner/elbencho"
url = "https://github.com/breuner/elbencho/archive/refs/tags/v3.0-1.tar.gz"
+ git = "https://github.com/breuner/elbencho.git"
maintainers("ethanjjjjjjj")
+ license("GPL-3.0-only")
+
+ version("master", branch="master")
+
+ version("3.0-3", sha256="5769abcdaebefe2984ac3053fb6e91a54e1863d5ea8f72daea830e10b27c0eaf")
version("3.0-1", sha256="19dad85e1fc74419dcdf740f11a47d3f6d566770a06e40976755a3404566c11d")
version("2.2-5", sha256="4b598639452665a8b79c4c9d8a22ae63fb9b04057635a45e686aa3939ee255b4")
version("2.2-3", sha256="0ae2d495d2863b84f21f55b7c526674fab1be723d0697087017946647f79d0e6")
diff --git a/var/spack/repos/builtin/packages/elemental/package.py b/var/spack/repos/builtin/packages/elemental/package.py
index 8a118dc7c51672..49306457d6a81a 100644
--- a/var/spack/repos/builtin/packages/elemental/package.py
+++ b/var/spack/repos/builtin/packages/elemental/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Elemental(CMakePackage):
url = "https://github.com/elemental/Elemental/archive/v0.87.7.tar.gz"
git = "https://github.com/elemental/Elemental.git"
+ license("Apache-2.0")
+
version("develop", branch="master")
version("0.87.7", sha256="7becfdbc223e9c72e65ae876d842c48d2037d13f83e9f41cea285e21b840d7d9")
version("0.87.6", sha256="b597987c99ddd3462e0619524c5b7f711177ae8ae541b1b961e11d96e15afc64")
diff --git a/var/spack/repos/builtin/packages/elfio/package.py b/var/spack/repos/builtin/packages/elfio/package.py
index 5c0ed829449f87..9205da948129b7 100644
--- a/var/spack/repos/builtin/packages/elfio/package.py
+++ b/var/spack/repos/builtin/packages/elfio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Elfio(CMakePackage):
maintainers("haampie")
+ license("MIT")
+
version("3.11", sha256="3307b104c205399786edbba203906de9517e36297709fe747faf9478d55fbb91")
version("3.10", sha256="cdc6362ede2e0c8d1d6db15d7da4b526f461d9cfae6f6337369e416a8bc60234")
version("3.9", sha256="767b269063fc35aba6d361139f830aa91c45dc6b77942f082666876c1aa0be0f")
diff --git a/var/spack/repos/builtin/packages/elfutils/package.py b/var/spack/repos/builtin/packages/elfutils/package.py
index 15f0b11130e7bf..7ebea92c432a71 100644
--- a/var/spack/repos/builtin/packages/elfutils/package.py
+++ b/var/spack/repos/builtin/packages/elfutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -25,6 +25,9 @@ class Elfutils(AutotoolsPackage, SourcewarePackage):
maintainers("mwkrentel")
+ license("GPL-3.0-or-later AND ( GPL-2.0-or-later OR LGPL-3.0-or-later )")
+
+ version("0.190", sha256="8e00a3a9b5f04bc1dc273ae86281d2d26ed412020b391ffcc23198f10231d692")
version("0.189", sha256="39bd8f1a338e2b7cd4abc3ff11a0eddc6e690f69578a57478d8179b4148708c8")
version("0.188", sha256="fb8b0e8d0802005b9a309c60c1d8de32dd2951b56f0c3a3cb56d21ce01595dff")
version("0.187", sha256="e70b0dfbe610f90c4d1fe0d71af142a4e25c3c4ef9ebab8d2d72b65159d454c8")
diff --git a/var/spack/repos/builtin/packages/elk/package.py b/var/spack/repos/builtin/packages/elk/package.py
index 920c821e676c07..96dda40d5ee5ad 100644
--- a/var/spack/repos/builtin/packages/elk/package.py
+++ b/var/spack/repos/builtin/packages/elk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Elk(MakefilePackage):
homepage = "https://elk.sourceforge.io/"
url = "https://sourceforge.net/projects/elk/files/elk-3.3.17.tgz"
+ license("LGPL-3.0-or-later")
+
version("8.3.22", sha256="1c31f09b7c09d6b24e775d4f0d5e1e8871f95a7656ee4ca21ac17dbe7ea16277")
version("7.2.42", sha256="73f03776dbf9b2147bfcc5b7c062af5befa0944608f6fc4b6a1e590615400fc6")
version("7.1.14", sha256="7c2ff30f4b1d72d5dc116de9d70761f2c206700c69d85dd82a17a5a6374453d2")
@@ -68,7 +70,12 @@ class Elk(MakefilePackage):
depends_on("lapack", when="linalg=generic")
depends_on("mkl", when="linalg=mkl")
- depends_on("mkl threads=openmp", when="linalg=mkl +openmp")
+ with when("linalg=mkl +openmp"):
+ depends_on("intel-mkl threads=openmp", when="^[virtuals=mkl] intel-mkl")
+ depends_on("intel-oneapi-mkl threads=openmp", when="^[virtuals=mkl] intel-oneapi-mkl")
+ depends_on(
+ "intel-parallel-studio threads=openmp", when="^[virtuals=mkl] intel-parallel-studio"
+ )
depends_on("openblas", when="linalg=openblas")
depends_on("openblas threads=openmp", when="linalg=openblas +openmp")
diff --git a/var/spack/repos/builtin/packages/elmerfem/package.py b/var/spack/repos/builtin/packages/elmerfem/package.py
index fda948b73c0ccf..3d8863054a56ba 100644
--- a/var/spack/repos/builtin/packages/elmerfem/package.py
+++ b/var/spack/repos/builtin/packages/elmerfem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/elpa/fujitsu.patch b/var/spack/repos/builtin/packages/elpa/fujitsu.patch
new file mode 100644
index 00000000000000..d3600cf6bc5f5b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/elpa/fujitsu.patch
@@ -0,0 +1,65 @@
+From 8bda2149e4398bb6e6b66e601151966c91f9ec78 Mon Sep 17 00:00:00 2001
+From: m-shunji
+Date: Wed, 13 Sep 2023 17:58:26 +0900
+Subject: [PATCH] Fix compile error in disabling openmp
+
+---
+ src/elpa_impl_math_template.F90 | 6 +++---
+ test/Fortran/test_autotune.F90 | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/elpa_impl_math_template.F90 b/src/elpa_impl_math_template.F90
+index f87a0ad..b41c0c3 100644
+--- a/src/elpa_impl_math_template.F90
++++ b/src/elpa_impl_math_template.F90
+@@ -888,10 +888,10 @@
+ #endif
+ #ifdef COMPLEXCASE
+ #ifdef DOUBLE_PRECISION_COMPLEX
+- & !bind(C, name="elpa_solve_tridiagonal_dc")
++ bind(C, name="elpa_solve_tridiagonal_dc")
+ #endif
+ #ifdef SINGLE_PRECISION_COMPLEX
+- & !bind(C, name="elpa_solve_tridiagonal_fc")
++ bind(C, name="elpa_solve_tridiagonal_fc")
+ #endif
+ #endif
+
+@@ -913,4 +913,4 @@
+ &ELPA_IMPL_SUFFIX&
+ & (self, d, e, q, error)
+ end subroutine
+-
+\ No newline at end of file
++
+diff --git a/test/Fortran/test_autotune.F90 b/test/Fortran/test_autotune.F90
+index 4662564..5355ab3 100644
+--- a/test/Fortran/test_autotune.F90
++++ b/test/Fortran/test_autotune.F90
+@@ -312,8 +312,8 @@ program test
+ status = check_correctness_analytic(na, nev, ev, z, nblk, myid, np_rows, np_cols, my_prow, my_pcol, &
+ .true., .true., print_times=.false.)
+ a(:,:) = as(:,:)
+- call e%autotune_print_state(tune_state)
+- call e%autotune_save_state(tune_state, "saved_state_"//trim(iter_string)//".txt")
++ call e%autotune_print_state(tune_state, error_elpa)
++ call e%autotune_save_state(tune_state, "saved_state_"//trim(iter_string)//".txt", error_elpa)
+ end do
+
+ !! set and print the autotuned-settings
+--
+1.8.3.1
+diff --git a/manual_cpp b/manual_cpp
+index 6f74a79..dbdfc65 100755
+--- a/manual_cpp
++++ b/manual_cpp
+@@ -46,7 +46,7 @@ elif len(files) == 0:
+ elif len(files) == 1:
+ file, = files
+
+-tmp_filename = "manually_preprocessed_" + file.replace("/", "_")
++tmp_filename = "manually_preprocessed_" + file.replace("/", "_").replace("-", "_")
+
+ try:
+ output = args.index("-o")
+
diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py
index 30061eb9eff857..8e0ac1e70f3f1c 100644
--- a/var/spack/repos/builtin/packages/elpa/package.py
+++ b/var/spack/repos/builtin/packages/elpa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
url = "https://elpa.mpcdf.mpg.de/software/tarball-archive/Releases/2015.11.001/elpa-2015.11.001.tar.gz"
git = "https://gitlab.mpcdf.mpg.de/elpa/elpa.git"
+ license("LGPL-3.0-only")
+
version("master", branch="master")
version(
@@ -47,6 +49,8 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
variant("openmp", default=True, description="Activates OpenMP support")
variant("mpi", default=True, description="Activates MPI support")
+ patch("fujitsu.patch", when="%fj")
+
depends_on("autoconf", type="build", when="@master")
depends_on("automake", type="build", when="@master")
@@ -123,7 +127,7 @@ def configure_args(self):
if spec.target.family != "x86_64":
options.append("--disable-sse-assembly")
- if "%aocc" in spec:
+ if "%aocc" in spec or "%fj" in spec:
options.append("--disable-shared")
options.append("--enable-static")
@@ -132,20 +136,17 @@ def configure_args(self):
options.append("--enable-generic")
if self.compiler.name == "gcc":
- gcc_options = []
- gfortran_options = ["-ffree-line-length-none"]
-
- space_separator = " "
- options.extend(
- [
- "CFLAGS=" + space_separator.join(gcc_options),
- "FCFLAGS=" + space_separator.join(gfortran_options),
- ]
- )
+ options.extend(["CFLAGS=-O3", "FCFLAGS=-O3 -ffree-line-length-none"])
if "%aocc" in spec:
options.extend(["FCFLAGS=-O3", "CFLAGS=-O3"])
+ if "%fj" in spec:
+ options.append("--disable-Fortran2008-features")
+ options.append("--enable-FUGAKU")
+ if "+openmp" in spec:
+ options.extend(["FCFLAGS=-Kparallel"])
+
cuda_flag = "nvidia-gpu"
if "+cuda" in spec:
prefix = spec["cuda"].prefix
diff --git a/var/spack/repos/builtin/packages/elsd/package.py b/var/spack/repos/builtin/packages/elsd/package.py
index 05eec4a14cbca3..1e2c68116d9f72 100644
--- a/var/spack/repos/builtin/packages/elsd/package.py
+++ b/var/spack/repos/builtin/packages/elsd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Elsd(MakefilePackage):
homepage = "http://ubee.enseeiht.fr/vision/ELSD/"
git = "https://github.com/viorik/ELSD.git"
+ license("AGPL-3.0-only")
+
version("master", branch="master")
depends_on("blas")
diff --git a/var/spack/repos/builtin/packages/elsdc/package.py b/var/spack/repos/builtin/packages/elsdc/package.py
index a226f612806194..2edb0fddf65076 100644
--- a/var/spack/repos/builtin/packages/elsdc/package.py
+++ b/var/spack/repos/builtin/packages/elsdc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Elsdc(MakefilePackage):
homepage = "http://ubee.enseeiht.fr/vision/ELSD/"
git = "https://github.com/viorik/ELSDc.git"
+ license("AGPL-3.0-only")
+
version("master", branch="master")
depends_on("blas")
diff --git a/var/spack/repos/builtin/packages/elsi/package.py b/var/spack/repos/builtin/packages/elsi/package.py
index cf46a570900938..23fa1fc40f7bd1 100644
--- a/var/spack/repos/builtin/packages/elsi/package.py
+++ b/var/spack/repos/builtin/packages/elsi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Elsi(CMakePackage):
homepage = "https://wordpress.elsi-interchange.org/"
url = "https://wordpress.elsi-interchange.org/wp-content/uploads/2019/03/elsi-2.2.1.tar.gz"
+ license("BSD-3-Clause")
+
version("2.2.1", sha256="5b4b2e8fa4b3b68131fe02cc1803a884039b89a1b1138af474af66453bec0b4d")
# Variants (translation of cmake options)
diff --git a/var/spack/repos/builtin/packages/emacs/package.py b/var/spack/repos/builtin/packages/emacs/package.py
index 8bf6ee8c476f96..765bd6a7040f9a 100644
--- a/var/spack/repos/builtin/packages/emacs/package.py
+++ b/var/spack/repos/builtin/packages/emacs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,7 +18,10 @@ class Emacs(AutotoolsPackage, GNUMirrorPackage):
maintainers("alecbcs")
+ license("GPL-3.0-or-later")
+
version("master", branch="master")
+ version("29.2", sha256="ac8773eb17d8b3c0c4a3bccbb478f7c359266b458563f9a5e2c23c53c05e4e59")
version("29.1", sha256="5b80e0475b0e619d2ad395ef5bc481b7cb9f13894ed23c301210572040e4b5b1")
version("28.2", sha256="a6912b14ef4abb1edab7f88191bfd61c3edd7085e084de960a4f86485cb7cad8")
version("28.1", sha256="1439bf7f24e5769f35601dbf332e74dfc07634da6b1e9500af67188a92340a28")
diff --git a/var/spack/repos/builtin/packages/ember/package.py b/var/spack/repos/builtin/packages/ember/package.py
index 6c386a263f7b5a..3f3bf23dcfd18f 100644
--- a/var/spack/repos/builtin/packages/ember/package.py
+++ b/var/spack/repos/builtin/packages/ember/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Ember(MakefilePackage):
git = "https://github.com/sstsimulator/ember.git"
url = "https://github.com/sstsimulator/ember/archive/v1.0.0.tar.gz"
+ license("BSD-3-Clause")
+
version("1.0.0", sha256="5b2a6b8055b46ab3ea2c7baabaf4d280d837bb7c21eba0c9f59e092c6fc1c4a6")
depends_on("mpi")
diff --git a/var/spack/repos/builtin/packages/emblmygff3/package.py b/var/spack/repos/builtin/packages/emblmygff3/package.py
index 7803efca76f07d..8be1befdf07866 100644
--- a/var/spack/repos/builtin/packages/emblmygff3/package.py
+++ b/var/spack/repos/builtin/packages/emblmygff3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Emblmygff3(PythonPackage):
maintainers("snehring")
+ license("GPL-3.0-or-later")
+
version("2.2", sha256="225b2b50da9064f779e164b2859506d7540d11fa78f7d41b5c0d94f02f7845c5")
version("2.1", sha256="64aef403bc64088eca504b69acffb3fb16ec4448cd3d6c9692b7baf276b92fd2")
diff --git a/var/spack/repos/builtin/packages/emboss/package.py b/var/spack/repos/builtin/packages/emboss/package.py
index a77b972a5022d8..387e4f34646c67 100644
--- a/var/spack/repos/builtin/packages/emboss/package.py
+++ b/var/spack/repos/builtin/packages/emboss/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Emboss(AutotoolsPackage):
homepage = "http://emboss.sourceforge.net/"
url = "ftp://emboss.open-bio.org/pub/EMBOSS/EMBOSS-6.6.0.tar.gz"
+ license("GPL-2.0-only")
+
version("6.6.0", sha256="7184a763d39ad96bb598bfd531628a34aa53e474db9e7cac4416c2a40ab10c6e")
depends_on("libxpm")
diff --git a/var/spack/repos/builtin/packages/embree/package.py b/var/spack/repos/builtin/packages/embree/package.py
index 6a6e91115eb4f3..3b54a7c6924b78 100644
--- a/var/spack/repos/builtin/packages/embree/package.py
+++ b/var/spack/repos/builtin/packages/embree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Embree(CMakePackage):
url = "https://github.com/embree/embree/archive/v3.7.0.tar.gz"
maintainers("aumuell")
+ license("Apache-2.0")
+
version("4.3.0", sha256="baf0a57a45837fc055ba828a139467bce0bc0c6a9a5f2dccb05163d012c12308")
version("4.2.0", sha256="b0479ce688045d17aa63ce6223c84b1cdb5edbf00d7eda71c06b7e64e21f53a0")
version("4.1.0", sha256="117efd87d6dddbf7b164edd94b0bc057da69d6422a25366283cded57ed94738b")
@@ -57,7 +59,6 @@ def cmake_args(self):
"-DEMBREE_TUTORIALS=OFF",
"-DEMBREE_IGNORE_CMAKE_CXX_FLAGS=ON",
self.define_from_variant("EMBREE_ISPC_SUPPORT", "ispc"),
- self.define("EMBREE_TBB_ROOT", spec["tbb"].prefix),
]
if spec.satisfies("target=x86_64:") or spec.satisfies("target=x86:"):
diff --git a/var/spack/repos/builtin/packages/enca/package.py b/var/spack/repos/builtin/packages/enca/package.py
index 82e7dc15de3fc6..8d3d67ca8e69d9 100644
--- a/var/spack/repos/builtin/packages/enca/package.py
+++ b/var/spack/repos/builtin/packages/enca/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Enca(AutotoolsPackage):
homepage = "https://cihar.com/software/enca/"
url = "https://github.com/nijel/enca/archive/1.19.tar.gz"
+ license("GPL-2.0-only")
+
version("1.19", sha256="c4fd9a3d7c086803138842b18eed6072ec8810859b0e1ef091f1e1138d283f25")
version("1.18", sha256="b87c8d1bffc7d06ba74f82ae86eb21a921e94629203b2a971c966064c7eadab2")
version("1.17", sha256="b20372440c500e6463bd61dab0e68131cdfe857c6b7ca139b5c6cbf01e24fdc7")
diff --git a/var/spack/repos/builtin/packages/enchant/package.py b/var/spack/repos/builtin/packages/enchant/package.py
index 2d323d279fb129..b32545e730bd1e 100644
--- a/var/spack/repos/builtin/packages/enchant/package.py
+++ b/var/spack/repos/builtin/packages/enchant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Enchant(AutotoolsPackage):
homepage = "https://abiword.github.io/enchant/"
url = "https://github.com/AbiWord/enchant/releases/download/v2.2.5/enchant-2.2.5.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("2.2.7", sha256="1b22976135812b35cb5b8d21a53ad11d5e7c1426c93f51e7a314a2a42cab3a09")
version("2.2.6", sha256="8048c5bd26190b21279745cfecd05808c635bc14912e630340cd44a49b87d46d")
version("2.2.5", sha256="ffce4ea00dbda1478d91c3e1538cadfe5761d9d6c0ceb27bc3dba51882fe1c47")
diff --git a/var/spack/repos/builtin/packages/energyplus/package.py b/var/spack/repos/builtin/packages/energyplus/package.py
index d46b56a7df826d..c0c1774edc0f2b 100644
--- a/var/spack/repos/builtin/packages/energyplus/package.py
+++ b/var/spack/repos/builtin/packages/energyplus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ensmallen/package.py b/var/spack/repos/builtin/packages/ensmallen/package.py
index 213e14b51f7d7e..f96d0be33de286 100644
--- a/var/spack/repos/builtin/packages/ensmallen/package.py
+++ b/var/spack/repos/builtin/packages/ensmallen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Ensmallen(CMakePackage):
homepage = "https://ensmallen.org"
url = "https://github.com/mlpack/ensmallen/archive/refs/tags/2.19.1.tar.gz"
+ license("BSD-3-Clause")
+
version("2.19.1", sha256="f36ad7f08b0688d2a8152e1c73dd437c56ed7a5af5facf65db6ffd977b275b2e")
variant("openmp", default=True, description="Use OpenMP for parallelization")
diff --git a/var/spack/repos/builtin/packages/entrezdirect/package.py b/var/spack/repos/builtin/packages/entrezdirect/package.py
index c0e579719335fe..fd87aaca5c46b3 100644
--- a/var/spack/repos/builtin/packages/entrezdirect/package.py
+++ b/var/spack/repos/builtin/packages/entrezdirect/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/entt/package.py b/var/spack/repos/builtin/packages/entt/package.py
index 080a271722a1e7..0726c577185efd 100644
--- a/var/spack/repos/builtin/packages/entt/package.py
+++ b/var/spack/repos/builtin/packages/entt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Entt(CMakePackage):
homepage = "https://entt.docsforge.com"
url = "https://github.com/skypjack/entt/archive/v3.5.2.tar.gz"
+ license("MIT")
+
version("3.11.1", sha256="0ac010f232d3089200c5e545bcbd6480cf68b705de6930d8ff7cdb0a29f5b47b")
version("3.5.2", sha256="f9271293c44518386c402c9a2188627819748f66302df48af4f6d08e30661036")
diff --git a/var/spack/repos/builtin/packages/environment-modules/package.py b/var/spack/repos/builtin/packages/environment-modules/package.py
index 38bcd9b3bac08b..87c2031da34c2e 100644
--- a/var/spack/repos/builtin/packages/environment-modules/package.py
+++ b/var/spack/repos/builtin/packages/environment-modules/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/enzo/package.py b/var/spack/repos/builtin/packages/enzo/package.py
index 5452b27b7b81d3..b8498d08626432 100644
--- a/var/spack/repos/builtin/packages/enzo/package.py
+++ b/var/spack/repos/builtin/packages/enzo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/enzyme/package.py b/var/spack/repos/builtin/packages/enzyme/package.py
index 2d4edd17ffcaab..8f983a65344a56 100644
--- a/var/spack/repos/builtin/packages/enzyme/package.py
+++ b/var/spack/repos/builtin/packages/enzyme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/eospac/package.py b/var/spack/repos/builtin/packages/eospac/package.py
index 8587a4b583e1b4..e21b62f109f273 100644
--- a/var/spack/repos/builtin/packages/eospac/package.py
+++ b/var/spack/repos/builtin/packages/eospac/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/epics-base/package.py b/var/spack/repos/builtin/packages/epics-base/package.py
index 9aae46a46bea54..2509eab83eb850 100644
--- a/var/spack/repos/builtin/packages/epics-base/package.py
+++ b/var/spack/repos/builtin/packages/epics-base/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -26,6 +26,7 @@ class EpicsBase(MakefilePackage):
def patch(self):
filter_file(r"^\s*CC\s*=.*", "CC = " + spack_cc, "configure/CONFIG.gnuCommon")
filter_file(r"^\s*CCC\s*=.*", "CCC = " + spack_cxx, "configure/CONFIG.gnuCommon")
+ filter_file(r"\$\(PERL\)\s+\$\(XSUBPP\)", "$(XSUBPP)", "modules/ca/src/perl/Makefile")
@property
def install_targets(self):
diff --git a/var/spack/repos/builtin/packages/epics-ca-gateway/package.py b/var/spack/repos/builtin/packages/epics-ca-gateway/package.py
index a1476b8d85032a..fbaf1dc9613343 100644
--- a/var/spack/repos/builtin/packages/epics-ca-gateway/package.py
+++ b/var/spack/repos/builtin/packages/epics-ca-gateway/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/epics-pcas/package.py b/var/spack/repos/builtin/packages/epics-pcas/package.py
index 09ff843fc7c2a1..14e02f0a09f5d8 100644
--- a/var/spack/repos/builtin/packages/epics-pcas/package.py
+++ b/var/spack/repos/builtin/packages/epics-pcas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/epics-snmp/package.py b/var/spack/repos/builtin/packages/epics-snmp/package.py
index 5976f9f7abd1d3..a163a9e653cb88 100644
--- a/var/spack/repos/builtin/packages/epics-snmp/package.py
+++ b/var/spack/repos/builtin/packages/epics-snmp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/eprosima-fastcdr/package.py b/var/spack/repos/builtin/packages/eprosima-fastcdr/package.py
index d523ad86952cf4..1302190bb3cb2a 100644
--- a/var/spack/repos/builtin/packages/eprosima-fastcdr/package.py
+++ b/var/spack/repos/builtin/packages/eprosima-fastcdr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,4 +14,6 @@ class EprosimaFastcdr(CMakePackage):
homepage = "https://www.eprosima.com/"
url = "https://github.com/eProsima/Fast-CDR/archive/v1.0.27.tar.gz"
+ license("Apache-2.0")
+
version("1.0.27", sha256="a9bc8fd31a2c2b95e6d2fb46e6ce1ad733e86dc4442f733479e33ed9cdc54bf6")
diff --git a/var/spack/repos/builtin/packages/eprosima-fastdds/package.py b/var/spack/repos/builtin/packages/eprosima-fastdds/package.py
index f3898409a845bd..3af859c1fffa40 100644
--- a/var/spack/repos/builtin/packages/eprosima-fastdds/package.py
+++ b/var/spack/repos/builtin/packages/eprosima-fastdds/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class EprosimaFastdds(CMakePackage):
homepage = "https://www.eprosima.com/"
url = "https://github.com/eProsima/Fast-DDS/archive/v2.10.1.tar.gz"
+ license("Apache-2.0")
+
version("2.10.1", sha256="2cc2682db5dc7e87684b7f23166e2f32faf8d5c4b4a8c94c6c21211a8a38f553")
depends_on("asio")
diff --git a/var/spack/repos/builtin/packages/epsic/package.py b/var/spack/repos/builtin/packages/epsic/package.py
index 74284c631fcec2..16144c585d1bf9 100644
--- a/var/spack/repos/builtin/packages/epsic/package.py
+++ b/var/spack/repos/builtin/packages/epsic/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/eq-r/package.py b/var/spack/repos/builtin/packages/eq-r/package.py
index 8d79fe01f224a8..81670ed8db7347 100644
--- a/var/spack/repos/builtin/packages/eq-r/package.py
+++ b/var/spack/repos/builtin/packages/eq-r/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/er/package.py b/var/spack/repos/builtin/packages/er/package.py
index 19d7faae8bc0be..6fed09c5e6bdc1 100644
--- a/var/spack/repos/builtin/packages/er/package.py
+++ b/var/spack/repos/builtin/packages/er/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Er(CMakePackage):
maintainers("CamStan", "gonsie")
+ license("MIT")
+
version("main", branch="main")
version("0.4.0", sha256="6cb5b6724ddac5c1f5ed6b326a5f3bf5d4eb1c6958a48218e6ca9bb7c02e48a8")
version("0.3.0", sha256="01bc71bfb2ebb015ccb948f2bb9138b70972a3e8be0e53f9a4844e46b106a36c")
diff --git a/var/spack/repos/builtin/packages/erfa/package.py b/var/spack/repos/builtin/packages/erfa/package.py
index a08d251fded1d3..b1132258d41dc0 100644
--- a/var/spack/repos/builtin/packages/erfa/package.py
+++ b/var/spack/repos/builtin/packages/erfa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/erlang/package.py b/var/spack/repos/builtin/packages/erlang/package.py
index f64a6ff55c7d90..e21d2d736d6917 100644
--- a/var/spack/repos/builtin/packages/erlang/package.py
+++ b/var/spack/repos/builtin/packages/erlang/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Erlang(AutotoolsPackage):
homepage = "https://erlang.org/"
url = "https://erlang.org/download/otp_src_23.3.tar.gz"
+ license("Apache-2.0")
+
version("26.0", sha256="4e411587bd7d18ee2d5a0e7207f638e14036152633db57d2cf49c84a9c92d945")
version("25.3", sha256="aeaa546e0c38e338010d16348d8c67f7fc8c02df728a88d8499838d8c9131e1c")
version("25.2", sha256="0df1243afde953647df95785f8e75541fd0ea8ac70c0f639c977513be1761f63")
diff --git a/var/spack/repos/builtin/packages/ermod/package.py b/var/spack/repos/builtin/packages/ermod/package.py
index c72a976d93c852..5ae705818c52ef 100644
--- a/var/spack/repos/builtin/packages/ermod/package.py
+++ b/var/spack/repos/builtin/packages/ermod/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Ermod(AutotoolsPackage):
"https://sourceforge.net/projects/ermod/files/ermod-0.3%20%28stable%29/ermod-0.3.5.tar.gz"
)
+ license("GPL-2.0-or-later")
+
version("0.3.6", sha256="8fdd8e0844fcc34cda2bbbf8ad03168c1c2f1409e06967a96a0f2269bb5f1b6b")
version("0.3.5", sha256="42043ba7f53e9b74d0327b9982f33a4b79ed6964fbeb409e33178a6dcdf9e827")
diff --git a/var/spack/repos/builtin/packages/erne/package.py b/var/spack/repos/builtin/packages/erne/package.py
index f9fe8f864576af..dee89bebb8af5e 100644
--- a/var/spack/repos/builtin/packages/erne/package.py
+++ b/var/spack/repos/builtin/packages/erne/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Erne(AutotoolsPackage):
homepage = "http://erne.sourceforge.net/"
url = "https://downloads.sourceforge.net/project/erne/2.1.1/erne-2.1.1-source.tar.gz"
+ license("GPL-3.0-only")
+
version("2.1.1", sha256="f32ab48481fd6c129b0a0246ab02b6e3a2a9da84024e1349510a59c15425d983")
variant("mpi", default=False, description="Build with OpenMPI support")
diff --git a/var/spack/repos/builtin/packages/es-shell/package.py b/var/spack/repos/builtin/packages/es-shell/package.py
index 3d319210478256..79c23768054417 100644
--- a/var/spack/repos/builtin/packages/es-shell/package.py
+++ b/var/spack/repos/builtin/packages/es-shell/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class EsShell(AutotoolsPackage):
homepage = "https://wryun.github.io/es-shell/"
url = "https://github.com/wryun/es-shell/releases/download/v0.9.1/es-0.9.1.tar.gz"
+ license("Public-Domain")
+
version("0.9.1", sha256="b0b41fce99b122a173a06b899a4d92e5bd3cc48b227b2736159f596a58fff4ba")
depends_on("readline")
diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py
index 9485c64df23eb7..e317d07cee4fb4 100644
--- a/var/spack/repos/builtin/packages/esmf/package.py
+++ b/var/spack/repos/builtin/packages/esmf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/espanso/package.py b/var/spack/repos/builtin/packages/espanso/package.py
index e12f7a4f656338..6432eb1c87f498 100644
--- a/var/spack/repos/builtin/packages/espanso/package.py
+++ b/var/spack/repos/builtin/packages/espanso/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/essl/package.py b/var/spack/repos/builtin/packages/essl/package.py
index 4b8572834c43aa..bda77a149fa4db 100644
--- a/var/spack/repos/builtin/packages/essl/package.py
+++ b/var/spack/repos/builtin/packages/essl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/estarlight/package.py b/var/spack/repos/builtin/packages/estarlight/package.py
index e171cc17ac9c71..95e27e4d16ec39 100644
--- a/var/spack/repos/builtin/packages/estarlight/package.py
+++ b/var/spack/repos/builtin/packages/estarlight/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/esys-particle/package.py b/var/spack/repos/builtin/packages/esys-particle/package.py
index 843a9afa9b85c9..0475d965d8fa85 100644
--- a/var/spack/repos/builtin/packages/esys-particle/package.py
+++ b/var/spack/repos/builtin/packages/esys-particle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class EsysParticle(CMakePackage):
maintainers("snehring")
+ license("Apache-2.0")
+
version("3.0-alpha", sha256="4fba856a95c93991cacb904e6a54a7ded93558f7adc8c3e6da99bc347843a434")
depends_on("mpi")
diff --git a/var/spack/repos/builtin/packages/etcd/package.py b/var/spack/repos/builtin/packages/etcd/package.py
index 9587221e973b61..e1b9bba9c9361f 100644
--- a/var/spack/repos/builtin/packages/etcd/package.py
+++ b/var/spack/repos/builtin/packages/etcd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Etcd(Package):
maintainers("alecbcs")
+ license("Apache-2.0")
+
version("3.5.9", sha256="ab24d74b66ba1ed7d2bc391839d961e7215f0f3d674c3a9592dad6dc67a7b223")
version("3.4.23", sha256="055c608c4898d25f23aefbc845ff074bf5e8a07e61ed41dbd5cc4d4f59c93093")
diff --git a/var/spack/repos/builtin/packages/ethminer/package.py b/var/spack/repos/builtin/packages/ethminer/package.py
index 91b42ef93a5499..ae28904c544981 100644
--- a/var/spack/repos/builtin/packages/ethminer/package.py
+++ b/var/spack/repos/builtin/packages/ethminer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Ethminer(CMakePackage):
homepage = "https://github.com/ethereum-mining/ethminer"
url = "https://github.com/ethereum-mining/ethminer/archive/v0.12.0.tar.gz"
+ license("GPL-3.0-or-later")
+
version("0.12.0", sha256="71122c8aa1be2c29e46d7f07961fa760b1eb390e4d9a2a21cf900f6482a8755a")
variant("opencl", default=True, description="Enable OpenCL mining.")
diff --git a/var/spack/repos/builtin/packages/ethtool/package.py b/var/spack/repos/builtin/packages/ethtool/package.py
index 6a149380625b43..da8800471b0704 100644
--- a/var/spack/repos/builtin/packages/ethtool/package.py
+++ b/var/spack/repos/builtin/packages/ethtool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Ethtool(AutotoolsPackage):
homepage = "https://github.com/Distrotech/ethtool"
url = "https://github.com/Distrotech/ethtool/archive/v4.8.tar.gz"
+ license("GPL-2.0-only")
+
version("4.8", sha256="e4443c612b01b6c4891e21f55a59aa2d6da1c9915edcf067bb66a0855590e143")
depends_on("autoconf", type="build")
diff --git a/var/spack/repos/builtin/packages/etsf-io/package.py b/var/spack/repos/builtin/packages/etsf-io/package.py
index be5435c5dd5a5f..df30e5e257a594 100644
--- a/var/spack/repos/builtin/packages/etsf-io/package.py
+++ b/var/spack/repos/builtin/packages/etsf-io/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class EtsfIo(Package):
homepage = "https://github.com/ElectronicStructureLibrary/libetsf_io"
url = "https://launchpad.net/etsf-io/1.0/1.0.4/+download/etsf_io-1.0.4.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("1.0.4", sha256="3140c2cde17f578a0e6b63acb27a5f6e9352257a1371a17b9c15c3d0ef078fa4")
variant("mpi", default=True, description="Add MPI support")
diff --git a/var/spack/repos/builtin/packages/eve/package.py b/var/spack/repos/builtin/packages/eve/package.py
index 64f9e075865ba1..aa0da87e422ca9 100644
--- a/var/spack/repos/builtin/packages/eve/package.py
+++ b/var/spack/repos/builtin/packages/eve/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Eve(CMakePackage):
maintainers("jfalcou")
git = "https://github.com/jfalcou/eve.git"
+ license("BSL-1.0")
+
version("main", branch="main")
version(
"2023.02.15", sha256="7a5fb59c0e6ef3bef3e8b36d62e138d31e7f2a9f1bdfe95a8e96512b207f84c5"
diff --git a/var/spack/repos/builtin/packages/evemu/package.py b/var/spack/repos/builtin/packages/evemu/package.py
index 38e64288a83189..fee10a7f91eb21 100644
--- a/var/spack/repos/builtin/packages/evemu/package.py
+++ b/var/spack/repos/builtin/packages/evemu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Evemu(AutotoolsPackage):
homepage = "https://github.com/freedesktop/evemu"
url = "https://github.com/freedesktop/evemu/archive/v2.7.0.tar.gz"
+ license("LGPL-3.0-only")
+
version("2.7.0", sha256="aee1ecc2b6761134470316d97208b173adb4686dc72548b82b2c2b5d1e5dc259")
version("2.6.0", sha256="dc2382bee4dcb6c413271d586dc11d9b4372a70fa2b66b1e53a7107f2f9f51f8")
version("2.5.0", sha256="ab7cce32800db84ab3504789583d1be0d9b0a5f2689389691367b18cf059b09f")
diff --git a/var/spack/repos/builtin/packages/everytrace-example/package.py b/var/spack/repos/builtin/packages/everytrace-example/package.py
index 7a29ea6d813de3..4ea4c237b67c31 100644
--- a/var/spack/repos/builtin/packages/everytrace-example/package.py
+++ b/var/spack/repos/builtin/packages/everytrace-example/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class EverytraceExample(CMakePackage):
homepage = "https://github.com/citibeth/everytrace-example"
git = "https://github.com/citibeth/everytrace-example.git"
+ license("GPL-3.0-or-later")
+
version("develop", branch="develop")
depends_on("everytrace+mpi+fortran")
diff --git a/var/spack/repos/builtin/packages/everytrace/package.py b/var/spack/repos/builtin/packages/everytrace/package.py
index fdf546dc928a7f..3e5c1d9c88ee4b 100644
--- a/var/spack/repos/builtin/packages/everytrace/package.py
+++ b/var/spack/repos/builtin/packages/everytrace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Everytrace(CMakePackage):
maintainers("citibeth")
+ license("LGPL-3.0-or-later")
+
version("develop", branch="develop")
version("0.2.2", sha256="0487276bb24e648388862d8e1d8cfe56b529f7e3d840df3fcb5b3a3dad4016e1")
diff --git a/var/spack/repos/builtin/packages/evieext/package.py b/var/spack/repos/builtin/packages/evieext/package.py
index c3ae27f858fc12..b431e2136ef357 100644
--- a/var/spack/repos/builtin/packages/evieext/package.py
+++ b/var/spack/repos/builtin/packages/evieext/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Evieext(AutotoolsPackage, XorgPackage):
homepage = "https://cgit.freedesktop.org/xorg/proto/evieproto"
xorg_mirror_path = "proto/evieext-1.1.1.tar.gz"
+ license("MIT")
+
version("1.1.1", sha256="e58080443c279dfb5a23c37076922df535e42bf209d21a1f3e88442cc01b4a0e")
depends_on("pkgconfig", type="build")
diff --git a/var/spack/repos/builtin/packages/evtgen/package.py b/var/spack/repos/builtin/packages/evtgen/package.py
index 2c4d3d9a68e994..51b12f1111869e 100644
--- a/var/spack/repos/builtin/packages/evtgen/package.py
+++ b/var/spack/repos/builtin/packages/evtgen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,7 @@ class Evtgen(CMakePackage):
maintainers("vvolkl")
+ version("02.02.01", sha256="1fcae56c6b27b89c4a2f4b224d27980607442185f5570e961f6334a3543c6e77")
version("02.02.00", sha256="0c626e51cb17e799ad0ffd0beea5cb94d7ac8a5f8777b746aa1944dd26071ecf")
version("02.00.00", sha256="02372308e1261b8369d10538a3aa65fe60728ab343fcb64b224dac7313deb719")
# switched to cmake in 02.00.00
@@ -36,6 +37,7 @@ class Evtgen(CMakePackage):
depends_on("hepmc", when="~hepmc3")
depends_on("hepmc3", when="+hepmc3")
+ depends_on("pythia8@:8.309", when="@:02.02.00 +pythia8")
depends_on("pythia8", when="+pythia8")
depends_on("tauola~hepmc3", when="+tauola~hepmc3")
depends_on("photos~hepmc3", when="+photos~hepmc3")
diff --git a/var/spack/repos/builtin/packages/exa/package.py b/var/spack/repos/builtin/packages/exa/package.py
index 8488f3b3a11438..e6b843d8ab69da 100644
--- a/var/spack/repos/builtin/packages/exa/package.py
+++ b/var/spack/repos/builtin/packages/exa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,17 +6,22 @@
from spack.package import *
-class Exa(Package):
- """exa is a replacement for ls written in Rust."""
+class Exa(CargoPackage):
+ """DEPRECATED: The exa upstream is no longer maintained, see the eza package for a
+ replacement.
+
+ exa is a replacement for ls written in Rust."""
homepage = "https://the.exa.website"
url = "https://github.com/ogham/exa/archive/v0.9.0.tar.gz"
- version("0.10.1", sha256="ff0fa0bfc4edef8bdbbb3cabe6fdbd5481a71abbbcc2159f402dea515353ae7c")
- version("0.9.0", sha256="96e743ffac0512a278de9ca3277183536ee8b691a46ff200ec27e28108fef783")
-
- depends_on("rust")
-
- def install(self, spec, prefix):
- cargo = which("cargo")
- cargo("install", "--root", prefix, "--path", ".")
+ version(
+ "0.10.1",
+ sha256="ff0fa0bfc4edef8bdbbb3cabe6fdbd5481a71abbbcc2159f402dea515353ae7c",
+ deprecated=True,
+ )
+ version(
+ "0.9.0",
+ sha256="96e743ffac0512a278de9ca3277183536ee8b691a46ff200ec27e28108fef783",
+ deprecated=True,
+ )
diff --git a/var/spack/repos/builtin/packages/exabayes/package.py b/var/spack/repos/builtin/packages/exabayes/package.py
index ffa79bced71a02..ce1937dc1f8ae7 100644
--- a/var/spack/repos/builtin/packages/exabayes/package.py
+++ b/var/spack/repos/builtin/packages/exabayes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Exabayes(AutotoolsPackage):
homepage = "https://sco.h-its.org/exelixis/web/software/exabayes/"
url = "https://sco.h-its.org/exelixis/resource/download/software/exabayes-1.5.tar.gz"
+ license("GPL-3.0-only")
+
version("1.5.1", sha256="f75ce8d5cee4d241cadacd0f5f5612d783b9e9babff2a99c7e0c3819a94bbca9")
version("1.5", sha256="e401f1b4645e67e8879d296807131d0ab79bba81a1cd5afea14d7c3838b095a2")
diff --git a/var/spack/repos/builtin/packages/exaca/package.py b/var/spack/repos/builtin/packages/exaca/package.py
index d5d6b8785a2601..b1fd6416b9fdf3 100644
--- a/var/spack/repos/builtin/packages/exaca/package.py
+++ b/var/spack/repos/builtin/packages/exaca/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Exaca(CMakePackage):
tags = ["ecp"]
+ license("MIT")
+
version("master", branch="master")
version("1.2.0", sha256="5038d63de96c6142ddea956998e1f4ebffbc4a5723caa4da0e73eb185e6623e4")
version("1.1.0", sha256="10106fb1836964a19bc5bab3f374baa24188ba786c768e554442ab896b31ff24")
diff --git a/var/spack/repos/builtin/packages/exago/exago-1.1.0.patch b/var/spack/repos/builtin/packages/exago/exago-1.1.0.patch
new file mode 100644
index 00000000000000..2af6044f0217be
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exago/exago-1.1.0.patch
@@ -0,0 +1,21 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d0e8ed18..3225509c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -366,10 +366,13 @@ else()
+ endif()
+ endif()
+
+-include(ExaGOCheckPython)
+ if(EXAGO_ENABLE_PYTHON)
++ include(ExaGOCheckPython)
+ add_subdirectory(interfaces/python)
+ endif()
+
+-# Build tests
+-add_subdirectory(tests)
++if(EXAGO_RUN_TESTS)
++ # Build tests
++ add_subdirectory(tests)
++endif()
++
diff --git a/var/spack/repos/builtin/packages/exago/exago-1.3.0.patch b/var/spack/repos/builtin/packages/exago/exago-1.3.0.patch
new file mode 100644
index 00000000000000..e245a96422904a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exago/exago-1.3.0.patch
@@ -0,0 +1,37 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7d6ef668..7a1c4702 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -222,11 +222,13 @@ endif(EXAGO_ENABLE_GPU)
+ if(EXAGO_ENABLE_PETSC)
+ include(FindPkgConfig)
+ # Include petsc package path in pkg_config_path
++ set(PKG_CONFIG_PATH_save $ENV{PKG_CONFIG_PATH})
+ set(ENV{PKG_CONFIG_PATH}
+ ${PETSC_DIR}/lib/pkgconfig:${PETSC_DIR}/${PETSC_ARCH}/lib/pkgconfig
+ )
+ pkg_check_modules(PETSC REQUIRED IMPORTED_TARGET PETSc)
+ set(EXAGO_HAVE_PETSC 1)
++ set(ENV{PKG_CONFIG_PATH} ${PKG_CONFIG_PATH_save})
+ endif()
+
+ # Set install rpath to the locations where EXAGO and PETSc libraries reside.
+@@ -394,12 +396,15 @@ else()
+ endif()
+ endif()
+
+-include(ExaGOCheckPython)
+ if(EXAGO_ENABLE_PYTHON)
++ include(ExaGOCheckPython)
+ # Build pybind11 target manually
+ add_subdirectory(tpl/pybind11)
+ add_subdirectory(interfaces/python)
+ endif()
+
+-# Build tests
+-add_subdirectory(tests)
++if(EXAGO_RUN_TESTS)
++ # Build tests
++ add_subdirectory(tests)
++endif()
++
diff --git a/var/spack/repos/builtin/packages/exago/exago-1.5.0.patch b/var/spack/repos/builtin/packages/exago/exago-1.5.0.patch
new file mode 100644
index 00000000000000..3d9d5afc418079
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exago/exago-1.5.0.patch
@@ -0,0 +1,39 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ba8e145f..89dd3327 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -217,11 +217,13 @@ endif(EXAGO_ENABLE_GPU)
+ if(EXAGO_ENABLE_PETSC)
+ include(FindPkgConfig)
+ # Include petsc package path in pkg_config_path
++ set(PKG_CONFIG_PATH_save $ENV{PKG_CONFIG_PATH})
+ set(ENV{PKG_CONFIG_PATH}
+ ${PETSC_DIR}/lib/pkgconfig:${PETSC_DIR}/${PETSC_ARCH}/lib/pkgconfig
+ )
+ pkg_check_modules(PETSC REQUIRED IMPORTED_TARGET PETSc)
+ set(EXAGO_HAVE_PETSC 1)
++ set(ENV{PKG_CONFIG_PATH} ${PKG_CONFIG_PATH_save})
+ endif()
+
+ # Set install rpath to the locations where EXAGO and PETSc libraries reside.
+@@ -392,15 +394,17 @@ else()
+ endif()
+ endif()
+
+-include(ExaGOCheckPython)
+ if(EXAGO_ENABLE_PYTHON)
++ include(ExaGOCheckPython)
+ # Build pybind11 target manually
+ add_subdirectory(tpl/pybind11)
+ add_subdirectory(interfaces/python)
+ endif()
+
+-# Build tests
+-add_subdirectory(tests)
++if(EXAGO_RUN_TESTS)
++ # Build tests
++ add_subdirectory(tests)
++endif()
+
+ if((NOT EXAGO_ENABLE_IPOPT) AND (NOT EXAGO_ENABLE_HIOP))
+ message(
diff --git a/var/spack/repos/builtin/packages/exago/exago-1.6.0.patch b/var/spack/repos/builtin/packages/exago/exago-1.6.0.patch
new file mode 100644
index 00000000000000..f6b03cec8eb6a1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exago/exago-1.6.0.patch
@@ -0,0 +1,18 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 90bddf2e..47ab5998 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -217,11 +217,13 @@ endif(EXAGO_ENABLE_GPU)
+ if(EXAGO_ENABLE_PETSC)
+ include(FindPkgConfig)
+ # Include petsc package path in pkg_config_path
++ set(PKG_CONFIG_PATH_save $ENV{PKG_CONFIG_PATH})
+ set(ENV{PKG_CONFIG_PATH}
+ ${PETSC_DIR}/lib/pkgconfig:${PETSC_DIR}/${PETSC_ARCH}/lib/pkgconfig
+ )
+ pkg_check_modules(PETSC REQUIRED IMPORTED_TARGET PETSc)
+ set(EXAGO_HAVE_PETSC 1)
++ set(ENV{PKG_CONFIG_PATH} ${PKG_CONFIG_PATH_save})
+ endif()
+
+ # Set install rpath to the locations where EXAGO and PETSc libraries reside.
diff --git a/var/spack/repos/builtin/packages/exago/package.py b/var/spack/repos/builtin/packages/exago/package.py
index fe7b67cc11d949..796138b4c5e0fd 100644
--- a/var/spack/repos/builtin/packages/exago/package.py
+++ b/var/spack/repos/builtin/packages/exago/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -35,6 +35,9 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
version(
"1.3.0", tag="v1.3.0", commit="58b039d746a6eac8e84b0afc01354cd58caec485", submodules=True
)
+ version(
+ "1.2.0", tag="v1.2.0", commit="255a214ec747b7bdde7a6d8151c083067b4d0907", submodules=True
+ )
version(
"1.1.2", tag="v1.1.2", commit="db3bb16e19c09e01402071623258dae4d13e5133", submodules=True
)
@@ -124,14 +127,15 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
when="+{0} build_type=RelWithDebInfo".format(pkg[1]),
)
- depends_on(
- "{0} build_type=Release".format("hiop+ginkgo ^ginkgo"),
- when="+{0} build_type=Release".format("hiop ^hiop+ginkgo"),
- )
- depends_on(
- "{0} build_type=Debug".format("hiop+ginkgo ^ginkgo"),
- when="+{0} build_type=RelWithDebInfo".format("hiop ^hiop+ginkgo"),
- )
+ with when("+hiop"):
+ depends_on("hiop")
+ with when("build_type=Release"):
+ depends_on("hiop build_type=Release")
+ depends_on("ginkgo build_type=Release", when="^hiop+ginkgo")
+ with when("build_type=Debug"):
+ depends_on("hiop build_type=RelWithDebInfo")
+ depends_on("ginkgo build_type=Debug", when="^hiop+ginkgo")
+
# depends_on("hpctoolkit", when="with_profiling=hpctoolkit")
# depends_on("tau", when="with_profiling=tau")
# ^ need to depend when both hpctoolkit and tau
@@ -140,7 +144,8 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
depends_on("hiop@0.3.99:", when="@0.99:+hiop")
depends_on("hiop@0.5.1:", when="@1.1.0:+hiop")
depends_on("hiop@0.5.3:", when="@1.3.0:+hiop")
- depends_on("hiop@0.7.0:1.0.0", when="@1.5.0:+hiop")
+ depends_on("hiop@0.7.0:1.0.0", when="@1.5.0:1.6.0+hiop")
+ depends_on("hiop@1.0.1:", when="@develop:+hiop")
depends_on("hiop~mpi", when="+hiop~mpi")
depends_on("hiop+mpi", when="+hiop+mpi")
@@ -160,7 +165,7 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
depends_on("petsc@3.13:3.14", when="@:1.2")
depends_on("petsc@3.16", when="@1.3:1.4")
depends_on("petsc@3.18:3.19", when="@1.5")
- depends_on("petsc@3.20:", when="@1.6:")
+ depends_on("petsc@3.19:", when="@1.6:")
depends_on("petsc~mpi", when="~mpi")
@@ -178,6 +183,12 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
depends_on("umpire {0}".format(rocm_dep), when="+raja {0}".format(rocm_dep))
depends_on("camp {0}".format(rocm_dep), when="+raja {0}".format(rocm_dep))
+ # CMake patches to support ~python and ~testing
+ patch("exago-1.6.0.patch", when="@1.6.0")
+ patch("exago-1.5.0.patch", when="@1.5.0:1.5.1")
+ patch("exago-1.3.0.patch", when="@1.3.0:1.4.1")
+ patch("exago-1.1.0.patch", when="@1.1.0:1.2.0")
+
flag_handler = build_system_flags
def cmake_args(self):
diff --git a/var/spack/repos/builtin/packages/examinimd/package.py b/var/spack/repos/builtin/packages/examinimd/package.py
index cb5bc74ac1f6ae..d23fff888bf28f 100644
--- a/var/spack/repos/builtin/packages/examinimd/package.py
+++ b/var/spack/repos/builtin/packages/examinimd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/examl/package.py b/var/spack/repos/builtin/packages/examl/package.py
index a396e51d38981c..1747eb95ea7439 100644
--- a/var/spack/repos/builtin/packages/examl/package.py
+++ b/var/spack/repos/builtin/packages/examl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Examl(MakefilePackage):
maintainers("robqiao")
+ license("GPL-3.0-only")
+
version("3.0.22", sha256="802e673b0c2ea83fdbe6b060048d83f22b6978933a04be64fb9b4334fe318ca3")
version("3.0.21", sha256="6c7e6c5d7bf4ab5cfbac5cc0d577885272a803c142e06b531693a6a589102e2e")
version("3.0.20", sha256="023681248bbc7f19821b509948d79301e46bbf275aa90bf12e9f4879639a023b")
diff --git a/var/spack/repos/builtin/packages/exampm/package.py b/var/spack/repos/builtin/packages/exampm/package.py
index ae39ccb6649520..5c3a4280229ec0 100644
--- a/var/spack/repos/builtin/packages/exampm/package.py
+++ b/var/spack/repos/builtin/packages/exampm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Exampm(CMakePackage):
tags = ["proxy-app", "ecp-proxy-app"]
+ license("BSD-3-Clause")
+
version("master", branch="master")
variant("shared", default=True, description="Build shared libraries")
diff --git a/var/spack/repos/builtin/packages/exasp2/package.py b/var/spack/repos/builtin/packages/exasp2/package.py
index 8741f3fb8f05d3..e19cb8d201427e 100644
--- a/var/spack/repos/builtin/packages/exasp2/package.py
+++ b/var/spack/repos/builtin/packages/exasp2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/exawind/package.py b/var/spack/repos/builtin/packages/exawind/package.py
index 94ad2b09ea4b64..b7ba5e378d4aff 100644
--- a/var/spack/repos/builtin/packages/exawind/package.py
+++ b/var/spack/repos/builtin/packages/exawind/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Exawind(CMakePackage):
tags = ["ecp", "ecp-apps"]
+ license("Apache-2.0")
+
version("master", branch="main")
depends_on("trilinos+stk")
diff --git a/var/spack/repos/builtin/packages/exaworks/package.py b/var/spack/repos/builtin/packages/exaworks/package.py
index 5a154456580572..fe6372ca22d573 100644
--- a/var/spack/repos/builtin/packages/exaworks/package.py
+++ b/var/spack/repos/builtin/packages/exaworks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/exciting/package.py b/var/spack/repos/builtin/packages/exciting/package.py
index c74da1013c1ebf..72e9c2f82be1b2 100644
--- a/var/spack/repos/builtin/packages/exciting/package.py
+++ b/var/spack/repos/builtin/packages/exciting/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Exciting(MakefilePackage):
url = "https://exciting.wdfiles.com/local--files/nitrogen-14/exciting.nitrogen-14.tar.gz"
git = "https://github.com/exciting/exciting.git"
+ license("LGPL-2.1-or-later")
+
version("oxygen", branch="oxygen_release", preferred=True)
version("14", sha256="a7feaffdc23881d6c0737d2f79f94d9bf073e85ea358a57196d7f7618a0a3eff")
diff --git a/var/spack/repos/builtin/packages/exempi/package.py b/var/spack/repos/builtin/packages/exempi/package.py
index 3a3f6be668b5c0..f720a3a56b4ce9 100644
--- a/var/spack/repos/builtin/packages/exempi/package.py
+++ b/var/spack/repos/builtin/packages/exempi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Exempi(AutotoolsPackage):
homepage = "https://libopenraw.freedesktop.org/wiki/Exempi"
url = "https://libopenraw.freedesktop.org/download/exempi-2.6.1.tar.bz2"
+ license("BSD-3-Clause")
+
version("2.6.1", sha256="072451ac1e0dc97ed69a2e5bfc235fd94fe093d837f65584d0e3581af5db18cd")
version("2.5.2", sha256="52f54314aefd45945d47a6ecf4bd21f362e6467fa5d0538b0d45a06bc6eaaed5")
diff --git a/var/spack/repos/builtin/packages/exiv2/package.py b/var/spack/repos/builtin/packages/exiv2/package.py
index b1509359da51d2..937576b4ae9721 100644
--- a/var/spack/repos/builtin/packages/exiv2/package.py
+++ b/var/spack/repos/builtin/packages/exiv2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Exiv2(CMakePackage):
homepage = "https://www.exiv2.org/"
url = "https://github.com/Exiv2/exiv2/archive/v0.27.2.tar.gz"
+ license("GPL-2.0-or-later")
+
version("0.27.6", sha256="f16ee5ff08b6994c66106109417857f13e711fca100ac43c6a403d4f02b59602")
version("0.27.5", sha256="1da1721f84809e4d37b3f106adb18b70b1b0441c860746ce6812bb3df184ed6c")
version("0.27.4", sha256="9fb2752c92f63c9853e0bef9768f21138eeac046280f40ded5f37d06a34880d9")
diff --git a/var/spack/repos/builtin/packages/exmcutils/package.py b/var/spack/repos/builtin/packages/exmcutils/package.py
index 7886b6b6146c22..8cd81156133fe0 100644
--- a/var/spack/repos/builtin/packages/exmcutils/package.py
+++ b/var/spack/repos/builtin/packages/exmcutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/exodusii/package.py b/var/spack/repos/builtin/packages/exodusii/package.py
index 53b472d908be96..1a755b39653053 100644
--- a/var/spack/repos/builtin/packages/exodusii/package.py
+++ b/var/spack/repos/builtin/packages/exodusii/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -22,6 +22,8 @@ class Exodusii(CMakePackage):
git = "https://github.com/gsjaardema/seacas.git"
url = "https://github.com/gsjaardema/seacas/archive/refs/tags/v2021-04-05.zip"
+ license("X11")
+
version(
"2021-04-05", sha256="f40d318674753287b8b28d2b4e5cca872cd772d4c7383af4a8f3eeb48fcc7ec0"
)
diff --git a/var/spack/repos/builtin/packages/exonerate-gff3/package.py b/var/spack/repos/builtin/packages/exonerate-gff3/package.py
index 73b97276476724..3d7fac832ccce0 100644
--- a/var/spack/repos/builtin/packages/exonerate-gff3/package.py
+++ b/var/spack/repos/builtin/packages/exonerate-gff3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class ExonerateGff3(AutotoolsPackage):
homepage = "https://github.com/hotdogee/exonerate-gff3/"
url = "https://github.com/hotdogee/exonerate-gff3/archive/2.3.0.tar.gz"
+ license("GPL-3.0-only")
+
version("2.3.0", sha256="eeab7ea8bc815fc4a37d4c3b89c625167a9a60a4a833b5cc96e32dc313eafd1f")
depends_on("glib")
diff --git a/var/spack/repos/builtin/packages/exonerate/package.py b/var/spack/repos/builtin/packages/exonerate/package.py
index d9ec84cab1186a..0eac5a46059404 100644
--- a/var/spack/repos/builtin/packages/exonerate/package.py
+++ b/var/spack/repos/builtin/packages/exonerate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Exonerate(AutotoolsPackage):
homepage = "https://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate"
url = "https://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exonerate/exonerate-2.4.0.tar.gz"
+ license("GPL-3.0-only")
+
version("2.4.0", sha256="f849261dc7c97ef1f15f222e955b0d3daf994ec13c9db7766f1ac7e77baa4042")
depends_on("pkgconfig", type="build")
diff --git a/var/spack/repos/builtin/packages/expat/package.py b/var/spack/repos/builtin/packages/expat/package.py
index c6a5fae505156e..2d3a0148f4734f 100644
--- a/var/spack/repos/builtin/packages/expat/package.py
+++ b/var/spack/repos/builtin/packages/expat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Expat(AutotoolsPackage, CMakePackage):
homepage = "https://libexpat.github.io/"
url = "https://github.com/libexpat/libexpat/releases/download/R_2_2_9/expat-2.2.9.tar.bz2"
+ license("MIT")
+
version("2.5.0", sha256="6f0e6e01f7b30025fa05c85fdad1e5d0ec7fd35d9f61b22f34998de11969ff67")
# deprecate all releases before 2.5.0 because of security issues
version(
@@ -105,7 +107,7 @@ class Expat(AutotoolsPackage, CMakePackage):
# `~libbsd`.
variant(
"libbsd",
- default=sys.platform != "darwin" and sys.platform != "win32",
+ default=sys.platform == "linux",
description="Use libbsd (for high quality randomness)",
)
diff --git a/var/spack/repos/builtin/packages/expect/package.py b/var/spack/repos/builtin/packages/expect/package.py
index 2fa455d82f5b00..372817b8d660df 100644
--- a/var/spack/repos/builtin/packages/expect/package.py
+++ b/var/spack/repos/builtin/packages/expect/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Expect(AutotoolsPackage):
"https://sourceforge.net/projects/expect/files/Expect/5.45.4/expect5.45.4.tar.gz/download"
)
+ license("NIST-PD")
+
version("5.45.4", sha256="49a7da83b0bdd9f46d04a04deec19c7767bb9a323e40c4781f89caf760b92c34")
version("5.45.3", sha256="c520717b7195944a69ce1492ec82ca0ac3f3baf060804e6c5ee6d505ea512be9")
version("5.45", sha256="b28dca90428a3b30e650525cdc16255d76bb6ccd65d448be53e620d95d5cc040")
diff --git a/var/spack/repos/builtin/packages/express/package.py b/var/spack/repos/builtin/packages/express/package.py
index 4dcd6d72d505d7..31c1dbee975249 100644
--- a/var/spack/repos/builtin/packages/express/package.py
+++ b/var/spack/repos/builtin/packages/express/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Express(CMakePackage):
homepage = "http://bio.math.berkeley.edu/eXpress/"
url = "https://github.com/adarob/eXpress/archive/1.5.2.zip"
+ license("Artistic-2.0")
+
# 1.5.1 used to be known as 2015-11-29 (same commit), but they've
# added tags, so lets use 'em
version("1.5.3", sha256="dfea819bbe7187a06462d6549a13f9cad7f3f128cb5c62bd90946f972c45a1f2")
diff --git a/var/spack/repos/builtin/packages/extrae/package.py b/var/spack/repos/builtin/packages/extrae/package.py
index 25b763700f4f8a..a800bc309f9b11 100644
--- a/var/spack/repos/builtin/packages/extrae/package.py
+++ b/var/spack/repos/builtin/packages/extrae/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -40,6 +40,8 @@ class Extrae(AutotoolsPackage):
homepage = "https://tools.bsc.es/extrae"
url = "https://ftp.tools.bsc.es/extrae/extrae-3.4.1-src.tar.bz2"
+ license("LGPL-2.1-or-later")
+
version("4.0.6", sha256="b5060336cac57f1345faa09009b1940edf1e6991aae05cc10d0b714d31360a92")
version("4.0.5", sha256="8f5eefa95f2e94a3b5f9b7f7cbaaed523862f190575ee797113b1e97deff1586")
version("4.0.4", sha256="003bede870de6d88b705c1a13eabe63b6beb928d8f389f5dd70ca5db8450a1f9")
diff --git a/var/spack/repos/builtin/packages/exuberant-ctags/package.py b/var/spack/repos/builtin/packages/exuberant-ctags/package.py
index 2da76678c8a02b..41452896fad6ef 100644
--- a/var/spack/repos/builtin/packages/exuberant-ctags/package.py
+++ b/var/spack/repos/builtin/packages/exuberant-ctags/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class ExuberantCtags(AutotoolsPackage):
homepage = "http://ctags.sourceforge.net"
url = "http://downloads.sourceforge.net/project/ctags/ctags/5.8/ctags-5.8.tar.gz"
+ license("GPL-2.0-or-later")
+
version("5.8", sha256="0e44b45dcabe969e0bbbb11e30c246f81abe5d32012db37395eb57d66e9e99c7")
patch("ctags-5.8-gcc-unused-attribute.patch", when="@5.8")
diff --git a/var/spack/repos/builtin/packages/eza/package.py b/var/spack/repos/builtin/packages/eza/package.py
new file mode 100644
index 00000000000000..98e1582ff6ac15
--- /dev/null
+++ b/var/spack/repos/builtin/packages/eza/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Eza(CargoPackage):
+ """A modern, maintained replacement for ls."""
+
+ homepage = "https://github.com/eza-community/eza"
+ url = "https://github.com/eza-community/eza/archive/refs/tags/v0.15.3.tar.gz"
+
+ maintainers("trws")
+
+ license("MIT")
+
+ version("0.15.3", sha256="09093e565913104acb7a8eba974f8067c95566b6fbedf31138c9923a8cfde42f")
diff --git a/var/spack/repos/builtin/packages/eztrace/package.py b/var/spack/repos/builtin/packages/eztrace/package.py
index 5fa16fe9c44da0..2a119e960e5d66 100644
--- a/var/spack/repos/builtin/packages/eztrace/package.py
+++ b/var/spack/repos/builtin/packages/eztrace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Eztrace(Package):
maintainers("trahay")
git = "https://gitlab.com/eztrace/eztrace.git"
+ license("CECILL-B")
+
version("master", branch="master")
version("2.1", sha256="ab5076086eced78e4c6cf7736e7765ca1337dec95a881c9270a42b3251aeea19")
version("2.0", sha256="67bd296f059cdfab303c62f674af3e1e858213d6945bd79cb8ede4a035c0c2d6")
diff --git a/var/spack/repos/builtin/packages/f2c/package.py b/var/spack/repos/builtin/packages/f2c/package.py
index 92f90c5005d44e..be2d921a1acd93 100644
--- a/var/spack/repos/builtin/packages/f2c/package.py
+++ b/var/spack/repos/builtin/packages/f2c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/f3d/package.py b/var/spack/repos/builtin/packages/f3d/package.py
index 3808f5eaa0f378..760cfbbb6f0ddb 100644
--- a/var/spack/repos/builtin/packages/f3d/package.py
+++ b/var/spack/repos/builtin/packages/f3d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class F3d(CMakePackage):
homepage = "https://f3d-app.github.io"
url = "https://github.com/f3d-app/f3d/archive/refs/tags/v1.1.1.tar.gz"
+ license("BSD-3-Clause")
+
version("2.0.0", sha256="5b335de78a9f68903d7023d947090d4b36fa15b9e165749906a82153e0f56d05")
version("1.1.1", sha256="68bdbe3a90f2cd553d5e090a95d3c847e2a2f06abbe225ffecd47d3d29978b0a")
diff --git a/var/spack/repos/builtin/packages/f77-zmq/package.py b/var/spack/repos/builtin/packages/f77-zmq/package.py
index c88239c375b98a..645126b67d8ce8 100644
--- a/var/spack/repos/builtin/packages/f77-zmq/package.py
+++ b/var/spack/repos/builtin/packages/f77-zmq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class F77Zmq(MakefilePackage):
maintainers("scemama")
+ license("LGPL-2.1-or-later")
+
version("4.3.2", sha256="f1fb7544d38d9bb7235f98c96f241875ddcb0d37ed950618c23d4e4d666a73ca")
version("4.3.1", sha256="a15d72d93022d3e095528d2808c7767cece974a2dc0e2dd95e4c122f60fcf0a8")
diff --git a/var/spack/repos/builtin/packages/f90cache/package.py b/var/spack/repos/builtin/packages/f90cache/package.py
index 5b1cdc4d875713..29e3fc0f67f6e7 100644
--- a/var/spack/repos/builtin/packages/f90cache/package.py
+++ b/var/spack/repos/builtin/packages/f90cache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fabtests/package.py b/var/spack/repos/builtin/packages/fabtests/package.py
index a715965488ed0e..4c8aef39d8a503 100644
--- a/var/spack/repos/builtin/packages/fabtests/package.py
+++ b/var/spack/repos/builtin/packages/fabtests/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,7 +12,20 @@ class Fabtests(AutotoolsPackage):
homepage = "https://libfabric.org"
url = "https://github.com/ofiwg/libfabric/releases/download/v1.9.1/fabtests-1.9.1.tar.bz2"
+ maintainers("kgerheiser")
+ license("GPL-2.0-only")
+
+ version("1.20.0", sha256="61d483452163b39d81dcb9f578e5d9007817e0496235bc2aac1e82b7737fd65e")
+ version("1.19.0", sha256="82d714020df9258cfdd659c51f2be8f4507cbe157c7f03c992c70fc528d8d837")
+ version("1.18.2", sha256="3d85486ff80151defdb66414a851a9a9a2d4adc6cf696e2b8e4bb3ce340512c2")
+ version("1.18.1", sha256="fe9864acc0e17a5b0157b1cc996bb3c578cfa32c87bd43bc17b5e31e24ef63b5")
+ version("1.18.0", sha256="9201ba020c3cf2f07dbf16d9837b565031f2eab664efd02f2e4345443983ae3e")
+ version("1.17.1", sha256="efc89c6c2412168b7b8fdd495c2f46d9074205363959e80e4c8d452ba97d4c0d")
+ version("1.17.0", sha256="5d3cf28de32549822cbb155329fe7ce0f88423157e1210a76b23c498c848ce2a")
+ version("1.16.1", sha256="0e5def832ac9438ba7c50b8198f0089b568935fcc13d1ccb50a5f8a1dcf4ec30")
+ version("1.16.0", sha256="c428ec353f64b073fb17ac0061aab76b9cc8c41614adb772d00575f3e486884d")
+ version("1.15.2", sha256="9afdc992bedf3f47c068824ba3408156c890b5cb2587964ec2ad9f658102db63")
version("1.9.1", sha256="6f8ced2c6b3514759a0e177c8b2a19125e4ef0714d4cc0fe0386b33bd6cd5585")
version("1.9.0", sha256="60cc21db7092334904cbdafd142b2403572976018a22218e7c453195caef366e")
version("1.8.1", sha256="e9005d8fe73ca3849c872649c29811846bd72a62f897ecab73a08c7a9514f37b")
@@ -24,7 +37,29 @@ class Fabtests(AutotoolsPackage):
version("1.5.0", sha256="1dddd446c3f1df346899f9a8636f1b4265de5b863103ae24876e9f0c1e40a69d")
version("1.4.2", sha256="3b78d0ca1b223ff21b7f5b3627e67e358e3c18b700f86b017e2233fee7e88c2e")
- for v in ["1.4.2", "1.5.0", "1.5.3", "1.6.0", "1.6.1", "1.6.2", "1.8.1", "1.9.0", "1.9.1"]:
+ versions = [
+ "1.20.0",
+ "1.19.0",
+ "1.18.2",
+ "1.18.1",
+ "1.18.0",
+ "1.17.1",
+ "1.17.0",
+ "1.16.1",
+ "1.16.0",
+ "1.15.2",
+ "1.9.1",
+ "1.9.0",
+ "1.8.1",
+ "1.6.2",
+ "1.6.1",
+ "1.6.0",
+ "1.5.3",
+ "1.5.0",
+ "1.4.2",
+ ]
+
+ for v in versions:
depends_on("libfabric@{0}".format(v), when="@{0}".format(v))
def url_for_version(self, version):
diff --git a/var/spack/repos/builtin/packages/faircmakemodules/package.py b/var/spack/repos/builtin/packages/faircmakemodules/package.py
index 13027f5a771e98..71732cc0566f07 100644
--- a/var/spack/repos/builtin/packages/faircmakemodules/package.py
+++ b/var/spack/repos/builtin/packages/faircmakemodules/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Faircmakemodules(CMakePackage):
git = "https://github.com/FairRootGroup/FairCMakeModules.git"
maintainers("dennisklein", "ChristianTackeGSI")
+ license("LGPL-3.0-or-later")
+
version("main", branch="main", get_full_repo=True)
version("1.0.0", sha256="ec60c31f38050c1173d512c58c684650db66736877c580936f7ecca33eeaf696")
diff --git a/var/spack/repos/builtin/packages/fairlogger/package.py b/var/spack/repos/builtin/packages/fairlogger/package.py
index 9add0005554683..83570639b9726b 100644
--- a/var/spack/repos/builtin/packages/fairlogger/package.py
+++ b/var/spack/repos/builtin/packages/fairlogger/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
# Copyright 2020 GSI Helmholtz Centre for Heavy Ion Research GmbH,
# Darmstadt, Germany
diff --git a/var/spack/repos/builtin/packages/fairmq/package.py b/var/spack/repos/builtin/packages/fairmq/package.py
index 2af3ce52c1a8b6..bb21f841ca2896 100644
--- a/var/spack/repos/builtin/packages/fairmq/package.py
+++ b/var/spack/repos/builtin/packages/fairmq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,32 +13,18 @@ class Fairmq(CMakePackage):
git = "https://github.com/FairRootGroup/FairMQ.git"
maintainers("dennisklein", "ChristianTackeGSI")
+ license("LGPL-3.0-or-later")
+
version("dev", branch="dev", submodules=True, get_full_repo=True)
- version(
- "1.7.0",
- tag="v1.7.0",
- commit="d1c99f7e150c1177dc1cab1b2adc16475cade24e",
- submodules=True,
- no_cache=True,
- )
- version(
- "1.6.0",
- tag="v1.6.0",
- commit="42d27af20fb5cbbbc0b0fdfef1c981d51a8baf87",
- submodules=True,
- no_cache=True,
- )
- version(
- "1.5.0",
- tag="v1.5.0",
- commit="c8fde17b6a10a467035590fd800bb693f50c4826",
- submodules=True,
- no_cache=True,
- )
- # no_cache=True is currently needed, because FairMQ's build system
- # depends on the git metadata, see also
- # https://github.com/spack/spack/issues/19972
- # https://github.com/spack/spack/issues/14344
+ with default_args(submodules=True, no_cache=True):
+ # no_cache=True is currently needed, because FairMQ's build system
+ # depends on the git metadata, see also
+ # https://github.com/spack/spack/issues/19972
+ # https://github.com/spack/spack/issues/14344
+ version("1.8.1", tag="v1.8.1", commit="961eca52761a31a0200c567b44e2b2d6d6e50df3")
+ version("1.7.0", tag="v1.7.0", commit="d1c99f7e150c1177dc1cab1b2adc16475cade24e")
+ version("1.6.0", tag="v1.6.0", commit="42d27af20fb5cbbbc0b0fdfef1c981d51a8baf87")
+ version("1.5.0", tag="v1.5.0", commit="c8fde17b6a10a467035590fd800bb693f50c4826")
variant(
"autobind", default=True, when="@1.7:", description="Override the channel autoBind default"
@@ -61,9 +47,10 @@ class Fairmq(CMakePackage):
generator("make", "ninja", default="ninja")
- depends_on("cmake@3.15:", type="build")
- depends_on("faircmakemodules", type="build")
- depends_on("git", type="build")
+ with default_args(type="build"):
+ depends_on("cmake@3.15:")
+ depends_on("faircmakemodules")
+ depends_on("git")
depends_on("boost@1.66: +container+program_options+filesystem+date_time+regex")
depends_on("fairlogger@1.6: +pretty")
@@ -72,6 +59,7 @@ class Fairmq(CMakePackage):
def cmake_args(self):
args = [
self.define("DISABLE_COLOR", True),
+ self.define("BUILD_TESTING", self.run_tests),
self.define_from_variant("BUILD_EXAMPLES", "examples"),
self.define_from_variant("FAIRMQ_CHANNEL_DEFAULT_AUTOBIND", "autobind"),
]
diff --git a/var/spack/repos/builtin/packages/faiss/package.py b/var/spack/repos/builtin/packages/faiss/package.py
index 5f502b8a161f22..8f4b6acb69af20 100644
--- a/var/spack/repos/builtin/packages/faiss/package.py
+++ b/var/spack/repos/builtin/packages/faiss/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -28,6 +28,8 @@ class Faiss(AutotoolsPackage, CMakePackage, CudaPackage):
conditional("cmake", when="@1.7:"), conditional("autotools", when="@:1.6"), default="cmake"
)
+ license("MIT")
+
version("1.7.4", sha256="d9a7b31bf7fd6eb32c10b7ea7ff918160eed5be04fe63bb7b4b4b5f2bbde01ad")
version("1.7.2", sha256="d49b4afd6a7a5b64f260a236ee9b2efb760edb08c33d5ea5610c2f078a5995ec")
version("1.6.3", sha256="e1a41c159f0b896975fbb133e0240a233af5c9286c09a28fde6aefff5336e542")
@@ -94,9 +96,6 @@ def cmake_args(self):
self.define_from_variant("BUILD_TESTING", "tests"),
self.define("FAISS_OPT_LEVEL", "generic"),
]
- if "+python" in spec:
- pyexe = spec["python"].command.path
- args.append(self.define("Python_EXECUTABLE", pyexe))
if "+cuda" in spec:
key = "CMAKE_CUDA_ARCHITECTURES"
diff --git a/var/spack/repos/builtin/packages/fakechroot/package.py b/var/spack/repos/builtin/packages/fakechroot/package.py
index fe2e003d9ccf15..c74d7597b1aec7 100644
--- a/var/spack/repos/builtin/packages/fakechroot/package.py
+++ b/var/spack/repos/builtin/packages/fakechroot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Fakechroot(AutotoolsPackage):
homepage = "https://github.com/dex4er/fakechroot"
url = "https://github.com/dex4er/fakechroot/releases/download/2.20.1/fakechroot-2.20.1.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("2.20.1", sha256="5abd04323c9ddae06b5dcaa56b2da07728de3fe21007b08bd88a17b2409b32aa")
version("2.20", sha256="5da99358d2a49ddd3dd54ba2ff401d93a8fa641e3754cd058bdf53adb4b7e100")
version("2.19", sha256="39ffbbbe3a823be7450928b8e3b99ae4cb339c47213b2f1d8ff903e0246f2e15")
diff --git a/var/spack/repos/builtin/packages/fakexrandr/package.py b/var/spack/repos/builtin/packages/fakexrandr/package.py
index cf19967b46ac50..e314fd3ebd5e12 100644
--- a/var/spack/repos/builtin/packages/fakexrandr/package.py
+++ b/var/spack/repos/builtin/packages/fakexrandr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/falco/package.py b/var/spack/repos/builtin/packages/falco/package.py
index 5acecbf5c0f3de..3b6c4268c8dcfc 100644
--- a/var/spack/repos/builtin/packages/falco/package.py
+++ b/var/spack/repos/builtin/packages/falco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Falco(AutotoolsPackage):
homepage = "https://github.com/smithlabcode/falco"
url = "https://github.com/smithlabcode/falco/releases/download/v1.2.1/falco-1.2.1.tar.gz"
+ license("GPL-3.0-only")
+
version("1.2.1", sha256="33de8aafac45c7aea055ed7ab837d0a39d12dcf782816cea8a6c648acb911057")
variant("htslib", default=False, description="Add support for BAM files")
diff --git a/var/spack/repos/builtin/packages/falcon/package.py b/var/spack/repos/builtin/packages/falcon/package.py
index 23c2bd87a6e10d..898e13354ab0c7 100644
--- a/var/spack/repos/builtin/packages/falcon/package.py
+++ b/var/spack/repos/builtin/packages/falcon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fann/package.py b/var/spack/repos/builtin/packages/fann/package.py
index 832c5bdf1915e6..ca48172e31661e 100644
--- a/var/spack/repos/builtin/packages/fann/package.py
+++ b/var/spack/repos/builtin/packages/fann/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,4 +23,6 @@ class Fann(CMakePackage):
homepage = "https://leenissen.dk/fann/wp/"
url = "https://github.com/libfann/fann/archive/2.2.0.tar.gz"
+ license("LGPL-2.0-or-later")
+
version("2.2.0", sha256="f31c92c1589996f97d855939b37293478ac03d24b4e1c08ff21e0bd093449c3c")
diff --git a/var/spack/repos/builtin/packages/faodel/package.py b/var/spack/repos/builtin/packages/faodel/package.py
index 263ff3521df487..b4b600d299e6aa 100644
--- a/var/spack/repos/builtin/packages/faodel/package.py
+++ b/var/spack/repos/builtin/packages/faodel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Faodel(CMakePackage):
tags = ["e4s"]
+ license("MIT")
+
version("master", branch="master")
version("1.2108.1", sha256="66c53daa510b28f906faac7c67d944a034900da2e296159a2879c3c0b0080ffd")
version("1.1906.2", sha256="fd61c0a9c4303cd6b8c33bf04414acfc80ceaf08272be99bf3ebc854b37656a0")
diff --git a/var/spack/repos/builtin/packages/fargparse/package.py b/var/spack/repos/builtin/packages/fargparse/package.py
index fcbde4717dbfff..53944f5cf084e5 100644
--- a/var/spack/repos/builtin/packages/fargparse/package.py
+++ b/var/spack/repos/builtin/packages/fargparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,7 @@ class Fargparse(CMakePackage):
version("develop", branch="develop")
version("main", branch="main")
+ version("1.6.0", sha256="055a0af44f50c302f8f20a8bcf3d26c5bbeacf5222cdbaa5b19da4cff56eb9c0")
version("1.5.0", sha256="1c16ead5f1bacb9c2f33aab99a0889c68c1a1ece754ddc3fd340f10a0d5da2f7")
version("1.4.2", sha256="2cd3f14845235407c6a4171ab4602499dade045e3f9b7dc75190f4a315ac8b44")
version("1.4.1", sha256="8f9b92a80f05b0a8ab2dd5cd309ad165041c7fcdd589b96bf75c7dd889b9b584")
diff --git a/var/spack/repos/builtin/packages/fasd/package.py b/var/spack/repos/builtin/packages/fasd/package.py
index 0be946bb72044b..3f42e768a812e2 100644
--- a/var/spack/repos/builtin/packages/fasd/package.py
+++ b/var/spack/repos/builtin/packages/fasd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Fasd(MakefilePackage):
url = "https://github.com/clvv/fasd/archive/refs/tags/1.0.1.tar.gz"
git = "https://github.com/clvv/fasd.git"
+ license("MIT")
+
version("1.0.1", sha256="88efdfbbed8df408699a14fa6c567450bf86480f5ff3dde42d0b3e1dee731f65")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/fast-global-file-status/package.py b/var/spack/repos/builtin/packages/fast-global-file-status/package.py
index a09ed3723adbcb..916bcab19334c5 100644
--- a/var/spack/repos/builtin/packages/fast-global-file-status/package.py
+++ b/var/spack/repos/builtin/packages/fast-global-file-status/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fasta/package.py b/var/spack/repos/builtin/packages/fasta/package.py
index 763e6ec9dbce0c..412fb7b28d2c25 100644
--- a/var/spack/repos/builtin/packages/fasta/package.py
+++ b/var/spack/repos/builtin/packages/fasta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Fasta(MakefilePackage):
homepage = "https://fasta.bioch.virginia.edu/fasta_www2/fasta_list2.shtml"
url = "https://github.com/wrpearson/fasta36/archive/fasta-v36.3.8g.tar.gz"
+ license("Apache-2.0")
+
version("36.3.8g", sha256="fa5318b6f8d6a3cfdef0d29de530eb005bfd3ca05835faa6ad63663f8dce7b2e")
version(
"36.3.8h_2020-05-04",
diff --git a/var/spack/repos/builtin/packages/fastani/package.py b/var/spack/repos/builtin/packages/fastani/package.py
index d5c9444005f789..fe8a3ee2d5bc11 100644
--- a/var/spack/repos/builtin/packages/fastani/package.py
+++ b/var/spack/repos/builtin/packages/fastani/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Fastani(CMakePackage, AutotoolsPackage):
url = "https://github.com/ParBLiSS/FastANI/archive/v1.33.tar.gz"
maintainers("snehring")
+ license("Apache-2.0")
+
version("1.34", sha256="dc185cf29b9fa40cdcc2c83bb48150db46835e49b9b64a3dbff8bc4d0f631cb1")
version("1.33", sha256="0b18b3074094722fb1b2247c1a1c4eb96295fff369b837f422e05072740e0013")
diff --git a/var/spack/repos/builtin/packages/fastdb/package.py b/var/spack/repos/builtin/packages/fastdb/package.py
index 66565ece9c39de..a99b515fde7fa0 100644
--- a/var/spack/repos/builtin/packages/fastdb/package.py
+++ b/var/spack/repos/builtin/packages/fastdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fastdfs/package.py b/var/spack/repos/builtin/packages/fastdfs/package.py
index d01698d89deb91..0192f7cc19295f 100644
--- a/var/spack/repos/builtin/packages/fastdfs/package.py
+++ b/var/spack/repos/builtin/packages/fastdfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Fastdfs(Package):
homepage = "https://github.com/happyfish100/fastdfs"
url = "https://github.com/happyfish100/fastdfs/archive/V6.05.tar.gz"
+ license("GPL-3.0-or-later")
+
version("6.05", sha256="00b736a1a7bd9cb5733aa51969efaa3b46df3764988c1edb43f06d72c4d575d9")
version("6.04", sha256="76090f6bbd0add08b049ce17f30a7507a44ef0d883784cad774b380ba4906916")
version("6.03", sha256="142be123eb389335b3b3793f0765494bdad3a632e4352af57861ed29098ec8d1")
diff --git a/var/spack/repos/builtin/packages/fastjar/package.py b/var/spack/repos/builtin/packages/fastjar/package.py
index e27320d50eacbc..1a124ff62d3984 100644
--- a/var/spack/repos/builtin/packages/fastjar/package.py
+++ b/var/spack/repos/builtin/packages/fastjar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Fastjar(AutotoolsPackage):
homepage = "https://savannah.nongnu.org/projects/fastjar/"
url = "http://download.savannah.gnu.org/releases/fastjar/fastjar-0.98.tar.gz"
+ license("GPL-2.0")
+
version("0.98", sha256="f156abc5de8658f22ee8f08d7a72c88f9409ebd8c7933e9466b0842afeb2f145")
depends_on("zlib-api")
diff --git a/var/spack/repos/builtin/packages/fastjet/package.py b/var/spack/repos/builtin/packages/fastjet/package.py
index 781b56bbeee710..82975e7d775220 100644
--- a/var/spack/repos/builtin/packages/fastjet/package.py
+++ b/var/spack/repos/builtin/packages/fastjet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,8 @@ class Fastjet(AutotoolsPackage):
maintainers("drbenmorgan", "vvolkl")
+ license("GPL-2.0-only")
+
version("3.4.1", sha256="05608c6ff213f06dd9de723813d6b4dccd51e661ac13098f74bfc9eeaf1cb5aa")
version("3.4.0", sha256="ee07c8747c8ead86d88de4a9e4e8d1e9e7d7614973f5631ba8297f7a02478b91")
version("3.3.4", sha256="432b51401e1335697c9248519ce3737809808fc1f6d1644bfae948716dddfc03")
@@ -59,6 +61,14 @@ class Fastjet(AutotoolsPackage):
variant("shared", default=True, description="Builds a shared version of the library")
variant("auto-ptr", default=False, description="Use auto_ptr")
+ variant(
+ "thread-safety",
+ default="limited",
+ values=("none", "limited", "full"),
+ multi=False,
+ when="@3.4.0:",
+ description="Enables thread safety",
+ )
variant("atlas", default=False, description="Patch to make random generator thread_local")
patch("atlas.patch", when="@:3.3 +atlas", level=0)
@@ -73,5 +83,9 @@ def configure_args(self):
extra_args = ["--enable-allplugins"]
extra_args += self.enable_or_disable("shared")
extra_args += self.enable_or_disable("auto-ptr")
+ if self.spec.variants["thread-safety"].value == "limited":
+ extra_args += ["--enable-limited-thread-safety"]
+ if self.spec.variants["thread-safety"].value == "full":
+ extra_args += ["--enable-thread-safety"]
return extra_args
diff --git a/var/spack/repos/builtin/packages/fastjson/package.py b/var/spack/repos/builtin/packages/fastjson/package.py
index 032340b9ce1379..351a78358e664f 100644
--- a/var/spack/repos/builtin/packages/fastjson/package.py
+++ b/var/spack/repos/builtin/packages/fastjson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Fastjson(MavenPackage):
homepage = "https://github.com/alibaba/fastjson/wiki"
url = "https://github.com/alibaba/fastjson/archive/1.2.68.tar.gz"
+ license("Apache-2.0")
+
version("1.2.68", sha256="0b3f5308830e5e5abacf9dc8e4115c20153c1cdabec228c3eca48a48c9d5f4d7")
depends_on("java@8", type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/fastmath/package.py b/var/spack/repos/builtin/packages/fastmath/package.py
index 601f779839c212..456f9759e2993a 100644
--- a/var/spack/repos/builtin/packages/fastmath/package.py
+++ b/var/spack/repos/builtin/packages/fastmath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fastme/package.py b/var/spack/repos/builtin/packages/fastme/package.py
index a97ff3a35f710b..96f125f937dc46 100644
--- a/var/spack/repos/builtin/packages/fastme/package.py
+++ b/var/spack/repos/builtin/packages/fastme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fastp/package.py b/var/spack/repos/builtin/packages/fastp/package.py
index 5bba09f2203c76..422b0294bd1f04 100644
--- a/var/spack/repos/builtin/packages/fastp/package.py
+++ b/var/spack/repos/builtin/packages/fastp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Fastp(MakefilePackage):
homepage = "https://github.com/OpenGene/fastp"
url = "https://github.com/OpenGene/fastp/archive/v0.20.0.tar.gz"
+ license("MIT")
+
version("0.23.4", sha256="4fad6db156e769d46071add8a778a13a5cb5186bc1e1a5f9b1ffd499d84d72b5")
version("0.23.3", sha256="a37ee4b5dcf836a5a19baec645657b71d9dcd69ee843998f41f921e9b67350e3")
version("0.20.0", sha256="8d751d2746db11ff233032fc49e3bcc8b53758dd4596fdcf4b4099a4d702ac22")
diff --git a/var/spack/repos/builtin/packages/fastphase/package.py b/var/spack/repos/builtin/packages/fastphase/package.py
index 9737f83527bfec..13ed937915c4a9 100644
--- a/var/spack/repos/builtin/packages/fastphase/package.py
+++ b/var/spack/repos/builtin/packages/fastphase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fastq-screen/package.py b/var/spack/repos/builtin/packages/fastq-screen/package.py
index 4d9acde2c94388..a2dc6134b60a7f 100644
--- a/var/spack/repos/builtin/packages/fastq-screen/package.py
+++ b/var/spack/repos/builtin/packages/fastq-screen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class FastqScreen(Package):
homepage = "https://www.bioinformatics.babraham.ac.uk/projects/fastq_screen/"
url = "https://github.com/StevenWingett/FastQ-Screen/archive/refs/tags/v0.15.3.tar.gz"
+ license("GPL-3.0-or-later")
+
version("0.15.3", sha256="002750d78ca50fe0f789e24445e10988e16244f81b4f0189bf2fc4ee8b680be5")
version(
"0.11.2",
diff --git a/var/spack/repos/builtin/packages/fastqc/package.py b/var/spack/repos/builtin/packages/fastqc/package.py
index b2a1cf7b64d8b7..b982409ca4eb65 100644
--- a/var/spack/repos/builtin/packages/fastqc/package.py
+++ b/var/spack/repos/builtin/packages/fastqc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Fastqc(Package):
homepage = "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/"
url = "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip"
+ license("GPL-3.0-or-later")
+
version("0.12.1", sha256="5f4dba8780231a25a6b8e11ab2c238601920c9704caa5458d9de559575d58aa7")
version("0.11.9", sha256="15510a176ef798e40325b717cac556509fb218268cfdb9a35ea6776498321369")
version("0.11.7", sha256="59cf50876bbe5f363442eb989e43ae3eaab8d932c49e8cff2c1a1898dd721112")
diff --git a/var/spack/repos/builtin/packages/fastqvalidator/package.py b/var/spack/repos/builtin/packages/fastqvalidator/package.py
index 46792698087e00..588597d359b770 100644
--- a/var/spack/repos/builtin/packages/fastqvalidator/package.py
+++ b/var/spack/repos/builtin/packages/fastqvalidator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fasttext/package.py b/var/spack/repos/builtin/packages/fasttext/package.py
index 8fe07147d2e709..3efd1c347d7d0c 100644
--- a/var/spack/repos/builtin/packages/fasttext/package.py
+++ b/var/spack/repos/builtin/packages/fasttext/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Fasttext(CMakePackage):
homepage = "https://github.com/facebookresearch/fastText"
url = "https://github.com/facebookresearch/fastText/archive/v0.9.2.tar.gz"
+ license("MIT")
+
version("0.9.2", sha256="7ea4edcdb64bfc6faaaec193ef181bdc108ee62bb6a04e48b2e80b639a99e27e")
version("0.9.1", sha256="254ace2fc8dc3bea0fc6ad4897a221eb85c1e9adfa61d130b43398193ca1f061")
version("0.2.0", sha256="71d24ffec9fcc4364554ecac2b3308d834178c903d16d090aa6be9ea6b8e480c")
diff --git a/var/spack/repos/builtin/packages/fasttransforms/package.py b/var/spack/repos/builtin/packages/fasttransforms/package.py
index 358ab36c47ba7e..5c35700bdbd159 100644
--- a/var/spack/repos/builtin/packages/fasttransforms/package.py
+++ b/var/spack/repos/builtin/packages/fasttransforms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Fasttransforms(MakefilePackage):
homepage = "https://github.com/MikaelSlevinsky/FastTransforms"
url = "https://github.com/MikaelSlevinsky/FastTransforms/archive/v0.3.4.tar.gz"
+ license("MIT")
+
version("0.6.2", sha256="fd00befcb0c20ba962a8744a7b9139355071ee95be70420de005b7c0f6e023aa")
version("0.5.0", sha256="9556d0037bd5348a33f15ad6100e32053b6e22cab16a97c504f30d6c52fd0efd")
version("0.3.4", sha256="a5c8b5aedbdb40218521d061a7df65ef32ce153d4e19d232957db7e3e63c7e9b")
diff --git a/var/spack/repos/builtin/packages/fasttree/package.py b/var/spack/repos/builtin/packages/fasttree/package.py
index b8feb7b32c3741..8a766c29770fbd 100644
--- a/var/spack/repos/builtin/packages/fasttree/package.py
+++ b/var/spack/repos/builtin/packages/fasttree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fastx-toolkit/package.py b/var/spack/repos/builtin/packages/fastx-toolkit/package.py
index b47fcb78e385ab..651cc94255ddbf 100644
--- a/var/spack/repos/builtin/packages/fastx-toolkit/package.py
+++ b/var/spack/repos/builtin/packages/fastx-toolkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class FastxToolkit(AutotoolsPackage):
homepage = "http://hannonlab.cshl.edu/fastx_toolkit/"
url = "https://github.com/agordon/fastx_toolkit/releases/download/0.0.14/fastx_toolkit-0.0.14.tar.bz2"
+ license("AGPL-3.0-only")
+
version("0.0.14", sha256="9e1f00c4c9f286be59ac0e07ddb7504f3b6433c93c5c7941d6e3208306ff5806")
depends_on("libgtextutils")
diff --git a/var/spack/repos/builtin/packages/faust/package.py b/var/spack/repos/builtin/packages/faust/package.py
index e72bf212433ad6..fccda50b4e64aa 100644
--- a/var/spack/repos/builtin/packages/faust/package.py
+++ b/var/spack/repos/builtin/packages/faust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Faust(MakefilePackage):
homepage = "https://faust.grame.fr/"
url = "https://github.com/grame-cncm/faust/archive/2.27.2.tar.gz"
+ license("GPL-2.0-or-later")
+
version("2.54.9", sha256="14648f020d77874e6f7411d7ff605820015645bbd4b891b24bee3d3a898e48d2")
version("2.27.2", sha256="3367a868a93b63582bae29ab8783f1df7a10f4084a2bc1d2258ebf3d6a8c31d7")
version("2.27.1", sha256="b3e93ca573025b231931e5eb92efc1a1e7f7720902aa3b285061519600a8c417")
diff --git a/var/spack/repos/builtin/packages/fbgemm/package.py b/var/spack/repos/builtin/packages/fbgemm/package.py
index 3b853465c56345..39893255ed4e6b 100644
--- a/var/spack/repos/builtin/packages/fbgemm/package.py
+++ b/var/spack/repos/builtin/packages/fbgemm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Fbgemm(CMakePackage):
maintainers("dskhudia")
+ license("BSD-3-Clause")
+
version("master", branch="master", submodules=True)
version(
"2021-05-10", commit="7794b2950b35ddfa7426091e7fb2f991b1407557", submodules=True
diff --git a/var/spack/repos/builtin/packages/fca/package.py b/var/spack/repos/builtin/packages/fca/package.py
index d17b11520c42fd..784fe72e74a96f 100644
--- a/var/spack/repos/builtin/packages/fca/package.py
+++ b/var/spack/repos/builtin/packages/fca/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fcgi/package.py b/var/spack/repos/builtin/packages/fcgi/package.py
index 97495afc02ec7c..0f1f88f8708f27 100644
--- a/var/spack/repos/builtin/packages/fcgi/package.py
+++ b/var/spack/repos/builtin/packages/fcgi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Fcgi(AutotoolsPackage):
depends_on("automake", type="build")
depends_on("libtool", type="build")
+ license("OML")
+
version("2.4.2", sha256="1fe83501edfc3a7ec96bb1e69db3fd5ea1730135bd73ab152186fd0b437013bc")
version(
"2.4.1-SNAP-0910052249",
diff --git a/var/spack/repos/builtin/packages/fckit/package.py b/var/spack/repos/builtin/packages/fckit/package.py
index de4f995f27be8f..5822e13344fdb6 100644
--- a/var/spack/repos/builtin/packages/fckit/package.py
+++ b/var/spack/repos/builtin/packages/fckit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Fckit(CMakePackage):
maintainers("climbfuji")
+ license("Apache-2.0")
+
version("master", branch="master")
version("develop", branch="develop")
version("0.11.0", sha256="846f5c369940c0a3d42cd12932f7d6155339e79218d149ebbfdd02e759dc86c5")
@@ -60,7 +62,6 @@ def cmake_args(self):
args = [
self.define_from_variant("ENABLE_ECKIT", "eckit"),
self.define_from_variant("ENABLE_OMP", "openmp"),
- "-DPYTHON_EXECUTABLE:FILEPATH=" + self.spec["python"].command.path,
"-DFYPP_NO_LINE_NUMBERING=ON",
]
diff --git a/var/spack/repos/builtin/packages/fd/package.py b/var/spack/repos/builtin/packages/fd/package.py
index 40311ba941b165..47f0d13eac6a67 100644
--- a/var/spack/repos/builtin/packages/fd/package.py
+++ b/var/spack/repos/builtin/packages/fd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,20 +6,17 @@
from spack.package import *
-class Fd(Package):
+class Fd(CargoPackage):
"""A simple, fast and user-friendly alternative to 'find'"""
homepage = "https://github.com/sharkdp/fd"
url = "https://github.com/sharkdp/fd/archive/refs/tags/v8.4.0.tar.gz"
- version("8.7.0", sha256="13da15f3197d58a54768aaad0099c80ad2e9756dd1b0c7df68c413ad2d5238c9")
- version("8.4.0", sha256="d0c2fc7ddbe74e3fd88bf5bb02e0f69078ee6d2aeea3d8df42f508543c9db05d")
- version("7.4.0", sha256="33570ba65e7f8b438746cb92bb9bc4a6030b482a0d50db37c830c4e315877537")
-
maintainers("alecbcs", "ashermancinelli")
- depends_on("rust")
+ license("Apache-2.0 OR MIT")
- def install(self, spec, prefix):
- cargo = which("cargo")
- cargo("install", "--root", prefix, "--path", ".")
+ version("9.0.0", sha256="306d7662994e06e23d25587246fa3fb1f528579e42a84f5128e75feec635a370")
+ version("8.7.0", sha256="13da15f3197d58a54768aaad0099c80ad2e9756dd1b0c7df68c413ad2d5238c9")
+ version("8.4.0", sha256="d0c2fc7ddbe74e3fd88bf5bb02e0f69078ee6d2aeea3d8df42f508543c9db05d")
+ version("7.4.0", sha256="33570ba65e7f8b438746cb92bb9bc4a6030b482a0d50db37c830c4e315877537")
diff --git a/var/spack/repos/builtin/packages/fdb/package.py b/var/spack/repos/builtin/packages/fdb/package.py
index 7dc2f75e76b031..76e693d16173a6 100644
--- a/var/spack/repos/builtin/packages/fdb/package.py
+++ b/var/spack/repos/builtin/packages/fdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,9 +14,10 @@ class Fdb(CMakePackage):
url = "https://github.com/ecmwf/fdb/archive/refs/tags/5.7.8.tar.gz"
git = "https://github.com/ecmwf/fdb.git"
- maintainers("skosukhin")
+ maintainers("skosukhin", "victoria-cherkas", "dominichofer")
+
+ license("Apache-2.0")
- # master version of fdb is subject to frequent changes and is to be used experimentally.
version("master", branch="master")
version("5.11.23", sha256="09b1d93f2b71d70c7b69472dfbd45a7da0257211f5505b5fcaf55bfc28ca6c65")
version("5.11.17", sha256="375c6893c7c60f6fdd666d2abaccb2558667bd450100817c0e1072708ad5591e")
@@ -44,6 +45,7 @@ class Fdb(CMakePackage):
depends_on("ecbuild@3.7:", type="build", when="@5.11.6:")
depends_on("eckit@1.16:")
+ depends_on("eckit@1.24.4:", when="@5.11.22:")
depends_on("eckit+admin", when="+tools")
depends_on("eccodes@2.10:")
diff --git a/var/spack/repos/builtin/packages/fds/package.py b/var/spack/repos/builtin/packages/fds/package.py
index 5e9e7737c2c6f5..0b08921af187e6 100644
--- a/var/spack/repos/builtin/packages/fds/package.py
+++ b/var/spack/repos/builtin/packages/fds/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fdupes/package.py b/var/spack/repos/builtin/packages/fdupes/package.py
index adb3f152d85f0d..fcb2010409a887 100644
--- a/var/spack/repos/builtin/packages/fdupes/package.py
+++ b/var/spack/repos/builtin/packages/fdupes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Fdupes(AutotoolsPackage):
maintainers("michaelkuhn")
+ license("MIT")
+
version("2.2.1", sha256="846bb79ca3f0157856aa93ed50b49217feb68e1b35226193b6bc578be0c5698d")
version("2.1.2", sha256="cd5cb53b6d898cf20f19b57b81114a5b263cc1149cd0da3104578b083b2837bd")
diff --git a/var/spack/repos/builtin/packages/feh/package.py b/var/spack/repos/builtin/packages/feh/package.py
index e422e23f3371ed..e41ba4e1bb948e 100644
--- a/var/spack/repos/builtin/packages/feh/package.py
+++ b/var/spack/repos/builtin/packages/feh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Feh(MakefilePackage):
maintainers("TheQueasle")
+ license("MIT-feh")
+
version("3.10", sha256="1d71d1f6dcfe9ffee5e2766969a11978f7eb4fac7d7ae556f104c11f9c57cc98")
version("3.9.1", sha256="455c92711b588af149b945edc5c145f3e9aa137ed9689dabed49d5e4acac75fa")
version("3.3", sha256="f3959958258111d5f7c9fbe2e165c52b9d5987f07fd1f37540a4abf9f9638811")
diff --git a/var/spack/repos/builtin/packages/fenics-basix/package.py b/var/spack/repos/builtin/packages/fenics-basix/package.py
index 0de31ae59ff624..9fec644fc538d9 100644
--- a/var/spack/repos/builtin/packages/fenics-basix/package.py
+++ b/var/spack/repos/builtin/packages/fenics-basix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class FenicsBasix(CMakePackage):
git = "https://github.com/FEniCS/basix.git"
maintainers("mscroggs", "chrisrichardson", "garth-wells", "jhale")
+ license("MIT")
+
version("main", branch="main")
version("0.7.0", sha256="9bee81b396ee452eec8d9735f278cb44cb6994c6bc30aec8ed9bb4b12d83fa7f")
version("0.6.0", sha256="687ae53153c98facac4080dcdc7081701db1dcea8c5e7ae3feb72aec17f83304")
diff --git a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py
index 59b642359b811e..2e42785450a192 100644
--- a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py
+++ b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,7 +14,10 @@ class FenicsDolfinx(CMakePackage):
url = "https://github.com/FEniCS/dolfinx/archive/v0.1.0.tar.gz"
maintainers("chrisrichardson", "garth-wells", "nate-sime", "jhale")
+ license("LGPL-3.0-or-later")
+
version("main", branch="main")
+ version("0.7.2", sha256="7d9ce1338ce66580593b376327f23ac464a4ce89ef63c105efc1a38e5eae5c0b")
version("0.6.0", sha256="eb8ac2bb2f032b0d393977993e1ab6b4101a84d54023a67206e3eac1a8d79b80")
version("0.5.1", sha256="a570e3f6ed8e7c570e7e61d0e6fd44fa9dad2c5f8f1f48a6dc9ad22bacfbc973")
version("0.5.0", sha256="503c70c01a44d1ffe48e052ca987693a49f8d201877652cabbe2a44eb3b7c040")
@@ -65,11 +68,13 @@ class FenicsDolfinx(CMakePackage):
depends_on("pugixml", when="@0.5.0:")
depends_on("fenics-ufcx@main", when="@main")
+ depends_on("fenics-ufcx@0.7", when="@0.7")
depends_on("fenics-ufcx@0.6.0:0.6", when="@0.6.0:0.6")
depends_on("fenics-ufcx@0.5.0", when="@0.5.1:0.5")
depends_on("fenics-ufcx@0.4.2", when="@0.4.1")
depends_on("fenics-basix@main", when="@main")
+ depends_on("fenics-basix@0.7", when="@0.7")
depends_on("fenics-basix@0.6.0:0.6", when="@0.6.0:0.6")
depends_on("fenics-basix@0.5.1:0.5", when="@0.5.0:0.5")
depends_on("fenics-basix@0.4.2", when="@0.4.1")
diff --git a/var/spack/repos/builtin/packages/fenics-ufcx/package.py b/var/spack/repos/builtin/packages/fenics-ufcx/package.py
index 3d62d7a1497231..49a9ff54c28d7a 100644
--- a/var/spack/repos/builtin/packages/fenics-ufcx/package.py
+++ b/var/spack/repos/builtin/packages/fenics-ufcx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,7 +16,10 @@ class FenicsUfcx(CMakePackage):
url = "https://github.com/FEniCS/ffcx/archive/v0.4.2.tar.gz"
maintainers("ma595", "jhale")
+ license("LGPL-3.0-or-later")
+
version("main", branch="main")
+ version("0.7.0", sha256="7f3c3ca91d63ce7831d37799cc19d0551bdcd275bdfa4c099711679533dd1c71")
version("0.6.0", sha256="076fad61d406afffd41019ae1abf6da3f76406c035c772abad2156127667980e")
version(
"0.5.0.post0", sha256="039908c9998b51ba53e5deb3a97016062c262f0a4285218644304f7d3cd35882"
diff --git a/var/spack/repos/builtin/packages/fenics/package.py b/var/spack/repos/builtin/packages/fenics/package.py
index e8e5f89cce324e..711d6e3333c4ca 100644
--- a/var/spack/repos/builtin/packages/fenics/package.py
+++ b/var/spack/repos/builtin/packages/fenics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Fenics(CMakePackage):
git = "https://bitbucket.org/fenics-project/dolfin.git"
url = "https://bitbucket.org/fenics-project/dolfin/downloads/dolfin-2019.1.0.post0.tar.gz"
+ license("LGPL-3.0-only")
+
version(
"2019.1.0.post0", sha256="61abdcdb13684ba2a3ba4afb7ea6c7907aa0896a46439d3af7e8848483d4392f"
)
diff --git a/var/spack/repos/builtin/packages/feq-parse/package.py b/var/spack/repos/builtin/packages/feq-parse/package.py
index 687ae6f66fd297..f470cab980928d 100644
--- a/var/spack/repos/builtin/packages/feq-parse/package.py
+++ b/var/spack/repos/builtin/packages/feq-parse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,9 @@ class FeqParse(CMakePackage):
maintainers("fluidnumerics-joe")
+ license("Apache-2.0")
+
+ version("2.1.0", sha256="f3fd51c24c563fe1d0dcb880bc16a62c9e08fe0cdd6f58df08f0db0ed34c289a")
version("2.0.3", sha256="a1c42507801adc55a63a9a904807058079d54e002e10f2b29a916b06fc815f80")
version("2.0.1", sha256="08dd08bd100a0a2eb672a5b2792ad56a337df575c634aac0d7a300d7e484b21c")
version("1.1.0", sha256="d33a4fd6904939bb70780e8f25f37c1291c4f24fd207feb4ffc0f8d89637d1e3")
diff --git a/var/spack/repos/builtin/packages/fermi/package.py b/var/spack/repos/builtin/packages/fermi/package.py
index df03daa2899dd0..22f98cc0ca7f12 100644
--- a/var/spack/repos/builtin/packages/fermi/package.py
+++ b/var/spack/repos/builtin/packages/fermi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fermikit/package.py b/var/spack/repos/builtin/packages/fermikit/package.py
index a17f9e8f3a5b3c..9bc92d4a285d9d 100644
--- a/var/spack/repos/builtin/packages/fermikit/package.py
+++ b/var/spack/repos/builtin/packages/fermikit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fermisciencetools/package.py b/var/spack/repos/builtin/packages/fermisciencetools/package.py
index 35fe02eff1d4e1..739bd4c4eaa723 100644
--- a/var/spack/repos/builtin/packages/fermisciencetools/package.py
+++ b/var/spack/repos/builtin/packages/fermisciencetools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ferret/package.py b/var/spack/repos/builtin/packages/ferret/package.py
index 0d7dc892ee3aec..1e8fa1e45e0aa5 100644
--- a/var/spack/repos/builtin/packages/ferret/package.py
+++ b/var/spack/repos/builtin/packages/ferret/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Ferret(Package):
maintainers("RemiLacroix-IDRIS")
+ license("Unlicense")
+
version("7.6.0", sha256="69832d740bd44c9eadd198a5de4d96c4c01ae90ae28c2c3414c1bb9f43e475d1")
version("7.5.0", sha256="2a038c547e6e80e6bd0645a374c3247360cf8c94ea56f6f3444b533257eb16db")
version("7.4", sha256="5167bb9e6ef441ae9cf90da555203d2155e3fcf929e7b8dddb237de0d58c5e5f")
diff --git a/var/spack/repos/builtin/packages/feynhiggs/package.py b/var/spack/repos/builtin/packages/feynhiggs/package.py
index 2fff7c6d30c6bc..0a3afb7c10bbcf 100644
--- a/var/spack/repos/builtin/packages/feynhiggs/package.py
+++ b/var/spack/repos/builtin/packages/feynhiggs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Feynhiggs(AutotoolsPackage):
maintainers("vvolkl")
tags = ["hep"]
+ license("GPL-3.0-or-later")
+
version("2.18.1", sha256="3aba89cac6397d7e1a8a9d9dcfeed9fb32eeeee98768b0c0c9f444c2cc125ab9")
def configure_args(self):
diff --git a/var/spack/repos/builtin/packages/ffb/package.py b/var/spack/repos/builtin/packages/ffb/package.py
index e9d8690d4d7962..afc9fd75348c62 100644
--- a/var/spack/repos/builtin/packages/ffb/package.py
+++ b/var/spack/repos/builtin/packages/ffb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ffmpeg/package.py b/var/spack/repos/builtin/packages/ffmpeg/package.py
index ff597653ff987b..d12c547da6e5fd 100644
--- a/var/spack/repos/builtin/packages/ffmpeg/package.py
+++ b/var/spack/repos/builtin/packages/ffmpeg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,14 +15,20 @@ class Ffmpeg(AutotoolsPackage):
maintainers("xjrc")
+ license("GPL-2.0-or-later AND LGPL-2.1-or-later")
+
version("6.0", sha256="47d062731c9f66a78380e35a19aac77cebceccd1c7cc309b9c82343ffc430c3d")
+ version("5.1.3", sha256="5d5bef6a11f0c500588f9870ec965a30acc0d54d8b1e535da6554a32902d236d")
version("5.1.2", sha256="39a0bcc8d98549f16c570624678246a6ac736c066cebdb409f9502e915b22f2b")
version("4.4.1", sha256="8fc9f20ac5ed95115a9e285647add0eedd5cc1a98a039ada14c132452f98ac42")
version("4.3.2", sha256="ab3a6d6a70358ba0a5f67f37f91f6656b7302b02e98e5b8c846c16763c99913a")
version("4.2.2", sha256="b620d187c26f76ca19e74210a0336c3b8380b97730df5cdf45f3e69e89000e5c")
version("4.1.1", sha256="0cb40e3b8acaccd0ecb38aa863f66f0c6e02406246556c2992f67bf650fab058")
version("4.1", sha256="b684fb43244a5c4caae652af9022ed5d85ce15210835bce054a33fb26033a1a5")
+ version("3.4.12", sha256="08e400330c70b567116addebd1a70279e0d41b0f8742085e32527f2a4eef9ca3")
+ version("3.2.19", sha256="87a61fa3b20819b71633aa90b55ee6411614e4a0ff7908cf35236b465de5e602")
version("3.2.4", sha256="c0fa3593a2e9e96ace3c1757900094437ad96d1d6ca19f057c378b5f394496a4")
+ version("2.8.21", sha256="782c3af1a1ee8945be0800edc39b1d1199ee6a8f31c74b65230795f11911b0d8")
version("2.8.15", sha256="35647f6c1f6d4a1719bc20b76bf4c26e4ccd665f46b5676c0e91c5a04622ee21")
version("1.0.10", sha256="1dbde434c3b5c573d3b2ffc1babe3814f781c10c4bc66193a4132a44c9715176")
@@ -50,6 +56,7 @@ class Ffmpeg(AutotoolsPackage):
# options
variant("bzlib", default=True, description="bzip2 support")
+ variant("doc", default=False, description="build documentation")
variant("libaom", default=False, when="@4.0:", description="AV1 video encoding/decoding")
variant("libmp3lame", default=False, description="MP3 encoding")
variant("libopenjpeg", default=False, description="JPEG 2000 de/encoding")
@@ -74,6 +81,8 @@ class Ffmpeg(AutotoolsPackage):
variant("shared", default=True, description="build shared libraries")
variant("libx264", default=False, description="H.264 encoding")
+ conflicts("@1", when="platform=darwin target=aarch64:", msg="requires gas-preprocessor")
+
depends_on("alsa-lib", when="platform=linux")
depends_on("iconv")
depends_on("yasm@1.2.0:")
@@ -101,6 +110,8 @@ class Ffmpeg(AutotoolsPackage):
depends_on("speex", when="+libspeex")
depends_on("xz", when="+lzma")
depends_on("x264", when="+libx264")
+ depends_on("texinfo", when="+doc")
+ depends_on("texinfo@:6", when="+doc @:4")
conflicts("%nvhpc")
@@ -115,7 +126,14 @@ class Ffmpeg(AutotoolsPackage):
patch(
"https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff_plain/effadce6c756247ea8bae32dc13bb3e6f464f0eb",
sha256="d1ea47c29968507fee772234bc734d29958b62ab92400801ef28559b538a9168",
- when="@6.0",
+ when="@:6.0",
+ )
+
+ # fix incompatibility with texinfo@7, especially @7.1:
+ patch(
+ "https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff_plain/f01fdedb69e4accb1d1555106d8f682ff1f1ddc7",
+ sha256="416751f41cfbf086c28b4bbf01ace4c08e5651e59911dca6240292bb1b5c6b53",
+ when="@5:6.0",
)
@property
@@ -165,6 +183,7 @@ def configure_args(self):
variant_opts = [
"bzlib",
+ "doc",
"gpl",
"libmp3lame",
"libopenjpeg",
@@ -185,9 +204,11 @@ def configure_args(self):
"libsnappy",
"sdl2",
"libaom",
- "libxml2",
]
+ if spec.satisfies("@4:"):
+ variant_opts.append("libxml2")
+
for variant_opt in variant_opts:
config_args += self.enable_or_disable(variant_opt)
diff --git a/var/spack/repos/builtin/packages/ffr/package.py b/var/spack/repos/builtin/packages/ffr/package.py
index 96fe784e12db61..6188042c507c42 100644
--- a/var/spack/repos/builtin/packages/ffr/package.py
+++ b/var/spack/repos/builtin/packages/ffr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ffsb/package.py b/var/spack/repos/builtin/packages/ffsb/package.py
index 5c30984183c976..7000586d8ac175 100644
--- a/var/spack/repos/builtin/packages/ffsb/package.py
+++ b/var/spack/repos/builtin/packages/ffsb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Ffsb(AutotoolsPackage):
homepage = "https://sourceforge.net/projects/ffsb/"
url = "https://sourceforge.net/projects/ffsb/files/ffsb/5.2.1/ffsb-5.2.1.tar.gz"
+ license("GPL-2.0-only")
+
version("5.2.1", sha256="36ccda8ff04f837e20bb8b2cc9edb8c6fc923fdcdbb8060d9448dc49234b968d")
version("5.1.1", sha256="e25aef255d8bfe54f29ac88c7af8237fa5a8c2e1716fdef1946cf0ecd9166d1f")
version("5.1", sha256="4d7da7eba46c824ebdc23b3d32532b006aeb5b6697a3ada314c75785ab25cb97")
diff --git a/var/spack/repos/builtin/packages/ffte/package.py b/var/spack/repos/builtin/packages/ffte/package.py
index ed6de99aa4c2c7..98f870f545821b 100644
--- a/var/spack/repos/builtin/packages/ffte/package.py
+++ b/var/spack/repos/builtin/packages/ffte/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fftw/package.py b/var/spack/repos/builtin/packages/fftw/package.py
index 976d8183f893fa..fa606cf3ce24cb 100644
--- a/var/spack/repos/builtin/packages/fftw/package.py
+++ b/var/spack/repos/builtin/packages/fftw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -219,6 +219,8 @@ class Fftw(FftwBase):
url = "https://www.fftw.org/fftw-3.3.4.tar.gz"
list_url = "https://www.fftw.org/download.html"
+ license("GPL-2.0-or-later")
+
version("3.3.10", sha256="56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467")
version("3.3.9", sha256="bf2c7ce40b04ae811af714deb512510cc2c17b9ab9d6ddcf49fe4487eea7af3d")
version("3.3.8", sha256="6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303")
diff --git a/var/spack/repos/builtin/packages/fftx/package.py b/var/spack/repos/builtin/packages/fftx/package.py
index b9229216ff1510..fa4052cf01a8c7 100644
--- a/var/spack/repos/builtin/packages/fftx/package.py
+++ b/var/spack/repos/builtin/packages/fftx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,13 +14,16 @@ class Fftx(CMakePackage, CudaPackage, ROCmPackage):
operations composed of linear operations combined with DFT transforms."""
homepage = "https://spiralgen.com"
- url = "https://github.com/spiral-software/fftx/archive/refs/tags/1.1.3.tar.gz"
+ url = "https://github.com/spiral-software/fftx/archive/refs/tags/1.2.0.tar.gz"
git = "https://github.com/spiral-software/fftx.git"
maintainers("spiralgen")
+ license("BSD-3-Clause-LBNL")
+
version("develop", branch="develop")
version("main", branch="main")
+ version("1.2.0", sha256="7be541bdb5905361e24bfb098314f946fe89f7b10f587d91e2397d821434b48b")
version("1.1.3", sha256="17ed0baf9c2dcf30c789fdae530e006ae3ff2d2c9006989b1e6348e4ae50cef9")
version("1.1.2", sha256="b2c4a7791305481af9e1bd358c1215efa4506c91c943cddca3780a1ccbc27810")
version("1.1.1", sha256="5cbca66ef09eca02ee8f336f58eb45cfac69cfb29cd6eb945852ad74085d8a60")
diff --git a/var/spack/repos/builtin/packages/fgsl/package.py b/var/spack/repos/builtin/packages/fgsl/package.py
index 33736c0afcfc1b..3f16008ff49e6f 100644
--- a/var/spack/repos/builtin/packages/fgsl/package.py
+++ b/var/spack/repos/builtin/packages/fgsl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Fgsl(AutotoolsPackage):
homepage = "https://github.com/reinh-bader/fgsl"
url = "https://github.com/reinh-bader/fgsl/archive/v1.2.0.tar.gz"
+ license("GPL-2.0-or-later")
+
version(
"1.5.0",
sha256="5013b4e000e556daac8b3c83192adfe8f36ffdc91d1d4baf0b1cb3100260e664",
diff --git a/var/spack/repos/builtin/packages/fiat/package.py b/var/spack/repos/builtin/packages/fiat/package.py
index a839b0e8a6847e..488ecf450d85a4 100644
--- a/var/spack/repos/builtin/packages/fiat/package.py
+++ b/var/spack/repos/builtin/packages/fiat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Fiat(CMakePackage):
maintainers("climbfuji")
+ license("Apache-2.0")
+
version("main", branch="main", no_cache=True)
version("1.2.0", sha256="758147410a4a3c493290b87443b4091660b915fcf29f7c4d565c5168ac67745f")
version("1.1.0", sha256="58354e60d29a1b710bfcea9b87a72c0d89c39182cb2c9523ead76a142c695f82")
diff --git a/var/spack/repos/builtin/packages/fides/package.py b/var/spack/repos/builtin/packages/fides/package.py
index 0e284141e3a9ba..29c5ea00c525a3 100644
--- a/var/spack/repos/builtin/packages/fides/package.py
+++ b/var/spack/repos/builtin/packages/fides/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,13 +23,16 @@ class Fides(CMakePackage):
# Certain CMake versions have been found to break for our use cases
depends_on("cmake@3.14.1:3.14,3.18.2:", type="build")
-
depends_on("mpi", when="+mpi")
depends_on("adios2")
- # Type check failures when using 32 bit IDs and ADIOS2 with ZFP in older
- # versions of Fides
- depends_on("adios2~zfp", when="@:1.1 ^vtk-m ~64bitids")
- depends_on("vtk-m")
+ # adios2::Mode::ReadRandomAccess requires adios2 2.8.0.
+ # older adios2 supported in https://gitlab.kitware.com/vtk/fides/-/merge_requests/146
+ depends_on("adios2@2.8:", when="@1.2")
+ depends_on("adios2@2.7:2.8", when="@1.1")
+
+ depends_on("vtk-m@1.9:")
+ # vtk-m 2.0 has a breaking change in cmake target name
+ depends_on("vtk-m@:1.9", when="@:1.1")
# Fix missing implicit includes
@when("%gcc@7:")
diff --git a/var/spack/repos/builtin/packages/figcone/package.py b/var/spack/repos/builtin/packages/figcone/package.py
index 43b0f1a1cf0db4..deb9d730dfd7b6 100644
--- a/var/spack/repos/builtin/packages/figcone/package.py
+++ b/var/spack/repos/builtin/packages/figcone/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,4 +13,6 @@ class Figcone(CMakePackage):
homepage = "https://github.com/kamchatka-volcano/figcone"
url = "https://github.com/kamchatka-volcano/figcone/archive/refs/tags/v2.4.9.tar.gz"
+ license("MS-PL")
+
version("2.4.9", sha256="735399e849621a4923e71a50d5e2ba928d5dfa3b01e54d56e0bac8e5102b7697")
diff --git a/var/spack/repos/builtin/packages/figlet/package.py b/var/spack/repos/builtin/packages/figlet/package.py
index f1178eb1b601a9..2037a2de715196 100644
--- a/var/spack/repos/builtin/packages/figlet/package.py
+++ b/var/spack/repos/builtin/packages/figlet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Figlet(MakefilePackage):
homepage = "http://www.figlet.org/"
url = "https://github.com/cmatsuoka/figlet/archive/2.2.5.tar.gz"
+ license("BSD-3-Clause")
+
version("2.2.5", sha256="4d366c4a618ecdd6fdb81cde90edc54dbff9764efb635b3be47a929473f13930")
version("2.2.4", sha256="970a18a2a32cca736ff11a5b77e26a54f31a0e08606b85d21d3d5c666937e03d")
version("2.2.3", sha256="168fa3c7a5888d6f796708780d3006f0e1871d83f32c4a10a84596b90ac35999")
diff --git a/var/spack/repos/builtin/packages/figtree/package.py b/var/spack/repos/builtin/packages/figtree/package.py
index f8f113b5fcd661..876e5bcba5317d 100644
--- a/var/spack/repos/builtin/packages/figtree/package.py
+++ b/var/spack/repos/builtin/packages/figtree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/file/package.py b/var/spack/repos/builtin/packages/file/package.py
index 23394ab2ab8af9..d2bc55cb710200 100644
--- a/var/spack/repos/builtin/packages/file/package.py
+++ b/var/spack/repos/builtin/packages/file/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class File(AutotoolsPackage):
maintainers("sethrj")
+ license("BSD-2-Clause")
+
version("5.44", sha256="3751c7fba8dbc831cb8d7cc8aff21035459b8ce5155ef8b0880a27d028475f3b")
version("5.43", sha256="8c8015e91ae0e8d0321d94c78239892ef9dbc70c4ade0008c0e95894abfb1991")
version("5.42", sha256="c076fb4d029c74073f15c43361ef572cfb868407d347190ba834af3b1639b0e4")
diff --git a/var/spack/repos/builtin/packages/filebench/package.py b/var/spack/repos/builtin/packages/filebench/package.py
index 9093c3108c3f20..4b1efcfad3a4fb 100644
--- a/var/spack/repos/builtin/packages/filebench/package.py
+++ b/var/spack/repos/builtin/packages/filebench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Filebench(AutotoolsPackage):
homepage = "https://github.com/filebench/filebench"
url = "https://github.com/filebench/filebench/archive/1.4.9.1.tar.gz"
+ license("CDDL-1.0")
+
version("1.4.9.1", sha256="77ae91b83c828ded1219550aec74fbbd6975dce02cb5ab13c3b99ac2154e5c2e")
version("1.4.9", sha256="61b8a838c1450b51a4ce61481a19a1bf0d6e3993180c524ff4051f7c18bd9c6a")
diff --git a/var/spack/repos/builtin/packages/filo/package.py b/var/spack/repos/builtin/packages/filo/package.py
index a8780f3b87c69d..fc778210cdeb36 100644
--- a/var/spack/repos/builtin/packages/filo/package.py
+++ b/var/spack/repos/builtin/packages/filo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Filo(CMakePackage):
tags = ["ecp"]
+ license("MIT")
+
version("main", branch="main")
depends_on("mpi")
diff --git a/var/spack/repos/builtin/packages/filtlong/package.py b/var/spack/repos/builtin/packages/filtlong/package.py
index fa32ca6633607e..ceb344bec17c6d 100644
--- a/var/spack/repos/builtin/packages/filtlong/package.py
+++ b/var/spack/repos/builtin/packages/filtlong/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Filtlong(MakefilePackage):
homepage = "https://github.com/rrwick/Filtlong"
url = "https://github.com/rrwick/Filtlong/archive/v0.2.0.tar.gz"
+ license("GPL-3.0-only")
+
version("0.2.1", sha256="e6f47675e87f98cf2481a60bef5cad38396f1e4db653a5c1673139f37770273a")
version("0.2.0", sha256="a4afb925d7ced8d083be12ca58911bb16d5348754e7c2f6431127138338ee02a")
version("0.1.1", sha256="ddae7a5850efeb64424965a443540b1ced34286fbefad9230ab71f4af314081b")
diff --git a/var/spack/repos/builtin/packages/fimpute/package.py b/var/spack/repos/builtin/packages/fimpute/package.py
index b61f7f0858d1fd..a7d0752b5d8375 100644
--- a/var/spack/repos/builtin/packages/fimpute/package.py
+++ b/var/spack/repos/builtin/packages/fimpute/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/findbugs/package.py b/var/spack/repos/builtin/packages/findbugs/package.py
index 607f9e014accea..9f9a0de92558c6 100644
--- a/var/spack/repos/builtin/packages/findbugs/package.py
+++ b/var/spack/repos/builtin/packages/findbugs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/findutils/package.py b/var/spack/repos/builtin/packages/findutils/package.py
index 46bd4d3255af6a..6ff1decade2eba 100644
--- a/var/spack/repos/builtin/packages/findutils/package.py
+++ b/var/spack/repos/builtin/packages/findutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -26,6 +26,8 @@ def url_for_version(self, version):
executables = ["^find$"]
+ license("GPL-3.0-or-later")
+
version("4.9.0", sha256="a2bfb8c09d436770edc59f50fa483e785b161a3b7b9d547573cb08065fd462fe")
version("4.8.0", sha256="57127b7e97d91282c6ace556378d5455a9509898297e46e10443016ea1387164")
version("4.7.0", sha256="c5fefbdf9858f7e4feb86f036e1247a54c79fc2d8e4b7064d5aaa1f47dfa789a")
diff --git a/var/spack/repos/builtin/packages/fio/package.py b/var/spack/repos/builtin/packages/fio/package.py
index 9c98da798cb99a..ba5f513726c6f4 100644
--- a/var/spack/repos/builtin/packages/fio/package.py
+++ b/var/spack/repos/builtin/packages/fio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,9 @@ class Fio(AutotoolsPackage):
homepage = "https://github.com/axboe/fio"
url = "https://github.com/axboe/fio/archive/fio-3.26.tar.gz"
+ license("GPL-2.0-only")
+
+ version("3.36", sha256="b34b8f3c5cd074c09ea487ffe3f444e95565c214b34a73042f35b00cbaab0e17")
version("3.34", sha256="42ea28c78d269c4cc111b7516213f4d4b32986797a710b0ff364232cc7a3a0b7")
version("3.33", sha256="f48b2547313ffd1799c58c6a170175176131bbd42bc847b5650784eaf6d914b3")
version("3.26", sha256="8bd6987fd9b8c2a75d3923661566ade50b99f61fa4352148975e65577ffa4024")
diff --git a/var/spack/repos/builtin/packages/fipscheck/package.py b/var/spack/repos/builtin/packages/fipscheck/package.py
index af345d1a10ed9a..bd8039e9e6130d 100644
--- a/var/spack/repos/builtin/packages/fipscheck/package.py
+++ b/var/spack/repos/builtin/packages/fipscheck/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fish/package.py b/var/spack/repos/builtin/packages/fish/package.py
index 14c9057ba8018a..cca14b84bdad15 100644
--- a/var/spack/repos/builtin/packages/fish/package.py
+++ b/var/spack/repos/builtin/packages/fish/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Fish(CMakePackage):
maintainers("funnell", "adamjstewart")
+ license("GPL-2.0-only")
+
version("master", branch="master")
version("3.6.1", sha256="55402bb47ca6739d8aba25e41780905b5ce1bce0a5e0dd17dca908b5bc0b49b2")
version("3.6.0", sha256="97044d57773ee7ca15634f693d917ed1c3dc0fa7fde1017f1626d60b83ea6181")
diff --git a/var/spack/repos/builtin/packages/fixesproto/package.py b/var/spack/repos/builtin/packages/fixesproto/package.py
index c74043f4533c40..92e7f494702341 100644
--- a/var/spack/repos/builtin/packages/fixesproto/package.py
+++ b/var/spack/repos/builtin/packages/fixesproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fj/package.py b/var/spack/repos/builtin/packages/fj/package.py
index 918bcef6a978d4..899f85aa78e77c 100644
--- a/var/spack/repos/builtin/packages/fj/package.py
+++ b/var/spack/repos/builtin/packages/fj/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fjcontrib/package.py b/var/spack/repos/builtin/packages/fjcontrib/package.py
index 80ebaae7044f90..fa84c9d83305f2 100644
--- a/var/spack/repos/builtin/packages/fjcontrib/package.py
+++ b/var/spack/repos/builtin/packages/fjcontrib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Fjcontrib(AutotoolsPackage):
tags = ["hep"]
+ license("GPL-2.0-or-later")
+
version("1.052", sha256="bde63c28cbdf992bedea4ddedfc3cd52c9fec241a767cc455dd4ad10e8210c39")
version("1.051", sha256="76a2ec612c768db3eb6bbaf686d02b05ddb64dde477d185e20df563b52308473")
version("1.045", sha256="667f15556ca371cfaf185086fb41ac579658a233c18fb1e5153382114f9785f8")
diff --git a/var/spack/repos/builtin/packages/fl/package.py b/var/spack/repos/builtin/packages/fl/package.py
index 2de76a922255aa..38ce56ab574924 100644
--- a/var/spack/repos/builtin/packages/fl/package.py
+++ b/var/spack/repos/builtin/packages/fl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/flac/package.py b/var/spack/repos/builtin/packages/flac/package.py
index 9bfb0ef980a790..8ec66a154d4671 100644
--- a/var/spack/repos/builtin/packages/flac/package.py
+++ b/var/spack/repos/builtin/packages/flac/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Flac(AutotoolsPackage):
homepage = "https://xiph.org/flac/index.html"
url = "http://downloads.xiph.org/releases/flac/flac-1.3.2.tar.xz"
+ license("BSD-3-Clause AND GPL-2.0-or-later")
+
version("1.4.2", sha256="e322d58a1f48d23d9dd38f432672865f6f79e73a6f9cc5a5f57fcaa83eb5a8e4")
version("1.3.3", sha256="213e82bd716c9de6db2f98bcadbc4c24c7e2efe8c75939a1a84e28539c4e1748")
version("1.3.2", sha256="91cfc3ed61dc40f47f050a109b08610667d73477af6ef36dcad31c31a4a8d53f")
diff --git a/var/spack/repos/builtin/packages/flamemaster/package.py b/var/spack/repos/builtin/packages/flamemaster/package.py
index 045ee12092a28a..d49eacef5912d2 100644
--- a/var/spack/repos/builtin/packages/flamemaster/package.py
+++ b/var/spack/repos/builtin/packages/flamemaster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/flann/package.py b/var/spack/repos/builtin/packages/flann/package.py
index cea89ef01ea58d..301d1d88f5d4a6 100644
--- a/var/spack/repos/builtin/packages/flann/package.py
+++ b/var/spack/repos/builtin/packages/flann/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Flann(CMakePackage):
homepage = "https://github.com/mariusmuja/flann"
url = "https://github.com/mariusmuja/flann/archive/1.9.1.tar.gz"
+ license("BSD-3-Clause")
+
version("1.9.2", sha256="e26829bb0017f317d9cc45ab83ddcb8b16d75ada1ae07157006c1e7d601c8824")
version("1.9.1", sha256="b23b5f4e71139faa3bcb39e6bbcc76967fbaf308c4ee9d4f5bfbeceaa76cc5d3")
version("1.8.5", sha256="59a9925dac0705b281496ae52b5dfd79d6b69316d37015e3d3b38c859bac4f2f")
@@ -121,8 +123,4 @@ def cmake_args(self):
use_mpi = "ON" if "+mpi" in spec else "OFF"
args.append("-DUSE_MPI:BOOL={0}".format(use_mpi))
- # Configure the proper python executable
- if "+python" in spec:
- args.append("-DPYTHON_EXECUTABLE={0}".format(spec["python"].command.path))
-
return args
diff --git a/var/spack/repos/builtin/packages/flap/package.py b/var/spack/repos/builtin/packages/flap/package.py
index e13e00a471cf7d..082ff297e6d7a2 100644
--- a/var/spack/repos/builtin/packages/flap/package.py
+++ b/var/spack/repos/builtin/packages/flap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Flap(CMakePackage):
maintainers("fluidnumerics-joe")
+ license("GPL-3.0-only")
+
version("master", branch="master", submodules=True)
def flag_handler(self, name, flags):
diff --git a/var/spack/repos/builtin/packages/flash/package.py b/var/spack/repos/builtin/packages/flash/package.py
index 78451f9ddf99e4..8cd9e98f5afc8b 100644
--- a/var/spack/repos/builtin/packages/flash/package.py
+++ b/var/spack/repos/builtin/packages/flash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Flash(MakefilePackage):
homepage = "https://ccb.jhu.edu/software/FLASH/"
url = "https://sourceforge.net/projects/flashpage/files/FLASH-1.2.11.tar.gz"
+ license("GPL-3.0-or-later")
+
version("1.2.11", sha256="685ca6f7fedda07434d8ee03c536f4763385671c4509c5bb48beb3055fd236ac")
depends_on("zlib-api")
diff --git a/var/spack/repos/builtin/packages/flashdimmsim/package.py b/var/spack/repos/builtin/packages/flashdimmsim/package.py
index 1784b1f03d5a05..9f2bc1574ae6ff 100644
--- a/var/spack/repos/builtin/packages/flashdimmsim/package.py
+++ b/var/spack/repos/builtin/packages/flashdimmsim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/flatbuffers/package.py b/var/spack/repos/builtin/packages/flatbuffers/package.py
index 439979142fd39d..7613821016f10f 100644
--- a/var/spack/repos/builtin/packages/flatbuffers/package.py
+++ b/var/spack/repos/builtin/packages/flatbuffers/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Flatbuffers(CMakePackage):
homepage = "https://google.github.io/flatbuffers/"
url = "https://github.com/google/flatbuffers/archive/v1.9.0.tar.gz"
+ license("Apache-2.0")
+
version("2.0.6", sha256="e2dc24985a85b278dd06313481a9ca051d048f9474e0f199e372fea3ea4248c9")
version("2.0.0", sha256="9ddb9031798f4f8754d00fca2f1a68ecf9d0f83dfac7239af1311e4fd9a565c4")
version("1.12.0", sha256="62f2223fb9181d1d6338451375628975775f7522185266cd5296571ac152bc45")
diff --git a/var/spack/repos/builtin/packages/flatcc/package.py b/var/spack/repos/builtin/packages/flatcc/package.py
index b011c33495bc34..ae0fdd2fca0574 100644
--- a/var/spack/repos/builtin/packages/flatcc/package.py
+++ b/var/spack/repos/builtin/packages/flatcc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Flatcc(CMakePackage):
url = "https://github.com/dvidelabs/flatcc/archive/v0.5.3.tar.gz"
git = "https://github.com/dvidelabs/flatcc.git"
+ license("Apache-2.0")
+
version("0.5.3", sha256="d7519a97569ebdc9d12b162be0f9861fdc2724244f68595264a411ac48e4e983")
version("0.5.2", sha256="02dac93d3daf8d0a290aa8711a9b8a53f047436ec5331adb1972389061ec6615")
version("0.5.1", sha256="8c4560ca32e3c555716d9363bed469e2c60e0f443ec32bc08e7abfe681e25ca9")
diff --git a/var/spack/repos/builtin/packages/flcl/package.py b/var/spack/repos/builtin/packages/flcl/package.py
index 31ba3ed59b38ee..dad907c1f7b9cc 100644
--- a/var/spack/repos/builtin/packages/flcl/package.py
+++ b/var/spack/repos/builtin/packages/flcl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Flcl(CMakePackage):
maintainers("womeld", "agaspar")
+ license("BSD-3-Clause")
+
version("develop", branch="develop")
version("0.99.0", sha256="edb8310154e5e5cf315dad63cd59f13b2537e0ba698869ce9757b04e38047464")
version("0.5.0", sha256="bfd9b9092904eab1135d3bb4c458a50653b3325c176a722af56f158da0a16f19")
diff --git a/var/spack/repos/builtin/packages/flecsale/package.py b/var/spack/repos/builtin/packages/flecsale/package.py
index 3b1cbe8220d204..ef09c6a29f8450 100644
--- a/var/spack/repos/builtin/packages/flecsale/package.py
+++ b/var/spack/repos/builtin/packages/flecsale/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Flecsale(CMakePackage):
homepage = "https://github.com/laristra/flecsale"
git = "https://github.com/laristra/flecsale.git"
+ license("Unlicense")
+
version("develop", branch="master", submodules=True)
variant("mpi", default=True, description="Build on top of mpi conduit for mpi inoperability")
diff --git a/var/spack/repos/builtin/packages/flecsi/package.py b/var/spack/repos/builtin/packages/flecsi/package.py
index 1ae350aac74b48..c11b4ecf6aa9e9 100644
--- a/var/spack/repos/builtin/packages/flecsi/package.py
+++ b/var/spack/repos/builtin/packages/flecsi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -29,26 +29,9 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
version("2.1.0", tag="v2.1.0", commit="533df139c267e2a93c268dfe68f9aec55de11cf0")
version("2.0.0", tag="v2.0.0", commit="5ceebadf75d1c98999ea9e9446926722d061ec22")
version(
- "1.4.1", tag="v1.4.1", commit="ab974c3164056e6c406917c8ca771ffd43c5a031", submodules=True
- )
- version(
- "1.4.develop",
- git="https://github.com/laristra/flecsi.git",
- branch="1.4",
- submodules=True,
- deprecated=True,
- )
- version(
- "1.4.2",
- git="https://github.com/laristra/flecsi.git",
- tag="v1.4.2",
- submodules=True,
- deprecated=True,
- )
- version(
- "flecsph",
- git="https://github.com/laristra/flecsi.git",
- branch="stable/flecsph",
+ "1.4.1",
+ tag="v1.4.1",
+ commit="ab974c3164056e6c406917c8ca771ffd43c5a031",
submodules=True,
deprecated=True,
)
@@ -63,7 +46,7 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
variant("shared", default=True, description="Build shared libraries")
variant("flog", default=False, description="Enable logging support")
variant("graphviz", default=False, description="Enable GraphViz Support")
- variant("doc", default=False, description="Enable documentation")
+ variant("doc", default=False, description="Enable documentation", when="@2.2:")
variant("hdf5", default=True, description="Enable HDF5 Support")
variant(
"caliper_detail",
@@ -99,7 +82,6 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
depends_on("metis@5.1.0:")
depends_on("parmetis@4.0.3:")
depends_on("boost@1.70.0: cxxstd=17 +program_options +stacktrace")
- depends_on("legion network=gasnet", when="backend=legion")
# FleCSI@1.x
depends_on("cmake@3.12:", when="@:1")
@@ -130,10 +112,12 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
depends_on("kokkos@3.2.00:", when="+kokkos @2.0:")
depends_on("kokkos +cuda +cuda_constexpr +cuda_lambda", when="+kokkos +cuda @2.0:")
depends_on("kokkos +rocm", when="+kokkos +rocm @2.0:")
+ depends_on("kokkos +openmp", when="+kokkos +openmp @2.0:")
depends_on("legion@cr", when="backend=legion @2.0:")
depends_on("legion+shared", when="backend=legion +shared @2.0:")
depends_on("legion+hdf5", when="backend=legion +hdf5 @2.0:")
depends_on("legion+kokkos", when="backend=legion +kokkos @2.0:")
+ depends_on("legion+openmp", when="backend=legion +openmp @2.0:")
depends_on("legion+cuda", when="backend=legion +cuda @2.0:")
depends_on("legion+rocm", when="backend=legion +rocm @2.0:")
depends_on("hdf5@1.10.7:", when="backend=legion +hdf5 @2.0:")
@@ -143,11 +127,11 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
depends_on("openmpi@4.1.0:", when="@2.0: ^openmpi")
# FleCSI 2.2+ documentation dependencies
- depends_on("py-sphinx", when="@2.2: +doc")
- depends_on("py-sphinx-rtd-theme", when="@2.2: +doc")
- depends_on("py-recommonmark", when="@2.2: +doc")
- depends_on("doxygen", when="@2.2: +doc")
- depends_on("graphviz", when="@2.2: +doc")
+ depends_on("py-sphinx", when="+doc")
+ depends_on("py-sphinx-rtd-theme", when="+doc")
+ depends_on("py-recommonmark", when="+doc")
+ depends_on("doxygen", when="+doc")
+ depends_on("graphviz", when="+doc")
# Propagate cuda_arch requirement to dependencies
for _flag in CudaPackage.cuda_arch_values:
@@ -182,6 +166,7 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
# Due to overhauls of Legion and Gasnet spackages
# flecsi@:1.4 can no longer be built with a usable legion
conflicts("backend=legion", when="@:1.4")
+ conflicts("+hdf5", when="@2: backend=hpx", msg="HPX backend doesn't support HDF5")
def cmake_args(self):
spec = self.spec
@@ -192,9 +177,7 @@ def cmake_args(self):
self.define_from_variant("CALIPER_DETAIL", "caliper_detail"),
self.define_from_variant("ENABLE_FLOG", "flog"),
self.define_from_variant("ENABLE_GRAPHVIZ", "graphviz"),
- self.define(
- "ENABLE_HDF5", "+hdf5" in spec and spec.variants["backend"].value != "hpx"
- ),
+ self.define_from_variant("ENABLE_HDF5", "hdf5"),
self.define_from_variant("ENABLE_KOKKOS", "kokkos"),
self.define_from_variant("ENABLE_OPENMP", "openmp"),
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
@@ -205,6 +188,9 @@ def cmake_args(self):
if "+rocm" in self.spec:
options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc))
options.append(self.define("CMAKE_C_COMPILER", self.spec["hip"].hipcc))
+ if "backend=legion" in self.spec:
+ # CMake pulled in via find_package(Legion) won't work without this
+ options.append(self.define("HIP_PATH", "{0}/hip".format(spec["hip"].prefix)))
elif "+kokkos" in self.spec:
options.append(self.define("CMAKE_CXX_COMPILER", self.spec["kokkos"].kokkos_cxx))
else:
@@ -217,7 +203,6 @@ def cmake_args(self):
self.define_from_variant("ENABLE_KOKKOS", "kokkos"),
self.define_from_variant("ENABLE_OPENMP", "openmp"),
self.define_from_variant("ENABLE_DOXYGEN", "doxygen"),
- self.define_from_variant("ENABLE_DOCUMENTATION", "doc"),
self.define_from_variant("ENABLE_COVERAGE_BUILD", "coverage"),
self.define_from_variant("ENABLE_FLOG", "flog"),
self.define_from_variant("ENABLE_FLECSIT", "tutorial"),
@@ -225,9 +210,7 @@ def cmake_args(self):
self.define_from_variant("ENABLE_FLECSTAN", "flecstan"),
self.define("ENABLE_MPI", spec.variants["backend"].value != "serial"),
self.define("ENABLE_UNIT_TESTS", self.run_tests or "+unit_tests" in spec),
- self.define(
- "ENABLE_HDF5", "+hdf5" in spec and spec.variants["backend"].value != "hpx"
- ),
+ self.define_from_variant("ENABLE_HDF5", "hdf5"),
]
if "+external_cinch" in spec:
diff --git a/var/spack/repos/builtin/packages/flecsph/package.py b/var/spack/repos/builtin/packages/flecsph/package.py
index 9d7985df08fb3b..0e47ba5ea3794e 100644
--- a/var/spack/repos/builtin/packages/flecsph/package.py
+++ b/var/spack/repos/builtin/packages/flecsph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fleur/package.py b/var/spack/repos/builtin/packages/fleur/package.py
index a4a2b60cb2d826..ec6c271ad44166 100644
--- a/var/spack/repos/builtin/packages/fleur/package.py
+++ b/var/spack/repos/builtin/packages/fleur/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Fleur(Package):
homepage = "https://www.flapw.de/MaX-5.1"
git = "https://iffgit.fz-juelich.de/fleur/fleur.git"
+ license("MIT")
+
version("develop", branch="develop")
version("5.1", tag="MaX-R5.1", commit="a482abd9511b16412c2222e2ac1b1a303acd454b")
version("5.0", tag="MaX-R5", commit="f2df362c3dad6ef39938807ea14e4ec4cb677723")
diff --git a/var/spack/repos/builtin/packages/flex/package.py b/var/spack/repos/builtin/packages/flex/package.py
index 115e18c5019b09..c887e3580b3ccf 100644
--- a/var/spack/repos/builtin/packages/flex/package.py
+++ b/var/spack/repos/builtin/packages/flex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Flex(AutotoolsPackage):
executables = ["^flex$"]
+ license("BSD-2-Clause")
+
version("2.6.4", sha256="e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995")
version(
"2.6.3",
diff --git a/var/spack/repos/builtin/packages/flexi/package.py b/var/spack/repos/builtin/packages/flexi/package.py
index ef0aa67961d027..36e1a6296854b7 100644
--- a/var/spack/repos/builtin/packages/flexi/package.py
+++ b/var/spack/repos/builtin/packages/flexi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Flexi(CMakePackage):
homepage = "https://www.flexi-project.org/"
git = "https://github.com/flexi-framework/flexi.git"
+ license("GPL-3.0-or-later")
+
version("master", preferred=True)
version("21.03.0", tag="v21.03.0", commit="d061978e5d96cfc96c06edc1bae9d92cbe540c18")
diff --git a/var/spack/repos/builtin/packages/flexiblas/package.py b/var/spack/repos/builtin/packages/flexiblas/package.py
index b42fc81153b941..369397b1562bf8 100644
--- a/var/spack/repos/builtin/packages/flexiblas/package.py
+++ b/var/spack/repos/builtin/packages/flexiblas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Flexiblas(CMakePackage):
homepage = "https://www.mpi-magdeburg.mpg.de/projects/flexiblas"
url = "https://csc.mpi-magdeburg.mpg.de/mpcsc/software/flexiblas/flexiblas-3.0.3.tar.gz"
+ license("GPL-3.0-or-later")
+
version("3.3.0", sha256="2696cd63d69b9a007f40f1f4a1ed83ad2fc46f6a930a22753bd221758c503ea2")
version("3.2.1", sha256="5be7e508e2dbb751b3bf372639d8e82a11f79e9ef6cbf243b64981c24a5703cf")
version("3.2.0", sha256="a3f4d66a30b6fa6473e492de86d34abc5f9d4e69d4d91ba23618388e8df05904")
@@ -22,3 +24,6 @@ class Flexiblas(CMakePackage):
# virtual dependency
provides("blas")
provides("lapack")
+
+ def cmake_args(self):
+ return [self.define("SYSCONFDIR", self.prefix.etc)]
diff --git a/var/spack/repos/builtin/packages/flibcpp/package.py b/var/spack/repos/builtin/packages/flibcpp/package.py
index a58e572c239176..72e52395444e1f 100644
--- a/var/spack/repos/builtin/packages/flibcpp/package.py
+++ b/var/spack/repos/builtin/packages/flibcpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Flibcpp(CMakePackage):
test_requires_compiler = True
+ license("MIT")
+
version("1.0.2", sha256="e2c11c1f58ca830eb7ac7f25d66fc3502c4a8d994192ee30c63a1c3b51aac241")
version("1.0.1", sha256="8569c71eab0257097a6aa666a6d86bdcb6cd6e31244d32cc5b2478d0e936ca7a")
version("0.5.2", sha256="b9b4eb6431d5b56a54c37f658df7455eafd3d204a5534903b127e0c8a1c9b827")
diff --git a/var/spack/repos/builtin/packages/flink/package.py b/var/spack/repos/builtin/packages/flink/package.py
index 220d14a89690cc..d8d351ad73fb69 100644
--- a/var/spack/repos/builtin/packages/flink/package.py
+++ b/var/spack/repos/builtin/packages/flink/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Flink(Package):
homepage = "https://flink.apache.org/"
url = "https://archive.apache.org/dist/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz"
+ license("BSD-2-Clause")
+
version("1.9.1", sha256="f69de344cd593e92f8261e19ae8a47b3910e9a70a7cd1ccfb1ecd1ff000b93ea")
version("1.9.0", sha256="a2245f68309e94ed54d86a680232a518aed9c5ea030bcc0b298bc8f27165eeb7")
version("1.8.3", sha256="1ba90e99f70ad7e2583d48d1404d1c09e327e8fb8fa716b1823e427464cc8dc0")
diff --git a/var/spack/repos/builtin/packages/flint/package.py b/var/spack/repos/builtin/packages/flint/package.py
index 0483b2979bb6a5..0c3560fb320c50 100644
--- a/var/spack/repos/builtin/packages/flint/package.py
+++ b/var/spack/repos/builtin/packages/flint/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Flint(Package):
url = "https://mirrors.mit.edu/sage/spkg/upstream/flint/flint-2.5.2.tar.gz"
git = "https://github.com/wbhart/flint2.git"
+ license("LGPL-2.1-or-later")
+
version("develop", branch="trunk")
version("2.5.2", sha256="cbf1fe0034533c53c5c41761017065f85207a1b770483e98b2392315f6575e87")
version("2.4.5", sha256="e489354df00f0d84976ccdd0477028693977c87ccd14f3924a89f848bb0e01e3")
diff --git a/var/spack/repos/builtin/packages/flit/package.py b/var/spack/repos/builtin/packages/flit/package.py
index 34ce6d378808e1..8aaad29b0098c6 100644
--- a/var/spack/repos/builtin/packages/flit/package.py
+++ b/var/spack/repos/builtin/packages/flit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fltk/package.py b/var/spack/repos/builtin/packages/fltk/package.py
index 0c5b8b706947dd..f860c05cc5ab0f 100644
--- a/var/spack/repos/builtin/packages/fltk/package.py
+++ b/var/spack/repos/builtin/packages/fltk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/flume/package.py b/var/spack/repos/builtin/packages/flume/package.py
index ead27adabb6d5b..7a57524b304c87 100644
--- a/var/spack/repos/builtin/packages/flume/package.py
+++ b/var/spack/repos/builtin/packages/flume/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Flume(Package):
homepage = "https://cwiki.apache.org/FLUME"
url = "https://www.apache.org/dist/flume/1.9.0/apache-flume-1.9.0-bin.tar.gz"
+ license("Apache-2.0")
+
version("1.9.0", sha256="0373ed5abfd44dc4ab23d9a02251ffd7e3b32c02d83a03546e97ec15a7b23619")
version("1.8.0", sha256="be1b554a5e23340ecc5e0b044215bf7828ff841f6eabe647b526d31add1ab5fa")
version("1.7.0", sha256="b97254cf37c36b6e5045f764095d86fc6d9a8043dda169e950547fcae35681ec")
diff --git a/var/spack/repos/builtin/packages/flux-core/package.py b/var/spack/repos/builtin/packages/flux-core/package.py
index bb150b154dc9b8..a992b2d3c09c24 100644
--- a/var/spack/repos/builtin/packages/flux-core/package.py
+++ b/var/spack/repos/builtin/packages/flux-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,7 +19,12 @@ class FluxCore(AutotoolsPackage):
maintainers("grondo")
+ license("LGPL-3.0-only")
+
version("master", branch="master")
+ version("0.58.0", sha256="3125ace7d4d3c99b362290344f97db74c06c37b5510cfcb746e1bf48e1dc1389")
+ version("0.57.0", sha256="a412b8370b5236605a5261c892f48d65c1357a83c88446cd1723236f58a807ce")
+ version("0.56.0", sha256="dfce5aa21bcb1f990397343cdff8a60542b2d18cbd929e46bdb444d21a961efb")
version("0.55.0", sha256="2925b8a084e9d1069a96de7689b515ad6f2051ecfb9fbbe4d2643507de7ccd30")
version("0.54.0", sha256="721fc3fff64b3b167ae55d0e29379ff3211729248ef97e3b9855816219063b42")
version("0.53.0", sha256="2f14d032a2d54f34e066c8a15c79917089e9f7f8558baa03dbfe63dbf56918b7")
diff --git a/var/spack/repos/builtin/packages/flux-pmix/package.py b/var/spack/repos/builtin/packages/flux-pmix/package.py
index db6d580a61c5c3..035d85075945dc 100644
--- a/var/spack/repos/builtin/packages/flux-pmix/package.py
+++ b/var/spack/repos/builtin/packages/flux-pmix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/flux-sched/package.py b/var/spack/repos/builtin/packages/flux-sched/package.py
index df38f938296043..5592f6664acf2f 100644
--- a/var/spack/repos/builtin/packages/flux-sched/package.py
+++ b/var/spack/repos/builtin/packages/flux-sched/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,7 +21,12 @@ class FluxSched(CMakePackage, AutotoolsPackage):
maintainers("grondo")
+ license("LGPL-3.0-only")
+
version("master", branch="master")
+ version("0.32.0", sha256="f0b88881f0154057de3dd5485a3e1cfc0b9b64c98052bda7d5fed7c05b5e02f3")
+ version("0.31.0", sha256="4440156b7f2d43e3db2cbfa0dbc43671074c397525f6b97e3748c3d96a035cdb")
+ version("0.30.0", sha256="1ccb2e53f4caede0233f19b2707e868f0cee9d2c957a06f97c22936ba9a43552")
version("0.29.0", sha256="b93b18788e677535aa8ef945cdbeeced6d1408a4d16cb4a816ead53f31dd78d2")
version("0.28.0", sha256="9431c671bed5d76fd95b4a4a7f36224d4bf76f416a2a1a5c4908f3ca790d434d")
version("0.27.0", sha256="1e131924440c904fa0c925b7aa14c47b97f4e67b43af7efd2ebc0ef7ce90eb7c")
diff --git a/var/spack/repos/builtin/packages/flux-security/package.py b/var/spack/repos/builtin/packages/flux-security/package.py
index 71f0081f7125be..1d108f8449ba55 100644
--- a/var/spack/repos/builtin/packages/flux-security/package.py
+++ b/var/spack/repos/builtin/packages/flux-security/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,7 +19,10 @@ class FluxSecurity(AutotoolsPackage):
maintainers("grondo")
+ license("LGPL-3.0-or-later")
+
version("master", branch="master")
+ version("0.11.0", sha256="d1ef78a871155a252f07e4f0a636eb272d6c2048d5e0e943860dd687c6cf808a")
version("0.10.0", sha256="b0f39c5e32322f901454469ffd6154019b6dffafc064b55b3e593f70db6a6f68")
version("0.9.0", sha256="2258120c6f32ca0b5b13b166bae56d9bd82a44c6eeaa6bc6187e4a4419bdbcc0")
version("0.8.0", sha256="9963628063b4abdff6bece03208444c8f23fbfda33c20544c48b21e9f4819ce2")
diff --git a/var/spack/repos/builtin/packages/fluxbox/package.py b/var/spack/repos/builtin/packages/fluxbox/package.py
index c7d7efdd9647ae..4559ad9c80f619 100644
--- a/var/spack/repos/builtin/packages/fluxbox/package.py
+++ b/var/spack/repos/builtin/packages/fluxbox/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Fluxbox(AutotoolsPackage):
homepage = "http://fluxbox.org/"
url = "http://sourceforge.net/projects/fluxbox/files/fluxbox/1.3.7/fluxbox-1.3.7.tar.gz"
+ license("MIT")
+
version("1.3.7", sha256="c99e2baa06fff1e96342b20415059d12ff1fa2917ade0173c75b2fa570295b9f")
# Referenced:https://sourceforge.net/p/fluxbox/bugs/1171/
diff --git a/var/spack/repos/builtin/packages/fms/package.py b/var/spack/repos/builtin/packages/fms/package.py
index 17b7aa4322ec1c..06727b1ccb480e 100644
--- a/var/spack/repos/builtin/packages/fms/package.py
+++ b/var/spack/repos/builtin/packages/fms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Fms(CMakePackage):
url = "https://github.com/NOAA-GFDL/FMS/archive/refs/tags/2022.04.tar.gz"
git = "https://github.com/NOAA-GFDL/FMS.git"
+ license("LGPL-3.0-or-later")
+
maintainers("AlexanderRichert-NOAA", "Hang-Lei-NOAA", "edwardhartnett", "rem1776", "climbfuji")
version("2023.04", sha256="feb895ea2b3269ca66df296199a36af335f0dc281e2dab2f1bfebb19fd9c22c4")
diff --git a/var/spack/repos/builtin/packages/fmt/package.py b/var/spack/repos/builtin/packages/fmt/package.py
index ea7abc909284ec..6ee85c35ed23f4 100644
--- a/var/spack/repos/builtin/packages/fmt/package.py
+++ b/var/spack/repos/builtin/packages/fmt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,8 +13,13 @@ class Fmt(CMakePackage):
homepage = "https://fmt.dev/"
url = "https://github.com/fmtlib/fmt/releases/download/7.1.3/fmt-7.1.3.zip"
+ git = "https://github.com/fmtlib/fmt.git"
maintainers("msimberg")
+ license("MIT")
+
+ version("10.2.1", sha256="312151a2d13c8327f5c9c586ac6cf7cddc1658e8f53edae0ec56509c8fa516c9")
+ version("10.2.0", sha256="8a942861a94f8461a280f823041cde8f620a6d8b0e0aacc98c15bb5a9dd92399")
version("10.1.1", sha256="b84e58a310c9b50196cda48d5678d5fa0849bca19e5fdba6b684f0ee93ed9d1b")
version("10.1.0", sha256="d725fa83a8b57a3cedf238828fa6b167f963041e8f9f7327649bddc68ae316f4")
version("10.0.0", sha256="4943cb165f3f587f26da834d3056ee8733c397e024145ca7d2a8a96bb71ac281")
@@ -81,6 +86,13 @@ class Fmt(CMakePackage):
when="@9.0.0:9.1.0",
)
+ # Fix compilation with clang in CUDA mode: https://github.com/fmtlib/fmt/issues/3740
+ patch(
+ "https://github.com/fmtlib/fmt/commit/89860eb9013a345608c8144b1aad5f12b0682d7e.patch?full_index=1",
+ sha256="6ef12fe60a2b3625139c6d29c748dafd81b51e2a0690c1fa37604ed5b15615e0",
+ when="@10.0.0:10.1.1",
+ )
+
def cmake_args(self):
spec = self.spec
args = []
diff --git a/var/spack/repos/builtin/packages/foam-extend/package.py b/var/spack/repos/builtin/packages/foam-extend/package.py
index ffd431f18a460c..a9a333dde88b96 100644
--- a/var/spack/repos/builtin/packages/foam-extend/package.py
+++ b/var/spack/repos/builtin/packages/foam-extend/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -53,13 +53,16 @@ class FoamExtend(Package):
and owner of the OPENFOAM trademark.
"""
- homepage = "http://www.extend-project.de/"
+ homepage = "https://sourceforge.net/projects/foam-extend/"
+ license("GPL-3.0-only")
+
+ version("5.0", git="http://git.code.sf.net/p/foam-extend/foam-extend-5.0.git")
version("4.1", git="http://git.code.sf.net/p/foam-extend/foam-extend-4.1.git")
version("4.0", git="http://git.code.sf.net/p/foam-extend/foam-extend-4.0.git")
version("3.2", git="http://git.code.sf.net/p/foam-extend/foam-extend-3.2.git")
- version("3.1", git="http://git.code.sf.net/p/foam-extend/foam-extend-3.1.git")
- version("3.0", git="http://git.code.sf.net/p/foam-extend/foam-extend-3.0.git")
+ version("3.1", git="http://git.code.sf.net/p/foam-extend/foam-extend-3.1.git", deprecated=True)
+ version("3.0", git="http://git.code.sf.net/p/foam-extend/foam-extend-3.0.git", deprecated=True)
# variant('int64', default=False,
# description='Compile with 64-bit label')
@@ -87,6 +90,7 @@ class FoamExtend(Package):
# mgridgen is statically linked
depends_on("parmgridgen", when="+parmgridgen", type="build")
depends_on("paraview@:5.0.1", when="+paraview")
+ depends_on("mesquite")
# General patches
common = ["spack-Allwmake", "README-spack"]
@@ -201,10 +205,28 @@ def archlib(self):
"""Relative location of architecture-specific libraries"""
return join_path("lib", self.foam_arch)
+ def rename_source(self):
+ """The github tarfiles have weird names that do not correspond to the
+ canonical name. We need to rename these, but leave a symlink for
+ spack to work with.
+ """
+ # Note that this particular Foam-Extned requires absolute directories
+ # to build correctly!
+ parent = os.path.dirname(self.stage.source_path)
+ original = os.path.basename(self.stage.source_path)
+ target = "foam-extend-{0}".format(self.version)
+ # Could also grep through etc/bashrc for WM_PROJECT_VERSION
+ with working_dir(parent):
+ if original != target and not os.path.lexists(target):
+ os.rename(original, target)
+ os.symlink(target, original)
+ tty.info("renamed {0} -> {1}".format(original, target))
+
def patch(self):
"""Adjust OpenFOAM build for spack.
Where needed, apply filter as an alternative to normal patching."""
add_extra_files(self, self.common, self.assets)
+ self.rename_source()
# Adjust ParMGridGen - this is still a mess
files = [
@@ -262,6 +284,12 @@ def configure(self, spec, prefix):
"flex": {"FLEX_SYSTEM": 1, "FLEX_DIR": spec["flex"].prefix},
"bison": {"BISON_SYSTEM": 1, "BISON_DIR": spec["flex"].prefix},
"zlib": {"ZLIB_SYSTEM": 1, "ZLIB_DIR": spec["zlib-api"].prefix},
+ "mesquite": {
+ "MESQUITE_SYSTEM": 1,
+ "MESQUITE_DIR": spec["mesquite"].prefix,
+ "MESQUITE_INCLUDE_DIR": spec["mesquite"].prefix.include,
+ "NESQUITE_LIB_DIR": spec["mesquite"].prefix.lib,
+ },
}
# Adjust configuration via prefs - sort second
self.etc_prefs["001"].update(self.foam_arch.foam_dict())
diff --git a/var/spack/repos/builtin/packages/folly/package.py b/var/spack/repos/builtin/packages/folly/package.py
index b099f73e7be8d4..f621fe475c0ce6 100644
--- a/var/spack/repos/builtin/packages/folly/package.py
+++ b/var/spack/repos/builtin/packages/folly/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,9 @@ class Folly(CMakePackage):
homepage = "https://github.com/facebook/folly"
url = "https://github.com/facebook/folly/releases/download/v2021.05.24.00/folly-v2021.05.24.00.tar.gz"
+
+ license("MIT")
+
version(
"2021.05.24.00", sha256="9d308adefe4670637f5c7d96309b3b394ac3fa129bc954f5dfbdd8b741c02aad"
)
diff --git a/var/spack/repos/builtin/packages/font-util/package.py b/var/spack/repos/builtin/packages/font-util/package.py
index fbfe503621d974..8dddef8645b34f 100644
--- a/var/spack/repos/builtin/packages/font-util/package.py
+++ b/var/spack/repos/builtin/packages/font-util/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class FontUtil(AutotoolsPackage, XorgPackage):
homepage = "https://cgit.freedesktop.org/xorg/font/util"
xorg_mirror_path = "font/font-util-1.3.1.tar.gz"
+ license("custom")
+
version("1.4.0", sha256="30b90fe52347916be9b08f95f717f17c9c1f58bef8cabb49014d0fdd2b0df643")
version("1.3.2", sha256="f115a3735604de1e852a4bf669be0269d8ce8f21f8e0e74ec5934b31dadc1e76")
version("1.3.1", sha256="34ebb0c9c14e0a392cdd5ea055c92489ad88d55ae148b2f1cfded0f3f63f2b5b")
diff --git a/var/spack/repos/builtin/packages/fontcacheproto/package.py b/var/spack/repos/builtin/packages/fontcacheproto/package.py
index d41187b5edf5fc..50c66ff1a8ef2c 100644
--- a/var/spack/repos/builtin/packages/fontcacheproto/package.py
+++ b/var/spack/repos/builtin/packages/fontcacheproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,4 +12,6 @@ class Fontcacheproto(AutotoolsPackage, XorgPackage):
homepage = "https://cgit.freedesktop.org/xorg/proto/fontcacheproto"
xorg_mirror_path = "proto/fontcacheproto-0.1.3.tar.gz"
+ license("BSD-2-Clause")
+
version("0.1.3", sha256="759b4863b55a25bfc8f977d8ed969da0b99b3c823f33c674d6da5825f9df9a79")
diff --git a/var/spack/repos/builtin/packages/fontconfig/package.py b/var/spack/repos/builtin/packages/fontconfig/package.py
index d45b261d133aa4..f9fcba28e41b6c 100644
--- a/var/spack/repos/builtin/packages/fontconfig/package.py
+++ b/var/spack/repos/builtin/packages/fontconfig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Fontconfig(AutotoolsPackage):
homepage = "https://www.freedesktop.org/wiki/Software/fontconfig/"
url = "https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.12.3.tar.gz"
+ license("MIT")
+
version("2.14.2", sha256="3ba2dd92158718acec5caaf1a716043b5aa055c27b081d914af3ccb40dce8a55")
version("2.13.94", sha256="246d1640a7e54fba697b28e4445f4d9eb63dda1b511d19986249368ee7191882")
version("2.13.93", sha256="0f302a18ee52dde0793fe38b266bf269dfe6e0c0ae140e30d72c6cca5dc08db5")
diff --git a/var/spack/repos/builtin/packages/fontsproto/package.py b/var/spack/repos/builtin/packages/fontsproto/package.py
index ed5c4f25c807bb..f5bdd2b2f171a5 100644
--- a/var/spack/repos/builtin/packages/fontsproto/package.py
+++ b/var/spack/repos/builtin/packages/fontsproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fonttosfnt/package.py b/var/spack/repos/builtin/packages/fonttosfnt/package.py
index d9624b202c68f6..bcda2bee772c21 100644
--- a/var/spack/repos/builtin/packages/fonttosfnt/package.py
+++ b/var/spack/repos/builtin/packages/fonttosfnt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Fonttosfnt(AutotoolsPackage, XorgPackage):
homepage = "https://cgit.freedesktop.org/xorg/app/fonttosfnt"
xorg_mirror_path = "app/fonttosfnt-1.0.4.tar.gz"
+ license("MIT")
+
version("1.2.2", sha256="8111317c38f63aff08c717595e65381af7ebfc54ccc23511c2042ef1cd86c648")
version("1.0.4", sha256="3873636be5b3b8e4160070e8f9a7a9221b5bd5efbf740d7abaa9092e10732673")
diff --git a/var/spack/repos/builtin/packages/foonathan-memory/package.py b/var/spack/repos/builtin/packages/foonathan-memory/package.py
index 6ff55036c1a53a..4c288031bd4638 100644
--- a/var/spack/repos/builtin/packages/foonathan-memory/package.py
+++ b/var/spack/repos/builtin/packages/foonathan-memory/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class FoonathanMemory(CMakePackage):
homepage = "https://memory.foonathan.net/"
url = "https://github.com/foonathan/memory/archive/v0.7.tar.gz"
+ license("Zlib")
+
version("0.7-3", sha256="4203d15db22a94a3978eeb1afb59a37d35c57c0f148733f0f1a53a6281cb74dd")
version("0.7", sha256="01a7cc5a5ebddbd71bec69c89562a4a2ecd7c29334c0a29d38d83e7f7f66eb53")
diff --git a/var/spack/repos/builtin/packages/form/package.py b/var/spack/repos/builtin/packages/form/package.py
index 13c303ca508802..0cd7a1a85d174d 100644
--- a/var/spack/repos/builtin/packages/form/package.py
+++ b/var/spack/repos/builtin/packages/form/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,7 +11,9 @@ class Form(AutotoolsPackage):
homepage = "https://www.nikhef.nl/~form/"
url = "https://github.com/vermaseren/form/releases/download/v4.2.1/form-4.2.1.tar.gz"
- maintainers("iarspider", "tueda")
+ maintainers("tueda")
+
+ license("GPL-3.0-only")
version("4.3.1", sha256="f1f512dc34fe9bbd6b19f2dfef05fcb9912dfb43c8368a75b796ec472ee8bbce")
version("4.3.0", sha256="b234e0d095f73ecb0904cdc3b0d8d8323a9fa7f46770a52fb22267c624aafbf6")
diff --git a/var/spack/repos/builtin/packages/formetis/package.py b/var/spack/repos/builtin/packages/formetis/package.py
index 71dd87d0667d48..747eaa9eaf7636 100644
--- a/var/spack/repos/builtin/packages/formetis/package.py
+++ b/var/spack/repos/builtin/packages/formetis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Formetis(CMakePackage):
test_requires_compiler = True
+ license("MIT")
+
version("0.0.2", sha256="0067c03ca822f4a3955751acb470f21eed489256e2ec5ff24741eb2b638592f1")
variant("mpi", default=False, description="Enable ParMETIS support")
diff --git a/var/spack/repos/builtin/packages/fortran/package.py b/var/spack/repos/builtin/packages/fortran/package.py
index 9cbcdc7fd30dcf..082d1224c64288 100644
--- a/var/spack/repos/builtin/packages/fortran/package.py
+++ b/var/spack/repos/builtin/packages/fortran/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fortrilinos/package.py b/var/spack/repos/builtin/packages/fortrilinos/package.py
index f1a51a8909ceb3..a90a954f6f20af 100644
--- a/var/spack/repos/builtin/packages/fortrilinos/package.py
+++ b/var/spack/repos/builtin/packages/fortrilinos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -27,6 +27,8 @@ class Fortrilinos(CMakePackage):
tags = ["e4s"]
test_requires_compiler = True
+ license("BSD-3-Clause")
+
version("2.3.0", sha256="7be5efecaea61ad773d3fe182aa28735ebc3e7af821e1805ad284e4ed4e31a49")
version("2.2.0", sha256="9e73fc71066bfaf7cde040e1467baf7a1ec797ff2874add49f9741e93f9fffb5")
version("2.1.0", sha256="2c62bb6106ae86a804497d549080cb6877c5d860b6bf2e72ec5cbcbbe63e3b5b")
diff --git a/var/spack/repos/builtin/packages/fossil/package.py b/var/spack/repos/builtin/packages/fossil/package.py
index 4ce3c6a45ab5bd..6c62b5b4a526fc 100644
--- a/var/spack/repos/builtin/packages/fossil/package.py
+++ b/var/spack/repos/builtin/packages/fossil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Fossil(AutotoolsPackage):
maintainers("eschnett")
+ license("BSD-2-Clause")
+
version(
"2.18",
url="https://fossil-scm.org/home/tarball/84f25d7eb10c0714109d69bb2809abfa8b4b5c3d73b151a5b10df724dacd46d8/fossil-src-2.18.tar.gz",
diff --git a/var/spack/repos/builtin/packages/foundationdb/package.py b/var/spack/repos/builtin/packages/foundationdb/package.py
index 61754d67814d41..710bdde1504958 100644
--- a/var/spack/repos/builtin/packages/foundationdb/package.py
+++ b/var/spack/repos/builtin/packages/foundationdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Foundationdb(CMakePackage):
homepage = "https://www.foundationdb.org/"
url = "https://github.com/apple/foundationdb/archive/6.3.3.tar.gz"
+ license("Apache-2.0")
+
version("6.3.4", sha256="80a3d7f005b42e7b63abd27728f4d7f4088eea65aafb6942424c97a704b60fd4")
version("6.3.3", sha256="1fd46c2281ea283d17fc5044c57a3dbef371a3ed31733abf38610c459a4ed79d")
version("6.3.2", sha256="e930510937f8db3aba73262494eedcafb75cd3f523a8b5cd8254250af5da6086")
diff --git a/var/spack/repos/builtin/packages/fox/package.py b/var/spack/repos/builtin/packages/fox/package.py
index 2d0166e3fcf496..98e44974736447 100644
--- a/var/spack/repos/builtin/packages/fox/package.py
+++ b/var/spack/repos/builtin/packages/fox/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Fox(AutotoolsPackage):
homepage = "http://fox-toolkit.org/"
url = "http://fox-toolkit.org/ftp/fox-1.7.67.tar.gz"
+ license("LGPL-3.0-or-later")
+
version("1.7.67", sha256="7e511685119ef096fa90d334da46f0e50cfed8d414df32d80a7850442052f57d")
version(
"1.6.57",
diff --git a/var/spack/repos/builtin/packages/fp16/package.py b/var/spack/repos/builtin/packages/fp16/package.py
index 5e56aec0113a74..d971dc6a1ebf18 100644
--- a/var/spack/repos/builtin/packages/fp16/package.py
+++ b/var/spack/repos/builtin/packages/fp16/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Fp16(CMakePackage):
homepage = "https://github.com/Maratyszcza/FP16/"
git = "https://github.com/Maratyszcza/FP16.git"
+ license("MIT")
+
version("master", branch="master")
version("2020-05-14", commit="4dfe081cf6bcd15db339cf2680b9281b8451eeb3") # py-torch@1.5:
version("2018-11-28", commit="febbb1c163726b5db24bed55cc9dc42529068997") # py-torch@1.1:1.4
diff --git a/var/spack/repos/builtin/packages/fpart/package.py b/var/spack/repos/builtin/packages/fpart/package.py
index 1a6d36331c935d..e0da5fae0134d0 100644
--- a/var/spack/repos/builtin/packages/fpart/package.py
+++ b/var/spack/repos/builtin/packages/fpart/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,13 +17,34 @@ class Fpart(AutotoolsPackage):
maintainers("drkrynstrng")
+ license("BSD-2-Clause")
+
version("master", branch="master")
+ version("1.6.0", sha256="ed1fac2853fc421071b72e4c5d8455a231bc30e50034db14af8b0485ece6e097")
version("1.5.1", sha256="c353a28f48e4c08f597304cb4ebb88b382f66b7fabfc8d0328ccbb0ceae9220c")
+ variant("embfts", default=False, description="Build with embedded fts functions")
+ variant("static", default=False, description="Build static binary")
+ variant("debug", default=False, description="Build with debugging support")
+ # fpsync has the following run dependencies, at least one is required
+ variant(
+ "fpsynctools",
+ default="rsync",
+ values=("rsync", "tar", "cpio"),
+ multi=True,
+ description="Tools used by fpsync to copy files",
+ )
+
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")
- # fpsync has the following run dependencies
- depends_on("rsync", type="run")
- depends_on("tar", type="run")
- depends_on("cpio", type="run")
+ depends_on("rsync", when="fpsynctools=rsync", type="run")
+ depends_on("tar", when="fpsynctools=tar", type="run")
+ depends_on("cpio", when="fpsynctools=cpio", type="run")
+
+ def configure_args(self):
+ config_args = []
+ config_args.extend(self.enable_or_disable("embfts"))
+ config_args.extend(self.enable_or_disable("static"))
+ config_args.extend(self.enable_or_disable("debug"))
+ return config_args
diff --git a/var/spack/repos/builtin/packages/fpc/package.py b/var/spack/repos/builtin/packages/fpc/package.py
index 895fcfd30bb0ce..611aa3bd610037 100644
--- a/var/spack/repos/builtin/packages/fpc/package.py
+++ b/var/spack/repos/builtin/packages/fpc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Fpc(Package):
homepage = "https://www.freepascal.org/"
url = "https://downloads.sourceforge.net/project/freepascal/Linux/3.0.2/fpc-3.0.2.x86_64-linux.tar"
+ license("GPL-2.0-or-later AND LGPL-2.1-or-later")
+
version("3.0.2", sha256="b5b27fdbc31b1d05b6a898f3c192d8a5083050562b29c19eb9eb018ba4482bd8")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/fpchecker/package.py b/var/spack/repos/builtin/packages/fpchecker/package.py
index ca832e9d3f030b..0607838e56c6d9 100644
--- a/var/spack/repos/builtin/packages/fpchecker/package.py
+++ b/var/spack/repos/builtin/packages/fpchecker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Fpchecker(CMakePackage):
maintainers("ilagunap")
+ license("Apache-2.0")
+
version("master", branch="master")
version("0.4.0", sha256="59d18a3fb5211645bb1cfde1502ba78a9cca4234604dfd879534d7f13ae5d5b9")
version("0.3.5", sha256="ed7277318af8e0a22b05c5655c9acc99e1d3036af41095ec2f1b1ada4d6e90f6")
diff --git a/var/spack/repos/builtin/packages/fping/package.py b/var/spack/repos/builtin/packages/fping/package.py
index 3cfa7753f95995..5a243a48082036 100644
--- a/var/spack/repos/builtin/packages/fping/package.py
+++ b/var/spack/repos/builtin/packages/fping/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Fping(AutotoolsPackage):
homepage = "https://fping.org/"
url = "https://github.com/schweikert/fping/archive/v4.2.tar.gz"
+ license("MIT")
+
version("5.1", sha256="3ec5cdae259a948956b1146b2ecb66276eee4206a77201251833922eca0de7f4")
version("4.2", sha256="49b0ac77fd67c1ed45c9587ffab0737a3bebcfa5968174329f418732dbf655d4")
version("4.1", sha256="1da45b1d8c2d38b52bebd4f8b1617ddfae678e9f6436dafa6f62e97b8ecfc93c")
diff --git a/var/spack/repos/builtin/packages/fplll/package.py b/var/spack/repos/builtin/packages/fplll/package.py
index 005becbf2e28e1..4186175b510905 100644
--- a/var/spack/repos/builtin/packages/fplll/package.py
+++ b/var/spack/repos/builtin/packages/fplll/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Fplll(AutotoolsPackage):
homepage = "https://github.com/fplll/fplll"
url = "https://github.com/fplll/fplll/releases/download/5.4.0/fplll-5.4.0.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("5.4.4", sha256="0fd9d378f04ff886d8864728baf5d90b8b0b82c1e541e92550644fb54f75691d")
version("5.4.1", sha256="7bd887957173aa592091772c1c36f6aa606b3b2ace0d14e2c26c7463dcf2deb7")
version("5.4.0", sha256="fe192a65a56439b098e26e3b7ee224dda7c2c73a58f36ef2cc6f9185ae8c482b")
diff --git a/var/spack/repos/builtin/packages/fplo/package.py b/var/spack/repos/builtin/packages/fplo/package.py
index a9e8cbc2c2fb11..f294fc05d346ac 100644
--- a/var/spack/repos/builtin/packages/fplo/package.py
+++ b/var/spack/repos/builtin/packages/fplo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fpm/package.py b/var/spack/repos/builtin/packages/fpm/package.py
index 6c8d1811bb79f6..a8c410e31a0aa7 100644
--- a/var/spack/repos/builtin/packages/fpm/package.py
+++ b/var/spack/repos/builtin/packages/fpm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,9 @@ class Fpm(Package):
maintainers("awvwgk")
+ license("MIT")
+
+ version("0.10.0", sha256="00d687e17bdada4dcae0ff1ea2e01bad287dcc77a74c3bbde0c9ff9633b655bb")
version("0.9.0", sha256="484debabd7d22186ac41f865ddf63475c279a61a51aaff5636ed615860b5b8d7")
version("0.8.2", sha256="67fd8f4f78d19662c61855f531465e347ab0bc913ba59bd419f75f4022d2cd70")
version("0.8.1", sha256="0bd978bb1d3f2a3297d82a0d6ac009746a466cfa9a59ba3b6513b74e5ce4b7bf")
diff --git a/var/spack/repos/builtin/packages/fpocket/package.py b/var/spack/repos/builtin/packages/fpocket/package.py
index bf8d64aa9e8e12..3b50ee68832398 100644
--- a/var/spack/repos/builtin/packages/fpocket/package.py
+++ b/var/spack/repos/builtin/packages/fpocket/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+from spack.build_systems import makefile
from spack.package import *
@@ -14,16 +15,23 @@ class Fpocket(MakefilePackage):
homepage = "https://github.com/Discngine/fpocket"
url = "https://github.com/Discngine/fpocket/archive/refs/tags/4.1.tar.gz"
+ license("MIT")
+
version("4.1", "1a2af2d3f2df42de67301996db3b93c7eaff0375f866443c0468dcf4b1750688")
depends_on("netcdf-c")
depends_on("netcdf-cxx")
+ depends_on("qhull")
+
+class MakefileBuilder(makefile.MakefileBuilder):
def setup_build_environment(self, env):
- if self.compiler.name == "gcc":
+ if self.pkg.compiler.name == "gcc":
env.set("CXX", "g++")
- def edit(self, spec, prefix):
+ def edit(self, pkg, spec, prefix):
+ mkdirp(prefix.lib)
makefile = FileFilter("makefile")
makefile.filter("BINDIR .*", f"BINDIR = {prefix}/bin")
makefile.filter("MANDIR .*", f"MANDIR = {prefix}/man/man8")
+ makefile.filter("LIBDIR .*", f"LIBDIR = {prefix}/lib")
diff --git a/var/spack/repos/builtin/packages/fpzip/package.py b/var/spack/repos/builtin/packages/fpzip/package.py
index 269ce21bcd9570..7a5c011b196eda 100644
--- a/var/spack/repos/builtin/packages/fpzip/package.py
+++ b/var/spack/repos/builtin/packages/fpzip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,5 +15,7 @@ class Fpzip(CMakePackage):
maintainers("robertu94")
+ license("BSD-3-Clause")
+
version("master", branch="master")
version("1.3.0", sha256="248df7d84259e3feaa4c4797956b2a77c3fcd734e8f8fdc51ce171dcf4f0136c")
diff --git a/var/spack/repos/builtin/packages/fq/package.py b/var/spack/repos/builtin/packages/fq/package.py
index e0b73c3906bba4..edd4446e1840e4 100644
--- a/var/spack/repos/builtin/packages/fq/package.py
+++ b/var/spack/repos/builtin/packages/fq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Fq(Package):
url = "https://github.com/stjude-rust-labs/fq/archive/refs/tags/v0.10.0.tar.gz"
maintainers("pabloaledo")
+ license("MIT")
+
version("0.10.0", sha256="34007ab71a873e1b066d910e90c5bdac3dcc4299ae6c9891ac6d8233cffeabb8")
depends_on("rust")
diff --git a/var/spack/repos/builtin/packages/fqtrim/package.py b/var/spack/repos/builtin/packages/fqtrim/package.py
index ea8ced3ae10697..88d80ee3459344 100644
--- a/var/spack/repos/builtin/packages/fqtrim/package.py
+++ b/var/spack/repos/builtin/packages/fqtrim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Fqtrim(MakefilePackage):
homepage = "https://ccb.jhu.edu/software/fqtrim/"
url = "https://ccb.jhu.edu/software/fqtrim/dl/fqtrim-0.9.7.tar.gz"
+ license("Artistic-2.0")
+
version("0.9.7", sha256="4951538f69dde14a23fc4841ff020434d26eb9622c4e06b43c068c702aa3d0d6")
def build(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/fr-hit/package.py b/var/spack/repos/builtin/packages/fr-hit/package.py
index 09b6cf06ac273d..93ab62e574192b 100644
--- a/var/spack/repos/builtin/packages/fr-hit/package.py
+++ b/var/spack/repos/builtin/packages/fr-hit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class FrHit(Package):
homepage = "http://weizhong-lab.ucsd.edu/frhit"
url = "http://weizhong-lab.ucsd.edu/frhit/fr-hit-v0.7.1-2013-02-20.tar.gz"
+ license("MIT")
+
version(
"0.7.1-2013-02-20",
sha256="44dcfeb73106529fcefb02c017ec7b95b04b6523a2a57683b2bc905c142e62eb",
diff --git a/var/spack/repos/builtin/packages/fraggenescan/package.py b/var/spack/repos/builtin/packages/fraggenescan/package.py
index 50ef68c0f3a35e..89aab4e7368b40 100644
--- a/var/spack/repos/builtin/packages/fraggenescan/package.py
+++ b/var/spack/repos/builtin/packages/fraggenescan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/freebayes/package.py b/var/spack/repos/builtin/packages/freebayes/package.py
index f54c7955211c23..003a652cd7528d 100644
--- a/var/spack/repos/builtin/packages/freebayes/package.py
+++ b/var/spack/repos/builtin/packages/freebayes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Freebayes(MesonPackage):
url = "https://github.com/freebayes/freebayes/releases/download/v1.3.5/freebayes-1.3.5-src.tar.gz"
git = "https://github.com/ekg/freebayes.git"
+ license("MIT")
+
version("1.3.6", sha256="6016c1e58fdf34a1f6f77b720dd8e12e13a127f7cbac9c747e47954561b437f5")
version("1.3.5", sha256="7e2635690e916ed85cec36b3263e6e5357413a4f2bf3035362d9749335e8a696")
version(
diff --git a/var/spack/repos/builtin/packages/freecad/package.py b/var/spack/repos/builtin/packages/freecad/package.py
index fa0ee537518397..1a395a5dad3d3a 100644
--- a/var/spack/repos/builtin/packages/freecad/package.py
+++ b/var/spack/repos/builtin/packages/freecad/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Freecad(CMakePackage):
maintainers("aweits")
+ license("LGPL-2.0-or-later")
+
version("0.20.2", sha256="46922f3a477e742e1a89cd5346692d63aebb2b67af887b3e463e094a4ae055da")
depends_on("opencascade")
diff --git a/var/spack/repos/builtin/packages/freefem/package.py b/var/spack/repos/builtin/packages/freefem/package.py
index 0f00f844cb6d3c..712a1b9b96baf5 100644
--- a/var/spack/repos/builtin/packages/freefem/package.py
+++ b/var/spack/repos/builtin/packages/freefem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/freeglut/package.py b/var/spack/repos/builtin/packages/freeglut/package.py
index 9114f6e1e2a943..993f4dc29e26f0 100644
--- a/var/spack/repos/builtin/packages/freeglut/package.py
+++ b/var/spack/repos/builtin/packages/freeglut/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Freeglut(CMakePackage, SourceforgePackage):
homepage = "http://freeglut.sourceforge.net/"
sourceforge_mirror_path = "freeglut/freeglut-3.2.1.tar.gz"
+ license("MIT")
+
version("3.2.2", sha256="c5944a082df0bba96b5756dddb1f75d0cd72ce27b5395c6c1dde85c2ff297a50")
version("3.2.1", sha256="d4000e02102acaf259998c870e25214739d1f16f67f99cb35e4f46841399da68")
version("3.0.0", sha256="2a43be8515b01ea82bcfa17d29ae0d40bd128342f0930cd1f375f1ff999f76a2")
diff --git a/var/spack/repos/builtin/packages/freeimage/package.py b/var/spack/repos/builtin/packages/freeimage/package.py
index 3b216a70845f68..a0e6ae2e2608f3 100644
--- a/var/spack/repos/builtin/packages/freeimage/package.py
+++ b/var/spack/repos/builtin/packages/freeimage/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/freeipmi/package.py b/var/spack/repos/builtin/packages/freeipmi/package.py
index f6eb5284ce1021..2e2b23a614415e 100644
--- a/var/spack/repos/builtin/packages/freeipmi/package.py
+++ b/var/spack/repos/builtin/packages/freeipmi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,8 @@ class Freeipmi(AutotoolsPackage):
homepage = "https://www.gnu.org/software/freeipmi/"
url = "https://ftp.gnu.org/gnu/freeipmi/freeipmi-1.6.4.tar.gz"
+ license("GPL-3.0-or-later")
+
version("1.6.9", sha256="f25e1c35f3d0f1b5a99cc31ecc2353ca83ed46a15163842fba870127dc9c8206")
version("1.6.4", sha256="65dfbb95a30438ba247f01a58498862a37d2e71c8c950bcfcee459d079241a3c")
diff --git a/var/spack/repos/builtin/packages/freesasa/package.py b/var/spack/repos/builtin/packages/freesasa/package.py
index 201fbd596527de..65e50b4d7e36b0 100644
--- a/var/spack/repos/builtin/packages/freesasa/package.py
+++ b/var/spack/repos/builtin/packages/freesasa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/freesurfer/package.py b/var/spack/repos/builtin/packages/freesurfer/package.py
index 0e7188db06c51a..912de00d491162 100644
--- a/var/spack/repos/builtin/packages/freesurfer/package.py
+++ b/var/spack/repos/builtin/packages/freesurfer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/freetype/package.py b/var/spack/repos/builtin/packages/freetype/package.py
index 057bf8d317822d..7545e7578fa79e 100644
--- a/var/spack/repos/builtin/packages/freetype/package.py
+++ b/var/spack/repos/builtin/packages/freetype/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Freetype(AutotoolsPackage, CMakePackage):
maintainers("michaelkuhn")
+ license("FTL OR GPL-2.0-or-later")
+
version("2.11.1", sha256="f8db94d307e9c54961b39a1cc799a67d46681480696ed72ecf78d4473770f09b")
version("2.11.0", sha256="a45c6b403413abd5706f3582f04c8339d26397c4304b78fa552f2215df64101f")
version("2.10.4", sha256="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac")
diff --git a/var/spack/repos/builtin/packages/freexl/package.py b/var/spack/repos/builtin/packages/freexl/package.py
index aa40f253a633a1..4ba17479e18e70 100644
--- a/var/spack/repos/builtin/packages/freexl/package.py
+++ b/var/spack/repos/builtin/packages/freexl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fribidi/package.py b/var/spack/repos/builtin/packages/fribidi/package.py
index b4d521b3521d43..beea8647cbd4ba 100644
--- a/var/spack/repos/builtin/packages/fribidi/package.py
+++ b/var/spack/repos/builtin/packages/fribidi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Fribidi(AutotoolsPackage):
homepage = "https://github.com/fribidi/fribidi"
url = "https://github.com/fribidi/fribidi/releases/download/v1.0.5/fribidi-1.0.5.tar.bz2"
+ license("LGPL-2.1-or-later")
+
version("1.0.12", sha256="0cd233f97fc8c67bb3ac27ce8440def5d3ffacf516765b91c2cc654498293495")
version("1.0.8", sha256="94c7b68d86ad2a9613b4dcffe7bbeb03523d63b5b37918bdf2e4ef34195c1e6c")
version("1.0.5", sha256="6a64f2a687f5c4f203a46fa659f43dd43d1f8b845df8d723107e8a7e6158e4ce")
diff --git a/var/spack/repos/builtin/packages/frontier-client/package.py b/var/spack/repos/builtin/packages/frontier-client/package.py
index a25c0c854f6d2b..2c9d9f03a71a1b 100644
--- a/var/spack/repos/builtin/packages/frontier-client/package.py
+++ b/var/spack/repos/builtin/packages/frontier-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/frontistr/package.py b/var/spack/repos/builtin/packages/frontistr/package.py
index c86304e00e93a6..0691a409352523 100644
--- a/var/spack/repos/builtin/packages/frontistr/package.py
+++ b/var/spack/repos/builtin/packages/frontistr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -50,6 +50,8 @@ class Frontistr(FrontistrBase):
maintainers("hiroshi.okuda", "kgoto", "morita", "inagaki", "michioga")
+ license("MIT")
+
version("5.3", tag="v5.3", commit="5db1d80452b951905658da828285c2fd0537603c")
version("5.2", tag="v5.2", commit="c66bdc397de319ca59a0565b3f3b1a3b33f0c50c")
version("5.1.1", tag="v5.1.1", commit="57e9bbd529a6062f55e03c884b59af22f920eef1")
diff --git a/var/spack/repos/builtin/packages/fseq/package.py b/var/spack/repos/builtin/packages/fseq/package.py
index aaccdaf565b8a1..ca548b71ea42b5 100644
--- a/var/spack/repos/builtin/packages/fseq/package.py
+++ b/var/spack/repos/builtin/packages/fseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fsl/package.py b/var/spack/repos/builtin/packages/fsl/package.py
index add8cce02c0d8c..cae1ff6ecd233f 100644
--- a/var/spack/repos/builtin/packages/fsl/package.py
+++ b/var/spack/repos/builtin/packages/fsl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fslsfonts/package.py b/var/spack/repos/builtin/packages/fslsfonts/package.py
index e052da19127166..d08250cc2f9eb8 100644
--- a/var/spack/repos/builtin/packages/fslsfonts/package.py
+++ b/var/spack/repos/builtin/packages/fslsfonts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fstobdf/package.py b/var/spack/repos/builtin/packages/fstobdf/package.py
index e6d6764469d786..2d316b44743d55 100644
--- a/var/spack/repos/builtin/packages/fstobdf/package.py
+++ b/var/spack/repos/builtin/packages/fstobdf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fstrack/package.py b/var/spack/repos/builtin/packages/fstrack/package.py
index 3578ea085a021c..4a0da90af87e3e 100644
--- a/var/spack/repos/builtin/packages/fstrack/package.py
+++ b/var/spack/repos/builtin/packages/fstrack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Fstrack(MakefilePackage):
homepage = "http://www-udc.ig.utexas.edu/external/becker/data.html#fstrack"
url = "http://www-udc.ig.utexas.edu/external/becker/software/fstrack-0.5.3.092918.tgz"
+ license("Unlicense")
+
version(
"0.5.3.092918", sha256="34b31687fdfa207b9659425238b805eaacf0b0209e7e3343c1a3cb4c9e62345d"
)
diff --git a/var/spack/repos/builtin/packages/ftgl/package.py b/var/spack/repos/builtin/packages/ftgl/package.py
index 01a04cb57e227b..d9ac0dba6dbb65 100644
--- a/var/spack/repos/builtin/packages/ftgl/package.py
+++ b/var/spack/repos/builtin/packages/ftgl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Ftgl(CMakePackage):
homepage = "https://github.com/frankheckenbach/ftgl"
git = "https://github.com/frankheckenbach/ftgl.git"
+ license("MIT")
+
version("master", branch="master")
version("2.4.0", commit="483639219095ad080538e07ceb5996de901d4e74")
version("2.3.1", commit="3c0fdf367824b6381f29df3d8b4590240db62ab7")
diff --git a/var/spack/repos/builtin/packages/ftjam/package.py b/var/spack/repos/builtin/packages/ftjam/package.py
index d912268334d2c6..c54a9427e0ebbb 100644
--- a/var/spack/repos/builtin/packages/ftjam/package.py
+++ b/var/spack/repos/builtin/packages/ftjam/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/ftk/package.py b/var/spack/repos/builtin/packages/ftk/package.py
index f3e4e0f8a8c795..44276329c4f26d 100644
--- a/var/spack/repos/builtin/packages/ftk/package.py
+++ b/var/spack/repos/builtin/packages/ftk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Ftk(CMakePackage):
# notify when the package is updated.
maintainers("hguo")
+ license("MIT")
+
version("master", branch="master")
version("dev", branch="dev")
version("0.0.7.1", sha256="6090fd436f971316062dbb4fcbf2c44603ed5c29341df8f2b80b85770a3bcda2")
diff --git a/var/spack/repos/builtin/packages/ftobjectlibrary/package.py b/var/spack/repos/builtin/packages/ftobjectlibrary/package.py
index d55c2ffac80ae0..fe0e6c62d2cec2 100644
--- a/var/spack/repos/builtin/packages/ftobjectlibrary/package.py
+++ b/var/spack/repos/builtin/packages/ftobjectlibrary/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,4 +16,6 @@ class Ftobjectlibrary(CMakePackage):
maintainers("schoonovernumerics")
+ license("MIT")
+
version("main", branch="main")
diff --git a/var/spack/repos/builtin/packages/ftxui/package.py b/var/spack/repos/builtin/packages/ftxui/package.py
index 16f9fb977b08d1..92b72c0c26c84e 100644
--- a/var/spack/repos/builtin/packages/ftxui/package.py
+++ b/var/spack/repos/builtin/packages/ftxui/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Ftxui(CMakePackage):
homepage = "https://arthursonzogni.github.io"
url = "https://github.com/ArthurSonzogni/FTXUI/archive/refs/tags/v2.0.0.tar.gz"
+ license("MIT")
+
version("4.1.1", sha256="9009d093e48b3189487d67fc3e375a57c7b354c0e43fc554ad31bec74a4bc2dd")
version("4.0.0", sha256="7276e4117429ebf8e34ea371c3ea4e66eb99e0f234cb4c5c85fca17174a53dfa")
version("2.0.0", sha256="d891695ef22176f0c09f8261a37af9ad5b262dd670a81e6b83661a23abc2c54f")
diff --git a/var/spack/repos/builtin/packages/fujitsu-fftw/package.py b/var/spack/repos/builtin/packages/fujitsu-fftw/package.py
index b93ed50f928438..29ea363b1d7d56 100644
--- a/var/spack/repos/builtin/packages/fujitsu-fftw/package.py
+++ b/var/spack/repos/builtin/packages/fujitsu-fftw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -50,16 +50,7 @@ class FujitsuFftw(FftwBase):
when="%fj",
msg="ARM-SVE vector instructions only works in single or double precision",
)
- conflicts("%arm")
- conflicts("%cce")
- conflicts("%apple-clang")
- conflicts("%clang")
- conflicts("%gcc")
- conflicts("%intel")
- conflicts("%nag")
- conflicts("%pgi")
- conflicts("%xl")
- conflicts("%xl_r")
+ requires("%fj")
def autoreconf(self, spec, prefix):
if spec.target != "a64fx":
diff --git a/var/spack/repos/builtin/packages/fujitsu-frontistr/package.py b/var/spack/repos/builtin/packages/fujitsu-frontistr/package.py
index fc788e2754197c..06e184f296973d 100644
--- a/var/spack/repos/builtin/packages/fujitsu-frontistr/package.py
+++ b/var/spack/repos/builtin/packages/fujitsu-frontistr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class FujitsuFrontistr(FrontistrBase):
git = "https://github.com/fujitsu/FrontISTR"
maintainers("kinagaki-fj", "kinagaki", "m-shunji")
+ license("MIT")
+
version("master", branch="fj-master")
version("5.2", sha256="ebf73a96c33ae7c9e616c99f9ce07ec90d802764dbf6abf627b0083c3bbd2b2e")
version("5.0", sha256="7a3a2dd0f834048fb71cc254c9da6c2637fb23110e79b5efaf208d6f69a5b30a")
diff --git a/var/spack/repos/builtin/packages/fujitsu-mpi/package.py b/var/spack/repos/builtin/packages/fujitsu-mpi/package.py
index d765a0f9405c2c..07a66318600980 100644
--- a/var/spack/repos/builtin/packages/fujitsu-mpi/package.py
+++ b/var/spack/repos/builtin/packages/fujitsu-mpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,18 +13,8 @@ class FujitsuMpi(Package):
homepage = "https://www.fujitsu.com/us/"
- conflicts("%arm")
- conflicts("%cce")
- conflicts("%apple-clang")
- conflicts("%clang")
- conflicts("%gcc")
- conflicts("%intel")
- conflicts("%nag")
- conflicts("%pgi")
- conflicts("%xl")
- conflicts("%xl_r")
-
provides("mpi@3.1:")
+ requires("%fj")
def install(self, spec, prefix):
raise InstallError("Fujitsu MPI is not installable; it is vendor supplied")
diff --git a/var/spack/repos/builtin/packages/fujitsu-ssl2/package.py b/var/spack/repos/builtin/packages/fujitsu-ssl2/package.py
index d61d40f1261c59..76682cc862d930 100644
--- a/var/spack/repos/builtin/packages/fujitsu-ssl2/package.py
+++ b/var/spack/repos/builtin/packages/fujitsu-ssl2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,21 +18,12 @@ class FujitsuSsl2(Package):
variant("parallel", default=True, description="Build with thread-parallel versions")
- conflicts("%arm")
- conflicts("%cce")
- conflicts("%apple-clang")
- conflicts("%clang")
- conflicts("%gcc")
- conflicts("%intel")
- conflicts("%nag")
- conflicts("%pgi")
- conflicts("%xl")
- conflicts("%xl_r")
-
provides("blas")
provides("lapack")
provides("scalapack")
+ requires("%fj")
+
def install(self, spec, prefix):
raise InstallError(
"Fujitsu SSL2 is not installable; it is vendor supplied \
diff --git a/var/spack/repos/builtin/packages/fullock/package.py b/var/spack/repos/builtin/packages/fullock/package.py
index 11ae62794abafa..2009c03628ca14 100644
--- a/var/spack/repos/builtin/packages/fullock/package.py
+++ b/var/spack/repos/builtin/packages/fullock/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Fullock(AutotoolsPackage):
homepage = "https://antpick.ax/"
url = "https://github.com/yahoojapan/fullock/archive/v1.0.36.tar.gz"
+ license("MIT")
+
version("1.0.50", sha256="7222976883289376c1b88fd30ecd3ab2f055316103b97df4aa71192954072848")
version("1.0.39", sha256="0089d4446e3102b5de39e3d18c1b7e5c9567deb77a4e60963e15b5c1b23a594d")
version("1.0.36", sha256="68d0dc9036c2c1871653b4626a594f57663973c159f083ec68647c60ddc919f7")
diff --git a/var/spack/repos/builtin/packages/funhpc/package.py b/var/spack/repos/builtin/packages/funhpc/package.py
index b9af19619e924a..f9745c18c79b3c 100644
--- a/var/spack/repos/builtin/packages/funhpc/package.py
+++ b/var/spack/repos/builtin/packages/funhpc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/funwave/package.py b/var/spack/repos/builtin/packages/funwave/package.py
index 76b8e6376a95b8..f4b4023dd8018c 100644
--- a/var/spack/repos/builtin/packages/funwave/package.py
+++ b/var/spack/repos/builtin/packages/funwave/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/fuse-overlayfs/package.py b/var/spack/repos/builtin/packages/fuse-overlayfs/package.py
index a6968e68a58f6f..18112758dc998c 100644
--- a/var/spack/repos/builtin/packages/fuse-overlayfs/package.py
+++ b/var/spack/repos/builtin/packages/fuse-overlayfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class FuseOverlayfs(AutotoolsPackage):
url = "https://github.com/containers/fuse-overlayfs/archive/v1.1.2.tar.gz"
maintainers("haampie")
+ license("GPL-2.0-or-later")
+
version("1.10", sha256="4351eaed7cf26a5012c14c6e0fc883ef65a7b5dcc95ba129ce485904106c25a9")
version("1.7.1", sha256="fe2c076aed7b8669e7970301a99c0b197759b611035d8199de4c0add7d2fb2b4")
version("1.7", sha256="e4d9a794d270e237a38e7ced95af95ad15268e0584eab981ed7c7b3758b95995")
diff --git a/var/spack/repos/builtin/packages/fxdiv/package.py b/var/spack/repos/builtin/packages/fxdiv/package.py
index 454b8f4b5b3cc9..f9349661692d0a 100644
--- a/var/spack/repos/builtin/packages/fxdiv/package.py
+++ b/var/spack/repos/builtin/packages/fxdiv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Fxdiv(CMakePackage):
homepage = "https://github.com/Maratyszcza/FXdiv"
git = "https://github.com/Maratyszcza/FXdiv.git"
+ license("MIT")
+
version("master", branch="master")
version("2020-04-17", commit="b408327ac2a15ec3e43352421954f5b1967701d1") # py-torch@1.6:1.9
version("2018-11-16", commit="b742d1143724d646cd0f914646f1240eacf5bd73") # py-torch@1.0:1.5
diff --git a/var/spack/repos/builtin/packages/fxt/package.py b/var/spack/repos/builtin/packages/fxt/package.py
index fe0f5261d83fcc..d8039a53dacc81 100644
--- a/var/spack/repos/builtin/packages/fxt/package.py
+++ b/var/spack/repos/builtin/packages/fxt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Fxt(AutotoolsPackage):
maintainers("nfurmento", "sthibaul")
+ license("GPL-2.0-only")
+
version("0.3.14", sha256="317d8d93175cd9f27ec43b8390b6d29dc66114f06aa74f2329847d49baaaebf2")
version("0.3.5", sha256="3c0b33c82a01c4fb710c53ee9fc2c803314beba6fb60c397e13e874811e34a22")
version("0.3.4", sha256="fcd35a5278ac0f10eba12fed4fa436dce79559897fde5b8176d5eee9081970f7")
diff --git a/var/spack/repos/builtin/packages/fyba/package.py b/var/spack/repos/builtin/packages/fyba/package.py
index 888758e8c616ed..37653cf3a8a7e1 100644
--- a/var/spack/repos/builtin/packages/fyba/package.py
+++ b/var/spack/repos/builtin/packages/fyba/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Fyba(AutotoolsPackage):
homepage = "https://github.com/kartverket/fyba"
url = "https://github.com/kartverket/fyba/archive/4.1.1.tar.gz"
+ license("Unlicense")
+
version("4.1.1", sha256="99f658d52e8fd8997118bb6207b9c121500700996d9481a736683474e2534179")
# configure: error: cannot find install-sh or install.sh
diff --git a/var/spack/repos/builtin/packages/fzf/package.py b/var/spack/repos/builtin/packages/fzf/package.py
index 95362138f1ec0c..9b73a7cd13f81b 100644
--- a/var/spack/repos/builtin/packages/fzf/package.py
+++ b/var/spack/repos/builtin/packages/fzf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,10 @@ class Fzf(MakefilePackage):
executables = ["^fzf$"]
+ license("MIT")
+
+ version("0.45.0", sha256="f0dd5548f80fe7f80d9277bb8fe252ac6e42a41e76fc85ce0f3af702cd987600")
+ version("0.44.1", sha256="295f3aec9519f0cf2dce67a14e94d8a743d82c19520e5671f39c71c9ea04f90c")
version("0.42.0", sha256="743c1bfc7851b0796ab73c6da7db09d915c2b54c0dd3e8611308985af8ed3df2")
version("0.41.1", sha256="982682eaac377c8a55ae8d7491fcd0e888d6c13915d01da9ebb6b7c434d7f4b5")
version("0.40.0", sha256="9597f297a6811d300f619fff5aadab8003adbcc1566199a43886d2ea09109a65")
diff --git a/var/spack/repos/builtin/packages/g2/package.py b/var/spack/repos/builtin/packages/g2/package.py
index de4dcd4bcbc175..afd108bb87254b 100644
--- a/var/spack/repos/builtin/packages/g2/package.py
+++ b/var/spack/repos/builtin/packages/g2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/g2c/package.py b/var/spack/repos/builtin/packages/g2c/package.py
index 9f3d93c71ed38b..0a5493ab10b8f4 100644
--- a/var/spack/repos/builtin/packages/g2c/package.py
+++ b/var/spack/repos/builtin/packages/g2c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/g2o/package.py b/var/spack/repos/builtin/packages/g2o/package.py
index 63f76506300354..effc4b3c7c5d19 100644
--- a/var/spack/repos/builtin/packages/g2o/package.py
+++ b/var/spack/repos/builtin/packages/g2o/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/g2tmpl/package.py b/var/spack/repos/builtin/packages/g2tmpl/package.py
index e5a94b4e451877..4a2a2158e90138 100644
--- a/var/spack/repos/builtin/packages/g2tmpl/package.py
+++ b/var/spack/repos/builtin/packages/g2tmpl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/g4abla/package.py b/var/spack/repos/builtin/packages/g4abla/package.py
index d9ad945f56bb95..710d8de011829c 100644
--- a/var/spack/repos/builtin/packages/g4abla/package.py
+++ b/var/spack/repos/builtin/packages/g4abla/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,7 @@ class G4abla(Package):
maintainers("drbenmorgan")
# Only versions relevant to Geant4 releases built by spack are added
+ version("3.3", sha256="1e041b3252ee9cef886d624f753e693303aa32d7e5ef3bba87b34f36d92ea2b1")
version("3.1", sha256="7698b052b58bf1b9886beacdbd6af607adc1e099fc730ab6b21cf7f090c027ed")
version("3.0", sha256="99fd4dcc9b4949778f14ed8364088e45fa4ff3148b3ea36f9f3103241d277014")
diff --git a/var/spack/repos/builtin/packages/g4emlow/package.py b/var/spack/repos/builtin/packages/g4emlow/package.py
index 0601cfca29b3b5..d2f220dd2b6457 100644
--- a/var/spack/repos/builtin/packages/g4emlow/package.py
+++ b/var/spack/repos/builtin/packages/g4emlow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class G4emlow(Package):
maintainers("drbenmorgan")
# Only versions relevant to Geant4 releases built by spack are added
+ version("8.5", sha256="66baca49ac5d45e2ac10c125b4fb266225e511803e66981909ce9cd3e9bcef73")
+ version("8.4", sha256="d87de4d2a364cb0a1e1846560525ffc3f735ccdeea8bc426d61775179aebbe8e")
version("8.2", sha256="3d7768264ff5a53bcb96087604bbe11c60b7fea90aaac8f7d1252183e1a8e427")
version("8.0", sha256="d919a8e5838688257b9248a613910eb2a7633059e030c8b50c0a2c2ad9fd2b3b")
version("7.13", sha256="374896b649be776c6c10fea80abe6cf32f9136df0b6ab7c7236d571d49fb8c69")
@@ -26,6 +28,7 @@ class G4emlow(Package):
version("7.7", sha256="16dec6adda6477a97424d749688d73e9bd7d0b84d0137a67cf341f1960984663")
version("7.3", sha256="583aa7f34f67b09db7d566f904c54b21e95a9ac05b60e2bfb794efb569dba14e")
version("6.50", sha256="c97be73fece5fb4f73c43e11c146b43f651c6991edd0edf8619c9452f8ab1236")
+ version("6.35", sha256="1564045a0acad344c8d432cd48c2c3bb2e051a81ab3099a84e0f56ba0fe82cec")
def install(self, spec, prefix):
mkdirp(join_path(prefix.share, "data"))
diff --git a/var/spack/repos/builtin/packages/g4ensdfstate/package.py b/var/spack/repos/builtin/packages/g4ensdfstate/package.py
index 09fd398e3dbd17..59fe04f45deebf 100644
--- a/var/spack/repos/builtin/packages/g4ensdfstate/package.py
+++ b/var/spack/repos/builtin/packages/g4ensdfstate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,7 @@ class G4ensdfstate(Package):
version("2.3", sha256="9444c5e0820791abd3ccaace105b0e47790fadce286e11149834e79c4a8e9203")
version("2.2", sha256="dd7e27ef62070734a4a709601f5b3bada6641b111eb7069344e4f99a01d6e0a6")
version("2.1", sha256="933e7f99b1c70f24694d12d517dfca36d82f4e95b084c15d86756ace2a2790d9")
+ version("1.0", sha256="4562e7476aa2df7204a1a77263e9d2331e9ffcdb591d11814dcc2d6b605021dd")
def install(self, spec, prefix):
mkdirp(join_path(prefix.share, "data"))
diff --git a/var/spack/repos/builtin/packages/g4incl/package.py b/var/spack/repos/builtin/packages/g4incl/package.py
index ce5fbfe820b094..479ce2dda269d1 100644
--- a/var/spack/repos/builtin/packages/g4incl/package.py
+++ b/var/spack/repos/builtin/packages/g4incl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class G4incl(Package):
maintainers("drbenmorgan")
# Only versions relevant to Geant4 releases built by spack are added
+ version("1.2", sha256="f880b16073ee0a92d7494f3276a6d52d4de1d3677a0d4c7c58700396ed0e1a7e")
+ version("1.1", sha256="5d82e71db5f5a1b659937506576be58db7de7753ec5913128141ae7fce673b44")
version("1.0", sha256="716161821ae9f3d0565fbf3c2cf34f4e02e3e519eb419a82236eef22c2c4367d")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/g4ndl/package.py b/var/spack/repos/builtin/packages/g4ndl/package.py
index e91a682496ba52..be9f298c2f8154 100644
--- a/var/spack/repos/builtin/packages/g4ndl/package.py
+++ b/var/spack/repos/builtin/packages/g4ndl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,7 @@ class G4ndl(Package):
version("4.7", sha256="7e7d3d2621102dc614f753ad928730a290d19660eed96304a9d24b453d670309")
version("4.6", sha256="9d287cf2ae0fb887a2adce801ee74fb9be21b0d166dab49bcbee9408a5145408")
version("4.5", sha256="cba928a520a788f2bc8229c7ef57f83d0934bb0c6a18c31ef05ef4865edcdf8e")
+ version("4.4", sha256="e9fe8800566a83ccaf9b5229a1fa1d2cd24530bbd2e9fcb96eb6b5b117233071")
def install(self, spec, prefix):
mkdirp(join_path(prefix.share, "data"))
diff --git a/var/spack/repos/builtin/packages/g4neutronxs/package.py b/var/spack/repos/builtin/packages/g4neutronxs/package.py
index 3d8b2ac5b905b1..39f6915346ba04 100644
--- a/var/spack/repos/builtin/packages/g4neutronxs/package.py
+++ b/var/spack/repos/builtin/packages/g4neutronxs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/g4particlexs/package.py b/var/spack/repos/builtin/packages/g4particlexs/package.py
index 129781aaa08891..93c53fb277a266 100644
--- a/var/spack/repos/builtin/packages/g4particlexs/package.py
+++ b/var/spack/repos/builtin/packages/g4particlexs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/g4photonevaporation/package.py b/var/spack/repos/builtin/packages/g4photonevaporation/package.py
index c0e160bd14907d..1c847dec3e8eb9 100644
--- a/var/spack/repos/builtin/packages/g4photonevaporation/package.py
+++ b/var/spack/repos/builtin/packages/g4photonevaporation/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,7 @@ class G4photonevaporation(Package):
version("5.3", sha256="d47ababc8cbe548065ef644e9bd88266869e75e2f9e577ebc36bc55bf7a92ec8")
version("5.2", sha256="83607f8d36827b2a7fca19c9c336caffbebf61a359d0ef7cee44a8bcf3fc2d1f")
version("4.3.2", sha256="d4641a6fe1c645ab2a7ecee09c34e5ea584fb10d63d2838248bfc487d34207c7")
+ version("3.0", sha256="c76a843672eca21110e97a274a6b5cd9a58b66f35235301c8e1b162926e0e7cb")
def install(self, spec, prefix):
mkdirp(join_path(prefix.share, "data"))
diff --git a/var/spack/repos/builtin/packages/g4pii/package.py b/var/spack/repos/builtin/packages/g4pii/package.py
index a282e3787b6753..a1aa5590bc1a42 100644
--- a/var/spack/repos/builtin/packages/g4pii/package.py
+++ b/var/spack/repos/builtin/packages/g4pii/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/g4radioactivedecay/package.py b/var/spack/repos/builtin/packages/g4radioactivedecay/package.py
index df758bc2c5a0e1..69f5681b64996c 100644
--- a/var/spack/repos/builtin/packages/g4radioactivedecay/package.py
+++ b/var/spack/repos/builtin/packages/g4radioactivedecay/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,7 @@ class G4radioactivedecay(Package):
version("5.3", sha256="5c8992ac57ae56e66b064d3f5cdfe7c2fee76567520ad34a625bfb187119f8c1")
version("5.2", sha256="99c038d89d70281316be15c3c98a66c5d0ca01ef575127b6a094063003e2af5d")
version("5.1.1", sha256="f7a9a0cc998f0d946359f2cb18d30dff1eabb7f3c578891111fc3641833870ae")
+ version("4.0", sha256="ed2053bddee507920a29a27db4364fbef255b951597686b0410d5458e9b38cb5")
def install(self, spec, prefix):
mkdirp(join_path(prefix.share, "data"))
diff --git a/var/spack/repos/builtin/packages/g4realsurface/package.py b/var/spack/repos/builtin/packages/g4realsurface/package.py
index 575fc65e1202e2..28f335bba029c3 100644
--- a/var/spack/repos/builtin/packages/g4realsurface/package.py
+++ b/var/spack/repos/builtin/packages/g4realsurface/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/g4saiddata/package.py b/var/spack/repos/builtin/packages/g4saiddata/package.py
index 5b7e650f6bc920..371811381b0967 100644
--- a/var/spack/repos/builtin/packages/g4saiddata/package.py
+++ b/var/spack/repos/builtin/packages/g4saiddata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/g4tendl/package.py b/var/spack/repos/builtin/packages/g4tendl/package.py
index 231d8a3070ebf5..92c12423c27d5a 100644
--- a/var/spack/repos/builtin/packages/g4tendl/package.py
+++ b/var/spack/repos/builtin/packages/g4tendl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gadap/package.py b/var/spack/repos/builtin/packages/gadap/package.py
index 90cb596ec61c97..6c50abe4a59c41 100644
--- a/var/spack/repos/builtin/packages/gadap/package.py
+++ b/var/spack/repos/builtin/packages/gadap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Gadap(AutotoolsPackage):
maintainers("vanderwb")
+ license("GPL-2.0-only")
+
version("2.0", sha256="ae9a989ca00ec29fb40616383d170883f07c022456db338399982a8a94ec0100")
depends_on("curl@7.18.0:")
diff --git a/var/spack/repos/builtin/packages/gamess-ri-mp2-miniapp/package.py b/var/spack/repos/builtin/packages/gamess-ri-mp2-miniapp/package.py
index 273a75ba48bfcb..230da6450511c7 100644
--- a/var/spack/repos/builtin/packages/gamess-ri-mp2-miniapp/package.py
+++ b/var/spack/repos/builtin/packages/gamess-ri-mp2-miniapp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gams/package.py b/var/spack/repos/builtin/packages/gams/package.py
index d05c13820dcac6..a1377f5a6f9349 100644
--- a/var/spack/repos/builtin/packages/gams/package.py
+++ b/var/spack/repos/builtin/packages/gams/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gapbs/package.py b/var/spack/repos/builtin/packages/gapbs/package.py
index aaf50e8f33d2d5..34a96c284a650b 100644
--- a/var/spack/repos/builtin/packages/gapbs/package.py
+++ b/var/spack/repos/builtin/packages/gapbs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Gapbs(MakefilePackage):
homepage = "http://gap.cs.berkeley.edu/benchmark.html"
url = "https://github.com/sbeamer/gapbs/archive/v1.0.tar.gz"
+ license("BSD-3-Clause")
+
version("1.4", sha256="d91ecfe364e8c307e9e5535d730ef8ef8554b71d33891b70d0c4665cc11178bb")
version("1.0", sha256="a7516998c4994592053c7aa0c76282760a8e009865a6b7a1c7c40968be1ca55d")
diff --git a/var/spack/repos/builtin/packages/gapcloser/package.py b/var/spack/repos/builtin/packages/gapcloser/package.py
index 0cd36477812036..7d07c0885ccb50 100644
--- a/var/spack/repos/builtin/packages/gapcloser/package.py
+++ b/var/spack/repos/builtin/packages/gapcloser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gapfiller/package.py b/var/spack/repos/builtin/packages/gapfiller/package.py
index d6c8bad178726a..4847ef6c732896 100644
--- a/var/spack/repos/builtin/packages/gapfiller/package.py
+++ b/var/spack/repos/builtin/packages/gapfiller/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/garfieldpp/package.py b/var/spack/repos/builtin/packages/garfieldpp/package.py
index 0bbdda3e3d9d8a..5d78e443a6a82d 100644
--- a/var/spack/repos/builtin/packages/garfieldpp/package.py
+++ b/var/spack/repos/builtin/packages/garfieldpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gasnet/package.py b/var/spack/repos/builtin/packages/gasnet/package.py
index 516accb30db6a5..74e6061918e218 100644
--- a/var/spack/repos/builtin/packages/gasnet/package.py
+++ b/var/spack/repos/builtin/packages/gasnet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -37,15 +37,36 @@ class Gasnet(Package, CudaPackage, ROCmPackage):
version("main", branch="stable")
version("master", branch="master")
+ version("2023.9.0", sha256="2d9f15a794e10683579ce494cd458b0dd97e2d3327c4d17e1fea79bd95576ce6")
version("2023.3.0", sha256="e1fa783d38a503cf2efa7662be591ca5c2bb98d19ac72a9bc6da457329a9a14f")
version("2022.9.2", sha256="2352d52f395a9aa14cc57d82957d9f1ebd928d0a0021fd26c5f1382a06cd6f1d")
version("2022.9.0", sha256="6873ff4ad8ebee49da4378f2d78095a6ccc31333d6ae4cd739b9f772af11f936")
version("2022.3.0", sha256="91b59aa84c0680c807e00d3d1d8fa7c33c1aed50b86d1616f93e499620a9ba09")
- version("2021.9.0", sha256="1b6ff6cdad5ecf76b92032ef9507e8a0876c9fc3ee0ab008de847c1fad0359ee")
- version("2021.3.0", sha256="8a40fb3fa8bacc3922cd4d45217816fcb60100357ab97fb622a245567ea31747")
- version("2020.10.0", sha256="ed17baf7fce90499b539857ee37b3eea961aa475cffbde77e4c607a34ece06a0")
- version("2020.3.0", sha256="019eb2d2284856e6fabe6c8c0061c874f10e95fa0265245f227fd3497f1bb274")
- version("2019.9.0", sha256="117f5fdb16e53d0fa8a47a1e28cccab1d8020ed4f6e50163d985dc90226aaa2c")
+ version(
+ "2021.9.0",
+ deprecated=True,
+ sha256="1b6ff6cdad5ecf76b92032ef9507e8a0876c9fc3ee0ab008de847c1fad0359ee",
+ )
+ version(
+ "2021.3.0",
+ deprecated=True,
+ sha256="8a40fb3fa8bacc3922cd4d45217816fcb60100357ab97fb622a245567ea31747",
+ )
+ version(
+ "2020.10.0",
+ deprecated=True,
+ sha256="ed17baf7fce90499b539857ee37b3eea961aa475cffbde77e4c607a34ece06a0",
+ )
+ version(
+ "2020.3.0",
+ deprecated=True,
+ sha256="019eb2d2284856e6fabe6c8c0061c874f10e95fa0265245f227fd3497f1bb274",
+ )
+ version(
+ "2019.9.0",
+ deprecated=True,
+ sha256="117f5fdb16e53d0fa8a47a1e28cccab1d8020ed4f6e50163d985dc90226aaa2c",
+ )
# Do NOT add older versions here.
# GASNet-EX releases over 2 years old are not supported.
@@ -70,12 +91,30 @@ class Gasnet(Package, CudaPackage, ROCmPackage):
default=False,
description="Enables support for the CUDA memory kind in some conduits.\n"
+ "NOTE: Requires CUDA Driver library be present on the build system",
+ when="@2020.11:",
+ )
+ conflicts(
+ "+cuda",
+ when="@:2020.10",
+ msg="GASNet version 2020.11.0 or newer required for CUDA support",
)
variant(
"rocm",
default=False,
description="Enables support for the ROCm/HIP memory kind in some conduits",
+ when="@2021.9:",
+ )
+ conflicts(
+ "+rocm", when="@:2021.8", msg="GASNet version 2021.9.0 or newer required for ROCm support"
+ )
+
+ variant(
+ "level_zero",
+ default=False,
+ description="Enables *experimental* support for the Level Zero "
+ + "memory kind on Intel GPUs in some conduits",
+ when="@2023.9.0:",
)
depends_on("mpi", when="conduits=mpi")
@@ -85,6 +124,8 @@ class Gasnet(Package, CudaPackage, ROCmPackage):
conflicts("^hip@:4.4.0", when="+rocm")
+ depends_on("oneapi-level-zero@1.8.0:", when="+level_zero")
+
def install(self, spec, prefix):
if spec.satisfies("@master:"):
bootstrapsh = Executable("./Bootstrap")
@@ -120,6 +161,10 @@ def install(self, spec, prefix):
if "+rocm" in spec:
options.append("--enable-kind-hip")
+ if "+level_zero" in spec:
+ options.append("--enable-kind-ze")
+ options.append("--with-ze-home=" + spec["oneapi-level-zero"].prefix)
+
if "conduits=mpi" in spec:
options.append("--enable-mpi-compat")
else:
diff --git a/var/spack/repos/builtin/packages/gatb-core/package.py b/var/spack/repos/builtin/packages/gatb-core/package.py
index 9da5b143c53104..f37117d84476b5 100644
--- a/var/spack/repos/builtin/packages/gatb-core/package.py
+++ b/var/spack/repos/builtin/packages/gatb-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gate/package.py b/var/spack/repos/builtin/packages/gate/package.py
index 69c4802b6b016a..9a77788ef7a45e 100644
--- a/var/spack/repos/builtin/packages/gate/package.py
+++ b/var/spack/repos/builtin/packages/gate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -26,6 +26,8 @@ class Gate(CMakePackage):
homepage = "http://opengatecollaboration.org/"
url = "https://github.com/OpenGATE/Gate/archive/v9.0.tar.gz"
+ license("LGPL-3.0-or-later")
+
version("9.1", sha256="aaab874198500b81d45b27cc6d6a51e72cca9519910b893a5c85c8e6d3ffa4fc")
version("9.0", sha256="8354f392facc0b7ae2ddf0eed61cc43136195b198ba399df25e874886b8b69cb")
diff --git a/var/spack/repos/builtin/packages/gatepet2stir/package.py b/var/spack/repos/builtin/packages/gatepet2stir/package.py
index 420ea69ae08b94..08caa8ed0f52e3 100644
--- a/var/spack/repos/builtin/packages/gatepet2stir/package.py
+++ b/var/spack/repos/builtin/packages/gatepet2stir/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gatetools/package.py b/var/spack/repos/builtin/packages/gatetools/package.py
index 7fec4d6ae8e052..3c4222b73ad20d 100644
--- a/var/spack/repos/builtin/packages/gatetools/package.py
+++ b/var/spack/repos/builtin/packages/gatetools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Gatetools(PythonPackage):
homepage = "https://github.com/OpenGATE/GateTools"
pypi = "gatetools/gatetools-0.9.14.tar.gz"
+ license("LGPL-3.0-only")
+
version("0.11.2", sha256="6eef8a779278b862823ae79d6aab210db4f7889c9127b2c2e4c3a4195f9a9928")
version("0.9.14", sha256="78fe864bb52fd4c6aeeee90d8f6c1bc5406ce02ac6f48712379efac606b5c006")
diff --git a/var/spack/repos/builtin/packages/gatk/package.py b/var/spack/repos/builtin/packages/gatk/package.py
index 2e84107b61565a..3c71462b14747e 100644
--- a/var/spack/repos/builtin/packages/gatk/package.py
+++ b/var/spack/repos/builtin/packages/gatk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,9 @@ class Gatk(Package):
list_url = "https://github.com/broadinstitute/gatk/releases"
maintainers("snehring")
+ license("Unlicense")
+
+ version("4.5.0.0", sha256="dc1a4471e8bb566397db9894ca18acbf8f40f3fc312c8fad9a8c5390c218e916")
version("4.4.0.0", sha256="444600f7b38b46ad0b3606b7d40ce921e0ff1910a50165872f1c73c7c4a1a390")
version("4.3.0.0", sha256="e2c27229b34c3e22445964adf00639a0909887bbfcc040f6910079177bc6e2dd")
version("4.2.6.1", sha256="1125cfc862301d437310506c8774d36c3a90d00d52c7b5d6b59dac7241203628")
diff --git a/var/spack/repos/builtin/packages/gaudi/package.py b/var/spack/repos/builtin/packages/gaudi/package.py
index 12a095c301989a..cc79f162105203 100644
--- a/var/spack/repos/builtin/packages/gaudi/package.py
+++ b/var/spack/repos/builtin/packages/gaudi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,7 @@ class Gaudi(CMakePackage):
tags = ["hep"]
version("master", branch="master")
+ version("37.2", sha256="9b866caab46e182de98b59eddbde80d6fa0e670fe4a35906f1518b04bd99b2d2")
version("37.1", sha256="1d7038fd5dfb5f2517ce57623cf8090549ffe2ea8f0171d534e5c1ca20bd009a")
version("37.0", sha256="823f3821a4f498ddd2dd123fbb8a3787b361ddfd818f4ab13572076fc9afdfe4")
version("36.14", sha256="b11e0afcb797d61a305856dfe8079d48d74c6b6867ceccc0a83aab5978c9ba5f")
@@ -35,11 +36,6 @@ class Gaudi(CMakePackage):
version("36.1", sha256="9f718c832313676249e5c3ac76ba4346978ee2328f8cdcb29176498b080402e9")
version("36.0", sha256="8a0458cef5b616532f9db7cca9fa0e892e602b64c9e93dc0cc6d972e03034830")
version("35.0", sha256="c01b822f9592a7bf875b9997cbeb3c94dea97cb13d523c12649dbbf5d69b5fa6")
- version("34.0", sha256="28fc4abb5a6b08da5a6b1300451c7e8487f918b055939877219d454abf7668ae")
- version("33.2", sha256="26aaf9c4ff237a60ec79af9bd18ad249fc91c16e297ba77e28e4a256123db6e5")
- version("33.1", sha256="7eb6b2af64aeb965228d4b6ea66c7f9f57f832f93d5b8ad55c9105235af5b042")
- version("33.0", sha256="76a967c41f579acc432593d498875dd4dc1f8afd5061e692741a355a9cf233c8")
- version("32.2", sha256="e9ef3eb57fd9ac7b9d5647e278a84b2e6263f29f0b14dbe1321667d44d969d2e")
maintainers("drbenmorgan", "vvolkl", "jmcarcell")
@@ -60,6 +56,12 @@ class Gaudi(CMakePackage):
patch("link_target_fixes.patch", when="@33.0:34")
patch("link_target_fixes32.patch", when="@:32.2")
patch("fmt_fix.patch", when="@36.6:36.12 ^fmt@10:")
+ # fix issues with catch2 3.1 and above
+ patch(
+ "https://gitlab.cern.ch/gaudi/Gaudi/-/commit/110f2189f386c3a23150ccdfdc47c1858fc7098e.diff",
+ sha256="b05f6b7c1efb8c3af291c8d81fd1627e58af7c5f9a78a0098c6e3bfd7ec80c15",
+ when="@37.1 ^catch2@3.1:",
+ )
# These dependencies are needed for a minimal Gaudi build
depends_on("aida")
@@ -72,17 +74,15 @@ class Gaudi(CMakePackage):
depends_on("clhep")
depends_on("cmake", type="build")
depends_on("cppgsl")
- depends_on("fmt", when="@33.2:")
+ depends_on("fmt")
depends_on("fmt@:8", when="@:36.9")
depends_on("intel-tbb@:2020.3", when="@:37.0")
depends_on("tbb", when="@37.1:")
depends_on("uuid")
- depends_on("nlohmann-json", when="@35.0:")
+ depends_on("nlohmann-json")
depends_on("python", type=("build", "run"))
- depends_on("python@:3.7", when="@32.2:34", type=("build", "run"))
depends_on("py-networkx", type=("build", "run"))
depends_on("py-six", type=("build", "run"))
- depends_on("py-xenv@1:", when="@:34.9", type=("build", "run"))
depends_on("range-v3")
depends_on("root +python +root7 +ssl +tbb +threads")
depends_on("zlib-api")
@@ -99,13 +99,9 @@ class Gaudi(CMakePackage):
depends_on("doxygen +graphviz", when="+docs")
depends_on("gperftools", when="+gperftools")
depends_on("gdb")
- depends_on("gsl", when="@:31 +examples")
- depends_on("heppdt", when="@:34 +examples")
depends_on("heppdt", when="+heppdt")
depends_on("jemalloc", when="+jemalloc")
- depends_on("libpng", when="@:34 +examples")
depends_on("libunwind", when="+unwind")
- depends_on("relax", when="@:34 +examples")
depends_on("xerces-c", when="+xercesc")
# NOTE: pocl cannot be added as a minimal OpenCL implementation because
# ROOT does not like being exposed to LLVM symbols.
@@ -131,9 +127,6 @@ def cmake_args(self):
# todo:
self.define("GAUDI_USE_INTELAMPLIFIER", False),
]
- # this is not really used in spack builds, but needs to be set
- if self.spec.version < Version("34"):
- args.append("-DHOST_BINARY_TAG=x86_64-linux-gcc9-opt")
return args
def setup_run_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/gaussian-src/package.py b/var/spack/repos/builtin/packages/gaussian-src/package.py
index 5cd0cf9e27e661..51d771efada76f 100644
--- a/var/spack/repos/builtin/packages/gaussian-src/package.py
+++ b/var/spack/repos/builtin/packages/gaussian-src/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gaussian-view/package.py b/var/spack/repos/builtin/packages/gaussian-view/package.py
index dc4320c0202852..b092719a45b00e 100644
--- a/var/spack/repos/builtin/packages/gaussian-view/package.py
+++ b/var/spack/repos/builtin/packages/gaussian-view/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gaussian/package.py b/var/spack/repos/builtin/packages/gaussian/package.py
index 05d8c34b23a721..9daef789dfe7a6 100644
--- a/var/spack/repos/builtin/packages/gaussian/package.py
+++ b/var/spack/repos/builtin/packages/gaussian/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gawk/package.py b/var/spack/repos/builtin/packages/gawk/package.py
index 46f5034ad4486a..2c935856d0fad8 100644
--- a/var/spack/repos/builtin/packages/gawk/package.py
+++ b/var/spack/repos/builtin/packages/gawk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -28,6 +28,8 @@ class Gawk(AutotoolsPackage, GNUMirrorPackage):
tags = ["build-tools", "core-packages"]
+ license("GPL-3.0-or-later")
+
version("5.2.2", sha256="3c1fce1446b4cbee1cd273bd7ec64bc87d89f61537471cd3e05e33a965a250e9")
version("5.2.1", sha256="673553b91f9e18cc5792ed51075df8d510c9040f550a6f74e09c9add243a7e4f")
version("5.1.1", sha256="d87629386e894bbea11a5e00515fc909dc9b7249529dad9e6a3a2c77085f7ea2")
diff --git a/var/spack/repos/builtin/packages/gbl/package.py b/var/spack/repos/builtin/packages/gbl/package.py
index 98aeb67fab3bc3..89388076ba695f 100644
--- a/var/spack/repos/builtin/packages/gbl/package.py
+++ b/var/spack/repos/builtin/packages/gbl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,7 +12,6 @@ class Gbl(CMakePackage):
homepage = "https://www.desy.de/~kleinwrt/GBL/doc/cpp/html/"
git = "https://gitlab.desy.de/claus.kleinwort/general-broken-lines.git"
- maintainers("iarspider")
tags = ["hep"]
version("V02-04-01", commit="1061b643c6656fbf7ceba579997eb43f0a9e9d3c")
diff --git a/var/spack/repos/builtin/packages/gblocks/package.py b/var/spack/repos/builtin/packages/gblocks/package.py
index 168ec08b03967d..ea4617dd77a0a1 100644
--- a/var/spack/repos/builtin/packages/gblocks/package.py
+++ b/var/spack/repos/builtin/packages/gblocks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gcc-runtime/package.py b/var/spack/repos/builtin/packages/gcc-runtime/package.py
new file mode 100644
index 00000000000000..085042b8ceb02c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gcc-runtime/package.py
@@ -0,0 +1,154 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+import os
+import re
+
+from macholib import MachO, mach_o
+
+from llnl.util import tty
+
+from spack.package import *
+from spack.util.elf import parse_elf
+
+
+class GccRuntime(Package):
+ """Package for GCC compiler runtime libraries"""
+
+ homepage = "https://gcc.gnu.org"
+ has_code = False
+
+ tags = ["runtime"]
+
+ maintainers("haampie")
+
+ license("GPL-3.0-or-later WITH GCC-exception-3.1")
+
+ requires("%gcc")
+
+ LIBRARIES = [
+ "asan",
+ "atomic",
+ "gcc_s",
+ "gfortran",
+ "gomp",
+ "hwasan",
+ "itm",
+ "lsan",
+ "quadmath",
+ "ssp",
+ "stdc++",
+ "tsan",
+ "ubsan",
+ ]
+
+ def install(self, spec, prefix):
+ if spec.platform in ["linux", "cray", "freebsd"]:
+ libraries = self._get_libraries_elf()
+ elif spec.platform == "darwin":
+ libraries = self._get_libraries_macho()
+ else:
+ raise RuntimeError("Unsupported platform")
+
+ mkdir(prefix.lib)
+
+ if not libraries:
+ tty.warn("Could not detect any shared GCC runtime libraries")
+ return
+
+ for path, name in libraries:
+ install(path, os.path.join(prefix.lib, name))
+
+ def _get_libraries_elf(self):
+ """Get the GCC runtime libraries for ELF binaries"""
+ cc = Executable(self.compiler.cc)
+ lib_regex = re.compile(rb"\blib[a-z-_]+\.so\.\d+\b")
+ path_and_install_name = []
+
+ for name in self.LIBRARIES:
+ # Look for the dynamic library that gcc would use to link,
+ # that is with .so extension and without abi suffix.
+ path = cc(f"-print-file-name=lib{name}.so", output=str).strip()
+
+ # gcc reports an absolute path on success
+ if not os.path.isabs(path):
+ continue
+
+ # Now there are two options:
+ # 1. the file is an ELF file
+ # 2. the file is a linker script referencing the actual library
+ with open(path, "rb") as f:
+ try:
+ # Try to parse as an ELF file
+ soname = parse_elf(f, dynamic_section=True).dt_soname_str.decode("utf-8")
+ except Exception:
+ # On failure try to "parse" as ld script; the actual
+ # library needs to be mentioned by filename.
+ f.seek(0)
+ script_matches = lib_regex.findall(f.read())
+ if len(script_matches) != 1:
+ continue
+ soname = script_matches[0].decode("utf-8")
+
+ # Now locate and install the runtime library
+ runtime_path = cc(f"-print-file-name={soname}", output=str).strip()
+
+ if not os.path.isabs(runtime_path):
+ continue
+
+ path_and_install_name.append((runtime_path, soname))
+
+ return path_and_install_name
+
+ def _get_libraries_macho(self):
+ """Same as _get_libraries_elf but for Mach-O binaries"""
+ cc = Executable(self.compiler.cc)
+ path_and_install_name = []
+
+ for name in self.LIBRARIES:
+ if name == "gcc_s":
+ # On darwin, libgcc_s is versioned and can't be linked as -lgcc_s,
+ # but needs a suffix we don't know, so we parse it from the link line.
+ match = re.search(
+ r"\s-l(gcc_s\.[0-9.]+)\s", cc("-xc", "-", "-shared-libgcc", "-###", error=str)
+ )
+ if match is None:
+ continue
+ name = match.group(1)
+
+ path = cc(f"-print-file-name=lib{name}.dylib", output=str).strip()
+
+ if not os.path.isabs(path):
+ continue
+
+ macho = MachO.MachO(path)
+
+ # Get the LC_ID_DYLIB load command
+ for load_command, _, data in macho.headers[-1].commands:
+ if load_command.cmd == mach_o.LC_ID_DYLIB:
+ # Strip off @rpath/ prefix, or even an absolute path.
+ dylib_name = os.path.basename(data.rstrip(b"\x00").decode())
+ break
+ else:
+ continue
+
+ # Locate by dylib name
+ runtime_path = cc(f"-print-file-name={dylib_name}", output=str).strip()
+
+ if not os.path.isabs(runtime_path):
+ continue
+
+ path_and_install_name.append((runtime_path, dylib_name))
+
+ return path_and_install_name
+
+ @property
+ def libs(self):
+ # Currently these libs are not linkable with -l, they all have a suffix.
+ return LibraryList([])
+
+ @property
+ def headers(self):
+ return HeaderList([])
diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py
index 116371cdb272bc..f74e67efe5c815 100644
--- a/var/spack/repos/builtin/packages/gcc/package.py
+++ b/var/spack/repos/builtin/packages/gcc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -33,6 +33,8 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
maintainers("michaelkuhn", "alalazo")
+ license("GPL-2.0-or-later AND LGPL-2.1-or-later")
+
version("master", branch="master")
version("13.2.0", sha256="e275e76442a6067341a27f04c5c6b83d8613144004c0413528863dc6b5c743da")
@@ -454,8 +456,8 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
# Backport libsanitizer patch for glibc >= 2.36
# https://reviews.llvm.org/D129471
- patch("glibc-2.36-libsanitizer-gcc-5-9.patch", when="@5.1:5.5,6.1:6.5,7.1:7.5,8.1:8.5,9.1:9.5")
- patch("glibc-2.36-libsanitizer-gcc-10-12.patch", when="@10.1:10.4,11.1:11.3,12.1.0")
+ patch("glibc-2.36-libsanitizer-gcc-5-9.patch", when="@5:9")
+ patch("glibc-2.36-libsanitizer-gcc-10-12.patch", when="@10:10.4,11:11.3,12.1.0")
# Older versions do not compile with newer versions of glibc
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712
@@ -1016,7 +1018,9 @@ def setup_run_environment(self, env):
continue
abspath = os.path.join(bin_path, filename)
- if os.path.islink(abspath):
+
+ # Skip broken symlinks (https://github.com/spack/spack/issues/41327)
+ if not os.path.exists(abspath):
continue
# Set the proper environment variable
@@ -1109,3 +1113,32 @@ def detect_gdc(self):
),
),
)
+
+ @classmethod
+ def runtime_constraints(cls, *, compiler, pkg):
+ """Callback function to inject runtime-related rules into the solver.
+
+ Rule-injection is obtained through method calls of the ``pkg`` argument.
+
+ Documentation for this function is temporary. When the API will be in its final state,
+ we'll document the behavior at https://spack.readthedocs.io/en/latest/
+
+ Args:
+ compiler: compiler object (node attribute) currently considered
+ pkg: object used to forward information to the solver
+ """
+ pkg("*").depends_on(
+ "gcc-runtime",
+ when="%gcc",
+ type="link",
+ description="If any package uses %gcc, it depends on gcc-runtime",
+ )
+ pkg("*").depends_on(
+ f"gcc-runtime@{str(compiler.version)}:",
+ when=f"%{str(compiler.spec)}",
+ type="link",
+ description=f"If any package uses %{str(compiler.spec)}, "
+ f"it depends on gcc-runtime@{str(compiler.version)}:",
+ )
+ # The version of gcc-runtime is the same as the %gcc used to "compile" it
+ pkg("gcc-runtime").requires(f"@={str(compiler.version)}", when=f"%{str(compiler.spec)}")
diff --git a/var/spack/repos/builtin/packages/gccmakedep/package.py b/var/spack/repos/builtin/packages/gccmakedep/package.py
index 5c666315d98fb1..7f89c316f661e4 100644
--- a/var/spack/repos/builtin/packages/gccmakedep/package.py
+++ b/var/spack/repos/builtin/packages/gccmakedep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Gccmakedep(AutotoolsPackage, XorgPackage):
homepage = "https://cgit.freedesktop.org/xorg/util/gccmakedep/"
xorg_mirror_path = "util/gccmakedep-1.0.3.tar.gz"
+ license("MIT")
+
version("1.0.3", sha256="f9e2e7a590e27f84b6708ab7a81e546399b949bf652fb9b95193e0e543e6a548")
depends_on("pkgconfig", type="build")
diff --git a/var/spack/repos/builtin/packages/gccxml/package.py b/var/spack/repos/builtin/packages/gccxml/package.py
index 11f89cefe26fee..2b492412a25301 100644
--- a/var/spack/repos/builtin/packages/gccxml/package.py
+++ b/var/spack/repos/builtin/packages/gccxml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gchp/package.py b/var/spack/repos/builtin/packages/gchp/package.py
index f32639a3acf6a2..3c1b892fc59dee 100644
--- a/var/spack/repos/builtin/packages/gchp/package.py
+++ b/var/spack/repos/builtin/packages/gchp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Gchp(CMakePackage):
git = "https://github.com/geoschem/GCHP.git"
maintainers("lizziel", "laestrada")
+ license("MIT")
+
version("13.4.0", commit="d8c6d4d8db1c5b0ba54d4893185d999a619afc58", submodules=True)
version("13.3.4", commit="efb2346381648ffff04ce441d5d61d7fec0c53fe", submodules=True)
version("13.2.1", commit="9dc2340cac684971fa961559a4dc3d8818326ab8", submodules=True)
diff --git a/var/spack/repos/builtin/packages/gconf/package.py b/var/spack/repos/builtin/packages/gconf/package.py
index 424471fad70233..3b6098b1139e54 100644
--- a/var/spack/repos/builtin/packages/gconf/package.py
+++ b/var/spack/repos/builtin/packages/gconf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gcta/package.py b/var/spack/repos/builtin/packages/gcta/package.py
index 538e26fe7d0b11..19b89f45e33ede 100644
--- a/var/spack/repos/builtin/packages/gcta/package.py
+++ b/var/spack/repos/builtin/packages/gcta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py
index 313a46f28bd969..c2b0635bd901aa 100644
--- a/var/spack/repos/builtin/packages/gdal/package.py
+++ b/var/spack/repos/builtin/packages/gdal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -30,6 +30,12 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension):
maintainers("adamjstewart")
+ license("MIT")
+
+ version("3.8.3", sha256="ae2d160f65016e208eca34ff14490ec4511f1fa03fd386ac130449d15e82929d")
+ version("3.8.2", sha256="dc2921ee1cf7a5c0498e94d15fb9ab9c9689c296363a1d021fc3293dd242b4db")
+ version("3.8.1", sha256="75a20b23879bfa3d8c0db68e1d6f8b924f7f9d97f5fed089b01a72e404293900")
+ version("3.8.0", sha256="ec0f78d9dc32352aeac6edc9c3b27a991b91f9dc6f92c452207d84431c58757d")
version("3.7.3", sha256="e0a6f0c453ea7eb7c09967f50ac49426808fcd8f259dbc9888140eb69d7ffee6")
version("3.7.2", sha256="40c0068591d2c711c699bbb734319398485ab169116ac28005d8302f80b923ad")
version("3.7.1", sha256="9297948f0a8ba9e6369cd50e87c7e2442eda95336b94d2b92ef1829d260b9a06")
@@ -90,6 +96,7 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension):
version("2.0.0", sha256="91704fafeea2349c5e268dc1e2d03921b3aae64b05ee01d59fdfc1a6b0ffc061")
# Optional dependencies
+ variant("archive", default=False, when="@3.7:", description="Optional for vsi7z VFS driver")
variant(
"armadillo",
default=False,
@@ -137,9 +144,11 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension):
variant("kdu", default=False, description="Required for JP2KAK and JPIPKAK drivers")
variant("kea", default=False, description="Required for KEA driver")
variant("lerc", default=False, when="@2.4:", description="Required for LERC compression")
+ variant("libaec", default=False, when="@3.8:", description="Optional for GRIB driver")
variant("libcsf", default=False, description="Required for PCRaster driver")
variant("libkml", default=False, description="Required for LIBKML driver")
variant("liblzma", default=False, description="Required for Zarr driver")
+ variant("libqb3", default=False, when="@3.6:", description="Required for MRF driver")
variant(
"libxml2", default=False, description="Required for XML validation in many OGR drivers"
)
@@ -190,7 +199,7 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension):
)
variant("pcidsk", default=False, description="Required for PCIDSK driver")
variant(
- "pcre", default=False, description="Required for REGEXP operator in drivers using SQLite3"
+ "pcre2", default=False, description="Required for REGEXP operator in drivers using SQLite3"
)
variant("pdfium", default=False, when="@2.1:", description="Possible backend for PDF driver")
variant("png", default=True, description="Required for PNG driver")
@@ -201,7 +210,6 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension):
default=False,
description="Required for PostgreSQL and PostGISRaster drivers",
)
- variant("qb3", default=False, when="@3.6:", description="Required for MRF driver")
variant(
"qhull",
default=False,
@@ -265,6 +273,7 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension):
depends_on("json-c@0.12.1", when="@:2.2")
# Optional dependencies
+ depends_on("libarchive", when="+archive")
depends_on("armadillo", when="+armadillo")
depends_on("blas", when="+armadillo")
depends_on("lapack", when="+armadillo")
@@ -306,6 +315,7 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension):
# depends_on('kakadu', when='+kdu')
depends_on("kealib", when="+kea")
depends_on("lerc", when="+lerc")
+ depends_on("libaec", when="+libaec")
# depends_on('libcsf', when='+libcsf')
depends_on("libkml@1.3:", when="+libkml")
depends_on("xz", when="+liblzma")
@@ -333,8 +343,8 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension):
depends_on("oracle-instant-client", when="+oracle")
depends_on("parquet-cpp", when="+parquet")
# depends_on('pcidsk', when='+pcidsk')
- depends_on("pcre2", when="@3.5:+pcre")
- depends_on("pcre", when="@:3.4+pcre")
+ depends_on("pcre2", when="@3.5:+pcre2")
+ depends_on("pcre", when="@:3.4+pcre2")
# depends_on('pdfium', when='+pdfium')
depends_on("libpng", when="+png")
# depends_on('podofo', when='+podofo')
@@ -344,7 +354,7 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension):
depends_on("poppler@:0.71", when="@:2.4 +poppler")
depends_on("poppler@:21", when="@:3.4.1 +poppler")
depends_on("postgresql", when="+postgresql")
- depends_on("qb3", when="+qb3")
+ depends_on("qb3", when="+libqb3")
depends_on("qhull", when="+qhull")
depends_on("qhull@2015:", when="@3.5:+qhull")
depends_on("qhull@:2020.1", when="@:3.3+qhull")
@@ -448,6 +458,14 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension):
sha256="9f9824296e75b34b3e78284ec772a5ac8f8ba92c17253ea9ca242caf766767ce",
)
+ # https://github.com/spack/spack/issues/41299
+ # ensures the correct build specific libproj is used with cmake builds (gdal >=3.5.0)
+ patch(
+ "https://patch-diff.githubusercontent.com/raw/OSGeo/gdal/pull/8964.patch?full_index=1",
+ when="@3.5:3.8",
+ sha256="52459dc9903ced5005ba81515762a55cd829d8f5420607405c211c4a77c2bf79",
+ )
+
executables = ["^gdal-config$"]
@classmethod
@@ -493,6 +511,7 @@ def cmake_args(self):
# be necessary.
self.define("ENABLE_DEFLATE64", "zlib-ng" not in self.spec),
# Optional dependencies
+ self.define_from_variant("GDAL_USE_ARCHIVE", "archive"),
self.define_from_variant("GDAL_USE_ARMADILLO", "armadillo"),
self.define_from_variant("GDAL_USE_ARROW", "arrow"),
self.define_from_variant("GDAL_USE_BASISU", "basisu"),
@@ -522,9 +541,11 @@ def cmake_args(self):
self.define_from_variant("GDAL_USE_KDU", "kdu"),
self.define_from_variant("GDAL_USE_KEA", "kea"),
self.define_from_variant("GDAL_USE_LERC", "lerc"),
+ self.define_from_variant("GDAL_USE_LIBAEC", "libaec"),
self.define_from_variant("GDAL_USE_LIBCSF", "libcsf"),
self.define_from_variant("GDAL_USE_LIBKML", "libkml"),
self.define_from_variant("GDAL_USE_LIBLZMA", "liblzma"),
+ self.define_from_variant("GDAL_USE_LIBQB3", "libqb3"),
self.define_from_variant("GDAL_USE_LIBXML2", "libxml2"),
self.define_from_variant("GDAL_USE_LURATECH", "luratech"),
self.define_from_variant("GDAL_USE_LZ4", "lz4"),
@@ -544,13 +565,12 @@ def cmake_args(self):
self.define_from_variant("GDAL_USE_OPENSSL", "openssl"),
self.define_from_variant("GDAL_USE_ORACLE", "oracle"),
self.define_from_variant("GDAL_USE_PARQUET", "parquet"),
- self.define_from_variant("GDAL_USE_PCRE2", "pcre"),
+ self.define_from_variant("GDAL_USE_PCRE2", "pcre2"),
self.define_from_variant("GDAL_USE_PDFIUM", "pdfium"),
self.define_from_variant("GDAL_USE_PNG", "png"),
self.define_from_variant("GDAL_USE_PODOFO", "podofo"),
self.define_from_variant("GDAL_USE_POPPLER", "poppler"),
self.define_from_variant("GDAL_USE_POSTGRESQL", "postgresql"),
- self.define_from_variant("GDAL_USE_LIBQB3", "qb3"),
self.define_from_variant("GDAL_USE_QHULL", "qhull"),
self.define_from_variant("GDAL_USE_RASDAMAN", "rasdaman"),
self.define_from_variant("GDAL_USE_RASTERLITE2", "rasterlite2"),
@@ -674,7 +694,7 @@ def configure_args(self):
self.with_or_without("crypto", variant="openssl", package="openssl"),
self.with_or_without("oci", variant="oracle", package="oracle-instant-client"),
self.with_or_without("pcidsk", package="pcidsk"),
- self.with_or_without("pcre"),
+ self.with_or_without("pcre", variant="pcre2"),
self.with_or_without("pdfium", package="pdfium"),
self.with_or_without("png", package="libpng"),
self.with_or_without("podofo", package="podofo"),
diff --git a/var/spack/repos/builtin/packages/gdb/package.py b/var/spack/repos/builtin/packages/gdb/package.py
index f4c4a54396a725..85bfeaade8c166 100644
--- a/var/spack/repos/builtin/packages/gdb/package.py
+++ b/var/spack/repos/builtin/packages/gdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,10 @@ class Gdb(AutotoolsPackage, GNUMirrorPackage):
maintainers("robertu94")
+ license("GPL-3.0-or-later AND LGPL-3.0-or-later")
+
+ version("14.1", sha256="683e63182fb72bd5d8db32ab388143796370a8e3e71c26bc264effb487db7927")
+ version("13.2", sha256="7ead13d9e19fa0c57bb19104e1a5f67eefa9fc79f2e6360de491e8fddeda1e30")
version("13.1", sha256="4cc3d7143d6d54d289d227b1e7289dbc0fa4cbd46131ab87136e1ea831cf46d4")
version("12.1", sha256="87296a3a9727356b56712c793704082d5df0ff36a34ca9ec9734fc9a8bdfdaab")
version("11.2", sha256="b558b66084835e43b6361f60d60d314c487447419cdf53adf83a87020c367290")
@@ -85,6 +89,7 @@ class Gdb(AutotoolsPackage, GNUMirrorPackage):
depends_on("ncurses", when="+tui")
depends_on("gmp", when="@11.1:")
depends_on("elfutils@0.179:+debuginfod", when="@10.1:+debuginfod")
+ depends_on("mpfr@4.2:", when="@14:")
build_directory = "spack-build"
diff --git a/var/spack/repos/builtin/packages/gdbm/package.py b/var/spack/repos/builtin/packages/gdbm/package.py
index a0882d5493f95e..e2efcf9683a650 100644
--- a/var/spack/repos/builtin/packages/gdbm/package.py
+++ b/var/spack/repos/builtin/packages/gdbm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Gdbm(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org.ua/software/gdbm/gdbm.html"
gnu_mirror_path = "gdbm/gdbm-1.13.tar.gz"
+ license("GPL-3.0-or-later")
+
version("1.23", sha256="74b1081d21fff13ae4bd7c16e5d6e504a4c26f7cde1dca0d963a484174bbcacd")
version("1.22", sha256="f366c823a6724af313b6bbe975b2809f9a157e5f6a43612a72949138d161d762")
version("1.21", sha256="b0b7dbdefd798de7ddccdd8edf6693a30494f7789777838042991ef107339cc2")
diff --git a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py
index aac83b70013bd8..97a57b6ce44fec 100644
--- a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py
+++ b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class GdkPixbuf(Package):
list_url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/"
list_depth = 1
+ license("LGPL-2.1-or-later")
+
version("2.42.10", sha256="ee9b6c75d13ba096907a2e3c6b27b61bcd17f5c7ebeab5a5b439d2f2e39fe44b")
version("2.42.9", sha256="28f7958e7bf29a32d4e963556d241d0a41a6786582ff6a5ad11665e0347fc962")
version("2.42.6", sha256="c4a6b75b7ed8f58ca48da830b9fa00ed96d668d3ab4b1f723dcf902f78bde77f")
diff --git a/var/spack/repos/builtin/packages/gdl/package.py b/var/spack/repos/builtin/packages/gdl/package.py
index 8007f4c5a66ebd..b81062260df03c 100644
--- a/var/spack/repos/builtin/packages/gdl/package.py
+++ b/var/spack/repos/builtin/packages/gdl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gdrcopy/package.py b/var/spack/repos/builtin/packages/gdrcopy/package.py
index 441349bdbb2a78..03f22a577ec1f3 100644
--- a/var/spack/repos/builtin/packages/gdrcopy/package.py
+++ b/var/spack/repos/builtin/packages/gdrcopy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,7 +15,10 @@ class Gdrcopy(MakefilePackage, CudaPackage):
git = "https://github.com/NVIDIA/gdrcopy"
maintainers("scothalverson")
+ license("MIT")
+
version("master", branch="master")
+ version("2.4.1", sha256="faa7e816e9bad3301e53d6721457f7ef5ab42b7aa3b01ffda51f8e5620bb20ed")
version("2.3", sha256="b85d15901889aa42de6c4a9233792af40dd94543e82abe0439e544c87fd79475")
version("2.2", sha256="e4be119809391b18c735346d24b3b398dd9421cbff47ef12befbae40d61da45f")
version("2.1", sha256="cecc7dcc071107f77396f5553c9109790b6d2298ae29eb2dbbdd52b2a213e4ea")
diff --git a/var/spack/repos/builtin/packages/geant3/package.py b/var/spack/repos/builtin/packages/geant3/package.py
index 867e458bf410e4..cef0167b3b60ea 100644
--- a/var/spack/repos/builtin/packages/geant3/package.py
+++ b/var/spack/repos/builtin/packages/geant3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/geant4-data/package.py b/var/spack/repos/builtin/packages/geant4-data/package.py
index 7953ba2d4582a4..c4134e356a9453 100644
--- a/var/spack/repos/builtin/packages/geant4-data/package.py
+++ b/var/spack/repos/builtin/packages/geant4-data/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,7 @@ class Geant4Data(BundlePackage):
tags = ["hep"]
+ version("11.2.0")
version("11.1.0")
version("11.0.0")
version("10.7.4")
@@ -33,6 +34,7 @@ class Geant4Data(BundlePackage):
version("10.4.3")
version("10.4.0")
version("10.3.3")
+ version("10.0.4")
# Add install phase so we can create the data "view"
phases = ["install"]
@@ -41,6 +43,19 @@ class Geant4Data(BundlePackage):
# they generally don't change on the patch level
# Can move to declaring on a dataset basis if needed
_datasets = {
+ "11.2.0:11.2": [
+ "g4ndl@4.7",
+ "g4emlow@8.5",
+ "g4photonevaporation@5.7",
+ "g4radioactivedecay@5.6",
+ "g4particlexs@4.0",
+ "g4pii@1.3",
+ "g4realsurface@2.2",
+ "g4saiddata@2.0",
+ "g4abla@3.3",
+ "g4incl@1.2",
+ "g4ensdfstate@2.3",
+ ],
"11.1.0:11.1": [
"g4ndl@4.7",
"g4emlow@8.2",
@@ -132,6 +147,18 @@ class Geant4Data(BundlePackage):
],
"10.3.1:10.3": ["g4photonevaporation@4.3.2", "g4radioactivedecay@5.1.1"],
"10.3.0": ["g4photonevaporation@4.3", "g4radioactivedecay@5.1"],
+ "10.0.4": [
+ "g4ndl@4.4",
+ "g4emlow@6.35",
+ "g4photonevaporation@3.0",
+ "g4radioactivedecay@4.0",
+ "g4neutronxs@1.4",
+ "g4pii@1.3",
+ "g4realsurface@1.0",
+ "g4saiddata@1.1",
+ "g4abla@3.0",
+ "g4ensdfstate@1.0",
+ ],
}
for _vers, _dsets in _datasets.items():
diff --git a/var/spack/repos/builtin/packages/geant4-vmc/package.py b/var/spack/repos/builtin/packages/geant4-vmc/package.py
index 80ba272bb1683c..60e4bb866b412f 100644
--- a/var/spack/repos/builtin/packages/geant4-vmc/package.py
+++ b/var/spack/repos/builtin/packages/geant4-vmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Geant4Vmc(CMakePackage):
maintainer = ["wdconinc"]
+ license("GPL-3.0-only")
+
version("master", branch="master")
version("6-1-p1", sha256="b3115cd891192ae6cb347737854ee01a22620498f005beb7644af12461ad8b9d")
version("5-3", sha256="22f58530963988380509a7741ad6b3dde21806f3862fb55c11cc27f25d3d3c2d")
diff --git a/var/spack/repos/builtin/packages/geant4/geant4-10.0.4.patch b/var/spack/repos/builtin/packages/geant4/geant4-10.0.4.patch
new file mode 100644
index 00000000000000..b09c205882664c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/geant4/geant4-10.0.4.patch
@@ -0,0 +1,31 @@
+diff -Naur a/cmake/Modules/Geant4MakeRules_cxx.cmake b/cmake/Modules/Geant4MakeRules_cxx.cmake
+--- a/cmake/Modules/Geant4MakeRules_cxx.cmake 2016-06-10 12:04:27
++++ b/cmake/Modules/Geant4MakeRules_cxx.cmake 2023-12-04 16:49:28
+@@ -51,7 +51,7 @@
+ elseif(_gnucxx_version VERSION_LESS 4.7)
+ set(_CXXSTDS "c++98" "c++0x")
+ else()
+- set(_CXXSTDS "c++98" "c++0x" "c++11")
++ set(_CXXSTDS "c++98" "c++0x" "c++11" "c++14")
+ endif()
+
+ set(CXXSTD_IS_AVAILABLE ${_CXXSTDS} PARENT_SCOPE)
+diff -Naur a/source/visualization/HepRep/sources.cmake b/source/visualization/HepRep/sources.cmake
+--- a/source/visualization/HepRep/sources.cmake 2016-06-10 12:04:27
++++ b/source/visualization/HepRep/sources.cmake 2023-12-04 16:12:32
+@@ -71,13 +71,13 @@
+ G4HepRepMessenger.cc
+ G4HepRepSceneHandler.cc
+ G4HepRepViewer.cc
+- GZIPOutputStream.cc
++ gzipoutputstream.cc
+ GZIPOutputStreamBuffer.cc
+ IndentPrintWriter.cc
+ XMLHepRepFactory.cc
+ XMLHepRepWriter.cc
+ XMLWriter.cc
+- ZipOutputStream.cc
++ zipoutputstream.cc
+ ZipOutputStreamBuffer.cc
+ GRANULAR_DEPENDENCIES
+ G4csg
diff --git a/var/spack/repos/builtin/packages/geant4/package.py b/var/spack/repos/builtin/packages/geant4/package.py
index afc4464b098bd8..4f1bebec298644 100644
--- a/var/spack/repos/builtin/packages/geant4/package.py
+++ b/var/spack/repos/builtin/packages/geant4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -22,6 +22,8 @@ class Geant4(CMakePackage):
maintainers("drbenmorgan")
+ version("11.2.0", sha256="9ff544739b243a24dac8f29a4e7aab4274fc0124fd4e1c4972018213dc6991ee")
+ version("11.1.3", sha256="5d9a05d4ccf8b975649eab1d615fc1b8dce5937e01ab9e795bffd04149240db6")
version("11.1.2", sha256="e9df8ad18c445d9213f028fd9537e174d6badb59d94bab4eeae32f665beb89af")
version("11.1.1", sha256="c5878634da9ba6765ce35a469b2893044f4a6598aa948733da8436cdbfeef7d2")
version("11.1.0", sha256="c4a23f2f502efeab56de43a4412b21f65c7ca1b0877b9bc1d7e845ee12edf70a")
@@ -43,6 +45,7 @@ class Geant4(CMakePackage):
version("10.4.3", sha256="67f3bb6405a2c77e573936c2b933f5a4a33915aa379626a2eb3012009b91e1da")
version("10.4.0", sha256="e919b9b0a88476e00c0b18ab65d40e6a714b55ee4778f66bac32a5396c22aa74")
version("10.3.3", sha256="bcd36a453da44de9368d1d61b0144031a58e4b43a6d2d875e19085f2700a89d8")
+ version("10.0.4", sha256="97f3744366b00143d1eed52f8786823034bbe523f45998106f798af61d83f863")
_cxxstd_values = (
conditional("11", "14", when="@:10"),
@@ -58,7 +61,7 @@ class Geant4(CMakePackage):
)
variant("threads", default=True, description="Build with multithreading")
- variant("vecgeom", default=False, description="Enable vecgeom support")
+ variant("vecgeom", default=False, description="Enable vecgeom support", when="@10.4:")
variant("opengl", default=False, description="Optional OpenGL support")
variant("x11", default=False, description="Optional X11 support")
variant("motif", default=False, description="Optional motif support")
@@ -72,6 +75,7 @@ class Geant4(CMakePackage):
depends_on("cmake@3.5:", type="build")
for _vers in [
+ "10.0.4",
"10.3.3",
"10.4.0",
"10.4.3",
@@ -85,8 +89,9 @@ class Geant4(CMakePackage):
"10.7.2",
"10.7.3",
"10.7.4",
- "11.0.0:11.0",
- "11.1:",
+ "11.0",
+ "11.1",
+ "11.2:",
]:
depends_on("geant4-data@" + _vers, type="run", when="@" + _vers)
@@ -104,17 +109,18 @@ class Geant4(CMakePackage):
depends_on("clhep@2.4.6.0:", when="@11.1:")
depends_on("clhep@2.4.5.1:", when="@11.0.0:")
depends_on("clhep@2.4.4.0:", when="@10.7.0:")
- depends_on("clhep@2.3.3.0:", when="@10.3.3:10.6")
+ depends_on("clhep@2.3.3.0:", when="@10.3:10.6")
+ depends_on("clhep@2.1.2.3", when="@:10.2")
# Vecgeom specific versions for each Geant4 version
with when("+vecgeom"):
- depends_on("vecgeom@1.2.0:", when="@11.1:")
+ depends_on("vecgeom@1.2.6:", when="@11.2:")
+ depends_on("vecgeom@1.2.0:", when="@11.1")
depends_on("vecgeom@1.1.18:1.1", when="@11.0.0:11.0")
depends_on("vecgeom@1.1.8:1.1", when="@10.7.0:10.7")
depends_on("vecgeom@1.1.5", when="@10.6.0:10.6")
depends_on("vecgeom@1.1.0", when="@10.5.0:10.5")
depends_on("vecgeom@0.5.2", when="@10.4.0:10.4")
- depends_on("vecgeom@0.3rc", when="@10.3.0:10.3")
def std_when(values):
for v in values:
@@ -141,18 +147,23 @@ def std_when(values):
depends_on("libx11", when="+x11")
depends_on("libxmu", when="+x11")
depends_on("motif", when="+motif")
- depends_on("qt@5: +opengl", when="+qt")
+ with when("+qt"):
+ depends_on("qt@5: +opengl")
+ depends_on("qt@5.9:", when="@11.2:")
+ # As released, 10.0.4 has inconsistently capitalised filenames
+ # in the cmake files; this patch also enables cxxstd 14
+ patch("geant4-10.0.4.patch", when="@10.0.4")
# As released, 10.03.03 has issues with respect to using external
# CLHEP.
- patch("CLHEP-10.03.03.patch", level=1, when="@10.3.3")
+ patch("CLHEP-10.03.03.patch", level=1, when="@10.3")
# These patches can be applied independent of the cxxstd value?
- patch("cxx17.patch", when="@:10.3 cxxstd=17")
+ patch("cxx17.patch", when="@10.3 cxxstd=17")
patch("cxx17_geant4_10_0.patch", level=1, when="@10.4.0 cxxstd=17")
patch("geant4-10.4.3-cxx17-removed-features.patch", level=1, when="@10.4.3 cxxstd=17")
# See https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2556
- patch("package-cache.patch", level=1, when="@10.7.0:11.2.0^cmake@3.17:")
+ patch("package-cache.patch", level=1, when="@10.7.0:11.1.2^cmake@3.17:")
# NVHPC: "thread-local declaration follows non-thread-local declaration"
conflicts("%nvhpc", when="+threads")
@@ -230,8 +241,11 @@ def cmake_args(self):
# Use the correct C++ standard option for the requested version
if spec.version >= Version("11.0"):
options.append(self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"))
- else:
+ elif spec.version >= Version("10.3"):
options.append(self.define_from_variant("GEANT4_BUILD_CXXSTD", "cxxstd"))
+ else:
+ cxxstd = spec.variants["cxxstd"].value
+ options.append(self.define("GEANT4_BUILD_CXXSTD", f"c++{cxxstd}"))
if spec.version >= Version("10.6"):
# When building a downstream library/app outside of Spack, make
diff --git a/var/spack/repos/builtin/packages/gearshifft/package.py b/var/spack/repos/builtin/packages/gearshifft/package.py
index f099842392bbb0..c9cc7b7586dc90 100644
--- a/var/spack/repos/builtin/packages/gearshifft/package.py
+++ b/var/spack/repos/builtin/packages/gearshifft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Gearshifft(CMakePackage):
maintainers("zyzzyxdonta")
+ license("Apache-2.0")
+
version("0.4.0", sha256="15b9e4bfa1d9b4fe4ae316f289c67b7be0774cdada5bd7310df4d0e026d9d227")
# gearshifft used the variable name `CMAKE_DEFAULT_BUILD_TYPE` which was
diff --git a/var/spack/repos/builtin/packages/gegelati/package.py b/var/spack/repos/builtin/packages/gegelati/package.py
index f994d21328311c..4558126bb12674 100644
--- a/var/spack/repos/builtin/packages/gegelati/package.py
+++ b/var/spack/repos/builtin/packages/gegelati/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Gegelati(CMakePackage):
# notify when the package is updated.
maintainers("lucascarvalhoroncoroni")
+ license("CECILL-C")
+
version("1.2.0", sha256="039997c7d6cb394f910f6c40620165b32094e0c85c170be01eb74b55488a1d4c")
depends_on("sdl2")
diff --git a/var/spack/repos/builtin/packages/gegl/package.py b/var/spack/repos/builtin/packages/gegl/package.py
index 303b71d021523f..7005968e7d671a 100644
--- a/var/spack/repos/builtin/packages/gegl/package.py
+++ b/var/spack/repos/builtin/packages/gegl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Gegl(MesonPackage):
maintainers("benkirk")
+ license("GPL-3.0-or-later AND LGPL-3.0-or-later")
+
version("0.4.44", sha256="0a4cdb41635e406a0849cd0d3f03caf7d97cab8aa13d28707d532d0089d56126")
version("0.4.42", sha256="aba83a0cbaa6c56edc29ea22f2e8172950a53b96daa51592083d59222bdde02d")
version("0.4.40", sha256="cdde80d15a49dab9a614ef98f804c8ce6e4cfe1339a3c240c34f3fb45436b85d")
diff --git a/var/spack/repos/builtin/packages/gemma/package.py b/var/spack/repos/builtin/packages/gemma/package.py
index 625b30dfa204c6..6a43842e0fd930 100644
--- a/var/spack/repos/builtin/packages/gemma/package.py
+++ b/var/spack/repos/builtin/packages/gemma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Gemma(MakefilePackage):
maintainers("snehring", "dlkuehn")
+ license("GPL-3.0-or-later")
+
version("0.98.5", sha256="3ed336deee29e370f96ec8f1a240f7b62550e57dcd1694245ce7ec8f42241677")
depends_on("zlib-api")
diff --git a/var/spack/repos/builtin/packages/gemmlowp/package.py b/var/spack/repos/builtin/packages/gemmlowp/package.py
index d1162a4525685e..cb56090e2e332a 100644
--- a/var/spack/repos/builtin/packages/gemmlowp/package.py
+++ b/var/spack/repos/builtin/packages/gemmlowp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Gemmlowp(Package):
homepage = "https://github.com/google/gemmlowp"
git = "https://github.com/google/gemmlowp.git"
+ license("Apache-2.0")
+
version("a6f29d9ac", commit="a6f29d8ac48d63293f845f2253eccbf86bc28321")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/genemark-et/package.py b/var/spack/repos/builtin/packages/genemark-et/package.py
index b24096996c9eaa..8a344157fed7d5 100644
--- a/var/spack/repos/builtin/packages/genemark-et/package.py
+++ b/var/spack/repos/builtin/packages/genemark-et/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/generax/package.py b/var/spack/repos/builtin/packages/generax/package.py
index 16692d72c50aca..ef52f73e5b884b 100644
--- a/var/spack/repos/builtin/packages/generax/package.py
+++ b/var/spack/repos/builtin/packages/generax/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Generax(CMakePackage):
maintainers("snehring")
+ license("AGPL-3.0-or-later")
+
version("master", branch="master", submodules=True)
version("dev", branch="dev", submodules=True)
version("2.0.4", commit="e4fab40f407bdd3b588d3d69a449f8c1be56f9fa", submodules=True)
diff --git a/var/spack/repos/builtin/packages/genesis/package.py b/var/spack/repos/builtin/packages/genesis/package.py
index 37404faa8c8926..485693084f50c0 100644
--- a/var/spack/repos/builtin/packages/genesis/package.py
+++ b/var/spack/repos/builtin/packages/genesis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Genesis(AutotoolsPackage, CudaPackage):
url = "https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2020/09/genesis-1.5.1.tar.bz2"
git = "https://github.com/genesis-release-r-ccs/genesis-2.0.git"
+ license("LGPL-3.0-or-later")
+
version(
"1.6.0",
sha256="d0185a5464ed4231f6ee81f6dcaa15935a99fa30b96658d2b7c25d7fbc5b38e9",
diff --git a/var/spack/repos/builtin/packages/genfit/package.py b/var/spack/repos/builtin/packages/genfit/package.py
index 182f366020c45d..c4e7f4b4417f01 100644
--- a/var/spack/repos/builtin/packages/genfit/package.py
+++ b/var/spack/repos/builtin/packages/genfit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,7 +18,13 @@ class Genfit(CMakePackage):
tags = ["hep"]
+ license("LGPL-3.0-or-later")
+
version("master", branch="master")
+ version("02-00-05", sha256="8c37d1692e592f9f28a145c38aa41b0a6ed9211947846e9d10e34a2759ee446e")
+ version("02-00-04", sha256="b833e40cfe5343424262d28f9cb715fc80255313a985508453ac17c3a522b273")
+ version("02-00-03", sha256="23bb4c26740be96bd7933d30f3b683c6246b8f349116bc43d1c85117682e7a4b")
+ version("02-00-02", sha256="b415abec7466d7fd15de6c37cd970c07a6581fe303fdfa3a8bc9258ea1c19d7d")
version("02-00-01", sha256="e5a3eabf1ab53178fbd40aff0a8071bf48bac558ba1b798769106ccf230c4120")
version("02-00-00", sha256="0bfd5dd152ad0573daa4153a731945824e0ce266f844988b6a8bebafb7f2dacc")
# Untagged version from 2017-06-23 known to work with root@6.16.00
@@ -29,14 +35,18 @@ class Genfit(CMakePackage):
depends_on("eigen")
depends_on("googletest")
+ # See https://github.com/GenFit/GenFit/pull/127
+ conflicts("root@6.30:", when="@:02-00-04", msg="genfit cannot be built against root@6.30 ")
+
def cmake_args(self):
args = []
- # normally, as a cmake package root should be
- # automatically picked up after 'depends_on'
- # as it is added to CMAKE_PREFIX_PATH
- # but genfit cooks its own root cmake config
- # so this workaround is needed for now.
- root_prefix = self.spec["root"].prefix
- args.append("-DROOT_DIR=%s" % root_prefix)
+ if self.spec.satisfies("@:02-00-04"):
+ # normally, as a cmake package root should be
+ # automatically picked up after 'depends_on'
+ # as it is added to CMAKE_PREFIX_PATH
+ # but genfit cooks its own root cmake config
+ # so this workaround is needed for now.
+ root_prefix = self.spec["root"].prefix
+ args.append("-DROOT_DIR=%s" % root_prefix)
return args
diff --git a/var/spack/repos/builtin/packages/gengeo/package.py b/var/spack/repos/builtin/packages/gengeo/package.py
index a0bb146498c79b..6c0f3c6be25338 100644
--- a/var/spack/repos/builtin/packages/gengeo/package.py
+++ b/var/spack/repos/builtin/packages/gengeo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Gengeo(AutotoolsPackage):
maintainers("dorton21")
+ license("Apache-2.0")
+
version("163", sha256="9c896d430d8f315a45379d2b82e7d374f36259af66a745bfdee4c022a080d34d")
extends("python")
diff --git a/var/spack/repos/builtin/packages/gengetopt/package.py b/var/spack/repos/builtin/packages/gengetopt/package.py
index 255f3308462da6..b445d8b23aafab 100644
--- a/var/spack/repos/builtin/packages/gengetopt/package.py
+++ b/var/spack/repos/builtin/packages/gengetopt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Gengetopt(AutotoolsPackage):
maintainers("rblake-llnl")
+ license("GPL-3.0-or-later")
+
version("2.23", sha256="b941aec9011864978dd7fdeb052b1943535824169d2aa2b0e7eae9ab807584ac")
version("2.22.6", sha256="30b05a88604d71ef2a42a2ef26cd26df242b41f5b011ad03083143a31d9b01f7")
version("2.22.5", sha256="3b6fb3240352b0eb0c5b8583b58b62cbba58167cef5a7e82fa08a7f968ed2137")
diff --git a/var/spack/repos/builtin/packages/genie/package.py b/var/spack/repos/builtin/packages/genie/package.py
index 5b4aa017fa09c0..bb9af9dbdd508f 100644
--- a/var/spack/repos/builtin/packages/genie/package.py
+++ b/var/spack/repos/builtin/packages/genie/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/genomefinisher/package.py b/var/spack/repos/builtin/packages/genomefinisher/package.py
index 62723ce19825c4..e4c42ce2f6f046 100644
--- a/var/spack/repos/builtin/packages/genomefinisher/package.py
+++ b/var/spack/repos/builtin/packages/genomefinisher/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/genometools/package.py b/var/spack/repos/builtin/packages/genometools/package.py
index 65125ded31cd80..7a3d299e2aee5d 100644
--- a/var/spack/repos/builtin/packages/genometools/package.py
+++ b/var/spack/repos/builtin/packages/genometools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Genometools(MakefilePackage):
homepage = "http://genometools.org/"
url = "https://github.com/genometools/genometools/archive/refs/tags/v1.6.2.tar.gz"
+ license("BSD-2-Clause")
+
version("1.6.2", sha256="974825ddc42602bdce3d5fbe2b6e2726e7a35e81b532a0dc236f6e375d18adac")
version("1.6.1", sha256="528ca143a7f1d42af8614d60ea1e5518012913a23526d82e434f0dad2e2d863f")
version("1.5.9", sha256="bba8e043f097e7c72e823f73cb0efbd20bbd60f1ce797a0e4c0ab632b170c909")
diff --git a/var/spack/repos/builtin/packages/genomeworks/package.py b/var/spack/repos/builtin/packages/genomeworks/package.py
index 9ea6b6c072f3f6..59622cd79cdd38 100644
--- a/var/spack/repos/builtin/packages/genomeworks/package.py
+++ b/var/spack/repos/builtin/packages/genomeworks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Genomeworks(CMakePackage, CudaPackage):
url = "https://github.com/clara-parabricks/GenomeWorks/archive/v0.5.3.tar.gz"
git = "https://github.com/clara-parabricks/GenomeWorks.git"
+ license("Apache-2.0")
+
version(
"0.5.3", tag="v0.5.3", commit="b4b8bf76ea2ce44452d3a1107e66d47968414adb", submodules=True
)
diff --git a/var/spack/repos/builtin/packages/genrich/package.py b/var/spack/repos/builtin/packages/genrich/package.py
index 93253354dd3cdb..b36c194c921d61 100644
--- a/var/spack/repos/builtin/packages/genrich/package.py
+++ b/var/spack/repos/builtin/packages/genrich/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Genrich(MakefilePackage):
homepage = "https://github.com/jsh58/Genrich"
url = "https://github.com/jsh58/Genrich/archive/v0.6.tar.gz"
+ license("MIT")
+
version("0.6.1", sha256="2c70239e1caf33519b9e99142470bb4dd2f4c69e71f68cee33d6d6a1032d0e33")
version("0.6", sha256="4c87aca8b7789f28b0c5c2c0ccea75668f19fa6a4cb38cd3c06d80ffd98d396f")
diff --git a/var/spack/repos/builtin/packages/geode/package.py b/var/spack/repos/builtin/packages/geode/package.py
index ca2b8549c9306c..51e828435624ec 100644
--- a/var/spack/repos/builtin/packages/geode/package.py
+++ b/var/spack/repos/builtin/packages/geode/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Geode(Package):
homepage = "https://geode.apache.org/"
url = "https://archive.apache.org/dist/geode/1.9.2/apache-geode-1.9.2.tgz"
+ license("Apache-2.0")
+
version("1.9.2", sha256="4b8118114ef43166f6bf73af56b93aadbf9108fcab06d1fbbb8e27f7d559d7e0")
version("1.9.0", sha256="8794808ebc89bc855f0b989b32e91e890d446cfd058e123f6ccb9e12597c1c4f")
version("1.8.0", sha256="58edc41edac4eabd899322b73a24727eac41f6253274c2ce7d0a82227121ae3e")
diff --git a/var/spack/repos/builtin/packages/geoip-api-c/package.py b/var/spack/repos/builtin/packages/geoip-api-c/package.py
index 0205334d5c4807..d7d1dc52934b36 100644
--- a/var/spack/repos/builtin/packages/geoip-api-c/package.py
+++ b/var/spack/repos/builtin/packages/geoip-api-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class GeoipApiC(AutotoolsPackage):
homepage = "https://github.com/maxmind/geoip-api-c"
url = "https://github.com/maxmind/geoip-api-c/archive/v1.6.12.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("1.6.12", sha256="99b119f8e21e94f1dfd6d49fbeed29a70df1544896e76cd456f25e397b07d476")
version("1.6.11", sha256="b0e5a92200b5ab540d118983f7b7191caf4faf1ae879c44afa3ff2a2abcdb0f5")
version("1.6.10", sha256="cb44e0d0dbc45efe2e399e695864e58237ce00026fba8a74b31d85888c89c67a")
diff --git a/var/spack/repos/builtin/packages/geoip/package.py b/var/spack/repos/builtin/packages/geoip/package.py
index 49034fa58f8520..2e3b02833882b3 100644
--- a/var/spack/repos/builtin/packages/geoip/package.py
+++ b/var/spack/repos/builtin/packages/geoip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Geoip(AutotoolsPackage):
homepage = "http://www.maxmind.com/app/c"
url = "https://github.com/maxmind/geoip-api-c/releases/download/v1.6.12/GeoIP-1.6.12.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("1.6.12", sha256="1dfb748003c5e4b7fd56ba8c4cd786633d5d6f409547584f6910398389636f80")
version("1.6.11", sha256="b0e5a92200b5ab540d118983f7b7191caf4faf1ae879c44afa3ff2a2abcdb0f5")
version("1.6.10", sha256="cb44e0d0dbc45efe2e399e695864e58237ce00026fba8a74b31d85888c89c67a")
diff --git a/var/spack/repos/builtin/packages/geopm/package.py b/var/spack/repos/builtin/packages/geopm/package.py
index 56b6f3525f8bb9..4b033d27e56ada 100644
--- a/var/spack/repos/builtin/packages/geopm/package.py
+++ b/var/spack/repos/builtin/packages/geopm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -22,6 +22,8 @@ class Geopm(AutotoolsPackage):
tags = ["e4s"]
+ license("BSD-3-Clause")
+
# Add additional proper versions and checksums here. "spack checksum geopm"
version("develop", branch="dev")
version("master", branch="master")
diff --git a/var/spack/repos/builtin/packages/geos/package.py b/var/spack/repos/builtin/packages/geos/package.py
index dc23024cdc2116..ae859c85b079fd 100644
--- a/var/spack/repos/builtin/packages/geos/package.py
+++ b/var/spack/repos/builtin/packages/geos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,20 +21,32 @@ class Geos(CMakePackage):
maintainers("adamjstewart")
+ license("LGPL-2.1-or-later")
+
+ version("3.12.1", sha256="d6ea7e492224b51193e8244fe3ec17c4d44d0777f3c32ca4fb171140549a0d03")
version("3.12.0", sha256="d96db96011259178a35555a0f6d6e75a739e52a495a6b2aa5efb3d75390fbc39")
+ version("3.11.3", sha256="80d60a2bbc0cde7745a3366b9eb8c0d65a142b03e063ea0a52c364758cd5ee89")
version("3.11.2", sha256="b1f077669481c5a3e62affc49e96eb06f281987a5d36fdab225217e5b825e4cc")
version("3.11.1", sha256="6d0eb3cfa9f92d947731cc75f1750356b3bdfc07ea020553daf6af1c768e0be2")
version("3.11.0", sha256="79ab8cabf4aa8604d161557b52e3e4d84575acdc0d08cb09ab3f7aaefa4d858a")
+ version("3.10.6", sha256="078403158da66cad8be39ad1ede5e2fe4b70dcf7bb292fb06a65bdfe8afa6daf")
+ version("3.10.5", sha256="cc47d95e846e2745c493d8f9f3a9913b1c61f26717a1165898da64352aec4dde")
version("3.10.4", sha256="d6fc11bcfd265cbf2714199174e4c3392d657551e5fd84c74c07c863b29357e3")
version("3.10.3", sha256="3c141b07d61958a758345d5f54e3c735834b2f4303edb9f67fb26914f0d44770")
version("3.10.2", sha256="50bbc599ac386b4c2b3962dcc411f0040a61f204aaef4eba7225ecdd0cf45715")
version("3.10.1", sha256="a8148eec9636814c8ab0f8f5266ce6f9b914ed65b0d083fc43bb0bbb01f83648")
version("3.10.0", sha256="097d70e3c8f688e59633ceb8d38ad5c9b0d7ead5729adeb925dbc489437abe13")
+ version("3.9.5", sha256="c6c9aedfa8864fb44ba78911408442382bfd0690cf2d4091ae3805c863789036")
version("3.9.4", sha256="70dff2530d8cd2dfaeeb91a5014bd17afb1baee8f0e3eb18e44d5b4dbea47b14")
version("3.9.3", sha256="f8b2314e311456f7a449144efb5e3188c2a28774752bc50fc882a3cd5c89ee35")
version("3.9.2", sha256="44a5a9be21d7d473436bf621c2ddcc3cf5a8bbe3c786e13229618a3b9d861297")
version("3.9.1", sha256="7e630507dcac9dc07565d249a26f06a15c9f5b0c52dd29129a0e3d381d7e382a")
+ version("3.9.0", sha256="bd8082cf12f45f27630193c78bdb5a3cba847b81e72b20268356c2a4fc065269")
+ version("3.8.4", sha256="6de8c98c1ae7cb0cd2d726a8dc9b7467308c4b4e05f9df94742244e64e441499")
+ version("3.8.3", sha256="f98315d1ba35c8d1a94a2947235f9e9dfb7057fdec343683f64ff9ad1061255c")
+ version("3.8.2", sha256="5a102f4614b0c9291504bbefd847ebac18ea717843506bd251d015c7cf9726b4")
version("3.8.1", sha256="4258af4308deb9dbb5047379026b4cd9838513627cb943a44e16c40e42ae17f7")
+ version("3.8.0", sha256="99114c3dc95df31757f44d2afde73e61b9f742f0b683fd1894cbbee05dda62d5")
version("3.7.2", sha256="2166e65be6d612317115bfec07827c11b403c3f303e0a7420a2106bc999d7707")
version("3.6.2", sha256="045a13df84d605a866602f6020fc6cbf8bf4c42fb50de237a08926e1d7d7652a")
version("3.6.1", sha256="4a2e4e3a7a09a7cfda3211d0f4a235d9fd3176ddf64bd8db14b4ead266189fc5")
diff --git a/var/spack/repos/builtin/packages/getorganelle/package.py b/var/spack/repos/builtin/packages/getorganelle/package.py
index cbf02854e5746a..8cc716fe28270f 100644
--- a/var/spack/repos/builtin/packages/getorganelle/package.py
+++ b/var/spack/repos/builtin/packages/getorganelle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Getorganelle(PythonPackage):
maintainers("snehring")
+ license("GPL-3.0-only")
+
version("1.7.7.0", sha256="dd351b5cd33688adfcd8bff9794ae0cc0ce01a572dac2bcf6c9d7db77b3e4883")
version("1.7.5.0", sha256="c498196737726cb4c0158f23037bf301a069f5028ece729bb4d09c7d915df93d")
diff --git a/var/spack/repos/builtin/packages/gettext/package.py b/var/spack/repos/builtin/packages/gettext/package.py
index ee502c07853974..0c600821dcb77a 100644
--- a/var/spack/repos/builtin/packages/gettext/package.py
+++ b/var/spack/repos/builtin/packages/gettext/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,7 +18,11 @@ class Gettext(AutotoolsPackage, GNUMirrorPackage):
maintainers("michaelkuhn")
executables = [r"^gettext$"]
+ tags = ["build-tools"]
+ license("GPL-3.0-or-later AND LGPL-2.1-or-later AND MIT")
+
+ version("0.22.4", sha256="29217f1816ee2e777fa9a01f9956a14139c0c23cc1b20368f06b2888e8a34116")
version("0.22.3", sha256="b838228b3f8823a6c1eddf07297197c4db13f7e1b173b9ef93f3f945a63080b6")
version("0.21.1", sha256="50dbc8f39797950aa2c98e939947c527e5ac9ebd2c1b99dd7b06ba33a6767ae6")
version("0.21", sha256="d20fcbb537e02dcf1383197ba05bd0734ef7bf5db06bdb241eb69b7d16b73192")
diff --git a/var/spack/repos/builtin/packages/gexiv2/package.py b/var/spack/repos/builtin/packages/gexiv2/package.py
index 109a8b61005e30..fc88a05935eb71 100644
--- a/var/spack/repos/builtin/packages/gexiv2/package.py
+++ b/var/spack/repos/builtin/packages/gexiv2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Gexiv2(MesonPackage):
maintainers("benkirk")
+ license("GPL-2.0-or-later")
+
version("0.12.3", sha256="d23b7972a2fc6f840150bad1ed79c1cbec672951e180c1e1ec33ca6c730c59f3")
version("0.12.2", sha256="2322b552aca330eef79724a699c51a302345d5e074738578b398b7f2ff97944c")
version("0.12.1", sha256="8aeafd59653ea88f6b78cb03780ee9fd61a2f993070c5f0d0976bed93ac2bd77")
diff --git a/var/spack/repos/builtin/packages/gffcompare/package.py b/var/spack/repos/builtin/packages/gffcompare/package.py
index 7f1dda5318d140..88c66316cae13c 100644
--- a/var/spack/repos/builtin/packages/gffcompare/package.py
+++ b/var/spack/repos/builtin/packages/gffcompare/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Gffcompare(MakefilePackage):
"https://github.com/gpertea/gffcompare/releases/download/v0.12.6/gffcompare-0.12.6.tar.gz"
)
+ license("MIT")
+
version("0.12.6", sha256="0e713bc9177d874c935802d11669776da5e9377a8c4d031153b48a783d3391d0")
def build(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/gffread/package.py b/var/spack/repos/builtin/packages/gffread/package.py
index 3757aa52c1e098..58896451b2e340 100644
--- a/var/spack/repos/builtin/packages/gffread/package.py
+++ b/var/spack/repos/builtin/packages/gffread/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Gffread(MakefilePackage):
homepage = "http://ccb.jhu.edu/software/stringtie/gff.shtml#gffread"
url = "https://github.com/gpertea/gffread/releases/download/v0.12.7/gffread-0.12.7.tar.gz"
+ license("MIT")
+
version("0.12.7", sha256="bfde1c857495e578f5b3af3c007a9aa40593e69450eafcc6a42c3e8ef08ed1f5")
def build(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/gflags/package.py b/var/spack/repos/builtin/packages/gflags/package.py
index 47ebfbeda01434..fbc0e846d98779 100644
--- a/var/spack/repos/builtin/packages/gflags/package.py
+++ b/var/spack/repos/builtin/packages/gflags/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Gflags(CMakePackage):
homepage = "https://gflags.github.io/gflags"
url = "https://github.com/gflags/gflags/archive/v2.1.2.tar.gz"
+ license("BSD-3-Clause")
+
version("2.2.2", sha256="34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf")
version("2.1.2", sha256="d8331bd0f7367c8afd5fcb5f5e85e96868a00fd24b7276fa5fcee1e5575c2662")
diff --git a/var/spack/repos/builtin/packages/gfsio/package.py b/var/spack/repos/builtin/packages/gfsio/package.py
index 2c03bb0fdba35a..a5dc64a92cf039 100644
--- a/var/spack/repos/builtin/packages/gfsio/package.py
+++ b/var/spack/repos/builtin/packages/gfsio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gftl-shared/package.py b/var/spack/repos/builtin/packages/gftl-shared/package.py
index 0ab1d4e672ca81..8a327a36265c26 100644
--- a/var/spack/repos/builtin/packages/gftl-shared/package.py
+++ b/var/spack/repos/builtin/packages/gftl-shared/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,8 +21,11 @@ class GftlShared(CMakePackage):
maintainers("mathomp4", "tclune")
+ license("Apache-2.0")
+
version("main", branch="main")
+ version("1.7.0", sha256="8ba567133fcee6b93bc71f61b3bb2053b4b07c6d78f6ad98a04dfc40aa478de7")
version("1.6.1", sha256="0e3e1e0c7e0c3f1576e296b3b199dcae4bbaad055fc8fe929c34e52d4b07b02c")
version("1.6.0", sha256="90245b83aea9854bc5b9fbd553a68cf73ab12f6ed5a14753a9c84092047e8cb0")
version("1.5.1", sha256="353d07cc22678d1a79b19dbf53d8ba54b889e424a15e315cc4f035b72eedb83a")
diff --git a/var/spack/repos/builtin/packages/gftl/package.py b/var/spack/repos/builtin/packages/gftl/package.py
index ea176f9391f2f8..8f9dec7c90a5ca 100644
--- a/var/spack/repos/builtin/packages/gftl/package.py
+++ b/var/spack/repos/builtin/packages/gftl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -39,6 +39,7 @@ class Gftl(CMakePackage):
version("develop", branch="develop")
version("main", branch="main")
+ version("1.11.0", sha256="b28935bc077749823b1505ad8c1208360a5ba7e961d7593c17a33b11455a32a4")
version("1.10.0", sha256="d6086e8cba2497bacdae66d301f7cdacaed9138a0055f33f8ca1b778a0cf0dc5")
version("1.9.0", sha256="4c7cb8b1313d87eaa5cc9aae242301085aa3b12688d0fddf54061503e95e4cc0")
version("1.8.3", sha256="5864c6a427105c1194cbc0dcbe0dad2c3d14d42b2717f0a5e1626e0d56bba8a6")
diff --git a/var/spack/repos/builtin/packages/gh/package.py b/var/spack/repos/builtin/packages/gh/package.py
index c9012abb89298b..227ce371a092e4 100644
--- a/var/spack/repos/builtin/packages/gh/package.py
+++ b/var/spack/repos/builtin/packages/gh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Gh(Package):
maintainers("lcnzg")
+ license("MIT")
+
version("2.32.1", sha256="1d569dc82eb6520e6a8959568c2db84fea3bbaab2604c8dd5901849d320e1eae")
version("2.28.0", sha256="cf3c0fb7f601d717d8b5177707a197c49fd426f5dc3c9aa52a932e96ba7166af")
version("2.25.1", sha256="d3b28da03f49600697d2e80c2393425bd382e340040c34641bf3569593c7fbe8")
diff --git a/var/spack/repos/builtin/packages/ghost/package.py b/var/spack/repos/builtin/packages/ghost/package.py
index b37994afd4bba3..030edfe45b411f 100644
--- a/var/spack/repos/builtin/packages/ghost/package.py
+++ b/var/spack/repos/builtin/packages/ghost/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Ghost(CMakePackage, CudaPackage):
maintainers("jthies")
+ license("BSD-3-Clause")
+
version("develop", branch="devel")
variant("shared", default=True, description="Enables the build of shared libraries")
diff --git a/var/spack/repos/builtin/packages/ghostscript-fonts/package.py b/var/spack/repos/builtin/packages/ghostscript-fonts/package.py
index 007f85cf74ee9f..9f2b83dccb8417 100644
--- a/var/spack/repos/builtin/packages/ghostscript-fonts/package.py
+++ b/var/spack/repos/builtin/packages/ghostscript-fonts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class GhostscriptFonts(Package, SourceforgePackage):
"gs-fonts/gs-fonts/8.11%20%28base%2035%2C%20GPL%29/" "ghostscript-fonts-std-8.11.tar.gz"
)
+ license("GPL-2.0-or-later")
+
version("8.11", sha256="0eb6f356119f2e49b2563210852e17f57f9dcc5755f350a69a46a0d641a0c401")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/ghostscript/package.py b/var/spack/repos/builtin/packages/ghostscript/package.py
index 9e812e638f1d8e..9384b1e16fca07 100644
--- a/var/spack/repos/builtin/packages/ghostscript/package.py
+++ b/var/spack/repos/builtin/packages/ghostscript/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Ghostscript(AutotoolsPackage):
executables = [r"^gs$"]
+ license("AGPL-3.0-or-later")
+
version("10.0.0", sha256="a57764d70caf85e2fc0b0f59b83b92e25775631714dcdb97cc6e0cea414bb5a3")
version("9.56.1", sha256="1598b9a38659cce8448d42a73054b2f9cbfcc40a9b97eeec5f22d4d6cd1de8e6")
version("9.54.0", sha256="0646bb97f6f4d10a763f4919c54fa28b4fbdd3dff8e7de3410431c81762cade0")
diff --git a/var/spack/repos/builtin/packages/giblib/package.py b/var/spack/repos/builtin/packages/giblib/package.py
index 768329b190b965..d90ebb1e7c5679 100644
--- a/var/spack/repos/builtin/packages/giblib/package.py
+++ b/var/spack/repos/builtin/packages/giblib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Giblib(AutotoolsPackage):
homepage = "https://web.archive.org/web/20071002210842/http://linuxbrit.co.uk/giblib/"
url = "https://mirror.amdmi3.ru/distfiles/giblib-1.2.4.tar.gz"
+ license("MIT")
+
version("1.2.4", sha256="176611c4d88d742ea4013991ad54c2f9d2feefbc97a28434c0f48922ebaa8bac")
depends_on("imlib2")
diff --git a/var/spack/repos/builtin/packages/giflib/package.py b/var/spack/repos/builtin/packages/giflib/package.py
index 8b8e6ac8e508c5..b28aed78931423 100644
--- a/var/spack/repos/builtin/packages/giflib/package.py
+++ b/var/spack/repos/builtin/packages/giflib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Giflib(MakefilePackage, SourceforgePackage):
homepage = "http://giflib.sourceforge.net/"
sourceforge_mirror_path = "giflib/giflib-5.1.4.tar.gz"
+ license("MIT")
+
version("5.2.1", sha256="31da5562f44c5f15d63340a09a4fd62b48c45620cd302f77a6d9acf0077879bd")
version("5.2.0", sha256="dc7257487c767137602d86c17098ec97065a718ff568a61cfcf1a9466f197b1f")
version(
diff --git a/var/spack/repos/builtin/packages/gimp/package.py b/var/spack/repos/builtin/packages/gimp/package.py
index 4d0c424150568b..e823df76d8f26e 100644
--- a/var/spack/repos/builtin/packages/gimp/package.py
+++ b/var/spack/repos/builtin/packages/gimp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and otherargs
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and otherargs
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,8 @@ class Gimp(AutotoolsPackage):
conflicts("platform=darwin", msg="spack/GIMP currently requires Linux")
conflicts("platform=windows", msg="spack/GIMP currently requires Linux")
+ license("GPL-3.0-or-later")
+
version("2.10.32", sha256="3f15c70554af5dcc1b46e6dc68f3d8f0a6cc9fe56b6d78ac08c0fd859ab89a25")
version("2.10.30", sha256="88815daa76ed7d4277eeb353358bafa116cd2fcd2c861d95b95135c1d52b67dc")
version("2.10.28", sha256="4f4dc22cff1ab5f026feaa2ab55e05775b3a11e198186b47bdab79cbfa078826")
diff --git a/var/spack/repos/builtin/packages/ginac/package.py b/var/spack/repos/builtin/packages/ginac/package.py
index 1eec942844b52e..0cdd143e3df105 100644
--- a/var/spack/repos/builtin/packages/ginac/package.py
+++ b/var/spack/repos/builtin/packages/ginac/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Ginac(CMakePackage):
url = "https://www.ginac.de/ginac-1.7.8.tar.bz2"
git = "git://www.ginac.de/ginac.git"
+ license("GPL-2.0-or-later")
+
version("1.7.11", sha256="96529ddef6ae9788aca0093f4b85fc4e34318bc6704e628e6423ab5a92dfe929")
version("1.7.9", sha256="67cdff43a4360da997ee5323cce27cf313a5b17ba58f02e8f886138c0f629821")
version("1.7.8", sha256="0c86501aa6c72efd5937fce42c5e983fc9f05dadb65b4ebdb51ee95c9f6a7067")
diff --git a/var/spack/repos/builtin/packages/ginkgo/ginkgo-sycl-pr1524.patch b/var/spack/repos/builtin/packages/ginkgo/ginkgo-sycl-pr1524.patch
new file mode 100644
index 00000000000000..7d1f97fc15c227
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ginkgo/ginkgo-sycl-pr1524.patch
@@ -0,0 +1,13 @@
+diff -ruN spack-src/dpcpp/components/cooperative_groups.dp.hpp spack-src-patched/dpcpp/components/cooperative_groups.dp.hpp
+--- spack-src/dpcpp/components/cooperative_groups.dp.hpp 2024-01-18 17:25:05.336926061 +0000
++++ spack-src-patched/dpcpp/components/cooperative_groups.dp.hpp 2024-01-18 17:26:50.649595478 +0000
+@@ -240,7 +240,8 @@
+ {
+ // todo: change it when OneAPI update the mask related api
+ return sycl::reduce_over_group(
+- *this, (predicate != 0) ? mask_type(1) << data_.rank : mask_type(0),
++ static_cast(*this),
++ (predicate != 0) ? mask_type(1) << data_.rank : mask_type(0),
+ sycl::plus());
+ }
+
diff --git a/var/spack/repos/builtin/packages/ginkgo/package.py b/var/spack/repos/builtin/packages/ginkgo/package.py
index 7bdfdb390370d5..d0ea6b619d3102 100644
--- a/var/spack/repos/builtin/packages/ginkgo/package.py
+++ b/var/spack/repos/builtin/packages/ginkgo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -22,11 +22,18 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage):
tags = ["e4s"]
+ license("MIT")
+
version("develop", branch="develop")
version("master", branch="master")
- version("1.6.0", commit="1f1ed46e724334626f016f105213c047e16bc1ae", preferred=True) # v1.6.0
+ version("1.7.0", commit="49242ff89af1e695d7794f6d50ed9933024b66fe") # v1.7.0
+ version("1.6.0", commit="1f1ed46e724334626f016f105213c047e16bc1ae") # v1.6.0
version("1.5.0", commit="234594c92b58e2384dfb43c2d08e7f43e2b58e7a") # v1.5.0
- version("1.5.0.glu_experimental", branch="glu_experimental")
+ version(
+ "1.5.0.glu_experimental",
+ branch="glu_experimental",
+ commit="e234eab1bd7afe85dd594638e291a2caf464bfb1",
+ )
version("1.4.0", commit="f811917c1def4d0fcd8db3fe5c948ce13409e28e") # v1.4.0
version("1.3.0", commit="4678668c66f634169def81620a85c9a20b7cec78") # v1.3.0
version("1.2.0", commit="b4be2be961fd5db45c3d02b5e004d73550722e31") # v1.2.0
@@ -37,13 +44,18 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage):
variant("shared", default=True, description="Build shared libraries")
variant("full_optimizations", default=False, description="Compile with all optimizations")
variant("openmp", default=sys.platform != "darwin", description="Build with OpenMP")
- variant("oneapi", default=False, description="Build with oneAPI support")
+ variant("sycl", default=False, description="Enable SYCL backend")
variant("develtools", default=False, description="Compile with develtools enabled")
variant("hwloc", default=False, description="Enable HWLOC support")
variant("mpi", default=False, description="Enable MPI support")
- depends_on("cmake@3.9:", type="build")
- depends_on("cuda@9:", when="+cuda")
+ depends_on("cmake@3.9:", type="build", when="@:1.3.0")
+ depends_on("cmake@3.13:", type="build", when="@1.4.0:1.6.0")
+ depends_on("cmake@3.16:", type="build", when="@1.7.0:")
+ depends_on("cmake@3.18:", type="build", when="+cuda@1.7.0:")
+ depends_on("cuda@9:", when="+cuda @:1.4.0")
+ depends_on("cuda@9.2:", when="+cuda @1.5.0:")
+ depends_on("cuda@10.1:", when="+cuda @1.7.0:")
depends_on("mpi", when="+mpi")
depends_on("rocthrust", when="+rocm")
@@ -60,14 +72,13 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage):
depends_on("googletest", type="test")
depends_on("numactl", type="test", when="+hwloc")
- depends_on("intel-oneapi-mkl", when="+oneapi")
- depends_on("intel-oneapi-dpl", when="+oneapi")
+ depends_on("intel-oneapi-mkl", when="+sycl")
+ depends_on("intel-oneapi-dpl", when="+sycl")
+ depends_on("intel-oneapi-tbb", when="+sycl")
conflicts("%gcc@:5.2.9")
conflicts("+rocm", when="@:1.1.1")
conflicts("+mpi", when="@:1.4.0")
- conflicts("+cuda", when="+rocm")
- conflicts("+openmp", when="+oneapi")
# ROCm 4.1.0 breaks platform settings which breaks Ginkgo's HIP support.
conflicts("^hip@4.1.0:", when="@:1.3.0")
@@ -76,22 +87,38 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage):
conflicts("^rocthrust@4.1.0:", when="@:1.3.0")
conflicts("^rocprim@4.1.0:", when="@:1.3.0")
+ # Ginkgo 1.6.0 start relying on ROCm 4.5.0
+ conflicts("^hip@:4.3.1", when="@1.6.0:")
+ conflicts("^hipblas@:4.3.1", when="@1.6.0:")
+ conflicts("^hipsparse@:4.3.1", when="@1.6.0:")
+ conflicts("^rocthrust@:4.3.1", when="@1.6.0:")
+ conflicts("^rocprim@:4.3.1", when="@1.6.0:")
+
+ conflicts(
+ "+sycl", when="@:1.4.0", msg="For SYCL support, please use Ginkgo version 1.4.0 and newer."
+ )
+
+ # https://github.com/ginkgo-project/ginkgo/pull/1524
+ patch("ginkgo-sycl-pr1524.patch", when="@1.7.0 +sycl %oneapi@2024:")
+
# Skip smoke tests if compatible hardware isn't found
patch("1.4.0_skip_invalid_smoke_tests.patch", when="@1.4.0")
- # Newer DPC++ compilers use the updated SYCL 2020 standard which change
- # kernel attribute propagation rules. This doesn't work well with the
- # initial Ginkgo oneAPI support.
- patch("1.4.0_dpcpp_use_old_standard.patch", when="+oneapi @1.4.0")
-
# Add missing include statement
patch("thrust-count-header.patch", when="+rocm @1.5.0")
def setup_build_environment(self, env):
spec = self.spec
- if "+oneapi" in spec:
+ if "+sycl" in spec:
env.set("MKLROOT", join_path(spec["intel-oneapi-mkl"].prefix, "mkl", "latest"))
env.set("DPL_ROOT", join_path(spec["intel-oneapi-dpl"].prefix, "dpl", "latest"))
+ # The `IntelSYCLConfig.cmake` is broken with spack. By default, it
+ # relies on the CMAKE_CXX_COMPILER being the real ipcx/dpcpp
+ # compiler. If not, the variable SYCL_COMPILER of that script is
+ # broken, and all the SYCL detection mechanism is wrong. We fix it
+ # by giving hint environment variables.
+ env.set("SYCL_LIBRARY_DIR_HINT", os.path.dirname(os.path.dirname(self.compiler.cxx)))
+ env.set("SYCL_INCLUDE_DIR_HINT", os.path.dirname(os.path.dirname(self.compiler.cxx)))
def cmake_args(self):
# Check that the have the correct C++ standard is available
@@ -106,18 +133,19 @@ def cmake_args(self):
except UnsupportedCompilerFlag:
raise InstallError("Ginkgo requires a C++14-compliant C++ compiler")
- cxx_is_dpcpp = os.path.basename(self.compiler.cxx) == "dpcpp"
- if self.spec.satisfies("+oneapi") and not cxx_is_dpcpp:
- raise InstallError(
- "Ginkgo's oneAPI backend requires the" + "DPC++ compiler as main CXX compiler."
- )
+ if self.spec.satisfies("@1.4.0:1.6.0 +sycl") and not self.spec.satisfies(
+ "%oneapi@2021.3.0:"
+ ):
+ raise InstallError("ginkgo +sycl requires %oneapi@2021.3.0:")
+ elif self.spec.satisfies("@1.7.0: +sycl") and not self.spec.satisfies("%oneapi@2022.1.0:"):
+ raise InstallError("ginkgo +sycl requires %oneapi@2022.1.0:")
spec = self.spec
from_variant = self.define_from_variant
args = [
from_variant("GINKGO_BUILD_CUDA", "cuda"),
from_variant("GINKGO_BUILD_HIP", "rocm"),
- from_variant("GINKGO_BUILD_DPCPP", "oneapi"),
+ from_variant("GINKGO_BUILD_SYCL", "sycl"),
from_variant("GINKGO_BUILD_OMP", "openmp"),
from_variant("GINKGO_BUILD_MPI", "mpi"),
from_variant("BUILD_SHARED_LIBS", "shared"),
@@ -161,6 +189,11 @@ def cmake_args(self):
args.append(
self.define("CMAKE_MODULE_PATH", self.spec["hip"].prefix.lib.cmake.hip)
)
+
+ if "+sycl" in self.spec:
+ sycl_compatible_compilers = ["dpcpp", "icpx"]
+ if not (os.path.basename(self.compiler.cxx) in sycl_compatible_compilers):
+ raise InstallError("ginkgo +sycl requires DPC++ (dpcpp) or icpx compiler.")
return args
@property
diff --git a/var/spack/repos/builtin/packages/giraph/package.py b/var/spack/repos/builtin/packages/giraph/package.py
index 4c2c3bf1fe767b..799a03a44b0ed9 100644
--- a/var/spack/repos/builtin/packages/giraph/package.py
+++ b/var/spack/repos/builtin/packages/giraph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Giraph(MavenPackage):
list_url = "https://downloads.apache.org/giraph/"
list_depth = 1
+ license("Apache-2.0")
+
version("1.2.0", sha256="6206f4ad220ea42aa0c4abecce343e36026cf9c6e0a2853f1eb08543da452ad1")
version("1.1.0", sha256="181d94b8198c0f312d4611e24b0056b5181c8358a7ec89b0393661736cd19a4c")
diff --git a/var/spack/repos/builtin/packages/git-annex/package.py b/var/spack/repos/builtin/packages/git-annex/package.py
index ece00cd376225d..be50387287245d 100644
--- a/var/spack/repos/builtin/packages/git-annex/package.py
+++ b/var/spack/repos/builtin/packages/git-annex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -49,6 +49,8 @@ class GitAnnex(Package):
skip_version_audit = ["platform=darwin"]
+ license("AGPL-3.0-or-later")
+
if platform.system() == "Linux" and platform.machine() == "aarch64":
# git-annex-standalone-arm64.tar.gz
version(
diff --git a/var/spack/repos/builtin/packages/git-fat-git/package.py b/var/spack/repos/builtin/packages/git-fat-git/package.py
index a42713b674405e..1d4417f936c29c 100644
--- a/var/spack/repos/builtin/packages/git-fat-git/package.py
+++ b/var/spack/repos/builtin/packages/git-fat-git/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class GitFatGit(Package):
homepage = "https://github.com/jedbrown/git-fat"
git = "https://github.com/jedbrown/git-fat.git"
+ license("BSD-2-Clause")
+
version("2018-08-21", commit="e1733b1c7c4169d0a1d31cb76f168fb0880176c0")
depends_on("python", type="run")
diff --git a/var/spack/repos/builtin/packages/git-filter-repo/package.py b/var/spack/repos/builtin/packages/git-filter-repo/package.py
index b2644eeaa8af7d..545d15300b1423 100644
--- a/var/spack/repos/builtin/packages/git-filter-repo/package.py
+++ b/var/spack/repos/builtin/packages/git-filter-repo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class GitFilterRepo(Package):
maintainers("aphedges")
+ license("MIT")
+
version("2.38.0", sha256="db954f4cae9e47c6be3bd3161bc80540d44f5379cb9cf9df498f4e019f0a41a9")
version("2.34.0", sha256="b1bf46af1e6a91a54056d0254e480803db8e40f631336c559a1a94d2a08389c4")
diff --git a/var/spack/repos/builtin/packages/git-imerge/package.py b/var/spack/repos/builtin/packages/git-imerge/package.py
index 6befd2525bef4a..ea9671eda0abc9 100644
--- a/var/spack/repos/builtin/packages/git-imerge/package.py
+++ b/var/spack/repos/builtin/packages/git-imerge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -27,6 +27,8 @@ class GitImerge(MakefilePackage):
homepage = "https://github.com/mhagger/git-imerge"
url = "https://github.com/mhagger/git-imerge/archive/v1.1.0.tar.gz"
+ license("GPL-2.0-or-later")
+
version("1.1.0", sha256="62692f43591cc7d861689c60b68c55d7b10c7a201c1026096a7efc771df2ca28")
version("1.0.0", sha256="2ef3a49a6d54c4248ef2541efc3c860824fc8295a7226760f24f0bb2c5dd41f2")
diff --git a/var/spack/repos/builtin/packages/git-lfs/package.py b/var/spack/repos/builtin/packages/git-lfs/package.py
index 3ebef50240a8c1..e2e9ffe793f960 100644
--- a/var/spack/repos/builtin/packages/git-lfs/package.py
+++ b/var/spack/repos/builtin/packages/git-lfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -24,6 +24,8 @@ class GitLfs(MakefilePackage):
maintainers("sethrj")
+ license("MIT")
+
version("3.3.0", sha256="d5eeb9ee33188d3dd6a391f8a39b96d271f10295129789e5b3a1ac0e9f5114f5")
version("3.1.2", sha256="5c9bc449068d0104ea124c25f596af16da85e7b5bf256bc544d8ce5f4fe231f2")
version("2.13.3", sha256="f8bd7a06e61e47417eb54c3a0db809ea864a9322629b5544b78661edab17b950")
diff --git a/var/spack/repos/builtin/packages/git/package.py b/var/spack/repos/builtin/packages/git/package.py
index 417600cc05d3f2..c47510fa87c86a 100644
--- a/var/spack/repos/builtin/packages/git/package.py
+++ b/var/spack/repos/builtin/packages/git/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -24,6 +24,8 @@ class Git(AutotoolsPackage):
executables = ["^git$"]
+ license("GPL-2.0-only")
+
# Every new git release comes with a corresponding manpage resource:
# https://www.kernel.org/pub/software/scm/git/git-manpages-{version}.tar.gz
# https://mirrors.edge.kernel.org/pub/software/scm/git/sha256sums.asc
diff --git a/var/spack/repos/builtin/packages/gitconddb/package.py b/var/spack/repos/builtin/packages/gitconddb/package.py
index 8dbad1692ce907..f42822459d0387 100644
--- a/var/spack/repos/builtin/packages/gitconddb/package.py
+++ b/var/spack/repos/builtin/packages/gitconddb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Gitconddb(CMakePackage):
maintainers("drbenmorgan")
+ license("Apache-2.0")
+
version("master", branch="master")
version("0.2.0", sha256="dfbaa33581d5c6fac1102668c542b32d14499a30a2793bc55b133aba9f7295fc")
version("0.1.3", sha256="29ed88498fd7ea3fd24bc80e9bfdec796cbeb584796c94c6c6b0baa368842ad4")
diff --git a/var/spack/repos/builtin/packages/gl2ps/package.py b/var/spack/repos/builtin/packages/gl2ps/package.py
index 9e2973a166c668..59fcebe43146f9 100644
--- a/var/spack/repos/builtin/packages/gl2ps/package.py
+++ b/var/spack/repos/builtin/packages/gl2ps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Gl2ps(CMakePackage):
homepage = "https://www.geuz.org/gl2ps/"
url = "https://geuz.org/gl2ps/src/gl2ps-1.3.9.tgz"
+ license("LGPL-2.0-only")
+
version("1.4.2", sha256="8d1c00c1018f96b4b97655482e57dcb0ce42ae2f1d349cd6d4191e7848d9ffe9")
version("1.4.0", sha256="03cb5e6dfcd87183f3b9ba3b22f04cd155096af81e52988cc37d8d8efe6cf1e2")
version("1.3.9", sha256="8a680bff120df8bcd78afac276cdc38041fed617f2721bade01213362bcc3640")
diff --git a/var/spack/repos/builtin/packages/glab/package.py b/var/spack/repos/builtin/packages/glab/package.py
index 1f5d5fc20d6bad..9cb9a26c2570b6 100644
--- a/var/spack/repos/builtin/packages/glab/package.py
+++ b/var/spack/repos/builtin/packages/glab/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,9 @@ class Glab(Package):
maintainers("alecbcs")
+ license("MIT")
+
+ version("1.35.0", sha256="7ed31c7a9b425fc15922f83c5dd8634a2758262a4f25f92583378655fcad6303")
version("1.33.0", sha256="447a9b76acb5377642a4975908f610a3082026c176329c7c8cfed1461d2e1570")
version("1.31.0", sha256="5648e88e7d6cc993227f5a4e80238af189bed09c7aed1eb12be7408e9a042747")
version("1.30.0", sha256="d3c1a9ba723d94a0be10fc343717cf7b61732644f5c42922f1c8d81047164b99")
diff --git a/var/spack/repos/builtin/packages/glew/package.py b/var/spack/repos/builtin/packages/glew/package.py
index a5d8d1ef3e6117..22ec0dbb684b11 100644
--- a/var/spack/repos/builtin/packages/glew/package.py
+++ b/var/spack/repos/builtin/packages/glew/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,10 @@ class Glew(CMakePackage):
url = "https://github.com/nigels-com/glew/releases/download/glew-2.1.0/glew-2.1.0.tgz"
root_cmakelists_dir = "build/cmake"
+ maintainers("biddisco")
+
+ license("GPL-2.0-or-later")
+
version("2.2.0", sha256="d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1")
version("2.1.0", sha256="04de91e7e6763039bc11940095cd9c7f880baba82196a7765f727ac05a993c95")
version("2.0.0", sha256="c572c30a4e64689c342ba1624130ac98936d7af90c3103f9ce12b8a0c5736764")
@@ -22,20 +26,26 @@ class Glew(CMakePackage):
variant(
"gl",
default="glx" if sys.platform.startswith("linux") else "other",
- values=("glx", "osmesa", "other"),
+ values=("glx", "osmesa", "egl", "other"),
multi=False,
description="The OpenGL provider to use",
)
conflicts("^osmesa", when="gl=glx")
+ conflicts("^osmesa", when="gl=egl")
conflicts("^osmesa", when="gl=other")
conflicts("^glx", when="gl=osmesa")
conflicts("^glx", when="gl=other")
+ conflicts("^glx", when="gl=egl")
+ conflicts("^egl", when="gl=glx")
+ conflicts("^egl", when="gl=osmesa")
+ conflicts("^egl", when="gl=other")
depends_on("gl")
depends_on("osmesa", when="gl=osmesa")
depends_on("glx", when="gl=glx")
depends_on("libx11", when="gl=glx")
depends_on("xproto", when="gl=glx")
+ depends_on("egl", when="gl=egl")
# glu is already forcibly disabled in the CMakeLists.txt. This prevents
# it from showing up in the .pc file
@@ -46,17 +56,22 @@ def cmake_args(self):
args = [
self.define("BUILD_UTILS", True),
self.define("GLEW_REGAL", False),
- self.define("GLEW_EGL", False),
+ self.define("GLEW_EGL", "gl=egl" in spec),
self.define("OpenGL_GL_PREFERENCE", "LEGACY"),
self.define("OPENGL_INCLUDE_DIR", spec["gl"].headers.directories[0]),
self.define("OPENGL_gl_LIBRARY", spec["gl"].libs[0]),
self.define("OPENGL_opengl_LIBRARY", "IGNORE"),
self.define("OPENGL_glx_LIBRARY", "IGNORE"),
- self.define("OPENGL_egl_LIBRARY", "IGNORE"),
self.define("OPENGL_glu_LIBRARY", "IGNORE"),
self.define("GLEW_OSMESA", "gl=osmesa" in spec),
self.define("GLEW_X11", "gl=glx" in spec),
self.define("CMAKE_DISABLE_FIND_PACKAGE_X11", "gl=glx" not in spec),
]
+ if "gl=egl" in spec:
+ args.append(
+ self.define("OPENGL_egl_LIBRARY", [spec["egl"].libs[0], spec["egl"].libs[1]])
+ )
+ else:
+ args.append(self.define("OPENGL_egl_LIBRARY", "IGNORE"))
return args
diff --git a/var/spack/repos/builtin/packages/glfmultiples/package.py b/var/spack/repos/builtin/packages/glfmultiples/package.py
index b59997ed4b5740..4ed24a057343a8 100644
--- a/var/spack/repos/builtin/packages/glfmultiples/package.py
+++ b/var/spack/repos/builtin/packages/glfmultiples/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Glfmultiples(MakefilePackage):
homepage = "https://genome.sph.umich.edu/wiki/GlfMultiples"
url = "http://www.sph.umich.edu/csg/abecasis/downloads/generic-glfMultiples-2010-06-16.tar.gz"
+ license("BSD-3-Clause")
+
version(
"2010-06-16", sha256="f7abef6f6b043e9052fb408bb2aae6d0d97d907aedc1b3e02dd0db08eb81b979"
)
diff --git a/var/spack/repos/builtin/packages/glfw/package.py b/var/spack/repos/builtin/packages/glfw/package.py
index ba12fb79512ce3..bdaadb3cfd915f 100644
--- a/var/spack/repos/builtin/packages/glfw/package.py
+++ b/var/spack/repos/builtin/packages/glfw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Glfw(CMakePackage):
homepage = "https://www.glfw.org/"
url = "https://github.com/glfw/glfw/archive/3.3.2.tar.gz"
+ license("Zlib")
+
version("3.3.8", sha256="f30f42e05f11e5fc62483e513b0488d5bceeab7d9c5da0ffe2252ad81816c713")
version("3.3.2", sha256="98768e12e615fbe9f3386f5bbfeb91b5a3b45a8c4c77159cef06b1f6ff749537")
version("3.3.1", sha256="6bca16e69361798817a4b62a5239a77253c29577fcd5d52ae8b85096e514177f")
diff --git a/var/spack/repos/builtin/packages/glib-networking/package.py b/var/spack/repos/builtin/packages/glib-networking/package.py
index 1ca95898e0e35b..998c0d7beed17e 100644
--- a/var/spack/repos/builtin/packages/glib-networking/package.py
+++ b/var/spack/repos/builtin/packages/glib-networking/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class GlibNetworking(MesonPackage):
homepage = "https://gitlab.gnome.org/GNOME/glib-networking"
url = "https://github.com/GNOME/glib-networking/archive/2.66.0.tar.gz"
+ license("LGPL-2.0-or-later")
+
version("2.66.0", sha256="186a670c00525d62aa160bc3e492d9efd2f59c540c50477982eb732ed62ee96c")
version("2.65.90", sha256="91b35c5d7472d10229b0b01c0631ac171903e96f84a6fb22c4126a40528c09e2")
version("2.65.1", sha256="d06311004f7dda4561c210f286a3678b631fb7187cb3b90616c5ba39307cc91f")
diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py
index f51d636d7eccda..dd4eafcae17162 100644
--- a/var/spack/repos/builtin/packages/glib/package.py
+++ b/var/spack/repos/builtin/packages/glib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -26,6 +26,9 @@ class Glib(MesonPackage, AutotoolsPackage):
maintainers("michaelkuhn")
+ license("LGPL-2.1-or-later")
+
+ version("2.78.3", sha256="609801dd373796e515972bf95fc0b2daa44545481ee2f465c4f204d224b2bc21")
version("2.78.0", sha256="44eaab8b720877ce303c5540b657b126f12dc94972d9880b52959f43fb537b30")
version("2.76.6", sha256="1136ae6987dcbb64e0be3197a80190520f7acab81e2bfb937dc85c11c8aa9f04")
version("2.76.4", sha256="5a5a191c96836e166a7771f7ea6ca2b0069c603c7da3cba1cd38d1694a395dda")
diff --git a/var/spack/repos/builtin/packages/glibc/package.py b/var/spack/repos/builtin/packages/glibc/package.py
index a49a934abe3df1..471eb0345dfd88 100644
--- a/var/spack/repos/builtin/packages/glibc/package.py
+++ b/var/spack/repos/builtin/packages/glibc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Glibc(AutotoolsPackage, GNUMirrorPackage):
build_directory = "build"
+ license("LGPL-2.1-or-later")
+
version("master", branch="master")
version("2.38", sha256="16e51e0455e288f03380b436e41d5927c60945abd86d0c9852b84be57dd6ed5e")
version("2.37", sha256="e3a790c2f84eed5c5d569ed6172c253c607dd3962135437da413aa39aa4fd352")
diff --git a/var/spack/repos/builtin/packages/glibmm/package.py b/var/spack/repos/builtin/packages/glibmm/package.py
index 71a44496c2bb13..25b0ba95eae427 100644
--- a/var/spack/repos/builtin/packages/glibmm/package.py
+++ b/var/spack/repos/builtin/packages/glibmm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Glibmm(AutotoolsPackage):
homepage = "https://gitlab.gnome.org/GNOME/glibmm"
url = "https://download-fallback.gnome.org/sources/glibmm/2.70/glibmm-2.70.0.tar.xz"
+ license("LGPL-2.1-or-later")
+
# version('2.70.0', sha256='8008fd8aeddcc867a3f97f113de625f6e96ef98cf7860379813a9c0feffdb520')
version("2.19.3", sha256="23958368535c19188b1241c4615dcf1f35e80e0922a04236bb9247dcd8fe0a2b")
version("2.16.0", sha256="99795b9c6e58e490df740a113408092bf47a928427cbf178d77c35adcb6a57a3")
diff --git a/var/spack/repos/builtin/packages/glimmer/package.py b/var/spack/repos/builtin/packages/glimmer/package.py
index ea160b7eca7590..f16453f198d79d 100644
--- a/var/spack/repos/builtin/packages/glimmer/package.py
+++ b/var/spack/repos/builtin/packages/glimmer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Glimmer(MakefilePackage):
homepage = "https://ccb.jhu.edu/software/glimmer"
+ license("Artistic-1.0")
+
version("3.02b", sha256="ecf28e03d0a675aed7360ca34ca7f19993f5c3ea889273e657ced9fa7d1e2bf6")
build_directory = "src"
diff --git a/var/spack/repos/builtin/packages/glm/package.py b/var/spack/repos/builtin/packages/glm/package.py
index 68ab06285b8f2c..bd5921c61bc82e 100644
--- a/var/spack/repos/builtin/packages/glm/package.py
+++ b/var/spack/repos/builtin/packages/glm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Glm(CMakePackage):
git = "https://github.com/g-truc/glm.git"
tags = ["windows"]
+ license("MIT")
+
version("develop", branch="master")
version("0.9.9.8", sha256="7d508ab72cb5d43227a3711420f06ff99b0a0cb63ee2f93631b162bfe1fe9592")
version("0.9.9.3", sha256="fba9fd177073a36c5a7798c74b28e79ba6deb8f4bb0d2dbfc0e207c27da7e12c")
diff --git a/var/spack/repos/builtin/packages/global/package.py b/var/spack/repos/builtin/packages/global/package.py
index e8881071228596..9b134f600a7dc6 100644
--- a/var/spack/repos/builtin/packages/global/package.py
+++ b/var/spack/repos/builtin/packages/global/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Global(Package):
maintainers("gaber")
+ license("LGPL-3.0-only")
+
version("6.6.7", sha256="69a0f77f53827c5568176c1d382166df361e74263a047f0b3058aa2f2ad58a3c")
version("6.6.6", sha256="758078afff98d4c051c58785c7ada3ed1977fabb77f8897ff657b71cc62d4d5d")
version("6.6.4", sha256="987e8cb956c53f8ebe4453b778a8fde2037b982613aba7f3e8e74bcd05312594")
diff --git a/var/spack/repos/builtin/packages/globalarrays/package.py b/var/spack/repos/builtin/packages/globalarrays/package.py
index 7800d45d4195c7..54f740cac9054c 100644
--- a/var/spack/repos/builtin/packages/globalarrays/package.py
+++ b/var/spack/repos/builtin/packages/globalarrays/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Globalarrays(AutotoolsPackage):
tags = ["e4s"]
+ license("BSD-3-Clause")
+
version("5.8.2", sha256="51599e4abfe36f05cecfaffa33be19efbe9e9fa42d035fd3f866469b663c22a2")
version("5.8", sha256="64df7d1ea4053d24d84ca361e67a6f51c7b17ed7d626cb18a9fbc759f4a078ac")
version("5.7.2", sha256="8cd0fcfd85bc7f9c168c831616f66f1e8b9b2ca31dc7dd93cc55b27cc7fe7069")
diff --git a/var/spack/repos/builtin/packages/glog/package.py b/var/spack/repos/builtin/packages/glog/package.py
index 17c30dcc5567a8..b6deab02533608 100644
--- a/var/spack/repos/builtin/packages/glog/package.py
+++ b/var/spack/repos/builtin/packages/glog/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Glog(Package):
homepage = "https://github.com/google/glog"
url = "https://github.com/google/glog/archive/v0.3.5.tar.gz"
+ license("BSD-3-Clause")
+
version("0.6.0", sha256="8a83bf982f37bb70825df71a9709fa90ea9f4447fb3c099e1d720a439d88bad6")
version("0.4.0", sha256="f28359aeba12f30d73d9e4711ef356dc842886968112162bc73002645139c39c")
version("0.3.5", sha256="7580e408a2c0b5a89ca214739978ce6ff480b5e7d8d7698a2aa92fadc484d1e0")
diff --git a/var/spack/repos/builtin/packages/gloo/package.py b/var/spack/repos/builtin/packages/gloo/package.py
index ec4503900e9b4c..dcf9a7e3cebd4f 100644
--- a/var/spack/repos/builtin/packages/gloo/package.py
+++ b/var/spack/repos/builtin/packages/gloo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Gloo(CMakePackage, CudaPackage):
homepage = "https://github.com/facebookincubator/gloo"
git = "https://github.com/facebookincubator/gloo.git"
+ license("BSD-3-Clause")
+
version("master", branch="master")
version("2023-05-19", commit="597accfd79f5b0f9d57b228dec088ca996686475") # py-torch@2.1:
version("2023-01-17", commit="10909297fedab0a680799211a299203e53515032") # py-torch@2.0
@@ -35,6 +37,13 @@ class Gloo(CMakePackage, CudaPackage):
sha256="8e6e9a44e0533ba4303a95a651b1934e5d73632cab08cc7d5a9435e1e64aa424",
when="@:2023-01-16",
)
+ # Fix building with gcc 12, see https://github.com/facebookincubator/gloo/pull/333
+ patch(
+ "https://github.com/facebookincubator/gloo/commit/4a5e339b764261d20fc409071dc7a8b8989aa195.patch?full_index=1",
+ sha256="dc8b3a9bea4693f32d6850ea2ce6ce75e1778538bfba464b50efca92bac425e3",
+ when="@2021-05-21:2022-05-18",
+ )
+
generator("ninja")
depends_on("cmake@2.8.12:", type="build")
diff --git a/var/spack/repos/builtin/packages/glow/package.py b/var/spack/repos/builtin/packages/glow/package.py
new file mode 100644
index 00000000000000..979d56da20740a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/glow/package.py
@@ -0,0 +1,40 @@
+# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Glow(GoPackage):
+ """
+ Glow is a terminal based markdown reader designed
+ from the ground up to bring out the beauty—and power—of the CLI.
+ Use it to discover markdown files,
+ read documentation directly on the command line and stash markdown files
+ to your own private collection, so you can read them anywhere.
+ Glow will find local markdown files in subdirectories or a local Git repository.
+ """
+
+ homepage = "https://github.com/charmbracelet/glow"
+
+ url = "https://github.com/charmbracelet/glow/archive/refs/tags/v1.5.1.tar.gz"
+
+ license("MIT")
+
+ version("1.5.1", sha256="b4ecf269b7c6447e19591b1d23f398ef2b38a6a75be68458390b42d3efc44b92")
+ version("1.5.0", sha256="66f2a876eba15d71cfd08b56667fb07e1d49d383aa17d31696a39e794e23ba92")
+ version("1.4.1", sha256="ff6dfd7568f0bac5144ffa3a429ed956dcbdb531487ef6e38ac61365322c9601")
+ version("1.4.0", sha256="97d373e002332e54e2fb808ea38f098ca49e2b88038c115bd6d33d0b3b921495")
+ version("1.3.0", sha256="828d8453f026a24cd7a6dcf8d97213fe713cadcfab7ca969d5f4c8338d88bb86")
+ version("1.2.1", sha256="ceb9369e2f93412abf914fd4cdc2e1a7e70cf48e2b2607c1e10847223c4a1b68")
+ version("1.2.0", sha256="75d80dcd3258569e187d189f96f79de544332b72d635cc20b5111453d03c3a2d")
+ version("1.1.0", sha256="c9a72e2267b95e39033e845961ad45675c9f0d86080b138c6a2fbf2a5d3428d1")
+ version("1.0.2", sha256="2d98c1e780d750b83d8da094de4c2a999c324021906e6d813b7c75d0320243c8")
+ version("1.0.1", sha256="78d163bea8e6c13fb343f1e3586e93e0392e5052c408a248cc2f0fcc7aa38618")
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install("glow", prefix.bin)
+ mkdirp(prefix.completions)
+ install_tree(".", prefix.completions)
diff --git a/var/spack/repos/builtin/packages/glpk/package.py b/var/spack/repos/builtin/packages/glpk/package.py
index 80b26430d75d14..2cd7426f7102cf 100644
--- a/var/spack/repos/builtin/packages/glpk/package.py
+++ b/var/spack/repos/builtin/packages/glpk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Glpk(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/glpk"
gnu_mirror_path = "glpk/glpk-4.65.tar.gz"
+ license("GPL-3.0-only")
+
version("5.0", sha256="4a1013eebb50f728fc601bdd833b0b2870333c3b3e5a816eeba921d95bec6f15")
version("4.65", sha256="4281e29b628864dfe48d393a7bedd781e5b475387c20d8b0158f329994721a10")
version("4.61", sha256="9866de41777782d4ce21da11b88573b66bb7858574f89c28be6967ac22dfaba9")
diff --git a/var/spack/repos/builtin/packages/glproto/package.py b/var/spack/repos/builtin/packages/glproto/package.py
index 9a2ad04d6291ab..b3fc6753ad81b6 100644
--- a/var/spack/repos/builtin/packages/glproto/package.py
+++ b/var/spack/repos/builtin/packages/glproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Glproto(AutotoolsPackage, XorgPackage):
homepage = "https://www.x.org/wiki/"
xorg_mirror_path = "proto/glproto-1.4.17.tar.gz"
+ license("SGI-B-1.1")
+
version("1.4.17", sha256="9d8130fec2b98bd032db7730fa092dd9dec39f3de34f4bb03ceb43b9903dbc96")
depends_on("pkgconfig", type="build")
diff --git a/var/spack/repos/builtin/packages/gluegen/package.py b/var/spack/repos/builtin/packages/gluegen/package.py
index 84bd8b093a997e..5112cee7c66dd5 100644
--- a/var/spack/repos/builtin/packages/gluegen/package.py
+++ b/var/spack/repos/builtin/packages/gluegen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Gluegen(Package):
homepage = "https://jogamp.org/gluegen/www/"
git = "https://github.com/WadeWalker/gluegen.git"
+ license("Apache-2.0")
+
version("java-11-fixes", branch="java-11-fixes", submodules=True)
# ant optional jar file to execute antlr tasks
diff --git a/var/spack/repos/builtin/packages/glusterfs/package.py b/var/spack/repos/builtin/packages/glusterfs/package.py
index 9d3facb9da7b00..0df17e464a5d24 100644
--- a/var/spack/repos/builtin/packages/glusterfs/package.py
+++ b/var/spack/repos/builtin/packages/glusterfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Glusterfs(AutotoolsPackage):
list_url = "https://download.gluster.org/pub/gluster/glusterfs/"
list_depth = 2
+ license("LGPL-3.0-or-later")
+
version("7.3", sha256="2401cc7c3f5488f6fc5ea09ce2ab30c918612f592571fb3de6124f8482ad4954")
version("7.2", sha256="8e43614967b90d64495fbe2c52230dd72572ce219507fb48bc317b1c228a06e1")
version("7.1", sha256="ffc5bd78b079009382bd01391865646bc9b2e8e72366afc96d62ba891dd9dbce")
diff --git a/var/spack/repos/builtin/packages/glvis/package.py b/var/spack/repos/builtin/packages/glvis/package.py
index ba2ff744232cb0..310c9695b5ed11 100644
--- a/var/spack/repos/builtin/packages/glvis/package.py
+++ b/var/spack/repos/builtin/packages/glvis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -40,6 +40,8 @@ class Glvis(MakefilePackage):
# glvis does not need mfem+mpi but will build that by default, to just build
# a serial mfem: `spack install glvis ^mfem~mpi~metis'
+ license("BSD-3-Clause")
+
version("develop", branch="master")
version(
diff --git a/var/spack/repos/builtin/packages/glx/package.py b/var/spack/repos/builtin/packages/glx/package.py
index 8cc47356c8b67e..56cbfca57f6130 100644
--- a/var/spack/repos/builtin/packages/glx/package.py
+++ b/var/spack/repos/builtin/packages/glx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gmake/package.py b/var/spack/repos/builtin/packages/gmake/package.py
index d30b94b1051e10..95ea48276d0d4e 100644
--- a/var/spack/repos/builtin/packages/gmake/package.py
+++ b/var/spack/repos/builtin/packages/gmake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Gmake(Package, GNUMirrorPackage):
gnu_mirror_path = "make/make-4.2.1.tar.gz"
maintainers("haampie")
+ license("GPL-3.0-only")
+
# Stable releases
version("4.4.1", sha256="dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3")
version("4.4", sha256="581f4d4e872da74b3941c874215898a7d35802f03732bdccee1d4a7979105d18")
@@ -67,6 +69,8 @@ def configure_args(self):
return [
"--with-guile" if self.spec.satisfies("+guile") else "--without-guile",
"--disable-nls",
+ # configure needs make to enable dependency tracking, disable explicitly
+ "--disable-dependency-tracking",
]
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/gmap-gsnap/package.py b/var/spack/repos/builtin/packages/gmap-gsnap/package.py
index 3b7773763d2fa5..739e76f5fea51d 100644
--- a/var/spack/repos/builtin/packages/gmap-gsnap/package.py
+++ b/var/spack/repos/builtin/packages/gmap-gsnap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class GmapGsnap(AutotoolsPackage):
maintainers("snehring")
+ license("Apache-2.0")
+
version(
"2023-07-20", sha256="19e70eebd9b282d8596721812d071efed188b6d5000627b9948f0486f87fe68f"
)
diff --git a/var/spack/repos/builtin/packages/gmic/package.py b/var/spack/repos/builtin/packages/gmic/package.py
index af6a4cd37f0307..eacf2e90e06933 100644
--- a/var/spack/repos/builtin/packages/gmic/package.py
+++ b/var/spack/repos/builtin/packages/gmic/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Gmic(MakefilePackage):
homepage = "https://gmic.eu/"
git = "https://github.com/GreycLab/gmic.git"
+ license("CECILL-2.1")
+
version("develop", branch="master")
version("3.1.6", tag="v.3.1.6")
diff --git a/var/spack/repos/builtin/packages/gmime/package.py b/var/spack/repos/builtin/packages/gmime/package.py
index ef14fffcf9aeb0..c10f374153d419 100644
--- a/var/spack/repos/builtin/packages/gmime/package.py
+++ b/var/spack/repos/builtin/packages/gmime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Gmime(AutotoolsPackage):
homepage = "http://spruce.sourceforge.net/gmime/"
url = "https://download.gnome.org/sources/gmime/2.6/gmime-2.6.23.tar.xz"
+ license("LGPL-2.1-or-later")
+
version("2.6.23", sha256="7149686a71ca42a1390869b6074815106b061aaeaaa8f2ef8c12c191d9a79f6a")
depends_on("glib@2.18.0:")
diff --git a/var/spack/repos/builtin/packages/gmodel/package.py b/var/spack/repos/builtin/packages/gmodel/package.py
index fc47831a5d0201..c65558e0cca0c2 100644
--- a/var/spack/repos/builtin/packages/gmodel/package.py
+++ b/var/spack/repos/builtin/packages/gmodel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Gmodel(CMakePackage):
homepage = "https://github.com/ibaned/gmodel"
url = "https://github.com/ibaned/gmodel/archive/v2.1.0.tar.gz"
+ license("BSD-2-Clause-FreeBSD")
+
version("2.1.0", sha256="80df0c6dc413a9ffa0f0e7b65118b05b643ba3e1bfcac28fb91d2d3ad017fda0")
# fix error [-Werror,-Wzero-as-null-pointer-constant]
diff --git a/var/spack/repos/builtin/packages/gmp/package.py b/var/spack/repos/builtin/packages/gmp/package.py
index bf026ec9263082..d385de6a303233 100644
--- a/var/spack/repos/builtin/packages/gmp/package.py
+++ b/var/spack/repos/builtin/packages/gmp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Gmp(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://gmplib.org"
gnu_mirror_path = "gmp/gmp-6.1.2.tar.bz2"
+ license("LGPL-3.0-or-later OR GPL-2.0-or-later")
+
version("6.2.1", sha256="eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c")
version("6.2.0", sha256="f51c99cb114deb21a60075ffb494c1a210eb9d7cb729ed042ddb7de9534451ea")
version("6.1.2", sha256="5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2")
diff --git a/var/spack/repos/builtin/packages/gmsh/package.py b/var/spack/repos/builtin/packages/gmsh/package.py
index 166bbe788854ca..3cac8166365e6a 100644
--- a/var/spack/repos/builtin/packages/gmsh/package.py
+++ b/var/spack/repos/builtin/packages/gmsh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Gmsh(CMakePackage):
url = "https://gmsh.info/src/gmsh-4.4.1-source.tgz"
git = "https://gitlab.onelab.info/gmsh/gmsh.git"
+ license("GPL-2.0-or-later")
+
version("master", branch="master")
version("4.10.3", sha256="a87d59ccea596d493d375b0d6bc380079a5e5a4baebf0d3383018b0cd6bd8e33")
version("4.8.4", sha256="760dbdc072eaa3c82d066c5ba3b06eacdd3304eb2a97373fe4ada9509f0b6ace")
diff --git a/var/spack/repos/builtin/packages/gmt/package.py b/var/spack/repos/builtin/packages/gmt/package.py
index 59169fdaaa3090..02e3d1973e383c 100644
--- a/var/spack/repos/builtin/packages/gmt/package.py
+++ b/var/spack/repos/builtin/packages/gmt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -22,6 +22,8 @@ class Gmt(CMakePackage, AutotoolsPackage):
maintainers("adamjstewart")
+ license("LGPL-3.0-only")
+
version("master", branch="master")
version("6.4.0", sha256="c39d23dbc8a85416457946f6b93c2b9a5f039f092453e7f4b1aaf88d4a288300")
version("6.3.0", sha256="48712279da8228a7960f36fd4b7b04cc1a66489c37b2a5c03f8336a631aa3b24")
diff --git a/var/spack/repos/builtin/packages/gmtsar/package.py b/var/spack/repos/builtin/packages/gmtsar/package.py
index 09d44abcb727ae..40de8de678a907 100644
--- a/var/spack/repos/builtin/packages/gmtsar/package.py
+++ b/var/spack/repos/builtin/packages/gmtsar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gnat/package.py b/var/spack/repos/builtin/packages/gnat/package.py
index c4ea2f42149e60..42e188e5c82462 100644
--- a/var/spack/repos/builtin/packages/gnat/package.py
+++ b/var/spack/repos/builtin/packages/gnat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gnds/package.py b/var/spack/repos/builtin/packages/gnds/package.py
index 7bae0b140a8594..f413ab30f7eb0e 100644
--- a/var/spack/repos/builtin/packages/gnds/package.py
+++ b/var/spack/repos/builtin/packages/gnds/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gnina/package.py b/var/spack/repos/builtin/packages/gnina/package.py
index ab009f27eeb21a..dcfa07c259e7d2 100644
--- a/var/spack/repos/builtin/packages/gnina/package.py
+++ b/var/spack/repos/builtin/packages/gnina/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,9 @@ class Gnina(CMakePackage, CudaPackage):
maintainers("RMeli")
+ license("Apache-2.0")
+
+ version("1.1", sha256="114570b0f84a545ce0fea5b2da87bc116c134cef64bf90e6e58e8f84e175a0fa")
version("1.0.3", sha256="4274429f38293d79c7d22ab08aca91109e327e9ce3f682cd329a8f9c6ef429da")
variant("cudnn", default=True, description="Build with cuDNN")
@@ -67,10 +70,7 @@ class Gnina(CMakePackage, CudaPackage):
depends_on("cudnn", when="+cudnn")
def cmake_args(self):
- args = [
- "-DBLAS=Open", # Use OpenBLAS instead of Atlas' BLAS
- f"-DPYTHON_EXECUTABLE={self.spec['python'].command.path}",
- ]
+ args = ["-DBLAS=Open"] # Use OpenBLAS instead of Atlas' BLAS
if "+gninavis" in self.spec:
args.append(f"-DRDKIT_INCLUDE_DIR={self.spec['rdkit'].prefix.include.rdkit}")
diff --git a/var/spack/repos/builtin/packages/gnome-common/package.py b/var/spack/repos/builtin/packages/gnome-common/package.py
index 4d261595887c6f..6c2b4975ae3cbd 100644
--- a/var/spack/repos/builtin/packages/gnome-common/package.py
+++ b/var/spack/repos/builtin/packages/gnome-common/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class GnomeCommon(AutotoolsPackage):
homepage = "https://gitlab.gnome.org/GNOME"
url = "https://github.com/GNOME/gnome-common/archive/3.18.0.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("3.18.0", sha256="8407fd8786a44c9ce47987de0906d9266492195df9251a089afaa06cc65c72d8")
version("3.14.0", sha256="6ba2990ae52f54adf90626a8e04c41e58631870ed1b28088bb670cdc1eff22c7")
version("3.12.0", sha256="b1dd2651900e701d3b732177ab633a35c8608e06c2ae78910130e5cbbda3b204")
diff --git a/var/spack/repos/builtin/packages/gnuconfig/package.py b/var/spack/repos/builtin/packages/gnuconfig/package.py
index ab27a34233e7b5..a0420c6a4ab4e2 100644
--- a/var/spack/repos/builtin/packages/gnuconfig/package.py
+++ b/var/spack/repos/builtin/packages/gnuconfig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,7 @@ class Gnuconfig(Package):
homepage = "https://www.gnu.org/software/config/"
git = "https://github.com/spack/gnuconfig.git"
url = "https://github.com/spack/gnuconfig/releases/download/2021-08-14/gnuconfig-2021-08-14.tar.gz"
+ tags = ["build-tools"]
maintainers("haampie")
diff --git a/var/spack/repos/builtin/packages/gnupg/package.py b/var/spack/repos/builtin/packages/gnupg/package.py
index 6e512a105eb62d..066b06448c1297 100644
--- a/var/spack/repos/builtin/packages/gnupg/package.py
+++ b/var/spack/repos/builtin/packages/gnupg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Gnupg(AutotoolsPackage):
maintainers("alalazo")
+ license("GPL-3.0-or-later")
+
version("2.4.3", sha256="a271ae6d732f6f4d80c258ad9ee88dd9c94c8fdc33c3e45328c4d7c126bd219d")
version("2.4.2", sha256="97eb47df8ae5a3ff744f868005a090da5ab45cb48ee9836dbf5ee739a4e5cf49")
version("2.4.1", sha256="76b71e5aeb443bfd910ce9cbc8281b617c8341687afb67bae455877972b59de8")
diff --git a/var/spack/repos/builtin/packages/gnuplot/package.py b/var/spack/repos/builtin/packages/gnuplot/package.py
index 20f567d804c8a5..d2d684d6c0dba2 100644
--- a/var/spack/repos/builtin/packages/gnuplot/package.py
+++ b/var/spack/repos/builtin/packages/gnuplot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -28,6 +28,8 @@ class Gnuplot(AutotoolsPackage):
# dependency of readline. Fix it with a small patch
patch("term_include.patch")
+ license("MIT")
+
version("5.4.3", sha256="51f89bbab90f96d3543f95235368d188eb1e26eda296912256abcd3535bd4d84")
version("5.4.2", sha256="e57c75e1318133951d32a83bcdc4aff17fed28722c4e71f2305cfc2ae1cae7ba")
version("5.2.8", sha256="60a6764ccf404a1668c140f11cc1f699290ab70daa1151bb58fed6139a28ac37")
@@ -160,7 +162,7 @@ def configure_args(self):
# TODO: --with-aquaterm depends_on('aquaterm')
options.append("--without-aquaterm")
- if spec.satisfies("%gcc@11:"):
+ if spec.satisfies("%gcc@8:"):
os.environ["LDFLAGS"] = "-Wl,--copy-dt-needed-entries"
return options
diff --git a/var/spack/repos/builtin/packages/gnuradio/package.py b/var/spack/repos/builtin/packages/gnuradio/package.py
index 6b453b7c34e387..cb4f86c7a8e264 100644
--- a/var/spack/repos/builtin/packages/gnuradio/package.py
+++ b/var/spack/repos/builtin/packages/gnuradio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -22,6 +22,8 @@ class Gnuradio(CMakePackage):
maintainers("aweits")
+ license("GPL-3.0-or-later")
+
version("3.8.2.0", sha256="ddda12b55e3e1d925eefb24afb9d604bca7c9bbe0a431707aa48a2eed53eec2f")
variant("gui", default=False, description="Build with gui support")
@@ -59,10 +61,7 @@ class Gnuradio(CMakePackage):
extends("python")
def cmake_args(self):
- args = []
- args.append("-DPYTHON_EXECUTABLE={0}".format(self.spec["python"].command.path))
- args.append("-DENABLE_INTERNAL_VOLK=OFF")
- return args
+ return ["-DENABLE_INTERNAL_VOLK=OFF"]
def setup_dependent_build_environment(self, env, dependent_spec):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
diff --git a/var/spack/repos/builtin/packages/gnutls/package.py b/var/spack/repos/builtin/packages/gnutls/package.py
index 2ffa13278dce37..c8b0feb408fe6b 100644
--- a/var/spack/repos/builtin/packages/gnutls/package.py
+++ b/var/spack/repos/builtin/packages/gnutls/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Gnutls(AutotoolsPackage):
homepage = "https://www.gnutls.org"
url = "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.19.tar.xz"
+ license("LGPL-2.1-or-later")
+
version("3.7.8", sha256="c58ad39af0670efe6a8aee5e3a8b2331a1200418b64b7c51977fb396d4617114")
version("3.6.15", sha256="0ea8c3283de8d8335d7ae338ef27c53a916f15f382753b174c18b45ffd481558")
version("3.6.14", sha256="5630751adec7025b8ef955af4d141d00d252a985769f51b4059e5affa3d39d63")
diff --git a/var/spack/repos/builtin/packages/go-bootstrap/package.py b/var/spack/repos/builtin/packages/go-bootstrap/package.py
index 4f5c8f00732439..494eea00f04164 100644
--- a/var/spack/repos/builtin/packages/go-bootstrap/package.py
+++ b/var/spack/repos/builtin/packages/go-bootstrap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -61,6 +61,8 @@ class GoBootstrap(Package):
os = platform.system().lower()
target = go_targets.get(platform.machine().lower(), platform.machine().lower())
+ license("BSD-3-Clause")
+
# construct releases for current system configuration
for release in go_releases:
if os in go_releases[release] and target in go_releases[release][os]:
diff --git a/var/spack/repos/builtin/packages/go-md2man/package.py b/var/spack/repos/builtin/packages/go-md2man/package.py
index 808f0e4891b27b..7c26ef69cd9e14 100644
--- a/var/spack/repos/builtin/packages/go-md2man/package.py
+++ b/var/spack/repos/builtin/packages/go-md2man/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class GoMd2man(Package):
homepage = "https://github.com/cpuguy83/go-md2man"
url = "https://github.com/cpuguy83/go-md2man/archive/v1.0.10.tar.gz"
+ license("MIT")
+
version("2.0.2", sha256="2f52e37101ea2734b02f2b54a53c74305b95b3a9a27792fdac962b5354aa3e4a")
version("1.0.10", sha256="76aa56849123b99b95fcea2b15502fd886dead9a5c35be7f78bdc2bad6be8d99")
diff --git a/var/spack/repos/builtin/packages/go/package.py b/var/spack/repos/builtin/packages/go/package.py
index 439b7ca90c5197..a1d4fcd779d670 100644
--- a/var/spack/repos/builtin/packages/go/package.py
+++ b/var/spack/repos/builtin/packages/go/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -39,9 +39,18 @@ class Go(Package):
maintainers("alecbcs")
- version("1.21.3", sha256="186f2b6f8c8b704e696821b09ab2041a5c1ee13dcbc3156a13adcf75931ee488")
+ license("BSD-3-Clause")
+
+ version("1.21.6", sha256="124926a62e45f78daabbaedb9c011d97633186a33c238ffc1e25320c02046248")
+ version("1.21.5", sha256="285cbbdf4b6e6e62ed58f370f3f6d8c30825d6e56c5853c66d3c23bcdb09db19")
# Deprecated Versions
+ # https://nvd.nist.gov/vuln/detail/CVE-2023-44487
+ version(
+ "1.21.3",
+ sha256="186f2b6f8c8b704e696821b09ab2041a5c1ee13dcbc3156a13adcf75931ee488",
+ deprecated=True,
+ )
# https://nvd.nist.gov/vuln/detail/CVE-2023-39533
version(
"1.20.6",
diff --git a/var/spack/repos/builtin/packages/gobject-introspection/package.py b/var/spack/repos/builtin/packages/gobject-introspection/package.py
index 5e30182d512a41..8b3255de3c0c79 100644
--- a/var/spack/repos/builtin/packages/gobject-introspection/package.py
+++ b/var/spack/repos/builtin/packages/gobject-introspection/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,9 @@ class GobjectIntrospection(MesonPackage, AutotoolsPackage):
maintainers("michaelkuhn")
+ license("LGPL-2.0-or-later AND GPL-2.0-or-later AND MIT")
+
+ version("1.78.1", sha256="bd7babd99af7258e76819e45ba4a6bc399608fe762d83fde3cac033c50841bb4")
version("1.76.1", sha256="196178bf64345501dcdc4d8469b36aa6fe80489354efe71cb7cb8ab82a3738bf")
version("1.72.1", sha256="012e313186e3186cf0fde6decb57d970adf90e6b1fac5612fe69cbb5ba99543a")
version("1.72.0", sha256="02fe8e590861d88f83060dd39cda5ccaa60b2da1d21d0f95499301b186beaabc")
@@ -39,9 +42,13 @@ class GobjectIntrospection(MesonPackage, AutotoolsPackage):
depends_on("sed", when="platform=darwin", type="build")
depends_on("cairo+gobject")
+ depends_on("glib@2.78:", when="@1.78")
+ depends_on("glib@2.76:", when="@1.76")
+ depends_on("glib@2.72:", when="@1.72")
+ depends_on("glib@2.56:", when="@1.56")
depends_on("glib@2.49.2:", when="@1.49.2:")
- # version 1.48.0 build fails with glib 2.49.4
depends_on("glib@2.48.1", when="@1.48.0")
+
depends_on("libffi")
# https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/283
depends_on("libffi@:3.3", when="@:1.72") # libffi 3.4 caused seg faults
diff --git a/var/spack/repos/builtin/packages/goblin-hmc-sim/package.py b/var/spack/repos/builtin/packages/goblin-hmc-sim/package.py
index 090f6d37324151..74865bfcef6915 100644
--- a/var/spack/repos/builtin/packages/goblin-hmc-sim/package.py
+++ b/var/spack/repos/builtin/packages/goblin-hmc-sim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,9 +20,13 @@ class GoblinHmcSim(MakefilePackage):
# For some reason .o files get thrashed inside Spack
parallel = False
- maintainers("jjwilke")
+ maintainers("berquist")
+
+ license("BSD-2-Clause")
version("8.0.0", sha256="8a5e6b701865a581f15965d3ddd8c7d301b15f4b63543c444058e9c3688fd2c8")
+ version("main", branch="main")
+
def install(self, spec, prefix):
install_tree(".", prefix)
diff --git a/var/spack/repos/builtin/packages/goma/package.py b/var/spack/repos/builtin/packages/goma/package.py
index 26d08e48fef61f..aa468cb1d106e0 100644
--- a/var/spack/repos/builtin/packages/goma/package.py
+++ b/var/spack/repos/builtin/packages/goma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Goma(CMakePackage):
maintainers("wortiz")
+ license("GPL-2.0-or-later")
+
version("7.4.3", commit="bb0cf8030f9e8d61066d052ea6fad67fe49651f8")
version("7.3.0", commit="415f442953e2171afae1f8ad55868052c6f511ce")
version("7.2.0", commit="814f433aa5674c07274fffd4a619d80cd31f71ab")
diff --git a/var/spack/repos/builtin/packages/google-cloud-cli/package.py b/var/spack/repos/builtin/packages/google-cloud-cli/package.py
index 7fc7a5cda297bc..a40a09e66c6094 100644
--- a/var/spack/repos/builtin/packages/google-cloud-cli/package.py
+++ b/var/spack/repos/builtin/packages/google-cloud-cli/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -43,6 +43,8 @@ class GoogleCloudCli(Package):
machine = targets[machine]
ext = "zip" if system == "windows" else "tar.gz"
+ license("Apache-2.0")
+
for ver in versions:
if system in versions[ver] and machine in versions[ver][system]:
version(ver, sha256=versions[ver][system][machine])
diff --git a/var/spack/repos/builtin/packages/google-crc32c/package.py b/var/spack/repos/builtin/packages/google-crc32c/package.py
index a37b1d15b96529..0cfd5075bfb5a9 100644
--- a/var/spack/repos/builtin/packages/google-crc32c/package.py
+++ b/var/spack/repos/builtin/packages/google-crc32c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class GoogleCrc32c(CMakePackage):
maintainers("marcusboden")
+ license("BSD-3-Clause")
+
version("1.1.2", sha256="ac07840513072b7fcebda6e821068aa04889018f24e10e46181068fb214d7e56")
depends_on("cmake@3.1:", type="build")
diff --git a/var/spack/repos/builtin/packages/googletest/package.py b/var/spack/repos/builtin/packages/googletest/package.py
index bf995e9a4ad731..f1b1424f73aa42 100644
--- a/var/spack/repos/builtin/packages/googletest/package.py
+++ b/var/spack/repos/builtin/packages/googletest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -10,20 +10,22 @@ class Googletest(CMakePackage):
"""Google test framework for C++. Also called gtest."""
homepage = "https://github.com/google/googletest"
- url = "https://github.com/google/googletest/archive/release-1.10.0.tar.gz"
+ url = "https://github.com/google/googletest/archive/refs/tags/v1.14.0.tar.gz"
git = "https://github.com/google/googletest"
maintainers("sethrj")
version("main", branch="main")
+ version("1.14.0", sha256="8ad598c73ad796e0d8280b082cebd82a630d73e73cd3c70057938a6501bba5d7")
+ version("1.13.0", sha256="ad7fdba11ea011c1d925b3289cf4af2c66a352e18d4c7264392fead75e919363")
version("1.12.1", sha256="81964fe578e9bd7c94dfdb09c8e4d6e6759e19967e397dbea48d1c10e45d0df2")
version("1.12.0", sha256="2a4f11dce6188b256f3650061525d0fe352069e5c162452818efbbf8d0b5fe1c")
- version("1.11.0", sha256="07b0896360f8e14414a8419e35515da0be085c5b4547c914ab8f4684ef0a3a8e")
- version("1.10.0", sha256="e4a7cd97c903818abe7ddb129db9c41cc9fd9e2ded654be57ced26d45c72e4c9")
- version("1.8.1", sha256="8e40a005e098b1ba917d64104549e3da274e31261dedc57d6250fe91391b2e84")
- version("1.8.0", sha256="d8c33605d23d303b08a912eaee7f84c4e091d6e3d90e9a8ec8aaf7450dfe2568")
- version("1.7.0", sha256="9639cf8b7f37a4d0c6575f52c01ef167c5f11faee65252296b3ffc2d9acd421b")
- version("1.6.0", sha256="a61e20c65819eb39a2da85c88622bac703b865ca7fe2bfdcd3da734d87d5521a")
+ version("1.11.0", sha256="b4870bf121ff7795ba20d20bcdd8627b8e088f2d1dab299a031c1034eddc93d5")
+ version("1.10.0", sha256="9dc9157a9a1551ec7a7e43daea9a694a0bb5fb8bec81235d8a1e6ef64c716dcb")
+ version("1.8.1", sha256="9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c")
+ version("1.8.0", sha256="58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8")
+ version("1.7.0", sha256="f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc")
+ version("1.6.0", sha256="5fbc058e5b662b9c86d93ac76fefb58eec89cbf26144b49669a38ecb62758447")
variant("gmock", default=True, when="@1.8:", description="Build with gmock")
variant("pthreads", default=True, description="Build multithreaded version with pthreads")
@@ -74,3 +76,20 @@ def darwin_fix(self):
# The shared library is not installed correctly on Darwin; fix this
if self.spec.satisfies("platform=darwin"):
fix_darwin_install_name(self.prefix.lib)
+
+ def url_for_version(self, version):
+ """googletest has changed how they publish releases on github. Up until,
+ including version 1.12.1 they were tagged as `release-`.
+ Afterwards things switched to the format `v`. Additionally,
+ newer versions are available from `archive/refs/tags/.tar.gz`,
+ while versions up to, and including, 1.8.0 are available only from
+ `archive/release-.tar.gz`
+ """
+ if version <= Version("1.8.0"):
+ return f"{self.git}/archive/release-{version}.tar.gz"
+
+ tagname = f"release-{version}"
+ if version >= Version("1.13"):
+ tagname = f"v{version}"
+
+ return f"{self.git}/archive/refs/tags/{tagname}.tar.gz"
diff --git a/var/spack/repos/builtin/packages/gosam-contrib/package.py b/var/spack/repos/builtin/packages/gosam-contrib/package.py
index 7921304cce9ed7..ab60938f497270 100644
--- a/var/spack/repos/builtin/packages/gosam-contrib/package.py
+++ b/var/spack/repos/builtin/packages/gosam-contrib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/goshimmer/package.py b/var/spack/repos/builtin/packages/goshimmer/package.py
index c2ae6a7f9bc342..bd3fc555780d4d 100644
--- a/var/spack/repos/builtin/packages/goshimmer/package.py
+++ b/var/spack/repos/builtin/packages/goshimmer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Goshimmer(Package):
maintainers("bernhardkaindl")
+ license("BSD-2-Clause")
+
version("0.8.0", sha256="ec515deebf0dd35ff76cd98addae9cfcbf4758ab9eb72eb0f6ff4654f2658980")
depends_on("go@1.16:", type="build")
diff --git a/var/spack/repos/builtin/packages/gotcha/package.py b/var/spack/repos/builtin/packages/gotcha/package.py
index 0efc4d986914e8..a743f844743f1f 100644
--- a/var/spack/repos/builtin/packages/gotcha/package.py
+++ b/var/spack/repos/builtin/packages/gotcha/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,7 @@ class Gotcha(CMakePackage):
version("develop", branch="develop")
version("master", branch="master")
+ version("1.0.5", tag="1.0.5", commit="e28f10c45a0cda0e1ec225eaea6abfe72c8353aa")
version("1.0.4", tag="1.0.4", commit="46f2aaedc885f140a3f31a17b9b9a9d171f3d6f0")
version("1.0.3", tag="1.0.3", commit="1aafd1e30d46ce4e6555c8a4ea5f5edf6a5eade5")
version("1.0.2", tag="1.0.2", commit="bed1b7c716ebb0604b3e063121649b5611640f25")
diff --git a/var/spack/repos/builtin/packages/gource/package.py b/var/spack/repos/builtin/packages/gource/package.py
index de540a5faff453..e410159ff99d76 100644
--- a/var/spack/repos/builtin/packages/gource/package.py
+++ b/var/spack/repos/builtin/packages/gource/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Gource(AutotoolsPackage):
homepage = "https://gource.io"
url = "https://github.com/acaudwell/Gource/releases/download/gource-0.44/gource-0.44.tar.gz"
+ license("GPL-3.0")
+
version("0.44", sha256="2604ca4442305ffdc5bb1a7bac07e223d59c846f93567be067e8dfe2f42f097c")
depends_on("automake", type="build")
diff --git a/var/spack/repos/builtin/packages/gpcnet/package.py b/var/spack/repos/builtin/packages/gpcnet/package.py
index 1958cc194889dd..37c6eac63c224d 100644
--- a/var/spack/repos/builtin/packages/gpcnet/package.py
+++ b/var/spack/repos/builtin/packages/gpcnet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,9 @@ class Gpcnet(MakefilePackage):
homepage = "https://github.com/netbench/GPCNET"
git = "https://github.com/netbench/GPCNET.git"
+
+ license("Apache-2.0")
+
version("master")
depends_on("mpi", type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/gperf/package.py b/var/spack/repos/builtin/packages/gperf/package.py
index 51ddf0f2ea1f1b..dbb1b2c3256aae 100644
--- a/var/spack/repos/builtin/packages/gperf/package.py
+++ b/var/spack/repos/builtin/packages/gperf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Gperf(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/gperf/"
gnu_mirror_path = "gperf/gperf-3.0.4.tar.gz"
+ license("GPL-3.0-or-later")
+
version("3.1", sha256="588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2")
version("3.0.4", sha256="767112a204407e62dbc3106647cf839ed544f3cf5d0f0523aaa2508623aad63e")
diff --git a/var/spack/repos/builtin/packages/gperftools/package.py b/var/spack/repos/builtin/packages/gperftools/package.py
index 6dd96c36678682..42c07707a3d464 100644
--- a/var/spack/repos/builtin/packages/gperftools/package.py
+++ b/var/spack/repos/builtin/packages/gperftools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,10 @@ class Gperftools(AutotoolsPackage):
url = "https://github.com/gperftools/gperftools/releases/download/gperftools-2.7/gperftools-2.7.tar.gz"
maintainers("albestro", "eschnett", "msimberg", "teonnik")
+ license("BSD-3-Clause")
+
+ version("2.15", sha256="c69fef855628c81ef56f12e3c58f2b7ce1f326c0a1fe783e5cae0b88cbbe9a80")
+ version("2.14", sha256="6b561baf304b53d0a25311bd2e29bc993bed76b7c562380949e7cb5e3846b299")
version("2.13", sha256="4882c5ece69f8691e51ffd6486df7d79dbf43b0c909d84d3c0883e30d27323e7")
version("2.12", sha256="fb611b56871a3d9c92ab0cc41f9c807e8dfa81a54a4a9de7f30e838756b5c7c6")
version("2.11", sha256="8ffda10e7c500fea23df182d7adddbf378a203c681515ad913c28a64b87e24dc")
@@ -40,6 +44,11 @@ class Gperftools(AutotoolsPackage):
depends_on("unwind", when="+libunwind")
+ # Linker error: src/base/dynamic_annotations.cc:46: undefined reference to
+ # `TCMallocGetenvSafe'
+ conflicts("target=ppc64:", when="@2.14")
+ conflicts("target=ppc64le:", when="@2.14")
+
def configure_args(self):
args = []
args += self.enable_or_disable("sized-delete", variant="sized_delete")
diff --git a/var/spack/repos/builtin/packages/gpgme/package.py b/var/spack/repos/builtin/packages/gpgme/package.py
index 5613914f69b51d..6707d1fc3e1b24 100644
--- a/var/spack/repos/builtin/packages/gpgme/package.py
+++ b/var/spack/repos/builtin/packages/gpgme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gpi-2/package.py b/var/spack/repos/builtin/packages/gpi-2/package.py
index 79832f56e494a0..16167b43d01e54 100644
--- a/var/spack/repos/builtin/packages/gpi-2/package.py
+++ b/var/spack/repos/builtin/packages/gpi-2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Gpi2(AutotoolsPackage):
maintainers("robert-mijakovic", "acastanedam", "mzeyen1985")
+ license("GPL-3.0-only")
+
version("develop", branch="next")
version("master", branch="master")
diff --git a/var/spack/repos/builtin/packages/gpi-space/package.py b/var/spack/repos/builtin/packages/gpi-space/package.py
index 827af130673cf0..166e20c458c6bd 100644
--- a/var/spack/repos/builtin/packages/gpi-space/package.py
+++ b/var/spack/repos/builtin/packages/gpi-space/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,8 @@ class GpiSpace(CMakePackage):
maintainers("mzeyen1985", "tiberot", "rumach", "mrahn", "acastanedam")
+ license("GPL-3.0-or-later")
+
version("latest", branch="main")
version("23.06", sha256="b4ee51f309c80c12a7842c0909041903608c6144535bc6faac3bbb8ff40e9213")
version("22.12", sha256="1c0ab9a1ada9dbbc0f80fb04ddbbb24ff900231f709cb99aa63f0d135a3ad398")
diff --git a/var/spack/repos/builtin/packages/gplates/package.py b/var/spack/repos/builtin/packages/gplates/package.py
index ae6e17d2a0e15b..b9008f70d2c10f 100644
--- a/var/spack/repos/builtin/packages/gplates/package.py
+++ b/var/spack/repos/builtin/packages/gplates/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gprolog/package.py b/var/spack/repos/builtin/packages/gprolog/package.py
index 1a59f47a34f162..099e9b1af839ba 100644
--- a/var/spack/repos/builtin/packages/gprolog/package.py
+++ b/var/spack/repos/builtin/packages/gprolog/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Gprolog(Package):
homepage = "http://www.gprolog.org/"
url = "http://www.gprolog.org/gprolog-1.4.5.tar.gz"
+ license("LGPL-3.0-or-later")
+
version("1.5.0", sha256="670642b43c0faa27ebd68961efb17ebe707688f91b6809566ddd606139512c01")
version("1.4.5", sha256="bfdcf00e051e0628b4f9af9d6638d4fde6ad793401e58a5619d1cc6105618c7c")
diff --git a/var/spack/repos/builtin/packages/gptl/package.py b/var/spack/repos/builtin/packages/gptl/package.py
index 828ede0b75d361..76e89e1e643a1e 100644
--- a/var/spack/repos/builtin/packages/gptl/package.py
+++ b/var/spack/repos/builtin/packages/gptl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gptune/package.py b/var/spack/repos/builtin/packages/gptune/package.py
index c0c321c9a4a0d7..f7647367b21823 100644
--- a/var/spack/repos/builtin/packages/gptune/package.py
+++ b/var/spack/repos/builtin/packages/gptune/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Gptune(CMakePackage):
git = "https://github.com/gptune/GPTune.git"
maintainers("liuyangzhuan")
+ license("BSD-3-Clause-LBNL")
+
version("master", branch="master")
version("4.0.0", sha256="4f954a810d83b73f5abe5b15b79e3ed5b7ebf7bc0ae7335d27b68111bd078102")
version("3.0.0", sha256="e19bfc3033fff11ff8c20cae65b88b7ca005d2c4e4db047f9f23226126ec92fa")
diff --git a/var/spack/repos/builtin/packages/gpu-burn/package.py b/var/spack/repos/builtin/packages/gpu-burn/package.py
index d8dc12f7ce8c18..b673b851a80a30 100644
--- a/var/spack/repos/builtin/packages/gpu-burn/package.py
+++ b/var/spack/repos/builtin/packages/gpu-burn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gqrx/package.py b/var/spack/repos/builtin/packages/gqrx/package.py
index c1285427477e87..cd47d34469a972 100644
--- a/var/spack/repos/builtin/packages/gqrx/package.py
+++ b/var/spack/repos/builtin/packages/gqrx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,8 @@ class Gqrx(CMakePackage):
maintainers("aweits")
+ license("GPL-3.0-or-later")
+
version("2.13.1", sha256="08b7b930bed00c6ac79330695c24919a9d779112e1a3dd37d22cc9ee38561e82")
depends_on("cmake@3.2.0:", type="build")
depends_on("gnuradio")
diff --git a/var/spack/repos/builtin/packages/gr-osmosdr/package.py b/var/spack/repos/builtin/packages/gr-osmosdr/package.py
index 1cb33395fb6115..93b5389646743b 100644
--- a/var/spack/repos/builtin/packages/gr-osmosdr/package.py
+++ b/var/spack/repos/builtin/packages/gr-osmosdr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -33,6 +33,8 @@ class GrOsmosdr(CMakePackage):
variant("hackrf", default=True, description="Support HackRF Hardware")
+ license("GPL-3.0-only")
+
version("0.2.2", sha256="5a7ce7afee38a56191b5d16cb4a91c92476729ff16ed09cbba5a3851ac619713")
depends_on("gnuradio")
diff --git a/var/spack/repos/builtin/packages/grabix/package.py b/var/spack/repos/builtin/packages/grabix/package.py
index 4327a9f28978c7..31f6d661eb293b 100644
--- a/var/spack/repos/builtin/packages/grabix/package.py
+++ b/var/spack/repos/builtin/packages/grabix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Grabix(MakefilePackage):
maintainers("robqiao")
+ license("MIT")
+
version("0.1.7", sha256="d90735c55c0985a4d751858d7ce9e36ad534fff4103257e8e981e34d5c915b28")
conflicts("%gcc@7:", msg="grabix cannot be compiled with newer versions of GCC")
diff --git a/var/spack/repos/builtin/packages/grace/package.py b/var/spack/repos/builtin/packages/grace/package.py
index e28017029dc2ed..5d36086c23874d 100644
--- a/var/spack/repos/builtin/packages/grace/package.py
+++ b/var/spack/repos/builtin/packages/grace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Grace(AutotoolsPackage):
maintainers("RemiLacroix-IDRIS")
+ license("GPL-2.0-or-later")
+
version("5.1.25", sha256="751ab9917ed0f6232073c193aba74046037e185d73b77bab0f5af3e3ff1da2ac")
depends_on("libx11")
diff --git a/var/spack/repos/builtin/packages/grackle/package.py b/var/spack/repos/builtin/packages/grackle/package.py
index 07442dec3a22f7..e87b2ef93e1b62 100644
--- a/var/spack/repos/builtin/packages/grackle/package.py
+++ b/var/spack/repos/builtin/packages/grackle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gradle/package.py b/var/spack/repos/builtin/packages/gradle/package.py
index 1c329c70e8335b..10b69e7849baeb 100644
--- a/var/spack/repos/builtin/packages/gradle/package.py
+++ b/var/spack/repos/builtin/packages/gradle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Gradle(Package):
homepage = "https://gradle.org"
url = "https://services.gradle.org/distributions/gradle-3.4-all.zip"
+ license("Apache-2.0")
+
version("8.1.1", sha256="5625a0ae20fe000d9225d000b36909c7a0e0e8dda61c19b12da769add847c975")
version("8.0.2", sha256="47a5bfed9ef814f90f8debcbbb315e8e7c654109acd224595ea39fca95c5d4da")
version("7.3", sha256="00b273629df4ce46e68df232161d5a7c4e495b9a029ce6e0420f071e21316867")
diff --git a/var/spack/repos/builtin/packages/grads/package.py b/var/spack/repos/builtin/packages/grads/package.py
index ff45cea375345b..216b4b8db13a05 100644
--- a/var/spack/repos/builtin/packages/grads/package.py
+++ b/var/spack/repos/builtin/packages/grads/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Grads(AutotoolsPackage):
maintainers("vanderwb")
+ license("GPL-2.0-or-later")
+
version("2.2.3", sha256="2cbb67284fe64763c589ecaf08d5bd31144554dfd82a1fccf71e1cc424695a9e")
version("2.2.2", sha256="1b5a600d4d407ffcf2fbbbba42037a6e1ebfdb8246ba56b93c628e3c472b4ded")
version("2.2.1", sha256="695e2066d7d131720d598bac0beb61ac3ae5578240a5437401dc0ffbbe516206")
diff --git a/var/spack/repos/builtin/packages/grafana/package.py b/var/spack/repos/builtin/packages/grafana/package.py
index e0e4e7349af44d..37f3b730640439 100644
--- a/var/spack/repos/builtin/packages/grafana/package.py
+++ b/var/spack/repos/builtin/packages/grafana/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Grafana(Package):
homepage = "https://grafana.com"
url = "https://github.com/grafana/grafana/archive/v6.7.3.tar.gz"
+ license("AGPL-3.0-only")
+
version("6.7.3", sha256="2477b70bfc8770ab844ee683f72b5efe8a47324b9779663d8e5259ffb9ddb8d8")
version("6.7.2", sha256="dc81cdb77c1c0ae99ae3302a0ef8b3d577f4a717208a90df65da8fcb282122fc")
version("6.7.1", sha256="5750d286273069a195679d5586e810b0ca8cdd08ee07dcdd9b52cfaac8c62b89")
diff --git a/var/spack/repos/builtin/packages/grandr/package.py b/var/spack/repos/builtin/packages/grandr/package.py
index 22ec55c4302e7b..46cd8962fa1d03 100644
--- a/var/spack/repos/builtin/packages/grandr/package.py
+++ b/var/spack/repos/builtin/packages/grandr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/graph500/package.py b/var/spack/repos/builtin/packages/graph500/package.py
index 2565c676a95cca..e1a6131e885d24 100644
--- a/var/spack/repos/builtin/packages/graph500/package.py
+++ b/var/spack/repos/builtin/packages/graph500/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Graph500(MakefilePackage):
homepage = "https://graph500.org"
url = "https://github.com/graph500/graph500/archive/graph500-3.0.0.tar.gz"
+ license("BSL-1.0")
+
version("3.0.0", sha256="887dcff56999987fba4953c1c5696d50e52265fe61b6ffa8bb14cc69ff27e8a0")
depends_on("mpi@2.0:")
diff --git a/var/spack/repos/builtin/packages/graphblast/package.py b/var/spack/repos/builtin/packages/graphblast/package.py
index 74a3c31dae1781..e67fd0b906a26d 100644
--- a/var/spack/repos/builtin/packages/graphblast/package.py
+++ b/var/spack/repos/builtin/packages/graphblast/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Graphblast(MakefilePackage, CudaPackage):
homepage = "https://github.com/gunrock/graphblast"
git = "https://github.com/gunrock/graphblast.git"
+ license("Apache-2.0")
+
version("master", submodules=True)
version(
"2020-05-07",
diff --git a/var/spack/repos/builtin/packages/graphicsmagick/package.py b/var/spack/repos/builtin/packages/graphicsmagick/package.py
index 7d2c96f367dc21..c84bde89b9b6e0 100644
--- a/var/spack/repos/builtin/packages/graphicsmagick/package.py
+++ b/var/spack/repos/builtin/packages/graphicsmagick/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Graphicsmagick(AutotoolsPackage):
homepage = "http://www.graphicsmagick.org/"
url = "https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.29/GraphicsMagick-1.3.29.tar.xz/download"
+ license("MIT")
+
version("1.3.34", sha256="df009d5173ed0d6a0c6457234256c5a8aeaace782afa1cbab015d5a12bd4f7a4")
version("1.3.33", sha256="130cb330a633580b5124eba5c125bbcbc484298423a97b9bed37ccd50d6dc778")
version("1.3.32", sha256="b842a5a0d6c84fd6c5f161b5cd8e02bbd210b0c0b6728dd762b7c53062ba94e1")
diff --git a/var/spack/repos/builtin/packages/graphite2/package.py b/var/spack/repos/builtin/packages/graphite2/package.py
index 3453886eea47de..10af88d825de9a 100644
--- a/var/spack/repos/builtin/packages/graphite2/package.py
+++ b/var/spack/repos/builtin/packages/graphite2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Graphite2(CMakePackage):
)
url = "https://github.com/silnrsi/graphite/releases/download/1.3.13/graphite2-1.3.13.tgz"
+ license("LGPL-2.1-or-later OR MPL-1.1")
+
version("1.3.14", sha256="f99d1c13aa5fa296898a181dff9b82fb25f6cc0933dbaa7a475d8109bd54209d")
version("1.3.13", sha256="dd63e169b0d3cf954b397c122551ab9343e0696fb2045e1b326db0202d875f06")
diff --git a/var/spack/repos/builtin/packages/graphlib/package.py b/var/spack/repos/builtin/packages/graphlib/package.py
index 01e7f500609a67..3f8026b0488ab3 100644
--- a/var/spack/repos/builtin/packages/graphlib/package.py
+++ b/var/spack/repos/builtin/packages/graphlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/graphmap/package.py b/var/spack/repos/builtin/packages/graphmap/package.py
index 4199da13d513bf..0d9ad07e81fc6a 100644
--- a/var/spack/repos/builtin/packages/graphmap/package.py
+++ b/var/spack/repos/builtin/packages/graphmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Graphmap(MakefilePackage):
homepage = "https://github.com/isovic/graphmap"
git = "https://github.com/isovic/graphmap.git"
+ license("MIT")
+
version("0.3.0", commit="eb8c75d68b03be95464318afa69b645a59f8f6b7")
depends_on("zlib-api", type="link")
diff --git a/var/spack/repos/builtin/packages/graphviz/package.py b/var/spack/repos/builtin/packages/graphviz/package.py
index 658a6a39b43c6d..110746d9110359 100644
--- a/var/spack/repos/builtin/packages/graphviz/package.py
+++ b/var/spack/repos/builtin/packages/graphviz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Graphviz(AutotoolsPackage):
git = "https://gitlab.com/graphviz/graphviz.git"
url = "https://gitlab.com/graphviz/graphviz/-/archive/2.46.0/graphviz-2.46.0.tar.bz2"
+ license("EPL-1.0")
+
version("8.0.5", sha256="c1901fe52483fad55fbf893ccd59a3dcaedd53f0d50b5aebbbf3deaba93b674d")
version("8.0.1", sha256="19928f09f759676578b50101420b24475eb35f712ffbe8a97254f64b20fdbd03")
version("7.1.0", sha256="7943c3fa0c55c779f595259f3b9e41c7ea6ed92f0aca0d24df917f631322dc01")
diff --git a/var/spack/repos/builtin/packages/grass/package.py b/var/spack/repos/builtin/packages/grass/package.py
index 8b4065d81430a9..01adc4587bcddd 100644
--- a/var/spack/repos/builtin/packages/grass/package.py
+++ b/var/spack/repos/builtin/packages/grass/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Grass(AutotoolsPackage):
maintainers("adamjstewart")
+ license("MIT")
+
version("master", branch="master")
version("8.2.0", sha256="621c3304a563be19c0220ae28f931a5e9ba74a53218c5556cd3f7fbfcca33a80")
version("7.8.5", sha256="a359bb665524ecccb643335d70f5436b1c84ffb6a0e428b78dffebacd983ff37")
diff --git a/var/spack/repos/builtin/packages/graylog2-server/package.py b/var/spack/repos/builtin/packages/graylog2-server/package.py
index 72e1fde2792d5d..8e105a17113dcf 100644
--- a/var/spack/repos/builtin/packages/graylog2-server/package.py
+++ b/var/spack/repos/builtin/packages/graylog2-server/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Graylog2Server(Package):
homepage = "https://www.graylog.org/"
url = "https://github.com/Graylog2/graylog2-server/archive/3.2.4.tar.gz"
+ license("GPL-3.0-or-later")
+
version("3.2.4", sha256="d34cc9fd42b2ee0b872c0f644fe53ef9b2e9790029c5d2182f782f66f1e1d99d")
version("3.2.3", sha256="6da5ba1da897a371a490a6ba7c9d017a479a22e3c16a39280a49e61f551280c0")
version("3.2.2", sha256="dc7baa5c0e451b0927b28320c4d9ca19810f4690eb2c521ed8a8272c99fb3bc3")
diff --git a/var/spack/repos/builtin/packages/grep/package.py b/var/spack/repos/builtin/packages/grep/package.py
index 37b1e62cfe3b01..5a08cad458257c 100644
--- a/var/spack/repos/builtin/packages/grep/package.py
+++ b/var/spack/repos/builtin/packages/grep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Grep(AutotoolsPackage):
homepage = "https://www.gnu.org/software/grep/"
url = "https://ftp.gnu.org/gnu/grep/grep-3.3.tar.xz"
+ license("GPL-3.0-or-later")
+
version("3.11", sha256="1db2aedde89d0dea42b16d9528f894c8d15dae4e190b59aecc78f5a951276eab")
version("3.10", sha256="24efa5b595fb5a7100879b51b8868a0bb87a71c183d02c4c602633b88af6855b")
version("3.9", sha256="abcd11409ee23d4caf35feb422e53bbac867014cfeed313bb5f488aca170b599")
diff --git a/var/spack/repos/builtin/packages/grib-api/package.py b/var/spack/repos/builtin/packages/grib-api/package.py
index d798318e7eef12..70d3d2517d73c7 100644
--- a/var/spack/repos/builtin/packages/grib-api/package.py
+++ b/var/spack/repos/builtin/packages/grib-api/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/grib-util/package.py b/var/spack/repos/builtin/packages/grib-util/package.py
index 8b0464dec825b6..bd4dd94f7dba44 100644
--- a/var/spack/repos/builtin/packages/grib-util/package.py
+++ b/var/spack/repos/builtin/packages/grib-util/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/grid/package.py b/var/spack/repos/builtin/packages/grid/package.py
index e68e4955f704d9..952d741b683676 100644
--- a/var/spack/repos/builtin/packages/grid/package.py
+++ b/var/spack/repos/builtin/packages/grid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Grid(AutotoolsPackage):
maintainers("giordano")
+ license("GPL-2.0-only")
+
version("develop", branch="develop")
variant(
diff --git a/var/spack/repos/builtin/packages/gridlab-d/package.py b/var/spack/repos/builtin/packages/gridlab-d/package.py
index fe8531461f5959..aa3ecdcbd1f102 100644
--- a/var/spack/repos/builtin/packages/gridlab-d/package.py
+++ b/var/spack/repos/builtin/packages/gridlab-d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/grnboost/package.py b/var/spack/repos/builtin/packages/grnboost/package.py
index 6e28cb7fcee652..92ea32139d47cd 100644
--- a/var/spack/repos/builtin/packages/grnboost/package.py
+++ b/var/spack/repos/builtin/packages/grnboost/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Grnboost(Package):
homepage = "https://github.com/aertslab/GRNBoost"
+ license("BSD-3-Clause")
+
version(
"2017-10-9",
git="https://github.com/aertslab/GRNBoost.git",
diff --git a/var/spack/repos/builtin/packages/groff/package.py b/var/spack/repos/builtin/packages/groff/package.py
index a2ccd663ec20a0..c648b7e16be876 100644
--- a/var/spack/repos/builtin/packages/groff/package.py
+++ b/var/spack/repos/builtin/packages/groff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Groff(AutotoolsPackage, GNUMirrorPackage):
tags = ["build-tools"]
+ license("GPL-3.0-or-later")
+
version("1.22.4", sha256="e78e7b4cb7dec310849004fa88847c44701e8d133b5d4c13057d876c1bad0293")
version("1.22.3", sha256="3a48a9d6c97750bfbd535feeb5be0111db6406ddb7bb79fc680809cda6d828a5")
diff --git a/var/spack/repos/builtin/packages/gromacs-chain-coordinate/package.py b/var/spack/repos/builtin/packages/gromacs-chain-coordinate/package.py
index 1133d5d1dca549..d5160ebf4bcd3a 100644
--- a/var/spack/repos/builtin/packages/gromacs-chain-coordinate/package.py
+++ b/var/spack/repos/builtin/packages/gromacs-chain-coordinate/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
+from spack.pkg.builtin.gromacs import CMakeBuilder as GromacsCMakeBuilder
from spack.pkg.builtin.gromacs import Gromacs
@@ -14,12 +15,18 @@ class GromacsChainCoordinate(Gromacs):
"""
homepage = "https://gitlab.com/cbjh/gromacs-chain-coordinate/-/blob/main/README.md"
- url = "https://gitlab.com/cbjh/gromacs-chain-coordinate/-/archive/release-2021.chaincoord-0.2/gromacs-chain-coordinate-release-2021.chaincoord-0.2.tar.bz2"
+ url = "https://gitlab.com/cbjh/gromacs-chain-coordinate/-/archive/release-2021.chaincoord-0.3/gromacs-chain-coordinate-release-2021.chaincoord-0.3.tar.bz2"
git = "https://gitlab.com/cbjh/gromacs-chain-coordinate.git"
maintainers("w8jcik")
version("main", branch="main")
+ version(
+ "2021.5-0.3",
+ sha256="64ec5f385445ae43dfec8c27198034c0ba641863ab856c8c29798a4c83016baa",
+ url="https://gitlab.com/cbjh/gromacs-chain-coordinate/-/archive/release-2021.chaincoord-0.3/gromacs-chain-coordinate-release-2021.chaincoord-0.3.tar.bz2",
+ )
+
version(
"2021.5-0.2",
sha256="33dda1e39cd47c5ae32b5455af8534225d3888fd7e4968f499b8483620fa770a",
@@ -56,3 +63,7 @@ def check(self):
self._if_make_target_execute("check")
elif self.generator == "Ninja":
self._if_ninja_target_execute("check")
+
+
+class CMakeBuilder(GromacsCMakeBuilder):
+ pass
diff --git a/var/spack/repos/builtin/packages/gromacs-swaxs/package.py b/var/spack/repos/builtin/packages/gromacs-swaxs/package.py
index ac97d477be397a..bea5a16102a94d 100644
--- a/var/spack/repos/builtin/packages/gromacs-swaxs/package.py
+++ b/var/spack/repos/builtin/packages/gromacs-swaxs/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
+from spack.pkg.builtin.gromacs import CMakeBuilder as GromacsCMakeBuilder
from spack.pkg.builtin.gromacs import Gromacs
@@ -11,10 +12,16 @@ class GromacsSwaxs(Gromacs):
"""Modified Gromacs for small-angle scattering calculations (SAXS/WAXS/SANS)"""
homepage = "https://biophys.uni-saarland.de/swaxs.html"
- url = "https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2019.swaxs-0.1/gromacs-swaxs-release-2019.swaxs-0.1.tar.bz2"
+ url = "https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2021.swaxs-0.5/gromacs-swaxs-release-2021.swaxs-0.5.tar.bz2"
git = "https://gitlab.com/cbjh/gromacs-swaxs.git"
maintainers("w8jcik")
+ version(
+ "2021.5-0.5",
+ sha256="7207f107dc6c4009a04a533e18545666d4f58c172b2b24d04442bb1a0f43ff44",
+ url="https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2021.swaxs-0.5/gromacs-swaxs-release-2021.swaxs-0.5.tar.bz2",
+ )
+
version(
"2021.5-0.4",
sha256="9f8ed6d448a04789d45e847cbbc706a07130377f578388220a9d5357fae9d1c3",
@@ -151,3 +158,7 @@ def __init__(self, spec):
super().__init__(spec)
self.remove_parent_versions()
+
+
+class CMakeBuilder(GromacsCMakeBuilder):
+ pass
diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py
index 66c594c71ef328..0191a9ff32f3d8 100644
--- a/var/spack/repos/builtin/packages/gromacs/package.py
+++ b/var/spack/repos/builtin/packages/gromacs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -28,6 +28,8 @@ class Gromacs(CMakePackage, CudaPackage):
git = "https://gitlab.com/gromacs/gromacs.git"
maintainers("danielahlin", "eirrgang", "junghans")
+ license("BSD-2-Clause")
+
version("main", branch="main")
version("master", branch="main", deprecated=True)
version("2023.3", sha256="4ec8f8d0c7af76b13f8fd16db8e2c120e749de439ae9554d9f653f812d78d1cb")
@@ -90,9 +92,26 @@ class Gromacs(CMakePackage, CudaPackage):
default=False,
description="Produces a double precision version of the executables",
)
- variant("cufftmp", default=False, when="+cuda+mpi", description="Enable Multi GPU FFT support")
+ variant(
+ "cufftmp",
+ default=False,
+ when="@2022: +cuda+mpi",
+ description="Enable multi-GPU FFT support with cuFFTMp",
+ )
+ variant(
+ "heffte",
+ default=False,
+ when="@2021: +sycl+mpi",
+ description="Enable multi-GPU FFT support with HeFFTe",
+ )
variant("opencl", default=False, description="Enable OpenCL support")
- variant("sycl", default=False, description="Enable SYCL support")
+ variant("sycl", default=False, when="@2021:", description="Enable SYCL support")
+ variant(
+ "intel-data-center-gpu-max",
+ default=False,
+ when="@2022: +sycl",
+ description="Enable support for Intel Data Center GPU Max",
+ )
variant("nosuffix", default=False, description="Disable default suffixes")
variant(
"build_type",
@@ -108,6 +127,18 @@ class Gromacs(CMakePackage, CudaPackage):
"Profile",
),
)
+ variant(
+ "nblib",
+ default=True,
+ when="@2021:",
+ description="Build and install the NB-LIB C++ API for GROMACS",
+ )
+ variant(
+ "gmxapi",
+ default=True,
+ when="@2019:",
+ description="Build and install the gmxlib python API for GROMACS",
+ )
variant(
"mdrun_only",
default=False,
@@ -241,6 +272,8 @@ class Gromacs(CMakePackage, CudaPackage):
depends_on("cmake@3.16.3:3", type="build", when="@2022:")
depends_on("cmake@3.18.4:3", type="build", when="@main")
depends_on("cmake@3.16.0:3", type="build", when="%fj")
+ depends_on("pkgconfig", type="build")
+
depends_on("cuda", when="+cuda")
depends_on("sycl", when="+sycl")
depends_on("lapack")
@@ -254,6 +287,7 @@ class Gromacs(CMakePackage, CudaPackage):
depends_on("cp2k@8.1:", when="+cp2k")
depends_on("nvhpc", when="+cufftmp")
+ depends_on("heffte", when="+heffte")
requires(
"%intel",
@@ -516,6 +550,19 @@ def cmake_args(self):
+ f'/{self.spec["nvhpc"].version}/math_libs'
)
+ if "+heffte" in self.spec:
+ options.append("-DGMX_USE_HEFFTE=on")
+ options.append(f'-DHeffte_ROOT={self.spec["heffte"].prefix}')
+
+ if "+intel-data-center-gpu-max" in self.spec:
+ options.append("-DGMX_GPU_NB_CLUSTER_SIZE=8")
+ options.append("-DGMX_GPU_NB_NUM_CLUSTER_PER_CELL_X=1")
+
+ if "~nblib" in self.spec:
+ options.append("-DGMX_INSTALL_NBLIB_API=OFF")
+ if "~gmxapi" in self.spec:
+ options.append("-DGMXAPI=OFF")
+
# Activate SIMD based on properties of the target
target = self.spec.target
if target >= "zen4":
diff --git a/var/spack/repos/builtin/packages/grpc/package.py b/var/spack/repos/builtin/packages/grpc/package.py
index 58e64427ec23fb..03bdb71303133f 100644
--- a/var/spack/repos/builtin/packages/grpc/package.py
+++ b/var/spack/repos/builtin/packages/grpc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,9 @@ class Grpc(CMakePackage):
homepage = "https://grpc.io"
url = "https://github.com/grpc/grpc/archive/v1.39.0.tar.gz"
+
+ license("Apache-2.0 AND BSD-3-Clause AND MIT")
+
version("1.55.0", sha256="9cf1a69a921534ac0b760dcbefb900f3c2f735f56070bf0536506913bb5bfd74")
version("1.50.0", sha256="76900ab068da86378395a8e125b5cc43dfae671e09ff6462ddfef18676e2165a")
version("1.47.0", sha256="271bdc890bf329a8de5b65819f0f9590a5381402429bca37625b63546ed19e54")
diff --git a/var/spack/repos/builtin/packages/gsettings-desktop-schemas/package.py b/var/spack/repos/builtin/packages/gsettings-desktop-schemas/package.py
index 60b7d482e171f0..1056f36a105c64 100644
--- a/var/spack/repos/builtin/packages/gsettings-desktop-schemas/package.py
+++ b/var/spack/repos/builtin/packages/gsettings-desktop-schemas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class GsettingsDesktopSchemas(MesonPackage):
homepage = "https://github.com/GNOME/gsettings-desktop-schemas/"
url = "https://github.com/GNOME/gsettings-desktop-schemas/archive/3.38.0.tar.gz"
+ license("LGPL-2.0-or-later")
+
version("3.38.0", sha256="b808bd285ac7176f2e9e3a8763c3913121ab9f109d2988c70e3f1f8e742a630d")
version("3.37.92", sha256="5f5dd0421ed2f3746674b8bb6e0c652784915133c7f2d133339bf5e4140d8d1d")
version("3.37.2", sha256="1dacdfeecfc57468da7c598a01b635f82ecd088e1d78d5aa840e47256026654d")
diff --git a/var/spack/repos/builtin/packages/gsi-ncdiag/package.py b/var/spack/repos/builtin/packages/gsi-ncdiag/package.py
index 58dc16499c9a52..f25498a04acfbd 100644
--- a/var/spack/repos/builtin/packages/gsi-ncdiag/package.py
+++ b/var/spack/repos/builtin/packages/gsi-ncdiag/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gsibec/package.py b/var/spack/repos/builtin/packages/gsibec/package.py
index cf3b99e2b2cb3a..853851ecc10aa3 100644
--- a/var/spack/repos/builtin/packages/gsibec/package.py
+++ b/var/spack/repos/builtin/packages/gsibec/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Gsibec(CMakePackage):
maintainers("mathomp4", "danholdaway")
+ license("Apache-2.0")
+
version("develop", branch="develop")
version("1.1.3", sha256="9cac000562250487c16608e8245d97457cc1663b1793b3833be5a76ebccb4b47")
version("1.1.2", sha256="8bdcdf1663e6071b6ad9e893a76307abc70a6de744fb75a13986e70242993ada")
diff --git a/var/spack/repos/builtin/packages/gsl-lite/package.py b/var/spack/repos/builtin/packages/gsl-lite/package.py
index 8f819f25ed8c96..cd00e0c38f2c3e 100644
--- a/var/spack/repos/builtin/packages/gsl-lite/package.py
+++ b/var/spack/repos/builtin/packages/gsl-lite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class GslLite(CMakePackage):
maintainers("AlexanderRichert-NOAA", "climbfuji", "edwardhartnett", "Hang-Lei-NOAA")
+ license("MIT")
+
version("0.41.0", sha256="4682d8a60260321b92555760be3b9caab60e2a71f95eddbdfb91e557ee93302a")
version("0.40.0", commit="d6c8af99a1d95b3db36f26b4f22dc3bad89952de")
version("0.39.0", commit="d0903fa87ff579c30f608bc363582e6563570342")
diff --git a/var/spack/repos/builtin/packages/gsl/package.py b/var/spack/repos/builtin/packages/gsl/package.py
index 072be62cb488cb..1c4732e1604588 100644
--- a/var/spack/repos/builtin/packages/gsl/package.py
+++ b/var/spack/repos/builtin/packages/gsl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Gsl(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/gsl"
gnu_mirror_path = "gsl/gsl-2.3.tar.gz"
+ license("GPL-3.0-or-later")
+
version("2.7.1", sha256="dcb0fbd43048832b757ff9942691a8dd70026d5da0ff85601e52687f6deeb34b")
version("2.7", sha256="efbbf3785da0e53038be7907500628b466152dbc3c173a87de1b5eba2e23602b")
version("2.6", sha256="b782339fc7a38fe17689cb39966c4d821236c28018b6593ddb6fd59ee40786a8")
diff --git a/var/spack/repos/builtin/packages/gslib/package.py b/var/spack/repos/builtin/packages/gslib/package.py
index fff12c49c4f020..b8658064445fcf 100644
--- a/var/spack/repos/builtin/packages/gslib/package.py
+++ b/var/spack/repos/builtin/packages/gslib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gsoap/package.py b/var/spack/repos/builtin/packages/gsoap/package.py
index f664ee1e13b162..6eface4e36b683 100644
--- a/var/spack/repos/builtin/packages/gsoap/package.py
+++ b/var/spack/repos/builtin/packages/gsoap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gtk-doc/package.py b/var/spack/repos/builtin/packages/gtk-doc/package.py
index ba28f4d7defe06..470836b317ce4c 100644
--- a/var/spack/repos/builtin/packages/gtk-doc/package.py
+++ b/var/spack/repos/builtin/packages/gtk-doc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class GtkDoc(AutotoolsPackage):
homepage = "https://wiki.gnome.org/DocumentationProject/GtkDoc"
url = "https://gitlab.gnome.org/GNOME/gtk-doc/-/archive/1.33.2/gtk-doc-1.33.2.tar.gz"
+ license("GPL-2.0-or-later AND GFDL-1.1-or-later")
+
version("1.33.2", sha256="2d1b0cbd26edfcb54694b2339106a02a81d630a7dedc357461aeb186874cc7c0")
version("1.32", sha256="0890c1f00d4817279be51602e67c4805daf264092adc58f9c04338566e8225ba")
diff --git a/var/spack/repos/builtin/packages/gtkmm/package.py b/var/spack/repos/builtin/packages/gtkmm/package.py
index 22fc0d0541c18b..eeddcc70e59e6f 100644
--- a/var/spack/repos/builtin/packages/gtkmm/package.py
+++ b/var/spack/repos/builtin/packages/gtkmm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Gtkmm(AutotoolsPackage):
homepage = "https://www.gtkmm.org/en/"
url = "https://ftp.acc.umu.se/pub/GNOME/sources/gtkmm/2.16/gtkmm-2.16.0.tar.gz"
+ license("LGPL-2.1-or-later")
+
version("2.19.7", sha256="7cc8d26f9a0956092e61ecfbb029c5d6223cd7e49d4434653446ff190a990957")
version("2.19.6", sha256="d495d4012d49841a4f0a09584e002bc25ef55d7b2782660ecf7a58ed67357ad7")
version("2.19.4", sha256="ade220b0d395cb44215a69623af40a420281bc090ddaefc55350ad48e888fed2")
diff --git a/var/spack/repos/builtin/packages/gtkorvo-atl/package.py b/var/spack/repos/builtin/packages/gtkorvo-atl/package.py
index f345dbba0e7b95..a748baf9b9bef5 100644
--- a/var/spack/repos/builtin/packages/gtkorvo-atl/package.py
+++ b/var/spack/repos/builtin/packages/gtkorvo-atl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gtkorvo-cercs-env/package.py b/var/spack/repos/builtin/packages/gtkorvo-cercs-env/package.py
index 390c109270518f..638202b428e0c3 100644
--- a/var/spack/repos/builtin/packages/gtkorvo-cercs-env/package.py
+++ b/var/spack/repos/builtin/packages/gtkorvo-cercs-env/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gtkorvo-dill/package.py b/var/spack/repos/builtin/packages/gtkorvo-dill/package.py
index 59fdac91dbb6de..0cd813d6e250dd 100644
--- a/var/spack/repos/builtin/packages/gtkorvo-dill/package.py
+++ b/var/spack/repos/builtin/packages/gtkorvo-dill/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gtkorvo-enet/package.py b/var/spack/repos/builtin/packages/gtkorvo-enet/package.py
index deddfd493c0e66..640479d6d5526a 100644
--- a/var/spack/repos/builtin/packages/gtkorvo-enet/package.py
+++ b/var/spack/repos/builtin/packages/gtkorvo-enet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,5 +16,7 @@ class GtkorvoEnet(AutotoolsPackage):
homepage = "https://www.github.com/GTkorvo/enet"
url = "https://github.com/GTkorvo/enet/archive/v1.3.13.tar.gz"
+ license("MIT")
+
version("1.3.14", sha256="d1fda051bdee46ad8cce7c3bb36fb6b7a7a443945f27a280ac104753c29465b0")
version("1.3.13", sha256="ede6e4f03e4cb0c3d93044ace9e8c1818ef4d3ced4aaa70384155769b3c436dc")
diff --git a/var/spack/repos/builtin/packages/gtkplus/package.py b/var/spack/repos/builtin/packages/gtkplus/package.py
index 52aa981d3cde8a..884fe8552e81be 100644
--- a/var/spack/repos/builtin/packages/gtkplus/package.py
+++ b/var/spack/repos/builtin/packages/gtkplus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Gtkplus(MesonPackage):
homepage = "https://www.gtk.org/"
url = "https://download.gnome.org/sources/gtk+/3.24/gtk+-3.24.26.tar.xz"
+ license("LGPL-2.0-or-later")
+
version("3.24.29", sha256="f57ec4ade8f15cab0c23a80dcaee85b876e70a8823d9105f067ce335a8268caa")
version("3.24.26", sha256="2cc1b2dc5cad15d25b6abd115c55ffd8331e8d4677745dd3ce6db725b4fff1e9")
version(
diff --git a/var/spack/repos/builtin/packages/gtksourceview/package.py b/var/spack/repos/builtin/packages/gtksourceview/package.py
index 071749ccfb829b..d9607d34a5263d 100644
--- a/var/spack/repos/builtin/packages/gtksourceview/package.py
+++ b/var/spack/repos/builtin/packages/gtksourceview/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Gtksourceview(AutotoolsPackage):
homepage = "https://projects.gnome.org/gtksourceview"
url = "https://download.gnome.org/sources/gtksourceview/4.2/gtksourceview-4.2.0.tar.xz"
+ license("LGPL-2.1-or-later")
+
version("4.2.0", sha256="c431eb234dc83c7819e58f77dd2af973252c7750da1c9d125ddc94268f94f675")
version("3.24.11", sha256="691b074a37b2a307f7f48edc5b8c7afa7301709be56378ccf9cc9735909077fd")
diff --git a/var/spack/repos/builtin/packages/gts/package.py b/var/spack/repos/builtin/packages/gts/package.py
index eb50d0c416e74c..a5883016d9b5d7 100644
--- a/var/spack/repos/builtin/packages/gts/package.py
+++ b/var/spack/repos/builtin/packages/gts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -24,6 +24,8 @@ class Gts(AutotoolsPackage):
homepage = "http://gts.sourceforge.net/index.html"
url = "http://gts.sourceforge.net/tarballs/gts-snapshot-121130.tar.gz"
+ license("LGPL-2.0-only")
+
version("121130", sha256="c23f72ab74bbf65599f8c0b599d6336fabe1ec2a09c19b70544eeefdc069b73b")
depends_on("glib")
diff --git a/var/spack/repos/builtin/packages/guacamole-client/package.py b/var/spack/repos/builtin/packages/guacamole-client/package.py
index 25577e327dac40..7b1cb8d11cd5f4 100644
--- a/var/spack/repos/builtin/packages/guacamole-client/package.py
+++ b/var/spack/repos/builtin/packages/guacamole-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class GuacamoleClient(MavenPackage):
homepage = "https://guacamole.apache.org/"
url = "https://github.com/apache/guacamole-client/archive/1.2.0.tar.gz"
+ license("Apache-2.0")
+
version("1.2.0", sha256="2327368a32e61cf82032311be79ded4e5eefbc59ac9fb6e0a054b4f49168843e")
depends_on("java@8", type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/guacamole-server/package.py b/var/spack/repos/builtin/packages/guacamole-server/package.py
index f378da05c7ddd1..39f0e19bebb84e 100644
--- a/var/spack/repos/builtin/packages/guacamole-server/package.py
+++ b/var/spack/repos/builtin/packages/guacamole-server/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class GuacamoleServer(AutotoolsPackage):
homepage = "https://guacamole.apache.org/"
url = "https://github.com/apache/guacamole-server/archive/1.1.0.tar.gz"
+ license("GPL-3.0-or-later")
+
version("1.1.0", sha256="d0f0c66ebfa7a4fd6689ae5240f21797b5177945a042388b691b15b8bd5c81a8")
depends_on("autoconf", type="build")
diff --git a/var/spack/repos/builtin/packages/guidance/package.py b/var/spack/repos/builtin/packages/guidance/package.py
index ffd565e21f34c8..759ffdae121785 100644
--- a/var/spack/repos/builtin/packages/guidance/package.py
+++ b/var/spack/repos/builtin/packages/guidance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/guile/package.py b/var/spack/repos/builtin/packages/guile/package.py
index 66be676f89812c..2103145fef9362 100644
--- a/var/spack/repos/builtin/packages/guile/package.py
+++ b/var/spack/repos/builtin/packages/guile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Guile(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/guile/"
gnu_mirror_path = "guile/guile-2.2.0.tar.gz"
+ license("LGPL-3.0-or-later AND GPL-3.0-or-later")
+
version("2.2.6", sha256="08c0e7487777740b61cdd97949b69e8a5e2997d8c2fe6c7e175819eb18444506")
version("2.2.5", sha256="c3c7a2f6ae0d8321a240c7ebc532a1d47af8c63214157a73789e2b2305b4c927")
version("2.2.4", sha256="33b904c0bf4e48e156f3fb1d0e6b0392033bd610c6c9d9a0410c6e0ea96a3e5c")
diff --git a/var/spack/repos/builtin/packages/gunrock/package.py b/var/spack/repos/builtin/packages/gunrock/package.py
index 0c192654b4dd82..19813e6d199fb1 100644
--- a/var/spack/repos/builtin/packages/gunrock/package.py
+++ b/var/spack/repos/builtin/packages/gunrock/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Gunrock(CMakePackage, CudaPackage):
homepage = "https://gunrock.github.io/docs/"
git = "https://github.com/gunrock/gunrock.git"
+ license("Apache-2.0")
+
version("master", submodules=True)
version("1.2", submodules=True, tag="v1.2", commit="5ee3df50c45f702eb247ef1abcea7a490b60b2ea")
# v1.1 build is broken. See:
diff --git a/var/spack/repos/builtin/packages/gurobi/package.py b/var/spack/repos/builtin/packages/gurobi/package.py
index b69e311163903b..c0fa33639df9f2 100644
--- a/var/spack/repos/builtin/packages/gurobi/package.py
+++ b/var/spack/repos/builtin/packages/gurobi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/gxsview/package.py b/var/spack/repos/builtin/packages/gxsview/package.py
index d38daa889a3c28..ea45246d1c6f6a 100644
--- a/var/spack/repos/builtin/packages/gxsview/package.py
+++ b/var/spack/repos/builtin/packages/gxsview/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -20,6 +20,8 @@ class Gxsview(QMakePackage):
# Support email for questions ohnishi@m.mpat.go.jp
maintainers("cessenat")
+ license("LGPL-3.0-only")
+
version(
"2023.05.29", sha256="1e768fd7afd22198b7f73adeb42f4ccf7e0ff68996a3843b1ea138225c4c1da3"
)
diff --git a/var/spack/repos/builtin/packages/gzip/package.py b/var/spack/repos/builtin/packages/gzip/package.py
index 76a06818251e37..11d8f898450531 100644
--- a/var/spack/repos/builtin/packages/gzip/package.py
+++ b/var/spack/repos/builtin/packages/gzip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,9 +12,24 @@ class Gzip(AutotoolsPackage):
homepage = "https://www.gnu.org/software/gzip/"
url = "https://ftp.gnu.org/gnu/gzip/gzip-1.10.tar.gz"
- version("1.12", sha256="5b4fb14d38314e09f2fc8a1c510e7cd540a3ea0e3eb9b0420046b82c3bf41085")
- version("1.11", sha256="3e8a0e0c45bad3009341dce17d71536c4c655d9313039021ce7554a26cd50ed9")
- version("1.10", sha256="c91f74430bf7bc20402e1f657d0b252cb80aa66ba333a25704512af346633c68")
+ license("GPL-3.0-or-later")
+
+ version("1.13", sha256="20fc818aeebae87cdbf209d35141ad9d3cf312b35a5e6be61bfcfbf9eddd212a")
+ version(
+ "1.12",
+ sha256="5b4fb14d38314e09f2fc8a1c510e7cd540a3ea0e3eb9b0420046b82c3bf41085",
+ deprecated=True,
+ )
+ version(
+ "1.11",
+ sha256="3e8a0e0c45bad3009341dce17d71536c4c655d9313039021ce7554a26cd50ed9",
+ deprecated=True,
+ )
+ version(
+ "1.10",
+ sha256="c91f74430bf7bc20402e1f657d0b252cb80aa66ba333a25704512af346633c68",
+ deprecated=True,
+ )
# Gzip makes a recursive symlink if built in-source
build_directory = "spack-build"
diff --git a/var/spack/repos/builtin/packages/h2database/package.py b/var/spack/repos/builtin/packages/h2database/package.py
index 7fb00bf0e5355b..7752f002812ad1 100644
--- a/var/spack/repos/builtin/packages/h2database/package.py
+++ b/var/spack/repos/builtin/packages/h2database/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/h5bench/package.py b/var/spack/repos/builtin/packages/h5bench/package.py
index 9457040c9564fc..c367bbaf8ebae7 100644
--- a/var/spack/repos/builtin/packages/h5bench/package.py
+++ b/var/spack/repos/builtin/packages/h5bench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class H5bench(CMakePackage):
tags = ["e4s"]
+ license("BSD-3-Clause-LBNL")
+
version("latest", branch="master", submodules=True)
version("develop", branch="develop", submodules=True)
diff --git a/var/spack/repos/builtin/packages/h5cpp/package.py b/var/spack/repos/builtin/packages/h5cpp/package.py
index c652578d92c074..9d793f32ebf367 100644
--- a/var/spack/repos/builtin/packages/h5cpp/package.py
+++ b/var/spack/repos/builtin/packages/h5cpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class H5cpp(CMakePackage):
maintainers("eschnett")
+ license("BSD-3-Clause")
+
version("master", branch="master")
version("1.10.4-6", sha256="4fbc8e777dc78a37ec2fe8c7b6a47114080ffe587f083e83a2046b5e794aef93")
version("1.10.4-5", sha256="661ccc4d76e081afc73df71ef11d027837d92dd1089185f3650afcaec9d418ec")
diff --git a/var/spack/repos/builtin/packages/h5hut/package.py b/var/spack/repos/builtin/packages/h5hut/package.py
index dfb41d0f5b32a5..dd1013bac72fc3 100644
--- a/var/spack/repos/builtin/packages/h5hut/package.py
+++ b/var/spack/repos/builtin/packages/h5hut/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/h5part/package.py b/var/spack/repos/builtin/packages/h5part/package.py
index 6e58621f093543..baf07ef49c97dd 100644
--- a/var/spack/repos/builtin/packages/h5part/package.py
+++ b/var/spack/repos/builtin/packages/h5part/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/h5utils/package.py b/var/spack/repos/builtin/packages/h5utils/package.py
index 4752a74879a4f3..d2d583a8f67b08 100644
--- a/var/spack/repos/builtin/packages/h5utils/package.py
+++ b/var/spack/repos/builtin/packages/h5utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class H5utils(AutotoolsPackage):
homepage = "http://ab-initio.mit.edu/wiki/index.php/H5utils"
url = "https://github.com/NanoComp/h5utils/releases/download/1.13.1/h5utils-1.13.1.tar.gz"
+ license("GPL-2.0-only")
+
version("1.13.1", sha256="c5a76f064d6daa3e65583dce2b61202510e67cf6590f076af9a8aa72511d7d65")
version(
"1.12.1",
diff --git a/var/spack/repos/builtin/packages/h5z-zfp/Makefile.0.7.0.patch b/var/spack/repos/builtin/packages/h5z-zfp/Makefile.0.7.0.patch
deleted file mode 100644
index 2f82ac7c5b6817..00000000000000
--- a/var/spack/repos/builtin/packages/h5z-zfp/Makefile.0.7.0.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- spack-src/src/Makefile.orig 2022-02-02 17:42:03.000000000 +0900
-+++ spack-src/src/Makefile 2022-02-02 17:42:34.000000000 +0900
-@@ -54,7 +54,7 @@
- $(INSTALL) libh5zzfp.a $(PREFIX)/lib
- $(INSTALL) -m 644 H5Zzfp.h H5Zzfp_lib.h H5Zzfp_plugin.h H5Zzfp_props.h $(PREFIX)/include
- ifneq ($(FC),)
-- $(INSTALL) -m 644 H5Zzfp_props_f.mod $(PREFIX)/include
-+ $(INSTALL) -m 644 *.[mM][oO][dD] $(PREFIX)/include
- endif
-
- clean:
diff --git a/var/spack/repos/builtin/packages/h5z-zfp/config.make.0.7.0.patch b/var/spack/repos/builtin/packages/h5z-zfp/config.make.0.7.0.patch
deleted file mode 100644
index e163292acc690b..00000000000000
--- a/var/spack/repos/builtin/packages/h5z-zfp/config.make.0.7.0.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- spack-src/config.make.orig 2017-06-09 21:15:21.000000000 +0900
-+++ spack-src/config.make 2022-02-02 17:04:31.000000000 +0900
-@@ -16,6 +16,8 @@
- H5Z_ZFP_BASE := ../src
- else ifeq ($(PWD_BASE),H5Z-ZFP)
- H5Z_ZFP_BASE := ./src
-+else
-+ H5Z_ZFP_BASE := ./src
- endif
- H5Z_ZFP_PLUGIN := $(H5Z_ZFP_BASE)/plugin
- H5Z_ZFP_VERSINFO := $(shell grep '^\#define H5Z_FILTER_ZFP_VERSION_[MP]' $(H5Z_ZFP_BASE)/H5Zzfp_plugin.h | cut -d' ' -f3 | tr '\n' '.' | cut -d'.' -f-3 2>/dev/null)
diff --git a/var/spack/repos/builtin/packages/h5z-zfp/config.make.patch b/var/spack/repos/builtin/packages/h5z-zfp/config.make.patch
deleted file mode 100644
index 4879a1b755cb96..00000000000000
--- a/var/spack/repos/builtin/packages/h5z-zfp/config.make.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/config.make b/config.make
-index d782bd1..1c53ab8 100644
---- a/config.make
-+++ b/config.make
-@@ -128,18 +128,37 @@ ZFP_INC = $(ZFP_HOME)/inc
- else
- ZFP_INC = $(ZFP_HOME)/include
- endif
-+ifeq ($(wildcard $(ZFP_HOME)/lib),)
-+ZFP_LIB = $(ZFP_HOME)/lib64
-+else
- ZFP_LIB = $(ZFP_HOME)/lib
-+endif
-+
-+# Check if specified individually the HDF5 include directory,
-+# library directory and bin directory separated by commas, i.e. HDF5_HOME=INC,LIB,BIN
-
--HDF5_INC = $(HDF5_HOME)/include
--HDF5_LIB = $(HDF5_HOME)/lib
--HDF5_BIN = $(HDF5_HOME)/bin
-+ifneq (,$(findstring ",",$(HDF5_HOME)))
-+ HDF5_INC = $(shell echo $(HDF5_HOME) | awk -F'[,]' '{print $$1}')
-+ HDF5_LIB = $(shell echo $(HDF5_HOME) | awk -F'[,]' '{print $$2}')
-+ HDF5_BIN = $(shell echo $(HDF5_HOME) | awk -F'[,]' '{print $$3}')
-+ MAKEVARS =
-+else
-+ HDF5_INC = $(HDF5_HOME)/include
-+ ifeq ($(wildcard $(HDF5_HOME)/lib),)
-+ HDF5_LIB = $(HDF5_HOME)/lib64
-+ else
-+ HDF5_LIB = $(HDF5_HOME)/lib
-+ endif
-+ HDF5_BIN = $(HDF5_HOME)/bin
-+ MAKEVARS = HDF5_HOME=$(HDF5_HOME)
-+endif
-
- ifeq ($(PREFIX),)
- PREFIX := $(shell pwd)/install
- endif
- INSTALL ?= install
-
--MAKEVARS = ZFP_HOME=$(ZFP_HOME) HDF5_HOME=$(HDF5_HOME) PREFIX=$(PREFIX)
-+MAKEVARS += ZFP_HOME=$(ZFP_HOME) PREFIX=$(PREFIX)
-
- .SUFFIXES:
- .SUFFIXES: .c .F90 .h .o .mod
diff --git a/var/spack/repos/builtin/packages/h5z-zfp/fj.patch b/var/spack/repos/builtin/packages/h5z-zfp/fj.patch
deleted file mode 100644
index fd3ff5c76d06c7..00000000000000
--- a/var/spack/repos/builtin/packages/h5z-zfp/fj.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- spack-src/config.make.org 2022-02-01 18:43:23.000000000 +0900
-+++ spack-src/config.make 2022-02-01 18:42:54.000000000 +0900
-@@ -106,6 +106,11 @@
- SOEXT ?= so
- SHFLAG ?= -qmkshrobj
- PREPATH = -Wl,-R,
-+else ifneq ($(findstring fcc, $(CC)),)
-+ CFLAGS += -KPIC
-+ SOEXT ?= so
-+ SHFLAG ?= -shared
-+ PREPATH = -Wl,-rpath,
- endif
-
- ifneq ($(findstring gfortran, $(FC)),)
-@@ -118,6 +123,8 @@
- FCFLAGS += -qpic
- else ifneq ($(findstring bgxlf_r, $(FC)),)
- FCFLAGS += -qpic
-+else ifneq ($(findstring frt, $(FC)),)
-+ FCFLAGS += -KPIC
- else ifneq ($(findstring f77, $(FC)),)
- # some makefile versions set FC=f77 if FC is not set
- FC =
diff --git a/var/spack/repos/builtin/packages/h5z-zfp/package.py b/var/spack/repos/builtin/packages/h5z-zfp/package.py
index f90a244ed8f832..a9c1f86974b19f 100644
--- a/var/spack/repos/builtin/packages/h5z-zfp/package.py
+++ b/var/spack/repos/builtin/packages/h5z-zfp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -6,7 +6,7 @@
from spack.package import *
-class H5zZfp(MakefilePackage):
+class H5zZfp(CMakePackage):
"""A highly flexible floating point and integer compression plugin for the
HDF5 library using ZFP compression."""
@@ -19,9 +19,6 @@ class H5zZfp(MakefilePackage):
version("develop", branch="master")
version("1.1.1", sha256="921af7b9d1c8c46c036b46544f2785f69d405c0701abe1c1ce3aca2bd5899171")
version("1.1.0", sha256="48a81e69d1f3b61d9a1eb07e868164fadf3b88690ec930efd849f5889681a893")
- version("1.0.1", sha256="b9ed91dab8e2ef82dc6706b4242c807fb352875e3b21c217dd00782dd1a22b24")
- version("0.8.0", sha256="a5eb089191369a5e929c51ec9e5da107afaee39c6ab3b7ad693c454319ab9217")
- version("0.7.0", sha256="f728b0bcb9e9cf8bafe05909ab02fec39415635d275e98b661176f69d34f87b3")
variant("fortran", default=True, description="Enable Fortran support")
@@ -30,16 +27,6 @@ class H5zZfp(MakefilePackage):
depends_on("mpi", when="^hdf5+mpi")
depends_on("zfp bsws=8")
- patch(
- "https://github.com/LLNL/H5Z-ZFP/commit/983a1870cefff5fdb643898a14eda855c2c231e4.patch?full_index=1",
- sha256="07a53b8b0d4c1df62a3f9f21b30ad0eb90f26b38eb6cacc0de6482fd8f5daea2",
- when="@1.0.1",
- )
- patch("config.make.patch", when="@0.7.0:0.8.0")
- patch("config.make.0.7.0.patch", when="@0.7.0")
- patch("Makefile.0.7.0.patch", when="@0.7.0")
- patch("fj.patch", when="@0.7.0: %fj")
-
@property
def make_defs(self):
cc = spack_cc
diff --git a/var/spack/repos/builtin/packages/haccabana/package.py b/var/spack/repos/builtin/packages/haccabana/package.py
index 7259308786cd17..bce59ef2ba663c 100644
--- a/var/spack/repos/builtin/packages/haccabana/package.py
+++ b/var/spack/repos/builtin/packages/haccabana/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -19,6 +19,8 @@ class Haccabana(CMakePackage):
tags = ["proxy-app", "ecp-proxy-app"]
+ license("BSD-3-Clause")
+
version("master", branch="master")
variant("shared", default=True, description="Build shared libraries")
diff --git a/var/spack/repos/builtin/packages/hacckernels/package.py b/var/spack/repos/builtin/packages/hacckernels/package.py
index a16e1b7a11ed5d..01bae2a3866593 100644
--- a/var/spack/repos/builtin/packages/hacckernels/package.py
+++ b/var/spack/repos/builtin/packages/hacckernels/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Hacckernels(CMakePackage):
tags = ["proxy-app"]
+ license("BSD-3-Clause")
+
version("develop", branch="master")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/hackrf-host/package.py b/var/spack/repos/builtin/packages/hackrf-host/package.py
index db5e129b861fd0..6a02fa73a262a6 100644
--- a/var/spack/repos/builtin/packages/hackrf-host/package.py
+++ b/var/spack/repos/builtin/packages/hackrf-host/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class HackrfHost(CMakePackage):
root_cmakelists_dir = "host"
+ license("GPL-2.0-only")
+
version("2018.01.1", sha256="84dbb5536d3aa5bd6b25d50df78d591e6c3431d752de051a17f4cb87b7963ec3")
depends_on("cmake@2.8.12:", type="build")
diff --git a/var/spack/repos/builtin/packages/hadoop-xrootd/package.py b/var/spack/repos/builtin/packages/hadoop-xrootd/package.py
index b67743397efdd6..439301c38ecf87 100644
--- a/var/spack/repos/builtin/packages/hadoop-xrootd/package.py
+++ b/var/spack/repos/builtin/packages/hadoop-xrootd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class HadoopXrootd(MavenPackage):
maintainers("haralmha")
+ license("Apache-2.0")
+
version("1.0.7", sha256="9a129dc14b3dc139aa4da7543f6392a5c80b41fea6bb9f6cd27db5acf6f5471f")
depends_on("hadoop")
diff --git a/var/spack/repos/builtin/packages/hadoop/package.py b/var/spack/repos/builtin/packages/hadoop/package.py
index 2a5c11b3150a19..d3d1212f45a0dd 100644
--- a/var/spack/repos/builtin/packages/hadoop/package.py
+++ b/var/spack/repos/builtin/packages/hadoop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Hadoop(Package):
homepage = "https://hadoop.apache.org/"
url = "https://archive.apache.org/dist/hadoop/common/hadoop-3.3.2/hadoop-3.3.2.tar.gz"
+ license("Apache-2.0")
+
version("3.3.2", sha256="b341587495b12eec0b244b517f21df88eb46ef634dc7dc3e5969455b80ce2ce5")
version("3.3.0", sha256="ea1a0f0afcdfb9b6b9d261cdce5a99023d7e8f72d26409e87f69bda65c663688")
version("3.2.2", sha256="97e73b46c3972cd3c40c2295bd9488843c24e8503c36e7c57f6e6ecc4e12b8c3")
diff --git a/var/spack/repos/builtin/packages/hal/package.py b/var/spack/repos/builtin/packages/hal/package.py
index 78d214df10f0b8..06461380fb5b73 100644
--- a/var/spack/repos/builtin/packages/hal/package.py
+++ b/var/spack/repos/builtin/packages/hal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/half/package.py b/var/spack/repos/builtin/packages/half/package.py
index 784dfe7043b3d9..4a33bf6d6aaa3a 100644
--- a/var/spack/repos/builtin/packages/half/package.py
+++ b/var/spack/repos/builtin/packages/half/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Half(Package):
maintainers("bvanessen")
+ license("MIT")
+
version("2.1.0", sha256="ad1788afe0300fa2b02b0d1df128d857f021f92ccf7c8bddd07812685fa07a25")
version("1.12.0", sha256="cdd70d3bf3fe091b688e7ab3f48471c881a197d2c186c95cca8bf156961fb41c")
patch("f16fix.patch", when="@2.1.0")
diff --git a/var/spack/repos/builtin/packages/halide/package.py b/var/spack/repos/builtin/packages/halide/package.py
index f7021ed9ad6cc6..282fda87331a8e 100644
--- a/var/spack/repos/builtin/packages/halide/package.py
+++ b/var/spack/repos/builtin/packages/halide/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,9 @@ class Halide(CMakePackage, PythonExtension):
homepage = "https://halide-lang.org/"
url = "https://github.com/halide/Halide/archive/refs/tags/v14.0.0.tar.gz"
git = "https://github.com/halide/Halide.git"
+
+ license("MIT")
+
maintainers("wraith1995")
version("main", branch="main")
version("15.0.0", sha256="6680424f80c5731a85d977c06327096afe5af31da3667e91d4d36a25fabdda15")
@@ -105,7 +108,6 @@ def cmake_args(self):
if "+python" in spec:
args += [
- self.define("Python3_EXECUTABLE", spec["python"].command.path),
self.define("PYBIND11_USE_FETCHCONTENT", False),
self.define("Halide_INSTALL_PYTHONDIR", python_platlib),
]
diff --git a/var/spack/repos/builtin/packages/hama/package.py b/var/spack/repos/builtin/packages/hama/package.py
index bacadc23672cdc..123e66377ad1db 100644
--- a/var/spack/repos/builtin/packages/hama/package.py
+++ b/var/spack/repos/builtin/packages/hama/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Hama(Package):
homepage = "https://www-eu.apache.org"
url = "https://www-eu.apache.org/dist/hama/hama-0.7.1/hama-dist-0.7.1.tar.gz"
+ license("Apache-2.0")
+
version("0.7.1", sha256="c7466c2a70a949609a501e868f6a288b7142725c407e24649ea6f7121632bc89")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/hapcut2/package.py b/var/spack/repos/builtin/packages/hapcut2/package.py
index c025fb3df8fc7c..620f297cd66185 100644
--- a/var/spack/repos/builtin/packages/hapcut2/package.py
+++ b/var/spack/repos/builtin/packages/hapcut2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Hapcut2(MakefilePackage):
git = "https://github.com/vibansal/HapCUT2.git"
maintainers("snehring")
+ license("BSD-2-Clause")
+
version("v1.3.1", commit="c6481d5fd0618dc3e82b2eb8c2b4835d9a4f6da7")
version(
"2017-07-10",
diff --git a/var/spack/repos/builtin/packages/hapdip/package.py b/var/spack/repos/builtin/packages/hapdip/package.py
index 718c716ca07007..e590cd7227fe88 100644
--- a/var/spack/repos/builtin/packages/hapdip/package.py
+++ b/var/spack/repos/builtin/packages/hapdip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/haploview/package.py b/var/spack/repos/builtin/packages/haploview/package.py
index d0142f04e28bb8..3e299c474844a6 100644
--- a/var/spack/repos/builtin/packages/haploview/package.py
+++ b/var/spack/repos/builtin/packages/haploview/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/haproxy/package.py b/var/spack/repos/builtin/packages/haproxy/package.py
index 0fa43e730060d7..b887c3d090e8e2 100644
--- a/var/spack/repos/builtin/packages/haproxy/package.py
+++ b/var/spack/repos/builtin/packages/haproxy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/hardlink/package.py b/var/spack/repos/builtin/packages/hardlink/package.py
index 96e5eae627a012..66e0cbbf0b3b09 100644
--- a/var/spack/repos/builtin/packages/hardlink/package.py
+++ b/var/spack/repos/builtin/packages/hardlink/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/harfbuzz/package.py b/var/spack/repos/builtin/packages/harfbuzz/package.py
index fa637bd4763c9d..f853baa2491a12 100644
--- a/var/spack/repos/builtin/packages/harfbuzz/package.py
+++ b/var/spack/repos/builtin/packages/harfbuzz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Harfbuzz(MesonPackage, AutotoolsPackage):
conditional("autotools", when="@:2.9"), conditional("meson", when="@3:"), default="meson"
)
+ license("MIT")
+
version("7.3.0", sha256="20770789749ac9ba846df33983dbda22db836c70d9f5d050cb9aa5347094a8fb")
version("7.2.0", sha256="fc5560c807eae0efd5f95b5aa4c65800c7a8eed6642008a6b1e7e3ffff7873cc")
version("6.0.0", sha256="1d1010a1751d076d5291e433c138502a794d679a7498d1268ee21e2d4a140eb4")
diff --git a/var/spack/repos/builtin/packages/harminv/package.py b/var/spack/repos/builtin/packages/harminv/package.py
index 8c3648f84f0c13..3bff34a9197da9 100644
--- a/var/spack/repos/builtin/packages/harminv/package.py
+++ b/var/spack/repos/builtin/packages/harminv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Harminv(AutotoolsPackage):
homepage = "https://github.com/NanoComp/harminv"
url = "https://github.com/NanoComp/harminv/releases/download/v1.4.2/harminv-1.4.2.tar.gz"
+ license("GPL-2.0-or-later")
+
version("1.4.2", sha256="5a9a1bf710972442f065d0d62c62d0c4ec3da4a3696d7160a35602c9470bc7a2")
version("1.4.1", sha256="e1b923c508a565f230aac04e3feea23b888b47d8e19b08816a97ee4444233670")
diff --git a/var/spack/repos/builtin/packages/hashcat/package.py b/var/spack/repos/builtin/packages/hashcat/package.py
index 456f31b3feca30..56d615a9cca9a8 100644
--- a/var/spack/repos/builtin/packages/hashcat/package.py
+++ b/var/spack/repos/builtin/packages/hashcat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Hashcat(MakefilePackage):
homepage = "https://hashcat.net/hashcat/"
url = "https://github.com/hashcat/hashcat/archive/v6.1.1.tar.gz"
+ license("MIT")
+
version("6.2.6", sha256="b25e1077bcf34908cc8f18c1a69a2ec98b047b2cbcf0f51144dcf3ba1e0b7b2a")
version("6.1.1", sha256="39c140bbb3c0bdb1564bfa9b9a1cff49115a42f4c9c19e9b066b617aea309f80")
version("6.1.0", sha256="916f92434e3b36a126be1d1247a95cd3b32b4d814604960a2ca325d4cc0542d1")
diff --git a/var/spack/repos/builtin/packages/haveged/package.py b/var/spack/repos/builtin/packages/haveged/package.py
index fd983d0d2f68c8..5c806639799e9a 100644
--- a/var/spack/repos/builtin/packages/haveged/package.py
+++ b/var/spack/repos/builtin/packages/haveged/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,4 +12,6 @@ class Haveged(AutotoolsPackage):
homepage = "https://github.com/jirka-h/haveged"
url = "https://github.com/jirka-h/haveged/archive/v1.9.13/haveged-1.9.13.tar.gz"
+ license("GPL-3.0-or-later")
+
version("1.9.13", sha256="d17bd22fa1745daca5ac72e014ed3b0fe5720da4c115953124b1bf2a0aa2b04b")
diff --git a/var/spack/repos/builtin/packages/hazelcast/package.py b/var/spack/repos/builtin/packages/hazelcast/package.py
index bc6ad9b4eac05d..60eb0b1018463e 100644
--- a/var/spack/repos/builtin/packages/hazelcast/package.py
+++ b/var/spack/repos/builtin/packages/hazelcast/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Hazelcast(MavenPackage):
homepage = "http://www.hazelcast.com/"
url = "https://github.com/hazelcast/hazelcast/archive/v3.12.8.tar.gz"
+ license("Apache-2.0")
+
version("5.2.3", sha256="026c213d3bb520b6c44587ae2a67eca50b9a5a0fc56d2cdedfb2c09c7858a11f")
version("4.0.2", sha256="4f01682583ae6603365ac7a24c568d7598cc3c1cbd736e5c6ed98bd75e39ffa3")
version("4.0.1", sha256="c9c7d5cbcf70c5e1eb72890df2b4104639f7543f11c6ac5d3e80cd2d4a0d2181")
diff --git a/var/spack/repos/builtin/packages/hbase/package.py b/var/spack/repos/builtin/packages/hbase/package.py
index 78281d2090a03d..96c68e27d89dd2 100644
--- a/var/spack/repos/builtin/packages/hbase/package.py
+++ b/var/spack/repos/builtin/packages/hbase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Hbase(Package):
list_url = "https://archive.apache.org/dist/hbase"
list_depth = 1
+ license("Apache-2.0")
+
version("2.5.4", sha256="ffb929d1ffcaf0309e1617833f3b36645a9c9d9c10b47d6baccc7e50c6d0ed33")
version("2.5.3", sha256="874f239c341a6a4a646051c79fda9e838242481b70463bf8daa28ba7239576c2")
version("2.4.9", sha256="ed282a165fe0910b27d143f3ea21d552110bc155fd5456250a05dc51b0f0b6bd")
diff --git a/var/spack/repos/builtin/packages/hbm-dramsim2/package.py b/var/spack/repos/builtin/packages/hbm-dramsim2/package.py
index 7975093cca46b4..5fff62e4c0ee25 100644
--- a/var/spack/repos/builtin/packages/hbm-dramsim2/package.py
+++ b/var/spack/repos/builtin/packages/hbm-dramsim2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/hc/package.py b/var/spack/repos/builtin/packages/hc/package.py
index 454889bd5107d3..9538391912e339 100644
--- a/var/spack/repos/builtin/packages/hc/package.py
+++ b/var/spack/repos/builtin/packages/hc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Hc(MakefilePackage):
homepage = "https://geodynamics.org/cig/software/hc/"
url = "https://geodynamics.org/cig/software/hc/hc-1.0.7.tar.gz"
+ license("GPL-2.0-only")
+
version("1.0.7", sha256="7499ea76ac4739a9c0941bd57d124fb681fd387c8d716ebb358e6af3395103ed")
depends_on("gmt@4.2.1:4")
diff --git a/var/spack/repos/builtin/packages/hcoll/package.py b/var/spack/repos/builtin/packages/hcoll/package.py
index b9f666c56e7288..53ff7cc51b2895 100644
--- a/var/spack/repos/builtin/packages/hcoll/package.py
+++ b/var/spack/repos/builtin/packages/hcoll/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/hdf-eos2/package.py b/var/spack/repos/builtin/packages/hdf-eos2/package.py
index e06e4d3684cdf5..886e2ade976619 100644
--- a/var/spack/repos/builtin/packages/hdf-eos2/package.py
+++ b/var/spack/repos/builtin/packages/hdf-eos2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/hdf-eos5/package.py b/var/spack/repos/builtin/packages/hdf-eos5/package.py
index 258291ec3a4d54..fd0d6147ef10fe 100644
--- a/var/spack/repos/builtin/packages/hdf-eos5/package.py
+++ b/var/spack/repos/builtin/packages/hdf-eos5/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/hdf/package.py b/var/spack/repos/builtin/packages/hdf/package.py
index 4adb083fc1e8b7..ec022efed06bcc 100644
--- a/var/spack/repos/builtin/packages/hdf/package.py
+++ b/var/spack/repos/builtin/packages/hdf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/hdf5-blosc/package.py b/var/spack/repos/builtin/packages/hdf5-blosc/package.py
index ef072a98a09c8e..d99e9bbd3aebb5 100644
--- a/var/spack/repos/builtin/packages/hdf5-blosc/package.py
+++ b/var/spack/repos/builtin/packages/hdf5-blosc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -32,6 +32,8 @@ class Hdf5Blosc(Package):
homepage = "https://github.com/Blosc/hdf5-blosc"
git = "https://github.com/Blosc/hdf5-blosc.git"
+ license("MIT")
+
version("master", branch="master")
depends_on("c-blosc")
diff --git a/var/spack/repos/builtin/packages/hdf5-vfd-gds/package.py b/var/spack/repos/builtin/packages/hdf5-vfd-gds/package.py
index 8bcefb47dc6cfc..28ab546bd4773c 100644
--- a/var/spack/repos/builtin/packages/hdf5-vfd-gds/package.py
+++ b/var/spack/repos/builtin/packages/hdf5-vfd-gds/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Hdf5VfdGds(CMakePackage, CudaPackage):
git = "https://github.com/hpc-io/vfd-gds.git"
maintainers("hyoklee", "lrknox")
+ license("BSD-3-Clause-LBNL")
+
# Versions
version("master", branch="master")
version("1.0.2", sha256="f7df64ff62e057b525bc30ed6534f9c0752e52bd58b65f7c147878d6c68105ae")
diff --git a/var/spack/repos/builtin/packages/hdf5-vol-async/package.py b/var/spack/repos/builtin/packages/hdf5-vol-async/package.py
index ab34a7f0b1a148..fd94f588d587d8 100644
--- a/var/spack/repos/builtin/packages/hdf5-vol-async/package.py
+++ b/var/spack/repos/builtin/packages/hdf5-vol-async/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,8 @@ class Hdf5VolAsync(CMakePackage):
tags = ["e4s"]
+ license("BSD-3-Clause-LBNL")
+
version("develop", branch="develop")
version("1.7", tag="v1.7", commit="70a22cf9863a7c1386d97be865342deb751ca501")
version("1.6", tag="v1.6", commit="f3406d62ec055cdcfe077979a1068bd102c598a5")
diff --git a/var/spack/repos/builtin/packages/hdf5-vol-cache/package.py b/var/spack/repos/builtin/packages/hdf5-vol-cache/package.py
index fd9977b3f871f0..e5f086b88a7f1c 100644
--- a/var/spack/repos/builtin/packages/hdf5-vol-cache/package.py
+++ b/var/spack/repos/builtin/packages/hdf5-vol-cache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Hdf5VolCache(CMakePackage):
maintainers("hyoklee", "lrknox")
+ license("BSD-3-Clause")
+
version("default", branch="develop")
version("v1.1", tag="v1.1", commit="d886a17a381990b5949d95f5299461c39d7ac2bc")
version("v1.0", tag="v1.0", commit="a9b9704e74fa24af50b2a3bd0d63a40a69bde8fe")
diff --git a/var/spack/repos/builtin/packages/hdf5-vol-daos/package.py b/var/spack/repos/builtin/packages/hdf5-vol-daos/package.py
index 22d648fd038649..6fe945bb024187 100644
--- a/var/spack/repos/builtin/packages/hdf5-vol-daos/package.py
+++ b/var/spack/repos/builtin/packages/hdf5-vol-daos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Hdf5VolDaos(CMakePackage):
maintainers("hyoklee", "soumagne")
+ license("BSD-3-Clause")
+
version("master", branch="master", submodules=True)
version("1.2.0", sha256="669c1443605068f24c033783ef72619afcec4844902b3e0bffa19ddeea39779f")
diff --git a/var/spack/repos/builtin/packages/hdf5-vol-external-passthrough/package.py b/var/spack/repos/builtin/packages/hdf5-vol-external-passthrough/package.py
index 12490e38e6a144..e7892a705d37fa 100644
--- a/var/spack/repos/builtin/packages/hdf5-vol-external-passthrough/package.py
+++ b/var/spack/repos/builtin/packages/hdf5-vol-external-passthrough/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/hdf5-vol-log/package.py b/var/spack/repos/builtin/packages/hdf5-vol-log/package.py
index fa1718d09168ea..3864e6ec3c5a5f 100644
--- a/var/spack/repos/builtin/packages/hdf5-vol-log/package.py
+++ b/var/spack/repos/builtin/packages/hdf5-vol-log/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py
index 210c9b08fea64f..c9a720152dc742 100644
--- a/var/spack/repos/builtin/packages/hdf5/package.py
+++ b/var/spack/repos/builtin/packages/hdf5/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -31,6 +31,8 @@ class Hdf5(CMakePackage):
test_requires_compiler = True
+ license("custom")
+
# The 'develop' version is renamed so that we could uninstall (or patch) it
# without affecting other develop version.
version("develop-1.15", branch="develop")
@@ -46,167 +48,47 @@ class Hdf5(CMakePackage):
sha256="09cdb287aa7a89148c1638dd20891fdbae08102cf433ef128fd345338aa237c7",
preferred=True,
)
- version(
- "1.14.2",
- sha256="1c342e634008284a8c2794c8e7608e2eaf26d01d445fb3dfd7f33cb2fb51ac53",
- preferred=True,
- )
- version(
- "1.14.1-2",
- sha256="cbe93f275d5231df28ced9549253793e40cd2b555e3d288df09d7b89a9967b07",
- preferred=True,
- )
- version(
- "1.14.0",
- sha256="a571cc83efda62e1a51a0a912dd916d01895801c5025af91669484a1575a6ef4",
- preferred=True,
- )
- version(
- "1.12.2",
- sha256="2a89af03d56ce7502dcae18232c241281ad1773561ec00c0f0e8ee2463910f14",
- preferred=True,
- )
- version(
- "1.12.1",
- sha256="79c66ff67e666665369396e9c90b32e238e501f345afd2234186bfb8331081ca",
- preferred=True,
- )
- version(
- "1.12.0",
- sha256="a62dcb276658cb78e6795dd29bf926ed7a9bc4edf6e77025cd2c689a8f97c17a",
- preferred=True,
- )
- version(
- "1.10.11",
- sha256="341684c5c0976b8c7e6951735a400275a90693604464cac73e9f323c696fc79c",
- preferred=True,
- )
- version(
- "1.10.10",
- sha256="a6877ab7bd5d769d2d68618fdb54beb50263dcc2a8c157fe7e2186925cdb02db",
- preferred=True,
- )
- version(
- "1.10.9",
- sha256="f5b77f59b705a755a5a223372d0222c7bc408fe8db6fa8d9d7ecf8bce291b8dd",
- preferred=True,
- )
- version(
- "1.10.8",
- sha256="d341b80d380dd763753a0ebe22915e11e87aac4e44a084a850646ff934d19c80",
- preferred=True,
- )
- version(
- "1.10.7",
- sha256="7a1a0a54371275ce2dfc5cd093775bb025c365846512961e7e5ceaecb437ef15",
- preferred=True,
- )
- version(
- "1.10.6",
- sha256="5f9a3ee85db4ea1d3b1fa9159352aebc2af72732fc2f58c96a3f0768dba0e9aa",
- preferred=True,
- )
- version(
- "1.10.5",
- sha256="6d4ce8bf902a97b050f6f491f4268634e252a63dadd6656a1a9be5b7b7726fa8",
- preferred=True,
- )
- version(
- "1.10.4",
- sha256="8f60dc4dd6ab5fcd23c750d1dc5bca3d0453bdce5c8cdaf0a4a61a9d1122adb2",
- preferred=True,
- )
- version(
- "1.10.3",
- sha256="b600d7c914cfa80ae127cd1a1539981213fee9994ac22ebec9e3845e951d9b39",
- preferred=True,
- )
- version(
- "1.10.2",
- sha256="bfec1be8c366965a99812cf02ddc97e4b708c1754fccba5414d4adccdc073866",
- preferred=True,
- )
- version(
- "1.10.1",
- sha256="048a9d149fb99aaa1680a712963f5a78e9c43b588d0e79d55e06760ec377c172",
- preferred=True,
- )
- version(
- "1.10.0-patch1",
- sha256="6e78cfe32a10e6e0629393cdfddf6cfa536571efdaf85f08e35326e1b4e9eff0",
- preferred=True,
- )
- version(
- "1.10.0",
- sha256="81f6201aba5c30dced5dcd62f5d5477a2790fd5850e02ac514ca8bf3e2bb375a",
- preferred=True,
- )
- version(
- "1.8.23",
- sha256="37fa4eb6cd0e181eb49a10d54611cb00700e9537f805d03e6853503afe5abc27",
- preferred=True,
- )
- version(
- "1.8.22",
- sha256="8406d96d9355ef8961d2739fb8fd5474ad4cdf52f3cfac657733defd9709bfaa",
- preferred=True,
- )
- version(
- "1.8.21",
- sha256="87d8c82eba5cf766d97cd06c054f4639c1049c4adeaa3a79f77f8bd374f80f37",
- preferred=True,
- )
- version(
- "1.8.19",
- sha256="a4335849f19fae88c264fd0df046bc321a78c536b2548fc508627a790564dc38",
- preferred=True,
- )
- version(
- "1.8.18",
- sha256="cdb195ad8d9e6782acf24b2488061289f615628c2ccda8457b0a0c3fb7a8a063",
- preferred=True,
- )
- version(
- "1.8.17",
- sha256="d9cda297ee76ade9881c4208987939250d397bae6252d0ccb66fa7d24d67e263",
- preferred=True,
- )
- version(
- "1.8.16",
- sha256="ed17178abd9928a7237f30370189ba767b9e39e0db45917c2ac4665eb9cb4771",
- preferred=True,
- )
- version(
- "1.8.15",
- sha256="4e963216b7d32469596bc1321a8c3f6e0c278dcbbdb7be6414c63c081b34c275",
- preferred=True,
- )
- version(
- "1.8.14",
- sha256="1dbefeeef7f591897c632b2b090db96bb8d35ad035beaa36bc39cb2bc67e0639",
- preferred=True,
- )
- version(
- "1.8.13",
- sha256="82f6b38eec103b4fccfbf14892786e0c27a8135d3252d8601cf5bf20066d38c1",
- preferred=True,
- )
- version(
- "1.8.12",
- sha256="b5cccea850096962b5fd9e96f22c4f47d2379224bb41130d9bc038bb6c37dfcb",
- preferred=True,
- )
- version(
- "1.8.10",
- sha256="4813b79c5fb8701a625b9924b8203bc7154a77f9b826ad4e034144b4056a160a",
- preferred=True,
- )
+ version("1.14.2", sha256="1c342e634008284a8c2794c8e7608e2eaf26d01d445fb3dfd7f33cb2fb51ac53")
+ version("1.14.1-2", sha256="cbe93f275d5231df28ced9549253793e40cd2b555e3d288df09d7b89a9967b07")
+ version("1.14.0", sha256="a571cc83efda62e1a51a0a912dd916d01895801c5025af91669484a1575a6ef4")
+ version("1.12.3", sha256="c15adf34647918dd48150ea1bd9dffd3b32a3aec5298991d56048cc3d39b4f6f")
+ version("1.12.2", sha256="2a89af03d56ce7502dcae18232c241281ad1773561ec00c0f0e8ee2463910f14")
+ version("1.12.1", sha256="79c66ff67e666665369396e9c90b32e238e501f345afd2234186bfb8331081ca")
+ version("1.12.0", sha256="a62dcb276658cb78e6795dd29bf926ed7a9bc4edf6e77025cd2c689a8f97c17a")
+ version("1.10.11", sha256="341684c5c0976b8c7e6951735a400275a90693604464cac73e9f323c696fc79c")
+ version("1.10.10", sha256="a6877ab7bd5d769d2d68618fdb54beb50263dcc2a8c157fe7e2186925cdb02db")
+ version("1.10.9", sha256="f5b77f59b705a755a5a223372d0222c7bc408fe8db6fa8d9d7ecf8bce291b8dd")
+ version("1.10.8", sha256="d341b80d380dd763753a0ebe22915e11e87aac4e44a084a850646ff934d19c80")
+ version("1.10.7", sha256="7a1a0a54371275ce2dfc5cd093775bb025c365846512961e7e5ceaecb437ef15")
+ version("1.10.6", sha256="5f9a3ee85db4ea1d3b1fa9159352aebc2af72732fc2f58c96a3f0768dba0e9aa")
+ version("1.10.5", sha256="6d4ce8bf902a97b050f6f491f4268634e252a63dadd6656a1a9be5b7b7726fa8")
+ version("1.10.4", sha256="8f60dc4dd6ab5fcd23c750d1dc5bca3d0453bdce5c8cdaf0a4a61a9d1122adb2")
+ version("1.10.3", sha256="b600d7c914cfa80ae127cd1a1539981213fee9994ac22ebec9e3845e951d9b39")
+ version("1.10.2", sha256="bfec1be8c366965a99812cf02ddc97e4b708c1754fccba5414d4adccdc073866")
+ version("1.10.1", sha256="048a9d149fb99aaa1680a712963f5a78e9c43b588d0e79d55e06760ec377c172")
+ version(
+ "1.10.0-patch1", sha256="6e78cfe32a10e6e0629393cdfddf6cfa536571efdaf85f08e35326e1b4e9eff0"
+ )
+ version("1.10.0", sha256="81f6201aba5c30dced5dcd62f5d5477a2790fd5850e02ac514ca8bf3e2bb375a")
+ version("1.8.23", sha256="37fa4eb6cd0e181eb49a10d54611cb00700e9537f805d03e6853503afe5abc27")
+ version("1.8.22", sha256="8406d96d9355ef8961d2739fb8fd5474ad4cdf52f3cfac657733defd9709bfaa")
+ version("1.8.21", sha256="87d8c82eba5cf766d97cd06c054f4639c1049c4adeaa3a79f77f8bd374f80f37")
+ version("1.8.19", sha256="a4335849f19fae88c264fd0df046bc321a78c536b2548fc508627a790564dc38")
+ version("1.8.18", sha256="cdb195ad8d9e6782acf24b2488061289f615628c2ccda8457b0a0c3fb7a8a063")
+ version("1.8.17", sha256="d9cda297ee76ade9881c4208987939250d397bae6252d0ccb66fa7d24d67e263")
+ version("1.8.16", sha256="ed17178abd9928a7237f30370189ba767b9e39e0db45917c2ac4665eb9cb4771")
+ version("1.8.15", sha256="4e963216b7d32469596bc1321a8c3f6e0c278dcbbdb7be6414c63c081b34c275")
+ version("1.8.14", sha256="1dbefeeef7f591897c632b2b090db96bb8d35ad035beaa36bc39cb2bc67e0639")
+ version("1.8.13", sha256="82f6b38eec103b4fccfbf14892786e0c27a8135d3252d8601cf5bf20066d38c1")
+ version("1.8.12", sha256="b5cccea850096962b5fd9e96f22c4f47d2379224bb41130d9bc038bb6c37dfcb")
+ version("1.8.10", sha256="4813b79c5fb8701a625b9924b8203bc7154a77f9b826ad4e034144b4056a160a")
variant("shared", default=True, description="Builds a shared version of the library")
variant("hl", default=False, description="Enable the high-level library")
variant("cxx", default=False, description="Enable C++ support")
variant("map", when="@1.14:", default=False, description="Enable MAP API support")
+ variant("subfiling", when="@1.14:", default=False, description="Enable Subfiling VFD support")
variant("fortran", default=False, description="Enable Fortran support")
variant("java", when="@1.10:", default=False, description="Enable Java support")
variant("threadsafe", default=False, description="Enable thread-safe capabilities")
@@ -332,7 +214,7 @@ class Hdf5(CMakePackage):
patch("fortran-kinds.patch", when="@1.10.7")
- # This patch may only be needed with GCC11.2 on macOS, but it's valid for
+ # This patch may only be needed with GCC 11.2 on macOS, but it's valid for
# any of the head HDF5 versions as of 12/2021. Since it's impossible to
# tell what Fortran version is part of a mixed apple-clang toolchain on
# macOS (which is the norm), and this might be an issue for other compilers
@@ -414,9 +296,13 @@ def flag_handler(self, name, flags):
cmake_flags.append(self.compiler.cc_pic_flag)
if spec.satisfies("@1.8.21 %oneapi@2023.0.0"):
cmake_flags.append("-Wno-error=int-conversion")
+ if spec.satisfies("%apple-clang@15:"):
+ cmake_flags.append("-Wl,-ld_classic")
elif name == "cxxflags":
if spec.satisfies("@:1.8.12+cxx~shared"):
cmake_flags.append(self.compiler.cxx_pic_flag)
+ if spec.satisfies("%apple-clang@15:"):
+ cmake_flags.append("-Wl,-ld_classic")
elif name == "fflags":
if spec.satisfies("%cce+fortran"):
# Cray compiler generates module files with uppercase names by
@@ -610,6 +496,7 @@ def cmake_args(self):
# are enabled but the tests are disabled.
spec.satisfies("@1.8.22+shared+tools"),
),
+ self.define_from_variant("HDF5_ENABLE_SUBFILING_VFD", "subfiling"),
self.define_from_variant("HDF5_ENABLE_MAP_API", "map"),
self.define("HDF5_ENABLE_Z_LIB_SUPPORT", True),
self.define_from_variant("HDF5_ENABLE_SZIP_SUPPORT", "szip"),
@@ -673,7 +560,7 @@ def ensure_parallel_compiler_wrappers(self):
# 1.10.6 and 1.12.0. The current develop versions do not produce 'h5pfc'
# at all. Here, we make sure that 'h5pfc' is available when Fortran and
# MPI support are enabled (only for versions that generate 'h5fc').
- if self.spec.satisfies("@1.8.22:1.8," "1.10.6:1.10.9," "1.12.0:1.12" "+fortran+mpi"):
+ if self.spec.satisfies("@1.8.22:1.8," "1.10.6:1.10.9," "1.12.0:1.12.2" "+fortran+mpi"):
with working_dir(self.prefix.bin):
# No try/except here, fix the condition above instead:
symlink("h5fc", "h5pfc")
diff --git a/var/spack/repos/builtin/packages/hdfview/package.py b/var/spack/repos/builtin/packages/hdfview/package.py
index 4de9e8a4fda269..323c5e7bf439cc 100644
--- a/var/spack/repos/builtin/packages/hdfview/package.py
+++ b/var/spack/repos/builtin/packages/hdfview/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/healpix-cxx/package.py b/var/spack/repos/builtin/packages/healpix-cxx/package.py
index b1eed688c500bd..22e096ac44e817 100644
--- a/var/spack/repos/builtin/packages/healpix-cxx/package.py
+++ b/var/spack/repos/builtin/packages/healpix-cxx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class HealpixCxx(AutotoolsPackage):
homepage = "https://healpix.sourceforge.io"
url = "https://ayera.dl.sourceforge.net/project/healpix/Healpix_3.50/healpix_cxx-3.50.0.tar.gz"
+ license("GPL-2.0-or-later")
+
version("3.50.0", sha256="6538ee160423e8a0c0f92cf2b2001e1a2afd9567d026a86ff6e2287c1580cb4c")
depends_on("cfitsio")
diff --git a/var/spack/repos/builtin/packages/heaptrack/package.py b/var/spack/repos/builtin/packages/heaptrack/package.py
index 35e84890422224..e24689594327d1 100644
--- a/var/spack/repos/builtin/packages/heaptrack/package.py
+++ b/var/spack/repos/builtin/packages/heaptrack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Heaptrack(CMakePackage):
homepage = "https://github.com/KDE/heaptrack"
url = "https://github.com/KDE/heaptrack/archive/v1.1.0.tar.gz"
+ license("BSD-3-Clause")
+
version("1.3.0", sha256="794b067772f4e4219bb7b6ff1bc1b2134b1b242e748a2cc5c47626040c631956")
version("1.1.0", sha256="bd247ac67d1ecf023ec7e2a2888764bfc03e2f8b24876928ca6aa0cdb3a07309")
diff --git a/var/spack/repos/builtin/packages/heasoft/package.py b/var/spack/repos/builtin/packages/heasoft/package.py
index 750be26df89878..76073a2e3b03f4 100644
--- a/var/spack/repos/builtin/packages/heasoft/package.py
+++ b/var/spack/repos/builtin/packages/heasoft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -24,6 +24,8 @@ class Heasoft(AutotoolsPackage):
homepage = "https://heasarc.gsfc.nasa.gov/docs/software/lheasoft/"
url = "https://heasarc.gsfc.nasa.gov/FTP/software/lheasoft/lheasoft6.29/heasoft-6.29src.tar.gz"
+ license("BSD-3-Clause")
+
version("6.30", sha256="7f828f6050809653319f94d715c1b6815fbc09adfdcb61f2f0f1d7a6af10684a")
version("6.29", sha256="534fec04baa2586326fd7240805f2606620f3b7d7078a80fdd95c9c1177c9e68")
diff --git a/var/spack/repos/builtin/packages/heffte/package.py b/var/spack/repos/builtin/packages/heffte/package.py
index 01f1235771a744..1472116be9bf08 100644
--- a/var/spack/repos/builtin/packages/heffte/package.py
+++ b/var/spack/repos/builtin/packages/heffte/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Heffte(CMakePackage, CudaPackage, ROCmPackage):
test_requires_compiler = True
+ license("BSD-3-Clause")
+
version("develop", branch="master")
version("2.4.0", sha256="02310fb4f9688df02f7181667e61c3adb7e38baf79611d80919d47452ff7881d")
version("2.3.0", sha256="63db8c9a8822211d23e29f7adf5aa88bb462c91d7a18c296c3ef3a06be8d6171")
@@ -38,6 +40,12 @@ class Heffte(CMakePackage, CudaPackage, ROCmPackage):
variant("shared", default=True, description="Builds with shared libraries")
variant("fftw", default=False, description="Builds with support for FFTW backend")
+ variant(
+ "sycl",
+ default=False,
+ when="%oneapi",
+ description="Builds with support for oneAPI SYCL+oneMKL backend",
+ )
variant("mkl", default=False, description="Builds with support for MKL backend")
variant("magma", default=False, description="Use helper methods from the UTK MAGMA library")
variant("python", default=False, description="Install the Python bindings")
@@ -68,6 +76,8 @@ class Heffte(CMakePackage, CudaPackage, ROCmPackage):
depends_on("rocsparse@3.8:", when="+magma+rocm", type=("build", "run"))
depends_on("hipblas@3.8:", when="+magma+rocm", type=("build", "run"))
depends_on("hipsparse@3.8:", when="+magma+rocm", type=("build", "run"))
+ depends_on("intel-oneapi-mkl@2023.2.0:", when="+sycl", type=("build", "run"))
+ depends_on("intel-oneapi-mpi@2021.10.0:", when="+sycl", type=("build", "run"))
examples_src_dir = "examples"
@@ -78,6 +88,7 @@ def cmake_args(self):
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
self.define_from_variant("Heffte_ENABLE_CUDA", "cuda"),
self.define_from_variant("Heffte_ENABLE_ROCM", "rocm"),
+ self.define_from_variant("Heffte_ENABLE_ONEAPI", "sycl"),
self.define_from_variant("Heffte_ENABLE_FFTW", "fftw"),
self.define_from_variant("Heffte_ENABLE_MKL", "mkl"),
self.define_from_variant("Heffte_ENABLE_MAGMA", "magma"),
@@ -96,14 +107,14 @@ def cmake_args(self):
archs = ";".join(cuda_arch)
args.append("-DCMAKE_CUDA_ARCHITECTURES=%s" % archs)
- if "+rocm" in self.spec and self.spec.satisfies("@:2.3.0"):
+ if "+rocm" in self.spec:
args.append("-DCMAKE_CXX_COMPILER={0}".format(self.spec["hip"].hipcc))
rocm_arch = self.spec.variants["amdgpu_target"].value
if "none" not in rocm_arch:
args.append("-DCMAKE_CXX_FLAGS={0}".format(self.hip_flags(rocm_arch)))
- # See https://github.com/ROCmSoftwarePlatform/rocFFT/issues/322
+ # See https://github.com/ROCm/rocFFT/issues/322
if self.spec.satisfies("^cmake@3.21.0:3.21.2"):
args.append(self.define("__skip_rocmclang", "ON"))
diff --git a/var/spack/repos/builtin/packages/helib/package.py b/var/spack/repos/builtin/packages/helib/package.py
index cc4215fa4b6806..040b828cca7686 100644
--- a/var/spack/repos/builtin/packages/helib/package.py
+++ b/var/spack/repos/builtin/packages/helib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -23,6 +23,8 @@ class Helib(CMakePackage):
maintainers("wohlbier")
+ license("Apache-2.0")
+
version("2.2.2", sha256="70c07d2a2da393c695095fe755836524e3d98efb27a336e206291f71db9cec7d")
version("2.2.1", sha256="cbe030c752c915f1ece09681cadfbe4f140f6752414ab000b4cf076b6c3019e4")
version("2.2.0", sha256="e5f82fb0520a76eafdf5044a1f17f512999479d899da8c34335da5e193699b94")
diff --git a/var/spack/repos/builtin/packages/helics/package.py b/var/spack/repos/builtin/packages/helics/package.py
index 82421aa9d2d991..90c82bbb5432b7 100644
--- a/var/spack/repos/builtin/packages/helics/package.py
+++ b/var/spack/repos/builtin/packages/helics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,8 @@ class Helics(CMakePackage):
maintainers("nightlark")
+ license("BSD-3-Clause")
+
version("develop", branch="develop", submodules=True)
version("main", branch="main", submodules=True)
version("master", branch="main", submodules=True)
diff --git a/var/spack/repos/builtin/packages/help2man/package.py b/var/spack/repos/builtin/packages/help2man/package.py
index 5f6024add30077..f5b41627f9b510 100644
--- a/var/spack/repos/builtin/packages/help2man/package.py
+++ b/var/spack/repos/builtin/packages/help2man/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -13,6 +13,8 @@ class Help2man(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/help2man/"
gnu_mirror_path = "help2man/help2man-1.47.11.tar.xz"
+ license("GPL-3.0-or-later")
+
version("1.49.3", sha256="4d7e4fdef2eca6afe07a2682151cea78781e0a4e8f9622142d9f70c083a2fd4f")
version("1.47.16", sha256="3ef8580c5b86e32ca092ce8de43df204f5e6f714b0cd32bc6237e6cd0f34a8f4")
version("1.47.11", sha256="5985b257f86304c8791842c0c807a37541d0d6807ee973000cf8a3fe6ad47b88")
diff --git a/var/spack/repos/builtin/packages/henson/package.py b/var/spack/repos/builtin/packages/henson/package.py
index a66fb7552c9742..d1be8ba2cd234e 100644
--- a/var/spack/repos/builtin/packages/henson/package.py
+++ b/var/spack/repos/builtin/packages/henson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Henson(CMakePackage):
homepage = "https://github.com/henson-insitu/henson"
git = "https://github.com/henson-insitu/henson.git"
+ license("BSD-3-Clause-LBNL")
+
version("master", branch="master")
maintainers("mrzv")
@@ -30,13 +32,8 @@ class Henson(CMakePackage):
conflicts("^openmpi", when="+mpi-wrappers")
def cmake_args(self):
- args = [
+ return [
self.define_from_variant("python", "python"),
self.define_from_variant("mpi-wrappers", "mpi-wrappers"),
self.define_from_variant("use_boost", "boost"),
]
-
- if self.spec.satisfies("+python"):
- args += [self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path)]
-
- return args
diff --git a/var/spack/repos/builtin/packages/hepmc/package.py b/var/spack/repos/builtin/packages/hepmc/package.py
index 38633a012c7672..a1194a79381fc0 100644
--- a/var/spack/repos/builtin/packages/hepmc/package.py
+++ b/var/spack/repos/builtin/packages/hepmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Hepmc(CMakePackage):
tags = ["hep"]
+ license("GPL-2.0-or-later")
+
version("2.06.11", sha256="86b66ea0278f803cde5774de8bd187dd42c870367f1cbf6cdaec8dc7cf6afc10")
version("2.06.10", sha256="5adedd9e3f7447e1e5fc01b72f745ab87da2c1611df89208bb3d7c6ea94c11a4")
version("2.06.09", sha256="e0f8fddd38472c5615210894444686ac5d72df3be682f7d151b562b236d9b422")
diff --git a/var/spack/repos/builtin/packages/hepmc3/package.py b/var/spack/repos/builtin/packages/hepmc3/package.py
index de8936d52a3018..a3f96d95c5c51b 100644
--- a/var/spack/repos/builtin/packages/hepmc3/package.py
+++ b/var/spack/repos/builtin/packages/hepmc3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -18,6 +18,9 @@ class Hepmc3(CMakePackage):
maintainers("vvolkl")
+ license("LGPL-3.0-or-later")
+
+ version("3.2.7", sha256="587faa6556cc54ccd89ad35421461b4761d7809bc17a2e72f5034daea142232b")
version("3.2.6", sha256="248f3b5b36dd773844cbe73d51f60891458334b986b259754c59dbf4bbf1d525")
version("3.2.5", sha256="cd0f75c80f75549c59cc2a829ece7601c77de97cb2a5ab75790cac8e1d585032")
version("3.2.4", sha256="e088fccfd1a6c2f8e1089f457101bee1e5c7a9777e9d51c6419c8a288a49e1bb")
@@ -63,8 +66,8 @@ def cmake_args(self):
py_ver = spec["python"].version.up_to(2)
args.extend(
[
- from_variant("HEPMC3_PYTHON_VERSIONS", str(py_ver)),
- from_variant("HEPMC3_Python_SITEARCH" + py_ver.joined, python_platlib),
+ self.define("HEPMC3_PYTHON_VERSIONS", str(py_ver)),
+ self.define("HEPMC3_Python_SITEARCH" + str(py_ver.joined), python_platlib),
]
)
diff --git a/var/spack/repos/builtin/packages/hepmcanalysis/package.py b/var/spack/repos/builtin/packages/hepmcanalysis/package.py
index 3743fd15fd3321..2b66581b9c5883 100644
--- a/var/spack/repos/builtin/packages/hepmcanalysis/package.py
+++ b/var/spack/repos/builtin/packages/hepmcanalysis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/heppdt/package.py b/var/spack/repos/builtin/packages/heppdt/package.py
index 99678bbff5df3f..5f066f44d3ddb6 100644
--- a/var/spack/repos/builtin/packages/heppdt/package.py
+++ b/var/spack/repos/builtin/packages/heppdt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/heputils/package.py b/var/spack/repos/builtin/packages/heputils/package.py
index 9fa66ce020063a..a70d06d12f3f72 100644
--- a/var/spack/repos/builtin/packages/heputils/package.py
+++ b/var/spack/repos/builtin/packages/heputils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Heputils(MakefilePackage):
tags = ["hep"]
+ license("GPL-3.0-only")
+
version("1.3.2", sha256="be43586979ab1a81a55348d795c2f63a5da19fc6367d5f66f354217c76c809c0")
version("1.3.1", sha256="7f33ef44364a3d3a39cc65005fb6aa9dfd06bd1b18b41151c0e5e3d28d6ba15b")
version("1.3.0", sha256="1ec9d9d71d409ce6b2e668e4927b1090ddf2ee9acf25457f767925cf89b24852")
diff --git a/var/spack/repos/builtin/packages/hercules/package.py b/var/spack/repos/builtin/packages/hercules/package.py
deleted file mode 100644
index 6410b5552dc3b6..00000000000000
--- a/var/spack/repos/builtin/packages/hercules/package.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
-# Spack Project Developers. See the top-level COPYRIGHT file for details.
-#
-# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
-
-from spack.package import *
-
-
-class Hercules(MakefilePackage):
- """Hercules is an amazingly fast and highly customizable Git
- repository analysis engine written in Go."""
-
- homepage = "https://github.com/src-d/hercules"
- url = "https://github.com/src-d/hercules/archive/v10.7.2.tar.gz"
-
- version("10.7.2", sha256="4654dcfb1eee5af1610fd05677c6734c2ca1161535fcc14d3933d6debda4bc34")
-
- depends_on("protobuf", type="build")
- depends_on("go@1.11:", type="build")
- depends_on("py-labours", type="run")
-
- def install(self, spec, prefix):
- mkdirp(prefix.bin)
- install("hercules", prefix.bin)
diff --git a/var/spack/repos/builtin/packages/hermes/package.py b/var/spack/repos/builtin/packages/hermes/package.py
index 698e412bb441b8..ef33ea207b2bec 100644
--- a/var/spack/repos/builtin/packages/hermes/package.py
+++ b/var/spack/repos/builtin/packages/hermes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Hermes(CMakePackage):
maintainers("hyoklee")
+ license("GPL-2.0-only")
+
version("master", branch="master")
version(
"0.9.0-beta",
diff --git a/var/spack/repos/builtin/packages/herwig3/package.py b/var/spack/repos/builtin/packages/herwig3/package.py
index ac0dcdfff90582..960656ee6b59f6 100644
--- a/var/spack/repos/builtin/packages/herwig3/package.py
+++ b/var/spack/repos/builtin/packages/herwig3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class Herwig3(AutotoolsPackage):
tags = ["hep"]
+ license("GPL-3.0-only")
+
version("7.2.3", sha256="5599899379b01b09e331a2426d78d39b7f6ec126db2543e9d340aefe6aa50f84")
version("7.2.2", sha256="53e06b386df5bc20fe268b6c8ba50f1e62b6744e577d383ec836ea3fc672c383")
version("7.2.1", sha256="d4fff32f21c5c08a4b2e563c476b079859c2c8e3b78d853a8a60da96d5eea686")
diff --git a/var/spack/repos/builtin/packages/herwigpp/package.py b/var/spack/repos/builtin/packages/herwigpp/package.py
index ff05945e610db3..b1d2cd12eb4e61 100644
--- a/var/spack/repos/builtin/packages/herwigpp/package.py
+++ b/var/spack/repos/builtin/packages/herwigpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Herwigpp(AutotoolsPackage):
tags = ["hep"]
+ license("GPL-2.0-only")
+
version("2.7.1", sha256="80a189376bb65f5ec4e64f42e76c00ea9102d8224010563a424fc11e619a6ad6")
patch("herwig++-2.7.1.patch", when="@2.7.1", level=0)
diff --git a/var/spack/repos/builtin/packages/hevea/package.py b/var/spack/repos/builtin/packages/hevea/package.py
index 3b9d76f881f6a4..b29903e95e5f3a 100644
--- a/var/spack/repos/builtin/packages/hevea/package.py
+++ b/var/spack/repos/builtin/packages/hevea/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -15,6 +15,8 @@ class Hevea(MakefilePackage):
maintainers("scemama", "cessenat")
+ license("LGPL-2.0-only")
+
version("develop", branch="master")
version("2.35", sha256="78f834cc7a8112ec59d0b8acdfbed0c8ac7dbb85f964d0be1f4eed04f25cdf54")
version("2.34", sha256="f505a2a5bafdc2ea389ec521876844e6fdcb5c1b656396b7e8421c1631469ea2")
diff --git a/var/spack/repos/builtin/packages/hh-suite/package.py b/var/spack/repos/builtin/packages/hh-suite/package.py
index 7d395ef5a9dce8..334653ea86ce45 100644
--- a/var/spack/repos/builtin/packages/hh-suite/package.py
+++ b/var/spack/repos/builtin/packages/hh-suite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class HhSuite(CMakePackage):
homepage = "https://github.com/soedinglab/hh-suite"
url = "https://github.com/soedinglab/hh-suite/archive/refs/tags/v3.3.0.tar.gz"
+ license("GPL-3.0-or-later")
+
version("3.3.0", sha256="dd67f7f3bf601e48c9c0bc4cf1fbe3b946f787a808bde765e9436a48d27b0964")
variant("mpi", default=True, description="Enable MPI support")
diff --git a/var/spack/repos/builtin/packages/hibench/package.py b/var/spack/repos/builtin/packages/hibench/package.py
index d1addcabb58a49..7d764d7f9f844b 100644
--- a/var/spack/repos/builtin/packages/hibench/package.py
+++ b/var/spack/repos/builtin/packages/hibench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Hibench(MavenPackage):
homepage = "https://github.com/Intel-bigdata/HiBench"
url = "https://github.com/Intel-bigdata/HiBench/archive/HiBench-7.1.tar.gz"
+ license("Apache-2.0")
+
version("7.1", sha256="96572a837d747fb6347f2b906fd5f7fb97a62095435326ccfee5e75777a5c210")
version("7.0", sha256="89b01f3ad90b758f24afd5ea2bee997c3d700ce9244b8a2b544acc462ab0e847")
version("6.0", sha256="179f5415903f4029bd0ea1101a3d4c67faf88ca46a993d8179582299ad730f79")
diff --git a/var/spack/repos/builtin/packages/hicolor-icon-theme/package.py b/var/spack/repos/builtin/packages/hicolor-icon-theme/package.py
index 4e085969612847..1d4f188a0de1cd 100644
--- a/var/spack/repos/builtin/packages/hicolor-icon-theme/package.py
+++ b/var/spack/repos/builtin/packages/hicolor-icon-theme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -14,6 +14,8 @@ class HicolorIconTheme(AutotoolsPackage):
homepage = "https://www.freedesktop.org/wiki/Software/icon-theme/"
url = "https://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.17.tar.xz"
+ license("GPL-2.0-only")
+
version("0.17", sha256="317484352271d18cbbcfac3868eab798d67fff1b8402e740baa6ff41d588a9d8")
def setup_dependent_build_environment(self, env, dependent_spec):
diff --git a/var/spack/repos/builtin/packages/hicops/package.py b/var/spack/repos/builtin/packages/hicops/package.py
index fc61377e8c6dcf..7cfd6c36728344 100644
--- a/var/spack/repos/builtin/packages/hicops/package.py
+++ b/var/spack/repos/builtin/packages/hicops/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/var/spack/repos/builtin/packages/highfive/package.py b/var/spack/repos/builtin/packages/highfive/package.py
index 02f0152bef5409..da9f4425da6003 100644
--- a/var/spack/repos/builtin/packages/highfive/package.py
+++ b/var/spack/repos/builtin/packages/highfive/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,6 +16,8 @@ class Highfive(CMakePackage):
git = "https://github.com/BlueBrain/HighFive.git"
maintainers("alkino")
+ license("BSL-1.0")
+
version("develop", branch="master")
version("2.8.0", sha256="cd2502cae61bfb00e32dd18c9dc75289e09ad1db5c2a46d3b0eefd32e0df983b")
version("2.7.1", sha256="25b4c51a94d1e670dc93b9b73f51e79b65d8ff49bcd6e5d5582d5ecd2789a249")
diff --git a/var/spack/repos/builtin/packages/highway/package.py b/var/spack/repos/builtin/packages/highway/package.py
index 75f5398ab29717..d4b2f0cc6840bd 100644
--- a/var/spack/repos/builtin/packages/highway/package.py
+++ b/var/spack/repos/builtin/packages/highway/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,6 +12,8 @@ class Highway(CMakePackage):
homepage = "https://github.com/google/highway"
url = "https://github.com/google/highway/archive/refs/tags/1.0.0.tar.gz"
+ license("Apache-2.0")
+
version("1.0.7", sha256="5434488108186c170a5e2fca5e3c9b6ef59a1caa4d520b008a9b8be6b8abe6c5")
version("1.0.6", sha256="d89664a045a41d822146e787bceeefbf648cc228ce354f347b18f2b419e57207")
version("1.0.5", sha256="99b7dad98b8fa088673b720151458fae698ae5df9154016e39de4afdc23bb927")
diff --git a/var/spack/repos/builtin/packages/highwayhash/package.py b/var/spack/repos/builtin/packages/highwayhash/package.py
index c608ec033a6d2a..8dad7acc99c662 100644
--- a/var/spack/repos/builtin/packages/highwayhash/package.py
+++ b/var/spack/repos/builtin/packages/highwayhash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Highwayhash(MakefilePackage):
homepage = "https://github.com/google/highwayhash"
git = "https://github.com/google/highwayhash.git"
+ license("Apache-2.0")
+
version("dfcb97", commit="dfcb97ca4fe9277bf9dc1802dd979b071896453b")
build_targets = ["all", "libhighwayhash.a"]
diff --git a/var/spack/repos/builtin/packages/hiop/package.py b/var/spack/repos/builtin/packages/hiop/package.py
index 4f68978ab640fa..1abcdb43ae71b4 100644
--- a/var/spack/repos/builtin/packages/hiop/package.py
+++ b/var/spack/repos/builtin/packages/hiop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -21,6 +21,8 @@ class Hiop(CMakePackage, CudaPackage, ROCmPackage):
git = "https://github.com/LLNL/hiop.git"
maintainers("ryandanehy", "cameronrutherford", "pelesh")
+ license("BSD-3-Clause")
+
# Most recent tagged snapshot is the preferred version when profiling.
version(
"1.0.1", tag="v1.0.1", commit="c5e156c6f27d046f590dc35114980e3f9c573ca6", submodules=True
@@ -47,10 +49,10 @@ class Hiop(CMakePackage, CudaPackage, ROCmPackage):
version("0.5.0", tag="v0.5.0", commit="a39da8025037c7c8ae2eb31234eb80cc73bec2af")
version("0.4.6", tag="v0.4.6", commit="b72d163d52c9225c3196ceb2baebdc7cf09a69de")
version("0.4.5", tag="v0.4.5", commit="c353580456c4776c50811b97cf8ff802dc27b90c")
- version("0.4.4", tag="v0.4.4", commit="e858eefa6b914f5c87c3717bbce811931ea69386")
+ version("0.4.4", tag="v0.4.4", commit="4e3faa9963e83cd7f2a388bfcc1e402dc86fc81d")
version("0.4.3", tag="v0.4.3", commit="c0394af4d84ebb84b7d2b95283ad65ffd84e0d45")
version("0.4.2", tag="v0.4.2", commit="3fcb788d223eec24c0241680070c4a9a5ec71ef3")
- version("0.4.1", tag="v0.4.1", commit="3f269560f76d5a89bcbd1d3c4f9f0e5acaa6fd64")
+ version("0.4.1", tag="v0.4.1", commit="281adb5fb335642446e0804a2669b97d8ef62998")
version("0.4", tag="v0.4", commit="91d21085a1149eacdb27cd738d4a74a7e412fcff")
version("0.3.99.3", tag="v0.3.99.3", commit="bed1dbef260e53a9d139ccfb77d2e83a98aab216")
version("0.3.99.2", tag="v0.3.99.2", commit="9eb026768bc5e0a2c1293d0487cc39913001ae19")
diff --git a/var/spack/repos/builtin/packages/hip-examples/package.py b/var/spack/repos/builtin/packages/hip-examples/package.py
index c625d0fe4b76c2..22f5705389649a 100644
--- a/var/spack/repos/builtin/packages/hip-examples/package.py
+++ b/var/spack/repos/builtin/packages/hip-examples/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -11,21 +11,25 @@
class HipExamples(Package):
"""Examples for HIP"""
- homepage = "https://github.com/ROCm-Developer-Tools/HIP-Examples/"
- git = "https://github.com/ROCm-Developer-Tools/HIP-Examples.git"
- url = "https://github.com/ROCm-Developer-Tools/HIP-Examples/archive/rocm-5.4.3.tar.gz"
+ homepage = "https://github.com/ROCm/HIP-Examples/"
+ git = "https://github.com/ROCm/HIP-Examples.git"
+ url = "https://github.com/ROCm/HIP-Examples/archive/rocm-5.4.3.tar.gz"
tags = ["rocm"]
maintainers("srekolam", "renjithravindrankannath", "afzpatel")
- version("master", branch="master")
-
+ version("5.6.1", sha256="c1b5d30e387f869fae21170790ea3d604f7f0dba7771a9c096d9a5c2351dd001")
+ version("5.6.0", sha256="b751a0cac938248f7ea0fbeaa9df35688357b54ddd13359e2842a770b7923dfe")
+ version("5.5.1", sha256="c8522ef3f0804c85eef7e9efe2671f375b0d7f2100de85f55dcc2401efed6389")
+ version("5.5.0", sha256="bea8a4155bbfbdb3bc1f83c22e4bd1214b1b4e1840b58dc7d37704620de5b103")
version("5.4.3", sha256="053b8b7892e2929e3f90bd978d8bb1c9801e4803eadd7d97fc6692ce60af1d47")
patch("0001-add-inc-and-lib-paths-to-openmp-helloworld.patch")
patch("0002-add-fpic-compile-to-add4.patch")
- depends_on("hip")
- depends_on("rocm-openmp-extras")
+
+ for ver in ["5.6.1", "5.6.0", "5.5.1", "5.5.0", "5.4.3"]:
+ depends_on("hip@" + ver, when="@" + ver)
+ depends_on("rocm-openmp-extras@" + ver, when="@" + ver)
def install(self, spec, prefix):
stage = os.getcwd()
diff --git a/var/spack/repos/builtin/packages/hip-rocclr/package.py b/var/spack/repos/builtin/packages/hip-rocclr/package.py
index e6a4b3bbdfe1ae..22c1232e2ccbea 100644
--- a/var/spack/repos/builtin/packages/hip-rocclr/package.py
+++ b/var/spack/repos/builtin/packages/hip-rocclr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,8 +12,8 @@ class HipRocclr(CMakePackage):
with to different backends such as ROCr or PAL This abstraction allows
runtimes to work on Windows as well as on Linux without much effort."""
- homepage = "https://github.com/ROCm-Developer-Tools/ROCclr"
- git = "https://github.com/ROCm-Developer-Tools/ROCclr.git"
+ homepage = "https://github.com/ROCm/ROCclr"
+ git = "https://github.com/ROCm/ROCclr.git"
tags = ["rocm"]
maintainers("srekolam", "renjithravindrankannath")
@@ -21,11 +21,13 @@ class HipRocclr(CMakePackage):
def url_for_version(self, version):
# Fix up a typo in the 3.5.0 release.
if version == Version("3.5.0"):
- return "https://github.com/ROCm-Developer-Tools/ROCclr/archive/roc-3.5.0.tar.gz"
+ return "https://github.com/ROCm/ROCclr/archive/roc-3.5.0.tar.gz"
- url = "https://github.com/ROCm-Developer-Tools/ROCclr/archive/rocm-{0}.tar.gz"
+ url = "https://github.com/ROCm/ROCclr/archive/rocm-{0}.tar.gz"
return url.format(version)
+ license("MIT")
+
version("master", branch="main")
version("5.6.1", sha256="cc9a99c7e4de3d9360c0a471b27d626e84a39c9e60e0aff1e8e1500d82391819")
version("5.6.0", sha256="864f87323e793e60b16905284fba381a7182b960dd4a37fb67420c174442c03c")
@@ -150,13 +152,13 @@ def url_for_version(self, version):
depends_on("hsa-rocr-dev@" + ver, when="@" + ver)
depends_on("comgr@" + ver, when="@" + ver)
- # See: https://github.com/ROCm-Developer-Tools/ROCclr/pull/16
+ # See: https://github.com/ROCm/ROCclr/pull/16
# In 3.7.0 the find opengl things have changed slightly.
patch("opengl.patch", when="@3.5.0")
resource(
name="opencl-on-vdi",
- url="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/roc-3.5.0.tar.gz",
+ url="https://github.com/ROCm/ROCm-OpenCL-Runtime/archive/roc-3.5.0.tar.gz",
sha256="511b617d5192f2d4893603c1a02402b2ac9556e9806ff09dd2a91d398abf39a0",
expand=True,
destination="",
@@ -195,7 +197,7 @@ def url_for_version(self, version):
]:
resource(
name="opencl-on-vdi",
- url="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/rocm-{0}.tar.gz".format(
+ url="https://github.com/ROCm/ROCm-OpenCL-Runtime/archive/rocm-{0}.tar.gz".format(
d_version
),
sha256=d_shasum,
@@ -207,7 +209,7 @@ def url_for_version(self, version):
resource(
name="opencl-on-vdi",
- git="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime.git",
+ git="https://github.com/ROCm/ROCm-OpenCL-Runtime.git",
destination="",
placement="opencl-on-vdi",
branch="main",
diff --git a/var/spack/repos/builtin/packages/hip-tensor/package.py b/var/spack/repos/builtin/packages/hip-tensor/package.py
new file mode 100644
index 00000000000000..86fd4e385dd6f5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip-tensor/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class HipTensor(CMakePackage, ROCmPackage):
+ """AMD’s C++ library for accelerating tensor primitives"""
+
+ homepage = "https://github.com/ROCm/hipTensor"
+ git = "https://github.com/ROCm/hipTensor.git"
+ url = "https://github.com/ROCm/hipTensor/archive/refs/tags/rocm-5.7.0.tar.gz"
+ tags = ["rocm"]
+
+ maintainers("srekolam", "afzpatel")
+
+ version("master", branch="master")
+ version("6.0.0", sha256="268d7f114784b7e824f89c21c65c2efedbb5486f09a356a56dca1b89bde1ef7a")
+ version("5.7.1", sha256="96743d4e695fe865aef4097ae31d9b4e42a2d5a92135a005b0d187d9c0b17645")
+ version("5.7.0", sha256="4b17f6d43b17fe2dc1d0c61e9663d4752006f7898cc94231206444a1663eb252")
+
+ for ver in ["5.7.0", "5.7.1", "6.0.0", "master"]:
+ depends_on(f"composable-kernel@{ver}", when=f"@{ver}")
+ depends_on(f"rocm-cmake@{ver}", when=f"@{ver}")
+
+ def setup_build_environment(self, env):
+ env.set("CXX", self.spec["hip"].hipcc)
diff --git a/var/spack/repos/builtin/packages/hip/0014-Remove-compiler-rt-linkage-for-host-for-5.7.0.patch b/var/spack/repos/builtin/packages/hip/0014-Remove-compiler-rt-linkage-for-host-for-5.7.0.patch
new file mode 100644
index 00000000000000..3f1bf4974be60e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0014-Remove-compiler-rt-linkage-for-host-for-5.7.0.patch
@@ -0,0 +1,74 @@
+From 9be86942bfd8fd9a1c9436a7f87de5a52aa4cb7e Mon Sep 17 00:00:00 2001
+From: sreenivasa murthy kolam
+Date: Wed, 25 Oct 2023 07:33:45 +0000
+Subject: [PATCH] Remove-compiler-rt-linkage-for-host-for-5.7.0
+
+---
+ clr/hipamd/CMakeLists.txt | 6 ++++--
+ clr/hipamd/hip-config-amd.cmake | 1 -
+ hipcc/bin/hipcc.pl | 10 +++++++---
+ 3 files changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/clr/hipamd/CMakeLists.txt b/clr/hipamd/CMakeLists.txt
+index 272ebca..48f7686 100755
+--- a/clr/hipamd/CMakeLists.txt
++++ b/clr/hipamd/CMakeLists.txt
+@@ -402,8 +402,10 @@ if (NOT ${HIPCC_BIN_DIR} STREQUAL "")
+ install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.pl DESTINATION bin)
+ install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.pl DESTINATION bin)
+ install(PROGRAMS ${HIPCC_BIN_DIR}/hipvars.pm DESTINATION bin)
+- install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin)
+- install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin)
++ if(WIN32)
++ install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin)
++ install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin)
++ endif()
+ endif()
+
+ #############################
+diff --git a/clr/hipamd/hip-config-amd.cmake b/clr/hipamd/hip-config-amd.cmake
+index 229bb0f..d685172 100755
+--- a/clr/hipamd/hip-config-amd.cmake
++++ b/clr/hipamd/hip-config-amd.cmake
+@@ -153,7 +153,6 @@ else()
+ # Add support for __fp16 and _Float16, explicitly link with compiler-rt
+ if( "${CLANGRT_BUILTINS_FETCH_EXIT_CODE}" STREQUAL "0" )
+ # CLANG_RT Builtins found Successfully Set interface link libraries property
+- set_property(TARGET hip::host APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${CLANGRT_BUILTINS}")
+ set_property(TARGET hip::device APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${CLANGRT_BUILTINS}")
+ else()
+ message(STATUS "clangrt builtins lib not found: ${CLANGRT_BUILTINS_FETCH_EXIT_CODE}")
+diff --git a/hipcc/bin/hipcc.pl b/hipcc/bin/hipcc.pl
+index 56dcda2..c2e0cc9 100755
+--- a/hipcc/bin/hipcc.pl
++++ b/hipcc/bin/hipcc.pl
+@@ -155,11 +155,14 @@ if ($HIP_PLATFORM eq "amd") {
+ if($isWindows) {
+ $execExtension = ".exe";
+ }
+- $HIPCC="$HIP_CLANG_PATH/clang++" . $execExtension;
++ # llvm_path is set inside the hip recipe
++ $LLVM_PATH= $ENV{'LLVM_PATH'};
++ $HIPCC="${LLVM_PATH}/bin/clang++" . $execExtension;
+
+ # If $HIPCC clang++ is not compiled, use clang instead
+ if ( ! -e $HIPCC ) {
+- $HIPCC="$HIP_CLANG_PATH/clang" . $execExtension;
++ $LLVM_PATH= $ENV{'LLVM_PATH'};
++ $HIPCC="${LLVM_PATH}/bin/clang" . $execExtension;
+ $HIPLDFLAGS = "--driver-mode=g++";
+ }
+ # to avoid using dk linker or MSVC linker
+@@ -483,7 +486,8 @@ if($HIP_PLATFORM eq "amd"){
+ $targetsStr = $ENV{HCC_AMDGPU_TARGET};
+ } elsif (not $isWindows) {
+ # Else try using rocm_agent_enumerator
+- $ROCM_AGENT_ENUM = "${ROCM_PATH}/bin/rocm_agent_enumerator";
++ $ROCMINFO_PATH = $ENV{'ROCMINFO_PATH'} // $ROCMINFO_PATH;
++ $ROCM_AGENT_ENUM = "${ROCMINFO_PATH}/bin/rocm_agent_enumerator";
+ $targetsStr = `${ROCM_AGENT_ENUM} -t GPU`;
+ $targetsStr =~ s/\n/,/g;
+ }
+--
+2.39.3
+
diff --git a/var/spack/repos/builtin/packages/hip/0014-remove-compiler-rt-linkage-for-host.6.0.patch b/var/spack/repos/builtin/packages/hip/0014-remove-compiler-rt-linkage-for-host.6.0.patch
new file mode 100644
index 00000000000000..597baa2e5d1a63
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0014-remove-compiler-rt-linkage-for-host.6.0.patch
@@ -0,0 +1,61 @@
+diff --git a/clr/hipamd/CMakeLists.txt b/clr/hipamd/CMakeLists.txt
+index 7ad3001..aaf6ad0 100755
+--- a/clr/hipamd/CMakeLists.txt
++++ b/clr/hipamd/CMakeLists.txt
+@@ -297,16 +297,6 @@ if(HIP_RUNTIME STREQUAL "rocclr")
+ add_subdirectory(src)
+ endif()
+
+-# Download libamdhip64.so.5
+-if(HIP_PLATFORM STREQUAL "amd")
+- if(NOT WIN32)
+- execute_process(COMMAND sh -c "${CMAKE_CURRENT_SOURCE_DIR}/download_libamhip64_v5.sh" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND_ECHO STDERR RESULT_VARIABLE DWLD_HIP_SO_RC)
+- if (DWLD_HIP_SO_RC AND NOT DWLD_HIP_SO_RC EQUAL 0)
+- message(FATAL_ERROR "Failed to download libamdhip64.so.5")
+- endif()
+- endif()
+-endif()
+-
+ # Build doxygen documentation
+ find_program(DOXYGEN_EXE doxygen)
+ if(DOXYGEN_EXE)
+@@ -408,8 +398,6 @@ if (NOT ${HIPCC_BIN_DIR} STREQUAL "")
+ install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.pl DESTINATION bin)
+ install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.pl DESTINATION bin)
+ install(PROGRAMS ${HIPCC_BIN_DIR}/hipvars.pm DESTINATION bin)
+- install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin)
+- install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin)
+ endif()
+
+ #############################
+diff --git a/hipcc/bin/hipcc.pl b/hipcc/bin/hipcc.pl
+index 513a427..cd2d6ac 100755
+--- a/hipcc/bin/hipcc.pl
++++ b/hipcc/bin/hipcc.pl
+@@ -160,11 +160,14 @@ if ($HIP_PLATFORM eq "amd") {
+ if($isWindows) {
+ $execExtension = ".exe";
+ }
+- $HIPCC=get_normalized_path("$HIP_CLANG_PATH/clang++" . $execExtension);
++ # llvm_path is set inside the hip recipe
++ $LLVM_PATH= $ENV{'LLVM_PATH'};
++ $HIPCC="${LLVM_PATH}/bin/clang++" . $execExtension;
+
+ # If $HIPCC clang++ is not compiled, use clang instead
+ if ( ! -e $HIPCC ) {
+- $HIPCC=get_normalized_path("$HIP_CLANG_PATH/clang" . $execExtension);
++ $LLVM_PATH= $ENV{'LLVM_PATH'};
++ $HIPCC="${LLVM_PATH}/bin/clang" . $execExtension;
+ $HIPLDFLAGS = "--driver-mode=g++";
+ }
+ # to avoid using dk linker or MSVC linker
+@@ -484,7 +487,8 @@ if($HIP_PLATFORM eq "amd"){
+ $targetsStr = $ENV{HCC_AMDGPU_TARGET};
+ } elsif (not $isWindows) {
+ # Else try using rocm_agent_enumerator
+- $ROCM_AGENT_ENUM = "${ROCM_PATH}/bin/rocm_agent_enumerator";
++ $ROCMINFO_PATH = $ENV{'ROCMINFO_PATH'} // $ROCMINFO_PATH;
++ $ROCM_AGENT_ENUM = "${ROCMINFO_PATH}/bin/rocm_agent_enumerator";
+ $targetsStr = `${ROCM_AGENT_ENUM} -t GPU`;
+ $targetsStr =~ s/\n/,/g;
+ }
diff --git a/var/spack/repos/builtin/packages/hip/0017-Set-PARAMETERS_MIN_ALIGNMENT-to-the-native-alignment.patch b/var/spack/repos/builtin/packages/hip/0017-Set-PARAMETERS_MIN_ALIGNMENT-to-the-native-alignment.patch
new file mode 100644
index 00000000000000..cabc64fd2a671c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0017-Set-PARAMETERS_MIN_ALIGNMENT-to-the-native-alignment.patch
@@ -0,0 +1,63 @@
+diff --git a/clr/rocclr/platform/kernel.hpp b/clr/rocclr/platform/kernel.hpp
+index 8cb3b7f..d441b18 100644
+--- a/clr/rocclr/platform/kernel.hpp
++++ b/clr/rocclr/platform/kernel.hpp
+@@ -159,7 +159,7 @@ class KernelParameters : protected HeapObject {
+ deviceKernelArgs_(false) {
+ totalSize_ = signature.paramsSize() + (signature.numMemories() +
+ signature.numSamplers() + signature.numQueues()) * sizeof(void*);
+- values_ = reinterpret_cast(this) + alignUp(sizeof(KernelParameters), 16);
++ values_ = reinterpret_cast(this) + alignUp(sizeof(KernelParameters), PARAMETERS_MIN_ALIGNMENT);
+ memoryObjOffset_ = signature_.paramsSize();
+ memoryObjects_ = reinterpret_cast(values_ + memoryObjOffset_);
+ samplerObjOffset_ = memoryObjOffset_ + signature_.numMemories() * sizeof(amd::Memory*);
+@@ -183,7 +183,7 @@ class KernelParameters : protected HeapObject {
+ execNewVcop_(rhs.execNewVcop_),
+ execPfpaVcop_(rhs.execPfpaVcop_),
+ deviceKernelArgs_(false) {
+- values_ = reinterpret_cast(this) + alignUp(sizeof(KernelParameters), 16);
++ values_ = reinterpret_cast(this) + alignUp(sizeof(KernelParameters), PARAMETERS_MIN_ALIGNMENT);
+ memoryObjOffset_ = signature_.paramsSize();
+ memoryObjects_ = reinterpret_cast(values_ + memoryObjOffset_);
+ samplerObjOffset_ = memoryObjOffset_ + signature_.numMemories() * sizeof(amd::Memory*);
+@@ -220,7 +220,7 @@ class KernelParameters : protected HeapObject {
+ //! Allocate memory for this instance as well as the required storage for
+ // the values_, defined_, and rawPointer_ arrays.
+ void* operator new(size_t size, const KernelSignature& signature) {
+- size_t requiredSize = alignUp(size, 16) + signature.paramsSize() +
++ size_t requiredSize = alignUp(size, PARAMETERS_MIN_ALIGNMENT) + signature.paramsSize() +
+ (signature.numMemories() + signature.numSamplers() + signature.numQueues()) *
+ sizeof(void*);
+ return AlignedMemory::allocate(requiredSize, PARAMETERS_MIN_ALIGNMENT);
+diff --git a/clr/rocclr/utils/flags.hpp b/clr/rocclr/utils/flags.hpp
+index df12fe6..88848e5 100644
+--- a/clr/rocclr/utils/flags.hpp
++++ b/clr/rocclr/utils/flags.hpp
+@@ -52,7 +52,7 @@ debug(size_t, CPU_MEMORY_GUARD_PAGE_SIZE, 64, \
+ "Size in KB of CPU memory guard page") \
+ debug(size_t, CPU_MEMORY_ALIGNMENT_SIZE, 256, \
+ "Size in bytes for the default alignment for guarded memory on CPU") \
+-debug(size_t, PARAMETERS_MIN_ALIGNMENT, 16, \
++debug(size_t, PARAMETERS_MIN_ALIGNMENT, NATIVE_ALIGNMENT_SIZE, \
+ "Minimum alignment required for the abstract parameters stack") \
+ debug(size_t, MEMOBJ_BASE_ADDR_ALIGN, 4*Ki, \
+ "Alignment of the base address of any allocate memory object") \
+diff --git a/clr/rocclr/utils/macros.hpp b/clr/rocclr/utils/macros.hpp
+index 02fef75..e2110eb 100644
+--- a/clr/rocclr/utils/macros.hpp
++++ b/clr/rocclr/utils/macros.hpp
+@@ -126,6 +126,14 @@
+ #define IS_WINDOWS false
+ #endif
+
++#if defined(__AVX512F__)
++#define NATIVE_ALIGNMENT_SIZE 64
++#elif defined(__AVX__)
++#define NATIVE_ALIGNMENT_SIZE 32
++#else
++#define NATIVE_ALIGNMENT_SIZE 16
++#endif
++
+ #define IF_LEFT_true(x) x
+ #define IF_LEFT_false(x)
+ #define IF_RIGHT_true(x)
diff --git a/var/spack/repos/builtin/packages/hip/0018-reverting-hipMemoryType-with-memoryType.patch b/var/spack/repos/builtin/packages/hip/0018-reverting-hipMemoryType-with-memoryType.patch
new file mode 100644
index 00000000000000..c77075d640e882
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0018-reverting-hipMemoryType-with-memoryType.patch
@@ -0,0 +1,17 @@
+diff --git a/include/hip/hip_runtime_api.h b/include/hip/hip_runtime_api.h
+index 88e6850..d280504 100644
+--- a/include/hip/hip_runtime_api.h
++++ b/include/hip/hip_runtime_api.h
+@@ -259,7 +259,11 @@ typedef enum hipMemoryType {
+ * Pointer attributes
+ */
+ typedef struct hipPointerAttribute_t {
+- enum hipMemoryType type;
++ union {
++ // Deprecated, use instead type
++ enum hipMemoryType memoryType;
++ enum hipMemoryType type;
++ };
+ int device;
+ void* devicePointer;
+ void* hostPointer;
diff --git a/var/spack/repos/builtin/packages/hip/package.py b/var/spack/repos/builtin/packages/hip/package.py
index 1200cfdd2cb72d..a6fd9469558118 100644
--- a/var/spack/repos/builtin/packages/hip/package.py
+++ b/var/spack/repos/builtin/packages/hip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -16,15 +16,20 @@ class Hip(CMakePackage):
create portable applications for AMD and NVIDIA GPUs from
single source code."""
- homepage = "https://github.com/ROCm-Developer-Tools/HIP"
- git = "https://github.com/ROCm-Developer-Tools/HIP.git"
- url = "https://github.com/ROCm-Developer-Tools/HIP/archive/rocm-5.5.0.tar.gz"
+ homepage = "https://github.com/ROCm/HIP"
+ git = "https://github.com/ROCm/HIP.git"
+ url = "https://github.com/ROCm/HIP/archive/rocm-6.0.0.tar.gz"
tags = ["rocm"]
maintainers("srekolam", "renjithravindrankannath", "haampie")
libraries = ["libamdhip64"]
+ license("MIT")
+
version("master", branch="master")
+ version("6.0.0", sha256="0d575788e0b731124a8489a36652014a165b9ebab92d5456ec3c976e062f3a82")
+ version("5.7.1", sha256="eaa0e14a9ae45c58ed37863797b683a7778b3cbbf92f5b6529ec65fd61d61f3e")
+ version("5.7.0", sha256="cb61234eec7879fb7e20937659ad535b93a6e66fc8de0a543da8b7702474f2fc")
version("5.6.1", sha256="4b3c4dfcf8595da0e1b8c3e8067b1ccebeaac337762ff098db14375fa8dd4487")
version("5.6.0", sha256="a8237768c1ae70029d972376f8d279f4de18a1e6106fff6215d1e16847bc375e")
version("5.5.1", sha256="1f5f6bb72d8d64335ccc8242ef2e2ea8efeb380cce2997f475b1ee77528d9fb4")
@@ -166,6 +171,9 @@ class Hip(CMakePackage):
"5.5.1",
"5.6.0",
"5.6.1",
+ "5.7.0",
+ "5.7.1",
+ "6.0.0",
]:
depends_on("hsakmt-roct@" + ver, when="@" + ver)
depends_on("hsa-rocr-dev@" + ver, when="@" + ver)
@@ -174,13 +182,22 @@ class Hip(CMakePackage):
depends_on("rocminfo@" + ver, when="@" + ver)
depends_on("roctracer-dev-api@" + ver, when="@" + ver)
- for ver in ["5.4.0", "5.4.3", "5.5.0", "5.5.1", "5.6.0", "5.6.1"]:
+ for ver in [
+ "5.4.0",
+ "5.4.3",
+ "5.5.0",
+ "5.5.1",
+ "5.6.0",
+ "5.6.1",
+ "5.7.0",
+ "5.7.1",
+ "6.0.0",
+ ]:
depends_on("hipify-clang", when="@" + ver)
-
- for ver in ["5.5.0", "5.5.1", "5.6.0", "5.6.1"]:
+ for ver in ["5.5.0", "5.5.1", "5.6.0", "5.6.1", "5.7.0", "5.7.1", "6.0.0"]:
depends_on("rocm-core@" + ver, when="@" + ver)
# hipcc likes to add `-lnuma` by default :(
- # ref https://github.com/ROCm-Developer-Tools/HIP/pull/2202
+ # ref https://github.com/ROCm/HIP/pull/2202
depends_on("numactl", when="@3.7.0:")
# roc-obj-ls requirements
@@ -207,9 +224,7 @@ class Hip(CMakePackage):
]:
resource(
name="hipamd",
- url="https://github.com/ROCm-Developer-Tools/hipamd/archive/rocm-{0}.tar.gz".format(
- d_version
- ),
+ url="https://github.com/ROCm/hipamd/archive/rocm-{0}.tar.gz".format(d_version),
sha256=d_shasum,
expand=True,
destination="",
@@ -236,7 +251,7 @@ class Hip(CMakePackage):
]:
resource(
name="opencl",
- url="https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/rocm-{0}.tar.gz".format(
+ url="https://github.com/ROCm/ROCm-OpenCL-Runtime/archive/rocm-{0}.tar.gz".format(
d_version
),
sha256=d_shasum,
@@ -264,9 +279,7 @@ class Hip(CMakePackage):
]:
resource(
name="rocclr",
- url="https://github.com/ROCm-Developer-Tools/ROCclr/archive/rocm-{0}.tar.gz".format(
- d_version
- ),
+ url="https://github.com/ROCm/ROCclr/archive/rocm-{0}.tar.gz".format(d_version),
sha256=d_shasum,
expand=True,
destination="",
@@ -275,14 +288,15 @@ class Hip(CMakePackage):
)
# Add hip-clr sources thru the below
for d_version, d_shasum in [
+ ("6.0.0", "798b55b5b5fb90dd19db54f136d8d8e1da9ae1e408d5b12b896101d635f97e50"),
+ ("5.7.1", "c78490335233a11b4d8a5426ace7417c555f5e2325de10422df06c0f0f00f7eb"),
+ ("5.7.0", "bc2447cb6fd86dff6a333b04e77ce85755104d9011a14a044af53caf02449573"),
("5.6.1", "0b88af1e99643899d11b1c8cf8a3c46601051b328a5e0ffbd44ee88b7eb0db33"),
("5.6.0", "8dcd99110737a294f67a805639cf372890c8ca16c7603caaa793e71e84478fe4"),
]:
resource(
name="clr",
- url="https://github.com/ROCm-Developer-Tools/clr/archive/refs/tags/rocm-{0}.tar.gz".format(
- d_version
- ),
+ url="https://github.com/ROCm/clr/archive/refs/tags/rocm-{0}.tar.gz".format(d_version),
sha256=d_shasum,
expand=True,
destination="",
@@ -292,12 +306,15 @@ class Hip(CMakePackage):
# Add hipcc sources thru the below
for d_version, d_shasum in [
+ ("6.0.0", "e9cfaaecaf0e6ed363946439197f340c115e8e1189f96dbd716cf20245c29255"),
+ ("5.7.1", "d47d27ef2b5de7f49cdfd8547832ac9b437a32e6fc6f0e9c1646f4b704c90aee"),
+ ("5.7.0", "9f839bf7226e5e26f3150f8ba6eca507ab9a668e68b207736301b3bb9040c973"),
("5.6.1", "5800fac92b841ef6f52acda78d9bf86f83970bec0fb848a6265d239bdb7eb51a"),
("5.6.0", "fdb7fdc9e4648376120330f034ee8353038d34c8a015f9eb0c208c56eeddd097"),
]:
resource(
name="hipcc",
- url="https://github.com/ROCm-Developer-Tools/HIPCC/archive/refs/tags/rocm-{0}.tar.gz".format(
+ url="https://github.com/ROCm/HIPCC/archive/refs/tags/rocm-{0}.tar.gz".format(
d_version
),
sha256=d_shasum,
@@ -308,12 +325,15 @@ class Hip(CMakePackage):
)
# Add hiptests sources thru the below
for d_version, d_shasum in [
+ ("6.0.0", "e8f92a0f5d1f6093ca1fb24ff1b7140128900fcdc6e9f01f153d6907e5c2d807"),
+ ("5.7.1", "28fbdf49f405adfee903bc0f05a43ac392c55b34c514c3582dfb7d6d67e79985"),
+ ("5.7.0", "b1dae3cfc715e71dce92ac1da94265a9398944c76cee85ffab8f0c93665a48d6"),
("5.6.1", "5b3002ddfafda162329e4d9e6ac1200eeb48ff08e666b342aa8aeca30750f48b"),
("5.6.0", "8cf4509bf9c0747dab8ed8fec1365a9156792034b517207a0b2d63270429fd2e"),
]:
resource(
name="hip-tests",
- url="https://github.com/ROCm-Developer-Tools/hip-tests/archive/refs/tags/rocm-{0}.tar.gz".format(
+ url="https://github.com/ROCm/hip-tests/archive/refs/tags/rocm-{0}.tar.gz".format(
d_version
),
sha256=d_shasum,
@@ -355,10 +375,10 @@ class Hip(CMakePackage):
)
patch("0013-remove-compiler-rt-linkage-for-host.5.3.0.patch", when="@5.3.0:5.4")
- # See https://github.com/ROCm-Developer-Tools/HIP/pull/2141
+ # See https://github.com/ROCm/HIP/pull/2141
patch("0002-Fix-detection-of-HIP_CLANG_ROOT.patch", when="@:3.9.0")
- # See https://github.com/ROCm-Developer-Tools/HIP/pull/2218
+ # See https://github.com/ROCm/HIP/pull/2218
patch("0003-Improve-compilation-without-git-repo.3.7.0.patch", when="@3.7.0:3.9.0")
patch("0003-Improve-compilation-without-git-repo.3.10.0.patch", when="@3.10.0:4.0.0")
patch("0003-Improve-compilation-without-git-repo.4.1.0.patch", when="@4.1.0")
@@ -372,7 +392,7 @@ class Hip(CMakePackage):
"_disabletests.4.5.0.patch",
when="@4.5.0:4.5.3",
)
- # See https://github.com/ROCm-Developer-Tools/HIP/pull/2219
+ # See https://github.com/ROCm/HIP/pull/2219
patch("0004-Drop-clang-rt-builtins-linking-on-hip-host.3.7.0.patch", when="@3.7.0:3.9.0")
patch("0004-Drop-clang-rt-builtins-linking-on-hip-host.3.10.0.patch", when="@3.10.0:4.1.0")
@@ -387,13 +407,18 @@ class Hip(CMakePackage):
patch("0014-hip-test-file-reorg-5.4.0.patch", when="@5.4.0:5.5")
patch("0016-hip-sample-fix-hipMalloc-call.patch", when="@5.4.3:5.5")
patch("0014-remove-compiler-rt-linkage-for-host.5.5.0.patch", when="@5.5")
- patch("0014-remove-compiler-rt-linkage-for-host.5.6.0.patch", when="@5.6:")
- patch("0015-reverting-operator-mixup-fix-for-slate.patch", when="@5.6:")
- # See https://github.com/ROCm-Developer-Tools/HIP/pull/3206
+ patch("0014-remove-compiler-rt-linkage-for-host.5.6.0.patch", when="@5.6.0:5.6")
+ patch("0014-Remove-compiler-rt-linkage-for-host-for-5.7.0.patch", when="@5.7.0:5.7")
+ patch("0014-remove-compiler-rt-linkage-for-host.6.0.patch", when="@6.0:")
+ patch("0015-reverting-operator-mixup-fix-for-slate.patch", when="@5.6:6.0")
+ patch("0017-Set-PARAMETERS_MIN_ALIGNMENT-to-the-native-alignment.patch", when="@5.7:6.0")
+ patch("0018-reverting-hipMemoryType-with-memoryType.patch", when="@6.0")
+
+ # See https://github.com/ROCm/HIP/pull/3206
patch(
- "https://github.com/ROCm-Developer-Tools/HIP/commit/50ee82f6bc4aad10908ce09198c9f7ebfb2a3561.patch?full_index=1",
+ "https://github.com/ROCm/HIP/commit/50ee82f6bc4aad10908ce09198c9f7ebfb2a3561.patch?full_index=1",
sha256="c2ee21cdc55262c7c6ba65546b5ca5f65ea89730",
- when="@5.2:",
+ when="@5.2:5.7",
)
@property
@@ -455,6 +480,9 @@ def get_paths(self):
if self.spec.satisfies("@5.4:"):
paths["hipify-clang"] = rocm_prefix
+
+ if self.spec.satisfies("@5.7:"):
+ paths["hip-path"] = rocm_prefix
else:
paths = {
"hip-path": self.spec.prefix,
@@ -468,7 +496,6 @@ def get_paths(self):
if self.spec.satisfies("@5.4:"):
paths["hipify-clang"] = self.spec["hipify-clang"].prefix
-
if "@:3.8.0" in self.spec:
paths["bitcode"] = paths["rocm-device-libs"].lib
else:
@@ -517,7 +544,7 @@ def set_variables(self, env):
# This is a variable that does not exist in hipcc but was introduced
# in a patch of ours since 3.5.0 to locate rocm_agent_enumerator:
- # https://github.com/ROCm-Developer-Tools/HIP/pull/2138
+ # https://github.com/ROCm/HIP/pull/2138
env.set("ROCMINFO_PATH", paths["rocminfo"])
# This one is used in hipcc to run `clang --hip-device-lib-path=...`
@@ -532,7 +559,7 @@ def set_variables(self, env):
# Used in comgr and seems necessary when using the JIT compiler, e.g.
# hiprtcCreateProgram:
- # https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/blob/rocm-4.0.0/lib/comgr/src/comgr-env.cpp
+ # https://github.com/ROCm/ROCm-CompilerSupport/blob/rocm-4.0.0/lib/comgr/src/comgr-env.cpp
env.set("LLVM_PATH", paths["llvm-amdgpu"])
env.set("COMGR_PATH", paths["comgr"])
@@ -544,7 +571,7 @@ def set_variables(self, env):
# and parsing of the /bin/.hipVersion file. Let's just set this
# to the hip prefix directory for non-external builds so that the
# bin/.hipVersion file can still be parsed.
- # See also https://github.com/ROCm-Developer-Tools/HIP/issues/2223
+ # See also https://github.com/ROCm/HIP/issues/2223
if "@3.8.0:" in self.spec:
env.append_path(
"HIPCC_COMPILE_FLAGS_APPEND",
@@ -591,14 +618,26 @@ def patch(self):
"hipamd/hip-config.cmake.in",
string=True,
)
- if self.spec.satisfies("@5.6: +rocm"):
+ if self.spec.satisfies("@5.6.0:5.6 +rocm"):
filter_file(
'"${ROCM_PATH}/llvm"',
self.spec["llvm-amdgpu"].prefix,
"clr/hipamd/hip-config.cmake.in",
string=True,
)
-
+ if self.spec.satisfies("@5.7: +rocm"):
+ filter_file(
+ '"${ROCM_PATH}/llvm"',
+ self.spec["llvm-amdgpu"].prefix,
+ "clr/hipamd/hip-config-amd.cmake",
+ string=True,
+ )
+ filter_file(
+ '"${ROCM_PATH}/llvm"',
+ self.spec["llvm-amdgpu"].prefix,
+ "clr/hipamd/src/hiprtc/CMakeLists.txt",
+ string=True,
+ )
perl = self.spec["perl"].command
kwargs = {"ignore_absent": False, "backup": False, "string": False}
@@ -707,8 +746,17 @@ def cmake_args(self):
args.append(self.define("HIPCC_BIN_DIR", self.stage.source_path + "/hipcc/bin")),
args.append(self.define("CLR_BUILD_HIP", True)),
args.append(self.define("CLR_BUILD_OCL", False)),
+ args.append(self.define("HIP_LLVM_ROOT", self.spec["llvm-amdgpu"].prefix))
return args
+ test_src_dir_old = "samples"
+ test_src_dir = "hip-tests/samples"
+
+ @run_after("install")
+ def install_samples(self):
+ if self.spec.satisfies("@5.6.0:"):
+ install_tree(self.test_src_dir, self.spec.prefix.share.samples)
+
@run_after("install")
def cache_test_sources(self):
"""Copy the tests source files after the package is installed to an
@@ -716,16 +764,18 @@ def cache_test_sources(self):
if self.spec.satisfies("@:5.1.0"):
return
elif self.spec.satisfies("@5.1:5.5"):
- self.test_src_dir = "samples"
+ self.cache_extra_test_sources([self.test_src_dir_old])
elif self.spec.satisfies("@5.6:"):
- self.test_src_dir = "hip-tests/samples"
- self.cache_extra_test_sources([self.test_src_dir])
+ self.cache_extra_test_sources([self.test_src_dir])
def test_samples(self):
# configure, build and run all hip samples
if self.spec.satisfies("@:5.1.0"):
raise SkipTest("Test is only available for specs after version 5.1.0")
- test_dir = join_path(self.test_suite.current_test_cache_dir, self.test_src_dir)
+ elif self.spec.satisfies("@5.1:5.5"):
+ test_dir = join_path(self.test_suite.current_test_cache_dir, self.test_src_dir_old)
+ elif self.spec.satisfies("@5.6:"):
+ test_dir = join_path(self.test_suite.current_test_cache_dir, self.test_src_dir)
prefixes = ";".join(
[
self.spec["hip"].prefix,
diff --git a/var/spack/repos/builtin/packages/hipace/package.py b/var/spack/repos/builtin/packages/hipace/package.py
index 044d4ecfa2ad40..70ca72c6215a9c 100644
--- a/var/spack/repos/builtin/packages/hipace/package.py
+++ b/var/spack/repos/builtin/packages/hipace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -17,6 +17,8 @@ class Hipace(CMakePackage):
maintainers("ax3l", "MaxThevenet", "SeverinDiederichs")
+ license("BSD-3-Clause-LBNL")
+
version("develop", branch="development")
version("23.07", sha256="2b1f61c91d2543d7ee360eba3630c864107e29f7bcfd0221451beea88f414f21")
version("23.05", sha256="33a15cfeada3ca16c2a3af1538caa7ff731df13b48b884045a0fe7974382fcd1")
diff --git a/var/spack/repos/builtin/packages/hipblas/package.py b/var/spack/repos/builtin/packages/hipblas/package.py
index b0261bd5db545c..46b02ad3529075 100644
--- a/var/spack/repos/builtin/packages/hipblas/package.py
+++ b/var/spack/repos/builtin/packages/hipblas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -12,16 +12,21 @@ class Hipblas(CMakePackage, CudaPackage, ROCmPackage):
"""hipBLAS is a BLAS marshalling library, with multiple
supported backends"""
- homepage = "https://github.com/ROCmSoftwarePlatform/hipBLAS"
- git = "https://github.com/ROCmSoftwarePlatform/hipBLAS.git"
- url = "https://github.com/ROCmSoftwarePlatform/hipBLAS/archive/rocm-5.5.0.tar.gz"
+ homepage = "https://github.com/ROCm/hipBLAS"
+ git = "https://github.com/ROCm/hipBLAS.git"
+ url = "https://github.com/ROCm/hipBLAS/archive/rocm-6.0.0.tar.gz"
tags = ["rocm"]
maintainers("cgmb", "srekolam", "renjithravindrankannath", "haampie")
libraries = ["libhipblas"]
+ license("MIT")
+
version("develop", branch="develop")
version("master", branch="master")
+ version("6.0.0", sha256="8fbd0c244fe82eded866e06d2399b1d91ab5d43d2ebcb73382c7ce1ae48d9cb3")
+ version("5.7.1", sha256="794e9298f48ffbe3bd1c1ab87a5c2c2b953713500155fdec9ef8cbb11f81fc8a")
+ version("5.7.0", sha256="8c6cd2ffa4ce6ab03e05feffe074685b5525610870aebe9d78f817b3037f33a4")
version("5.6.1", sha256="f9da82fbefc68b84081ea0ed0139b91d2a540357fcf505c7f1d57eab01eb327c")
version("5.6.0", sha256="9453a31324e10ba528f8f4755d2c270d0ed9baa33e980d8f8383204d8e28a563")
version("5.5.1", sha256="5920c9a9c83cf7e2b42d1f99f5d5091cac7f6c0a040a737e869e57b92d7045a9")
@@ -132,14 +137,14 @@ class Hipblas(CMakePackage, CudaPackage, ROCmPackage):
patch("link-clients-blas.patch", when="@4.3.0:4.3.2")
patch("link-clients-blas-4.5.0.patch", when="@4.5.0:4.5.2")
patch("hipblas-link-clients-blas-5.0.0.patch", when="@5.0.0:5.0.2")
+ patch("remove-hipblas-clients-file-installation.patch", when="@5.5:5.7.1")
+ patch("remove-hipblas-clients-file-installation-6.0.patch", when="@6.0:")
- def check(self):
- exe = join_path(self.build_directory, "clients", "staging", "hipblas-test")
- self.run_test(exe, options=["--gtest_filter=-*known_bug*"])
-
- depends_on("rocm-cmake@5.2.0:", type="build", when="@5.2.0:")
+ depends_on("rocm-cmake@5.2.0:", type="build", when="@5.2.0:5.7")
depends_on("rocm-cmake@4.5.0:", type="build", when="@4.5.0:")
depends_on("rocm-cmake@3.5.0:", type="build")
+ for ver in ["6.0.0"]:
+ depends_on("rocm-cmake@" + ver, when="+rocm @" + ver)
depends_on("hip +cuda", when="+cuda")
@@ -171,12 +176,14 @@ def check(self):
"5.5.1",
"5.6.0",
"5.6.1",
+ "5.7.0",
+ "5.7.1",
+ "6.0.0",
"master",
"develop",
]:
depends_on("rocsolver@" + ver, when="+rocm @" + ver)
depends_on("rocblas@" + ver, when="+rocm @" + ver)
-
for tgt in ROCmPackage.amdgpu_targets:
depends_on(
"rocblas amdgpu_target={0}".format(tgt), when="+rocm amdgpu_target={0}".format(tgt)
@@ -222,3 +229,9 @@ def cmake_args(self):
args.append("-DCMAKE_INSTALL_LIBDIR=lib")
return args
+
+ @run_after("build")
+ @on_package_attributes(run_tests=True)
+ def check_build(self):
+ exe = Executable(join_path(self.build_directory, "clients", "staging", "hipblas-test"))
+ exe("--gtest_filter=-*known_bug*")
diff --git a/var/spack/repos/builtin/packages/hipblas/remove-hipblas-clients-file-installation-6.0.patch b/var/spack/repos/builtin/packages/hipblas/remove-hipblas-clients-file-installation-6.0.patch
new file mode 100644
index 00000000000000..ca6fa8f4131807
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hipblas/remove-hipblas-clients-file-installation-6.0.patch
@@ -0,0 +1,32 @@
+From 120af1b2483868ebdc2ee5f137418d23c14178ad Mon Sep 17 00:00:00 2001
+From: Renjith Ravindran
+Date: Wed, 10 Jan 2024 04:28:15 +0000
+Subject: [PATCH] Remove hipblas clients file installation
+
+---
+ clients/CMakeLists.txt | 12 ------------
+ 1 file changed, 12 deletions(-)
+
+diff --git a/clients/CMakeLists.txt b/clients/CMakeLists.txt
+index 8206ad7..6a59808 100644
+--- a/clients/CMakeLists.txt
++++ b/clients/CMakeLists.txt
+@@ -135,15 +135,3 @@ add_custom_command( OUTPUT "${HIPBLAS_GENTEST}"
+
+ add_custom_target( hipblas-common DEPENDS "${HIPBLAS_COMMON}" "${HIPBLAS_TEMPLATE}" "${HIPBLAS_SMOKE}" "${HIPBLAS_GENTEST}" )
+
+-if( BUILD_CLIENTS_TESTS OR BUILD_CLIENTS_BENCHMARKS )
+- rocm_install(
+- FILES ${HIPBLAS_COMMON} ${HIPBLAS_TEMPLATE} ${HIPBLAS_SMOKE}
+- DESTINATION "${CMAKE_INSTALL_BINDIR}"
+- COMPONENT clients-common
+- )
+- rocm_install(
+- PROGRAMS ${HIPBLAS_GENTEST}
+- DESTINATION "${CMAKE_INSTALL_BINDIR}"
+- COMPONENT clients-common
+- )
+-endif()
+--
+2.39.3
+
diff --git a/var/spack/repos/builtin/packages/hipblas/remove-hipblas-clients-file-installation.patch b/var/spack/repos/builtin/packages/hipblas/remove-hipblas-clients-file-installation.patch
new file mode 100644
index 00000000000000..a1adf8930675be
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hipblas/remove-hipblas-clients-file-installation.patch
@@ -0,0 +1,18 @@
+diff --git a/clients/CMakeLists.txt b/clients/CMakeLists.txt
+index 2ae1535..c956e00 100644
+--- a/clients/CMakeLists.txt
++++ b/clients/CMakeLists.txt
+@@ -134,13 +134,3 @@ add_custom_command( OUTPUT "${HIPBLAS_GENTEST}"
+
+ add_custom_target( hipblas-common DEPENDS "${HIPBLAS_COMMON}" "${HIPBLAS_TEMPLATE}" "${HIPBLAS_SMOKE}" "${HIPBLAS_GENTEST}" )
+
+-rocm_install(
+- FILES ${HIPBLAS_COMMON} ${HIPBLAS_TEMPLATE} ${HIPBLAS_SMOKE}
+- DESTINATION "${CMAKE_INSTALL_BINDIR}"
+- COMPONENT clients-common
+-)
+-rocm_install(
+- PROGRAMS ${HIPBLAS_GENTEST}
+- DESTINATION "${CMAKE_INSTALL_BINDIR}"
+- COMPONENT clients-common
+-)
diff --git a/var/spack/repos/builtin/packages/hipcub/package.py b/var/spack/repos/builtin/packages/hipcub/package.py
index cb878d18233df7..34e16cd4bc81b9 100644
--- a/var/spack/repos/builtin/packages/hipcub/package.py
+++ b/var/spack/repos/builtin/packages/hipcub/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
@@ -9,12 +9,17 @@
class Hipcub(CMakePackage, CudaPackage, ROCmPackage):
"""Radeon Open Compute Parallel Primitives Library"""
- homepage = "https://github.com/ROCmSoftwarePlatform/hipCUB"
- git = "https://github.com/ROCmSoftwarePlatform/hipCUB.git"
- url = "https://github.com/ROCmSoftwarePlatform/hipCUB/archive/rocm-5.5.0.tar.gz"
+ homepage = "https://github.com/ROCm/hipCUB"
+ git = "https://github.com/ROCm/hipCUB.git"
+ url = "https://github.com/ROCm/hipCUB/archive/rocm-6.0.0.tar.gz"
tags = ["rocm"]
+ license("BSD-3-Clause")
+
maintainers("srekolam", "renjithravindrankannath")
+ version("6.0.0", sha256="8d9f6e1e3f8433a2ceae1b0efd6727c21383980077e264725d00d5fee165bd30")
+ version("5.7.1", sha256="9b23a58408bc4c549d3c754196cb3e2c1a50e177ab0a286101cbea2f7f173945")
+ version("5.7.0", sha256="899356867f662d9a6f3870bb4a496f605a3143c6ad4d1fa9e9faead68fa8d13b")
version("5.6.1", sha256="4b9479daa40424c9ddbc14ce967aa170680f8ca1ed01a514e6e30ccfa22552ce")
version("5.6.0", sha256="5e74ddbf833f39836bf9ec6c6750348c7386a85ca67aaf9bb54d16c9e1959031")
version("5.5.1", sha256="ad83f3f1ed85ead9e3012906957c125a896168be913f6fb6af298228fc571480")
@@ -151,6 +156,9 @@ class Hipcub(CMakePackage, CudaPackage, ROCmPackage):
"5.5.1",
"5.6.0",
"5.6.1",
+ "5.7.0",
+ "5.7.1",
+ "6.0.0",
]:
depends_on("rocprim@" + ver, when="+rocm @" + ver)
depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver)
diff --git a/var/spack/repos/builtin/packages/hipfft/001-remove-submodule-and-sync-shared-files-from-rocFFT.patch b/var/spack/repos/builtin/packages/hipfft/001-remove-submodule-and-sync-shared-files-from-rocFFT.patch
new file mode 100644
index 00000000000000..537794d3cca8aa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hipfft/001-remove-submodule-and-sync-shared-files-from-rocFFT.patch
@@ -0,0 +1,11431 @@
+From 27ae15a459f45f1acfcb1a9b1c8d491d9f731fd4 Mon Sep 17 00:00:00 2001
+From: Steve Leung
+Date: Thu, 4 Jan 2024 16:36:08 -0700
+Subject: [PATCH] remove submodule and sync shared files from rocFFT, update
+ CHANGELOG.md
+
+---
+ clients/CMakeLists.txt | 15 -
+ clients/bench/CMakeLists.txt | 4 +-
+ clients/bench/bench.cpp | 2 +-
+ clients/hipfft_params.h | 2 +-
+ clients/tests/CMakeLists.txt | 11 +-
+ clients/tests/accuracy_test_1D.cpp | 8 +-
+ clients/tests/accuracy_test_2D.cpp | 8 +-
+ clients/tests/accuracy_test_3D.cpp | 8 +-
+ clients/tests/accuracy_test_callback.cpp | 2 +-
+ clients/tests/gtest_main.cpp | 6 +-
+ clients/tests/hipfft_accuracy_test.cpp | 11 +-
+ clients/tests/hipfft_accuracy_test.h | 2 +-
+ clients/tests/multi_device_test.cpp | 2 +-
+ cmake/dependencies.cmake | 3 -
+ library/src/amd_detail/hipfft.cpp | 8 +-
+ shared/accuracy_test.h | 1949 +++++++++++++
+ shared/arithmetic.h | 61 +
+ shared/array_predicate.h | 47 +
+ shared/array_validator.cpp | 549 ++++
+ shared/array_validator.h | 31 +
+ shared/concurrency.h | 41 +
+ shared/data_gen_device.h | 1303 +++++++++
+ shared/data_gen_host.h | 881 ++++++
+ shared/device_properties.h | 74 +
+ shared/enum_to_string.h | 81 +
+ shared/environment.h | 97 +
+ shared/fft_params.h | 3274 ++++++++++++++++++++++
+ shared/fftw_transform.h | 493 ++++
+ shared/gpubuf.h | 134 +
+ shared/hip_object_wrapper.h | 86 +
+ shared/hostbuf.h | 158 ++
+ shared/increment.h | 100 +
+ shared/precision_type.h | 70 +
+ shared/printbuffer.h | 108 +
+ shared/ptrdiff.h | 40 +
+ shared/rocfft_accuracy_test.h | 29 +
+ shared/rocfft_against_fftw.h | 231 ++
+ shared/rocfft_complex.h | 346 +++
+ shared/rocfft_hip.h | 52 +
+ shared/rocfft_params.h | 585 ++++
+ shared/test_params.h | 51 +
+ shared/work_queue.h | 49 +
+ 46 files changed, 10966 insertions(+), 66 deletions(-)
+ create mode 100644 shared/accuracy_test.h
+ create mode 100644 shared/arithmetic.h
+ create mode 100644 shared/array_predicate.h
+ create mode 100644 shared/array_validator.cpp
+ create mode 100644 shared/array_validator.h
+ create mode 100644 shared/concurrency.h
+ create mode 100644 shared/data_gen_device.h
+ create mode 100644 shared/data_gen_host.h
+ create mode 100644 shared/device_properties.h
+ create mode 100644 shared/enum_to_string.h
+ create mode 100644 shared/environment.h
+ create mode 100644 shared/fft_params.h
+ create mode 100644 shared/fftw_transform.h
+ create mode 100644 shared/gpubuf.h
+ create mode 100644 shared/hip_object_wrapper.h
+ create mode 100644 shared/hostbuf.h
+ create mode 100644 shared/increment.h
+ create mode 100644 shared/precision_type.h
+ create mode 100644 shared/printbuffer.h
+ create mode 100644 shared/ptrdiff.h
+ create mode 100644 shared/rocfft_accuracy_test.h
+ create mode 100644 shared/rocfft_against_fftw.h
+ create mode 100644 shared/rocfft_complex.h
+ create mode 100644 shared/rocfft_hip.h
+ create mode 100644 shared/rocfft_params.h
+ create mode 100644 shared/test_params.h
+ create mode 100644 shared/work_queue.h
+
+diff --git a/clients/CMakeLists.txt b/clients/CMakeLists.txt
+index 1db0d9c..b99a9e5 100644
+--- a/clients/CMakeLists.txt
++++ b/clients/CMakeLists.txt
+@@ -65,21 +65,6 @@ if( NOT CMAKE_CXX_COMPILER MATCHES ".*/hipcc$" AND NOT CMAKE_CXX_COMPILER_ID STR
+ endif()
+
+
+-if( GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git" )
+- message(STATUS "rocFFT submodule update")
+- execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
+- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/clients/rocFFT
+- RESULT_VARIABLE GIT_SUBMOD_RESULT)
+- if( NOT GIT_SUBMOD_RESULT EQUAL "0" )
+- message(FATAL_ERROR "git submodule update --init --recursive failed with ${GIT_SUBMOD_RESULT}, please checkout submodules manually.")
+- endif( )
+-endif( )
+-
+-if( NOT EXISTS "${CMAKE_SOURCE_DIR}/clients/rocFFT/CMakeLists.txt" )
+- message(FATAL_ERROR "The rocFFT submodule is not present! Please update git submodules and try again. ${CMAKE_CURRENT_SOURCE_DIR}/clients/rocFFT/CMakeLists.txt")
+-endif( )
+-
+-
+ # This option only works for make/nmake and the ninja generators, but no reason it shouldn't be on
+ # all the time
+ # This tells cmake to create a compile_commands.json file that can be used with clang tooling or vim
+diff --git a/clients/bench/CMakeLists.txt b/clients/bench/CMakeLists.txt
+index b5cef9b..ccb8c29 100644
+--- a/clients/bench/CMakeLists.txt
++++ b/clients/bench/CMakeLists.txt
+@@ -26,8 +26,8 @@ find_package( Boost COMPONENTS program_options REQUIRED)
+ set( Boost_USE_STATIC_LIBS OFF )
+
+
+-set( hipfft_bench_source bench.cpp ../rocFFT/shared/array_validator.cpp )
+-set( hipfft_bench_includes bench.h ../rocFFT/shared/array_validator.h )
++set( hipfft_bench_source bench.cpp ../../shared/array_validator.cpp )
++set( hipfft_bench_includes bench.h ../../shared/array_validator.h )
+
+ add_executable( hipfft-bench ${hipfft_bench_source} ${hipfft_bench_includes} )
+
+diff --git a/clients/bench/bench.cpp b/clients/bench/bench.cpp
+index 894769c..a906879 100644
+--- a/clients/bench/bench.cpp
++++ b/clients/bench/bench.cpp
+@@ -29,7 +29,7 @@
+ #include
+ namespace po = boost::program_options;
+
+-#include "../rocFFT/shared/gpubuf.h"
++#include "../../shared/gpubuf.h"
+
+ int main(int argc, char* argv[])
+ {
+diff --git a/clients/hipfft_params.h b/clients/hipfft_params.h
+index b8b58ac..75d9db9 100644
+--- a/clients/hipfft_params.h
++++ b/clients/hipfft_params.h
+@@ -23,9 +23,9 @@
+
+ #include
+
++#include "../shared/fft_params.h"
+ #include "hipfft/hipfft.h"
+ #include "hipfft/hipfftXt.h"
+-#include "rocFFT/shared/fft_params.h"
+
+ inline fft_status fft_status_from_hipfftparams(const hipfftResult_t val)
+ {
+diff --git a/clients/tests/CMakeLists.txt b/clients/tests/CMakeLists.txt
+index 9742a45..2d1aac0 100644
+--- a/clients/tests/CMakeLists.txt
++++ b/clients/tests/CMakeLists.txt
+@@ -37,14 +37,7 @@ set( hipfft-test_source
+ accuracy_test_3D.cpp
+ accuracy_test_callback.cpp
+ multi_device_test.cpp
+- ../rocFFT/shared/array_validator.cpp
+- )
+-
+-set( hipfft-test_includes
+- ../rocFFT/clients/tests/fftw_transform.h
+- ../rocFFT/clients/tests/rocfft_against_fftw.h
+- ../rocFFT/clients/tests/misc/include/test_exception.h
+- ../rocFFT/shared/array_validator.h
++ ../../shared/array_validator.cpp
+ )
+
+ add_executable( hipfft-test ${hipfft-test_source} ${hipfft-test_includes} )
+@@ -56,8 +49,6 @@ target_include_directories(
+ $
+ $
+ $
+- $
+- $
+ )
+
+
+diff --git a/clients/tests/accuracy_test_1D.cpp b/clients/tests/accuracy_test_1D.cpp
+index 27e849d..57d846a 100644
+--- a/clients/tests/accuracy_test_1D.cpp
++++ b/clients/tests/accuracy_test_1D.cpp
+@@ -23,11 +23,11 @@
+ #include
+ #include
+
+-#include "../rocFFT/shared/fft_params.h"
++#include "../../shared/fft_params.h"
+
+-#include "accuracy_test.h"
+-#include "fftw_transform.h"
+-#include "rocfft_against_fftw.h"
++#include "../../shared/accuracy_test.h"
++#include "../../shared/fftw_transform.h"
++#include "../../shared/rocfft_against_fftw.h"
+
+ using ::testing::ValuesIn;
+
+diff --git a/clients/tests/accuracy_test_2D.cpp b/clients/tests/accuracy_test_2D.cpp
+index 1674593..6f618c0 100644
+--- a/clients/tests/accuracy_test_2D.cpp
++++ b/clients/tests/accuracy_test_2D.cpp
+@@ -23,11 +23,11 @@
+ #include
+ #include
+
+-#include "../rocFFT/shared/fft_params.h"
++#include "../../shared/fft_params.h"
+
+-#include "accuracy_test.h"
+-#include "fftw_transform.h"
+-#include "rocfft_against_fftw.h"
++#include "../../shared/accuracy_test.h"
++#include "../../shared/fftw_transform.h"
++#include "../../shared/rocfft_against_fftw.h"
+
+ using ::testing::ValuesIn;
+
+diff --git a/clients/tests/accuracy_test_3D.cpp b/clients/tests/accuracy_test_3D.cpp
+index a87476a..941ec24 100644
+--- a/clients/tests/accuracy_test_3D.cpp
++++ b/clients/tests/accuracy_test_3D.cpp
+@@ -23,11 +23,11 @@
+ #include
+ #include
+
+-#include "../rocFFT/shared/fft_params.h"
++#include "../../shared/fft_params.h"
+
+-#include "accuracy_test.h"
+-#include "fftw_transform.h"
+-#include "rocfft_against_fftw.h"
++#include "../../shared/accuracy_test.h"
++#include "../../shared/fftw_transform.h"
++#include "../../shared/rocfft_against_fftw.h"
+
+ using ::testing::ValuesIn;
+
+diff --git a/clients/tests/accuracy_test_callback.cpp b/clients/tests/accuracy_test_callback.cpp
+index 4782830..b5cc4a7 100644
+--- a/clients/tests/accuracy_test_callback.cpp
++++ b/clients/tests/accuracy_test_callback.cpp
+@@ -18,7 +18,7 @@
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ // THE SOFTWARE.
+
+-#include "accuracy_test.h"
++#include "../../shared/accuracy_test.h"
+
+ std::vector> callback_sizes = {
+ // some single kernel sizes
+diff --git a/clients/tests/gtest_main.cpp b/clients/tests/gtest_main.cpp
+index 1f0ae83..2f7674e 100644
+--- a/clients/tests/gtest_main.cpp
++++ b/clients/tests/gtest_main.cpp
+@@ -30,10 +30,10 @@
+ #include
+ #include
+
++#include "../../shared/concurrency.h"
++#include "../../shared/environment.h"
++#include "../../shared/work_queue.h"
+ #include "../hipfft_params.h"
+-#include "../rocFFT/shared/concurrency.h"
+-#include "../rocFFT/shared/environment.h"
+-#include "../rocFFT/shared/work_queue.h"
+ #include "hipfft/hipfft.h"
+ #include "hipfft_accuracy_test.h"
+ #include "hipfft_test_params.h"
+diff --git a/clients/tests/hipfft_accuracy_test.cpp b/clients/tests/hipfft_accuracy_test.cpp
+index 2abaf74..609239a 100644
+--- a/clients/tests/hipfft_accuracy_test.cpp
++++ b/clients/tests/hipfft_accuracy_test.cpp
+@@ -29,11 +29,12 @@
+ #include "hipfft/hipfft.h"
+
+ #include "../hipfft_params.h"
+-#include "../rocFFT/clients/tests/fftw_transform.h"
+-#include "../rocFFT/clients/tests/rocfft_accuracy_test.h"
+-#include "../rocFFT/clients/tests/rocfft_against_fftw.h"
+-#include "../rocFFT/shared/gpubuf.h"
+-#include "../rocFFT/shared/rocfft_complex.h"
++
++#include "../../shared/accuracy_test.h"
++#include "../../shared/fftw_transform.h"
++#include "../../shared/gpubuf.h"
++#include "../../shared/rocfft_against_fftw.h"
++#include "../../shared/rocfft_complex.h"
+
+ void fft_vs_reference(hipfft_params& params, bool round_trip)
+ {
+diff --git a/clients/tests/hipfft_accuracy_test.h b/clients/tests/hipfft_accuracy_test.h
+index 0491bd9..181150e 100644
+--- a/clients/tests/hipfft_accuracy_test.h
++++ b/clients/tests/hipfft_accuracy_test.h
+@@ -23,8 +23,8 @@
+ #ifndef ROCFFT_ACCURACY_TEST
+ #define ROCFFT_ACCURACY_TEST
+
++#include "../../shared/accuracy_test.h"
+ #include "../hipfft_params.h"
+-#include "../rocFFT/clients/tests/accuracy_test.h"
+
+ void fft_vs_reference(hipfft_params& params, bool round_trip = false);
+
+diff --git a/clients/tests/multi_device_test.cpp b/clients/tests/multi_device_test.cpp
+index b3dc4c9..3274b80 100644
+--- a/clients/tests/multi_device_test.cpp
++++ b/clients/tests/multi_device_test.cpp
+@@ -18,7 +18,7 @@
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ // THE SOFTWARE.
+
+-#include "accuracy_test.h"
++#include "../../shared/accuracy_test.h"
+ #include
+ #include
+
+diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake
+index 5810e37..bdbf689 100644
+--- a/cmake/dependencies.cmake
++++ b/cmake/dependencies.cmake
+@@ -21,9 +21,6 @@
+ #
+ # #############################################################################
+
+-# Git
+-find_package(Git REQUIRED)
+-
+ # HIP
+ if( NOT CMAKE_CXX_COMPILER MATCHES ".*/hipcc$" )
+ if( NOT BUILD_WITH_LIB STREQUAL "CUDA" )
+diff --git a/library/src/amd_detail/hipfft.cpp b/library/src/amd_detail/hipfft.cpp
+index c2f7036..3d4f61f 100644
+--- a/library/src/amd_detail/hipfft.cpp
++++ b/library/src/amd_detail/hipfft.cpp
+@@ -27,10 +27,10 @@
+ #include
+ #include
+
+-#include "../../../clients/rocFFT/shared/arithmetic.h"
+-#include "../../../clients/rocFFT/shared/gpubuf.h"
+-#include "../../../clients/rocFFT/shared/ptrdiff.h"
+-#include "../../../clients/rocFFT/shared/rocfft_hip.h"
++#include "../../../shared/arithmetic.h"
++#include "../../../shared/gpubuf.h"
++#include "../../../shared/ptrdiff.h"
++#include "../../../shared/rocfft_hip.h"
+
+ #define ROC_FFT_CHECK_ALLOC_FAILED(ret) \
+ { \
+diff --git a/shared/accuracy_test.h b/shared/accuracy_test.h
+new file mode 100644
+index 0000000..362a7c1
+--- /dev/null
++++ b/shared/accuracy_test.h
+@@ -0,0 +1,1949 @@
++// Copyright (C) 2020 - 2023 Advanced Micro Devices, Inc. All rights reserved.
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++#pragma once
++
++#ifndef ACCURACY_TEST
++#define ACCURACY_TEST
++
++#include
++#include
++#include
++#include
++#include
++#include
++
++#include "enum_to_string.h"
++#include "fft_params.h"
++#include "fftw_transform.h"
++#include "gpubuf.h"
++#include "rocfft_against_fftw.h"
++#include "test_params.h"
++
++extern int verbose;
++extern size_t ramgb;
++extern bool fftw_compare;
++
++static const size_t ONE_GiB = 1 << 30;
++
++inline size_t bytes_to_GiB(const size_t bytes)
++{
++ return bytes == 0 ? 0 : (bytes - 1 + ONE_GiB) / ONE_GiB;
++}
++
++typedef std::tuple
++ type_place_io_t;
++
++// Remember the results of the last FFT we computed with FFTW. Tests
++// are ordered so that later cases can often reuse this result.
++struct last_cpu_fft_cache
++{
++ // keys to the cache
++ std::vector length;
++ size_t nbatch = 0;
++ fft_transform_type transform_type = fft_transform_type_complex_forward;
++ bool run_callbacks = false;
++ fft_precision precision = fft_precision_single;
++
++ // FFTW input/output
++ std::vector cpu_input;
++ std::vector cpu_output;
++};
++extern last_cpu_fft_cache last_cpu_fft_data;
++
++struct system_memory
++{
++ size_t total_bytes = 0;
++ size_t free_bytes = 0;
++};
++extern system_memory start_memory;
++
++system_memory get_system_memory();
++
++// Estimate the amount of host memory needed for buffers.
++inline size_t needed_ram_buffers(const fft_params& params, const int verbose)
++{
++ // This calculation is assuming contiguous data but noncontiguous buffers
++ // are assumed to require a close enough amount of space for the purposes
++ // of this estimate.
++
++ size_t needed_ram = 6
++ * std::accumulate(params.length.begin(),
++ params.length.end(),
++ static_cast(1),
++ std::multiplies());
++
++ // Account for precision and data type:
++ if(params.transform_type != fft_transform_type_real_forward
++ && params.transform_type != fft_transform_type_real_inverse)
++ {
++ needed_ram *= 2;
++ }
++ switch(params.precision)
++ {
++ case fft_precision_half:
++ needed_ram *= 2;
++ break;
++ case fft_precision_single:
++ needed_ram *= 4;
++ break;
++ case fft_precision_double:
++ needed_ram *= 8;
++ break;
++ }
++
++ needed_ram *= params.nbatch;
++
++ if(verbose)
++ {
++ std::cout << "required host memory for buffers (GiB): " << bytes_to_GiB(needed_ram) << "\n";
++ }
++
++ return needed_ram;
++}
++
++template
++bool fftw_plan_uses_bluestein(const typename fftw_trait::fftw_plan_type& cpu_plan)
++{
++#ifdef FFTW_HAVE_SPRINT_PLAN
++ char* print_plan_c_str = fftw_sprint_plan(cpu_plan);
++ std::string print_plan(print_plan_c_str);
++ free(print_plan_c_str);
++ return print_plan.find("bluestein") != std::string::npos;
++#else
++ // assume worst case (bluestein is always used)
++ return true;
++#endif
++}
++
++// Estimate the amount of host memory needed for fftw.
++template
++inline size_t needed_ram_fftw(const fft_params& contiguous_params,
++ const typename fftw_trait::fftw_plan_type& cpu_plan,
++ const int verbose)
++{
++ size_t total_length = std::accumulate(contiguous_params.length.begin(),
++ contiguous_params.length.end(),
++ static_cast(1),
++ std::multiplies());
++ size_t needed_ram = 0;
++ // Detect Bluestein in plan
++ if(fftw_plan_uses_bluestein(cpu_plan))
++ {
++ for(size_t dim : contiguous_params.length)
++ {
++ unsigned int needed_ram_dim = dim;
++
++ // Next-plus-one-power-of-two multiplied any other lengths
++ needed_ram_dim--;
++
++ needed_ram_dim |= needed_ram_dim >> 2;
++ needed_ram_dim |= needed_ram_dim >> 4;
++ needed_ram_dim |= needed_ram_dim >> 8;
++ needed_ram_dim |= needed_ram_dim >> 16;
++
++ needed_ram_dim++;
++
++ needed_ram_dim *= 2 * (total_length / dim);
++
++ if(needed_ram_dim > needed_ram)
++ {
++ needed_ram = needed_ram_dim;
++ }
++ }
++ }
++
++ // Account for precision and data type:
++ if(contiguous_params.transform_type != fft_transform_type_real_forward
++ && contiguous_params.transform_type != fft_transform_type_real_inverse)
++ {
++ needed_ram *= 2;
++ }
++ switch(contiguous_params.precision)
++ {
++ case fft_precision_half:
++ needed_ram *= 2;
++ break;
++ case fft_precision_single:
++ needed_ram *= 4;
++ break;
++ case fft_precision_double:
++ needed_ram *= 8;
++ break;
++ }
++
++ needed_ram *= contiguous_params.nbatch;
++
++ if(verbose)
++ {
++ std::cout << "required host memory for FFTW (GiB): " << bytes_to_GiB(needed_ram) << "\n";
++ }
++
++ return needed_ram;
++}
++
++// Base gtest class for comparison with FFTW.
++class accuracy_test : public ::testing::TestWithParam
++{
++protected:
++ void SetUp() override {}
++ void TearDown() override {}
++
++public:
++ static std::string TestName(const testing::TestParamInfo& info)
++ {
++ return info.param.token();
++ }
++};
++
++const static std::vector batch_range = {2, 1};
++
++const static std::vector precision_range_full
++ = {fft_precision_double, fft_precision_single, fft_precision_half};
++const static std::vector precision_range_sp_dp
++ = {fft_precision_double, fft_precision_single};
++
++const static std::vector place_range
++ = {fft_placement_inplace, fft_placement_notinplace};
++const static std::vector trans_type_range
++ = {fft_transform_type_complex_forward, fft_transform_type_real_forward};
++const static std::vector trans_type_range_complex
++ = {fft_transform_type_complex_forward};
++const static std::vector trans_type_range_real
++ = {fft_transform_type_real_forward};
++
++// Given a vector of vector of lengths, generate all unique permutations.
++// Add an optional vector of ad-hoc lengths to the result.
++inline std::vector>
++ generate_lengths(const std::vector>& inlengths)
++{
++ std::vector> output;
++ if(inlengths.size() == 0)
++ {
++ return output;
++ }
++ const size_t dim = inlengths.size();
++ std::vector looplength(dim);
++ for(unsigned int i = 0; i < dim; ++i)
++ {
++ looplength[i] = inlengths[i].size();
++ }
++ for(unsigned int idx = 0; idx < inlengths.size(); ++idx)
++ {
++ std::vector index(dim);
++ do
++ {
++ std::vector length(dim);
++ for(unsigned int i = 0; i < dim; ++i)
++ {
++ length[i] = inlengths[i][index[i]];
++ }
++ output.push_back(length);
++ } while(increment_rowmajor(index, looplength));
++ }
++ // uniquify the result
++ std::sort(output.begin(), output.end());
++ output.erase(std::unique(output.begin(), output.end()), output.end());
++ return output;
++}
++
++// Return the valid rocFFT input and output types for a given transform type.
++inline std::vector>
++ iotypes(const fft_transform_type transformType,
++ const fft_result_placement place,
++ const bool planar = true)
++{
++ std::vector> iotypes;
++ switch(transformType)
++ {
++ case fft_transform_type_complex_forward:
++ case fft_transform_type_complex_inverse:
++ iotypes.push_back(std::make_pair(
++ fft_array_type_complex_interleaved, fft_array_type_complex_interleaved));
++ if(planar)
++ {
++ iotypes.push_back(std::make_pair(
++ fft_array_type_complex_planar, fft_array_type_complex_planar));
++ if(place == fft_placement_notinplace)
++ {
++ iotypes.push_back(std::make_pair(
++ fft_array_type_complex_planar, fft_array_type_complex_interleaved));
++ iotypes.push_back(std::make_pair(
++ fft_array_type_complex_interleaved, fft_array_type_complex_planar));
++ }
++ }
++ break;
++ case fft_transform_type_real_forward:
++ iotypes.push_back(std::make_pair(
++ fft_array_type_real, fft_array_type_hermitian_interleaved));
++ if(planar && place == fft_placement_notinplace)
++ {
++ iotypes.push_back(std::make_pair(
++ fft_array_type_real, fft_array_type_hermitian_planar));
++ }
++ break;
++ case fft_transform_type_real_inverse:
++ iotypes.push_back(std::make_pair(
++ fft_array_type_hermitian_interleaved, fft_array_type_real));
++ if(planar && place == fft_placement_notinplace)
++ {
++ iotypes.push_back(std::make_pair(
++ fft_array_type_hermitian_planar, fft_array_type_real));
++ }
++ break;
++ default:
++ throw std::runtime_error("Invalid transform type");
++ }
++ return iotypes;
++}
++
++// Generate all combinations of input/output types, from combinations of transform and placement
++// types.
++static std::vector
++ generate_types(fft_transform_type transform_type,
++ const std::vector& place_range,
++ const bool planar)
++{
++ std::vector ret;
++ for(auto place : place_range)
++ {
++ for(auto iotype : iotypes(transform_type, place, planar))
++ {
++ ret.push_back(std::make_tuple(transform_type, place, iotype.first, iotype.second));
++ }
++ }
++ return ret;
++}
++
++struct stride_generator
++{
++ struct stride_dist
++ {
++ stride_dist(const std::vector& s, size_t d)
++ : stride(s)
++ , dist(d)
++ {
++ }
++ std::vector stride;
++ size_t dist;
++ };
++
++ // NOTE: allow for this ctor to be implicit, so it's less typing for a test writer
++ //
++ // cppcheck-suppress noExplicitConstructor
++ stride_generator(const std::vector>& stride_list_in)
++ : stride_list(stride_list_in)
++ {
++ }
++ virtual std::vector generate(const std::vector& lengths,
++ size_t batch) const
++ {
++ std::vector ret;
++ for(const auto& s : stride_list)
++ ret.emplace_back(s, 0);
++ return ret;
++ }
++ std::vector> stride_list;
++};
++
++// Generate strides such that batch is essentially the innermost dimension
++// e.g. given a batch-2 4x3x2 transform which logically looks like:
++//
++// batch0:
++// A B A B
++// A B A B
++// A B A B
++//
++// A B A B
++// A B A B
++// A B A B
++//
++// batch1:
++// A B A B
++// A B A B
++// A B A B
++//
++// A B A B
++// A B A B
++// A B A B
++//
++// we instead do stride-2 4x3x2 transform where first batch is the
++// A's and second batch is the B's.
++struct stride_generator_3D_inner_batch : public stride_generator
++{
++ explicit stride_generator_3D_inner_batch(const std::vector>& stride_list_in)
++ : stride_generator(stride_list_in)
++ {
++ }
++ std::vector generate(const std::vector& lengths,
++ size_t batch) const override
++ {
++ std::vector ret = stride_generator::generate(lengths, batch);
++ std::vector strides{lengths[1] * lengths[2] * batch, lengths[2] * batch, batch};
++ ret.emplace_back(strides, 1);
++ return ret;
++ }
++};
++
++// Create an array of parameters to pass to gtest. Base generator
++// that allows choosing transform type.
++inline auto param_generator_base(const std::vector& type_range,
++ const std::vector>& v_lengths,
++ const std::vector& precision_range,
++ const std::vector& batch_range,
++ decltype(generate_types) types_generator,
++ const stride_generator& istride,
++ const stride_generator& ostride,
++ const std::vector>& ioffset_range,
++ const std::vector>& ooffset_range,
++ const std::vector& place_range,
++ const bool planar = true,
++ const bool run_callbacks = false)
++{
++
++ std::vector params;
++
++ // For any length, we compute double-precision CPU reference
++ // for largest batch size first and reuse for smaller batch
++ // sizes, then convert to single-precision.
++
++ for(auto& transform_type : type_range)
++ {
++ for(const auto& lengths : v_lengths)
++ {
++ // try to ensure that we are given literal lengths, not
++ // something to be passed to generate_lengths
++ if(lengths.empty() || lengths.size() > 3)
++ {
++ continue;
++ }
++ {
++ for(const auto precision : precision_range)
++ {
++ for(const auto batch : batch_range)
++ {
++ for(const auto& types :
++ types_generator(transform_type, place_range, planar))
++ {
++ for(const auto& istride_dist : istride.generate(lengths, batch))
++ {
++ for(const auto& ostride_dist : ostride.generate(lengths, batch))
++ {
++ for(const auto& ioffset : ioffset_range)
++ {
++ for(const auto& ooffset : ooffset_range)
++ {
++ fft_params param;
++
++ param.length = lengths;
++ param.istride = istride_dist.stride;
++ param.ostride = ostride_dist.stride;
++ param.nbatch = batch;
++ param.precision = precision;
++ param.transform_type = std::get<0>(types);
++ param.placement = std::get<1>(types);
++ param.idist = istride_dist.dist;
++ param.odist = ostride_dist.dist;
++ param.itype = std::get<2>(types);
++ param.otype = std::get<3>(types);
++ param.ioffset = ioffset;
++ param.ooffset = ooffset;
++
++ if(run_callbacks)
++ {
++ // add a test if both input and output support callbacks
++ if(param.itype != fft_array_type_complex_planar
++ && param.itype != fft_array_type_hermitian_planar
++ && param.otype != fft_array_type_complex_planar
++ && param.otype
++ != fft_array_type_hermitian_planar)
++ {
++ param.run_callbacks = true;
++ }
++ else
++ {
++ continue;
++ }
++ }
++ param.validate();
++
++ // Keeping the random number generator here
++ // allows one to run the same tests for a given
++ // random seed; ie the test suite is repeatable.
++ std::hash hasher;
++ std::ranlux24_base gen(random_seed
++ + hasher(param.token()));
++ std::uniform_real_distribution<> dis(0.0, 1.0);
++
++ if(param.is_planar())
++ {
++ const double roll = dis(gen);
++ if(roll > planar_prob)
++ {
++ if(verbose > 4)
++ {
++ std::cout << "Planar transform skipped "
++ "(planar_prob: "
++ << planar_prob << " > " << roll
++ << ")\n";
++ }
++ continue;
++ }
++ }
++ if(run_callbacks)
++ {
++ const double roll = dis(gen);
++ if(roll > callback_prob)
++ {
++
++ if(verbose > 4)
++ {
++ std::cout << "Callback transform skipped "
++ "(planar_prob: "
++ << planar_prob << " > " << roll
++ << ")\n";
++ }
++ continue;
++ }
++ }
++
++ if(param.valid(0))
++ {
++ params.push_back(param);
++ }
++ }
++ }
++ }
++ }
++ }
++ }
++ }
++ }
++ }
++ }
++ return params;
++}
++
++// Create an array of parameters to pass to gtest. Default generator
++// that picks all transform types.
++inline auto param_generator(const std::vector>& v_lengths,
++ const std::vector& precision_range,
++ const std::vector& batch_range,
++ const stride_generator& istride,
++ const stride_generator& ostride,
++ const std::vector>& ioffset_range,
++ const std::vector>& ooffset_range,
++ const std::vector& place_range,
++ const bool planar,
++ const bool run_callbacks = false)
++{
++ return param_generator_base(trans_type_range,
++ v_lengths,
++ precision_range,
++ batch_range,
++ generate_types,
++ istride,
++ ostride,
++ ioffset_range,
++ ooffset_range,
++ place_range,
++ planar,
++ run_callbacks);
++}
++
++// Create an array of parameters to pass to gtest. Only tests complex-type transforms
++inline auto param_generator_complex(const std::vector>& v_lengths,
++ const std::vector& precision_range,
++ const std::vector& batch_range,
++ const stride_generator& istride,
++ const stride_generator& ostride,
++ const std::vector>& ioffset_range,
++ const std::vector>& ooffset_range,
++ const std::vector& place_range,
++ const bool planar,
++ const bool run_callbacks = false)
++{
++ return param_generator_base(trans_type_range_complex,
++ v_lengths,
++ precision_range,
++ batch_range,
++ generate_types,
++ istride,
++ ostride,
++ ioffset_range,
++ ooffset_range,
++ place_range,
++ planar,
++ run_callbacks);
++}
++
++// Create an array of parameters to pass to gtest.
++inline auto param_generator_real(const std::vector>& v_lengths,
++ const std::vector& precision_range,
++ const std::vector& batch_range,
++ const stride_generator& istride,
++ const stride_generator& ostride,
++ const std::vector>& ioffset_range,
++ const std::vector>& ooffset_range,
++ const std::vector& place_range,
++ const bool planar,
++ const bool run_callbacks = false)
++{
++ return param_generator_base(trans_type_range_real,
++ v_lengths,
++ precision_range,
++ batch_range,
++ generate_types,
++ istride,
++ ostride,
++ ioffset_range,
++ ooffset_range,
++ place_range,
++ planar,
++ run_callbacks);
++}
++
++template
++auto param_generator_token(const Tcontainer& tokens)
++{
++ std::vector params;
++ params.reserve(tokens.size());
++ for(auto t : tokens)
++ {
++ params.push_back({});
++ params.back().from_token(t);
++ }
++ return params;
++}
++
++struct callback_test_data
++{
++ // scalar to modify the input/output with
++ double scalar;
++ // base address of input, to ensure that each callback gets an offset from that base
++ void* base;
++};
++
++void* get_load_callback_host(fft_array_type itype,
++ fft_precision precision,
++ bool round_trip_inverse);
++void apply_load_callback(const fft_params& params, std::vector& input);
++void apply_store_callback(const fft_params& params, std::vector& output);
++void* get_store_callback_host(fft_array_type otype,
++ fft_precision precision,
++ bool round_trip_inverse);
++
++static auto allocate_cpu_fft_buffer(const fft_precision precision,
++ const fft_array_type type,
++ const std::vector& size)
++{
++ // FFTW does not support half-precision, so we do single instead.
++ // So if we need to do a half-precision FFTW transform, allocate
++ // enough buffer for single-precision instead.
++ return allocate_host_buffer(
++ precision == fft_precision_half ? fft_precision_single : precision, type, size);
++}
++
++template
++inline void execute_cpu_fft(fft_params& params,
++ fft_params& contiguous_params,
++ typename fftw_trait::fftw_plan_type& cpu_plan,
++ std::vector& cpu_input,
++ std::vector& cpu_output)
++{
++ // CPU output might not be allocated already for us, if FFTW never
++ // needed an output buffer during planning
++ if(cpu_output.empty())
++ cpu_output = allocate_cpu_fft_buffer(
++ contiguous_params.precision, contiguous_params.otype, contiguous_params.osize);
++
++ // If this is either C2R or callbacks are enabled, the
++ // input will be modified. So we need to modify the copy instead.
++ std::vector cpu_input_copy(cpu_input.size());
++ std::vector* input_ptr = &cpu_input;
++ if(params.run_callbacks || contiguous_params.transform_type == fft_transform_type_real_inverse)
++ {
++ for(size_t i = 0; i < cpu_input.size(); ++i)
++ {
++ cpu_input_copy[i] = cpu_input[i].copy();
++ }
++
++ input_ptr = &cpu_input_copy;
++ }
++
++ // run FFTW (which may destroy CPU input)
++ apply_load_callback(params, *input_ptr);
++ fftw_run(contiguous_params.transform_type, cpu_plan, *input_ptr, cpu_output);
++ // clean up
++ fftw_destroy_plan_type(cpu_plan);
++ // ask FFTW to fully clean up, since it tries to cache plan details
++ fftw_cleanup();
++ cpu_plan = nullptr;
++ apply_store_callback(params, cpu_output);
++}
++
++// execute the GPU transform
++template
++inline void execute_gpu_fft(Tparams& params,
++ std::vector& pibuffer,
++ std::vector& pobuffer,
++ std::vector& obuffer,
++ std::vector& gpu_output,
++ bool round_trip_inverse = false)
++{
++ gpubuf_t load_cb_data_dev;
++ gpubuf_t store_cb_data_dev;
++ if(params.run_callbacks)
++ {
++ void* load_cb_host
++ = get_load_callback_host(params.itype, params.precision, round_trip_inverse);
++
++ callback_test_data load_cb_data_host;
++
++ if(round_trip_inverse)
++ {
++ load_cb_data_host.scalar = params.store_cb_scalar;
++ }
++ else
++ {
++ load_cb_data_host.scalar = params.load_cb_scalar;
++ }
++
++ load_cb_data_host.base = pibuffer.front();
++
++ auto hip_status = hipSuccess;
++
++ hip_status = load_cb_data_dev.alloc(sizeof(callback_test_data));
++ if(hip_status != hipSuccess)
++ {
++ ++n_hip_failures;
++ if(skip_runtime_fails)
++ {
++ GTEST_SKIP();
++ }
++ else
++ {
++ GTEST_FAIL();
++ }
++ }
++ hip_status = hipMemcpy(load_cb_data_dev.data(),
++ &load_cb_data_host,
++ sizeof(callback_test_data),
++ hipMemcpyHostToDevice);
++ if(hip_status != hipSuccess)
++ {
++ ++n_hip_failures;
++ if(skip_runtime_fails)
++ {
++ GTEST_SKIP();
++ }
++ else
++ {
++ GTEST_FAIL();
++ }
++ }
++
++ void* store_cb_host
++ = get_store_callback_host(params.otype, params.precision, round_trip_inverse);
++
++ callback_test_data store_cb_data_host;
++
++ if(round_trip_inverse)
++ {
++ store_cb_data_host.scalar = params.load_cb_scalar;
++ }
++ else
++ {
++ store_cb_data_host.scalar = params.store_cb_scalar;
++ }
++
++ store_cb_data_host.base = pobuffer.front();
++
++ hip_status = store_cb_data_dev.alloc(sizeof(callback_test_data));
++ if(hip_status != hipSuccess)
++ {
++ ++n_hip_failures;
++ if(skip_runtime_fails)
++ {
++ GTEST_SKIP();
++ }
++ else
++ {
++ GTEST_FAIL();
++ }
++ }
++
++ hip_status = hipMemcpy(store_cb_data_dev.data(),
++ &store_cb_data_host,
++ sizeof(callback_test_data),
++ hipMemcpyHostToDevice);
++ if(hip_status != hipSuccess)
++ {
++ ++n_hip_failures;
++ if(skip_runtime_fails)
++ {
++ GTEST_SKIP();
++ }
++ else
++ {
++ GTEST_FAIL();
++ }
++ }
++
++ auto fft_status = params.set_callbacks(
++ load_cb_host, load_cb_data_dev.data(), store_cb_host, store_cb_data_dev.data());
++ if(fft_status != fft_status_success)
++ throw std::runtime_error("set callback failure");
++ }
++
++ // Execute the transform:
++ auto fft_status = params.execute(pibuffer.data(), pobuffer.data());
++ if(fft_status != fft_status_success)
++ throw std::runtime_error("rocFFT plan execution failure");
++
++ // if not comparing, then just executing the GPU FFT is all we
++ // need to do
++ if(!fftw_compare)
++ return;
++
++ // finalize a multi-GPU transform
++ params.multi_gpu_finalize(obuffer, pobuffer);
++
++ ASSERT_TRUE(!gpu_output.empty()) << "no output buffers";
++ for(unsigned int idx = 0; idx < gpu_output.size(); ++idx)
++ {
++ ASSERT_TRUE(gpu_output[idx].data() != nullptr)
++ << "output buffer index " << idx << " is empty";
++ auto hip_status = hipMemcpy(gpu_output[idx].data(),
++ pobuffer.at(idx),
++ gpu_output[idx].size(),
++ hipMemcpyDeviceToHost);
++ if(hip_status != hipSuccess)
++ {
++ ++n_hip_failures;
++ if(skip_runtime_fails)
++ {
++ GTEST_SKIP() << "hipMemcpy failure";
++ }
++ else
++ {
++ GTEST_FAIL() << "hipMemcpy failure";
++ }
++ }
++ }
++ if(verbose > 2)
++ {
++ std::cout << "GPU output:\n";
++ params.print_obuffer(gpu_output);
++ }
++ if(verbose > 5)
++ {
++ std::cout << "flat GPU output:\n";
++ params.print_obuffer_flat(gpu_output);
++ }
++}
++
++template
++static void assert_init_value(const std::vector& output,
++ const size_t idx,
++ const Tfloat orig_value);
++
++template <>
++void assert_init_value(const std::vector& output, const size_t idx, const float orig_value)
++{
++ float actual_value = reinterpret_cast(output.front().data())[idx];
++ ASSERT_EQ(actual_value, orig_value) << "index " << idx;
++}
++
++template <>
++void assert_init_value(const std::vector& output,
++ const size_t idx,
++ const double orig_value)
++{
++ double actual_value = reinterpret_cast(output.front().data())[idx];
++ ASSERT_EQ(actual_value, orig_value) << "index " << idx;
++}
++
++template <>
++void assert_init_value(const std::vector& output,
++ const size_t idx,
++ const rocfft_complex orig_value)
++{
++ // if this is interleaved, check directly
++ if(output.size() == 1)
++ {
++ rocfft_complex actual_value
++ = reinterpret_cast*>(output.front().data())[idx];
++ ASSERT_EQ(actual_value.x, orig_value.x) << "x index " << idx;
++ ASSERT_EQ(actual_value.y, orig_value.y) << "y index " << idx;
++ }
++ else
++ {
++ // planar
++ rocfft_complex actual_value{
++ reinterpret_cast(output.front().data())[idx],
++ reinterpret_cast(output.back().data())[idx]};
++ ASSERT_EQ(actual_value.x, orig_value.x) << "x index " << idx;
++ ASSERT_EQ(actual_value.y, orig_value.y) << "y index " << idx;
++ }
++}
++
++template <>
++void assert_init_value(const std::vector& output,
++ const size_t idx,
++ const rocfft_complex orig_value)
++{
++ // if this is interleaved, check directly
++ if(output.size() == 1)
++ {
++ rocfft_complex actual_value
++ = reinterpret_cast*>(output.front().data())[idx];
++ ASSERT_EQ(actual_value.x, orig_value.x) << "x index " << idx;
++ ASSERT_EQ(actual_value.y, orig_value.y) << "y index " << idx;
++ }
++ else
++ {
++ // planar
++ rocfft_complex actual_value{
++ reinterpret_cast(output.front().data())[idx],
++ reinterpret_cast(output.back().data())[idx]};
++ ASSERT_EQ(actual_value.x, orig_value.x) << "x index " << idx;
++ ASSERT_EQ(actual_value.y, orig_value.y) << "y index " << idx;
++ }
++}
++
++static const int OUTPUT_INIT_PATTERN = 0xcd;
++template