Commit graph

15265 commits

Author SHA1 Message Date
Todd Gamblin
a12c032509 make license check slightly more lenient
bin/spack now needs to have a "-*- python -*-" line after the shebang, so
that emacs will interpret it as a python file instead of as a shell
script.  Add one line to the license check limit to accommodate this.
2019-09-29 09:32:04 -07:00
Todd Gamblin
97980a8f94 prefer Python 3 to Python 2 for running Spack
The Python landscape is going to be changing in 2020, and Python 2 will
be end of life. Spack should *prefer* Python 3 to Python 2 by default,
but we still need to run on systems that only have Python2 available.

This is trickier than it sounds, as on some systems, the `python` command
is `python2`; on others it's `python3`, and RHEL8 doesn't even have the
`python` command.  Instead, it makes you choose `python3` or
`python2`. You can thus no longer make a simple shebang to handle all the
cases.

This commit makes the `spack` script bilingual.  It is still valid
Python, but its shebang is `#!/bin/sh`, and it has a tiny bit of shell
code at the beginning to pick the right python and execute itself with
what it finds.

This has a lot of advantages.  I think this will help ensure that Spack
works well in Python3 -- there are cases where we've missed things
because Python2 is still the default `python` on most systems.  Also,
with this change, you do not lose the ability to execute the `spack`
script directly with a python interpreter.  This is useful for forcing
your own version of python, running coverage tools, and running profiling
tools.  i.e., these will not break with this change:

```console
$ python2 $(which spack) <args>
$ coverage run $(which spack) <args>
$ pyinstrument $(which spack) <args>
```

These would not work if we split `spack` into a python file and a shell
script (see #11783).  So, this gives us the best of both worlds.  We get
to control our interpreter *and* remain a mostly pure python executable.
2019-09-29 09:32:04 -07:00
Glenn Johnson
c56f03a3ba The perl-uri-escape package duplicates perl-uri (#12971)
* The perl-uri-escape package duplicates perl-uri

The Perl URI::Escape module is in the Perl URI package so the Spack
perl-uri-escape package is a duplicate of the perl-uri package. This PR
does the following:

- replace `depends_on('perl-uri-escape')` with `depends_on('perl-uri')`
  in packages that dependend on perl-uri-escape
- add the version from perl-uri-escape to perl-uri
- remove the unneeded dependency from perl-uri
- remove the perl-uri-escape package

* Reinstated perl-test-needs dependency

Put the perl-test-needs dependency for perl-uri back in but set it to
type='test'.

* For tests to succeed the type must be ('build', 'test')
2019-09-29 09:27:42 -05:00
Massimiliano Culpo
9117dfd118 Add all the 'generic' architectures that are mentioned in recipes (#12958)
LLVM, mesa and other packages check for these generic
microarchitectures. One solution is to let Spack know they exist.
2019-09-28 21:47:05 -07:00
Massimiliano Culpo
467261803f raxml: simplified recipe by removing SIMD variants (#12952)
Now the support for SSE3 or AVX is tested on the selected target
2019-09-28 13:45:01 -05:00
t-karatsu
c065c25a4c bowtie: fix for aarch64, and bugfix about c++11-narrowing. (#12953) 2019-09-28 13:44:02 -05:00
Massimiliano Culpo
4cebc68f06 vdt: simplified recipe by removing SIMD variants (#12954)
Now the support for SSE3 or AVX is tested on the selected target
2019-09-28 13:41:57 -05:00
Jaroslav Hron
7e9365036f correct with-xxx-lib= options (#12964) 2019-09-28 13:39:45 -05:00
Patrick Schratz
86a85b7eb2 update neovim (#12965) 2019-09-28 13:28:27 -05:00
Shintaro Iwasaki
3776eccc4b bolt: add a new version, 1.0rc2 (#12966) 2019-09-28 13:27:33 -05:00
Daryl W. Grunau
8db94bcc86 eospac: laws.lanl.gov -> laws-green.lanl.gov (#12970) 2019-09-27 17:28:38 -07:00
Ross Miller
c49c37af9b py-adios package: restrict python dependency to <=3.6.x (#12932)
The adios code (currently) won't compile against the Python 3.7 C API.
This change adds a dependency on 3.6 or less.
2019-09-27 17:19:36 -07:00
Kevin Huck
b4c28182dc Tau package: turn off unsupported variants by default on OSX (#12890) 2019-09-27 17:16:44 -07:00
G-Ragghianti
61d41eea7f New package: libibumad (#12886) 2019-09-27 17:02:34 -07:00
Glenn Johnson
fc99eddb12 New package: maker and dependencies (#12904) 2019-09-27 14:59:58 -07:00
Glenn P Johnson
08a6577861 Fix perl build when using Build.PL
This fixes #12852 where perl builds that use Build.PL will fail when the
shebang of the Build script produced from the configure step is too
long.
2019-09-26 13:38:13 -07:00
Seth R. Johnson
5201d2615e qt4: fix 'arch' string due to microarchitecture change (#12957)
qt4 fails to build because it's expecting something like 'x86_64' rather 
than 'broadwell'.
2019-09-26 21:15:17 +02:00
Patrick Gartung
7dae058f91
Relocate mach-o binaries using macholib on linux. (#12946)
Changes deps and rpaths for bins and libs, changes id for libs.
2019-09-26 13:04:58 -05:00
eugeneswalker
950338aa92 add --no-deps opt to buildcache-create (#12956) 2019-09-26 12:23:59 -05:00
Patrick Gartung
321e956fa9
External: add macholib and altgraph needed to relocate Mach-o binaries on Linux (#12909) 2019-09-26 11:48:22 -05:00
Massimiliano Culpo
90236bc9f5
Update target comparison semantic for a few packages (#12947)
Use spec.target.family instead of spec.architecture.target
2019-09-26 10:25:12 +02:00
Massimiliano Culpo
31e5318c24
Removed references to '(-march|-mtune|-mcpu)=native' (#12948)
Now that Spack injects microarchitecture specific optimizations for
the selected target, packages should avoid adding flags that could
step over those.
2019-09-26 10:02:08 +02:00
Massimiliano Culpo
78d051b534
parsimonator: simplified recipe by removing SIMD variants (#12949)
Now the support for SSE3 or AVX is tested on the selected target
2019-09-26 09:33:18 +02:00
Seth R. Johnson
f2967b6c16 New package: flibcpp (Fortran bindings to C++ standard library) (#12926) 2019-09-25 19:25:24 -07:00
liuyangzhuan
b384504218 butterflypack package: add version 1.0.3 (#12927) 2019-09-25 19:16:47 -07:00
Glenn Johnson
dd626a0f07 interproscan package: add version 4.8, patch for version 5 (#12897)
This PR adds interproscan-4.8, which has a completely different build
system than version 5. Note that this builds for running on a host as
opposed to a queue system. I am fairly certain that a queue system can
be configured later.

This PR also adds a patch for intrproscan-5 to build when the user
building the packages has a large GID by setting posix mode for tar.
2019-09-25 19:04:57 -07:00
Sinan
c5860d89b7 libspatialite package: add version 3.0.1 and missing dependencies (#12843) 2019-09-25 18:48:48 -07:00
Sinan
507b28de18 py-imageio package: add versions 2.4.1 and 2.5.0 (#12884) 2019-09-25 18:44:57 -07:00
Matthieu Dorier
e6cae978b8 llvm, mesa: update target comparison semantics (#12914)
* llvm: fixed issues with syntax and formatting
  * use spec.architecture.target.family
  * use spec.target instead of spec.architecture.target
* mesa: use == instead of __contains__
2019-09-25 16:41:02 -07:00
Adam J. Stewart
4e858e24b0
libflame: fix macOS build (#12950) 2019-09-25 18:37:33 -05:00
Matthieu Dorier
71cc29691b openblas: fixed a query to target family (#12910) 2019-09-25 22:15:23 +02:00
Christoph Junghans
ccfe8aaf76
portage: fix RelWithDebInfo build (#12944) 2019-09-25 11:29:43 -06:00
Christoph Junghans
e123058721
kokkos-kernels: initial commit (#12934) 2019-09-25 09:00:01 -06:00
Mathias Jacquelin
7a11a2ccdb Upcxx package: remove warning, add version 2019.9.0 (#12880)
A function added to this package ran as part of importing it and
printed a warning for most Spack invocations, this removes the
warning message.

Also:

* Use compilers directly instead of Spack compiler wrappers (since
  references to the compiler are embedded in text and binary files
  of the installation)
* Add 'cross' variant for setting CROSS environment variable for
  build
* Set UPCXX_INSTALL for generated module files
* Set UPCXX_GASNET_CONDUIT/UPCXX_NETWORK in generated module files
  on Cray systems
* Also set UPCXX_NETWORK in build environment for Cray systems
2019-09-24 13:25:05 -07:00
Adam J. Stewart
065cbe89fe Fix "specific target" detection in Python 3 (#12906)
The output of subprocess.check_output is a byte string in Python 3. This causes dictionary lookup to fail later on.

A try-except around this function prevented this error from being noticed. Removed this so that more errors can propagate out.
2019-09-24 09:47:54 -07:00
Simo Tuomisto
6cd5edacca heaptrack: added new package at version 1.1.0 (#12844) 2019-09-24 15:54:23 +02:00
Patrick Gartung
6dd9dbc071
Change get_patchelf to immediately return patchelf path if found (#12925) 2019-09-24 08:38:19 -05:00
Glenn Johnson
10d5e90e65 Add missing dependency to perl-xml-parser (#12903)
This PR adds the following dependency:

+    depends_on('perl-libwww-perl', type=('build', 'run'))
2019-09-24 12:51:55 +02:00
Glenn Johnson
fa5a9cd878 Added missing dependencies for perl-list-moreutils (#12900)
The following dependencies were added:

+    depends_on('perl-exporter-tiny', type=('build', 'run'))
+    depends_on('perl-list-moreutils-xs', type=('build', 'run'))
2019-09-24 12:45:39 +02:00
Glenn Johnson
b508eaa806 Added depencies to perl-libwww-perl (#12899)
The following dependencies are needed for perl-libwww-perl according to
https://metacpan.org:

+    depends_on('perl-encode-locale', type=('build', 'run'))
+    depends_on('perl-file-listing', type=('build', 'run'))
+    depends_on('perl-html-parser', type=('build', 'run'))
+    depends_on('perl-http-cookies', type=('build', 'run'))
+    depends_on('perl-http-daemon', type=('build', 'run'))
+    depends_on('perl-http-date', type=('build', 'run'))
+    depends_on('perl-http-message', type=('build', 'run'))
+    depends_on('perl-http-negotiate', type=('build', 'run'))
+    depends_on('perl-lwp-mediatypes', type=('build', 'run'))
+    depends_on('perl-net-http', type=('build', 'run'))
+    depends_on('perl-try-tiny', type=('build', 'run'))
+    depends_on('perl-uri', type=('build', 'run'))
+    depends_on('perl-www-robotrules', type=('build', 'run'))
2019-09-24 12:45:02 +02:00
Glenn Johnson
ca11ce06b8 Add missing dependencies to perl-http-daemon (#12898)
Added the following dependencies:

+    depends_on('perl-http-date', type=('build', 'run'))
+    depends_on('perl-module-build-tiny', type='build')
2019-09-24 12:44:28 +02:00
Axel Huebl
1d316c4eb3 spdlog: added version 1.4.1 (#12917)
Add newest release with ability to pre-build as shared or static
library.
2019-09-24 12:19:19 +02:00
t-karatsu
9aca0a17f4 Fujitsu compilers: added 'verbose_flag' method (#12922) 2019-09-24 11:17:29 +02:00
Todd Gamblin
18d63a239f bugfix: use string keys to set preferred targets (#12921)
Preferred targets were failing because we were looking them up by
Microarchitecture object, not by string.

- [x] Add a call to `str()` to fix target lookup.
- [x] Add a test to exercise this part of concretization.
- [x] Add documentation for setting `target` in `packages.yaml`
2019-09-24 10:18:48 +02:00
Massimiliano Culpo
2468ccee58 AMD: fix architecture hierarchy (zen) (#12913)
* microarchitectures: zen starts from x86_64, not from excavator
* Unit tests: fixed a test that is wrong with the new modeling
* microarchitectures: fixed features and inheritance for 15h family

bulldozer doesn't inherit from barcelona (10h) + added xop, lwp and tbm
instruction sets to the 15h family (it distinguish the family from 17h)
2019-09-23 21:54:13 -07:00
Adam J. Stewart
53db1eafb9
Fix installation permissions on BLIS and libflame libs (#12919)
* Fix installation permissions on BLIS and libflame libs

* Fix undefined symbols
2019-09-23 18:54:47 -05:00
Adam J. Stewart
d6555f64b0
Fix detection of Apple Clang 11.0.0 (#12912) 2019-09-23 17:25:33 -05:00
Jed Brown
958b81a564 libceed package: add version 0.5 (#12875)
Also enable vectorization via -O3 for gcc/clang
2019-09-23 10:38:44 -07:00
Tamara Dahlgren
08e77e1b41
tests: more template creation tests (#12882)
Addresses #12804 

This PR adds the creation of the remaining (16) templates to ensure we can create them with expected content. The goal is to facilitate catching during testing.
2019-09-23 10:18:50 -07:00
Seth R. Johnson
27d4e9a1d1 QT package: only enable fontconfig when freetype is enabled (#12574)
The 'fontconfig' option is only valid when freetype is enabled.
2019-09-23 10:04:29 -07:00