summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
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.
2020-06-23Added support for --fail-fast install option to terminate on first failureTamara Dahlgren4-5/+67
2020-06-23Allow a single ctrl-c to terminate an install in progressTamara Dahlgren2-3/+31
2020-06-23fix compiler environment handling to reset environment after (#17204)Greg Becker2-19/+84
bugfix: fix compiler environment handling to reset environment after
2020-06-22Pre ci optimization (#16372)Omar Padron3-2/+392
* add initial optimization script * integrate optimization in spack ci * make optimization opt-in * fix import error * flake8 fixes * update command completion * work around vermin errors * fix sphynx errors
2020-06-22swig: fix older builds on newer platforms by updating config files (#16854)Joseph Ciurej1-61/+82
* swig: revise 'autotools' automated 'config.*' update mechanism to support 'config.sub' and adapt 'swig' accordingly
2020-06-18Fetching from urls: Error Message (#16434)Axel Huebl2-4/+10
* Fetching from urls: Error Message Fix the error message when fetching from consecutive `urls` of a package version. Each fail should show the currently failing URL, not the first url. Example multi-problem run that occured in real life: ``` ==> 5821: Installing util-macros curl: (28) Connection timed out after 10000 milliseconds curl: (16) Error in the HTTP2 framing layer curl: (22) The requested URL returned error: 403 Forbidden ==> Fetching https://www.x.org/archive/individual/util/util-macros-1.19.1.tar.bz2 ==> Failed to fetch file from URL: https://www.x.org/archive/individual/util/util-macros-1.19.1.tar.bz2 Curl failed with error 28 ==> Fetching https://mirrors.ircam.fr/pub/x.org/individual/util/util-macros-1.19.1.tar.bz2 ==> Failed to fetch file from URL: https://www.x.org/archive/individual/util/util-macros-1.19.1.tar.bz2 Curl failed with error 16 ==> Fetching http://xorg.mirrors.pair.com/individual/util/util-macros-1.19.1.tar.bz2 ==> Failed to fetch file from URL: https://www.x.org/archive/individual/util/util-macros-1.19.1.tar.bz2 URL https://www.x.org/archive/individual/util/util-macros-1.19.1.tar.bz2 was not found! ==> Fetching from https://www.x.org/archive/individual/util/util-macros-1.19.1.tar.bz2 failed. ==> Error: FetchError: All fetchers failed for spack-stage-util-macros-1.19.1-se2a2e74oyusj2r4esgcb7pr3qhh45ef ``` - `urls[0]`: HTTP2 layer error - `urls[1]`: timeout - `urls[2]`: missing file on mirror * x.org: two more mirrors x.org mirrors are a bit tricky, since many are out-of-sync or off. A good package to test with is `util-macros`, which had a "recent" release.
2020-06-18Docs: fix rst link to spack ci (#17147)Adam J. Stewart1-3/+3
2020-06-17cray module do not work without CRAY_LD_LIBRARY_PATH (#17031)Greg Becker2-5/+9
Co-authored-by: Gregory Becker <becker33.llnl.gov>
2020-06-16Doc: E4S Build Cache Link (#16986)Axel Huebl1-0/+6
Link to the E4S build cache in the according section of the docs.
2020-06-16Yaml spec parsing corner case (#17101)psakievich2-7/+28
* Catch yaml filename corner case in spec parser * improved regex and remove redundant error checking Co-authored-by: Gregory Becker <becker33@llnl.gov>
2020-06-15Skip failing test on MacOS (#17072)Massimiliano Culpo1-0/+2
* Skip failing test on MacOS * Update setup-python action and unpin coverage
2020-06-13clang: add 'version_argument', remove redundant method (#17071)Greg Becker2-20/+3
2020-06-12Buildcache: Fix bug in binary string replacement (#17075)Patrick Gartung1-1/+5
* Fix bug in binary string replacement that results in padding being added multiple times * Update comment * Update comment again
2020-06-11Renamed flags.py to basics.pyMassimiliano Culpo2-1/+2
2020-06-11Reworked tests on compilers to separate version detectionMassimiliano Culpo3-170/+183
Tests on version detection are now separate from other tests done on compiler.
2020-06-10Move to temporary directory before running dev-build test (#17028)Massimiliano Culpo1-3/+4
Without this the test would leave spurious "spack-build-*.txt" files in the current working directory.
2020-06-09lib/spack : expand spack config vars in 'include' section (#16210)Joseph Ciurej2-2/+33
* Changed the 'include' config section to use 'substitute_path_variables' to allow for Spack config variables to be used (e.g. $spack). * Fixed a bug with 'include' section path expansion and added a test case for 'include' paths with embedded config variables.
2020-06-09Testing: create mock executable fixture (#16999)Massimiliano Culpo2-9/+19
2020-06-09SpecList: fix recursion for references (#16897)Greg Becker2-29/+59
* SpecList: fix and refactor variable expansion
2020-06-08Cray: fix Blue Waters support and user-built MPIs on Cray (#16593)Adam J. Stewart2-11/+19
* Cray: fix Blue Waters support * pkg-config env vars needed on Blue Waters * cray platform: fix support for user-build MPI on cray machines * reintroduce cray environment cleaning behind cnl version guard * cray platform: fix support for user-build MPI on cray machines Co-authored-by: Gregory <becker33@llnl.gov>
2020-06-08view remove: directly check whether specs own files before removing from ↵Greg Becker2-5/+44
view (#16955) Bugfix for hardlinks and copies
2020-06-05spack dev-build: Do not mark -u builds in database (#16333)Greg Becker4-21/+61
Builds can be stopped before the final install phase due to user requests. Those builds should not be registered as installed in the database. We had code intended to handle this but: 1. It caught the wrong type of exception 2. We were catching these exceptions to suppress them at a lower level in the stack This PR allows the StopIteration to propagate through a ChildError, and catches it properly. Also added to an existing test to prevent regression.
2020-06-05commands: use a single ThreadPool for `spack versions` (#16749)Massimiliano Culpo4-251/+228
This fixes a fork bomb in `spack versions`. Recursive generation of pools to scrape URLs in `_spider` was creating large numbers of processes. Instead of recursively creating process pools, we now use a single `ThreadPool` with a concurrency limit. More on the issue: having ~10 users running at the same time spack versions on front-end nodes caused kernel lockup due to the high number of sockets opened (sys-admin reports ~210k distributed over 3 nodes). Users were internal, so they had ulimit -n set to ~70k. The forking behavior could be observed by just running: $ spack versions boost and checking the number of processes spawned. Number of processes per se was not the issue, but each one of them opens a socket which can stress `iptables`. In the original issue the kernel watchdog was reporting: Message from syslogd@login03 at May 19 12:01:30 ... kernel:Watchdog CPU:110 Hard LOCKUP Message from syslogd@login03 at May 19 12:01:31 ... kernel:watchdog: BUG: soft lockup - CPU#110 stuck for 23s! [python3:2756] Message from syslogd@login03 at May 19 12:01:31 ... kernel:watchdog: BUG: soft lockup - CPU#94 stuck for 22s! [iptables:5603]
2020-06-03Fix parsing of EvtGen URL (#16883)Adam J. Stewart2-9/+11
* Fix parsing of EvtGen URL * Flake8 fix
2020-06-03Mirrors: add option to exclude packages from "mirror create" (#14154)Peter Scheibel3-23/+98
* add an --exclude-file option to 'spack mirror create' which allows a user to specify a file of specs to exclude when creating a mirror. this is anticipated to be useful especially when using the '--all' option * allow specifying number of versions when mirroring all packages * when mirroring all specs within an environment, include dependencies of root specs * add '--exclude-specs' option to allow user to specify that specs should be excluded on the command line * add test for excluding specs
2020-06-03Feature: add option to create view by copying/relocating files (#16480)Greg Becker4-14/+87
* add subcommand `spack view copy/relocate` * update bash completions * add copy/relocate commands to view tests * allow copied views to be removed
2020-06-03Implicit rpaths for NAG/GCC mixed toolchain (#14782)Sergey Kosukhin6-38/+139
* Implicit rpaths for NAG. * set up environment when checking for implicit rpaths
2020-06-03spack uninstall: improve help message (#16886)Massimiliano Culpo1-7/+15
fixes #12527 Mention that specs can be uninstalled by hash also in the help message. Reference `spack gc` in case people are looking for ways to clean the store from build time dependencies. Use "spec" instead of "package" to avoid ambiguity in the error message.
2020-06-02Unify tests for compiler command in the same file (#16891)Massimiliano Culpo3-113/+105
* Unify tests for compiler command in the same file Tests for the "spack compiler" command were previously scattered among different files. * Tests should use mutable_config, since they modify the compiler list
2020-06-02Fix satisfaction checks for excluding variants from matrices (#16893)Greg Becker6-49/+79
Because of the way abstract variants are implemented, the following spec matrix does not work as intended: ``` matrix: - [foo] - [bar=a, bar=b] exclude: - bar=a ``` because abstract variants always satisfy any variant of the same name, regardless of values. This PR converts abstract variants to whatever their appropriate type is before running satisfaction checks for the excludes clause in a matrix. fixes #16841
2020-06-01openmpi: add opa-psm2 dependency (#16873)Jonathon Anderson1-1/+118
Also document with_or_without and enable_or_disable, (which are used to configure the opa-psm2 dependency).
2020-06-01Recognize system installed gcc-10 as compilers (#16884)Massimiliano Culpo1-1/+1
Now that the version number of GCC reached double digits, an update to the regex is needed to recognize gcc-10 as an executable to be inspected when searching for compilers.
2020-05-29repo: fix construction of UnknownPackageError (#16865)Sergey Kosukhin2-15/+24
Also improve the error messages
2020-05-29Mention that packages can be uninstalled by hash (#16863)Robert Rosca1-1/+2
2020-05-29spack module_cmd: set LD_LIBRARY_PATH for python in subshell. (#16827)Greg Becker3-8/+46
* Ensure python runs with proper ld_library_path within Spack regardless of environment
2020-05-29Update error message when UnavailableCompilerVersionError is triggered (#16838)Jane Herriman1-1/+3
Co-authored-by: Herriman <herriman1@panorama.llnl.gov>