Commit graph

23095 commits

Author SHA1 Message Date
haralmha
eafa0ff085
py-pygdal: Add versions 3.3.0.10 and 3.3.2.10 (#26528)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-05 23:57:59 +00:00
haralmha
b20e7317ab
py-backcall: Add version 0.2.0 (#26487) 2021-10-06 01:55:27 +02:00
haralmha
2773178897
Add versions 3.1.6, 3.1.7 and 3.2.0 (#26527) 2021-10-06 01:48:18 +02:00
Bernhard Kaindl
e39866f443
h5utils: Fix build and add new version (#26133)
@1.12.1+png depends_on libpng@:1.5.0 because it needs the old API

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-10-05 23:13:02 +00:00
Massimiliano Culpo
d7fc17d5db
Set explicitly write permission for packages (#26539) 2021-10-05 23:12:25 +00:00
Olivier Cessenat
cc6508ec09
vtk: gui support for vtk 9 added (#25636) 2021-10-05 22:54:39 +00:00
haralmha
3157a97743
Add version 3.16.1 (#26534) 2021-10-06 00:27:17 +02:00
haralmha
aac7e28ea0
dd4hep: Add version 01-18 (#26525)
* Add 01-18

* Keep master on top and change version name format
2021-10-05 17:37:31 -04:00
Kevin Pedretti
47607dcac5
Use gnuconfig package for config file replacement for RISC-V. (#26364)
* Use gnuconfig package for config file replacement for RISC-V.

This extends the changes in #26035 to handle RISC-V. Before this change,
many packages fail to configure on riscv64 due to config.guess being too
old to know about RISC-V. This is seen out of the box when clingo fails
to build from source due to pkgconfig failing to configure, throwing
error: "configure: error: cannot guess build type; you must specify one".

* Add riscv64 architecture

* Update vendored archspec from upstream project.
These archspec updates include changes needed to support riscv64.

* Update archspec's __init__.py to reflect the commit hash of archspec being used.
2021-10-05 19:22:55 +00:00
Harmen Stoppels
d998ea1bd4
Move shell aware env into spack.environment.shell (#25608)
Cherry-picked from #25564 so this is standalone.

With this PR we can activate an environment in Spack itself, without computing changes to environment variables only necessary for "shell aware" env activation.

1. Activating an environment:
    
    ```python
    spack.environment.activate(Environment(xyz)) -> None
    ```
    this basically just sets `_active_environment` and modifies some config scopes.

2. Activating an environment **and** getting environment variable modifications for the shell:

    ```python
    spack.environment.shell.activate(Environment(xyz)) -> EnvironmentModifications
    ```

This should make it easier/faster to do unit tests and scripting with spack, without the cli interface.
2021-10-05 18:25:43 +00:00
haralmha
713bbdbe7c
postgresql: Add versions 14.0 and 12.2 (#26499) 2021-10-05 13:34:46 +02:00
haralmha
789beaffb7
doxygen: Add versions 1.9.2 and 1.8.18 (#26497) 2021-10-05 12:49:48 +02:00
Ricardo Jesus
4ee74c01e3
meme: Fix compilation with arm and nvhpc compilers (#24883)
* Fix compilation with `arm` and `nvhpc` compilers

* Update package.py
2021-10-05 05:55:12 -04:00
Jonas Thies
7f2fd50d20
phist: add a patch for the case +host arch=ppc64le (#26216) 2021-10-05 08:33:41 +00:00
Guilherme Perrotta
7ea9c75494
py-flatbuffers: add new package (#26444)
Python port of the "flatbuffers" package
2021-10-05 10:10:43 +02:00
Ivan Maidanski
1a651f1dca
libatomic_ops: add v7.6.12 (#26512) 2021-10-05 10:08:57 +02:00
Manuela Kuhn
4e6f2ede0a
py-rsatoolbox: add new package (#26514) 2021-10-05 10:07:03 +02:00
Axel Huebl
e1fb77496c
WarpX: 21.10 (#26507) 2021-10-05 10:01:26 +02:00
David Gardner
85de527668
sundials: Add 5.8.0 and sycl variant (#26524) 2021-10-05 10:00:11 +02:00
Heiko Bauke
f6a4f6bda7
mpl: add new package (#26522) 2021-10-05 09:59:14 +02:00
Mihael Hategan
95846ad443
py-parsl: new package (see https://parsl-project.org/) (#26360) 2021-10-05 09:53:02 +02:00
Massimiliano Culpo
337b54fab0
Isolate bootstrap configuration from user configuration (#26071)
* Isolate bootstrap configuration from user configuration

* Search for build dependencies automatically if bootstrapping from sources

The bootstrapping logic will search for build dependencies
automatically if bootstrapping anything form sources. Any
external spec, if found, is written in a scope that is specific
to bootstrapping.

* Don't clean the bootstrap store with "spack clean -a"

* Copy bootstrap.yaml and config.yaml in the bootstrap area
2021-10-05 09:16:09 +02:00
Seth R. Johnson
3cf426df99
zstd: fix install name on macOS (#26518)
Reverting from CMake to Make install caused
`-install_path=/usr/local/lib/libzstd.1.dylib` to be hardcoded into the
zstd. Now we explicitly pass the PREFIX into the build command so that
the correct spack install path is saved.

Fixes #26438 and also the ROOT install issue I had :)
2021-10-05 02:03:48 +00:00
Nisarg Patel
b5673d70de
molden: fix build with gcc@10: (#25803) 2021-10-05 01:36:20 +00:00
Todd Gamblin
84c878b66a cc: make error messages more clear
- [x] Our wrapper error messages are sometimes hard to differentiate from other build
      output, so prefix all errors from `die()` with '[spack cc] ERROR:'

- [x] The error we raise when running, say, `fc` without a Fortran compiler was not
      clear enough. Clarify the message and the comment.
2021-10-04 18:30:19 -07:00
Todd Gamblin
052b2e1b08 cc: convert compiler wrapper to posix shell
This converts everything in cc to POSIX sh, except for the parts currently
handled with bash arrays. Tests are still passing.

This version tries to be as straightforward as possible. Specifically, most conversions
are kept simple -- convert ifs to ifs, handle indirect expansion the way we do in
`setup-env.sh`, only mess with the logic in `cc`, and don't mess with the python code at
all.

The big refactor is for arrays. We can't rely on bash's nice arrays and be ignorant of
separators anymore. So:

1. To avoid complicated separator logic, there are three types of lists. They are:

    * `$lsep`-separated lists, which end with `_list`. `lsep` is customizable, but we
      picked `^G` (alarm bell) for `$lsep` because it's ASCII and it's unlikely that it
      would actually appear in any arguments. If we need to get fancier (and I will lose
      faith in the world if we do) then we could consider XON or XOFF.
    * `:`-separated directory lists, which end with `_dirs`, `_DIRS`, `PATH`, or `PATHS`
    * Whitespace-separated lists (like flags), which can have any other name.

    Whitespace and colon-separated lists come with the territory with PATHs from env
    vars and lists of flags. `^G` separated lists are what we use for most internal
    variables, b/c it's more likely to work.

2. To avoid subshells, use a bunch of functions that do dirty `eval` stuff instead. This
   adds 3 functions to deal with lists:

    * `append LISTNAME ELEMENT [SEP]` will put `ELEMENT` at the end of the list called
      `LISTNAME`. You can optionally say what separator you expect to use. Note that we
      are taking advantage of everything being global and passing lists by name.

    * `prepend LISTNAME ELEMENT [SEP]` like append, but puts `ELEMENT` at the start of
      `LISTNAME`

    * `extend LISTNAME1 LISTNAME2 [PREFIX]` appends everything in LISTNAME2 to
       LISTNAME1, and optionally prepends `PREFIX` to every element (this is useful for
       things like `-I`, `-isystem `, etc.

    * `preextend LISTNAME1 LISTNAME2 [PREFIX]` prepends everything in LISTNAME2 to
       LISTNAME1 in order, and optionally prepends `PREFIX` to every element.

The routines determine the separator for each argument by its name, so we don't have to
pass around separators everywhere. Amazingly, as long as you do not expand variables'
values within an `eval` environment, you can do all this and still preserve quoting.
When iterating over lists, the user of this API still has to set and unset `IFS`
properly.

We ended up having to ignore shellcheck SC2034 (unused variable), because using evals
all over the place means that shellcheck doesn't notice that our list variables are
actually used.

So far this is looking pretty good. I took the most complex unit test I could find
(which runs a sample link line) and ran the same command line 200 times in a shell
script.  Times are roughly as follows:

For this invocation:

```console
$ bash -c 'time (for i in `seq 1 200`; do ~/test_cc.sh > /dev/null; done)'
```

I get the following performance numbers (the listed shells are what I put in `cc`'s
shebang):

**Original**
* Old version of `cc` with arrays and `bash v3.2.57` (macOS builtin): `4.462s` (`.022s` / call)
* Old version of `cc` with arrays and `bash v5.1.8` (Homebrew): `3.267s` (`.016s` / call)

**Using many subshells (#26408)**
*  with `bash v3.2.57`: `25.302s` (`.127s` / call)
*  with `bash v5.1.8`: `27.801s` (`.139s` / call)
*  with `dash`: `15.302s` (`.077s` / call)

This version didn't seem to work with zsh.

**This PR (no subshells)**
*  with `bash v3.2.57`: `4.973s` (`.025s` / call)
*  with `bash v5.1.8`: `4.984s` (`.025s` / call)
*  with `zsh`: `2.995s` (`.015s` / call)
*  with `dash`: `1.890s` (`.0095s` / call)

Dash, with the new posix design, is easily the winner.

So there are several interesting things to note here:

1. Running the posix version in `bash` is slower than using `bash` arrays. That is to be
   expected because it's doing a bunch of string processing where it likely did not have
   to before, at least in `bash`.

2. `zsh`, at least on macOS, is significantly faster than the ancient `bash` they ship
   with the system. Using `zsh` with the new version also makes the posix wrappers
   faster than `develop`. So it's worth preferring `zsh` if we have it. I suppose we
   should also try this with newer `bash` on Linux.

3. `bash v5.1.8` seems to be significantly faster than the old system `bash v3.2.57` for
   arrays. For straight POSIX stuff, it's a little slower. It did not seem to matter
   whether `--posix` was used.

4. `dash` is way faster than `bash` or `zsh`, so the real payoff just comes from being
   able to use it. I am not sure if that is mostly startup time, but it's significant.
   `dash` is ~2.4x faster than the original `bash` with arrays.

So, doing a lot of string stuff is slower than arrays, but converting to posix seems
worth it to be able to exploit `dash`.

- [x] Convert all but array-related portions to sh
- [x] Fix basic shellcheck issues.
- [x] Convert arrays to use a few convenience functions: `append` and `extend`
- [x] Get `cc` tests passing.
- [x] Add `cc` tests where needed passing.
- [x] Benchmarking.

Co-authored-by: Tom Scogland <scogland1@llnl.gov>
Co-authored-by: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
2021-10-04 18:30:19 -07:00
Todd Gamblin
472638f025 .gitignore needs to be below env and ENV for case-insensitive FS 2021-10-04 18:30:19 -07:00
haralmha
8d0025b8af
Add 5.2.0 (#26481) 2021-10-04 19:37:34 -05:00
Martin Pokorny
32f8dad0e2
log4cxx: new version and fix for c++11 (#26480)
* Add version 0.12.1

* Add variant to build with C++11 standard

build with c++11 standard requires boost threads, and needs explicit setting of
CMAKE_CXX_STANDARD
2021-10-05 00:34:03 +00:00
KoyamaSohei
c426386f46
intel-tbb: install pkgconfig file (#23977)
* intel-tbb: install pkgconfig file

* intel-tbb: install pkgconfig file when @:2021.2.0

* intel-tbb: add blank line

* intel-tbb: fix library name to refer

* intel-tbb: fix library name to refer again

* intel-tbb: use self.prefix.lib.pkgconfig
2021-10-04 21:38:31 +00:00
Tamara Dahlgren
5a9e5ddb3d
Stand-alone tests: distinguish NO-TESTS from PASSED (#25880)
Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
2021-10-04 19:57:08 +00:00
snehring
675bdada49
esys-particle: add new package esys-particle (#25338)
* esys-particle: add new package esys-particle

* esys-particle: requested changes

* esys-particle: placating isort
2021-10-04 19:41:31 +00:00
Daniel Ahlin
c59223effe
gcc: apply nvcc patch to more versions (#24295)
Apply to all known affected versions (10.1.0 to 10.3.0 and 11.1.0)
2021-10-04 21:02:57 +02:00
haralmha
6a6bc3ecbb
git: new version 2.29.2 (#26478) 2021-10-04 18:23:38 +00:00
iarspider
b88c80bb1b
Add new pythia8 variants and fix url_for_version (#26280)
* Add new pythia8 variants
Add proper description to the existing ones

* Flake-8

* Flake-8

* Style

* Fix Pythia8 recipe

* Fix typo in variant description

* Update package.py
2021-10-04 12:52:51 -05:00
haralmha
b9e8d2d648
cppgsl: new version 3.1.0 (#26477) 2021-10-04 13:25:44 -04:00
Manuela Kuhn
377c781d7e
py-scikit-learn: add 0.19.2 and 0.22.2.post1 (#26473) 2021-10-04 18:48:26 +02:00
snehring
9a8712f4cb
masurca: Fix build with glibc-2.32+ (#26173)
remove sysctl.h which is not used by the build
2021-10-04 17:59:01 +02:00
Pedro Demarchi Gomes
90fa50d9df
Avoid replacing symlinked spack.yaml when concretizing an environment (#26428) 2021-10-04 14:59:03 +00:00
Pedro Demarchi Gomes
4ae71b0297
use umpire version 5.0.1:5 (#26451) 2021-10-04 16:32:47 +02:00
Vicente Bolea
572791006d
paraview: add v5.10.0-RC1 release (#26291) 2021-10-04 09:32:03 -04:00
mcuma
fa528c96e6
octave: add support for MKL (#25952) 2021-10-04 14:57:57 +02:00
iarspider
4f1c195bf9
grpc: update recipe (#25261)
1) forward `+shared` to re2
2) add `cxxstd` variant
3) use "more idiomatic" way of setting CMake options
2021-10-04 14:53:17 +02:00
Andreas Baumbach
35dd474473
Improve an error message in stage.py (#23737) 2021-10-04 14:47:14 +02:00
Tiziano Müller
2ca58e91d6
cp2k: bugfix for intel oneapi (#26143) 2021-10-04 14:41:49 +02:00
Oliver Perks
ad98e88173
arm: added download and better detection (#25460) 2021-10-04 14:35:20 +02:00
Harmen Stoppels
e557730c96
gnupg: Add version 1 (#23798)
From the gnupg.org website:

> GnuPG 1.4 is the old, single binary version which still support the
> unsafe PGP-2 keys. However, it lacks many modern features and will
> receive only important updates.

I'm starting to appreciate gpg1 more, because it is relocatable (gng2
has hard-coded paths to gpg-agent and other tools) and it does not
require gpg-agent at all.
2021-10-04 08:29:41 -04:00
iarspider
50b1b654c9
evtgen: fix mac build and version 2.0.0 with pythia >= 8.304. (#25933) 2021-10-04 14:06:49 +02:00
Manuela Kuhn
e9accaaca1
py-duecredit: add v0.6.5 (#26465) 2021-10-04 14:01:12 +02:00
Manuela Kuhn
68648b3ff5
py-nibabel: add v2.4.1 (#26462) 2021-10-04 14:00:49 +02:00