summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2020-07-26bugfix: don't redundantly print ChildErrors (#17709)Todd Gamblin2-5/+12
A bug was introduced in #13100 where ChildErrors would be redundantly printed when raised during a build. We should eventually revisit error handling in builds and figure out what the right separation of responsibilities is for distributed builds, but for now just skip printing. - [x] SpackErrors were designed to be printed by the forked process, not by the parent, so check if they've already been printed. - [x] update tests
2020-07-23bump version number for 0.15.2Gregory Becker3-6/+10
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-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-23bugfix: use getattr for variation.prefix/suffix (#17669)eugeneswalker1-2/+2
2020-07-23bugfix: 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-23ci pipelines: activate environment without view (#17440)Harmen Stoppels1-1/+1
2020-07-23bugfix: 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-23buildcache: list all mirrors even if one failsScott Wittenburg1-2/+2
2020-07-23Bugfix/install missing compiler from buildcache (#17536)Scott Wittenburg2-0/+40
Ensure compilers installed from buildcache are registered.
2020-07-23Fix 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-23clear mpicc and friends before each build (#17450)Sajid Ali1-0/+8
* clear mpi env vars
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-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
2020-06-29cray compilers: fix bug with verifying cray compilers (#17303)Greg Becker1-5/+15
* fix bug with verifying cray compilers
2020-06-29remove three commands that have been deprecated since v0.13.0 (#17291)Greg Becker3-150/+0
* remove three commands that have been deprecated since v0.13.0
2020-06-29autotools: Fix config.guess detection (#17149)Michael Kuhn1-2/+4
The config.guess detection used a relative path that did not work in combination with `check_call`. Use an absolute path instead.
2020-06-29Detect FE compilers automatically on Cray (#17267)Massimiliano Culpo2-2/+85
* cray: detect frontend compilers automatically This commit permits to detect frontend compilers automatically, with the exception of cce. Co-authored-by: Gregory Becker <becker33.llnl.gov>
2020-06-29Fix indentation in containerize example (#17228)George Hartzell1-1/+1
[george.hartzell@172-16-193-97 spack-explore-docker]$ spack containerize Running `spack containerize` with the example `spack.yaml` file fails with an error that ends like so: ``` [...] File "/local_scratch/hartzell/tmp/spack-explore-docker/lib/spack/external/ruamel/yaml/scanner.py", line 165, in need_more_tokens self.stale_possible_simple_keys() File "/local_scratch/hartzell/tmp/spack-explore-docker/lib/spack/external/ruamel/yaml/scanner.py", line 309, in stale_possible_simple_keys "could not find expected ':'", self.get_mark()) ruamel.yaml.scanner.ScannerError: while scanning a simple key in "/local_scratch/hartzell/tmp/spack-explore-docker/spack.yaml", line 26, column 1 could not find expected ':' in "/local_scratch/hartzell/tmp/spack-explore-docker/spack.yaml", line 28, column 5 ``` Indenting the block string fixes the problem for me. CentOS 7, ``` $ spack --version 0.14.2-1529-ec58f28c2 ```
2020-06-29Restore compilers.yaml default directory (#17283)Greg Becker1-2/+2
2020-06-27Add support for macOS Big Sur (#17236)Adam J. Stewart1-0/+1
* Add support for macOS Big Sur * Big Sur is actually macOS 11.0
2020-06-26env: no automatic activation (#17258)Greg Becker4-19/+10
* env: no automatic activation * Ensure ci rebuild jobs activate the environment (no longer automagic) Co-authored-by: Scott Wittenburg <scott.wittenburg@kitware.com>
2020-06-26Use json for buildcache index (#15002)Scott Wittenburg12-305/+440
* Start moving toward a json buildcache index * Add spec and database index schemas * Add a schema for buildcache spec.yaml files * Provide a mode for database class to generate buildcache index * Update db and ci tests to validate object w/ new schema * Remove unused temporary upload-s3 command * Use database class to generate buildcache index * Do not generate index with each buildcache creation * Make buildcache index mode into a couple of constructor args to Database class * Use keyword args for _createtarball * Parse new json index when we get specs from buildcache Now that only one index file per mirror needs to be fetched in order to have all the concrete specs for binaries available on the mirror, we can just fetch and refresh the cached specs every time instead of needing to use the '-f' flag to force re-reading.
2020-06-26build_environment: verify compiler executables exist are are accessible (#17260)Greg Becker4-20/+77
* build_environment: verify compiler executables exist and are accessible * fix existing tests * test compiler executable verification
2020-06-26fix sorting issue with ci workarounds (#17277)Omar Padron2-30/+38
2020-06-26First fix for SPACK_DEPENDENCIES problem when doing setup (#10715)cedricchevalier191-9/+2
* First fix for SPACK_DEPENDENCIES problem when doing setup * Get rid of transitive include path in setup. * Export SPACK_INCLUDE_DIRS into spconfig.py
2020-06-26spack ci generate: allow use of --output-file <file> with wo/ preceding path ↵eugeneswalker1-4/+4
(#17275)
2020-06-26add environment-awareness to `buildcache create` (#16580)Jeffrey Salmond2-2/+57
* add buildcache create test * add functionality and test to create buildcache from environment * use env.concretized_user_specs rather than env.roots to get concretized specs, as suggested in review from becker33
2020-06-26Allow `spack remove -f` and `spack uninstall` to work on matrices (#17222)Greg Becker2-10/+55
* Allow `spack remove -f` and `spack uninstall` to work on matrices Allow Environment.remove(force=True) to remove the concrete spec from the environment even when the user spec cannot be removed because it is in a matrix.
2020-06-25Allow detection for "-classic" version of CCE (#17256)Massimiliano Culpo3-6/+21
* cce: detect modules based on the classic backend * cce: tweaked version checks for clang based options * Added unit test for cce flags
2020-06-25add workaround for gitlab ci needs limit (#17219)Omar Padron5-7/+235
* add workaround for gitlab ci needs limit * fix style/address review comments * convert filter obj to list * update command completion * remove dict comprehension * add workaround tests * fix sorting issue between disparate types * add indeces to format
2020-06-25prevent multiple version sigils in the same spec (#17246)Greg Becker3-9/+44
* prevent multiple version sigils in the same spec * fix packages with malformed versions
2020-06-25environment spec lists: improve ability to query architecture in when ↵Greg Becker3-5/+34
clauses (#17056)
2020-06-25Separate Apple Clang from LLVM Clang (#17110)Massimiliano Culpo17-256/+396
* Separate Apple Clang from LLVM Clang Apple Clang is a compiler of its own. All places referring to "-apple" suffix have been updated. * Hack to use a dash in 'apple-clang' To be able to use autodoc from Sphinx we need a valid Python name for the module that contains Apple's Clang code. * Updated packages to account for the existence of apple-clang Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> * Added unit test for XCode related functions Co-authored-by: Gregory Becker <becker33@llnl.gov> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-06-25Fix global activation check for upstream extendees (#17231)Peter Scheibel2-0/+34
* short-circuit is_activated check when the extendee is installed upstream * add test for checking activation status of packages with an extendee installed upstream
2020-06-25spack config: new subcommands add/remove (#13920)Greg Becker12-102/+718
spack config add <value>: add nested value value to the configuration scope specified spack config remove/rm: remove specified configuration from the relevant scope
2020-06-24features: Add install failure tracking removal through `spack clean` (#15314)Tamara Dahlgren8-36/+140
* Add ability to force removal of install failure tracking data through spack clean * Add clean failures option to packaging guide
2020-06-24Unset environment variables that are most commonly used by Autotools ↵Sergey Kosukhin2-1/+13
packages. (#8623)
2020-06-23Some minor fixes to set_permissions() in file_permissions.py (#17020)Tom Payerle2-6/+35
* Some minor fixes to set_permissions() in file_permissions.py The set_permissions() routine claims to prevent users from creating world writable suid binaries. However, it seems to only be checking for/preventing group writable suid binaries. This patch modifies the routine to check for both world and group writable suid binaries, and complain appropriately. * permissions.py: Add test to check blocks world writable SUID files The original test_chmod_rejects_group_writable_suid tested that the set_permissions() function in lib/spack/spack/util/file_permissions.py would raise an exception if changed permission on a file with both SUID and SGID plus sticky bits is chmod-ed to g+rwx and o+rwx. I have modified so that more narrowly tests a file with SUID (and no SGID or sticky bit) set is chmod-ed to g+w. I have added a second test test_chmod_rejects_world_writable_suid that checks that exception is raised if an SUID file is chmod-ed to o+w * file_permissions.py: Raise exception when try to make sgid file world writable Updated set_permissions() in file_permissions.py to also raise an exception if try to make an SGID file world writable. And added corresponding unit test as well. * Remove debugging prints from permissions.py
2020-06-23tests: check rpath presence not equality (#17216)Tamara Dahlgren1-1/+2
2020-06-23Module index should not be unconditionally overwritten (#14837)Matthias Wolf4-9/+36
* Module index should not be unconditionally overwritten Uncovered after we switched our CI to generate modules for packages one-by-one rather than in bulk. This overwrote a complete module index with an index with a single entry, and broke our downstream Spack instances that needed the upstream module index.