Compare commits
34 Commits
develop-20
...
releases/l
Author | SHA1 | Date | |
---|---|---|---|
![]() |
2bfcc69fa8 | ||
![]() |
af62d91457 | ||
![]() |
f32a74491e | ||
![]() |
4f80f07b9a | ||
![]() |
4a8ae59a9e | ||
![]() |
6f7e881b69 | ||
![]() |
24bcaec6c3 | ||
![]() |
1c9bb36fdf | ||
![]() |
044d1b12bb | ||
![]() |
536468783d | ||
![]() |
a298296237 | ||
![]() |
1db11ff06b | ||
![]() |
b621c045a7 | ||
![]() |
734ada1f10 | ||
![]() |
71712465e8 | ||
![]() |
7cc67b5c23 | ||
![]() |
1f9b0e39b9 | ||
![]() |
d012683c1b | ||
![]() |
8b3c3e9165 | ||
![]() |
dd94a44b6a | ||
![]() |
95d190e354 | ||
![]() |
f124409d8a | ||
![]() |
bee2132c04 | ||
![]() |
d0ea33fa67 | ||
![]() |
4e913876b9 | ||
![]() |
c25e43ce61 | ||
![]() |
85146d875b | ||
![]() |
c8167eec5d | ||
![]() |
c6d4037758 | ||
![]() |
08f1cf9ae2 | ||
![]() |
48dfa3c95e | ||
![]() |
e5c411d8f0 | ||
![]() |
020e30f3e6 | ||
![]() |
181c404af5 |
2
.github/workflows/audit.yaml
vendored
2
.github/workflows/audit.yaml
vendored
@@ -66,7 +66,7 @@ jobs:
|
|||||||
./share/spack/qa/validate_last_exit.ps1
|
./share/spack/qa/validate_last_exit.ps1
|
||||||
spack -d audit externals
|
spack -d audit externals
|
||||||
./share/spack/qa/validate_last_exit.ps1
|
./share/spack/qa/validate_last_exit.ps1
|
||||||
- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b
|
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
|
||||||
if: ${{ inputs.with_coverage == 'true' && runner.os != 'Windows' }}
|
if: ${{ inputs.with_coverage == 'true' && runner.os != 'Windows' }}
|
||||||
with:
|
with:
|
||||||
name: coverage-audits-${{ matrix.system.os }}
|
name: coverage-audits-${{ matrix.system.os }}
|
||||||
|
2
.github/workflows/bin/setup_git.ps1
vendored
2
.github/workflows/bin/setup_git.ps1
vendored
@@ -1,3 +1,5 @@
|
|||||||
|
# (c) 2022 Lawrence Livermore National Laboratory
|
||||||
|
|
||||||
git config --global user.email "spack@example.com"
|
git config --global user.email "spack@example.com"
|
||||||
git config --global user.name "Test User"
|
git config --global user.name "Test User"
|
||||||
git config --global core.longpaths true
|
git config --global core.longpaths true
|
||||||
|
12
.github/workflows/bootstrap.yml
vendored
12
.github/workflows/bootstrap.yml
vendored
@@ -161,7 +161,11 @@ jobs:
|
|||||||
source share/spack/setup-env.sh
|
source share/spack/setup-env.sh
|
||||||
spack -d gpg list
|
spack -d gpg list
|
||||||
tree $HOME/.spack/bootstrap/store/
|
tree $HOME/.spack/bootstrap/store/
|
||||||
|
- name: Bootstrap File
|
||||||
|
run: |
|
||||||
|
source share/spack/setup-env.sh
|
||||||
|
spack -d python share/spack/qa/bootstrap-file.py
|
||||||
|
tree $HOME/.spack/bootstrap/store/
|
||||||
|
|
||||||
windows:
|
windows:
|
||||||
runs-on: "windows-latest"
|
runs-on: "windows-latest"
|
||||||
@@ -192,3 +196,9 @@ jobs:
|
|||||||
spack -d gpg list
|
spack -d gpg list
|
||||||
./share/spack/qa/validate_last_exit.ps1
|
./share/spack/qa/validate_last_exit.ps1
|
||||||
tree $env:userprofile/.spack/bootstrap/store/
|
tree $env:userprofile/.spack/bootstrap/store/
|
||||||
|
- name: Bootstrap File
|
||||||
|
run: |
|
||||||
|
./share/spack/setup-env.ps1
|
||||||
|
spack -d python share/spack/qa/bootstrap-file.py
|
||||||
|
./share/spack/qa/validate_last_exit.ps1
|
||||||
|
tree $env:userprofile/.spack/bootstrap/store/
|
||||||
|
17
.github/workflows/build-containers.yml
vendored
17
.github/workflows/build-containers.yml
vendored
@@ -57,13 +57,7 @@ jobs:
|
|||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||||
|
|
||||||
- name: Determine latest release tag
|
- uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81
|
||||||
id: latest
|
|
||||||
run: |
|
|
||||||
git fetch --quiet --tags
|
|
||||||
echo "tag=$(git tag --list --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | head -n 1)" | tee -a $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96
|
|
||||||
id: docker_meta
|
id: docker_meta
|
||||||
with:
|
with:
|
||||||
images: |
|
images: |
|
||||||
@@ -77,7 +71,6 @@ jobs:
|
|||||||
type=semver,pattern={{major}}
|
type=semver,pattern={{major}}
|
||||||
type=ref,event=branch
|
type=ref,event=branch
|
||||||
type=ref,event=pr
|
type=ref,event=pr
|
||||||
type=raw,value=latest,enable=${{ github.ref == format('refs/tags/{0}', steps.latest.outputs.tag) }}
|
|
||||||
|
|
||||||
- name: Generate the Dockerfile
|
- name: Generate the Dockerfile
|
||||||
env:
|
env:
|
||||||
@@ -94,7 +87,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Upload Dockerfile
|
- name: Upload Dockerfile
|
||||||
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b
|
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
|
||||||
with:
|
with:
|
||||||
name: dockerfiles_${{ matrix.dockerfile[0] }}
|
name: dockerfiles_${{ matrix.dockerfile[0] }}
|
||||||
path: dockerfiles
|
path: dockerfiles
|
||||||
@@ -103,7 +96,7 @@ jobs:
|
|||||||
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf
|
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5
|
uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349
|
||||||
|
|
||||||
- name: Log in to GitHub Container Registry
|
- name: Log in to GitHub Container Registry
|
||||||
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567
|
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567
|
||||||
@@ -120,7 +113,7 @@ jobs:
|
|||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Build & Deploy ${{ matrix.dockerfile[0] }}
|
- name: Build & Deploy ${{ matrix.dockerfile[0] }}
|
||||||
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355
|
uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75
|
||||||
with:
|
with:
|
||||||
context: dockerfiles/${{ matrix.dockerfile[0] }}
|
context: dockerfiles/${{ matrix.dockerfile[0] }}
|
||||||
platforms: ${{ matrix.dockerfile[1] }}
|
platforms: ${{ matrix.dockerfile[1] }}
|
||||||
@@ -133,7 +126,7 @@ jobs:
|
|||||||
needs: deploy-images
|
needs: deploy-images
|
||||||
steps:
|
steps:
|
||||||
- name: Merge Artifacts
|
- name: Merge Artifacts
|
||||||
uses: actions/upload-artifact/merge@6f51ac03b9356f520e9adb1b1b7802705f340c2b
|
uses: actions/upload-artifact/merge@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
|
||||||
with:
|
with:
|
||||||
name: dockerfiles
|
name: dockerfiles
|
||||||
pattern: dockerfiles_*
|
pattern: dockerfiles_*
|
||||||
|
3
.github/workflows/coverage.yml
vendored
3
.github/workflows/coverage.yml
vendored
@@ -29,7 +29,6 @@ jobs:
|
|||||||
- run: coverage xml
|
- run: coverage xml
|
||||||
|
|
||||||
- name: "Upload coverage report to CodeCov"
|
- name: "Upload coverage report to CodeCov"
|
||||||
uses: codecov/codecov-action@1e68e06f1dbfde0e4cefc87efeba9e4643565303
|
uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238
|
||||||
with:
|
with:
|
||||||
verbose: true
|
verbose: true
|
||||||
fail_ci_if_error: false
|
|
||||||
|
@@ -2,6 +2,6 @@ black==24.10.0
|
|||||||
clingo==5.7.1
|
clingo==5.7.1
|
||||||
flake8==7.1.1
|
flake8==7.1.1
|
||||||
isort==5.13.2
|
isort==5.13.2
|
||||||
mypy==1.11.2
|
mypy==1.8.0
|
||||||
types-six==1.17.0.20241205
|
types-six==1.16.21.20241105
|
||||||
vermin==1.6.0
|
vermin==1.6.0
|
||||||
|
20
.github/workflows/unit_tests.yaml
vendored
20
.github/workflows/unit_tests.yaml
vendored
@@ -15,17 +15,17 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest]
|
os: [ubuntu-latest]
|
||||||
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
|
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
|
||||||
on_develop:
|
on_develop:
|
||||||
- ${{ github.ref == 'refs/heads/develop' }}
|
- ${{ github.ref == 'refs/heads/develop' }}
|
||||||
include:
|
include:
|
||||||
- python-version: '3.6'
|
- python-version: '3.6'
|
||||||
os: ubuntu-20.04
|
os: ubuntu-20.04
|
||||||
on_develop: ${{ github.ref == 'refs/heads/develop' }}
|
on_develop: ${{ github.ref == 'refs/heads/develop' }}
|
||||||
- python-version: '3.7'
|
|
||||||
os: ubuntu-22.04
|
|
||||||
on_develop: ${{ github.ref == 'refs/heads/develop' }}
|
|
||||||
exclude:
|
exclude:
|
||||||
|
- python-version: '3.7'
|
||||||
|
os: ubuntu-latest
|
||||||
|
on_develop: false
|
||||||
- python-version: '3.8'
|
- python-version: '3.8'
|
||||||
os: ubuntu-latest
|
os: ubuntu-latest
|
||||||
on_develop: false
|
on_develop: false
|
||||||
@@ -86,7 +86,7 @@ jobs:
|
|||||||
UNIT_TEST_COVERAGE: ${{ matrix.python-version == '3.11' }}
|
UNIT_TEST_COVERAGE: ${{ matrix.python-version == '3.11' }}
|
||||||
run: |
|
run: |
|
||||||
share/spack/qa/run-unit-tests
|
share/spack/qa/run-unit-tests
|
||||||
- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b
|
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
|
||||||
with:
|
with:
|
||||||
name: coverage-${{ matrix.os }}-python${{ matrix.python-version }}
|
name: coverage-${{ matrix.os }}-python${{ matrix.python-version }}
|
||||||
path: coverage
|
path: coverage
|
||||||
@@ -125,7 +125,7 @@ jobs:
|
|||||||
COVERAGE: true
|
COVERAGE: true
|
||||||
run: |
|
run: |
|
||||||
share/spack/qa/run-shell-tests
|
share/spack/qa/run-shell-tests
|
||||||
- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b
|
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
|
||||||
with:
|
with:
|
||||||
name: coverage-shell
|
name: coverage-shell
|
||||||
path: coverage
|
path: coverage
|
||||||
@@ -140,7 +140,7 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
dnf install -y \
|
dnf install -y \
|
||||||
bzip2 curl gcc-c++ gcc gcc-gfortran git gnupg2 gzip \
|
bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \
|
||||||
make patch tcl unzip which xz
|
make patch tcl unzip which xz
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||||
- name: Setup repo and non-root user
|
- name: Setup repo and non-root user
|
||||||
@@ -187,7 +187,7 @@ jobs:
|
|||||||
spack bootstrap status
|
spack bootstrap status
|
||||||
spack solve zlib
|
spack solve zlib
|
||||||
spack unit-test --verbose --cov --cov-config=pyproject.toml --cov-report=xml:coverage.xml lib/spack/spack/test/concretization/core.py
|
spack unit-test --verbose --cov --cov-config=pyproject.toml --cov-report=xml:coverage.xml lib/spack/spack/test/concretization/core.py
|
||||||
- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b
|
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
|
||||||
with:
|
with:
|
||||||
name: coverage-clingo-cffi
|
name: coverage-clingo-cffi
|
||||||
path: coverage
|
path: coverage
|
||||||
@@ -225,7 +225,7 @@ jobs:
|
|||||||
$(which spack) solve zlib
|
$(which spack) solve zlib
|
||||||
common_args=(--dist loadfile --tx '4*popen//python=./bin/spack-tmpconfig python -u ./bin/spack python' -x)
|
common_args=(--dist loadfile --tx '4*popen//python=./bin/spack-tmpconfig python -u ./bin/spack python' -x)
|
||||||
$(which spack) unit-test --verbose --cov --cov-config=pyproject.toml --cov-report=xml:coverage.xml "${common_args[@]}"
|
$(which spack) unit-test --verbose --cov --cov-config=pyproject.toml --cov-report=xml:coverage.xml "${common_args[@]}"
|
||||||
- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b
|
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
|
||||||
with:
|
with:
|
||||||
name: coverage-${{ matrix.os }}-python${{ matrix.python-version }}
|
name: coverage-${{ matrix.os }}-python${{ matrix.python-version }}
|
||||||
path: coverage
|
path: coverage
|
||||||
@@ -256,7 +256,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
spack unit-test -x --verbose --cov --cov-config=pyproject.toml
|
spack unit-test -x --verbose --cov --cov-config=pyproject.toml
|
||||||
./share/spack/qa/validate_last_exit.ps1
|
./share/spack/qa/validate_last_exit.ps1
|
||||||
- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b
|
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
|
||||||
with:
|
with:
|
||||||
name: coverage-windows
|
name: coverage-windows
|
||||||
path: coverage
|
path: coverage
|
||||||
|
46
.github/workflows/valid-style.yml
vendored
46
.github/workflows/valid-style.yml
vendored
@@ -13,14 +13,15 @@ concurrency:
|
|||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# Validate that the code can be run on all the Python versions supported by Spack
|
# Validate that the code can be run on all the Python versions
|
||||||
|
# supported by Spack
|
||||||
validate:
|
validate:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||||
- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b
|
- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b
|
||||||
with:
|
with:
|
||||||
python-version: '3.13'
|
python-version: '3.11'
|
||||||
cache: 'pip'
|
cache: 'pip'
|
||||||
- name: Install Python Packages
|
- name: Install Python Packages
|
||||||
run: |
|
run: |
|
||||||
@@ -39,7 +40,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b
|
- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b
|
||||||
with:
|
with:
|
||||||
python-version: '3.13'
|
python-version: '3.11'
|
||||||
cache: 'pip'
|
cache: 'pip'
|
||||||
- name: Install Python packages
|
- name: Install Python packages
|
||||||
run: |
|
run: |
|
||||||
@@ -58,7 +59,7 @@ jobs:
|
|||||||
secrets: inherit
|
secrets: inherit
|
||||||
with:
|
with:
|
||||||
with_coverage: ${{ inputs.with_coverage }}
|
with_coverage: ${{ inputs.with_coverage }}
|
||||||
python_version: '3.13'
|
python_version: '3.11'
|
||||||
# Check that spack can bootstrap the development environment on Python 3.6 - RHEL8
|
# Check that spack can bootstrap the development environment on Python 3.6 - RHEL8
|
||||||
bootstrap-dev-rhel8:
|
bootstrap-dev-rhel8:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -86,7 +87,6 @@ jobs:
|
|||||||
spack -d bootstrap now --dev
|
spack -d bootstrap now --dev
|
||||||
spack -d style -t black
|
spack -d style -t black
|
||||||
spack unit-test -V
|
spack unit-test -V
|
||||||
# Check we don't make the situation with circular imports worse
|
|
||||||
import-check:
|
import-check:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
@@ -121,46 +121,28 @@ jobs:
|
|||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||||
with:
|
with:
|
||||||
repository: haampie/circular-import-fighter
|
repository: haampie/circular-import-fighter
|
||||||
ref: b5d6ce9be35f602cca7d5a6aa0259fca10639cca
|
ref: 9f60f51bc7134e0be73f27623f1b0357d1718427
|
||||||
path: circular-import-fighter
|
path: circular-import-fighter
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
working-directory: circular-import-fighter
|
working-directory: circular-import-fighter
|
||||||
run: make -j dependencies
|
run: make -j dependencies
|
||||||
- name: Problematic imports before
|
- name: Import cycles before
|
||||||
working-directory: circular-import-fighter
|
working-directory: circular-import-fighter
|
||||||
run: make SPACK_ROOT=../old SUFFIX=.old
|
run: make SPACK_ROOT=../old && cp solution solution.old
|
||||||
- name: Problematic imports after
|
- name: Import cycles after
|
||||||
working-directory: circular-import-fighter
|
working-directory: circular-import-fighter
|
||||||
run: make SPACK_ROOT=../new SUFFIX=.new
|
run: make clean-graph && make SPACK_ROOT=../new && cp solution solution.new
|
||||||
- name: Compare import cycles
|
- name: Compare import cycles
|
||||||
working-directory: circular-import-fighter
|
working-directory: circular-import-fighter
|
||||||
run: |
|
run: |
|
||||||
edges_before="$(head -n1 solution.old)"
|
edges_before="$(grep -oP 'edges to delete: \K\d+' solution.old)"
|
||||||
edges_after="$(head -n1 solution.new)"
|
edges_after="$(grep -oP 'edges to delete: \K\d+' solution.new)"
|
||||||
if [ "$edges_after" -gt "$edges_before" ]; then
|
if [ "$edges_after" -gt "$edges_before" ]; then
|
||||||
printf '\033[1;31mImport check failed: %s imports need to be deleted, ' "$edges_after"
|
printf '\033[1;31mImport check failed: %s imports need to be deleted, ' "$edges_after"
|
||||||
printf 'previously this was %s\033[0m\n' "$edges_before"
|
printf 'previously this was %s\033[0m\n' "$edges_before"
|
||||||
printf 'Compare \033[1;97m"Problematic imports before"\033[0m and '
|
printf 'Compare \033[1;97m"Import cycles before"\033[0m and '
|
||||||
printf '\033[1;97m"Problematic imports after"\033[0m.\n'
|
printf '\033[1;97m"Import cycles after"\033[0m to see problematic imports.\n'
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
printf '\033[1;32mImport check passed: %s <= %s\033[0m\n' "$edges_after" "$edges_before"
|
printf '\033[1;32mImport check passed: %s <= %s\033[0m\n' "$edges_after" "$edges_before"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Further style checks from pylint
|
|
||||||
pylint:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b
|
|
||||||
with:
|
|
||||||
python-version: '3.13'
|
|
||||||
cache: 'pip'
|
|
||||||
- name: Install Python packages
|
|
||||||
run: |
|
|
||||||
pip install --upgrade pip setuptools pylint
|
|
||||||
- name: Pylint (Spack Core)
|
|
||||||
run: |
|
|
||||||
pylint -j 4 --disable=all --enable=unspecified-encoding --ignore-paths=lib/spack/external lib
|
|
||||||
|
392
CHANGELOG.md
392
CHANGELOG.md
@@ -1,3 +1,395 @@
|
|||||||
|
# v0.23.1 (2025-02-19)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
- Fix a correctness issue of `ArchSpec.intersects` (#48741)
|
||||||
|
- Make `extra_attributes` order independent in Spec hashing (#48615, #48854)
|
||||||
|
- Fix issue where system proxy settings were not respected in OCI build caches (#48783)
|
||||||
|
- Fix an issue where the `--test` concretizer flag was not forwarded correctly (#48417)
|
||||||
|
- Fix an issue where `codesign` and `install_name_tool` would not preserve hardlinks on
|
||||||
|
Darwin (#47808)
|
||||||
|
- Fix an issue on Darwin where codesign would run on unmodified binaries (#48568)
|
||||||
|
- Patch configure scripts generated with libtool < 2.5.4, to avoid redundant flags when
|
||||||
|
creating shared libraries on Darwin (#48671)
|
||||||
|
- Fix issue related to mirror URL paths on Windows (#47898)
|
||||||
|
- Esnure proper UTF-8 encoding/decoding in logging (#48005)
|
||||||
|
- Fix issues related to `filter_file` (#48038, #48108)
|
||||||
|
- Fix issue related to creating bootstrap source mirrors (#48235)
|
||||||
|
- Fix issue where command line config arguments were not always top level (#48255)
|
||||||
|
- Fix an incorrect typehint of `concretized()` (#48504)
|
||||||
|
- Improve mention of next Spack version in warning (#47887)
|
||||||
|
- Tests: fix forward compatibility with Python 3.13 (#48209)
|
||||||
|
- Docs: encourage use of `--oci-username-variable` and `--oci-password-variable` (#48189)
|
||||||
|
- Docs: ensure Getting Started has bootstrap list output in correct place (#48281)
|
||||||
|
- CI: allow GitHub actions to run on forks of Spack with different project name (#48041)
|
||||||
|
- CI: make unit tests work on Ubuntu 24.04 (#48151)
|
||||||
|
- CI: re-enable cray pipelines (#47697)
|
||||||
|
|
||||||
|
## Package updates
|
||||||
|
- `qt-base`: fix rpath for dependents (#47424)
|
||||||
|
- `gdk-pixbuf`: fix outdated URL (#47825)
|
||||||
|
|
||||||
|
# v0.23.0 (2024-11-13)
|
||||||
|
|
||||||
|
`v0.23.0` is a major feature release.
|
||||||
|
|
||||||
|
We are planning to make this the last major release before Spack `v1.0`
|
||||||
|
in June 2025. Alongside `v0.23`, we will be making pre-releases (alpha,
|
||||||
|
beta, etc.) of `v1.0`, and we encourage users to try them and send us
|
||||||
|
feedback, either on GitHub or on Slack. You can track the road to
|
||||||
|
`v1.0` here:
|
||||||
|
|
||||||
|
* https://github.com/spack/spack/releases
|
||||||
|
* https://github.com/spack/spack/discussions/30634
|
||||||
|
|
||||||
|
## Features in this Release
|
||||||
|
|
||||||
|
1. **Language virtuals**
|
||||||
|
|
||||||
|
Your packages can now explicitly depend on the languages they require.
|
||||||
|
Historically, Spack has considered C, C++, and Fortran compiler
|
||||||
|
dependencies to be implicit. In `v0.23`, you should ensure that
|
||||||
|
new packages add relevant C, C++, and Fortran dependencies like this:
|
||||||
|
|
||||||
|
```python
|
||||||
|
depends_on("c", type="build")
|
||||||
|
depends_on("cxx", type="build")
|
||||||
|
depends_on("fortran", type="build")
|
||||||
|
```
|
||||||
|
|
||||||
|
We encourage you to add these annotations to your packages now, to prepare
|
||||||
|
for Spack `v1.0.0`. In `v1.0.0`, these annotations will be necessary for
|
||||||
|
your package to use C, C++, and Fortran compilers. Note that you should
|
||||||
|
*not* add language dependencies to packages that don't need them, e.g.,
|
||||||
|
pure python packages.
|
||||||
|
|
||||||
|
We have already auto-generated these dependencies for packages in the
|
||||||
|
`builtin` repository (see #45217), based on the types of source files
|
||||||
|
present in each package's source code. We *may* have added too many or too
|
||||||
|
few language dependencies, so please submit pull requests to correct
|
||||||
|
packages if you find that the language dependencies are incorrect.
|
||||||
|
|
||||||
|
Note that we have also backported support for these dependencies to
|
||||||
|
`v0.21.3` and `v0.22.2`, to make all of them forward-compatible with
|
||||||
|
`v0.23`. This should allow you to move easily between older and newer Spack
|
||||||
|
releases without breaking your packages.
|
||||||
|
|
||||||
|
2. **Spec splicing**
|
||||||
|
|
||||||
|
We are working to make binary installation more seamless in Spack. `v0.23`
|
||||||
|
introduces "splicing", which allows users to deploy binaries using local,
|
||||||
|
optimized versions of a binary interface, even if they were not built with
|
||||||
|
that interface. For example, this would allow you to build binaries in the
|
||||||
|
cloud using `mpich` and install them on a system using a local, optimized
|
||||||
|
version of `mvapich2` *without rebuilding*. Spack preserves full provenance
|
||||||
|
for the installed packages and knows that they were built one way but
|
||||||
|
deployed another.
|
||||||
|
|
||||||
|
Our intent is to leverage this across many key HPC binary packages,
|
||||||
|
e.g. MPI, CUDA, ROCm, and libfabric.
|
||||||
|
|
||||||
|
Fundamentally, splicing allows Spack to redeploy an existing spec with
|
||||||
|
different dependencies than how it was built. There are two interfaces to
|
||||||
|
splicing.
|
||||||
|
|
||||||
|
a. Explicit Splicing
|
||||||
|
|
||||||
|
#39136 introduced the explicit splicing interface. In the
|
||||||
|
concretizer config, you can specify a target spec and a replacement
|
||||||
|
by hash.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
concretizer:
|
||||||
|
splice:
|
||||||
|
explicit:
|
||||||
|
- target: mpi
|
||||||
|
replacement: mpich/abcdef
|
||||||
|
```
|
||||||
|
|
||||||
|
Here, every installation that would normally use the target spec will
|
||||||
|
instead use its replacement. Above, any spec using *any* `mpi` will be
|
||||||
|
spliced to depend on the specific `mpich` installation requested. This
|
||||||
|
*can* go wrong if you try to replace something built with, e.g.,
|
||||||
|
`openmpi` with `mpich`, and it is on the user to ensure ABI
|
||||||
|
compatibility between target and replacement specs. This currently
|
||||||
|
requires some expertise to use, but it will allow users to reuse the
|
||||||
|
binaries they create across more machines and environments.
|
||||||
|
|
||||||
|
b. Automatic Splicing (experimental)
|
||||||
|
|
||||||
|
#46729 introduced automatic splicing. In the concretizer config, enable
|
||||||
|
automatic splicing:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
concretizer:
|
||||||
|
splice:
|
||||||
|
automatic: true
|
||||||
|
```
|
||||||
|
|
||||||
|
or run:
|
||||||
|
|
||||||
|
```console
|
||||||
|
spack config add concretizer:splice:automatic:true
|
||||||
|
```
|
||||||
|
|
||||||
|
The concretizer will select splices for ABI compatibility to maximize
|
||||||
|
package reuse. Packages can denote ABI compatibility using the
|
||||||
|
`can_splice` directive. No packages in Spack yet use this directive, so
|
||||||
|
if you want to use this feature you will need to add `can_splice`
|
||||||
|
annotations to your packages. We are working on ways to add more ABI
|
||||||
|
compatibility information to the Spack package repository, and this
|
||||||
|
directive may change in the future.
|
||||||
|
|
||||||
|
See the documentation for more details:
|
||||||
|
* https://spack.readthedocs.io/en/latest/build_settings.html#splicing
|
||||||
|
* https://spack.readthedocs.io/en/latest/packaging_guide.html#specifying-abi-compatibility
|
||||||
|
|
||||||
|
3. Broader variant propagation
|
||||||
|
|
||||||
|
Since #42931, you can specify propagated variants like `hdf5
|
||||||
|
build_type==RelWithDebInfo` or `trilinos ++openmp` to propagate a variant
|
||||||
|
to all dependencies for which it is relevant. This is valid *even* if the
|
||||||
|
variant does not exist on the package or its dependencies.
|
||||||
|
|
||||||
|
See https://spack.readthedocs.io/en/latest/basic_usage.html#variants.
|
||||||
|
|
||||||
|
4. Query specs by namespace
|
||||||
|
|
||||||
|
#45416 allows a package's namespace (indicating the repository it came from)
|
||||||
|
to be treated like a variant. You can request packages from particular repos
|
||||||
|
like this:
|
||||||
|
|
||||||
|
```console
|
||||||
|
spack find zlib namespace=builtin
|
||||||
|
spack find zlib namespace=myrepo
|
||||||
|
```
|
||||||
|
|
||||||
|
Previously, the spec syntax only allowed namespaces to be prefixes of spec
|
||||||
|
names, e.g. `builtin.zlib`. The previous syntax still works.
|
||||||
|
|
||||||
|
5. `spack spec` respects environment settings and `unify:true`
|
||||||
|
|
||||||
|
`spack spec` did not previously respect environment lockfiles or
|
||||||
|
unification settings, which made it difficult to see exactly how a spec
|
||||||
|
would concretize within an environment. Now it does, so the output you get
|
||||||
|
with `spack spec` will be *the same* as what your environment will
|
||||||
|
concretize to when you run `spack concretize`. Similarly, if you provide
|
||||||
|
multiple specs on the command line with `spack spec`, it will concretize
|
||||||
|
them together if `unify:true` is set.
|
||||||
|
|
||||||
|
See #47556 and #44843.
|
||||||
|
|
||||||
|
6. Less noisy `spack spec` output
|
||||||
|
|
||||||
|
`spack spec` previously showed output like this:
|
||||||
|
|
||||||
|
```console
|
||||||
|
> spack spec /v5fn6xo
|
||||||
|
Input spec
|
||||||
|
--------------------------------
|
||||||
|
- /v5fn6xo
|
||||||
|
|
||||||
|
Concretized
|
||||||
|
--------------------------------
|
||||||
|
[+] openssl@3.3.1%apple-clang@16.0.0~docs+shared arch=darwin-sequoia-m1
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
But the input spec is redundant, and we know we run `spack spec` to concretize
|
||||||
|
the input spec. `spack spec` now *only* shows the concretized spec. See #47574.
|
||||||
|
|
||||||
|
7. Better output for `spack find -c`
|
||||||
|
|
||||||
|
In an environmnet, `spack find -c` lets you search the concretized, but not
|
||||||
|
yet installed, specs, just as you would the installed ones. As with `spack
|
||||||
|
spec`, this should make it easier for you to see what *will* be built
|
||||||
|
before building and installing it. See #44713.
|
||||||
|
|
||||||
|
8. `spack -C <env>`: use an environment's configuration without activation
|
||||||
|
|
||||||
|
Spack environments allow you to associate:
|
||||||
|
1. a set of (possibly concretized) specs, and
|
||||||
|
2. configuration
|
||||||
|
|
||||||
|
When you activate an environment, you're using both of these. Previously, we
|
||||||
|
supported:
|
||||||
|
* `spack -e <env>` to run spack in the context of a specific environment, and
|
||||||
|
* `spack -C <directory>` to run spack using a directory with configuration files.
|
||||||
|
|
||||||
|
You can now also pass an environment to `spack -C` to use *only* the environment's
|
||||||
|
configuration, but not the specs or lockfile. See #45046.
|
||||||
|
|
||||||
|
## New commands, options, and directives
|
||||||
|
|
||||||
|
* The new `spack env track` command (#41897) takes a non-managed Spack
|
||||||
|
environment and adds a symlink to Spack's `$environments_root` directory, so
|
||||||
|
that it will be included for reference counting for commands like `spack
|
||||||
|
uninstall` and `spack gc`. If you use free-standing directory environments,
|
||||||
|
this is useful for preventing Spack from removing things required by your
|
||||||
|
environments. You can undo this tracking with the `spack env untrack`
|
||||||
|
command.
|
||||||
|
|
||||||
|
* Add `-t` short option for `spack --backtrace` (#47227)
|
||||||
|
|
||||||
|
`spack -d / --debug` enables backtraces on error, but it can be very
|
||||||
|
verbose, and sometimes you just want the backtrace. `spack -t / --backtrace`
|
||||||
|
provides that option.
|
||||||
|
|
||||||
|
* `gc`: restrict to specific specs (#46790)
|
||||||
|
|
||||||
|
If you only want to garbage-collect specific packages, you can now provide
|
||||||
|
them on the command line. This gives users finer-grained control over what
|
||||||
|
is uninstalled.
|
||||||
|
|
||||||
|
* oci buildcaches now support `--only=package`. You can now push *just* a
|
||||||
|
package and not its dependencies to an OCI registry. This allows dependents
|
||||||
|
of non-redistributable specs to be stored in OCI registries without an
|
||||||
|
error. See #45775.
|
||||||
|
|
||||||
|
## Notable refactors
|
||||||
|
* Variants are now fully conditional
|
||||||
|
|
||||||
|
The `variants` dictionary on packages was previously keyed by variant name,
|
||||||
|
and allowed only one definition of any given variant. Spack is now smart
|
||||||
|
enough to understand that variants may have different values and defaults
|
||||||
|
for different versions. For example, `warpx` prior to `23.06` only supported
|
||||||
|
builds for one dimensionality, and newer `warpx` versions could be built
|
||||||
|
with support for many different dimensions:
|
||||||
|
|
||||||
|
```python
|
||||||
|
variant(
|
||||||
|
"dims",
|
||||||
|
default="3",
|
||||||
|
values=("1", "2", "3", "rz"),
|
||||||
|
multi=False,
|
||||||
|
description="Number of spatial dimensions",
|
||||||
|
when="@:23.05",
|
||||||
|
)
|
||||||
|
variant(
|
||||||
|
"dims",
|
||||||
|
default="1,2,rz,3",
|
||||||
|
values=("1", "2", "3", "rz"),
|
||||||
|
multi=True,
|
||||||
|
description="Number of spatial dimensions",
|
||||||
|
when="@23.06:",
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
Previously, the default for the old version of `warpx` was not respected and
|
||||||
|
had to be specified manually. Now, Spack will select the right variant
|
||||||
|
definition for each version at concretization time. This allows variants to
|
||||||
|
evolve more smoothly over time. See #44425 for details.
|
||||||
|
|
||||||
|
## Highlighted bugfixes
|
||||||
|
|
||||||
|
1. Externals no longer override the preferred provider (#45025).
|
||||||
|
|
||||||
|
External definitions could interfere with package preferences. Now, if
|
||||||
|
`openmpi` is the preferred `mpi`, and an external `mpich` is defined, a new
|
||||||
|
`openmpi` *will* be built if building it is possible. Previously we would
|
||||||
|
prefer `mpich` despite the preference.
|
||||||
|
|
||||||
|
2. Composable `cflags` (#41049).
|
||||||
|
|
||||||
|
This release fixes a longstanding bug that concretization would fail if
|
||||||
|
there were different `cflags` specified in `packages.yaml`,
|
||||||
|
`compilers.yaml`, or on `the` CLI. Flags and their ordering are now tracked
|
||||||
|
in the concretizer and flags from multiple sources will be merged.
|
||||||
|
|
||||||
|
3. Fix concretizer Unification for included environments (#45139).
|
||||||
|
|
||||||
|
## Deprecations, removals, and syntax changes
|
||||||
|
|
||||||
|
1. The old concretizer has been removed from Spack, along with the
|
||||||
|
`config:concretizer` config option. Spack will emit a warning if the option
|
||||||
|
is present in user configuration, since it now has no effect. Spack now
|
||||||
|
uses a simpler bootstrapping mechanism, where a JSON prototype is tweaked
|
||||||
|
slightly to get an initial concrete spec to download. See #45215.
|
||||||
|
|
||||||
|
2. Best-effort expansion of spec matrices has been removed. This feature did
|
||||||
|
not work with the "new" ASP-based concretizer, and did not work with
|
||||||
|
`unify: True` or `unify: when_possible`. Use the
|
||||||
|
[exclude key](https://spack.readthedocs.io/en/latest/environments.html#spec-matrices)
|
||||||
|
for the environment to exclude invalid components, or use multiple spec
|
||||||
|
matrices to combine the list of specs for which the constraint is valid and
|
||||||
|
the list of specs for which it is not. See #40792.
|
||||||
|
|
||||||
|
3. The old Cray `platform` (based on Cray PE modules) has been removed, and
|
||||||
|
`platform=cray` is no longer supported. Since `v0.19`, Spack has handled
|
||||||
|
Cray machines like Linux clusters with extra packages, and we have
|
||||||
|
encouraged using this option to support Cray. The new approach allows us to
|
||||||
|
correctly handle Cray machines with non-SLES operating systems, and it is
|
||||||
|
much more reliable than making assumptions about Cray modules. See the
|
||||||
|
`v0.19` release notes and #43796 for more details.
|
||||||
|
|
||||||
|
4. The `config:install_missing_compilers` config option has been deprecated,
|
||||||
|
and it is a no-op when set in `v0.23`. Our new compiler dependency model
|
||||||
|
will replace it with a much more reliable and robust mechanism in `v1.0`.
|
||||||
|
See #46237.
|
||||||
|
|
||||||
|
5. Config options that deprecated in `v0.21` have been removed in `v0.23`. You
|
||||||
|
can now only specify preferences for `compilers`, `targets`, and
|
||||||
|
`providers` globally via the `packages:all:` section. Similarly, you can
|
||||||
|
only specify `versions:` locally for a specific package. See #44061 and
|
||||||
|
#31261 for details.
|
||||||
|
|
||||||
|
6. Spack's old test interface has been removed (#45752), having been
|
||||||
|
deprecated in `v0.22.0` (#34236). All `builtin` packages have been updated
|
||||||
|
to use the new interface. See the [stand-alone test documentation](
|
||||||
|
https://spack.readthedocs.io/en/latest/packaging_guide.html#stand-alone-tests)
|
||||||
|
|
||||||
|
7. The `spack versions --safe-only` option, deprecated since `v0.21.0`, has
|
||||||
|
been removed. See #45765.
|
||||||
|
|
||||||
|
* The `--dependencies` and `--optimize` arguments to `spack ci` have been
|
||||||
|
deprecated. See #45005.
|
||||||
|
|
||||||
|
## Binary caches
|
||||||
|
1. Public binary caches now include an ML stack for Linux/aarch64 (#39666)We
|
||||||
|
now build an ML stack for Linux/aarch64 for all pull requests and on
|
||||||
|
develop. The ML stack includes both CPU-only and CUDA builds for Horovod,
|
||||||
|
Hugging Face, JAX, Keras, PyTorch,scikit-learn, TensorBoard, and
|
||||||
|
TensorFlow, and related packages. The CPU-only stack also includes XGBoost.
|
||||||
|
See https://cache.spack.io/tag/develop/?stack=ml-linux-aarch64-cuda.
|
||||||
|
|
||||||
|
2. There is also now an stack of developer tools for macOS (#46910), which is
|
||||||
|
analogous to the Linux devtools stack. You can use this to avoid building
|
||||||
|
many common build dependencies. See
|
||||||
|
https://cache.spack.io/tag/develop/?stack=developer-tools-darwin.
|
||||||
|
|
||||||
|
## Architecture support
|
||||||
|
* archspec has been updated to `v0.2.5`, with support for `zen5`
|
||||||
|
* Spack's CUDA package now supports the Grace Hopper `9.0a` compute capability (#45540)
|
||||||
|
|
||||||
|
## Windows
|
||||||
|
* Windows bootstrapping: `file` and `gpg` (#41810)
|
||||||
|
* `scripts` directory added to PATH on Windows for python extensions (#45427)
|
||||||
|
* Fix `spack load --list` and `spack unload` on Windows (#35720)
|
||||||
|
|
||||||
|
## Other notable changes
|
||||||
|
* Bugfix: `spack find -x` in environments (#46798)
|
||||||
|
* Spec splices are now robust to duplicate nodes with the same name in a spec (#46382)
|
||||||
|
* Cache per-compiler libc calculations for performance (#47213)
|
||||||
|
* Fixed a bug in external detection for openmpi (#47541)
|
||||||
|
* Mirror configuration allows username/password as environment variables (#46549)
|
||||||
|
* Default library search caps maximum depth (#41945)
|
||||||
|
* Unify interface for `spack spec` and `spack solve` commands (#47182)
|
||||||
|
* Spack no longer RPATHs directories in the default library search path (#44686)
|
||||||
|
* Improved performance of Spack database (#46554)
|
||||||
|
* Enable package reuse for packages with versions from git refs (#43859)
|
||||||
|
* Improved handling for `uuid` virtual on macos (#43002)
|
||||||
|
* Improved tracking of task queueing/requeueing in the installer (#46293)
|
||||||
|
|
||||||
|
## Spack community stats
|
||||||
|
|
||||||
|
* Over 2,000 pull requests updated package recipes
|
||||||
|
* 8,307 total packages, 329 new since `v0.22.0`
|
||||||
|
* 140 new Python packages
|
||||||
|
* 14 new R packages
|
||||||
|
* 373 people contributed to this release
|
||||||
|
* 357 committers to packages
|
||||||
|
* 60 committers to core
|
||||||
|
|
||||||
|
|
||||||
# v0.22.2 (2024-09-21)
|
# v0.22.2 (2024-09-21)
|
||||||
|
|
||||||
## Bugfixes
|
## Bugfixes
|
||||||
|
11
COPYRIGHT
11
COPYRIGHT
@@ -8,9 +8,8 @@ or http://www.apache.org/licenses/LICENSE-2.0) or the MIT license,
|
|||||||
Copyrights and patents in the Spack project are retained by contributors.
|
Copyrights and patents in the Spack project are retained by contributors.
|
||||||
No copyright assignment is required to contribute to Spack.
|
No copyright assignment is required to contribute to Spack.
|
||||||
|
|
||||||
Spack was originally developed in 2013 by Lawrence Livermore National
|
Spack was originally distributed under the LGPL-2.1 license. Consent from
|
||||||
Security, LLC. It was originally distributed under the LGPL-2.1 license.
|
contributors to relicense to Apache-2.0/MIT is documented at
|
||||||
Consent from contributors to relicense to Apache-2.0/MIT is documented at
|
|
||||||
https://github.com/spack/spack/issues/9137.
|
https://github.com/spack/spack/issues/9137.
|
||||||
|
|
||||||
|
|
||||||
@@ -103,6 +102,6 @@ PackageName: sbang
|
|||||||
PackageHomePage: https://github.com/spack/sbang
|
PackageHomePage: https://github.com/spack/sbang
|
||||||
PackageLicenseDeclared: Apache-2.0 OR MIT
|
PackageLicenseDeclared: Apache-2.0 OR MIT
|
||||||
|
|
||||||
PackageName: typing_extensions
|
PackageName: six
|
||||||
PackageHomePage: https://pypi.org/project/typing-extensions/
|
PackageHomePage: https://pypi.python.org/pypi/six
|
||||||
PackageLicenseDeclared: Python-2.0
|
PackageLicenseDeclared: MIT
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) Spack Project Developers.
|
Copyright (c) 2013-2024 LLNS, LLC and other Spack Project Developers.
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@@ -70,7 +70,7 @@ Tutorial
|
|||||||
----------------
|
----------------
|
||||||
|
|
||||||
We maintain a
|
We maintain a
|
||||||
[**hands-on tutorial**](https://spack-tutorial.readthedocs.io/).
|
[**hands-on tutorial**](https://spack.readthedocs.io/en/latest/tutorial.html).
|
||||||
It covers basic to advanced usage, packaging, developer features, and large HPC
|
It covers basic to advanced usage, packaging, developer features, and large HPC
|
||||||
deployments. You can do all of the exercises on your own laptop using a
|
deployments. You can do all of the exercises on your own laptop using a
|
||||||
Docker container.
|
Docker container.
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
import subprocess
|
import subprocess
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Copyright sbang project developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# sbang project developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,7 +1,8 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# -*- python -*-
|
# -*- python -*-
|
||||||
#
|
#
|
||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
:: Copyright Spack Project Developers. See COPYRIGHT file for details.
|
:: Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
:: Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
::
|
::
|
||||||
:: SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
:: SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
::#######################################################################
|
::#######################################################################
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
# #######################################################################
|
# #######################################################################
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -55,11 +55,3 @@ concretizer:
|
|||||||
splice:
|
splice:
|
||||||
explicit: []
|
explicit: []
|
||||||
automatic: false
|
automatic: false
|
||||||
# Maximum time, in seconds, allowed for the 'solve' phase. If set to 0, there is no time limit.
|
|
||||||
timeout: 0
|
|
||||||
# If set to true, exceeding the timeout will always result in a concretization error. If false,
|
|
||||||
# the best (suboptimal) model computed before the timeout is used.
|
|
||||||
#
|
|
||||||
# Setting this to false yields unreproducible results, so we advise to use that value only
|
|
||||||
# for debugging purposes (e.g. check which constraints can help Spack concretize faster).
|
|
||||||
error_on_timeout: true
|
|
||||||
|
@@ -194,12 +194,6 @@ config:
|
|||||||
# executables with many dependencies, in particular on slow filesystems.
|
# executables with many dependencies, in particular on slow filesystems.
|
||||||
bind: false
|
bind: false
|
||||||
|
|
||||||
# Controls the handling of missing dynamic libraries after installation.
|
|
||||||
# Options are ignore (default), warn, or error. If set to error, the
|
|
||||||
# installation fails if installed binaries reference dynamic libraries that
|
|
||||||
# are not found in their specified rpaths.
|
|
||||||
missing_library_policy: ignore
|
|
||||||
|
|
||||||
|
|
||||||
# Set to 'false' to allow installation on filesystems that doesn't allow setgid bit
|
# Set to 'false' to allow installation on filesystems that doesn't allow setgid bit
|
||||||
# manipulation by unprivileged user (e.g. AFS)
|
# manipulation by unprivileged user (e.g. AFS)
|
||||||
|
@@ -65,7 +65,6 @@ packages:
|
|||||||
unwind: [libunwind]
|
unwind: [libunwind]
|
||||||
uuid: [util-linux-uuid, libuuid]
|
uuid: [util-linux-uuid, libuuid]
|
||||||
wasi-sdk: [wasi-sdk-prebuilt]
|
wasi-sdk: [wasi-sdk-prebuilt]
|
||||||
xkbdata-api: [xkeyboard-config, xkbdata]
|
|
||||||
xxd: [xxd-standalone, vim]
|
xxd: [xxd-standalone, vim]
|
||||||
yacc: [bison, byacc]
|
yacc: [bison, byacc]
|
||||||
ziglang: [zig]
|
ziglang: [zig]
|
||||||
@@ -77,8 +76,6 @@ packages:
|
|||||||
buildable: false
|
buildable: false
|
||||||
cray-mvapich2:
|
cray-mvapich2:
|
||||||
buildable: false
|
buildable: false
|
||||||
egl:
|
|
||||||
buildable: false
|
|
||||||
fujitsu-mpi:
|
fujitsu-mpi:
|
||||||
buildable: false
|
buildable: false
|
||||||
hpcx-mpi:
|
hpcx-mpi:
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
@@ -24,14 +25,6 @@ QMake does not appear to have a standardized way of specifying
|
|||||||
the installation directory, so you may have to set environment
|
the installation directory, so you may have to set environment
|
||||||
variables or edit ``*.pro`` files to get things working properly.
|
variables or edit ``*.pro`` files to get things working properly.
|
||||||
|
|
||||||
QMake packages will depend on the virtual ``qmake`` package which
|
|
||||||
is provided by multiple versions of Qt: ``qt`` provides Qt up to
|
|
||||||
Qt5, and ``qt-base`` provides Qt from version Qt6 onwards. This
|
|
||||||
split was motivated by the desire to split the single Qt package
|
|
||||||
into its components to allow for more fine-grained installation.
|
|
||||||
To depend on a specific version, refer to the documentation on
|
|
||||||
:ref:`virtual-dependencies`.
|
|
||||||
|
|
||||||
^^^^^^
|
^^^^^^
|
||||||
Phases
|
Phases
|
||||||
^^^^^^
|
^^^^^^
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
@@ -209,7 +210,7 @@ def setup(sphinx):
|
|||||||
# Spack classes that are private and we don't want to expose
|
# Spack classes that are private and we don't want to expose
|
||||||
("py:class", "spack.provider_index._IndexBase"),
|
("py:class", "spack.provider_index._IndexBase"),
|
||||||
("py:class", "spack.repo._PrependFileLoader"),
|
("py:class", "spack.repo._PrependFileLoader"),
|
||||||
("py:class", "spack.build_systems._checks.BuilderWithDefaults"),
|
("py:class", "spack.build_systems._checks.BaseBuilder"),
|
||||||
# Spack classes that intersphinx is unable to resolve
|
# Spack classes that intersphinx is unable to resolve
|
||||||
("py:class", "spack.version.StandardVersion"),
|
("py:class", "spack.version.StandardVersion"),
|
||||||
("py:class", "spack.spec.DependencySpec"),
|
("py:class", "spack.spec.DependencySpec"),
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
@@ -25,23 +26,14 @@ These settings can be overridden in ``etc/spack/config.yaml`` or
|
|||||||
The location where Spack will install packages and their dependencies.
|
The location where Spack will install packages and their dependencies.
|
||||||
Default is ``$spack/opt/spack``.
|
Default is ``$spack/opt/spack``.
|
||||||
|
|
||||||
---------------
|
---------------------------------------------------
|
||||||
``projections``
|
``install_hash_length`` and ``install_path_scheme``
|
||||||
---------------
|
---------------------------------------------------
|
||||||
|
|
||||||
.. warning::
|
The default Spack installation path can be very long and can create problems
|
||||||
|
for scripts with hardcoded shebangs. Additionally, when using the Intel
|
||||||
Modifying projections of the install tree is strongly discouraged.
|
compiler, and if there is also a long list of dependencies, the compiler may
|
||||||
|
segfault. If you see the following:
|
||||||
By default Spack installs all packages into a unique directory relative to the install
|
|
||||||
tree root with the following layout:
|
|
||||||
|
|
||||||
.. code-block::
|
|
||||||
|
|
||||||
{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}
|
|
||||||
|
|
||||||
In very rare cases, it may be necessary to reduce the length of this path. For example,
|
|
||||||
very old versions of the Intel compiler are known to segfault when input paths are too long:
|
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@@ -49,25 +41,36 @@ very old versions of the Intel compiler are known to segfault when input paths a
|
|||||||
** Segmentation violation signal raised. **
|
** Segmentation violation signal raised. **
|
||||||
Access violation or stack overflow. Please contact Intel Support for assistance.
|
Access violation or stack overflow. Please contact Intel Support for assistance.
|
||||||
|
|
||||||
Another case is Python and R packages with many runtime dependencies, which can result
|
it may be because variables containing dependency specs may be too long. There
|
||||||
in very large ``PYTHONPATH`` and ``R_LIBS`` environment variables. This can cause the
|
are two parameters to help with long path names. Firstly, the
|
||||||
``execve`` system call to fail with ``E2BIG``, preventing processes from starting.
|
``install_hash_length`` parameter can set the length of the hash in the
|
||||||
|
installation path from 1 to 32. The default path uses the full 32 characters.
|
||||||
|
|
||||||
For this reason, Spack allows users to modify the installation layout through custom
|
Secondly, it is also possible to modify the entire installation
|
||||||
projections. For example
|
scheme. By default Spack uses
|
||||||
|
``{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}``
|
||||||
|
where the tokens that are available for use in this directive are the
|
||||||
|
same as those understood by the :meth:`~spack.spec.Spec.format`
|
||||||
|
method. Using this parameter it is possible to use a different package
|
||||||
|
layout or reduce the depth of the installation paths. For example
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
config:
|
config:
|
||||||
install_tree:
|
install_path_scheme: '{name}/{version}/{hash:7}'
|
||||||
root: $spack/opt/spack
|
|
||||||
projections:
|
|
||||||
all: "{name}/{version}/{hash:16}"
|
|
||||||
|
|
||||||
would install packages into sub-directories using only the package name, version and a
|
would install packages into sub-directories using only the package
|
||||||
hash length of 16 characters.
|
name, version and a hash length of 7 characters.
|
||||||
|
|
||||||
Notice that reducing the hash length increases the likelihood of hash collisions.
|
When using either parameter to set the hash length it only affects the
|
||||||
|
representation of the hash in the installation directory. You
|
||||||
|
should be aware that the smaller the hash length the more likely
|
||||||
|
naming conflicts will occur. These parameters are independent of those
|
||||||
|
used to configure module names.
|
||||||
|
|
||||||
|
.. warning:: Modifying the installation hash length or path scheme after
|
||||||
|
packages have been installed will prevent Spack from being
|
||||||
|
able to find the old installation directories.
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
``build_stage``
|
``build_stage``
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
@@ -177,8 +178,8 @@ Spec-related modules
|
|||||||
Contains :class:`~spack.spec.Spec`. Also implements most of the logic for concretization
|
Contains :class:`~spack.spec.Spec`. Also implements most of the logic for concretization
|
||||||
of specs.
|
of specs.
|
||||||
|
|
||||||
:mod:`spack.spec_parser`
|
:mod:`spack.parser`
|
||||||
Contains :class:`~spack.spec_parser.SpecParser` and functions related to parsing specs.
|
Contains :class:`~spack.parser.SpecParser` and functions related to parsing specs.
|
||||||
|
|
||||||
:mod:`spack.version`
|
:mod:`spack.version`
|
||||||
Implements a simple :class:`~spack.version.Version` class with simple
|
Implements a simple :class:`~spack.version.Version` class with simple
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
@@ -1041,7 +1042,7 @@ file snippet we define a view named ``mpis``, rooted at
|
|||||||
``/path/to/view`` in which all projections use the package name,
|
``/path/to/view`` in which all projections use the package name,
|
||||||
version, and compiler name to determine the path for a given
|
version, and compiler name to determine the path for a given
|
||||||
package. This view selects all packages that depend on MPI, and
|
package. This view selects all packages that depend on MPI, and
|
||||||
excludes those built with the GCC compiler at version 18.5.
|
excludes those built with the PGI compiler at version 18.5.
|
||||||
The root specs with their (transitive) link and run type dependencies
|
The root specs with their (transitive) link and run type dependencies
|
||||||
will be put in the view due to the ``link: all`` option,
|
will be put in the view due to the ``link: all`` option,
|
||||||
and the files in the view will be symlinks to the spack install
|
and the files in the view will be symlinks to the spack install
|
||||||
@@ -1055,7 +1056,7 @@ directories.
|
|||||||
mpis:
|
mpis:
|
||||||
root: /path/to/view
|
root: /path/to/view
|
||||||
select: [^mpi]
|
select: [^mpi]
|
||||||
exclude: ['%gcc@18.5']
|
exclude: ['%pgi@18.5']
|
||||||
projections:
|
projections:
|
||||||
all: '{name}/{version}-{compiler.name}'
|
all: '{name}/{version}-{compiler.name}'
|
||||||
link: all
|
link: all
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
@@ -34,7 +35,7 @@ A build matrix showing which packages are working on which systems is shown belo
|
|||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
apt update
|
apt update
|
||||||
apt install bzip2 ca-certificates g++ gcc gfortran git gzip lsb-release patch python3 tar unzip xz-utils zstd
|
apt install bzip2 ca-certificates file g++ gcc gfortran git gzip lsb-release patch python3 tar unzip xz-utils zstd
|
||||||
|
|
||||||
.. tab-item:: RHEL
|
.. tab-item:: RHEL
|
||||||
|
|
||||||
@@ -284,6 +285,10 @@ compilers`` or ``spack compiler list``:
|
|||||||
intel@14.0.1 intel@13.0.1 intel@12.1.2 intel@10.1
|
intel@14.0.1 intel@13.0.1 intel@12.1.2 intel@10.1
|
||||||
-- clang -------------------------------------------------------
|
-- clang -------------------------------------------------------
|
||||||
clang@3.4 clang@3.3 clang@3.2 clang@3.1
|
clang@3.4 clang@3.3 clang@3.2 clang@3.1
|
||||||
|
-- pgi ---------------------------------------------------------
|
||||||
|
pgi@14.3-0 pgi@13.2-0 pgi@12.1-0 pgi@10.9-0 pgi@8.0-1
|
||||||
|
pgi@13.10-0 pgi@13.1-1 pgi@11.10-0 pgi@10.2-0 pgi@7.1-3
|
||||||
|
pgi@13.6-0 pgi@12.8-0 pgi@11.1-0 pgi@9.0-4 pgi@7.0-6
|
||||||
|
|
||||||
Any of these compilers can be used to build Spack packages. More on
|
Any of these compilers can be used to build Spack packages. More on
|
||||||
how this is done is in :ref:`sec-specs`.
|
how this is done is in :ref:`sec-specs`.
|
||||||
@@ -803,6 +808,65 @@ flags to the ``icc`` command:
|
|||||||
spec: intel@15.0.24.4.9.3
|
spec: intel@15.0.24.4.9.3
|
||||||
|
|
||||||
|
|
||||||
|
^^^
|
||||||
|
PGI
|
||||||
|
^^^
|
||||||
|
|
||||||
|
PGI comes with two sets of compilers for C++ and Fortran,
|
||||||
|
distinguishable by their names. "Old" compilers:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
cc: /soft/pgi/15.10/linux86-64/15.10/bin/pgcc
|
||||||
|
cxx: /soft/pgi/15.10/linux86-64/15.10/bin/pgCC
|
||||||
|
f77: /soft/pgi/15.10/linux86-64/15.10/bin/pgf77
|
||||||
|
fc: /soft/pgi/15.10/linux86-64/15.10/bin/pgf90
|
||||||
|
|
||||||
|
"New" compilers:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
cc: /soft/pgi/15.10/linux86-64/15.10/bin/pgcc
|
||||||
|
cxx: /soft/pgi/15.10/linux86-64/15.10/bin/pgc++
|
||||||
|
f77: /soft/pgi/15.10/linux86-64/15.10/bin/pgfortran
|
||||||
|
fc: /soft/pgi/15.10/linux86-64/15.10/bin/pgfortran
|
||||||
|
|
||||||
|
Older installations of PGI contains just the old compilers; whereas
|
||||||
|
newer installations contain the old and the new. The new compiler is
|
||||||
|
considered preferable, as some packages
|
||||||
|
(``hdf``) will not build with the old compiler.
|
||||||
|
|
||||||
|
When auto-detecting a PGI compiler, there are cases where Spack will
|
||||||
|
find the old compilers, when you really want it to find the new
|
||||||
|
compilers. It is best to check this ``compilers.yaml``; and if the old
|
||||||
|
compilers are being used, change ``pgf77`` and ``pgf90`` to
|
||||||
|
``pgfortran``.
|
||||||
|
|
||||||
|
Other issues:
|
||||||
|
|
||||||
|
* There are reports that some packages will not build with PGI,
|
||||||
|
including ``libpciaccess`` and ``openssl``. A workaround is to
|
||||||
|
build these packages with another compiler and then use them as
|
||||||
|
dependencies for PGI-build packages. For example:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
$ spack install openmpi%pgi ^libpciaccess%gcc
|
||||||
|
|
||||||
|
|
||||||
|
* PGI requires a license to use; see :ref:`licensed-compilers` for more
|
||||||
|
information on installation.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
It is believed the problem with HDF 4 is that everything is
|
||||||
|
compiled with the ``F77`` compiler, but at some point some Fortran
|
||||||
|
90 code slipped in there. So compilers that can handle both FORTRAN
|
||||||
|
77 and Fortran 90 (``gfortran``, ``pgfortran``, etc) are fine. But
|
||||||
|
compilers specific to one or the other (``pgf77``, ``pgf90``) won't
|
||||||
|
work.
|
||||||
|
|
||||||
|
|
||||||
^^^
|
^^^
|
||||||
NAG
|
NAG
|
||||||
^^^
|
^^^
|
||||||
@@ -1327,7 +1391,6 @@ Required:
|
|||||||
* Microsoft Visual Studio
|
* Microsoft Visual Studio
|
||||||
* Python
|
* Python
|
||||||
* Git
|
* Git
|
||||||
* 7z
|
|
||||||
|
|
||||||
Optional:
|
Optional:
|
||||||
* Intel Fortran (needed for some packages)
|
* Intel Fortran (needed for some packages)
|
||||||
@@ -1393,13 +1456,6 @@ as the project providing Git support on Windows. This is additionally the recomm
|
|||||||
for installing Git on Windows, a link to which can be found above. Spack requires the
|
for installing Git on Windows, a link to which can be found above. Spack requires the
|
||||||
utilities vendored by this project.
|
utilities vendored by this project.
|
||||||
|
|
||||||
"""
|
|
||||||
7zip
|
|
||||||
"""
|
|
||||||
|
|
||||||
A tool for extracting ``.xz`` files is required for extracting source tarballs. The latest 7zip
|
|
||||||
can be located at https://sourceforge.net/projects/sevenzip/.
|
|
||||||
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
Step 2: Install and setup Spack
|
Step 2: Install and setup Spack
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
@@ -236,7 +237,8 @@ for details):
|
|||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
@@ -1926,29 +1928,71 @@ to the empty list.
|
|||||||
String. A URL pointing to license setup instructions for the software.
|
String. A URL pointing to license setup instructions for the software.
|
||||||
Defaults to the empty string.
|
Defaults to the empty string.
|
||||||
|
|
||||||
For example, let's take a look at the Arm Forge package.
|
For example, let's take a look at the package for the PGI compilers.
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
# Licensing
|
# Licensing
|
||||||
license_required = True
|
license_required = True
|
||||||
license_comment = "#"
|
license_comment = "#"
|
||||||
license_files = ["licences/Licence"]
|
license_files = ["license.dat"]
|
||||||
license_vars = [
|
license_vars = ["PGROUPD_LICENSE_FILE", "LM_LICENSE_FILE"]
|
||||||
"ALLINEA_LICENSE_DIR",
|
license_url = "http://www.pgroup.com/doc/pgiinstall.pdf"
|
||||||
"ALLINEA_LICENCE_DIR",
|
|
||||||
"ALLINEA_LICENSE_FILE",
|
|
||||||
"ALLINEA_LICENCE_FILE",
|
|
||||||
]
|
|
||||||
license_url = "https://developer.arm.com/documentation/101169/latest/Use-Arm-Licence-Server"
|
|
||||||
|
|
||||||
Arm Forge requires a license. Its license manager uses the ``#`` symbol to denote a comment.
|
As you can see, PGI requires a license. Its license manager, FlexNet, uses
|
||||||
It expects the license file to be named ``License`` and to be located in a ``licenses`` directory
|
the ``#`` symbol to denote a comment. It expects the license file to be
|
||||||
in the installation prefix.
|
named ``license.dat`` and to be located directly in the installation prefix.
|
||||||
|
If you would like the installation file to be located elsewhere, simply set
|
||||||
|
``PGROUPD_LICENSE_FILE`` or ``LM_LICENSE_FILE`` after installation. For
|
||||||
|
further instructions on installation and licensing, see the URL provided.
|
||||||
|
|
||||||
If you would like the installation file to be located elsewhere, simply set ``ALLINEA_LICENSE_DIR`` or
|
Let's walk through a sample PGI installation to see exactly what Spack is
|
||||||
one of the other license variables after installation. For further instructions on installation and
|
and isn't capable of. Since PGI does not provide a download URL, it must
|
||||||
licensing, see the URL provided.
|
be downloaded manually. It can either be added to a mirror or located in
|
||||||
|
the current directory when ``spack install pgi`` is run. See :ref:`mirrors`
|
||||||
|
for instructions on setting up a mirror.
|
||||||
|
|
||||||
|
After running ``spack install pgi``, the first thing that will happen is
|
||||||
|
Spack will create a global license file located at
|
||||||
|
``$SPACK_ROOT/etc/spack/licenses/pgi/license.dat``. It will then open up the
|
||||||
|
file using :ref:`your favorite editor <controlling-the-editor>`. It will look like
|
||||||
|
this:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
# A license is required to use pgi.
|
||||||
|
#
|
||||||
|
# The recommended solution is to store your license key in this global
|
||||||
|
# license file. After installation, the following symlink(s) will be
|
||||||
|
# added to point to this file (relative to the installation prefix):
|
||||||
|
#
|
||||||
|
# license.dat
|
||||||
|
#
|
||||||
|
# Alternatively, use one of the following environment variable(s):
|
||||||
|
#
|
||||||
|
# PGROUPD_LICENSE_FILE
|
||||||
|
# LM_LICENSE_FILE
|
||||||
|
#
|
||||||
|
# If you choose to store your license in a non-standard location, you may
|
||||||
|
# set one of these variable(s) to the full pathname to the license file, or
|
||||||
|
# port@host if you store your license keys on a dedicated license server.
|
||||||
|
# You will likely want to set this variable in a module file so that it
|
||||||
|
# gets loaded every time someone tries to use pgi.
|
||||||
|
#
|
||||||
|
# For further information on how to acquire a license, please refer to:
|
||||||
|
#
|
||||||
|
# http://www.pgroup.com/doc/pgiinstall.pdf
|
||||||
|
#
|
||||||
|
# You may enter your license below.
|
||||||
|
|
||||||
|
You can add your license directly to this file, or tell FlexNet to use a
|
||||||
|
license stored on a separate license server. Here is an example that
|
||||||
|
points to a license server called licman1:
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
SERVER licman1.mcs.anl.gov 00163eb7fba5 27200
|
||||||
|
USE_SERVER
|
||||||
|
|
||||||
If your package requires the license to install, you can reference the
|
If your package requires the license to install, you can reference the
|
||||||
location of this global license using ``self.global_license_file``.
|
location of this global license using ``self.global_license_file``.
|
||||||
@@ -2923,9 +2967,9 @@ make sense during the build phase may not be needed at runtime, and vice versa.
|
|||||||
it makes sense to let a dependency set the environment variables for its dependents. To allow all
|
it makes sense to let a dependency set the environment variables for its dependents. To allow all
|
||||||
this, Spack provides four different methods that can be overridden in a package:
|
this, Spack provides four different methods that can be overridden in a package:
|
||||||
|
|
||||||
1. :meth:`setup_build_environment <spack.builder.BaseBuilder.setup_build_environment>`
|
1. :meth:`setup_build_environment <spack.builder.Builder.setup_build_environment>`
|
||||||
2. :meth:`setup_run_environment <spack.package_base.PackageBase.setup_run_environment>`
|
2. :meth:`setup_run_environment <spack.package_base.PackageBase.setup_run_environment>`
|
||||||
3. :meth:`setup_dependent_build_environment <spack.builder.BaseBuilder.setup_dependent_build_environment>`
|
3. :meth:`setup_dependent_build_environment <spack.builder.Builder.setup_dependent_build_environment>`
|
||||||
4. :meth:`setup_dependent_run_environment <spack.package_base.PackageBase.setup_dependent_run_environment>`
|
4. :meth:`setup_dependent_run_environment <spack.package_base.PackageBase.setup_dependent_run_environment>`
|
||||||
|
|
||||||
The Qt package, for instance, uses this call:
|
The Qt package, for instance, uses this call:
|
||||||
@@ -4898,15 +4942,15 @@ If your package has a virtual dependency like ``mpi``, then referring to
|
|||||||
``spec["mpi"]`` within ``install()`` will get you the concrete ``mpi``
|
``spec["mpi"]`` within ``install()`` will get you the concrete ``mpi``
|
||||||
implementation in your dependency DAG. That is a spec object just like
|
implementation in your dependency DAG. That is a spec object just like
|
||||||
the one passed to install, only the MPI implementations all set some
|
the one passed to install, only the MPI implementations all set some
|
||||||
additional properties on it to help you out. E.g., in openmpi, you'll
|
additional properties on it to help you out. E.g., in mvapich2, you'll
|
||||||
find this:
|
find this:
|
||||||
|
|
||||||
.. literalinclude:: _spack_root/var/spack/repos/builtin/packages/openmpi/package.py
|
.. literalinclude:: _spack_root/var/spack/repos/builtin/packages/mvapich2/package.py
|
||||||
:pyobject: Openmpi.setup_dependent_package
|
:pyobject: Mvapich2.setup_dependent_package
|
||||||
|
|
||||||
That code allows the ``openmpi`` package to associate an ``mpicc`` property
|
That code allows the mvapich2 package to associate an ``mpicc`` property
|
||||||
with the ``openmpi`` node in the DAG, so that dependents can access it.
|
with the ``mvapich2`` node in the DAG, so that dependents can access it.
|
||||||
``mvapich2`` and ``mpich`` do similar things. So, no matter what MPI
|
``openmpi`` and ``mpich`` do similar things. So, no matter what MPI
|
||||||
you're using, spec["mpi"].mpicc gets you the location of the MPI
|
you're using, spec["mpi"].mpicc gets you the location of the MPI
|
||||||
compilers. This allows us to have a fairly simple polymorphic interface
|
compilers. This allows us to have a fairly simple polymorphic interface
|
||||||
for information about virtual dependencies like MPI.
|
for information about virtual dependencies like MPI.
|
||||||
@@ -5135,7 +5179,7 @@ other checks.
|
|||||||
- Not applicable
|
- Not applicable
|
||||||
* - :ref:`PythonPackage <pythonpackage>`
|
* - :ref:`PythonPackage <pythonpackage>`
|
||||||
- Not applicable
|
- Not applicable
|
||||||
- ``test_imports`` (module imports)
|
- ``test`` (module imports)
|
||||||
* - :ref:`QMakePackage <qmakepackage>`
|
* - :ref:`QMakePackage <qmakepackage>`
|
||||||
- ``check`` (``make check``)
|
- ``check`` (``make check``)
|
||||||
- Not applicable
|
- Not applicable
|
||||||
@@ -5144,7 +5188,7 @@ other checks.
|
|||||||
- Not applicable
|
- Not applicable
|
||||||
* - :ref:`SIPPackage <sippackage>`
|
* - :ref:`SIPPackage <sippackage>`
|
||||||
- Not applicable
|
- Not applicable
|
||||||
- ``test_imports`` (module imports)
|
- ``test`` (module imports)
|
||||||
* - :ref:`WafPackage <wafpackage>`
|
* - :ref:`WafPackage <wafpackage>`
|
||||||
- ``build_test`` (must be overridden)
|
- ``build_test`` (must be overridden)
|
||||||
- ``install_test`` (must be overridden)
|
- ``install_test`` (must be overridden)
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,12 +1,12 @@
|
|||||||
sphinx==8.1.3
|
sphinx==8.1.3
|
||||||
sphinxcontrib-programoutput==0.18
|
sphinxcontrib-programoutput==0.17
|
||||||
sphinx_design==0.6.1
|
sphinx_design==0.6.1
|
||||||
sphinx-rtd-theme==3.0.2
|
sphinx-rtd-theme==3.0.1
|
||||||
python-levenshtein==0.26.1
|
python-levenshtein==0.26.1
|
||||||
docutils==0.21.2
|
docutils==0.21.2
|
||||||
pygments==2.19.1
|
pygments==2.18.0
|
||||||
urllib3==2.3.0
|
urllib3==2.2.3
|
||||||
pytest==8.3.4
|
pytest==8.3.3
|
||||||
isort==5.13.2
|
isort==5.13.2
|
||||||
black==24.10.0
|
black==24.10.0
|
||||||
flake8==7.1.1
|
flake8==7.1.1
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
.. Copyright Spack Project Developers. See COPYRIGHT file for details.
|
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
|
||||||
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -8,6 +8,7 @@ unzip, , , Compress/Decompress archives
|
|||||||
bzip2, , , Compress/Decompress archives
|
bzip2, , , Compress/Decompress archives
|
||||||
xz, , , Compress/Decompress archives
|
xz, , , Compress/Decompress archives
|
||||||
zstd, , Optional, Compress/Decompress archives
|
zstd, , Optional, Compress/Decompress archives
|
||||||
|
file, , , Create/Use Buildcaches
|
||||||
lsb-release, , , Linux: identify operating system version
|
lsb-release, , , Linux: identify operating system version
|
||||||
gnupg2, , , Sign/Verify Buildcaches
|
gnupg2, , , Sign/Verify Buildcaches
|
||||||
git, , , Manage Software Repositories
|
git, , , Manage Software Repositories
|
||||||
|
|
3
lib/spack/env/cc
vendored
3
lib/spack/env/cc
vendored
@@ -1,7 +1,8 @@
|
|||||||
#!/bin/sh -f
|
#!/bin/sh -f
|
||||||
# shellcheck disable=SC2034 # evals in this script fool shellcheck
|
# shellcheck disable=SC2034 # evals in this script fool shellcheck
|
||||||
#
|
#
|
||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
3
lib/spack/external/__init__.py
vendored
3
lib/spack/external/__init__.py
vendored
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,254 +0,0 @@
|
|||||||
A. HISTORY OF THE SOFTWARE
|
|
||||||
==========================
|
|
||||||
|
|
||||||
Python was created in the early 1990s by Guido van Rossum at Stichting
|
|
||||||
Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
|
|
||||||
as a successor of a language called ABC. Guido remains Python's
|
|
||||||
principal author, although it includes many contributions from others.
|
|
||||||
|
|
||||||
In 1995, Guido continued his work on Python at the Corporation for
|
|
||||||
National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
|
|
||||||
in Reston, Virginia where he released several versions of the
|
|
||||||
software.
|
|
||||||
|
|
||||||
In May 2000, Guido and the Python core development team moved to
|
|
||||||
BeOpen.com to form the BeOpen PythonLabs team. In October of the same
|
|
||||||
year, the PythonLabs team moved to Digital Creations (now Zope
|
|
||||||
Corporation, see http://www.zope.com). In 2001, the Python Software
|
|
||||||
Foundation (PSF, see http://www.python.org/psf/) was formed, a
|
|
||||||
non-profit organization created specifically to own Python-related
|
|
||||||
Intellectual Property. Zope Corporation is a sponsoring member of
|
|
||||||
the PSF.
|
|
||||||
|
|
||||||
All Python releases are Open Source (see http://www.opensource.org for
|
|
||||||
the Open Source Definition). Historically, most, but not all, Python
|
|
||||||
releases have also been GPL-compatible; the table below summarizes
|
|
||||||
the various releases.
|
|
||||||
|
|
||||||
Release Derived Year Owner GPL-
|
|
||||||
from compatible? (1)
|
|
||||||
|
|
||||||
0.9.0 thru 1.2 1991-1995 CWI yes
|
|
||||||
1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
|
|
||||||
1.6 1.5.2 2000 CNRI no
|
|
||||||
2.0 1.6 2000 BeOpen.com no
|
|
||||||
1.6.1 1.6 2001 CNRI yes (2)
|
|
||||||
2.1 2.0+1.6.1 2001 PSF no
|
|
||||||
2.0.1 2.0+1.6.1 2001 PSF yes
|
|
||||||
2.1.1 2.1+2.0.1 2001 PSF yes
|
|
||||||
2.1.2 2.1.1 2002 PSF yes
|
|
||||||
2.1.3 2.1.2 2002 PSF yes
|
|
||||||
2.2 and above 2.1.1 2001-now PSF yes
|
|
||||||
|
|
||||||
Footnotes:
|
|
||||||
|
|
||||||
(1) GPL-compatible doesn't mean that we're distributing Python under
|
|
||||||
the GPL. All Python licenses, unlike the GPL, let you distribute
|
|
||||||
a modified version without making your changes open source. The
|
|
||||||
GPL-compatible licenses make it possible to combine Python with
|
|
||||||
other software that is released under the GPL; the others don't.
|
|
||||||
|
|
||||||
(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
|
|
||||||
because its license has a choice of law clause. According to
|
|
||||||
CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
|
|
||||||
is "not incompatible" with the GPL.
|
|
||||||
|
|
||||||
Thanks to the many outside volunteers who have worked under Guido's
|
|
||||||
direction to make these releases possible.
|
|
||||||
|
|
||||||
|
|
||||||
B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
|
|
||||||
===============================================================
|
|
||||||
|
|
||||||
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
|
|
||||||
--------------------------------------------
|
|
||||||
|
|
||||||
1. This LICENSE AGREEMENT is between the Python Software Foundation
|
|
||||||
("PSF"), and the Individual or Organization ("Licensee") accessing and
|
|
||||||
otherwise using this software ("Python") in source or binary form and
|
|
||||||
its associated documentation.
|
|
||||||
|
|
||||||
2. Subject to the terms and conditions of this License Agreement, PSF hereby
|
|
||||||
grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
|
|
||||||
analyze, test, perform and/or display publicly, prepare derivative works,
|
|
||||||
distribute, and otherwise use Python alone or in any derivative version,
|
|
||||||
provided, however, that PSF's License Agreement and PSF's notice of copyright,
|
|
||||||
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
|
||||||
2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved" are
|
|
||||||
retained in Python alone or in any derivative version prepared by Licensee.
|
|
||||||
|
|
||||||
3. In the event Licensee prepares a derivative work that is based on
|
|
||||||
or incorporates Python or any part thereof, and wants to make
|
|
||||||
the derivative work available to others as provided herein, then
|
|
||||||
Licensee hereby agrees to include in any such work a brief summary of
|
|
||||||
the changes made to Python.
|
|
||||||
|
|
||||||
4. PSF is making Python available to Licensee on an "AS IS"
|
|
||||||
basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
|
|
||||||
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
|
|
||||||
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
|
|
||||||
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
|
|
||||||
INFRINGE ANY THIRD PARTY RIGHTS.
|
|
||||||
|
|
||||||
5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
|
|
||||||
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
|
|
||||||
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
|
|
||||||
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
|
|
||||||
|
|
||||||
6. This License Agreement will automatically terminate upon a material
|
|
||||||
breach of its terms and conditions.
|
|
||||||
|
|
||||||
7. Nothing in this License Agreement shall be deemed to create any
|
|
||||||
relationship of agency, partnership, or joint venture between PSF and
|
|
||||||
Licensee. This License Agreement does not grant permission to use PSF
|
|
||||||
trademarks or trade name in a trademark sense to endorse or promote
|
|
||||||
products or services of Licensee, or any third party.
|
|
||||||
|
|
||||||
8. By copying, installing or otherwise using Python, Licensee
|
|
||||||
agrees to be bound by the terms and conditions of this License
|
|
||||||
Agreement.
|
|
||||||
|
|
||||||
|
|
||||||
BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
|
|
||||||
-------------------------------------------
|
|
||||||
|
|
||||||
BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
|
|
||||||
|
|
||||||
1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
|
|
||||||
office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
|
|
||||||
Individual or Organization ("Licensee") accessing and otherwise using
|
|
||||||
this software in source or binary form and its associated
|
|
||||||
documentation ("the Software").
|
|
||||||
|
|
||||||
2. Subject to the terms and conditions of this BeOpen Python License
|
|
||||||
Agreement, BeOpen hereby grants Licensee a non-exclusive,
|
|
||||||
royalty-free, world-wide license to reproduce, analyze, test, perform
|
|
||||||
and/or display publicly, prepare derivative works, distribute, and
|
|
||||||
otherwise use the Software alone or in any derivative version,
|
|
||||||
provided, however, that the BeOpen Python License is retained in the
|
|
||||||
Software, alone or in any derivative version prepared by Licensee.
|
|
||||||
|
|
||||||
3. BeOpen is making the Software available to Licensee on an "AS IS"
|
|
||||||
basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
|
|
||||||
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
|
|
||||||
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
|
|
||||||
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
|
|
||||||
INFRINGE ANY THIRD PARTY RIGHTS.
|
|
||||||
|
|
||||||
4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
|
|
||||||
SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
|
|
||||||
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
|
|
||||||
DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
|
|
||||||
|
|
||||||
5. This License Agreement will automatically terminate upon a material
|
|
||||||
breach of its terms and conditions.
|
|
||||||
|
|
||||||
6. This License Agreement shall be governed by and interpreted in all
|
|
||||||
respects by the law of the State of California, excluding conflict of
|
|
||||||
law provisions. Nothing in this License Agreement shall be deemed to
|
|
||||||
create any relationship of agency, partnership, or joint venture
|
|
||||||
between BeOpen and Licensee. This License Agreement does not grant
|
|
||||||
permission to use BeOpen trademarks or trade names in a trademark
|
|
||||||
sense to endorse or promote products or services of Licensee, or any
|
|
||||||
third party. As an exception, the "BeOpen Python" logos available at
|
|
||||||
http://www.pythonlabs.com/logos.html may be used according to the
|
|
||||||
permissions granted on that web page.
|
|
||||||
|
|
||||||
7. By copying, installing or otherwise using the software, Licensee
|
|
||||||
agrees to be bound by the terms and conditions of this License
|
|
||||||
Agreement.
|
|
||||||
|
|
||||||
|
|
||||||
CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
|
|
||||||
---------------------------------------
|
|
||||||
|
|
||||||
1. This LICENSE AGREEMENT is between the Corporation for National
|
|
||||||
Research Initiatives, having an office at 1895 Preston White Drive,
|
|
||||||
Reston, VA 20191 ("CNRI"), and the Individual or Organization
|
|
||||||
("Licensee") accessing and otherwise using Python 1.6.1 software in
|
|
||||||
source or binary form and its associated documentation.
|
|
||||||
|
|
||||||
2. Subject to the terms and conditions of this License Agreement, CNRI
|
|
||||||
hereby grants Licensee a nonexclusive, royalty-free, world-wide
|
|
||||||
license to reproduce, analyze, test, perform and/or display publicly,
|
|
||||||
prepare derivative works, distribute, and otherwise use Python 1.6.1
|
|
||||||
alone or in any derivative version, provided, however, that CNRI's
|
|
||||||
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
|
|
||||||
1995-2001 Corporation for National Research Initiatives; All Rights
|
|
||||||
Reserved" are retained in Python 1.6.1 alone or in any derivative
|
|
||||||
version prepared by Licensee. Alternately, in lieu of CNRI's License
|
|
||||||
Agreement, Licensee may substitute the following text (omitting the
|
|
||||||
quotes): "Python 1.6.1 is made available subject to the terms and
|
|
||||||
conditions in CNRI's License Agreement. This Agreement together with
|
|
||||||
Python 1.6.1 may be located on the Internet using the following
|
|
||||||
unique, persistent identifier (known as a handle): 1895.22/1013. This
|
|
||||||
Agreement may also be obtained from a proxy server on the Internet
|
|
||||||
using the following URL: http://hdl.handle.net/1895.22/1013".
|
|
||||||
|
|
||||||
3. In the event Licensee prepares a derivative work that is based on
|
|
||||||
or incorporates Python 1.6.1 or any part thereof, and wants to make
|
|
||||||
the derivative work available to others as provided herein, then
|
|
||||||
Licensee hereby agrees to include in any such work a brief summary of
|
|
||||||
the changes made to Python 1.6.1.
|
|
||||||
|
|
||||||
4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
|
|
||||||
basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
|
|
||||||
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
|
|
||||||
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
|
|
||||||
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
|
|
||||||
INFRINGE ANY THIRD PARTY RIGHTS.
|
|
||||||
|
|
||||||
5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
|
|
||||||
1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
|
|
||||||
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
|
|
||||||
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
|
|
||||||
|
|
||||||
6. This License Agreement will automatically terminate upon a material
|
|
||||||
breach of its terms and conditions.
|
|
||||||
|
|
||||||
7. This License Agreement shall be governed by the federal
|
|
||||||
intellectual property law of the United States, including without
|
|
||||||
limitation the federal copyright law, and, to the extent such
|
|
||||||
U.S. federal law does not apply, by the law of the Commonwealth of
|
|
||||||
Virginia, excluding Virginia's conflict of law provisions.
|
|
||||||
Notwithstanding the foregoing, with regard to derivative works based
|
|
||||||
on Python 1.6.1 that incorporate non-separable material that was
|
|
||||||
previously distributed under the GNU General Public License (GPL), the
|
|
||||||
law of the Commonwealth of Virginia shall govern this License
|
|
||||||
Agreement only as to issues arising under or with respect to
|
|
||||||
Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
|
|
||||||
License Agreement shall be deemed to create any relationship of
|
|
||||||
agency, partnership, or joint venture between CNRI and Licensee. This
|
|
||||||
License Agreement does not grant permission to use CNRI trademarks or
|
|
||||||
trade name in a trademark sense to endorse or promote products or
|
|
||||||
services of Licensee, or any third party.
|
|
||||||
|
|
||||||
8. By clicking on the "ACCEPT" button where indicated, or by copying,
|
|
||||||
installing or otherwise using Python 1.6.1, Licensee agrees to be
|
|
||||||
bound by the terms and conditions of this License Agreement.
|
|
||||||
|
|
||||||
ACCEPT
|
|
||||||
|
|
||||||
|
|
||||||
CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
|
|
||||||
--------------------------------------------------
|
|
||||||
|
|
||||||
Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
|
|
||||||
The Netherlands. All rights reserved.
|
|
||||||
|
|
||||||
Permission to use, copy, modify, and distribute this software and its
|
|
||||||
documentation for any purpose and without fee is hereby granted,
|
|
||||||
provided that the above copyright notice appear in all copies and that
|
|
||||||
both that copyright notice and this permission notice appear in
|
|
||||||
supporting documentation, and that the name of Stichting Mathematisch
|
|
||||||
Centrum or CWI not be used in advertising or publicity pertaining to
|
|
||||||
distribution of the software without specific, written prior
|
|
||||||
permission.
|
|
||||||
|
|
||||||
STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
|
|
||||||
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
||||||
FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
|
|
||||||
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
|
||||||
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
2908
lib/spack/external/_vendoring/typing_extensions.py
vendored
2908
lib/spack/external/_vendoring/typing_extensions.py
vendored
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
|||||||
from typing_extensions import *
|
|
1
lib/spack/external/vendor.txt
vendored
1
lib/spack/external/vendor.txt
vendored
@@ -8,4 +8,3 @@ six==1.16.0
|
|||||||
macholib==1.16.2
|
macholib==1.16.2
|
||||||
altgraph==0.17.3
|
altgraph==0.17.3
|
||||||
ruamel.yaml==0.17.21
|
ruamel.yaml==0.17.21
|
||||||
typing_extensions==4.1.1
|
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
"""Path primitives that just require Python standard library."""
|
"""Path primitives that just require Python standard library."""
|
||||||
@@ -65,7 +66,7 @@ def _is_url(path_or_url: str) -> bool:
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
def _system_path_filter(_func=None, arg_slice: Optional[slice] = None):
|
def system_path_filter(_func=None, arg_slice: Optional[slice] = None):
|
||||||
"""Filters function arguments to account for platform path separators.
|
"""Filters function arguments to account for platform path separators.
|
||||||
Optional slicing range can be specified to select specific arguments
|
Optional slicing range can be specified to select specific arguments
|
||||||
|
|
||||||
@@ -99,16 +100,6 @@ def path_filter_caller(*args, **kwargs):
|
|||||||
return holder_func
|
return holder_func
|
||||||
|
|
||||||
|
|
||||||
def _noop_decorator(_func=None, arg_slice: Optional[slice] = None):
|
|
||||||
return _func if _func else lambda x: x
|
|
||||||
|
|
||||||
|
|
||||||
if sys.platform == "win32":
|
|
||||||
system_path_filter = _system_path_filter
|
|
||||||
else:
|
|
||||||
system_path_filter = _noop_decorator
|
|
||||||
|
|
||||||
|
|
||||||
def sanitize_win_longpath(path: str) -> str:
|
def sanitize_win_longpath(path: str) -> str:
|
||||||
"""Strip Windows extended path prefix from strings
|
"""Strip Windows extended path prefix from strings
|
||||||
Returns sanitized string.
|
Returns sanitized string.
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
"""String manipulation functions that do not have other dependencies than Python
|
"""String manipulation functions that do not have other dependencies than Python
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
"""URL primitives that just require Python standard library."""
|
"""URL primitives that just require Python standard library."""
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
import collections
|
import collections
|
||||||
@@ -1095,12 +1096,12 @@ def hash_directory(directory, ignore=[]):
|
|||||||
|
|
||||||
@contextmanager
|
@contextmanager
|
||||||
@system_path_filter
|
@system_path_filter
|
||||||
def write_tmp_and_move(filename: str, *, encoding: Optional[str] = None):
|
def write_tmp_and_move(filename):
|
||||||
"""Write to a temporary file, then move into place."""
|
"""Write to a temporary file, then move into place."""
|
||||||
dirname = os.path.dirname(filename)
|
dirname = os.path.dirname(filename)
|
||||||
basename = os.path.basename(filename)
|
basename = os.path.basename(filename)
|
||||||
tmp = os.path.join(dirname, ".%s.tmp" % basename)
|
tmp = os.path.join(dirname, ".%s.tmp" % basename)
|
||||||
with open(tmp, "w", encoding=encoding) as f:
|
with open(tmp, "w") as f:
|
||||||
yield f
|
yield f
|
||||||
shutil.move(tmp, filename)
|
shutil.move(tmp, filename)
|
||||||
|
|
||||||
@@ -2753,6 +2754,22 @@ def prefixes(path):
|
|||||||
return paths
|
return paths
|
||||||
|
|
||||||
|
|
||||||
|
@system_path_filter
|
||||||
|
def md5sum(file):
|
||||||
|
"""Compute the MD5 sum of a file.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
file (str): file to be checksummed
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
MD5 sum of the file's content
|
||||||
|
"""
|
||||||
|
md5 = hashlib.md5()
|
||||||
|
with open(file, "rb") as f:
|
||||||
|
md5.update(f.read())
|
||||||
|
return md5.digest()
|
||||||
|
|
||||||
|
|
||||||
@system_path_filter
|
@system_path_filter
|
||||||
def remove_directory_contents(dir):
|
def remove_directory_contents(dir):
|
||||||
"""Remove all contents of a directory."""
|
"""Remove all contents of a directory."""
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
@@ -862,10 +863,8 @@ def elide_list(line_list: List[str], max_num: int = 10) -> List[str]:
|
|||||||
|
|
||||||
if sys.version_info >= (3, 9):
|
if sys.version_info >= (3, 9):
|
||||||
PatternStr = re.Pattern[str]
|
PatternStr = re.Pattern[str]
|
||||||
PatternBytes = re.Pattern[bytes]
|
|
||||||
else:
|
else:
|
||||||
PatternStr = typing.Pattern[str]
|
PatternStr = typing.Pattern[str]
|
||||||
PatternBytes = typing.Pattern[bytes]
|
|
||||||
|
|
||||||
|
|
||||||
def fnmatch_translate_multiple(named_patterns: Dict[str, str]) -> str:
|
def fnmatch_translate_multiple(named_patterns: Dict[str, str]) -> str:
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
@@ -95,8 +96,8 @@ def get_fh(self, path: str) -> IO:
|
|||||||
Arguments:
|
Arguments:
|
||||||
path: path to lock file we want a filehandle for
|
path: path to lock file we want a filehandle for
|
||||||
"""
|
"""
|
||||||
# Open writable files as rb+ so we can upgrade to write later
|
# Open writable files as 'r+' so we can upgrade to write later
|
||||||
os_mode, fh_mode = (os.O_RDWR | os.O_CREAT), "rb+"
|
os_mode, fh_mode = (os.O_RDWR | os.O_CREAT), "r+"
|
||||||
|
|
||||||
pid = os.getpid()
|
pid = os.getpid()
|
||||||
open_file = None # OpenFile object, if there is one
|
open_file = None # OpenFile object, if there is one
|
||||||
@@ -123,7 +124,7 @@ def get_fh(self, path: str) -> IO:
|
|||||||
# we know path exists but not if it's writable. If it's read-only,
|
# we know path exists but not if it's writable. If it's read-only,
|
||||||
# only open the file for reading (and fail if we're trying to get
|
# only open the file for reading (and fail if we're trying to get
|
||||||
# an exclusive (write) lock on it)
|
# an exclusive (write) lock on it)
|
||||||
os_mode, fh_mode = os.O_RDONLY, "rb"
|
os_mode, fh_mode = os.O_RDONLY, "r"
|
||||||
|
|
||||||
fd = os.open(path, os_mode)
|
fd = os.open(path, os_mode)
|
||||||
fh = os.fdopen(fd, fh_mode)
|
fh = os.fdopen(fd, fh_mode)
|
||||||
@@ -242,7 +243,7 @@ def __init__(
|
|||||||
helpful for distinguishing between different Spack locks.
|
helpful for distinguishing between different Spack locks.
|
||||||
"""
|
"""
|
||||||
self.path = path
|
self.path = path
|
||||||
self._file: Optional[IO[bytes]] = None
|
self._file: Optional[IO] = None
|
||||||
self._reads = 0
|
self._reads = 0
|
||||||
self._writes = 0
|
self._writes = 0
|
||||||
|
|
||||||
@@ -328,9 +329,9 @@ def _lock(self, op: int, timeout: Optional[float] = None) -> Tuple[float, int]:
|
|||||||
self._ensure_parent_directory()
|
self._ensure_parent_directory()
|
||||||
self._file = FILE_TRACKER.get_fh(self.path)
|
self._file = FILE_TRACKER.get_fh(self.path)
|
||||||
|
|
||||||
if LockType.to_module(op) == fcntl.LOCK_EX and self._file.mode == "rb":
|
if LockType.to_module(op) == fcntl.LOCK_EX and self._file.mode == "r":
|
||||||
# Attempt to upgrade to write lock w/a read-only file.
|
# Attempt to upgrade to write lock w/a read-only file.
|
||||||
# If the file were writable, we'd have opened it rb+
|
# If the file were writable, we'd have opened it 'r+'
|
||||||
raise LockROFileError(self.path)
|
raise LockROFileError(self.path)
|
||||||
|
|
||||||
self._log_debug(
|
self._log_debug(
|
||||||
@@ -425,7 +426,7 @@ def _read_log_debug_data(self) -> None:
|
|||||||
|
|
||||||
line = self._file.read()
|
line = self._file.read()
|
||||||
if line:
|
if line:
|
||||||
pid, host = line.decode("utf-8").strip().split(",")
|
pid, host = line.strip().split(",")
|
||||||
_, _, pid = pid.rpartition("=")
|
_, _, pid = pid.rpartition("=")
|
||||||
_, _, self.host = host.rpartition("=")
|
_, _, self.host = host.rpartition("=")
|
||||||
self.pid = int(pid)
|
self.pid = int(pid)
|
||||||
@@ -441,7 +442,7 @@ def _write_log_debug_data(self) -> None:
|
|||||||
|
|
||||||
# write pid, host to disk to sync over FS
|
# write pid, host to disk to sync over FS
|
||||||
self._file.seek(0)
|
self._file.seek(0)
|
||||||
self._file.write(f"pid={self.pid},host={self.host}".encode("utf-8"))
|
self._file.write("pid=%s,host=%s" % (self.pid, self.host))
|
||||||
self._file.truncate()
|
self._file.truncate()
|
||||||
self._file.flush()
|
self._file.flush()
|
||||||
os.fsync(self._file.fileno())
|
os.fsync(self._file.fileno())
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
import os
|
import os
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
@@ -160,7 +161,7 @@ def _err_check(result, func, args):
|
|||||||
)
|
)
|
||||||
# Use conout$ here to handle a redirectired stdout/get active console associated
|
# Use conout$ here to handle a redirectired stdout/get active console associated
|
||||||
# with spack
|
# with spack
|
||||||
with open(r"\\.\CONOUT$", "w", encoding="utf-8") as conout:
|
with open(r"\\.\CONOUT$", "w") as conout:
|
||||||
# Link above would use kernel32.GetStdHandle(-11) however this would not handle
|
# Link above would use kernel32.GetStdHandle(-11) however this would not handle
|
||||||
# a redirected stdout appropriately, so we always refer to the current CONSOLE out
|
# a redirected stdout appropriately, so we always refer to the current CONSOLE out
|
||||||
# which is defined as conout$ on Windows.
|
# which is defined as conout$ on Windows.
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
@@ -761,7 +762,7 @@ def __enter__(self):
|
|||||||
self.reader = open(self.logfile, mode="rb+")
|
self.reader = open(self.logfile, mode="rb+")
|
||||||
|
|
||||||
# Dup stdout so we can still write to it after redirection
|
# Dup stdout so we can still write to it after redirection
|
||||||
self.echo_writer = open(os.dup(sys.stdout.fileno()), "w", encoding=sys.stdout.encoding)
|
self.echo_writer = open(os.dup(sys.stdout.fileno()), "w")
|
||||||
# Redirect stdout and stderr to write to logfile
|
# Redirect stdout and stderr to write to logfile
|
||||||
self.stderr.redirect_stream(self.writer.fileno())
|
self.stderr.redirect_stream(self.writer.fileno())
|
||||||
self.stdout.redirect_stream(self.writer.fileno())
|
self.stdout.redirect_stream(self.writer.fileno())
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# Copyright Spack Project Developers. See COPYRIGHT file for details.
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user