summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-10-05Don't change properties on already-installed packages (#5580)scheibelp5-0/+163
* edits to address issues where spack concretization attempts to set properties on already-installed specs * most added checks only need to check if the spec is concrete; they dont also need to check if the package is installed * add test to ensure that patches are not applied to an installed spec * add test to ensure that an error is detected when a dependent requests a dependency constraint which conflicts with a requested installed dependency
2017-10-05r-acme: Create new package. (#5620)lingnanyuan1-0/+45
2017-10-05r-acgh: Create new package. (#5619)lingnanyuan1-0/+42
2017-10-05r-cluster: Update version to 2.0.6. (#5618)lingnanyuan1-1/+3
2017-10-05r-absseq: Create new package. (#5617)lingnanyuan1-0/+40
2017-10-05r-acde: Create new package. (#5616)lingnanyuan1-0/+46
2017-10-05r-boot: Update version to 1.3-20 (#5615)lingnanyuan1-0/+2
2017-10-05esmf: Fix build (#5607)Michael Kuhn3-4/+266
- Use libs instead of lapack_libs (see #3364). - Add a patch to fix building with recent versions of gcc. - Add a patch to fix building with mvapich2.
2017-10-05r-abadata: new package. (#5611)lingnanyuan1-0/+41
2017-10-05r-abaenrichment: Create new package. (#5612)lingnanyuan1-0/+52
2017-10-05CMake: 3.9.4 (#5614)Axel Huebl1-0/+1
Adds the latest release of CMake.
2017-10-04Add the Sandbox package (#5595)Christoph Junghans1-0/+34
2017-10-04Identify the flag handlers feature as beta (#5609)becker331-0/+5
The flag-handling logic added in #4421 may change semantics, so this commit adds a warning to the documentation for this feature.
2017-10-04Fix module loads (#5599)becker331-10/+16
Fixes #5455 All methods within setup_package use an EnvironmentModifications object to control the environment. Those modifications are applied at the end of setup_package. Module loads for the build environment need to be done after the rest of the environment modifications are applied, as otherwise Spack may unset variables set by those modules (for example LD_LIBRARY_PATH).
2017-10-04module files: restricted token expansion + case sensitivity (#5474)Massimiliano Culpo8-22/+170
closes #2884 closes #4684 In #1848 we decided to use `Spec.format` to expand certain tokens in the module file naming scheme or in the environment variable name. Not all the tokens that are allowed in `Spec.format` make sense in module file generation. This PR restricts the set of tokens that can be used, and adds tests to check that the intended behavior is respected. Additionally, the names of environment variables set/modified by module files were, up to now, always uppercase. There are packages though that require case sensitive variable names to honor certain behaviors (e.g. OpenMPI). This PR restricts the uppercase transformation in variable names to `Spec.format` tokens.
2017-10-04spec.patches: fix dictionary reference (#5608)scheibelp1-2/+3
This fixes a loop that was iterating through the keys of a dictionary when it was intending to use the values.
2017-10-04extensions: create install prefixes (#5601)Ben Boeckel3-3/+3
Tests fail locally because the install prefix doesn't exist. Make them exist.
2017-10-04Hotfix: maintain patch order while fixing hashMassimiliano Culpo2-23/+29
fixes #5587 In trying to preserve patch ordering, #5476 made equality inconsistent for the added 'patches' variant. This commit maintains the original weak ordering of patch applications while preserving consistency of comparisons. The ordering DOES NOT enter the hashing mechanism. It's supposed to be a hotfix, while we think of a cleaner and more-permanent solution.
2017-10-04r-tibble: added dependency r-rlang (#5536)Yifan Zhu1-1/+2
* pr-quantities: add version & py-numpy conflict (#5307) * r-tibble: Update version to 1.3.4 * r-tibble: added dependency r-rlang * r-tibble: changed r-lazyeval and r-rlang to be versioned dependencies * Update package.py * Update package.py
2017-10-04tassel: new package (#5583)Audrey Thoma1-0/+45
2017-10-04xerces-c: Fix url (#5597)Michael Kuhn1-1/+1
The main location only carries the latest release, while all previous (and current) ones are available at the archive location.
2017-10-04OpenSSL: Fix Zlib (#5584)Axel Huebl1-0/+2
Fix missing `-lz` on `make` of OpenSSL. Spotted on a system without a system-wide zlib installation.
2017-10-03wrap generator with collection to avoid exhausting it with single iteration ↵scheibelp1-3/+3
(#5586)
2017-10-03r-edger: created new package (#5571)Yifan Zhu1-0/+44
2017-10-03Add package for multitail@6.4.2 (#5567)George Hartzell1-0/+62
* Add package for multitail@6.4.2 Lightly tested on CentOS 7. * Responde to feedback/comments Use `install_targets` to specify PREFIX= and DESTDIR= instead of hacking away at the Makefile. Expand commentary about "Why?". Use `headers.include_flags` and `libs.ld_flags` to avoid explicitly setting `-L` and `-I` when hacking away at the Makefile.
2017-10-03ExaSP2 Spackage (#5570)Robert Pavel1-0/+94
* Added exasp2 spackage Added spackage for exasp2 proxy app * Fixed MPI in ExaSP2 Explicitly disabled MPI when not enabled. Set MPI variant to default as per Spack standards * Generalized BML Passing for ExaSP2 * Modified to follow spack rules on blas Fortunately was able to modify exasp2 build system to support spack model for blas and lapack requirements. No guarantee is made for support of anything other than originally supported libraries * Fixed flake8 error
2017-10-03r-a4base: new package. (#5576)lingnanyuan1-0/+46
2017-10-03r-a4: new package. (#5577)lingnanyuan1-0/+40
2017-10-03fastqvalidator: new package (#5573)Audrey Thoma1-0/+56
* fastqvalidator: new package * adding version-specificity to compiler conflict * quick changes to env vars and build phase * Update package.py * oops. forgot to install executable * Update package.py * updating package.py * turn env into targets
2017-10-03libpng: zlib path (#5581)Axel Huebl1-0/+10
explicitly set the zlib path for libpng configure. fixes: ``` [ ... ] 92 checking for memset... yes 93 checking for pow... no 94 checking for pow in -lm... yes 95 checking for clock_gettime... yes 96 checking for zlibVersion in -lz... no 97 checking for z_zlibVersion in -lz... no >> 98 configure: error: zlib not installed ```
2017-10-03sra-toolkit: new package (#5588)Audrey Thoma1-0/+45
* sra-toolkit: new package * adding description and homepage
2017-10-03Tell configure about gmp (#5585)George Hartzell1-0/+6
This is a partial fix for #5564. This package used to trust that `configure` would discover `gmp` from its environment. It's safer to tell it where to find `gmp` explicitly. This does that by adding a configure_args() that provides a `--with-gmp=...` argument for configure.
2017-10-02patch: add workdir option (#5501)Christoph Junghans3-11/+46
* patch: add working_dir option * added documentation
2017-10-02mrtrix3: new package (#5568)Audrey Thoma1-0/+62
* mrtrix3: new package * specifying conflict dependency ve
2017-10-02r-a4reporting: new package. (#5575)lingnanyuan1-0/+37
2017-10-02r-locfit: created new package (#5572)Yifan Zhu1-0/+37
2017-10-02Added support for BML+mpi variant (#5563)Robert Pavel1-1/+14
* Added support for BML+mpi variant Added support for BML+mpi variant. Currently restricted to master (develop) branch pending release of next bml tag * Update package.py Removing redundant statement * Update package.py Added explicit disabling of MPI when not requested
2017-10-02Added Spackage for YAJL (#5566)Robert Pavel1-0/+35
Added spackage for YAJL
2017-10-02linkphase3: new package (#5493)Audrey Thoma1-0/+41
* linkphase3: new package * adding ifort option * Update package.py
2017-10-02hisat2: new package (#5488)Audrey Thoma1-0/+63
2017-10-02CUDA 9.0.176 (#5562)Axel Huebl1-0/+2
The first stable release of CUDA 9, v9.0.176, is out. This adds its installer and checksum.
2017-09-30Port CTest's log scraping logic to Spack (#5561)Todd Gamblin4-62/+387
- This steals the magic regular expressions that CTest uses to parse log files and addds them to Spack. See here: https://github.com/Kitware/CMake/blob/master/Source/CTest/cmCTestBuildHandler.cxx These are BSD licensed, so the port is in `externa/ctest_log_parser.py` - We currently use these to do better filtering of errors from build output. Plan is to use them to generate good CDash output.
2017-09-30Add testing for spack blame; refactor llnl.util testsTodd Gamblin7-23/+106
2017-09-30Add 'spack blame' command: shows contributors to packagesTodd Gamblin6-25/+280
`spack blame` prints out the contributors to a package. By modification time: ``` $ spack blame --time llvm LAST_COMMIT LINES % AUTHOR EMAIL 3 days ago 2 0.6 Andrey Prokopenko <andrey.prok@gmail.com> 3 weeks ago 125 34.7 Massimiliano Culpo <massimiliano.culpo@epfl.ch> 3 weeks ago 3 0.8 Peter Scheibel <scheibel1@llnl.gov> 2 months ago 21 5.8 Adam J. Stewart <ajstewart426@gmail.com> 2 months ago 1 0.3 Gregory Becker <becker33@llnl.gov> 3 months ago 116 32.2 Todd Gamblin <tgamblin@llnl.gov> 5 months ago 2 0.6 Jimmy Tang <jcftang@gmail.com> 5 months ago 6 1.7 Jean-Paul Pelteret <jppelteret@gmail.com> 7 months ago 65 18.1 Tom Scogland <tscogland@llnl.gov> 11 months ago 13 3.6 Kelly (KT) Thompson <kgt@lanl.gov> a year ago 1 0.3 Scott Pakin <pakin@lanl.gov> a year ago 3 0.8 Erik Schnetter <schnetter@gmail.com> 3 years ago 2 0.6 David Beckingsale <davidbeckingsale@gmail.com> 3 days ago 360 100.0 ``` Or by percent contribution: ``` $ spack blame --percent llvm LAST_COMMIT LINES % AUTHOR EMAIL 3 weeks ago 125 34.7 Massimiliano Culpo <massimiliano.culpo@epfl.ch> 3 months ago 116 32.2 Todd Gamblin <tgamblin@llnl.gov> 7 months ago 65 18.1 Tom Scogland <tscogland@llnl.gov> 2 months ago 21 5.8 Adam J. Stewart <ajstewart426@gmail.com> 11 months ago 13 3.6 Kelly (KT) Thompson <kgt@lanl.gov> 5 months ago 6 1.7 Jean-Paul Pelteret <jppelteret@gmail.com> 3 weeks ago 3 0.8 Peter Scheibel <scheibel1@llnl.gov> a year ago 3 0.8 Erik Schnetter <schnetter@gmail.com> 3 years ago 2 0.6 David Beckingsale <davidbeckingsale@gmail.com> 3 days ago 2 0.6 Andrey Prokopenko <andrey.prok@gmail.com> 5 months ago 2 0.6 Jimmy Tang <jcftang@gmail.com> 2 months ago 1 0.3 Gregory Becker <becker33@llnl.gov> a year ago 1 0.3 Scott Pakin <pakin@lanl.gov> 3 days ago 360 100.0 ```
2017-09-30Typo: file -> directory (#5560)George Hartzell1-1/+1
Mirrors are directories (that use `file://` URLS, not files.
2017-09-30Documentation for dependency patching.Todd Gamblin3-23/+189
2017-09-30Patches are hashed with specs, and can be associated with dependencies.Todd Gamblin26-197/+754
- A package can depend on a special patched version of its dependencies. - The `Spec` YAML (and therefore the hash) now includes the sha256 of the patch in the `Spec` YAML, which changes its hash. - The special patched version will be built separately from a "vanilla" version of the same package. - This allows packages to maintain patches on their dependencies without affecting either the dependency package or its dependents. This could previously be accomplished with special variants, but having to add variants means the hash of the dependency changes frequently when it really doesn't need to. This commit allows the hash to change *just* for dependencies that need patches. - Patching dependencies shouldn't be the common case, but some packages (qmcpack, hpctoolkit, openspeedshop) do this kind of thing and it makes the code structure mirror maintenance responsibilities. - Note that this commit means that adding or changing a patch on a package will change its hash. This is probably what *should* happen, but we haven't done it so far. - Only applies to `patch()` directives; `package.py` files (and their `patch()` functions) are not hashed, but we'd like to do that in the future. - The interface looks like this: `depends_on()` can optionally take a patch directive or a list of them: depends_on(<spec>, patches=patch(..., when=<cond>), when=<cond>) # or depends_on(<spec>, patches=[patch(..., when=<cond>), patch(..., when=<cond>)], when=<cond>) - Previously, the `patch()` directive only took an `md5` parameter. Now it only takes a `sha256` parameter. We restrict this because we want to be consistent about which hash is used in the `Spec`. - A side effect of hashing patches is that *compressed* patches fetched from URLs now need *two* checksums: one for the downloaded archive and one for the content of the patch itself. Patches fetched uncompressed only need a checksum for the patch. Rationale: - we include the content of the *patch* in the spec hash, as that is the checksum we can do consistently for patches included in Spack's source and patches fetched remotely, both compressed and uncompressed. - we *still* need the patch of the downloaded archive, because we want to verify the download *before* handing it off to tar, unzip, or another decompressor. Not doing so is a security risk and leaves users exposed to any arbitrary code execution vulnerabilities in compression tools.
2017-09-30add spack flake8 exception for long checksumsTodd Gamblin1-2/+2
2017-09-30Clean up exceptions and function names in directives.Todd Gamblin1-41/+23
- Functions returned by directives were all called `_execute`, which made reading stack traces hard because you couldn't tell what directive a frame came from. - renamed them all to `_execute_<directive>` - Exceptions in directives were only really used in one or two places -- get rid of the boilerplate init functions and let the callsite specify the message.
2017-09-30Consolidate some web-spidering commands in spack.util.webTodd Gamblin6-116/+118
- move `spack.cmd.checksum.get_checksums` to `spack.util.web.spider_checksums` - move `spack.error.NoNetworkError` to `spack.util.web.NoNetworkError` since it is only used there.