summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2022-11-17Hdf5 package: build on Windows (#31141)Jared Popelar2-1/+3
* Enable hdf5 build (including +mpi) on Windows * This includes updates to hdf5 dependencies openssl (minor edit) and bzip2 (more-extensive edits) * Add binary-based installation of msmpi (this is currently the only supported MPI implementation in Spack for Windows). Note that this does not install to the Spack-specified prefix. This implementation will be replaced with a source-based implementation Co-authored-by: John Parent <john.parent@kitware.com>
2022-11-17Waf build system: fix typo in legacy_attributes (#33958)Chris Green1-1/+1
Fix erroneous duplication of `build_time_test_callbacks` in `legacy_attributes`: one of the duplicates should be `install_time_test_callbacks`
2022-11-17docs: fix typo in multiple build systems (#33965)Harmen Stoppels1-1/+1
2022-11-17relocate.py: small refactor for file_is_relocatable (#33967)Harmen Stoppels4-39/+31
2022-11-17Remove deprecated subcommands from "spack bootstrap" (#33964)Massimiliano Culpo2-42/+23
These commands are slated for removal in v0.20
2022-11-17Add sgid notice when running on AFS (#30247)Michael Kuhn1-0/+7
2022-11-17lib/spack/spack/store.py: Fix #28170 for padding relocation (#33122)Brian Vanderwende1-0/+1
2022-11-16initial implementation of slingshot detection (#33793)Greg Becker1-0/+4
2022-11-16Upstreams: add canonicalize path (#33946)psakievich1-1/+3
2022-11-16Windows bootstrapping: remove unneeded call to add dll to PATH (#33622)John W. Parent1-7/+0
#32942 fixed bootstrapping on Windows by having the core Spack code explicitly add the Clingo package bin/ directory as a DLL path. Since then, #33400 has been merged, which ensures that the Python module installed by the Spack `clingo` package can find the DLLs in bin/. Note that this only works for Spack instances which have been bootstrapped after #33400: for installations bootstrapped before then, you will need to run `spack clean -b` (this would only be needed for Spack instances running on Windows).
2022-11-16SIP build system: fix "python not defined in builder" (#33906)Stephen Sachs1-1/+1
Co-authored-by: Stephen Sachs <stesachs@amazon.com>
2022-11-16docs updates for spack env depfile (#33937)Harmen Stoppels1-6/+10
2022-11-16spack env depfile in Gitlab CI should use `install-deps/pkg-version-hash` ↵Harmen Stoppels1-3/+1
target (#33936)
2022-11-16Change code suggestions to output black formatter compliant code (#33931)Kevin Broch1-2/+2
2022-11-16Getting Started: Python 2 is no longer supported (#33927)Adam J. Stewart1-1/+1
2022-11-15docs: fix typo (#33926)Michael Kuhn1-2/+2
2022-11-15Show time per phase (#33874)Harmen Stoppels2-16/+11
2022-11-15depfile: improve tab completion (#33773)Harmen Stoppels1-14/+30
This PR allows you to do: ``` spack env create -d . spack -e . add python spack -e . concretize spack -e . env depfile -o Makefile make in<tab> # -> install make install-<tab> # -> install-deps/ make install-deps/py<tab> # -> install-deps/python-x.y.z-hash make install/zl<tab> # -> install/zlib-x.y.z-hash make SP<tab> # -> make SPACK make SPACK_<tab> # -> make SPACK_INSTALL_FLAGS= ```
2022-11-15Fixup: start the timer before the phase (#33917)Harmen Stoppels1-2/+1
2022-11-15Fix incorrect timer (#33900)Harmen Stoppels5-65/+305
Revamp the timer so we always have a designated begin and end. Fix a bug where the phase timer was stopped before the phase started, resulting in incorrect timing reports in timers.json.
2022-11-15External find now searches all dynamic linker paths (#33800)Brian Van Essen3-12/+211
Add spack.ld_so_conf.host_dynamic_linker_search_paths Retrieve the current host runtime search paths for shared libraries; for GNU and musl Linux we try to retrieve the dynamic linker from the current Python interpreter and then find the corresponding config file (e.g. ld.so.conf or ld-musl-<arch>.path). Similar can be done for BSD and others, but this is not implemented yet. The default paths are always returned. We don't check if the listed directories exist. Use this in spack external find for libraries. Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-11-15Remove exit(0) (#33896)Harmen Stoppels2-9/+7
Since they cause --backtrace to report backtraces even with exit code 0
2022-11-15Stop using `six` in Spack (#33905)Massimiliano Culpo83-618/+329
Since we dropped support for Python 2.7, there's no need so use `six` anymore. We still need to vendor it until we update our vendored dependencies.
2022-11-14gitlab: Add shared PR mirror to places pipelines look for binaries. (#33746)Scott Wittenburg3-0/+17
While binaries built for PRs that get merged must still be rebuilt in develop pipelines, they can be used by other PRs that find they would otherwise need to rebuild them. Now that spackbot is managing copying PR binaries from merged PRs into a shared location, keeping it pruned to a reasonable size, and making sure the indices are up to date, spack can use these mirrors as a potential source of binaries.
2022-11-14Add `$date` option to the list of config variables (#33875)psakievich3-0/+13
I'm finding I often want the date in my paths and it would be nice if spack had a config variable for this. Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2022-11-14rocm: add all GFX9, GFX10 and GFX11 amdgpu_targets (#33871)Cory Bloor1-2/+17
This change adds all documented AMDGPU processors from GFX9 through GFX11 and sorts the list.
2022-11-14Bump version to v0.20.0.dev0Todd Gamblin1-1/+1
2022-11-14Get rid of context for exceptions outside PackageBase (#33887)Harmen Stoppels1-0/+2
2022-11-14Fix a bug/typo in a config_values.py fixture (#33886)Massimiliano Culpo1-1/+1
2022-11-14Remove support for running with Python 2.7 (#33063)Massimiliano Culpo58-4197/+254
* Remove CI jobs related to Python 2.7 * Remove Python 2.7 specific code from Spack core * Remove externals for Python 2 only * Remove llnl.util.compat
2022-11-14Speed up traverse unit tests (#33840)Harmen Stoppels1-32/+107
2022-11-13hotfix: ensure that schema is compatible with tutorial VM configTodd Gamblin1-0/+1
We added a hotfix to releases/v0.19 with a feature flag, but the flag is incompatible with the config schema on `develop`. - [x] Ensure schema is compatible on develop even though config option is unused.
2022-11-13Speed-up bootstrap and architecture unit tests (#33865)Massimiliano Culpo2-2/+3
* Speed-up bootstrap mirror unit test The unit test doesn't need to concretize, since it checks only metadata for the mirror. * architecture.py: use "default_mock_concretization" for slow test
2022-11-12update tutorial command to newest release branch (#33867)Greg Becker1-1/+1
2022-11-12use spack.version_info as source of version truth for spack tutorial command ↵Greg Becker1-1/+2
(#33860) * Use spack.spack_version_info as source of truth Co-authored-by: Todd Gamblin <gamblin2@llnl.gov>
2022-11-11Speed-up unit tests by caching default mock concretization (#33755)Massimiliano Culpo10-180/+218
2022-11-11ensure view projections for extensions always point to extendee (#33848)Greg Becker1-2/+11
2022-11-11docs: updates related to extensions (#33837)Harmen Stoppels4-44/+78
2022-11-11remove activate/deactivate support in favor of environments (#29317)Harmen Stoppels21-1559/+31
Environments and environment views have taken over the role of `spack activate/deactivate`, and we should deprecate these commands for several reasons: - Global activation is a really poor idea: - Install prefixes should be immutable; since they can have multiple, unrelated dependents; see below - Added complexity elsewhere: verification of installations, tarballs for build caches, creation of environment views of packages with unrelated extensions "globally activated"... by removing the feature, it gets easier for people to contribute, and we'd end up with fewer bugs due to edge cases. - Environment accomplish the same thing for non-global "activation" i.e. `spack view`, but better. Also we write in the docs: ``` However, Spack global activations have two potential drawbacks: #. Activated packages that involve compiled C extensions may still need their dependencies to be loaded manually. For example, ``spack load openblas`` might be required to make ``py-numpy`` work. #. Global activations "break" a core feature of Spack, which is that multiple versions of a package can co-exist side-by-side. For example, suppose you wish to run a Python package in two different environments but the same basic Python --- one with ``py-numpy@1.7`` and one with ``py-numpy@1.8``. Spack extensions will not support this potential debugging use case. ``` Now that environments are established and views can take over the role of activation non-destructively, we can remove global activation/deactivation.
2022-11-10remove deprecated top-level module config (#33828)Greg Becker3-66/+2
* remove deprecated top-level module config per deprecation in 0.18
2022-11-11remove deprecated `concretization` environment key (#33774)Greg Becker3-90/+6
2022-11-10Use bfs order in spack find --deps tree (#33782)Harmen Stoppels2-9/+11
* Use bfs order in spack find --deps tree * fix printing tests
2022-11-10spack location: fix attribute lookup after multiple build systems (#33791)Massimiliano Culpo1-2/+4
fixes #33785
2022-11-09always use the cxx compiler as a host compiler (#33771)Chris White1-7/+1
2022-11-09Revert "fix racy sbang (#33549)" (#33778)Harmen Stoppels3-65/+43
This reverts commit 4d28a6466188ea9fe3b55a4c3d7690dd66e0dc8f.
2022-11-09ensure external PythonPackages have python deps (#33777)Greg Becker5-0/+54
Currently, external `PythonPackage`s cause install failures because the logic in `PythonPackage` assumes that it can ask for `spec["python"]`. Because we chop off externals' dependencies, an external Python extension may not have a `python` dependency. This PR resolves the issue by guaranteeing that a `python` node is present in one of two ways: 1. If there is already a `python` node in the DAG, we wire the external up to it. 2. If there is no existing `python` node, we wire up a synthetic external `python` node, and we assume that it has the same prefix as the external. The assumption in (2) isn't always valid, but it's better than leaving the user with a non-working `PythonPackage`. The logic here is specific to `python`, but other types of extensions could take advantage of it. Packages need only define `update_external_dependencies(self)`, and this method will be called on externals after concretization. This likely needs to be fleshed out in the future so that any added nodes are included in concretization, but for now we only bolt on dependencies post-concretization. Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2022-11-08Account for patchelf binaries when creating local bootstrap mirror (#33776)Massimiliano Culpo1-0/+2
This was overlooked when we added binary patchelf buildcaches
2022-11-08fix racy sbang (#33549)Harmen Stoppels3-43/+65
Spack currently creates a temporary sbang that is moved "atomically" in place, but this temporary causes races when multiple processes start installing sbang. Let's just stick to an idempotent approach. Notice that we only re-install sbang if Spack updates it (since we do file compare), and sbang was only touched 18 times in the past 6 years, whereas we hit the sbang tempfile issue frequently with parallel install on a fresh spack instance in CI. Also fixes a bug where permissions weren't updated if config changed but the latest version of the sbang file was already installed.
2022-11-08use pwd for usernames on unix (#19980)Greg Becker1-1/+13
2022-11-08Install from source if binary cache checksum validation fails (#31696)Stephen Sachs1-0/+10
* Fix https://github.com/spack/spack/issues/31640 Some packages in the binary cache fail checksum validation. Instead of having to go back and manually install all failed packages with `--no-cache` option, requeue those failed packages for installation from source ```shell $ spack install py-pip ==> Installing py-pip-21.3.1-s2cx4gqrqkdqhashlinqyzkrvuwkl3x7 ==> Fetching https://binaries.spack.io/releases/v0.18/build_cache/linux-amzn2-graviton2-gcc-7.3.1-py-pip-21.3.1-s2cx4gqrqkdqhashlinqyzkrvuwkl3x7.spec.json.sig gpg: Signature made Wed 20 Jul 2022 12:13:43 PM UTC using RSA key ID 3DB0C723 gpg: Good signature from "Spack Project Official Binaries <maintainers@spack.io>" ==> Fetching https://binaries.spack.io/releases/v0.18/build_cache/linux-amzn2-graviton2/gcc-7.3.1/py-pip-21.3.1/linux-amzn2-graviton2-gcc-7.3.1-py-pip-21.3.1-s2cx4gqrqkdqhashlinqyzkrvuwkl3x7.spack ==> Extracting py-pip-21.3.1-s2cx4gqrqkdqhashlinqyzkrvuwkl3x7 from binary cache ==> Error: Failed to install py-pip due to NoChecksumException: Requeue for manual installation. ==> Installing py-pip-21.3.1-s2cx4gqrqkdqhashlinqyzkrvuwkl3x7 ==> Using cached archive: /shared/spack/var/spack/cache/_source-cache/archive/de/deaf32dcd9ab821e359cd8330786bcd077604b5c5730c0b096eda46f95c24a2d ==> No patches needed for py-pip ==> py-pip: Executing phase: 'install' ==> py-pip: Successfully installed py-pip-21.3.1-s2cx4gqrqkdqhashlinqyzkrvuwkl3x7 Fetch: 0.01s. Build: 2.81s. Total: 2.82s. [+] /shared/spack/opt/spack/linux-amzn2-graviton2/gcc-7.3.1/py-pip-21.3.1-s2cx4gqrqkdqhashlinqyzkrvuwkl3x7 ``` * Cleanup style * better wording Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> * Update lib/spack/spack/installer.py Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> * changes quotes for style checks * Update lib/spack/spack/installer.py Co-authored-by: kwryankrattiger <80296582+kwryankrattiger@users.noreply.github.com> * Addressing @kwryankrattiger comment to use local 'use_cache` Co-authored-by: Stephen Sachs <stesachs@amazon.com> Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Co-authored-by: kwryankrattiger <80296582+kwryankrattiger@users.noreply.github.com>