Commit graph

3280 commits

Author SHA1 Message Date
Todd Gamblin
138307dd0c Merge pull request #955 from trws/lua-rework
complete lua rework
2016-05-17 13:21:51 -07:00
Erik Schnetter
fcc4c1b2f2 Remove duplicate providers that can concretize to the same result
Patch generously provided by @becker33.

Closes #928.
2016-05-17 15:13:28 -04:00
Gregory Becker
0fd9cdb861 Fixed config tests for new compiler config format 2016-05-16 09:56:07 -07:00
Gregory Becker
7705603f73 Added more compilers to mock packages tests 2016-05-16 09:43:46 -07:00
Tom Scogland
8859a09cd2 handle explicit when requesting to install already installed packages 2016-05-16 08:08:40 -07:00
Tom Scogland
4acdfeae61 track whether a package was installed "explicitly"
Adds a new attribute in the database to track whether a package was
installed explicitly or not, where explicitly is the user running `spack
install <package>` and implicitly is it being installed as a dependency.
It also adds arguments to `spack find` to find these packages such that
it should be possible to query the packages that were installed
implicitly and are not currently depended upon any longer.
2016-05-16 08:08:40 -07:00
Brett Viren
1bbe6409e1 Merge remote-tracking branch 'upstream/develop' into view-fix-merge 2016-05-16 10:09:31 -04:00
Brett Viren
77a34ebdf9 flake8-clean. 2016-05-16 10:08:59 -04:00
Tom Scogland
dacedfcc0e formatting to appease flake8 2016-05-16 05:12:30 -07:00
Tom Scogland
c6524d0311 environment: fixed comment and default separator 2016-05-15 09:50:21 -07:00
Tom Scogland
577657b3f7 go rework
This commit includes:
* a new go package that uses gccgo to bootstrap the go toolchain
* env support added to Executable
* a new Go fetch strategy that uses `go get` to fetch a package and all
  of its deps
* A platinum searcher package that leverages the new go package and
  fetch strategy
2016-05-14 22:35:55 -07:00
Tom Scogland
a2197f3a41 yet more sacrifices to the god of short-lines 2016-05-14 17:51:58 -07:00
Tom Scogland
df30182a10 appeasing flake8 in environment 2016-05-14 17:39:59 -07:00
Tom Scogland
12e36ee0e7 fix merge error 2016-05-14 16:20:45 -07:00
Tom Scogland
b5979b13e3 complete lua rework, also module path fix
This is a complete rework of the lua package, it also allows the
environment modification classes to handle paths that are not separated
by colons, and uses the support for same in TCL modules as well.

The biggest difference is the handling for lua extension packages, which
now have their paths set correctly by the lua parent package, and have
access to both lua and luarocks as installation tools. See the luaposix
package for what should be required for most lua packages after this.
2016-05-14 16:18:26 -07:00
Elizabeth Fischer
efa506b235 Preparing spack setup command for merge. Try this out for a while... 2016-05-14 17:09:11 -04:00
Brett Viren
b3ede099e2 Document command. 2016-05-14 13:15:25 -04:00
Brett Viren
c98afe2205 Pick a better name for the 'spec' parameters. 2016-05-14 13:14:51 -04:00
Brett Viren
8ddc1f8977 Move from str.format() to string.Template. 2016-05-14 09:11:04 -04:00
Gregory L. Lee
e9b71872a8 addressed PR#946 comments from @adamjstewart 2016-05-13 15:16:07 -07:00
Mario Melara
fce6ecb05c Changed _proper_compiler_spec to return filtered list. Apparently filter returns a list rather than filtering the original list. Lead to compiler finding problems if user specified frontend compilers 2016-05-13 15:04:06 -07:00
Gregory Becker
f43cab0951 fixed pkgconfig issue 2016-05-13 14:39:20 -07:00
Gregory L. Lee
b8a91db089 Intel software packages and license enhancements 2016-05-12 20:04:45 -07:00
Gregory Becker
4c9dd028d2 Fixed error causing hang in env/cc 2016-05-12 17:20:48 -07:00
Todd Gamblin
5e13bba068 Fix #941: add copyright to new package files.
- also reworded the boilerplate a bit.
2016-05-12 10:30:13 -07:00
Denis Davydov
68c681bb78 document blas and lapack usage in packages 2016-05-12 08:59:17 +02:00
Todd Gamblin
e7ced54369 Correct LLNL LGPL license template for clarity. 2016-05-11 21:22:25 -07:00
Todd Gamblin
14fe0b8ad2 Merge pull request #558 from adamjstewart/features/pgi
Add Licensed Software Support
2016-05-11 17:17:47 -07:00
Gregory Becker
45bf93405a Changed spec syntax for new parts from modules feature 2016-05-11 16:23:13 -07:00
Gregory Becker
2e1810e3a7 re-merging develop 2016-05-11 15:26:09 -07:00
Gregory Becker
566fec4015 Fixed variants in new format and removed print statements from debugging 2016-05-11 14:56:41 -07:00
Gregory Becker
0b5836cfce Fixed flipped conditional in satisfies 2016-05-11 10:51:52 -07:00
Adam J. Stewart
c043275f1b Final flake8 changes 2016-05-11 11:46:41 -05:00
Todd Gamblin
9cf5404bb7 Merge pull request #937 from davydden/features/unit_tests
Features/package_test
2016-05-11 09:42:00 -07:00
Adam J. Stewart
5879f8207f Flake8 formatting changes 2016-05-11 11:32:08 -05:00
Adam J. Stewart
ee7ec4fa66 Move all licensing support to pre/post_install hooks 2016-05-11 11:32:08 -05:00
Adam J. Stewart
19f4b27fd2 Add documentation for packaging of licensed software 2016-05-11 11:32:08 -05:00
Adam J. Stewart
8bcb812529 Allow multiple license symlinks 2016-05-11 11:32:08 -05:00
Adam J. Stewart
2a11cb8b76 Use global licenses with local symlinks 2016-05-11 11:32:08 -05:00
Adam J. Stewart
6906911e85 Allow license files to use different symbols for comments 2016-05-11 11:32:08 -05:00
Adam J. Stewart
b63d11d5b0 Formatting consistency 2016-05-11 11:32:07 -05:00
Adam J. Stewart
5cb45c253e Bug fix 2016-05-11 11:32:07 -05:00
Adam J. Stewart
1b997f10a8 Add set_up_license function 2016-05-11 11:32:07 -05:00
Adam J. Stewart
8cba8d6d1d Add default global variables for licensing information 2016-05-11 11:29:30 -05:00
Todd Gamblin
fd5d89b61c Merge branch 'custom_modulefiles_from_config' of https://github.com/epfl-scitas/spack into epfl-scitas-custom_modulefiles_from_config 2016-05-11 08:59:23 -07:00
alalazo
bb4b6c8ee2 flake 8 : fixed checks 2016-05-11 17:02:36 +02:00
Denis Davydov
eba264fcd0 fix formatting 2016-05-11 16:11:34 +02:00
alalazo
78ae5d7723 Merge branch 'develop' of https://github.com/LLNL/spack into features/custom_modulefile_from_config
Conflicts:
	lib/spack/spack/config.py
2016-05-11 16:11:19 +02:00
alalazo
22bb0562fe Revert "flake8 : fixed all issues?"
This reverts commit 71e49e289a.
2016-05-11 16:09:47 +02:00
alalazo
b215b19cae modules : added docs 2016-05-11 15:42:48 +02:00
Denis Davydov
809ded74c9 add functions for simple unit tests; refactor openblas to use them 2016-05-11 15:10:13 +02:00
Benedikt Hegner
0b7b25487f improve error message for wrong config section names 2016-05-11 13:29:27 +02:00
Todd Gamblin
6d6eb0f2d1 Remove config.py from flake checking for now. 2016-05-11 02:32:13 -07:00
Todd Gamblin
fc8d18ebdc Merge branch 'bugfix/config' of git://github.com/hegner/spack into hegner-bugfix/config 2016-05-11 02:31:20 -07:00
Todd Gamblin
9030541e4b Merge pull request #929 from epfl-scitas/differentiate_framework_from_packages
QA : make qa checking less painful
2016-05-11 02:26:07 -07:00
Benedikt Hegner
c1e6b52184 first round of coding rules 2016-05-11 00:28:12 +02:00
Benedikt Hegner
05b6c3f8cf add test for list parameters 2016-05-11 00:14:24 +02:00
Benedikt Hegner
6e462abb4d hmm... test before commit 2016-05-10 23:31:29 +02:00
Benedikt Hegner
5d477bc956 fix setting config for list parameters 2016-05-10 23:19:30 +02:00
Todd Gamblin
98faee1d5c Minor tweaks to flock docs. 2016-05-10 11:19:17 -07:00
Todd Gamblin
a49662276d Merge branch 'fix-doc-flock' of git://github.com/luca-heltai/spack into luca-heltai-fix-doc-flock 2016-05-10 11:10:07 -07:00
Luca Heltai
4cb91d6f7b Added documentation on lockf/flock. 2016-05-10 19:46:24 +02:00
alalazo
7d74e209f3 qa : this should still fail due to F821 2016-05-10 19:20:26 +02:00
alalazo
979b53cab6 qa : modifying 2 packages and a framework file just for the sake of it 2016-05-10 18:33:07 +02:00
alalazo
71e49e289a flake8 : fixed all issues? 2016-05-10 17:19:22 +02:00
alalazo
c3f3f26632 modules : added warning if a user tries to add prerequisite with dotkit 2016-05-10 16:16:50 +02:00
alalazo
0b7c673205 modules : changed syntax for environment modifications 2016-05-10 15:48:37 +02:00
alalazo
f8f71b1c2c modules : prefix_inspections moved to modules.yaml 2016-05-10 13:37:03 +02:00
alalazo
9eee71edf7 Merge branch 'develop' of https://github.com/LLNL/spack into features/custom_modulefile_from_config 2016-05-10 11:13:19 +02:00
Todd Gamblin
42edb6840e Merge pull request #905 from adamjstewart/features/rpath_flag
Allow compilers to specify their own rpath linking flags
2016-05-10 01:56:49 -07:00
Todd Gamblin
a2528a86b4 Merge pull request #692 from mathstuf/quoted-command-lines
executable: quote arguments
2016-05-10 01:42:26 -07:00
Todd Gamblin
8ce45d2161 Merge pull request #775 from epfl-scitas/fixes/config_update
fix: proper update of config file
2016-05-10 01:35:56 -07:00
Todd Gamblin
57e495943f Merge pull request #757 from glennpj/extend_r
Make R extendable
2016-05-10 01:30:13 -07:00
Todd Gamblin
69f6baf28e Merge pull request #842 from hegner/compiler_lookup_order
Bugfix - preserve lookup order in PATH when invoking 'spack compiler add'
2016-05-10 01:11:18 -07:00
Todd Gamblin
cbfba84aa2 Merge pull request #849 from brettviren/bugfix/share-pkgconfig
Add  to sub dirs checked for pkg-config files.
2016-05-10 00:59:01 -07:00
Gregory Becker
c6ac709d70 WIP fixing all the things that broke when I changed the anonymous spec names 2016-05-09 17:06:21 -07:00
Gregory Becker
a7026da45c cleanup 2016-05-09 16:24:26 -07:00
Gregory Becker
222c84d9be Changed anonymous specs to have name=None instead of empty string 2016-05-09 16:22:17 -07:00
Adam J. Stewart
6665a996e6 Add documentation for rpath_flag handling 2016-05-09 17:04:14 -05:00
Adam J. Stewart
58733eb26a Comment change 2016-05-09 16:59:39 -05:00
Adam J. Stewart
b211829fb1 Testing typo 2016-05-09 16:59:39 -05:00
Adam J. Stewart
4473311bdb Allow compilers to specify their own rpath linking flags 2016-05-09 16:59:39 -05:00
Denis Davydov
7a2d65967c wrap tty.die to 80 chars 2016-05-09 22:04:34 +02:00
Todd Gamblin
73107d6b0f cleanup 2016-05-09 03:40:34 -07:00
Todd Gamblin
0c853ac3ea Make _hash private to discourage access; fix dag_hash length handling. 2016-05-09 03:39:08 -07:00
Todd Gamblin
7151fd8836 Restore cc from mainline; clean up some cflags stuff. 2016-05-09 03:37:27 -07:00
Brett Viren
f1900f6a7b Add a 'print' view allowing genreation of arbitrary strings based on format using package/spec parameters. 2016-05-08 10:25:21 -04:00
Brett Viren
2d1430da13 Address all coments in @trws's latest comment in PR #869.
I addressed them by factoring the code better to follow the visitor
pattern.  This will allow actions to be easily added in the future.
These may not even be file sytsem views.  One could add actions to
generate shell init scripts, JSON DAG-dumpers, GraphViz DOT file
generators, etc (yes, some of these are alread in there - just to give
the idea).

Also added is a top-level test

 $ source share/spack/setup-env.sh
 $ ./share/spack/examples/test_view.sh

Read the top of that script first.
2016-05-07 18:24:24 -04:00
Gregory Becker
d392056457 Cleaning up print statements for debugging 2016-05-06 18:05:30 -07:00
Gregory Becker
1523ebe9f7 Working properly to display but not reuse old specs from yaml 2016-05-06 18:03:43 -07:00
Gregory Becker
06b9433351 Fixed previous commit 2016-05-06 12:35:43 -07:00
Gregory Becker
bc087cfefb Fixed database to account for hashes when reading install records 2016-05-06 12:28:46 -07:00
Gregory Becker
9f37e4c907 Made spec hashes immutable once concrete -- improved 2016-05-06 12:05:51 -07:00
Gregory Becker
addcde4f35 Made spec hashes immutable once concrete 2016-05-06 12:05:27 -07:00
Gregory Becker
2f821b9e9b temp 2016-05-05 18:13:56 -07:00
Gregory Becker
9a39ccea8f Every old spec has empty compiler flags 2016-05-05 17:49:30 -07:00
Gregory Becker
1bb7bfaf7f Versioning the database -- automatic reindex 2016-05-05 17:38:51 -07:00
Gregory Becker
3fc1344865 temp 2016-05-05 17:11:09 -07:00
Gregory Becker
11b62114bb versioning the database 2016-05-05 16:58:00 -07:00
Elizabeth Fischer
6a48385111 Keep users environment in the spack setup script (spconfig.py). This is important to avoid breaking things that require module loads to work; for example, non-activate Python packages. 2016-05-05 17:48:24 -04:00
Todd Gamblin
9fb1a9537d Merge branch 'develop' into features/cflags 2016-05-05 10:49:15 -07:00
Denis Davydov
c37ea9aff5 document usage of compiler flags properties 2016-05-05 11:56:58 +02:00
Denis Davydov
f84f04591b substitute cxx14_flag by a property with the same name to be overridden in derived classes 2016-05-05 10:48:31 +02:00
Denis Davydov
c6fb6bde40 remove cxx11_flag from Compiler as it is now substituted by a property with the same name 2016-05-05 10:47:02 +02:00
Denis Davydov
ddcb97f953 add a temporary Nag.cxx11_flag property 2016-05-05 10:44:41 +02:00
Denis Davydov
473a5542be compiler: make default openmp_flag() and cxx11_flag() die when these properties are not implemented in a derived class 2016-05-05 10:44:41 +02:00
Denis Davydov
30b65d3114 fix comment in Compiler class 2016-05-05 10:44:41 +02:00
Denis Davydov
e28ca3922f compiler: cleanup Nag.cxx11_flag and Pgi.cxx11_flag 2016-05-05 10:44:41 +02:00
Denis Davydov
d5a760776a compiler: add default implementation of openmp_flag() and css11_flag() 2016-05-05 10:44:41 +02:00
Denis Davydov
6a418cfb8d compiler: simplify Clang.is_apple 2016-05-05 10:44:41 +02:00
Denis Davydov
f2f1c49c90 compilers: one more missing import statement 2016-05-05 10:44:41 +02:00
Denis Davydov
07fd0ccc9a compiler: add Clang.is_apple property which checks if Clang is from Apple or not using version 2016-05-05 10:44:41 +02:00
Denis Davydov
592045cd54 compilers: make Intel::openmp_flag() return -openmp and -qopenmp based on the compiler version 2016-05-05 10:44:41 +02:00
Denis Davydov
3cd3052c56 compilers: minor fixes to Clang::cxx11_flag() and Clang::openmp_flag() 2016-05-05 10:44:41 +02:00
Denis Davydov
c078deaab1 compilers: add missing import statements 2016-05-05 10:44:41 +02:00
Denis Davydov
9776dc0433 compilers: add openmp_flag() method 2016-05-05 10:44:41 +02:00
Denis Davydov
2cdfe14e5a compilers: make sure cxx11_flag() is defined for all compilers 2016-05-05 10:44:41 +02:00
Todd Gamblin
13e52962ee Merge pull request #802 from gartung/std-cpp14
Handle c++11 and c++14 correctly
2016-05-05 01:41:55 -07:00
Gregory Becker
90b7b7ba5c Reworked compiler finding/storing/format to allow for multiple compilers with the same spec for different operating systems. TODO: fix config tests. All others up to date 2016-05-04 21:42:59 -07:00
Elizabeth F
2243de9e2f Make quiet mode default for spack spconfig 2016-05-04 23:39:27 -04:00
Denis Davydov
c3317819cb mpi: add self.spec.[mpicc|mpicxx|mpifc|mpif77] to avoid hardcoding MPI wrappers names 2016-05-04 10:37:52 +02:00
Brett Viren
346f102234 Bug fixes, tty tweaks. 2016-05-01 17:13:44 -04:00
Brett Viren
8c140f4725 Change the action from parameter to subcommand to fit Spack convention. 2016-05-01 17:13:43 -04:00
Brett Viren
a2b9a000dc Add add removal and status actions in addition to link and add various ways to filter what is done. 2016-04-29 15:12:09 -04:00
Gregory Becker
4ba73dac34 Unit tests for cflags PR 2016-04-28 14:01:38 -07:00
Todd Gamblin
8cd13d4b35 Make arch command print out the platform. 2016-04-28 12:49:21 -07:00
Brett Viren
49956faab9 First try to make file system views of specs. 2016-04-28 14:54:14 -04:00
Gregory Becker
3b84345b77 Changed yaml format for node_dicts to mitigate future incompatibilities 2016-04-28 11:05:59 -07:00
Todd Gamblin
c35994d5bf Merge pull request #850 from mathstuf/partial-downloads
fetch_strategy: download to temporary files
2016-04-28 10:22:43 -07:00
Gregory Becker
ae5198e5e7 Merged in current develop to cflags 042716 2016-04-27 19:38:51 -07:00
Elizabeth F
4d466fe879 spack setup: Fix broken module convenience settings. 2016-04-27 20:57:04 -04:00
Todd Gamblin
8773a0b747 Merge pull request #847 from epfl-scitas/features/test_install_with_time
test-install command : added elapsed time + xml is prettyprinted
2016-04-27 17:32:21 -07:00
Ben Boeckel
e53571d2f0 fetch_strategy: download to temporary files
This supports graceful recovery if spack is killed via a signal (e.g.,
SIGINT) while downloading a file.

Fixes #287.
2016-04-27 14:49:27 -04:00
Brett Viren
b5ebd12fe2 Add to sub dirs checked for pkg-config files.
This lets me build against the pure-include package Eigen.
2016-04-27 13:45:05 -04:00
Massimiliano Culpo
b1ba869b37 test-install : fixed error in logic exposed by tests 2016-04-27 19:28:13 +02:00
Massimiliano Culpo
4846ab70d8 test-install : python 2.6 compatibility 2016-04-27 18:21:36 +02:00
Massimiliano Culpo
ec5bb88820 test-install : unit tests (hopefully) fixed for real 2016-04-27 18:06:41 +02:00
alalazo
42fab1591d test-install : fixed unit tests 2016-04-27 17:19:03 +02:00
alalazo
12dbd65f4c test-install : first draft that works 2016-04-27 13:56:32 +02:00
Benedikt Hegner
b7c064142e preserve lookup order in PATH when invoking 'spack compiler add' 2016-04-27 01:23:53 +02:00
Ben Boeckel
603467785b Compiler find docs (#831)
* docs: mention `spack compiler find`

* docs: fix some weird wording.
2016-04-26 10:00:54 -07:00
alalazo
99b52e6e71 test-install : wip to add other information 2016-04-26 16:41:33 +02:00
Ben Boeckel
ff9145f8a5 executable: quote arguments
This allows command line arguments with spaces to be shown. The quoting
madness is because a single quote cannot appear within a single quoted
argument on the command line. To do so, you have to stop the single
quote argument, double quote the single quote, then open the single
quote again:

    $ echo 'before'"'"'after'
    before'after

Fixes #174
2016-04-25 09:44:17 -04:00
Ben Boeckel
ed16bd133a compiler: add "find" subcommand (#818)
And make "add" an alias to it.

Fixes #713.
2016-04-23 13:34:51 -07:00
alalazo
67a01ef2ee tcl : extended conflict to be an array of strings 2016-04-22 10:50:24 +02:00
Todd Gamblin
fa02f94ca4 Regression test for not adding RPATHs with ld -r (#809, #821)
- ld -r is only broken with rpaths on OSX; this tests that
  specific case.

- test should still work cross-platform.
2016-04-21 23:12:33 -07:00
Denis Davydov
a0989ad672 minor cleanup of environment-modules documentation (#814)
* minor cleanup of environment-modules documentation

* environment modules: update usage instructions
2016-04-21 19:26:19 -07:00
Patrick Gartung
d5d1e89cbd remove use of unknown environment variable in lib/spack/env/cc (#821) 2016-04-21 19:15:54 -07:00
Adam Lyon
e92da6a6ba Handle c++11 and c++14 correctly 2016-04-19 16:52:08 -05:00
alalazo
5deaaa278c modules : added a few unit tests 2016-04-19 14:25:12 +02:00
alalazo
bce276d573 fix : missing autoload, failing validation 2016-04-18 17:51:53 +02:00
alalazo
50b148ca22 modules : tcl modules handle 'conflict' directive. This should completely cover the functionality in #498 2016-04-18 13:22:50 +02:00
alalazo
18a241fe21 modules : added hook for module specific extensions 2016-04-18 13:22:31 +02:00
alalazo
c69acfa5c8 naming work correctly 2016-04-18 13:22:04 +02:00
alalazo
00f44d558a modules : started working on naming schemes and conflict 2016-04-18 13:21:41 +02:00
alalazo
1b4c4be151 modules : category is a single word (as I am not sure how dotkit will react to spaces) 2016-04-13 12:44:51 +02:00
alalazo
c422ce7c1d modules : added doc strings, fixed minor style issues, filtered from dependencies blacklisted modules 2016-04-13 11:26:22 +02:00
alalazo
fcd58a95dd Merge branch 'develop' of https://github.com/LLNL/spack into features/custom_modulefile_from_config 2016-04-13 10:49:00 +02:00
alalazo
27280ea8be fix : added regression tests 2016-04-12 17:28:23 +02:00
alalazo
80678b2188 fix : proper update of config file (before it was discarding architectures that were not the current one) fixes #774 2016-04-12 16:54:51 +02:00
alalazo
41f365112c modules : added provenance comment in tcl header 2016-04-12 09:13:50 +02:00
alalazo
3959ca6270 modules : added possibility to blacklist or whitelist module files 2016-04-11 18:10:06 +02:00
alalazo
0e2b1359e3 modules : fixed bug preventing the creation of modulefiles autoloading only direct dependencies 2016-04-11 11:01:47 +02:00
Massimiliano Culpo
a5a5dbc408 tcl module file : added new-lines in autoload (per @glennpj bug report) 2016-04-10 13:21:41 +02:00
Mario Melara
3a281b2399 Commented out the add_x_from_string methods since we don't need to worry about it. Also, changed the way architecture is set. Todd wanted to have users be able to input just frontend and/or backend in the architecture spec. This will be able to parse those inputs. 2016-04-08 12:46:44 -07:00
Mario Melara
01a36ab333 Changed the logic of concretize. We don't have to worry about whether the part of the spec is a string since any string parsed is made into an object via the Arch constructor. Any dependencies will take the root arch spec as well 2016-04-08 12:44:27 -07:00
Mario Melara
5bcd1e7ccd If we already have the name and the platform, then we should probably go ahead and concretize it in the constructor. Else leave it as None and concretize it later. 2016-04-08 12:43:08 -07:00
Mario Melara
618b3f5f2d Changed default to default_target so the tests can pass 2016-04-08 11:18:30 -07:00
Mario Melara
277efc1dfb Added test that works on every type of combination the user could possibly enter for arch spec 2016-04-08 11:17:56 -07:00
Matthew LeGendre
1af88be371 Spack was no longer using $TMPDIR for its stage area at LLNL. Spack's directory search was unnecessarily putting candidates that contained your username at the end of its search list. 2016-04-08 11:06:14 -07:00
Mario Melara
0d1a1b7526 Changed _set_architecture so if user inputs only the target, then os is None. This prevents the os being referenced before assignment error 2016-04-08 10:29:37 -07:00
Mario Melara
6ff6c805af Assigned self.front_os, and back_os to self.default. Helps with testing. If we're on a darwin or linux machine, chances are there is no back end or front end operating system, but rather than have those as None, I just assign them the default which is detected via python platform. 2016-04-08 10:28:30 -07:00
Mario Melara
7b777568ed Added new concretization of architecture tests, test each combination of user input to make sure the correct os and target are chosen 2016-04-07 14:38:43 -07:00
Mario Melara
0ad317213c Changed architecture parser so that if user just enters in frontend or backend, then both the os and target will take those names. In the concretize method the frontend target/os and backend target/os will be picked to match each other 2016-04-07 14:38:04 -07:00
Mario Melara
07df403203 Cleaned up the concretize_architecture method by removing commented out code 2016-04-07 14:37:00 -07:00
Mario Melara
143a4d7f76 Changed default to default_target, also added frontend and backend to operating system 2016-04-07 14:36:26 -07:00
alalazo
1714f410f0 Merge branch 'develop' of https://github.com/LLNL/spack into features/custom_modulefile_from_config 2016-04-07 10:48:16 +02:00
alalazo
7dc1524c08 modules : added stub for dotkit (to be verified) 2016-04-07 10:48:05 +02:00
Glenn Johnson
b19d6ab9c5 Check for non-numeric bits in the stem. 2016-04-06 19:08:01 -05:00
Glenn Johnson
fbabfc593d Make R extensable and add a couple of packages for verification.
Added R as a build system so that the create template will have the
correct configure line.
Added a regex for version parsing as the R URLs are a little odd.
2016-04-06 16:44:22 -05:00
Mario Melara
99117cbc90 pulled from current repo the build_environment.py. Added module loading methods from our cray port 2016-04-06 14:07:22 -07:00
Mario Melara
918ad28a93 Changed all target values to architecture. Also added a sort_key method so that older architecture specs can be sorted with the newer ones 2016-04-06 13:58:29 -07:00
Massimiliano Culpo
4001663982 leftover from cherry-pick 2016-04-06 22:19:07 +02:00
alalazo
73b6214a13 module files : proper cleanup on uninstall fixes #216
Conflicts:
	lib/spack/spack/test/database.py
2016-04-06 22:10:04 +02:00
Mario Melara
749508af01 Found loops calling all_compilers that were always reading in the config file which lead to a slowdown, the fix is to cache the config file so we don't waste time re-reading the config file in again. 2016-04-06 12:05:29 -07:00
Mario Melara
3bf75fab3f Cleaned up architecture. Changed operating_system from dictionary method 2016-04-06 12:03:26 -07:00
alalazo
21b7734d92 modules : removed debug leftover 2016-04-06 17:08:31 +02:00
alalazo
7904f75782 modules : all the other strings are lower case 2016-04-06 17:05:47 +02:00
alalazo
e4cfe74887 modules : customization based on specs 2016-04-06 16:42:56 +02:00
alalazo
e993c17f89 modules : added environment modifications from configuration file 2016-04-06 14:02:27 +02:00
alalazo
d636b4fdde modules : more sensible name to blacklist environment variables
modules : added skeleton to permit modifications based on specs
2016-04-06 13:42:47 +02:00
Todd Gamblin
e104592e1f Merge pull request #738 from eschnett/eschnett/cleanup-cc
Clean up cc script
2016-04-05 10:50:45 -07:00
alalazo
670cb423f9 modules : iterating on all the dependencies doesn't reuire try/except KeyError 2016-04-05 18:44:40 +02:00
alalazo
5da37c573f modules : don't pass stream around 2016-04-05 18:41:38 +02:00
alalazo
2968b60ee0 module file : added autoload and prereq 2016-04-05 18:03:09 +02:00
alalazo
ca7d701007 module file : all the dependencies can affect the run_time environment, not only extendees 2016-04-05 16:10:04 +02:00
alalazo
c352249e30 EnvModules : narrowing the type of exceptions being "handled" 2016-04-05 14:55:05 +02:00
Erik Schnetter
4ce03b75bc Correct typo 2016-04-05 07:42:23 -04:00
alalazo
d546d828d3 module file : added filtering based on environment variable name 2016-04-05 13:20:28 +02:00
Mario Melara
9bfc83ac5c Changed so that py_platform.dist() grabs the major version number. 2016-04-04 15:36:10 -07:00
Todd Gamblin
0296f96c7b Resolves #739. Don't call setup_dependent_* for package itself. 2016-04-04 13:56:15 -07:00
Mario Melara
6d73c86209 Gives error on cori that [PrgEnv-xx, gcc/x.x.x] is not part of the schema. Changed it to oneOf : type : array to get rid of the error. 2016-04-04 13:45:15 -07:00
Mario Melara
9c071ea40d Changed modulecmd parameters. return_oe is not one of the parameters in the mainline spack repo. Changed the args to the appropriate ones in the new spack 2016-04-04 13:44:24 -07:00
Erik Schnetter
0ff059e388 Clean up comments and output messages 2016-04-04 16:00:09 -04:00
Erik Schnetter
83d6e04d39 Convert = to == in tests; untabify 2016-04-04 15:38:21 -04:00
Erik Schnetter
7bc28cc334 Clean up cc script 2016-04-04 14:33:48 -04:00
Todd Gamblin
5084130e71 Merge pull request #715 from citibeth/efischer/160401-EnvironmentModules
Added Environment Modules
2016-04-04 10:41:54 -07:00
Todd Gamblin
c7b11360e9 Merge pull request #732 from citibeth/efischer/160403-ConditionalExtendsBugfix
[Needs Review] Fix conditional extends (BUG #683)
2016-04-04 10:21:26 -07:00
Todd Gamblin
a6c1cfe037 Merge pull request #670 from epfl-scitas/uninstall_improved
enhancement : recursive uninstallation of dependent packages
2016-04-04 10:04:14 -07:00
Todd Gamblin
bb968fc5a2 Fix #620, Resolve #664. Fix issues with build environment.
- Also added better regression tests for build environment.
2016-04-04 02:52:38 -07:00
alalazo
f40b0f52e0 uninstall : updated documentation and error messages 2016-04-04 10:59:01 +02:00
alalazo
401dcb3635 uninstall : renamed --recursive to --dependents 2016-04-04 10:28:47 +02:00
Elizabeth F
2f4d8a634d Fix conditional extends (BUG #683) 2016-04-03 21:41:46 -04:00
citibeth
281835887a Added documentation for recursive modules 2016-04-01 22:54:49 -04:00
Elizabeth F
c6d8208150 Added recursive module loading 2016-04-01 22:54:42 -04:00
citibeth
459aab628d Added documentation for installing Environment Modules with Spack. 2016-04-01 16:00:58 -04:00
Peter Scheibel
9eb314fcaa merge from develop 2016-03-31 12:56:34 -07:00
Todd Gamblin
220c72d67f Merge branch 'features/blas-lapack-hardening' into develop 2016-03-31 11:37:09 -07:00
Todd Gamblin
a670408617 Quick fix for pkg diff. 2016-03-31 11:34:27 -07:00
Tom Scogland
5d2151ed64 reworked to deal with stage.path as property
This version actually pulls the path through the package to deliver it
to each stage on creation when passed through the command.  This is
necessary due to the new StageComposite class that makes setting the
path directly on the stage impractical, it also takes the logic out of
package for the most part, which seems like an improvement.
2016-03-31 10:20:55 -07:00
Tom Scogland
63f824b218 add a path argument to the stage command
Allow users to use spack to stage a, potentially complex, package into a
given path.  This is nice for packages with multiple resources that must
be placed, for example LLVM with all sub-projects.
2016-03-31 09:56:26 -07:00
Massimiliano Culpo
4f6320a7eb uninstall : added unit tests 2016-03-31 13:22:48 +02:00
Massimiliano Culpo
dd1c667d8d uninstall : changed error message 2016-03-30 16:10:20 +02:00
Peter Scheibel
a0c42a3fd1 removed stale TODO 2016-03-29 18:58:18 -07:00
Peter Scheibel
c40559433b added docstring 2016-03-29 18:54:24 -07:00
Peter Scheibel
03d907e1e5 in the case of multiple digests, avoid creating different mirror filenames from run to run (as long as the available digests do not change) 2016-03-29 18:48:25 -07:00
Peter Scheibel
ce4de6227e (1) access package via spec property (2) use any digest to form archive filename 2016-03-29 18:45:58 -07:00
Peter Scheibel
bee224c567 mirror archive filename now includes the digest type as well as the digest 2016-03-29 18:25:22 -07:00
Gregory Becker
7e9baf9e25 Made architecture test robust for more architectures 2016-03-29 11:23:36 -07:00
Massimiliano Culpo
653d7c5257 uninstall : minor fixes 2016-03-29 17:28:46 +02:00
Todd Gamblin
a05bea7de5 Merge pull request #681 from LLNL/bugfix/complete-restage
Fix bug in restage
2016-03-29 05:11:21 -07:00
Todd Gamblin
dfc5cf288c Fix bug in restage
- Restage previously only removed the source directory from the stage.
- Now removes any other directories in stage as well.
2016-03-29 04:35:41 -07:00
Todd Gamblin
e1fdd4341b Merge branch 'eschnett-correct-cc' into develop 2016-03-29 04:16:18 -07:00
Todd Gamblin
f80e839ff4 Handle Darwin's ld -r option properly
- ld -r doesn't work with RPATH on OS X.

- for GNU ld, the -r option only means 'relocatable',
  and doesn't affect RPATH.

- This adds special handling to omit RPATHs for ld -r on OS X
2016-03-29 03:14:39 -07:00
Todd Gamblin
a14527ec06 Add command to compiler input log. 2016-03-28 15:34:25 -07:00
Massimiliano Culpo
1141f11955 uninstall : added user confirmation 2016-03-29 00:28:02 +02:00
Todd Gamblin
d8579a5b80 Simplify cc: Remove old logic and add better tests.
- removed a lot of old logic that was only still needed for tests.

- Added better unit tests for dependency RPATH, -L, and -I args

- tests now check whether the compiler omits -I args in link mode.
2016-03-28 04:11:54 -07:00
Todd Gamblin
f3dd889d44 Fix bug with lib64 RPATH setting in cc. 2016-03-28 03:51:05 -07:00
Todd Gamblin
eb397b5693 Merge pull request #669 from glennpj/module_format
Wrap the long description of an environment module so it is more readable
2016-03-27 17:30:07 -07:00
Todd Gamblin
8b45d6f84f Merge pull request #658 from davydden/metis_parmetis_darwin
metis/parmetis/oce/boost: correct install_name on Darwin via a global tool
2016-03-27 16:10:05 -07:00
Denis Davydov
7eca1284c8 metis/parmetis/boost/oce/scalapack: correct install_name on Darwin via a global function. 2016-03-28 00:22:25 +02:00
Massimiliano Culpo
e0f463c4f9 uninstall : added recursive option 2016-03-27 23:56:41 +02:00
Glenn Johnson
5695e4c03d Wrap the long description of an environment module so it is more readable. 2016-03-27 15:42:20 -05:00
Todd Gamblin
ec107b290f Merge branch 'correct-cc' of git://github.com/eschnett/spack into eschnett-correct-cc 2016-03-27 13:38:06 -07:00
Todd Gamblin
e049fc2840 Run post-install hoooks before build stage is removed.
- Build will properly fail when post-install hoooks fail.

- Post-install hooks have a proper working directory set now.
2016-03-27 11:47:20 -07:00
Todd Gamblin
cde3320582 Add a method to find the containing directory of a library. 2016-03-27 11:32:42 -07:00
Todd Gamblin
dce590fb21 Add a dso_suffix variable to build_environment
- Consolidate this in one place so that we don't have to do it in every build.

- Will update further once better OS support is committed.  Shoudl
  really be an attribute of the forthcoming `Platform` class.
2016-03-27 11:32:42 -07:00
Todd Gamblin
b0b882cbb3 Speed up directives by skipping debug info in stack traversal.
- `caller_locals()` doesn't need debug info, only frame locals.
- `get_calling_module()` doesn't either.

- Changed calls to `inspect.stack()` -> `inspect.stack(0)`
2016-03-27 11:30:09 -07:00
citibeth
4a6b5d5247 Update to documentation formatting. 2016-03-27 00:14:10 -04:00
citibeth
a1c965d70d Fixed imports to make `git spconfig` work after recent merge from develop. 2016-03-26 20:40:22 -04:00
Peter Scheibel
06c98320a8 handle case where file contents change but resource name does not (e.g. if resource maintainer uses same name for each new version of a package) 2016-03-25 18:38:26 -07:00
Gregory Becker
57ced37229 Fixed a bug in the testing 2016-03-25 17:03:49 -07:00
Gregory Becker
618a9b2d7b Fixed bug in platform names that I introduced yesterday 2016-03-25 15:41:22 -07:00
Elizabeth F
9889b1a5fe Added documentation for StagedPackage, etc. 2016-03-25 17:15:15 -04:00
Elizabeth F
8f675b0ee8 Made StagedPackage user-visible. 2016-03-25 17:15:06 -04:00
citibeth
358b387283 Merge remote-tracking branch 'upstream/develop' into efischer/160311-StagedPackage 2016-03-25 17:14:35 -04:00
citibeth
8019748396 Merge remote-tracking branch 'upstream/develop' into efischer/160311-StagedPackage
# Conflicts:
#	lib/spack/spack/package.py
2016-03-25 15:36:54 -04:00
Peter Scheibel
bd5abb2922 spacing issue 2016-03-24 19:48:15 -07:00
Peter Scheibel
6423eab917 implemented cache_local method for DIY stage (as a noop) 2016-03-24 19:45:10 -07:00
Peter Scheibel
142d1f5cbc stage creates cache fetcher with cache object (so it can be mocked for tests) 2016-03-24 19:28:21 -07:00
Gregory Becker
315623d361 Fixed things from merge. 2016-03-24 16:55:46 -07:00
Adam J. Stewart
9985816642 Fix spack info indentation 2016-03-24 14:49:41 -05:00
Peter Scheibel
fe71ba992d remove unused import 2016-03-24 12:16:50 -07:00
Peter Scheibel
13bf7d4ff1 (1) move definition of MockCache to test command (no definitions or extra work is required in MockPackagesTest) (2) removing outdated logic (which originated in this branch) and minor cleanup 2016-03-24 12:02:39 -07:00
alalazo
758a9c9096 python extensions : create PYTHONPATH in module files 2016-03-24 10:57:46 +01:00
alalazo
f095e619b9 module files configuration : enable/disable logic is now positive 2016-03-24 09:31:28 +01:00
Peter Scheibel
dbfa6c925e replace references to cache directory with references to new cache object. tests may assign a mock cache but by default it is None (this will avoid any implicit caching behavior confusing unit tests) 2016-03-23 20:18:58 -07:00
Peter Scheibel
ed0f6f75a7 clear test cache before and after each MockPackagesTest (I think Ive got a better way to avoid test fragility but Ill add this for now) 2016-03-23 19:49:28 -07:00
Gregory Becker
688eca23ff cleanup 2016-03-23 09:54:57 -07:00
alalazo
d93f2b335d modules : fixed annoying indent 2016-03-23 16:04:36 +01:00
alalazo
0fbdb3f65d modules : added configuration file with disable keyword 2016-03-23 15:54:26 +01:00
Todd Gamblin
38350ae33d resurrect preferred=True option for packages lost in merge of externals support.
- Pyton 2.7.11 is preferred again.
2016-03-23 01:32:54 -07:00
Todd Gamblin
c4134ee71e Fix #608: broken numpy build.
- Failed to catch all instances of modify_module when it was renamed
  to setup_dependent_package.

- Refactored remaining modify_module calls.

- Also modified Python's setup_dependent_package slightly: only
  creates empty site-packages directory for Python extensions now, not
  for all dependents.
2016-03-23 00:36:32 -07:00
Peter Scheibel
cb9fba98d8 (1) relocate cache for tests (2) initial approach for restoring unit tests (just for git tests although the same concept applies to the other unit tests which are failing - namely those for svn and hg) 2016-03-22 19:37:47 -07:00
Gregory Becker
7c729d4c3c Merged newarch into merge 2016-03-22 15:22:51 -07:00
Peter Scheibel
75460d8586 URLFetchStrategy.archive does a copy vs. a move now 2016-03-22 10:43:43 -07:00
Todd Gamblin
a26992ef55 Change from PR #552: rename setup_dependent_python_module -> setup_dependent_package
- Fixed in package.py
- Fixed wrong prototypes in packages that use it.
- Fixed build_environment to set module variables properly
  - added hacky fix to ensure spec/package consistency in build processes.
  - Need to think about defensive spec copy done by `Repo.get`.  May be
    time to think about an immutable spec implementation.
2016-03-22 01:56:16 -07:00
Peter Scheibel
41a97c8f80 temporarily wrap archiving with conditional to avoid moving (this still causes a failure on the initial download) 2016-03-21 20:55:23 -07:00
Peter Scheibel
b255f02762 undoing whitespace-only diff 2016-03-21 20:50:26 -07:00
Peter Scheibel
ee5e507ff6 pursuing a strategy using fetch.archive and treating var/spack/cache as a mirror. this should support both URLFetchStrategy as well as VCSFetchStrategy (the previous strategy supported only the former). this won't work until URLFetchStrategy.archive is updated 2016-03-21 20:48:12 -07:00
Todd Gamblin
b1516f64eb Rename some environment methods to be less repetitive, add set_path. 2016-03-21 16:01:40 -07:00
Todd Gamblin
439d47b4e4 Refactor environment setup.
- Gave setup_environment and setup_dependent_environment more similar
  signatures. They now allows editing the Spack env and the runtime
  env for *this* package and dependents, respectively.

- modify_module renamed to setup_dependent_python_module for symmetry
  with setup_dependent_environment and to avoid confusion with
  environment modules.

- removed need for patching Package objects at runtime.

- adjust packages to reflect these changes.
2016-03-21 16:01:35 -07:00
Todd Gamblin
e88df95b42 Remove unused code from modules.py 2016-03-21 16:01:26 -07:00
Todd Gamblin
48b35bb495 Fix print function in uninstall.py 2016-03-21 16:00:50 -07:00
Todd Gamblin
861a235ecb Merge pull request #552 from epfl-scitas/features/env_objects_flying_around
enhancement proposal : customization of module files
2016-03-21 15:56:20 -07:00
Matthew LeGendre
5d06daeb5e Add test for issue 573, child with compiler not respected in concretization 2016-03-21 14:28:34 -07:00
Matthew LeGendre
b79fce76cb Fix issue 573 where Spack was ignoring user's compiler preference in concretization 2016-03-21 14:28:07 -07:00
alalazo
fbeffee91e Merge branch 'develop' of https://github.com/LLNL/spack into features/env_objects_flying_around
Conflicts:
	lib/spack/spack/package.py
	var/spack/repos/builtin/packages/netlib-scalapack/package.py
2016-03-21 09:46:49 +01:00
alalazo
aef6d50b08 uninstall : fixed typo (print statement vs. print function) 2016-03-21 09:23:25 +01:00
Peter Scheibel
d632266a40 move cache to var/spack/cache 2016-03-18 17:15:45 -07:00
Peter Scheibel
fd067dd8b8 since only archives with checksums can be retrieved from the cache, make sure that an archive without a checksum isnt placed there (this wouldn't cause an error but does waste space and might be confusing) 2016-03-18 17:00:13 -07:00
Peter Scheibel
ac7323118e rename for clarity 2016-03-18 16:34:45 -07:00
Peter Scheibel
16fa40b893 (1) add a var/cache directory under spack. (2) downloads from URLFetchStrategy check the cache and skip the download if the source is available there. 2016-03-18 15:50:24 -07:00
Todd Gamblin
e9126baaab Add docs for InstallError. 2016-03-18 13:42:45 -07:00
Todd Gamblin
23f3f1adfe Make InstallError and ExternalPackageError visiible in packages. 2016-03-18 13:32:37 -07:00
Todd Gamblin
741bea032c Merge pull request #574 from LLNL/features/flattener
Created flatten_dependencies function
2016-03-18 12:13:48 -07:00
Gregory Becker
151b04637e changed function name and removed hardcoded libs dir 2016-03-18 11:55:31 -07:00
Gregory Becker
af7e3cadde cleanup 2016-03-18 11:34:07 -07:00
Gregory Becker
76672a4e34 Refactoring flat_install 2016-03-18 11:28:44 -07:00
Todd Gamblin
4e9ba49272 Merge pull request #576 from adamjstewart/features/tar
Add support for .tar files
2016-03-18 11:13:17 -07:00
Adam J. Stewart
6acb830263 Add support for .tar files 2016-03-18 13:03:55 -05:00
Gregory Becker
80495e50f9 added error class for error that should never come up 2016-03-18 09:46:18 -07:00
Gregory Becker
1fa38689d8 Created flatten_dependencies function that dummy packages can use to create sane install environments. 2016-03-18 09:35:56 -07:00
alalazo
491babd5cd env modifications : added a validation rule 2016-03-18 17:09:20 +01:00
alalazo
1e468c5541 modules : added formats mapping 2016-03-18 16:02:44 +01:00
alalazo
ccd90df62f modules : turned category into a property (logic can be extended later) 2016-03-18 15:41:14 +01:00
alalazo
67ca2c704b modules : fixed bug in modify_module arguments 2016-03-18 15:18:26 +01:00
alalazo
ec8cc2b528 PYTHONPATH : python patches methods for its extensions 2016-03-18 14:40:53 +01:00
Ben Morgan
076cc764a7 Add additional suffixes for GCC compiler 2016-03-18 11:26:22 +00:00
alalazo
f9438c75d0 Merge branch 'develop' of https://github.com/LLNL/spack into features/env_objects_flying_around 2016-03-18 10:26:34 +01:00
Erik Schnetter
f3ea0420f8 Import recent changes 2016-03-17 21:53:13 -04:00
Erik Schnetter
84b7cd593f Merge branch 'develop' into correct-cc
# Conflicts:
#	lib/spack/env/cc
2016-03-17 21:52:24 -04:00
Todd Gamblin
90268876f7 Change sanity_check_[file|dir] to sanity_check_is_[file|dir], per #554
- Add documentation as well.
2016-03-17 18:49:58 -07:00
alalazo
ac394718ec python : implemented possible solution 2016-03-17 18:22:07 +01:00
alalazo
e673127263 package : added documentation 2016-03-17 18:11:23 +01:00
alalazo
38c3c84969 environment : added caller information 2016-03-17 17:37:33 +01:00
alalazo
3da4d6664b environment : simplified hierarchy according to comments in review 2016-03-17 15:38:08 +01:00
alalazo
f0f0663d1b package : split environment_modifications into setup_environment and setup_dependent_environment.
package : renamed `module_modifications` to `modify_module` for consistency
2016-03-17 15:11:39 +01:00
alalazo
9cdd79e33f modules : restored previous logic for path inspection 2016-03-17 14:14:18 +01:00
Adam J. Stewart
bb04d5cc63 Fix grammar in mirrors documentation 2016-03-16 14:27:22 -05:00
alalazo
ac762e95a6 modules : removed dead code 2016-03-16 16:23:02 +01:00
alalazo
597727f8be tclmodules : added hooks to process EnvironmentModifications objects 2016-03-16 15:19:13 +01:00
alalazo
b45ec3f04e environment : simplified modification of the environment 2016-03-16 10:55:28 +01:00
alalazo
b2c98feea4 Merge branch 'develop' of https://github.com/LLNL/spack into features/env_objects_flying_around 2016-03-16 09:02:35 +01:00
Todd Gamblin
7eca383b10 Add sanity check paths to packages; fix #505 2016-03-15 17:16:04 -07:00
Matthew LeGendre
108ea1522a Merge pull request #549 from LLNL/bugfix/gh538-less-greedy-concretize
Bugfix/gh538 less greedy concretize
2016-03-15 16:18:54 -07:00
Todd Gamblin
15bbd088e6 Fix #551: version bug in spack create
- `spack create` now sets a proper version in generated file, based on
  the filename, even if it can't find any tarballs for the package.
2016-03-15 14:38:06 -07:00
alalazo
c8cc6f4fc1 test : fix for python 2.6 2016-03-15 16:59:29 +01:00
alalazo
ccced9f290 package : optimized imports 2016-03-15 15:12:39 +01:00
alalazo
cc3d9f4eb7 environment : added test, modified docs 2016-03-15 15:09:35 +01:00
alalazo
572cb93bf8 package : renamed setup_dependent_environment to module_modifications 2016-03-15 14:05:30 +01:00
alalazo
c85888eb57 package : added environment_modifications 2016-03-15 13:36:41 +01:00
alalazo
bcea1df01c environment : refactoreded set_build_environment_variables 2016-03-15 10:49:33 +01:00
alalazo
f20247ae55 environment : refactoreded set_compiler_environment_variables 2016-03-15 10:08:54 +01:00
alalazo
f9923452b3 environment : added machinery to collect modifications to the environment and apply them later 2016-03-14 14:35:48 +01:00
Todd Gamblin
f2761270f3 Make concretization less greedy: add backtracking for virtuals.
- `_expand_virtual_packages` now gets a candidate list and will try
  all the candidates.

  - Good news: If the first virtual in the list conflicts with something else in
               the spec, we'll keep trying until we find a good one.

  - Bad news: Only looks as far as the next normalize(); can't see
              conflicts further ahead than that if they're inevitable
              some other virtual expansion.

- Refactor `concretize.py` to keep all the nasty spec graph stitching in
  `spec.py`. This is more similar to before externals support.

  - `concretize.py` now just returns a list of candidates sorted by
    ABI compatibility to `_expand_virtual_packages`, and `spec.py`
    handles testing the candidates.

- Refactor the way external paths are handled in `config.py` and `concretize.py`:

  - previously, `spec_externals` returned spec/path pairs.  Now it
    returns specs with `external` set. Makes code in `concretize.py`
    more natural.
2016-03-14 05:04:01 -07:00
Todd Gamblin
f45b8b1083 Add some tests for packages with multiple virtual dependencies.
- Added mock `hypre` package, depends on `lapack` and `blas`.

- test cases where some packages provide both `lapack` and `blas`, but
  others do not.
2016-03-14 05:02:50 -07:00
Todd Gamblin
05c761dee9 Add package_class method to spec.
- Shouldn't call .package from within things like normalize() and
  concretize() beacuse spec may be inconsistent.

- Add `.package_class` property so that we can get at package metadata
  without constructing a Package with a Spec.

- should be faster than `.package` was, anyway. Use where possible.
2016-03-14 04:59:29 -07:00
Todd Gamblin
003fd4d834 Optimize __eq__ and __ne__ in key_ordering
- use `is` when possible before calling `_cmp_key()`
2016-03-14 04:55:30 -07:00
Elizabeth F
5c865b9b70 Fixed typo in typo fix. 2016-03-13 19:44:04 -04:00
Elizabeth F
6f26c45143 Fixed typo bug. Made error comment more explicit 2016-03-13 19:41:09 -04:00
Elizabeth F
3383486adc Fixed typo bug. Made error comment more explicit 2016-03-13 19:39:45 -04:00
Elizabeth F
0426796d9f Fixed typo 2016-03-13 18:14:38 -04:00
Elizabeth F
030e8dd1ac Removed Python 2.7-style string formatting 2016-03-13 18:04:23 -04:00
Elizabeth F
4c9a52044a Fixed CMakePackage import 2016-03-13 15:18:24 -04:00
citibeth
857f791286 Add missing import. 2016-03-13 00:40:50 -05:00
citibeth
9885f1a19e Fix for Python 2.6 2016-03-13 00:34:46 -05:00
Elizabeth F
c1a8574d8f Fixed for Python 2.6 2016-03-13 00:29:40 -05:00
citibeth
4236157823 (1) Added "spack spconfig" command.
(2) Neatened up the spconfig.py auto-generated file.
2016-03-13 00:13:00 -05:00
Elizabeth F
90bb855ffa A new subclass StagedPackage(Package) is introduced. This PR should
not change the behavior for existing packages that subclass from
spack.Package.

If a package subclasses spack.StagedPackage instead of spack.Package,
the install() phase (run inside a forked process) is now separated
into sub-stages:

    a) spconfig: Generate a script spconfig.py that will configure the
       package (eg by running CMake or ./configure) This is for use if
       the user wishes to build externally from Spack.  Therefore, the
       Spack compiler wrappers are NOT used here.  Currently, that
       means that RPATH support is up to the user.

    b) configure: Configure the project (eg: runs configure, CMake,
       etc).  This will configure it for use within Spack, using the
       Spack wrapper.

    c) build: eg: "make"

    d) install: eg: "install"

If one chooses to use StagedPackage instead of Package, then one must
implement each of the install sub-stages as a separate method.
StagedPackage.install() then calls each of the sub-stages as
appropriate.

StagedPackage can be configured to only run certain sub-stages.  This
is done by setting the optional kwarg install_phases when calling
do_install().  Setting install_phases() ONLY has an effect on
StagedPackage, not on any existing packages.  By default,
install_phases is set to make StagedPackage run the same stages that
are normally run for any package: configure, build, install (and NOT
spconfig).

The ability for Spack to run stages selectively for StagedPackage
instances will enable new functionality.  For example, explicit
CMake/Autotools helpers that allow Spack to help configure a user's
project without fetching, building or installing it.

-------------

One implementation of StagedPackage is provided, CMakePackage.  This
has the following advantage for CMake-based projects over using the
standard Package class:

  a) By separating out the phases, it enables future new functionality
     for packages that use it.

  b) It provides an implementation of intall_spconfig(), which will
     help users configure their CMake-based projects.

CMakePackage expects users to implement configure_args() and
configure_env().  These methods provide the package-specific arguments
and environment needed to properly configure the package.  They are
placed in separated functions because they are used in both the
spconfig and configure stages.

TODO:

1. Generate spconfig.py scripts that are more readable.  This allows
   the users to understand how their project is configured.

2. Provide a practical way for the user to ACCESS the spconfig stage
   without building the project through Spack.

3. The CMAKE_TRANSITIVE_INCLUDE_PATH stuff needs to be reworked; it
   should be considered provisional for now.

4. User of Autotools might wish to make a similar ConfigurePackage
   subclass of StagedPackage.

---------------

One package using CMakePackage is introduced.  See ibmisc/package.py.
2016-03-11 23:30:38 -05:00
becker33
3060f27909 Merge pull request #536 from adamjstewart/fixes/doc_typos
Documentation typo fixes
2016-03-11 10:53:57 -08:00
Adam J. Stewart
bae03404f4 Documentation typo fixes 2016-03-11 12:51:45 -06:00
Matthew LeGendre
1c7f754e5b Invert and rename the nobuild option in package.yaml configs to buildable. 2016-03-11 10:04:08 -08:00
alalazo
1d70b590fc build_environment : fixed minor spelling errors and a few style issues 2016-03-11 13:20:57 +01:00
Todd Gamblin
f40c78a064 Merge pull request #532 from mplegendre/bugfix/ordering_satisfies
Fix issue with preferred satisfies not being respected
2016-03-10 21:50:40 -08:00
Matthew LeGendre
ac88cab68f Fix issue with preferred satisfies not being respected 2016-03-10 17:00:27 -08:00
Todd Gamblin
30df1c838d Merge pull request #531 from mplegendre/bugfix/github-530
Fix type error that was causing mis-ordering of compiler versions
2016-03-10 16:31:52 -08:00
Matthew LeGendre
4693af0736 Fix type error that was causing mis-ordering of compiler versions 2016-03-10 16:23:35 -08:00
Todd Gamblin
2bbf42b49d Indentation change. 2016-03-10 16:18:11 -08:00
Todd Gamblin
670024cf77 Merge branch 'mplegendre-features/external-packages' into develop 2016-03-10 10:07:08 -08:00
alalazo
30adc4c9b8 cc : handle spaces in folders? 2016-03-10 14:59:31 +01:00
alalazo
78ef0618bc cc : converted indents to spaces 2016-03-10 14:35:09 +01:00
Massimiliano Culpo
7ae6c62ddb Fixed shell quoting error 2016-03-10 14:08:43 +01:00
Massimiliano Culpo
835b47c196 Merge branch 'develop' of https://github.com/LLNL/spack into fixes/intel_openmpi 2016-03-10 13:18:03 +01:00
Todd Gamblin
c4fddcc6e9 Add 'provders' back into packages.yaml schema 2016-03-10 03:15:49 -08:00
Todd Gamblin
b637f75164 Merge branch 'mplegendre-features/external-packages' into develop 2016-03-10 02:04:44 -08:00
Todd Gamblin
82b7067fdf Refactored external packages slightly.
- Move `Spec.__cmp__` out of spec, into concretize as `cmp_specs`.
  - `Spec.__cmp__` was never called (except explicitly) due to rich
    comparison operators from `key_ordering`

- Refactor `_find_other_spec` to free function `find_spec`. Add a test
  for it to make sure it works.
2016-03-10 01:29:55 -08:00
Todd Gamblin
1fe196f95c whitespace and formatting 2016-03-10 01:29:55 -08:00
Todd Gamblin
048c406f49 Remove vestigial variants in directory name. 2016-03-10 01:29:54 -08:00
Todd Gamblin
b0572a5462 Minor tweaks to abi code. 2016-03-10 01:29:54 -08:00
Todd Gamblin
0244d794cd remove unnecessary import 2016-03-10 01:29:54 -08:00
Todd Gamblin
b0377da771 update mirror config documentation.
- mirrors.yaml uses Spack's OrderedDict rather than lists.
2016-03-10 01:29:53 -08:00
Todd Gamblin
52cdcdde76 Fix #525: sbang handles symlinks & directories properly. 2016-03-09 17:15:10 -08:00
Todd Gamblin
f56939c16c Add unit test for sbang patching. 2016-03-09 17:13:41 -08:00
Matthew LeGendre
dd0ae255ad Merge branch 'features/external-packages' of github.com:mplegendre/spack into features/external-packages
Conflicts:
	lib/spack/docs/site_configuration.rst
2016-03-09 16:18:37 -08:00
Matthew LeGendre
1f06dd40f7 Update documentation for new packages.yaml config format. 2016-03-09 16:11:53 -08:00
Matthew LeGendre
a384ad5b12 Fix problem with pure integer arguments in preferred versions list (e.g, 2 instead of 2.7.3) 2016-03-09 16:11:33 -08:00
Todd Gamblin
ca10229565 Fixes #524
- Had attempted to add more functionality by assigning different
  meanign None, True, and False values "keep_stage" (where False was
  "always delete").

- Turns out that's not really worth the complexity.  Having the third
  "always delete" sense is hardly ever useful but makes the code hard
  to understand.
2016-03-09 14:56:21 -08:00
Matthew LeGendre
87db69478d Merge branch 'develop' into features/external-packages
Conflicts:
	lib/spack/spack/package.py
2016-03-09 11:09:37 -08:00
Luigi Calori
bf4d51ea0b fix error exit when doing spack patch without parameters, same as spack stage 2016-03-09 09:27:53 -08:00
Todd Gamblin
9c61843737 Fix bugs in DIYStage: fetch & context handling.
- DIYStage needs to be a context handler
- DIYStage.fetch needs to take 2 args.
2016-03-08 13:58:41 -08:00
Todd Gamblin
df84677d16 Make diy generate verbose build output by default.
- added -q option to shut it up
2016-03-08 13:57:13 -08:00
Todd Gamblin
a1be45d0e7 Fix bug with setting module-scope vars in derived package classes. 2016-03-08 13:56:44 -08:00
Todd Gamblin
a4861a3072 Minor changes/bugfixes on md5/checksum PR 2016-03-08 10:39:46 -08:00
Todd Gamblin
747855b960 Merge branch 'fixes/md5' of git://github.com/epfl-scitas/spack into epfl-scitas-fixes/md5 2016-03-08 09:12:57 -08:00
Todd Gamblin
31cebb969a Merge pull request #504 from LLNL/bugfix/github-502
Bugfix/GitHub 502: Error: No spec file found at path
2016-03-08 03:43:52 -08:00
Todd Gamblin
214deeda54 Merge branch 'features/noexpand' into develop
Conflicts:
	lib/spack/llnl/util/filesystem.py
2016-03-08 03:29:57 -08:00
Todd Gamblin
5aadb6df19 Fixes #502. Create install prefix before build, clean up do_install.
- Fix bug introduced during merge of stage refactor.
  - install prefix was not created before build_environment.fork()
    - build_environment.fork() calls setup_dependent_environment
    - python's setup_dependent_environment can inadvertently create
      the install prefix before directory_layout expects it.

- Clean up Package.do_install:
  - simplify control flow: parent process now entirely responsible for
    creating/destroying the install prefix. cleanup is now in one place.
  - Hoisting cleanup out of the child improves nesting of try/catch in
    `real_work`.
  - `real_work` renamed to `build_process`
2016-03-08 02:50:26 -08:00
alalazo
77ec27c730 fixed bug : similar issues in checksum and md5 as were solved in ad103dcafa 2016-03-08 11:09:41 +01:00
Todd Gamblin
96e1b2d25c Merge pull request #486 from RemoteConnectionManager/paraview_fix
Paraview new version
2016-03-07 02:48:12 -08:00
Todd Gamblin
4d1703fc06 Merge branch 'features/repos-doc-fix' into develop 2016-03-07 02:40:59 -08:00
Todd Gamblin
12ddf241a5 Fix code block in docs. 2016-03-07 02:39:14 -08:00
Todd Gamblin
547933e7e4 Fix bug in -Xlinker argument handling
- also update test to match.
2016-03-07 01:48:26 -08:00
Todd Gamblin
f2bcc6cc35 Merge branch 'eschnett/rpath-comma' of git://github.com/eschnett/spack into eschnett-eschnett/rpath-comma 2016-03-06 23:50:14 -08:00
Erik Schnetter
265ef337a8 Don't quote -rpath literal 2016-03-06 23:27:30 -05:00
Todd Gamblin
108277fb5d Fix docs that have gone stale since repos were added. 2016-03-06 19:32:00 -08:00
Todd Gamblin
ada675dea2 Merge branch 'features/sbang' into develop
Conflicts:
	lib/spack/llnl/util/filesystem.py
2016-03-06 19:30:19 -08:00
Todd Gamblin
1ee90a6fe7 Make spack_cc, spack_cxx, spack_f77, spack_fc available in build env.
- Add for convenience for packages that need to refer to these.
- Added an example in the documentation.
2016-03-06 16:57:30 -08:00
Todd Gamblin
240ada5775 Add expand=False option for URL downloads.
- Allows skipping the expand step for downloads.
  - Fixed stage so that it knows expansion didn't fail when there is a
    no-expand URLFetchStrategy.

- Updated docs to reflect new option, and provided an example.
2016-03-06 16:51:09 -08:00
Todd Gamblin
e515042a36 Fix stage creation bug, simplify do_install code. 2016-03-06 01:41:48 -08:00
Todd Gamblin
ad103dcafa Small refactor: add keep parameter to stage, get rid of stage.destroy call.
- package.py uses context manager more effectively.

- Stage.__init__ has easier to understand method signature now.
  - keep can be used to override the default behavior either to keep
    the stage ALL the time or to delete the stage ALL the time.
2016-03-05 20:00:30 -08:00
Todd Gamblin
14d48eba46 Revert c5d9ee8924 for bug fixes.
- This reverts commit c5d9ee8924.

- merged too soon before
- reverting and fixing bugs now.

Conflicts:
	lib/spack/spack/mirror.py
	lib/spack/spack/package.py
2016-03-05 18:40:28 -08:00
Todd Gamblin
097df180e2 Merge pull request #493 from adamjstewart/features/pgi
Modifications to get PGI working
2016-03-05 14:19:15 -08:00
Todd Gamblin
bfce2c7508 Fix bug in hook: ensure bin directory exists before listing. 2016-03-05 04:42:52 -08:00
Todd Gamblin
fc6aa7374a Fix #104, #54: issues with overlong shebang in deep directories.
This does several things:

- Add `sbang`: a script to run scripts with long shebang lines.
  - Documentation for `sbang` is in `bin/sbang`.

- Add an `sbang` hook that filters the `bin` directory after install
  and modifies any scripts wtih shebangs that are too long to use
  `sbang` instead.

- `sbang` is at the top level, so it should be runnable (not much we
  can do if spack itself is too deep for shebang)
  - `sbang`, when used as the interpreter, runs the *second* shebang
    line it finds in a script.
  - shoud fix issues with too long shebang paths.
2016-03-05 04:18:48 -08:00
becker33
6449e8b1b9 Merge pull request #492 from adamjstewart/typos/compiler
Typo fix in compiler docstring
2016-03-04 14:25:56 -08:00
Adam J. Stewart
5db9673904 Typo fix in compiler docstring 2016-03-04 10:51:41 -06:00
citibeth
202fbc6812 Rmoved periods. Should help use of cut'n'paste from console windows. 2016-03-03 23:40:29 -05:00
Adam J. Stewart
311d71ec86 Modifications to get PGI working 2016-03-03 16:50:51 -06:00
Todd Gamblin
c5d9ee8924 Revert "refactoring proposal : turn Stage into a context manager" 2016-03-03 14:41:20 -08:00
Luigi Calori
a531a4f5e3 help spack versions paraview to get versions without v 2016-03-03 18:00:50 +01:00
alalazo
db92699c02 test : fixed tests that were broken by import optimization 2016-03-03 11:05:36 +01:00
alalazo
7f4a69319a Merge branch 'develop' of https://github.com/LLNL/spack into refactoring/stage
Conflicts:
	lib/spack/spack/package.py
2016-03-03 10:19:45 +01:00
alalazo
5ef3621556 stage : minor syntax fix 2016-03-03 10:10:30 +01:00
Todd Gamblin
6701977f1a Merge pull request #475 from LLNL/features/env-and-package-provenance
Features/env and package provenance
2016-03-03 00:42:40 -08:00
alalazo
353d12d2e6 stage : added create function as decided in #477 comments 2016-03-03 09:18:47 +01:00
alalazo
717bcb8624 test : optimized import statements 2016-03-03 09:17:49 +01:00
Gregory Becker
4f9a309de8 made spack more conservative in compiler strategies attempted 2016-03-02 16:35:02 -08:00
Gregory Becker
487b2495a1 made spack more conservative in compiler strategies attempted 2016-03-02 16:33:10 -08:00
Mario Melara
2b48728741 Changed os subclasses CNL to change attribute to MODULES 2016-03-02 16:15:34 -08:00
Mario Melara
58efe1550d Default PATH arg 2016-03-02 16:14:42 -08:00
Gregory Becker
16d8c25b23 fixed floating 'target' 2016-03-02 16:12:32 -08:00
Gregory Becker
65d4169f00 fixed type/bug 2016-03-02 16:03:11 -08:00
Gregory Becker
ffb9574312 fixed type/bug 2016-03-02 15:59:23 -08:00
Gregory Becker
6e7b00a0f6 Made module handling much saner and safer 2016-03-02 15:54:23 -08:00
Mario Melara
b4298979fe Merge branch 'features/newarch' of https://github.com/NERSC/spack into features/newarch 2016-03-02 14:18:19 -08:00
Gregory Becker
676591ffc0 fixed a bug and a test bug 2016-03-02 14:17:46 -08:00
Mario Melara
975cba295b Added 'better' tests 2016-03-02 14:16:57 -08:00
Mario Melara
e46bac19fa Changed architecture to dict 2016-03-02 12:09:02 -08:00
Mario Melara
90e90f61c1 Got rid of the compiler strategy from target 2016-03-02 12:08:43 -08:00
Mario Melara
47c8e1366f Changed to_dictionary and from_dictionary methods 2016-03-02 12:08:17 -08:00
Gregory Becker
25f20b1967 bug hunting 2016-03-02 11:40:21 -08:00
Glenn Johnson
6bbadbfaac Add CPATH pointing to include directories. 2016-03-02 13:18:43 -06:00
Mario Melara
340ecf6e9a Merge branch 'features/newarch' of https://github.com/NERSC/spack into features/newarch 2016-03-02 11:07:52 -08:00
Gregory Becker
86e90bba87 another partial, narrowing in on proper arch 2016-03-02 11:05:05 -08:00
Mario Melara
81e236b2de Changed Arch to class instead of namedtuple. Now platform is automatically set upon creation of class 2016-03-02 11:04:55 -08:00
Gregory Becker
45887dec8e partial work on bug hunting 2016-03-02 10:56:46 -08:00
Mario Melara
f27f2f8e49 Fixed some indentation errors 2016-03-02 10:27:12 -08:00
Mario Melara
4d74784209 Changed add_architecture_from_string and split the work done into two methods add_target_from_string and add_operating_system_from_string 2016-03-02 10:27:00 -08:00
Mario Melara
527bb7abfe Changed _cmp_key 2016-03-02 10:26:09 -08:00
Todd Gamblin
9f6ebd7c6e Merge pull request #465 from citibeth/efischer/160229-RemoteRootBugfix
Bug Fix: When Spack create roots around for other versions, it someti…
2016-03-02 10:24:17 -08:00
Gregory Becker
615ea969f8 made arch instantiate as a tuple 2016-03-02 10:14:50 -08:00
Gregory Becker
4601c36f57 cleaned up concretize architecture 2016-03-02 09:55:44 -08:00
alalazo
21cd05aad5 package : updated doc 2016-03-02 17:28:21 +01:00
alalazo
ca41909ec5 package : removed do_clean() 2016-03-02 17:19:27 +01:00
alalazo
4d63544fe9 remove_link_tree : moved to llnl.util.filesystem 2016-03-02 16:55:57 +01:00
alalazo
901e4851b9 _cleanup_dead_links : factored method into a function and put it in llnl.filesystem 2016-03-02 16:19:32 +01:00
alalazo
9001b9ed3c package : minor syntax fixes
mirror : extracted add_single_spec from create
2016-03-02 15:56:09 +01:00
alalazo
d649b715ed stage : updated functions doc
_cleanup_dead_links : fixed minor bug
2016-03-02 13:16:04 +01:00
alalazo
65b2a24f7c stage : removed _setup method 2016-03-02 13:03:40 +01:00
alalazo
726b350689 test : fixed failing unit tests 2016-03-02 12:52:38 +01:00
Todd Gamblin
a0c6519de9 Fixes #476: create was broken for FTP URLs. 2016-03-02 01:47:54 -08:00
Todd Gamblin
52081c46d6 Fixes #469: Store package.py files in the .spack directory.
- Adds packages in spack repos inside the .spack directory, so that
  packages can be rebuilt automatically later.
2016-03-02 00:09:24 -08:00
Todd Gamblin
21d125c914 Fixes #175: Dump environment provenance as well as build log. 2016-03-02 00:08:36 -08:00
Todd Gamblin
be306d09e9 Move repo creation code into repository.py 2016-03-02 00:04:46 -08:00
Todd Gamblin
c488f7c4d8 Fix bug in install permission setting. 2016-03-01 23:57:34 -08:00
Adam J. Stewart
a9f0b98d4d Typo fix 2016-03-01 15:53:53 -06:00
Elizabeth F
a339ac0a72 Bug Fix: When Spack create roots around for other versions, it sometimes finds files it thinks are tarballs, but are not. Previously, it would crash if any such files are found. This change allows it to simply skip them and move on, processing the rest of the files it finds correctly. 2016-02-29 23:04:11 -05:00
Ian Lee
67f327f805 Updated links to use new llnl.gov address 2016-02-28 19:47:19 -08:00
Mario Melara
b591d2b501 Changed operating_system path 2016-02-25 18:49:52 -08:00
Mario Melara
ccd4a79b39 changed architecture.target to architecture.platform_os, so that compiler_for_spec uses operating system strategy 2016-02-25 18:49:27 -08:00
Mario Melara
eb96f38298 Got rid of debug comment 2016-02-25 18:48:25 -08:00
Mario Melara
f0149faf88 Added doc strings to functions in architecture.py 2016-02-25 18:48:00 -08:00
Mario Melara
ac55ce989d Changed compiler finding strategy to come from operating system instead of target 2016-02-25 18:47:41 -08:00
becker33
7176e5ef07 Merge pull request #299 from epfl-scitas/enhancement/os_detection
enhancement proposal : boolean support for when=<arg>
2016-02-25 13:38:03 -08:00
Mario Melara
5989e3f65d Changed from_dict to arch_from_dict method 2016-02-25 11:53:02 -08:00
Mario Melara
5e4d3e7b82 Changed naming convention of operating_system, makes it easier to create instance from dictionary just using name without the version attached. Object will stil display as name+version 2016-02-25 11:48:43 -08:00
Mario Melara
550df4cdd6 Some cleaning up. Finally got arch_from_dict working successfully. 2016-02-25 11:47:27 -08:00
Mario Melara
9ac2556285 Deleted old operating_system (without the s) file 2016-02-25 10:41:28 -08:00
Mario Melara
b43a5498a1 Changed import path to operating_systems 2016-02-25 10:36:47 -08:00
Mario Melara
f161609929 Renamed operating_system to operating_systems 2016-02-25 10:36:12 -08:00
Mario Melara
34be473b7c Deleted files 2016-02-25 10:35:58 -08:00
Mario Melara
863a5bc4fa Fix for 'Parent module spack.operating_systems not found while handling absolute import' 2016-02-25 10:34:55 -08:00
Mario Melara
8d1c06d141 Changed to dict method. Didn't realize this was being assigned to a dictionary already so got rid of d['architecture'] 2016-02-24 15:38:33 -08:00
Mario Melara
bd7c189c12 Added more comments 2016-02-24 15:37:50 -08:00
Mario Melara
5c3c6e7f06 Got rid of print statements 2016-02-24 15:34:32 -08:00
Mario Melara
234681306c Changed to appropriate class names for operating system 2016-02-24 15:32:23 -08:00
Mario Melara
2de81cfc62 Changed name to appropriate camelcase 2016-02-24 15:31:21 -08:00
Mario Melara
9e844d974c Added comments. Need to figure out how to make arch_tuple from_dict 2016-02-24 15:30:20 -08:00
Mario Melara
7779974143 arch_from_dict worked on 2016-02-24 15:02:40 -08:00
Mario Melara
339f4bfd23 Added unit testing for to_dict method 2016-02-24 12:16:09 -08:00
Mario Melara
5d5d3c5858 Added to dictionary method 2016-02-24 12:15:52 -08:00
alalazo
6f42dd556d stage : on-going refactoring 2016-02-24 17:37:58 +01:00
alalazo
5ce97eeda5 intel : polished code 2016-02-24 09:17:04 +01:00
Massimiliano Culpo
4316f1cd31 Modified wrapper to have a different behavior when modeis vcheck 2016-02-23 16:57:19 +01:00
Mario Melara
cfa7c4feb8 Added CNL10 as back_os and default_os 2016-02-22 16:18:25 -08:00
Mario Melara
083b7b46d9 Added more tests 2016-02-22 16:17:54 -08:00
Mario Melara
3c87d137a3 Added compiler strategy entry and also added new operating system subclass called CNL for compute node linux (name will probably change because I can't find docs on the EXACT name) 2016-02-22 16:17:33 -08:00
Mario Melara
ebc5e26c2d Added compiler strategy field to Operating System class 2016-02-22 16:16:20 -08:00
Mario Melara
a385dae1ae Unit tests to test operating system subclass creation and whether compiler strategy is set correctly 2016-02-22 14:54:30 -08:00
Mario Melara
1367ccab93 New folder that will hold operating system subclasses 2016-02-22 14:53:55 -08:00
Mario Melara
22bf4bc080 import linux distro subclass. Added method to add operating system to platform dictionary 2016-02-22 14:53:16 -08:00
Mario Melara
1a7d6ed49a import MacOSX subclass and added add_operating_system method to use subclass 2016-02-22 14:52:52 -08:00
Mario Melara
725d6d5fce import linux distro operating system subclass, set front-end os to LinuxDistro() 2016-02-22 14:52:09 -08:00
Mario Melara
a8de45ce28 Got rid of methods used to detect mac osx and linux osx. Now those methods are used my operating system subclasses 2016-02-22 14:50:51 -08:00
Mario Melara
18ddbae60e Added new module path to operating system file 2016-02-22 14:49:53 -08:00
Todd Gamblin
3c1aa9a4ad Merge pull request #298 from epfl-scitas/refactoring/resource_directive
refactoring proposal : composite for Stage and FetchStrategy
2016-02-18 23:13:12 -08:00
Mario Melara
28218755a5 Changed spec.target to spec.architecture 2016-02-18 13:06:55 -08:00
Todd Gamblin
d8a70166d3 Fixes #434
Compiler detection was not getting triggered properly with some of the
new config logic.  Adjust the conditions under which Spack will serach
for compilers.
2016-02-18 00:56:29 -08:00
Todd Gamblin
c112cf66fe Merge pull request #443 from trws/dicts-like-string-keys
remove the unprotected key name from create.py
2016-02-17 17:06:51 -08:00
Tom Scogland
00125e4688 remove the unprotected key name from create.py
Small fix to use dicts correctly.
2016-02-17 16:43:36 -08:00
Mario Melara
93a92a00ee Changed abstract.target to abstract.architecture.target and abstract.architecture.target.concrete 2016-02-17 14:53:09 -08:00
Mario Melara
d9e8bf1807 Added ARCHITECTURE field when showing specs 2016-02-17 14:51:14 -08:00
Mario Melara
54042e399b Changed target to architecture.target 2016-02-17 14:50:10 -08:00
Mario Melara
1d484dbe5f Changed so that modules use correct file path with spec.architecture instead of spec.target 2016-02-17 14:49:36 -08:00
Mario Melara
ab4006ee2c Changed so that directory layout uses the platform-os-target string version of the arch tuple 2016-02-17 14:48:53 -08:00
Mario Melara
524e9b372e From now on all targets are now architecture. Architecture is a named tuple so any time we need access to target we do architecture.target. 2016-02-17 14:47:29 -08:00
Mario Melara
2c20fc2ebf Changed module loading to use arch tuple instead of regular target.module 2016-02-17 14:45:53 -08:00
Mario Melara
2a79537ba1 Fixed silly typo that gave errors in tests 2016-02-17 14:44:38 -08:00
Mario Melara
a3039c4c67 Changed add_architecture_from_string, it now loops through the string and checks whether each piece of string is a valid platform, operating system and target. If the operating system or target are none it will use the defaults. Updated the documentation for that method. One thing that bothers me is how to account for the multitude of operating systems when cross compiling. If someone wants to compile with another operating system not found on current platform. How can spack check to see if it is valid? 2016-02-16 15:26:07 -08:00
Mario Melara
62b0293963 Cleaned up the file. Got rid of commented out sections of code since they weren't going to be used anyway 2016-02-16 15:23:38 -08:00
Mario Melara
31ab238306 Beginning attemps to fix concretization method to account for the new tuple architecture 2016-02-16 15:22:23 -08:00
Mario Melara
19dca4bcc9 Added some _cmp_key methods to OperatingSystem class, and also changed the way Platforms are compared. Created a mini inherited class named Arch that inherits from namedtuple. The reason for this is to override the namedtuple __str__ method to make arch tuples look prettier when printed out. Rather than Arch(platform= ... ) it prints to platform-os-target which makes directory paths to packages look cleaner. 2016-02-16 15:21:36 -08:00
Mario Melara
35a602baaf Changed target checking to architecture checking for abi compatible 2016-02-16 15:17:57 -08:00
Erik Schnetter
9868333e8e Shell quoting is difficult 2016-02-14 11:34:08 -05:00
Erik Schnetter
a06e29fecb More quoting experiments 2016-02-14 10:43:55 -05:00
Erik Schnetter
43670cbbd0 More games with quoting 2016-02-13 22:01:36 -05:00
Erik Schnetter
52647b9a5d Using regexes instead of globbing to match path names 2016-02-13 17:55:14 -05:00
Mario Melara
c799301011 Changed the method in which architecture is converted from string to namedtuple. Also added some TODO comments to later consider changing how architecture is handled 2016-02-13 14:37:07 -08:00
Mario Melara
7732f375d2 Changed operating system getter so that linux and darwin autodetected operating systems are set as class default_os 2016-02-13 14:36:01 -08:00
Erik Schnetter
69064395eb Add debug output 2016-02-13 15:12:09 -05:00
Erik Schnetter
9a2c1090a6 Handle -Wl,-rpath,... syntax 2016-02-13 14:54:18 -05:00
Erik Schnetter
dc6a33b716 Handle multiple -Wl,-rpath,... paths 2016-02-13 14:54:18 -05:00
Erik Schnetter
5038a38e29 Correct -Xlinker arguments 2016-02-13 14:54:18 -05:00
Erik Schnetter
2cd9ad8ce6 Use "-Wl,-rpath," instead of "-Wl,-rpath="
The former translates to a linker argument "-rpath DIR", whereas the latter translates to "-rpath=DIR". The latter is not support on OS X.
2016-02-13 14:54:18 -05:00
Erik Schnetter
ff81aff254 Remove source-code optimization and cleanup 2016-02-12 13:05:42 -05:00
Erik Schnetter
64436e7752 Merge branch 'develop' into correct-cc 2016-02-12 12:55:26 -05:00
David Beckingsale
90e1b1f0ea Use hash to make shorter module and dotkit names, fixes #433 2016-02-12 09:33:19 -08:00
Mario Melara
8e8c63bd67 Using pylint, fixed some of the indentation and spacing errors 2016-02-11 11:47:39 -08:00
Mario Melara
3e1be63b0f Changed some variables to account for the fact that target is now a tuple 2016-02-11 11:15:50 -08:00
Mario Melara
b9d09202c9 changed some variables to account for the fact that target is now a tuple 2016-02-11 11:15:19 -08:00
Mario Melara
77e93e1b79 Added add_os method to platform subclasses 2016-02-10 16:16:58 -08:00
Mario Melara
cb8d5ab183 Added new add_os method 2016-02-10 16:16:35 -08:00
Mario Melara
fb234205c2 Added method to concretize target and os pair 2016-02-10 16:16:11 -08:00
Mario Melara
d0ae6dd401 Changed add_target_from_string to include methods to concretize operating_system 2016-02-10 16:15:25 -08:00
Mario Melara
2650c60374 Added operating system class prototype and some autodetect features for operating system 2016-02-10 16:14:50 -08:00
Todd Gamblin
bcf705b85e Merge pull request #432 from RemoteConnectionManager/paraview_fix
Paraview fix
2016-02-10 13:59:08 -08:00
Mario Melara
21a5a34041 Revert "new branch and also pushing some architecture changes where os is detected by linux and darwin and manually set by cray and bgq"
This reverts commit 70088be24b2ed34076f7f5292a2a465a8655a886.
2016-02-10 10:59:16 -08:00
Luigi Calori
25e2be3efd RPATH was collecting all lib from all dependencies, when dep tree is deep like in ParaView the path was growing too much, showing install problems now just direct dependencies rpath is added 2016-02-10 13:28:01 +01:00
Todd Gamblin
f7134990bd Fix #430: edit -f fails with UnknownPackageError
- Recent external repo refactoring made `repo_for_pkg` raise an error
  when the package was not known.

- Correct behavior is to return the highest precedence repo.
2016-02-09 08:57:27 -08:00
Mario Melara
0358522533 new branch and also pushing some architecture changes where os is detected by linux and darwin and manually set by cray and bgq 2016-02-06 15:41:22 -08:00
Nicolas Richart
824546d343 correcting a bug when url and files are mixed 2016-01-28 14:43:30 +01:00
Nicolas Richart
5850d8530e Adding the stager to checksum any url that spack can handle 2016-01-28 14:22:28 +01:00
alalazo
0cf03518f3 reverted deletion of the wrong architecture.py 2016-01-28 12:06:30 +01:00
alalazo
603f5e69ee removed outdated code : os detection (will be handled by platforms) and openssl modifications 2016-01-28 11:30:28 +01:00
alalazo
e76b722e28 Merge branch 'develop' of https://github.com/LLNL/spack into enhancement/os_detection 2016-01-28 11:26:01 +01:00
alalazo
07bb6fef01 resource directive : now works with all the fetch strategies available 2016-01-28 10:58:56 +01:00
alalazo
47035671e8 unit tests : now compliant with 2.6 2016-01-27 17:22:12 +01:00
alalazo
f7f192e12b Added unit tests for util.pattern 2016-01-27 17:12:24 +01:00
Gregory L. Lee
7891346a4f fix for issue 398, added extensions_for in RepoPath 2016-01-26 09:52:01 -08:00
alalazo
ee6f69a227 Unit tests : hack to make them pass while a decision on how to proceed is made 2016-01-26 14:25:16 +01:00
alalazo
5e3b7a4247 Fixes issues introduced after merge with conflicts 2016-01-26 14:11:23 +01:00
alalazo
093b831799 Fixes issues introduced after merge with conflicts 2016-01-26 12:08:28 +01:00
alalazo
6f11a64af5 Merge branch 'develop' of https://github.com/LLNL/spack into refactoring/resource_directive
Conflicts:
	lib/spack/spack/fetch_strategy.py
	lib/spack/spack/mirror.py
	lib/spack/spack/package.py
2016-01-26 08:59:25 +01:00
Matthew LeGendre
d4a771a623 Merge pull request #1 from alalazo/features/external-packages
doc : minor typos fixed
2016-01-25 10:53:37 -08:00
Matthew LeGendre
fa888a4ba1 Merge branch 'develop' into features/external-packages
Conflicts:
	lib/spack/spack/cmd/mirror.py
	lib/spack/spack/concretize.py
	lib/spack/spack/config.py
	lib/spack/spack/spec.py
	lib/spack/spack/stage.py
	var/spack/packages/mvapich2/package.py
2016-01-25 10:52:17 -08:00
Todd Gamblin
004c99ab2f Fixes #259: Apple clang compiler detection
- Clang compilers are now versioned with the raw LLVM version or, on
  macs, with Apple's version with a suffix.
2016-01-25 03:48:22 -08:00
Adam J. Stewart
fb5274145a Fix regex to find version on OS X 2016-01-25 03:10:13 -08:00
Todd Gamblin
41cd8f8e6d Fixes #74: minor fixes to spack mirror. 2016-01-25 02:57:23 -08:00
Todd Gamblin
5502fd1054 More thorough mirror test: test full round-trip
- Old test: did not attempt to actually fetch mirrored packages.

- New test:
  1. Creates a temporary mirror,
  2. Registers it with spack,
  3. Fetches from it, and
  4. Verifies that the fetched archive matches the original

- This test will hopefully mean that `spack mirror` is less brittle
  from now on.
2016-01-25 01:59:02 -08:00
Todd Gamblin
a48d0a494f Refactor mock_repo: add a destroy() method.
- classes using mock_repo need not know about its stage now.
2016-01-25 00:34:33 -08:00
Todd Gamblin
d3ff8ca00f Fixes #382: Issues with spack fetch.
- urljoin() was compliant with RFC 1808 but not with my understanding
  of how paths should be joined.
- updated path joining logic to comply.
2016-01-24 20:14:40 -08:00
Todd Gamblin
fe50593c66 Minor line width reductions. 2016-01-24 20:14:21 -08:00
Todd Gamblin
be354e85c9 Better errors for mkdirp failure in mirror. 2016-01-24 16:16:43 -08:00
Todd Gamblin
64a9549225 Minor cleanup. 80 char width for command description. 2016-01-24 15:31:07 -08:00
Adam J. Stewart
571386cdf4 Remove cxx symlink, tell NAG to look for c++ symlink 2016-01-21 13:55:59 -06:00
Adam J. Stewart
ca3edc3673 Add symlink cxx to point to cc 2016-01-21 13:20:39 -06:00
Todd Gamblin
10848c2e9a Refactor args for Executable.__call__
- simplify output, error, and input redirection
- `return_output=True` is now `output=str`
- `return_output=True` will still work for the time being but is
  deprecated.

- previously you could say `return_output=True` and `output=<stream>`,
  which wouldn't actually write to the stream.  Now you actually can't
  specify erroneous cases since there is only one parameter with
  mutually exclusive options..
2016-01-21 10:46:33 -08:00
Todd Gamblin
1c2a2dde8e Merge pull request #350 from adamjstewart/features/nag
Add NAG Fortran Compiler support
2016-01-20 17:09:31 -08:00
Adam J. Stewart
088b6f0ea9 Fixed typo when running spack help 2016-01-20 17:19:01 -06:00
Adam J. Stewart
e25150296a Redirect STDERR to STDOUT for compiler version
This is necessary for the NAG Fortran compiler, which prints its version message to STDERR instead of STDOUT. This message was previously being ignored, preventing spack from finding the compiler's version or automatically adding it to the compilers.yaml configuration file.
2016-01-20 14:44:43 -06:00
Mario Melara
840b41c450 Removed unneccessary $. Still learning regexp 2016-01-20 10:36:15 -08:00
Mario Melara
15713219e5 Better regular expression searching. Tested on edison was finding test compilers and then spack was giving multiple compiler match errors 2016-01-20 10:32:56 -08:00
alalazo
72d5cdf9ab fixed two minor typos 2016-01-20 11:19:36 +01:00
Ben Boeckel
6c9800bcc3 typos: fix some letter transposes 2016-01-19 15:22:16 -05:00
Adam J. Stewart
83de658ee4 Modify nag.py to match new compiler package structure 2016-01-19 13:28:35 -06:00
Adam J. Stewart
e6aa2610bc Add symlink for NAG Fortran Compiler 2016-01-19 13:07:07 -06:00
Adam J. Stewart
fe640d764a Merge branch 'develop' into features/nag
* develop: (77 commits)
  Make libxcb compile with gcc 4.9.
  disable parallel install for glib (found races)
  disable cairo-trace, which is incompatible with older libiberty.h.
  Fix LaunchMon on newer gcc versions.
  Simplify output redirection in spack.util.executable
  Allow completely empty config files.
  Update cmake package to use http in all URLs.
  Fix create, diy, edit, and repo commands to use multiple repos.
  Add namespace option to find command.
  Temporary fix: Clang is the default compiler on Mac OS X.
  Netcdf requires cmake >=2.8.12
  Mbedtls depends on cmake
  Update libtool to 2.4.6
  Update Julia to 0.4.3
  Make binutils build on OS X
  Add verbs and psm variants
  py-matplotlib: depend on freetype
  py-numpy: make blas/lapack optional dependencies
  qhull: apply patch to work with libc++'s standard library
  New package GNU tar
  ...
2016-01-19 09:56:02 -06:00
Todd Gamblin
cee7bfa9f0 Simplify output redirection in spack.util.executable
- By default inherit parent's input/output descriptor
- Only use pipes if we need to return output.
- Allows subprocesses (like emacsclient) to detect terminal correctly
2016-01-19 01:16:14 -08:00
Todd Gamblin
ad32f64ef6 Allow completely empty config files.
- Previous version would give validation error for an empty file.
  Now this is properly ignored.

- Also includes bugfix in ConfigFormatError
2016-01-19 01:16:14 -08:00
Todd Gamblin
8d6342c53d Merge branch 'mplegendre-multi_pkgsrc_roots' into develop
- This moves var/spack/packages to var/spack/repos/builtin/packages.

- Packages that did not exist in the source branch, or were changed in
  develop, were moved into var/spack/repos/builtin/packages as part of
  the integration.

Conflicts:
	lib/spack/spack/test/unit_install.py
	var/spack/repos/builtin/packages/clang/package.py
2016-01-19 01:16:08 -08:00
Todd Gamblin
c1e57e49ae Merge pull request #202 from scheibelp/features/unittest-xml-output-nose
Features/unittest xml output nose
2016-01-17 19:14:49 -08:00
Todd Gamblin
97b492756a Fix create, diy, edit, and repo commands to use multiple repos. 2016-01-17 18:14:35 -08:00
Todd Gamblin
5984bc2ad3 Add namespace option to find command. 2016-01-17 18:12:53 -08:00
Todd Gamblin
358b2ab4ba Temporary fix: Clang is the default compiler on Mac OS X. 2016-01-17 18:12:08 -08:00
Gregory Becker
8e54babf10 minor parsing bug fix 2016-01-15 17:21:32 -08:00
Gregory Becker
e1a0af8745 cleanup 2016-01-15 16:51:41 -08:00
Gregory Becker
16e9d658d5 Fixed the way flags on deps are attached so that they aren't moved onto the root before normalize/concretize 2016-01-15 16:18:40 -08:00
Gregory Becker
342f4bc2e0 Fixed virtual/cflag combination bug 2016-01-15 14:27:50 -08:00
Todd Gamblin
aa00999fca update compiler config test. 2016-01-14 12:00:56 -08:00
Todd Gamblin
d869d8e86f add sanity check on config write as well as validation on read. 2016-01-14 12:00:44 -08:00
Todd Gamblin
b567cb57e1 Add jsonschema validation for config files. 2016-01-14 10:41:35 -08:00
Todd Gamblin
05b30bf83e Make text wrapping off by default in tty, add a kwarg for it. 2016-01-14 10:26:31 -08:00
Adam J. Stewart
f9fbb57d31 Add NAG Fortran Compiler support 2016-01-13 12:32:04 -06:00
Gregory Becker
848728858c Removed extra plus signs from command line syntax. Did not yet remove them from printed format 2016-01-12 18:34:26 -08:00
Gregory Becker
5e3c883f2c Cleanup and proper flag satisfaction for partial specs 2016-01-12 16:25:54 -08:00
Gregory Becker
528f9cd583 Implemented flags as lists for subsetting 2016-01-12 15:22:15 -08:00
Gregory Becker
2ac5ea42af Fixed concretization 2016-01-11 13:55:11 -08:00
Mario Melara
aab1a67d05 Adding needed import modules. Changed platform_name to platform to prevent syntax errors 2016-01-09 09:42:36 -08:00
Gregory Becker
9615efd940 cleanup: Removing an unnecessary line in an otherwise unchanged file 2016-01-08 18:53:19 -08:00
Gregory Becker
41046499c6 minor bug chasing 2016-01-08 18:51:38 -08:00
Gregory Becker
6e5238d037 Fixing the fix and removing debug printing 2016-01-08 17:44:16 -08:00
Gregory Becker
2b2d4bae4e Fixing multimethod test for new platforms 2016-01-08 17:38:37 -08:00
Gregory Becker
2b4dd8b9af Fixed target satisfaction and updated tests accordingly 2016-01-08 16:30:27 -08:00
Gregory Becker
aa28e4e81f Improved error messages for compiler_for_spec when either zero or multiple compilers returned. 2016-01-08 15:13:48 -08:00
Gregory Becker
d3d37ad0ce removed the submodule as part of reversion of extraneous commits 2016-01-08 14:29:42 -08:00
Gregory Becker
ba63111f45 brought the architecture test up to date with new changes 2016-01-07 13:05:58 -08:00
Gregory Becker
53d4f82ce1 Improved cray architecture class 2016-01-07 13:01:05 -08:00
Gregory Becker
83917c4c30 Improved target specification 2016-01-07 12:43:39 -08:00
Gregory Becker
6ccd9d6fa4 Cleaned up naming conventions for architecture, split into platform and target 2016-01-07 11:49:01 -08:00
Gregory Becker
b4a0004f44 Improved target cmp_key and to/from yaml functions 2016-01-06 14:50:31 -08:00
Gregory Becker
51bd91edc0 made the compiler strategy more easily controllable 2016-01-06 13:00:22 -08:00
Gregory Becker
61b03b72b0 improved concretize efficiency for determining whether compilers come from the proper strategy 2016-01-05 19:03:25 -08:00
Gregory Becker
93c9c45580 minor tweak of compiler priority while waiting for customizable compiler priorities 2016-01-05 17:19:04 -08:00
Gregory Becker
29e0ff61d7 fixed compiler finding so as not to identify non-existent versions of the intel compiler based on the version numbers of the PrgEnv-intel module 2016-01-05 17:14:35 -08:00
Gregory Becker
c649610473 fixed concretization to only consider compilers found by the proper strategy 2016-01-05 17:00:28 -08:00
Gregory Becker
d6768cf921 minor bug fix 2016-01-05 16:23:32 -08:00
Gregory Becker
48b9023de4 removed debug printing 2016-01-05 14:51:18 -08:00
Gregory Becker
751503c434 fixed haswell targeting bug 2016-01-05 14:47:14 -08:00
Gregory Becker
1edbaa4e62 removed debug printing 2016-01-05 14:13:09 -08:00
Gregory Becker
9848ad32fd fixed errors caused by crayport on linux and added a darwin architecture 2016-01-05 13:39:53 -08:00
Gregory Becker
d2c2c46541 bug hunting 2016-01-05 11:12:14 -08:00
Gregory Becker
751208cedf pick last compiler instead of first, will be overwritten by more advanced preferences as mentioned in the email group 2016-01-04 16:35:06 -08:00
Gregory Becker
53808f254e Support for cray external dependencies implemented in modules 2016-01-04 12:36:48 -08:00
Gregory Becker
ff82e41404 Merge branch 'externals' into crayport 2016-01-04 10:46:25 -08:00
Todd Gamblin
b02faf5641 add/remove/list working for new config format.
- mirrors.yaml now uses dict order for precedence, instead of lists of
  dicts.

- spack.cmd now specifies default scope for add/remove and for list
  with `default_modify_scope` and `default_list_scope`.
  - commands that only read or list default to all scopes (merged)
  - commands that modify configs modify user scope (highest
    precedence) by default
  - These vars are used in setup_paraser for mirror/repo/compiler.

- Spack's argparse supports aliases now.
  - added 'rm' alias for `spack [repo|compiler|mirror] remove`
2016-01-03 02:27:50 -08:00
Todd Gamblin
21fae634a5 Add Python 3 aliases to our argparse backport. 2016-01-03 01:19:03 -08:00
Todd Gamblin
56937416a9 All tests that call concretize() need to be MockPackagesTests. 2016-01-02 18:18:00 -08:00
Todd Gamblin
20b7f8a8e0 Fix bug in tests. 2016-01-02 14:25:10 -08:00
alalazo
bf4231dd4b depends_on and when multimethod support boolean 2016-01-02 22:48:14 +01:00
alalazo
d95d169ac5 fixed broken unit tests 2016-01-02 19:04:06 +01:00
alalazo
f499f71f64 Package : factored out code in do_stage and do_fetch, changed mirror command accordingly 2016-01-02 16:15:30 +01:00
alalazo
dcddb19e5b added class decorator to define composite classes 2016-01-01 17:35:01 +01:00
Tom Scogland
4ae98f8b21 significant llvm update
This update significantly reworks the llvm and clang packages.  The llvm
package now includes variants allowing it to build and install any and
all of:

* clang
* lldb
* llvm's libunwind (why, WHY did they name it this?!?)
* polly (including building it directly into the clang tools, 3.7.0 only)
* clang extra tools
* compiler-rt (sanitizers)
* clang lto (the gold linker plugin that allows same to work)
* libcxx/libcxxabi
* libopenmp, also setting the default openmp runtime to same, when
  parameters happen this shoudl be an option of libomp or libgomp

Ideally, this should have rpath setup like the gcc package does, but
clang's driver has no support for specs as such, and no clearly
equivalent mechanism either.  If anyone has ideas on this, they would be
welcome.

One significant note related to gcc though, if you test this on LLNL
systems, or anywhere that has multiple GCCs straddling the dwarf2
boundary and sharing a libstdc++, build a gcc with spack and use that to
build clang.  If you use a gcc4.8+  to build this with an older
libstdc++ it will fail on missing unwind symbols because of the
discrepancy.

Resource handling has been changed slightly to move the unpacked archive
into the target rather than use symlinks, because symlinks break certain
kinds of relative paths, and orders resource staging such that nested
resources are unpacked after outer ones.
2015-12-30 16:59:39 -08:00
Tom Scogland
fcdf08e4d7 allow nested resources
This solution doesn't really make me happy, but does seem to work.  It
sorts the resources by the length of the string representing their
destination.  Since any nested resource must contain another resource's
name in its path, it seems that should work, but there should be a
better way to do this.
2015-12-30 16:59:39 -08:00
Tom Scogland
cc8c783bb2 adding errno import for the deep directory creation patch 2015-12-30 16:59:39 -08:00
Tom Scogland
30f5ccb80d create leading directories for resources
This allows resources to be placed into subdirectory trees that may not
exist in the base package, and may depend on other resources to be
staged later.
2015-12-30 16:59:39 -08:00
Todd Gamblin
e8e6368cc8 Rework mirror configuration.
- All of these work:
  - `spack mirror add`
  - `spack mirror remove`
  - `spack mirror list`

- `spack mirror` subcommands (except create) now have their own
  --scope argument.

- Mirror config is now stored sanely as an ordered list.
2015-12-28 01:14:41 -08:00
Todd Gamblin
1f8ba53ca7 Rework compiler configuration and simplify config.py logic.
- `spack compiler` subcommands now take an optional --scope argument.

- no more `remove_from_config` in `config.py` -- `update` just
  overwrites b/c it's easier to just call `get_config`, modify YAML
  structures directly, and then call `update`.

- Implemented `spack compiler remove`.
2015-12-28 00:46:51 -08:00
Todd Gamblin
ff0d871612 Remove mock_configs; tests no longer modify spack home directory. 2015-12-27 21:13:18 -08:00
Todd Gamblin
39e360f93a Add custom YAML loader & dumper to track lines & maintain dict order.
- Configs are now parsed with `spack.util.spack_yaml.load/dump`

- Parser annotates returned data with `_start_mark` and `_end_mark`
  properties, so that we can recover what lines/files they came from.

- Parser uses `OrderedDict` instead of `dict`.  This will help
  maintain some sanity when round-tripping config files.
2015-12-27 17:51:11 -08:00
Todd Gamblin
4e8e298eb3 Uncomment disabled tests. 2015-12-27 17:40:31 -08:00
Todd Gamblin
487ac9cd19 Merge pull request #277 from LLNL/bugfix/vcs-mirror-fetch
Fix #85 and #228: errors fetching VCS packages from a mirror.
2015-12-26 09:28:38 -08:00
Todd Gamblin
bef52570ae Default to scope with highest precedence instead of user scope,
- Generalizes config scopes a bit more: nothing assumes there is a
  'user' scope (this would break testing sometimes).
2015-12-25 18:42:06 -08:00
Todd Gamblin
c65fd3a289 Merge branch 'develop' into mplegendre-multi_pkgsrc_roots
Conflicts:
	lib/spack/spack/cmd/create.py
	lib/spack/spack/cmd/extensions.py
	lib/spack/spack/cmd/fetch.py
	lib/spack/spack/cmd/uninstall.py
	lib/spack/spack/config.py
	lib/spack/spack/database.py
	lib/spack/spack/directory_layout.py
	lib/spack/spack/packages.py
	lib/spack/spack/spec.py
2015-12-25 16:35:55 -08:00
Todd Gamblin
34401cf0c3 Rework Spack config: keep user & site config in memory.
- User and site config are now kept separately in memory.
- Merging is done on demand when client code requests the configuration.
- Allows user/site config to be updated independently of each other by commands.
- simplifies config logic (no more tracking merged files)
2015-12-25 14:00:33 -08:00
Todd Gamblin
52625de52c Fix #154 -- better log messages for do_patch() 2015-12-24 11:37:40 -08:00
Todd Gamblin
f37f872e5f Fix #85 and #228: errors fetching VCS packages from a mirror.
- Stage and fetcher were not being set up properly when fetching using
  a different fetch strategy than the default one for the package.

- This is fixed but fetch/stage/mirror logic is still too complicated
  and long-term needs a rethink.

- Spack will now print a warning when fetching a checksum-less tarball
  from a mirror -- users should be careful to use https or local
  filesystem mirrors for this.
2015-12-23 16:23:58 -08:00
Todd Gamblin
5ca5884ad6 Fix #235: Smarter web spidering -- use parsed links instead of reconstructing.
- Move `find_versions_of_archive` from spack.package to `spack.util.web`.

- `spider` funciton now just uses the link parsing it already does to
  return links.  We evaluate actual links found in the scraped pages
  instead of trying to reconstruct them naively.

- Add `spack url-parse` command, which you can use to show how Spack
  interprets the name and version in a URL.
2015-12-23 13:16:57 -08:00
Todd Gamblin
d63cb8b537 Fix bug in URL regex. 2015-12-22 17:05:23 -08:00
Todd Gamblin
0d4b77a24b revert accidental print statements. 2015-12-22 17:02:14 -08:00
Todd Gamblin
2b89d9b1db More consistent URL parsing when finding versions.
Versions found by wildcard URLs are different from versions found by
parse_version, etc.  The wildcards are constructed more haphazardly
than the very specific URL patterns in url.py, so they can get things
wrong.  e.g., for this URL:

    https://software.lanl.gov/MeshTools/trac/attachment/wiki/WikiStart/mstk-2.25rc1.tgz

We miss the 'rc' and only return 2.25r as the version if we ONLY use
URL wildcards.

Future: Maybe use the regexes from url.py to scrape web pages, and
then compare them for similarity with the original URL, instead of
trying to make a structured wildcard URL pattern?  This might yield
better results.
2015-12-22 16:59:00 -08:00
Erik Schnetter
9017ec5865 Merge branch 'develop' into correct-cc 2015-12-22 15:49:43 -05:00
Erik Schnetter
3427174eb0 Correct quoting 2015-12-22 15:49:14 -05:00
Todd Gamblin
b1d40efd99 Merge pull request #261 from LLNL/features/prefer-versions-in-packages
Add ability to prefer particular versions in packages.
2015-12-22 08:25:52 -08:00
Todd Gamblin
157e42de22 Merge pull request #264 from nolta/typos
fix a few comment typos
2015-12-22 07:56:54 -08:00
Todd Gamblin
792b033255 Slightly more robust tmp directory search.
- remove getcwd() check (seems arbitrary -- if users set their TMPDIR
  to this why stop them?)

- try a number of common locations and try per-user directories in
  them first.
2015-12-22 07:54:25 -08:00
Mike Nolta
61f07b0c4d fix a few comment typos 2015-12-21 19:24:16 -05:00
Mike Nolta
2ba6bb21fb fix #249 (tmp spack-stage directories conflict) 2015-12-21 18:50:58 -05:00
Todd Gamblin
fe0fdf60b4 Add ability to prefer particular versions in packages.
- Adding `preferred=True` to a version directive will change its sort
  order in concretization.

- This provides us a rudimentary ability to keep the Spack stack
  stable as new versions are added.

- Having multiple stacks will come next, but this at least allows us
  to specify default versions of things instead of always taking the
  newest.
2015-12-21 15:35:47 -08:00
Todd Gamblin
73ea15db8e Merge pull request #208 from epfl-scitas/features/resource_directive
resource directive : implementation + clang / llvm use case
2015-12-21 10:34:16 -08:00
Erik Schnetter
611537eaed Merge branch 'develop' into correct-cc 2015-12-21 13:18:35 -05:00
Erik Schnetter
ba22fc8b78 Simplify Spack cc script 2015-12-21 10:21:33 -05:00
Todd Gamblin
dccfcd10f7 Merge pull request #255 from LLNL/bugfix/254-libtool-compiler-name-issues
Fix #254: libtool & distutils want certain compiler names.
2015-12-20 16:56:59 -08:00
Todd Gamblin
1b086c928c Merge pull request #227 from trws/fetch-deps
fetch: add options to fetch missing or all deps
2015-12-19 21:02:42 -08:00
Todd Gamblin
9edba18489 Merge pull request #230 from nolta/fix-env-mod-sys-type
fix environment module path when $SYS_TYPE isn't defined
2015-12-19 20:59:13 -08:00
Todd Gamblin
32f96b5c73 Fix stale code in python version test so that it actually works. 2015-12-19 20:04:00 -08:00
Mike Nolta
429e15c4a6 spack python: add -c option
Allows passing program in as a string. Example:

    $ spack python -c 'print 2+3'
    5

Also imports spack module by default into the environment.
2015-12-19 16:32:17 -05:00
Gregory Lee
df5dc1c9bb Merge pull request #253 from LLNL/bugfix/244-uninstall-errors
Bugfix/244 uninstall errors
2015-12-19 08:06:36 -08:00
Todd Gamblin
7cc4d88726 Fix #254: libtool & distutils want certain compiler names.
This changes the compiler wrappers so that they are called by the same
name as the wrapped compiler.  Many builds make assumptions about
compiler names, and we need the spack compilers to be recognizable so
that build systems will get their flags right.

This adds per-compiler subdirectories to lib/spack/spack/env directory
that contain symlinks to cc for the C, C++, F77, and F90
compilers. The build now sets CC, CXX, F77, and F90 to point to these
links instead of to the generically named cc, c++, f77, and f90
wrappers.
2015-12-19 02:06:47 -08:00
Todd Gamblin
52e3364efa Fix #244: errors on uninstall
- Extension logic didn't take conditional deps into account.

- Extension methods now check for whether the extnesion is
  in the extendee map AND whether the dependency is actually present
  in the spec yet.
2015-12-18 22:24:35 -08:00
Todd Gamblin
b7e926eef6 minor formatting. 2015-12-18 22:24:22 -08:00
Todd Gamblin
ce8bd20944 Fix import error. 2015-12-18 22:23:51 -08:00
Todd Gamblin
abd3d3946d Format to 80 char width. 2015-12-18 19:23:45 -08:00
Gregory Becker
217a2d9ea5 fixed yaml error 2015-12-17 15:26:27 -08:00
Erik Schnetter
5d61888657 Correct Spack cc script 2015-12-17 10:13:39 -05:00
Gregory Lee
9cab88071b Merge pull request #239 from LLNL/bugfix/238-db-specs-not-concrete
Fix #238: Database specs need to be concrete when read in as well.
2015-12-16 11:37:51 -08:00
Mike Nolta
82aa366adf minor comment tweak in modules.py 2015-12-16 11:43:07 -05:00
Todd Gamblin
2f9ee88408 Fix #238: Database specs need to be concrete when read in as well. 2015-12-15 17:15:37 -08:00
Todd Gamblin
6e074a196a Fix #206: need to make deps AND root concrete when read in. 2015-12-14 21:06:32 -08:00
Todd Gamblin
afbd0e77d0 Make internal hash dep sort order match external one. 2015-12-11 16:47:34 -08:00
Todd Gamblin
3dd6cbc556 Fix #217: update spec_dag test for new _cmp_key. 2015-12-11 13:07:20 -08:00
Todd Gamblin
6ee2eb21dd Fix #217: Use MUCH faster hashing, reduce number of DAG copies.
This changes the hash algorithm so that it does much less object
allocation and copying, and so that it is correct.

The old version of `_cmp_key()` would call `sorted_deps`, which would
call `flat_dependencies` to get a list of dependencies so that it
could sort them in alphabetical order.  This isn't necessary in the
`_cmp_key()`, and in fact we want more DAG structure than that to be
included in the `_cmp_key()`.

The new version constructs a tuple without copying the Spec DAG, and
the tuple contains hashes of sub-DAGs that are computed recursively
in-place.  This is way faster than the previous algorithm and reduces
the numebr of copies significantly. It is also a correct DAG hash.

Example timing and copy counts for the different hashing algorithms
we've tried:

Original (wrong) Spec hash:
```
106,170 copies
real    0m5.024s
user    0m4.949s
sys     0m0.104s
```

Spec hash using YAML `dag_hash()`:
```
3,794 copies
real    0m5.024s
user    0m4.949s
sys     0m0.104s

New no-copy, no-YAML hash:
```
3,594 copies
real    0m2.543s
user    0m2.435s
sys     0m0.104s
```

So now we have a hash that is correct AND faster.

The remaining ~3k copies happen mostly during concretization, and as
all packages are initially loaded.  I believe this is because Spack
currently has to load all packages to figure out virtual dependency
information; it could also be becasue there ar a lot of lookups of
partial specs in concretize.  I can investigate this further.
2015-12-11 12:40:27 -08:00
Mario Melara
b5216f6ec8 Commented out cxxflag. Not 100% sure it's needed 2015-12-11 12:07:32 -08:00
Mario Melara
31df2dd9dd Fixed targets ti be x86_64, important note: have not tested this on linux machine 2015-12-11 12:04:47 -08:00
Mario Melara
fee88d289d Rewrote docstrings for sys_type() and got rid of unused functions 2015-12-11 12:03:13 -08:00
Todd Gamblin
7526a89463 Fix #217: Make package cache use DAG hash instead of sorted deps.
- Gets rid of last vestige of old-style specs.
- Uses new hashing for lookup
2015-12-11 02:17:17 -08:00
Tom Scogland
281a869ef6 fix path resolution for mirror packages, especially with dependency fetching 2015-12-10 09:24:01 -08:00
Tom Scogland
786f4cd2c2 add dependency fetching to mirror creation 2015-12-10 08:32:51 -08:00
Tom Scogland
25f2b01a3c fetch: add options to fetch missing or all deps
Small additions to fetch to make it easier to fetch all files necessary for a
build on a system without network connectivity.
2015-12-10 07:27:06 -08:00
alalazo
20e67bc5e6 clang : solve the issue with missing default include paths for OpenMP and libc++
resource : support for finer grained linking of resources
2015-12-09 17:15:26 +01:00
Todd Gamblin
537451f0b1 bugfix: doc build needed additional sys.path due to externals change. 2015-12-09 01:32:12 -08:00
Todd Gamblin
c41b9b7ddc Change github.com/scalability-llnl to github.com/llnl everywhere. 2015-12-09 01:24:15 -08:00
Peter Scheibel
530e049d4a Added nose 1.3.7 source along with with the lgpl license (renamed from lgpl.txt
to LICENSE)
2015-12-04 17:55:20 -08:00
Massimiliano Culpo
50bd4d2e4e mirror : deals correctly with variants that optionally enable resources (if they are archive URLs) 2015-12-03 11:21:11 +01:00
Mario Melara
028cca16e6 Got rid of the unusued default strategy=None 2015-12-02 10:15:33 -08:00
Massimiliano Culpo
39a3cfd4d9 reource directive accepts 'basename' keyword
llvm : libc++ variant
2015-12-02 12:24:37 +01:00
Massimiliano Culpo
4b2168ab8e resources : added missing check after fetch 2015-12-02 10:13:39 +01:00
Mario Melara
d7fdb8e015 Got rid of hard coded strings for adding default 2015-12-01 11:57:54 -08:00
Mario Melara
58f2b39bc8 Changed default to CPU_TARGET env var. Helps deal with target differences between cori and edison 2015-12-01 11:57:17 -08:00
Mario Melara
89fbe4fdfa Changed add_target to include variables rather than hard-coded strings 2015-12-01 11:55:38 -08:00
Massimiliano Culpo
b85dccca92 resources : added error handling for destination keyword on resource directive 2015-12-01 15:12:26 +01:00
Massimiliano Culpo
d3d9b5401b resources : changed name of stage folder 2015-12-01 13:26:44 +01:00
Massimiliano Culpo
a075d581ef resource : fetch strategy constructed from kwargs instead or hardcoded URLFetchStrategy 2015-12-01 12:56:46 +01:00
Todd Gamblin
dfcf567de0 Add a cleaned up repo command. 2015-11-28 19:00:24 -08:00
Todd Gamblin
73ef06018e Integrate namespace attribute into spec, spec DAG, spec YAML. 2015-11-28 16:26:23 -08:00
Todd Gamblin
7383bd393e Fixed bug #42: problem with satisfies() for virtual dependencies.
- _cross_provider_maps() had suffered some bit rot (map returned was
  ill-formed but still worked for cases with one vdep)

- ProviderIndex.satisfies() was only checking whether the result map
  was non-empty.  It should check whether all common vdeps are *in*
  the result map, as that indicates there is *some* way to satisfy
  *all* of them.  We were checking whether there was some way to
  satisfy *any one* of them, which is wrong.

- Above would cause a problem when there is more than one vdep provider.

- Added test that covers this case.

- Added `constrained()` method to Spec. Analogous to `normalized()`:
  `constrain():constrained() :: normalize():normalized()`
2015-11-27 23:06:18 -08:00
Todd Gamblin
763d850a0e Add tests for importing packages directly.
Added test for, e.g.:

    import spack.pkg.builtin.mock.mpich
    import spack.pkg.builtin.mock.mpich as mpich
    from spack.pkg.builtin.mock.mpich import Mpich

Among others.  These ensure that direct package imports work so that
packages can be extended.
2015-11-26 14:23:12 -08:00
Todd Gamblin
89d5127900 New, cleaner package repository structure.
Package repositories now look like this:

    top-level-dir/
        repo.yaml
        packages/
            libelf/
                package.py
            mpich/
                package.py
            ...

This leaves room at the top level for additional metadata, source,
per-repo configs, indexes, etc., and it makes it easy to see that
something is a spack repo (just look for repo.yaml and packages).
2015-11-26 14:19:27 -08:00
Massimiliano Culpo
1fe626ec7c resource directive : sketch of implementation + clang / llvm use case 2015-11-26 17:53:33 +01:00
Peter Scheibel
fc96f62794 Updated documentation/naming in tally_plugin to reflect that the count of the
total number of tests run excludes skipped tests
2015-11-25 18:08:17 -08:00
Peter Scheibel
d50a18d9eb XML output for unit tests is now enabled with an option (disabled by default) 2015-11-25 17:10:45 -08:00
Peter Scheibel
60f7756626 Executable.__call__ original semantics were to avoid redirecting process output
to the output stream if return_output was set. This branch undid that and this
commit restores those semantics.
2015-11-25 12:28:43 -08:00
Todd Gamblin
04f032d6e3 Rename spack.db -> spack.repo
Making distinction between install database and package repositories clearer.
2015-11-25 10:01:44 -08:00
Todd Gamblin
e6d232bfef Rename packages.py to repository.py, PackageFinder to RepoPath. 2015-11-25 09:58:10 -08:00
Peter Scheibel
18dea24df8 Use the xunit nose plugin to generate JUnit XML test results from Spack's unit
tests.
2015-11-24 19:08:37 -08:00
Peter Scheibel
0adf93853d Update log_output to handle cases where sys.stdout/stderr streams do not have
an associated file descriptor (e.g. holds for nose tests where sys.stdout is
assigned to a StringIO object)
2015-11-24 17:58:17 -08:00
Peter Scheibel
5081ba6802 It appears the same test object was returned multiple times for different
unit tests, so tracking tests with sets wouldn't work unless I extracted the
details relevant to the particular test. For now a simple count will work so
using a set was unnecessary anyways.
2015-11-24 10:45:07 -08:00
Peter Scheibel
70049185a5 Activation of Tally plugin to count tests. It doesn't appear to be actually
counting the individual unit tests correctly so I need to chase that down.
2015-11-24 10:39:42 -08:00
Peter Scheibel
099fa1df34 Use nose to run unit tests.
1. Adding a plugin to keep track of the total number of tests run as well as the
number of tests with failures/errors.
2. Some nose plugins (including xunit which will be added in a future commit)
assign stdout to a stream object that does not have a .fileno attribute.
spack.util.executable.Executable now avoids passing stdout to subprocess (and
always uses subprocess.PIPE)

TODO:
1. Still need to figure out how to activate the plugin (as of now it is
being ignored by nose). Newer versions of nose appear to make this simpler
(e.g. the "addplugins" argument to nose.run)
2. Need to include new version of nose in order to use xunit
2015-11-23 18:59:48 -08:00
Todd Gamblin
cf3d236b9f Merge branch 'scheibelp-features/externaldeps' into develop 2015-11-23 17:50:49 -08:00
Todd Gamblin
1447fd0a12 Merge pull request #160 from SteVwonder/stevwonder/develop
Fixed -l flag for 'spack extensions'
2015-11-23 15:50:18 -08:00
Todd Gamblin
8c06b92225 Working PackageFinder / Repo 2015-11-22 20:28:59 -08:00
Tom Scogland
5e93dd6592 modified warning to reference spack clean
clean --dist has been removed, command fixed to something that works.
2015-11-20 11:49:46 -08:00
Mario Melara
fceb5a75b0 Adding new files to compilers 2015-11-13 11:53:38 -08:00
Mario Melara
bfd05d3d27 Changed name of file and class to craype to avoid spack freaking out about versions 2015-11-13 11:48:49 -08:00
Mario Melara
72fa3c0492 Added craype support 2015-11-13 11:48:15 -08:00
Mario Melara
9458f7c7d0 Got rid of my old method of finding in LOADEDMODULES 2015-11-13 11:47:36 -08:00
Mario Melara
a5ba69d68d Added a _cmp_key for the architecture class 2015-11-13 11:46:13 -08:00
Todd Gamblin
38fdd063d9 Fix and move NamespaceTrie to spack.util.naming
- fix up routines in namespace trie.
- trie can now hold intermediate elements.
- trie now has a test case.
2015-11-12 15:17:39 -08:00
Todd Gamblin
72c9604bcb Small fix to prevent this test from interfering with others. 2015-11-12 15:17:09 -08:00
Todd Gamblin
55662eca69 Merge branch 'develop' into mplegendre-multi_pkgsrc_roots
Conflicts:
	lib/spack/spack/__init__.py
	lib/spack/spack/directives.py
	lib/spack/spack/packages.py
2015-11-12 15:16:06 -08:00
Gregory Becker
7c89f9d18c Added the basic ouline of a cray compiler class in lib/spack/spack/compilers/cray.py 2015-11-12 14:31:41 -08:00
Gregory Becker
e78b8c16be used key_comparator decorator from util.lang to compare targets. Fixes find bug 2015-11-12 13:27:10 -08:00
Stephen Herbein
9c30e0210b Fixed -l flag for 'spack extensions' 2015-11-12 08:15:38 -08:00
Peter Scheibel
6d7b26d4e0 Insert lib/spack/external into sys.path. This avoids cases where the system
python install and lib/spack/external have the same library installed. This
requires modifying the names of some modules in lib/spack/external in cases
where both the system python and backported features of future python versions
(i.e. after 2.6) are used (previously distinguished by "from external import X"
and "import X").
2015-11-11 18:04:22 -08:00
Gregory Becker
eb2c083159 Fixed the to_dict from_dict for targets on cray. First version to build/find properly on Cray 2015-11-11 17:29:47 -08:00
Gregory Becker
185f40eb8b fixed my git problems 2015-11-11 16:33:22 -08:00
Gregory Becker
3067705c10 made a to_dict for targets. Also a from_dict for sanity 2015-11-11 16:16:47 -08:00
Gregory Becker
8a13d344a8 bug fix in spec.py 2015-11-11 15:07:57 -08:00
Gregory Becker
271a839957 First possibly working version of the crayport. Not sufficiently tested at all. 2015-11-11 14:22:07 -08:00
Gregory Becker
95a34628a3 Add modules to compilers. Changed compiler to take paths as a list. Changed compiler_for_spec to be aware of different compiler stratigies 2015-11-11 11:32:18 -08:00
Gregory Becker
7e6fc79eb2 Merge branch 'features/spackathon' of github.com:NERSC/spack into crayport
Conflicts:
	lib/spack/spack/compiler.py
2015-11-11 10:35:59 -08:00
Gregory Becker
5347f460b4 adding module find to find command 2015-11-11 10:31:37 -08:00
Gregory Becker
cd69681ae5 merged in work from other computer and starting to track down bugs 2015-11-11 10:09:03 -08:00
Todd Gamblin
5417a514e9 Eliminated two bugs found by spack test and rewrote the parser to be more sane 2015-11-10 18:44:01 -08:00
Gregory Becker
5e75a5c81c Fixed bug that spack.db.exists() returned True for anonymous specs 2015-11-10 15:45:22 -08:00
Gregory Becker
6f339939c4 Removed "any-pkg-name" and replaced it with empty string. Also changed cflag concretizer to concretize each flag individually, allowing us to have unconcretized FlagMap objects for find and uninstall. Now empty flags in find match any, whereas specifying +cflags=\'\' matches only those with empty strings for flags 2015-11-10 15:45:22 -08:00
Gregory Becker
6fa0bb991a Removed cflags from default format string and made them an option within the compiler string. Added -f option to find command; with -f, find prints flags 2015-11-10 15:45:22 -08:00
Gregory Becker
5a9394c65f added default compilers into spec and fixed constrain/concretize bug 2015-11-10 15:45:22 -08:00
Gregory Becker
cb5bc242db Changed flag default to "". Updated printing and other logic to match. Seems to have solved error in normalize. 2015-11-10 15:45:22 -08:00
Gregory Becker
2d77173dfa partial commit of cflags for debugging 2015-11-10 15:45:22 -08:00
Gregory Becker
42b5b7d2dd Commit of compiler flags addition:
Flags are passed from the command line all the way through
build environments to environment variables.
      Flags are specified using +name=value and values are quoted
using escaped quotes when necessary.

Future work includes using the flags in the compiler wrapper script
and hopefully updating the parser for a gentler user experience of
the spec language.
2015-11-10 15:45:22 -08:00
Gregory Becker
db1b21b9aa reclaimed the = sign. Architectures now specified by +arch= instead. Decided to prepend flag names with + for clarity in spec names and ease of parsing. Also generalized variants, although there is not yet a way to specify a generalized (name=value) variant. 2015-11-10 15:45:22 -08:00
Gregory Becker
7989a7f903 Headless specs and /hash spec specification 2015-11-10 15:42:10 -08:00
Gregory Becker
f9c8c4d216 partial commit to merge database 2015-11-10 15:40:00 -08:00
Gregory Becker
4ed22ad932 partial commit of cflags work 2015-11-10 15:39:27 -08:00
Gregory Becker
08729315c6 Added bgq architecture subclass: may require additional functionality to support 2015-11-05 09:21:56 -08:00
Todd Gamblin
0d993947ee Fix SPACK-93, SPACK-94, GitHub #150
- `remove_prefix` was modified to remove from the DB, but the package
  may not have been added to the DB yet when `remove_prefix` is called
  from `cleanup`.

- Made `remove_prefix` a pure utility function (it just removes the prefix)

- Added `installed_db.remove()` call only after the `remove_prefix` in
  `uninstall`.
2015-11-04 16:44:33 -08:00
Mario Melara
b61d554dc8 Fixed architecture.py file so it doesn't have the weird merge changes i.e <<<HEAD etc. Also added target method of recognizing it's own architecture 2015-11-04 13:28:12 -08:00
Mario Melara
2bc73b4a27 Merge branch 'features/spackathon' of https://github.com/NERSC/spack into features/spackathon 2015-11-04 13:21:33 -08:00
Gregory Becker
3a73ae1683 Fixed the previous commit 2015-11-04 13:12:11 -08:00
Mario Melara
9bf8e8573c generic linux architecture subclass 2015-11-04 13:08:48 -08:00
Mario Melara
e3a02ea5c7 Merge branch 'features/spackathon' of https://github.com/NERSC/spack into features/spackathon
Conflicts:
	lib/spack/spack/architecture.py
2015-11-04 13:06:56 -08:00
Gregory Becker
35532d6b0a Changed cray architecture subclass to add proper targets for front at back end nodes 2015-11-04 13:00:35 -08:00
Mario Melara
37260962e5 changed some potential syntax errors and added a way for target to recognize class 2015-11-04 12:57:29 -08:00
Gregory Becker
5ac974c9b2 Enforced that the architecture subclass cannot add a target that shares a name with a target alias 2015-11-04 12:50:22 -08:00
Todd Gamblin
339da1da3d Make architecture reflect OS *and* machine. Use Python's platform module. 2015-11-04 07:46:17 -08:00
Mario Melara
058e72d29c Added default target and also front end and back end targets 2015-11-02 11:08:55 -08:00
Mario Melara
eb2cf1698f Fixed some issues with naming 2015-11-02 11:08:08 -08:00
Mario Melara
9a91da9ccd Added arch_path to list of modules path 2015-10-30 15:59:28 -07:00
Mario Melara
e39586c81d Reverted back all architecture way of finding modules 2015-10-30 15:58:49 -07:00
Mario Melara
2d87bb92ed Changed front-end and back-end to front_end and back_end to avoid error 2015-10-30 15:58:20 -07:00
Mario Melara
db0695e46a architectures folder where the Architecture subclasses reside 2015-10-30 15:57:00 -07:00
Gregory Becker
6e56070386 improved aliasing in target method in architecture.py 2015-10-30 15:15:36 -07:00
Gregory Becker
d177184777 added target method to architecture.py and minor cleanup 2015-10-30 15:12:29 -07:00
Mario Melara
0a004e0fce Merge branch 'features/spackathon' of https://github.com/NERSC/spack into features/spackathon
Merge Gregory Becker's commits with my own architecture commits
2015-10-30 14:53:49 -07:00
Mario Melara
7ab921ff02 Changed architecture class and added class Target 2015-10-30 14:46:26 -07:00
Gregory Becker
382d8478bf prototype of new architecture concretization saved as new_concretize_architecture in concretize.py 2015-10-30 10:23:33 -07:00
Gregory Becker
09597fe8dc updated the executible to return stderr when specified. Added load_module to build_environment.py, loads target 2015-10-30 09:44:28 -07:00
Massimiliano Culpo
6db2a58008 Fixed typo : write_lock() -> write_transaction() 2015-10-30 07:42:58 +01:00
Todd Gamblin
a1c42c2753 Merge Greg Becker's build database support into develop. 2015-10-29 02:22:20 -07:00
Todd Gamblin
671faa4b99 Merge pull request #124 from scheibelp/features/testinstall-cmd
Features/testinstall cmd
2015-10-29 00:16:52 -07:00
Todd Gamblin
ed0c80e1cb Merge pull request #145 from markcmiller86/v-char-bugfix
generalize one of the cases to handle many more kinds of formatting o…
2015-10-29 00:02:01 -07:00
Todd Gamblin
fec6674597 Merge pull request #139 from mathstuf/use-uname-for-arch
architecture: use uname if available
2015-10-29 00:01:30 -07:00
miller86
21e9d5c5c3 generalize one of the cases to handle many more kinds of formatting options 2015-10-27 17:05:27 -07:00
Todd Gamblin
a58ae0c5d0 Build database working with simple transaction support; all tests passing. 2015-10-27 16:36:44 -07:00
Todd Gamblin
bf8479bec6 Fix stupid lock bug.
- Code simplification ignored case where exception was raised.
- If LockError was raised, read and write counts were incremented erroneously.
- updated lock test.
2015-10-27 16:34:26 -07:00
Peter Scheibel
50d0a2643b Not all package stages have an archive file (e.g. source code repos) but all of
them do have a source_path: use this instead to check whether the package
resources were successfully retrieved.
2015-10-27 13:34:46 -07:00
Todd Gamblin
af7b96c14a Lock acquires return True/False depending on whether they got POSIX lock. 2015-10-27 00:35:06 -07:00
Ben Boeckel
6c9b10f73d architecture: remove custom mac_type method 2015-10-26 18:55:10 -04:00
Ben Boeckel
17a58ee0a9 architecture: use uname if available 2015-10-26 18:54:04 -04:00
Peter Scheibel
3b554c709b Fetch errors were also terminating runs of test-install with system exit, so
stage.fetch() was updated to raise a FetchError instead of calling tty.die().
Output is the same for spack install in case of a fetch error.
2015-10-26 15:26:08 -07:00
Ben Boeckel
9d90cb6962 python: use the setdefault method on dict
It allows more concise code and skips some key lookups.
2015-10-26 17:38:19 -04:00
Peter Scheibel
9576860f8c Making SpackError reference consistent. 2015-10-26 14:27:44 -07:00
Peter Scheibel
6a16040462 Automatically create a 'test-output' directory in the current directory if no
output path is specified. Test output files are placed in this directory.
Furthermore the filenames now have the prefix "test" (but otherwise are the
string representation of the spec ID as before).
2015-10-26 11:58:52 -07:00
Todd Gamblin
ead8ac58c6 Working Lock class, now uses POSIX fcntl locks, extensive unit test.
- llnl.util.lock now uses fcntl.lockf instead of flock
  - purported to have more NFS compatibility.

- Added an extensive test case for locks.
  - tests acquiring, releasing, upgrading, timeouts, shared, & exclusive cases.
2015-10-24 19:57:43 -07:00
Todd Gamblin
908a93a470 Add a multiprocess Barrier class to use for testing parallel code. 2015-10-24 19:54:52 -07:00
Peter Scheibel
cc0ee3dc29 The HTML number conversion regex operating against a byte string will only
convert individual bytes, so therefore incorrectly converts utf-8 encoded
characters. Decoding byte strings to unicode objects results in correct HTML
number encodings.
2015-10-23 20:56:06 -07:00
Peter Scheibel
d76c923623 1. Rename CommandError -> InstallError
2. InstallError now subclasses SpackError vs. StandardError (so it is now
handled by the spack shell script)
2015-10-23 16:18:06 -07:00
Peter Scheibel
ea872f8098 1. Added CommandError exception to build_environment
2. The parent of a failed child process in build_environment.fork no longer
calls sys.exit - instead it raises a CommandError (from [1])
3. test-install command now attempts to install all packages even if one fails
2015-10-22 17:44:16 -07:00
Peter Scheibel
246423b4b4 Generate test results (designated as skipped) for parents of failed dependencies 2015-10-22 16:00:03 -07:00
Mario Melara
38508c5a3f Created a control flow logic that will loop through the strategies and find compilers using that. TODO: Need to find a way to locate their executables 2015-10-22 12:02:26 -07:00
Todd Gamblin
b6833f08df Merge pull request #129 from mathstuf/separate-prefix
spack: split spack_root from prefix
2015-10-21 16:04:36 -04:00
Mario Melara
a89abb435f Changed structure of class, add compiler strategy is a method and can create a dict 2015-10-21 11:32:59 -07:00
Mario Melara
9b387e7682 Added strategy method in init 2015-10-21 11:09:05 -07:00
Gregory Becker
51b69ef00b initial fetch on crayport 2015-10-21 09:27:57 -07:00
Mario Melara
c31da9bc8f Made sure architecture works with yaml file 2015-10-20 14:10:54 -07:00
Mario Melara
ca3cc5b23e Refactored architecture class. Now it will automagically create a dict upon instantiation. 2015-10-20 13:37:06 -07:00
Mario Melara
3ba2842b53 Got Architecture class working the way i wanted to. Next to write tests 2015-10-20 13:33:21 -07:00
Todd Gamblin
3c788147ca Add Spack logo. 2015-10-18 19:14:40 -07:00
Todd Gamblin
7598612b86 Better info variant output. 2015-10-17 17:34:39 -07:00
Peter Scheibel
39f0f000f8 Created unit test for core logic in test-install command. 2015-10-15 22:02:14 -07:00
Peter Scheibel
6cd976d036 Better description for test-install command 2015-10-15 20:13:08 -07:00
Peter Scheibel
49b91235bb Minor edit for clarity (generate output for single top level spec vs. iterating
through collection of size 1)
2015-10-15 19:59:57 -07:00
Peter Scheibel
82ed1bc343 Originally I enforced specifying 1 top-level package with the test-install
command by having it consume exactly 1 positional argument (i.e. by removing
"nargs=argparse.REMAINDER") but this does not work when configuring dependencies
of a top-level package (which show up as additional positional args). Instead
now there is an explicit check to ensure there is only 1 top-level package.
2015-10-15 19:38:47 -07:00
Peter Scheibel
e451421db3 1. Specifying the output file path for test-install is now an option (vs. an
argument). The default path is [package id].xml in the CWD where test-install
is called from.

2. Fixed a bug with package.build_log_path (which was added in this branch).

3. keep_stage for package.do_install is now set. This allows uninstalling and
reinstalling packages without (re) downloading them.
2015-10-15 19:22:36 -07:00
Mario Melara
fec197ccac Fixed the output of sys_type(), might need to add back the error handling part 2015-10-15 15:25:13 -07:00
Mario Melara
ccdf105759 Commented out a long list of tests to just include my arch test 2015-10-15 12:48:12 -07:00
Mario Melara
d328f4c3b6 Test suite for architecture class and functions 2015-10-15 12:47:26 -07:00
Mario Melara
29e03ac851 Added __eq__ testing method. Created tests for it in test/ folder 2015-10-15 12:46:44 -07:00
Peter Scheibel
4997f0fe57 Move logic for tracking the build log into package.py (since that is what is
managing the build log) and expose as package.build_log_path.
2015-10-15 12:44:02 -07:00
Peter Scheibel
c985ad7644 Update test failure output: don't include the entire build log, just lines which
mention errors (or if no such lines can be found, output the last 10 lines from
the log).
2015-10-15 12:23:56 -07:00
Peter Scheibel
b9bf0b942c Use spec.traverse vs. recursive function.
Also even though I calculated which installs are new (e.g. vs. packages that
have already been installed by a previous command) I forgot to make use of that
in create_test_output (so I was always generating test output even if a package
had been installed before running the test-install command).

Note to avoid confusion: the 'handled' variable (removed in this commit) did not
serve the same purpose as 'newInstalls': it was originally required because the
recursive approach would visit the same dependency twice if more than one
package depended on it.
2015-10-15 11:52:08 -07:00
Peter Scheibel
f2b4341ad6 Always run with verbose output (so eliminate it as an option). Also remove other
commented options.
2015-10-15 10:45:03 -07:00
Peter Scheibel
11861fb8d7 Changing name of file requires changing function name to be invoked as a command 2015-10-15 10:35:42 -07:00
Peter Scheibel
e3d703b80f Change name of file to conform to conventions. 2015-10-15 10:33:39 -07:00
Peter Scheibel
2ae7839b66 Edit function names to conform to naming conventions. 2015-10-15 10:26:13 -07:00
Peter Scheibel
0d66362cee Only install 1 top-level package with testinstall. Otherwise if multiple
packages are specified and a prior one fails, it will prevent any of the others
from succeeding (and generating test output) even if they don't share
dependencies.
2015-10-15 10:17:08 -07:00
Ben Boeckel
3ce85b2270 spack: split spack_root from prefix
A foundation for allowing runtime configuring of the prefix.
2015-10-15 09:27:05 -04:00
Mario Melara
4f21344e87 Started created the Architecture class for Spack to use 2015-10-14 19:41:07 -07:00
Peter Scheibel
71dcf8833c Make sure to generate output for dependencies as if they were separate tests:
the original intent was to generate output as if each package was a unit test,
but I noticed that I was only generating test output for top-level packages.
2015-10-13 19:02:41 -07:00
Peter Scheibel
1ce6d8b627 Add spec YAML format to test output. 2015-10-13 10:41:47 -07:00
Todd Gamblin
d16095c856 Add forgotten file from previous commit. 2015-10-13 10:35:19 -07:00
Peter Scheibel
9f56d9c807 Don't create test output for any package that was already installed. 2015-10-12 20:56:03 -07:00
Peter Scheibel
6cd22e5786 1. Added Junit XML format
2. Specify output to a file vs. a directory
3. Use [1] and [2] to write an XML file tracking success of package installs in
Junit XML format
2015-10-12 20:49:23 -07:00
Peter Scheibel
b7249d66b3 Adding command testinstall. See "spack testinstall -h" for documentation.
Still need to add output formatting (in a commonly parse-able format like Junit
or TAP). May want to adjust how the build log is accessed in case of a build
failure.
2015-10-12 19:18:31 -07:00
Todd Gamblin
2c81875019 Fix bug in colify color handling. 2015-10-12 14:44:41 -07:00
Mario Melara
b6d2a12ceb Started changing the find in modules method written by Todd 2015-10-07 15:57:29 -07:00
Mario Melara
06fe879745 Merge branch 'features/crayproto' of https://github.com/scalability-llnl/spack into develop 2015-10-07 14:55:05 -07:00
Matthew LeGendre
fac4428766 Documentation for external packages. 2015-10-05 14:04:33 -07:00
Matthew LeGendre
18f0b24a7f Add tests for spack external dependencies, plus fixes for issues found by those tests. 2015-10-05 11:37:36 -07:00
Matthew LeGendre
e4d2ba30b5 Fix failure in spack.test.config.ConfigTest from incorrect compiler config merging 2015-10-05 11:37:36 -07:00
Matthew LeGendre
650c9d4e36 Allow spack to build against external non-spack-installed packages. 2015-10-05 11:37:36 -07:00
Matthew LeGendre
53d70fff01 Fix type error with YAML config when merging lists from different configs. 2015-10-05 11:36:06 -07:00
Matthew LeGendre
53cde110b1 Update Spack mirror command to match docs 2015-10-05 11:36:06 -07:00
Matthew LeGendre
987cd9e78f Update docs for YAML configuration files and preferred concretization 2015-10-05 11:36:06 -07:00
Matthew LeGendre
ee68a76a19 Bug fixes from testing spack preferred packages 2015-10-05 11:36:06 -07:00
Matthew LeGendre
8d7b7e5d5d Use preferred package rules when concretize'ing specs 2015-10-05 11:36:06 -07:00
Matthew LeGendre
b5c597b318 Allow specs to be sorted based on preferred packages, versions, compilers, variants and dependencies. 2015-10-05 11:36:05 -07:00
Matthew LeGendre
59f89dd3be Allow long names in format string variables 2015-10-05 11:36:05 -07:00
karenyyng
f4e72f33c8 added dependencies for py-h5py 2015-10-05 08:24:33 -07:00
Todd Gamblin
d00314c621 Protptype cray compiler detection and support 2015-10-05 01:30:25 -07:00
karenyyng
e9f7d033ff make sure submodule is added in the correct location 2015-10-03 19:13:08 -07:00
Gregory Becker
5fda7daf57 an ordered database test 2015-09-27 17:54:24 -07:00
Todd Gamblin
8818f4ac5e Remove enabled variants from install prefix.
- these make the prefix too long in many cases.
- users can figure out which install is which by querying.
2015-09-27 17:01:35 -07:00
Todd Gamblin
adbd393c39 Remove special characters (@, %, +, ~, etc) from stage name 2015-09-27 17:01:35 -07:00
Todd Gamblin
d0e22b2240 Add ref counting to database. This does not handle removal properly yet. 2015-09-18 11:40:05 -07:00
Todd Gamblin
fb73979345 Allow custom timeout for database locking. 2015-09-17 16:09:59 -07:00
Todd Gamblin
e17ad6a684 Simplify lock context managers. 2015-09-17 01:05:19 -07:00
Todd Gamblin
6dff42be09 WIP for Matt's branch 2015-09-17 00:21:33 -07:00
Todd Gamblin
ccf311c9c6 Several changes to DB implementation.
1. Database stores a file version, so we can add to it in the future.
2. Database indexed by hashes and not numerical indexes.
3. Specs built by database have consistent hashes and it's checked.
4. minor naming and whitespace changes.
2015-09-17 00:16:12 -07:00
Gregory Becker
cd23d2eaa2 Added spack fsck and re-read from glob if the database file does not exist. Allows older versions to smoothly upgrade to the database. 2015-09-15 14:20:19 -07:00
Gregory Becker
9c8e46dc22 Added conservative locking to the spack commands that access the database at _index 2015-09-03 09:21:19 -07:00
Gregory Becker
c3246ee8ba Removed incorrect stage removal code from cleanup() in do_install() 2015-08-31 09:46:55 -07:00
Gregory Becker
f406fcb843 Fixed several issues from code review
Most importantly wrote the Lock, Read_Lock_Instance, and Write_Lock_Instance classes in lock.py
Updated the locking in database.py
TODO: Lock on larger areas
2015-08-31 09:38:38 -07:00
Todd Gamblin
c5c9ada7b0 Fix for GitHub #95
develop: compiler clang@unknown created for /usr/bin/clang-format
https://github.com/scalability-llnl/spack/issues/95
2015-08-27 02:04:58 -07:00
Gregory Becker
9345e78779 Fixed inaccurate comment in spec.py 2015-08-25 16:31:09 -07:00
Gregory Becker
ce8df65d7b Eliminated unnecessary differences in pull request 2015-08-25 16:28:55 -07:00
Gregory Becker
e32c59f805 Fixed file locking. Fix is slightly ugly (lock integer added) but it gets the job done
It avoids having to spin simply on the OSError.
2015-08-25 15:32:45 -07:00
Gregory Becker
4a2bd1753a Added dependency indices to database, ensuring correctly reconstructed specs from database
Began work on file locking, currently commented out.
2015-08-25 15:11:18 -07:00
Todd Gamblin
360b307f68 Save progress. import gov.llnl.spack.mpich works. 2015-08-24 09:14:16 -07:00
Gregory Becker
fb1874165b Eliminated all calls that relied on finding all packages in the opt directory
Replaced them all with references to the database

Implemented caching in the database. The database now only re-reads data
if the database file exists and was changed since this file last wrote to it.

Added the installed_db field to the spack instance

Left the call to all_specs from testdirectory_layout.py for now.
2015-08-21 17:00:39 -07:00
Gregory Becker
55f68bb2b0 Added hashes to the database 2015-08-21 13:04:27 -07:00
Gregory Becker
1da56e5290 Added a database of installed packages.
No methods use the database so far.

Also, a bug fix:
      Previous version did not remove the staging directory on a failed install
      This led to spack refusing to uninstall dependencies of the failed install
      Added to cleanup() to blow away the staging directory on failed install.
2015-08-21 11:32:12 -07:00
Todd Gamblin
a2f2e6a4ff Save changes to external repo integration 2015-08-16 12:54:02 -07:00
Todd Gamblin
92f398a897 Better @memoized decorator. 2015-08-16 12:50:39 -07:00
Todd Gamblin
da98b07624 Add more options to spack edit 2015-08-16 12:50:39 -07:00
Matthew LeGendre
e58ee88a63 Add 'spack packagerepo create' command 2015-08-16 12:50:39 -07:00
Matthew LeGendre
7ea328659f Record package repo origins in .spec files 2015-08-16 12:50:39 -07:00
Matthew LeGendre
c7b8d09c7f Add packagerepos to spack, allowing for creating multiple package repositories. 2015-08-16 12:48:32 -07:00
Todd Gamblin
6f75f5bd6a Merge pull request #88 from trws/git_depth_attempt
adding a fallback on failure with git --depth
2015-08-12 23:59:13 -07:00
Todd Gamblin
1792115b4d Use absolute paths to spack compiler wrappers in CC/CXX/F77/FC 2015-08-04 09:57:06 -07:00
Tom Scogland
9174c06598 adding a fallback on failure with git --depth
Certain remote protocols don't support the `--depth` option.  Since this can't
be checked by URL type or in any sane way locally, this version attempts to
clone git repositories with the --depth option, and if that fails attempts the
clone again without it.
2015-07-27 14:03:04 -07:00
Todd Gamblin
27ca697b43 Add Python version test to detect {} in version strings.
- {} is not compatible with Python 2.6
2015-07-24 14:22:28 -07:00
Todd Gamblin
1e2f421faa Fix Python 2.6 compatibility issue. 2015-07-23 17:01:55 -07:00
Todd Gamblin
19123b4c48 Fix ProviderIndex.update(), which didn't remove stale providers. 2015-07-16 01:41:11 -07:00
Todd Gamblin
e097696390 Update concretize to check for more changes and iterate further. 2015-07-16 01:12:11 -07:00
Todd Gamblin
9087f26537 Fix mangled error message. 2015-07-14 23:59:03 -07:00
Todd Gamblin
0d308ca30f Fix regression of install -j. 2015-07-14 23:45:58 -07:00
Todd Gamblin
9d1f8f6bfd Add test to check packages for Python2.6 compatibility, as well as core. 2015-07-13 18:37:48 +00:00
Florent Pruvost
5acd7cad9a add env. var. in modules: LIBRARY_PATH and PKG_CONFIG_PATH 2015-07-02 02:12:10 -07:00
Todd Gamblin
6892d7189f Merge branch 'features/toggle-build-output' into develop 2015-07-02 00:51:03 -07:00
Todd Gamblin
b3e34be972 Better python template for 'spack create' 2015-07-02 00:39:33 -07:00
Todd Gamblin
edfcac32c3 Fix bug in uninstall (regression in 0fc3b58) 2015-06-20 21:46:52 -07:00
Todd Gamblin
6ed5dd7427 log_output now allows echo to be toggled wtih 'v' key 2015-06-20 20:20:28 -07:00
Todd Gamblin
cfb883646f Fix for git pull --tags when using git 1.7.1
- Added `ignore_errors` option to `Executable.__call__`
- Can avoid raising errors on *specific* error return values.
2015-06-13 17:52:00 -07:00
Tom Scogland
0b5ca25358 Fix for repos with many tags
Ensures all tags are ready before checkout, using `--branch` if possible and
an extra pull if that is not available.  Also adds `--depth 1` to create
shallow clones if the git version is sufficient.

Fixes #64.
2015-06-13 15:29:55 -07:00
Tom Scogland
277df08676 removing vestigial lines from a previous commit 2015-06-13 14:10:45 -07:00
Tom Scogland
d92ac2a6b2 Small ruby enhancement and tmuxinator package
It is currently less painful to pull the source from github, compile it into a
gem, then install the gem, than it is to download a gem and install it.  This
still lacks an activation mechanism, but `spack use tmuxinator` is functional.
2015-06-11 13:51:53 -07:00
Todd Gamblin
0a92349f90 Try a little harder in concretize_version() -- concretize unsafe versions too.
- This can result in the user being prompted to download an unsafe
  version.

- Avoids overly strict errors when something *could* be satisfiable
  but we don't know about hte version.
2015-06-07 15:40:01 -07:00
Todd Gamblin
3f3ceb24c4 Add some comments b/c I didn't understand my own test. 2015-06-07 15:39:40 -07:00
Todd Gamblin
0fc3b58890 SPACK-38: Allow specs to be indexed by virtual dependencies.
- The following now work differently:

      spec['mpi']
      spec['blas']

  This can return a spec for openmpi, mpich, mvapich, etc., EVEN if
  the spec is already concretized.  This means that in a package that
  `depends_on('mpi')`, you can do `spec['mpi']` to see what it was
  concretized to.  This should simplify MPI and BLAS packages.

      'mpi' in spec
      'blas' in spec

  Previously, if the spec had been concretized, these would be `False`
  because there was not a dependency in the DAG with either of these
  names. These will now be `True` even if the spec has been
  concretized.  So, e.g., this will print "YES"

      s = Spec('callpath ^mpich')
      if 'mpi' in spec:
          print "YES"

- Similarly, this will be True:

      Spec('mpich').satisfies('mpi')

- Because of the way virtual dependencies are currently implemented,
  the above required some fiddling around with `package.py` so that it
  would never call `Spec.__contains__` (and result in endless
  recursion).

- This should be fixed by allowing virutal dependnecies to have their
  own package class.
  - This would allow a quicker check for vdeps, without a call to
    `all_packages`.
  - For the time being, `package.py` shouldn't call `__contains__`
2015-06-07 15:36:53 -07:00
Todd Gamblin
eb9859ce75 Executables now have a useful __str__ function. 2015-06-06 16:15:52 -07:00
Todd Gamblin
53feb12ea0 Cleanup and consolidate error handling 2015-06-06 15:50:01 -07:00
Todd Gamblin
5d7a6c0c46 Add FileFilter convenience class to llnl.util.filesystem. 2015-06-06 15:26:48 -07:00
Saravan Pantham
454d06c25c Removed autosave files from previous commit. 2015-06-06 15:26:37 -07:00
Saravan Pantham
c174fe6199 Fixed BLAS and Lapack installations 2015-06-06 15:26:31 -07:00
Todd Gamblin
d19538af07 Fix #48: Ignore hidden files when deciding how to stage.
- Expanding archvies like MAGMA 1.6.2 creates extra hidden files that
  confuse Spack's staging mechanism.

- Added a special case to ignore hidden files when checking whether
  the tarball exploded.
2015-06-01 10:25:58 -07:00
Todd Gamblin
123778dec2 Add -S/--stages option to spack cd/spack location.
- can now change dir to top-level stage
2015-06-01 09:56:35 -07:00
Todd Gamblin
16c2588635 Fix #46: make(parallel=False) regression.
- Added some tests to make sure this stays in place.
2015-05-31 13:03:30 -07:00
Todd Gamblin
ea7b65e2f2 SPACK-69: spack install now logs build output to install directory.
- spack install suppresses build output by default.
  - use install -v to show build output on the console too

- package.py uses log_output context to redirect output and log it to a file
  - filters color codes out of output written to file
  - optionally echos to the terminal

- YAML directory layout knows about its build log.
  - can get path to install build log to from directory layout
  - Package.install now copies the build log to $prefix/.spack/build.out

- Error message from failed install execution now includes build log location
2015-05-29 17:22:33 -07:00
Todd Gamblin
92c21d7134 debug instead of info logging in llnl.util.filesystem 2015-05-29 17:21:30 -07:00
Todd Gamblin
0035100186 SPACK-69: Add context manager to fork and log output in a with block. 2015-05-29 17:20:08 -07:00
Todd Gamblin
9b40d93fc2 Add ability to force color mode even if terminal is NOT a tty 2015-05-29 17:19:03 -07:00
Todd Gamblin
ceecd2ce41 Add ability to test whether tty verbose or debug is enabled. 2015-05-29 17:18:33 -07:00
Todd Gamblin
5676cb0dd1 Add spack find -L to show full hashes. 2015-05-28 17:13:57 -07:00
Todd Gamblin
8cbae642cc Fix bug in spack edit -c 2015-05-28 17:13:23 -07:00
Todd Gamblin
6f8f1bf7af Fix #34: Spack doesn't stop when dep fails to build.
- Fixes regression introduced by #30
- Child process needs to exit on error
2015-05-27 20:27:48 -07:00
Todd Gamblin
c622337802 Remove redundancy: convert with closing(open(...)) to with open(...) 2015-05-18 17:11:03 -07:00
Todd Gamblin
f813d823a1 Merge branch 'features/optional-deps' into develop
This includes:
- Much better variant support (+debug/-debug)
- Optional dependency support (depends_on(... , when='<condition>')
- New config file format (YAML in ~/.spack)
- New Spec format (YAML in $prefix/.spack/spec.yaml)
2015-05-18 16:16:20 -07:00
Matthew LeGendre
46b91ddf57 YAML config files for compilers and mirrors 2015-05-18 16:01:21 -07:00
Todd Gamblin
09151785b3 SPACK-87: enable disabled git fetch tests. 2015-05-18 11:32:15 -07:00
Todd Gamblin
b2f46c703d Fix SPACK-87: Tag checkout fails for older git versions. 2015-05-18 11:26:32 -07:00
Todd Gamblin
cd1ca36488 SPACK-41: More tests to ensure that constrain() reports changes. 2015-05-12 15:48:57 -07:00
Todd Gamblin
805122c789 SPACK-41: bugfix for nonconvergent normalize()
- constrain() wasn't reporting changes properly.
2015-05-12 14:52:46 -07:00
Todd Gamblin
095ff1cb4a Add debug handler to print a stacktrace on Ctrl-C in debug mode. 2015-05-12 14:52:41 -07:00
Todd Gamblin
c44db0133f Fix SPACK-41: Optional deps work with complex condition chains. 2015-05-12 11:45:48 -07:00
Todd Gamblin
cd5fa128c5 Work on SPACK-41: Optional dependencies work for simple conditions.
- Can depend conditionally based on variant, compiler, arch, deps, etc
  - normalize() is not iterative yet: no chaining depends_ons
  - really need a SAT solver, but iterative will at least handle
    simple cases.

- Added "strict" option to Spec.satisfies()
  - strict checks that ALL of other's constraints are met (not just
    the ones self shares)
  - Consider splitting these out into two methods: could_satisfy() and
    satisfies()
    - didn't do this yet as it would require changing code that uses
      satisfies()

- Changed semantics of __contains__ to use strict satisfaction (SPACK-56)

- Added tests for optional dependencies.

- The constrain() method on Specs, compilers, versions, etc. now
  returns whether the spec changed as a result of the call.
2015-05-12 09:56:59 -07:00
Todd Gamblin
ef9deeccd1 Merge branch 'features/yaml-spec' into features/optional-deps 2015-05-10 19:28:47 -07:00
Todd Gamblin
09fff39990 Merge remote-tracking branch 'origin/features/variants' into features/optional-deps 2015-05-10 18:59:56 -07:00
Todd Gamblin
13ff1a9bf6 Remove debug print in link_tree 2015-05-10 18:53:09 -07:00
Todd Gamblin
b4a26c496c Better hash output in find. 2015-05-10 18:48:42 -07:00
Todd Gamblin
43e5465592 Fix bug in directory layout hidden files() 2015-05-10 17:56:27 -07:00
Todd Gamblin
3c49487424 Doc tweak.
- add LLNL release number to new RTD theme.
2015-05-10 13:11:03 -07:00
Todd Gamblin
25af6478c5 Fix SPACK-67: 'spack help stage' was broken.
- remove spurious mutually exclusive group from subparser.
2015-05-10 12:46:33 -07:00
Todd Gamblin
793b842f99 tests for variant concretization 2015-05-10 12:28:25 -07:00
Todd Gamblin
535c1fac87 SPACK-56: fix Variant concretization.
- Variant concretization is tricky:

  - During concretization, a spec without variants (e.g., mpich) means
    "don't care".  So, Spec('mpich').satisfies('mpich+debug') is true
    because it *could* still be built that way.

  - After concretization, a spec without a particular variant means
    "don't know", as that wasn't part of the spec, so the opposite
    relationship is true.  Assume 'spec' is already installed:

      spec.satisfies('mpich+debug')

    this is false beacuse the `debug` variant didn't exist when spec
    was built, so we can't satisfy the explicit request for +debug.
2015-05-10 12:25:07 -07:00
Todd Gamblin
3b1898b8e4 Fix SPACK-40: Finish adding variant directive.
- Variants are now declarable in packages using the variant() directive.
- Variants are checked - you can't just ask for a random variant, it has to be declared.
- conditional logic (@when, if, '+debug' in spec, etc.) still required in package to
  implement variant.
2015-05-10 12:24:03 -07:00
Todd Gamblin
c105a8d42a Small updates to directives. 2015-05-10 12:24:03 -07:00
Todd Gamblin
1f8ce403dc Modularize directives. Now each directive specifies its storage. 2015-05-10 12:24:03 -07:00
Todd Gamblin
0944ba120c relations are now "directives", and code is cleaned up. 2015-05-10 12:24:03 -07:00
Todd Gamblin
5d2ee893c4 Remove TODOs for full DAG information.
- specs on disk now include full DAG info
- no need for normalize() kludges() anymore.
2015-05-10 11:45:12 -07:00
Todd Gamblin
29e833dfef extensions file now in YAML format 2015-05-10 02:56:50 -07:00
Todd Gamblin
2f3b0481de YamlDirectoryLayout now working. 2015-05-09 16:35:02 -05:00
Todd Gamblin
9412fc8083 restore some disabled git tests. 2015-05-09 16:12:04 -05:00
Todd Gamblin
8e87b2176a Updated Sphinx RTD documentation theme supports 4 levels 2015-05-09 13:35:05 -05:00
Todd Gamblin
d6a5266976 Fix 'ç' in François's name. 2015-05-09 13:30:09 -05:00
François Bissey
3cfbc0520a Basic support for IBM XL compilers 2015-05-07 01:54:18 -05:00
Todd Gamblin
42c88aa3ca Merge branch 'features/diy' into develop 2015-05-07 01:53:26 -05:00
Todd Gamblin
1d0975bac6 Bugfixes for yaml specs. 2015-05-05 14:24:46 -07:00
Todd Gamblin
d687962b74 Add test for YAML specs. 2015-05-05 13:18:44 -07:00
Todd Gamblin
53e8e44a8b Make YAML specs more human readable. 2015-05-05 13:06:41 -07:00
Todd Gamblin
278e70e533 Specs to/from YAML are working. 2015-04-29 01:47:09 -07:00
Todd Gamblin
13132c6b97 Add YAML to Spack. 2015-04-28 23:15:13 -07:00
Todd Gamblin
5c04b3c480 Fix for GitHub #30 and SPACK-70. 2015-04-14 15:11:41 -07:00
Todd Gamblin
8b14a46201 documentation updates 2015-04-14 15:11:01 -07:00
Todd Gamblin
314120212d Complete diy command. 2015-04-08 00:22:46 -07:00
Todd Gamblin
5077a2a343 Add a DIY stage class. 2015-04-08 00:22:34 -07:00
Todd Gamblin
ab40d0b1a4 Factor edit_package function out of edit command. 2015-04-08 00:22:07 -07:00
Todd Gamblin
c4a6d04131 Start of DIY command. 2015-04-08 00:20:53 -07:00
Todd Gamblin
203fd861aa Allow spack install -j to throttle make jobs. 2015-04-07 22:21:19 -07:00
Todd Gamblin
ad62b93df9 Merge pull request #23 from mplegendre/rpath_cleanup
Only convert -L<path> to -Wl,-rpath,<path> in compiler scripts if <path>...
2015-03-27 14:14:49 -07:00
Matthew LeGendre
a4cce9eb69 Only convert -L<path> to -Wl,-rpath,<path> in compiler scripts if <path> points into the spack install area
This specifically fixes problems with building gcc, as build and system directories were turning in in gcc library rpaths.
2015-03-27 13:58:57 -07:00
Todd Gamblin
8364f0404c Add some options to spec command. 2015-03-24 08:40:45 -07:00
Todd Gamblin
af92250c7e Add google analytics to docs. 2015-03-15 00:08:58 -07:00
Todd Gamblin
f97966d63a SPACK-18: simpler build error messages
Suppress python stack trace on build error UNLESS in debug mode (spack -d).
Now spack shows errors with a single red arrow, and it's easier to find the actual build output.
2015-03-12 23:50:07 -07:00
Todd Gamblin
132aa690d8 Remove superfluous env scripts (avoid specifically named ones). 2015-03-12 10:39:26 -07:00
Todd Gamblin
560f2c299a Add install_tree, force_symlink helper functions. 2015-03-12 10:32:29 -07:00
Todd Gamblin
0394adcf8d Minor doc tweak. 2015-02-25 10:41:12 -08:00
Todd Gamblin
5eb7e46654 Spell check docs 2015-02-24 10:26:26 -08:00
Todd Gamblin
447e295947 SPACK-62: fix for site docs. 2015-02-24 02:45:21 -08:00
Todd Gamblin
daa38d2ff4 SPACK-59: Documentation updates, bugfix in fetching. 2015-02-24 02:45:07 -08:00
Todd Gamblin
049808a34f Merge remote-tracking branch 'origin/features/SPACK-46' into develop
Conflicts:
	lib/spack/docs/packaging_guide.rst
2015-02-23 10:46:58 -08:00
Todd Gamblin
daef78f538 Update packaging documentataion. 2015-02-23 10:31:22 -08:00
Todd Gamblin
5699cbb597 Fix SPACK-60: 0.8.15 basic docs. 2015-02-23 01:23:30 -08:00
Todd Gamblin
6dab133d9f Same package add icon on mac and linux. 2015-02-23 01:23:30 -08:00
Todd Gamblin
d49c98188a Add an override to colify so we can set terminal dimensions. 2015-02-23 01:23:30 -08:00
Todd Gamblin
02e316e772 Convert ValueErrors to SpackError subclass. 2015-02-18 16:45:54 -08:00
Todd Gamblin
2374eb4dca Fix for SPACK-62
- deactivate -a errors if arg is not activated
- deactivate -af does not.
2015-02-18 16:45:12 -08:00
Todd Gamblin
2eda01c703 uninstall -f ignores nonexisting packages. 2015-02-18 16:21:15 -08:00
Todd Gamblin
2755171e08 Update documentation to reflect new restage/clean behavior. 2015-02-18 14:46:00 -08:00
Todd Gamblin
e67655c31a docs autodetect version. 2015-02-18 14:33:21 -08:00
Todd Gamblin
c7b8a4e25c Fix for SPACK-46: cleanup spack clean, spack restage. 2015-02-18 14:00:37 -08:00
Todd Gamblin
14097e39cc Suppress download status meter when routing I/O to a file. 2015-02-18 10:59:03 -08:00
Todd Gamblin
17ac609d23 Merge branch 'features/memaxes' into develop
Conflicts:
	var/spack/packages/libpng/package.py
2015-02-17 00:49:52 -08:00
Todd Gamblin
d800c23cec Better activate/deactivate logic.
spack activate
  - now activates dependency extensions
  - ensures dependencies are activated in the python installation.
  - -f/--force option still allows the old activate behavior.

spack deactivate
  - checks for dependents before deactivating (like uninstall)
  - deactivate -a/--all <extension> will deactviate a package and ALL
    of its dependency extensions.
  - deactivate -a/--all <extendee> activates all extensions of <extendee>
    e.g.: spack deactivate -a python
  - deactivate -f/--force option allows removing regardless of dependents.
    - deactivate -f can be run EVEN if a package is not activated.
    - allows for clenup of activations gone wrong.
2015-02-17 00:24:58 -08:00
Todd Gamblin
67db8ddca8 Factor ignore logic into a predicate builder. 2015-02-17 00:21:15 -08:00
Todd Gamblin
e6b2c27011 Factor out forking logic to build_environment.py. 2015-02-16 21:41:31 -08:00
Todd Gamblin
614c22fc1b Allow forced deactivation -- best effort unlinking
spack deactivate -f will unlink even if Spack thinks the package isn't enabled.
Made deactivate routines idempotent.
2015-02-16 12:41:22 -08:00
Todd Gamblin
2f67cdaf10 Better time output on build completion. 2015-02-15 12:39:10 -08:00
Todd Gamblin
d1e03329c5 Memoize all_specs() and exists() for better performance.
- Real bottleneck is calling normalize() for every spec when we read it.
- Need to store graph information in spec files to avoid the need for this.
  - Also, normalizing old specs isn't always possible, so we need to do this anyway.
2015-02-15 11:50:13 -08:00
Todd Gamblin
c0c0879924 Better extension activation/deactivation 2015-02-15 01:58:35 -08:00
Todd Gamblin
82dc935a50 installed_extensions_for no longer fails when nothing known about pkg 2015-02-15 01:49:50 -08:00
Todd Gamblin
0c94a6e2b0 Merge branch 'features/python-modules' into features/memaxes
Conflicts:
	var/spack/packages/qt/package.py
2015-02-12 10:01:58 -08:00
Todd Gamblin
aae364b4c9 "spack extensions" shows total extension count. 2015-02-08 23:26:15 -08:00
Todd Gamblin
c077f05705 Move dpeendency environment setup to build_environemnt. 2015-02-08 22:01:00 -08:00
Todd Gamblin
f81b136547 import fix in cmd/clean 2015-02-08 19:43:10 -08:00
Todd Gamblin
20ec80295d setup_extension_environment is now setup_dependent_environment.
- other packages, like Qt, can now use this to set up relevant build
  variables and env vars for their dependencies.

- not just extensions anymore.
2015-02-08 19:41:17 -08:00
Todd Gamblin
60a385d4a4 Minor textual error in extensions command. 2015-02-08 19:40:28 -08:00
Todd Gamblin
befe72b9b9 directory_layout now raises an error when an install fails. 2015-02-08 19:36:30 -08:00
Alfredo Gimenez
a4ac1977a4 merge with python-modules 2015-02-06 16:27:33 -08:00
Todd Gamblin
3a3e4d4391 Do not automatically activate extensions on install. 2015-02-04 15:47:03 -08:00
Todd Gamblin
a9e189972a Bugfix in spak extensions 2015-02-04 15:42:41 -08:00
Todd Gamblin
5bde8359e8 More information in extensions command. 2015-02-02 11:20:36 -08:00
Todd Gamblin
2d9190d264 Add extensions command. 2015-02-02 11:20:36 -08:00
Todd Gamblin
6b90017efa Fixed dumb link_tree bug, added test for link tree. 2015-02-02 11:20:35 -08:00
Todd Gamblin
6400ace901 Add "spack extensions" command to list activated extensions. 2015-02-02 11:19:54 -08:00
Todd Gamblin
70c8bf44b8 Fix for install sanity check -- don't count hidden dir layout files. 2015-02-02 11:19:54 -08:00
Todd Gamblin
de91c95e8e Ability to ignore files in activate/deactivate for extensions. 2015-02-02 11:19:54 -08:00
Todd Gamblin
ff9cb94f4f Add arguements to extends() and activate/deactivate. 2015-02-02 11:19:54 -08:00
Todd Gamblin
2ae7f53b83 Bugfix: Extension hooks shoudl only run for extensions. 2015-02-02 11:19:54 -08:00
Todd Gamblin
89ccdf92cd Add activate and deactivate commands for extensions. 2015-02-02 11:19:54 -08:00
Todd Gamblin
acc62abbd0 Rework do_activate/activate and do_deactivate/deactivate semantics.
- packages can now extend only one other package.
- do_activate() and do_deactivate() are now called on the extension,
  and they automatically find the extendee
- activate() and deactivate() are still called on the extendee and are
  passed the extension.
2015-02-02 11:19:53 -08:00
Todd Gamblin
d13bbeb605 Add PYTOHNPATH to modules for python extensions. 2015-02-02 11:19:53 -08:00
Todd Gamblin
bcccf02020 Add setup_extension_environment() method.
- lets packages do some setup before their extensions run install()
2015-02-02 11:19:53 -08:00
Todd Gamblin
82946d2914 Move symlink tree routines to LinkTree class. 2015-02-02 11:19:52 -08:00
Todd Gamblin
9977543478 Added feature: package extensions
- packages can be "extended" by others
- allows extension to be symlinked into extendee's prefix.
- used for python modules.
  - first module: py-setuptools
2015-02-02 11:19:00 -08:00
Todd Gamblin
7215aee224 do_install() passes kwargs to dependencies. 2015-02-02 11:16:24 -08:00
Todd Gamblin
adb7d614e6 Add pre-install and pre-uninstall hooks. 2015-02-02 11:16:23 -08:00
Todd Gamblin
ebe0c1d83a New "extends" relation adds another special list to the package class. 2015-02-02 11:16:23 -08:00
Todd Gamblin
88afad3e46 Directory layout can now track installed extensions per package. 2015-02-02 11:16:23 -08:00
Todd Gamblin
ba593ccb26 Fix bug in mirror path construction. 2015-02-02 11:15:24 -08:00
Todd Gamblin
3e37903ffd Packages have rpath property. 2015-01-23 00:03:51 -08:00
Todd Gamblin
e6b4530234 Add is_exe function to filesystem. 2015-01-22 13:52:28 -08:00
Todd Gamblin
51ed0d3f6f Properly set install RPATHS for cmake builds. 2015-01-19 20:59:23 -08:00
Todd Gamblin
f35b8b8db4 Better location error output. 2015-01-19 14:05:48 -08:00
Todd Gamblin
c6351b5d00 Fix #11: bug in ProviderIndex
- packages that provided same spec (e.g. mpe) were overwritten in the index
  - Index now has a set of providers instead of a single provider per provided spec.
- see https://github.com/scalability-llnl/spack/issues/11
2015-01-14 00:18:29 -08:00
Todd Gamblin
9db967be98 Fix bug when all deps are back edges.
- Happened with the graph for SAMRAI
2015-01-10 19:23:07 -08:00
Todd Gamblin
011f71a442 Fix bug in STAT graph 2015-01-10 19:09:03 -08:00
Todd Gamblin
935eba2357 Allow commands to return error codes. 2015-01-05 02:33:15 -05:00
Todd Gamblin
5d033fbd0a Expansion works properly, simplified graph code. 2015-01-04 18:49:22 -08:00
Todd Gamblin
b4b8339d0d bugfix for dot graphs of virtual packages. 2015-01-03 17:58:37 -08:00
Todd Gamblin
0a0291678e Factor graph code out into its own module, rework spack graph. 2015-01-03 17:45:54 -08:00
Todd Gamblin
478af54cce Color graph edges. 2014-12-31 14:55:35 -08:00
Todd Gamblin
dba5d020cd Pipelining back edges works, saves more space. 2014-12-30 18:05:47 -08:00
Todd Gamblin
bb3dafa3b5 Reduce number of immediate expand/contracts. 2014-12-29 21:11:28 -08:00
Todd Gamblin
daf1e229f7 More compact graphs: do back edges before forward expansion. 2014-12-29 14:29:44 -08:00
Todd Gamblin
226de0a42d Spec graph works without color. 2014-12-29 01:52:03 -08:00
Todd Gamblin
a6e00f6086 Fix ColorStream 2014-12-29 01:05:21 -08:00
Todd Gamblin
6ffcdc1166 Partially wroking ASCII dependency graph. 2014-12-29 00:03:35 -08:00
Todd Gamblin
860f834aad spack graph allows plotting specific packages. 2014-12-26 13:52:49 -08:00
Todd Gamblin
d3e52d9f9a Fix lack of sorting in version concretization. 2014-12-25 23:13:44 -08:00
Todd Gamblin
b80a0e1da5 Merge branch 'features/qt' into develop 2014-12-25 18:01:51 -08:00
Todd Gamblin
37bdbdd990 URLFetchStrategy now contains exploding tarballs. 2014-12-25 17:57:55 -08:00
Todd Gamblin
0bc861db6e Fix up bzip2 install 2014-12-25 17:55:19 -08:00
Todd Gamblin
20388ece86 Clearer code in filter_file. 2014-12-25 16:07:39 -08:00
Todd Gamblin
7b71e6fb5a spack env command
spack env allows regular commands to be run with a spack build environment.
It also displays the spack build environment for a package.
2014-12-25 16:06:30 -08:00
Todd Gamblin
b3042db755 Add patch function to Package, so that packages can define custom patch functions. 2014-12-25 16:05:45 -08:00
Todd Gamblin
852c1dc286 Print out fetch, build, and total time for builds. 2014-12-23 16:35:54 -08:00
Todd Gamblin
887c29ddc4 Merge branch 'features/better-mirror-support' into develop 2014-12-22 23:28:07 -08:00
Todd Gamblin
5cd4ddaf08 Fix for SPACK-49.
- name conflict in imp.load_source caused this to fail.
- Python modules loaded by imp have unique names now.
2014-12-18 21:38:25 -08:00
Todd Gamblin
08f1701e35 Allow fake installations (just make the directory).
- Use for debugging.
2014-12-18 15:52:45 -08:00
Todd Gamblin
f1c5e64c23 Partial fix for SPACK-48.
- Try to accommodate packages that have grown dependencies better.
- This will only get fully fixed when optional dependencies are supported
  and some extra functionality is added to the spec syntax.
2014-12-15 14:46:34 -08:00
Todd Gamblin
722e73f309 Better mirror path calculation.
- Add support in spack.url for extrapolating actual file type for URL
- Move mirror path computation to mirror.py from package.py
2014-12-12 14:53:55 -08:00
Todd Gamblin
2f90068661 Handle cases where tarball is in the URL query string. 2014-12-12 14:48:59 -08:00
Todd Gamblin
e309b41972 Add support for URLs with query strings
- support tarballs from raw github URLs
2014-12-09 01:07:48 -08:00
Todd Gamblin
c3fce7b77f Bugfix in create and checksum 2014-12-08 22:49:49 -08:00
Todd Gamblin
ba53ccb6b3 Minor tweak: use self.git everywhere in get fetch strategy. 2014-12-04 10:51:23 -08:00
Todd Gamblin
c774455fc5 Bugfix in create command. 2014-12-04 10:47:01 -08:00
Todd Gamblin
652b761894 Merge branch 'features/better-find' into develop 2014-12-02 22:55:11 -08:00
Todd Gamblin
fdc6081244 CLI improvements to find and list. 2014-12-02 22:53:11 -08:00
Todd Gamblin
11cffff943 colify handles ansi color input directly; no more decorator. 2014-12-02 22:32:15 -08:00
Todd Gamblin
e71cf672f1 Fail fast in stage if all fetch strategies fail for a package. 2014-12-02 09:58:30 -08:00
Todd Gamblin
40b4fa5443 Better spack find view. 2014-12-01 23:14:06 -08:00
Todd Gamblin
e15316e825 index_by supports compound index keys. 2014-12-01 23:13:09 -08:00
Todd Gamblin
72c753b93e Colify now supports fixing the number of columns. 2014-12-01 21:29:01 -08:00
Todd Gamblin
22e4d11010 Cleanup code in colify. 2014-11-23 16:19:26 -08:00
Todd Gamblin
287b04e50a Bugfix in terminal_size() 2014-11-23 17:55:37 -06:00
Todd Gamblin
d2fe038caf Minor bugfix for 404 error on fetch. 2014-11-17 15:03:48 -08:00
Todd Gamblin
321a3a55c7 Prompt the user about checksums only if interactive. 2014-11-16 15:26:00 -08:00
Todd Gamblin
eba13b8653 Checksum warning now prompts for override. 2014-11-08 23:20:01 -08:00
Todd Gamblin
79414947ae Merge branch 'features/gcc' into develop
Conflicts:
	lib/spack/spack/package.py
2014-11-08 22:30:46 -08:00
Todd Gamblin
0d044cdc1b Shorter help strings. 2014-11-08 22:18:20 -08:00
Todd Gamblin
1a424c124c Python 2.6 fix for Mac OS 2014-11-08 22:18:08 -08:00
Todd Gamblin
1da5d12bdd 'spack urls' debugging command, more consistent URL extrapolation.
- spack urls inspects all URLs in packages, prints out colors to show how they are parased.
- URL extrapolation test added.
- Extrapolation is more consistent now.
- Extrapolation handles more complex URLs.
- More test cases for extrapolation.
2014-11-08 22:08:15 -08:00
Todd Gamblin
57076f6ca4 URL parsing improvements 2014-11-08 11:42:54 -08:00
Todd Gamblin
55bf243f16 Improved website scraping. 2014-11-07 00:17:25 -08:00
Todd Gamblin
3112096651 Merge branch 'hotfix/vcs-not-required' into develop 2014-11-06 13:41:54 -08:00
Todd Gamblin
fa21acc470 Fix inadvertent requirement of hg, svn, git, etc. 2014-11-06 13:22:15 -08:00
Todd Gamblin
193eddda5e Fix for missing format_doc in package-list command. 2014-11-06 11:46:43 -08:00
Todd Gamblin
b97ee67a4b Working GCC package. 2014-11-05 09:54:43 -08:00
Todd Gamblin
488a6737b7 Merge branch 'features/python' into develop 2014-11-03 14:20:37 -08:00
Todd Gamblin
0f3b80cddb Fix for SPACK-11: Spack compiler wrapper is now in bash.
- Startup is much faster
- Added test for compiler wrapper parsing.
- Removed old compilation module that had to be imported by old cc.
- Removed cc from python version checks now that it's bash.
2014-11-03 14:12:16 -08:00
Todd Gamblin
1656f62a12 Add bzip2 package and spack pkg add command. 2014-11-03 14:12:16 -08:00
Todd Gamblin
8f9de17869 "spack info -r" is now "spack package-list"
- too much going on in this command, and it made subcommand parsing weird.
- information printed is the same but info and package-list are really different commands.
2014-11-01 16:03:09 -07:00
Todd Gamblin
a5859b0b05 Add ability to get subparser by name from argparse 2014-11-01 15:59:29 -07:00
Todd Gamblin
3db22a4e33 Sane self.url for packages (reflects current version) 2014-11-01 15:01:01 -07:00
Todd Gamblin
85a14b68b7 spack compiler add checks for access before listing directories. 2014-10-31 10:30:58 -07:00
Todd Gamblin
f60fd330cb Better error messages for extension() 2014-10-30 15:00:02 -07:00
Todd Gamblin
ee528bc426 Docs for spack list with glob. 2014-10-27 22:40:04 -07:00
Todd Gamblin
75e6e794fb Fix bug with extension() for sourceforge URLs. 2014-10-27 21:32:31 -07:00
Todd Gamblin
d542b7b003 Merge branch 'features/new-docs' into develop 2014-10-27 20:44:00 -07:00
Todd Gamblin
1c4948e1b0 Fix long-standing multimethod test error.
- New inclusive version ranges from git-fetching branch enable a fix.
- Can now write :1 to include 1.3, 1.4, etc.
  - couldn't do this before so provides() was weird.
2014-10-27 20:02:24 -07:00
Todd Gamblin
d98beeec31 Remove ambiguous test case in url_extrapolate. 2014-10-27 19:59:19 -07:00
Todd Gamblin
4d8a47800a Add docs on spack module refresh. 2014-10-27 19:53:56 -07:00
Todd Gamblin
4ecc7e1c93 Document file filtering functions. 2014-10-27 19:53:55 -07:00
Todd Gamblin
4bf6930416 Docs for modules & dotkits. 2014-10-27 19:53:55 -07:00
Todd Gamblin
e2af2a27bf Merge branch 'features/git-fetching' into develop
Conflicts:
	lib/spack/docs/packaging_guide.rst
	lib/spack/spack/cmd/info.py
	lib/spack/spack/package.py
	lib/spack/spack/stage.py
2014-10-27 19:53:05 -07:00
Todd Gamblin
d41d6ed863 Updated packaging docs. 2014-10-27 00:55:38 -07:00
Todd Gamblin
525344aa85 Make info command show VCS URLs properly. 2014-10-27 00:55:25 -07:00
Todd Gamblin
2e2e720a2a Add spack md5 command for simple checksumming. 2014-10-25 14:40:17 -07:00
Todd Gamblin
fa4d58db52 Add a dummy depends_on to the boilerplate. 2014-10-25 14:38:42 -07:00
Todd Gamblin
94a52a8710 Start documenting new features. 2014-10-23 20:15:11 -07:00
Todd Gamblin
87b87199f2 Fix for SPACK-43: compiler finding fails gracefully on unknown error. 2014-10-22 01:08:08 -07:00
Todd Gamblin
e4c2891d4b Test for URL extrapolation. 2014-10-22 00:49:16 -07:00
Todd Gamblin
0c4b8d45df Consolidate archive_file() implementation into Stage. 2014-10-16 08:50:57 -07:00
Todd Gamblin
fb3003f664 Bug fixes for URLs and mirror fetching. 2014-10-16 06:56:00 -07:00
Todd Gamblin
6fdfd83e6b Add test cases for mirroring. 2014-10-15 21:07:41 -04:00
Todd Gamblin
8e3c2d8a26 Refactor fetch tests to use common mock repo module. 2014-10-15 07:40:01 -07:00
Todd Gamblin
fbd7e96680 Add a mirror module that handles new fetch strategies.
- Uses new fetchers to get source
- Add archive() method to fetch strategies to support this.
- Updated mirror command to use new mirror module
2014-10-14 23:26:43 -07:00
Todd Gamblin
8fd4d32408 Use external argparse in spack list, for 2.6 compatibility. 2014-10-10 09:45:48 -07:00
Todd Gamblin
dd2cea4107 Add available versions to generated package list documentation. 2014-10-08 14:08:11 -07:00
Todd Gamblin
36a87f5bf9 Update documentation to add an auto-generated list of packages. 2014-10-08 03:08:40 -07:00
Todd Gamblin
319b37af0e Add spack edit -c option to edit commands. 2014-10-08 03:08:40 -07:00
Todd Gamblin
ff546358f3 Update docs to use new version format. 2014-10-08 03:08:40 -07:00
Todd Gamblin
ee23cc2527 Add archive creation capability to fetch strategies.
- fetch strategy needs to know how to create archive of fetched repo
- allows mirrors to be created from git/other VCS fetches.
2014-10-07 23:26:39 -07:00
Todd Gamblin
e8d131ef96 Minor bugfix in exception constructor. 2014-10-07 23:23:18 -07:00
Todd Gamblin
1801a85966 Move tty output commands out of package and into clean command. 2014-10-07 23:22:58 -07:00
Todd Gamblin
4bde771970 Fix for SPACK-39: Concretization was too restrictive.
- concretize_version() now Use satisfies(), not intersection.
- version class updated with better intersection/union commands
- version now 1.6 "contains" 1.6.5
- added test for new version functionality

- remove none_high and none_low classes
  - version module is now self-contained; save for external 2.7
    functools.total_ordering for 2.6 compatibility.
2014-10-07 23:22:45 -07:00
Todd Gamblin
1c60b3967d Add simple fnmatch filtering to spack list. 2014-10-06 14:11:19 -07:00
Todd Gamblin
37e96ff6e1 Added test for Mercurial fetching. 2014-10-04 18:38:47 -07:00
Todd Gamblin
0fa1c5b0a5 Add Mercurial fetch strategy and lwm2. 2014-10-03 16:57:32 -07:00
Todd Gamblin
727d313c30 Fix location.py to use source_path 2014-10-03 16:57:32 -07:00
Todd Gamblin
faae720c36 add tests for svn fetching. 2014-10-03 16:55:53 -07:00
Todd Gamblin
da84764e97 Add test case for git fetching. 2014-10-03 16:55:53 -07:00
Todd Gamblin
c74cd63389 Callpath build works when a tag is fetched from git. 2014-10-03 16:55:53 -07:00
Todd Gamblin
0cc79e0564 Implement per-version attributes for flexible fetch policies.
- Tests pass with URL fetching and new scheme.
- Lots of refactoring
- Infrastructure is there for arbitrary fetch policies and more attribtues on the version() call.
- Mirrors do not currently work properly, and they get in the way of a proper git fetch
2014-10-03 16:55:13 -07:00
Todd Gamblin
52d140c337 Factor out URL fetching into URLFetchStrategy
- Added FetchStrategy class to Spack
- Isolated pieces that need to be separate from Stage for git/svn/http
- Added URLFetchStrategy for curl-based fetching.
2014-10-03 16:53:13 -07:00
Todd Gamblin
720ced4c2e Add test for URL version substitution. 2014-09-30 00:09:11 -07:00
Todd Gamblin
13eca0357f Bugfix for version substitution. 2014-09-29 23:30:48 -07:00
Todd Gamblin
921a5b5bcc Make fetch fail on 404. 2014-09-29 23:28:16 -07:00
Todd Gamblin
26495ddce9 Reverse sort output versions in spack checksum 2014-09-29 23:27:40 -07:00
Todd Gamblin
e4613a60cf Fix for spack cd -i. 2014-09-29 22:43:40 -07:00
Todd Gamblin
a8ed1ec414 Minor argparse improvement. 2014-09-29 20:00:00 -07:00
Todd Gamblin
3bd52678be MPICH sets MPI compilers to use real compilers and not spack wrappers. 2014-09-27 21:36:42 -07:00
Todd Gamblin
5cc508393a gfortran version detection brokenon debian. 2014-09-27 16:19:56 -07:00
Todd Gamblin
d7984c7540 Update checksum to print new version syntax. 2014-09-27 15:33:27 -07:00
Todd Gamblin
608191bd8c Find custom list_urls depending on the archive URL (e.g. github releases) 2014-09-27 15:32:44 -07:00
Todd Gamblin
2de2d4bea7 Modify MPI installs to work without fortran. 2014-09-23 14:59:30 -07:00
Todd Gamblin
7380de8ee3 Change git URL to https URL in all docs. 2014-09-19 09:55:13 -07:00
Todd Gamblin
39acca4b43 Fix for bug in create introduced by LLVM merge. 2014-09-19 09:42:07 -07:00
Todd Gamblin
fa5594e13f Merge branch 'features/llvm' into develop
- merging parts of LLVM that can be built now.
- need to wait for standalone builds for some of the others.
2014-09-18 23:30:32 -07:00
Todd Gamblin
9165a000a3 Better C++11 support, remove non-standalone llvm-compiler-rt.
- LLVM non-standalone add-ons are difficult to build outside LLVM.
- May have to wait for future versions of LLVM to build some of these
2014-09-18 23:22:03 -07:00
Todd Gamblin
4a19fa793e Support for pkg-config. 2014-09-18 01:42:01 -07:00
Todd Gamblin
68274ee657 Add command to show packages added in particular git revisions.
spack pkg list    [rev]           list packages for revision.
spack pkg diff    [rev1] [rev2]   diff bt/w packages in rev1 and rev2
spack pkg added   [rev1] [rev2]   pkgs added since rev1
spack pkg removed [rev1] [rev2]   pkgs removed since rev2
2014-09-17 15:48:13 -07:00
Todd Gamblin
881fdb66ae Merge branch 'develop' into features/fileutils
Conflicts:
	lib/spack/spack/packages.py
2014-09-16 23:53:44 -07:00
Todd Gamblin
a4c8e945c7 Some fixups for Adam's callpath and adept-utils packages.
- Make spack packages RPATH *ALL* dependencies (i.e. the whole tree)
- prevents callpath link from finding wrong libelf -- always uses the one dyninst used.
2014-09-16 21:59:46 -07:00
David Beckingsale
42ca6c8bfc Add dependency prefixes to CMAKE_PREFIX_PATH 2014-08-22 14:45:44 -07:00
Todd Gamblin
d87a652582 Add spack cd and spack location commands.
- Better shell support for cd'ing into directories
- Fix some csh weirdness with nested aliases.
2014-08-22 11:00:19 -07:00
Todd Gamblin
eb5efed421 Merge branch 'features/postgresql' into develop
- add spack cd command.
- Fix bug in modules hook

Conflicts:
	lib/spack/spack/cmd/stage.py
	lib/spack/spack/hooks/dotkit.py
	share/spack/setup-env.bash
2014-08-21 22:59:39 -07:00
Todd Gamblin
5a9ef130ea Make EnvModule class use spec instead of package, fix using module of non-present package.
- Using the spec doesn't require the package to be there.
- Restore ability to use non-present packages (which was broken)
2014-08-20 11:43:03 -07:00
Todd Gamblin
8cc2298181 Merge branch 'features/python-2.6-compatibility' into develop
- Changed 'import argparse' to 'from external import argparse' in conflicts.

Conflicts:
	lib/spack/spack/cmd/dotkit.py
	lib/spack/spack/cmd/unuse.py
	lib/spack/spack/cmd/use.py
2014-08-20 09:30:40 -07:00
George Todd Gamblin
42e27d04c1 Merge pull request #19 in SCALE/spack from features/modules to develop
# By Todd Gamblin (4) and David Beckingsale (2)
# Via Todd Gamblin
* commit 'b601fd08caf21b5fc11e6998a5ebd20a04ac57ad':
  Bugfixes for csh environment modules.
  Bugfixes, more consolidation of modules code.
  Add csh/tcsh support for modules
  Consolidate most module code into spack.modules and spack.cmd.module
  Fixed up module support
  Added inital module support
2014-08-18 23:11:02 -07:00
Todd Gamblin
b601fd08ca Bugfixes for csh environment modules. 2014-08-17 01:41:32 -07:00
Todd Gamblin
22bec329c1 Bugfixes, more consolidation of modules code.
- specific module classes use __metaclass__ to register themselves.
- bugfixes in module writing.
2014-08-16 22:22:53 -07:00
Todd Gamblin
776560f8ce Add csh/tcsh support for modules
- csh scripting is a GIANT pain in the ass
- hopefully the thin script layer doesn't get much more complex.
2014-08-16 14:58:15 -07:00
Todd Gamblin
221cf6acb9 Consolidate most module code into spack.modules and spack.cmd.module
- One file with all the module classes (spack/modules.py)
  - Has an EnvModule superclass that does most of the work and consolidates common code
  - Subclasses have specializations for different module systems (TclModule, Dotkit)

- One command (spack module) for all the types of modules to use
  - the one command is used by the scripts, only need to maintain in one place
  - has some subcommands for different module types, but they're handled mostly generically.

- Consolidate zsh support into a single setup-env.sh script.
2014-08-16 14:53:57 -07:00
Todd Gamblin
5a3803de39 Add options to stage to make it just print out stage dir. 2014-08-11 22:47:23 -07:00
Todd Gamblin
0bba101ff9 Allow packages to add a dotkit() method and write custom parts of dotkits. 2014-08-11 22:47:22 -07:00
Todd Gamblin
113afe860e More robust symbol inclusion for 'from spack import *'
- avoid errors where some symbols aren't exported to packages.
- reduce the number of places each symbol needs to be mentioned in
  an __all__ list
2014-08-11 22:47:22 -07:00
Todd Gamblin
48d5281e3a Test cases pass; Spack supports Python 2.6! 2014-08-10 18:07:20 -07:00
Todd Gamblin
7082b0a59a cc supports Python 2.6 2014-08-10 18:07:20 -07:00
Todd Gamblin
696e80c62f Get rid of Python 2.7 dict.viewkeys() call. 2014-08-10 18:05:52 -07:00
Todd Gamblin
d95e7ecfe1 Remove dependency on Python2.7 OrderedDict, revise config parser 2014-08-10 17:56:36 -07:00
Todd Gamblin
d86a638099 Add Python 2.7 functools.total_ordering to external modules.
- removing dependence on 2.7
- added it to pyqver2 ads well
2014-08-10 17:54:39 -07:00
Todd Gamblin
ca328a6993 Fix minor warning about Exception.message being deprecated. 2014-08-10 17:52:46 -07:00
Todd Gamblin
a41a19d14d Change dict comprehensions to dict() constructors. 2014-08-10 16:04:41 -07:00
Todd Gamblin
5a5da817a1 Fix SPACK-27 & remove dependence on check_output
- subprocess.check_output is python 2.7 only
- Spack checks for existence of requested prefix, creates it if it does not exist.
2014-08-10 11:52:17 -07:00
Todd Gamblin
7714d08e2e Remvoe dependence on v2.7 argparse by including argparse. 2014-08-10 11:48:07 -07:00
Todd Gamblin
17895bd6fd Add a test case to ensure that Spack is v2.6 compliant. 2014-08-10 11:46:14 -07:00
Todd Gamblin
8ab793a3a6 Add external package with pyqver2 tool 2014-08-10 11:45:32 -07:00
Todd Gamblin
98797459f3 Minor tweaks after spec update.
- spack find -p works properly (get path from spec, not package)

- directory layout and PackageDB normalize things automatically unless
  they're unknown packages (need to do this for spack find -l)

- install test made robust to mock/main package conflicts
2014-08-09 17:41:56 -07:00
Todd Gamblin
5f073ae220 More spec improvements
- Spec.copy() does not create superfluous nodes and preserves DAG
  connections.

- Spec.normalize() doesn't create extra dependency nodes or throw out
  old ones like before.

- Added better test cases for above changes.

Minor things:
- Fixed bug waiting to happen in PackageDB.get()
  - instances was keyed by name, not by spec, so caching wasn't really
    working at all.
- removed unused PackageDB.compute_dependents function.
- Fixed PackageDB.graph_dependencies() so that spack graph works again.
2014-08-09 16:17:40 -07:00
Todd Gamblin
63f8af8078 Add postorder traversal to specs
- Spec.preorder_traversal() is now Spec.traverse().
- Caller can supply order='pre' or order='post'
2014-08-08 13:21:52 -07:00
Todd Gamblin
d5c625d87d Clean up specs, spec comparison, and spec hashing.
- Spec comparison is now less strict
  - compares based on sorted list of dependencies but not
    their structure
  - Makes comparison easy when a spec is not normalized.

- This makes the dep_hash consistent for specs read in from a
  directory layout.  - Can now reliably read in a spec for which the
  package has gone away, and still be able to delete its install.
  - easy switching between git branches

- Fixed latent bug in Spec.flat_dependencies() (was including root)

- added a test for the directory layout so that this code will get
  more exercise.
2014-08-08 13:21:48 -07:00
Todd Gamblin
c55041e9d4 Partial commit of more packages. 2014-08-04 07:54:22 -07:00
Todd Gamblin
cabfc374eb More descriptive error when package constructor fails.
- helps package_sanity test identify which package failed.
- encountered while upgrading versions in Adam's packages to the new format.
2014-08-04 07:54:05 -07:00
Adam Moody
a32816c644 cannot uninstall dtcmp because depends on dtcmp 2014-08-04 07:54:04 -07:00
David Beckingsale
57ddbd282a Fixed up module support 2014-08-04 07:53:40 -07:00
David Beckingsale
94c5c9667c Added inital module support 2014-08-04 07:53:40 -07:00
George Todd Gamblin
d13d32040c Merge pull request #20 in SCALE/spack from openss to develop
# By Matthew LeGendre (2) and Todd Gamblin (1)
# Via Todd Gamblin
* commit 'd7a3c7e555bfd93fbf93ec55608d7fc6aa8052f8':
  Fix up Matt's openss packages.
  Add sqlite to spack
  Add libmonitor to spack.  Still needs svn support for checkout
2014-08-04 07:51:12 -07:00
Todd Gamblin
d0b179962b find and uninstall work when installed package is no longer in spack.
- Make switching between git branches easier.
- Make future removal of packages easier.
2014-08-04 07:40:53 -07:00
Todd Gamblin
d7a3c7e555 Fix up Matt's openss packages. 2014-08-03 12:57:09 -07:00
Todd Gamblin
1ad474f1a9 Allow per-version URLs instead of one single URL per package. 2014-07-30 23:30:07 -07:00
Todd Gamblin
5829b44648 Fix Jeff Keasler's issues and add parmetis package. 2014-07-09 01:37:24 -07:00
Todd Gamblin
5f8724650a Fix for SPACK-35: Fortran not working properly
- Spack needed symlinks in env for fortran compilers.
- 'fc' is a bash bulitin, so can't use it for fortran compiler.
  - switched to 'f90' for this.

- mpich 3 builds with fortran now.
  - enabled shared libs in mpich package
2014-07-09 01:28:23 -07:00
Todd Gamblin
bd8838ca6d Fix typos.
Thanks Adam!
2014-07-08 02:41:29 -07:00
Todd Gamblin
830b9ab25c Fix for finding dependent packages 2014-07-08 02:36:40 -07:00
Todd Gamblin
10318a11dd Fix for dependent package detection. 2014-07-08 02:35:50 -07:00
Todd Gamblin
295ffd8c50 Adding dotkit support to TAU.
- New spack.hooks package
  - contains modules with pre and post install hooks

- New dotkit hook module
  - generates/removes dotkits on install/uninstall

- New spack use, spack unuse commands
  - use same syntax as install/uninstall

- New setup-env.bash script
  - Sets up path, dotkit support

- new spack dotkit command
  - used by script to parse specs, generate
    specs of installed pckages for dotkit file names
2014-07-08 01:58:20 -07:00
Todd Gamblin
0551638944 Add TAU package and routines to filter files, fix sed calls.
- TAU doesn't install to directories with '@' in the name.
- Need to fix up its scripts.
- routines to filter files as sed would, but using python regular expressions.
  - TAU package uses this.
2014-07-02 23:24:10 -07:00
Todd Gamblin
a7fd8be514 Some fixes for spack-python interpreter mode. 2014-07-02 23:24:10 -07:00
Todd Gamblin
4b960c131b Reordered site configuration docs. 2014-06-24 17:07:18 -07:00
Todd Gamblin
3b1e6d4bbc Updated docs. 2014-06-24 17:01:29 -07:00
Todd Gamblin
bf498991d3 Bugfix for mirror command 2014-06-24 17:00:56 -07:00
Todd Gamblin
3c3f272280 spack mirror now checksums fetched archives. 2014-06-24 11:53:44 -07:00
Todd Gamblin
b33412e03a New spack mirror command, configuration.
- Mirrors now appear in ~/.spackconfig, can be edited in that file.
- spack mirror command allows adding, listing, removing mirrors
	- Also still creates mirror directories.
2014-06-24 11:15:41 -07:00
Todd Gamblin
9f8ef85644 Add more output; don't re-add existing compilers 2014-06-24 07:17:30 -07:00
Todd Gamblin
8165393962 import & namespace fixes
- Fix Boost issue reported in SPACK-16
2014-06-23 09:37:53 -07:00
Todd Gamblin
8e066ebf2a Simplified compiler finding logic and caching. 2014-06-23 08:53:55 -07:00
Todd Gamblin
33a11f32fd Multi-compiler support feature-complete. Fix SPACK-3, SPACK-4, SPACK-12.
- Fast compiler finding in path and for other directories
  - first time spack runs, it searches path.
  - user can add more compilers with 'spack compiler add'

- Finds intel, gcc, clang, and pgi compilers with custom version args.

- Builds can plug in alternate compilers with ease (e.g. %intel@12.1)
2014-06-22 12:50:42 -07:00
Todd Gamblin
f1bc65c132 Executables can optionally ignore error output. 2014-06-22 12:50:35 -07:00
Todd Gamblin
ae31838193 Enable allow_no_value for config parser.
- Will be useful for, e.g., mirror lists.
- Previously didn't properly override regex used when no-value fields are allowed.
2014-06-22 12:50:35 -07:00
Todd Gamblin
c091c6d412 Make tests use mock compiler configuration.
- makes sure tests don't fail on systems that don't have some compilers (e.g. clang).
- more control over specific test cases for compilers.
2014-06-22 12:50:35 -07:00
Todd Gamblin
c256d5d1ac Set default editor to vi if EDITOR is not set. 2014-06-22 12:50:35 -07:00
Todd Gamblin
3303365d12 Add working_dir, Version back into package build namespace. 2014-06-22 12:50:34 -07:00
Todd Gamblin
3653cfe6f0 Compiler support now uses configuration files.
- no more need for compiler python files.

- Default compilers are found in user's environment and added
	to ~/.spackconfig automatically

- User can add new compilers by editing configuration file
2014-06-22 12:50:34 -07:00
Todd Gamblin
b6740cf1d1 Make debug and verbose output work properly. 2014-06-22 12:50:34 -07:00
Todd Gamblin
4608b674e5 Minor cleanup and bug fixes. 2014-06-22 12:50:34 -07:00
Todd Gamblin
c8414a8a40 Add support for configuration files. Fix SPACK-24. 2014-06-22 12:50:13 -07:00
Todd Gamblin
042a4730e3 Proper exiting for forked process in do_install() 2014-06-22 12:50:10 -07:00
Todd Gamblin
15f56ccee0 Move globals to spack's __init__.py 2014-06-22 12:50:10 -07:00
Todd Gamblin
e70ac872cb Move globals to spack's __init__.py 2014-06-22 12:50:09 -07:00
Todd Gamblin
f784757113 Initial ability to swap compilers.
Fixes SPACK-16 and forces compiler script to build using compiler wrappers.

- works with gcc and clang on laptop.
2014-06-22 12:49:34 -07:00
Todd Gamblin
ed6454fe78 Better satisfies: e.g., v4.7.3 now satisfies v4.7
- Changed how satisfies() is defined for the various version classes
- Can't just use overlaps() with version lists -- need to account for
  more and less specific versions.

If the version is more specific than the constriant (e.g., 4.7.3 is more
specific than 4.7), then it should satisfy the constraint, because if
a user asks for 4.7 they likely do not care about the minor version.  If they
do, they can specify it.  New Version.satisfies() takes this into account.
2014-06-22 12:33:49 -07:00
Todd Gamblin
285c5444ab Add CompilerSpec class and loading capability.
- spack.spec.Compiler is now spack.spec.CompilerSpec
- Can load a spack.compilers.* module for a particular spec
	- e.g. load Gcc module for gcc@4.7 spec.
2014-06-22 12:33:49 -07:00
Todd Gamblin
45baf73c34 Implemented compiler concretization policy. 2014-06-22 12:33:49 -07:00
Todd Gamblin
c6956bc8e7 Sorted out spack.compilers vs var/spack/compilers 2014-06-22 12:33:49 -07:00
Todd Gamblin
8d78e1142f Make Compiler constructor behave like Spec constructor. 2014-06-22 12:33:49 -07:00
Todd Gamblin
1fa20ec2ba partial checkin 2014-06-22 12:33:49 -07:00
George Todd Gamblin
719978a63d Merge pull request #10 in SCALE/spack from ~SHRADER3/spack:develop to develop
# By David Shrader
# Via David Shrader
* commit '1c1e7295f02b123310efe88b0a23a9cb95cce2f4':
  Fix bug in checksum reporting
2014-05-27 08:45:39 -07:00
Todd Gamblin
d99ee7e6ce Fix for SPACK-28: truncated output in docs. 2014-05-27 08:43:25 -07:00
Todd Gamblin
4665505936 Add index_by function to llnl.util.lang 2014-05-27 08:33:19 -07:00
David Shrader
1c1e7295f0 Fix bug in checksum reporting
The number of variables in the string printed for a checksum failure
was not correct. Now a useful error message is printed instead of a
stack trace and a TypeError.
2014-05-20 15:56:52 -06:00
Todd Gamblin
b32cbd6b13 Better version substitution and wildcard URLs.
- Previously, URLs like this wouldn't work with spack create:

	http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.13.tar.bz2

The '5' in hdf5 would interfere with version wildcard substitution beacuse
the wildcard regex would subsume it.

We now take the name of the package OUT of the URL before splitting it up
and adding version wildcards.  This prevents names with numbers from breaking
url.wildcard_version.

Also added a package sanity check test that ensures all builtin packages
work with wildcard_version.
2014-05-17 13:47:01 -07:00
Todd Gamblin
e0c7a63a5a Bugfix in error message. 2014-05-16 11:33:17 -07:00
Todd Gamblin
3607c26439 Allow widths in spec format strings. 2014-05-04 11:07:16 -07:00
George Todd Gamblin
c59e23c1f9 Merge pull request #8 in SCALE/spack from features/boost to develop
# By Todd Gamblin
# Via Todd Gamblin
* commit 'a0c91791c5ac995b80111a92c94d8fb760caa6e3':
  SPACK-25: Add package for boost.  Works on Linux currently.
  Better temp directory selection.
  Status messages now show install and stage directories.
  Better version wildcard handling, better spidering
2014-04-29 20:16:05 -07:00
Todd Gamblin
b813b40c4f Clean up commands and get rid of inconsistent --dirty options
- checksum  --dirty and create --dirty now changed to --keep-stage
- install   --dirty is now --keep-prefix
- uninstall --force now works properly

- commands use keyword args instead of package instance vars
  where possible (less weird package state)
2014-04-25 15:32:11 -07:00
Todd Gamblin
0c99d9ddc3 Fix SPACK-17: Remove install prefix if install() fails
- except clause now catches anything, not just exception

- sys.exit() changed to os._exit() to avoid interfering with unit tests
  and to avoid raising SystemExit exception when child processes quit.
2014-04-25 14:55:50 -07:00
Todd Gamblin
07ef48a036 Better temp directory selection.
- Prefer tempfile.gettempdir(), then LC dirs like /nfs/tmp2
2014-04-25 14:48:42 -07:00
Todd Gamblin
c2d1478a7c Status messages now show install and stage directories. 2014-04-25 14:48:42 -07:00
Todd Gamblin
3bbca9bd05 Better version wildcard handling, better spidering
- Allow version wildcards to match [_-.] instead of the exact separators
  the version was constructed with.
  - Handles the fact that boost versions are written both 1.55.0 and 1_55_0.

- Update spidering to handle parse errors and warn that Python < 2.7.3 has
  less robust HTML parsing abilities.
2014-04-25 14:41:37 -07:00
George Todd Gamblin
15589754ec Merge pull request #7 in SCALE/spack from bugfix/SPACK-10-fork-on-install to develop
# By Todd Gamblin
# Via Todd Gamblin
* commit 'b4fddad7eff448adf701fc9e88cf02cd6e582f15':
  Fix for SPACK-10: Spack now forks before install()
2014-04-24 21:40:27 -07:00
George Todd Gamblin
b2efea01d5 Merge pull request #6 in SCALE/spack from bugfix/SPACK-20-bin-directories-in-path to develop
# By Todd Gamblin
# Via Todd Gamblin
* commit '554ae9b3552a40ed253250bdebf548e4d8b01976':
  bugfix for SPACK-20: add dependency bin directories to PATH
2014-04-24 21:33:05 -07:00
Todd Gamblin
b4fddad7ef Fix for SPACK-10: Spack now forks before install()
- this allows each install to have full control over its environment,
  and over spack.

- build process can do whatever it wants and doesn't affect main Spack
  process.
2014-04-16 01:19:02 -07:00
Todd Gamblin
514f1acdb0 Default SYS_TYPE should just be an unknown architecture. 2014-04-16 00:55:05 -07:00
Todd Gamblin
554ae9b355 bugfix for SPACK-20: add dependency bin directories to PATH
- Consolidated build environment stuff from package.py into
  build_environment.py

- package.py calls build_environment.py functions just before calling
  install(), in do_install()

- Organization is better b/c SPACK_xxxx environment variables are now
  in build_environment, the only place they're used.  Were previously
  cluttering globals.py.
2014-04-15 22:45:34 -07:00
Gregory L. Lee
655ab60beb use installed property to check package existence 2014-04-14 15:22:03 -07:00
Gregory L. Lee
2aa859e0cf fixed installed dependents and uninstall error message 2014-04-14 15:22:03 -07:00
Todd Gamblin
50f74c117e Fix for SPACK-22: Consistent dependency hashing.
The dependency hash wasn't being generated in a consistent way: when
read from .spec file in the install directory, the spec DAG was not
normalized, but when generated on install, it was.  Thus the same
spec can have two possible hashes, which is obviously not good.

In this commit:
- Added a dep_hash function to spec, which should be used to get the
  dependency hash in all cases.  This function normalizes the spec
  before generating the hash.

- removed sha1 functions from Spec and DependencyHash.  The one on
  Spec is not needed and is confusing (it hashed the whole spec, not
  just hash the deps) and the one on DependencyHash wasn't guaranteed
  to be safe because it can't normalize its parent spec before
  hashing.

Hopefully this makes things consistent and easy.
2014-04-14 14:11:58 -07:00
Todd Gamblin
9fa99030eb Print compiler correctly. 2014-04-14 13:53:40 -07:00
Todd Gamblin
1f9dfeb9b5 Clean up find command, move code to utils. 2014-04-14 12:53:23 -07:00
Todd Gamblin
1e51daab08 Fix broken calls into colify. 2014-04-14 09:42:53 -07:00
Todd Gamblin
79c5dd0952 Fix SPACK-21: stage names are too long
Stage names now hash dependencies like install prefixes.
2014-04-13 17:32:22 -07:00
Todd Gamblin
59a3b8dc67 Make SSL verification failures recommend spack -k
- Adds optional long message to SpackError
- tty now wraps long message text.
2014-04-13 16:38:15 -07:00
Todd Gamblin
980c1f0e47 Update docs for new package structure. 2014-03-16 17:05:24 -07:00
Todd Gamblin
81dc27bf41 Move packages and mock packages to /var/spack 2014-03-16 17:05:15 -07:00
Todd Gamblin
566dc037e7 Add a test for package names 2014-03-16 15:24:03 -07:00
Todd Gamblin
8b1c760ea3 Modify create and edit to work with new package format. 2014-03-16 15:23:44 -07:00
Todd Gamblin
b8b334e86c New, more consistent package directory structure.
- Packages now live in <package_name>/package.py

- spack.packages refactored to use a PackageDB object instead of
  monolithic module.

- Implementation of mock_packages_test.py is greatly simplified

- Added test to exercise install/uninstall code because that wasn't
  covered by existing tests and kept breaking.
2014-03-16 14:51:03 -07:00
Todd Gamblin
74ec74d73c Integrate & clean up packages from LLNL hackathon. 2014-03-15 19:46:41 -07:00
Todd Gamblin
61fc2317d8 Merge branch 'openmpi' into next 2014-03-15 16:00:50 -07:00
Todd Gamblin
f6ea9406c3 Merge branch 'scr' into next 2014-03-15 16:00:20 -07:00
Todd Gamblin
a3beb688e1 Merge branch 'spindle' into next
- Fixed conflicting changes to env/cc
- TODO: get rid of small hack in cc for machines with no CC
2014-03-15 13:08:20 -07:00
Todd Gamblin
bb00f2a7a0 Merge branch 'stat' into next 2014-03-15 12:57:41 -07:00
Todd Gamblin
27093790dc Merge branch 'launchmon' into next 2014-03-15 12:57:34 -07:00
Adam Moody
2588e023ec patches for openmpi 1.6.5 2014-03-15 09:11:44 -07:00
Adam Moody
b207c6779b adding scr 2014-03-15 08:58:18 -07:00
Todd Gamblin
9d01df9e8a Moving utilities to a common LLNL package. 2014-03-14 16:21:15 -07:00
Gregory L. Lee
e38e79417b cleaned up fixmes in package 2014-03-14 13:19:54 -07:00
Gregory L. Lee
6a185dfb24 launchmon dependency added as comment, need Jira SPACK-21 fixed 2014-03-14 12:56:40 -07:00
Gregory L. Lee
f0f0c99c55 launchmon dependency added as comment, need Jira SPACK-20 fixed 2014-03-14 12:54:28 -07:00
Gregory L. Lee
7b28ee2cd2 Merge branch 'launchmon' of ssh://cz-stash.llnl.gov:7999/scale/spack into stat 2014-03-14 12:05:12 -07:00
Gregory L. Lee
759d33ac5b fixes for launchmon build 2014-03-14 12:04:27 -07:00
Matthew LeGendre
cfbf348982 Fix spindle launchmon dependency 2014-03-14 12:04:18 -07:00
Matthew LeGendre
6147d52f2d Merge branch 'version_opt' into spindle 2014-03-14 11:33:37 -07:00
Matthew LeGendre
40cda9fa9c Fix issue when compiler wrappers ran gcc -V 2014-03-14 11:22:09 -07:00
Gregory L. Lee
9cbf5bc311 added workaround to libtool bug + config using non-spack launchmon 2014-03-14 11:06:23 -07:00
Gregory L. Lee
b104c3efce initial stat creation 2014-03-14 08:42:08 -07:00
Gregory L. Lee
37d30f4886 removed curl -k hack after rebase with spack -k fix 2014-03-14 08:42:08 -07:00
Gregory L. Lee
f1f5a5a0bf workarounds for bugs 2014-03-14 08:42:08 -07:00
Adam Moody
940dd829da adding pmgr_collective 2014-03-14 08:42:08 -07:00
Todd Gamblin
47f0edcbe4 Add str() calls around messages in tty 2014-03-14 08:42:08 -07:00
Matthew LeGendre
db92db1c7a Use unzip to unpackage .zip files 2014-03-14 08:42:07 -07:00
Todd Gamblin
40dda596a0 Support github URLs 2014-03-14 08:42:07 -07:00
Adam Moody
ab8e79fc2d change rename to move in mirror creation 2014-03-14 08:42:07 -07:00
Gregory L. Lee
26b86db8a4 added mrnet and graphlib 2014-03-14 08:42:07 -07:00
Matthew LeGendre
008d7a3162 Change spindle package to use hardcoded LaunchMON path 2014-03-13 17:04:02 -07:00
Matthew LeGendre
6f43da74ed Merge branch 'master' into spindle 2014-03-13 16:52:21 -07:00
Matthew LeGendre
bb9c5a19cf Add build fix patch to launchmon 2014-03-13 16:38:34 -07:00
Todd Gamblin
7d655b5407 Add force_url option to launchmon for unversioned URL 2014-03-13 16:09:42 -07:00
Matthew LeGendre
5d96844e57 Add launchmon package to spack 2014-03-13 16:08:22 -07:00
Todd Gamblin
c3b72c3d7c Added a force_url option for packages that do not have nice URLs 2014-03-13 16:08:07 -07:00
Adam Moody
03ee31e0e8 Merge branch 'master' of https://lc.llnl.gov/stash/scm/scale/spack 2014-03-13 15:56:44 -07:00
Adam Moody
fadd2032a3 adding pmgr_collective 2014-03-13 15:56:29 -07:00
Todd Gamblin
6058f7aac6 Add str() calls around messages in tty 2014-03-13 15:53:18 -07:00
Matthew LeGendre
67203f17e0 Merge branch 'master' into zippackages 2014-03-13 15:18:15 -07:00
Matthew LeGendre
15840cc677 Use unzip to unpackage .zip files 2014-03-13 15:17:26 -07:00
Todd Gamblin
77aeac6501 Support github URLs 2014-03-13 14:51:28 -07:00
Adam Moody
c3f3353de0 change rename to move in mirror creation 2014-03-13 14:43:26 -07:00
Matthew LeGendre
78abdcea16 add spindle package 2014-03-13 14:14:31 -07:00
Todd Gamblin
cf5e850f27 Add spack patch docs to build process section. 2014-02-10 09:58:09 -08:00
Todd Gamblin
7152c82ec7 Document mirrors and change mirror precedence. 2014-02-10 09:48:07 -08:00
Todd Gamblin
c9dc4636cc Command to create spack mirrors. 2014-02-10 09:07:24 -08:00
Todd Gamblin
93e80852f5 Cleanup find_versions_of_archive.
- less kludgy matching -- we nw extract the version straight from a
  capture group in the original match, rather than by trying to match
  again.

- Avoids problems like finding "2" as the version in mvapich2-1.9, when
  "2" here is part of the package name.
2014-02-09 09:11:12 -08:00
Todd Gamblin
be7e0a9604 Added docs for patching. 2014-02-08 19:29:33 -08:00
Todd Gamblin
36b6ad2242 started patch docs. 2014-02-08 18:57:04 -08:00
Adam Moody
10148ff802 add mvapich2 module 2014-02-08 18:13:42 -08:00
Todd Gamblin
b816f71f8c Support for patches in packages.
- packages can provide patch() directive to specify a patch file that
  should be applied to source code after expanding it and before
  building.

- patches can have a when spec, so they're only applied under certain
  conditions

- patches can be local files in the package's own directory, or they
  can be URLs which will be fetched from the internet.
2014-02-08 18:11:54 -08:00
Todd Gamblin
9a29aa8d03 Packages can now live in directories, not just .py files.
This gives us a place to put patch files.
2014-02-08 15:18:24 -08:00
Todd Gamblin
f09c58549a Fix regex used in find_versions_of_archive.
Fixes github issue #2, as well as spack create for mvapich.
2014-02-07 10:36:58 -08:00
Todd Gamblin
3df638dd41 Add dirty options to create and checksum, like install. 2014-02-07 10:10:28 -08:00
Todd Gamblin
42610be2e5 Fix bugs that crept into spack clean when stage was refactored. 2014-02-07 09:28:50 -08:00
Todd Gamblin
19df908cb6 Make default spack text non-bold 2014-02-07 09:13:10 -08:00
jprotze
f6a484519e fix alias naming 2014-02-07 14:19:16 +01:00
Todd Gamblin
73774c1249 Spack message text is just bold, not bold white now.
- added capability for just bold and just underline to color.py
- Make tty.msg() display bold text instead of bold white
2014-02-06 16:58:23 -08:00
Todd Gamblin
72f0192ddd Fixed regressions. 2014-02-05 08:30:28 -08:00
Todd Gamblin
9e469c37c4 Bugfix in clean command. 2014-02-05 00:17:36 -08:00
Todd Gamblin
4a913cbbd0 Fix bug in make jobs parameter. 2014-02-05 00:17:36 -08:00
Todd Gamblin
a71c59d4fe Fix Mac OS package icon. 2014-02-05 00:17:36 -08:00
Todd Gamblin
a6b24f85df Architecture string can contain '.' now. 2014-02-05 00:17:35 -08:00
Todd Gamblin
14278fdf0a Allow file URLs 2014-02-05 00:17:35 -08:00
Todd Gamblin
09300d9261 Ignore more errors when spidering. 2014-02-05 00:17:35 -08:00
Todd Gamblin
7290322d96 Fix spelling error in tmp dir 2014-02-05 00:17:35 -08:00
Todd Gamblin
badb130eff Simplify redundant conditional. 2014-02-05 00:17:35 -08:00
Todd Gamblin
c0ea783310 Fix import bug. 2014-02-05 00:17:34 -08:00
Todd Gamblin
6d956f372f Fix bug in staging.
- Stage needs to account for symlinks in self.tmp_dir
- Use os.realpath on self.tmp_dir when checking to see if a stage needs to be rebuilt
2014-02-05 00:17:34 -08:00
Todd Gamblin
03a32f0d5b Can now mirror tarballs in a local directory.
- Can add tarballs to local directory; no longer have to download from source URL.
2014-02-05 00:17:34 -08:00
Gregory L. Lee
b4da28f71e bug fixes
- Make prefix an actual string so that install doesn't fail.
- Executable should throw SpackError on command failure.
2014-01-23 01:30:44 -08:00
Todd Gamblin
8f7c92706f More typo fixes 2014-01-15 00:46:05 -08:00
Todd Gamblin
cab94f86ee typo fixes from Adam 2014-01-14 23:50:50 -08:00
Todd Gamblin
91d6f0b481 Developer documentation 2014-01-12 18:22:19 +01:00
Todd Gamblin
d18be7437f Remove trailing whitespace from license text 2014-01-12 18:19:18 +01:00
Todd Gamblin
08a25adb2f Site configuration docs 2014-01-11 20:42:48 +01:00
Todd Gamblin
72e54caf06 Add line to disable jekyll on github. 2014-01-09 18:18:38 +01:00
Todd Gamblin
912a87c868 Fix docs to account for license header. 2014-01-09 18:06:18 +01:00
Todd Gamblin
ad746bd686 Add a rule for automatically creating gh-pages from html docs. 2014-01-09 16:35:46 +01:00
Todd Gamblin
0b5d531f31 make empty _static directory "exist" to git
Sphinx really wants the _static directory to exist, but git doesn't.
This is a compromise to avoid superfluous warnings from sphinx.

See here:

http://stackoverflow.com/questions/115983/how-do-i-add-an-empty-directory-to-a-git-repository
2014-01-09 14:03:32 +01:00
Todd Gamblin
837fc18d14 Add release number to docs and license. 2014-01-08 11:23:15 +01:00
Todd Gamblin
402c158f3b Change to github URL in docs. 2014-01-08 11:02:12 +01:00
Todd Gamblin
ce9b3511d0 Add license to python files and spack script. 2014-01-08 10:21:35 +01:00
Todd Gamblin
2f520d6119 Change multimethods to take first match instead of being rigid.
- Formerly required that one and only one spec match
- Now allows first match in a list (more flexible and more intuitive)

- introduces new bug that provides() doesn't do the correct thing
  when a version is not in a range that has been explicitly provided.
- TODO: fix this.
2014-01-07 09:52:29 +01:00
Todd Gamblin
36e6ef9fbd Packaging docs are mostly done. 2014-01-06 18:21:27 +01:00
Todd Gamblin
40229f6ed2 More packaging docs 2014-01-06 17:15:25 +01:00
Todd Gamblin
4c9c7ab65f Local specs now called "anonymous specs"
- anonymous specs have no name
- "local spec" came from these first being used in multimethods, i.e. "name of the local Package"
- not the most intuitive name.
2014-01-06 15:18:15 +01:00
Todd Gamblin
93e288859a Simpler prefix args. 2014-01-06 14:14:57 +01:00
Todd Gamblin
5f2feac92c Remove install methods from mock packages (not needed) 2014-01-06 11:05:58 +01:00
Todd Gamblin
df0c1134c9 SPACK-14: Bugfix in Spec.normalize()
- Normalize now updates the provider index as it addes package dependencies.
- Fixes problem where this breaks:

  a depends_on mpi
  a depends_on b
  b depends_on mpich

- Packages now restrict the mpi dependency to mpich
2014-01-06 09:25:51 +01:00
Todd Gamblin
d0b82d291f Change deps on 'mpich' to 'mpi' 2014-01-04 14:44:16 -08:00
Todd Gamblin
b579ba213d More packaging documentation 2014-01-04 14:43:44 -08:00
Todd Gamblin
30d3b32085 Bug fix in how class names are determined 2014-01-03 11:43:29 -08:00
Todd Gamblin
208db9b002 More packaging documentation. 2013-12-26 13:47:13 -08:00
Todd Gamblin
a4cda94524 install() now takes spec AND prefix 2013-12-25 17:19:51 -08:00
Todd Gamblin
0cd5866eea Some fixes recommended by PyCharm 2013-12-25 15:40:32 -08:00
Todd Gamblin
4ff8766a22 Starting on packaging docs. 2013-12-25 15:30:42 -08:00
Todd Gamblin
354c8a281b make create and checksum consistent.
- create now searches and prompts for checksums.
- makes package creation easier
2013-12-24 00:57:56 -08:00
Todd Gamblin
2f1eae8c0d spack checksum works. 2013-12-23 16:12:02 -08:00
Todd Gamblin
db32769347 spack edit fixed. 2013-12-23 14:01:10 -08:00
Todd Gamblin
7267734a5b Spack create works again w/new package format. 2013-12-23 12:09:19 -08:00
Todd Gamblin
358bfdaaf1 Another multimethod test for vdeps 2013-12-23 10:28:50 -08:00
Todd Gamblin
87dc2151b7 constrain() now consistent with satisfies()
- Added checks to constrain() so that it is consistent with satisfies()
- Added many more test cases for satisfiability and constraints on deps
- Virtual packages are handled properly in satisfies() and constrain()
	- bugfix: mpileaks^mpich2 would satisfy mpileaks^mpi@3:
	- this case is now handled.
2013-12-23 10:19:55 -08:00
Todd Gamblin
7088cdf25f Fix for SPACK-13, and satisfies() now handles deps.
Added more test cases for multimethods.  In doing so, (re)discovered that
satisfies() really needs to handle dependencies properly.

Implemented support for dependencies in satisfies, but constrain() now
isn't consistent (as we do not currently constrain deps), so need to
implement that.

Virtual dependency support probably needs some deeper thought.  i.e.,
there is probably an intermediate DAG form that would make the needed
checks easier.  Right now we have to build ProviderIndexes to figure out
how virtual dependencies are set up.  If the vdep were preserved in the DAG,
then we could just check for things like incompatible providers directly.
2013-12-22 17:55:58 -08:00
Todd Gamblin
f7706d231d SPACK-2: Multimethods for specs.
- multi_function.py -> multimethod.py
- Added @when decorator, which takes a spec and implements matching for method dispatch
- Added multimethod unit test, covers basic cases.
2013-12-21 17:19:05 -08:00
Todd Gamblin
99b05fd571 More docs. 2013-12-21 15:32:34 -08:00
Todd Gamblin
dfd0440a7e Color tweaks for find. 2013-12-21 15:30:35 -08:00
Todd Gamblin
a63482be73 Docs for spack find 2013-12-21 15:30:35 -08:00
Todd Gamblin
88017ec49e Made formatting specs easier with format() syntax.
- Replaced existing str_no_deps() function with more flexible format() function.
- Spec.tree() can take a format argument now, as well.
2013-12-21 15:30:35 -08:00
Todd Gamblin
e645bb065a SPACK-1: Multi-version installation now works front to back with specs. 2013-12-21 15:30:10 -08:00
Todd Gamblin
af639dca16 Make dirty installs part of package lifecycle 2013-12-18 11:42:56 -08:00
Todd Gamblin
c7beac295d More on installing with virtual packages 2013-12-18 11:36:55 -08:00
Todd Gamblin
256c42a34c Added a target to upload docs automatically. 2013-12-18 11:18:11 -08:00
Todd Gamblin
7be511a352 Finished basic usage. 2013-12-18 11:02:31 -08:00
Todd Gamblin
c9e40b725d Start of basic documentation 2013-12-12 04:25:31 -08:00
Todd Gamblin
c7539fe950 Better info command. 2013-12-12 01:04:32 -08:00
Todd Gamblin
7575f99bea Documentation skeleton 2013-12-09 20:17:08 -08:00
Todd Gamblin
8d51c95e68 use get instead of setdefault for kwargs. 2013-12-09 10:44:46 -08:00
Todd Gamblin
936f54761b type(foo) == bar -> isinstance(foo, bar)
Changed type checks in most places.
2013-12-09 00:47:17 -08:00
Todd Gamblin
fa2e8dab11 Additional circular reference checking 2013-12-08 21:38:37 -08:00
Todd Gamblin
e0c029c347 Fixes for virtual packages.
- Added more tests
- cleaned up spec preorder traversal
- fixed concretization
2013-12-08 19:26:29 -08:00
Todd Gamblin
90f2154a32 Better test output -- include totals. 2013-12-07 15:16:09 -08:00
Todd Gamblin
87fedc7e1e Added support for virtual dependencies ("provides") 2013-12-07 13:51:46 -08:00
Todd Gamblin
344e902b15 More stage tests. 2013-12-01 23:57:07 -08:00
Todd Gamblin
ff2018bc85 Reworked stage paths to allow %u for username. Added stage test. 2013-11-24 14:06:11 -08:00
Todd Gamblin
3de3efc75d Gracefully handle lack of network connection. 2013-11-23 21:01:07 -08:00
Todd Gamblin
1247036141 Generalize package relations like depends_on, provides, conflicts.
All of these do the same thing.  So they are all now generalized
to a single closure function; just the name of the updated variable
in the package is different.
2013-11-23 15:46:04 -08:00
Todd Gamblin
6cf6eac3de Move concretization into its own class.
Allows easy overriding of a single policy.
2013-11-23 15:18:43 -08:00
Todd Gamblin
f31aaeed98 Cleanup and comments. 2013-11-23 14:55:09 -08:00
Todd Gamblin
2dff2f3341 Fix virtual method. 2013-11-23 13:43:59 -08:00
Todd Gamblin
389fa1792d Added web spider capability for listing versions. 2013-11-23 13:04:36 -08:00
Todd Gamblin
fe7da0dcff Update libdwarf URL. 2013-11-20 14:43:17 -07:00
Todd Gamblin
b5c565891f First cut concretization works, with tests.
Mock packages now all have their own version lists.
2013-10-26 14:04:09 -07:00
Todd Gamblin
7bdf93234a Added unit tests for spec normalization. 2013-10-18 16:39:09 -07:00
Todd Gamblin
481a617d65 spack test runs all tests by default
'spack test -a' formerly ran all test and 'spack test' listed available tests.
Now, 'spack test' runs all tests and 'spack test -l' lists available ones.
2013-10-17 14:53:40 -07:00
Todd Gamblin
558cf7e406 spec flatten, normalize, validate; package validate
New operations for manipulating spec and package DAGs.

For specs:
	flatten:   gather all deps to the root
	normalize: Merge constraints and make spec match package DAG

For packages:
	validate_dependencies: Make sure spec constraints in package DAG are sane.

Added tests for above methods.  Also added beginnings of concretization logic,
to turn abstract spec into a concrete one.

Still need proper tests for normalize().
2013-10-17 14:46:00 -07:00
Todd Gamblin
db07c7f611 Spec constraints and normalization now work.
- Specs can be "constrained" by other specs, throw exceptions when constraint
  can't be satisfied.

- Normalize will put a spec in DAG form and merge all package constraints with
  the spec.

- Ready to add concretization policies for abstract specs now.
2013-10-15 03:04:25 -07:00
Todd Gamblin
3fb7699e1e Command to launch interpreter with spack in sys.path 2013-10-11 23:24:06 -07:00
Todd Gamblin
09fd944de5 Command to run pydoc on spack classes. 2013-10-11 23:23:41 -07:00
Todd Gamblin
bb63327da0 Refactor utils into separate modules. 2013-10-07 18:54:58 -07:00
Todd Gamblin
f2046a4aa3 Start to make a bigger package out of utils.py
- moved none_compare functions to util.none_high
  and util.none_low packages
- renamed utils.py to util package
2013-10-07 18:12:26 -07:00
Todd Gamblin
618571b807 Checkpoint commit: much-improved spec class.
Still organizing things.
2013-10-07 17:57:27 -07:00
Todd Gamblin
157737efbe Add spec architeccture, redo color output support. 2013-06-29 15:59:43 -07:00
Todd Gamblin
ebc507dc6e Clean up half-downloaded tarballs. 2013-06-29 15:59:08 -07:00
Todd Gamblin
7a67cc1675 Adding expression syntax for console colors. 2013-06-29 15:56:29 -07:00
Todd Gamblin
5c761aafab Add checks for version 2.7 2013-06-02 13:54:46 -07:00
Todd Gamblin
8f37817ae1 Better error messages for spack list -v. 2013-05-17 16:56:00 -07:00
Todd Gamblin
57ef3b8a80 Ability to list versions from web page with spack list -v PACKAGE
Experimental feature automatically parses versions out of web pages and prints what
it thinks are avaialble versions of a package, e.g.:

    $ spack list -v libunwind
    1.1    1.0   0.98.6  0.98.4  0.98.2  0.98  0.96  0.93  0.91  0.1
    1.0.1  0.99  0.98.5  0.98.3  0.98.1  0.97  0.95  0.92  0.9   0.0
2013-05-17 16:25:00 -07:00
Todd Gamblin
6e557798e8 Added command to print out URL and homepage. 2013-05-17 16:04:56 -07:00
Todd Gamblin
7c98ee9644 Renamed variables called 'spec' to 'path' 2013-05-17 10:38:39 -07:00
Todd Gamblin
eb0832e379 list_modules will now find directories. 2013-05-13 10:35:38 -07:00
Todd Gamblin
b2f78ef78e Added EBNF grammar. 2013-05-12 19:30:55 -07:00
Todd Gamblin
b2a5fef6ad Commands take specs as input instead of names.
modified clean, create, fetch, install, and uninstall
2013-05-12 14:17:38 -07:00
Todd Gamblin
ad4411bc9e More rubust spec parsing and error messages 2013-05-12 11:10:36 -07:00
Todd Gamblin
c3f52f0200 Initial implementation of package specs, including parser.
spec.py can parse full dependence specs like this:
	openmpi@1.4.3:1.4.5%intel+debug ^hwloc@1.2

These will be used to specify how to install packages and their dependencies,
as well as to specify restrictions (e.g., on particular versions) for
dependencies.  e.g.:

class SomePackage(Package):
	depends_on('boost@1.46,1.49')

This would require either of those two versions of boost.

This also moves depends_on out to relations.py and adds
"provides", which will allow packages to provide virtual
dependences.

This is just initial implementation of the parsing and objects
to represent specs.  They're not integrated with packages yet.
2013-05-09 14:21:16 -07:00
Todd Gamblin
5dd2c53e38 Removed old versions.py 2013-05-09 14:19:03 -07:00
Todd Gamblin
1b1c1c07f9 Don't exit after one test. 2013-05-09 14:18:38 -07:00
Todd Gamblin
fd93d4c235 Changed class name. 2013-05-09 14:18:11 -07:00
Todd Gamblin
2df8a29b9b Removed executable bit. 2013-05-09 14:15:38 -07:00
Todd Gamblin
50718fe57f Tests can be run via spack test <test_name> 2013-04-28 11:27:33 -07:00
Todd Gamblin
422d291b11 This adds support for multi-platform methods.
You can now do this:
class MyPackage(Package):
    def install(self):
        ...default install...

    @platform('bgqos_0')
    def install(self):
        ...specialized install for bgq...

This works on functions other than install, as well (as long as they're in a Package)
2013-04-04 10:22:49 -07:00
Todd Gamblin
e1551de976 Moved install-spack to its own simpler command. 2013-03-25 15:27:28 -07:00
Todd Gamblin
aa0fd6c17a Fix in docs. 2013-03-22 16:24:44 -07:00
Todd Gamblin
269cf53a68 Documentation and small changes. 2013-03-22 13:46:01 -07:00
Todd Gamblin
e410df743a Simpler implementation of depends_on. 2013-02-25 18:18:48 -08:00
Todd Gamblin
27b9204785 Better spack -h: added cmd descriptions.
- each cmd has a desscription attribute that is used for the help strign in argparse.
2013-02-22 00:20:24 -08:00
Todd Gamblin
707db8dafe Better handling of stage.
- better symlink handling
- remove stage directories on successful install.
2013-02-21 23:03:40 -08:00
Todd Gamblin
5899308ad3 Parallel bootstrap for cmake. 2013-02-21 20:05:11 -08:00
Todd Gamblin
bd59689fdc Minor changes; loosened up parallel build for dwarf. 2013-02-21 19:27:27 -08:00
Todd Gamblin
b39165b999 Fix regression in clean. 2013-02-21 19:10:28 -08:00
Todd Gamblin
2a908d6a0e Added help command and purge command. 2013-02-21 19:05:56 -08:00
Todd Gamblin
705447bdc2 Use tmp directory for downloading and building 2013-02-21 19:05:16 -08:00
Todd Gamblin
1c4e16afdf Fixed bug in parallel make option. 2013-02-20 15:44:25 -08:00
Todd Gamblin
fb172bc702 Added libunwind and fixed link issues in cc. 2013-02-20 15:22:00 -08:00
Todd Gamblin
48b0351945 Fixed passing of dependence prefixes to cc. libdwarf works. 2013-02-19 19:26:54 -08:00
Todd Gamblin
d534c539d4 Fixes, remove parallel build for libdwarf due to race case. 2013-02-19 17:08:38 -08:00
Todd Gamblin
7d9d4f3484 rpaths for dependencies. elf, dwarf, cmake build on Linux 2013-02-19 01:20:50 -08:00
Todd Gamblin
5d81cfdac6 Require python2.7 2013-02-18 23:52:50 -08:00
Todd Gamblin
38becacace Dependencies now work. Added libelf, libdwarf. 2013-02-18 23:46:04 -08:00
Todd Gamblin
cc76c0f5f9 Initial version of spack with one package: cmake 2013-02-13 17:50:44 -08:00