Commit graph

3603 commits

Author SHA1 Message Date
Erik Schnetter
44440d023d qthreads: Convert to AutoTools package (#4176) 2017-05-09 17:58:44 -05:00
Erik Schnetter
0e02f99323 funhpc: Update to version 1.3 (#4170)
Also use a Spack-provided GoogleTest.
2017-05-09 16:19:06 -05:00
Erik Schnetter
68034e4d42 gdbm: Declare readline dependency (#4171) 2017-05-09 16:18:17 -05:00
Massimiliano Culpo
306f158c73 cp2k: fixed compilation issues for intel stack
Added DFLAGS to the `make.inc` file being written.
These macros are also added to the language specific variables
like CFLAGS, CXXFLAGS and FCFLAGS. Changed `spec.satisfies('foo')`
with `'foo' in spec` in `intel-mkl`, see #4135. Added a basic
build interface to `intel-mpi`.
2017-05-09 18:46:42 +02:00
Adam J. Stewart
4b866c6395 Add GCC 7 (#4144)
* Add GCC 7
* Allow users to build subset of GCC compilers with multi-value variant.
* Add comment explaining what 'all' actually means
* More specific golang support
* Only require Zip when building Java
* Comment out provide directives that don't currently work
* Add Ada support
* Use conflicts directive
* Fix joining of languages
* Need special flag to build jit
* Explicitly declare GNAT download extension
* Import tty, update lib64 to lib
* BRIG and Go are not supported on macOS
* Simplify formatting and imports
* JIT patch required for newer versions as well
2017-05-08 13:28:28 -07:00
Denis Davydov
7923579a42 qt: add 5.8.0 which builds on Sierra with clang 8.1.0 (#4109)
* qt: add 5.8.0 which builds on Sierra with clang 8.1.0

* enable parallel build, add freetype dependency

* minor

* minor
2017-05-08 14:29:08 -05:00
scheibelp
16aa8faf45 Merge pull request #4145 from scheibelp/features/temporary-no-python-for-libxcb
Remove python dependency for libxcb and xcbproto
2017-05-08 11:22:27 -07:00
Luigi Calori
b65daa93be Paramiko python extensions + his deps and other related extensions (#4158)
* adding paramiko and missing dependencies, setup to work with #2548

* adding other deps for paramiko

* fix flake8 errors

* removed spurious add

* address suggestion for proper dependencies

* fix cryptography deps

* remove FIXME comments and commented depends lines
2017-05-07 19:00:25 -05:00
nvarini
bb1a8efaca Added scala package (#67) 2017-05-07 13:05:29 +02:00
Adam J. Stewart
42b09640f0 gmp: switch to download directly from GNU (#4152) 2017-05-06 14:24:19 -05:00
Adam J. Stewart
4f439f8e82 mpfr: switch to more reliable URL (#4139)
* Add list_url to mpfr

* Switch to download directly from GNU

* http -> https
2017-05-06 14:22:32 -05:00
Barry Britt
c0a52cc59e Updating bamtools to include a dependency for zlib. (#4031)
* Updating bamtools to include a dependency for zlib.

In a standard compile, bamtools will fail if zlib headers are not installed on the target machine. In order to maintain compatibility with all systems -- and since zlib is included already as a dependency for cmake -- this patch adds zlib as a link dependency for the bamtools package.

* Modified cmake rpath include.

Bamtools has a non-standard library location, so we need to append $prefix/lib/bamtools to the rpath. Not sure there's a better way to do this...

* Fixing syntax error in package.py

Fixed a non-terminated parenthesis on line 46.

* Updated bamtools to be a CMakePackage

Removed extraneous code, and altered the package to extend cmake_args
including the non-standard library location.

* UpRemoving cmake dependency and removing blank line from end of file

* Updates to cmake_args.

Removed the duplicate definition of std_cmake_args in favor of simply overriding the CMAKE_INSTALL_RPATH variable that is provided. This should allow the package to be linked correctly to itself.
2017-05-06 12:05:12 -05:00
Matthew Scott Krafczyk
741e4df233 Update zlib to work with other compilers (#4088)
* Fix -include issue with intel and pgi in zlib

MERGE CANDIDATE

* Patch zlib to compiler with the cray compiler suite.
2017-05-06 12:02:32 -05:00
George Hartzell
f55eddb9bd Add info for perl@5.22.1 (#4147)
What the user wants, the user gets....
2017-05-05 18:00:23 -05:00
Adam J. Stewart
be991a6efa Add latest version of curl (#4140) 2017-05-05 16:21:37 -05:00
Adam J. Stewart
6e23c31ad1 Python 3 doesn't have iteritems, use items (#4143) 2017-05-05 16:21:15 -05:00
Adam J. Stewart
c3af901ac6 Add latest version of Lmod (#4141) 2017-05-05 23:06:07 +02:00
Peter Josef Scheibel
19511a78b8 Remove python dependency for libxcb and xcbproto
python+tk will not build because it depends (indirectly) on python~tk
via libxcb. There are efforts to allow multiple instances of a package
to concretize together but they are ongoing so in the meantime this
comments out the dependencies and adds TODOs
2017-05-05 13:06:49 -07:00
George Hartzell
f532b4c90b Add info for jdk@8u73 (#4137)
* Fix ordering of versions (proper!)

* Add url/digest for jdk@8u73
2017-05-05 13:05:27 -05:00
Todd Gamblin
665e328566 Add OpenCV 3.2.0 checksum (#4138) 2017-05-05 13:05:05 -05:00
George Hartzell
0042b5e856 Add info for r@3.3.3 (#4128) 2017-05-05 13:04:46 -05:00
Massimiliano Culpo
85b4b15d9a SV variants are evaluated correctly in "when=" (#4118)
* SV variants are evaluated correctly in `when=` statements fixes #4113

The problem here was tricky:
```python
spec.satisfies(other)
```
changes already the MV variants in others into SV variants (where
necessary) if spec is concrete. If it is not concrete it does
nothing because we may be acting at a pure syntactical level.

When evaluating a `when=` keyword spec is for sure not concrete
as it is in the middle of the concretization process. In this case we
have to trigger manually the substitution in other to not end up
comparing a MV variant "foo=bar" to a SV variant "foo=bar" and having
False in return. Which is wrong.

* sv variants: improved error message for typos in "when=" statements
2017-05-04 11:01:02 -07:00
Massimiliano Culpo
6a9052bd4d variants: fixed packages reported by @adamjstewart in #4098 (#4105) 2017-05-04 10:58:58 -07:00
Gregory Lee
26a9793148 patch sqlite to work around macro definition (#4117) 2017-05-04 06:43:27 -05:00
Matthew Scott Krafczyk
18db25bb02 Update py-beautifulsoup4 (#4089)
* Update py-beautifulsoup4

* Change beautifulsoup4 url to pypi.io url.
2017-05-03 14:17:04 -05:00
Matthew Scott Krafczyk
07e1597a15 building wget depends on perl > 5.12.0 (#4087)
* building wget depends on perl > 5.12.0

* Remove extra parenthesis
2017-05-03 10:29:55 -05:00
Massimiliano Culpo
7ef46f4f69 hdf5: updated version (#4108) 2017-05-03 08:06:04 -05:00
Massimiliano Culpo
ae9a9e019a spack: no stacktrace if not in debug mode + fix emacs variant (#4098)
* spack: no stacktrace if not in debug mode + fix emacs variant

* emacs: removed dead code
2017-05-03 06:21:37 +02:00
Matthew Scott Krafczyk
72d45f7a44 Add the py-dryscrape package (#4094)
* Add the py-dryscrape package

* Adjust dependencies and change development to develop
2017-05-02 18:47:55 -05:00
Matthew Scott Krafczyk
a651b979ca Update the py-lxml package (#4090) 2017-05-02 16:35:42 -05:00
Matthew Scott Krafczyk
f265eefa22 Add findutils package (#4091) 2017-05-02 16:35:15 -05:00
Matthew Scott Krafczyk
abdb1fb0a0 Add the py-webkit-server package (#4092)
* Add the py-webkit-server package

* Change development to develop
2017-05-02 16:34:28 -05:00
Matthew Scott Krafczyk
2a1301596d Add the py-xvfbwrapper package (#4093) 2017-05-02 15:29:48 -05:00
Matthew Scott Krafczyk
70ea990efd Add py-pyprof2html package (#4095) 2017-05-02 15:28:46 -05:00
Matthew Scott Krafczyk
39ddc7d159 Add py-libconf package (#4096) 2017-05-02 15:28:19 -05:00
Matthew Scott Krafczyk
a0efcaef69 Add the libconfig package (#4097) 2017-05-02 15:27:56 -05:00
Massimiliano Culpo
78c4d0bd20 cgal: updated version (#4081) 2017-05-02 12:27:37 -05:00
Adam J. Stewart
9a3acea759 Allow ghostscript to build with Spack dependencies (#4065) 2017-05-02 09:45:10 -05:00
Adam J. Stewart
0f9059236c Add missing dependencies to emacs (#4068) 2017-05-02 09:44:02 -05:00
Massimiliano Culpo
b32afbbbcb mvapich2: fixed broken reference to spec (#4078) 2017-05-02 11:26:30 +02:00
Adam J. Stewart
c86b53a73f Add latest version of libtiff (#4067) 2017-05-01 15:19:51 -05:00
Massimiliano Culpo
9e4b0eb34a Multi-valued variants (#2386)
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
2017-05-01 13:08:47 -07:00
Adam J. Stewart
5d0d670b72 Add latest version of lcms (#4066) 2017-05-01 14:31:59 -05:00
Adam J. Stewart
2511520b32 Add a WafPackage base class (#3975)
* Add a WafPackage base class

* Correct comment in docstring

* Be more specific about the Python versions supported
2017-05-01 08:00:09 -07:00
Christoph Junghans
9f46bc8997 flecsale: works with python3 (#4058)
Ref laristra/flecsale#41
2017-04-30 19:25:16 -07:00
Massimiliano Culpo
17767bcf25 suite-sparse: updated version (#4055) 2017-04-30 12:01:35 +02:00
Christoph Junghans
110f68a83f Clean up now that submodules are properly supported. (#4053) 2017-04-29 20:43:16 -07:00
Christoph Junghans
0a9beccc4a flecsale: add more features (#4052) 2017-04-29 20:39:22 -05:00
Adam J. Stewart
ce3ab503de Python command, libraries, and headers (#3367)
## Motivation

Python installations are both important and unfortunately inconsistent. Depending on the Python version, OS, and the strength of the Earth's magnetic field when it was installed, the name of the Python executable, directory containing its libraries, library names, and the directory containing its headers can vary drastically. 

I originally got into this mess with #3274, where I discovered that Boost could not be built with Python 3 because the executable is called `python3` and we were telling it to use `python`. I got deeper into this mess when I started hacking on #3140, where I discovered just how difficult it is to find the location and name of the Python libraries and headers.

Currently, half of the packages that depend on Python and need to know this information jump through hoops to determine the correct information. The other half are hard-coded to use `python`, `spec['python'].prefix.lib`, and `spec['python'].prefix.include`. Obviously, none of these packages would work for Python 3, and there's no reason to duplicate the effort. The Python package itself should contain all of the information necessary to use it properly. This is in line with the recent work by @alalazo and @davydden with respect to `spec['blas'].libs` and friends.

## Prefix

For most packages in Spack, we assume that the installation directory is `spec['python'].prefix`. This generally works for anything installed with Spack, but gets complicated when we include external packages. Python is a commonly used external package (it needs to be installed just to run Spack). If it was installed with Homebrew, `which python` would return `/usr/local/bin/python`, and most users would erroneously assume that `/usr/local` is the installation directory. If you peruse through #2173, you'll immediately see why this is not the case. Homebrew actually installs Python in `/usr/local/Cellar/python/2.7.12_2` and symlinks the executable to `/usr/local/bin/python`. `PYTHONHOME` (and presumably most things that need to know where Python is installed) needs to be set to the actual installation directory, not `/usr/local`.

Normally I would say, "sounds like user error, make sure to use the real installation directory in your `packages.yaml`". But I think we can make a special case for Python. That's what we decided in #2173 anyway. If we change our minds, I would be more than happy to simplify things.

To solve this problem, I created a `spec['python'].home` attribute that works the same way as `spec['python'].prefix` but queries Python to figure out where it was actually installed. @tgamblin Is there any way to overwrite `spec['python'].prefix`? I think it's currently immutable.

## Command

In general, Python 2 comes with both `python` and `python2` commands, while Python 3 only comes with a `python3` command. But this is up to the OS developers. For example, `/usr/bin/python` on Gentoo is actually Python 3. Worse yet, if someone is using an externally installed Python, all 3 commands may exist in the same directory! Here's what I'm thinking:

If the spec is for Python 3, try searching for the `python3` command.
If the spec is for Python 2, try searching for the `python2` command.
If neither are found, try searching for the `python` command.

## Libraries

Spack installs Python libraries in `spec['python'].prefix.lib`. Except on openSUSE 13, where it installs to `spec['python'].prefix.lib64` (see #2295 and #2253). On my CentOS 6 machine, the Python libraries are installed in `/usr/lib64`. Both need to work.

The libraries themselves change name depending on OS and Python version. For Python 2.7 on macOS, I'm seeing:
```
lib/libpython2.7.dylib
```
For Python 3.6 on CentOS 6, I'm seeing:
```
lib/libpython3.so
lib/libpython3.6m.so.1.0
lib/libpython3.6m.so -> lib/libpython3.6m.so.1.0
```
Notice the `m` after the version number. Yeah, that's a thing.

## Headers

In Python 2.7, I'm seeing:
```
include/python2.7/pyconfig.h
```
In Python 3.6, I'm seeing:
```
include/python3.6m/pyconfig.h
```
It looks like all Python 3 installations have this `m`. Tested with Python 3.2 and 3.6 on macOS and CentOS 6

Spack has really nice support for libraries (`find_libraries` and `LibraryList`), but nothing for headers. Fixed.
2017-04-29 17:24:13 -07:00
Adam J. Stewart
a32a0eacba Add a new package for dash (#4050) 2017-04-29 12:24:50 -07:00