Commit graph

2211 commits

Author SHA1 Message Date
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