Commit graph

8244 commits

Author SHA1 Message Date
scheibelp
f27c5e74ed Remove Package instance caching in Repo (#6367)
This attempts to address one of the complaints at #5996 (comment):

> Repo currently caches package instances by Spec, and those Package instances have a Spec. 
> This is unnecessary and causes confusion. I think I thought that we'd need to cache instances 
> after loading package classes, but really just caching the classes is fine.

With this update, Repo's package cache is removed and Specs cache the package reference themselves. One consequence is that Specs which compare as equal will store separate instances of a Package class (not doing this creates issues for #4595 (comment)).

There were several references to Spec.package that could be replaced with Spec.package_class without any additional modifications. There are still a couple remaining references to Spec.package in Spec that would require adding functionality before replacing (e.g. calling Package.provides and Package.installed).

Note this makes it difficult to mock fetchers for tests which invokes code that reconstructs specs. test_packaging was one example of this where the updates caused a failure (in that case the error was avoided by not making an unnecessary call).

Details:
* Replace instances of spec.package with spec.package_class where a class method is being called
* Remove instances of Repo.get where Spec.package_class can be used in its place
* remove Repo.get caching instances of Package class for specs
* remove redundant check (which is also incorrect now that each spec stores its own copy of its package)
* avoid creating mirror with specs because it copies specs and those copies dont refer to the mocked fetcher (and it is also not required for the test)
* remove checks that are no longer necessary since repo doesn't cache specs
2018-01-28 16:58:08 -08:00
Adam J. Stewart
f7f4bae154 Fix gfortran 7 detection (#7017) 2018-01-28 16:29:48 -08:00
Massimiliano Culpo
5af9256d4f Cleaned up JUnit report generation on install (#6977)
* Cleaned up JUnit report generation on install

The generation of a JUnit report was previously part of the install
command. This commit factors the logic into its own module, and uses
a template for the generation of the report.

It also improves report generation, that now can deal with multiple
specs installed at once. Finally, extending the list of supported
formats is much easier than before, as it entails just writing a
new template.

* Polished report generation + added tests for failures and errors

The generation of a JUnit report has been polished, so that the
stacktrace is correctly displayed with Jenkins JUnit plugin. Standard
error is still not used.

Added unit tests to cover for installation failures and installation
errors.
2018-01-28 12:07:59 -08:00
Geoffrey Oxberry
784234ae8e libtool, binutils: fix darwin linking (#7073)
* libtool: fix linking of libtool on darwin

* binutils, libtool: fix conflicts w/ BSD tools, v2

Fix namespace conflicts with BSD tools in a more elegant fashion,
using a program prefix, similar to Homebrew.
2018-01-28 15:36:24 +01:00
George Hartzell
970c7e8f45 Tell R's configure about tcltk config (#7085)
* Tell R's configure about tcltk config

Add configure arguments that specify the location of
the tcl and tk config scripts.

Fixes #7072

* Flake8 cleanup
2018-01-26 20:51:38 -06:00
Brian Van Essen
1cd03e0f36 new package: essl (#6335)
Added support for the IBM ESSL math library.Updated Elemental to be
able to build with ESSL.
2018-01-26 10:38:37 -08:00
Massimiliano Culpo
7cb43e3d05
Bzip2 now uses 'spack_cc' as a compiler, instead of plain 'cc' (#7074)
Looking at build logs, it seems that prior to this commit bzip2 was
using 'cc', and relying on the PATH to be set correctly to find Spack
wrappers. This commit improves the robustness of the recipe, by using
the absolute path of the wrapper.
2018-01-26 09:52:04 +01:00
Federico Ficarelli
1f39afe475 Enable install of multiple specs from yaml files (#6984) 2018-01-26 08:33:53 +01:00
Brian Van Essen
8bc5916b68 Protobuf package: allow building shared library (#7067)
This adds a +shared variant for building shared libraries in the
protobuf package and enables it by default.
2018-01-25 12:14:48 -08:00
Brian Van Essen
82d4d58ca7 Lbann package: bug fix (#7066)
Fixed a bug in the guard on cub functionality.  Reduced the
requirements on hwloc to make it simpler to build on Power systems.
2018-01-25 12:10:37 -08:00
Axel Huebl
85c887a939 Python Installs: No User Site Dir (#7065)
Avoid adding an "outside" (local home's) python user site directory
during python package installs.

Implements #6611

Fixes packages with auto-find side effects such as `py-setuptools`
that cause `py-matplotlib` to fail to build #6558
2018-01-25 17:50:50 +01:00
Geoffrey Oxberry
e0082e0564 libtool: symlink libtool{ize} to glibtool{ize} (#7060)
On Darwin and other BSD systems, the system 'libtool' and 'libtoolize'
are BSD libtool and libtoolize, respectively. Some build systems
require the GNU versions of these commands, so BSD package systems
tend to name the GNU versions 'glibtool' and 'glibtoolize',
respectively, to avoid namespace collisions.

A problem with the current libtool package is that it installs the GNU
libtool commands as 'libtool' and 'libtoolize', respectively, but
build systems on BSD platforms will attempt to run 'glibtool' and
'glibtoolize'. The expedient solution to this problem is to symlink
'libtool' to 'glibtool' and 'libtoolize' to 'glibtoolize', because
attempting to patch the detection logic one build system at a time
seems impractical.
2018-01-24 18:48:28 -08:00
Geoffrey Oxberry
b5daa51c06 netlib-xblas 1.0.248: new package (#7024)
* netlib-xblas@1.0.248: new package

* netlib-lapack: add xblas option
2018-01-24 08:28:05 +01:00
Brian Van Essen
a62e1a0451 Lbann update (#6987)
* Added new link line flag

* Refactored some of the common components out of the different
version's build commands.  Also corrected the when commands to
properly capture non-numeric names such as local.

* Added support to the Elemental package for the Hydrogen branch.
2018-01-23 17:05:54 -08:00
Federico Ficarelli
8bdf7e6baa Fix gtkplus build by hardcoding X11 support (#6971)
* Fix gtkplus build by hardcoding X11 support

* Remove +X variant from gtkplus dependents
2018-01-23 15:24:20 -08:00
Federico Ficarelli
dceb66741c Fix +readline handling (#7048) 2018-01-23 23:01:58 +01:00
Geoffrey Oxberry
d6a43f180b argp-standalone@1.3: new package (#7014)
Adds a package for the standalone version of the argp argument parsing
interface from glibc for unix-style command options.
2018-01-23 22:49:17 +01:00
Alastair Harrison
eb0f5c6efe Fix error message typo in 'spack create' cmd (#7042)
- Previously would print the spec's namespace twice, rather
  than printing the spec's namespace, followed by the repo's namespace.
2018-01-23 14:00:18 -06:00
Thilina Rathnayake
3223186729 new package: gslib (#6328) 2018-01-23 10:42:06 -08:00
Benedikt Riedel
d8c105a7b1 Fix GEANT4 and make more portable and flexible (#6956)
* Turning off default Qt support. Restricting Qt version to <= 4.9 else geant4 won't build

* Making vecgeom optional

* Differentiating between cxx11 and cxx14 support

* Making vecgeom optional. Part 2. forgot to move usolids option

* Adding explicit CXX11 and CXX14 support

* Adding more clhep version to support newer GEANT4 versions

* Adding GEANT4 versions 10.03.p03 and 10.04

* Checkpoint. Adding opengl and x11 variant. Lead up to more changes to enable X11 support

* Adding dependency on fixesproto for newer versions

* Making the X11 dependent pieces work without requiring X11 on the system

* Adding motif
2018-01-23 10:13:08 +01:00
Geoffrey Oxberry
2e09501fc5 netlib-lapack: add versions 3.7.0, 3.7.1, 3.8.0 (#7025) 2018-01-23 09:59:33 +01:00
健美猫
e6afb9db77 A new package: log4cplus. (#7015) 2018-01-23 09:47:34 +01:00
Marty McFadden
02b74519e3 Version update for cfitsio (#7032) 2018-01-23 09:44:40 +01:00
Yifan Zhu
92b20bfdba r-snprelate: new package (#7036) 2018-01-23 09:43:22 +01:00
Yifan Zhu
30aaa37472 r-gdsfmt: new package (#7035) 2018-01-23 09:42:10 +01:00
Scott Wittenburg
d2c3441527 Update gl/qt options for vtk package (#6551)
This provides options for hardware and software rendering with the
gl API and updates the vtk package to make use of those options:

* Create new "gl" virtual package, provided by mesa
* Add external-only "opengl" package, which represents a system
  install that provides gl
* For vtk: prefer system gl implementation by default to get speed
  up from hardware rendering. When software rendering is specifically
  requested (+osmesa), try to use the llvmpipe approach, as it is
  much faster.
* Make qt dependency optional for vtk
* Add basic support for VTK on osx
* qt: Depend on virtual gl package, rather than mesa impl
2018-01-22 10:46:44 -08:00
Kelly (KT) Thompson
55c3451b87 Version update for 2.22 (#7023) 2018-01-22 07:12:00 +01:00
Eric
cfd68e48a4 perl-graph: Create new package (#7022) 2018-01-22 07:10:58 +01:00
Eric
1733dff977 perl-array-utils: Create new package (#7020) 2018-01-22 07:10:17 +01:00
Eric
02b9cf5085 perl-app-cmd: Create new package (#7019) 2018-01-22 07:09:34 +01:00
Eric
cd82a9e050 perl-perlio-gzip: Create new package (#7018) 2018-01-22 07:08:41 +01:00
Geoffrey Oxberry
227b58bb67 Visit 2.13.0 (#6947)
* visit: add version 2.12.3

* visit: add version 2.13.0

* visit: enable building with hdf5+mpi

* visit: add qwt dependency

Building VisIt requires Qwt, which is not part of Qt. Prior to this
commit, this dependency was not included in the VisIt spack package,
resulting in a configure-time bug with an error message indicating a
missing Qwt dependency.

This commit fixes this bug by adding Qwt dependency information.
2018-01-21 09:16:23 -06:00
Hans Pabst
202c413ae0 LIBXSMM 1.8.2 (#6896)
* Included LIBXSMM 1.8 into the list of available versions.

* LIBXSMM 1.8.1

* LIBXSMM 1.8.2 (release notes: https://github.com/hfp/libxsmm/releases/tag/1.8.2).

* LIBXSMM: Use join_path instead of hard-coding the separator. Install "version.txt" into the documentation directory. Removed installing "README.md" from LIBXSMM's root directory as it overrides README.md provided there. The latter uses correct relative references to the other documentation parts.

Note: Apparently, "FC=/path/to/gfortran spack install libxsmm" is currently needed for Spack since does not pick-up the Fortran compiler (but incorrectly uses the C compiler instead).

* LIBXSMM: converted Package into MakefilePackage (to address https://github.com/spack/spack/pull/6896#discussion_r160993923).

* LIBXSMM: account for changed file set in 1.8.2 onward (addresses https://github.com/spack/spack/pull/6896#pullrequestreview-88670974).

* Fixed incorrect behavior of "+header-only", which did not install the "src" folder. Addressed https://github.com/spack/spack/pull/6896#discussion_r162783180 and https://github.com/spack/spack/pull/6896#discussion_r162783221.

* Use conflicts msg argument to present a friendly error message.
2018-01-21 09:14:26 -06:00
Denis Davydov
6170ca863d dealii: update CMake dependency (#7010) 2018-01-20 21:59:24 +01:00
sknigh
27bb18bae2 Added libgit2@0.26.0 (#6952) 2018-01-20 21:57:41 +01:00
sknigh
e98a85c807 Added added libssh2@1.8.0 (#6951) 2018-01-20 21:56:55 +01:00
Michael Kuhn
9f0e17a538 flex: restrict GCC conflict to newer Ubuntu releases (#6963)
flex 2.6.4 compiles fine with GCC 7 on (at least) Ubuntu 16.04 and Fedora 27.
2018-01-20 21:36:45 +01:00
Geoffrey Oxberry
9d84e7eb5c llvm: add version 5.0.1 (#6957) 2018-01-20 21:09:31 +01:00
Michael Kuhn
2fc3e23e47 gtkplus: Update to 2.24.32 (#6964) 2018-01-20 19:42:21 +01:00
Yifan Zhu
7fc654b6a3 r-getopt: new package (#6973) 2018-01-20 19:18:07 +01:00
Geoffrey Oxberry
b83936a1f9 ipopt: add version 3.12.9 (#6982) 2018-01-20 19:11:18 +01:00
Eric
2192644071 perl-list-moreutils: Create new package (#6997) 2018-01-20 19:09:23 +01:00
peetsv
e3b8d6ef08 sniffles: add version 1.0.7 (#7004) 2018-01-20 18:39:29 +01:00
健美猫
0dee143c72 A new package: lumpy-sv. (#7009) 2018-01-20 18:38:31 +01:00
Ondřej Čertík
40ab8fe31f Add Abinit 8.6.3 (#6959) 2018-01-20 10:20:00 -06:00
Bruno Turcksin
62d53b2a5b Add boost 1.66.0 (#7000) 2018-01-20 17:10:25 +01:00
Massimiliano Culpo
621388e5ae
Restore multiprocessing in unit tests (#6949)
* Revert "Travis: use --concurrency=multiprocessing only on build tests (#6872)"

This reverts commit 596d463714.

* Removing 'coverage combine' in test script

According to what was discovered in #6887, one of the problems is
calling 'coverage combine' twice without the '-a' flag. This removes
the first call within our test scripts.
2018-01-20 16:10:25 +01:00
Geoffrey Oxberry
cf736ae911 qt@4 : update corewlan patch for OS X 10.1[23] (#6943)
Update the qt4 CoreWLAN patch to apply to macOS/OS X 10.12 and 10.13,
which both still use the CoreWLAN framework in their SDKs (although
it's apparently deprecated?!). Without this patch update, `spack
install qt@4.8.6` fails on macOS/OS X 10.12 because the linker
cannot find headers from the CoreWLAN framework.
2018-01-20 07:53:50 -06:00
Geoffrey Malcolm Oxberry
7c4c6e72ad vtk@:6.1.0 : disable Obj-C gc for XCode >= 5.1
Apple removed support for Objective-C garbage collection in binaries
in XCode 5.1, but VTK 6.1.0 and earlier set flags for garbage
collection, resulting in a compile-time bug when compiling VTK using
any recent version of XCode (i.e., Apple Clang).

This commit fixes this bug by removing the garbage collection flags
via setting the variable `VTK_REQUIRED_OBJCXX_FLAGS` to the empty
string. This variable has the same value (i.e., the empty string) in
the root-level CMakeLists.txt file for VTK 6.2.0 and later.
2018-01-19 13:44:36 -08:00
Geoffrey Malcolm Oxberry
48ae4c22b2 vtk@:6.1.0 : fix NetCDF C++ bindings detection
VTK 6.1.0 and earlier do not use paths stored in `NETCDF_CXX_ROOT` to
detect the presence of NetCDF C++ headers and libraries. Consequently,
VTK 6.1.0 does not build.

This commit fixes this bug by setting the advanced variables
`NETCDF_CXX_INCLUDE_DIR` and `NETCDF_CXX_LIBRARY` at the command line
to specify the directory containing headers and the full library path
for the NetCDF C++ bindings.
2018-01-19 13:44:36 -08:00