* Add latest release 3.0.2
https://www.open-mpi.org/software/ompi/v3.0/:x
Signed-off-by: Daniel Topa <dantopa@lanl.gov>
* 1. Added correct md5 sum for Open MPI v3.1.1 (https://www.open-mpi.org//software/ompi/v3.1/)
2. Made v3.1.1 the default version
3. Added libmpiso versions for v3.1.1 and 3.0.2
Signed-off-by: Daniel Topa <dantopa@lanl.gov>
* Added Open MPI v2.14 to version list; Tested build; Added libmpi.so version
Signed-off-by: Daniel Topa <dantopa@lanl.gov>
If the OpenMPI build finds the infiniband drivers in /usr/lib64, it adds
-Wl,-rpath -Wl,/usr/lib64 to the OpenMPI wrappers. If the wrappers are using
a compiler outside of /usr, and the OpenMPI wrappers are used to build software
outside of Spack, they will rpath /usr/lib64 into the executable which then has
GLIBC, GLIBCXX runtime errors due to it picking up GCC libraries in /usr/lib64.
This adds the directories specified in "extra_rpaths" to the OpenMPI wrappers,
which allows them to use the correct compiler when invoked outside of Spack
builds.
Modifications:
* Added zlib dependency, starting from version 3.0.0
* Added memchecker support for debugging
* Remove mpirun and similar links if slurm is selected as a scheduler
This includes:
* Added latest available versions (1.11.9, 2.0.0)
* Added variants to enable graphical output from lstopo
* Enabled build of the bundled netloc package if @2.0.0:
* Added dependency from numactl if @:1.11.9
* Added a constraint to avoid using hwloc@2.0.0 with openmpi
* [OpenMPI] Add the 'headers' property. This removes some redundant
headers from sub-directories, returned by the default '.headers'
handler.
* [OpenMPI] In the .headers property, add a fallback to search all of
prefix for the mpi.h header. Recommended by @junghans to support some
external configurations, see #7268.
Following the discussion with Todd and Adam, find has been modified to
accept glob expressions. This should not affect performance as every
glob implementation I inspected has 3 cases (no wildcard, wildcard but
no directories involved, wildcard and directories involved) and uses
fnmatch underneath.
Mixins have been changed to do by default a non-recursive search (but
a recursive search can still be triggered using the recursive keyword).
Following a comment from Todd, the search path for the files listed in
`filter_compiler_wrappers` can now be narrowed. Anyhow, the function
implementation still makes use of `find`, the rationale being that we
have already seen packages that install artifacts in e.g. architecture
dependent folders. The possibility to have a relative search path might
be a good compromise between the previous approach and the one suggested
in the review.
Also: 'ignore_absent' and 'backup' keyword arguments can be optionally
forwarded to `filter_file`.
Implemented a declarative syntax for the additional behavior that can
get attached to classes. Implemented a function to filter compiler
wrappers that uses the mechanism above.
Modifications:
- added support for multi-valued variants
- refactored code related to variants into variant.py
- added new generic features to AutotoolsPackage that leverage multi-valued variants
- modified openmpi to use new features
- added unit tests for the new semantics
- _spider in web.py was actually failing to spider deeper than a certain
point.
- Fixed multiprocessing pools to not use daemons and to allow recursive
spawning.
- Added detailed tests for spidering and for finding archive versions.
- left some xfail URL finding exercises for the reader.
- Fix noqa annotations for some @when decorators
there were various updated packages, both for the 2.x, 2.0.x,
and 1.10.x release branches of Open MPI.
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
(cherry picked from commit 3b671935783fc3af76dc642a54461c2f02ab8ebf)
- Added a new interface for Specs to pass build information
- Calls forwarded from Spec to Package are now explicit
- Added descriptor within Spec to manage forwarding
- Added state in Spec to maintain query information
- Modified a few packages (the one involved in spack install pexsi) to showcase changes
- This uses an object wrapper to `spec` to implement the `libs` sub-calls.
- wrapper is returned from `__getitem__` only if spec is concrete
- allows packagers to access build information easily
We just released 2.0.2 yesterday, so add in that release for
spack. Don't need the PMI patch for this release.
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
* PackageMeta: `run_before` is an alias of `precondition`, `run_after` an alias of `sanity_check`
* PackageMeta: removed `precondition` and `sanity_check`
* PackageMeta: decorators are now free-standing
* package: modified/added docstrings. Fixed the semantics of `on_package_attributes`.
* package: added unit test assertion as side effects of install
* build_systems: factored build-time test running into base class
* r: updated decorators in package.py
* docs: updated decorator names