Commit Graph

55 Commits

Author SHA1 Message Date
Todd Gamblin
eea786f4e8 relicense: replace LGPL headers with Apache-2.0/MIT SPDX headers
- remove the old LGPL license headers from all files in Spack
- add SPDX headers to all files
  - core and most packages are (Apache-2.0 OR MIT)
  - a very small number of remaining packages are LGPL-2.1-only
2018-10-17 14:42:06 -07:00
Michael Kuhn
e176f2a2f5 Fix missing dependencies and glibc build failures (#9106)
* bison: Add missing build dependencies

bison also depends on cmp, which is currently not available in Spack.

* help2man: Add missing build dependency

* m4: Fix build with newer versions of glibc

* openssl: Add missing build dependency

openssl's configure script is actually a Perl script.

* texinfo: Add missing perl dependency

* diffutils: New package

* findutils: Fix build with newer versions of glibc

* mvapich2, mpich: Add missing findutils dependency
2018-10-10 14:17:12 +02:00
Denis Davydov
2cd7783e9e mpich: fix 3.2 patch (#9330)
patch does not apply to 3.2.1 (released in late 2017).
Given that it fixes the issue discussed in May 2016, most likely
it shall apply only to 3.2
2018-09-28 08:18:55 -05:00
Adam J. Stewart
908d2dcd4d Add top-level attributes for git M-P packages 2018-07-25 23:10:10 -07:00
Massimiliano Culpo
a119a2d2d8
mpich: added version 3.2.1 (#7598) 2018-03-26 12:19:37 +02:00
Todd Gamblin
54f97d1dec
Update copyright on LLNL files for 2018. (#7592) 2018-03-24 12:13:52 -07:00
Omri Mor
b4b01b82ac mpich@develop: needs git submodules (#7357) 2018-02-28 19:48:57 -06:00
alalazo
c62b3eef55 filter_compiler_path: added the possibility to narrow search path
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`.
2018-02-13 02:18:28 -08:00
alalazo
22def01adf mixins: implemented declarative syntax
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.
2018-02-13 02:18:28 -08:00
alalazo
8e0f9038ab Improved naming of properties and classes (per Denis comments). 2018-02-13 02:18:28 -08:00
alalazo
28e129b087 Added mixins to modularize common behaviors across build-systems.
Modifications:
  * added a mixin to filter compiler wrappers from files
  * modified hdf5, openmpi, mpich, mvapich2 to use it
2018-02-13 02:18:28 -08:00
Todd Gamblin
05fa302655
Replace github.com/llnl/spack with github.com/spack/spack (#6142)
We moved to a new GitHub org! Now make the code and docs reflect that.
2017-11-04 17:08:04 -07:00
Ken Raffenetti
c242165ebd Additional MPICH configs (#5259)
* Add support for building develop version from git
* Add device and netmod variants
2017-09-27 10:50:05 -07:00
Michael Kuhn
84ae7872d3 Update copyright notices for 2017 (#5295) 2017-09-06 17:44:16 -10:00
Denis Davydov
bb29ec1843 mpich: fix MPI_Barrier segfault (#5235)
* mpich: fix MPI_Barrier segfault

* one more link
2017-08-30 18:58:23 -05:00
Todd Gamblin
cac4362f64 Make LICENSE recognizable by GitHub. (#4598) 2017-06-24 22:22:55 -07:00
Adam J. Stewart
cf2178f416 Overhaul CONVERGE installation and concretization (#4397) 2017-06-19 10:18:48 -05:00
Todd Gamblin
221f179716 Add better tests for web.py; fix some bugs found with spidering.
- _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
2017-04-01 15:10:45 -07:00
Adam J. Stewart
dca4d2b15e Consistent docs and usage of env mod methods (#3351) 2017-03-14 22:26:44 -07:00
Massimiliano Culpo
fc866ae0fe build systems: simpler, clearer decorators: run_after, run_before (#2860)
* 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
2017-01-25 08:57:01 -07:00
Mario Melara
beafcfd3ef Set MPI environment variables to the compiler wrappers on Cray (#2762)
* Set MPI[lang] env var to compiler wrappers on cray

Sets MPICC, MPICXX, MPIFC etc to point to the compiler wrappers on Cray systems.
Some packages look for MPIs via environment variables - e.g adios

* Use spec to check for Cray

* os is no longer used.
2017-01-16 16:15:37 -08:00
Massimiliano Culpo
6c1113769b mpich: updated package to build_systems (#2254)
* mpich: updated package to build_systems

* qa : flake8 issues
2016-11-05 11:23:57 -07:00
Denis Davydov
46433b9eb3 require fortran for MPI providers to avoid delayed compiler errors (#1937)
* openmpi: require fortran for now

* mpich: requre fortran for now

* mvapich2: require fortran for now

* openmpi: flake8 fixes
2016-10-26 09:12:26 -07:00
Kelly Thompson
e359a7ca59 Add missing 'import os'. (#2012) 2016-10-14 12:00:43 -07:00
Todd Gamblin
1dff309a3f Merge pull request #1989 from KineticTheory/cray_compile_wrappers
On Cray machines, use the Cray compile wrappers instead of MPI wrappers.
2016-10-11 06:46:29 -07:00
Adam J. Stewart
aa079dbdf1 Add variant to MPICH to enable ROMIO support (#1944) 2016-10-11 02:16:01 -07:00
Kelly (KT) Thompson
3553c8b9e9 On Cray machines, use the Cray compile wrappers instead of MPI wrappers.
+ Cray compile wrappers are MPI wrappers.
+ Packages that need to be compiled with MPI compile wrappers normally use
  'mpicc', 'mpic++' and 'mpif90' provided by the MPI vendor. However, when using
  cray-mpich as the MPI vendor, the compile wrappers 'CC', 'cc' and 'ftn' must
  be used.
+ In this scenario, the mpich package is hijacked by specifying cray-mpich as an
  external package under the 'mpich:' section of packages.yaml. For example:

  packages:
    mpich:
      modules:
        mpich@7.4.2%intel@16.0.3 arch=cray-CNL-haswell: cray-mpich/7.4.2
      buildable: False
    all:
      providers:
        mpi: [mpich]

+ This change allows packages like parmetis to be built using the Cray compile
  wrappers. For example: 'spack install parmetis%intel@16.0.3 ^mpich@7.4.2 os=CNL'
+ This commit relies on the existence of the environment variable CRAYPE_VERSION
  to determine if the current machine is running a Cray environment. This check is
  insufficient, but I'm not sure how to improve this logic.
+ Fixes #1827
2016-10-10 19:10:26 -06:00
Massimiliano Culpo
497bbb3ae3 added package : pexsi (#1550)
* pexsi : added package
* cp2k : added pexsi (works for gcc+openmpi with and without plumed)
2016-09-03 08:13:47 -07:00
Adam J. Stewart
8921bf4552 Add MPI environment variables to packages 2016-06-23 10:08:40 -05:00
Massimiliano Culpo
daa46105a7 mpich based providers : shortened filter_compilers 2016-06-15 21:37:12 +02:00
alalazo
b09bee8158 qa : fixed flake8 issues 2016-06-15 13:29:30 +02:00
alalazo
b59d4f243b openmpi, mvapich2, mpich : filtered out "--Wl,--enable-new-dtag" in wrappers, as it turns RPATH into RUNPATH
Apart from that turned `os.path.join` into `join_path` and `os.environ` into `env` in the packages
2016-06-15 13:21:39 +02:00
Todd Gamblin
e7ced54369 Correct LLNL LGPL license template for clarity. 2016-05-11 21:22:25 -07:00
Tom Scogland
86449790fe add pmi support and process managers to the MPIs 2016-05-06 15:15:40 -07:00
Denis Davydov
c3bc4d6195 mpich: remove module.mpicc as no formula is using it and it is a duplicate of self.spec.mpicc 2016-05-05 10:28:04 +02:00
Denis Davydov
b12fb7ebc8 mpi: move mpicc/mpicxx/mpifc/mpif77 to setup_dependent_package() 2016-05-05 10:24:32 +02: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
Massimiliano Culpo
c113d390a7 mvapich2 : MPI compiler wrapper will use spack compilers during the installation phase
mpich : fixed wrong function signature
2016-04-06 23:51:47 +02:00
Ben Boeckel
f1a0619821 mpich: disable fortran without a fortran compiler 2016-03-30 17:19:29 -04: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
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
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
597727f8be tclmodules : added hooks to process EnvironmentModifications objects 2016-03-16 15:19:13 +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
Matthew LeGendre
87db69478d Merge branch 'develop' into features/external-packages
Conflicts:
	lib/spack/spack/package.py
2016-03-09 11:09:37 -08:00
alalazo
247a4bc751 mpich : added back MPI_F90 2016-02-12 12:15:09 +01:00
Massimiliano Culpo
70985170e5 qe : compiled on rhle6 2016-02-12 12:08:31 +01: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