Compare commits
95 Commits
balay/llvm
...
fix-rpath-
Author | SHA1 | Date | |
---|---|---|---|
![]() |
0a385414e5 | ||
![]() |
cdba31280b | ||
![]() |
9b5f15abec | ||
![]() |
9ad1d0c813 | ||
![]() |
00fae6dd79 | ||
![]() |
2613a14c43 | ||
![]() |
a76a48c42e | ||
![]() |
0619a8bd4f | ||
![]() |
a3dc9e1eb8 | ||
![]() |
e129df38ce | ||
![]() |
9762e8719b | ||
![]() |
044dcee7ad | ||
![]() |
32b6381b9b | ||
![]() |
532e6b6aa9 | ||
![]() |
7d6231b38a | ||
![]() |
653556e881 | ||
![]() |
13feee8364 | ||
![]() |
62abcfb05f | ||
![]() |
3637c087c5 | ||
![]() |
a835a0ed31 | ||
![]() |
7b3ab0e575 | ||
![]() |
0aa7963ed1 | ||
![]() |
941c8daabe | ||
![]() |
29d85ba552 | ||
![]() |
1b01680be1 | ||
![]() |
e439f8ea87 | ||
![]() |
1d06a324b5 | ||
![]() |
20f90dcda2 | ||
![]() |
6f5f6a65b3 | ||
![]() |
7360afb668 | ||
![]() |
f25e586f0a | ||
![]() |
0191e15a6a | ||
![]() |
ea6e39805a | ||
![]() |
bbd205543b | ||
![]() |
b95160cd86 | ||
![]() |
201840367d | ||
![]() |
5ebf45861f | ||
![]() |
ec0d97ae82 | ||
![]() |
8290e7d947 | ||
![]() |
95966ce10a | ||
![]() |
dce2f4ca7c | ||
![]() |
7dc549d926 | ||
![]() |
aa0e605956 | ||
![]() |
5e56fa839d | ||
![]() |
c62ed8bb2f | ||
![]() |
6872da419d | ||
![]() |
e2aa11518a | ||
![]() |
d4233a3048 | ||
![]() |
badb3bcee7 | ||
![]() |
4b05a2b78f | ||
![]() |
777b5b0c39 | ||
![]() |
cd9446b5d4 | ||
![]() |
37ede80d3f | ||
![]() |
4eeb5b9665 | ||
![]() |
2778e530ad | ||
![]() |
af9b359478 | ||
![]() |
54ffc635e2 | ||
![]() |
71f73f5e40 | ||
![]() |
b83c5237e9 | ||
![]() |
6bf005e042 | ||
![]() |
2d8b4dbe3b | ||
![]() |
0fab5cadb3 | ||
![]() |
ade2513dcb | ||
![]() |
74b76cc6b3 | ||
![]() |
edf6729943 | ||
![]() |
fd087107ea | ||
![]() |
a342da5642 | ||
![]() |
5f7501c4f7 | ||
![]() |
f01dbe2c35 | ||
![]() |
a474034023 | ||
![]() |
022eca1cfe | ||
![]() |
f49b10ee43 | ||
![]() |
ff4e311e72 | ||
![]() |
43d1cdb0bd | ||
![]() |
08c4f81596 | ||
![]() |
63986d31ef | ||
![]() |
f50f5859f3 | ||
![]() |
99c4f2c3ff | ||
![]() |
3b61a1f778 | ||
![]() |
3771278d50 | ||
![]() |
3649a195d3 | ||
![]() |
2b9a3b6057 | ||
![]() |
a300359627 | ||
![]() |
ad75bc022f | ||
![]() |
befbbec2b3 | ||
![]() |
f0e51a35c7 | ||
![]() |
d5b8b0600a | ||
![]() |
0b575f60a5 | ||
![]() |
2d16e15659 | ||
![]() |
5d9c534018 | ||
![]() |
8471b1b471 | ||
![]() |
1c6b6d0a08 | ||
![]() |
d7031dcd09 | ||
![]() |
6692eb7b6f | ||
![]() |
728da2ff87 |
2
.github/workflows/audit.yaml
vendored
2
.github/workflows/audit.yaml
vendored
@@ -28,7 +28,7 @@ jobs:
|
||||
run:
|
||||
shell: ${{ matrix.system.shell }}
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
|
||||
with:
|
||||
python-version: ${{inputs.python_version}}
|
||||
|
8
.github/workflows/bootstrap.yml
vendored
8
.github/workflows/bootstrap.yml
vendored
@@ -37,7 +37,7 @@ jobs:
|
||||
make patch unzip which xz python3 python3-devel tree \
|
||||
cmake bison
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Bootstrap clingo
|
||||
@@ -60,7 +60,7 @@ jobs:
|
||||
run: |
|
||||
brew install cmake bison tree
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
|
||||
@@ -96,7 +96,7 @@ jobs:
|
||||
if: ${{ matrix.runner == 'ubuntu-latest' }}
|
||||
run: sudo rm -rf $(command -v gpg gpg2 patchelf)
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Bootstrap GnuPG
|
||||
@@ -130,7 +130,7 @@ jobs:
|
||||
Remove-Item -Path (Get-Command gpg).Path
|
||||
Remove-Item -Path (Get-Command file).Path
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
|
||||
|
2
.github/workflows/build-containers.yml
vendored
2
.github/workflows/build-containers.yml
vendored
@@ -55,7 +55,7 @@ jobs:
|
||||
if: github.repository == 'spack/spack'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
|
||||
- uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81
|
||||
id: docker_meta
|
||||
|
4
.github/workflows/ci.yaml
vendored
4
.github/workflows/ci.yaml
vendored
@@ -36,7 +36,7 @@ jobs:
|
||||
core: ${{ steps.filter.outputs.core }}
|
||||
packages: ${{ steps.filter.outputs.packages }}
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
if: ${{ github.event_name == 'push' }}
|
||||
with:
|
||||
fetch-depth: 0
|
||||
@@ -88,7 +88,7 @@ jobs:
|
||||
needs: [ unit-tests, prechecks ]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Download coverage files
|
||||
|
2
.github/workflows/nightly-win-builds.yml
vendored
2
.github/workflows/nightly-win-builds.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
||||
build-paraview-deps:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
|
||||
|
12
.github/workflows/unit_tests.yaml
vendored
12
.github/workflows/unit_tests.yaml
vendored
@@ -40,7 +40,7 @@ jobs:
|
||||
on_develop: false
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
|
||||
@@ -89,7 +89,7 @@ jobs:
|
||||
shell:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
|
||||
@@ -130,7 +130,7 @@ jobs:
|
||||
dnf install -y \
|
||||
bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \
|
||||
make patch tcl unzip which xz
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
- name: Setup repo and non-root user
|
||||
run: |
|
||||
git --version
|
||||
@@ -149,7 +149,7 @@ jobs:
|
||||
clingo-cffi:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
|
||||
@@ -187,7 +187,7 @@ jobs:
|
||||
os: [macos-13, macos-14]
|
||||
python-version: ["3.11"]
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
|
||||
@@ -225,7 +225,7 @@ jobs:
|
||||
powershell Invoke-Expression -Command "./share/spack/qa/windows_test_setup.ps1"; {0}
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
|
||||
|
14
.github/workflows/valid-style.yml
vendored
14
.github/workflows/valid-style.yml
vendored
@@ -18,7 +18,7 @@ jobs:
|
||||
validate:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
|
||||
with:
|
||||
python-version: '3.11'
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
style:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
|
||||
@@ -70,7 +70,7 @@ jobs:
|
||||
dnf install -y \
|
||||
bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \
|
||||
make patch tcl unzip which xz
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
- name: Setup repo and non-root user
|
||||
run: |
|
||||
git --version
|
||||
@@ -98,14 +98,14 @@ jobs:
|
||||
# PR: use the base of the PR as the old commit
|
||||
- name: Checkout PR base commit
|
||||
if: github.event_name == 'pull_request'
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.base.sha }}
|
||||
path: old
|
||||
# not a PR: use the previous commit as the old commit
|
||||
- name: Checkout previous commit
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
fetch-depth: 2
|
||||
path: old
|
||||
@@ -114,11 +114,11 @@ jobs:
|
||||
run: git -C old reset --hard HEAD^
|
||||
|
||||
- name: Checkout new commit
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
path: new
|
||||
- name: Install circular import checker
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
|
||||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
|
||||
with:
|
||||
repository: haampie/circular-import-fighter
|
||||
ref: 555519c6fd5564fd2eb844e7b87e84f4d12602e2
|
||||
|
@@ -46,13 +46,18 @@ See the
|
||||
[Feature Overview](https://spack.readthedocs.io/en/latest/features.html)
|
||||
for examples and highlights.
|
||||
|
||||
To install spack and your first package, make sure you have Python.
|
||||
To install spack and your first package, make sure you have Python & Git.
|
||||
Then:
|
||||
|
||||
$ git clone -c feature.manyFiles=true https://github.com/spack/spack.git
|
||||
$ git clone -c feature.manyFiles=true --depth=2 https://github.com/spack/spack.git
|
||||
$ cd spack/bin
|
||||
$ ./spack install zlib
|
||||
|
||||
> [!TIP]
|
||||
> `-c feature.manyFiles=true` improves git's performance on repositories with 1,000+ files.
|
||||
>
|
||||
> `--depth=2` prunes the git history to reduce the size of the Spack installation.
|
||||
|
||||
Documentation
|
||||
----------------
|
||||
|
||||
|
@@ -414,7 +414,13 @@ default, it will also clone the package to a subdirectory in the
|
||||
environment. This package will have a special variant ``dev_path``
|
||||
set, and Spack will ensure the package and its dependents are rebuilt
|
||||
any time the environment is installed if the package's local source
|
||||
code has been modified. Spack ensures that all instances of a
|
||||
code has been modified. Spack's native implementation to check for modifications
|
||||
is to check if ``mtime`` is newer than the installation.
|
||||
A custom check can be created by overriding the ``detect_dev_src_change`` method
|
||||
in your package class. This is particularly useful for projects using custom spack repo's
|
||||
to drive development and want to optimize performance.
|
||||
|
||||
Spack ensures that all instances of a
|
||||
developed package in the environment are concretized to match the
|
||||
version (and other constraints) passed as the spec argument to the
|
||||
``spack develop`` command.
|
||||
|
@@ -61,10 +61,15 @@ Getting Spack is easy. You can clone it from the `github repository
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ git clone -c feature.manyFiles=true https://github.com/spack/spack.git
|
||||
$ git clone -c feature.manyFiles=true --depth=2 https://github.com/spack/spack.git
|
||||
|
||||
This will create a directory called ``spack``.
|
||||
|
||||
.. note::
|
||||
``-c feature.manyFiles=true`` improves git's performance on repositories with 1,000+ files.
|
||||
|
||||
``--depth=2`` prunes the git history to reduce the size of the Spack installation.
|
||||
|
||||
.. _shell-support:
|
||||
|
||||
^^^^^^^^^^^^^
|
||||
@@ -1576,4 +1581,3 @@ The intent is to provide a Windows installer that will automatically set up
|
||||
Python, Git, and Spack, instead of requiring the user to do so manually.
|
||||
Instructions for creating the installer are at
|
||||
https://github.com/spack/spack/blob/develop/lib/spack/spack/cmd/installer/README.md
|
||||
|
||||
|
@@ -39,10 +39,15 @@ package:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ git clone -c feature.manyFiles=true https://github.com/spack/spack.git
|
||||
$ git clone -c feature.manyFiles=true --depth=2 https://github.com/spack/spack.git
|
||||
$ cd spack/bin
|
||||
$ ./spack install libelf
|
||||
|
||||
.. note::
|
||||
``-c feature.manyFiles=true`` improves git's performance on repositories with 1,000+ files.
|
||||
|
||||
``--depth=2`` prunes the git history to reduce the size of the Spack installation.
|
||||
|
||||
If you're new to spack and want to start using it, see :doc:`getting_started`,
|
||||
or refer to the full manual below.
|
||||
|
||||
|
331
lib/spack/env/cc
vendored
331
lib/spack/env/cc
vendored
@@ -101,10 +101,9 @@ setsep() {
|
||||
esac
|
||||
}
|
||||
|
||||
# prepend LISTNAME ELEMENT [SEP]
|
||||
# prepend LISTNAME ELEMENT
|
||||
#
|
||||
# Prepend ELEMENT to the list stored in the variable LISTNAME,
|
||||
# assuming the list is separated by SEP.
|
||||
# Prepend ELEMENT to the list stored in the variable LISTNAME.
|
||||
# Handles empty lists and single-element lists.
|
||||
prepend() {
|
||||
varname="$1"
|
||||
@@ -119,18 +118,39 @@ prepend() {
|
||||
fi
|
||||
}
|
||||
|
||||
# append LISTNAME ELEMENT [SEP]
|
||||
# contains LISTNAME ELEMENT
|
||||
#
|
||||
# Append ELEMENT to the list stored in the variable LISTNAME,
|
||||
# assuming the list is separated by SEP.
|
||||
# Test whether LISTNAME contains ELEMENT.
|
||||
# Set $? to 1 if LISTNAME does not contain ELEMENT.
|
||||
# Set $? to 0 if LISTNAME does not contain ELEMENT.
|
||||
contains() {
|
||||
varname="$1"
|
||||
elt="$2"
|
||||
|
||||
setsep "$varname"
|
||||
|
||||
# the list may: 1) only contain the element, 2) start with the element,
|
||||
# 3) contain the element in the middle, or 4) end wtih the element.
|
||||
eval "[ \"\${$varname}\" = \"$elt\" ]" \
|
||||
|| eval "[ \"\${$varname#${elt}${sep}}\" != \"\${$varname}\" ]" \
|
||||
|| eval "[ \"\${$varname#*${sep}${elt}${sep}}\" != \"\${$varname}\" ]" \
|
||||
|| eval "[ \"\${$varname%${sep}${elt}}\" != \"\${$varname}\" ]"
|
||||
}
|
||||
|
||||
# append LISTNAME ELEMENT [unique]
|
||||
#
|
||||
# Append ELEMENT to the list stored in the variable LISTNAME.
|
||||
# Handles empty lists and single-element lists.
|
||||
#
|
||||
# If the third argument is provided and if it is the string 'unique',
|
||||
# this will not append if ELEMENT is already in the list LISTNAME.
|
||||
append() {
|
||||
varname="$1"
|
||||
elt="$2"
|
||||
|
||||
if empty "$varname"; then
|
||||
eval "$varname=\"\${elt}\""
|
||||
else
|
||||
elif [ "$3" != "unique" ] || ! contains "$varname" "$elt" ; then
|
||||
# Get the appropriate separator for the list we're appending to.
|
||||
setsep "$varname"
|
||||
eval "$varname=\"\${$varname}${sep}\${elt}\""
|
||||
@@ -148,10 +168,21 @@ extend() {
|
||||
if [ "$sep" != " " ]; then
|
||||
IFS="$sep"
|
||||
fi
|
||||
eval "for elt in \${$2}; do append $1 \"$3\${elt}\"; done"
|
||||
eval "for elt in \${$2}; do append $1 \"$3\${elt}\" ${_append_args}; done"
|
||||
unset IFS
|
||||
}
|
||||
|
||||
# extend_unique LISTNAME1 LISTNAME2 [PREFIX]
|
||||
#
|
||||
# Append the elements stored in the variable LISTNAME2 to the list
|
||||
# stored in LISTNAME1, if they are not already present.
|
||||
# If PREFIX is provided, prepend it to each element.
|
||||
extend_unique() {
|
||||
_append_args="unique"
|
||||
extend "$@"
|
||||
unset _append_args
|
||||
}
|
||||
|
||||
# preextend LISTNAME1 LISTNAME2 [PREFIX]
|
||||
#
|
||||
# Prepend the elements stored in the list at LISTNAME2
|
||||
@@ -238,6 +269,36 @@ esac
|
||||
}
|
||||
"
|
||||
|
||||
# path_list functions. Path_lists have 3 parts: spack_store_<list>, <list> and system_<list>,
|
||||
# which are used to prioritize paths when assembling the final command line.
|
||||
|
||||
# init_path_lists LISTNAME
|
||||
# Set <LISTNAME>, spack_store_<LISTNAME>, and system_<LISTNAME> to "".
|
||||
init_path_lists() {
|
||||
eval "spack_store_$1=\"\""
|
||||
eval "$1=\"\""
|
||||
eval "system_$1=\"\""
|
||||
}
|
||||
|
||||
# assign_path_lists LISTNAME1 LISTNAME2
|
||||
# Copy contents of LISTNAME2 into LISTNAME1, for each path_list prefix.
|
||||
assign_path_lists() {
|
||||
eval "spack_store_$1=\"\${spack_store_$2}\""
|
||||
eval "$1=\"\${$2}\""
|
||||
eval "system_$1=\"\${system_$2}\""
|
||||
}
|
||||
|
||||
# append_path_lists LISTNAME ELT
|
||||
# Append the provided ELT to the appropriate list, based on the result of path_order().
|
||||
append_path_lists() {
|
||||
path_order "$2"
|
||||
case $? in
|
||||
0) eval "append spack_store_$1 \"\$2\"" ;;
|
||||
1) eval "append $1 \"\$2\"" ;;
|
||||
2) eval "append system_$1 \"\$2\"" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Check if optional parameters are defined
|
||||
# If we aren't asking for debug flags, don't add them
|
||||
if [ -z "${SPACK_ADD_DEBUG_FLAGS:-}" ]; then
|
||||
@@ -421,26 +482,6 @@ if [ "$mode" = vcheck ]; then
|
||||
execute
|
||||
fi
|
||||
|
||||
# Darwin's linker has a -r argument that merges object files together.
|
||||
# It doesn't work with -rpath.
|
||||
# This variable controls whether they are added.
|
||||
add_rpaths=true
|
||||
if [ "$mode" = ld ] || [ "$mode" = ccld ]; then
|
||||
if [ "${SPACK_SHORT_SPEC#*darwin}" != "${SPACK_SHORT_SPEC}" ]; then
|
||||
for arg in "$@"; do
|
||||
if [ "$arg" = "-r" ]; then
|
||||
if [ "$mode" = ld ] || [ "$mode" = ccld ]; then
|
||||
add_rpaths=false
|
||||
break
|
||||
fi
|
||||
elif [ "$arg" = "-Wl,-r" ] && [ "$mode" = ccld ]; then
|
||||
add_rpaths=false
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# Save original command for debug logging
|
||||
input_command="$*"
|
||||
|
||||
@@ -470,12 +511,7 @@ input_command="$*"
|
||||
parse_Wl() {
|
||||
while [ $# -ne 0 ]; do
|
||||
if [ "$wl_expect_rpath" = yes ]; then
|
||||
path_order "$1"
|
||||
case $? in
|
||||
0) append return_spack_store_rpath_dirs_list "$1" ;;
|
||||
1) append return_rpath_dirs_list "$1" ;;
|
||||
2) append return_system_rpath_dirs_list "$1" ;;
|
||||
esac
|
||||
append_path_lists return_rpath_dirs_list "$1"
|
||||
wl_expect_rpath=no
|
||||
else
|
||||
case "$1" in
|
||||
@@ -484,24 +520,14 @@ parse_Wl() {
|
||||
if [ -z "$arg" ]; then
|
||||
shift; continue
|
||||
fi
|
||||
path_order "$arg"
|
||||
case $? in
|
||||
0) append return_spack_store_rpath_dirs_list "$arg" ;;
|
||||
1) append return_rpath_dirs_list "$arg" ;;
|
||||
2) append return_system_rpath_dirs_list "$arg" ;;
|
||||
esac
|
||||
append_path_lists return_rpath_dirs_list "$arg"
|
||||
;;
|
||||
--rpath=*)
|
||||
arg="${1#--rpath=}"
|
||||
if [ -z "$arg" ]; then
|
||||
shift; continue
|
||||
fi
|
||||
path_order "$arg"
|
||||
case $? in
|
||||
0) append return_spack_store_rpath_dirs_list "$arg" ;;
|
||||
1) append return_rpath_dirs_list "$arg" ;;
|
||||
2) append return_system_rpath_dirs_list "$arg" ;;
|
||||
esac
|
||||
append_path_lists return_rpath_dirs_list "$arg"
|
||||
;;
|
||||
-rpath|--rpath)
|
||||
wl_expect_rpath=yes
|
||||
@@ -509,8 +535,7 @@ parse_Wl() {
|
||||
"$dtags_to_strip")
|
||||
;;
|
||||
-Wl)
|
||||
# Nested -Wl,-Wl means we're in NAG compiler territory, we don't support
|
||||
# it.
|
||||
# Nested -Wl,-Wl means we're in NAG compiler territory. We don't support it.
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
@@ -529,21 +554,10 @@ categorize_arguments() {
|
||||
return_other_args_list=""
|
||||
return_isystem_was_used=""
|
||||
|
||||
return_isystem_spack_store_include_dirs_list=""
|
||||
return_isystem_system_include_dirs_list=""
|
||||
return_isystem_include_dirs_list=""
|
||||
|
||||
return_spack_store_include_dirs_list=""
|
||||
return_system_include_dirs_list=""
|
||||
return_include_dirs_list=""
|
||||
|
||||
return_spack_store_lib_dirs_list=""
|
||||
return_system_lib_dirs_list=""
|
||||
return_lib_dirs_list=""
|
||||
|
||||
return_spack_store_rpath_dirs_list=""
|
||||
return_system_rpath_dirs_list=""
|
||||
return_rpath_dirs_list=""
|
||||
init_path_lists return_isystem_include_dirs_list
|
||||
init_path_lists return_include_dirs_list
|
||||
init_path_lists return_lib_dirs_list
|
||||
init_path_lists return_rpath_dirs_list
|
||||
|
||||
# Global state for keeping track of -Wl,-rpath -Wl,/path
|
||||
wl_expect_rpath=no
|
||||
@@ -609,32 +623,17 @@ categorize_arguments() {
|
||||
arg="${1#-isystem}"
|
||||
return_isystem_was_used=true
|
||||
if [ -z "$arg" ]; then shift; arg="$1"; fi
|
||||
path_order "$arg"
|
||||
case $? in
|
||||
0) append return_isystem_spack_store_include_dirs_list "$arg" ;;
|
||||
1) append return_isystem_include_dirs_list "$arg" ;;
|
||||
2) append return_isystem_system_include_dirs_list "$arg" ;;
|
||||
esac
|
||||
append_path_lists return_isystem_include_dirs_list "$arg"
|
||||
;;
|
||||
-I*)
|
||||
arg="${1#-I}"
|
||||
if [ -z "$arg" ]; then shift; arg="$1"; fi
|
||||
path_order "$arg"
|
||||
case $? in
|
||||
0) append return_spack_store_include_dirs_list "$arg" ;;
|
||||
1) append return_include_dirs_list "$arg" ;;
|
||||
2) append return_system_include_dirs_list "$arg" ;;
|
||||
esac
|
||||
append_path_lists return_include_dirs_list "$arg"
|
||||
;;
|
||||
-L*)
|
||||
arg="${1#-L}"
|
||||
if [ -z "$arg" ]; then shift; arg="$1"; fi
|
||||
path_order "$arg"
|
||||
case $? in
|
||||
0) append return_spack_store_lib_dirs_list "$arg" ;;
|
||||
1) append return_lib_dirs_list "$arg" ;;
|
||||
2) append return_system_lib_dirs_list "$arg" ;;
|
||||
esac
|
||||
append_path_lists return_lib_dirs_list "$arg"
|
||||
;;
|
||||
-l*)
|
||||
# -loopopt=0 is generated erroneously in autoconf <= 2.69,
|
||||
@@ -667,32 +666,17 @@ categorize_arguments() {
|
||||
break
|
||||
elif [ "$xlinker_expect_rpath" = yes ]; then
|
||||
# Register the path of -Xlinker -rpath <other args> -Xlinker <path>
|
||||
path_order "$1"
|
||||
case $? in
|
||||
0) append return_spack_store_rpath_dirs_list "$1" ;;
|
||||
1) append return_rpath_dirs_list "$1" ;;
|
||||
2) append return_system_rpath_dirs_list "$1" ;;
|
||||
esac
|
||||
append_path_lists return_rpath_dirs_list "$1"
|
||||
xlinker_expect_rpath=no
|
||||
else
|
||||
case "$1" in
|
||||
-rpath=*)
|
||||
arg="${1#-rpath=}"
|
||||
path_order "$arg"
|
||||
case $? in
|
||||
0) append return_spack_store_rpath_dirs_list "$arg" ;;
|
||||
1) append return_rpath_dirs_list "$arg" ;;
|
||||
2) append return_system_rpath_dirs_list "$arg" ;;
|
||||
esac
|
||||
append_path_lists return_rpath_dirs_list "$arg"
|
||||
;;
|
||||
--rpath=*)
|
||||
arg="${1#--rpath=}"
|
||||
path_order "$arg"
|
||||
case $? in
|
||||
0) append return_spack_store_rpath_dirs_list "$arg" ;;
|
||||
1) append return_rpath_dirs_list "$arg" ;;
|
||||
2) append return_system_rpath_dirs_list "$arg" ;;
|
||||
esac
|
||||
append_path_lists return_rpath_dirs_list "$arg"
|
||||
;;
|
||||
-rpath|--rpath)
|
||||
xlinker_expect_rpath=yes
|
||||
@@ -709,7 +693,32 @@ categorize_arguments() {
|
||||
"$dtags_to_strip")
|
||||
;;
|
||||
*)
|
||||
append return_other_args_list "$1"
|
||||
# if mode is not ld, we can just add to other args
|
||||
if [ "$mode" != "ld" ]; then
|
||||
append return_other_args_list "$1"
|
||||
shift
|
||||
continue
|
||||
fi
|
||||
|
||||
# if we're in linker mode, we need to parse raw RPATH args
|
||||
case "$1" in
|
||||
-rpath=*)
|
||||
arg="${1#-rpath=}"
|
||||
append_path_lists return_rpath_dirs_list "$arg"
|
||||
;;
|
||||
--rpath=*)
|
||||
arg="${1#--rpath=}"
|
||||
append_path_lists return_rpath_dirs_list "$arg"
|
||||
;;
|
||||
-rpath|--rpath)
|
||||
shift
|
||||
[ $# -eq 0 ] && break # ignore -rpath without value
|
||||
append_path_lists return_rpath_dirs_list "$1"
|
||||
;;
|
||||
*)
|
||||
append return_other_args_list "$1"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
@@ -731,21 +740,10 @@ categorize_arguments() {
|
||||
|
||||
categorize_arguments "$@"
|
||||
|
||||
spack_store_include_dirs_list="$return_spack_store_include_dirs_list"
|
||||
system_include_dirs_list="$return_system_include_dirs_list"
|
||||
include_dirs_list="$return_include_dirs_list"
|
||||
|
||||
spack_store_lib_dirs_list="$return_spack_store_lib_dirs_list"
|
||||
system_lib_dirs_list="$return_system_lib_dirs_list"
|
||||
lib_dirs_list="$return_lib_dirs_list"
|
||||
|
||||
spack_store_rpath_dirs_list="$return_spack_store_rpath_dirs_list"
|
||||
system_rpath_dirs_list="$return_system_rpath_dirs_list"
|
||||
rpath_dirs_list="$return_rpath_dirs_list"
|
||||
|
||||
isystem_spack_store_include_dirs_list="$return_isystem_spack_store_include_dirs_list"
|
||||
isystem_system_include_dirs_list="$return_isystem_system_include_dirs_list"
|
||||
isystem_include_dirs_list="$return_isystem_include_dirs_list"
|
||||
assign_path_lists isystem_include_dirs_list return_isystem_include_dirs_list
|
||||
assign_path_lists include_dirs_list return_include_dirs_list
|
||||
assign_path_lists lib_dirs_list return_lib_dirs_list
|
||||
assign_path_lists rpath_dirs_list return_rpath_dirs_list
|
||||
|
||||
isystem_was_used="$return_isystem_was_used"
|
||||
other_args_list="$return_other_args_list"
|
||||
@@ -821,21 +819,10 @@ IFS="$lsep"
|
||||
categorize_arguments $spack_flags_list
|
||||
unset IFS
|
||||
|
||||
spack_flags_isystem_spack_store_include_dirs_list="$return_isystem_spack_store_include_dirs_list"
|
||||
spack_flags_isystem_system_include_dirs_list="$return_isystem_system_include_dirs_list"
|
||||
spack_flags_isystem_include_dirs_list="$return_isystem_include_dirs_list"
|
||||
|
||||
spack_flags_spack_store_include_dirs_list="$return_spack_store_include_dirs_list"
|
||||
spack_flags_system_include_dirs_list="$return_system_include_dirs_list"
|
||||
spack_flags_include_dirs_list="$return_include_dirs_list"
|
||||
|
||||
spack_flags_spack_store_lib_dirs_list="$return_spack_store_lib_dirs_list"
|
||||
spack_flags_system_lib_dirs_list="$return_system_lib_dirs_list"
|
||||
spack_flags_lib_dirs_list="$return_lib_dirs_list"
|
||||
|
||||
spack_flags_spack_store_rpath_dirs_list="$return_spack_store_rpath_dirs_list"
|
||||
spack_flags_system_rpath_dirs_list="$return_system_rpath_dirs_list"
|
||||
spack_flags_rpath_dirs_list="$return_rpath_dirs_list"
|
||||
assign_path_lists spack_flags_isystem_include_dirs_list return_isystem_include_dirs_list
|
||||
assign_path_lists spack_flags_include_dirs_list return_include_dirs_list
|
||||
assign_path_lists spack_flags_lib_dirs_list return_lib_dirs_list
|
||||
assign_path_lists spack_flags_rpath_dirs_list return_rpath_dirs_list
|
||||
|
||||
spack_flags_isystem_was_used="$return_isystem_was_used"
|
||||
spack_flags_other_args_list="$return_other_args_list"
|
||||
@@ -854,13 +841,11 @@ if [ "$mode" = ld ] || [ "$mode" = ccld ]; then
|
||||
fi
|
||||
|
||||
if [ "$mode" = ccld ] || [ "$mode" = ld ]; then
|
||||
if [ "$add_rpaths" != "false" ]; then
|
||||
# Append RPATH directories. Note that in the case of the
|
||||
# top-level package these directories may not exist yet. For dependencies
|
||||
# it is assumed that paths have already been confirmed.
|
||||
extend spack_store_rpath_dirs_list SPACK_STORE_RPATH_DIRS
|
||||
extend rpath_dirs_list SPACK_RPATH_DIRS
|
||||
fi
|
||||
# Append RPATH directories. Note that in the case of the
|
||||
# top-level package these directories may not exist yet. For dependencies
|
||||
# it is assumed that paths have already been confirmed.
|
||||
extend spack_store_rpath_dirs_list SPACK_STORE_RPATH_DIRS
|
||||
extend rpath_dirs_list SPACK_RPATH_DIRS
|
||||
fi
|
||||
|
||||
if [ "$mode" = ccld ] || [ "$mode" = ld ]; then
|
||||
@@ -875,14 +860,10 @@ case "$mode" in
|
||||
ld|ccld)
|
||||
# Set extra RPATHs
|
||||
extend lib_dirs_list SPACK_COMPILER_EXTRA_RPATHS
|
||||
if [ "$add_rpaths" != "false" ]; then
|
||||
extend rpath_dirs_list SPACK_COMPILER_EXTRA_RPATHS
|
||||
fi
|
||||
extend rpath_dirs_list SPACK_COMPILER_EXTRA_RPATHS
|
||||
|
||||
# Set implicit RPATHs
|
||||
if [ "$add_rpaths" != "false" ]; then
|
||||
extend rpath_dirs_list SPACK_COMPILER_IMPLICIT_RPATHS
|
||||
fi
|
||||
extend rpath_dirs_list SPACK_COMPILER_IMPLICIT_RPATHS
|
||||
|
||||
# Add SPACK_LDLIBS to args
|
||||
for lib in $SPACK_LDLIBS; do
|
||||
@@ -894,7 +875,7 @@ esac
|
||||
case "$mode" in
|
||||
cpp|cc|as|ccld)
|
||||
if [ "$spack_flags_isystem_was_used" = "true" ] || [ "$isystem_was_used" = "true" ]; then
|
||||
extend isystem_spack_store_include_dirs_list SPACK_STORE_INCLUDE_DIRS
|
||||
extend spack_store_isystem_include_dirs_list SPACK_STORE_INCLUDE_DIRS
|
||||
extend isystem_include_dirs_list SPACK_INCLUDE_DIRS
|
||||
else
|
||||
extend spack_store_include_dirs_list SPACK_STORE_INCLUDE_DIRS
|
||||
@@ -910,64 +891,76 @@ args_list="$flags_list"
|
||||
|
||||
# Include search paths partitioned by (in store, non-sytem, system)
|
||||
# NOTE: adding ${lsep} to the prefix here turns every added element into two
|
||||
extend args_list spack_flags_spack_store_include_dirs_list -I
|
||||
extend args_list spack_store_spack_flags_include_dirs_list -I
|
||||
extend args_list spack_store_include_dirs_list -I
|
||||
|
||||
extend args_list spack_flags_include_dirs_list -I
|
||||
extend args_list include_dirs_list -I
|
||||
|
||||
extend args_list spack_flags_isystem_spack_store_include_dirs_list "-isystem${lsep}"
|
||||
extend args_list isystem_spack_store_include_dirs_list "-isystem${lsep}"
|
||||
extend args_list spack_store_spack_flags_isystem_include_dirs_list "-isystem${lsep}"
|
||||
extend args_list spack_store_isystem_include_dirs_list "-isystem${lsep}"
|
||||
|
||||
extend args_list spack_flags_isystem_include_dirs_list "-isystem${lsep}"
|
||||
extend args_list isystem_include_dirs_list "-isystem${lsep}"
|
||||
|
||||
extend args_list spack_flags_system_include_dirs_list -I
|
||||
extend args_list system_spack_flags_include_dirs_list -I
|
||||
extend args_list system_include_dirs_list -I
|
||||
|
||||
extend args_list spack_flags_isystem_system_include_dirs_list "-isystem${lsep}"
|
||||
extend args_list isystem_system_include_dirs_list "-isystem${lsep}"
|
||||
extend args_list system_spack_flags_isystem_include_dirs_list "-isystem${lsep}"
|
||||
extend args_list system_isystem_include_dirs_list "-isystem${lsep}"
|
||||
|
||||
# Library search paths partitioned by (in store, non-sytem, system)
|
||||
extend args_list spack_flags_spack_store_lib_dirs_list "-L"
|
||||
extend args_list spack_store_spack_flags_lib_dirs_list "-L"
|
||||
extend args_list spack_store_lib_dirs_list "-L"
|
||||
|
||||
extend args_list spack_flags_lib_dirs_list "-L"
|
||||
extend args_list lib_dirs_list "-L"
|
||||
|
||||
extend args_list spack_flags_system_lib_dirs_list "-L"
|
||||
extend args_list system_spack_flags_lib_dirs_list "-L"
|
||||
extend args_list system_lib_dirs_list "-L"
|
||||
|
||||
# RPATHs arguments
|
||||
# RPATH arguments
|
||||
|
||||
rpath_prefix=""
|
||||
case "$mode" in
|
||||
ccld)
|
||||
if [ -n "$dtags_to_add" ] ; then
|
||||
append args_list "$linker_arg$dtags_to_add"
|
||||
fi
|
||||
extend args_list spack_flags_spack_store_rpath_dirs_list "$rpath"
|
||||
extend args_list spack_store_rpath_dirs_list "$rpath"
|
||||
|
||||
extend args_list spack_flags_rpath_dirs_list "$rpath"
|
||||
extend args_list rpath_dirs_list "$rpath"
|
||||
|
||||
extend args_list spack_flags_system_rpath_dirs_list "$rpath"
|
||||
extend args_list system_rpath_dirs_list "$rpath"
|
||||
rpath_prefix="$rpath"
|
||||
;;
|
||||
ld)
|
||||
if [ -n "$dtags_to_add" ] ; then
|
||||
append args_list "$dtags_to_add"
|
||||
fi
|
||||
extend args_list spack_flags_spack_store_rpath_dirs_list "-rpath${lsep}"
|
||||
extend args_list spack_store_rpath_dirs_list "-rpath${lsep}"
|
||||
|
||||
extend args_list spack_flags_rpath_dirs_list "-rpath${lsep}"
|
||||
extend args_list rpath_dirs_list "-rpath${lsep}"
|
||||
|
||||
extend args_list spack_flags_system_rpath_dirs_list "-rpath${lsep}"
|
||||
extend args_list system_rpath_dirs_list "-rpath${lsep}"
|
||||
rpath_prefix="-rpath${lsep}"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Darwin's linker has a -r argument that merges object files together.
|
||||
# It doesn't work with -rpath. add_rpaths controls whether RPATHs are added.
|
||||
add_rpaths=true
|
||||
if [ "$mode" = ld ] || [ "$mode" = ccld ]; then
|
||||
if [ "${SPACK_SHORT_SPEC#*darwin}" != "${SPACK_SHORT_SPEC}" ]; then
|
||||
args="$@"
|
||||
if contains args "-r" || contains args "-Wl,-r"; then
|
||||
add_rpaths=false
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# if mode is ccld or ld, extend RPATH lists, adding the prefix determined above
|
||||
if [ "$add_rpaths" == "true" ] && [ -n "$rpath_prefix" ]; then
|
||||
extend_unique args_list spack_store_spack_flags_rpath_dirs_list "$rpath_prefix"
|
||||
extend_unique args_list spack_store_rpath_dirs_list "$rpath_prefix"
|
||||
|
||||
extend_unique args_list spack_flags_rpath_dirs_list "$rpath_prefix"
|
||||
extend_unique args_list rpath_dirs_list "$rpath_prefix"
|
||||
|
||||
extend_unique args_list system_spack_flags_rpath_dirs_list "$rpath_prefix"
|
||||
extend_unique args_list system_rpath_dirs_list "$rpath_prefix"
|
||||
fi
|
||||
|
||||
# Other arguments from the input command
|
||||
extend args_list other_args_list
|
||||
extend args_list spack_flags_other_args_list
|
||||
|
@@ -2,6 +2,8 @@
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
import os
|
||||
|
||||
import llnl.util.filesystem as fs
|
||||
|
||||
import spack.directives
|
||||
@@ -46,18 +48,12 @@ class AspellDictPackage(AutotoolsPackage):
|
||||
#: Override the default autotools builder
|
||||
AutotoolsBuilder = AspellBuilder
|
||||
|
||||
def view_destination(self, view):
|
||||
aspell_spec = self.spec["aspell"]
|
||||
if view.get_projection_for_spec(aspell_spec) != aspell_spec.prefix:
|
||||
raise spack.package_base.ExtensionError(
|
||||
"aspell does not support non-global extensions"
|
||||
)
|
||||
aspell = aspell_spec.command
|
||||
return aspell("dump", "config", "dict-dir", output=str).strip()
|
||||
|
||||
def view_source(self):
|
||||
return self.prefix.lib
|
||||
|
||||
def patch(self):
|
||||
fs.filter_file(r"^dictdir=.*$", "dictdir=/lib", "configure")
|
||||
fs.filter_file(r"^datadir=.*$", "datadir=/lib", "configure")
|
||||
aspell_spec = self.spec["aspell"]
|
||||
aspell = aspell_spec.command
|
||||
dictdir = aspell("dump", "config", "dict-dir", output=str).strip()
|
||||
datadir = aspell("dump", "config", "data-dir", output=str).strip()
|
||||
dictdir = os.path.relpath(dictdir, aspell_spec.prefix)
|
||||
datadir = os.path.relpath(datadir, aspell_spec.prefix)
|
||||
fs.filter_file(r"^dictdir=.*$", f"dictdir=/{dictdir}", "configure")
|
||||
fs.filter_file(r"^datadir=.*$", f"datadir=/{datadir}", "configure")
|
||||
|
@@ -17,7 +17,6 @@
|
||||
import spack.repo
|
||||
import spack.spec
|
||||
import spack.variant
|
||||
import spack.version
|
||||
from spack.cmd.common import arguments
|
||||
from spack.package_base import preferred_version
|
||||
|
||||
|
@@ -42,7 +42,6 @@
|
||||
import spack.spec_list
|
||||
import spack.store
|
||||
import spack.user_environment as uenv
|
||||
import spack.util.cpus
|
||||
import spack.util.environment
|
||||
import spack.util.hash
|
||||
import spack.util.lock as lk
|
||||
@@ -547,8 +546,7 @@ def _is_dev_spec_and_has_changed(spec):
|
||||
last installation"""
|
||||
# First check if this is a dev build and in the process already try to get
|
||||
# the dev_path
|
||||
dev_path_var = spec.variants.get("dev_path", None)
|
||||
if not dev_path_var:
|
||||
if not spec.variants.get("dev_path", None):
|
||||
return False
|
||||
|
||||
# Now we can check whether the code changed since the last installation
|
||||
@@ -556,9 +554,10 @@ def _is_dev_spec_and_has_changed(spec):
|
||||
# Not installed -> nothing to compare against
|
||||
return False
|
||||
|
||||
_, record = spack.store.STORE.db.query_by_spec_hash(spec.dag_hash())
|
||||
mtime = fs.last_modification_time_recursive(dev_path_var.value)
|
||||
return mtime > record.installation_time
|
||||
# hook so packages can use to write their own method for checking the dev_path
|
||||
# use package so attributes about concretization such as variant state can be
|
||||
# utilized
|
||||
return spec.package.detect_dev_src_change()
|
||||
|
||||
|
||||
def _error_on_nonempty_view_dir(new_root):
|
||||
|
@@ -48,7 +48,6 @@
|
||||
import spack.error
|
||||
import spack.paths
|
||||
import spack.projections as proj
|
||||
import spack.repo
|
||||
import spack.schema.environment
|
||||
import spack.spec
|
||||
import spack.store
|
||||
|
@@ -1101,6 +1101,15 @@ def update_external_dependencies(self, extendee_spec=None):
|
||||
"""
|
||||
pass
|
||||
|
||||
def detect_dev_src_change(self):
|
||||
"""
|
||||
Method for checking for source code changes to trigger rebuild/reinstall
|
||||
"""
|
||||
dev_path_var = self.spec.variants.get("dev_path", None)
|
||||
_, record = spack.store.STORE.db.query_by_spec_hash(self.spec.dag_hash())
|
||||
mtime = fsys.last_modification_time_recursive(dev_path_var.value)
|
||||
return mtime > record.installation_time
|
||||
|
||||
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.
|
||||
|
@@ -8,7 +8,6 @@
|
||||
|
||||
import archspec.cpu
|
||||
|
||||
import spack.compilers
|
||||
import spack.concretize
|
||||
import spack.operating_systems
|
||||
import spack.platforms
|
||||
|
@@ -199,7 +199,7 @@ def check_args(cc, args, expected):
|
||||
"""
|
||||
with set_env(SPACK_TEST_COMMAND="dump-args"):
|
||||
cc_modified_args = cc(*args, output=str).strip().split("\n")
|
||||
assert expected == cc_modified_args
|
||||
assert cc_modified_args == expected
|
||||
|
||||
|
||||
def check_args_contents(cc, args, must_contain, must_not_contain):
|
||||
@@ -354,6 +354,39 @@ def test_fc_flags(wrapper_environment, wrapper_flags):
|
||||
)
|
||||
|
||||
|
||||
def test_ld_flags_with_redundant_rpaths(wrapper_environment, wrapper_flags):
|
||||
check_args(
|
||||
ld,
|
||||
test_args + test_rpaths, # ensure thesee are made unique
|
||||
["ld"]
|
||||
+ test_include_paths
|
||||
+ test_library_paths
|
||||
+ ["--disable-new-dtags"]
|
||||
+ test_rpaths
|
||||
+ test_args_without_paths
|
||||
+ spack_ldlibs,
|
||||
)
|
||||
|
||||
|
||||
def test_cc_flags_with_redundant_rpaths(wrapper_environment, wrapper_flags):
|
||||
check_args(
|
||||
cc,
|
||||
test_args + test_wl_rpaths + test_wl_rpaths, # ensure thesee are made unique
|
||||
[real_cc]
|
||||
+ target_args
|
||||
+ test_include_paths
|
||||
+ ["-Lfoo"]
|
||||
+ test_library_paths
|
||||
+ ["-Wl,--disable-new-dtags"]
|
||||
+ test_wl_rpaths
|
||||
+ test_args_without_paths
|
||||
+ spack_cppflags
|
||||
+ spack_cflags
|
||||
+ ["-Wl,--gc-sections"]
|
||||
+ spack_ldlibs,
|
||||
)
|
||||
|
||||
|
||||
def test_always_cflags(wrapper_environment, wrapper_flags):
|
||||
with set_env(SPACK_ALWAYS_CFLAGS="-always1 -always2"):
|
||||
check_args(
|
||||
@@ -761,7 +794,6 @@ def test_ld_deps_partial(wrapper_environment):
|
||||
+ test_library_paths
|
||||
+ ["-Lxlib"]
|
||||
+ ["--disable-new-dtags"]
|
||||
+ test_rpaths
|
||||
+ ["-r"]
|
||||
+ test_args_without_paths,
|
||||
)
|
||||
|
@@ -18,6 +18,7 @@
|
||||
"==> [2021-06-23-15:59:05.020387] './configure' '--prefix=/Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_pla/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga", # noqa: E501
|
||||
"/Users/gamblin2/Workspace/spack/lib/spack/env/clang/clang -dynamiclib -install_name /Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_pla/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.1.dylib -compatibility_version 1 -current_version 1.2.11 -fPIC -O2 -fPIC -DHAVE_HIDDEN -o libz.1.2.11.dylib adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo -lc", # noqa: E501
|
||||
"rm -f /Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_pla/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.a", # noqa: E501
|
||||
"rm -f /Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/__spack_path_placeholder___/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.a", # noqa: E501
|
||||
]
|
||||
|
||||
|
||||
@@ -26,6 +27,7 @@
|
||||
"==> [2021-06-23-15:59:05.020387] './configure' '--prefix=/Users/gamblin2/padding-log-test/opt/[padded-to-512-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga", # noqa: E501
|
||||
"/Users/gamblin2/Workspace/spack/lib/spack/env/clang/clang -dynamiclib -install_name /Users/gamblin2/padding-log-test/opt/[padded-to-512-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.1.dylib -compatibility_version 1 -current_version 1.2.11 -fPIC -O2 -fPIC -DHAVE_HIDDEN -o libz.1.2.11.dylib adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo -lc", # noqa: E501
|
||||
"rm -f /Users/gamblin2/padding-log-test/opt/[padded-to-512-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.a", # noqa: E501
|
||||
"rm -f /Users/gamblin2/padding-log-test/opt/[padded-to-91-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.a", # noqa: E501
|
||||
]
|
||||
|
||||
|
||||
@@ -107,6 +109,15 @@ def test_output_filtering(self, capfd, install_mockery, mutable_config):
|
||||
out, err = capfd.readouterr()
|
||||
assert padding_string not in out
|
||||
|
||||
def test_pad_on_path_sep_boundary(self):
|
||||
"""Ensure that padded paths do not end with path separator."""
|
||||
pad_length = len(sup.SPACK_PATH_PADDING_CHARS)
|
||||
padded_length = 128
|
||||
remainder = padded_length % (pad_length + 1)
|
||||
path = "a" * (remainder - 1)
|
||||
result = sup.add_padding(path, padded_length)
|
||||
assert 128 == len(result) and not result.endswith(os.path.sep)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("debug", [1, 2])
|
||||
def test_path_debug_padded_filter(debug, monkeypatch):
|
||||
|
@@ -96,6 +96,11 @@ def replacements():
|
||||
#: include some other component of the intallation path.
|
||||
SPACK_PATH_PADDING_CHARS = "__spack_path_placeholder__"
|
||||
|
||||
#: Special padding char if the padded string would otherwise end with a path
|
||||
#: separator (since the path separator would otherwise get collapsed out,
|
||||
#: causing inconsistent padding).
|
||||
SPACK_PATH_PADDING_EXTRA_CHAR = "_"
|
||||
|
||||
|
||||
def win_exe_ext():
|
||||
return r"(?:\.bat|\.exe)"
|
||||
@@ -195,7 +200,10 @@ def _get_padding_string(length):
|
||||
extra_chars = length % (spack_path_padding_size + 1)
|
||||
reps_list = [SPACK_PATH_PADDING_CHARS for i in range(num_reps)]
|
||||
reps_list.append(SPACK_PATH_PADDING_CHARS[:extra_chars])
|
||||
return os.path.sep.join(reps_list)
|
||||
padding = os.path.sep.join(reps_list)
|
||||
if padding.endswith(os.path.sep):
|
||||
padding = padding[: len(padding) - 1] + SPACK_PATH_PADDING_EXTRA_CHAR
|
||||
return padding
|
||||
|
||||
|
||||
def add_padding(path, length):
|
||||
@@ -313,10 +321,15 @@ def padding_filter(string):
|
||||
regex = (
|
||||
r"((?:/[^/\s]*)*?)" # zero or more leading non-whitespace path components
|
||||
r"(/{pad})+" # the padding string repeated one or more times
|
||||
r"(/{longest_prefix})?(?=/)" # trailing prefix of padding as path component
|
||||
# trailing prefix of padding as path component
|
||||
r"(/{longest_prefix}|/{longest_prefix}{extra_pad_character})?(?=/)"
|
||||
)
|
||||
regex = regex.replace("/", re.escape(os.sep))
|
||||
regex = regex.format(pad=pad, longest_prefix=longest_prefix)
|
||||
regex = regex.format(
|
||||
pad=pad,
|
||||
extra_pad_character=SPACK_PATH_PADDING_EXTRA_CHAR,
|
||||
longest_prefix=longest_prefix,
|
||||
)
|
||||
_filter_re = re.compile(regex)
|
||||
|
||||
def replacer(match):
|
||||
|
@@ -19,7 +19,6 @@
|
||||
|
||||
import spack.error as error
|
||||
import spack.parser
|
||||
import spack.repo
|
||||
import spack.spec
|
||||
|
||||
#: These are variant names used by Spack internally; packages can't use them
|
||||
|
@@ -691,7 +691,7 @@ tutorial-build:
|
||||
|
||||
ml-linux-x86_64-cpu-generate:
|
||||
extends: [ ".generate-x86_64", .ml-linux-x86_64-cpu, ".tags-x86_64_v4" ]
|
||||
image: ghcr.io/spack/ubuntu-22.04:v2024-05-07
|
||||
image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
|
||||
|
||||
ml-linux-x86_64-cpu-build:
|
||||
extends: [ ".build", ".ml-linux-x86_64-cpu" ]
|
||||
@@ -714,7 +714,7 @@ ml-linux-x86_64-cpu-build:
|
||||
|
||||
ml-linux-x86_64-cuda-generate:
|
||||
extends: [ ".generate-x86_64", .ml-linux-x86_64-cuda, ".tags-x86_64_v4" ]
|
||||
image: ghcr.io/spack/ubuntu-22.04:v2024-05-07
|
||||
image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
|
||||
|
||||
ml-linux-x86_64-cuda-build:
|
||||
extends: [ ".build", ".ml-linux-x86_64-cuda" ]
|
||||
@@ -737,7 +737,7 @@ ml-linux-x86_64-cuda-build:
|
||||
|
||||
ml-linux-x86_64-rocm-generate:
|
||||
extends: [ ".generate-x86_64", .ml-linux-x86_64-rocm, ".tags-x86_64_v4" ]
|
||||
image: ghcr.io/spack/ubuntu-22.04:v2024-05-07
|
||||
image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
|
||||
|
||||
ml-linux-x86_64-rocm-build:
|
||||
extends: [ ".build", ".ml-linux-x86_64-rocm" ]
|
||||
|
@@ -10,7 +10,7 @@ spack:
|
||||
# editors
|
||||
- neovim~no_luajit
|
||||
- py-pynvim
|
||||
- emacs@29.1+json+native+treesitter # note, pulls in gcc
|
||||
- emacs+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
|
||||
|
@@ -67,7 +67,6 @@ spack:
|
||||
# TensorFlow
|
||||
- py-tensorflow
|
||||
- py-tensorflow-datasets
|
||||
- py-tensorflow-estimator
|
||||
- py-tensorflow-hub
|
||||
- py-tensorflow-metadata
|
||||
- py-tensorflow-probability
|
||||
@@ -79,7 +78,7 @@ spack:
|
||||
pipeline-gen:
|
||||
- build-job:
|
||||
image:
|
||||
name: ghcr.io/spack/ubuntu-22.04:v2024-05-07
|
||||
name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
|
||||
entrypoint: ['']
|
||||
|
||||
cdash:
|
||||
|
@@ -54,7 +54,8 @@ spack:
|
||||
- py-torchfile
|
||||
- py-torchgeo
|
||||
- py-torchmetrics
|
||||
- py-torchtext
|
||||
# torchtext requires older pytorch, which requires older cuda, which doesn't support newer GCC
|
||||
# - py-torchtext
|
||||
- py-torchvision
|
||||
- py-vector-quantize-pytorch
|
||||
|
||||
@@ -71,19 +72,19 @@ spack:
|
||||
# TensorFlow
|
||||
- py-tensorflow
|
||||
- py-tensorflow-datasets
|
||||
- py-tensorflow-estimator
|
||||
- py-tensorflow-hub
|
||||
- py-tensorflow-metadata
|
||||
- py-tensorflow-probability
|
||||
|
||||
# XGBoost
|
||||
- py-xgboost
|
||||
# xgboost requires older cuda, which doesn't support newer GCC
|
||||
# - py-xgboost
|
||||
|
||||
ci:
|
||||
pipeline-gen:
|
||||
- build-job:
|
||||
image:
|
||||
name: ghcr.io/spack/ubuntu-22.04:v2024-05-07
|
||||
name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
|
||||
entrypoint: ['']
|
||||
|
||||
cdash:
|
||||
|
@@ -72,8 +72,6 @@ spack:
|
||||
# TensorFlow
|
||||
- py-tensorflow
|
||||
- py-tensorflow-datasets
|
||||
# version 2.16 is not available
|
||||
# - py-tensorflow-estimator
|
||||
- py-tensorflow-hub
|
||||
- py-tensorflow-metadata
|
||||
- py-tensorflow-probability
|
||||
@@ -86,7 +84,7 @@ spack:
|
||||
pipeline-gen:
|
||||
- build-job:
|
||||
image:
|
||||
name: ghcr.io/spack/ubuntu-22.04:v2024-05-07
|
||||
name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
|
||||
entrypoint: ['']
|
||||
|
||||
cdash:
|
||||
|
@@ -2,7 +2,6 @@
|
||||
# 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 *
|
||||
|
||||
@@ -245,11 +244,6 @@ def get_acfl_prefix(spec):
|
||||
return join_path(spec.prefix, f"arm-linux-compiler-{spec.version}_{os}")
|
||||
|
||||
|
||||
def get_gcc_prefix(spec):
|
||||
dirlist = next(os.walk(spec.prefix))[1]
|
||||
return join_path(spec.prefix, next(dir for dir in dirlist if dir.startswith("gcc")))
|
||||
|
||||
|
||||
def get_armpl_suffix(spec):
|
||||
suffix = ""
|
||||
if spec.satisfies("@24:"):
|
||||
@@ -393,7 +387,6 @@ def headers(self):
|
||||
def setup_run_environment(self, env):
|
||||
arm_dir = get_acfl_prefix(self.spec)
|
||||
armpl_dir = get_armpl_prefix(self.spec)
|
||||
gcc_dir = get_gcc_prefix(self.spec)
|
||||
|
||||
env.set("ARM_LINUX_COMPILER_DIR", arm_dir)
|
||||
env.set("ARM_LINUX_COMPILER_INCLUDES", join_path(arm_dir, "includes"))
|
||||
@@ -405,25 +398,11 @@ def setup_run_environment(self, env):
|
||||
env.prepend_path("LIBRARY_PATH", join_path(arm_dir, "lib"))
|
||||
env.prepend_path("MANPATH", join_path(arm_dir, "share", "man"))
|
||||
|
||||
env.set("GCC_DIR", gcc_dir)
|
||||
env.set("GCC_INCLUDES", join_path(gcc_dir, "include"))
|
||||
env.append_path("GCC_LIBRARIES", join_path(gcc_dir, "lib"))
|
||||
env.append_path("GCC_LIBRARIES", join_path(gcc_dir, "lib64"))
|
||||
env.set("COMPILER_PATH", gcc_dir)
|
||||
env.prepend_path("PATH", join_path(gcc_dir, "binutils_bin"))
|
||||
env.prepend_path("CPATH", join_path(gcc_dir, "include"))
|
||||
env.prepend_path("LD_LIBRARY_PATH", join_path(gcc_dir, "lib"))
|
||||
env.prepend_path("LD_LIBRARY_PATH", join_path(gcc_dir, "lib64"))
|
||||
env.prepend_path("LIBRARY_PATH", join_path(gcc_dir, "lib"))
|
||||
env.prepend_path("LIBRARY_PATH", join_path(gcc_dir, "lib64"))
|
||||
env.prepend_path("MANPATH", join_path(gcc_dir, "share", "man"))
|
||||
|
||||
@run_after("install")
|
||||
def check_install(self):
|
||||
arm_dir = get_acfl_prefix(self.spec)
|
||||
armpl_dir = get_armpl_prefix(self.spec)
|
||||
suffix = get_armpl_suffix(self.spec)
|
||||
gcc_dir = get_gcc_prefix(self.spec)
|
||||
armpl_example_dir = join_path(armpl_dir, f"examples{suffix}")
|
||||
# run example makefile
|
||||
make(
|
||||
@@ -432,7 +411,6 @@ def check_install(self):
|
||||
"CC=" + self.cc,
|
||||
"F90=" + self.fortran,
|
||||
"CPATH=" + join_path(arm_dir, "include"),
|
||||
"COMPILER_PATH=" + gcc_dir,
|
||||
"ARMPL_DIR=" + armpl_dir,
|
||||
)
|
||||
# clean up
|
||||
|
@@ -12,16 +12,20 @@ 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")
|
||||
license("Apache-2.0", checked_by="wdconinc")
|
||||
|
||||
version("1.7.4", sha256="a4137dd82a185076fa50ba54232d920a17c6469c30b0876569e1c2a05ff311d9")
|
||||
version("1.7.3", sha256="af9bfd5b8a04425d6b419673f3e0a7656fade226aae78180d93f8a6f2d3d1c09")
|
||||
version("1.7.2", sha256="3d8999b216f7b6235343a4e3d456ce9379aa9a380ffb308512f133f0c5eb2db9")
|
||||
version("1.7.0", sha256="48e9dbf45ae3fdc7b491259ffb6ccf7d63049ffacbc1c0977cced095e4c2d5a2")
|
||||
version("1.6.2", sha256="4fc24506c968c5faf57614f5d0aebe0e9d0b90afa47a883e1a1ca94f15f4a42e")
|
||||
version("1.5.2", sha256="1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c746d6dbdb")
|
||||
version("1.7.5", sha256="3375fa365d67bcf945e52b52cba07abea57ef530f40b281ffbe977a9251361db")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
# https://nvd.nist.gov/vuln/detail/CVE-2023-49582
|
||||
with default_args(deprecated=True):
|
||||
version("1.7.4", sha256="a4137dd82a185076fa50ba54232d920a17c6469c30b0876569e1c2a05ff311d9")
|
||||
version("1.7.3", sha256="af9bfd5b8a04425d6b419673f3e0a7656fade226aae78180d93f8a6f2d3d1c09")
|
||||
version("1.7.2", sha256="3d8999b216f7b6235343a4e3d456ce9379aa9a380ffb308512f133f0c5eb2db9")
|
||||
version("1.7.0", sha256="48e9dbf45ae3fdc7b491259ffb6ccf7d63049ffacbc1c0977cced095e4c2d5a2")
|
||||
version("1.6.2", sha256="4fc24506c968c5faf57614f5d0aebe0e9d0b90afa47a883e1a1ca94f15f4a42e")
|
||||
version("1.5.2", sha256="1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c746d6dbdb")
|
||||
|
||||
depends_on("c", type="build")
|
||||
|
||||
patch("missing_includes.patch", when="@1.7.0")
|
||||
|
||||
|
@@ -27,3 +27,12 @@ class Aspell(AutotoolsPackage, GNUMirrorPackage):
|
||||
|
||||
patch("fix_cpp.patch")
|
||||
patch("issue-519.patch", when="@:0.60.6.1")
|
||||
|
||||
# workaround due to https://github.com/GNUAspell/aspell/issues/591
|
||||
@run_after("configure", when="@0.60.8:")
|
||||
def make_missing_files(self):
|
||||
make("gen/dirs.h")
|
||||
make("gen/static_filters.src.cpp")
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
env.set("ASPELL_CONF", f"prefix {self.prefix}")
|
||||
|
@@ -14,6 +14,10 @@ class Aspell6De(AspellDictPackage, GNUMirrorPackage):
|
||||
|
||||
license("GPL-2.0-or-later")
|
||||
|
||||
version(
|
||||
"6-de-20161207-7-0",
|
||||
sha256="c2125d1fafb1d4effbe6c88d4e9127db59da9ed92639c7cbaeae1b7337655571",
|
||||
)
|
||||
version(
|
||||
"6-de-20030222-1",
|
||||
sha256="ba6c94e11bc2e0e6e43ce0f7822c5bba5ca5ac77129ef90c190b33632416e906",
|
||||
|
@@ -12,6 +12,9 @@ class Aspell6En(AspellDictPackage, GNUMirrorPackage):
|
||||
homepage = "http://aspell.net/"
|
||||
gnu_mirror_path = "aspell/dict/en/aspell6-en-2017.01.22-0.tar.bz2"
|
||||
|
||||
version(
|
||||
"2020.12.07-0", sha256="4c8f734a28a088b88bb6481fcf972d0b2c3dc8da944f7673283ce487eac49fb3"
|
||||
)
|
||||
version(
|
||||
"2017.01.22-0", sha256="93c73fae3eab5ea3ca6db3cea8770715a820f1b7d6ea2b932dd66a17f8fd55e1"
|
||||
)
|
||||
|
@@ -3,7 +3,6 @@
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
import glob
|
||||
import os
|
||||
import shutil
|
||||
import socket
|
||||
@@ -41,6 +40,8 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage):
|
||||
git = "https://github.com/LLNL/axom.git"
|
||||
tags = ["radiuss"]
|
||||
|
||||
test_requires_compiler = True
|
||||
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("main", branch="main")
|
||||
@@ -620,34 +621,29 @@ def build_test(self):
|
||||
|
||||
@run_after("install")
|
||||
@on_package_attributes(run_tests=True)
|
||||
def check_install(self):
|
||||
"""
|
||||
Checks the spack install of axom using axom's
|
||||
using-with-cmake example
|
||||
"""
|
||||
|
||||
print("Checking Axom installation...")
|
||||
spec = self.spec
|
||||
install_prefix = spec.prefix
|
||||
example_src_dir = join_path(install_prefix, "examples", "axom", "using-with-cmake")
|
||||
example_build_dir = join_path(example_src_dir, "build")
|
||||
print("Checking using-with-cmake example...")
|
||||
with working_dir(example_build_dir, create=True):
|
||||
def test_install_using_cmake(self):
|
||||
"""build example with cmake and run"""
|
||||
example_src_dir = join_path(self.prefix.examples.axom, "using-with-cmake")
|
||||
example_stage_dir = "./cmake"
|
||||
shutil.copytree(example_src_dir, example_stage_dir)
|
||||
with working_dir(join_path(example_stage_dir, "build"), create=True):
|
||||
cmake_args = ["-C ../host-config.cmake", example_src_dir]
|
||||
cmake = self.spec["cmake"].command
|
||||
cmake(*cmake_args)
|
||||
make()
|
||||
example = Executable("./example")
|
||||
example()
|
||||
print("Checking using-with-make example...")
|
||||
example_src_dir = join_path(install_prefix, "examples", "axom", "using-with-make")
|
||||
example_build_dir = join_path(example_src_dir, "build")
|
||||
example_files = glob.glob(join_path(example_src_dir, "*"))
|
||||
with working_dir(example_build_dir, create=True):
|
||||
for example_file in example_files:
|
||||
shutil.copy(example_file, ".")
|
||||
make("AXOM_DIR={0}".format(install_prefix))
|
||||
make("clean")
|
||||
|
||||
@run_after("install")
|
||||
@on_package_attributes(run_tests=True)
|
||||
def test_install_using_make(self):
|
||||
"""build example with make and run"""
|
||||
example_src_dir = join_path(self.prefix.examples.axom, "using-with-make")
|
||||
example_stage_dir = "./make"
|
||||
shutil.copytree(example_src_dir, example_stage_dir)
|
||||
with working_dir(example_stage_dir, create=True):
|
||||
make(f"AXOM_DIR={self.prefix}")
|
||||
example = Executable("./example")
|
||||
example()
|
||||
|
||||
def test_install(self):
|
||||
self.check_install()
|
||||
make("clean")
|
||||
|
@@ -12,7 +12,7 @@ class BigdftPsolver(AutotoolsPackage, CudaPackage):
|
||||
of BigDFT code, and it can also be used separately and linked to other codes."""
|
||||
|
||||
homepage = "https://bigdft.org/"
|
||||
url = "https://gitlab.com/l_sim/bigdft-suite/-/archive/1.9.2/bigdft-suite-1.9.2.tar.gz"
|
||||
url = "https://gitlab.com/l_sim/bigdft-suite/-/archive/1.9.5/bigdft-suite-1.9.5.tar.gz"
|
||||
git = "https://gitlab.com/l_sim/bigdft-suite.git"
|
||||
|
||||
version("develop", branch="devel")
|
||||
@@ -23,16 +23,15 @@ class BigdftPsolver(AutotoolsPackage, CudaPackage):
|
||||
version("1.9.1", sha256="3c334da26d2a201b572579fc1a7f8caad1cbf971e848a3e10d83bc4dc8c82e41")
|
||||
version("1.9.0", sha256="4500e505f5a29d213f678a91d00a10fef9dc00860ea4b3edf9280f33ed0d1ac8")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("fortran", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
depends_on("fortran", type="build")
|
||||
|
||||
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
|
||||
# Not default in bigdft, but is typically the default expectation:
|
||||
variant("shared", default=True, description="Build shared libraries")
|
||||
|
||||
depends_on("autoconf", type="build")
|
||||
depends_on("automake", type="build")
|
||||
@@ -97,7 +96,7 @@ def configure_args(self):
|
||||
else:
|
||||
args.append("--without-openmp")
|
||||
|
||||
args.append(f"--with-atlab-libs={spec['bigdft-atlab'].prefix.lib}")
|
||||
args.append(f"--with-atlab-libs={spec['bigdft-atlab'].libs.ld_flags}")
|
||||
|
||||
if spec.satisfies("+cuda"):
|
||||
args.append("--enable-cuda-gpu")
|
||||
|
@@ -0,0 +1,29 @@
|
||||
# Copyright 2013-2024 Lawrence Livermore 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 CasacoreMeasures(Package):
|
||||
"""Install casacore measures tables, and a tool to maintain them."""
|
||||
|
||||
homepage = "https://gitlab.com/dsa-2000/rcp/casacore-measures"
|
||||
url = "https://gitlab.com/dsa-2000/rcp/casacore-measures/-/archive/v1.0.0/casacore-measures-v1.0.0.tar.gz"
|
||||
git = "https://gitlab.com/dsa-2000/rcp/casacore-measures.git"
|
||||
|
||||
maintainers("mpokorny")
|
||||
|
||||
license("AGPL-3.0-or-later", checked_by="mpokorny")
|
||||
|
||||
version("main", branch="main")
|
||||
version("1.0.0", sha256="2bcd891bc0bd67749d93ec5b0fe92d8c1cbb73253465dd0410a3ab5493b3cee5")
|
||||
|
||||
depends_on("wget", type=("build", "run"))
|
||||
|
||||
def install(self, spec, prefix):
|
||||
mkdirp(self.prefix.bin)
|
||||
install("bin/update_measures", self.prefix.bin)
|
||||
mkdirp(self.prefix.share.data)
|
||||
update = Executable(self.prefix.bin.update_measures)
|
||||
update()
|
@@ -20,6 +20,11 @@ class Cdo(AutotoolsPackage):
|
||||
|
||||
maintainers("skosukhin", "Try2Code")
|
||||
|
||||
version(
|
||||
"2.4.4",
|
||||
sha256="49f50bd18dacd585e9518cfd4f55548f692426edfb3b27ddcd1c653eab53d063",
|
||||
url="https://code.mpimet.mpg.de/attachments/download/29649/cdo-2.4.4.tar.gz",
|
||||
)
|
||||
version(
|
||||
"2.4.3",
|
||||
sha256="4a608b70ee1907b45e149ad44033bb47d35b7da96096553193bd362ca9d445eb",
|
||||
|
@@ -36,7 +36,7 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage):
|
||||
|
||||
homepage = "https://chapel-lang.org/"
|
||||
|
||||
url = "https://github.com/chapel-lang/chapel/archive/refs/tags/2.1.0.tar.gz"
|
||||
url = "https://github.com/chapel-lang/chapel/archive/refs/tags/2.2.0.tar.gz"
|
||||
git = "https://github.com/chapel-lang/chapel.git"
|
||||
|
||||
test_requires_compiler = True
|
||||
@@ -48,11 +48,14 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage):
|
||||
# TODO: add chapel-project github account
|
||||
maintainers("arezaii", "bonachea")
|
||||
|
||||
tags = ["e4s"]
|
||||
|
||||
# See https://spdx.org/licenses/ for a list.
|
||||
license("Apache-2.0")
|
||||
|
||||
version("main", branch="main")
|
||||
|
||||
version("2.2.0", sha256="9b0ce16ed0b1c777647c3aa852d8d8cacea2c3d8a952548a238f07c0f357a0f9")
|
||||
version("2.1.0", sha256="8e164d9a9e705e6b816857e84833b0922ce0bde6a36a9f3a29734830aac168ef")
|
||||
version("2.0.1", sha256="47e1f3789478ea870bd4ecdf52acbe469d171b89b663309325431f3da7c75008")
|
||||
version("2.0.0", sha256="a8cab99fd034c7b7229be8d4626ec95cf02072646fb148c74b4f48c460c6059c")
|
||||
@@ -435,15 +438,21 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage):
|
||||
|
||||
conflicts("platform=windows") # Support for windows is through WSL only
|
||||
|
||||
# Ensure GPU support is Sticky: never allow the concretizer to choose this
|
||||
variant("rocm", default=False, sticky=True, description="Enable AMD ROCm GPU support")
|
||||
variant("cuda", default=False, sticky=True, description="Enable Nvidia CUDA GPU support")
|
||||
|
||||
conflicts("+rocm", when="+cuda", msg="Chapel must be built with either CUDA or ROCm, not both")
|
||||
conflicts(
|
||||
"+rocm", when="@:1.99.99", msg="ROCm support in spack requires Chapel 2.0.0 or later"
|
||||
)
|
||||
conflicts("+rocm", when="@:1", msg="ROCm support in spack requires Chapel 2.0.0 or later")
|
||||
# Chapel restricts the allowable ROCm versions
|
||||
with when("+rocm"):
|
||||
with when("@2:2.1 +rocm"):
|
||||
depends_on("hsa-rocr-dev@4:5.4")
|
||||
depends_on("hip@4:5.4")
|
||||
depends_on("llvm-amdgpu@4:5.4")
|
||||
with when("@2.2: +rocm"):
|
||||
depends_on("hsa-rocr-dev@4:5.4,6.0:6.2")
|
||||
depends_on("hip@4:5.4,6.0:6.2")
|
||||
depends_on("llvm-amdgpu@4:5.4", when="+rocm llvm=spack")
|
||||
requires("llvm=bundled", when="+rocm ^hip@6.0:6.2", msg="ROCm 6 support requires llvm=bundled")
|
||||
|
||||
conflicts(
|
||||
"comm_substrate=unset",
|
||||
@@ -463,7 +472,7 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage):
|
||||
|
||||
conflicts(
|
||||
"^python@3.12:",
|
||||
when="@:2.0.99",
|
||||
when="@:2.0",
|
||||
msg="Chapel versions prior to 2.1.0 may produce SyntaxWarnings with Python >= 3.12",
|
||||
)
|
||||
|
||||
@@ -508,7 +517,7 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage):
|
||||
# with an error about missing plugin-api.h
|
||||
depends_on("binutils+gold+ld+plugins+headers", when="llvm=bundled")
|
||||
|
||||
depends_on("m4")
|
||||
depends_on("m4", when="gmp=bundled")
|
||||
|
||||
# Runtime dependencies:
|
||||
# Note here "run" is run of the Chapel compiler built by this package,
|
||||
@@ -566,12 +575,18 @@ def setup_chpl_platform(self, env):
|
||||
|
||||
def setup_chpl_compilers(self, env):
|
||||
env.set("CHPL_HOST_COMPILER", self.compiler_map[self.spec.compiler.name])
|
||||
env.set("CHPL_TARGET_COMPILER", self.compiler_map[self.spec.compiler.name])
|
||||
if (
|
||||
self.spec.satisfies("+rocm")
|
||||
or self.spec.satisfies("+cuda")
|
||||
or self.spec.satisfies("llvm=spack")
|
||||
):
|
||||
env.set("CHPL_TARGET_COMPILER", "llvm")
|
||||
else:
|
||||
env.set("CHPL_TARGET_COMPILER", self.compiler_map[self.spec.compiler.name])
|
||||
|
||||
# Undo spack compiler wrappers:
|
||||
# the C/C++ compilers must work post-install
|
||||
if self.spec.satisfies("+rocm"):
|
||||
env.set("CHPL_TARGET_COMPILER", "llvm")
|
||||
if self.spec.satisfies("+rocm llvm=spack"):
|
||||
env.set(
|
||||
"CHPL_LLVM_CONFIG",
|
||||
join_path(self.spec["llvm-amdgpu"].prefix, "bin", "llvm-config"),
|
||||
@@ -585,15 +600,16 @@ def setup_chpl_compilers(self, env):
|
||||
env.set("CHPL_HOST_CXX", real_cxx)
|
||||
|
||||
elif self.spec.satisfies("llvm=spack"):
|
||||
env.set("CHPL_TARGET_COMPILER", "llvm")
|
||||
env.set("CHPL_LLVM_CONFIG", join_path(self.spec["llvm"].prefix, "bin", "llvm-config"))
|
||||
real_cc = join_path(self.spec["llvm"].prefix, "bin", "clang")
|
||||
real_cxx = join_path(self.spec["llvm"].prefix, "bin", "clang++")
|
||||
else:
|
||||
real_cc = self.compiler.cc
|
||||
real_cxx = self.compiler.cxx
|
||||
env.set("CHPL_TARGET_CC", real_cc)
|
||||
env.set("CHPL_TARGET_CXX", real_cxx)
|
||||
|
||||
if self.spec.satisfies("llvm=spack") or self.spec.satisfies("llvm=none"):
|
||||
env.set("CHPL_TARGET_CC", real_cc)
|
||||
env.set("CHPL_TARGET_CXX", real_cxx)
|
||||
|
||||
def setup_chpl_comm(self, env, spec):
|
||||
env.set("CHPL_COMM", spec.variants["comm"].value)
|
||||
@@ -609,7 +625,7 @@ def setup_gasnet(self):
|
||||
symlink(self.spec["gasnet"].prefix.src, dst)
|
||||
|
||||
def setup_if_not_unset(self, env, var, value):
|
||||
if value != "unset":
|
||||
if value != "unset" and var in self.chpl_env_vars:
|
||||
if value == "spack":
|
||||
value = "system"
|
||||
env.set(var, value)
|
||||
@@ -618,7 +634,7 @@ def prepend_cpath_include(self, env, prefix):
|
||||
if not is_system_path(prefix):
|
||||
env.prepend_path("CPATH", prefix.include)
|
||||
|
||||
def set_lib_path(self, env, prefix):
|
||||
def update_lib_path(self, env, prefix):
|
||||
if not is_system_path(prefix):
|
||||
env.prepend_path("LD_LIBRARY_PATH", prefix.lib)
|
||||
env.prepend_path("LIBRARY_PATH", prefix.lib)
|
||||
@@ -629,7 +645,7 @@ def setup_env_vars(self, env):
|
||||
# variants that appear unused by Spack typically correspond directly to
|
||||
# a CHPL_<variant> variable which will be used by the Chapel build system
|
||||
for v in self.spec.variants.keys():
|
||||
self.setup_if_not_unset(env, "CHPL_" + v.upper(), self.spec.variants[v].value)
|
||||
self.setup_if_not_unset(env, "CHPL_" + v.upper(), str(self.spec.variants[v].value))
|
||||
self.setup_chpl_compilers(env)
|
||||
self.setup_chpl_platform(env)
|
||||
|
||||
@@ -657,10 +673,10 @@ def setup_env_vars(self, env):
|
||||
# TODO: why must we add to CPATH to find gmp.h
|
||||
# TODO: why must we add to LIBRARY_PATH to find lgmp
|
||||
self.prepend_cpath_include(env, self.spec["gmp"].prefix)
|
||||
self.set_lib_path(env, self.spec["gmp"].prefix)
|
||||
self.update_lib_path(env, self.spec["gmp"].prefix)
|
||||
|
||||
if self.spec.variants["hwloc"].value == "spack":
|
||||
self.set_lib_path(env, self.spec["hwloc"].prefix)
|
||||
self.update_lib_path(env, self.spec["hwloc"].prefix)
|
||||
# Need this for the test env, where it does not appear automatic:
|
||||
env.prepend_path("PKG_CONFIG_PATH", self.spec["libpciaccess"].prefix.lib.pkgconfig)
|
||||
|
||||
@@ -673,22 +689,23 @@ def setup_env_vars(self, env):
|
||||
if self.spec.satisfies("+yaml"):
|
||||
self.prepend_cpath_include(env, self.spec["libyaml"].prefix)
|
||||
# could not compile test/library/packages/Yaml/writeAndParse.chpl without this
|
||||
self.set_lib_path(env, self.spec["libyaml"].prefix)
|
||||
self.update_lib_path(env, self.spec["libyaml"].prefix)
|
||||
|
||||
if self.spec.satisfies("+zmq"):
|
||||
self.prepend_cpath_include(env, self.spec["libzmq"].prefix)
|
||||
# could not compile test/library/packages/ZMQ/hello.chpl without this
|
||||
self.set_lib_path(env, self.spec["libzmq"].prefix)
|
||||
self.update_lib_path(env, self.spec["libzmq"].prefix)
|
||||
env.prepend_path("PKG_CONFIG_PATH", self.spec["libsodium"].prefix.lib.pkgconfig)
|
||||
|
||||
if self.spec.satisfies("+curl"):
|
||||
self.prepend_cpath_include(env, self.spec["curl"].prefix)
|
||||
# could not compile test/library/packages/Curl/check-http.chpl without this
|
||||
self.set_lib_path(env, self.spec["curl"].prefix)
|
||||
self.update_lib_path(env, self.spec["curl"].prefix)
|
||||
|
||||
if self.spec.satisfies("+cuda"):
|
||||
# TODO: why must we add to LD_LIBRARY_PATH to find libcudart?
|
||||
env.prepend_path("LD_LIBRARY_PATH", self.spec["cuda"].prefix.lib64)
|
||||
env.set("CHPL_CUDA_PATH", self.spec["cuda"].prefix)
|
||||
env.set("CHPL_LOCALE_MODEL", "gpu")
|
||||
env.set("CHPL_GPU", "nvidia")
|
||||
|
||||
@@ -697,9 +714,9 @@ def setup_env_vars(self, env):
|
||||
env.set("CHPL_GPU", "amd")
|
||||
env.set("CHPL_GPU_ARCH", self.spec.variants["amdgpu_target"].value[0])
|
||||
self.prepend_cpath_include(env, self.spec["hip"].prefix)
|
||||
env.set("CHPL_ROCM_PATH", self.spec["llvm-amdgpu"].prefix)
|
||||
self.set_lib_path(env, self.spec["hip"].prefix)
|
||||
self.set_lib_path(env, self.spec["hsa-rocr-dev"].prefix)
|
||||
env.set("CHPL_ROCM_PATH", self.spec["hip"].prefix)
|
||||
self.update_lib_path(env, self.spec["hip"].prefix)
|
||||
self.update_lib_path(env, self.spec["hsa-rocr-dev"].prefix)
|
||||
self.setup_chpl_comm(env, self.spec)
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
@@ -716,7 +733,7 @@ def setup_run_environment(self, env):
|
||||
@llnl.util.lang.memoized
|
||||
def _output_version_long(self):
|
||||
if str(self.spec.version).lower() == "main":
|
||||
return "2.2.0"
|
||||
return "2.3.0"
|
||||
spec_vers_str = str(self.spec.version.up_to(3))
|
||||
return spec_vers_str
|
||||
|
||||
@@ -724,7 +741,7 @@ def _output_version_long(self):
|
||||
@llnl.util.lang.memoized
|
||||
def _output_version_short(self):
|
||||
if str(self.spec.version).lower() == "main":
|
||||
return "2.2"
|
||||
return "2.3"
|
||||
spec_vers_str = str(self.spec.version.up_to(2))
|
||||
return spec_vers_str
|
||||
|
||||
|
@@ -374,6 +374,13 @@ def install(self, spec, prefix):
|
||||
if spec.satisfies("+tracing"):
|
||||
options.append("--enable-tracing")
|
||||
|
||||
# charmpp build was failing with clang based compilers for -DNETWORK=mpi as discussed in
|
||||
# https://github.com/charmplusplus/charm/issues/3645
|
||||
# Fix was suggested in https://github.com/charmplusplus/charm/pull/3646 and the same has
|
||||
# been implemented in v8.0.0
|
||||
if self.spec.satisfies("@8.0.0: %aocc"):
|
||||
options.append("--disable-fortran")
|
||||
|
||||
# Call "make" via the build script
|
||||
# Note: This builds Charm++ in the "tmp" subdirectory of the
|
||||
# install directory. Maybe we could set up a symbolic link
|
||||
|
@@ -0,0 +1,56 @@
|
||||
diff --git a/src/qs_dispersion_d4.F b/src/qs_dispersion_d4.F
|
||||
index 74df989b4..e513ed435 100644
|
||||
--- a/src/qs_dispersion_d4.F
|
||||
+++ b/src/qs_dispersion_d4.F
|
||||
@@ -26,6 +26,7 @@ MODULE qs_dispersion_d4
|
||||
#endif
|
||||
USE kinds, ONLY: dp
|
||||
USE particle_types, ONLY: particle_type
|
||||
+ USE periodic_table, ONLY: get_ptable_info, ptable
|
||||
USE qs_dispersion_types, ONLY: qs_dispersion_type
|
||||
USE qs_force_types, ONLY: qs_force_type
|
||||
USE message_passing, ONLY: mp_para_env_type
|
||||
@@ -76,7 +77,8 @@ CONTAINS
|
||||
TYPE(structure_type) :: mol
|
||||
TYPE(realspace_cutoff) :: cutoff
|
||||
|
||||
- INTEGER :: iatom, natom, ind_atom
|
||||
+ LOGICAL :: found
|
||||
+ INTEGER :: iatom, natom, ind_atom, zatom
|
||||
INTEGER, ALLOCATABLE, DIMENSION(:) :: el_num
|
||||
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: gradient, xyz
|
||||
REAL(KIND=dp), DIMENSION(3, 3) :: stress
|
||||
@@ -94,7 +96,9 @@ CONTAINS
|
||||
DO iatom = 1, natom
|
||||
xyz(:, iatom) = particle_set(iatom)%r(:)
|
||||
CALL get_atomic_kind(particle_set(iatom)%atomic_kind, kind_number=ikind)
|
||||
- el_num(iatom) = ikind
|
||||
+ CALL get_ptable_info(particle_set(iatom)%atomic_kind%element_symbol, &
|
||||
+ ielement=zatom, found=found)
|
||||
+ el_num(iatom) = zatom
|
||||
END DO
|
||||
|
||||
!get information about cell / lattice
|
||||
@@ -125,7 +129,7 @@ CONTAINS
|
||||
IF (para_env%num_pe > 1 .AND. para_env%mepos > 0) virial = 0.00_dp
|
||||
END IF
|
||||
DO iatom = 1, natom
|
||||
- ikind = el_num(iatom)
|
||||
+ CALL get_atomic_kind(particle_set(iatom)%atomic_kind, kind_number=ikind)
|
||||
ind_atom = atom_of_kind(iatom)
|
||||
force(ikind)%dispersion(:, ind_atom) = force(ikind)%dispersion(:, ind_atom) + gradient(:, iatom)
|
||||
END DO
|
||||
diff --git a/tests/QS/regtest-dft-vdw-corr-4/TEST_FILES b/tests/QS/regtest-dft-vdw-corr-4/TEST_FILES
|
||||
index 047421204..c817677df 100644
|
||||
--- a/tests/QS/regtest-dft-vdw-corr-4/TEST_FILES
|
||||
+++ b/tests/QS/regtest-dft-vdw-corr-4/TEST_FILES
|
||||
@@ -3,7 +3,7 @@
|
||||
# e.g. 0 means do not compare anything, running is enough
|
||||
# 1 compares the last total energy in the file
|
||||
# for details see cp2k/tools/do_regtest
|
||||
-pbe_dftd4.inp 33 1.0E-14 -0.00141644869634
|
||||
+pbe_dftd4.inp 33 1.0E-14 -0.00283102230260
|
||||
pbe_dftd4_force.inp 72 1.0E-07 0.00007217
|
||||
-pbe_dftd4_stress.inp 31 1.0E-07 -5.16289312880E-03
|
||||
+pbe_dftd4_stress.inp 31 1.0E-07 -2.14003785359E-02
|
||||
#EOF
|
@@ -362,6 +362,7 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
|
||||
# These patches backport 2023.x fixes to previous versions
|
||||
patch("backport_avoid_null_2022.x.patch", when="@2022.1:2022.2 %aocc@:4.0")
|
||||
patch("backport_avoid_null_9.1.patch", when="@9.1 %aocc@:4.0")
|
||||
|
||||
patch("cmake-fixes-2023.2.patch", when="@2023.2 build_system=cmake")
|
||||
|
||||
# Allow compilation with build_type=RelWithDebInfo and build_type=MinSizeRel
|
||||
@@ -369,15 +370,35 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
|
||||
# The patch applies https://github.com/cp2k/cp2k/pull/3251 to version 2024.1
|
||||
patch("cmake-relwithdebinfo-2024.1.patch", when="@2024.1 build_system=cmake")
|
||||
|
||||
# Patch for an undefined constant due to incompatible changes in ELPA
|
||||
@when("@9.1:2022.2 +elpa")
|
||||
# Bugfix for D4 dispersion correction in CP2K 2024.3
|
||||
# https://github.com/cp2k/cp2k/issues/3688
|
||||
patch("d4-dispersion-bugfix-2024.3.patch", when="@2024.3")
|
||||
|
||||
def patch(self):
|
||||
if self.spec["elpa"].satisfies("@2022.05.001:"):
|
||||
filter_file(
|
||||
r"ELPA_2STAGE_REAL_INTEL_GPU",
|
||||
"ELPA_2STAGE_REAL_INTEL_GPU_SYCL",
|
||||
"src/fm/cp_fm_elpa.F",
|
||||
)
|
||||
# Patch for an undefined constant due to incompatible changes in ELPA
|
||||
if self.spec.satisfies("@9.1:2022.2 +elpa"):
|
||||
if self.spec["elpa"].satisfies("@2022.05.001:"):
|
||||
filter_file(
|
||||
r"ELPA_2STAGE_REAL_INTEL_GPU",
|
||||
"ELPA_2STAGE_REAL_INTEL_GPU_SYCL",
|
||||
"src/fm/cp_fm_elpa.F",
|
||||
)
|
||||
|
||||
# Patch for resolving .mod file conflicts in ROCm by implementing 'USE, INTRINSIC'
|
||||
if self.spec.satisfies("+rocm"):
|
||||
for directory, subdirectory, files in os.walk(os.getcwd()):
|
||||
for i in files:
|
||||
file_path = os.path.join(directory, i)
|
||||
filter_file("USE ISO_C_BINDING", "USE,INTRINSIC :: ISO_C_BINDING", file_path)
|
||||
filter_file(
|
||||
"USE ISO_FORTRAN_ENV", "USE,INTRINSIC :: ISO_FORTRAN_ENV", file_path
|
||||
)
|
||||
filter_file("USE omp_lib", "USE,INTRINSIC :: omp_lib", file_path)
|
||||
filter_file("USE OMP_LIB", "USE,INTRINSIC :: OMP_LIB", file_path)
|
||||
filter_file("USE iso_c_binding", "USE,INTRINSIC :: iso_c_binding", file_path)
|
||||
filter_file(
|
||||
"USE iso_fortran_env", "USE,INTRINSIC :: iso_fortran_env", file_path
|
||||
)
|
||||
|
||||
def url_for_version(self, version):
|
||||
url = "https://github.com/cp2k/cp2k/releases/download/v{0}/cp2k-{0}.tar.bz2"
|
||||
@@ -405,6 +426,7 @@ def edit(self, pkg, spec, prefix):
|
||||
"cce": ["-O2"],
|
||||
"xl": ["-O3"],
|
||||
"aocc": ["-O2"],
|
||||
"rocmcc": ["-O1"],
|
||||
}
|
||||
|
||||
dflags = ["-DNDEBUG"] if spec.satisfies("@:2023.2") else []
|
||||
@@ -446,7 +468,7 @@ def edit(self, pkg, spec, prefix):
|
||||
"-ffree-line-length-none",
|
||||
"-ggdb", # make sure we get proper Fortran backtraces
|
||||
]
|
||||
elif spec.satisfies("%aocc"):
|
||||
elif spec.satisfies("%aocc") or spec.satisfies("%rocmcc"):
|
||||
fcflags += ["-ffree-form", "-Mbackslash"]
|
||||
elif spec.satisfies("%pgi") or spec.satisfies("%nvhpc"):
|
||||
fcflags += ["-Mfreeform", "-Mextend"]
|
||||
@@ -551,16 +573,7 @@ def edit(self, pkg, spec, prefix):
|
||||
)
|
||||
)
|
||||
else:
|
||||
libs.append(
|
||||
join_path(
|
||||
elpa.libs.directories[0],
|
||||
(
|
||||
"libelpa{elpa_suffix}.{dso_suffix}".format(
|
||||
elpa_suffix=elpa_suffix, dso_suffix=dso_suffix
|
||||
)
|
||||
),
|
||||
)
|
||||
)
|
||||
libs.append(elpa.libs.ld_flags)
|
||||
|
||||
if spec.satisfies("@:4"):
|
||||
if elpa.satisfies("@:2014.5"):
|
||||
@@ -593,14 +606,14 @@ def edit(self, pkg, spec, prefix):
|
||||
cppflags += ["-D__LIBVORI"]
|
||||
libvori = spec["libvori"].libs
|
||||
ldflags += [libvori.search_flags]
|
||||
libs += libvori
|
||||
libs.append(libvori.ld_flags)
|
||||
libs += ["-lstdc++"]
|
||||
|
||||
if spec.satisfies("+spglib"):
|
||||
cppflags += ["-D__SPGLIB"]
|
||||
spglib = spec["spglib"].libs
|
||||
ldflags += [spglib.search_flags]
|
||||
libs += spglib
|
||||
libs.append(spglib.ld_flags)
|
||||
|
||||
cc = spack_cc if "~mpi" in spec else spec["mpi"].mpicc
|
||||
cxx = spack_cxx if "~mpi" in spec else spec["mpi"].mpicxx
|
||||
@@ -718,18 +731,20 @@ def edit(self, pkg, spec, prefix):
|
||||
|
||||
if spec.satisfies("@2022: +rocm"):
|
||||
libs += [
|
||||
"-L{}".format(spec["rocm"].libs.directories[0]),
|
||||
"-L{}/stubs".format(spec["rocm"].libs.directories[0]),
|
||||
"-L{}".format(spec["hip"].prefix.lib),
|
||||
"-lamdhip64",
|
||||
"-lhipblas",
|
||||
"-lhipfft",
|
||||
"-lstdc++",
|
||||
]
|
||||
|
||||
cppflags += ["-D__OFFLOAD_HIP"]
|
||||
acc_compiler_var = "hipcc"
|
||||
acc_flags_var = "NVFLAGS"
|
||||
cppflags += ["-D__ACC"]
|
||||
cppflags += ["-D__DBCSR_ACC"]
|
||||
cppflags += ["-D__HIP_PLATFORM_AMD__"]
|
||||
cppflags += ["-D__GRID_HIP"]
|
||||
|
||||
gpuver = GPU_MAP[spec.variants["amdgpu_target"].value[0]]
|
||||
|
||||
if spec.satisfies("smm=libsmm"):
|
||||
@@ -807,6 +822,9 @@ def fflags(var, lst):
|
||||
mkf.write(fflags("CXXFLAGS", cxxflags))
|
||||
if spec.satisfies("+cuda"):
|
||||
mkf.write(fflags(acc_flags_var, nvflags))
|
||||
if "+rocm" in spec:
|
||||
mkf.write("OFFLOAD_TARGET = hip\n")
|
||||
|
||||
mkf.write(fflags("FCFLAGS", fcflags))
|
||||
mkf.write(fflags("LDFLAGS", ldflags))
|
||||
mkf.write(fflags("LIBS", libs))
|
||||
@@ -913,7 +931,7 @@ def fix_package_config(self):
|
||||
content += " " + self.spec["fftw-api"].libs.ld_flags
|
||||
|
||||
fftw = self.spec["fftw-api"]
|
||||
if fftw.name in ["fftw", "amdfftw"] and fftw.satisfies("+openmp"):
|
||||
if fftw.name in ["fftw", "amdfftw", "cray-fftw"] and fftw.satisfies("+openmp"):
|
||||
content += " -lfftw3_omp"
|
||||
|
||||
content += "\n"
|
||||
|
@@ -13,8 +13,11 @@ class Cryptopp(MakefilePackage):
|
||||
public-key encryption (RSA, DSA), and a few obsolete/historical encryption
|
||||
algorithms (MD5, Panama)."""
|
||||
|
||||
homepage = "https://www.cryptopp.com"
|
||||
url = "https://www.cryptopp.com/cryptopp700.zip"
|
||||
homepage = "https://github.com/weidai11/cryptopp"
|
||||
urls = [
|
||||
"https://github.com/weidai11/cryptopp/releases/download/CRYPTOPP_8_9_0/cryptopp890.zip",
|
||||
"https://www.cryptopp.com/cryptopp700.zip",
|
||||
]
|
||||
|
||||
license("BSL-1.0")
|
||||
|
||||
@@ -34,8 +37,7 @@ class Cryptopp(MakefilePackage):
|
||||
depends_on("gmake", type="build")
|
||||
|
||||
def url_for_version(self, version):
|
||||
url = "{0}/{1}{2}.zip"
|
||||
return url.format(self.homepage, self.name, version.joined)
|
||||
return f"https://github.com/weidai11/cryptopp/releases/download/CRYPTOPP_{version.underscored}/cryptopp{version.joined}.zip"
|
||||
|
||||
def build(self, spec, prefix):
|
||||
cxx_flags = []
|
||||
|
@@ -42,6 +42,12 @@ class Dakota(CMakePackage):
|
||||
|
||||
license("LGPL-2.1-or-later")
|
||||
|
||||
version(
|
||||
"6.20.0",
|
||||
tag="v6.20.0",
|
||||
commit="494027b37264ec9268f2de8649d071de0232c534",
|
||||
submodules=submodules,
|
||||
)
|
||||
version(
|
||||
"6.19.0",
|
||||
tag="v6.19.0",
|
||||
@@ -76,7 +82,7 @@ class Dakota(CMakePackage):
|
||||
depends_on("python", when="+python")
|
||||
depends_on("perl-data-dumper", type="build", when="@6.12:")
|
||||
depends_on("boost@:1.68.0", when="@:6.12")
|
||||
depends_on("boost@1.69.0:", when="@6.18:")
|
||||
depends_on("boost@1.69.0:1.84.0", when="@6.18:6.20")
|
||||
depends_on("boost +filesystem +program_options +regex +serialization +system")
|
||||
|
||||
# TODO: replace this with an explicit list of components of Boost,
|
||||
|
@@ -26,6 +26,7 @@ class Dd4hep(CMakePackage):
|
||||
license("LGPL-3.0-or-later")
|
||||
|
||||
version("master", branch="master")
|
||||
version("1.30", sha256="02de46151e945eff58cffd84b4b86d35051f4436608199c3efb4d2e1183889fe")
|
||||
version("1.29", sha256="435d25a7ef093d8bf660f288b5a89b98556b4c1c293c55b93bf641fb4cba77e9")
|
||||
version("1.28", sha256="b28d671eda0154073873a044a384486e66f1f200065deca99537aa84f07328ad")
|
||||
version("1.27.2", sha256="09d8acd743d010274562b856d39e2a88aeaf89cf287a4148f52223b0cd960ab2")
|
||||
|
@@ -223,14 +223,19 @@ def cmake_args(self):
|
||||
)
|
||||
else:
|
||||
args.append(self.define("DLAF_WITH_MKL", spec["lapack"].name in INTEL_MATH_LIBRARIES))
|
||||
add_dlaf_prefix = lambda x: x if spec.satisfies("@:0.6") else "DLAF_" + x
|
||||
args.append(
|
||||
self.define(
|
||||
"LAPACK_LIBRARY",
|
||||
add_dlaf_prefix("LAPACK_LIBRARY"),
|
||||
" ".join([spec[dep].libs.ld_flags for dep in ["blas", "lapack"]]),
|
||||
)
|
||||
)
|
||||
if spec.satisfies("+scalapack"):
|
||||
args.append(self.define("SCALAPACK_LIBRARY", spec["scalapack"].libs.ld_flags))
|
||||
args.append(
|
||||
self.define(
|
||||
add_dlaf_prefix("SCALAPACK_LIBRARY"), spec["scalapack"].libs.ld_flags
|
||||
)
|
||||
)
|
||||
|
||||
args.append(self.define_from_variant("DLAF_WITH_SCALAPACK", "scalapack"))
|
||||
|
||||
|
@@ -14,17 +14,34 @@ 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"
|
||||
url = "https://dist.apache.org/repos/dist/release/drill/1.17.0/apache-drill-1.17.0.tar.gz"
|
||||
git = "https://github.com/apache/drill.git"
|
||||
|
||||
license("Apache-2.0")
|
||||
license("Apache-2.0", checked_by="wdconinc")
|
||||
|
||||
version("1.17.0", sha256="a3d2d544bcc32b915fb53fced0f982670bd6fe2abd764423e566a5f6b54debf1")
|
||||
version("1.16.0", sha256="fd195d2b38f393459b37d8f13ac1f36cdbe38495eabb08252da38e3544e87839")
|
||||
version("1.15.0", sha256="188c1d0df28e50f0265f4bc3c5871b4e7abc9450a4e5a7dbe7f0b23146bec76b")
|
||||
version("1.14.0", sha256="1145bdbb723119f271d32daf4cdd77cdeebe88ddcb7d04facd585b715bb5723b")
|
||||
version("1.13.0", sha256="8da6d56f75ae01e0bee6176095d32760e7183dd0200f10ee68b8cd3f882def6a")
|
||||
version("1.21.2", sha256="77e2e7438f1b4605409828eaa86690f1e84b038465778a04585bd8fb21d68e3b")
|
||||
version("1.20.3", sha256="1520cd2524cf8e0ce45fcf02e8e5e3e044465c6dacad853f9fadf9c918863cad")
|
||||
with default_args(deprecated=True):
|
||||
# Log4Shell vulnerability (CVE-2021-44228) affects all versions before 1.20.0
|
||||
version(
|
||||
"1.17.0", sha256="a3d2d544bcc32b915fb53fced0f982670bd6fe2abd764423e566a5f6b54debf1"
|
||||
)
|
||||
version(
|
||||
"1.16.0", sha256="fd195d2b38f393459b37d8f13ac1f36cdbe38495eabb08252da38e3544e87839"
|
||||
)
|
||||
version(
|
||||
"1.15.0", sha256="188c1d0df28e50f0265f4bc3c5871b4e7abc9450a4e5a7dbe7f0b23146bec76b"
|
||||
)
|
||||
version(
|
||||
"1.14.0", sha256="1145bdbb723119f271d32daf4cdd77cdeebe88ddcb7d04facd585b715bb5723b"
|
||||
)
|
||||
version(
|
||||
"1.13.0", sha256="8da6d56f75ae01e0bee6176095d32760e7183dd0200f10ee68b8cd3f882def6a"
|
||||
)
|
||||
|
||||
# pom.xml, requireJavaVersion
|
||||
depends_on("java@7:", type="run")
|
||||
depends_on("java@8:", type="run", when="@1.14:")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
install_tree(".", prefix)
|
||||
|
@@ -21,6 +21,7 @@ class Edm4hep(CMakePackage):
|
||||
license("Apache-2.0")
|
||||
|
||||
version("main", branch="main")
|
||||
version("0.99.1", sha256="84d990f09dbd0ad2198596c0c51238a4b15391f51febfb15dd3d191dc7aae9f4")
|
||||
version("0.99", sha256="3636e8c14474237029bf1a8be11c53b57ad3ed438fd70a7e9b87c5d08f1f2ea6")
|
||||
version("0.10.5", sha256="003c8e0c8e1d1844592d43d41384f4320586fbfa51d4d728ae0870b9c4f78d81")
|
||||
version(
|
||||
@@ -51,10 +52,10 @@ class Edm4hep(CMakePackage):
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
_cxxstd_values = ("17", "20")
|
||||
_cxxstd_values = (conditional("17", when="@:0.99.0"), conditional("20"))
|
||||
variant(
|
||||
"cxxstd",
|
||||
default="17",
|
||||
default="20",
|
||||
values=_cxxstd_values,
|
||||
multi=False,
|
||||
description="Use the specified C++ standard when building.",
|
||||
@@ -69,7 +70,8 @@ class Edm4hep(CMakePackage):
|
||||
depends_on("podio@1:", when="@0.99:")
|
||||
depends_on("podio@0.15:", when="@:0.10.5")
|
||||
for _std in _cxxstd_values:
|
||||
depends_on("podio cxxstd=" + _std, when="cxxstd=" + _std)
|
||||
for _v in _std:
|
||||
depends_on(f"podio cxxstd={_v.value}", when=f"cxxstd={_v.value}")
|
||||
|
||||
depends_on("py-jinja2", type="build")
|
||||
depends_on("py-pyyaml", type="build")
|
||||
|
@@ -55,28 +55,33 @@ class Emacs(AutotoolsPackage, GNUMirrorPackage):
|
||||
depends_on("c", type="build")
|
||||
depends_on("pkgconfig", type="build")
|
||||
depends_on("gzip", type="build")
|
||||
depends_on("texinfo", type="build", when="@29.4:")
|
||||
|
||||
depends_on("ncurses")
|
||||
depends_on("pcre")
|
||||
depends_on("zlib-api")
|
||||
depends_on("libxml2")
|
||||
depends_on("libtiff", when="+X")
|
||||
depends_on("libpng", when="+X")
|
||||
depends_on("libxpm", when="+X")
|
||||
depends_on("giflib", when="+X")
|
||||
depends_on("libx11", when="+X")
|
||||
depends_on("libxaw", when="+X toolkit=athena")
|
||||
depends_on("gtkplus", when="+X toolkit=gtk")
|
||||
depends_on("gnutls", when="+tls")
|
||||
depends_on("jpeg")
|
||||
depends_on("gnutls", when="+tls")
|
||||
depends_on("tree-sitter", when="+treesitter")
|
||||
depends_on("gcc@11: +strip languages=jit", when="+native")
|
||||
depends_on("jansson@2.7:", when="+json")
|
||||
|
||||
with when("+X"):
|
||||
depends_on("libtiff")
|
||||
depends_on("libpng")
|
||||
depends_on("libxpm")
|
||||
depends_on("giflib")
|
||||
depends_on("libx11")
|
||||
depends_on("libxaw", when="toolkit=athena")
|
||||
depends_on("gtkplus", when="toolkit=gtk")
|
||||
|
||||
# the following dependencies are required when building from a git ref
|
||||
# so that we can run reconfigure to generate a ./configure script
|
||||
depends_on("m4", type="build", when="@master:")
|
||||
depends_on("autoconf", type="build", when="@master:")
|
||||
depends_on("automake", type="build", when="@master:")
|
||||
depends_on("libtool", type="build", when="@master:")
|
||||
depends_on("texinfo", type="build", when="@master:")
|
||||
depends_on("gcc@11: +strip languages=jit", when="+native")
|
||||
depends_on("jansson@2.7:", when="+json")
|
||||
|
||||
conflicts("@:26.3", when="platform=darwin os=catalina")
|
||||
|
||||
|
@@ -12,21 +12,97 @@ class Entrezdirect(Package):
|
||||
gene, variation, expression, etc.) from a UNIX terminal window."""
|
||||
|
||||
homepage = "https://www.ncbi.nlm.nih.gov/books/NBK179288/"
|
||||
maintainers("snehring")
|
||||
|
||||
version(
|
||||
"22.6.20240912", sha256="ddf1aab438bfe6af7cf38f725dac6f288d0daf354197665a66d4556c91129ace"
|
||||
)
|
||||
version(
|
||||
"10.7.20190114", sha256="4152749e6a3aac71a64e9367527428714ed16cf1fb6c7eff1298cca9ef144c0d"
|
||||
)
|
||||
|
||||
resource(
|
||||
name="rchive.ARM64",
|
||||
placement="rchive-bin",
|
||||
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/rchive.ARM64.gz",
|
||||
sha256="48dbd770a62505e3a52cd475f564ba8ab4a20729c318114f8177d5342c519122",
|
||||
when="@22.6.20240912 platform=linux target=aarch64:",
|
||||
)
|
||||
resource(
|
||||
name="rchive.Linux",
|
||||
placement="rchive-bin",
|
||||
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/rchive.Linux.gz",
|
||||
sha256="2454ca3423df31f4057d1d2ce743e14eb3142d856e688dbbc6586cd9a6b7948c",
|
||||
when="@22.6.20240912 platform=linux target=x86_64:",
|
||||
)
|
||||
resource(
|
||||
name="rchive.Silicon",
|
||||
placement="rchive-bin",
|
||||
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/xtract.Silicon.gz",
|
||||
sha256="fd7f73d42055b35783107257eb8d96cc2b65daa00c47774cf1913ab83156719c",
|
||||
when="@22.6.20240912 platform=darwin target=aarch64:",
|
||||
)
|
||||
resource(
|
||||
name="transmute.ARM64",
|
||||
placement="transmute-bin",
|
||||
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/transmute.ARM64.gz",
|
||||
sha256="c9d5dede1c70c29839af4d40a4eb55c0788a8943dc2bde5c919c8bf0be584f34",
|
||||
when="@22.6.20240912 platform=linux target=aarch64:",
|
||||
)
|
||||
resource(
|
||||
name="transmute.Linux",
|
||||
placement="transmute-bin",
|
||||
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/transmute.Linux.gz",
|
||||
sha256="8a8746b991494f354cb94dc46740691810b673ae1ff5235cf5a60b29fb974ac2",
|
||||
when="@22.6.20240912 platform=linux target=x86_64:",
|
||||
)
|
||||
resource(
|
||||
name="transmute.Silicon",
|
||||
placement="transmute-bin",
|
||||
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/transmute.Silicon.gz",
|
||||
sha256="5ec32a04a29db90a98dced0dbef717da174c6a1228fdb86b94bc35d1aed26545",
|
||||
when="@22.6.20240912 platform=darwin target=aarch64:",
|
||||
)
|
||||
resource(
|
||||
name="xtract.ARM64",
|
||||
placement="xtract-bin",
|
||||
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/xtract.ARM64.gz",
|
||||
sha256="1d62f612b2be6265c517af6c7a5d6bec0ce3f11bcccc6602a78ce1113bd4fc6c",
|
||||
when="@22.6.20240912 platform=linux target=aarch64:",
|
||||
)
|
||||
resource(
|
||||
name="xtract.Linux",
|
||||
placement="xtract-bin",
|
||||
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/xtract.Linux.gz",
|
||||
sha256="cc3994ce640cfe9ed67f4b8c31d6d22d006503c11a8506d50a5a9fe7c0b59124",
|
||||
when="@22.6.20240912 platform=linux target=x86_64:",
|
||||
)
|
||||
resource(
|
||||
name="xtract.Silicon",
|
||||
placement="xtract-bin",
|
||||
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/xtract.Silicon.gz",
|
||||
sha256="fd7f73d42055b35783107257eb8d96cc2b65daa00c47774cf1913ab83156719c",
|
||||
when="@22.6.20240912 platform=darwin target=aarch64:",
|
||||
)
|
||||
|
||||
depends_on("curl", type="run")
|
||||
depends_on("perl", type="run")
|
||||
depends_on("perl-html-parser", type="run")
|
||||
depends_on("perl-libwww-perl", type="run")
|
||||
depends_on("perl-lwp-protocol-https", type="run")
|
||||
depends_on("perl-http-message", type="run")
|
||||
depends_on("perl-xml-simple", type="run")
|
||||
depends_on("python", type="run", when="@22:")
|
||||
|
||||
def url_for_version(self, ver):
|
||||
pfx = "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/"
|
||||
pfx = "https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/"
|
||||
return pfx + "{0}/edirect-{0}.tar.gz".format(ver.dotted)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
for i in ["rchive", "transmute", "xtract"]:
|
||||
src = f"{i}-bin"
|
||||
exe = find(src, "*")[0]
|
||||
set_executable(exe)
|
||||
copy(exe, ".")
|
||||
remove_linked_tree(src)
|
||||
install_tree(".", prefix.bin)
|
||||
|
@@ -30,6 +30,7 @@ class Faiss(AutotoolsPackage, CMakePackage, CudaPackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("1.8.0", sha256="56ece0a419d62eaa11e39022fa27c8ed6d5a9b9eb7416cc5a0fdbeab07ec2f0c")
|
||||
version("1.7.4", sha256="d9a7b31bf7fd6eb32c10b7ea7ff918160eed5be04fe63bb7b4b4b5f2bbde01ad")
|
||||
version("1.7.2", sha256="d49b4afd6a7a5b64f260a236ee9b2efb760edb08c33d5ea5610c2f078a5995ec")
|
||||
version("1.6.3", sha256="e1a41c159f0b896975fbb133e0240a233af5c9286c09a28fde6aefff5336e542")
|
||||
@@ -45,6 +46,7 @@ class Faiss(AutotoolsPackage, CMakePackage, CudaPackage):
|
||||
conflicts("+tests", when="~python", msg="+tests must be accompanied by +python")
|
||||
|
||||
depends_on("cmake@3.17:", when="build_system=cmake", type="build")
|
||||
depends_on("cmake@3.23.1:", when="build_system=cmake @1.7.4:", type="build")
|
||||
|
||||
extends("python", when="+python")
|
||||
depends_on("python@3.7:", when="+python", type=("build", "run"))
|
||||
|
@@ -3,7 +3,6 @@
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
@@ -31,27 +30,26 @@ class Fio(AutotoolsPackage):
|
||||
version("3.16", sha256="c7731a9e831581bab7104da9ea60c9f44e594438dbe95dff26726ca0285e7b93")
|
||||
version("2.19", sha256="61fb03a18703269b781aaf195cb0d7931493bbb5bfcc8eb746d5d66d04ed77f7")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
|
||||
variant("gui", default=False, description="Enable building of gtk gfio")
|
||||
variant("doc", default=False, description="Generate documentation")
|
||||
variant("libaio", default=False, description="Enable libaio engine")
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("pkgconfig", type="build")
|
||||
depends_on("zlib-api")
|
||||
depends_on("gtkplus@2.18:", when="+gui")
|
||||
depends_on("cairo", when="+gui")
|
||||
depends_on("libaio", when="+libaio")
|
||||
|
||||
depends_on("py-sphinx", type="build", when="+doc")
|
||||
|
||||
conflicts("+libaio", when="platform=darwin", msg="libaio does not support Darwin")
|
||||
|
||||
conflicts("+libaio", when="platform=windows", msg="libaio does not support Windows")
|
||||
conflicts("@:3.18", when="%gcc@10:", msg="gcc@10: sets -fno-common by default")
|
||||
|
||||
def configure_args(self):
|
||||
config_args = []
|
||||
spec = self.spec
|
||||
config_args = ["--disable-native"]
|
||||
|
||||
if spec.satisfies("+gui"):
|
||||
if self.spec.satisfies("+gui"):
|
||||
config_args.append("--enable-gfio")
|
||||
|
||||
return config_args
|
||||
|
38
var/spack/repos/builtin/packages/gaudi/includes.patch
Normal file
38
var/spack/repos/builtin/packages/gaudi/includes.patch
Normal file
@@ -0,0 +1,38 @@
|
||||
diff --git a/GaudiHive/src/AvalancheSchedulerSvc.cpp b/GaudiHive/src/AvalancheSchedulerSvc.cpp
|
||||
index 7f49e6f75..76601bed8 100644
|
||||
--- a/GaudiHive/src/AvalancheSchedulerSvc.cpp
|
||||
+++ b/GaudiHive/src/AvalancheSchedulerSvc.cpp
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
// C++
|
||||
#include <algorithm>
|
||||
+#include <fstream>
|
||||
#include <map>
|
||||
#include <queue>
|
||||
#include <sstream>
|
||||
diff --git a/GaudiHive/src/PRGraph/Visitors/Rankers.cpp b/GaudiHive/src/PRGraph/Visitors/Rankers.cpp
|
||||
index 33f733633..e4d33080f 100644
|
||||
--- a/GaudiHive/src/PRGraph/Visitors/Rankers.cpp
|
||||
+++ b/GaudiHive/src/PRGraph/Visitors/Rankers.cpp
|
||||
@@ -10,6 +10,8 @@
|
||||
\***********************************************************************************/
|
||||
#include "Rankers.h"
|
||||
|
||||
+#include <fstream>
|
||||
+
|
||||
namespace concurrency {
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
diff --git a/GaudiHive/src/PrecedenceSvc.cpp b/GaudiHive/src/PrecedenceSvc.cpp
|
||||
index ac4a7b7d9..1ff1e3f9e 100644
|
||||
--- a/GaudiHive/src/PrecedenceSvc.cpp
|
||||
+++ b/GaudiHive/src/PrecedenceSvc.cpp
|
||||
@@ -17,6 +17,8 @@
|
||||
#include <Gaudi/Algorithm.h>
|
||||
#include <Gaudi/Sequence.h>
|
||||
|
||||
+#include <fstream>
|
||||
+
|
||||
#define ON_DEBUG if ( msgLevel( MSG::DEBUG ) )
|
||||
#define ON_VERBOSE if ( msgLevel( MSG::VERBOSE ) )
|
||||
|
@@ -16,6 +16,7 @@ class Gaudi(CMakePackage):
|
||||
tags = ["hep"]
|
||||
|
||||
version("master", branch="master")
|
||||
version("39.0", sha256="faa3653e2e6c769292c0592e3fc35cd98a2820bd6fc0c967cac565808b927262")
|
||||
version("38.3", sha256="47e8c65ea446656d2dae54a32205525e08257778cf80f9f029cd244d6650486e")
|
||||
version("38.2", sha256="08759b1398336987ad991602e37079f0744e8d8e4e3d5df2d253b8dedf925068")
|
||||
version("38.1", sha256="79d42833edcebc2099f91badb6f72708640c05f678cc4521a86e857f112486dc")
|
||||
@@ -40,7 +41,9 @@ class Gaudi(CMakePackage):
|
||||
version("36.0", sha256="8a0458cef5b616532f9db7cca9fa0e892e602b64c9e93dc0cc6d972e03034830")
|
||||
version("35.0", sha256="c01b822f9592a7bf875b9997cbeb3c94dea97cb13d523c12649dbbf5d69b5fa6")
|
||||
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
conflicts("%gcc@:10", when="@39:", msg="Gaudi needs a c++20 capable compiler for this version")
|
||||
|
||||
maintainers("drbenmorgan", "vvolkl", "jmcarcell")
|
||||
|
||||
@@ -48,7 +51,7 @@ class Gaudi(CMakePackage):
|
||||
variant("cppunit", default=False, description="Build with CppUnit unit testing")
|
||||
variant("docs", default=False, description="Build documentation with Doxygen")
|
||||
variant("examples", default=False, description="Build examples")
|
||||
variant("gaudialg", default=False, description="Build GaudiAlg support", when="@37.0:")
|
||||
variant("gaudialg", default=False, description="Build GaudiAlg support", when="@37.0:38")
|
||||
variant("gperftools", default=False, description="Build with Google PerfTools support")
|
||||
variant("heppdt", default=False, description="Build with HEP Particle Data Table support")
|
||||
variant("jemalloc", default=False, description="Build with jemalloc allocator support")
|
||||
@@ -70,6 +73,9 @@ class Gaudi(CMakePackage):
|
||||
when="@:38.1",
|
||||
)
|
||||
|
||||
# add a few missing includes (c++20?)
|
||||
patch("includes.patch", when="@37:38")
|
||||
|
||||
# These dependencies are needed for a minimal Gaudi build
|
||||
depends_on("aida")
|
||||
# The boost components that are required for Gaudi
|
||||
@@ -91,6 +97,7 @@ class Gaudi(CMakePackage):
|
||||
|
||||
depends_on("clhep")
|
||||
depends_on("cmake", type="build")
|
||||
depends_on("cmake@3.19:", type="build", when="@39:")
|
||||
depends_on("cppgsl")
|
||||
depends_on("fmt@:8", when="@:36.9")
|
||||
depends_on("fmt@:10")
|
||||
@@ -105,6 +112,7 @@ class Gaudi(CMakePackage):
|
||||
depends_on("range-v3")
|
||||
depends_on("root +python +root7 +ssl +tbb +threads")
|
||||
depends_on("zlib-api")
|
||||
depends_on("py-pytest-cov", when="@39:")
|
||||
|
||||
# Testing dependencies
|
||||
# Note: gaudi only builds examples when testing enabled
|
||||
@@ -146,6 +154,10 @@ def cmake_args(self):
|
||||
# todo:
|
||||
self.define("GAUDI_USE_INTELAMPLIFIER", False),
|
||||
]
|
||||
# Release notes for v39.0: https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v39r0
|
||||
# Gaudi@39: needs C++ >= 20, and we need to force CMake to use C++ 20 with old gcc:
|
||||
if self.spec.satisfies("@39: %gcc@:13"):
|
||||
args.append(self.define("GAUDI_CXX_STANDARD", "20"))
|
||||
return args
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
|
@@ -22,6 +22,7 @@ class Genie(Package):
|
||||
maintainers("davehadley")
|
||||
|
||||
version("master", branch="master")
|
||||
version("3.4.2", sha256="c5935aea86d2ba9897ab55bb581622c561575957d19e572691d3bc0833ed9512")
|
||||
version("3.0.6", sha256="ab56ea85d0c1d09029254365bfe75a1427effa717389753b9e0c1b6c2eaa5eaf")
|
||||
version("3.0.4", sha256="53f034618fef9f7f0e17d1c4ed72743e4bba590e824b795177a1a8a8486c861e")
|
||||
version("3.0.2", sha256="34d6c37017b2387c781aea7bc727a0aac0ef45d6b3f3982cc6f3fc82493f65c3")
|
||||
@@ -60,7 +61,11 @@ class Genie(Package):
|
||||
# GENIE Makefile's think that the spack compiler is invalid.
|
||||
# Disables this check.
|
||||
patch("genie_disable_gopt_with_compiler_check.patch", level=0, when="@2.11:")
|
||||
|
||||
patch(
|
||||
"https://patch-diff.githubusercontent.com/raw/GENIE-MC/Generator/pull/376.patch?full_index=1",
|
||||
sha256="7eca9bf44251cd99edd962483ca24c5072f8e2eee688f1e95b076425f2dc59f6",
|
||||
when="@3.4.2",
|
||||
)
|
||||
# Flags for GENIE"s optional but disabled by default features
|
||||
variant(
|
||||
"atmo", default=False, description="Enable GENIE Atmospheric neutrino event generation app"
|
||||
|
48
var/spack/repos/builtin/packages/google-cloud-cpp/package.py
Normal file
48
var/spack/repos/builtin/packages/google-cloud-cpp/package.py
Normal file
@@ -0,0 +1,48 @@
|
||||
# Copyright 2013-2024 Lawrence Livermore 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 GoogleCloudCpp(CMakePackage):
|
||||
"""C++ Client Libraries for Google Cloud Platform."""
|
||||
|
||||
homepage = "https://cloud.google.com/cpp"
|
||||
url = "https://github.com/googleapis/google-cloud-cpp/archive/refs/tags/v2.28.0.tar.gz"
|
||||
|
||||
maintainers("dbolduc")
|
||||
|
||||
license("Apache-2.0", checked_by="dbolduc")
|
||||
|
||||
sanity_check_is_dir = ["lib", "include"]
|
||||
|
||||
version("2.28.0", sha256="1d51910cb4419f6100d8b9df6bccd33477d09f50e378f12b06dae0f137ed7bc6")
|
||||
|
||||
depends_on("abseil-cpp")
|
||||
depends_on("curl")
|
||||
depends_on("google-crc32c")
|
||||
depends_on("grpc")
|
||||
depends_on("nlohmann-json")
|
||||
depends_on("protobuf")
|
||||
|
||||
variant("shared", default=False, description="Build shared instead of static libraries")
|
||||
variant(
|
||||
"cxxstd",
|
||||
default="11",
|
||||
values=("11", "14", "17", "20"),
|
||||
multi=False,
|
||||
description="Use the specified C++ standard when building.",
|
||||
)
|
||||
|
||||
def cmake_args(self):
|
||||
args = [
|
||||
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
|
||||
self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"),
|
||||
"-DBUILD_TESTING:Bool=OFF",
|
||||
"-DGOOGLE_CLOUD_CPP_WITH_MOCKS:Bool=OFF",
|
||||
"-DGOOGLE_CLOUD_CPP_ENABLE_EXAMPLES:Bool=OFF",
|
||||
"-DGOOGLE_CLOUD_CPP_ENABLE:String=__ga_libraries__",
|
||||
]
|
||||
return args
|
@@ -22,6 +22,7 @@ class Gperftools(AutotoolsPackage, CMakePackage):
|
||||
|
||||
build_system(conditional("cmake", when="@2.8.1:"), "autotools", default="cmake")
|
||||
|
||||
version("2.16", sha256="f12624af5c5987f2cc830ee534f754c3c5961eec08004c26a8b80de015cf056f")
|
||||
version("2.15", sha256="c69fef855628c81ef56f12e3c58f2b7ce1f326c0a1fe783e5cae0b88cbbe9a80")
|
||||
version("2.14", sha256="6b561baf304b53d0a25311bd2e29bc993bed76b7c562380949e7cb5e3846b299")
|
||||
version("2.13", sha256="4882c5ece69f8691e51ffd6486df7d79dbf43b0c909d84d3c0883e30d27323e7")
|
||||
@@ -50,6 +51,8 @@ class Gperftools(AutotoolsPackage, CMakePackage):
|
||||
|
||||
depends_on("unwind", when="+libunwind")
|
||||
depends_on("cmake@3.12:", type="build", when="build_system=cmake")
|
||||
# https://github.com/gperftools/gperftools/commit/9dfab2cdce5ec1ebb36e2a20e5031ef49cbe8087
|
||||
conflicts("build_system=cmake", when="@2.16:")
|
||||
|
||||
# Linker error: src/base/dynamic_annotations.cc:46: undefined reference to
|
||||
# `TCMallocGetenvSafe'
|
||||
|
@@ -13,35 +13,23 @@ class Httpd(AutotoolsPackage):
|
||||
homepage = "https://httpd.apache.org/"
|
||||
url = "https://archive.apache.org/dist/httpd/httpd-2.4.43.tar.bz2"
|
||||
|
||||
license("Apache-2.0")
|
||||
license("Apache-2.0", checked_by="wdconinc")
|
||||
|
||||
version("2.4.59", sha256="ec51501ec480284ff52f637258135d333230a7d229c3afa6f6c2f9040e321323")
|
||||
version("2.4.55", sha256="11d6ba19e36c0b93ca62e47e6ffc2d2f2884942694bce0f23f39c71bdc5f69ac")
|
||||
version("2.4.62", sha256="674188e7bf44ced82da8db522da946849e22080d73d16c93f7f4df89e25729ec")
|
||||
|
||||
# https://nvd.nist.gov/vuln/detail/CVE-2022-31813
|
||||
# https://nvd.nist.gov/vuln/detail/CVE-2024-38477
|
||||
version(
|
||||
"2.4.43",
|
||||
sha256="a497652ab3fc81318cdc2a203090a999150d86461acff97c1065dc910fe10f43",
|
||||
"2.4.59",
|
||||
sha256="ec51501ec480284ff52f637258135d333230a7d229c3afa6f6c2f9040e321323",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2.4.41",
|
||||
sha256="133d48298fe5315ae9366a0ec66282fa4040efa5d566174481077ade7d18ea40",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2.4.39",
|
||||
sha256="b4ca9d05773aa59b54d66cd8f4744b945289f084d3be17d7981d1783a5decfa2",
|
||||
deprecated=True,
|
||||
)
|
||||
version(
|
||||
"2.4.38",
|
||||
sha256="7dc65857a994c98370dc4334b260101a7a04be60e6e74a5c57a6dee1bc8f394a",
|
||||
"2.4.55",
|
||||
sha256="11d6ba19e36c0b93ca62e47e6ffc2d2f2884942694bce0f23f39c71bdc5f69ac",
|
||||
deprecated=True,
|
||||
)
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("m4", type="build")
|
||||
depends_on("autoconf", type="build")
|
||||
depends_on("automake", type="build")
|
||||
|
@@ -12,7 +12,7 @@ class Hudi(MavenPackage):
|
||||
Hudi manages the storage of large analytical datasets on DFS."""
|
||||
|
||||
homepage = "https://hudi.apache.org/"
|
||||
url = "https://github.com/apache/hudi/archive/release-0.5.3.tar.gz"
|
||||
url = "https://github.com/apache/hudi/archive/refs/tags/release-0.5.3.tar.gz"
|
||||
|
||||
license("Apache-2.0")
|
||||
|
||||
|
@@ -26,7 +26,7 @@ class Hwloc(AutotoolsPackage, CudaPackage, ROCmPackage):
|
||||
"""
|
||||
|
||||
homepage = "https://www.open-mpi.org/projects/hwloc/"
|
||||
url = "https://download.open-mpi.org/release/hwloc/v2.0/hwloc-2.0.2.tar.gz"
|
||||
url = "https://download.open-mpi.org/release/hwloc/v2.11/hwloc-2.11.1.tar.bz2"
|
||||
git = "https://github.com/open-mpi/hwloc.git"
|
||||
|
||||
maintainers("bgoglin")
|
||||
@@ -198,5 +198,7 @@ def configure_args(self):
|
||||
|
||||
if self.spec.satisfies("+oneapi-level-zero"):
|
||||
args.append("--enable-levelzero")
|
||||
else:
|
||||
args.append("--disable-levelzero")
|
||||
|
||||
return args
|
||||
|
@@ -24,6 +24,12 @@ class IntelOneapiAdvisor(IntelOneApiLibraryPackageWithSdk):
|
||||
"https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/advisor.html"
|
||||
)
|
||||
|
||||
version(
|
||||
"2024.3.0",
|
||||
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/e36c14f6-6142-44ff-b498-d4ff169cc8b0/l_oneapi_advisor_p_2024.3.0.43_offline.sh",
|
||||
sha256="6d230a0d11b972c4c677e041a6077216de79037376f5776b3b291113e25335be",
|
||||
expand=False,
|
||||
)
|
||||
version(
|
||||
"2024.2.1",
|
||||
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/65f69c5c-b41f-4688-8a41-ece8f2bbbb5a/l_oneapi_advisor_p_2024.2.1.44_offline.sh",
|
||||
|
@@ -26,6 +26,12 @@ class IntelOneapiDal(IntelOneApiLibraryPackage):
|
||||
"https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onedal.html"
|
||||
)
|
||||
|
||||
version(
|
||||
"2024.7.0",
|
||||
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ed2c397a-9a78-4466-9179-b39b7da07e83/l_daal_oneapi_p_2024.7.0.14_offline.sh",
|
||||
sha256="aa7b072fe019ce253a111b38055f3949222d7be5231b4df2780a7ded16cd9097",
|
||||
expand=False,
|
||||
)
|
||||
version(
|
||||
"2024.6.0",
|
||||
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/1edf7074-80f8-4b97-aad3-5023b41b7ecd/l_daal_oneapi_p_2024.6.0.418_offline.sh",
|
||||
|
@@ -25,6 +25,12 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage):
|
||||
"https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html"
|
||||
)
|
||||
|
||||
version(
|
||||
"2024.2.2",
|
||||
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/89a381f6-f85d-4dda-ae62-30d51470f53c/l_onemkl_p_2024.2.2.17_offline.sh",
|
||||
sha256="6b64ab95567bee53d6cf7e78f9f7b15695902fb9da0d20c29e638ad001b6b348",
|
||||
expand=False,
|
||||
)
|
||||
version(
|
||||
"2024.2.1",
|
||||
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/6e00e368-b61d-4f87-a409-9b510c022a37/l_onemkl_p_2024.2.1.105_offline.sh",
|
||||
|
@@ -29,6 +29,7 @@ class IntelOneapiRuntime(Package):
|
||||
LIBRARIES = [
|
||||
"imf",
|
||||
"intlc",
|
||||
"irc",
|
||||
"irng",
|
||||
"svml",
|
||||
"ifcore", # Fortran
|
||||
|
@@ -25,6 +25,12 @@ class IntelOneapiVtune(IntelOneApiLibraryPackageWithSdk):
|
||||
|
||||
homepage = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/vtune-profiler.html"
|
||||
|
||||
version(
|
||||
"2024.3.0",
|
||||
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/d7e1fdb1-cfc7-40fb-bf46-3719e9372d67/l_oneapi_vtune_p_2024.3.0.31_offline.sh",
|
||||
sha256="da9f45ee4a5ea337756e85e58e40b235417cffbca6813cf224db49061947253d",
|
||||
expand=False,
|
||||
)
|
||||
version(
|
||||
"2024.2.1",
|
||||
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/d703d28b-d70b-4c90-bdb1-c3562c1084e5/l_oneapi_vtune_p_2024.2.1.68_offline.sh",
|
||||
|
@@ -9,8 +9,8 @@
|
||||
class Iproute2(AutotoolsPackage):
|
||||
"""This is a set of utilities for Linux networking."""
|
||||
|
||||
homepage = "https://github.com/shemminger/iproute2"
|
||||
url = "https://github.com/shemminger/iproute2/archive/v5.9.0.tar.gz"
|
||||
homepage = "https://wiki.linuxfoundation.org/networking/iproute2"
|
||||
url = "https://github.com/iproute2/iproute2/archive/v5.9.0.tar.gz"
|
||||
|
||||
depends_on("bison", type="build")
|
||||
depends_on("flex", type="build")
|
||||
@@ -18,6 +18,13 @@ class Iproute2(AutotoolsPackage):
|
||||
|
||||
license("GPL-2.0-or-later")
|
||||
|
||||
version("6.11.0", sha256="e5ad1c86aa788a979ba1b68cd6ee948b37983d99efabf6a0bf556b061569cc4d")
|
||||
version("6.10.0", sha256="060ee42dfcdf8b9daf9f986eee26d16ac5bdf39c8784702957b13bebec538541")
|
||||
version("6.2.0", sha256="813d41443d4ee0b189531e0d63f955ce94367ef80b184bcd27a30be86ae715e0")
|
||||
version("6.1.0", sha256="63b6057041be86fee8af3468d86fdc1eb2afe1d56500f298413baf89575eff1e")
|
||||
version("6.0.0", sha256="0a92b8d04710ab4e649ec25eb919768ba44d3047f26e80621368689d0f3c5a59")
|
||||
version("5.17.0", sha256="ab5ed83d901d42a8dd5ec539ab8de35c65f921f002331fc7adfd359def33158d")
|
||||
version("5.15.0", sha256="e10161fabe68714b34d565b6efff41b987ffec077f79beec497688c155881ea6")
|
||||
version("5.11.0", sha256="16b79e6ce65d4d5fd425cef2fd92a58c403a93faeeed0e0a3202b36a8e857d1f")
|
||||
version("5.10.0", sha256="164f1de457eefbdadb98d82c309a0977542b34e7a2dfe81e497a0b93675cb3d2")
|
||||
version("5.9.0", sha256="1afde56d416f136b1236ac2f8276e4edbe114ca3c2ab12f11af11b84cf0992e4")
|
||||
|
11
var/spack/repos/builtin/packages/kahip/cstdint.patch
Normal file
11
var/spack/repos/builtin/packages/kahip/cstdint.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
diff -Naur spack-src/lib/io/mmap_graph_io.h spack-src/lib/io/mmap_graph_io.patched.h
|
||||
--- spack-src/lib/io/mmap_graph_io.h 2024-08-22 17:56:05.689983013 +0200
|
||||
+++ spack-src/lib/io/mmap_graph_io.patched.h 2024-08-22 17:58:10.915413214 +0200
|
||||
@@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <cctype>
|
||||
+#include <cstdint>
|
||||
#include <cstring>
|
||||
#include <fcntl.h>
|
||||
#include <fstream>
|
@@ -69,6 +69,8 @@ class Kahip(CMakePackage):
|
||||
patch("fix-sconstruct-for-py3.patch", when="@2:2.10 ^python@3:")
|
||||
patch("fix-sconstruct-for-py3-v2.00.patch", when="@2.00 ^python@3:")
|
||||
|
||||
patch("cstdint.patch", when="@3:")
|
||||
|
||||
# 'when' decorators to override new CMake build approach (old build was SConstruct).
|
||||
@when("@:2.10")
|
||||
def patch(self):
|
||||
|
@@ -21,6 +21,7 @@ class Lcio(CMakePackage):
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("master", branch="master")
|
||||
version("2.22.2", sha256="e5ad9690af85160ef52dd407fc0995451b4293f3aee415a8ea8a950de63d87a1")
|
||||
version("2.22.1", sha256="4bc3d2c83af7b1c65d6736dd14ee82f41af7ce9bfc7cfe779c5f47417e8dc326")
|
||||
version("2.22", sha256="95676977a0427f5ecc857e8504b13f332c2c2e5769dc00f6beecff3c73dab395")
|
||||
version("2.21", sha256="a9f0a9922ab2ef17c6f1b8f7187bfc341f27567745a43c0480c103b617dfcea6")
|
||||
|
@@ -29,6 +29,7 @@ class Legion(CMakePackage, ROCmPackage):
|
||||
|
||||
maintainers("pmccormick", "streichler", "elliottslaughter")
|
||||
tags = ["e4s"]
|
||||
version("24.09.0", tag="legion-24.09.0", commit="4a03402467547b99530042cfe234ceec2cd31b2e")
|
||||
version("24.06.0", tag="legion-24.06.0", commit="3f27977943626ef23038ef0049b7ad1b389caad1")
|
||||
version("24.03.0", tag="legion-24.03.0", commit="c61071541218747e35767317f6f89b83f374f264")
|
||||
version("23.12.0", tag="legion-23.12.0", commit="8fea67ee694a5d9fb27232a7976af189d6c98456")
|
||||
|
@@ -22,8 +22,9 @@ class Libsodium(AutotoolsPackage):
|
||||
|
||||
version("master", branch="master")
|
||||
version("stable", branch="stable")
|
||||
version("next", branch="next")
|
||||
version("next", branch="next", deprecated=True)
|
||||
|
||||
version("1.0.20", sha256="ebb65ef6ca439333c2bb41a0c1990587288da07f6c7fd07cb3a18cc18d30ce19")
|
||||
version("1.0.19", sha256="018d79fe0a045cca07331d37bd0cb57b2e838c51bc48fd837a1472e50068bbea")
|
||||
version("1.0.18", sha256="6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1")
|
||||
version("1.0.17", sha256="0cc3dae33e642cc187b5ceb467e0ad0e1b51dcba577de1190e9ffa17766ac2b1")
|
||||
@@ -36,7 +37,10 @@ class Libsodium(AutotoolsPackage):
|
||||
version("1.0.0", sha256="ced1fe3d2066953fea94f307a92f8ae41bf0643739a44309cbe43aa881dbc9a5")
|
||||
version("0.7.1", sha256="ef46bbb5bac263ef6d3fc00ccc11d4690aea83643412919fe15369b9870280a7")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
|
||||
# https://github.com/jedisct1/libsodium/issues/1372
|
||||
conflicts("target=aarch64:", when="@1.0.19")
|
||||
|
||||
def patch(self):
|
||||
# Necessary on ppc64le / aarch64, because Spack tries to execute these scripts
|
||||
|
@@ -23,6 +23,9 @@ class LinaroForge(Package):
|
||||
maintainers("kenche-linaro")
|
||||
|
||||
if platform.machine() == "aarch64":
|
||||
version(
|
||||
"24.0.5", sha256="fc0c80ce9f66c6966faaca77de0f13e26da564c853e5bfc1e8acd17b65bc2ba0"
|
||||
)
|
||||
version(
|
||||
"24.0.4", sha256="d126e4690f7c9bf21e541721dac51dcee1f336a882211426bf98a15d80671e3d"
|
||||
)
|
||||
@@ -94,6 +97,9 @@ class LinaroForge(Package):
|
||||
"21.1.3", sha256="eecbc5686d60994c5468b2d7cd37bebe5d9ac0ba37bd1f98fbfc69b071db541e"
|
||||
)
|
||||
elif platform.machine() == "x86_64":
|
||||
version(
|
||||
"24.0.5", sha256="da0d4d6fa9120b5e7c4a248795b7f5da32c4987588ecb7406213c8c9846af2bc"
|
||||
)
|
||||
version(
|
||||
"24.0.4", sha256="001e7b7cd796d8e807971b99a9ca233c24f8fcd6eee4e9b4bbb0ec8560d44f08"
|
||||
)
|
||||
|
@@ -56,6 +56,7 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage):
|
||||
license("Apache-2.0")
|
||||
|
||||
version("main", branch="main")
|
||||
version("19.1.0", sha256="0a08341036ca99a106786f50f9c5cb3fbe458b3b74cab6089fd368d0edb2edfe")
|
||||
version("18.1.8", sha256="09c08693a9afd6236f27a2ebae62cda656eba19021ef3f94d59e931d662d4856")
|
||||
version("18.1.7", sha256="b60df7cbe02cef2523f7357120fb0d46cbb443791cde3a5fb36b82c335c0afc9")
|
||||
version("18.1.6", sha256="01390edfae5b809e982b530ff9088e674c62b13aa92cb9dc1e067fa2cf501083")
|
||||
@@ -277,6 +278,8 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage):
|
||||
conflicts("+z3", when="~clang")
|
||||
conflicts("+lua", when="@:10")
|
||||
conflicts("+lua", when="~lldb")
|
||||
# Python distutils were removed with 3.12 and are required to build LLVM <= 14
|
||||
conflicts("^python@3.12:", when="@:14")
|
||||
|
||||
variant(
|
||||
"zstd",
|
||||
@@ -285,6 +288,8 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage):
|
||||
description="Enable zstd support for static analyzer / lld",
|
||||
)
|
||||
|
||||
provides("libllvm@19", when="@19.0.0:19")
|
||||
provides("libllvm@18", when="@18.0.0:18")
|
||||
provides("libllvm@17", when="@17.0.0:17")
|
||||
provides("libllvm@16", when="@16.0.0:16")
|
||||
provides("libllvm@15", when="@15.0.0:15")
|
||||
@@ -419,6 +424,19 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage):
|
||||
# cuda_arch value must be specified
|
||||
conflicts("cuda_arch=none", when="+cuda", msg="A value for cuda_arch must be specified.")
|
||||
|
||||
# clang/test/Misc/target-invalid-cpu-note.c
|
||||
conflicts("cuda_arch=10")
|
||||
conflicts("cuda_arch=11")
|
||||
conflicts("cuda_arch=12")
|
||||
conflicts("cuda_arch=13")
|
||||
conflicts("cuda_arch=75", when="@:13")
|
||||
conflicts("cuda_arch=80", when="@:13")
|
||||
conflicts("cuda_arch=86", when="@:13")
|
||||
conflicts("cuda_arch=87", when="@:15")
|
||||
conflicts("cuda_arch=89", when="@:15")
|
||||
conflicts("cuda_arch=90", when="@:15")
|
||||
conflicts("cuda_arch=90a", when="@:17")
|
||||
|
||||
# LLVM bug https://bugs.llvm.org/show_bug.cgi?id=48234
|
||||
# CMake bug: https://gitlab.kitware.com/cmake/cmake/-/issues/21469
|
||||
# Fixed in upstream versions of both
|
||||
@@ -880,6 +898,8 @@ def cmake_args(self):
|
||||
# finding libhsa and enabling the AMDGPU plugin. Since we don't support this yet,
|
||||
# disable explicitly. See commit a05a0c3c2f8eefc80d84b7a87a23a4452d4a3087.
|
||||
cmake_args.append(define("LIBOMPTARGET_BUILD_AMDGPU_PLUGIN", False))
|
||||
if "python" in spec: # lit's Python needs to be set with this variable
|
||||
cmake_args.append(define("python_executable", spec["python"].command.path))
|
||||
|
||||
if "+lldb" in spec:
|
||||
projects.append("lldb")
|
||||
@@ -892,17 +912,20 @@ def cmake_args(self):
|
||||
define("LLDB_ENABLE_LZMA", True),
|
||||
]
|
||||
)
|
||||
if spec["ncurses"].satisfies("+termlib"):
|
||||
cmake_args.append(define("LLVM_ENABLE_TERMINFO", True))
|
||||
if spec.satisfies("@19:"):
|
||||
cmake_args.append(define("LLDB_CURSES_LIBS", spec["ncurses"].libs))
|
||||
else:
|
||||
cmake_args.append(define("LLVM_ENABLE_TERMINFO", False))
|
||||
if spec["ncurses"].satisfies("+termlib"):
|
||||
cmake_args.append(define("LLVM_ENABLE_TERMINFO", True))
|
||||
else:
|
||||
cmake_args.append(define("LLVM_ENABLE_TERMINFO", False))
|
||||
if spec.version >= Version("10"):
|
||||
cmake_args.append(from_variant("LLDB_ENABLE_PYTHON", "python"))
|
||||
else:
|
||||
cmake_args.append(define("LLDB_DISABLE_PYTHON", "~python" in spec))
|
||||
if spec.satisfies("@5.0.0: +python"):
|
||||
cmake_args.append(define("LLDB_USE_SYSTEM_SIX", True))
|
||||
else:
|
||||
elif spec.satisfies("@:19"):
|
||||
cmake_args.append(define("LLVM_ENABLE_TERMINFO", False))
|
||||
|
||||
if "+gold" in spec:
|
||||
@@ -961,6 +984,14 @@ def cmake_args(self):
|
||||
# CMAKE_INSTALL_RPATH to it, which fails. Statically link libc++abi.a
|
||||
# into libc++.so, linking with -lc++ or -stdlib=libc++ is enough.
|
||||
define("LIBCXX_ENABLE_STATIC_ABI_LIBRARY", True),
|
||||
# Make sure that CMake does not pick host-installed tools for the build
|
||||
# Until #45535 is merged, prevent CMake from delivering incompatible
|
||||
# system tools like python3.12 to older LLVM versions like LLVM-14:
|
||||
define("CMAKE_FIND_PACKAGE_PREFER_CONFIG", True),
|
||||
define("CMAKE_FIND_USE_PACKAGE_ROOT_PATH", False),
|
||||
define("CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY", False),
|
||||
define("CMAKE_FIND_USE_PACKAGE_REGISTRY", False),
|
||||
define("CMAKE_FIND_USE_SYSTEM_PATH", False),
|
||||
]
|
||||
)
|
||||
|
||||
|
38
var/spack/repos/builtin/packages/madgraph5amc/gcc14.patch
Normal file
38
var/spack/repos/builtin/packages/madgraph5amc/gcc14.patch
Normal file
@@ -0,0 +1,38 @@
|
||||
From b470cfe805e747204a86eedada1d90aae1ebceec Mon Sep 17 00:00:00 2001
|
||||
From: Joseph C Wang <joequant@gmail.com>
|
||||
Date: Sat, 24 Aug 2024 00:36:46 +0800
|
||||
Subject: [PATCH] add compile flags for gcc14 compilation
|
||||
|
||||
This disables pointer mismatch warnings which are now errors in
|
||||
gcc14.
|
||||
---
|
||||
vendor/StdHEP/mcfio/src/GNUmakefile | 2 +-
|
||||
vendor/StdHEP/src/stdhep/GNUmakefile | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/vendor/StdHEP/mcfio/src/GNUmakefile b/vendor/StdHEP/mcfio/src/GNUmakefile
|
||||
index 591007abe3..14862ba79e 100644
|
||||
--- a/vendor/StdHEP/mcfio/src/GNUmakefile
|
||||
+++ b/vendor/StdHEP/mcfio/src/GNUmakefile
|
||||
@@ -13,7 +13,7 @@ BINDIR = ../../bin
|
||||
include ../arch_mcfio
|
||||
|
||||
FFLAGS += -std=legacy
|
||||
-CFLAGS += -Wno-implicit-function-declaration
|
||||
+CFLAGS += -Wno-implicit-function-declaration -Wno-incompatible-pointer-types
|
||||
|
||||
FINC = -I.
|
||||
CINC = -I. -I/usr/include/tirpc
|
||||
diff --git a/vendor/StdHEP/src/stdhep/GNUmakefile b/vendor/StdHEP/src/stdhep/GNUmakefile
|
||||
index b1d7591ef0..d0421788c9 100644
|
||||
--- a/vendor/StdHEP/src/stdhep/GNUmakefile
|
||||
+++ b/vendor/StdHEP/src/stdhep/GNUmakefile
|
||||
@@ -8,7 +8,7 @@ STDHEP_DIR = ../..
|
||||
#this has been added by MZ
|
||||
FFLAGS+= -fd-lines-as-code -fPIE
|
||||
FFLAGS += -std=legacy
|
||||
-CFLAGS += -Wno-implicit-function-declaration
|
||||
+CFLAGS += -Wno-implicit-function-declaration -Wno-incompatible-pointer-types
|
||||
|
||||
SLIB = $(STDHEP_DIR)/lib
|
||||
SBIN = $(STDHEP_DIR)/bin
|
@@ -17,16 +17,42 @@ class Madgraph5amc(MakefilePackage):
|
||||
event manipulation and analysis."""
|
||||
|
||||
homepage = "https://launchpad.net/mg5amcnlo"
|
||||
url = "https://launchpad.net/mg5amcnlo/2.0/2.7.x/+download/MG5_aMC_v2.7.3.tar.gz"
|
||||
url = "https://launchpad.net/mg5amcnlo/lts/2.9.x/+download/MG5_aMC_v2.9.20.tar.gz"
|
||||
|
||||
tags = ["hep"]
|
||||
|
||||
version(
|
||||
"2.8.1",
|
||||
sha256="acda34414beba201e529b8c03f87f4893fb3f99ed2956a131d60a387e76c5b8c",
|
||||
url="https://launchpad.net/mg5amcnlo/2.0/2.8.x/+download/MG5_aMC_v2.8.1.tar.gz",
|
||||
)
|
||||
version("2.7.3.py3", sha256="400c26f9b15b07baaad9bd62091ceea785c2d3a59618fdc27cad213816bc7225")
|
||||
# Launchpad can sometimes be slow to respond
|
||||
timeout = {"timeout": 60}
|
||||
|
||||
with default_args(fetch_options=timeout):
|
||||
version("3.5.5", sha256="3b4262024cefb8a06082faa9a7ba43484b27a3f2b940a06fbe49c640c5b7ebd7")
|
||||
version(
|
||||
"2.9.20",
|
||||
sha256="09a70e2e8b52e504bcaaa6527d3cec9641b043f5f853f2d11fa3c9970b7efae9",
|
||||
url="https://launchpad.net/mg5amcnlo/lts/2.9.x/+download/MG5_aMC_v2.9.20.tar.gz",
|
||||
)
|
||||
with default_args(deprecated=True):
|
||||
version(
|
||||
"2.9.19",
|
||||
sha256="ec95d40ec8845e57682400ef24a3b769a4d0542e3a849b7c5e10105d0a0f8e61",
|
||||
url="https://launchpad.net/mg5amcnlo/lts/2.9.x/+download/MG5_aMC_v2.9.19.tar.gz",
|
||||
)
|
||||
version(
|
||||
"2.9.17",
|
||||
sha256="6781c515ccc2005a953c35dcf9238632b761a937f1832bdfaa5514510b8c5a17",
|
||||
url="https://launchpad.net/mg5amcnlo/lts/2.9.x/+download/MG5_aMC_v2.9.17.tar.gz",
|
||||
)
|
||||
# Older versions have been removed, only the latest LTS versions are available:
|
||||
version(
|
||||
"2.8.3.2",
|
||||
sha256="4077eee75f9255fe627755fe0ac5da5d72f5d5c4f70b6e06e4e564e9c512b215",
|
||||
url="https://launchpad.net/mg5amcnlo/lts/2.8.x/+download/MG5_aMC_v2.8.3.2.tar.gz",
|
||||
)
|
||||
version(
|
||||
"2.7.3.py3",
|
||||
sha256="400c26f9b15b07baaad9bd62091ceea785c2d3a59618fdc27cad213816bc7225",
|
||||
url="https://launchpad.net/mg5amcnlo/lts/2.7.x/+download/MG5_aMC_v2.7.3.py3.tar.gz",
|
||||
)
|
||||
|
||||
variant(
|
||||
"atlas",
|
||||
@@ -35,6 +61,7 @@ class Madgraph5amc(MakefilePackage):
|
||||
)
|
||||
variant("ninja", default=False, description="Use external installation" + " of Ninja")
|
||||
variant("collier", default=False, description="Use external installation" + " of Collier")
|
||||
variant("pythia8", default=False, description="Use external installation of Pythia8")
|
||||
|
||||
conflicts("%gcc@10:", when="@2.7.3")
|
||||
|
||||
@@ -46,15 +73,21 @@ class Madgraph5amc(MakefilePackage):
|
||||
depends_on("py-six", when="@2.7.3.py3,2.8.0:", type=("build", "run"))
|
||||
|
||||
depends_on("python@3.7:", when="@2.7.3.py3", type=("build", "run"))
|
||||
depends_on("python@2.7.0:2.8.0,3.7:", when="@2.8.0:", type=("build", "run"))
|
||||
depends_on("libtirpc")
|
||||
depends_on("pythia8", when="+pythia8")
|
||||
|
||||
patch("array-bounds.patch")
|
||||
patch("madgraph5amc.patch", level=0)
|
||||
patch("madgraph5amc-2.7.3.atlas.patch", level=0, when="@2.7.3.py2+atlas")
|
||||
patch("gcc14.patch", when="@:3.5.5%gcc@14:")
|
||||
patch("array-bounds.patch", when="@:2.8.1")
|
||||
patch("madgraph5amc.patch", level=0, when="@:2.9")
|
||||
patch("madgraph5amc-2.7.3.atlas.patch", level=0, when="@2.7.3.py3+atlas")
|
||||
patch("madgraph5amc-2.8.0.atlas.patch", level=0, when="@2.8.0+atlas")
|
||||
patch("madgraph5amc-2.8.0.atlas.patch", level=0, when="@2.8.1+atlas")
|
||||
# Fix running from CVMFS on AFS, for example on lxplus at CERN
|
||||
patch(
|
||||
"https://patch-diff.githubusercontent.com/raw/mg5amcnlo/mg5amcnlo/pull/96.diff?full_index=1",
|
||||
sha256="ac6644f1d0ef51d9bdb27a1519261f1cf27d075d39faa278fbc2849acbc5575d",
|
||||
when="@3:3.5",
|
||||
)
|
||||
|
||||
def edit(self, spec, prefix):
|
||||
def set_parameter(name, value):
|
||||
@@ -85,12 +118,6 @@ def build(self, spec, prefix):
|
||||
with working_dir(join_path("vendor", "CutTools")):
|
||||
make(parallel=False)
|
||||
|
||||
with working_dir(join_path("vendor", "StdHEP")):
|
||||
for m in ["mcfio/arch_mcfio", "src/stdhep_arch"]:
|
||||
arch = FileFilter(m)
|
||||
arch.filter("CC.*=.*", "CC = {0}".format(spack_cc))
|
||||
make(parallel=False)
|
||||
|
||||
if "+atlas" in spec:
|
||||
if os.path.exists(join_path("bin", "compile.py")):
|
||||
compile_py = Executable(join_path("bin", "compile.py"))
|
||||
@@ -120,3 +147,20 @@ def installfile(filename):
|
||||
join_path("Template", "LO", "Source", ".make_opts"),
|
||||
join_path(prefix, "Template", "LO", "Source", "make_opts"),
|
||||
)
|
||||
|
||||
# TODO: Fix for reproducibility, see https://github.com/spack/spack/pull/41128#issuecomment-2305777485
|
||||
if "+pythia8" in spec:
|
||||
with open("install-pythia8-interface", "w") as f:
|
||||
f.write(
|
||||
f"""set pythia8_path {spec['pythia8'].prefix}
|
||||
install mg5amc_py8_interface
|
||||
"""
|
||||
)
|
||||
mg5 = Executable(join_path(prefix, "bin", "mg5_aMC"))
|
||||
mg5("install-pythia8-interface")
|
||||
|
||||
def url_for_version(self, version):
|
||||
major = str(version).split(".")[0]
|
||||
minor = str(version).split(".")[1]
|
||||
url = f"https://launchpad.net/mg5amcnlo/{major}.0/{major}.{minor}.x/+download/MG5_aMC_v{version}.tar.gz"
|
||||
return url
|
||||
|
@@ -38,6 +38,7 @@ class Mapl(CMakePackage):
|
||||
version("develop", branch="develop")
|
||||
version("main", branch="main")
|
||||
|
||||
version("2.48.0", sha256="60a0fc4fd82b1a05050666ae478da7d79d86305aff1643a57bc09cb5347323b7")
|
||||
version("2.47.2", sha256="d4ca384bf249b755454cd486a26bae76944a7cae3a706b9a7c9298825077cac0")
|
||||
version("2.47.1", sha256="ca3e94c0caa78a91591fe63603d1836196f5294d4baad7cf1d83b229b3a85916")
|
||||
version("2.47.0", sha256="66c862d2ab8bcd6969e9728091dbca54f1f420e97e41424c4ba93ef606088459")
|
||||
@@ -146,11 +147,17 @@ class Mapl(CMakePackage):
|
||||
|
||||
# Versions later than 3.14 remove FindESMF.cmake
|
||||
# from ESMA_CMake.
|
||||
resource(
|
||||
name="esma_cmake",
|
||||
git="https://github.com/GEOS-ESM/ESMA_cmake.git",
|
||||
tag="v3.51.0",
|
||||
when="@2.48:",
|
||||
)
|
||||
resource(
|
||||
name="esma_cmake",
|
||||
git="https://github.com/GEOS-ESM/ESMA_cmake.git",
|
||||
tag="v3.46.0",
|
||||
when="@2.47:",
|
||||
when="@2.47",
|
||||
)
|
||||
resource(
|
||||
name="esma_cmake",
|
||||
@@ -248,6 +255,8 @@ class Mapl(CMakePackage):
|
||||
depends_on("hdf5")
|
||||
depends_on("netcdf-c")
|
||||
depends_on("netcdf-fortran")
|
||||
|
||||
# ESMF dependency
|
||||
depends_on("esmf@8.6.1:", when="@2.45:")
|
||||
depends_on("esmf@8.6.0", when="@2.44")
|
||||
depends_on("esmf@8.5:", when="@2.40:2.43")
|
||||
@@ -257,46 +266,54 @@ class Mapl(CMakePackage):
|
||||
depends_on("esmf~debug", when="~debug")
|
||||
depends_on("esmf+debug", when="+debug")
|
||||
|
||||
depends_on("gftl@1.13.0:", when="@2.45:")
|
||||
# udunits dependency from MAPL 2.48 onwards
|
||||
depends_on("udunits", when="@2.48:")
|
||||
|
||||
# gFTL dependency
|
||||
depends_on("gftl@1.14.0:", when="@2.48:")
|
||||
depends_on("gftl@1.13.0:", when="@2.45:2.47")
|
||||
depends_on("gftl@1.11.0:", when="@2.44")
|
||||
depends_on("gftl@1.10.0:", when="@2.40:2.43")
|
||||
depends_on("gftl@1.5.5:1.9", when="@:2.39")
|
||||
|
||||
# There was an interface change in gftl-shared, so we need to control versions
|
||||
# MAPL 2.39 and older can use up to 1.6.0 but MAPL 2.40+ needs 1.6.1 or higher
|
||||
depends_on("gftl-shared@1.8.0:", when="@2.45:")
|
||||
# gFTL-Shared dependency
|
||||
depends_on("gftl-shared@1.9.0:", when="@2.48:")
|
||||
depends_on("gftl-shared@1.8.0:", when="@2.45:2.47")
|
||||
depends_on("gftl-shared@1.7.0:", when="@2.44")
|
||||
depends_on("gftl-shared@1.6.1:", when="@2.40:2.43")
|
||||
depends_on("gftl-shared@1.3.1:1.6.0", when="@:2.39")
|
||||
|
||||
# There was an interface change in yaFyaml, so we need to control versions
|
||||
# MAPL 2.22 and older uses older version, MAPL 2.23+ and higher uses newer
|
||||
# Note that MAPL 2.40+ no longer require yafyaml as we get yaml support
|
||||
# via esmf 8.5.0
|
||||
depends_on("yafyaml@1.0-beta5", when="@:2.22+extdata2g")
|
||||
# yafyaml dependency
|
||||
# Note that MAPL 2.40+ no longer directly requires yafyaml as
|
||||
# extdata2g gets yaml support via esmf 8.5.0, but pflogger will
|
||||
# bring in yafyaml as a dependency.
|
||||
depends_on("yafyaml@1.0.4:", when="@2.23:2.39+extdata2g")
|
||||
depends_on("yafyaml@1.0-beta5", when="@:2.22+extdata2g")
|
||||
|
||||
# pFlogger depends on yaFyaml in the same way. MAPL 2.22 and below uses old
|
||||
# yaFyaml so we need to use old pFlogger, but MAPL 2.23+ uses new yaFyaml
|
||||
depends_on("pflogger@:1.6 +mpi", when="@:2.22+pflogger")
|
||||
depends_on("pflogger@1.9.1: +mpi", when="@2.23:2.39+pflogger")
|
||||
depends_on("pflogger@1.9.5: +mpi", when="@2.40:2.43+pflogger")
|
||||
# pflogger dependency
|
||||
depends_on("pflogger@1.15.0: +mpi", when="@2.48:+pflogger")
|
||||
depends_on("pflogger@1.14.0: +mpi", when="@2.45:2.47+pflogger")
|
||||
depends_on("pflogger@1.11.0: +mpi", when="@2.44+pflogger")
|
||||
depends_on("pflogger@1.14.0: +mpi", when="@2.45:+pflogger")
|
||||
depends_on("pflogger@1.9.5: +mpi", when="@2.40:2.43+pflogger")
|
||||
depends_on("pflogger@1.9.1: +mpi", when="@2.23:2.39+pflogger")
|
||||
depends_on("pflogger@:1.6 +mpi", when="@:2.22+pflogger")
|
||||
|
||||
# fArgParse v1.4.1 is the first usable version with MAPL
|
||||
# we now require 1.5.0 with MAPL 2.40+
|
||||
depends_on("fargparse@1.7.0:", when="@2.45:+fargparse")
|
||||
# fargparse dependency
|
||||
depends_on("fargparse@1.8.0:", when="@2.48:+fargparse")
|
||||
depends_on("fargparse@1.7.0:", when="@2.45:2.47+fargparse")
|
||||
depends_on("fargparse@1.6.0:", when="@2.44+fargparse")
|
||||
depends_on("fargparse@1.5.0:", when="@2.40:43+fargparse")
|
||||
depends_on("fargparse@1.4.1:1.4", when="@:2.39+fargparse")
|
||||
|
||||
depends_on("pfunit@4.9: +mpi +fhamcrest", when="@2.45:+pfunit")
|
||||
# pfunit dependency
|
||||
depends_on("pfunit@4.10: +mpi +fhamcrest", when="@2.48:+pfunit")
|
||||
depends_on("pfunit@4.9: +mpi +fhamcrest", when="@2.45:2.47+pfunit")
|
||||
depends_on("pfunit@4.8: +mpi +fhamcrest", when="@2.44+pfunit")
|
||||
depends_on("pfunit@4.7.3: +mpi +fhamcrest", when="@2.40:+pfunit")
|
||||
depends_on("pfunit@4.6.1: +mpi +fhamcrest", when="@2.32:+pfunit")
|
||||
depends_on("pfunit@4.4.1: +mpi +fhamcrest", when="@2.26:+pfunit")
|
||||
depends_on("pfunit@4.2: +mpi +fhamcrest", when="@:2.25+pfunit")
|
||||
|
||||
depends_on("flap", when="+flap")
|
||||
|
||||
depends_on("ecbuild", type="build")
|
||||
@@ -388,3 +405,14 @@ def setup_build_environment(self, env):
|
||||
# name is common and used all over the place,
|
||||
# and if it is set it breaks the mapl build.
|
||||
env.unset("BASEDIR")
|
||||
|
||||
# We can run some tests to make sure the build is working
|
||||
# but we can only do it if the pfunit variant is enabled
|
||||
@when("+pfunit")
|
||||
@run_after("build")
|
||||
@on_package_attributes(run_tests=True)
|
||||
def check(self):
|
||||
with working_dir(self.builder.build_directory):
|
||||
# The test suite contains a lot of tests. We select only those
|
||||
# that are cheap. Note this requires MPI and 6 processes
|
||||
ctest("--output-on-failure", "-L", "ESSENTIAL")
|
||||
|
@@ -19,6 +19,7 @@ class Mimalloc(CMakePackage):
|
||||
version("dev-slice", branch="dev-slice")
|
||||
version("dev", branch="dev")
|
||||
version("master", branch="master")
|
||||
version("2.1.7", sha256="0eed39319f139afde8515010ff59baf24de9e47ea316a315398e8027d198202d")
|
||||
version("2.1.2", sha256="2b1bff6f717f9725c70bf8d79e4786da13de8a270059e4ba0bdd262ae7be46eb")
|
||||
version("2.1.1", sha256="38b9660d0d1b8a732160191609b64057d8ccc3811ab18b7607bc93ca63a6010f")
|
||||
version("2.1.0", sha256="86e5e53e38bace59a9eb20d27e7bd7c5f448cb246a887d4f99478fa4809731fc")
|
||||
@@ -36,6 +37,7 @@ class Mimalloc(CMakePackage):
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
depends_on("cmake@3.0:", type="build")
|
||||
conflicts("^cmake@:3.17", when="@2.1.7:")
|
||||
|
||||
libs_values = ("shared", "static", "object")
|
||||
variant(
|
||||
|
@@ -16,6 +16,7 @@ class Mold(CMakePackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("2.34.0", sha256="6067f41f624c32cb0f4e959ae7fabee5dd71dd06771e2c069c2b3a6a8eca3c8c")
|
||||
version("2.33.0", sha256="37b3aacbd9b6accf581b92ba1a98ca418672ae330b78fe56ae542c2dcb10a155")
|
||||
version("2.32.1", sha256="f3c9a527d884c635834fe7d79b3de959b00783bf9446280ea274d996f0335825")
|
||||
version("2.32.0", sha256="4b7e4146ea0f52be9adae8b417399f3676a041e65b55e3f25f088120d30a320b")
|
||||
|
@@ -69,6 +69,11 @@ class MpasModel(MakefilePackage):
|
||||
depends_on("mpi")
|
||||
depends_on("parallelio")
|
||||
|
||||
conflicts(
|
||||
"%oneapi@:2024.1",
|
||||
msg="ifx internal compiler error triggered by maps-model fixed in oneapi@2024.2",
|
||||
)
|
||||
|
||||
patch("makefile.patch", when="@7.0")
|
||||
|
||||
parallel = False
|
||||
@@ -114,7 +119,7 @@ def target(self, model, action):
|
||||
cppflags.append("-DUNDERSCORE")
|
||||
elif satisfies("%fj"):
|
||||
fflags.extend(["-Free", "-Fwide", "-CcdRR8"])
|
||||
elif satisfies("%intel"):
|
||||
elif satisfies("%intel") or satisfies("%oneapi"):
|
||||
fflags.extend(["-convert big_endian", "-FR"])
|
||||
if satisfies("precision=double"):
|
||||
fflags.extend(["-r8"])
|
||||
|
@@ -22,6 +22,7 @@ class Ngspice(AutotoolsPackage):
|
||||
|
||||
# Master version by default adds the experimental adms feature
|
||||
version("master", branch="master")
|
||||
version("43", sha256="14dd6a6f08531f2051c13ae63790a45708bd43f3e77886a6a84898c297b13699")
|
||||
version("42", sha256="737fe3846ab2333a250dfadf1ed6ebe1860af1d8a5ff5e7803c772cc4256e50a")
|
||||
version("41", sha256="1ce219395d2f50c33eb223a1403f8318b168f1e6d1015a7db9dbf439408de8c4")
|
||||
version("40", sha256="e303ca7bc0f594e2d6aa84f68785423e6bf0c8dad009bb20be4d5742588e890d")
|
||||
@@ -175,3 +176,7 @@ def flag_handler(self, name, flags):
|
||||
if "debug=yes" in self.spec:
|
||||
flags.append("-g")
|
||||
return (None, None, flags)
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
if "build=lib" in self.spec:
|
||||
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib)
|
||||
|
@@ -21,6 +21,16 @@
|
||||
# - package key must be in the form '{os}-{arch}' where 'os' is in the
|
||||
# format returned by platform.system() and 'arch' by platform.machine()
|
||||
_versions = {
|
||||
"24.9": {
|
||||
"Linux-aarch64": (
|
||||
"8d900f798ef806c64993fd4fedf2c2c812dd1ccdbac2a0d33fabcd0cd36f19cf",
|
||||
"https://developer.download.nvidia.com/hpc-sdk/24.9/nvhpc_2024_249_Linux_aarch64_cuda_multi.tar.gz",
|
||||
),
|
||||
"Linux-x86_64": (
|
||||
"30c493350cf67481e84cea60a3a869e01fa0bcb71df8e898266273fbdf0a7f26",
|
||||
"https://developer.download.nvidia.com/hpc-sdk/24.9/nvhpc_2024_249_Linux_x86_64_cuda_multi.tar.gz",
|
||||
),
|
||||
},
|
||||
"24.7": {
|
||||
"Linux-aarch64": (
|
||||
"256ae392ed961162f3f6dc633498db2b68441103a6192f5d4a1c18fa96e992e7",
|
||||
|
@@ -14,6 +14,10 @@ class Ocaml(Package):
|
||||
url = "https://caml.inria.fr/pub/distrib/ocaml-4.06/ocaml-4.06.0.tar.gz"
|
||||
|
||||
maintainers("scemama")
|
||||
version("5.2.0", sha256="3a7b5fb6d81bb42bbda84aadf5d84ff8bcbb149988087e7863bf5c2f4b27b187")
|
||||
version("5.1.1", sha256="33b8c1df88700ba1f5123aa4bdbc7a125482feafc77e5081ef1725fddf290be1")
|
||||
version("5.1.0", sha256="5e91492d87b193728a0729122b679039c73e75820dcf2724a31b262390d210c2")
|
||||
version("5.0.0", sha256="969e1f7939736d39f2af533cd12cc64b05f060dbed087d7b760ee2503bfe56de")
|
||||
version("4.13.1", sha256="66a5353c5e7b33a8981446e857657aad45a3b82080ea5c67d4baa434eacfcf5f")
|
||||
version("4.12.0", sha256="9825e5903b852a7a5edb71a1ed68f5d5d55d6417e2dda514dda602bc6efeed7b")
|
||||
version("4.11.0", sha256="b5bd04bf794a676389b167633f01f8275acdd853149b137f7575f2c2ddef1377")
|
||||
|
@@ -7,41 +7,44 @@
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class Ollama(GoPackage):
|
||||
class Ollama(GoPackage, CudaPackage):
|
||||
"""Run Llama 2, Code Llama, and other models. Customize and create your own."""
|
||||
|
||||
homepage = "https://ollama.com"
|
||||
git = "https://github.com/ollama/ollama.git"
|
||||
|
||||
maintainers("teaguesterling")
|
||||
maintainers("teaguesterling", "brettviren")
|
||||
|
||||
# We're using commit IDs because the `go generate` process will fail for some
|
||||
# dependencies that expect to be within a git repo. This is also an issue with
|
||||
# cached downloads, but I don't know how to fix that yet
|
||||
version("0.1.31", commit="dc011d16b9ff160c0be3829fc39a43054f0315d0", submodules=True)
|
||||
# This is the last verified non-preview version as of 20240413
|
||||
version(
|
||||
"0.1.30",
|
||||
commit="756c2575535641f1b96d94b4214941b90f4c30c7",
|
||||
submodules=True,
|
||||
preferred=True,
|
||||
)
|
||||
# A shell script is run by `go generate` which assumes source is in a git
|
||||
# repo. So we must use git VCS and not tarballs and defeat source caching.
|
||||
with default_args(submodules=True, no_cache=True):
|
||||
version("0.3.9", commit="a1cef4d0a5f31280ea82b350605775931a6163cb")
|
||||
version("0.1.31", commit="dc011d16b9ff160c0be3829fc39a43054f0315d0")
|
||||
# This is the last verified non-preview version as of 20240413
|
||||
version("0.1.30", commit="756c2575535641f1b96d94b4214941b90f4c30c7")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
license("MIT", checked_by="teaguesterling")
|
||||
|
||||
depends_on("cmake", type="build")
|
||||
depends_on("go", type="build")
|
||||
depends_on("gcc", type="build")
|
||||
depends_on("cmake@3.24:", type="build")
|
||||
depends_on("go@1.4.0:", type="build")
|
||||
depends_on("git", type="build")
|
||||
depends_on("ccache", type="build")
|
||||
|
||||
|
||||
class GoBuilder(spack.build_systems.go.GoBuilder):
|
||||
phases = ("generate", "build", "install")
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
if self.spec.satisfies("+cuda"):
|
||||
# These variables are consumed by gen_linux.sh which is called by
|
||||
# "go generate".
|
||||
cuda_prefix = self.spec["cuda"].prefix
|
||||
env.set("CUDACXX", cuda_prefix.bin.nvcc)
|
||||
env.set("CUDA_LIB_DIR", cuda_prefix.lib)
|
||||
env.set("CMAKE_CUDA_ARCHITECTURES", spec.variants["cuda_arch"].value)
|
||||
|
||||
@property
|
||||
def generate_args(self):
|
||||
"""Arguments for ``go generate``."""
|
||||
|
@@ -19,6 +19,11 @@ class OmegaH(CMakePackage, CudaPackage):
|
||||
maintainers("cwsmith")
|
||||
tags = ["e4s"]
|
||||
version("main", branch="main")
|
||||
version(
|
||||
"scorec.10.8.5",
|
||||
commit="62026fc305356abb5e02a9fce3fead9cf5077fbe",
|
||||
git="https://github.com/SCOREC/omega_h.git",
|
||||
)
|
||||
version(
|
||||
"scorec.10.7.0",
|
||||
commit="0e5de8618c3370f702e08c1b1af476dbbc118892",
|
||||
@@ -75,6 +80,12 @@ class OmegaH(CMakePackage, CudaPackage):
|
||||
when="@scorec.10.1.0:",
|
||||
msg="Thrust is broken in CUDA = 11.2.* see https://github.com/sandialabs/omega_h/issues/366",
|
||||
)
|
||||
conflicts(
|
||||
"^cuda@:11.3",
|
||||
when="@scorec.10.8.5:",
|
||||
msg="see https://github.com/SCOREC/omega_h/issues/66",
|
||||
)
|
||||
|
||||
# the sandia repo has a fix for cuda > 11.2 support
|
||||
# see github.com/sandialabs/omega_h/pull/373
|
||||
conflicts(
|
||||
@@ -163,7 +174,7 @@ def flag_handler(self, name, flags):
|
||||
|
||||
def test_mesh(self):
|
||||
"""test construction, adaptation, and conversion of a mesh"""
|
||||
if self.spec.satisfies("@:9.34.0"):
|
||||
if self.spec.satisfies("@:9.34.0") and not self.spec.satisfies("@:scorec"):
|
||||
raise SkipTest("Package must be installed as version 9.34.1 or later")
|
||||
|
||||
with test_part(self, "test_mesh_create", purpose="mesh construction"):
|
||||
|
@@ -0,0 +1,24 @@
|
||||
From 0672d33d7c449fe75b0be5d476d1151b26e39b99 Mon Sep 17 00:00:00 2001
|
||||
From: Afzal Patel <Afzal.Patel@amd.com>
|
||||
Date: Thu, 5 Sep 2024 14:29:36 +0000
|
||||
Subject: [PATCH] Remove install for VERSION.sha
|
||||
|
||||
---
|
||||
CMakeLists.txt | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 05aac32..9cf588a 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -278,7 +278,6 @@ install(
|
||||
# support files and version info
|
||||
install(
|
||||
FILES src/argparser.py src/config.py src/omniperf_base.py src/roofline.py VERSION
|
||||
- VERSION.sha
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${PROJECT_NAME}
|
||||
COMPONENT main)
|
||||
# src/omniperf_analyze
|
||||
--
|
||||
2.43.5
|
||||
|
49
var/spack/repos/builtin/packages/omniperf/package.py
Normal file
49
var/spack/repos/builtin/packages/omniperf/package.py
Normal file
@@ -0,0 +1,49 @@
|
||||
# Copyright 2013-2024 Lawrence Livermore 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 Omniperf(CMakePackage):
|
||||
"""Advanced Profiling and Analytics for AMD Hardware"""
|
||||
|
||||
homepage = "https://github.com/ROCm/omniperf"
|
||||
git = "https://github.com/ROCm/omniperf.git"
|
||||
url = "https://github.com/ROCm/omniperf/archive/refs/tags/rocm-6.2.1.tar.gz"
|
||||
|
||||
tags = ["rocm"]
|
||||
|
||||
maintainers("afzpatel", "srekolam", "renjithravindrankannath")
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("6.2.1", sha256="c14cb73b9fe17a3cca31489a73e8ea49cb278093f8d64c433b1bac387445074a")
|
||||
|
||||
depends_on("python@3.8:")
|
||||
depends_on("py-pip", type="run")
|
||||
depends_on("py-astunparse@1.6.2", type=("build", "run")) # wants exact version
|
||||
depends_on("py-colorlover", type=("build", "run"))
|
||||
depends_on("py-pyyaml")
|
||||
depends_on("py-matplotlib")
|
||||
depends_on("py-pandas")
|
||||
depends_on("py-pymongo")
|
||||
depends_on("py-tabulate")
|
||||
depends_on("py-tqdm")
|
||||
depends_on("py-kaleido")
|
||||
depends_on("py-plotille")
|
||||
depends_on("py-dash-svg", type=("build", "run"))
|
||||
depends_on("py-dash", type=("build", "run"))
|
||||
depends_on("py-dash-bootstrap-components", type=("build", "run"))
|
||||
|
||||
# VERSION.sha is not in the auto-generated ROCm release tarball
|
||||
patch("0001-remove-VERSION.sha-install.patch")
|
||||
|
||||
def cmake_args(self):
|
||||
args = [self.define("ENABLE_TESTS", self.run_tests)]
|
||||
return args
|
||||
|
||||
@run_after("install")
|
||||
def after_install(self):
|
||||
touch(join_path(self.spec.prefix.libexec.omniperf, "VERSION.sha"))
|
@@ -18,6 +18,11 @@ class Opam(AutotoolsPackage):
|
||||
|
||||
maintainers("scemama")
|
||||
|
||||
version("2.2.1", sha256="07ad3887f61e0bc61a0923faae16fcc141285ece5b248a9e2cd4f902523cc121")
|
||||
version("2.2.0", sha256="39334f36adbe280683487cf204b7b0642080fc5965747f7d6f7cc7b83cd7a192")
|
||||
version("2.1.6", sha256="d2af5edc85f552e0cf5ec0ddcc949d94f2dc550dc5df595174a06a4eaf8af628")
|
||||
version("2.1.5", sha256="09f8d9e410b2f5723c2bfedbf7970e3b305f5017895fcd91759f05e753ddcea5")
|
||||
version("2.1.4", sha256="1643609f4eea758eb899dc8df57b88438e525d91592056f135e6e045d0d916cb")
|
||||
version("2.1.3", sha256="cb2ab00661566178318939918085aa4b5c35c727df83751fd92d114fdd2fa001")
|
||||
version("2.0.6", sha256="7c4bff5e5f3628ad00c53ee1b044ced8128ffdcfbb7582f8773fb433e12e07f4")
|
||||
version("2.0.5", sha256="776c7e64d6e24c2ef1efd1e6a71d36e007645efae94eaf860c05c1929effc76f")
|
||||
@@ -36,10 +41,18 @@ class Opam(AutotoolsPackage):
|
||||
depends_on("ocaml@:4.09.0", type="build", when="@:1.2.2")
|
||||
depends_on("ocaml", type="build", when="@2.0.0:")
|
||||
|
||||
# While this package is a makefile package, 'make' is really only used to
|
||||
# call the locally built copy of dune, which is itself parallel, so there's
|
||||
# no sense in calling make with >1 job.
|
||||
# See: ocaml/opam#3585 spack/spack#46535
|
||||
parallel = False
|
||||
|
||||
sanity_check_is_file = ["bin/opam"]
|
||||
|
||||
@property
|
||||
def build_directory(self):
|
||||
return self.stage.source_path
|
||||
|
||||
@when("@:1.2.2")
|
||||
def setup_build_environment(self, env):
|
||||
"""In OCaml <4.06.1, the default was -safe-string=0, and this has
|
||||
@@ -52,8 +65,27 @@ def setup_build_environment(self, env):
|
||||
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/opam.rb
|
||||
env.set("OCAMLPARAM", "safe-string=0,_") # OCaml 4.06.0 compat
|
||||
|
||||
def configure(self, spec, prefix):
|
||||
args = ["--prefix={0}".format(prefix)]
|
||||
|
||||
with when("@:2.2"):
|
||||
# NOTE: The config script really wants the vendored third party
|
||||
# libraries to live in the <source prefix>/src_ext directory, not
|
||||
# in the build directory when this flag is enabled. This is why the
|
||||
# build directory must be set to the source path above.
|
||||
args.append("--with-vendored-deps")
|
||||
|
||||
return configure(*args)
|
||||
|
||||
def build(self, spec, prefix):
|
||||
make("lib-ext")
|
||||
# https://github.com/dbuenzli/cmdliner/issues/34#issuecomment-145236209
|
||||
if spec.satisfies("@:2.1"):
|
||||
make("lib-ext")
|
||||
|
||||
make()
|
||||
|
||||
if spec.satisfies("@:1.2.2"):
|
||||
make("man")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make("install")
|
||||
|
@@ -264,6 +264,8 @@ class Openblas(CMakePackage, MakefilePackage):
|
||||
msg="Visual Studio does not support OpenBLAS dynamic dispatch features",
|
||||
)
|
||||
|
||||
conflicts("target=x86_64_v4:", when="%intel@2021")
|
||||
|
||||
depends_on("perl", type="build")
|
||||
|
||||
build_system("makefile", "cmake", default="makefile")
|
||||
@@ -542,6 +544,9 @@ def make_defs(self):
|
||||
if self.spec.satisfies("+bignuma"):
|
||||
make_defs.append("BIGNUMA=1")
|
||||
|
||||
if not self.spec.satisfies("target=x86_64_v4:"):
|
||||
make_defs.append("NO_AVX512=1")
|
||||
|
||||
# Avoid that NUM_THREADS gets initialized with the host's number of CPUs.
|
||||
if self.spec.satisfies("threads=openmp") or self.spec.satisfies("threads=pthreads"):
|
||||
make_defs.append("NUM_THREADS=512")
|
||||
|
@@ -492,6 +492,7 @@ class Opencv(CMakePackage, CudaPackage):
|
||||
|
||||
with when("+hdf"):
|
||||
depends_on("hdf5")
|
||||
depends_on("mpi", when="^hdf5+mpi")
|
||||
|
||||
with when("+hfs"):
|
||||
with when("+cuda"):
|
||||
|
@@ -481,7 +481,7 @@ class Openmpi(AutotoolsPackage, CudaPackage):
|
||||
)
|
||||
|
||||
# Additional support options
|
||||
variant("atomics", default=False, description="Enable built-in atomics")
|
||||
variant("atomics", default=True, description="Enable built-in atomics")
|
||||
variant("java", default=False, when="@1.7.4:", description="Build Java support")
|
||||
variant("static", default=False, description="Build static libraries")
|
||||
variant("sqlite3", default=False, when="@1.7.3:1", description="Build SQLite3 support")
|
||||
|
@@ -3,6 +3,7 @@
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.hooks.sbang import filter_shebang
|
||||
from spack.package import *
|
||||
|
||||
|
||||
@@ -15,8 +16,9 @@ class Parallel(AutotoolsPackage, GNUMirrorPackage):
|
||||
homepage = "https://www.gnu.org/software/parallel/"
|
||||
gnu_mirror_path = "parallel/parallel-20220522.tar.bz2"
|
||||
|
||||
license("GPL-3.0-or-later")
|
||||
license("GPL-3.0-or-later", checked_by="wdconinc")
|
||||
|
||||
version("20240822", sha256="d7bbd95b7631980b172be04cbd2138d5f7d8c063d6da5ad8f9f70dfd88c8309d")
|
||||
version("20220522", sha256="bb6395f8d964e68f3bdb26a764d3c48b69bc5b759a92ac3ab2bd1895c7fa8c1f")
|
||||
version("20220422", sha256="96e4b73fff1302fc141a889ae43ab2e93f6c9e86ac60ef62ced02dbe70b73ca7")
|
||||
version("20220322", sha256="df93ccf6a9f529ad2126b7042aef0486603e938c77b405939c41702d38a4e6d8")
|
||||
@@ -49,3 +51,6 @@ def filter_sbang(self):
|
||||
substitute = f"#!{perl}"
|
||||
files = ["parallel", "niceload", "parcat", "sql"]
|
||||
filter_file(match, substitute, *files, **kwargs)
|
||||
# Since scripts are run during installation, we need to add sbang
|
||||
for file in files:
|
||||
filter_shebang(file)
|
||||
|
@@ -32,6 +32,7 @@ class Plumed(AutotoolsPackage):
|
||||
|
||||
version("master", branch="master")
|
||||
|
||||
version("2.9.2", sha256="301fbc958374f81d9b8c7a1eac73095f6dded52cce73ce33d64bdbebf51ac63d")
|
||||
version("2.9.1", sha256="e24563ad1eb657611918e0c978d9c5212340f128b4f1aa5efbd439a0b2e91b58")
|
||||
version("2.9.0", sha256="612d2387416b5f82dd8545709921440370e144fd46cef633654cf0ee43bac5f8")
|
||||
|
||||
|
@@ -20,6 +20,7 @@ class Podio(CMakePackage):
|
||||
tags = ["hep", "key4hep"]
|
||||
|
||||
version("master", branch="master")
|
||||
version("1.1", sha256="2cb5040761f3da4383e1f126da25d68e99ecd8398e0ff12e7475a3745a7030a6")
|
||||
version("1.0.1", sha256="915531a2bcf638011bb6cc19715bbc46d846ec8b985555a1afdcd6abc017e21b")
|
||||
version("1.0", sha256="491f335e148708e387e90e955a6150e1fc2e01bf6b4980b65e257ab0619559a9")
|
||||
version("0.99", sha256="c823918a6ec1365d316e0a753feb9d492e28903141dd124a1be06efac7c1877a")
|
||||
|
@@ -9,10 +9,11 @@
|
||||
class PyAltair(PythonPackage):
|
||||
"""Declarative statistical visualization library for Python"""
|
||||
|
||||
pypi = "altair/altair-5.2.0.tar.gz"
|
||||
pypi = "altair/altair-5.4.1.tar.gz"
|
||||
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("5.4.1", sha256="0ce8c2e66546cb327e5f2d7572ec0e7c6feece816203215613962f0ec1d76a82")
|
||||
version("5.2.0", sha256="2ad7f0c8010ebbc46319cc30febfb8e59ccf84969a201541c207bc3a4fa6cf81")
|
||||
version("5.1.2", sha256="e5f52a71853a607c61ce93ad4a414b3d486cd0d46ac597a24ae8bd1ac99dd460")
|
||||
version("5.1.1", sha256="ad6cd6983c8db69a34dd68e42653f6172b7fc3775b7190005107f1b4fc60d64d")
|
||||
@@ -23,6 +24,10 @@ class PyAltair(PythonPackage):
|
||||
version("4.2.1", sha256="4939fd9119c57476bf305af9ca0bd1aa7779b2450b874d3623660e879d0fcad1")
|
||||
version("4.2.0", sha256="d87d9372e63b48cd96b2a6415f0cf9457f50162ab79dc7a31cd7e024dd840026")
|
||||
|
||||
variant("pandas", default=True, description="Enable pandas support")
|
||||
|
||||
conflicts("~pandas", when="@:5.3.0")
|
||||
|
||||
depends_on("python@3.7:", type=("build", "run"))
|
||||
depends_on("py-setuptools@40.6:", type="build", when="@:4")
|
||||
depends_on("py-entrypoints", type=("build", "run"), when="@2.0.0:4")
|
||||
@@ -30,11 +35,15 @@ class PyAltair(PythonPackage):
|
||||
depends_on("py-hatchling", type=("build"), when="@5.0.0:")
|
||||
|
||||
depends_on("py-importlib-metadata", type=("build", "run"), when="@5.0.0:5.0")
|
||||
depends_on("py-typing-extensions@4.0.1:", type=("build", "run"), when="@5.0.0: ^python@:3.10")
|
||||
depends_on(
|
||||
"py-typing-extensions@4.0.1:", type=("build", "run"), when="@5.0.0:5.3.0 ^python@:3.10"
|
||||
)
|
||||
depends_on("py-typing-extensions@4.10.0:", type=("build", "run"), when="@5.4.0: ^python@:3.13")
|
||||
depends_on("py-jinja2", type=("build", "run"))
|
||||
depends_on("py-jsonschema@3.0.0:", type=("build", "run"))
|
||||
depends_on("py-numpy", type=("build", "run"))
|
||||
depends_on("py-pandas@0.18:", type=("build", "run"))
|
||||
depends_on("py-pandas@0.25:", type=("build", "run"), when="@5.1.0:")
|
||||
depends_on("py-toolz", type=("build", "run"))
|
||||
depends_on("py-numpy", type=("build", "run"), when="+pandas")
|
||||
depends_on("py-pandas@0.18:", type=("build", "run"), when="+pandas")
|
||||
depends_on("py-pandas@0.25:", type=("build", "run"), when="@5.1.0:+pandas")
|
||||
depends_on("py-toolz", type=("build", "run"), when="@:5.3.0")
|
||||
depends_on("py-packaging", type=("build", "run"), when="@5.1.0:")
|
||||
depends_on("py-narwhals@1.5.2:", type=("build", "run"), when="@5.4.0:")
|
||||
|
45
var/spack/repos/builtin/packages/py-arch/package.py
Normal file
45
var/spack/repos/builtin/packages/py-arch/package.py
Normal file
@@ -0,0 +1,45 @@
|
||||
# Copyright 2013-2024 Lawrence Livermore 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 PyArch(PythonPackage):
|
||||
"""Autoregressive Conditional Heteroskedasticity (ARCH) and other tools
|
||||
for financial econometrics, written in Python (with Cython and/or Numba
|
||||
used to improve performance)"""
|
||||
|
||||
homepage = "https://pypi.org/project/arch"
|
||||
pypi = "arch/arch-7.0.0.tar.gz"
|
||||
git = "https://github.com/bashtage/arch.git"
|
||||
|
||||
maintainers("climbfuji")
|
||||
|
||||
license("NCSA", checked_by="climbfuji")
|
||||
|
||||
version("7.0.0", sha256="353c0dba5242287b8b6b587a70250d788436630bf3b7ef6106f577e45d1ec247")
|
||||
|
||||
variant("numba", default=False, description="Enable numba backend")
|
||||
variant("tutorial", default=True, description="Include dependencies for online tutorials")
|
||||
|
||||
depends_on("python@3.9:", type=("build", "run"))
|
||||
depends_on("py-setuptools@0.61:", type="build")
|
||||
depends_on("py-setuptools-scm@8.0.3:8 +toml", type="build")
|
||||
depends_on("py-cython@3.0.10:", type="build")
|
||||
# https://github.com/bashtage/arch/blob/9ced09e2566c0ebcad962d2441b1e79e2aaa7c9f/pyproject.toml#L59
|
||||
# "numpy>=2.0.0rc1,<3" ???
|
||||
# https://github.com/bashtage/arch/blob/9ced09e2566c0ebcad962d2441b1e79e2aaa7c9f/requirements.txt#L1
|
||||
# numpy>=1.22.3 ???
|
||||
depends_on("py-numpy@1.22.3", type=("build", "run"))
|
||||
|
||||
depends_on("py-scipy@1.8:", type="run")
|
||||
depends_on("py-pandas@1.4:", type="run")
|
||||
depends_on("py-statsmodels@0.12:", type="run")
|
||||
depends_on("py-matplotlib@3:", type="run")
|
||||
depends_on("py-numba@0.49:", type="run", when="+numba")
|
||||
|
||||
# Note. py-arch does not depend on py-pandas-datareader,
|
||||
# but all examples in the py-arch documentation use it.
|
||||
depends_on("py-pandas-datareader@0.10:", type="run", when="+tutorial")
|
@@ -18,6 +18,7 @@ class PyContourpy(PythonPackage):
|
||||
version("1.0.7", sha256="d8165a088d31798b59e91117d1f5fc3df8168d8b48c4acc10fc0df0d0bdbcc5e")
|
||||
version("1.0.5", sha256="896631cd40222aef3697e4e51177d14c3709fda49d30983269d584f034acc8a4")
|
||||
|
||||
depends_on("py-pybind11", type=("build", "link"))
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
with default_args(type="build"):
|
||||
|
@@ -0,0 +1,22 @@
|
||||
# Copyright 2013-2024 Lawrence Livermore 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 PyDashBootstrapComponents(PythonPackage):
|
||||
"""Bootstrap themed components for use in Plotly Dash"""
|
||||
|
||||
homepage = "https://dash-bootstrap-components.opensource.faculty.ai/"
|
||||
pypi = "dash_bootstrap_components/dash_bootstrap_components-1.6.0.tar.gz"
|
||||
git = "https://github.com/facultyai/dash-bootstrap-components/"
|
||||
|
||||
license("Apache-2.0")
|
||||
|
||||
version("1.6.0", sha256="960a1ec9397574792f49a8241024fa3cecde0f5930c971a3fc81f016cbeb1095")
|
||||
|
||||
depends_on("python@3.8:", type=("build", "run"))
|
||||
depends_on("py-setuptools", type="build")
|
19
var/spack/repos/builtin/packages/py-dash-svg/package.py
Normal file
19
var/spack/repos/builtin/packages/py-dash-svg/package.py
Normal file
@@ -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 PyDashSvg(PythonPackage):
|
||||
"""SVG support library for Plotly/Dash"""
|
||||
|
||||
homepage = "https://github.com/stevej2608/dash-svg"
|
||||
pypi = "dash_svg/dash_svg-0.0.12.tar.gz"
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("0.0.12", sha256="a7115bf437d770b822c2dd53b9d9a981210619b7d17c925cbee04905fc761b4e")
|
||||
|
||||
depends_on("py-setuptools", type="build")
|
26
var/spack/repos/builtin/packages/py-dash/package.py
Normal file
26
var/spack/repos/builtin/packages/py-dash/package.py
Normal file
@@ -0,0 +1,26 @@
|
||||
# Copyright 2013-2024 Lawrence Livermore 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 PyDash(PythonPackage):
|
||||
"""Dash is the most downloaded, trusted Python framework
|
||||
for building ML & data science web apps."""
|
||||
|
||||
homepage = "https://dash.plotly.com/"
|
||||
pypi = "dash/dash-2.17.1.tar.gz"
|
||||
git = "https://github.com/plotly/dash.git"
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("2.17.1", sha256="ee2d9c319de5dcc1314085710b72cd5fa63ff994d913bf72979b7130daeea28e")
|
||||
|
||||
depends_on("python@3.8:", type=("build", "run"))
|
||||
depends_on("py-setuptools", type="build")
|
||||
depends_on("py-typing-extensions")
|
||||
depends_on("py-flask")
|
||||
depends_on("py-plotly")
|
||||
depends_on("py-importlib-metadata")
|
@@ -15,7 +15,12 @@ class PyDnspython(PythonPackage):
|
||||
|
||||
license("ISC")
|
||||
|
||||
version("2.6.1", sha256="e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc")
|
||||
version("2.2.1", sha256="0f7569a4a6ff151958b64304071d370daa3243d15941a7beedf0c9fe5105603e")
|
||||
|
||||
depends_on("python@3.6:3", type=("build", "run"))
|
||||
depends_on("py-poetry-core", type="build")
|
||||
depends_on("python@3.8:", type=("build", "run"), when="@2.5:")
|
||||
depends_on("python@3.7:", type=("build", "run"), when="@2.4:")
|
||||
depends_on("python@3.6:3", type=("build", "run"), when="@:2.3")
|
||||
depends_on("py-poetry-core", type="build", when="@:2.3")
|
||||
depends_on("py-hatchling@1.17:", type="build", when="@2.4:")
|
||||
depends_on("py-hatchling@1.21:", type="build", when="@2.6:")
|
||||
|
@@ -14,9 +14,11 @@ class PyHatchVcs(PythonPackage):
|
||||
|
||||
license("MIT")
|
||||
|
||||
version("0.4.0", sha256="093810748fe01db0d451fabcf2c1ac2688caefd232d4ede967090b1c1b07d9f7")
|
||||
version("0.3.0", sha256="cec5107cfce482c67f8bc96f18bbc320c9aa0d068180e14ad317bbee5a153fee")
|
||||
version("0.2.0", sha256="9913d733b34eec9bb0345d0626ca32165a4ad2de15d1ce643c36d09ca908abff")
|
||||
|
||||
depends_on("python@3.8:", when="@0.4:", type=("build", "run"))
|
||||
depends_on("py-hatchling@1.1:", when="@0.3:", type=("build", "run"))
|
||||
depends_on("py-hatchling@0.21.0:", type=("build", "run"))
|
||||
depends_on("py-setuptools-scm@6.4.0:", type=("build", "run"))
|
||||
|
@@ -22,6 +22,8 @@ class PyIpython(PythonPackage):
|
||||
|
||||
license("BSD-3-Clause")
|
||||
|
||||
version("8.27.0", sha256="0b99a2dc9f15fd68692e898e5568725c6d49c527d36a9fb5960ffbdeaa82ff7e")
|
||||
version("8.26.0", sha256="1cec0fbba8404af13facebe83d04436a7434c7400e59f47acf467c64abd0956c")
|
||||
version("8.25.0", sha256="c6ed726a140b6e725b911528f80439c534fac915246af3efc39440a6b0f9d716")
|
||||
version("8.24.0", sha256="010db3f8a728a578bb641fdd06c063b9fb8e96a9464c63aec6310fbcb5e80501")
|
||||
version("8.23.0", sha256="7468edaf4f6de3e1b912e57f66c241e6fd3c7099f2ec2136e239e142e800274d")
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user