Commit Graph

42 Commits

Author SHA1 Message Date
Massimiliano Culpo
c4521535e7 Multi-valued variants: better support for combinations (#9481)
This enforces conventions that allow for correct handling of
multi-valued variants where specifying no value is an option,
and adds convenience functionality for specifying multi-valued
variants with conflicting sets of values. This also adds a notion
of "feature values" for variants, which are those that are understood
by the build system (e.g. those that would appear as configure
options). In more detail:

* Add documentation on variants to the packaging guide
* Forbid usage of '' or None as a possible variant value, in
  particular as a default. To indicate choosing no value, the user
  must explicitly define an option like 'none'. Without this,
  multi-valued variants with default set to None were not parsable
  from the command line (Fixes #6314)
* Add "disjoint_sets" function to support the declaration of
  multi-valued variants with conflicting sets of options. For example
  a variant "foo" with possible values "a", "b", and "c" where "c"
  is exclusive of the other values ("foo=a,b" and "foo=c" are
  valid but "foo=a,c" is not).
* Add "any_combination_of" function to support the declaration of
  multi-valued variants where it is valid to choose none of the
  values. This automatically defines "none" as an option (exclusive
  with all other choices); this value does not appear when iterating
  over the variant's values, for example in "with_or_without" (which
  constructs autotools option strings from variant values).
* The "disjoint_sets" and "any_combination_of" methods return an
  object which tracks the possible values. It is also possible to
  indicate that some of these values do not correspond to options
  understood by the package's build system, such that methods like
  "with_or_without" will not define options for those values (this
  occurs automatically for "none")
* Add documentation for usage of new functions for specifying
  multi-valued variants
2019-01-04 19:02:34 -08:00
Todd Gamblin
6f50cd52ed copyright: update license headers for 2013-2019 copyright. 2019-01-01 00:44:28 -08:00
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
Adam J. Stewart
4c6aca533a Add top-level attributes for hg, svn, and git A-L packages 2018-07-25 23:10:10 -07:00
Axel Huebl
664f03e329 ADIOS: Revert Patch (#8463)
That patch is only a partial solution and does not solve the
issue. Revert is, unnecessary.
2018-06-13 14:42:13 -05:00
Axel Huebl
0495b5474b ADIOS: Serial API with Parallel Lib (#8409)
Provides a patch for the fix in
  https://github.com/ornladios/ADIOS/pull/182

Installed ADIOS MPI-enabled libraries are with that able to also
perform serial I/O without the need to start the whole app via
`mpiexec`.
2018-06-06 15:38:36 -05:00
Axel Huebl
1a27f911d3 Fix ADIOS 1.13.1: Maxium SZ (#8408)
Fix the maximum accepted SZ version for the latest ADIOS release.
2018-06-06 11:58:15 -05:00
Axel Huebl
5f73c2759d ADIOS 1.13.1 & SZ 1.4.12.3 (#7808)
* ADIOS 1.13.1

ADIOS 1.13.1 fixes several issues with zero-sized block
reading and writing when compression transports are used.

* SZ 1.4.12.3

Add the lastest SZ release used in ADIOS1.
2018-04-18 10:52:13 -05:00
Todd Gamblin
54f97d1dec
Update copyright on LLNL files for 2018. (#7592) 2018-03-24 12:13:52 -07:00
Axel Huebl
9e64fa53ed Add Maintainer (#6575)
Add myself as maintainer to the packages we contributed
and/or maintain the mainline from.
2017-12-05 14:27:56 -07:00
Axel Huebl
5a908a1c8a ADIOS 1.13.0: LZ4 & blosc support (#6572)
Add additional transform libraries to ADIOS.
Also modifies existing transforms to the versions they were
introduced (otherwise this was resulting in unknown configure flags).
2017-12-05 15:28:44 +01:00
Axel Huebl
e47d89a2ab ADIOS 1.13.0: Newer SZ Versions (#6561)
The latest release of ADIOS needs a newer version of SZ due to an upstream library naming change.
2017-12-05 12:50:22 +01:00
Axel Huebl
d6863a2940 ADIOS: 1.13.0 (#6539)
New release of ADIOS: 1.13.0.
2017-12-01 11:09:37 -07: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
Michael Kuhn
d1db161aeb adios: Fix hdf5 and sz dependencies (#6016)
- hdf5's +hl variant is required because the build uses libhdf5_hl.
- sz is only compatible up to version 1.4.10 because the library has
  been renamed to libSZ in 1.4.11.
2017-11-02 13:41:25 -06:00
Massimiliano Culpo
081403f280 adios: fixed conditional dependencies on libevpath and dataspaces (#5392)
fixes #5379
2017-09-19 14:13:26 +02:00
Axel Huebl
78894645eb ADIOS: Fix Build (Autotools) (#5363)
This fixes the build of the ADIOS package.
The `with_or_without` interface of the Autotools builds
seems to have changed, this fixes it.
2017-09-14 19:08:03 +02:00
Massimiliano Culpo
32117c22de 'with_or_without' accepts bool variants
Fixes #4112

This commit extends the support of the AutotoolsPackage methods
`with_or_without` and `enable_or_disable` to bool-valued variants. It
also defines for those functions a convenience short-cut if the
activation parameter is the prefix of a spec (like in
`--with-{pkg}={prefix}`).

This commit also includes:

* Updates to viennarna and adios accordingly: they have been modified to
  use `enable_or_disable` and `with_or_without`
* Improved docstrings in `autotools.py`. Raise `KeyError` if name is
  not a variant.
2017-09-11 16:20:49 -07:00
Pramod S Kumbhar
d5f1144798 Fix Autotools build error due to missing m4 and MPICC/MPICXX (#5319) 2017-09-10 13:18:55 -10:00
Michael Kuhn
84ae7872d3 Update copyright notices for 2017 (#5295) 2017-09-06 17:44:16 -10:00
Kshitij Mehta
13cd98ac4a Adios (#4857)
* adios: conform to pep8

* adios: added versions 1.11.0 and 1.12.0

* adios: added variant no_mpi to explicitly disable mpi support

* adios: add new variant mxml

adios v1.12.0 onwards contains an xml library built within.
To build with an external mxml, a new variant must be used

* adios: new variant for sz transform

* adios: flexpath and dataspaces staging variants

Two new variants for staging: flexpath and dataspaces.
New variant 'staging' that will enable both

* adios: dependency on libtool:2.4.2 since adios does not build with newer libtool 2.4.6

* adios: better description for variant no-mpi

* adios: new variant for netcdf

as requested by @mamelara from LBL

* adios: renamed variant 'no_mpi' to 'serial'

* adios: removed variant mxml

* adios: corrected implementation of the mpi dependency, along with its relation with the 'serial' variant

Added conflicts between 'serial' and other variants

* adios: added 'else' clause when variants are not added

* adios: replaced variant 'serial' with 'mpi'

* adios: Added configure option to explicitly disable variants that are not enabled.

* adios: setting default zfp to true

* adios: fixed flake8 errors

* adios: removed some old comments

* adios: setting default sz to False.

It is recommended to set default to False when dependency is on develop (sz@develop).

* adios: removing dependency on develop for sz and setting default sz to true

* adios: updated url to latest release.

Just keeping it clean
2017-08-07 14:36:16 -05:00
Massimiliano Culpo
9be294de31 Changed every 'fpic' variant to 'pic' (#4969)
* Changed every 'fpic' variant to 'pic'. fixes #2463

Every variant that activates compilation of position independent code
has been changed to 'pic'. Hardcoded compiler flags in packages have
been substituted with `self.compiler.pic_flag`.

* Changed literal uses of '-fpic' to 'self.compiler.pic_flag'
2017-08-04 18:21:43 +02:00
Todd Gamblin
cac4362f64 Make LICENSE recognizable by GitHub. (#4598) 2017-06-24 22:22:55 -07:00
Mark Olesen
22a966d010 add lines missed in rebase (adios +bzip2) (#3907) 2017-04-19 09:36:46 -05:00
Mark Olesen
c65d0775cf ADIOS - add bzip2 transport, python patch not applicable to adios 1.9.0 (#3874) 2017-04-18 07:00:39 -05:00
Michael Kuhn
afdc2f4182 Fix adios (#3814)
adios currently only supports zfp <= 0.5.0 due to an API change.
2017-04-12 16:58:18 -05:00
serbanmaerean
c3ac86310e ADIOS: change subclassing from Package to AutotoolsPackage (#3230)
* ADIOS: change the invocation of python script that generates test files

The python script ADIOS*/utils/gpp/gpp.py is invoked directly in the
ADIOS*/tests/genarray/Makefile and the name of the python interpreter
can be quite long if it is one built under spack, i.e. longer than the
80 characters allowed by the #! line in bash.  The name of the shbang
line is truncated at 80 characters and bash cannot find the python
interpreter specified.

This fix changes how the script is executed, by invoking it under
python. This way, the shbang line is ignored.

* adios: fixed flake8 errors from previous commit.

* adio: Switch to AutotoolsPackage class from Package class

Switched in order to add support for the ppc64le platform.
2017-03-04 07:53:50 -06:00
Michael Kuhn
6d0fbe7d96 Update adios to 1.11.1 (#3221)
Add a zfp variant and a patch that resets the interpreter for gpp.py.
2017-03-02 12:44:43 -06:00
Axel Huebl
d3e04b3daf Close #1683 Apply ADIOS 1.10.0 Patch (HDF5 1.10+) (#1699)
* Close #1683 Apply ADIOS 1.10.0 Patch

Also correct version dependencies and comments.

* Clean Up ADIOS

- add develop
- simplify HDF5 options (parallel only)
- remove optional netCDF (not fully v4)
2016-09-21 00:55:54 -07:00
Adam J. Stewart
1be6267149 Undo changes to trailing triple quotes in docstring 2016-08-30 16:28:55 -05:00
Adam J. Stewart
eb56744f4d Fix package docstrings, #1612 2016-08-30 15:29:50 -05:00
Axel Huebl
0f40175524
Remove Space, Enable Parallel
- remove space before comma
- enable parallel build again (seems to work)
2016-08-30 02:02:48 +02:00
Axel Huebl
ecacce7e07
ADIOS: Use NetCDF Prefix from spec's 2016-08-30 00:51:44 +02:00
Axel Huebl
37f489886e
Defaults: MPI=True, Fortran=False
- ADIOS is mainly a parallel I/O library
- a Fortran compiler is non-standard in a minimal install
2016-08-30 00:14:29 +02:00
Axel Huebl
b33777fd2f
RM Outdated Comments, Versions & Code 2016-08-29 23:18:31 +02:00
Axel Huebl
88254a14a7
Always External MXML; type='build'
- always use `mxml` as an external dependency in spack
- declare `build`-only dependencies correctly
2016-08-29 23:01:20 +02:00
Axel Huebl
e1464ece55
ADIOS: disable parallel make 2016-08-29 19:06:22 +02:00
Axel Huebl
f2eb1c93df
ADIOS: Run Autotools First 2016-08-29 18:42:07 +02:00
Axel Huebl
4bd863761a
Update ADIOS Package
This PR updates the ADIOS package.

**Changes:**

- add latest stable release `1.10.0`
- add previous versions (hashes)
- add default license header
- add build options (shamelessly taken from HDF5 package)
- add validation for excisting FC (as in HDF5) and make optional
- handle mxml dependency correctly (not required in 1.10.0+)
- add `CFLAGS=-fPIC` to build shared (python) libs in ADIOS' lib
- remove `-DMPICH_IGNORE_CXX_SEEK` since it is normally not required
- remove `MPICC/CXX?FC` since `--with-mpi` just performs well
- add transforms:
  - `zlib`: useful (optional) default
  - `szip`: optional (compile often broken)
- add transports that are not as performant as the `.bp` format:
  - `hdf5`: non-default
  - `netcdf`: non-default, close #1610
2016-08-29 17:16:15 +02:00
Robert D. French
25e765baae Download Adios from Github
Get adios from github, not NCCS

Use correct hash, thanks Ben
2016-07-19 10:31:59 -07:00
alalazo
9de0503188 qa : flake8 issues 2016-06-26 22:00:10 +02:00
alalazo
11863d2de3 packages : moved adios and mxml into builtin repo 2016-06-26 21:56:06 +02:00