Commit graph

732 commits

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