Commit graph

24955 commits

Author SHA1 Message Date
Todd Gamblin
8880a00862 package_hash: remove all unassigned strings, not just docstrings
Some packages use top-level unassigned strings instead of comments, either just after a
docstring on in the body somewhere else. Ignore those strings becasue they have no
effect on package behavior.

- [x] adjust RemoveDocstrings to remove all free-standing strings.
- [x] move tests for util/package_hash.py to test/util/package_hash.py

Co-authored-by: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
2022-01-12 06:14:18 -08:00
Todd Gamblin
572fbf4f49 unparser: handle unicode string literals consistently across Python versions
Python 2 and 3 represent string literals differently in the AST. Python 2 requires '\x'
literals, and Python 3 source is always unicode, and allows unicode to be written
directly.  These also unparse differently by default.

- [x] modify unparser to write both out the way `repr` would in Python 2 when
  `py_ver_consistent` is provided.
2022-01-12 06:14:18 -08:00
Todd Gamblin
396c37d82f unparser: implement operator precedence algorithm for unparser
Backport operator precedence algorithm from here:
    397b96f6d7

This eliminates unnecessary parentheses from our unparsed output and makes Spack's unparser
consistent with the one in upstream Python 3.9+, with one exception.

Our parser normalizes argument order when `py_ver_consistent` is set, so that star arguments
in function calls come last.  We have to do this because Python 2's AST doesn't have information
about their actual order.

If we ever support only Python 3.9 and higher, we can easily switch over to `ast.unparse`, as
the unparsing is consistent except for this detail (modulo future changes to `ast.unparse`)
2022-01-12 06:14:18 -08:00
Todd Gamblin
afb358313a unparser: refactor delimiting with context managers in ast.unparse
Backport of 4b3b1226e8
2022-01-12 06:14:18 -08:00
Todd Gamblin
5847eb1e65 unparser: add block() context manager for indentation
This is a backport of a refactor from cpython 3.9
2022-01-12 06:14:18 -08:00
Todd Gamblin
2badd6500e unparse: Make unparsing consistent for 2.7 and 3.5-3.10
Previously, there were differences in the unparsed code for Python 2.7 and for 3.5-3.10.
This makes unparsed code the same across these Python versions by:

    1. Ensuring there are no spaces between unary operators and
       their operands.
    2. Ensuring that *args and **kwargs are always the last arguments,
       regardless of the python version.
    3. Always unparsing print as a function.
    4. Not putting an extra comma after Python 2 class definitions.

Without these changes, the same source can generate different code for different
Python versions, depending on subtle AST differences.

One place where single source will generate an inconsistent AST is with
multi-argument print statements, e.g.:

```
    print("foo", "bar", "baz")
```

In Python 2, this prints a tuple; in Python 3, it is the print function with
multiple arguments.  Use `from __future__ import print_function` to avoid
this inconsistency.
2022-01-12 06:14:18 -08:00
Todd Gamblin
b324fe5d95 externals: add astunparse
Add `astunparse` as `spack_astunparse`. This library unparses Python ASTs and we're
adding it under our own name so that we can make modifications to it.

Ultimately this will be used to make `package_hash` consistent across Python versions.
2022-01-12 06:14:18 -08:00
Andrew W Elble
a38cdddd37
perl-tk: add missing dependencies (#28240) 2022-01-12 14:53:25 +01:00
Dylan Simon
2cf22ad5f2
e2fsprogs: fix non-root install (#28255) 2022-01-12 14:52:46 +01:00
Harmen Stoppels
c8e01752a1
Use depends_on over load in lmod module files generated by Spack (#28352) 2022-01-12 13:29:22 +00:00
snehring
640a4f7dcd
poamsa: fix build errors for gcc10+ (#28262) 2022-01-12 14:09:55 +01:00
Danny McClanahan
435a241869
yarn: add runtime dependency on node-js@4.0: (#27654) 2022-01-12 13:05:49 +00:00
H. Joe Lee
a5ff3206f9
HDF5 GPU VFD: add new package. (#28272) 2022-01-12 13:59:51 +01:00
Melven Roehrig-Zoellner
5bb5bf3efb
ITensor: add v3.1.10 and 'shared' variant (#28370) 2022-01-12 05:20:10 -07:00
Adam J. Stewart
55a62a1ee5
py-async-timeout: fix checksum issue (#28329) 2022-01-12 10:53:12 +01:00
Nils Leif Fischer
7fa81a66af
libtheora: disable docs by default (#28330) 2022-01-12 10:24:58 +01:00
Nils Leif Fischer
4e0372b9b7
curl: add support for external detection (#28331) 2022-01-12 10:24:10 +01:00
Massimiliano Culpo
5476e5d035
Remove tut since it requires deprecated Python 3.6 (#28360) 2022-01-12 09:34:50 +01:00
kwryankrattiger
363a565ce3
Packaging: Virtual package for libllvm (#27200)
Add an abstraction around libllvm to allow libllvm
providers to be specified for all packages.

This is targeting allowing mesa to build against
llvm-amdgpu or intel-llvm or llvm or any other
custom llvm variant that arises for specific GPU
toolchains
2022-01-11 13:28:13 -08:00
Erik Schnetter
d4a468c160
memkind: add v1.12.0 (#28306) 2022-01-11 11:23:36 -07:00
Erik Schnetter
6690bb7411
openblas: New version 0.3.19 (#28308) 2022-01-11 16:55:23 +01:00
Adam J. Stewart
2ab871dd17
py-aiohttp: switch to PyPI tarball (#28333) 2022-01-11 14:33:02 +01:00
Adam J. Stewart
2ea8abef34
Open3D: add missing LLVM dep (#28334) 2022-01-11 14:32:34 +01:00
Erik Schnetter
67d9abb5f1
ffmpeg: add v4.4.1 (#28300) 2022-01-11 14:21:43 +01:00
Harmen Stoppels
f611eb0283
hdf5: prefer stable over experimental releases (#28340) 2022-01-11 10:32:28 +01:00
Harmen Stoppels
78debc1143
mbedtls: add v2.16.12, v2.28.0 and v3.1.0(#28281) 2022-01-11 10:28:58 +01:00
Adam J. Stewart
7b76e3982f
Deprecate Python 2 installations (#28003)
* Deprecate Python 2 installations

* Deprecate py-python-meep

* Deprecate older easybuild backend libs

* Deprecate Python 3.6

* Deprecate miniconda2
2022-01-10 15:45:35 -06:00
Erik Schnetter
675210bd8b
automake: New version 1.16.5 (#28299) 2022-01-10 21:33:14 +01:00
Erik Schnetter
0236e88af4
gawk: New version 5.1.1 (#28301) 2022-01-10 21:32:53 +01:00
Erik Schnetter
c939af8185
gdbm: New version 1.22 (#28302) 2022-01-10 21:32:40 +01:00
Erik Schnetter
33d8e8f31c
grep: New version 3.7 (#28303) 2022-01-10 21:32:33 +01:00
Erik Schnetter
f678d5818f
lorene: Beautify package title in documentation (#28305) 2022-01-10 21:32:20 +01:00
Erik Schnetter
4ef8e15ed3
wi4mpi: New version 3.5.0 (#28313) 2022-01-10 21:31:30 +01:00
Erik Schnetter
09ca7c4d9c
wget: New version 1.21.2 (#28312) 2022-01-10 21:31:13 +01:00
Erik Schnetter
76d9adae8c
openssl: New version 1.1.1m (#28310) 2022-01-10 21:30:58 +01:00
Peter Scheibel
9f7fb6d01a
stage.steal_source: preserve symlinks
This avoids dangling symlink errors. ignore_dangling_symlinks option would be more-targeted but is only available for Python >= 3.2 (#28318)
2022-01-10 10:10:49 -08:00
Adam J. Stewart
cc32b08205
Python: set default config_vars (#28290)
* Python: set default config_vars

* Add missing commas

* dso_suffix not present for some reason

* Remove use of default_site_packages_dir

* Use config_vars during bootstrapping too

* Catch more errors

* Fix unit tests

* Catch more errors

* Update docstring
2022-01-10 12:00:06 -06:00
Marcus Boden
5958306466
New packages: google-crc32c and py-google-crc32c (#28293) 2022-01-10 08:58:02 -06:00
Erik Schnetter
464d294b63
z3: New version 4.8.14 (#28314) 2022-01-10 14:31:52 +01:00
Erik Schnetter
b7f4a421e4
hwloc: New version 2.7.0 (#28298) 2022-01-10 12:00:51 +01:00
Peter Brady
fe64afb479
New package: petaca (#28326)
* Add the petaca fortran/c package

* Adopt date for version name and remove variants
2022-01-09 19:49:49 -05:00
luker
0277067e5f
blaspp: set BLA_VENDOR for cray (#28104)
* for Cray's libsci in blaspp, set BLA_VENDOR=all

* Update package.py

* Update package.py

* Update package.py
2022-01-08 15:41:50 -05:00
Adam J. Stewart
334102addd
SQLite: add new version/variant (#28204) 2022-01-08 12:57:57 -06:00
Erik Schnetter
52d475e89b
openssh: New version 8.8p1 (#28325) 2022-01-08 13:10:28 +01:00
Martin Diehl
2bb844ee0e
Damask improvements (#28178) 2022-01-08 06:50:38 -05:00
Jógvan Magnus Haugaard Olsen
897616f073
Dalton package: add versions and variants (#28226)
* Update existing 2020.0 version to use tag
* Add versions 2018.2 and master
* Add patches for GCC/Intel
* Use MPI compiler wrappers when +mpi
* Constrain CMake build dependency (need >= 3.1)
* Add variants for optional components (e.g QFIT library)
2022-01-07 18:59:17 -08:00
Anton Kozhevnikov
34f0222fdd
ELPA package: don't check threading support during build (#28227)
./configure tries to execute an MPI test, which is not possible on
most HPC platforms (if you don't build on a compute node), so this
check is disabled to allow the build to proceed. Ideally we could
check this by placing constraints on the MPI that Spack builds (e.g.
require building a version that is guaranteed to have threading
support).
2022-01-07 18:13:46 -08:00
Peter Brady
d125bdfaa0
Catch2 package: add versions 2.13.8 and 3.0.0-preview4 (#28297) 2022-01-07 16:55:49 -08:00
Satish Balay
6a60201e80
petsc, py-petsc4py: add versions 3.16.3 (#28277) 2022-01-07 17:15:27 -06:00
Glenn Johnson
a3f5b712d3
py-pyzmq: adjust constraints for python-3.9 (#28264)
Version 18.1 builds with python-3.9
2022-01-07 15:08:02 -06:00