summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2020-07-23Revert "Add libglvnd packages/Add EGL support (#14572)" (#17682)Chuck Atkins1-94/+0
This reverts commit 573489db710c6fd315170a45d6c609db2e30e5e4.
2020-07-23cray: detect shasta os properly (#17467)Greg Becker2-1/+4
Fixes #17299 Cray Shasta systems appear to use an unmodified Sles or other Linux operating system on the backend (like Cray "Cluster" systems and unlike Cray "XC40" systems that use CNL). This updates the CNL version detection to properly note that this is the underlying OS instead of CNL and delegate to LinuxDistro.
2020-07-23environment-views: fix bug where missing recipe/repo breaks env commands ↵robo-wylder5-19/+104
(#17608) * environment-views: fix bug where missing recipe/repo breaks env commands When a recipe or a repo has been removed from Spack and an environment is active, it causes the view activation to crash Spack before any commands can be executed. Further, the error message it not at all clear in explaining the issue. This forces view regeneration to always start from scratch to avoid the missing package recipes, and defaults add_view=False in main for views activated by the `spack -e` option. * add messages to env status and deactivate Warn users that a view may be corrupt when deactivating an environment or checking its status while active. Updated message for activate. * tests for view checking Co-authored-by: Gregory Becker <becker33@llnl.gov>
2020-07-23Update fetch order to match iteration order of MirrorReference (#17572)Peter Scheibel1-3/+5
2020-07-23util.executable.which: handle path separators like /bin/which (#17668)Greg Becker2-2/+37
* util.executable.which: handle path separators like /bin/which Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2020-07-23Reduce output verbosity with debug levels (#17546)Tamara Dahlgren15-165/+342
* switch from bool to int debug levels * Added debug options and changed lock logging to use more detailed values * Limit installer and timestamp PIDs to standard debug output * Reduced verbosity of fetch/stage/install output, changing most to debug level 1 * Combine lock log methods; change build process install to debug * Changed binary cache install messages to extraction messages
2020-07-22bugfix: use getattr for variation.prefix/suffix (#17669)eugeneswalker1-2/+2
2020-07-21bugfix: make compiler preferences slightly saner (#17590)Todd Gamblin5-19/+191
* bugfix: make compiler preferences slightly saner This fixes two issues with the way we currently select compilers. If multiple compilers have the same "id" (os/arch/compiler/version), we currently prefer them by picking this one with the most supported languages. This can have some surprising effects: * If you have no `gfortran` but you have `gfortran-8`, you can detect `clang` that has no configured C compiler -- just `f77` and `f90`. This happens frequently on macOS with homebrew. The bug is due to some kludginess about the way we detect mixed `clang`/`gfortran`. * We can prefer suffixed versions of compilers to non-suffixed versions, which means we may select `clang-gpu` over `clang` at LLNL. But, `clang-gpu` is not actually clang, and it can break builds. We should prefer `clang` if it's available. - [x] prefer compilers that have C compilers and prefer no name variation to variation. * tests: add test for which()
2020-07-21ci pipelines: activate environment without view (#17440)Harmen Stoppels1-1/+1
2020-07-20bugfix: ignore Apple's "gcc" by default (#17589)Todd Gamblin3-29/+51
Apple's gcc is really clang. We previously ignored it by default but there was a regression in #17110. Originally we checked for all clang versions with this, but I know of none other than `gcc` on macos that actually do this, so limiting to `apple-clang` should be ok. - [x] Fix check for `apple-clang` in `gcc.py` to use version detection from `spack.compilers.apple_clang`
2020-07-20Configuration: allow usage of command-line scopes with environments (#14608)Dr. Christian Tacke1-4/+4
Spack did not support usage of the `--config-scope` option in combination with an environment: In `lib/spack/spack/main.py`, `spack.config.command_line_scopes` is set equal to any config scopes passed by the `--config-scope` option. However, this is done after activating an environment. In the process of activating an environment, the `spack.config.config` singleton is instantiated, so later setting of `spack.config.command_line_scopes` is ignored. This commit sets command line scopes before activating an environment to ensure that they are included in the configuration. Co-authored-by: Tim Fuller <tjfulle@sandia.gov>
2020-07-17allow GNUPGHOME to come from SPACK_GNUPGHOME in env, if set (#17139)eugeneswalker1-1/+1
2020-07-17Bugfix/install missing compiler from buildcache (#17536)Scott Wittenburg2-0/+40
Ensure compilers installed from buildcache are registered.
2020-07-17buildcache: list all mirrors even if one failsScott Wittenburg1-2/+2
2020-07-16Fix security issue in CI (#17545)Harmen Stoppels2-9/+1
The `spack-build-env.txt` file may contains many secrets, but the obvious one is the private signing key in `SPACK_SIGNING_KEY`. This file is nonetheless uploaded as a build artifact to gitlab. For anyone running CI on a public version of Gitlab this is a major security problem. Even for private Gitlab instances it can be very problematic. Co-authored-by: Scott Wittenburg <scott.wittenburg@kitware.com>
2020-07-13CUDA 11.0.2 (#17423)Axel Huebl1-7/+20
- [x] wait for general release candidate - [x] compute capability support - [x] compiler conflicts - [x] ppc64le - [x] new download links
2020-07-13Add `-o` flag to tar decompressor (#17427)Harmen Stoppels1-2/+2
For normal users, `-o` or `--no-same-owner` (GNU extension) is the default behavior, but for the root user, `tar` attempts to preserve the ownership from the tarball. This makes `tar` use `-o` all the time. This should improve untarring files owned by users not available in rootless Docker builds.
2020-07-13Add libglvnd packages/Add EGL support (#14572)Omar Padron1-0/+94
* add new package: "libglvnd-frontend" * add +glvnd variant to opengl package * add +glvnd variant to mesa package * add +egl variant to paraview package * add libglvnd-frontend entries to default packages config * fix style * add default providers for glvnd virtuals add default providers for glvnd-gl, glvnd-glx, and glvnd-egl * WIP: rough start to external OpenGL documentation * rename libglvnd-frontend package and backend virtual dependencies * update documentation * fix ligvnd-be-* typos * fix libglvnd-fe package class name * fix doc parse error
2020-07-11update docs on point releases (#17463)Greg Becker1-41/+37
2020-07-10Merge branch 'releases/v0.15' into developPeter Josef Scheibel3-6/+10
2020-07-10Bump version to 0.15.1; update CHANGELOG and version referencesv0.15.1Peter Josef Scheibel3-6/+10
2020-07-10spack install: improve error message with no args (#17454)Greg Becker2-2/+37
The error message was not updated when the behavior of Spack environments was changed to not automatically activate the local environment in #17258. The previous error message no longer makes sense.
2020-07-10installation: skip repository metadata for externals (#16954)Greg Becker1-3/+8
When Spack installs a package, it stores repository package.py files for it and all of its dependencies - any package with a Spack metadata directory in its installation prefix. It turns out this was too broad: this ends up including external packages installed by Spack (e.g. installed by another Spack instance). Currently Spack doesn't store the namespace properly for such packages, so even though the package file could be fetched from the external, Spack is unable to locate it. This commit avoids the issue by skipping any attempt to locate and copy from the package repository of externals, regardless of whether they have a Spack repo directory.
2020-07-10autotools bugfix: handle missing config.guess (#17356)Michael Kuhn1-2/+2
Spack was attempting to calculate abspath on the located config.guess path even when it was not found (None); this commit skips the abspath calculation when config.guess is not found.
2020-07-10autotools: Fix config.guess detection, take two (#17333)Michael Kuhn1-5/+3
The previous fix from #17149 contained a thinko that produced errors for packages that overwrite configure_directory.
2020-07-10spack install: improve error message with no args (#17454)Greg Becker2-2/+37
The error message was not updated when the behavior of Spack environments was changed to not automatically activate the local environment in #17258. The previous error message no longer makes sense.
2020-07-09Relocation of sbang needs to be done when the spack prefix changes even if ↵Patrick Gartung2-4/+17
the install tree has not changed. (#17455)
2020-07-09aspirin for buildaches (#17437)Harmen Stoppels1-1/+1
2020-07-09clear mpicc and friends before each build (#17450)Sajid Ali1-0/+8
* clear mpi env vars
2020-07-09installation: skip repository metadata for externals (#16954)Greg Becker1-3/+8
When Spack installs a package, it stores repository package.py files for it and all of its dependencies - any package with a Spack metadata directory in its installation prefix. It turns out this was too broad: this ends up including external packages installed by Spack (e.g. installed by another Spack instance). Currently Spack doesn't store the namespace properly for such packages, so even though the package file could be fetched from the external, Spack is unable to locate it. This commit avoids the issue by skipping any attempt to locate and copy from the package repository of externals, regardless of whether they have a Spack repo directory.
2020-07-08Buildcache: bindist test without invoking spack compiler wrappers. (#15687)Patrick Gartung2-0/+472
* Buildcache: * Try mocking an install of quux, corge and garply using prebuilt binaries * Put patchelf install after ccache restore * Add script to install patchelf from source so it can be used on Ubuntu:Trusty which does not have a patchelf pat package. The script will skip building on macOS * Remove mirror at end of bindist test * Add patchelf to Ubuntu build env * Revert mock patchelf package to allow other tests to run. * Remove depends_on('patchelf', type='build') relying instead on * Test fixture to ensure patchelf is available. * Call g++ command to build libraries directly during test build * Flake8 * Install patchelf in before_install stage using apt unless on Trusty where a build is done. * Add some symbolic links between packages * Flake8 * Flake8: * Update mock packages to write their own source files * Create the stage because spec search does not create it any longer * updates after change of list command arguments * cleanup after merge * flake8
2020-07-08spack create: ask how many to download (#17373)Adam J. Stewart2-3/+7
2020-07-08Improve Travis sample in the docs (#17420)Simon Byrne1-3/+4
- printf is better than echo for multiline strings - ** should be && - use line continuation - Use multiline block
2020-07-07Relocate rpaths for all binaries, then do text bin replacement if the rpaths ↵Patrick Gartung1-7/+10
still exist after running patchelf/otool (#17418)
2020-07-07CudaPackage: maintainers are listed in the docstring (#17409)Massimiliano Culpo1-1/+2
fixes #17396 This prevents the class attribute to be inherited and saves current maintainers from becoming the default maintainers of every Cuda package.
2020-07-07releases: document `releases/latest` tag (#17402)Todd Gamblin1-32/+59
We got rid of `master` after #17377, but users still want a way to get the latest stable release without knowing its number. We've added a `releases/latest` tag to replace what was once `master`. Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2020-07-07Uninstall: tolerate hook failures when force=true (#16513)Peter Scheibel1-2/+32
Fixes #16478 This allows an uninstall to proceed even when encountering pre-uninstall hook failures if the user chooses the --force option for the uninstall. This also prevents post-uninstall hook failures from raising an exception, which would terminate a sequence of uninstalls. This isn't likely essential for #16478, but I think overall it will improve the user experience: if the post-uninstall hook fails, there isn't much point in terminating a sequence of spec uninstalls because at the point where the post-uninstall hook is run, the spec has already been removed from the database (so it will never have another chance to run). Notes: * When doing spack uninstall -a, certain pre/post-uninstall hooks aren't important to run, but this isn't easy to track with the current model. For example: if you are uninstalling a package and its extension, you do not have to do the activation check for the extension. * This doesn't handle the uninstallation of specs that are not in the DB, so it may leave "dangling" specs in the installation prefix
2020-07-06docs: document releases and branches in SpackTodd Gamblin5-6/+384
- [x] Remove references to `master` branch - [x] Document how release branches are structured - [x] Document how to make a major release - [x] Document how to make a point release - [x] Document how to do work in our release projects
2020-07-06Remove references to `master` from CITodd Gamblin1-1/+1
- [x] remove master from github actions - [x] remove master from .travis.yml - [x] make `develop` the default branch for `spack ci`
2020-07-06change master/child to controller/minion in pty docstringsTodd Gamblin2-95/+97
PTY support used the concept of 'master' and 'child' processes. 'master' has been renamed to 'controller' and 'child' to 'minion'.
2020-07-06autotools bugfix: handle missing config.guess (#17356)Michael Kuhn1-2/+2
Spack was attempting to calculate abspath on the located config.guess path even when it was not found (None); this commit skips the abspath calculation when config.guess is not found.
2020-07-03Pipelines doc: fixed two broken links (#17355)Shahzeb Siddiqui1-2/+2
2020-07-02autotools: Fix config.guess detection, take two (#17333)Michael Kuhn1-5/+3
The previous fix from #17149 contained a thinko that produced errors for packages that overwrite configure_directory.
2020-07-01Moved flake8, shell and documentation tests to Github Action (#17328)Massimiliano Culpo1-2/+0
* Move flake8 tests on Github Actions * Move shell test to Github Actions * Moved documentation build to Github Action * Don't run coverage on Python 2.6 Since we get connection errors consistently on Travis when trying to upload coverage results for Python 2.6, avoid computing coverage entirely to speed-up tests.
2020-07-01Fix hashlib function capitalization (#17323)Adam J. Stewart1-1/+1
2020-07-01Documentation update for container example (#17321)Glenn Johnson1-2/+2
This updates the documentation to reflect #17316.
2020-06-30bump version numberGregory Becker3-7/+12
2020-06-30Don't detect "classic" on Cray to avoid a compiler bug (#17314)Massimiliano Culpo4-2/+16
* Don't detect "classic" on Cray to avoid a compiler bug * add tests Co-authored-by: Gregory Becker <becker33@llnl.gov>
2020-06-30Add fish shell support (#9279)Johannes Blaschke5-2/+41
* share/spack/setup-env.fish file to setup environment in fish shell * setup-env.fish testing script * Update share/spack/setup-env.fish Co-Authored-By: Elsa Gonsiorowski, PhD <gonsie@me.com> * Update share/spack/qa/setup-env-test.fish Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * updates completions using `spack commands --update-completion` * added stderr-nocaret warning * added fish shell tests to CI system Co-authored-by: becker33 <becker33@llnl.gov> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Elsa Gonsiorowski, PhD <gonsie@me.com>
2020-06-30Cray compiler: fix implicit rpaths for classic versions (#17310)Greg Becker4-14/+41
* check link dirs for existence