Commit graph

875 commits

Author SHA1 Message Date
citibeth
003957a689 Reverted bad change 2016-03-13 00:33:13 -05:00
Elizabeth F
c1a8574d8f Fixed for Python 2.6 2016-03-13 00:29:40 -05:00
Elizabeth F
90bb855ffa A new subclass StagedPackage(Package) is introduced. This PR should
not change the behavior for existing packages that subclass from
spack.Package.

If a package subclasses spack.StagedPackage instead of spack.Package,
the install() phase (run inside a forked process) is now separated
into sub-stages:

    a) spconfig: Generate a script spconfig.py that will configure the
       package (eg by running CMake or ./configure) This is for use if
       the user wishes to build externally from Spack.  Therefore, the
       Spack compiler wrappers are NOT used here.  Currently, that
       means that RPATH support is up to the user.

    b) configure: Configure the project (eg: runs configure, CMake,
       etc).  This will configure it for use within Spack, using the
       Spack wrapper.

    c) build: eg: "make"

    d) install: eg: "install"

If one chooses to use StagedPackage instead of Package, then one must
implement each of the install sub-stages as a separate method.
StagedPackage.install() then calls each of the sub-stages as
appropriate.

StagedPackage can be configured to only run certain sub-stages.  This
is done by setting the optional kwarg install_phases when calling
do_install().  Setting install_phases() ONLY has an effect on
StagedPackage, not on any existing packages.  By default,
install_phases is set to make StagedPackage run the same stages that
are normally run for any package: configure, build, install (and NOT
spconfig).

The ability for Spack to run stages selectively for StagedPackage
instances will enable new functionality.  For example, explicit
CMake/Autotools helpers that allow Spack to help configure a user's
project without fetching, building or installing it.

-------------

One implementation of StagedPackage is provided, CMakePackage.  This
has the following advantage for CMake-based projects over using the
standard Package class:

  a) By separating out the phases, it enables future new functionality
     for packages that use it.

  b) It provides an implementation of intall_spconfig(), which will
     help users configure their CMake-based projects.

CMakePackage expects users to implement configure_args() and
configure_env().  These methods provide the package-specific arguments
and environment needed to properly configure the package.  They are
placed in separated functions because they are used in both the
spconfig and configure stages.

TODO:

1. Generate spconfig.py scripts that are more readable.  This allows
   the users to understand how their project is configured.

2. Provide a practical way for the user to ACCESS the spconfig stage
   without building the project through Spack.

3. The CMAKE_TRANSITIVE_INCLUDE_PATH stuff needs to be reworked; it
   should be considered provisional for now.

4. User of Autotools might wish to make a similar ConfigurePackage
   subclass of StagedPackage.

---------------

One package using CMakePackage is introduced.  See ibmisc/package.py.
2016-03-11 23:30:38 -05:00
Todd Gamblin
081bdd0828 Merge pull request #528 from citibeth/efischer/160309-Emacs
Added Emacs package
2016-03-11 13:31:58 -08:00
Todd Gamblin
4574f768ef Merge pull request #526 from KineticTheory/develop
Provide instructions for cmake/3.5.0 (plus 2 new variants) and qt/5.4.2
2016-03-11 09:20:47 -08:00
Kelly (KT) Thompson
f5e8857c5e + Rename variant 'sphinxbuild' to 'doc' as recommended in the discussion of
PR#526. Also, remove a debug print statement that was accidentally committed.
2016-03-11 09:51:12 -07:00
Kelly (KT) Thompson
280384fce3 Merge remote-tracking branch 'upstream/develop' into develop 2016-03-10 09:09:16 -07:00
Todd Gamblin
b637f75164 Merge branch 'mplegendre-features/external-packages' into develop 2016-03-10 02:04:44 -08:00
Todd Gamblin
1fe196f95c whitespace and formatting 2016-03-10 01:29:55 -08:00
Todd Gamblin
ad6625456e Merge pull request #513 from alfredo-gimenez/develop
Variants and fixes to thrift package
2016-03-10 00:59:15 -08:00
Elizabeth F
b701aa10d4 Fixed up 2016-03-09 21:21:25 -05:00
Elizabeth F
267e83d8a7 Added emacs package. 2016-03-09 21:16:50 -05:00
Todd Gamblin
bf1639e044 Merge pull request #522 from epfl-scitas/bugfix/mpfr
change of url for mpfr
2016-03-09 17:17:23 -08:00
Kelly (KT) Thompson
23cbc2b1d9 + Provide download/build instructions for qt/5.4.2.
- This version provides updates to provided cmake scripts that are required
    for building cmake-gui.
+ Provide download/build instructions for version 3.5.0.
  - When building the +qt variant, add a validate function to ensure that
    qt-5.4.0 is not used (this version of qt has errors related to cmake).
2016-03-09 17:59:39 -07:00
Nicolas Richart
6e82ab1f15 change of url for mpfr 2016-03-09 21:18:44 +01:00
Todd Gamblin
b93a2ba1cf Merge pull request #520 from LLNL/bugfix/remove-hdf5-unsupported-variant
Removing `unsupported` variant from HDF5.
2016-03-09 11:39:06 -08:00
Kelly (KT) Thompson
113e942c3c Merge remote-tracking branch 'upstream/develop' into develop. 2016-03-09 12:38:48 -07:00
Todd Gamblin
45ef496dd5 Add some descriptive language to a list comprehension. 2016-03-09 11:26:37 -08:00
Alfredo Adolfo Gimenez
383e73a5f5 Remove unneccessary depends_on 2016-03-09 11:25:51 -08:00
Todd Gamblin
d06ebf23d4 Removing unsupported variant from HDF5.
- `unsupported` shouldn't be a variant.
2016-03-09 11:16:35 -08: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
Todd Gamblin
b43c277dc6 Merge @citibeth and @alalazo's petsc fixes from #515 and #517 2016-03-09 10:55:50 -08:00
Todd Gamblin
ad7d89b165 Merge branch 'efischer/160309-HypreFix' of git://github.com/citibeth/spack into citibeth-efischer/160309-HypreFix 2016-03-09 10:54:08 -08:00
Todd Gamblin
8ac1752743 Merge pull request #501 from adamjstewart/patches/m4
Add patch to allow PGI to build M4
2016-03-09 10:29:48 -08:00
Adam J. Stewart
8e76cda200 Patch config.hin, not extern-inline.m4 2016-03-09 10:41:31 -06:00
alalazo
f01d1c4385 petsc : added variants and logic to build various flavors 2016-03-09 14:36:37 +01:00
Elizabeth F
c67b922185 Added shared library capability. 2016-03-09 00:34:08 -05:00
Elizabeth F
5b22873b3d Fixed issues with hypre:
1. --with-lapack-lib was wrong.
2. --with-MPI was wrong; set env vars for MPI wrappers instead.
3. Added version 2.10.1
4. Added shared library variant (True by default).  Hypre can build shared or static libraries, but not both in the same build.
2016-03-09 00:27:25 -05:00
Alfredo Gimenez
0c7d0c0b6c Variants and fixes to thrift package 2016-03-08 12:26:40 -08:00
Adam J. Stewart
e0e545774a Add more versions to Autotools 2016-03-08 12:15:40 -06:00
Todd Gamblin
18ce5ccf8f Avoid race in pango's make install, set parallel=False 2016-03-08 02:49:11 -08:00
Adam J. Stewart
b7750cf61c Autoreconf is necessary after patch 2016-03-07 15:52:22 -06:00
Adam J. Stewart
1e7d946d91 Add patch to allow PGI to build M4 2016-03-07 12:37:51 -06:00
Todd Gamblin
96e1b2d25c Merge pull request #486 from RemoteConnectionManager/paraview_fix
Paraview new version
2016-03-07 02:48:12 -08:00
Todd Gamblin
bff7107f56 Merge pull request #491 from citibeth/efischer/160229-NewPackages-2
(2) New packages added: blitz, netcdf-cxx4, netcdf-fortran, proj, udunits2
2016-03-07 02:45:37 -08:00
Erik Schnetter
a399451e1e Update OpenSSL to 1.0.2g 2016-03-06 23:34:48 -05:00
citibeth
ae87948a23 Fixed URLs
Removed vestigal mpi variant in netcdf-fortran
2016-03-05 23:05:45 -05:00
Todd Gamblin
c59546fae0 Merge branch 'adamjstewart-features/libsigsegv' into develop 2016-03-05 15:15:08 -08:00
Todd Gamblin
7d847f4dc4 Minor tweaks to m4 -- be sure to add sigsegv args explicitly. 2016-03-05 15:14:21 -08:00
Todd Gamblin
07255da6e9 Merge branch 'features/libsigsegv' of https://github.com/adamjstewart/spack into adamjstewart-features/libsigsegv 2016-03-05 15:06:49 -08:00
Adam J. Stewart
220b6a9fee Make libsigsegv an optional dependency 2016-03-05 16:46:32 -06:00
Todd Gamblin
24f0757d82 Merge pull request #343 from adamjstewart/features/mpc
Add different URL for older source code
2016-03-05 14:37:43 -08:00
Todd Gamblin
3dd630d0a5 Make openssl a variant in libevent. 2016-03-05 14:33:23 -08:00
Todd Gamblin
0b864aacdc Merge branch 'eschnett/libevent' of https://github.com/eschnett/spack into eschnett-eschnett/libevent 2016-03-05 14:23:06 -08:00
Todd Gamblin
ac67f3b53e Merge pull request #487 from spakin/llvm-3.7.1
Added LLVM 3.7.1 support
2016-03-05 14:19:31 -08:00
Todd Gamblin
a9d7135c19 Merge pull request #495 from alfredo-gimenez/develop
Fixed unmatched function signature for do_fetch in jdk package
2016-03-05 14:16:09 -08:00
Mark Miller
f663d37da7 Adding zfp package. 2016-03-04 17:08:11 -08:00
Alfredo Gimenez
f90eaa5f46 Fixed unmatched function signature for do_fetch in jdk package 2016-03-04 14:53:08 -08:00
Adam J. Stewart
a7b918837e GNU m4 depends on libsigsegv 2016-03-04 15:22:28 -06:00
Elizabeth Fischer
648d08eb30 Update package.py
Updated homepage URL to general NetCDF homepage.
2016-03-04 12:05:43 -05:00