- Make spack packages RPATH *ALL* dependencies (i.e. the whole tree)
- prevents callpath link from finding wrong libelf -- always uses the one dyninst used.
# 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
- 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.
- 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
- 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.
- 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.