summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-05-28Additional BLAS/LAPACK library configuration for Numpy (#30817)JDBetteridge1-8/+12
* Add amdblis and amdlibflame as BLAS/LAPACK options * Add Cray-libsci as BLAS/LAPACK option * Use Netlib config for Cray-libsci
2022-05-28hpx: New version 1.8.0 (#30848)Erik Schnetter1-0/+1
2022-05-27target optimization: re-norm optimization scale so that 0 is best. (#29926)Greg Becker3-16/+34
referred targets are currently the only minimization criteria for Spack for which we allow negative values. That means Spack may be incentivized to add nodes to the DAG if they match the preferred target. This PR re-norms the minimization criteria so that preferred targets are weighted from 0, and default target weights are offset by the number of preferred targets per-package to calculate node_target_weight. Also fixes a bug in the test for preferred targets that was making the test easier to pass than it should be.
2022-05-28update tutorial command for v0.18.0 and new gpg key (#30904)Greg Becker2-35/+162
2022-05-27Ensure same BLAS/LAPACK config from Numpy used in Scipy (#30818)JDBetteridge1-2/+12
* Call Numpy package's set_blas_lapack() and setup_build_environment() in Scipy package * Remove broken link from comment * Use .package attribute of spec to avoid import
2022-05-27Add R 4.2.0 (#30859)Derek Ryan Strong1-0/+1
2022-05-27gcc: add 9.5.0 (#30893)Michael Kuhn1-0/+1
2022-05-27Python: fix clingo bootstrapping on Apple M1 (#30834)Adam J. Stewart1-44/+75
This PR fixes several issues I noticed while trying to get Spack working on Apple M1. - [x] `build_environment.py` attempts to add `spec['foo'].libs` and `spec['foo'].headers` to our compiler wrappers for all dependencies using a try-except that ignores `NoLibrariesError` and `NoHeadersError` respectively. However, The `libs` and `headers` attributes of the Python package were erroneously using `RuntimeError` instead. - [x] `spack external find python` (used during bootstrapping) currently has no way to determine whether or not an installation is `+shared`, so previously we would only search for static Python libs. However, most distributions including XCode/Conda/Intel ship shared Python libs. I updated `libs` to search for both shared and static (order based on variant) as a fallback. - [x] The `headers` attribute was recursively searching in `prefix.include` for `pyconfig.h`, but this could lead to non-deterministic behavior if multiple versions of Python are installed and `pyconfig.h` files exist in multiple `<prefix>/include/pythonX.Y` locations. It's safer to search in `sysconfig.get_path('include')` instead. - [x] The Python installation that comes with XCode is broken, and `sysconfig.get_paths` is hard-coded to return specific directories. This meant that our logic for `platlib`/`purelib`/`include` where we replace `platbase`/`base`/`installed_base` with `prefix` wasn't working and the `mkdirp` in `setup_dependent_package` was trying to create a directory in root, giving permissions issues. Even if you commented out those `mkdirp` calls, Spack would add the wrong directories to `PYTHONPATH`. Added a fallback hard-coded to `lib/pythonX.Y/site-packages` if sysconfig is broken (this is what distutils always did).
2022-05-27llvm: 14.0.3 and 14.0.4 (#30888)Paul R. C. Kent1-0/+2
2022-05-27otf2/scorep: add versions 3.0/7.1 (#28631)Severin Strobl3-9/+23
2022-05-26Revert "strip -Werror: all specific or none (#30284)" (#30878)Scott Wittenburg5-127/+3
This reverts commit 330832c22cfa59554f6681a570bdec24ca46e79b.
2022-05-26Updated mfem constraints in laghos spackage (#30851)Robert Pavel1-2/+2
Updated mfme constraints in laghos spackage to better match comments and support legacy builds of `laghos@1.0:2.0`
2022-05-26q-e-sirius: remove ~apps constraint (#30857)Simon Pintarelli1-1/+4
2022-05-26Added hash for new versions (#30860)Brian Van Essen1-0/+2
2022-05-26Add new versions of GNU parallel (#30862)Derek Ryan Strong1-1/+6
2022-05-26Add newer nano versions (#30865)Derek Ryan Strong1-1/+17
2022-05-26Adding new package bricks for x86, cuda (#30863)Hans Johansen1-0/+88
* Adding new package bricks for x86, cuda * Fixed complaints from "spack style" that CI found * add license comment at top Co-authored-by: drhansj <drhansj@berkeley.edu> Co-authored-by: eugeneswalker <38933153+eugeneswalker@users.noreply.github.com>
2022-05-26Remove the warning that Spack prints at each spec (#30872)Massimiliano Culpo2-3/+7
Add instead a warning box in the documentation
2022-05-26ci: Support secure binary signing on protected pipelines (#30753)Scott Wittenburg13-172/+534
This PR supports the creation of securely signed binaries built from spack develop as well as release branches and tags. Specifically: - remove internal pr mirror url generation logic in favor of buildcache destination on command line - with a single mirror url specified in the spack.yaml, this makes it clearer where binaries from various pipelines are pushed - designate some tags as reserved: ['public', 'protected', 'notary'] - these tags are stripped from all jobs by default and provisioned internally based on pipeline type - update gitlab ci yaml to include pipelines on more protected branches than just develop (so include releases and tags) - binaries from all protected pipelines are pushed into mirrors including the branch name so releases, tags, and develop binaries are kept separate - update rebuild jobs running on protected pipelines to run on special runners provisioned with an intermediate signing key - protected rebuild jobs no longer use "SPACK_SIGNING_KEY" env var to obtain signing key (in fact, final signing key is nowhere available to rebuild jobs) - these intermediate signatures are verified at the end of each pipeline by a new signing job to ensure binaries were produced by a protected pipeline - optionallly schedule a signing/notary job at the end of the pipeline to sign all packges in the mirror - add signing-job-attributes to gitlab-ci section of spack environment to allow configuration - signing job runs on special runner (separate from protected rebuild runners) provisioned with public intermediate key and secret signing key
2022-05-26py-tensorboard: add v2.9.0 (#30832)Adam J. Stewart1-13/+17
2022-05-25libtiff: remove extra dependencies/patch (#30854)Adam J. Stewart2-72/+6
2022-05-26bugfix: do not compute `package_hash` for old concrete specs (#30861)Todd Gamblin2-35/+50
Old concrete specs were slipping through in `_assign_hash`, and `package_hash` was attempting to recompute a package hash when we could not know the package a time of concretization. Part of this was that the logic for `_assign_hash` was hard to understand -- it was called twice from `_finalize_concretization` and had special cases for both args it was called with. It's much easier to understand the logic here if we just inline it. - [x] Get rid of `_assign_hash` and just integrate it with `_finalize_concretization` - [x] Don't call `_package_hash` at all for already-concrete specs. - [x] Add regression test.
2022-05-25py-numpy: add v1.22.4 (#30827)Adam J. Stewart2-1/+4
2022-05-25py-pythran: add v0.11.0 (#30829)Adam J. Stewart1-0/+4
2022-05-25openmpi: fixes for slurm and #29449 (#30299)Seth R. Johnson1-44/+19
2022-05-25Add nextflow 22.04.3 (#30855)Diego Alvarez1-0/+1
2022-05-25eagle: updating to version 1.1.3 (#30852)snehring1-3/+4
2022-05-25sed: fix recursive symlink (#30849)Seth R. Johnson1-0/+3
Use `spack build` as build dir to avoid recursive link error. ``` config.status: linking /var/folders/fy/x2xtwh1n7fn0_0q2kk29xkv9vvmbqb/T/s3j/spack-stage/spack-stage-sed-4.8-wraqsot6ofzvr3vrgusx4mj4mya5xfux/spack-src/GNUmakefile to GNUmakefile config.status: executing depfiles commands config.status: executing po-directories commands config.status: creating po/POTFILES config.status: creating po/Makefile ==> sed: Executing phase: 'build' ==> [2022-05-25-14:15:51.310333] 'make' '-j8' 'V=1' make: GNUmakefile: Too many levels of symbolic links make: stat: GNUmakefile: Too many levels of symbolic links make: *** No rule to make target `GNUmakefile'. Stop. ```
2022-05-25py-scikit-learn: add v1.1.1 (#30830)Adam J. Stewart1-0/+1
2022-05-25Pastix: new package (#30533)fpruvost1-0/+88
2022-05-25[mochi-margo] added version 0.9.10 (#30844)Matthieu Dorier1-0/+1
2022-05-25geant4: new version v11.0.2 (#30847)Ben Morgan1-0/+1
2022-05-25ccache: add missing pkgconfig dep (#30846)Harmen Stoppels1-3/+5
2022-05-25py-scipy: add v1.8.1 (#30831)Adam J. Stewart1-1/+2
2022-05-25reprimand: update homepage (#30840)Erik Schnetter1-1/+1
2022-05-25p7zip: fix %clang (#30843)Harmen Stoppels1-5/+16
2022-05-25dsfmt: set CC=cc (#30842)Harmen Stoppels1-1/+1
2022-05-25tau: add v2.31.1 (#30820)eugeneswalker1-0/+1
2022-05-25julia: support clang, set llvm NDEBUG correctly (#30800)Harmen Stoppels3-0/+64
2022-05-25mbedtls: add conflicts over inline asm trouble with clang@12: (#30801)Harmen Stoppels1-0/+4
2022-05-25[lcms] Added version 2.13.1 and URL version (#30811)Jen Herting1-0/+5
Co-authored-by: James A Zilberman <jazrc@rit.edu>
2022-05-25py-pillow-simd: mark conflicts with aarch64 (#30828)Adam J. Stewart1-0/+2
2022-05-24silo: Fix HDF5 1.13 API breakage (#30786)Chuck Atkins2-2/+44
2022-05-24Add aria2 1.36.0 (#30822)Derek Ryan Strong1-1/+2
2022-05-25Add rsync 3.2.4 (#30821)Derek Ryan Strong1-1/+2
2022-05-24[leveldb] add patch to fix check for -Wthread-safety (#30810)Matthieu Dorier2-0/+27
2022-05-24[libwebp] Added version 1.2.2 (#30814)Jen Herting1-0/+1
Co-authored-by: James A Zilberman <jazrc@rit.edu>
2022-05-24buildcache: Update layout and signing (#30750)Scott Wittenburg13-137/+550
This PR introduces a new build cache layout and package format, with improvements for both efficiency and security. ## Old Format Currently a binary package consists of a `spec.json` file at the root and a `.spack` file, which is a `tar` archive containing a copy of the `spec.json` format, possibly a detached signature (`.asc`) file, and a tar-gzip compressed archive containing the install tree. ``` build_cache/ # metadata (for indexing) <arch>-<compiler>-<name>-<ver>-24zvipcqgg2wyjpvdq2ajy5jnm564hen.spec.json <arch>/ <compiler>/ <name>-<ver>/ # tar archive <arch>-<compiler>-<name>-<ver>-24zvipcqgg2wyjpvdq2ajy5jnm564hen.spack # tar archive contents: # metadata (contains sha256 of internal .tar.gz) <arch>-<compiler>-<name>-<ver>-24zvipcqgg2wyjpvdq2ajy5jnm564hen.spec.json # signature <arch>-<compiler>-<name>-<ver>-24zvipcqgg2wyjpvdq2ajy5jnm564hen.spec.json.asc # tar.gz-compressed prefix <arch>-<compiler>-<name>-<ver>-24zvipcqgg2wyjpvdq2ajy5jnm564hen.tar.gz ``` After this change, the nesting has been removed so that the `.spack` file is the compressed archive of the install tree. Now signed binary packages, will take the form of a clearsigned `spec.json` file (a `spec.json.sig`) at the root, while unsigned binary packages will contain a `spec.json` at the root. ## New Format ``` build_cache/ # metadata (for indexing, contains sha256 of .spack file) <arch>-<compiler>-<name>-<ver>-24zvipcqgg2wyjpvdq2ajy5jnm564hen.spec.json # clearsigned spec.json metadata <arch>-<compiler>-<name>-<ver>-24zvipcqgg2wyjpvdq2ajy5jnm564hen.spec.json.sig <arch>/ <compiler>/ <name>-<ver>/ # tar.gz-compressed prefix (may support more compression formats later) <arch>-<compiler>-<name>-<ver>-24zvipcqgg2wyjpvdq2ajy5jnm564hen.spack ``` ## Benefits The major benefit of this change is that the signatures on binary packages can be verified without: 1. Having to download the tarball, or 2. having to extract an unknown tarball. (1) is an improvement in efficiency; (2) is a security fix: we now ensure that we trust the binary before we try to run it through `tar`, which avoids potential attacks. ## Backward compatibility Also after this change, spack should still be able to handle the previous buildcache structure and binary mirrors with mixed layouts.
2022-05-24[libdeflate] Added version 1.10 (#30813)Jen Herting1-0/+1
Co-authored-by: James A Zilberman <jazrc@rit.edu>
2022-05-24Add a command to generate a local mirror for bootstrapping (#28556)Massimiliano Culpo12-70/+580
This PR builds on #28392 by adding a convenience command to create a local mirror that can be used to bootstrap Spack. This is to overcome the inconvenience in setting up this mirror manually, which has been reported when trying to setup Spack on air-gapped systems. Using this PR the user can create a bootstrapping mirror, on a machine with internet access, by: % spack bootstrap mirror --binary-packages /opt/bootstrap ==> Adding "clingo-bootstrap@spack+python %apple-clang target=x86_64" and dependencies to the mirror at /opt/bootstrap/local-mirror ==> Adding "gnupg@2.3: %apple-clang target=x86_64" and dependencies to the mirror at /opt/bootstrap/local-mirror ==> Adding "patchelf@0.13.1:0.13.99 %apple-clang target=x86_64" and dependencies to the mirror at /opt/bootstrap/local-mirror ==> Adding binary packages from "https://github.com/alalazo/spack-bootstrap-mirrors/releases/download/v0.1-rc.2/bootstrap-buildcache.tar.gz" to the mirror at /opt/bootstrap/local-mirror To register the mirror on the platform where it's supposed to be used run the following command(s): % spack bootstrap add --trust local-sources /opt/bootstrap/metadata/sources % spack bootstrap add --trust local-binaries /opt/bootstrap/metadata/binaries The mirror has to be moved over to the air-gapped system, and registered using the commands shown at prompt. The command has options to: 1. Add pre-built binaries downloaded from Github (default is not to add them) 2. Add development dependencies for Spack (currently the Python packages needed to use spack style) * bootstrap: refactor bootstrap.yaml to move sources metadata out * bootstrap: allow adding/removing custom bootstrapping sources This operation can be performed from the command line since new subcommands have been added to `spack bootstrap` * Add --trust argument to spack bootstrap add * Add a command to generate a local mirror for bootstrapping * Add a unit test for mirror creation